forked from enlightenment/enlightenment
actually focus focusable widgets. label can be much simpler
SVN revision: 17470
This commit is contained in:
parent
0465570086
commit
de97fd5db9
|
@ -31,89 +31,5 @@ group {
|
|||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "event";
|
||||
type: RECT;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
color: 0 0 0 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";
|
||||
script {
|
||||
new buf[100];
|
||||
new Float:val;
|
||||
|
||||
get_state(PART:"item1", buf, sizeof(buf), val);
|
||||
if (!strcmp(buf, "default")) {
|
||||
set_state(PART:"item1", "active", 0.0);
|
||||
emit("toggled", "on");
|
||||
}
|
||||
else {
|
||||
set_state(PART:"item1", "default", 0.0);
|
||||
emit("toggled", "off");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
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";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -296,9 +296,8 @@ static char *thumb_path;
|
|||
static double _e_fm_grab_time = 0;
|
||||
static Evas_Smart *e_fm_smart = NULL;
|
||||
|
||||
|
||||
static int my_val;
|
||||
|
||||
/* dumym for now */
|
||||
static int dummy_val;
|
||||
|
||||
/* externally accessible functions */
|
||||
|
||||
|
@ -1707,22 +1706,22 @@ _e_fm_file_menu_properties(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
o = e_widget_framelist_add(e, "General", 0);
|
||||
|
||||
snprintf(text, 512, "Name:");
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
snprintf(text, 512, "%s", file->attr->name);
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
|
||||
snprintf(text, 512, "Owner:");
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
snprintf(text, 512, "%s", username);
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
|
||||
snprintf(text, 512, "Group:");
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
snprintf(text, 512, "%s", groupname);
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
|
||||
snprintf(text, 512, "Type:");
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
switch(_e_fm_file_type(file))
|
||||
{
|
||||
case E_FILEMAN_FILETYPE_DIRECTORY:
|
||||
|
@ -1738,36 +1737,36 @@ _e_fm_file_menu_properties(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
snprintf(text, 512, "Unknown");
|
||||
break;
|
||||
}
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
|
||||
snprintf(text, 512, "Last Access:");
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
snprintf(text, 512, "%s", lastaccess);
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
|
||||
snprintf(text, 512, "Last Modification");
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
snprintf(text, 512, "%s", lastmod);
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text, &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, text));
|
||||
|
||||
e_widget_list_object_append(hb, o, 0, 1, 0.0);
|
||||
|
||||
o = e_widget_framelist_add(e, "Permissions", 0);
|
||||
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, "User:", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Read", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Write", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Execute", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, "User:"));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Read", &dummy_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Write", &dummy_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Execute", &dummy_val));
|
||||
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, "Group:", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Read", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Write", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Execute", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, "Group:"));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Read", &dummy_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Write", &dummy_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Execute", &dummy_val));
|
||||
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, "World:", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Read", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Write", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Execute", &my_val));
|
||||
e_widget_framelist_object_append(o, e_widget_label_add(e, "World:"));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Read", &dummy_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Write", &dummy_val));
|
||||
e_widget_framelist_object_append(o, e_widget_check_add(e, "Execute", &dummy_val));
|
||||
|
||||
e_widget_list_object_append(hb, o, 0, 0, 0.0);
|
||||
|
||||
|
|
|
@ -70,3 +70,4 @@
|
|||
#include "e_widget_framelist.h"
|
||||
#include "e_widget_list.h"
|
||||
#include "e_widget_button.h"
|
||||
#include "e_widget_label.h"
|
||||
|
|
|
@ -85,9 +85,15 @@ _e_wid_focus_hook(Evas_Object *obj)
|
|||
|
||||
wd = e_widget_data_get(obj);
|
||||
if (e_widget_focus_get(obj))
|
||||
{
|
||||
edje_object_signal_emit(wd->o_button, "focus_in", "");
|
||||
evas_object_focus_set(wd->o_button, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
edje_object_signal_emit(wd->o_button, "focus_out", "");
|
||||
evas_object_focus_set(wd->o_button, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -73,9 +73,15 @@ _e_wid_focus_hook(Evas_Object *obj)
|
|||
|
||||
wd = e_widget_data_get(obj);
|
||||
if (e_widget_focus_get(obj))
|
||||
{
|
||||
edje_object_signal_emit(wd->o_check, "focus_in", "");
|
||||
evas_object_focus_set(wd->o_check, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
edje_object_signal_emit(wd->o_check, "focus_out", "");
|
||||
evas_object_focus_set(wd->o_check, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -3,117 +3,27 @@
|
|||
*/
|
||||
#include "e.h"
|
||||
|
||||
typedef struct _E_Widget_Data E_Widget_Data;
|
||||
struct _E_Widget_Data
|
||||
{
|
||||
Evas_Object *o_label;
|
||||
int *valptr;
|
||||
};
|
||||
|
||||
static void _e_wid_del_hook(Evas_Object *obj);
|
||||
static void _e_wid_focus_hook(Evas_Object *obj);
|
||||
static void _e_wid_do(Evas_Object *obj);
|
||||
static void _e_wid_activate_hook(Evas_Object *obj);
|
||||
static void _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source);
|
||||
static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
|
||||
/* local subsystem functions */
|
||||
|
||||
/* externally accessible functions */
|
||||
Evas_Object *
|
||||
e_widget_label_add(Evas *evas, char *label, int *val)
|
||||
e_widget_label_add(Evas *evas, char *label)
|
||||
{
|
||||
Evas_Object *obj, *o;
|
||||
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);
|
||||
wd = calloc(1, sizeof(E_Widget_Data));
|
||||
wd->valptr = val;
|
||||
e_widget_data_set(obj, wd);
|
||||
|
||||
o = edje_object_add(evas);
|
||||
wd->o_label = o;
|
||||
e_theme_edje_object_set(o, "base/theme/widgets",
|
||||
"widgets/label");
|
||||
edje_object_signal_callback_add(o, "toggled", "*", _e_wid_signal_cb1, obj);
|
||||
edje_object_part_text_set(o, "label", label);
|
||||
evas_object_show(o);
|
||||
edje_object_size_min_calc(o, &mw, &mh);
|
||||
e_widget_can_focus_set(obj, 0);
|
||||
e_widget_min_size_set(obj, mw, mh);
|
||||
|
||||
if (wd->valptr)
|
||||
{
|
||||
if (*(wd->valptr)) edje_object_signal_emit(o, "toggle_on", "");
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_del_hook(Evas_Object *obj)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
free(wd);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_focus_hook(Evas_Object *obj)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
if (e_widget_focus_get(obj))
|
||||
edje_object_signal_emit(wd->o_label, "focus_in", "");
|
||||
else
|
||||
edje_object_signal_emit(wd->o_label, "focus_out", "");
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_do(Evas_Object *obj)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
if (wd->valptr)
|
||||
{
|
||||
if (*(wd->valptr) == 0) *(wd->valptr) = 1;
|
||||
else *(wd->valptr) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_activate_hook(Evas_Object *obj)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
_e_wid_do(obj);
|
||||
if (wd->valptr)
|
||||
{
|
||||
if (*(wd->valptr)) edje_object_signal_emit(wd->o_label, "toggle_on", "");
|
||||
else edje_object_signal_emit(wd->o_label, "toggle_off", "");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
_e_wid_do(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
e_widget_focus_steal(data);
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#ifndef E_WIDGET_LABEL_H
|
||||
#define E_WIDGET_LABEL_H
|
||||
|
||||
EAPI Evas_Object *e_widget_label_add(Evas *evas, char *label, int *val);
|
||||
EAPI Evas_Object *e_widget_label_add(Evas *evas, char *label);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -99,9 +99,15 @@ _e_wid_focus_hook(Evas_Object *obj)
|
|||
|
||||
wd = e_widget_data_get(obj);
|
||||
if (e_widget_focus_get(obj))
|
||||
{
|
||||
edje_object_signal_emit(wd->o_radio, "focus_in", "");
|
||||
evas_object_focus_set(wd->o_radio, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
edje_object_signal_emit(wd->o_radio, "focus_out", "");
|
||||
evas_object_focus_set(wd->o_radio, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in New Issue