[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: a suggestion about themes
From:       "yitzchak schwarz" <s.y.schwarz () gmail ! com>
Date:       2007-09-11 21:35:12
Message-ID: 417207eb0709111435t5c3cc18fie86a0864bdbb5ff4 () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]

[Attachment #4 (text/plain)]

>
> On 9/11/07, yitzchak schwarz <s.y.schwarz@gmail.com> wrote:
> > I had last night an idea. why not make the creation of themed GUI
> elements
> > as easy as possible? now, I don't know how things are done now, and as
> far
> > as I know the current method could be light-years ahead of my idea, but
> here
> > is the specification, as best I can write it:
> >
> > base shape: a closed shape of of any number of lines. the lines can have
> any
> > number of nodes to them. they can take any shape and corners can have
> any
> > level of roundedness, so long as there is no overlap our crossing or
> > touching.
> >
> > top shape: identical to base shape, except: can have different size and
> > position.
> >
> > the nodes of the top shape are connected to their corresponding nodes in
> the
> > base shape.
> >
> > "the surfaces": each surface area on the top shape and the sides (but
> not
> > base shape) has the following attributes: value gradient, color
> gradient. a
> > group of surfaces can share gradients.
> >
> > "the lines": each line has the following attributes: value gradient,
> color
> > gradient. a group of lines can share gradients.
> >
> > in addition, the theme determines:
> > the color each class of surface.
> >  the color, style, and thickness each class of line.
> >
> > the top shape can contain the following fields:
> > text, image, button.
> >
> > each field has the following attributes:
> > position, size, overflow, underflow.
> >  position: top/bottom, left/right.
> > size: width, height.
> > overflow: crop, scale, scale proportionally, scale container.
> > underflow: scale, scale proportionally, scale container, tile, position.
> > crop: the content to be displayed is determined by specified position.
> > scale proportionally: positioned within container as specified.
> > position:
> > top-left,    top-center,    top-right
> > middle-left,    middle-center,    middle-right
> > bottom-left,    bottom-center,    bottom-right
> >
> > each field is rectangular.
> >
> > each field is a class.
> >
> > each text field has the following attributes:
> > content, font-style, font-weight, font-size, font-color, text-line (for
> > underline, strikethrough, etc), vertical-align, horizontal-align.
> > in addition each text field might have the following overflow value (it
> > might already be covered by crop, but then maybe it isn't. this should
> take
> > serious consideration):
> > hide.
> >
> > each image field has the following attributes:
> > class, package, file.
> >
> > each button field has the following attributes:
> > class, package, file.
> >
> > important note: all classes are identified by index number, starting
> from 0.
> >
> > events:
> > these would cause changes in the appearance of the button, and therefor
> the
> > button needs to determine it.
> > the appearance of shapes and lines changes, so all class attributes must
> be
> > determined for each event type. all normal class attributes are
> inherited by
> > the event-specific class attributes, but can be overridden.
> > event types: on-mouse-click, on-mouse-over.
> > animations: the height of the top shape can be determined. it can be set
> > separately for events as well. transition effects are simple: normal to
> > on-mouse-click, normal to on-mouse-over, on-mouse-click to
> on-mouse-over.
> > you simply have to determine the change-rate, that is, by how much
> should
> > the the difference in the z-index be divided. then each level of
> z-index,
> > from start to finish will be displayed. frame rate must also be
> determined.
> > in addition, color transitions will be similarly animated.
> > with lines, colored areas that overlap would have color transition only,
> > while color areas that don't will fade out, and non-colored areas would
> fade
> > in.
> >
> > the two events presented here, on-mouse-click and on-mouse-over, are
> merely
> > examples. any event can have a different appearance associated with it's
> > occurrence. since all events inherit the normal state's attributes,
> nothing
> > happens. however, if these attributes were overridden, then there would
> be a
> > difference, and the above types of animations and appearance
> modifications
> > would take place.
> >
> >
> > -------------------------------
> >
> >
> > this presents an example of what an XML theme file might look like. I
> didn't
> > include the icons, basically you just list the icon name according to
> the
> > freedesktop.org specification, and the image file that would represent
> it.
> > there would also be a shortcut by simply writing specifying a package.
> for
> > example:
> > <icon-set package="oxygen" />
> >
> > <import package-type="font" package-name="ariel" version=" 1.0" />
> > <import package-type="icon-set" package-name="oxygen" version="1.0" />
> > <import package-type="button-set" package-name="gui" version="1.0 " />
> >
> > <text name="txt1" font-style="ariel" font-weight="bold" font-size="12"
> > font-color="rgba(150,150,150,100)" text-line="none"
> > vertical-align="top" horizontal-align="left" />
> >
> > <button name="but0">
> >     <line color="rgba(255,120,140,100)" style="solid" width="2" />
> >     <fill color="rgba(140,120,255,100)" />
> > </button>
> >
> > <button class="but0" name="but1" package="gui" file="button">
> >     <text class="txt1">
> >         <content>
> >             nothing noteworthy.
> >          </content>
> >     </text>
> >     <image package="oxygen" file="software" />
> > </button>
> >
> > -------------------------------
> >
> > this is all intended to work with GUI tools. the button file would
> probably
> > be SVG or something similar to that format.
> >
> > I'd love to write it myself, except I'm still struggling to learn swing
> in
> > Java. this is quite beyond me.
>
> Hmmm, different approach for sure... Currently, KDE themes are C++
> code. Some are working on a theming engine allowing to use
> png/jpg/whatever to theme, and maybe SVG. You propose to describe the
> theme with XML. Does this add to the above things? It's harder than
> SVG/png, and less flexible than C++, I suppose...
>
> But I think it would be possible to write a theming engine which uses
> C++ to implement this for KDE in the future...
>
> >> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to
> unsubscribe <<
>
additions and corrections to my original post:

button fields are GUI component fields.
image fields are realy just GUI fields, perhaps with less capabilities. -
possible merge.
images can have animation that can be controlled.
if there can be multiple animation sequences in a single image, even better.
GUI fields also have the value "tile and crop" for property "underflow".
"multi-element GUI container": holds multiple GUI elements, but displays
only one. property that holds the displayed element: representation.

possible implementation examples(for a single refresh/stop button in a web
browser):
<multi-gui name="stop-refresh">
<gui name="stp" class="stop" />
<gui name="rfrsh" class="refresh" />
<on-page-loading>
<representation class="stp" />
</on-page-loading>
<off-page-loading>
<representation class="rfrsh" />
</off-page-loading>
</multi-gui>

alternative 1:
<multi-gui name="stop-refresh">
<on-page-loading>
<representation class="stop" />
</on-page-loading>
<off-page-loading>
<representation class="refresh" />
</off-page-loading>
</multi-gui>

alternative 2:
<multi-gui name="stop-refresh">
<while-page-loading>
<representation class="stop" />
</while-page-loading>
<while-not-page-loading>
<representation class="refresh" />
</while-not-page-loading>
</multi-gui>

alternative 3:
<multi-gui name="stop-refresh">
<representation class="refresh" />
<while-page-loading>
<representation class="stop" />
</while-page-loading>
</multi-gui>

alternative 4:
<multi-gui name="stop-refresh">
<global-while-page-loading>
<representation class="stop" />
</global-while-page-loading>
<global-while-not-page-loading>
<representation class="refresh" />
</global-while-not-page-loading>
</multi-gui>

alternative 5:
<multi-gui name="stop-refresh">
<global-execute-all-while-page-loading>
<representation class="stop" />
</global-execute-all-while-page-loading>
<global-execute-all-while-not-page-loading>
<representation class="refresh" />
</global-execute-all-while-not-page-loading>
</multi-gui>

all options achieve exactly the same result.

0: creates local gui classes for the multi-gui, then uses them.

1: uses global gui classes.

2: uses a do-while loop. on-event(){do {stuff} while(the event didn't end)
or in plain english: when an event starts, it it performs all that stuff
once, then again and again until the event ends. for instance:
while-mouse-over would do stuff over and over again from the moment the
mouse hovers over the element until it moves away from it. when the loop
ends, everything reverts to what it was before the loop started. however,
since we have a complementary condition, while-not-page-loading, were
covered.

3: same here as in two, exept here instead of a complementary condition I
set a default, so it still behaves the same.

4: the use of the global suffix means all changes made in the loop are
permanent, thus requiring a complementary condition.

5: the "execute-all" suffix doesn't make any difference here, but it says
that everything will execute each time, even if no change occured between
executions. especialy effective with animations.

I forgot to add that GUI compositions (GUI elements) can be stored as
separate files, and imported as packages. they can also import other files
for the purpose of using the class provided. this allows for central control
despite breaking it down.

upsides for this theme format specification:
* easy to create GUI element themes from scratch. that is to say sets of GUI
elements, or "controls" themes.
* easy to create themes in general, not including fonts and icons.
* easy to modify and customize themes.
* extensible and reusable components.
* extensible format.
* GUI elemts are true 3D objects.
* built in transition animations for every event you care to make one for.

uses:
* building GUI elements.
* creating themes.
* creating GUI templates.
* creating application GUIs.
* creating applications. (with added support for a scripting language and a
backend such as C++ or PHP)
* can be used for multiple platforms, including desktop and web.

as an application GUI, it can be used with any graphical toolkit's API as an
implementation for an  interface between the GUI and backend, allowing any
supporting desktop enviroment to use this as a GUI. this means identical
look and layout for an application no matter which platform it was written
for.

if implemented as a text-based format, it would allow to treat the interface
as a cusomizable theam. with scripting support, it would be easy to add
plugins and extentions, without any support needing to be written for the
application.

it would be possible to download and use any GUI layout and design you like
for an application, just like theming for a desktop environment that allows
to have different controls than the default as well as different looks for
the elements.


------------------

I hope this addresses what you were talking about.

[Attachment #5 (text/html)]

<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; \
BORDER-LEFT: #ccc 1px solid"> <p>On 9/11/07, yitzchak schwarz &lt;<a \
href="mailto:s.y.schwarz@gmail.com">s.y.schwarz@gmail.com</a>&gt; wrote:<br>&gt; I \
had last night an idea. why not make the creation of themed GUI elements<br>&gt; as \
easy as possible? now, I don&#39;t know how things are done now, and as far <br>&gt; \
as I know the current method could be light-years ahead of my idea, but here<br>&gt; \
is the specification, as best I can write it:<br>&gt;<br>&gt; base shape: a closed \
shape of of any number of lines. the lines can have any <br>&gt; number of nodes to \
them. they can take any shape and corners can have any<br>&gt; level of roundedness, \
so long as there is no overlap our crossing or<br>&gt; touching.<br>&gt;<br>&gt; top \
shape: identical to base shape, except: can have different size and <br>&gt; \
position.<br>&gt;<br>&gt; the nodes of the top shape are connected to their \
corresponding nodes in the<br>&gt; base shape.<br>&gt;<br>&gt; &quot;the \
surfaces&quot;: each surface area on the top shape and the sides (but not <br>&gt; \
base shape) has the following attributes: value gradient, color gradient. a<br>&gt; \
group of surfaces can share gradients.<br>&gt;<br>&gt; &quot;the lines&quot;: each \
line has the following attributes: value gradient, color <br>&gt; gradient. a group \
of lines can share gradients.<br>&gt;<br>&gt; in addition, the theme \
determines:<br>&gt; the color each class of surface.<br>&gt;&nbsp; the color, style, \
and thickness each class of line.<br>&gt;<br> &gt; the top shape can contain the \
following fields:<br>&gt; text, image, button.<br>&gt;<br>&gt; each field has the \
following attributes:<br>&gt; position, size, overflow, underflow.<br>&gt;&nbsp; \
position: top/bottom, left/right. <br>&gt; size: width, height.<br>&gt; overflow: \
crop, scale, scale proportionally, scale container.<br>&gt; underflow: scale, scale \
proportionally, scale container, tile, position.<br>&gt; crop: the content to be \
displayed is determined by specified position. <br>&gt; scale proportionally: \
positioned within container as specified.<br>&gt; position:<br>&gt; \
top-left,&nbsp;&nbsp;&nbsp; top-center,&nbsp;&nbsp;&nbsp; top-right<br>&gt; \
middle-left,&nbsp;&nbsp;&nbsp; middle-center,&nbsp;&nbsp;&nbsp; middle-right<br>&gt; \
bottom-left,&nbsp;&nbsp;&nbsp; bottom-center,&nbsp;&nbsp;&nbsp; bottom-right \
<br>&gt;<br>&gt; each field is rectangular.<br>&gt;<br>&gt; each field is a \
class.<br>&gt;<br>&gt; each text field has the following attributes:<br>&gt; content, \
font-style, font-weight, font-size, font-color, text-line (for <br>&gt; underline, \
strikethrough, etc), vertical-align, horizontal-align.<br>&gt; in addition each text \
field might have the following overflow value (it<br>&gt; might already be covered by \
crop, but then maybe it isn&#39;t. this should take <br>&gt; serious \
consideration):<br>&gt; hide.<br>&gt;<br>&gt; each image field has the following \
attributes:<br>&gt; class, package, file.<br>&gt;<br>&gt; each button field has the \
following attributes:<br>&gt; class, package, file. <br>&gt;<br>&gt; important note: \
all classes are identified by index number, starting from 0.<br>&gt;<br>&gt; \
events:<br>&gt; these would cause changes in the appearance of the button, and \
therefor the<br>&gt; button needs to determine it. <br>&gt; the appearance of shapes \
and lines changes, so all class attributes must be<br>&gt; determined for each event \
type. all normal class attributes are inherited by<br>&gt; the event-specific class \
attributes, but can be overridden. <br>&gt; event types: on-mouse-click, \
on-mouse-over.<br>&gt; animations: the height of the top shape can be determined. it \
can be set<br>&gt; separately for events as well. transition effects are simple: \
normal to<br>&gt; on-mouse-click, normal to on-mouse-over, on-mouse-click to \
on-mouse-over. <br>&gt; you simply have to determine the change-rate, that is, by how \
much should<br>&gt; the the difference in the z-index be divided. then each level of \
z-index,<br>&gt; from start to finish will be displayed. frame rate must also be \
determined. <br>&gt; in addition, color transitions will be similarly \
animated.<br>&gt; with lines, colored areas that overlap would have color transition \
only,<br>&gt; while color areas that don&#39;t will fade out, and non-colored areas \
would fade <br>&gt; in.<br>&gt;<br>&gt; the two events presented here, on-mouse-click \
and on-mouse-over, are merely<br>&gt; examples. any event can have a different \
appearance associated with it&#39;s<br>&gt; occurrence. since all events inherit the \
normal state&#39;s attributes, nothing <br>&gt; happens. however, if these attributes \
were overridden, then there would be a<br>&gt; difference, and the above types of \
animations and appearance modifications<br>&gt; would take \
place.<br>&gt;<br>&gt;<br>&gt; ------------------------------- \
<br>&gt;<br>&gt;<br>&gt; this presents an example of what an XML theme file might \
look like. I didn&#39;t<br>&gt; include the icons, basically you just list the icon \
name according to the<br>&gt; <a href="http://freedesktop.org"> freedesktop.org</a> \
specification, and the image file that would represent it.<br>&gt; there would also \
be a shortcut by simply writing specifying a package. for<br>&gt; example:<br>&gt; \
&lt;icon-set package=&quot;oxygen&quot; /&gt; <br>&gt;<br>&gt; &lt;import \
package-type=&quot;font&quot; package-name=&quot;ariel&quot; version=&quot; 1.0&quot; \
/&gt;<br>&gt; &lt;import package-type=&quot;icon-set&quot; \
package-name=&quot;oxygen&quot; version=&quot;1.0 &quot; /&gt;<br>&gt; &lt;import \
package-type=&quot;button-set&quot; package-name=&quot;gui&quot; version=&quot;1.0 \
&quot; /&gt;<br>&gt;<br>&gt; &lt;text name=&quot;txt1&quot; \
font-style=&quot;ariel&quot; font-weight=&quot;bold&quot; font-size=&quot;12&quot; \
<br>&gt; font-color=&quot;rgba(150,150,150,100)&quot; \
text-line=&quot;none&quot;<br>&gt; vertical-align=&quot;top&quot; \
horizontal-align=&quot;left&quot; /&gt;<br>&gt;<br>&gt; &lt;button \
name=&quot;but0&quot;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;line \
color=&quot;rgba(255,120,140,100)&quot; style=&quot;solid&quot; width=&quot;2&quot; \
/&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fill \
color=&quot;rgba(140,120,255,100)&quot; /&gt;<br>&gt; &lt;/button&gt;<br>&gt;<br>&gt; \
&lt;button class=&quot;but0&quot; name=&quot;but1&quot; package=&quot;gui&quot; \
file=&quot;button&quot;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;text \
class=&quot;txt1&quot;&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&lt;content&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
nothing noteworthy.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&lt;/content&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; \
&lt;/text&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;image package=&quot;oxygen&quot; \
file=&quot;software&quot; /&gt;<br>&gt; &lt;/button&gt; <br>&gt;<br>&gt; \
-------------------------------<br>&gt;<br>&gt; this is all intended to work with GUI \
tools. the button file would probably<br>&gt; be SVG or something similar to that \
format.<br>&gt;<br>&gt; I&#39;d love to write it myself, except I&#39;m still \
struggling to learn swing in <br>&gt; Java. this is quite beyond me.</p>
<p>Hmmm, different approach for sure... Currently, KDE themes are C++<br>code. Some \
are working on a theming engine allowing to use<br>png/jpg/whatever to theme, and \
maybe SVG. You propose to describe the<br>theme with XML. Does this add to the above \
things? It&#39;s harder than <br>SVG/png, and less flexible than C++, I \
suppose...</p> <p>But I think it would be possible to write a theming engine which \
uses<br>C++ to implement this for KDE in the future...<br>&nbsp;<br>&gt;&gt; Visit <a \
href="http://mail.kde.org/mailman/listinfo/kde-devel#unsub">http://mail.kde.org/mailman/listinfo/kde-devel#unsub
 </a> to unsubscribe &lt;&lt;</p></blockquote>
<div>additions and corrections to my original post:<br>&nbsp;</div>
<div>button fields are GUI component fields.<br>image fields are realy just GUI \
fields, perhaps with less capabilities. - possible merge.<br>images can have \
animation that can be controlled.<br>if there can be multiple animation sequences in \
a single image, even better. <br>GUI fields also have the value &quot;tile and \
crop&quot; for property &quot;underflow&quot;.<br>&quot;multi-element GUI \
container&quot;: holds multiple GUI elements, but displays only one. property that \
holds the displayed element: representation. <br><br>possible implementation \
examples(for a single refresh/stop button in a web browser):<br>&lt;multi-gui \
name=&quot;stop-refresh&quot;&gt;<br>	&lt;gui name=&quot;stp&quot; \
class=&quot;stop&quot; /&gt;<br>	&lt;gui name=&quot;rfrsh&quot; \
class=&quot;refresh&quot; /&gt; <br>	&lt;on-page-loading&gt;<br>		&lt;representation \
class=&quot;stp&quot; \
/&gt;<br>	&lt;/on-page-loading&gt;<br>	&lt;off-page-loading&gt;<br>		&lt;representation \
class=&quot;rfrsh&quot; /&gt;<br>	&lt;/off-page-loading&gt; \
<br>&lt;/multi-gui&gt;<br><br>alternative 1:<br>&lt;multi-gui \
name=&quot;stop-refresh&quot;&gt;<br>	&lt;on-page-loading&gt;<br>		&lt;representation \
class=&quot;stop&quot; \
/&gt;<br>	&lt;/on-page-loading&gt;<br>	&lt;off-page-loading&gt; \
<br>		&lt;representation class=&quot;refresh&quot; \
/&gt;<br>	&lt;/off-page-loading&gt;<br>&lt;/multi-gui&gt;<br><br>alternative \
2:<br>&lt;multi-gui name=&quot;stop-refresh&quot;&gt;<br>	&lt;while-page-loading&gt;<br>		&lt;representation \
class=&quot;stop&quot; /&gt; \
<br>	&lt;/while-page-loading&gt;<br>	&lt;while-not-page-loading&gt;<br>		&lt;representation \
class=&quot;refresh&quot; \
/&gt;<br>	&lt;/while-not-page-loading&gt;<br>&lt;/multi-gui&gt;<br><br>alternative \
3:<br>&lt;multi-gui name=&quot;stop-refresh&quot;&gt; <br>	&lt;representation \
class=&quot;refresh&quot; \
/&gt;<br>	&lt;while-page-loading&gt;<br>		&lt;representation class=&quot;stop&quot; \
/&gt;<br>	&lt;/while-page-loading&gt;<br>&lt;/multi-gui&gt;<br><br>alternative \
4:<br>&lt;multi-gui name=&quot;stop-refresh&quot;&gt; \
<br>	&lt;global-while-page-loading&gt;<br>		&lt;representation class=&quot;stop&quot; \
/&gt;<br>	&lt;/global-while-page-loading&gt;<br>	&lt;global-while-not-page-loading&gt;<br>		&lt;representation \
class=&quot;refresh&quot; /&gt; \
<br>	&lt;/global-while-not-page-loading&gt;<br>&lt;/multi-gui&gt;<br><br>alternative \
5:<br>&lt;multi-gui name=&quot;stop-refresh&quot;&gt;<br>	&lt;global-execute-all-while-page-loading&gt;<br>		&lt;representation \
class=&quot;stop&quot; /&gt; \
<br>	&lt;/global-execute-all-while-page-loading&gt;<br>	&lt;global-execute-all-while-not-page-loading&gt;<br>		&lt;representation \
class=&quot;refresh&quot; \
/&gt;<br>	&lt;/global-execute-all-while-not-page-loading&gt;<br>&lt;/multi-gui&gt; \
<br><br>all options achieve exactly the same result.<br><br>0: creates local gui \
classes for the multi-gui, then uses them.<br><br>1: uses global gui \
classes.<br><br>2: uses a do-while loop. on-event(){do {stuff} while(the event \
didn&#39;t end) or in plain english: when an event starts, it it performs all that \
stuff once, then again and again until the event ends. for instance: while-mouse-over \
would do stuff over and over again from the moment the mouse hovers over the element \
until it moves away from it. when the loop ends, everything reverts to what it was \
before the loop started. however, since we have a complementary condition, \
while-not-page-loading, were covered. <br><br>3: same here as in two, exept here \
instead of a complementary condition I set a default, so it still behaves the \
same.<br><br>4: the use of the global suffix means all changes made in the loop are \
permanent, thus requiring a complementary condition. <br><br>5: the \
&quot;execute-all&quot; suffix doesn&#39;t make any difference here, but it says that \
everything will execute each time, even if no change occured between executions. \
especialy effective with animations.<br> <br>I forgot to add that GUI compositions \
(GUI elements) can be stored as separate files, and imported as packages. they can \
also import other files for the purpose of using the class provided. this allows for \
central control despite breaking it down. <br><br>upsides for this theme format \
specification:<br>* easy to create GUI element themes from scratch. that is to say \
sets of GUI elements, or &quot;controls&quot; themes.<br>* easy to create themes in \
general, not including fonts and icons. <br>* easy to modify and customize \
themes.<br>* extensible and reusable components.<br>* extensible format.<br>* GUI \
elemts are true 3D objects.<br>* built in transition animations for every event you \
care to make one for. <br><br>uses:<br>* building GUI elements.<br>* creating \
themes.<br>* creating GUI templates.<br>* creating application GUIs.<br>* creating \
applications. (with added support for a scripting language and a backend such as C++ \
or PHP) <br>* can be used for multiple platforms, including desktop and \
web.<br><br>as an application GUI, it can be used with any graphical toolkit&#39;s \
API as an implementation for an&nbsp; interface between the GUI and backend, allowing \
any supporting desktop enviroment to use this as a GUI. this means identical look and \
layout for an application no matter which platform it was written for. <br><br>if \
implemented as a text-based format, it would allow to treat the interface as a \
cusomizable theam. with scripting support, it would be easy to add plugins and \
extentions, without any support needing to be written for the application. <br><br>it \
would be possible to download and use any GUI layout and design you like for an \
application, just like theming for a desktop environment that allows to have \
different controls than the default as well as different looks for the elements. \
<br>&nbsp;</div> <div><pre>------------------</pre><pre>I hope this addresses what \
you were talking about.</pre></div>



>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic