While GnuTux was working on his patch, I was investigating the possibility of a tabbed approached. Here are some of my thoughts on the matter. A tabbed approach could either be implemented automatically or specified within the script. The first problem posed by an automatic approach is how the table of widgets should be split into multiple tabs. If it is hardcoded as a fixed number of widgets per page then users with large screen displays would be penalized by choosing too small a number, whereas too large a number invites the same problem we're attempting to solve. Splitting the tabs based upon a calculation of the available screen real estate seems to me as running counter to the philosophy of letting GTK and the window manager handle such things. Whether hard-coded or derived, there are also the problems of whether the widgets should be divided evenly amongst the tabs (we probably wouldn't want to add a new tab for just one or two widgets) and how to label the tabs. Automatically implemented tabs would most likely result in a dialog interface more objectionable than the scrolled dialog proposed by GnuTux's modification. It would be possible to offer manual specification of the division of the tabs, for example by adding a SF-PAGE separator instruction in the registration block of the script. This would afford script writers better control over the dialog layout, being able to group related input fields in the same tab; as well as providing a means of specifying the label that is to appear on the tabs. Such an approach could readily be provided in a backwards-compatible manner -- should a page separator not be supplied, the script dialog would be presented as it always has. Adding such a "SF-PAGE" facility to Script-fu may be worthwhile pursuing; however, it relies upon the script author taking advantage of it (or upon older scripts being updated to take advantage of it). It still does not address the possibility that the script author includes too many widgets on a single tab pane. N.B. Even if a tabbed interface is supported, it would still be prudent to support a scrolled interface within the tabs as a graceful way of handling an excessive number of input fields being requested. With a tabbed approach, the implementation is at least an order of magnitude more complex than the code needed to implement scrolling. The tabbed dialog would need to support drag-n-drop; requiring either a "misuse" of the GimpDockbook widget or at least duplication of its D-N-D signal handling code in conjunction with a GtkNotebook container. (I say misuse since a script dialog is not dockable). Modifying the Script-fu registration code to support tabbed panes would require even more code. By contrast, GnuTux's modification is straightforward, only about twenty lines of code, uses GTK in a standard, easily comprehended manner. It is much better suited for handling what is basically an edge case that is likely to only ever appear in just a handful of scripts. ------- I would point out a couple of issues that still exist with GnuTux's modification in hopes of improving it further. Firstly, Windows users have reported that the dialog created is obscured by the taskbar when that taskbar 1) runs along the bottom of the screen and 2) is not auto-hiding. If there are any Windows programmers who know how to rectify this, it would make the patch better behaved on those systems. Secondly, with the patch applied, resizing of the Script-fu dialog results in the widgets within the scrollable window to be scaled. Normally such window resizing of a Script-fu dialog results in the widgets being scaled horizontally, but not vertically (additional empty space is inserted into the dialog). If possible, the patch should be amended to restore original behavior with regard to dialog window resizing. _______________________________________________ gimp-developer-list mailing list List address: gimp-developer-list@xxxxxxxxx List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list List archives: https://mail.gnome.org/archives/gimp-developer-list