Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/bin


Modified Files:
        etk_canvas_test.c 


Log Message:
[Etk_Canvas] Initial code to support random widget placement within the
canvas. Not done. Needs formatting. API functions missing. Works. (=



===================================================================
RCS file: /cvs/e/e17/libs/etk/src/bin/etk_canvas_test.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- etk_canvas_test.c   28 Sep 2007 19:52:48 -0000      1.15
+++ etk_canvas_test.c   11 Apr 2008 03:25:19 -0000      1.16
@@ -3,15 +3,84 @@
 #include <stdlib.h>
 #include "config.h"
 
+#include "Ecore.h"
+
+static Etk_Widget *win = NULL;
+Etk_Widget *canvas;
+
 static void _etk_test_canvas_object_add(void *data);
 
+static Ecore_Timer *_etk_test_canvas_timer = NULL;
+static Ecore_Timer *_etk_test_canvas_timer2 = NULL;
+
+static int _etk_test_canvas_update(void *data);
+static int _etk_test_canvas_update2(void *data);
+
+/* Creates the vbox for the progress bars */
+static void etk_test_canvas_progress_bars_create(int x, int y)
+{
+   Etk_Widget *vbox;
+   Etk_Widget *pbar;
+   Etk_Widget *pbar2;
+
+   vbox = etk_vbox_new(ETK_TRUE, 5);
+
+   pbar = etk_progress_bar_new_with_text("0% done");
+   etk_box_append(ETK_BOX(vbox), pbar, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
+
+   pbar2 = etk_progress_bar_new_with_text("Loading...");
+   etk_progress_bar_pulse_step_set(ETK_PROGRESS_BAR(pbar2), 0.015);
+   etk_box_append(ETK_BOX(vbox), pbar2, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
+
+   _etk_test_canvas_timer = ecore_timer_add(0.05, _etk_test_canvas_update, 
pbar);
+   _etk_test_canvas_timer2 = ecore_timer_add(0.025, _etk_test_canvas_update2, 
pbar2);
+
+   etk_signal_connect_swapped_by_code(ETK_OBJECT_DESTROYED_SIGNAL, 
ETK_OBJECT(pbar), ETK_CALLBACK(ecore_timer_del), _etk_test_canvas_timer);
+   etk_signal_connect_swapped_by_code(ETK_OBJECT_DESTROYED_SIGNAL, 
ETK_OBJECT(pbar2), ETK_CALLBACK(ecore_timer_del), _etk_test_canvas_timer2);
+
+        etk_canvas_widget_add(ETK_CANVAS(canvas), vbox);
+        etk_canvas_widget_move(ETK_CANVAS(canvas), vbox, x, y);
+}
+
+/* Updates the first progress bar */
+static int _etk_test_canvas_update(void *data)
+{
+   Etk_Widget *pbar;
+   double fraction;
+   char text[32];
+
+   pbar = data;
+
+   fraction = etk_progress_bar_fraction_get(ETK_PROGRESS_BAR(pbar));
+   fraction += 0.01;
+
+   if (fraction > 1.0)
+      fraction = 0.0;
+
+   snprintf(text, sizeof(text), "%d%% done", (int)(fraction * 100.0));
+   etk_progress_bar_text_set(ETK_PROGRESS_BAR(pbar), text);
+   etk_progress_bar_fraction_set(ETK_PROGRESS_BAR(pbar), fraction);
+
+   return 1;
+}
+
+/* Updates the second progress bar */
+static int _etk_test_canvas_update2(void *data)
+{
+   Etk_Widget *pbar;
+
+   pbar = data;
+   etk_progress_bar_pulse(ETK_PROGRESS_BAR(pbar));
+
+   return 1;
+}
+
 /* Creates the window for the canvas test */
 void etk_test_canvas_window_create(void *data)
 {
-   static Etk_Widget *win = NULL;
-   Etk_Widget *canvas;
    Etk_Widget *vbox;
    Etk_Widget *button;
+        int i;
 
    if (win)
    {
@@ -28,13 +97,19 @@
    etk_container_add(ETK_CONTAINER(win), vbox);
 
    canvas = etk_canvas_new();
-   etk_widget_size_request_set(canvas, 300, 200);
+   etk_widget_size_request_set(canvas, 500, 350);
    etk_box_append(ETK_BOX(vbox), canvas, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 
0);
 
    button = etk_button_new_from_stock(ETK_STOCK_LIST_ADD);
    etk_button_label_set(ETK_BUTTON(button), "Add object");
    etk_signal_connect_swapped_by_code(ETK_BUTTON_CLICKED_SIGNAL, 
ETK_OBJECT(button), ETK_CALLBACK(_etk_test_canvas_object_add), canvas);
    etk_box_append(ETK_BOX(vbox), button, ETK_BOX_START, ETK_BOX_NONE, 0);
+
+        /* add some progess bars to the canvas */
+        for (i = 0; i < 3; i++)
+        {
+                       etk_test_canvas_progress_bars_create(50 + 50 * i, 50 + 
50 * i);
+        }
 
    etk_widget_show_all(win);
 }



-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to