diff options
author | Daniel Silverstone <dsilvers@netsurf-browser.org> | 2006-09-29 22:10:12 +0000 |
---|---|---|
committer | Daniel Silverstone <dsilvers@netsurf-browser.org> | 2006-09-29 22:10:12 +0000 |
commit | 45f2c3cfa3e7584c553f4d8bdb7c642ad25bcef4 (patch) | |
tree | 837f7012309c5696c4c6ebf4637f8f44cf83e082 /gtk/notes | |
parent | 6c7323fded4715e5957bf8792bb76a081ab22a57 (diff) | |
download | netsurf-45f2c3cfa3e7584c553f4d8bdb7c642ad25bcef4.tar.gz netsurf-45f2c3cfa3e7584c553f4d8bdb7c642ad25bcef4.tar.bz2 |
Initial basic notes on the refactor necessary to get nsgtk supporting the new frames code
svn path=/trunk/netsurf/; revision=2969
Diffstat (limited to 'gtk/notes')
-rw-r--r-- | gtk/notes | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gtk/notes b/gtk/notes new file mode 100644 index 000000000..0944db9e5 --- /dev/null +++ b/gtk/notes @@ -0,0 +1,36 @@ +Currently a gui_window is a top level browser object. + +This has to be corrected. Instead a gui_window must simply be a render +target inside a non-user-sizable container which is capable of +scrolling around. I.E. a GtkViewport. + +Thusly all routines which are callbacks for the viewport can remain +attached to a gui_window, all others must be migrated to a +gtk_scaffold concept which embodies the toolbar, statusbar, +blahblahblah. + +If a gui_window wants to be able to scroll itself, it automatically +embeds itself in a GtkScrolledWindow which will provide scrollbars for +it. Otherwise it makes a call to its scaffold to ask it to attach its +scrollbars to the viewport. + +The gui_window objects therefore are a GtkDrawingArea inside a +GtkFixed inside a GtkViewport (optionally inside a GtkScrolledWindow) +The GtkFixed's job (among other things) is to sit on its size_allocate +event and ensure that the GtkDrawingArea fills 100% of itself. (and is +on the bottom of the widget stack -- this happens automatically if the +drawing area is the first widget to be added to the GtkFixed and it is +never removed.) + +The gtk_scaffold object must expose a call to show/hide (link/delink?) +its scrollbars so that if the contained gui_window becomes a frameset +then it can hide the scrollbars belonging to the top level window. + +It must be possible to add gui_window objects to other gui_window +objects rather than to a gtk_scaffold so that frames can be embedded +appropriately. + +The size-allocate event for the drawing area must pass through to the +underlying browser_window as currently it does. + + |