Enlightenment CVS committal

Author  : moom
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/bin


Modified Files:
        etk_combobox_test.c etk_embed_test.c etk_slider_test.c 
Removed Files:
        etk_spin_button_test.c 


Log Message:
* [Embed] Change API of etk_embed_new()
          Add functions: etk_embed_pointer_method_set()
                         etk_embed_position_method_set()
          Fix position of popup-windows in an embed widget
          Doc++


===================================================================
RCS file: /cvs/e/e17/libs/etk/src/bin/etk_combobox_test.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- etk_combobox_test.c 9 Mar 2007 00:49:27 -0000       1.10
+++ etk_combobox_test.c 10 Mar 2007 18:19:21 -0000      1.11
@@ -6,6 +6,13 @@
 
 static void _active_item_changed_cb(Etk_Object *object, void *data);
 
+
+/**************************
+ *
+ * Creation of the test-app window
+ *
+ **************************/
+ 
 /* Creates the window for the combobox test */
 void etk_test_combobox_window_create(void *data)
 {
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/bin/etk_embed_test.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- etk_embed_test.c    29 Dec 2006 22:10:12 -0000      1.9
+++ etk_embed_test.c    10 Mar 2007 18:19:21 -0000      1.10
@@ -2,17 +2,19 @@
 #include <math.h>
 #include <Ecore.h>
 #include <Ecore_Evas.h>
+#include <Ecore_X.h>
+#include <Ecore_X_Cursor.h>
 #include <Evas.h>
 #include "config.h"
 
-/* Test program *highly* inspired from the evas test program */
+/* Test program *highly* inspired from the Evas test program */
 
-#define ETK_TEST_PI     (3.141592654)
-
-static Etk_Widget *_etk_test_embed_widget_new(Evas *evas);
-static void _etk_test_embed_update();
-static void _etk_test_embed_resize_cb(Ecore_Evas *ecore_evas);
-static int _etk_test_embed_animator_cb(void *data);
+static void _embed_resize_cb(Ecore_Evas *ecore_evas);
+static int _embed_animator_cb(void *data);
+static Etk_Widget *_embed_widget_new(Evas *evas);
+static void _embed_update(void);
+static void _embed_position_set(void *position_data, int *x, int *y);
+static void _embed_pointer_set(void *pointer_data, Etk_Pointer_Type 
pointer_type);
 
 static Ecore_Evas *ecore_evas = NULL;
 static Evas_Object *e_logo, *backdrop;
@@ -23,6 +25,13 @@
 static int win_w = 240, win_h = 320;
 static unsigned int starting_time;
 
+
+/**************************
+ *
+ * Creation of the test-app window
+ *
+ **************************/
+ 
 /* Creates the window for the embed widget test */
 void etk_test_embed_window_create(void *data)
 {
@@ -33,18 +42,18 @@
    if (ecore_evas)
    {
       starting_time = etk_current_time_get();
-      _etk_test_embed_update();
+      _embed_update();
       ecore_evas_show(ecore_evas);
       return;
    }
    
    ecore_evas = ecore_evas_software_x11_new(NULL, 0, 0, 0, 32, 32);
    ecore_evas_title_set(ecore_evas, "Etk Embed Test");
-   ecore_evas_callback_resize_set(ecore_evas, _etk_test_embed_resize_cb);
+   ecore_evas_callback_resize_set(ecore_evas, _embed_resize_cb);
    ecore_evas_callback_delete_request_set(ecore_evas, ecore_evas_hide);
    evas = ecore_evas_get(ecore_evas);
 
-   /* Creates the evas objects */
+   /* Create the Evas objects */
    backdrop = evas_object_image_add(evas);
    evas_object_image_file_set(backdrop, PACKAGE_DATA_DIR 
"/images/backdrop.png", NULL);
    evas_object_show(backdrop);
@@ -70,8 +79,10 @@
    panel_clip = evas_object_rectangle_add(evas);
    evas_object_show(panel_clip);
    
-   /* Creates the embed widget */
-   embed = _etk_test_embed_widget_new(evas);
+   /* Create the embed widget */
+   embed = _embed_widget_new(evas);
+   etk_embed_position_method_set(ETK_EMBED(embed), _embed_position_set, 
ecore_evas);
+   etk_embed_pointer_method_set(ETK_EMBED(embed), _embed_pointer_set, 
ecore_evas);
    embed_object = etk_embed_object_get(ETK_EMBED(embed));
    evas_object_clip_set(embed_object, panel_clip);
    
@@ -79,31 +90,66 @@
    ecore_evas_resize(ecore_evas, min_size.w + 50, min_size.h + 120);
    ecore_evas_size_min_set(ecore_evas, min_size.w + 50, min_size.h + 120);
    
-   /* Updates the position of the objects */
+   /* Update the position of the objects */
    starting_time = etk_current_time_get();
-   _etk_test_embed_update();
-   ecore_animator_add(_etk_test_embed_animator_cb, NULL);
+   _embed_update();
+   ecore_animator_add(_embed_animator_cb, NULL);
    
    ecore_evas_show(ecore_evas);
 }
 
+/**************************
+ *
+ * Callbacks
+ *
+ **************************/
+
+/* Called when the window is resized */
+static void _embed_resize_cb(Ecore_Evas *ecore_evas)
+{
+   if (!ecore_evas)
+      return;
+   
+   ecore_evas_geometry_get(ecore_evas, NULL, NULL, &win_w, &win_h);
+   _embed_update();
+}
+
+/* Animates the objects */
+static int _embed_animator_cb(void *data)
+{
+   _embed_update();
+   return 1;
+}
+
+/**************************
+ *
+ * Private functions
+ *
+ **************************/
+
 /* Creates the new embed widget */
-static Etk_Widget *_etk_test_embed_widget_new(Evas *evas)
+static Etk_Widget *_embed_widget_new(Evas *evas)
 {
    Etk_Widget *embed;
    Etk_Widget *table;
    Etk_Widget *image;
-   Etk_Widget *buttons[3];
+   Etk_Widget *combobox;
+   Etk_Widget *buttons[2];
    Etk_Widget *labels[8];
    Etk_Widget *entries[6];
    int i;
    
-   
+   /* Create the children of the embed widget:
+    * Here we create the same table as in the "Table" test-app */
    image = etk_image_new_from_file(PACKAGE_DATA_DIR "/images/test.png", NULL);
    
-   buttons[0] = etk_button_new_from_stock(ETK_STOCK_DOCUMENT_OPEN);
+   combobox = etk_combobox_new_default();
+   etk_combobox_item_append(ETK_COMBOBOX(combobox), "Emphasis");
+   etk_combobox_item_append(ETK_COMBOBOX(combobox), "Exhibit");
+   etk_combobox_item_append(ETK_COMBOBOX(combobox), "Entropy");
+   
+   buttons[0] = etk_check_button_new();
    buttons[1] = etk_check_button_new();
-   buttons[2] = etk_check_button_new();
    
    labels[0] = etk_label_new("App Name");
    labels[1] = etk_label_new("Generic Info");
@@ -116,11 +162,10 @@
    
    for (i = 0; i < 6; i++)
       entries[i] = etk_entry_new();
-   
 
    table = etk_table_new(2, 10, ETK_FALSE);
    etk_table_attach(ETK_TABLE(table), image, 0, 0, 0, 0, 0, 0, ETK_TABLE_NONE);
-   etk_table_attach(ETK_TABLE(table), buttons[0], 1, 1, 0, 0, 0, 0, 
ETK_TABLE_HEXPAND);
+   etk_table_attach(ETK_TABLE(table), combobox, 1, 1, 0, 0, 0, 0, 
ETK_TABLE_HEXPAND);
    
    for (i = 0; i < 6; i++)
    {
@@ -129,34 +174,36 @@
    }
    
    etk_table_attach(ETK_TABLE(table), labels[6], 0, 0, 8, 8, 0, 0, 
ETK_TABLE_HFILL);
-   etk_table_attach_default(ETK_TABLE(table), buttons[1], 1, 1, 8, 8);
+   etk_table_attach_default(ETK_TABLE(table), buttons[0], 1, 1, 8, 8);
    etk_table_attach(ETK_TABLE(table), labels[7], 0, 0, 9, 9, 0, 0, 
ETK_TABLE_HFILL);
-   etk_table_attach_default(ETK_TABLE(table), buttons[2], 1, 1, 9, 9);
+   etk_table_attach_default(ETK_TABLE(table), buttons[1], 1, 1, 9, 9);
    
    
-   embed = etk_embed_new(evas, NULL, NULL);
+   /* Create the embed widget and pack the table into it */
+   embed = etk_embed_new(evas);
    etk_container_add(ETK_CONTAINER(embed), table);
    etk_widget_show_all(embed);
    
    return embed;
 }
 
-/* Updates the geometry of the objects */
-static void _etk_test_embed_update()
+/* Updates the geometry of the different Evas objects */
+static void _embed_update(void)
 {
    double t;
    int alpha;
    Etk_Size embed_size;
    int y;
    
+   /* Calculate the current progress */
    t = ETK_MAX(0.0, etk_current_time_get() - starting_time) / 1000.0;
    if (t <= 2.0)
-      y = win_h - (0.75 * sin((t / 2.0) * (ETK_TEST_PI / 2)) * win_h);
+      y = win_h - (0.75 * sin((t / 2.0) * (M_PI / 2)) * win_h);
    else
       y = 0.25 * win_h;
    alpha = ETK_CLAMP((t - 1.0) / 2.0, 0.0, 1.0) * 255;
    
-   
+   /* Update the different object according to the progress */
    evas_object_move(backdrop, 0, 0);
    evas_object_resize(backdrop, win_w, y);
    evas_object_image_fill_set(backdrop, 0, 0, win_w, 320);
@@ -185,19 +232,39 @@
    evas_object_resize(embed_object, embed_size.w, embed_size.h);
 }
 
-/* Called when the window is resized */
-static void _etk_test_embed_resize_cb(Ecore_Evas *ecore_evas)
+/* Gets the position of the Evas where the embed object belongs, relative to 
the screen */
+static void _embed_position_set(void *position_data, int *x, int *y)
 {
-   if (!ecore_evas)
-      return;
-   
-   ecore_evas_geometry_get(ecore_evas, NULL, NULL, &win_w, &win_h);
-   _etk_test_embed_update();
+   ecore_evas_geometry_get(position_data, x, y, NULL, NULL);
 }
 
-/* Animates the objects */
-static int _etk_test_embed_animator_cb(void *data)
+/* Sets the pointer of the embed widget */
+static void _embed_pointer_set(void *pointer_data, Etk_Pointer_Type 
pointer_type)
 {
-   _etk_test_embed_update();
-   return 1;
+   Ecore_Evas *ee;
+   Ecore_X_Window window;
+   Ecore_X_Cursor cursor;
+   int x_pointer_type;
+   
+   if (!(ee = pointer_data) || (window = 
ecore_evas_software_x11_window_get(ee)) == 0)
+      return;
+
+   /* We only need to support the "text_edit" and the default cursors here
+    * since we only have entries in the embed widget */
+   switch (pointer_type)
+   {
+      case ETK_POINTER_TEXT_EDIT:
+         x_pointer_type = ECORE_X_CURSOR_XTERM;
+         break;
+      default:
+         x_pointer_type = ECORE_X_CURSOR_LEFT_PTR;
+         break;
+   }
+   
+   if (pointer_type == ETK_POINTER_NONE)
+      ecore_x_window_cursor_set(window, 0);
+   else if ((cursor = ecore_x_cursor_shape_get(x_pointer_type)))
+      ecore_x_window_cursor_set(window, cursor);
+   else
+      ETK_WARNING("Unable to find the X cursor \"%d\"", pointer_type);
 }
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/bin/etk_slider_test.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- etk_slider_test.c   22 Feb 2007 05:18:34 -0000      1.12
+++ etk_slider_test.c   10 Mar 2007 18:19:21 -0000      1.13
@@ -10,6 +10,13 @@
 static Etk_Widget *_hslider = NULL;
 static Etk_Widget *_vslider = NULL;
 
+
+/**************************
+ *
+ * Creation of the test-app window
+ *
+ **************************/
+
 /* Creates the window for the slider test */
 void etk_test_slider_window_create(void *data)
 {



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to