The concept from MUI (Amiga)



Hi GNOME people,

i have decided to join GNOME. I am very interessting in making a very
flexible
and good GUI. Therefore I started Nirvana some month ago, but I will
drop it
for now and try to implement ideas in GTK.
(http://tek.flynet.de/linuxsite/nirvana/phase1.html)

I started configuring GTK with the rc-feature, and there i got the first
problem.
All borders for buttons and other widgets are very static. A border
doesn´t
have to mean only one draw style. I thought about the concept in Magic
User Interface
on the AmigaOS. There you have a set of 8 or more draw-styles and you
can equip it
on any widget. So my idea goes in direction of hierarchicaly designed
widgets and
their styles.
The gtk-rc is therefore not so flexible for that.
Themes like from Raster are also very cool, but it should not be the
only possiblility.
Here is a little Style-toolkit, i thought of...

Colorstyle:
 -
   - RGB color
   - Pixmap,
(- Alpha-channel value to parent ;) )  

Backgroundstyle:
 -
   - Colorstyle
   - from_parent Flag

Fontstyle:
 - specific font
 - different FontDraw-style (graved, shadowed, glowed...)
 - Colorstyle

Borderstyle:
 -
   - BorderDraw-style (normal, rounded, beleved ...)
   - Foregroundcolor, Backgroundcolor for Draw-style
 - imlib border (a la themes)
 - Backgroundstyle

Label:
 - Fontstyle
 - Backgroundstyle

Button_with_label:
 - Borderstyle
 - Label

This means many widgets will be build on top of a bunch of styles. So
the visual configuration
will be that each style has a specific configuration window for his
style, and the user
will set the values very fast to new widgets that are build on these
styles.

The next step is to give normal users the ability to change the look ( &
feel ?) 
with a visual tool. This should take a central position in the whole
concept.
Every new widget should have a "config callback"-like section
implemented.
This means, a programmer writes a new widget with this section,
describing
the possible configurations, and the user can configure the look
and feel. Think of a "cd-player" widget. You install it, and the next
step
you will do is, calling GTK-MagicConfig (example name :) ) and select
the new
widget-class and you get a specific config-screen for this widget, done
by the
widget-programmer.

After configuring, every gtk-application should look new.

Another thing to do, is that all tools should check a central
configuration file.
(for example .gtkrc in $home) so that new installed tools will always
look like
the user configured his GTK to default. But any specific tool should be
reconfigurable to 
another look.

I hope to help with this project, especially bringing more power in GTK.


I´m coding in C/C++ on Linux/Intel.


-- 
so long,
plex/tek



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