From 2d03ee6f2fc70c402c4d4ec5e73a838b36415ba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C3=A9nier?= Date: Thu, 25 Jun 2015 18:02:22 +0200 Subject: [PATCH] Wiki pages panes_tutorial created: Initializing, Creating, Configure, handling signals + image + code c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Clément Bénier Signed-off-by: Pierre Le Magourou Signed-off-by: Cedric BAIL --- media/code_c/tutorial/panes/panes.c | 116 +++++++++++++ media/panes.png | Bin 0 -> 51324 bytes pages/docs.txt | 1 + pages/tutorial/panes_tutorial.txt | 247 ++++++++++++++++++++++++++++ 4 files changed, 364 insertions(+) create mode 100644 media/code_c/tutorial/panes/panes.c create mode 100644 media/panes.png create mode 100644 pages/tutorial/panes_tutorial.txt diff --git a/media/code_c/tutorial/panes/panes.c b/media/code_c/tutorial/panes/panes.c new file mode 100644 index 000000000..4ab66e325 --- /dev/null +++ b/media/code_c/tutorial/panes/panes.c @@ -0,0 +1,116 @@ +#include + +// clicked callback +static void +_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + printf("Clicked\n"); +} + +// press callback +static void +_press_cb(void *data, Evas_Object *obj, void *event_info) +{ + printf("Pressed\n"); +} + +// unpress callback +static void +_unpress_cb(void *data, Evas_Object *obj, void *event_info) +{ + printf("Unpressed, size : %f\n", elm_panes_content_left_size_get(obj)); +} + +// double clicked callback +static void +_clicked_double_cb(void *data, Evas_Object *obj, void *event_info) +{ + static double size = 0.0; + double tmp_size = 0.0; + tmp_size = elm_panes_content_left_size_get(obj); + if (tmp_size > 0) + { + elm_panes_content_left_size_set(obj, 0.0); + printf("Double clicked, hidden.\n"); + } + else + { + elm_panes_content_left_size_set(obj, size); + printf("Double clicked, restoring size.\n"); + } + size = tmp_size; +} + + EAPI_MAIN int +elm_main(int argc, char **argv) +{ + Evas_Object *win; + + win = elm_win_util_standard_add("Panes", "Panes Tutorial"); + elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); + elm_win_autodel_set(win, EINA_TRUE); + //win 400x400 px + evas_object_resize(win, 400, 400); + + Evas_Object *panes, *panes_h, *bt; + + // Add an elm_panes + panes = elm_panes_add(win); + evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, panes); + evas_object_show(panes); + + // Add a horizontal elm_panes + panes_h = elm_panes_add(win); + elm_panes_horizontal_set(panes_h, EINA_TRUE); + elm_object_part_content_set(panes, "left", panes_h); + + // Create a button object + bt = elm_button_add(win); + elm_object_text_set(bt, "Right"); + evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(bt); + + // and set it to the "right" part of the vertical Panes + elm_object_part_content_set(panes, "right", bt); + + // Create a "Up" button + bt = elm_button_add(win); + elm_object_text_set(bt, "Up"); + evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(bt); + elm_object_part_content_set(panes_h, "left", bt); + + // Create a "Down" button + bt = elm_button_add(win); + elm_object_text_set(bt, "Down"); + evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(bt); + elm_object_part_content_set(panes_h, "right", bt); + + // Set the proportion of the panes to 80% + elm_panes_content_left_size_set(panes, 0.8); + elm_panes_content_left_size_set(panes_h, 0.8); + + //panes callbacks + evas_object_smart_callback_add(panes, "clicked", _clicked_cb, panes); + evas_object_smart_callback_add(panes, "press", _press_cb, panes); + evas_object_smart_callback_add(panes, "unpress", _unpress_cb, panes); + evas_object_smart_callback_add(panes, "clicked,double", _clicked_double_cb, + panes); + + //panes_h callbacks + evas_object_smart_callback_add(panes_h, "clicked", _clicked_cb, panes_h); + evas_object_smart_callback_add(panes_h, "press", _press_cb, panes_h); + evas_object_smart_callback_add(panes_h, "unpress", _unpress_cb, panes_h); + evas_object_smart_callback_add(panes_h, "clicked,double", _clicked_double_cb, + panes_h); + + evas_object_show(win); + elm_run(); + return 0; +} +ELM_MAIN() diff --git a/media/panes.png b/media/panes.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb363317abe3b1f2332653d8d5a8fb48509d472 GIT binary patch literal 51324 zcmXt;b8sYG7se;Ht&NS1y|Fgl*tTukw#^ME*f`nPwl=oyZ{9z?n(C>V?&+@Er*EHg zpWk^R73C$7;PK%B007cYDKRAg04xEt{e}exeIppDt%D9gnhVPb0{{*22=9hapx@9& zGLm9|um3&;UFFH3J#Y?En$7?K0>*zE7$7SL7qk<`<)@rD%r-P03Jazdr!NrzKmzzF zCamJIcHU+En_~4B^*2Y>>eH?DO|~CDF7wv!u3e_@`EBEm3}Xxi8>OCm()wVvqeEEe z@vtH3)jH;)mT^oFD54MgYePb?Z=lo|paYRQ48CKdXf}pw^frcG7=C-SnNH5MYb`Io zsj>AVl1;2T>6;ReL#5B%8f*TuT-J)*0ONi$bn>l$MJ_nYSC zX7|oLqU2FATGi#|Hf~?pa%D37SP9^&jje4>tu^5Jt>^1a@|!25LN4#abw7�logH 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 A#sB~S literal 0 HcmV?d00001 diff --git a/pages/docs.txt b/pages/docs.txt index cefed8b88..40c2f2dd5 100644 --- a/pages/docs.txt +++ b/pages/docs.txt @@ -39,6 +39,7 @@ Go check the current available version of EFL on each distro/platform: * [[tutorial/basic_tutorial|Basic Tutorial]] * [[tutorial/genlist_tutorial|Genlist Tutorial]] + * [[tutorial/panes_tutorial|Panes Tutorial]] ---- diff --git a/pages/tutorial/panes_tutorial.txt b/pages/tutorial/panes_tutorial.txt new file mode 100644 index 000000000..a681e85af --- /dev/null +++ b/pages/tutorial/panes_tutorial.txt @@ -0,0 +1,247 @@ +~~Title: Panes Tutorial~~ +==== Panes Tutorial ==== + +This tutorial explains how to use Panes in the application. + +=== Table of Contents === + + * [[#Initializing_the_Application|Initializing the Application]] + * [[#Creating_a_Panes_Widget|Creating a Panes Widget]] + * [[#Configure_the_Panes|Configure the Panes]] + * [[#Handling_Signals|Handling Signals]] + + +A panes example : {{ :panes.png?direct |list}} + +//**__The whole code__ : **//{{/code_c/tutorial/panes/panes.c}} +-------- + +=== Initializing the Application === + +The code below shows a typical elementary application that creates a window +entitled "Panes Tutorial". The panes goes inside. + + +#include + +EAPI_MAIN int +elm_main(int argc, char **argv) +{ + Evas_Object *win; + + win = elm_win_util_standard_add("Panes", "Panes Tutorial"); + elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); + elm_win_autodel_set(win, EINA_TRUE); + //win 400x400 px + evas_object_resize(win, 400, 400); + + //panes code here + + evas_object_show(win); + elm_run(); + return 0; +} +ELM_MAIN() + + +=== Creating a Panes Widget === + +The elm_panes widget adds a draggable bar between two contents. When dragged, +this bar resizes the contents. To create a new Panes into an Elementary +object, use the ''elm_panes_add()'' function: + + +// Add an elm_panes +Evas_Object *panes; +panes = elm_panes_add(win); +evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +elm_win_resize_object_add(win, panes); +evas_object_show(panes); + + +=== Configure the Panes === + +By default, the orientation of the Panes is vertical. To modify the +orientation, use the ''elm_panes_horizontal_set()'' function. + + +Evas_Object *panes_h; +// Add a horizontal elm_panes +panes_h = elm_panes_add(win); +elm_panes_horizontal_set(panes_h, EINA_TRUE); + + +The code above creates another Panes object and sets the horizontal +orientation. To add content in a panes, use the +''elm_object_part_content_set()'' function. Here we add the horizontal Panes +''panes_h'' to the "left" part of the first Panes ''panes'' created. + + +elm_object_part_content_set(panes, "left", panes_h); + + +This is how to set a button object to the "right" side of our vertical Panes +widget. + + +// Create a button object +bt = elm_button_add(win); +elm_object_text_set(bt, "Right"); +evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); +evas_object_show(bt); + +// and set it to the "right" part of the vertical Panes +elm_object_part_content_set(panes, "right", bt); + + +The content of the horizontal Panes is set with two button objects (up and +down). When populating a vertically displayed Panes, the left content is +placed at the top, and the right content is placed at the bottom. + + +// Create a "Up" button +bt = elm_button_add(win); +elm_object_text_set(bt, "Up"); +evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); +evas_object_show(bt); +elm_object_part_content_set(panes_h, "left", bt); + +// Create a "Down" button +bt = elm_button_add(win); +elm_object_text_set(bt, "Down"); +evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); +evas_object_show(bt); +elm_object_part_content_set(panes_h, "right", bt); + + +The elm_panes can be dragged with the mouse but the proportion can also be set +with the ''elm_panes_content_left_size_set()'' and +''elm_panes_content_right_size_set()'' functions. As an example, this is how to +set the left size of both panes to 80%. + + +// Set the proportion of the panes to 80% +elm_panes_content_left_size_set(panes, 0.8); +elm_panes_content_left_size_set(panes_h, 0.8); + + +The Panes proportions can also be fixed so that the user is not able to drag +them. To do this, use the ''elm_panes_fixed_set()'' function. + + +// Fix the Panes proportion +elm_panes_fixed_set(panes_h, EINA_TRUE); + + +==== Handling Signals ==== + +The Panes widgets emit four different signals, depending on the users' +interaction with the draggable bar. + + * "press" - The pane is pressed. + * "unpressed" - The pane is released after being pressed. + * "clicked" - The pane is clicked. + * "clicked,double" - The pane is double clicked. + +A callback function is added for each of them. + +//**__"click" Signal__**// + +The callback function for the clicked signal prints "Clicked" to standard +output. + + +// click callback +static void +_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + printf("Clicked\n"); +} + + +This is how to register this callback function to the vertical panes. + + evas_object_smart_callback_add(panes, "clicked", _clicked_cb, panes); + + +//**__"press" Signal__**// + +The callback function for the clicked signal prints "Clicked" to standard +output. + + +// press callback +static void +_press_cb(void *data, Evas_Object *obj, void *event_info) +{ + printf("Pressed\n"); +} + + +The callback function for the "press" signal prints "Pressed" to the standard +output. + + +evas_object_smart_callback_add(panes, "press", _press_cb, panes); + + +//**__"unpress" Signal__**// + +For the "unpress" signal, the proportion size of the left content of the Panes +widget is printed to the standard output. To do this, use the +''elm_panes_content_left_size_get()'' function. + + +static void +_unpress_cb(void *data, Evas_Object *obj, void *event_info) +{ + printf("Unpressed, size : %f\n", elm_panes_content_left_size_get(obj)); +} + + +This is how to register this callback function to the vertical panes. + +evas_object_smart_callback_add(panes, "unpress", _unpress_cb, panes); + + +//**__"clicked,double" Signal__**// + +Hide the left part of the Panes widget on the "clicked,double" signal and set +the left proportion to 0.0. To restore the left part proportion with a double +click on the hidden part of the Panes widget, use the +''elm_panes_content_left_size_get()'' and +''elm_panes_content_left_size_set()'' functions, and a variable to store the +value of the current proportion. + + +// double clicked callback +static void +_clicked_double_cb(void *data, Evas_Object *obj, void *event_info) +{ + static double size = 0.0; + double tmp_size = 0.0; + tmp_size = elm_panes_content_left_size_get(obj); + if (tmp_size > 0) + { + elm_panes_content_left_size_set(obj, 0.0); + printf("Double clicked, hidden.\n"); + } + else + { + elm_panes_content_left_size_set(obj, size); + printf("Double clicked, restoring size.\n"); + } + size = tmp_size; +} + + +This is how to register this callback function to the Panes. + + +evas_object_smart_callback_add(panes, "clicked,double", _clicked_double_cb, panes); + +\\ +//**__The whole code__ : **//{{/code_c/tutorial/panes/panes.c}}