iconradio elements are available now

SVN revision: 22797
This commit is contained in:
Carsten Haitzler 2006-05-21 11:00:04 +00:00
parent 1c519bb9bb
commit a8a85ed2d8
6 changed files with 326 additions and 38 deletions

5
TODO
View File

@ -8,8 +8,6 @@ Some of the things (in very short form) that need to be done to E17...
BUGS / FIXES
-------------------------------------------------------------------------------
* BUG: pager dnd is broken when shelf below (in desktop canvas) and @ of rows
is > 1.
* BUG: ghost windows happen if windows close when on another desktop or if
windows are very short-lived
* BUG: k3b has minimization issues when burning cds (it tries to unminimize
@ -59,7 +57,8 @@ Some of the things (in very short form) that need to be done to E17...
disabled)
* shelf gui config is ugly and badly arranged
* ibar should support creating and deleting bar dirs
* need to port/rewrite ibox to gadcon
* ibox labels need to be optional
* ibar labels need to be selected (name, generic, etc.)
]]]
[[[

View File

@ -191,3 +191,234 @@ group {
}
}
}
group {
name: "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: "icon_swallow";
type: SWALLOW;
mouse_events: 0;
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 {
to_y: "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: "icon_swallow";
}
rel2 {
to: "icon_swallow";
}
color: 255 255 255 255;
}
description {
state: "disabled" 0.0;
inherit: "default" 0.0;
color: 255 255 255 128;
}
}
part {
name: "label";
type: TEXT;
effect: SHADOW;
mouse_events: 0;
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;
text {
text: "Radio Button";
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;
}
}
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: "turn_on1";
signal: "toggle_on";
source: "";
action: STATE_SET "active" 0.0;
target: "item1";
}
program {
name: "turn_off1";
signal: "toggle_off";
source: "";
action: STATE_SET "default" 0.0;
target: "item1";
}
program {
name: "click";
signal: "mouse,down,1";
source: "event";
action: SIGNAL_EMIT "toggled" "on";
}
program {
name: "focus_in";
signal: "focus_in";
source: "";
action: STATE_SET "focused" 0.0;
transition: DECELERATE 0.2;
target: "focus";
}
program {
name: "focus_out";
signal: "focus_out";
source: "";
action: STATE_SET "default" 0.0;
transition: ACCELERATE 0.5;
target: "focus";
}
program {
name: "disable";
signal: "disabled";
source: "";
action: STATE_SET "disabled" 0.0;
target: "outline";
target: "event";
target: "label";
target: "icon_clip";
}
program {
name: "enable";
signal: "enabled";
source: "";
action: STATE_SET "default" 0.0;
target: "outline";
target: "event";
target: "label";
target: "icon_clip";
}
}
}

View File

@ -572,7 +572,7 @@ e_config_init(void)
e_config->winlist_pos_min_h = 0;
e_config->winlist_pos_max_w = 320;
e_config->winlist_pos_max_h = 320;
e_config->maximize_policy = E_MAXIMIZE_FULLSCREEN;
e_config->maximize_policy = E_MAXIMIZE_SMART;
e_config->allow_manip = 0;
e_config->kill_if_close_not_possible = 1;
e_config->kill_process = 1;

View File

@ -181,6 +181,38 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
e_widget_framelist_object_append(of, ob);
e_widget_list_object_append(o2, of, 1, 1, 0.5);
of = e_widget_frametable_add(evas, _("Layout"), 1);
rg = e_widget_radio_group_new(&(cfdata->orient));
ob = e_widget_radio_icon_add(evas, _("Left"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_LEFT, rg);
e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Right"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_RIGHT, rg);
e_widget_frametable_object_append(of, ob, 4, 2, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Top"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_TOP, rg);
e_widget_frametable_object_append(of, ob, 2, 0, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Bottom"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_BOTTOM, rg);
e_widget_frametable_object_append(of, ob, 2, 4, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Corner"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_CORNER_TL, rg);
e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Corner"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_CORNER_TR, rg);
e_widget_frametable_object_append(of, ob, 3, 0, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Corner"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_CORNER_BL, rg);
e_widget_frametable_object_append(of, ob, 1, 4, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Corner"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_CORNER_BR, rg);
e_widget_frametable_object_append(of, ob, 3, 4, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Corner"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_CORNER_LT, rg);
e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Corner"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_CORNER_RT, rg);
e_widget_frametable_object_append(of, ob, 4, 1, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Corner"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_CORNER_LB, rg);
e_widget_frametable_object_append(of, ob, 0, 3, 1, 1, 1, 1, 1, 1);
ob = e_widget_radio_icon_add(evas, _("Corner"), "enlightenment/e", 32, 32, E_GADCON_ORIENT_CORNER_RB, rg);
e_widget_frametable_object_append(of, ob, 4, 3, 1, 1, 1, 1, 1, 1);
e_widget_list_object_append(o2, of, 1, 1, 0.5);
e_widget_list_object_append(o, o2, 1, 1, 0.5);
o2 = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Size"), 0);
ob = e_widget_check_add(evas, _("Shrink to Content Size"), &(cfdata->fit_along));
e_widget_framelist_object_append(of, ob);
@ -188,42 +220,10 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
// e_widget_framelist_object_append(of, ob);
ob = e_widget_label_add(evas, _("Shelf Size"));
e_widget_framelist_object_append(of, ob);
ob = e_widget_slider_add(evas, 1, 0, _("%3.0f pixels"), 4, 120, 4, 0, NULL, &(cfdata->size), 200);
ob = e_widget_slider_add(evas, 1, 0, _("%3.0f pixels"), 4, 120, 4, 0, NULL, &(cfdata->size), 100);
e_widget_framelist_object_append(of, ob);
e_widget_list_object_append(o2, of, 1, 1, 0.5);
of = e_widget_framelist_add(evas, _("Layout"), 0);
rg = e_widget_radio_group_new(&(cfdata->orient));
ob = e_widget_radio_add(evas, _("Left"), E_GADCON_ORIENT_LEFT, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Right"), E_GADCON_ORIENT_RIGHT, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Top"), E_GADCON_ORIENT_TOP, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Bottom"), E_GADCON_ORIENT_BOTTOM, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Top Left"), E_GADCON_ORIENT_CORNER_TL, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Top Right"), E_GADCON_ORIENT_CORNER_TR, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Bottom Left"), E_GADCON_ORIENT_CORNER_BL, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Bottom Right"), E_GADCON_ORIENT_CORNER_BR, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Left Top"), E_GADCON_ORIENT_CORNER_LT, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Right Top"), E_GADCON_ORIENT_CORNER_RT, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Left Bottom"), E_GADCON_ORIENT_CORNER_LB, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Right Bottom"), E_GADCON_ORIENT_CORNER_RB, rg);
e_widget_framelist_object_append(of, ob);
e_widget_list_object_append(o2, of, 1, 1, 0.5);
e_widget_list_object_append(o, o2, 1, 1, 0.5);
o2 = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Styles"), 0);
oi = e_widget_ilist_add(evas, 128, 20, &(cfdata->style));
@ -246,7 +246,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
sel = n;
}
e_widget_min_size_get(oi, &wmw, &wmh);
e_widget_min_size_set(oi, wmw, 250);
e_widget_min_size_set(oi, wmw, 150);
e_widget_ilist_go(oi);
e_widget_ilist_selected_set(oi, sel);

View File

@ -14,6 +14,7 @@ struct _E_Widget_Data
{
E_Radio_Group *group;
Evas_Object *o_radio;
Evas_Object *o_icon;
int valnum;
};
@ -79,6 +80,62 @@ e_widget_radio_add(Evas *evas, char *label, int valnum, E_Radio_Group *group)
return obj;
}
EAPI Evas_Object *
e_widget_radio_icon_add(Evas *evas, char *label, char *icon, int icon_w, int icon_h, int valnum, E_Radio_Group *group)
{
Evas_Object *obj, *o, *o2;
E_Widget_Data *wd;
Evas_Coord mw, mh;
obj = e_widget_add(evas);
e_widget_del_hook_set(obj, _e_wid_del_hook);
e_widget_focus_hook_set(obj, _e_wid_focus_hook);
e_widget_activate_hook_set(obj, _e_wid_activate_hook);
e_widget_disable_hook_set(obj, _e_wid_disable_hook);
wd = calloc(1, sizeof(E_Widget_Data));
wd->group = group;
wd->valnum = valnum;
e_widget_data_set(obj, wd);
o = edje_object_add(evas);
wd->o_radio = o;
e_theme_edje_object_set(o, "base/theme/widgets",
"widgets/radio_icon");
edje_object_signal_callback_add(o, "toggled", "*", _e_wid_signal_cb1, obj);
edje_object_part_text_set(o, "label", label);
evas_object_show(o);
if (icon)
{
o2 = edje_object_add(evas);
wd->o_icon = o2;
e_util_edje_icon_set(o2, icon);
edje_extern_object_min_size_set(o2, icon_w, icon_h);
edje_object_part_swallow(wd->o_radio, "icon_swallow", o2);
evas_object_show(o2);
e_widget_sub_object_add(obj, o2);
}
edje_object_size_min_calc(o, &mw, &mh);
e_widget_min_size_set(obj, mw, mh);
if ((wd->group) && (wd->group->valptr))
{
if (*(wd->group->valptr) == valnum) edje_object_signal_emit(o, "toggle_on", "");
}
if (wd->group)
{
wd->group->radios = evas_list_append(wd->group->radios, obj);
}
e_widget_sub_object_add(obj, o);
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj);
e_widget_resize_object_set(obj, o);
return obj;
}
EAPI void
e_widget_radio_toggle_set(Evas_Object *obj, int toggle)
{

View File

@ -10,6 +10,7 @@ typedef struct _E_Radio_Group E_Radio_Group;
EAPI E_Radio_Group *e_widget_radio_group_new(int *val);
EAPI Evas_Object *e_widget_radio_add(Evas *evas, char *label, int valnum, E_Radio_Group *group);
EAPI Evas_Object *e_widget_radio_icon_add(Evas *evas, char *label, char *icon, int icon_w, int icon_h, int valnum, E_Radio_Group *group);
EAPI void e_widget_radio_toggle_set(Evas_Object *obj, int toggle);
#endif