ActivityConfigClockView::ActivityConfigClockView(Evas *_e, Evas_Object *_parent): ActivityView(_e, _parent, "calaos/page/config/clock") { printf("Clock view constructor\n"); TimeZone tz; tzList = elm_genlist_add(_parent); setPartText("tab1.text", _("Action and positions of widgets")); setPartText("tab1.text.detail", _("Resume : <light_blue>Current settings</light_blue><br><small>Configure Date and Time !</small")); setPartText("tab2.text", _("About")); setPartText("tab2.text.detail", _("About : <light_blue>Calaos products</light_blue><br><small>Touchscreen solutions.</small>")); elm_object_style_set(tzList, "calaos"); elm_genlist_select_mode_set(tzList, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_fill_set(tzList, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(tzList, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(tzList); Swallow(tzList, "timezone_list.swallow"); for(unsigned int i = 0; i < tz.timeZone.size(); i++) { GenlistItemSimple *_item; _item = new GenlistItemSimple(evas, tzList, tz.timeZone[i].key, true); _item->Append(tzList); } }
void GenlistItemScenarioSchedule::scenarioDelete(void *data) { if (!scenario) return; Evas_Object *table = createPaddingTable(evas, parent, 280, 260); Evas_Object *glist = elm_genlist_add(table); elm_object_style_set(glist, "calaos"); elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(glist); string title_label = _("Confirmation<br><small><light_blue>Are you sure you want to delete this scenarios?</light_blue></small>"); GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); header->Append(glist); GenlistItemSimple *_item = new GenlistItemSimple(evas, parent, _("Yes, delete the scenario"), true); _item->Append(glist, header); _item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::deleteScenarioValid)); _item = new GenlistItemSimple(evas, parent, _("No"), true); _item->Append(glist, header); _item->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::deleteScenarioCancel), _item)); elm_table_pack(table, glist, 1, 1, 1, 1); elm_naviframe_item_push(pager_popup, NULL, NULL, NULL, table, "calaos"); }
void ApplicationController::onMenuRebootClick() { Evas_Object *table = createPaddingTable(evas, layout, 260, 200); Evas_Object *glist = elm_genlist_add(layout); elm_object_style_set(glist, "calaos"); elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(glist); Evas_Object *popup = elm_ctxpopup_add(layout); elm_object_style_set(popup, "calaos"); evas_object_size_hint_min_set(popup, 300, 240); GenlistItemSimple *item; item = new GenlistItemSimple(evas, glist, _("Restart application only"), true); item->Append(glist); item->item_selected.connect([this, popup](void *) { elm_ctxpopup_dismiss(popup); menuView->CloseLinkMenu(); system("systemctl restart calaos-home"); }); item = new GenlistItemSimple(evas, glist, _("Reboot machine"), true); item->Append(glist); item->item_selected.connect([this, popup](void *) { elm_ctxpopup_dismiss(popup); menuView->CloseLinkMenu(); system("sync"); system("reboot"); }); elm_table_pack(table, glist, 1, 1, 1, 1); elm_object_content_set(popup, table); Evas_Coord x,y; evas_pointer_canvas_xy_get(evas, &x, &y); evas_object_move(popup, x, y); evas_object_show(popup); }
void ApplicationController::onMenuAddWidgetClick() { Evas_Object *table = createPaddingTable(evas, layout, 260, 200); Evas_Object *glist = elm_genlist_add(layout); elm_object_style_set(glist, "calaos"); elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(glist); Evas_Object *popup = elm_ctxpopup_add(layout); elm_object_style_set(popup, "calaos"); evas_object_size_hint_min_set(popup, 300, 240); vector<ModuleDef> mods = ModuleManager::Instance().getAvailableModules(); for (uint i = 0;i < mods.size();i++) { ModuleDef def = mods[i]; GenlistItemWidget *item = new GenlistItemWidget(evas, glist, def); item->Append(glist); item->item_selected.connect([this,i,popup](void *) { vector<ModuleDef> m = ModuleManager::Instance().getAvailableModules(); widgetsController->AddWidget(m[i], 200, 200); elm_ctxpopup_dismiss(popup); menuView->CloseLinkMenu(); }); } elm_table_pack(table, glist, 1, 1, 1, 1); elm_object_content_set(popup, table); Evas_Coord x,y; evas_pointer_canvas_xy_get(evas, &x, &y); evas_object_move(popup, x, y); evas_object_show(popup); }
EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *box, *hbox; Evas_Object *list, *btn; int i; win = elm_win_util_standard_add("genlist", "Genlist - simple"); elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); elm_win_autodel_set(win, EINA_TRUE); box = elm_box_add(win); evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, box); evas_object_show(box); list = elm_genlist_add(win); if (!_itc) { _itc = elm_genlist_item_class_new(); _itc->item_style = "default"; _itc->func.text_get = _item_label_get; _itc->func.content_get = _item_content_get; _itc->func.state_get = NULL; _itc->func.del = NULL; } Eina_Bool hbounce, vbounce, always, no_sel; Elm_Scroller_Policy hp, vp; Elm_Object_Select_Mode sel_mode; always = no_sel = EINA_FALSE; sel_mode = elm_genlist_select_mode_get(list); if (sel_mode == ELM_OBJECT_SELECT_MODE_ALWAYS) always = EINA_TRUE; else if (sel_mode == ELM_OBJECT_SELECT_MODE_NONE) no_sel = EINA_TRUE; printf("default values:\n"); printf("always select: %d\n", always); elm_scroller_bounce_get(list, &hbounce, &vbounce); printf("bounce - horizontal: %d, vertical: %d\n", hbounce, vbounce); printf("homogeneous: %d\n", elm_genlist_homogeneous_get(list)); printf("horizontal mode: %d\n", elm_genlist_mode_get(list)); printf("longpress timeout: %0.3f\n", elm_genlist_longpress_timeout_get(list)); printf("multi selection: %d\n", elm_genlist_multi_select_get(list)); printf("no selection mode: %d\n", no_sel); elm_scroller_policy_get(list, &hp, &vp); printf("scroller policy - horizontal: %d, vertical: %d\n", hp, vp); printf("block count: %d\n", elm_genlist_block_count_get(list)); printf("\n"); elm_scroller_bounce_set(list, EINA_FALSE, EINA_FALSE); elm_genlist_homogeneous_set(list, EINA_FALSE); elm_genlist_mode_set(list, ELM_LIST_LIMIT); elm_genlist_multi_select_set(list, EINA_TRUE); elm_genlist_select_mode_set(list, ELM_OBJECT_SELECT_MODE_DEFAULT); elm_scroller_policy_set(list, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_ON); elm_genlist_longpress_timeout_set(list, 0.5); elm_genlist_block_count_set(list, 16); for (i = 0; i < N_ITEMS; i++) { elm_genlist_item_append(list, _itc, (void *)(long)i, NULL, ELM_GENLIST_ITEM_NONE, _item_sel_cb, NULL); } evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(box, list); evas_object_show(list); hbox = elm_box_add(win); elm_box_horizontal_set(hbox, EINA_TRUE); evas_object_size_hint_weight_set(hbox, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(hbox, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(box, hbox); evas_object_show(hbox); btn = elm_button_add(win); elm_object_text_set(btn, "Show status"); evas_object_size_hint_weight_set(btn, 0, 0); evas_object_size_hint_align_set(btn, 0.5, 0.5); evas_object_smart_callback_add(btn, "clicked", _show_status_cb, list); elm_box_pack_end(hbox, btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, "Realize"); evas_object_size_hint_weight_set(btn, 0, 0); evas_object_size_hint_align_set(btn, 0.5, 0.5); evas_object_smart_callback_add(btn, "clicked", _realize_cb, list); elm_box_pack_end(hbox, btn); evas_object_show(btn); evas_object_resize(win, 200, 320); evas_object_show(win); elm_run(); elm_shutdown(); return 0; }
void ActivityScheduleScenarioView::reloadTimeRanges() { elm_genlist_clear(schedule_list); vector<TimeRange> trange_sorted; auto sortTimeRange = [&trange_sorted](vector<TimeRange> &range, int day) { for (TimeRange &t: range) { auto it = std::find(trange_sorted.begin(), trange_sorted.end(), t); if (it != trange_sorted.end()) { //timerange already in trange_sorted, add the day of week flag it->dayOfWeek.set(day); } else { TimeRange newtr = t; newtr.dayOfWeek.reset(); newtr.dayOfWeek.set(day); trange_sorted.push_back(newtr); } } }; sortTimeRange(range_infos.range_monday, 0); sortTimeRange(range_infos.range_tuesday, 1); sortTimeRange(range_infos.range_wednesday, 2); sortTimeRange(range_infos.range_thursday, 3); sortTimeRange(range_infos.range_friday, 4); sortTimeRange(range_infos.range_saturday, 5); sortTimeRange(range_infos.range_sunday, 6); for (TimeRange &t: trange_sorted) { GenlistItemScenarioScheduleTime *item = new GenlistItemScenarioScheduleTime(evas, parent, t); item->Append(schedule_list); item->edit_click.connect([=]() { is_edit = true; old_range = t; edit_range = t; editState = EDIT_START_TYPE; showTimeRangePopup(); }); item->del_click.connect([=]() { Evas_Object *table = createPaddingTable(evas, parent, 280, 260); Evas_Object *glist = elm_genlist_add(table); elm_object_style_set(glist, "calaos"); elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(glist); string title_label = _("Confirmation"); title_label += "<br><small><light_blue>"; title_label += _("Are you sure to delete this schedule?"); title_label += "</light_blue></small>"; GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); header->Append(glist); Evas_Object *popup_del = elm_ctxpopup_add(parent); GenlistItemSimple *_item = new GenlistItemSimple(evas, parent, _("Yes, delete this schedule"), true); _item->Append(glist, header); _item->item_selected.connect([=](void *) { deleteTimeRange(t); elm_ctxpopup_dismiss(popup_del); reloadTimeRanges(); }); _item = new GenlistItemSimple(evas, parent, "Non", true); _item->Append(glist, header); _item->item_selected.connect([=](void *) { elm_ctxpopup_dismiss(popup_del); }); elm_table_pack(table, glist, 1, 1, 1, 1); elm_object_content_set(popup_del, table); elm_object_style_set(popup_del, "calaos"); elm_ctxpopup_direction_priority_set(popup_del, ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_LEFT, ELM_CTXPOPUP_DIRECTION_RIGHT); Evas_Coord x,y; evas_pointer_canvas_xy_get(evas, &x, &y); evas_object_move(popup_del, x, y); evas_object_show(popup_del); }); } //reload months if (range_infos.range_months.all()) { //all months are selected item_all->setSelected(true); for (uint i = 0;i < items_months.size();i++) items_months[i]->setSelected(false); } else { item_all->setSelected(false); for (uint i = 0;i < items_months.size();i++) items_months[i]->setSelected(range_infos.range_months.test(i)); } }
void ActivityScheduleScenarioView::showWeekSelection(void *data, Evas_Object *edje_object, string emission, string source) { if (cycle) { if (edit_range.end_type == TimeRange::HTYPE_NORMAL || edit_range.end_offset != 0) { edit_range.ehour = Utils::to_string(elm_spinner_value_get(spin_end_hours)); edit_range.emin = Utils::to_string(elm_spinner_value_get(spin_end_min)); edit_range.esec = Utils::to_string(elm_spinner_value_get(spin_end_sec)); } } else { if (edit_range.start_type == TimeRange::HTYPE_NORMAL || edit_range.start_offset != 0) { edit_range.shour = Utils::to_string(elm_spinner_value_get(spin_start_hours)); edit_range.smin = Utils::to_string(elm_spinner_value_get(spin_start_min)); edit_range.ssec = Utils::to_string(elm_spinner_value_get(spin_start_sec)); } edit_range.end_type = edit_range.start_type; edit_range.end_offset = edit_range.start_offset; edit_range.ehour = edit_range.shour; edit_range.emin = edit_range.smin; edit_range.esec = edit_range.ssec; } Evas_Object *table = createPaddingTable(evas, parent, 300, 300); Evas_Object *glist = elm_genlist_add(table); elm_object_style_set(glist, "calaos"); elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_genlist_multi_select_set(glist, true); evas_object_show(glist); string title_label = _("Days of the week<br><small><light_blue>Days of the week when scenario is executed.</light_blue></small>"); GenlistItemSimpleHeader *header = new GenlistItemSimpleHeader(evas, glist, title_label, "navigation"); header->Append(glist); if (cycle) header->setButtonLabel("button.back", _("End")); else header->setButtonLabel("button.back", _("Beginning")); header->button_click.connect(sigc::mem_fun(*this, &ActivityScheduleScenarioView::headerWeekButtonClick)); week_days.clear(); week_days.reserve(8); GenlistItemSimple *item; for (int i = 0;i < 8;i++) { string label; switch (i) { case 0: label = _("Everyday"); break; case 1: label = _("Monday"); break; case 2: label = _("Tuesday"); break; case 3: label = _("Wednesday"); break; case 4: label = _("Thursday"); break; case 5: label = _("Friday"); break; case 6: label = _("Saturday"); break; case 7: label = _("Sunday"); break; default: label = _("ERROR"); } item = new GenlistItemSimple(evas, glist, label, true, false, NULL, "check"); item->Append(glist, header); week_days.push_back(item); if (i == 0) { item->item_selected.connect(sigc::mem_fun(*this, &ActivityScheduleScenarioView::unselectWeekDays)); item->setSelected(true); } else { item->item_selected.connect(sigc::mem_fun(*this, &ActivityScheduleScenarioView::unselectAllWeekDays)); } } elm_table_pack(table, glist, 1, 1, 1, 1); elm_naviframe_item_push(pager_popup, NULL, NULL, NULL, table, "calaos"); }
void ActivityScheduleScenarioView::selectTimeType(void *data) { int *user_data = reinterpret_cast<int *>(data); if (editState == EDIT_START_TYPE) { editStatesHist.push(editState); edit_range.start_type = *user_data; if (edit_range.start_type == TimeRange::HTYPE_NORMAL) editState = EDIT_START_TIME; else editState = EDIT_START_OFFSET; } else if (editState == EDIT_END_TYPE) { edit_range.end_type = *user_data; editStatesHist.push(editState); if (edit_range.end_type == TimeRange::HTYPE_NORMAL) editState = EDIT_END_TIME; else editState = EDIT_END_OFFSET; } if (editState == EDIT_END_TIME || editState == EDIT_START_TIME) { if (editState == EDIT_END_TIME) edit_range.end_type = TimeRange::HTYPE_NORMAL; else edit_range.start_type = TimeRange::HTYPE_NORMAL; showTimeSelection(NULL); } else { Evas_Object *table = createPaddingTable(evas, parent, 300, 300); Evas_Object *glist = elm_genlist_add(table); elm_object_style_set(glist, "calaos"); elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(glist); string title_label = _("<b>Offset time</b><br><light_blue><small>You can choose to shift the sun time</small></light_blue>"); GenlistItemSimpleHeader *header = new GenlistItemSimpleHeader(evas, glist, title_label, "navigation_back"); header->Append(glist); header->setButtonLabel("button.back", "Début"); header->button_click.connect(sigc::mem_fun(*this, &ActivityScheduleScenarioView::buttonHeaderBackClick)); GenlistItemSimple *item = NULL; for (int i = 0;i < 3;i++) { switch (i) { case 0: item = new GenlistItemSimple(evas, glist, _("Use the exact sun time"), true, false, new int(i)); break; case 1: item = new GenlistItemSimple(evas, glist, _("Add time"), true, false, new int(i)); break; case 2: item = new GenlistItemSimple(evas, glist, _("Substract time"), true, false, new int(i)); break; default: break; } item->Append(glist, header); item->setAutoDeleteUserData(new DeletorT<int *>); item->item_selected.connect(sigc::mem_fun(*this, &ActivityScheduleScenarioView::showTimeSelection)); } elm_table_pack(table, glist, 1, 1, 1, 1); elm_naviframe_item_push(pager_popup, NULL, NULL, NULL, table, "calaos"); } }
void ActivityScheduleScenarioView::createTimeSelectTypeList(void *data, Evas_Object *edje_object, string emission, string source) { if ((editState == EDIT_START_TIME || editState == EDIT_START_TIME_OFFSET) && cycle) { editStatesHist.push(editState); editState = EDIT_END_TYPE; } if (editState == EDIT_END_TYPE) { if (edit_range.start_type == TimeRange::HTYPE_NORMAL || edit_range.start_offset != 0) { edit_range.shour = Utils::to_string(elm_spinner_value_get(spin_start_hours)); edit_range.smin = Utils::to_string(elm_spinner_value_get(spin_start_min)); edit_range.ssec = Utils::to_string(elm_spinner_value_get(spin_start_sec)); } else { edit_range.shour = "0"; edit_range.smin = "0"; edit_range.ssec = "0"; } } Evas_Object *table = createPaddingTable(evas, parent, 320, 300); Evas_Object *glist = elm_genlist_add(table); elm_object_style_set(glist, "calaos"); elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(glist); string title_label; GenlistItemSimpleHeader *header = NULL; if (editState == EDIT_START_TYPE) { title_label = _("Start of schedulling<br><small><light_blue>Start time of the scenario</light_blue></small>"); header = new GenlistItemSimpleHeader(evas, glist, title_label); header->Append(glist); } else { title_label = _("End of schedulling<br><small><light_blue>End time of the scenario</light_blue></small>"); header = new GenlistItemSimpleHeader(evas, glist, title_label, "navigation_back"); header->Append(glist); header->setButtonLabel("button.back", _("Start")); header->button_click.connect(sigc::mem_fun(*this, &ActivityScheduleScenarioView::buttonHeaderBackClick)); } GenlistItemSimple *item = nullptr; for (int i = 0;i < 4;i++) { switch (i) { case 0: item = new GenlistItemSimple(evas, glist, _("Use a fixed time"), true, false, new int(TimeRange::HTYPE_NORMAL)); break; case 1: item = new GenlistItemSimple(evas, glist, _("Use the sunrise"), true, false, new int(TimeRange::HTYPE_SUNRISE)); break; case 2: item = new GenlistItemSimple(evas, glist, _("Use the sunset"), true, false, new int(TimeRange::HTYPE_SUNSET)); break; case 3: item = new GenlistItemSimple(evas, glist, _("Use the midday sun"), true, false, new int(TimeRange::HTYPE_NOON)); break; default: break; } item->Append(glist, header); item->setAutoDeleteUserData(new DeletorT<int *>); item->item_selected.connect(sigc::mem_fun(*this, &ActivityScheduleScenarioView::selectTimeType)); } elm_table_pack(table, glist, 1, 1, 1, 1); elm_naviframe_item_push(pager_popup, NULL, NULL, NULL, table, "calaos"); }
void GenlistItemScenarioSchedule::buttonClickMore() { if (!scenario) return; Evas_Object *table = createPaddingTable(evas, parent, 280, 260); Evas_Object *glist = elm_genlist_add(table); elm_object_style_set(glist, "calaos"); elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(glist); string title_label = _("Scenario parameters<br><small><light_blue>Modify, add or delete a schedule.</light_blue></small>"); GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); header->Append(glist); GenlistItemSimple *_item; _item = new GenlistItemSimple(evas, glist, _("Modify the scenario"), true); _item->setIcon("calaos/icons/genlist/edit"); _item->Append(glist, header); _item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scenarioModify)); _item = new GenlistItemSimple(evas, glist, _("Delete the scenario"), true); _item->setIcon("calaos/icons/genlist/trash"); _item->Append(glist, header); _item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scenarioDelete)); _item = new GenlistItemSimple(evas, glist, _("Run the scenario now"), true); _item->setIcon("calaos/icons/genlist/play"); _item->Append(glist, header); _item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scenarioPlay)); if (scenario->scenario_data.params["schedule"] == "false") { _item = new GenlistItemSimple(evas, glist, _("Add a schedule"), true); _item->setIcon("calaos/icons/genlist/plus"); _item->Append(glist, header); _item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scheduleAdd)); } else { _item = new GenlistItemSimple(evas, glist, _("Schedule modification"), true); _item->setIcon("calaos/icons/genlist/clock"); _item->Append(glist, header); _item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scheduleModify)); _item = new GenlistItemSimple(evas, glist, _("Delete schedule"), true); _item->setIcon("calaos/icons/genlist/trash"); _item->Append(glist, header); _item->item_selected.connect(sigc::mem_fun(*this, &GenlistItemScenarioSchedule::scheduleDelete)); } elm_table_pack(table, glist, 1, 1, 1, 1); pager_popup = elm_naviframe_add(parent); evas_object_show(pager_popup); popup = elm_ctxpopup_add(parent); elm_object_content_set(popup, pager_popup); elm_object_style_set(popup, "calaos"); elm_ctxpopup_direction_priority_set(popup, ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_LEFT, ELM_CTXPOPUP_DIRECTION_RIGHT); Evas_Coord x,y; evas_pointer_canvas_xy_get(evas, &x, &y); evas_object_move(popup, x, y); evas_object_show(popup); elm_naviframe_item_push(pager_popup, NULL, NULL, NULL, table, "calaos"); }
void GenlistItemTrack::buttonClickMore() { Evas_Object *table = createPaddingTable(evas, parent, 260, 200); Evas_Object *glist = elm_genlist_add(parent); elm_object_style_set(glist, "calaos"); elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_fill_set(glist, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(glist); string title_label = "Info de la <light_blue>piste #" + Utils::to_string(item_id + 1) + "</light_blue><br><small>Détails de la piste.</small>"; GenlistItemBase *header = new GenlistItemSimpleHeader(evas, glist, title_label); header->Append(glist); string infolabel; if (item_infos["artist"] != "") { infolabel = item_infos["artist"]; GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Artiste :", infolabel); it->Append(glist, header); } if (item_infos["album"] != "") { infolabel = item_infos["album"]; GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Album :", infolabel); it->Append(glist, header); } if (item_infos["title"] != "") { infolabel = item_infos["title"]; GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Titre :", infolabel); it->Append(glist, header); } if (item_infos["duration"] != "") { double dur; from_string(item_infos["duration"], dur); infolabel = Utils::time2string_digit((long)dur); GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Durée :", infolabel); it->Append(glist, header); } if (item_infos["genre"] != "") { infolabel = item_infos["genre"]; GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Genre :", infolabel); it->Append(glist, header); } if (item_infos["type"] != "") { infolabel = item_infos["type"]; GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Type de flux :", infolabel); it->Append(glist, header); } if (item_infos["bitrate"] != "") { infolabel = item_infos["bitrate"]; GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Débit :", infolabel); it->Append(glist, header); } if (item_infos["filesize"] != "") { long int s; from_string(item_infos["filesize"], s); s /= 1024; s /= 1024; infolabel = Utils::to_string(s) + " Mo"; GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Taille :", infolabel); it->Append(glist, header); } if (item_infos["samplerate"] != "") { infolabel = item_infos["samplerate"] + " Hz"; GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Echantillonage :", infolabel); it->Append(glist, header); } if (item_infos["tagversion"] != "") { infolabel = item_infos["tagversion"]; GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Version du tag :", infolabel); it->Append(glist, header); } if (item_infos["comment"] != "") { infolabel = item_infos["comment"]; GenlistItemSimpleKeyValue *it = new GenlistItemSimpleKeyValue(evas, glist, "Commentaire :", infolabel); it->Append(glist, header); } elm_table_pack(table, glist, 1, 1, 1, 1); Evas_Object *popup_position = elm_ctxpopup_add(parent); elm_object_style_set(popup_position, "calaos"); evas_object_size_hint_min_set(popup_position, 300, 240); elm_object_content_set(popup_position, table); Evas_Coord x,y; evas_pointer_canvas_xy_get(evas, &x, &y); evas_object_move(popup_position, x, y); evas_object_show(popup_position); }