On Tue, 08 Feb 2011 14:53:35 +0000 Tom Hacohen
<[email protected]> said:

> Dear all,
> 
> This email is both for people who develop elementary and people who
> develop with elementary.
> 
> Intro:
> ~~~~~~
> 
> Recently, my colleague Aharon and I added UI-Mirroring support to
> Elementary. UI-Mirroring is useful for people who speak RTL languages
> and lets them have a more "flowing" user experience. Here's a screen
> shot of the elementary_test progressbar test showing in both "mirrored"
> and "regular" modes:
> http://img843.imageshack.us/img843/9353/screenshotovt.png .
> 
> UI-mirroring is automatically set in elementary according to the locale.
> If you use an "rtl locale" you'll get a mirrored interface, otherwise,
> the regular one. On the fly ui-mirroring is not supported at the moment
> (but will be added soon) so you can't really change directionality while
> an application is running (changing it will only change the widgets that
> will be created in the future, not the ones already created at the time
> of the change).

i like i like. aharon, tom -> good work! kudos on the effort and results.

> What I expect from everyone:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> 1. Please don't abuse it. This is useful for rtl languages, not for
> implementing "inverted" mode in widgets. If you want inverted mode,
> implement it in the wiget, or ask someone to do it for you.

agreed.

> 2. If you implement a new widget or modify an existing one, please make
> sure you delegate the changes. Take a look at any of the existing
> widgets, there's a function called "_mirrored_set" see what's done there
> and update it/create your own accordingly.

agreed.

> 3. Some widgets require special handling in the theme, please take a
> look at the default theme. Good examples are "toggle" and "panes", but
> there are more.

cool.

> Additional info:
> ~~~~~~~~~~~~~~~~
> 
> UI-mirroring is important for many widgets (for example toggles) but
> should not be applied on others, for example clock. A clock is a clock
> and should remain as such :) Use your common sense, look at other
> widgets or ask me if a specific widget should have ui-mirroring
> handling, most of them should so don't think you'll be able to get away
> with this.

makes sense. this isnt a strict simple ruleset you can just write here. its a
cultural "oddity" of history that we have 2 big layout groupings in the world -
the left-to-right world (the west mostly and also most of the east these days),
and then the RTL world (middle-east mostly). you're right - we should tyr and
be sensible, be prepared to be poked and told we are wrong and ask for advice
if really unsure. luckily we have you :)

> UI-Mirroring looks a bit weird/ugly when the texts aren't translated, I
> know, but please try to write your widgets in a way that won't break it
> for people who use Hebrew/Arabic/Persian/etc. :P
> 
> Because a lot of elementary's API use directions for layouting things
> (i.e left/right) we chose to use "logical-directions" when representing
> things. So for example when in mirrored mode, putting things on the
> left, actually puts them on the right and etc.
> 
> One more important thing to remember is that this support is only for
> elementary, so evas objects/edje objects remain the same and don't get
> these cool stuff. If you want, you can use elm_layout to load edje
> objects and you'll get this cool behavior on your edje objects as well,
> which will be translated to rtl mode on run-time.
> 
> I added a toggle to elementary_test that lets you switch to mirrored
> mode without the need to add an Hebrew locale or be able to read Hebrew.
> Because on the fly changing is not yet supported (will be added really
> soon), you have to set the toggle to whichever mode you want, and then
> the windows you open will be open in that mode. If you change the toggle
> again, open windows will remain the same but new ones will be opened in
> the new mirrored mode.
> 
> Have fun, and let us know if you have questions/things to add,
> Tom.

i'm just having fun flipping things back and forth. :)

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    [email protected]


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to