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). 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. 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. 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. 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. 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. ------------------------------------------------------------------------------ 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
