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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs