Re: External Dynamic GUI-Mods (was Re: The concept from MUI (Amiga) )



On Sat, Feb 21, 1998 at 11:21:57AM -0500, raster@redhat.com wrote:
# ->  
# ->  (Note that I believe none of these require -much- help from the client!!!)
# ->  
# ->     * Event-simulation-macros (record->playback macros on the title bar?)
# ->     	(y'know all that "Wizard" crap from M$?  Scriptized GUI is all 'tis!)
# ->     * External changes of various GC attributes [font, colors, line styles]
# ->         (relying on re-use of GC-ID by widgets) 
# ->     * Refresh of modified shapes/fonts etc.. with "ClearArea" to produce an
# ->         expose of the updated patch.
# ->     * Sounds/Events associated with appearance of various results (i.e.
# ->         external input *and* monitoring of externals)
# ->  
# ->Having a GC's contents modified on the fly should nearly never crash an app'
# ->  interface.  It might only botch the screen badly if done wrong.  The
# ->transparency from the user's perspective might as well be seamless if desired.
# ->  
# ->  Monitoring readouts on X11 apps would be almost the same.
# ->  
# ->  The only real requirement is a vaporlock on the WID-->Widget-->Action
# ->  association.  For appearances, a cosmetically "accurate" setup would work.
# ->  For actions, a label or pixmap match would be needed.

# there is 1 major flaw in this... GTK has some nasty habits.. and that
# is that many widgets do not have windows... they draw in their parents.
# This makes this kind of work hard. The best we can probably do it use
# the client's base window id and ask the client for the rest. GTK does
# not make any use of backgroundpixmaps for pixmap widgets and other
# widgets using pixmaps (strange - because this saves redraws) - but some
# of this reason is due to not having child windows in many situations...

Oh.. so what you're saying (on this GTK list) is that it is eminently 
feasible for GNOME/GTK to get these sort of mods done this way, except 
these WID-based ones just only have to be done for something other than 
GNOME/GTK.  Perfect.

Okay... for now I'll toss aside debating the design drawbacks (and maybe a 
few benefits?)  Granted.. there cannot be a simple X-resource-ID tweaker 
that would reasonably modify any appearances under GTK (excepting when GTK 
uses real w-idgets (windowed vs. "gadgets", simulated ones).  Is there any 
pattern of GC-ID-specific stored states that could be modified?  I'd tend to 
believe there might be, though I guess it would likely modify tons of stuff 
at once.

Arguably doing things on the client/lib side is a bit preferable.. but exposure
to strange conditions could make strange dynamic mods randomly test/destabilize 
client code.   Yeah... once the libs are "done right" there's no problem, 
but isn't that the trick eh?

Client-side stuff isn't bad.. it's just a little messier and the 
redraw-Round-Trip-Time (Expose Event -> Redraw Requests --> Mouse-Move Event 
--> Redraw Requests etc...) might catch up.  

Okay then, so GTK is all a client-Message system... *then* the sort of "script"
behavior could still be generated.. and some sort of output-sorting system
could detect results.  It would just have to be maintained by the client's IDs
and purposes for every important rectangle that can be viewed.  Messier tho.  

Any ideas about what the tree should be made from?  Is there anyone writing
a XtNameToWidget lookalike?  Where does the X-Resource DB fit in?

	-- CH

# ->  # -- 
# ->  #          To unsubscribe: mail gnome-themes-list-request@gnome.org with 
# ->  #                        "unsubscribe" as the Subject.
# ->  
# 
# -- 
# --------------- Codito, ergo sum - "I code, therefore I am" --------------------
# raster@rasterman.com       /\___ /\ ___/||\___ ____/|/\___  raster@redhat.com
# Carsten Haitzler           | _ //__\\ __||_ __\\ ___|| _ /  Red Hat Advanced
# 218/21 Conner Drive        || // __ \\_ \ | |   \ _/_|| /   Development Labs
# Chapel Hill NC 27514 USA   ||\\\/  \//__/ |_|   /___/||\\   919 547 0012 ext 282
# +1 (919) 929 9443, 801 4392   For pure Enlightenmenthttp://www.rasterman.com/ 
# 

-- 
// {if(me==chris)me->confuse(yu);} // DubleTawk+SinglThots+AntiFathe: UnRome II
### C>H> ### jeezfrk@h2net.net ////////////////// {"Nietzsche is dead."-God} //



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