On Mon, 18 Jul 2011 14:08:14 -0300 Bruno Dilly <bdi...@profusion.mobi> said:
yes! that's right! you nailed it. only thing that got me was the intial example didnt use conformant at all and i had to read all the way to the bottom and get example 02 to see it in use inside the code. may i suggest putting the 2nd example up at the start, THEN go dissect it starting with the base, and making it "conformant". > Hey people, > > I've written an example of usage of elm_conformant, but I would be > glad if somebody that developed it or that knows this widget better > than I could check my example and see if there is some use more > relevant to be cited / exemplified. > > http://docs.enlightenment.org/auto/elementary/conformant_example.html > > API documentation at: > http://docs.enlightenment.org/auto/elementary/group__Conformant.html > > Thanks in advance. > > On Mon, Jul 18, 2011 at 11:00 AM, Enlightenment SVN > <no-re...@enlightenment.org> wrote: > > Log: > > Elementary: Conformant Documentation > > > > > > > > Author: bdilly > > Date: 2011-07-18 07:00:36 -0700 (Mon, 18 Jul 2011) > > New Revision: 61479 > > Trac: http://trac.enlightenment.org/e/changeset/61479 > > > > Added: > > trunk/elementary/doc/img/screenshots/conformant_example_01.eps > > trunk/elementary/doc/img/screenshots/conformant_example_01.png > > trunk/elementary/doc/img/screenshots/conformant_example_02.eps > > trunk/elementary/doc/img/screenshots/conformant_example_02.png > > trunk/elementary/doc/img/screenshots/conformant_example_03.eps > > trunk/elementary/doc/img/screenshots/conformant_example_03.png > > trunk/elementary/doc/img/screenshots/conformant_example_04.eps > > trunk/elementary/doc/img/screenshots/conformant_example_04.png > > trunk/elementary/src/examples/conformant_example_01.c > > trunk/elementary/src/examples/conformant_example_02.c Modified: > > trunk/elementary/doc/examples.dox trunk/elementary/src/examples/Makefile.am > > trunk/elementary/src/lib/Elementary.h.in > > trunk/elementary/src/lib/elm_conform.c > > > > Modified: trunk/elementary/doc/examples.dox > > =================================================================== > > --- trunk/elementary/doc/examples.dox 2011-07-18 11:25:54 UTC (rev 61478) > > +++ trunk/elementary/doc/examples.dox 2011-07-18 14:00:36 UTC (rev 61479) > > @@ -2189,6 +2189,79 @@ > > */ > > > > /** > > + * @page conformant_example Conformant Example. > > + * > > + * In this example we'll explain how to create applications to work > > + * with illume, considering space required for virtual keyboards. > > + * > > + * Illume is a module for Enlightenment that modifies the user interface > > + * to work cleanly and nicely on a mobile device. It has support for > > + * virtual keyboard, among other nice features. > > + * > > + * Let's start creating a very simple window with a vertical box > > + * with multi-line entry between two buttons. > > + * This entry will expand filling all space on window not used by buttons. > > + * > > + * @dontinclude conformant_example_01.c > > + * @skipline elm_main > > + * @until } > > + * > > + * For information about how to create windows, boxes, buttons or entries, > > + * look for documentation for these widgets. > > + * > > + * It will looks fine when you don't need a virtual keyboard, as you > > + * can see on the following image: > > + * > > + * @image html screenshots/conformant_example_01.png > > + * @image latex screenshots/conformant_example_01.eps > > + * > > + * But if you call a virtual keyboard, the window will resize, changing > > + * widgets size and position. All the content will shrink. > > + * The window will look like this: > > + * > > + * @image html screenshots/conformant_example_02.png > > + * @image latex screenshots/conformant_example_02.eps > > + * > > + * If you don't want such behaviour, you > > + * will need a conformant to account for space taken up by the indicator, > > + * virtual keyboard and softkey windows. > > + * > > + * In this case, using the conformant in a proper way, you will have > > + * a window like the following when the virtual keyboard is hidden: > > + * > > + * @image html screenshots/conformant_example_03.png > > + * @image latex screenshots/conformant_example_03.eps > > + * > > + * As you can see, it guess the space that will be required by the > > keyboard. > > + * Verify how perfectly it fits when keyboard is visible: > > + * > > + * @image html screenshots/conformant_example_04.png > > + * @image latex screenshots/conformant_example_04.eps > > + * > > + * So, let's study each step required to transform our initial example on > > + * the second one. > > + * > > + * First of all, we need to set the window as an illume conformant window: > > + * @dontinclude conformant_example_02.c > > + * @skipline elm_win_conformant_set > > + * > > + * Next, we'll add a conformant widget, and set it to resize with the > > window, > > + * instead of the box. > > + * @skipline conform > > + * @until evas_object_show > > + * > > + * Finally, we'll set the box as conformant's content, just like this: > > + * @skipline elm_conformant_content_set > > + * > > + * Compare both examples code: > > + * @ref conformant_example_01.c "conformant_example_01.c" > > + * @ref conformant_example_02.c "conformant_example_02.c" > > + * > > + * @example conformant_example_01.c > > + * @example conformant_example_02.c > > + */ > > + > > +/** > > * @page bg_example_01_c bg_example_01.c > > * @include bg_example_01.c > > * @example bg_example_01.c > > > > > > Property changes on: > > trunk/elementary/doc/img/screenshots/conformant_example_01.png > > ___________________________________________________________________ Added: > > svn:mime-type > > + application/octet-stream > > > > > > Property changes on: > > trunk/elementary/doc/img/screenshots/conformant_example_02.png > > ___________________________________________________________________ Added: > > svn:mime-type > > + application/octet-stream > > > > > > Property changes on: > > trunk/elementary/doc/img/screenshots/conformant_example_03.png > > ___________________________________________________________________ Added: > > svn:mime-type > > + application/octet-stream > > > > > > Property changes on: > > trunk/elementary/doc/img/screenshots/conformant_example_04.png > > ___________________________________________________________________ Added: > > svn:mime-type > > + application/octet-stream > > > > Modified: trunk/elementary/src/examples/Makefile.am > > =================================================================== > > --- trunk/elementary/src/examples/Makefile.am 2011-07-18 11:25:54 UTC > > (rev 61478) +++ trunk/elementary/src/examples/Makefile.am 2011-07-18 > > 14:00:36 UTC (rev 61479) @@ -57,6 +57,8 @@ > > calendar_example_05.c \ > > calendar_example_06.c \ > > clock_example.c \ > > + conformant_example_01.c \ > > + conformant_example_02.c \ > > image_example_01.c \ > > flipselector_example.c \ > > fileselector_example.c \ > > @@ -113,6 +115,8 @@ > > calendar_example_05 \ > > calendar_example_06 \ > > clock_example \ > > + conformant_example_01 \ > > + conformant_example_02 \ > > image_example_01 \ > > diskselector_example_01 \ > > diskselector_example_02 \ > > > > Modified: trunk/elementary/src/lib/Elementary.h.in > > =================================================================== > > --- trunk/elementary/src/lib/Elementary.h.in 2011-07-18 11:25:54 UTC > > (rev 61478) +++ trunk/elementary/src/lib/Elementary.h.in 2011-07-18 > > 14:00:36 UTC (rev 61479) @@ -7899,13 +7899,110 @@ > > EINA_DEPRECATED EAPI void elm_scrolled_entry_cnp_textonly_set > > (Evas_Object *obj, Eina_Bool textonly) EINA_ARG_NONNULL(1); EINA_DEPRECATED > > EAPI Eina_Bool elm_scrolled_entry_cnp_textonly_get(Evas_Object *obj) > > EINA_ARG_NONNULL(1); > > > > - /* conformant */ > > + /** > > + * @defgroup Conformant Conformant > > + * @ingroup Elementary > > + * > > + * The aim is to provide a widget that can be used in elementary apps to > > + * account for space taken up by the indicator, virtual keypad & softkey > > + * windows when running the illume2 module of E17. > > + * > > + * So conformant content will be sized and positioned considering the > > + * space required for such stuff, and when they popup, as a keyboard > > + * shows when an entry is selected, conformant content won't change. > > + * > > + * Available styles for it: > > + * - @c "default" > > + * > > + * See how to use this widget in this example: > > + * @ref conformant_example > > + */ > > + > > + /** > > + * @addtogroup Conformant > > + * @{ > > + */ > > + > > + /** > > + * Add a new conformant widget to the given parent Elementary > > + * (container) object. > > + * > > + * @param parent The parent object. > > + * @return A new conformant widget handle or @c NULL, on errors. > > + * > > + * This function inserts a new conformant widget on the canvas. > > + * > > + * @ingroup Conformant > > + */ > > EAPI Evas_Object *elm_conformant_add(Evas_Object *parent) > > EINA_ARG_NONNULL(1); + > > + /** > > + * Set the content of the conformant widget. > > + * > > + * @param obj The conformant object. > > + * @param content The content to be displayed by the conformant. > > + * > > + * Content will be sized and positioned considering the space required > > + * to display a virtual keyboard. So it won't fill all the conformant > > + * size. This way is possible to be sure that content won't resize > > + * or be re-positioned after the keyboard is displayed. > > + * > > + * Once the content object is set, a previously set one will be deleted. > > + * If you want to keep that old content object, use the > > + * elm_conformat_content_unset() function. > > + * > > + * @see elm_conformant_content_unset() > > + * @see elm_conformant_content_get() > > + * > > + * @ingroup Conformant > > + */ > > EAPI void elm_conformant_content_set(Evas_Object *obj, > > Evas_Object *content) EINA_ARG_NONNULL(1); + > > + /** > > + * Get the content of the conformant widget. > > + * > > + * @param obj The conformant object. > > + * @return The content that is being used. > > + * > > + * Return the content object which is set for this widget. > > + * It won't be unparent from conformant. For that, use > > + * elm_conformant_content_unset(). > > + * > > + * @see elm_conformant_content_set() for more details. > > + * @see elm_conformant_content_unset() > > + * > > + * @ingroup Conformant > > + */ > > EAPI Evas_Object *elm_conformant_content_get(const Evas_Object *obj) > > EINA_ARG_NONNULL(1); + > > + /** > > + * Unset the content of the conformant widget. > > + * > > + * @param obj The conformant object. > > + * @return The content that was being used. > > + * > > + * Unparent and return the content object which was set for this widget. > > + * > > + * @see elm_conformant_content_set() for more details. > > + * > > + * @ingroup Conformant > > + */ > > EAPI Evas_Object *elm_conformant_content_unset(Evas_Object *obj) > > EINA_ARG_NONNULL(1); + > > + /** > > + * Returns the Evas_Object that represents the content area. > > + * > > + * @param obj The conformant object. > > + * @return The content area of the widget. > > + * > > + * @ingroup Conformant > > + */ > > EAPI Evas_Object *elm_conformant_content_area_get(const Evas_Object > > *obj) EINA_ARG_NONNULL(1); > > > > + /** > > + * @} > > + */ > > + > > /* mapbuf */ > > EAPI Evas_Object *elm_mapbuf_add(Evas_Object *parent) EINA_ARG_NONNULL > > (1); EAPI void elm_mapbuf_content_set(Evas_Object *obj, Evas_Object > > *content) EINA_ARG_NONNULL(1); > > > > Modified: trunk/elementary/src/lib/elm_conform.c > > =================================================================== > > --- trunk/elementary/src/lib/elm_conform.c 2011-07-18 11:25:54 UTC > > (rev 61478) +++ trunk/elementary/src/lib/elm_conform.c 2011-07-18 > > 14:00:36 UTC (rev 61479) @@ -9,14 +9,6 @@ > > # define MAX(a,b) ((a) < (b)) ? (b) : (a) > > #endif > > > > -/** > > - * @defgroup Conformant Conformant > > - * > > - * The aim is to provide a widget that can be used in elementary apps to > > - * account for space taken up by the indicator, virtual keypad & softkey > > windows when running > > - * the illume2 module of E17. > > - */ > > - > > typedef struct _Widget_Data Widget_Data; > > struct _Widget_Data > > { > > @@ -444,14 +436,6 @@ > > } > > #endif > > > > -/** > > - * Add a new Conformant object > > - * > > - * @param parent The parent object > > - * @return The new conformant object or NULL if it cannot be created > > - * > > - * @ingroup Conformant > > - */ > > EAPI Evas_Object * > > elm_conformant_add(Evas_Object *parent) > > { > > @@ -499,18 +483,6 @@ > > return obj; > > } > > > > -/** > > - * Set the content of the conformant widget > > - * > > - * Once the content object is set, a previously set one will be deleted. > > - * If you want to keep that old content object, use the > > - * elm_conformat_content_unset() function. > > - * > > - * @param obj The conformant object > > - * @return The content that was being used > > - * > > - * @ingroup Conformant > > - */ > > EAPI void > > elm_conformant_content_set(Evas_Object *obj, Evas_Object *content) > > { > > @@ -532,16 +504,6 @@ > > _sizing_eval(obj); > > } > > > > -/** > > - * Get the content of the conformant widget > > - * > > - * Return the content object which is set for this widget; > > - * > > - * @param obj The conformant object > > - * @return The content that is being used > > - * > > - * @ingroup Conformant > > - */ > > EAPI Evas_Object * > > elm_conformant_content_get(const Evas_Object *obj) > > { > > @@ -552,16 +514,6 @@ > > return wd->content; > > } > > > > -/** > > - * Unset the content of the conformant widget > > - * > > - * Unparent and return the content object which was set for this widget; > > - * > > - * @param obj The conformant object > > - * @return The content that was being used > > - * > > - * @ingroup Conformant > > - */ > > EAPI Evas_Object * > > elm_conformant_content_unset(Evas_Object *obj) > > { > > @@ -577,14 +529,7 @@ > > wd->content = NULL; > > return content; > > } > > -/** > > - * Returns the Evas_Object that represents the content area. > > - * > > - * @param obj The conformant object. > > - * @return The content area of the widget. > > - * > > - * @ingroup Conformant > > - */ > > + > > EAPI Evas_Object * > > elm_conformant_content_area_get(const Evas_Object *obj) > > { > > @@ -596,4 +541,3 @@ > > _elm_dangerous_call_check(__FUNCTION__); > > return (Evas_Object *)edje_object_part_object_get(wd->base, > > "elm.swallow.content"); } > > - > > > > > > ------------------------------------------------------------------------------ > > AppSumo Presents a FREE Video for the SourceForge Community by Eric > > Ries, the creator of the Lean Startup Methodology on "Lean Startup > > Secrets Revealed." This video shows you how to validate your ideas, > > optimize your ideas and identify your business strategy. > > http://p.sf.net/sfu/appsumosfdev2dev > > _______________________________________________ > > enlightenment-svn mailing list > > enlightenment-...@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > > > > > > -- > Bruno Dilly > Senior Developer > ProFUSION embedded systems > http://profusion.mobi > > ------------------------------------------------------------------------------ > AppSumo Presents a FREE Video for the SourceForge Community by Eric > Ries, the creator of the Lean Startup Methodology on "Lean Startup > Secrets Revealed." This video shows you how to validate your ideas, > optimize your ideas and identify your business strategy. > http://p.sf.net/sfu/appsumosfdev2dev > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ Got Input? Slashdot Needs You. Take our quick survey online. Come on, we don't ask for help often. Plus, you'll get a chance to win $100 to spend on ThinkGeek. http://p.sf.net/sfu/slashdot-survey _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel