Hello. I'm WooHyun Jung.
I modified some codes of elm_colorselector.c .
And , for about elm_entry.c , I thought that "SIG_CLICKED" was wrongly
emitted (by "MOUSE_UP" event).
So I changed it.
Please check attached patch file.
Thanks.
Index: src/lib/elm_colorselector.c
===================================================================
--- src/lib/elm_colorselector.c (revision 54926)
+++ src/lib/elm_colorselector.c (working copy)
@@ -14,8 +14,22 @@
#define LIG_STEP 256.0
#define ALP_STEP 256.0
+typedef enum _Button_State
+{
+ BUTTON_RELEASED,
+ L_BUTTON_PRESSED,
+ R_BUTTON_PRESSED
+} Button_State;
+
+typedef enum _Color_Type
+{
+ HUE,
+ SATURATION,
+ LIGHTNESS,
+ ALPHA
+} Color_Type;
+
typedef struct _Colorselector_Data Colorselector_Data;
-
struct _Colorselector_Data
{
Evas_Object *parent;
@@ -26,12 +40,11 @@ struct _Colorselector_Data
Evas_Object *bg_rect;
Evas_Object *arrow;
Evas_Object *touch_area;
- int colorselector_num;
- int button_state;
+ Color_Type color_type;
+ Button_State button_state;
};
typedef struct _Widget_Data Widget_Data;
-
struct _Widget_Data
{
Evas_Object *base;
@@ -46,13 +59,6 @@ struct _Widget_Data
Ecore_Timer *mv_timer;
};
-typedef enum
-{
- BUTTON_RELEASED,
- L_BUTTON_PRESSED,
- R_BUTTON_PRESSED
-} Button_State;
-
static const char *widtype = NULL;
static void _del_hook(Evas_Object *obj);
@@ -317,9 +323,9 @@ _draw_rects(void *data, double x)
Widget_Data *wd = elm_widget_data_get(cp->parent);
double one_six = 1.0 / 6.0;
- switch (cp->colorselector_num)
+ switch (cp->color_type)
{
- case 0:
+ case HUE:
wd->h = 360.0 * x;
if (x < one_six)
@@ -377,26 +383,25 @@ _draw_rects(void *data, double x)
wd->a);
break;
- case 1:
+ case SATURATION:
wd->s = 1.0 - x;
_color_with_saturation(wd);
evas_object_color_set(wd->cp[1]->arrow, wd->sr, wd->sg, wd->sb, 255);
break;
- case 2:
+ case LIGHTNESS:
wd->l = x;
_color_with_lightness(wd);
evas_object_color_set(wd->cp[2]->arrow, wd->lr, wd->lg, wd->lb, 255);
break;
- case 3:
+ case ALPHA:
wd->a = 255.0 * x;
evas_object_color_set(wd->cp[3]->arrow, wd->er, wd->eg, wd->eb, wd->a);
break;
default:
break;
-
}
_hsl_to_rgb(wd);
}
@@ -502,10 +507,23 @@ _left_button_down_cb(void *data, Evas *e __UNUSED_
"left_button");
edje_object_part_drag_value_get(cp->colorbar, "elm.arrow", &x, &y);
- if (!cp->colorselector_num) x -= 1.0 / HUE_STEP;
- else if (cp->colorselector_num == 1) x -= 1.0 / SAT_STEP;
- else if (cp->colorselector_num == 2) x -= 1.0 / LIG_STEP;
- else if (cp->colorselector_num == 3) x -= 1.0 / ALP_STEP;
+ switch(cp->color_type)
+ {
+ case HUE :
+ x -= 1.0 / HUE_STEP;
+ break;
+ case SATURATION :
+ x -= 1.0 / SAT_STEP;
+ break;
+ case LIGHTNESS :
+ x -= 1.0 / LIG_STEP;
+ break;
+ case ALPHA :
+ x -= 1.0 / ALP_STEP;
+ break;
+ default :
+ break;
+ }
if (x < 0.0) x = 0.0;
@@ -528,10 +546,23 @@ _right_button_down_cb(void *data, Evas *e __UNUSED
"right_button");
edje_object_part_drag_value_get(cp->colorbar, "elm.arrow", &x, &y);
- if (!cp->colorselector_num) x += 1.0 / HUE_STEP;
- else if (cp->colorselector_num == 1) x += 1.0 / SAT_STEP;
- else if (cp->colorselector_num == 2) x += 1.0 / LIG_STEP;
- else if (cp->colorselector_num == 3) x += 1.0 / ALP_STEP;
+ switch(cp->color_type)
+ {
+ case HUE :
+ x += 1.0 / HUE_STEP;
+ break;
+ case SATURATION :
+ x += 1.0 / SAT_STEP;
+ break;
+ case LIGHTNESS :
+ x += 1.0 / LIG_STEP;
+ break;
+ case ALPHA :
+ x += 1.0 / ALP_STEP;
+ break;
+ default :
+ break;
+ }
if (x > 1.0) x = 1.0;
@@ -604,9 +635,25 @@ _add_colorbar(Evas_Object *obj)
wd->cp[i] = ELM_NEW(Colorselector_Data);
wd->cp[i]->parent = obj;
- wd->cp[i]->colorselector_num = i;
-
- /* load colorbar area */
+ wd->cp[i]->color_type = i;
+ switch(i)
+ {
+ case 0 :
+ wd->cp[i]->color_type = HUE;
+ break;
+ case 1 :
+ wd->cp[i]->color_type = SATURATION;
+ break;
+ case 2 :
+ wd->cp[i]->color_type = LIGHTNESS;
+ break;
+ case 3 :
+ wd->cp[i]->color_type = ALPHA;
+ break;
+ default :
+ break;
+ }
+ /* load colorbar area */
wd->cp[i]->colorbar = edje_object_add(e);
_elm_theme_object_set(obj, wd->cp[i]->colorbar, "colorselector", "base",
"default");
Index: src/lib/elm_entry.c
===================================================================
--- src/lib/elm_entry.c (revision 54926)
+++ src/lib/elm_entry.c (working copy)
@@ -1391,6 +1391,13 @@ _signal_mouse_up(void *data, Evas_Object *obj __UN
{
Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
+}
+
+static void
+_signal_mouse_clicked(void *data, Evas_Object *obj __UNUSED__, const char
*emission __UNUSED__, const char *source __UNUSED__)
+{
+ Widget_Data *wd = elm_widget_data_get(data);
+ if (!wd) return;
evas_object_smart_callback_call(data, SIG_CLICKED, NULL);
}
@@ -1626,6 +1633,8 @@ elm_entry_add(Evas_Object *parent)
_signal_mouse_down, obj);
edje_object_signal_callback_add(wd->ent, "mouse,up,1", "elm.text",
_signal_mouse_up, obj);
+ edje_object_signal_callback_add(wd->ent, "mouse,clicked,1", "elm.text",
+ _signal_mouse_clicked, obj);
edje_object_signal_callback_add(wd->ent, "mouse,down,1,double", "elm.text",
_signal_mouse_double, obj);
edje_object_part_text_set(wd->ent, "elm.text", "");
------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel