Unskinny Scrollbars!



I just was playing around with the new GTK+ (1.1.9) out of CVS and I 
noticed something really cool!!:

http://24.3.242.128/981224110938.jpg

You'll see three themes in this screenshot -- the pixmap theme, the metal 
theme, and the Windoze 95 theme.  Now, the metal theme is pretty much 
unrelated to what I wanted to talk about (I just wanted to show off 
Raster's cool new "bumpy" scrollbars, which are a really good mockup of 
what the actual Swing theme looks like :-).  But pay careful attention to 
the two different versions that I have for each of the pixmap and Win95 
themes.  Notice anything strange?  Yes, the scrollbar sizes are different 
on each of the two different versions.

Now, it was only a couple months ago (about two) that I was on this list 
whining about how the scrollbars in _all_ of the themes were too skinny.  
They all looked like those #$%! Motif scrollbars that were about 5 pixels 
wide (ok, I exaggerate a little).  So, I was really excited when I 
stumble upon this little trick to get the scrollbars thicker.  It also 
seems encouraging that these things (the size of the widgets) aren't 
hard-wired into the widget set.

The way that this happened (it was a complete accident) was like this.  
For example, for the Winblows 95 theme I did:

cp ~/themes/metal.gtkrc ~/.gtkrc
cp ~/themes/win95.gtkrc /usr/local/gnome/src/gtk+/gtk/testgtkrc

Notice that I have Metal as my ~/.gtkrc file and win95 as the testgtkrc 
file that testgtk.c references with the line:

  gtk_rc_add_default_file ("testgtkrc");

Now, this seems to have the effect of using Metal as the primary 
rendering engine (hence the "fat" scrollbars, which are a part of that 
engine now) while using the pixmaps defined in testgtkrc.  If I'm not 
mistaken, this means that testgtk ends up using BOTH RENDERING ENGINES AT 
THE SAME TIME (pixmap and metal).  Wow.

Although this is really cool, I still have some questions:

1.) Is there any way right now, using only one rendering engine (say, the 
pixmap one) to set the size of the scrollbars in a gtkrc file?  This 
would be a little easier than having to put a gtk_rc_add_default_file () 
in your code and use two rendering engines.

2.) Ok, the new "fat & bumpy" Metal scrollbars look awesome, for sure.  
BUT, is there any 
way to change the SHAPE of the top range control in the testgtk range 
control demo (see my screenshot) to be more like the shape of the one in 
Swing (http://java.sun.com/products/jfc/tsc/plaf_report/jlf/jlf.html), 
rather than a boring, oversized rectangle.

It looks something like this:

        --------------------
       /....................\             
       |....................|
       |....................|
       |....................|
       |....................|
       |....................|
       |....................|
       |....................|
       |....................|
       \..................../
        \................../
         \................/
          \............../
           \............/
            \........../
             \......../
              \....../
               \..../
                \../
                 \/

Note: This is not a rectangle :-)  

I have always wondered if the GTK+ theme architecture could handle the 
rendering of odd shapes like this (where rectangles are currently used).  
You seem to have gotten SIZE themeability to work (at least with those 
scrollbars)...but how 'bout this SHAPE themeability.

shane
       



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]