mNo edit summary
Line 66: Line 66:
(the series of tabs encapsulated in another series of tabs is potentially difficult for a learner to comprehend, but an alternative tree view is thought inappropriate because of the horizontal space consumed, and because use of a module should be constrained to the public API of the module).
(the series of tabs encapsulated in another series of tabs is potentially difficult for a learner to comprehend, but an alternative tree view is thought inappropriate because of the horizontal space consumed, and because use of a module should be constrained to the public API of the module).


Activity canvas GTK+ widget hierarchy:
Activity canvas GTK+ widget hierarchy, assuming two modules open, modules "main" and "test", of which "main" has a file "file.py", and "test" has a file "test.py":
*gtk.Notebook (for viewing and writing code, one page per module)
 
**gtk.Notebook (one page per file in each module)
*gtk.Notebook (tab labels "main", "test", "+")
***GtkSourceView (one for each file in each module)
**notebook page label "main", a gtk.Notebook (tab labels "__doc__", "file.py", "setup.py", "+")
***notebook page label "__doc__", a GtkSourceView in read-only mode, hidden if __doc__ is empty,
***notebook page label "file", a GtkSourceView for "file.py",
***notebook page label "setup", a GtkSourceView for "setup.py", hidden if not yet edited by learner,
***notebook page label "+", creates a new file, prompts for file name, defaults to .py,
**notebook page label "test", a gtk.Notebook (tab labels "__doc__", "test.py", "setup.py", "+")
***notebook page label "__doc__", a GtkSourceView in read-only mode, hidden if __doc__ is empty,
***notebook page label "test", a GtkSourceView for "test.py",
***notebook page label "setup", a GtkSourceView for "setup.py", hidden if not yet edited by learner,
***notebook page label "+", creates a new file, prompts for file name, defaults to .py,
**notebook page label "+", creates a new module, prompts for module name.
 
(if the page "+" technique does not work, then toolbar buttons will be required to create a new module, create a new file in a module, or import an example module).


=== Display - Running ===
=== Display - Running ===