elementary/dayselector - trivial changes

SVN revision: 68903
This commit is contained in:
ChunEon Park 2012-03-07 08:45:49 +00:00
parent 123dd6c01c
commit 8d5ab8026f
3 changed files with 96 additions and 88 deletions

View File

@ -59,9 +59,9 @@ group {
name: "bg";
type: RECT;
mouse_events: 0;
scale: 1;
clip_to: "clipper";
description { state: "default" 0.0;
description {
state: "default" 0.0;
rel1 {
relative: 0.5 0.0;
to: "day0";
@ -78,16 +78,16 @@ group {
type: SWALLOW;
scale: 1;
clip_to: "clipper";
description { state: "default" 0.0;
description {
state: "default" 0.0;
visible: 0;
min: 0 0;
align: 0.0 0.5;
fixed: 1 0;
rel2 {
relative: 0.0 1.0;
}
rel2.relative: 0.0 1.0;
}
description { state: "visible" 0.0;
description {
state: "visible" 0.0;
inherit: "default" 0.0;
visible: 1;
min: 40 25;
@ -102,18 +102,14 @@ group {
part {
name: "clipper";
type: RECT;
description { state: "default" 0.0;
rel1 {
relative: 0.0 0.0;
to: "day0";
}
rel2 {
relative: 1.0 1.0;
to: "day6";
}
description {
state: "default" 0.0;
rel1.to: "day0";
rel2.to: "day6";
color: 255 255 255 255;
}
description { state: "visible" 0.0;
description {
state: "visible" 0.0;
inherit: "default" 0.0;
color: 200 200 200 255;
}
@ -121,11 +117,13 @@ group {
part {
name: "disabler";
type: RECT;
description { state: "default" 0.0;
description {
state: "default" 0.0;
color: 0 0 0 0;
visible: 0;
}
description { state: "visible" 0.0;
description {
state: "visible" 0.0;
inherit: "default" 0.0;
visible: 1;
}
@ -185,46 +183,42 @@ group {
public check_state = DAYSELECOR_DAY_STATE_DEFAULT; // Default, Pressed, Selected.
public check_bg_show() {
if(get_int(check_pos) == DAYSELECOR_DAY_POS_LEFT)
{
if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT)
set_state(PART:"bg", "default_left", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED)
set_state(PART:"bg", "pressed_left", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
set_state(PART:"bg", "selected_left", 0.0);
if(get_int(check_pos) == DAYSELECOR_DAY_POS_LEFT) {
if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT)
set_state(PART:"bg", "default_left", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED)
set_state(PART:"bg", "pressed_left", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
set_state(PART:"bg", "selected_left", 0.0);
}
else if(get_int(check_pos) == DAYSELECOR_DAY_POS_RIGHT)
{
if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT)
set_state(PART:"bg", "default_right", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED)
set_state(PART:"bg", "pressed_right", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
set_state(PART:"bg", "selected_right", 0.0);
else if(get_int(check_pos) == DAYSELECOR_DAY_POS_RIGHT) {
if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT)
set_state(PART:"bg", "default_right", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED)
set_state(PART:"bg", "pressed_right", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
set_state(PART:"bg", "selected_right", 0.0);
}
else if(get_int(check_pos) == DAYSELECOR_DAY_POS_MIDDLE)
{
if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT)
set_state(PART:"bg", "default_middle", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED)
set_state(PART:"bg", "pressed_middle", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
set_state(PART:"bg", "selected_middle", 0.0);
else if(get_int(check_pos) == DAYSELECOR_DAY_POS_MIDDLE) {
if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT)
set_state(PART:"bg", "default_middle", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED)
set_state(PART:"bg", "pressed_middle", 0.0);
else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
set_state(PART:"bg", "selected_middle", 0.0);
}
}
public check_text_show() {
if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
set_state(PART:"elm.text", "selected", 0.0);
else
{
if(get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKDAY)
if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED)
set_state(PART:"elm.text", "selected", 0.0);
else {
if(get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKDAY)
set_state(PART:"elm.text", "default", 0.0);
else if (get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKEND_DEFAULT)
else if (get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKEND_DEFAULT)
set_state(PART:"elm.text", "weekend_default", 0.0);
else if (get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKEND_STYLE1)
else if (get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKEND_STYLE1)
set_state(PART:"elm.text", "weekend_style1", 0.0);
}
}
}
}
parts {
@ -360,12 +354,12 @@ group {
description {
state: "weekend_default" 0.0;
inherit: "default" 0.0;
color: 8 96 170 255;
color: 225 49 8 255;
}
description {
state: "weekend_style1" 0.0;
inherit: "default" 0.0;
color: 225 49 8 255;
color: 8 96 170 255;
}
description {
state: "selected" 0.0;
@ -379,12 +373,8 @@ group {
ignore_flags: ON_HOLD;
description {
state: "default" 0.0;
rel1 {
to: "bg";
}
rel2 {
to: "bg";
}
rel1.to: "bg";
rel2.to: "bg";
color: 0 0 0 0;
}
}

View File

@ -36,19 +36,25 @@ static void _dayselector_resize(void *data, Evas *e __UNUSED__,
Evas_Object *obj __UNUSED__, void *event_info __UNUSED__);
static void _disable_hook(Evas_Object *obj);
static Eina_Bool _focus_next_hook(const Evas_Object *obj,
Elm_Focus_Direction dir __UNUSED__, Evas_Object **next __UNUSED__);
Elm_Focus_Direction dir __UNUSED__,
Evas_Object **next __UNUSED__);
static void _mirrored_set(Evas_Object *obj, Eina_Bool rtl);
static void _translate_hook(Evas_Object *obj);
static void _theme_hook(Evas_Object *obj);
static void _item_text_set_hook(Evas_Object *obj, const char *item, const char *label);
static const char *_item_text_get_hook(const Evas_Object *obj, const char *item);
static void _content_set_hook(Evas_Object *obj, const char *item, Evas_Object *content);
static void _item_text_set_hook(Evas_Object *obj, const char *item,
const char *label);
static const char *_item_text_get_hook(const Evas_Object *obj,
const char *item);
static void _content_set_hook(Evas_Object *obj, const char *item,
Evas_Object *content);
static Evas_Object *_content_get_hook(const Evas_Object *obj, const char *item);
static Evas_Object *_content_unset_hook(Evas_Object *obj, const char *item);
static void _signal_emit_cb(void *data, Evas_Object *obj, const char *emission,
const char *source __UNUSED__);
static void _item_clicked_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__);
static Elm_Dayselector_Item * _item_find(const Evas_Object *obj, Elm_Dayselector_Day day);
const char *source __UNUSED__);
static void _item_clicked_cb(void *data, Evas_Object *obj,
void *event_info __UNUSED__);
static Elm_Dayselector_Item * _item_find(const Evas_Object *obj,
Elm_Dayselector_Day day);
static void _items_style_set(Evas_Object *obj);
static void _update_items(Evas_Object *obj);
static void _create_items(Evas_Object *obj);
@ -74,7 +80,6 @@ _del_hook(Evas_Object *obj)
eina_stringshare_del(it->day_style);
elm_widget_item_free(it);
}
free(wd);
}
@ -164,7 +169,8 @@ _theme_hook(Evas_Object *obj)
_elm_widget_mirrored_reload(obj);
_mirrored_set(obj, elm_widget_mirrored_get(obj));
_elm_theme_object_set(obj, wd->base, "dayselector", "base", elm_widget_style_get(obj));
_elm_theme_object_set(obj, wd->base, "dayselector", "base",
elm_widget_style_get(obj));
EINA_LIST_FOREACH(wd->items, l, it)
{
@ -385,11 +391,9 @@ _item_clicked_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
EINA_LIST_FOREACH(wd->items, l, it)
{
if (obj == VIEW(it))
{
evas_object_smart_callback_call(data, SIG_CHANGED, (void *)it->day);
return ;
}
if (obj != VIEW(it)) continue;
evas_object_smart_callback_call(data, SIG_CHANGED, (void *)it->day);
return;
}
}
@ -426,16 +430,20 @@ _items_style_set(Evas_Object *obj)
if (weekend_last >= wd->weekend_start)
{
if ((it->day >= wd->weekend_start) && (it->day <= weekend_last))
eina_stringshare_replace(&it->day_style, ITEM_TYPE_WEEKEND_DEFAULT);
eina_stringshare_replace(&it->day_style,
ITEM_TYPE_WEEKEND_DEFAULT);
else
eina_stringshare_replace(&it->day_style, ITEM_TYPE_WEEKDAY_DEFAULT);
eina_stringshare_replace(&it->day_style,
ITEM_TYPE_WEEKDAY_DEFAULT);
}
else
{
if ((it->day >= wd->weekend_start) || (it->day <= weekend_last))
eina_stringshare_replace(&it->day_style, ITEM_TYPE_WEEKEND_DEFAULT);
eina_stringshare_replace(&it->day_style,
ITEM_TYPE_WEEKEND_DEFAULT);
else
eina_stringshare_replace(&it->day_style, ITEM_TYPE_WEEKDAY_DEFAULT);
eina_stringshare_replace(&it->day_style,
ITEM_TYPE_WEEKDAY_DEFAULT);
}
}
}
@ -486,6 +494,7 @@ _create_items(Evas_Object *obj)
t = time(NULL);
localtime_r(&t, &time_daysel);
for (idx = 0; idx < ELM_DAYSELECTOR_MAX; idx++)
{
it = elm_widget_item_new(obj, Elm_Dayselector_Item);
@ -503,12 +512,18 @@ _create_items(Evas_Object *obj)
edje_object_part_swallow(wd->base, buf, VIEW(it));
snprintf(buf, sizeof(buf), "day%d,visible", idx);
edje_object_signal_emit(wd->base, buf, "elm");
evas_object_smart_callback_add(VIEW(it), "changed", _item_clicked_cb, obj);
evas_object_event_callback_add(VIEW(it), EVAS_CALLBACK_DEL, _item_del_cb, obj);
elm_object_signal_callback_add(VIEW(it), ITEM_TYPE_WEEKDAY_DEFAULT, "", _signal_emit_cb, obj);
elm_object_signal_callback_add(VIEW(it), ITEM_TYPE_WEEKDAY_STYLE1, "", _signal_emit_cb, obj);
elm_object_signal_callback_add(VIEW(it), ITEM_TYPE_WEEKEND_DEFAULT, "", _signal_emit_cb, obj);
elm_object_signal_callback_add(VIEW(it), ITEM_TYPE_WEEKEND_STYLE1, "", _signal_emit_cb, obj);
evas_object_smart_callback_add(VIEW(it), "changed", _item_clicked_cb,
obj);
evas_object_event_callback_add(VIEW(it), EVAS_CALLBACK_DEL,
_item_del_cb, obj);
elm_object_signal_callback_add(VIEW(it), ITEM_TYPE_WEEKDAY_DEFAULT, "",
_signal_emit_cb, obj);
elm_object_signal_callback_add(VIEW(it), ITEM_TYPE_WEEKDAY_STYLE1, "",
_signal_emit_cb, obj);
elm_object_signal_callback_add(VIEW(it), ITEM_TYPE_WEEKEND_DEFAULT, "",
_signal_emit_cb, obj);
elm_object_signal_callback_add(VIEW(it), ITEM_TYPE_WEEKEND_STYLE1, "",
_signal_emit_cb, obj);
}
_items_style_set(obj);
_update_items(obj);
@ -537,6 +552,7 @@ elm_dayselector_add(Evas_Object *parent)
elm_widget_content_set_hook_set(obj, _content_set_hook);
elm_widget_content_get_hook_set(obj, _content_get_hook);
elm_widget_content_unset_hook_set(obj, _content_unset_hook);
wd->base = edje_object_add(e);
_elm_theme_object_set(obj, wd->base, "dayselector", "base", "default");
elm_object_style_set(wd->base, "dayselector");
@ -545,9 +561,11 @@ elm_dayselector_add(Evas_Object *parent)
wd->week_start = _elm_config->week_start;
wd->weekend_start = _elm_config->weekend_start;
wd->weekend_len = _elm_config->weekend_len;
printf("%d %d %d\n", wd->week_start, wd->weekend_start, wd->weekend_len);
_create_items(obj);
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _dayselector_resize, obj);
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE,
_dayselector_resize, obj);
evas_object_smart_callbacks_descriptions_set(obj, _signals);
_mirrored_set(obj, elm_widget_mirrored_get(obj));
_sizing_eval(obj);
@ -589,6 +607,7 @@ elm_dayselector_week_start_set(Evas_Object *obj, Elm_Dayselector_Day day)
EINA_LIST_FOREACH(wd->items, l, it)
{
loc = (ELM_DAYSELECTOR_MAX - wd->week_start + it->day) % ELM_DAYSELECTOR_MAX;
printf("%d\n", loc);
snprintf(buf, sizeof(buf), "day%d", loc);
edje_object_part_swallow(wd->base, buf, VIEW(it));
}

View File

@ -51,12 +51,11 @@
* the different check styles for individual days.
*
* The widget emits the following signals:
*
* <b>"dayselector,changed"</b> - This signal is emitted when the user changes
* the state of a day.
* @li "dayselector,changed" - when the user changes the state of a day.
* @li "language,changed" - the program's launguage changed
*
* Available styles for dayselector are:
* - <b>@c default </b>
* @li default
*
* This example shows the usage of the widget.
* @li @ref dayselector_example