[ABU] 26-jan-2005 - created [ABU] 1-feb-2005 - Updated ... see below '''Scrodget''' is a generic scrolled widget implemented with [snit]. It is very similar to the Bwidget's '''ScrolledWindow''' (with the added capability to place (automatic) scrollbars on top/bottom left/right. Here is a sample: [http://web.tiscali.it/irrational/tcl/scrodget1.0.1/demo/demo.gif] Start page and download links at [http://web.tiscali.it/irrational/tcl/scrodget1.0.1/index.html] ---- Remember that Tcl/Tk source script widgets can be submitted to [tklib] for more general distribution. ---- [PWQ] What if I want scroll bars on left and right? ---- [ABU] ??? It is a relly unusual demand ... '''1-feb-2005 Done.''' ---- [Peter Newman] 27 January 2005: Scrodget looks great. I use BWidgets ScrolledWindow a lot - but one thing that annoys me about it is that you can't turn auto-hiding off (and have either or both scrollbars fixed). Scrodget fixes that. But it would be better if one could enable/disable autohiding, for the horizontal and vertical scrollbars, separately. Any chance of this? Also [PWQ]'s request for left AND/or right (and top AND/or bottom) is a bit unusual I agree. But a single Scrollbar Manager widget, that can be configured for every conceivable arrangement, would be very useful. And if you were able to do this, being able to enable/disable auto-hiding for the left, right, top and bottom scrollbars, individually, would IMHO be the best way to go. ---- [ABU] 1-feb-2005 Scrodget has been updated. First of all, you can download version '''1.0.1''' which solves some ''little'' BUGS. Second, version '''1.1''' is available: it allows you to enable/disable autohiding, for the horizontal and vertical scrollbars, separately. Third, version '''2.0''' allows you to enable 4 scrollbars (east/west/north/south). * Version 1.0.1 [http://web.tiscali.it/irrational/tcl/scrodget1.0.1/index.html] * Version 1.1 [http://web.tiscali.it/irrational/tcl/scrodget1.1/index.html] * Version 2.0 [http://web.tiscali.it/irrational/tcl/scrodget2.0/index.html] ---- [Peter Newman] 4 February 2005: Version 2 looks good. But I think you've got west and east mixed up. West is left and east is right; you have them the other way round. Specifying the scrollbar sides with news is an excellent idea. But why not specify the auto-hiding the same way? ---- [ABU] .. really a stupid error of mine. Here is an On-fly patch : file "scrodget.tcl" replace typevariable GridIdx -array { n { 0 1 } s { 2 1 } e { 1 0 } w { 1 2 } } with typevariable GridIdx -array { n { 0 1 } s { 2 1 } w { 1 0 } e { 1 2 } } ---- [Peter Newman] 5 February 2005: Thanks! I'd already found that. Your code is really excellent - and simple to follow/debug. And so far (after a few days testing,) seems totally bug-free (after the above fix). This is unlike the '''BWidget ScrolledWindow''' where the code is more obscure - and appears to have the following bugs:- * ''BWidget ScrolledWindow Auto-hiding Bug'' Sometimes you get a scrollbar - either with no slider at all - or with a say 95% slider that doesn't actually slide anything - even though the window contents DON'T seem to require a scrollbar. * The BWidgets ScrolledWindow supports the ''-borderwidth'', ''-relief'' and ''-background'' - but they rarely seem to work. The values of those same options that you specify for the widget you've wrapped the scrollbars around seem to be used instead. (I say ''rarely'', because there's some strange interaction with the related options of the widget being managed - but I've never been able to figure out exactly what the rules are.) These things are both annoying. But the ScrolledWindow code is so obscure, that so far I've found it easier to live with them and/or work-around them, than to fix them. The good thing with [scrodget] is that; not only is it more powerful, it doesn't appear to have these (or any other) bugs. And even if some bugs are found, the code is quite straightforward, and easy to debug. So if anyone's wondering; '''ScrolledWindow''' or [scrodget]? The answer is definitely [scrodget]. '''Access To The Internal Widgets''' Another excellent thing about scrodget is that you get access to the internal widgets - which makes it very easy to configure those widgets exactly as you want them. Essentially, a scrodget is a 3x3 grid, like this: +-----------+------------+-----------------+ | | | | ---- See also: * [scroll] ---- [Category Widget]