enum _object_type {
BASE_MENU_BTN = 0,
- BASE_VIEW_BTN
+ BASE_VIEW_BTN,
+ BASE_SOURCE_BTN
};
enum _layout_type {
Evas_Object *base;
Evas_Object *menu_btn[E_LAYOUT_MAX];
Evas_Object *view_btn;
+ Evas_Object *source_btn;
Evas_Object *focused_btn;
int current_layout;
int view_mode[E_LAYOUT_MAX];
+ int source_type;
};
const char *view_mode_movie[] = {
"Folder"
};
+const char *source[] = {
+ "TV",
+ "USB",
+};
+
struct _menu_item {
const char *name;
const char *layout_id;
elm_object_text_set(priv->view_btn,
g_menu_item[layout].text_view_mode[mode]);
+ elm_object_text_set(priv->source_btn, source[priv->source_type]);
+
if (priv->focused_btn)
elm_object_signal_emit(priv->focused_btn,
SIG_BTN_UNSELECTED, SIG_SOURCE_SRC);
priv->view_mode[cur] = mode;
}
+static void _source_selected_cb(void *data, int mode)
+{
+ /* It will be implemented later */
+}
+
static void _key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Key_Down *ev)
{
priv->cpopup = cpopup;
}
+static void _source_btn_clicked(struct _priv *priv)
+{
+ struct ctxpopup *cpopup;
+ int x, y, w, h;
+
+ elm_object_signal_emit(priv->source_btn, SIG_BTN_SELECTED,
+ SIG_SOURCE_SRC);
+
+ cpopup = ctxpopup_create(priv->base, STYLE_CTXPOPUP_VIEW_MODE,
+ STYLE_BTN_VIEW_OPTION, source, ARRAY_SIZE(source),
+ priv->source_type);
+ if (!cpopup) {
+ _ERR("failed to create ctxpopup");
+ return;
+ }
+
+ ctxpopup_set_callback(cpopup, _source_selected_cb, priv);
+
+ evas_object_geometry_get(priv->source_btn, &x, &y, &w, &h);
+ ctxpopup_show(cpopup, x + (w / 2), y);
+
+ priv->cpopup = cpopup;
+}
+
static void _clicked_cb(int id, void *data, Evas_Object *obj)
{
struct _priv *priv;
case BASE_VIEW_BTN:
_view_btn_clicked(priv);
break;
+ case BASE_SOURCE_BTN:
+ _source_btn_clicked(priv);
+ break;
default:
break;
}
elm_object_part_content_set(priv->base, PART_BASE_VIEW_MODE, btn);
- elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_RIGHT);
-
priv->view_btn = btn;
return true;
}
+static bool _draw_source_btn(struct _priv *priv)
+{
+ Evas_Object *btn;
+
+ btn = util_add_button(priv->base, STYLE_BTN_VIEW_MODE, NULL);
+ if (!btn) {
+ _ERR("failed to add button object");
+ return false;
+ }
+
+ inputmgr_add_callback(btn, BASE_SOURCE_BTN, &handler, priv);
+
+ elm_object_part_content_set(priv->base, PART_BASE_SOURCE, btn);
+
+ priv->source_btn = btn;
+
+ elm_object_focus_next_object_set(btn, priv->view_btn, ELM_FOCUS_LEFT);
+ elm_object_focus_next_object_set(priv->view_btn, btn, ELM_FOCUS_RIGHT);
+
+ return true;
+}
+
static bool _draw_items(struct _priv *priv)
{
if (!priv)
if (!_draw_view_mode_btn(priv))
return false;
+ if (!_draw_source_btn(priv))
+ return false;
+
return true;
}