#define STATE_NORMAL 0
#define STATE_LOCKED 1
#define STATE_CHECKED 2
-
+#define STATE_FOCUSED 3
group {
name, "elm/gengrid/item/style.grid.wireless/default";
data.item, "texts" "part.wifi.name";
data.item, "states" "part_state_check part_state_lock";
images {
+ image, IC_NETWORK_NOR_01_PNG COMP;
+ image, IC_NETWORK_NOR_02_PNG COMP;
+ image, IC_NETWORK_NOR_03_PNG COMP;
image, IC_NETWORK_NOR_04_PNG COMP;
+ image, IC_NETWORK_FOC_01_PNG COMP;
+ image, IC_NETWORK_FOC_02_PNG COMP;
+ image, IC_NETWORK_FOC_03_PNG COMP;
image, IC_NETWORK_FOC_04_PNG COMP;
+ image, IC_LOCK_NETWORK_NOR_01_PNG COMP;
+ image, IC_LOCK_NETWORK_NOR_02_PNG COMP;
+ image, IC_LOCK_NETWORK_NOR_03_PNG COMP;
image, IC_LOCK_NETWORK_NOR_04_PNG COMP;
+ image, IC_LOCK_NETWORK_FOC_01_PNG COMP;
+ image, IC_LOCK_NETWORK_FOC_02_PNG COMP;
+ image, IC_LOCK_NETWORK_FOC_03_PNG COMP;
image, IC_LOCK_NETWORK_FOC_04_PNG COMP;
image, IC_CHECK_NOR_PNG COMP;
image, IC_CHECK_FOC_PNG COMP;
script {
public lock_state;
public check_state;
+ public signal_level;
+ public is_focused;
}
parts {
map.on, 1;
image.normal, IC_NETWORK_NOR_04_PNG;
}
+
+
+
+ description {
+ state, "focused.locked" 0.1;
+ inherit, "focused.locked" 0.0;
+ image.normal, IC_LOCK_NETWORK_FOC_01_PNG;
+ }
+ description {
+ state, "focused.locked" 0.2;
+ inherit, "focused.locked" 0.0;
+ image.normal, IC_LOCK_NETWORK_FOC_02_PNG;
+ }
+ description {
+ state, "focused.locked" 0.3;
+ inherit, "focused.locked" 0.0;
+ image.normal, IC_LOCK_NETWORK_FOC_03_PNG;
+ }
+ description {
+ state, "focused.locked" 0.4;
+ inherit, "focused.locked" 0.0;
+ image.normal, IC_LOCK_NETWORK_FOC_04_PNG;
+ }
+
+ description {
+ state, "focused.unlocked" 0.1;
+ inherit, "focused.unlocked" 0.0;
+ image.normal, IC_NETWORK_FOC_01_PNG;
+ }
+ description {
+ state, "focused.unlocked" 0.2;
+ inherit, "focused.unlocked" 0.0;
+ image.normal, IC_NETWORK_FOC_02_PNG;
+ }
+ description {
+ state, "focused.unlocked" 0.3;
+ inherit, "focused.unlocked" 0.0;
+ image.normal, IC_NETWORK_FOC_03_PNG;
+ }
+ description {
+ state, "focused.unlocked" 0.4;
+ inherit, "focused.unlocked" 0.0;
+ image.normal, IC_NETWORK_FOC_04_PNG;
+ }
+
+
+
+ description {
+ state, "unfocused.locked" 0.1;
+ inherit, "unfocused.locked" 0.0;
+ image.normal, IC_LOCK_NETWORK_NOR_01_PNG;
+ }
+ description {
+ state, "unfocused.locked" 0.2;
+ inherit, "unfocused.locked" 0.0;
+ image.normal, IC_LOCK_NETWORK_NOR_02_PNG;
+ }
+ description {
+ state, "unfocused.locked" 0.3;
+ inherit, "unfocused.locked" 0.0;
+ image.normal, IC_LOCK_NETWORK_NOR_03_PNG;
+ }
+ description {
+ state, "unfocused.locked" 0.4;
+ inherit, "unfocused.locked" 0.0;
+ image.normal, IC_LOCK_NETWORK_NOR_04_PNG;
+ }
+
+ description {
+ state, "unfocused.unlocked" 0.1;
+ inherit, "unfocused.unlocked" 0.0;
+ image.normal, IC_NETWORK_NOR_01_PNG;
+ }
+ description {
+ state, "unfocused.unlocked" 0.2;
+ inherit, "unfocused.unlocked" 0.0;
+ image.normal, IC_NETWORK_NOR_02_PNG;
+ }
+ description {
+ state, "unfocused.unlocked" 0.3;
+ inherit, "unfocused.unlocked" 0.0;
+ image.normal, IC_NETWORK_NOR_03_PNG;
+ }
+ description {
+ state, "unfocused.unlocked" 0.4;
+ inherit, "unfocused.unlocked" 0.0;
+ image.normal, IC_NETWORK_NOR_04_PNG;
+ }
}
part {
script {
set_int(lock_state, STATE_NORMAL);
set_int(check_state, STATE_NORMAL);
+ set_float(signal_level, 0.0);
+ set_int(is_focused, STATE_NORMAL);
}
}
source, SRC_ELM;
script {
new state;
+ new Float:signal_icon;
+
state = get_int(lock_state);
+ signal_icon = get_float(signal_level);
+
if (state == STATE_LOCKED)
- set_state(PART:"part.wifi.icon", "focused.locked", 0.0);
+ set_state(PART:"part.wifi.icon", "focused.locked", signal_icon);
else
- set_state(PART:"part.wifi.icon", "focused.unlocked", 0.0);
+ set_state(PART:"part.wifi.icon", "focused.unlocked", signal_icon);
state = get_int(check_state);
if (state == STATE_CHECKED)
set_state(PART:PART_WIFI_NAME, "focused", 0.0);
set_state(PART:"part.bg", "focused", 0.0);
+ set_int(is_focused, STATE_FOCUSED);
}
}
source, SRC_ELM;
script {
new state;
+ new Float:signal_icon;
+
state = get_int(lock_state);
+ signal_icon = get_float(signal_level);
+
if (state == STATE_LOCKED)
- set_state(PART:"part.wifi.icon", "unfocused.locked", 0.0);
+ set_state(PART:"part.wifi.icon", "unfocused.locked", signal_icon);
else
- set_state(PART:"part.wifi.icon", "unfocused.unlocked", 0.0);
+ set_state(PART:"part.wifi.icon", "unfocused.unlocked", signal_icon);
state = get_int(check_state);
if (state == STATE_CHECKED)
set_state(PART:PART_WIFI_NAME, "unfocused", 0.0);
set_state(PART:"part.bg", "default", 0.0);
+ set_int(is_focused, STATE_NORMAL);
+ }
+ }
+
+ program {
+ name, "update_wifi_signal_icon";
+ script {
+ new state;
+ new focused;
+ new Float:signal_icon;
+
+ focused = get_int(is_focused);
+ state = get_int(lock_state);
+ signal_icon = get_float(signal_level);
+
+ if (focused == STATE_FOCUSED) {
+ if (state == STATE_LOCKED)
+ set_state(PART:"part.wifi.icon", "focused.locked", signal_icon);
+ else
+ set_state(PART:"part.wifi.icon", "focused.unlocked", signal_icon);
+ } else {
+ if (state == STATE_LOCKED)
+ set_state(PART:"part.wifi.icon", "unfocused.locked", signal_icon);
+ else
+ set_state(PART:"part.wifi.icon", "unfocused.unlocked", signal_icon);
+ }
+ }
+ }
+
+ program {
+ name: "wifi_signal_level,1";
+ signal: "wifi_signal_level,1";
+ source, SRC_ELM;
+ script {
+ set_float(signal_level, 0.1);
+ set_state(PART:"part.wifi.icon", "focused.locked", 0.1);
+ run_program(PROGRAM:"update_wifi_signal_icon");
+ }
+ }
+
+ program {
+ name: "wifi_signal_level,2";
+ signal: "wifi_signal_level,2";
+ source, SRC_ELM;
+ script {
+ set_float(signal_level, 0.2);
+ set_state(PART:"part.wifi.icon", "focused.locked", 0.2);
+ run_program(PROGRAM:"update_wifi_signal_icon");
+ }
+ }
+
+ program {
+ name, "wifi_signal_level,3";
+ signal, "wifi_signal_level,3";
+ source, SRC_ELM;
+ script {
+ set_float(signal_level, 0.3);
+ set_state(PART:"part.wifi.icon", "focused.locked", 0.3);
+ run_program(PROGRAM:"update_wifi_signal_icon");
+ }
+ }
+
+ program {
+ name, "wifi_signal_level,4";
+ signal, "wifi_signal_level,4";
+ source, SRC_ELM;
+ script {
+ set_float(signal_level, 0.4);
+ set_state(PART:"part.wifi.icon", "focused.locked", 0.4);
+ run_program(PROGRAM:"update_wifi_signal_icon");
}
}
}
}
+static void _grid_realized_cb(int id, void *data, Evas_Object *obj,
+ Elm_Object_Item *item)
+{
+ struct wifi_ap_info *ap_info = NULL;
+
+ if (!item) {
+ _ERR("Invalid argument.");
+ return;
+ }
+
+ ap_info = (struct wifi_ap_info*)elm_object_item_data_get(item);
+ if (ap_info) {
+ switch(ap_info->signal_level) {
+ case SIGNAL_LEVEL_1:
+ elm_object_item_signal_emit(item, "wifi_signal_level,1", "elm");
+ break;
+ case SIGNAL_LEVEL_2:
+ elm_object_item_signal_emit(item, "wifi_signal_level,2", "elm");
+ break;
+ case SIGNAL_LEVEL_3:
+ elm_object_item_signal_emit(item, "wifi_signal_level,3", "elm");
+ break;
+ case SIGNAL_LEVEL_4:
+ elm_object_item_signal_emit(item, "wifi_signal_level,4", "elm");
+ break;
+ }
+ }
+}
+
static input_handler _network_type_input_handler = {
.mouse_move = _mouse_move_cb,
.key_down = _network_type_key_down_cb,
.key_down = _action_key_down_cb,
};
+static input_handler _grid_input_handler = {
+ .realized = _grid_realized_cb,
+};
+
static void _draw_no_contents_message(struct _priv *priv)
{
elm_object_signal_emit(priv->ly, SIG_NO_WIRELESS, SRC_ELM);
layoutmgr_set_layout_data(lmgr, LAYOUT_ID_NETWORK, priv);
+ listmgr_add_realized_cb(priv->listmgr, LIST_WIRELESS,
+ &_grid_input_handler, NULL);
+
return true;
err:
if (priv->wirelessmgr)
datamgr_destroy(priv->wirelessmgr);
- if (priv->listmgr)
+ if (priv->listmgr) {
+ listmgr_remove_realized_cb(priv->listmgr, LIST_WIRELESS,
+ &_grid_input_handler);
listmgr_destroy(priv->listmgr);
+ }
evas_object_del(priv->ly);