From 5c2641e5dd30ef49d1ce91c69fefb82d958dccb5 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Tue, 5 Feb 2008 12:00:19 +0000 Subject: [PATCH] 1. fix abort in tiff loader 2. slidesel theme garbage trailing. nuke 3. icon obj can have pre-scale set not. default is as before. 4. printf-- in slidesel SVN revision: 33677 --- data/themes/default_slidesel.edc | 267 ------------------------------- src/bin/e_icon.c | 32 +++- src/bin/e_icon.h | 4 +- src/bin/e_slidecore.c | 9 +- src/bin/e_slidesel.c | 8 +- 5 files changed, 43 insertions(+), 277 deletions(-) diff --git a/data/themes/default_slidesel.edc b/data/themes/default_slidesel.edc index 6e21f8d1d..e80f1dbb5 100644 --- a/data/themes/default_slidesel.edc +++ b/data/themes/default_slidesel.edc @@ -118,270 +118,3 @@ group { } } } - -group { - name: "e/widgets/radio_icon"; - parts { - part { - name: "outline"; - mouse_events: 0; - description { - state: "default" 0.0; - min: 16 16; - max: 16 16; - align: 0.0 0.5; - fixed: 1 1; - rel1 { - relative: 0.0 0.0; - offset: 2 2; - } - rel2 { - relative: 0.0 1.0; - offset: 2 -3; - } - image { - normal: "e17_menu_radio1.png"; - } - } - description { - state: "disabled" 0.0; - inherit: "default" 0.0; - image { - normal: "e17_menu_radio0.png"; - } - } - } - part { - name: "item1"; - mouse_events: 0; - description { - state: "default" 0.0; - visible: 0; - rel1 { - to: "outline"; - relative: 0.0 0.0; - offset: 0 0; - } - rel2 { - to: "outline"; - relative: 1.0 1.0; - offset: -1 -1; - } - image { - normal: "e17_menu_radio2.png"; - } - } - description { - state: "active" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { - name: "e.swallow.icon"; - type: SWALLOW; - clip_to: "icon_clip"; - description { - state: "default" 0.0; - min: 16 16; - rel1 { - to_x: "outline"; - relative: 1.0 0.0; - offset: 2 2; - } - rel2 { - relative: 1.0 1.0; - offset: -2 -2; - } - } - description { - state: "label_visible" 0.0; - min: 16 16; - rel1 { - to_x: "outline"; - relative: 1.0 0.0; - offset: 2 2; - } - rel2 { - to_y: "e.text.label"; - relative: 1.0 0.0; - offset: -2 -2; - } - } - } - part { - name: "icon_clip"; - type: RECT; - mouse_events: 0; - description { - state: "default" 0.0; - min: 16 16; - rel1 { - to: "e.swallow.icon"; - } - rel2 { - to: "e.swallow.icon"; - } - color: 255 255 255 255; - } - description { - state: "disabled" 0.0; - inherit: "default" 0.0; - color: 255 255 255 128; - } - } - part { - name: "label_clip"; - type: RECT; - mouse_events: 0; - description { - state: "default" 0.0; - visible: 0; - } - description { - state: "label_visible" 0.0; - visible: 1; - } - } - part { - name: "e.text.label"; - type: TEXT; - effect: SHADOW; - mouse_events: 0; - clip_to: "label_clip"; - description { - state: "default" 0.0; - min: 16 16; - rel1 { - to_x: "outline"; - relative: 1.0 1.0; - offset: 2 -2; - } - rel2 { - relative: 1.0 1.0; - offset: -2 -2; - } - color: 0 0 0 255; - color3: 255 255 255 128; - color_class: "radio_text"; - text { - text: ""; - font: "Edje-Vera"; - size: 10; - min: 1 1; - align: 0.5 0.5; - text_class: "radio_button"; - } - } - description { - state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 255 255 255 64; - color_class: "radio_text_disabled"; - } - } - part { - name: "event"; - type: RECT; - description { - state: "default" 0.0; - color: 0 0 0 0; - } - description { - state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { - name: "focus"; - mouse_events: 0; - description { - state: "default" 0.0; - visible: 0; - color: 255 255 255 0; - image { - normal: "focus.png"; - border: 7 7 7 7; - middle: 0; - } - fill { - smooth: 0; - } - } - description { - state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 255 255 255 255; - } - } - } - programs { - program { - name: "label_on"; - signal: "e,state,labeled"; - source: "e"; - action: STATE_SET "label_visible" 0.0; - target: "e.swallow.icon"; - target: "label_clip"; - } - program { - name: "turn_on1"; - signal: "e,state,on"; - source: "e"; - action: STATE_SET "active" 0.0; - target: "item1"; - } - program { - name: "turn_off1"; - signal: "e,state,off"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "item1"; - } - program { - name: "click"; - signal: "mouse,down,1"; - source: "event"; - action: SIGNAL_EMIT "e,action,toggle" ""; - } - program { - name: "focus_in"; - signal: "e,state,focused"; - source: "e"; - action: STATE_SET "focused" 0.0; - transition: DECELERATE 0.2; - target: "focus"; - } - program { - name: "focus_out"; - signal: "e,state,unfocused"; - source: "e"; - action: STATE_SET "default" 0.0; - transition: ACCELERATE 0.5; - target: "focus"; - } - program { - name: "disable"; - signal: "e,state,disabled"; - source: "e"; - action: STATE_SET "disabled" 0.0; - target: "outline"; - target: "event"; - target: "e.text.label"; - target: "icon_clip"; - } - program { - name: "enable"; - signal: "e,state,enabled"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "outline"; - target: "event"; - target: "e.text.label"; - target: "icon_clip"; - } - } -} diff --git a/src/bin/e_icon.c b/src/bin/e_icon.c index 8a7610a07..41440af25 100644 --- a/src/bin/e_icon.c +++ b/src/bin/e_icon.c @@ -9,6 +9,7 @@ struct _E_Smart_Data { Evas_Coord x, y, w, h; Evas_Object *obj; + int size; char fill_inside : 1; }; @@ -44,7 +45,9 @@ e_icon_file_set(Evas_Object *obj, const char *file) sd = evas_object_smart_data_get(obj); if (!sd) return; /* smart code here */ - evas_object_image_load_size_set(sd->obj, 64, 64); + /* FIXME: 64x64 - unhappy about this. use icon size */ + if (sd->size != 0) + evas_object_image_load_size_set(sd->obj, sd->size, sd->size); evas_object_image_file_set(sd->obj, file, NULL); _e_icon_smart_reconfigure(sd); } @@ -57,7 +60,8 @@ e_icon_file_key_set(Evas_Object *obj, const char *file, const char *key) sd = evas_object_smart_data_get(obj); if (!sd) return; /* smart code here */ - evas_object_image_load_size_set(sd->obj, 64, 64); + if (sd->size != 0) + evas_object_image_load_size_set(sd->obj, sd->size, sd->size); evas_object_image_file_set(sd->obj, file, key); _e_icon_smart_reconfigure(sd); } @@ -215,6 +219,29 @@ e_icon_data_get(Evas_Object *obj, int *w, int *h) return evas_object_image_data_get(sd->obj, 0); } +EAPI void +e_icon_scale_size_set(Evas_Object *obj, int size) +{ + E_Smart_Data *sd; + + sd = evas_object_smart_data_get(obj); + if (!sd) return NULL; + sd->size = size; + if (!strcmp(evas_object_type_get(sd->obj), "edje")) + return; + evas_object_image_load_size_set(sd->obj, sd->size, sd->size); +} + +EAPI int +e_icon_scale_size_get(Evas_Object *obj) +{ + E_Smart_Data *sd; + + sd = evas_object_smart_data_get(obj); + if (!sd) return NULL; + return sd->size; +} + /* local subsystem globals */ static void _e_icon_smart_reconfigure(E_Smart_Data *sd) @@ -305,6 +332,7 @@ _e_icon_smart_add(Evas_Object *obj) sd->w = 0; sd->h = 0; sd->fill_inside = 1; + sd->size = 64; evas_object_smart_member_add(sd->obj, obj); evas_object_smart_data_set(obj, sd); } diff --git a/src/bin/e_icon.h b/src/bin/e_icon.h index b45950816..3b4636c9d 100644 --- a/src/bin/e_icon.h +++ b/src/bin/e_icon.h @@ -21,6 +21,8 @@ EAPI int e_icon_fill_inside_get (Evas_Object *obj); EAPI void e_icon_fill_inside_set (Evas_Object *obj, int fill_inside); EAPI void e_icon_data_set (Evas_Object *obj, void *data, int w, int h); EAPI void *e_icon_data_get (Evas_Object *obj, int *w, int *h); - +EAPI void e_icon_scale_size_set (Evas_Object *obj, int size); +EAPI int e_icon_scale_size_get (Evas_Object *obj); + #endif #endif diff --git a/src/bin/e_slidecore.c b/src/bin/e_slidecore.c index 94aef8502..25b87e431 100644 --- a/src/bin/e_slidecore.c +++ b/src/bin/e_slidecore.c @@ -145,7 +145,6 @@ _e_smart_reconfigure(E_Smart_Data *sd) dp = pos - (p1 * sd->dist); at = (dp * 255) / (sd->dist - 1); - printf("? %i %i | %i : %i # %i\n", p1, p2, dp, at, pos); while ((p1 < 0) || (p2 < 0)) { p1 += n; @@ -153,7 +152,6 @@ _e_smart_reconfigure(E_Smart_Data *sd) at += 255; dp += sd->dist; } - printf("??? %i %i | %i : %i # %i\n", p1, p2, dp, at, pos); if ((sd->p1 != p1) || (sd->p2 != p2) || (sd->pn != n)) { E_Smart_Item *it1, *it2; @@ -170,15 +168,15 @@ _e_smart_reconfigure(E_Smart_Data *sd) sd->o2 = NULL; pl1 = sd->p1 % n; pl2 = sd->p2 % n; - printf("## %i -> %i | %i -> %i ||| %i\n", p1, pl1, p2, pl2, dp); it1 = evas_list_nth(sd->items, pl1); it2 = evas_list_nth(sd->items, pl2); if (it1 && it2) { - sd->o1 = e_util_icon_theme_icon_add(it1->icon, "480x480", + sd->o1 = e_util_icon_theme_icon_add(it1->icon, "512x512", evas_object_evas_get(sd->smart_obj)); if (sd->o1) { + e_icon_scale_size_set(sd->o1, 0); evas_object_stack_below(sd->o1, sd->event_obj); evas_object_pass_events_set(sd->o1, 1); evas_object_smart_member_add(sd->o1, sd->smart_obj); @@ -186,10 +184,11 @@ _e_smart_reconfigure(E_Smart_Data *sd) evas_object_clip_set(sd->o1, evas_object_clip_get(sd->smart_obj)); evas_object_show(sd->o1); } - sd->o2 = e_util_icon_theme_icon_add(it2->icon, "480x480", + sd->o2 = e_util_icon_theme_icon_add(it2->icon, "512x512", evas_object_evas_get(sd->smart_obj)); if (sd->o2) { + e_icon_scale_size_set(sd->o2, 0); evas_object_stack_below(sd->o2, sd->event_obj); evas_object_pass_events_set(sd->o2, 1); evas_object_smart_member_add(sd->o2, sd->smart_obj); diff --git a/src/bin/e_slidesel.c b/src/bin/e_slidesel.c index 0b0577ca7..abcd6027f 100644 --- a/src/bin/e_slidesel.c +++ b/src/bin/e_slidesel.c @@ -19,6 +19,7 @@ struct _E_Smart_Data Evas_Object *slide_obj; Evas_List *items; Evas_Coord down_x, down_y; + E_Smart_Item *cur; unsigned char down : 1; }; @@ -59,6 +60,7 @@ _e_smart_label_change(void *data) it = data; edje_object_part_text_set(it->sd->edje_obj, "e.text.label", it->label); + it->sd->cur = it; } /* externally accessible functions */ @@ -146,8 +148,10 @@ _e_smart_event_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) { if (!(ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)) { - printf("RUN!!!!\n"); - /* FIXME: call current item callback */ + if (sd->cur) + { + if (sd->cur->func) sd->cur->func(sd->cur->data); + } } } sd->down = 0;