and beef up getting started with a longer example
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 10 Aug 2011 06:00:04 +0000 (06:00 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 10 Aug 2011 06:00:04 +0000 (06:00 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@62287 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/Elementary.h.in

index 55d46d8..b2f9870 100644 (file)
@@ -50,18 +50,18 @@ organisations behind this, as listed in the @ref authors page.
  *
  * To write an Elementary app, you can get started with the following:
  *
- * @code
- * #include <Elementary.h>
- * EAPI int
- * elm_main(int argc, char **argv)
- * {
*    // create window(s) here and do any application init
*    elm_run(); // run main loop
*    elm_shutdown(); // after mainloop finishes running, shutdown
*    return 0; // exit 0 for exit code
- * }
- * ELM_MAIN()
- * @endcode
+@code
+#include <Elementary.h>
+EAPI int
+elm_main(int argc, char **argv)
+{
+   // create window(s) here and do any application init
+   elm_run(); // run main loop
+   elm_shutdown(); // after mainloop finishes running, shutdown
+   return 0; // exit 0 for exit code
+}
+ELM_MAIN()
+@endcode
  *
  * To use autotools (which helps in many ways in the long run, like being able
  * to immediately create releases of your software directly from your tree
@@ -176,7 +176,78 @@ make maintainer-clean
  * There is a more advanced way of making use of the quicklaunch infrastructure
  * in Elementary (which will not be covered here due to its more advanced
  * nature).
- */
+ * 
+ * Now let's actually create an interactive "Hello World" gui that you can
+ * click the ok button to exit. It's more code because this now does something
+ * much more significant, but it's still very simple:
+ *
+@code
+#include <Elementary.h>
+
+static void
+on_done(void *data, Evas_Object *obj, void *event_info)
+{
+   // quit the mainloop (elm_run function will return)
+   elm_exit();
+}
+
+EAPI int
+elm_main(int argc, char **argv)
+{
+   Evas_Object *win, *bg, *box, *lab, *btn;
+   
+   // new window - do the usual and give it a name, title and delete handler
+   win = elm_win_add(NULL, "hello", ELM_WIN_BASIC);
+   elm_win_title_set(win, "Hello");
+   // when the user clicks "close" on a window there is a request to delete
+   evas_object_smart_callback_add(win, "delete,request", on_done, NULL);
+   
+   // add a standard bg
+   bg = elm_bg_add(win);
+   // add object as a resize object for the window (controls window minimum
+   // size as well as gets resized if window is resized)
+   elm_win_resize_object_add(win, bg);
+   evas_object_show(bg);
+   
+   // add a box object - default is vertical. a box holds children in a row,
+   // either horizontally or vertically. nothing more.
+   box = elm_box_add(win);
+   // make the box hotizontal
+   elm_box_horizontal_set(box, EINA_TRUE);
+   // add object as a resize object for the window (controls window minimum
+   // size as well as gets resized if window is resized)
+   elm_win_resize_object_add(win, box);
+   evas_object_show(box);
+   
+   // add a label widget, set the text and put it in the pad frame
+   lab = elm_label_add(win);
+   // set default text of the label
+   elm_object_text_set(lab, "Hello out there world!");
+   // pack the label at the end of the box
+   elm_box_pack_end(box, lab);
+   evas_object_show(lab);
+   
+   // add an ok button
+   btn = elm_button_add(win);
+   // set default text of button to "OK"
+   elm_object_text_set(btn, "OK");
+   // pack the button at the end of the box
+   elm_box_pack_end(box, btn);
+   evas_object_show(btn);
+   // call on_done when button is clicked
+   evas_object_smart_callback_add(btn, "clicked", on_done, NULL);
+   
+   // now we are done, show the window
+   evas_object_show(win);
+   
+   // run the mainloop and process events and callbacks
+   elm_run();
+   return 0;
+}
+ELM_MAIN()
+@endcode
+   * 
+   */
 
 /**
 @page authors Authors