Merge branch 'master' of git+ssh://git.enlightenment.org/core/elementary

This commit is contained in:
Stephen Houston 2013-08-04 16:51:51 -05:00
commit 78153901f5
3 changed files with 129 additions and 92 deletions

View File

@ -50,9 +50,7 @@ _palette_cb(void *data, Evas_Object *obj __UNUSED__,
void *event_info __UNUSED__)
{
Evas_Object *cs = data;
Evas_Object *win = evas_object_data_get(cs, "win");
elm_colorselector_mode_set(cs, ELM_COLORSELECTOR_PALETTE);
evas_object_resize(win, 320, 300);
}
static void
@ -60,27 +58,28 @@ _components_cb(void *data, Evas_Object *obj __UNUSED__,
void *event_info __UNUSED__)
{
Evas_Object *cs = data;
Evas_Object *win = evas_object_data_get(cs, "win");
elm_colorselector_mode_set(cs, ELM_COLORSELECTOR_COMPONENTS);
evas_object_resize(win, 320, 455);
}
static void
_both_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *cs = data;
Evas_Object *win = evas_object_data_get(cs, "win");
elm_colorselector_mode_set(cs, ELM_COLORSELECTOR_BOTH);
evas_object_resize(win, 320, 550);
}
static void
_picker_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *cs = data;
Evas_Object *win = evas_object_data_get(cs, "win");
elm_colorselector_mode_set(cs, ELM_COLORSELECTOR_PICKER);
evas_object_resize(win, 320, 430);
}
static void
_all_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *cs = data;
elm_colorselector_mode_set(cs, ELM_COLORSELECTOR_ALL);
}
void
@ -118,7 +117,7 @@ test_colorselector(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
evas_object_show(fr);
cs = elm_colorselector_add(fr);
elm_colorselector_palette_color_add(cs, 255, 90, 18, 255);
elm_colorselector_palette_color_add(cs, 255, 90, 18, 128);
elm_colorselector_palette_color_add(cs, 255, 213, 0, 255);
elm_colorselector_palette_color_add(cs, 146, 255, 11, 255);
elm_colorselector_palette_color_add(cs, 9, 186, 10, 255);
@ -194,7 +193,14 @@ test_colorselector(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
evas_object_show(bt);
elm_box_pack_end(bx2, bt);
evas_object_resize(win, 320, 550);
bt = elm_button_add(bx2);
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_smart_callback_add(bt, "clicked", _all_cb, cs);
elm_object_text_set(bt, "All");
evas_object_show(bt);
elm_box_pack_end(bx2, bt);
evas_object_show(win);
}
#endif

View File

@ -107,21 +107,33 @@ _color_picker_init(Elm_Colorselector_Smart_Data *sd)
int color;
int x, y, w, h;
snprintf(buf, 12, "%i", sd->r);
elm_object_text_set(sd->entries[0], buf);
if (!evas_object_data_get(sd->entries[0], "_changed"))
{
snprintf(buf, 12, "%i", sd->r);
elm_object_text_set(sd->entries[0], buf);
}
if (!evas_object_data_get(sd->entries[1], "_changed"))
{
snprintf(buf, 12, "%i", sd->g);
elm_object_text_set(sd->entries[1], buf);
}
if (!evas_object_data_get(sd->entries[2], "_changed"))
{
snprintf(buf, 12, "%i", sd->b);
elm_object_text_set(sd->entries[2], buf);
}
if (!evas_object_data_get(sd->entries[3], "_changed"))
{
snprintf(buf, 12, "%i", sd->a);
elm_object_text_set(sd->entries[3], buf);
}
snprintf(buf, 12, "%i", sd->g);
elm_object_text_set(sd->entries[1], buf);
color = (sd->a << 24) |
(((sd->r * sd->a) / 255) << 16) |
(((sd->g * sd->a) / 255) << 8) |
(((sd->b * sd->a) / 255));
snprintf(buf, 12, "%i", sd->b);
elm_object_text_set(sd->entries[2], buf);
snprintf(buf, 12, "%i", sd->a);
elm_object_text_set(sd->entries[3], buf);
color = (sd->a << 24) + (sd->r << 16) + (sd->g << 8) + sd->b;
if (sd->b == 255)
if (sd->a == 255)
evas_object_image_alpha_set(sd->picker_display, EINA_FALSE);
else
evas_object_image_alpha_set(sd->picker_display, EINA_TRUE);
@ -129,10 +141,12 @@ _color_picker_init(Elm_Colorselector_Smart_Data *sd)
pixels = evas_object_image_data_get(sd->picker_display, EINA_TRUE);
copy = pixels;
for (y = 0; y < 17; y++)
for (x = 0; x < 17; x++)
{
*(pixels++) = color;
}
{
for (x = 0; x < 17; x++)
{
*(pixels++) = color;
}
}
evas_object_image_data_set(sd->picker_display, copy);
evas_object_geometry_get(sd->picker_display, NULL, NULL, &w, &h);
evas_object_image_data_update_add(sd->picker_display, 0, 0, w, h);
@ -444,17 +458,16 @@ _entry_changed_cb(void *data,
Elm_Colorselector_Smart_Data *sd = data;
Evas_Object *parent;
const char *text;
int i;
int v;
int i, v;
for (i = 0; i < 4 && sd->entries[i] != obj; i++)
;
for (i = 0; i < 4 && sd->entries[i] != obj; i++);
parent = evas_object_data_get(obj, "parent");
text = elm_object_text_get(obj);
v = atoi(text);
if (v > 255) v = 255;
else if (v < 0) v = 0;
evas_object_data_set(obj, "_changed", obj);
switch (i)
{
@ -471,6 +484,7 @@ _entry_changed_cb(void *data,
_colors_set(parent, sd->r, sd->g, sd->b, v);
break;
}
evas_object_data_del(obj, "_changed");
}
#ifdef HAVE_ELEMENTARY_X
@ -1457,9 +1471,11 @@ _palette_colors_load(Evas_Object *obj)
item->color->a = color->a;
elm_box_pack_end(sd->palette_box, VIEW(item));
evas_object_color_set
(item->color_obj, item->color->r, item->color->g, item->color->b,
item->color->a);
evas_object_color_set(item->color_obj,
(item->color->r * item->color->a) / 255,
(item->color->g * item->color->a) / 255,
(item->color->b * item->color->a) / 255,
item->color->a);
sd->items = eina_list_append(sd->items, item);
}
@ -1493,11 +1509,9 @@ _elm_colorselector_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
(priv->palette_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_homogeneous_set(priv->palette_box, EINA_TRUE);
hpadstr =
edje_object_data_get(wd->resize_obj, "horizontal_pad");
hpadstr = edje_object_data_get(wd->resize_obj, "horizontal_pad");
if (hpadstr) h_pad = atoi(hpadstr);
vpadstr = edje_object_data_get
(wd->resize_obj, "vertical_pad");
vpadstr = edje_object_data_get(wd->resize_obj, "vertical_pad");
if (vpadstr) v_pad = atoi(vpadstr);
elm_box_padding_set
@ -1506,7 +1520,8 @@ _elm_colorselector_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
(v_pad * elm_widget_scale_get(obj) * elm_config_scale_get()));
elm_box_align_set(priv->palette_box, 0.5, 0.5);
elm_layout_content_set(obj, "palette", priv->palette_box);
if (!elm_layout_content_set(obj, "elm.palette", priv->palette_box))
elm_layout_content_set(obj, "palette", priv->palette_box);
priv->palette_name = eina_stringshare_add("default");
_palette_colors_load(obj);
@ -1514,9 +1529,12 @@ _elm_colorselector_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
priv->col_bars_area = edje_object_add(evas_object_evas_get(obj));
elm_widget_theme_object_set
(obj, priv->col_bars_area, "colorselector", "bg",
elm_widget_style_get(obj));
elm_layout_content_set(obj, "selector", priv->col_bars_area);
elm_widget_style_get(obj));
if (!elm_layout_content_set(obj, "elm.selector", priv->col_bars_area))
elm_layout_content_set(obj, "selector", priv->col_bars_area);
elm_layout_signal_emit(obj, "elm,state,both", "elm");
/* setup the color picker */
priv->picker = elm_box_add(obj);
elm_box_horizontal_set(priv->picker, EINA_TRUE);
@ -1918,32 +1936,46 @@ _mode_set(Eo *obj, void *_pd, va_list *list)
Elm_Colorselector_Mode mode = va_arg(*list, Elm_Colorselector_Mode);
Elm_Colorselector_Smart_Data *sd = _pd;
Elm_Widget_Smart_Data *wd = eo_data_scope_get(obj, ELM_OBJ_WIDGET_CLASS);
Evas_Object *o;
if (sd->mode == mode) return;
sd->mode = mode;
evas_object_hide(elm_layout_content_unset(obj, "selector"));
evas_object_hide(elm_layout_content_unset(obj, "palette"));
evas_object_hide(elm_layout_content_unset(obj, "picker"));
o = elm_layout_content_unset(obj, "elm.selector");
if (!o) o = elm_layout_content_unset(obj, "selector");
if (o) evas_object_hide(o);
o = elm_layout_content_unset(obj, "elm.palette");
if (!o) o = elm_layout_content_unset(obj, "palette");
if (o) evas_object_hide(o);
o = elm_layout_content_unset(obj, "elm.picker");
if (!o) o = elm_layout_content_unset(obj, "picker");
if (o) evas_object_hide(o);
switch (sd->mode)
{
case ELM_COLORSELECTOR_PALETTE:
elm_layout_content_set(obj, "palette", sd->palette_box);
if (!elm_layout_content_set(obj, "elm.palette", sd->palette_box))
elm_layout_content_set(obj, "palette", sd->palette_box);
elm_layout_signal_emit(obj, "elm,state,palette", "elm");
sd->focused = ELM_COLORSELECTOR_PALETTE;
sd->selected = sd->items;
break;
case ELM_COLORSELECTOR_COMPONENTS:
elm_layout_content_set(obj, "selector", sd->col_bars_area);
if (!elm_layout_content_set(obj, "elm.selector", sd->col_bars_area))
elm_layout_content_set(obj, "selector", sd->col_bars_area);
elm_layout_signal_emit(obj, "elm,state,components", "elm");
sd->focused = ELM_COLORSELECTOR_COMPONENTS;
sd->sel_color_type = HUE;
break;
case ELM_COLORSELECTOR_BOTH:
elm_layout_content_set(obj, "palette", sd->palette_box);
if (!elm_layout_content_set(obj, "elm.palette", sd->palette_box))
elm_layout_content_set(obj, "palette", sd->palette_box);
if (!elm_layout_content_set(obj, "elm.selector", sd->col_bars_area))
elm_layout_content_set(obj, "selector", sd->col_bars_area);
elm_layout_content_set(obj, "selector", sd->col_bars_area);
elm_layout_signal_emit(obj, "elm,state,both", "elm");
sd->focused = ELM_COLORSELECTOR_PALETTE;
@ -1951,15 +1983,19 @@ _mode_set(Eo *obj, void *_pd, va_list *list)
break;
case ELM_COLORSELECTOR_PICKER:
elm_layout_content_set(obj, "picker", sd->picker);
if (!elm_layout_content_set(obj, "elm.picker", sd->picker))
elm_layout_content_set(obj, "picker", sd->picker);
elm_layout_signal_emit(obj, "elm,state,picker", "elm");
sd->focused = ELM_COLORSELECTOR_PICKER;
break;
case ELM_COLORSELECTOR_ALL:
elm_layout_content_set(obj, "picker", sd->picker);
elm_layout_content_set(obj, "palette", sd->palette_box);
elm_layout_content_set(obj, "selector", sd->col_bars_area);
if (!elm_layout_content_set(obj, "elm.palette", sd->palette_box))
elm_layout_content_set(obj, "palette", sd->palette_box);
if (!elm_layout_content_set(obj, "elm.selector", sd->col_bars_area))
elm_layout_content_set(obj, "selector", sd->col_bars_area);
if (!elm_layout_content_set(obj, "elm.picker", sd->picker))
elm_layout_content_set(obj, "picker", sd->picker);
elm_layout_signal_emit(obj, "elm,state,all", "elm");
sd->focused = ELM_COLORSELECTOR_PALETTE;
sd->selected = sd->items;
@ -2028,10 +2064,11 @@ elm_colorselector_palette_item_color_set(Elm_Object_Item *it,
item->color->g = g;
item->color->b = b;
item->color->a = a;
evas_object_color_set
(item->color_obj, item->color->r, item->color->g, item->color->b,
item->color->a);
evas_object_color_set(item->color_obj,
(item->color->r * item->color->a) / 255,
(item->color->g * item->color->a) / 255,
(item->color->b * item->color->a) / 255,
item->color->a);
_colors_save(WIDGET(it));
}
@ -2082,9 +2119,11 @@ _palette_color_add(Eo *obj, void *_pd, va_list *list)
item->color->a);
elm_box_pack_end(sd->palette_box, VIEW(item));
evas_object_color_set
(item->color_obj, item->color->r, item->color->g, item->color->b,
item->color->a);
evas_object_color_set(item->color_obj,
(item->color->r * item->color->a) / 255,
(item->color->g * item->color->a) / 255,
(item->color->b * item->color->a) / 255,
item->color->a);
sd->items = eina_list_append(sd->items, item);

View File

@ -110,7 +110,7 @@ struct _Elm_Win_Smart_Data
} pointer;
struct
{
Evas_Object *top;
Evas_Object *fobj; /* focus highlight edje object */
struct
{
@ -123,8 +123,8 @@ struct _Elm_Win_Smart_Data
Ecore_Job *reconf_job;
Eina_Bool enabled : 1;
Eina_Bool changed_theme : 1;
Eina_Bool top_animate : 1;
Eina_Bool theme_changed : 1; /* set true when the focus theme is changed */
Eina_Bool animate : 1; /* set true when the focus highlight animate is enabled */
Eina_Bool geometry_changed : 1;
} focus_highlight;
@ -234,7 +234,7 @@ _elm_win_first_frame_do(void *data EINA_UNUSED, Evas *e EINA_UNUSED, void *event
case 'A': abort();
case 'E':
case 'D': exit(-1);
case 'T': fprintf(stderr, "Startup time: '%f' - '%f' = '%f'\n", end, _elm_startup_time, end - _elm_startup_time);
case 'T': fprintf(stderr, "Startup time: '%f' - '%f' = '%f' sec\n", end, _elm_startup_time, end - _elm_startup_time);
break;
}
@ -664,21 +664,17 @@ static void
_elm_win_focus_highlight_visible_set(Elm_Win_Smart_Data *sd,
Eina_Bool visible)
{
Evas_Object *top;
Evas_Object *fobj = sd->focus_highlight.fobj;
if (!fobj) return;
top = sd->focus_highlight.top;
if (visible)
{
if (top)
{
evas_object_show(top);
edje_object_signal_emit(top, "elm,action,focus,show", "elm");
}
evas_object_show(fobj);
edje_object_signal_emit(fobj, "elm,action,focus,show", "elm");
}
else
{
if (top)
edje_object_signal_emit(top, "elm,action,focus,hide", "elm");
edje_object_signal_emit(fobj, "elm,action,focus,hide", "elm");
}
}
@ -732,7 +728,7 @@ _elm_win_focus_highlight_reconfigure(Elm_Win_Smart_Data *sd)
{
Evas_Object *target = sd->focus_highlight.cur.target;
Evas_Object *previous = sd->focus_highlight.prev.target;
Evas_Object *top = sd->focus_highlight.top;
Evas_Object *fobj = sd->focus_highlight.fobj;
Eina_Bool visible_changed;
Eina_Bool common_visible;
const char *sig = NULL;
@ -744,7 +740,7 @@ _elm_win_focus_highlight_reconfigure(Elm_Win_Smart_Data *sd)
if ((target == previous) && (!visible_changed) &&
(!sd->focus_highlight.geometry_changed) &&
(!sd->focus_highlight.changed_theme))
(!sd->focus_highlight.theme_changed))
return;
if ((previous) && (sd->focus_highlight.prev.handled))
@ -771,7 +767,7 @@ _elm_win_focus_highlight_reconfigure(Elm_Win_Smart_Data *sd)
if ((!target) || (!common_visible) || (sd->focus_highlight.cur.handled))
goto the_end;
if (sd->focus_highlight.changed_theme)
if (sd->focus_highlight.theme_changed)
{
const char *str;
if (sd->focus_highlight.style)
@ -779,22 +775,22 @@ _elm_win_focus_highlight_reconfigure(Elm_Win_Smart_Data *sd)
else
str = "default";
elm_widget_theme_object_set
(sd->obj, top, "focus_highlight", "top", str);
sd->focus_highlight.changed_theme = EINA_FALSE;
(sd->obj, fobj, "focus_highlight", "top", str);
sd->focus_highlight.theme_changed = EINA_FALSE;
if (_elm_config->focus_highlight_animate)
{
str = edje_object_data_get(sd->focus_highlight.top, "animate");
sd->focus_highlight.top_animate = ((str) && (!strcmp(str, "on")));
str = edje_object_data_get(sd->focus_highlight.fobj, "animate");
sd->focus_highlight.animate = ((str) && (!strcmp(str, "on")));
}
}
if ((sd->focus_highlight.top_animate) && (previous) &&
if ((sd->focus_highlight.animate) && (previous) &&
(!sd->focus_highlight.prev.handled))
_elm_win_focus_highlight_anim_setup(sd, top);
_elm_win_focus_highlight_anim_setup(sd, fobj);
else
_elm_win_focus_highlight_simple_setup(sd, top);
evas_object_raise(top);
_elm_win_focus_highlight_simple_setup(sd, fobj);
evas_object_raise(fobj);
the_end:
sd->focus_highlight.geometry_changed = EINA_FALSE;
@ -1414,11 +1410,7 @@ _elm_win_focus_highlight_shutdown(Elm_Win_Smart_Data *sd)
_elm_win_focus_target_callbacks_del(sd);
sd->focus_highlight.cur.target = NULL;
}
if (sd->focus_highlight.top)
{
evas_object_del(sd->focus_highlight.top);
sd->focus_highlight.top = NULL;
}
ELM_SAFE_FREE(sd->focus_highlight.fobj, evas_object_del);
evas_event_callback_del_full
(sd->evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
@ -2101,13 +2093,13 @@ _elm_win_focus_highlight_init(Elm_Win_Smart_Data *sd)
_elm_win_object_focus_out, sd->obj);
sd->focus_highlight.cur.target = evas_focus_get(sd->evas);
sd->focus_highlight.fobj= edje_object_add(sd->evas);
sd->focus_highlight.theme_changed = EINA_TRUE;
sd->focus_highlight.top = edje_object_add(sd->evas);
sd->focus_highlight.changed_theme = EINA_TRUE;
edje_object_signal_callback_add(sd->focus_highlight.top,
edje_object_signal_callback_add(sd->focus_highlight.fobj,
"elm,action,focus,hide,end", "",
_elm_win_focus_highlight_hide, NULL);
edje_object_signal_callback_add(sd->focus_highlight.top,
edje_object_signal_callback_add(sd->focus_highlight.fobj,
"elm,action,focus,anim,end", "",
_elm_win_focus_highlight_anim_end, sd->obj);
_elm_win_focus_highlight_reconfigure_job_start(sd);
@ -5067,7 +5059,7 @@ _focus_highlight_style_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
Elm_Win_Smart_Data *sd = _pd;
eina_stringshare_replace(&sd->focus_highlight.style, style);
sd->focus_highlight.changed_theme = EINA_TRUE;
sd->focus_highlight.theme_changed = EINA_TRUE;
_elm_win_focus_highlight_reconfigure_job_start(sd);
}