diff --git a/legacy/elementary/doc/Doxyfile.in b/legacy/elementary/doc/Doxyfile.in index d1e5c0ce10..919e0fe9b6 100644 --- a/legacy/elementary/doc/Doxyfile.in +++ b/legacy/elementary/doc/Doxyfile.in @@ -1,7 +1,7 @@ PROJECT_NAME = Elementary PROJECT_NUMBER = OUTPUT_DIRECTORY = . -INPUT = @srcdir@/elementary.dox @top_srcdir@/src/lib/Elementary.h.in @top_srcdir@/src/lib +INPUT = @srcdir@/elementary.dox @srcdir@/examples.dox @top_srcdir@/src/lib/Elementary.h.in @top_srcdir@/src/lib IMAGE_PATH = @srcdir@/img OUTPUT_LANGUAGE = English GENERATE_HTML = YES diff --git a/legacy/elementary/doc/examples.dox b/legacy/elementary/doc/examples.dox new file mode 100644 index 0000000000..b069485be8 --- /dev/null +++ b/legacy/elementary/doc/examples.dox @@ -0,0 +1,622 @@ +/** + * @page Examples Examples + * + * Here is a page with Elementary examples. + * + * @ref bg_01_example_page + * + * @ref bg_02_example_page + * + * @ref bg_03_example_page + * + * @ref actionslider_example_page + * + * @ref elm_animator_example_page_01 + * + * @ref transit_example_01_explained + * + * @ref transit_example_02_explained + */ + +/** + * @page bg_01_example_page elm_bg - Plain color background. + * @dontinclude bg_example_01.c + * + * The full code for this example can be found at @ref bg_example_01_c, + * in the function @c test_bg_plain. It's part of the @c elementar_test + * suite, and thus has the code for the three examples referenced by this + * documentation. + * + * This first example just sets a default background with a plain color. The + * first part consists of creating an Elementary window. It's the common + * piece of code that you'll see everywhere in Elementary: @skip elm_main + * @until autodel_set + * + * Now we really create our background object, using the window object as + * its parent: + * + * @skipline bg_add + * + * Then we set the size hints of the background object so that it will use + * all space available for it, and then add it as a resize object to the + * window, making it visible in the end: + * + * @skip size_hint_weight_set + * @until resize_object_add + * + * See @ref evas_object_size_hint_weight_set and elm_win_resize_object_add() + * for more detailed info about these functions. + * + * The end of the example is quite simple, just setting the minimum and + * maximum size of the background, so the Elementary window knows that it + * has to have at least the minimum size. The background also won't scale to + * a size above its maximum. Then we resize the window and show it in the + * end: + * + * @skip set size hints + * @until } + * + * And here we finish our very simple background object usage example. + */ + +/** + * @page bg_02_example_page elm_bg - Image background. + * @dontinclude bg_example_02.c + * + * The full code for this example can be found at @ref bg_example_02_c, + * in the function @c test_bg_image. It's part of the @c elementar_test + * suite, and thus has the code for the three examples referenced by this + * documentation. + * + * This is the second example, and shows how to use the Elementary + * background object to set an image as background of your application. + * + * We start this example exactly in the same way as the previous one, even + * when creating the background object: + * + * @skip elm_main + * @until bg_add + * + * Now it's the different part. + * + * Our background will have an image, that will be displayed over the + * background color. Before loading the image, we set the load size of the + * image. The load size is a hint about the size that we want the image + * displayed in the screen. It's not the exact size that the image will have, + * but usually a bit bigger. The background object can still be scaled to a + * size bigger than the one set here. Setting the image load size to + * something smaller than its real size will reduce the memory used to keep + * the pixmap representation of the image, and the time to load it. Here we + * set the load size to 20x20 pixels, but the image is loaded with a size + * bigger than that (since it's just a hint): + * + * @skipline load_size_set + * + * And set our background image to be centered, instead of stretched or + * scaled, so the effect of the elm_bg_load_size_set() can be easily + * understood: + * + * @skipline option_set + * + * We need a filename to set, so we get one from the previous installed + * images in the @c PACKAGE_DATA_DIR, and write its full path to a buffer. + * Then we use this buffer to set the filename in the background object: + * + * @skip snprintf + * @until bg_file_set + * + * Notice that the third argument of the elm_bg_file_set() function is @c + * NULL, since we are setting an image to this background. This function + * also supports setting an edje group as background, in which case the @c + * group parameter wouldn't be @c NULL, but be the name of the group + * instead. + * + * Finally, we can set the size hints, add the background as a resize + * object, and resize the window, exactly the same thing we do in the @ref + * bg_01_example_page example: + * + * @skip size_hint + * @until } + * + * And this is the end of this example. + * + * This example will look like this: + * @image html screenshots/bg_01.png + * @image latex screenshots/bg_01.eps + */ + +/** + * @page bg_03_example_page elm_bg - Background properties. + * @dontinclude bg_example_03.c + * + * The full code for this example can be found at @ref bg_example_03_c, in the + * function @c test_bg_options, with the callbacks @c _cb_overlay_changed, @c + * _cb_color_changed and @c _cb_radio_changed defined in the beginning of the + * file. It's part of the @c elementar_test suite, and thus has the code for + * the three examples referenced by this documentation. + * + * This example will show the properties available for the background object, + * and will use of some more widgets to set them. + * + * In order to do this, we will set some callbacks for these widgets. The + * first is for the radio buttons that will be used to choose the option + * passed as argument to elm_bg_option_set(): + * + * @skip _cb_radio_changed + * @until } + * + * The next callback will be used when setting the overlay (using + * elm_bg_overlay_set()): + * + * @skip _cb_overlay_changed + * @until } + * @until } + * + * And the last one, used to set the color (with elm_bg_color_set()): + * + * @skip _cb_color_changed + * @until } + * + * We will get back to what these functions do soon. If you want to know more + * about how to set these callbacks and what these widgets are, look for: + * @li elm_radio_add() + * @li elm_check_add() + * @li elm_spinner_add() + * + * Now going to the main function, @c test_bg_options, we have the common + * code with the other examples: + * + * @skip bg-options + * @until autodel_set + * + * We add a plain background to this window, so it will have the default + * background color behind everything: + * + * @skip bg = elm_bg_add + * @until evas_object_show(bg) + * + * Then we add a vertical box (elm_box_add()) that will hold the background + * object that we are going to play with, as well as a horizontal box that + * will hold widgets: + * + * @skip elm_box_add + * @until evas_object_show + * + * Now we add the background object that is going to be of use for our + * example. It is an image background, as used in @ref bg_02_example_page , + * so the code should be familiar: + * + * @skip elm_bg_add + * @until evas_object_show + * + * Notice the call to elm_box_pack_end(): it will pack the background object + * in the end of the Elementary box declared above. Just refer to that + * documentation for more info. + * + * Since this Elementary background is already an image background, we are + * going to play with its other properties. We will change its option + * (CENTER, SCALE, STRETCH, TILE), its color (RGB), and add an overlay to it. + * For all of these properties, we are going to add widgets that will + * configure them. + * + * First, lets add the horizontal box that will hold these widgets: + * @skip hbox + * @until align_set + * + * For now, just consider this @c hbox as a rectangle that will contain the + * widgets, and will distribute them horizontally inside its content. Then we + * add radio buttons that will allow us to choose the property to use with + * this background: + * + * @skip radio_add + * @until evas_object_show + * + * Again, I won't give details about the use of these widgets, just look for + * their documentation if necessary. It's enough to know for now that we are + * packing them in the @c hbox, setting a label for them, and the most + * important parts: setting its value to @c ELM_BG_OPTION_CENTER and its + * callback to @c _cb_radio_changed (the function defined in the beginning of + * this example). We do this for the next 3 radio buttons added after this + * one, each of them with a different value. + * + * Now taking a look at the code of the callback @c _cb_radio_changed again, + * it will call elm_bg_option_set() with the value set from the checked radio + * button, thus setting the option for this background. The background is + * passed as argument to the @p data parameter of this callback, and is + * referenced here as @c o_bg. + * + * Later we set the default value for this radio button: + * + * @skipline elm_radio_value_set + * + * Then we add a checkbox for the elm_bg_overlay_set() function: + * + * @skip check_add + * @until evas_object_show + * + * Now look at the code of the @c _cb_overlay_changed again. If the checkbox + * state is checked, an overlay will be added to the background. It's done by + * creating an Edje object, and setting it with elm_bg_overlay_set() to the + * background object. For information about what are and how to set Edje + * object, look at the Edje documentation. + * + * Finally we add a spinner object (elm_spinner_add()) to be used to select + * the color of our background. In its callback it's possible to see the call + * to elm_bg_color_set(), which will change the color of this background. + * This color is used by the background to fill areas where the image doesn't + * cover (in this case, where we have an image background). The spinner is + * also packed into the @c hbox : + * + * @skip elm_spinner_add + * @until evas_object_show + * + * Then we just have to pack the @c hbox inside the @c box, set some size + * hints, and show our window: + * + * @skip pack_end + * @until } + * + * Now to see this code in action, open elementary_test, and go to the "Bg + * Options" test. It should demonstrate what was implemented here. + */ + +/** + * @page actionslider_example_page Actionslider usage + * @dontinclude actionslider_example_01.c + * + * For this example we are going to assume knowledge of evas smart callbacks + * and some basic evas object functions. Elementary is not meant to be used + * without evas, if you're not yet familiar with evas it probably is worth + * checking that out. + * + * And now to the example, when using Elementary we start by including + * Elementary.h: + * @skipline #include + * + * Next we define some callbacks, they all share the same signature because + * they are all to be used with evas_object_smart_callback_add(). + * The first one just prints the selected label(in two different ways): + * @until } + * + * This next callback is a little more interesting, it makes the selected + * label magnetic(except if it's the center label): + * @until } + * + * This callback enables or disables the magnetic propertty of the center + * label: + * @until } + * + * And finally a callback to stop the main loop when the window is closed: + * @until } + * + * To be able to create our actionsliders we need to do some setup, but this + * isn't really relevant here, so if you want to know about that go @ref + * Win "here". + * + * With all that boring stuff out of the way we can proceed to creating some + * actionsliders.@n + * All actionsliders are created the same way: + * @skipline actionslider_add + * Next we must choose where the indicator starts, and for this one we choose + * the right, and set the right as magnetic: + * @skipline indicator_pos_set + * @until magnet_pos_set + * + * We then set the labels for the left and right, passing NULL as an argument + * to any of the labels makes that position have no label. + * @until Stop + * + * Furthermore we mark both left and right as enabled positions, if we didn't + * do this all three positions would be enabled: + * @until RIGHT + * + * Having the the enabled positions we now add a smart callback to change + * which position is magnetic, so that only the last selected position is + * magnetic: + * @until NULL + * + * And finally we set our printing callback and show the actionslider: + * @until object_show + * @skip pack_end + * + * For our next actionslider we are going to do much as we did for the + * previous except we are going to have the center as the magnet(and not + * change it): + * @skipline actionslider_add + * @skipline indicator_pos_set + * @until object_show + * + * And another actionslider, in this one the indicator starts on the left. + * It has labels only in the center and right, and both bositions are + * magnetic. Because the left doesn't have a label and is not magnetic once + * the indicator leaves it can't return: + * @skipline actionslider_add + * @skipline indicator_pos_set + * @until object_show + * @note The greyed out area is a @ref Styles "style". + * + * And now an actionslider with a label in the indicator, and whose magnet + * properties change based on what was last selected: + * @skipline actionslider_add + * @skipline indicator_pos_set + * @until object_show + * @note The greyed out area is a @ref Styles "style". + * + * We are almost done, this next one is just an actionslider with all + * positions magnetized and having every possible label: + * @skipline actionslider_add + * @skipline indicator_pos_set + * @until object_show + * + * And for our last actionslider we have one that turns the magnetic property + * on and off: + * @skipline actionslider_add + * @skipline indicator_pos_set + * @until object_show + * + * The example will look like this: + * @image html screenshots/actionslider_01.png + * @image latex screenshots/actionslider_01.eps + * + * See the full source code @ref actionslider_example_01 "here" + */ + +/** + * @page elm_animator_example_page_01 Animator usage + * @dontinclude animator_example_01.c + * + * For this example we will be using a bit of evas, you could animate a + * elementary widget in much the same way, but to keep things simple we use + * an evas_object_rectangle. + * + * As every other example we start with our include and a simple callback to + * exit the app when the window is closed: + * @skipline #include + * @until } + * + * This next callback is the one that actually creates our animation, it + * changes the size, position and color of a rectangle given to it in @a + * data: + * @until } + * + * Next we have a callback that prints a string, nothing special: + * @until } + * + * This next callback is a little more interesting, it has a state variable + * to know if the animation is currently paused or running, and it toogles + * the state of the animation accordingly: + * @until } + * @until } + * @until } + * + * Finally we have a callback to stop the animation: + * @until } + * + * As with every example we need to do a bit of setup before we can actually + * use an animation, but for the purposes of this example that's not relevant + * so let's just skip to the good stuff, creating an animator: + * @skipline animator_add + * @note Since elm_animator is not a widget we can give it a NULL parent. + * + * Now that we have an elm_animator we set it's duration to 1 second: + * @line duration_set + * + * We would also like our animation to be reversible, so: + * @line reverse_set + * + * We also set our animation to repeat as many times as possible, which will + * mean that _end_cb will only be called after UINT_MAX * 2 seconds(UINT_MAX + * for the animation running forward and UNIT_MAX for the animation running + * backwards): + * @line repeat_set + * + * To add some fun to our animation we will use the IN_OUT curve style: + * @line curve_style + * + * To actually animate anything we need an operation callback: + * @line operation_callback + * + * Even though we set our animation to repeat for a very long time we are + * going to set a end callback to it: + * @line completion_callback + * @note Notice that stoping the animation with the stop button will not make + * _end_cb be called. + * + * Now that we have fully set up our animator we can tell it to start + * animating: + * @line animate + * + * There's a bit more of code that doesn't really matter to use so we skip + * right down to our last interesting point: + * @skipline animator_del + * @note Because we created our animator with no parent we need to delete it + * ourselves. + * + * The example should look like this: + * @image html screenshots/animator_example_01.png + * @image latex screenshots/animator_example_01.eps + * @n + * @image html screenshots/animator_example_02.png + * @image latex screenshots/animator_example_02.eps + * @n + * @image html screenshots/animator_example_03.png + * @image latex screenshots/animator_example_03.eps + * + * The full source code for this example can be found @ref + * animator_example_01_c "here" + */ + +/** + * @page transit_example_03_c elm_transit - Combined effects and options. + * + * This example shows how to apply the following transition effects: + * @li translation + * @li color + * @li rotation + * @li wipe + * @li zoom + * @li resizing + * + * It allows you to apply more than one effect at once, and also allows to + * set properties like event_enabled, auto_reverse, repeat_times and + * tween_mode. + * + * @include transit_example_03.c + */ + +/** + * @page transit_example_04_c elm_transit - Combined effects over two objects. + * + * This example shows how to apply the transition effects: + * @li flip + * @li resizable_flip + * @li fade + * @li blend + * over two objects. This kind of transition effect is used to make one + * object disappear and another one appear on its place. + * + * You can mix more than one effect of this type on the same objects, and the + * transition will apply both. + * + * @include transit_example_04.c + */ + +/** + * @page transit_example_01_explained elm_transit - Basic transit usage. + * @dontinclude transit_example_01.c + * + * The full code for this example can be found at @ref transit_example_01_c. + * + * This example shows the simplest way of creating a transition and applying + * it to an object. Similarly to every other elementary example, we create a + * window, set its title, size, autodel property, and setup a callback to + * exit the program when finished: + * + * @skip on_done + * @until evas_object_resize + * + * We also add a resizeable white background to use behind our animation: + * + * @skip bg_add + * @until evas_object_show + * + * And then we add a button that we will use to demonstrate the effects of + * our animation: + * + * @skip button_add + * @until evas_object_show(win) + * + * Notice that we are not adding the button with elm_win_resize_object_add() + * because we don't want the window to control the size of the button. We + * will use the transition to change the button size, so it could conflict + * with something else trying to control that size. + * + * Now, the simplest code possible to create the resize animation: + * + * @skip transit_add + * @until transit_go + * + * As you can see, this code is very easy to understand. First, we create the + * transition itself with elm_transit_add(). Then we add the button to this + * transition with elm_transit_object_add(), which means that the transition + * will operate over this button. The effect that we want now is changing the + * object size from 100x50 to 300x150, and can be achieved by adding the + * resize effect with elm_transit_effect_resizing_add(). + * + * Finally, we set the transition time to 5 seconds and start the transition + * with elm_transit_go(). If we wanted more effects applied to this + * button, we could add them to the same transition. See the + * @ref transit_example_03_c to watch many transitions being applied to an + * object. + */ + +/** + * @page transit_example_02_explained elm_transit - Chained transitions. + * @dontinclude transit_example_02.c + * + * The full code for this example can be found at @ref transit_example_02_c. + * + * This example shows how to implement a chain of transitions. This chain is + * used to start a transition just after another transition ended. Similarly + * to every other elementary example, we create a window, set its title, + * size, autodel property, and setup a callback to exit the program when + * finished: + * + * @skip on_done + * @until evas_object_resize + * + * We also add a resizeable white background to use behind our animation: + * + * @skip bg_add + * @until evas_object_show + * + * This example will have a chain of 4 transitions, each of them applied to + * one button. Thus we create 4 different buttons: + * + * @skip button_add + * @until evas_object_show(bt4) + * + * Now we create a simple translation transition that will be started as soon + * as the program loads. It will be our first transition, and the other + * transitions will be started just after this transition ends: + * + * @skip transit_add + * @until transit_go + * + * The code displayed until now has nothing different from what you have + * already seen in @ref transit_example_01_explained, but now comes the new + * part: instead of creating a second transition that will start later using + * a timer, we create the it normally, and use + * elm_transit_chain_transit_add() instead of elm_transit_go. Since we are + * adding it in a chain after the first transition, it will start as soon as + * the first transition ends: + * + * @skip transit_add + * @until transit_chain_transit_add + * + * Finally we add the 2 other transitions to the chain, and run our program. + * It will make one transition start after the other finish, and there is the + * transition chain. + */ + +/** + * @page bg_example_01_c bg_example_01.c + * @include bg_example_01.c + * @example bg_example_01.c + */ + +/** + * @page bg_example_02_c bg_example_02.c + * @include bg_example_02.c + * @example bg_example_02.c + */ + +/** + * @page bg_example_03_c bg_example_03.c + * @include bg_example_03.c + * @example bg_example_03.c + */ + +/** + * @page actionslider_example_01 Actionslider example + * @include actionslider_example_01.c + * @example actionslider_example_01.c + */ + +/** + * @page animator_example_01_c Animator example 01 + * @include animator_example_01.c + * @example animator_example_01.c + */ + +/** + * @page transit_example_01_c Transit example 1 + * @include transit_example_01.c + * @example transit_example_01.c + */ + +/** + * @page transit_example_02_c Transit example 2 + * @include transit_example_02.c + * @example transit_example_02.c + */ diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index 2f50a1a1ec..b52e9b4a70 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -690,264 +690,6 @@ extern "C" { * "moved" - window that holds the canvas was moved */ - /** - * @page bg_01_example_page elm_bg - Plain color background. - * @dontinclude bg_example_01.c - * - * The full code for this example can be found at @ref bg_example_01_c, - * in the function @c test_bg_plain. It's part of the @c elementar_test - * suite, and thus has the code for the three examples referenced by this - * documentation. - * - * This first example just sets a default background with a plain color. The - * first part consists of creating an Elementary window. It's the common - * piece of code that you'll see everywhere in Elementary: @skip elm_main - * @until autodel_set - * - * Now we really create our background object, using the window object as - * its parent: - * - * @skipline bg_add - * - * Then we set the size hints of the background object so that it will use - * all space available for it, and then add it as a resize object to the - * window, making it visible in the end: - * - * @skip size_hint_weight_set - * @until resize_object_add - * - * See @ref evas_object_size_hint_weight_set and elm_win_resize_object_add() - * for more detailed info about these functions. - * - * The end of the example is quite simple, just setting the minimum and - * maximum size of the background, so the Elementary window knows that it - * has to have at least the minimum size. The background also won't scale to - * a size above its maximum. Then we resize the window and show it in the - * end: - * - * @skip set size hints - * @until } - * - * And here we finish our very simple background object usage example. - * - */ - - /** - * @page bg_02_example_page elm_bg - Image background. - * @dontinclude bg_example_02.c - * - * The full code for this example can be found at @ref bg_example_02_c, - * in the function @c test_bg_image. It's part of the @c elementar_test - * suite, and thus has the code for the three examples referenced by this - * documentation. - * - * This is the second example, and shows how to use the Elementary - * background object to set an image as background of your application. - * - * We start this example exactly in the same way as the previous one, even - * when creating the background object: - * - * @skip elm_main - * @until bg_add - * - * Now it's the different part. - * - * Our background will have an image, that will be displayed over the - * background color. Before loading the image, we set the load size of the - * image. The load size is a hint about the size that we want the image - * displayed in the screen. It's not the exact size that the image will have, - * but usually a bit bigger. The background object can still be scaled to a - * size bigger than the one set here. Setting the image load size to - * something smaller than its real size will reduce the memory used to keep - * the pixmap representation of the image, and the time to load it. Here we - * set the load size to 20x20 pixels, but the image is loaded with a size - * bigger than that (since it's just a hint): - * - * @skipline load_size_set - * - * And set our background image to be centered, instead of stretched or - * scaled, so the effect of the elm_bg_load_size_set() can be easily - * understood: - * - * @skipline option_set - * - * We need a filename to set, so we get one from the previous installed - * images in the @c PACKAGE_DATA_DIR, and write its full path to a buffer. - * Then we use this buffer to set the filename in the background object: - * - * @skip snprintf - * @until bg_file_set - * - * Notice that the third argument of the elm_bg_file_set() function is @c - * NULL, since we are setting an image to this background. This function - * also supports setting an edje group as background, in which case the @c - * group parameter wouldn't be @c NULL, but be the name of the group - * instead. - * - * Finally, we can set the size hints, add the background as a resize - * object, and resize the window, exactly the same thing we do in the @ref - * bg_01_example_page example: - * - * @skip size_hint - * @until } - * - * And this is the end of this example. - * - * This example will look like this: - * @image html screenshots/bg_01.png - * @image latex screenshots/bg_01.eps - */ - - /** - * @page bg_03_example_page elm_bg - Background properties. - * @dontinclude bg_example_03.c - * - * The full code for this example can be found at @ref bg_example_03_c, in the - * function @c test_bg_options, with the callbacks @c _cb_overlay_changed, @c - * _cb_color_changed and @c _cb_radio_changed defined in the beginning of the - * file. It's part of the @c elementar_test suite, and thus has the code for - * the three examples referenced by this documentation. - * - * This example will show the properties available for the background object, - * and will use of some more widgets to set them. - * - * In order to do this, we will set some callbacks for these widgets. The - * first is for the radio buttons that will be used to choose the option - * passed as argument to elm_bg_option_set(): - * - * @skip _cb_radio_changed - * @until } - * - * The next callback will be used when setting the overlay (using - * elm_bg_overlay_set()): - * - * @skip _cb_overlay_changed - * @until } - * @until } - * - * And the last one, used to set the color (with elm_bg_color_set()): - * - * @skip _cb_color_changed - * @until } - * - * We will get back to what these functions do soon. If you want to know more - * about how to set these callbacks and what these widgets are, look for: - * @li elm_radio_add() - * @li elm_check_add() - * @li elm_spinner_add() - * - * Now going to the main function, @c test_bg_options, we have the common - * code with the other examples: - * - * @skip bg-options - * @until autodel_set - * - * We add a plain background to this window, so it will have the default - * background color behind everything: - * - * @skip bg = elm_bg_add - * @until evas_object_show(bg) - * - * Then we add a vertical box (elm_box_add()) that will hold the background - * object that we are going to play with, as well as a horizontal box that - * will hold widgets: - * - * @skip elm_box_add - * @until evas_object_show - * - * Now we add the background object that is going to be of use for our - * example. It is an image background, as used in @ref bg_02_example_page , - * so the code should be familiar: - * - * @skip elm_bg_add - * @until evas_object_show - * - * Notice the call to elm_box_pack_end(): it will pack the background object - * in the end of the Elementary box declared above. Just refer to that - * documentation for more info. - * - * Since this Elementary background is already an image background, we are - * going to play with its other properties. We will change its option - * (CENTER, SCALE, STRETCH, TILE), its color (RGB), and add an overlay to it. - * For all of these properties, we are going to add widgets that will - * configure them. - * - * First, lets add the horizontal box that will hold these widgets: - * @skip hbox - * @until align_set - * - * For now, just consider this @c hbox as a rectangle that will contain the - * widgets, and will distribute them horizontally inside its content. Then we - * add radio buttons that will allow us to choose the property to use with - * this background: - * - * @skip radio_add - * @until evas_object_show - * - * Again, I won't give details about the use of these widgets, just look for - * their documentation if necessary. It's enough to know for now that we are - * packing them in the @c hbox, setting a label for them, and the most - * important parts: setting its value to @c ELM_BG_OPTION_CENTER and its - * callback to @c _cb_radio_changed (the function defined in the beginning of - * this example). We do this for the next 3 radio buttons added after this - * one, each of them with a different value. - * - * Now taking a look at the code of the callback @c _cb_radio_changed again, - * it will call elm_bg_option_set() with the value set from the checked radio - * button, thus setting the option for this background. The background is - * passed as argument to the @p data parameter of this callback, and is - * referenced here as @c o_bg. - * - * Later we set the default value for this radio button: - * - * @skipline elm_radio_value_set - * - * Then we add a checkbox for the elm_bg_overlay_set() function: - * - * @skip check_add - * @until evas_object_show - * - * Now look at the code of the @c _cb_overlay_changed again. If the checkbox - * state is checked, an overlay will be added to the background. It's done by - * creating an Edje object, and setting it with elm_bg_overlay_set() to the - * background object. For information about what are and how to set Edje - * object, look at the Edje documentation. - * - * Finally we add a spinner object (elm_spinner_add()) to be used to select - * the color of our background. In its callback it's possible to see the call - * to elm_bg_color_set(), which will change the color of this background. - * This color is used by the background to fill areas where the image doesn't - * cover (in this case, where we have an image background). The spinner is - * also packed into the @c hbox : - * - * @skip elm_spinner_add - * @until evas_object_show - * - * Then we just have to pack the @c hbox inside the @c box, set some size - * hints, and show our window: - * - * @skip pack_end - * @until } - * - * Now to see this code in action, open elementary_test, and go to the "Bg - * Options" test. It should demonstrate what was implemented here. - */ - - /** - * @page bg_example_01_c bg_example_01.c - * @include bg_example_01.c - */ - - /** - * @page bg_example_02_c bg_example_02.c - * @include bg_example_02.c - */ - - /** - * @page bg_example_03_c bg_example_03.c - * @include bg_example_03.c - */ - /** * @defgroup Bg Bg * @@ -2771,111 +2513,6 @@ extern "C" { * expensive reactions to the value change. */ - /** - * @page actionslider_example_page Actionslider usage - * @dontinclude actionslider_example_01.c - * - * For this example we are going to assume knowledge of evas smart callbacks - * and some basic evas object functions. Elementary is not meant to be used - * without evas, if you're not yet familiar with evas it probably is worth - * checking that out. - * - * And now to the example, when using Elementary we start by including - * Elementary.h: - * @skipline #include - * - * Next we define some callbacks, they all share the same signature because - * they are all to be used with evas_object_smart_callback_add(). - * The first one just prints the selected label(in two different ways): - * @until } - * - * This next callback is a little more interesting, it makes the selected - * label magnetic(except if it's the center label): - * @until } - * - * This callback enables or disables the magnetic propertty of the center - * label: - * @until } - * - * And finally a callback to stop the main loop when the window is closed: - * @until } - * - * To be able to create our actionsliders we need to do some setup, but this - * isn't really relevant here, so if you want to know about that go @ref - * Win "here". - * - * With all that boring stuff out of the way we can proceed to creating some - * actionsliders.@n - * All actionsliders are created the same way: - * @skipline actionslider_add - * Next we must choose where the indicator starts, and for this one we choose - * the right, and set the right as magnetic: - * @skipline indicator_pos_set - * @until magnet_pos_set - * - * We then set the labels for the left and right, passing NULL as an argument - * to any of the labels makes that position have no label. - * @until Stop - * - * Furthermore we mark both left and right as enabled positions, if we didn't - * do this all three positions would be enabled: - * @until RIGHT - * - * Having the the enabled positions we now add a smart callback to change - * which position is magnetic, so that only the last selected position is - * magnetic: - * @until NULL - * - * And finally we set our printing callback and show the actionslider: - * @until object_show - * @skip pack_end - * - * For our next actionslider we are going to do much as we did for the - * previous except we are going to have the center as the magnet(and not - * change it): - * @skipline actionslider_add - * @skipline indicator_pos_set - * @until object_show - * - * And another actionslider, in this one the indicator starts on the left. - * It has labels only in the center and right, and both bositions are - * magnetic. Because the left doesn't have a label and is not magnetic once - * the indicator leaves it can't return: - * @skipline actionslider_add - * @skipline indicator_pos_set - * @until object_show - * @note The greyed out area is a @ref Styles "style". - * - * And now an actionslider with a label in the indicator, and whose magnet - * properties change based on what was last selected: - * @skipline actionslider_add - * @skipline indicator_pos_set - * @until object_show - * @note The greyed out area is a @ref Styles "style". - * - * We are almost done, this next one is just an actionslider with all - * positions magnetized and having every possible label: - * @skipline actionslider_add - * @skipline indicator_pos_set - * @until object_show - * - * And for our last actionslider we have one that turns the magnetic property - * on and off: - * @skipline actionslider_add - * @skipline indicator_pos_set - * @until object_show - * - * The example will look like this: - * @image html screenshots/actionslider_01.png - * @image latex screenshots/actionslider_01.eps - * - * See the full source code @ref actionslider_example_01 "here" - */ - /** - * @page actionslider_example_01 Actionslider example - * @include actionslider_example_01.c - * @example actionslider_example_01.c - */ /** * @addtogroup Actionslider Actionslider * @@ -3815,95 +3452,6 @@ EAPI Elm_Genlist_Item *elm_genlist_item_sorted_insert(Evas_Object *obj, const El * default */ - /** - * @page elm_animator_example_page_01 Animator usage - * @dontinclude animator_example_01.c - * - * For this example we will be using a bit of evas, you could animate a - * elementary widget in much the same way, but to keep things simple we use - * an evas_object_rectangle. - * - * As every other example we start with our include and a simple callback to - * exit the app when the window is closed: - * @skipline #include - * @until } - * - * This next callback is the one that actually creates our animation, it - * changes the size, position and color of a rectangle given to it in @a - * data: - * @until } - * - * Next we have a callback that prints a string, nothing special: - * @until } - * - * This next callback is a little more interesting, it has a state variable - * to know if the animation is currently paused or running, and it toogles - * the state of the animation accordingly: - * @until } - * @until } - * @until } - * - * Finally we have a callback to stop the animation: - * @until } - * - * As with every example we need to do a bit of setup before we can actually - * use an animation, but for the purposes of this example that's not relevant - * so let's just skip to the good stuff, creating an animator: - * @skipline animator_add - * @note Since elm_animator is not a widget we can give it a NULL parent. - * - * Now that we have an elm_animator we set it's duration to 1 second: - * @line duration_set - * - * We would also like our animation to be reversible, so: - * @line reverse_set - * - * We also set our animation to repeat as many times as possible, which will - * mean that _end_cb will only be called after UINT_MAX * 2 seconds(UINT_MAX - * for the animation running forward and UNIT_MAX for the animation running - * backwards): - * @line repeat_set - * - * To add some fun to our animation we will use the IN_OUT curve style: - * @line curve_style - * - * To actually animate anything we need an operation callback: - * @line operation_callback - * - * Even though we set our animation to repeat for a very long time we are - * going to set a end callback to it: - * @line completion_callback - * @note Notice that stoping the animation with the stop button will not make - * _end_cb be called. - * - * Now that we have fully set up our animator we can tell it to start - * animating: - * @line animate - * - * There's a bit more of code that doesn't really matter to use so we skip - * right down to our last interesting point: - * @skipline animator_del - * @note Because we created our animator with no parent we need to delete it - * ourselves. - * - * The example should look like this: - * @image html screenshots/animator_example_01.png - * @image latex screenshots/animator_example_01.eps - * @n - * @image html screenshots/animator_example_02.png - * @image latex screenshots/animator_example_02.eps - * @n - * @image html screenshots/animator_example_03.png - * @image latex screenshots/animator_example_03.eps - * - * The full source code for this example can be found @ref - * animator_example_01_c "here" - */ - /** - * @page animator_example_01_c Animator example 01 - * @include animator_example_01.c - * @example animator_example_01.c - */ /** * @addtogroup Animator Animator * @ingroup Elementary @@ -4239,150 +3787,6 @@ EAPI Elm_Genlist_Item *elm_genlist_item_sorted_insert(Evas_Object *obj, const El * "dismissed" - the ctxpopup was dismissed */ - - /** - * @page transit_example_01_c - * @include transit_example_01.c - */ - - /** - * @page transit_example_02_c - * @include transit_example_02.c - */ - - /** - * @page transit_example_03_c elm_transit - Combined effects and options. - * - * This example shows how to apply the following transition effects: - * @li translation - * @li color - * @li rotation - * @li wipe - * @li zoom - * @li resizing - * - * It allows you to apply more than one effect at once, and also allows to - * set properties like event_enabled, auto_reverse, repeat_times and - * tween_mode. - * - * @include transit_example_03.c - */ - - /** - * @page transit_example_04_c elm_transit - Combined effects over two objects. - * - * This example shows how to apply the transition effects: - * @li flip - * @li resizable_flip - * @li fade - * @li blend - * over two objects. This kind of transition effect is used to make one - * object disappear and another one appear on its place. - * - * You can mix more than one effect of this type on the same objects, and the - * transition will apply both. - * - * @include transit_example_04.c - */ - - /** - * @page transit_example_01_explained elm_transit - Basic transit usage. - * @dontinclude transit_example_01.c - * - * The full code for this example can be found at @ref transit_example_01_c. - * - * This example shows the simplest way of creating a transition and applying - * it to an object. Similarly to every other elementary example, we create a - * window, set its title, size, autodel property, and setup a callback to - * exit the program when finished: - * - * @skip on_done - * @until evas_object_resize - * - * We also add a resizeable white background to use behind our animation: - * - * @skip bg_add - * @until evas_object_show - * - * And then we add a button that we will use to demonstrate the effects of - * our animation: - * - * @skip button_add - * @until evas_object_show(win) - * - * Notice that we are not adding the button with elm_win_resize_object_add() - * because we don't want the window to control the size of the button. We - * will use the transition to change the button size, so it could conflict - * with something else trying to control that size. - * - * Now, the simplest code possible to create the resize animation: - * - * @skip transit_add - * @until transit_go - * - * As you can see, this code is very easy to understand. First, we create the - * transition itself with elm_transit_add(). Then we add the button to this - * transition with elm_transit_object_add(), which means that the transition - * will operate over this button. The effect that we want now is changing the - * object size from 100x50 to 300x150, and can be achieved by adding the - * resize effect with elm_transit_effect_resizing_add(). - * - * Finally, we set the transition time to 5 seconds and start the transition - * with elm_transit_go(). If we wanted more effects applied to this - * button, we could add them to the same transition. See the - * @ref transit_example_03_c to watch many transitions being applied to an - * object. - */ - - /** - * @page transit_example_02_explained elm_transit - Chained transitions. - * @dontinclude transit_example_02.c - * - * The full code for this example can be found at @ref transit_example_02_c. - * - * This example shows how to implement a chain of transitions. This chain is - * used to start a transition just after another transition ended. Similarly - * to every other elementary example, we create a window, set its title, - * size, autodel property, and setup a callback to exit the program when - * finished: - * - * @skip on_done - * @until evas_object_resize - * - * We also add a resizeable white background to use behind our animation: - * - * @skip bg_add - * @until evas_object_show - * - * This example will have a chain of 4 transitions, each of them applied to - * one button. Thus we create 4 different buttons: - * - * @skip button_add - * @until evas_object_show(bt4) - * - * Now we create a simple translation transition that will be started as soon - * as the program loads. It will be our first transition, and the other - * transitions will be started just after this transition ends: - * - * @skip transit_add - * @until transit_go - * - * The code displayed until now has nothing different from what you have - * already seen in @ref transit_example_01_explained, but now comes the new - * part: instead of creating a second transition that will start later using - * a timer, we create the it normally, and use - * elm_transit_chain_transit_add() instead of elm_transit_go. Since we are - * adding it in a chain after the first transition, it will start as soon as - * the first transition ends: - * - * @skip transit_add - * @until transit_chain_transit_add - * - * Finally we add the 2 other transitions to the chain, and run our program. - * It will make one transition start after the other finish, and there is the - * transition chain. - */ - /* transit */ /** *