void ActivityScenariosView::loadScenarioList() { elm_genlist_clear(scenario_list); GenlistItemScenarioHeader *headerLight = NULL, *headerShutter = NULL, *headerOther = NULL; if (view_mode == VIEW_MODE_ALL || view_mode == VIEW_MODE_SCHEDULE) { headerLight = new GenlistItemScenarioHeader(evas, parent, _("Lights scenarios")); headerLight->Append(scenario_list); headerShutter = new GenlistItemScenarioHeader(evas, parent, _("Shutters scenarios")); headerShutter->Append(scenario_list); headerOther = new GenlistItemScenarioHeader(evas, parent, _("Other Scenarios")); headerOther->Append(scenario_list); } else if (view_mode == VIEW_MODE_LIGHT) { headerLight = new GenlistItemScenarioHeader(evas, parent, _("Lights scenarios")); headerLight->Append(scenario_list); } else if (view_mode == VIEW_MODE_SHUTTER) { headerShutter = new GenlistItemScenarioHeader(evas, parent, _("Shutters scenarios")); headerShutter->Append(scenario_list); } //populate the scenario list list<Scenario *>::iterator it = CalaosModel::Instance().getScenario()->scenarios.begin(); for (;it != CalaosModel::Instance().getScenario()->scenarios.end();it++) { Scenario *sc = *it; bool cont = true; if (sc->getFirstCategory() == "light" && (view_mode == VIEW_MODE_ALL || view_mode == VIEW_MODE_LIGHT || view_mode == VIEW_MODE_SCHEDULE)) { if (view_mode == VIEW_MODE_SCHEDULE) { if (sc->isScheduled()) cont = false; } else cont = false; } if (sc->getFirstCategory() == "shutter" && (view_mode == VIEW_MODE_ALL || view_mode == VIEW_MODE_SHUTTER || view_mode == VIEW_MODE_SCHEDULE)) { if (view_mode == VIEW_MODE_SCHEDULE) { if (sc->isScheduled()) cont = false; } else cont = false; } if (sc->getFirstCategory() == "other" && (view_mode == VIEW_MODE_ALL || view_mode == VIEW_MODE_SCHEDULE)) { if (view_mode == VIEW_MODE_SCHEDULE) { if (sc->isScheduled()) cont = false; } else cont = false; } if (cont) continue; GenlistItemScenarioSchedule *item = new GenlistItemScenarioSchedule(evas, parent, false, sc); item->schedule_add_click.connect(sigc::mem_fun(schedule_add_click, &sigc::signal<void, Scenario *>::emit)); item->schedule_modify_click.connect(sigc::mem_fun(schedule_modify_click, &sigc::signal<void, Scenario *>::emit)); item->schedule_del_click.connect(sigc::mem_fun(schedule_del_click, &sigc::signal<void, Scenario *>::emit)); if (sc->getFirstCategory() == "light") item->InsertAfter(scenario_list, headerLight); else if (sc->getFirstCategory() == "shutter") item->InsertAfter(scenario_list, headerShutter); else item->InsertAfter(scenario_list, headerOther); } }
ActivityScheduleScenarioView::ActivityScheduleScenarioView(Evas *_e, Evas_Object *_parent): ActivityView(_e, _parent, "calaos/page/schedule_scenario"), schedule_list(NULL), month_list(NULL) { setPartText("header.label", _("Scheduling")); addCallback("button.*", "pressed", sigc::mem_fun(*this, &ActivityScheduleScenarioView::buttonPressed)); schedule_list = elm_genlist_add(parent); Swallow(schedule_list, "schedule.list"); elm_object_style_set(schedule_list, "calaos"); elm_genlist_homogeneous_set(schedule_list, true); evas_object_show(schedule_list); month_list = elm_genlist_add(parent); Swallow(month_list, "month.list"); elm_object_style_set(month_list, "calaos"); elm_genlist_homogeneous_set(month_list, true); evas_object_show(month_list); elm_genlist_multi_select_set(month_list, true); GenlistItemScenarioHeader *header; GenlistItemSimple *item; header = new GenlistItemScenarioHeader(evas, parent, _("Month of year")); header->Append(month_list); item = new GenlistItemSimple(evas, parent, _("All year"), true, false, NULL, "check"); item->Append(month_list); item_all = item; item_all->setSelected(true); item = new GenlistItemSimple(evas, parent, _("January"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("February"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("March"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("April"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("May"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("June"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("July"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("August"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("September"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("October"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("November"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); item = new GenlistItemSimple(evas, parent, _("December"), true, false, NULL, "check"); item->Append(month_list); items_months.push_back(item); /* * Can't use that for now. Seasons are not the same all over the world at the same monthes * (northern hemisphere/southern hemisphere have the opposite) We need to handle that * maybe from longitude/latitude in local_config.xml * header = new GenlistItemScenarioHeader(evas, parent, "Périodes prédéfinies"); header->Append(month_list); item = new GenlistItemSimple(evas, parent, _("Spring"), true, false, NULL, "check"); item->Append(month_list); items_periods.push_back(item); item = new GenlistItemSimple(evas, parent, _("Summer"), true, false, NULL, "check"); item->Append(month_list); items_periods.push_back(item); item = new GenlistItemSimple(evas, parent, _("Fall"), true, false, NULL, "check"); item->Append(month_list); items_periods.push_back(item); item = new GenlistItemSimple(evas, parent, _("Winter"), true, false, NULL, "check"); item->Append(month_list); items_periods.push_back(item); */ //Set up selection callback item_all->item_selected.connect([=](void *data) { if (item_all->isSelected()) { for (uint i = 0;i < items_months.size();i++) items_months[i]->setSelected(false); } }); for (uint i = 0;i < items_months.size();i++) { GenlistItemSimple *it = items_months[i]; it->item_selected.connect([=](void *data) { if (item_all->isSelected()) item_all->setSelected(false); }); } // for (uint i = 0;i < items_periods.size();i++) // items_periods[i]->item_selected.connect(sigc::bind(sigc::mem_fun(*this, &ActivityScheduleScenarioView::itemPeriodSelected), items_periods[i])); Evas_Object *btn = edje_object_part_external_object_get(edje, "button.valid"); elm_object_text_set(btn, _("Apply")); btn = edje_object_part_external_object_get(edje, "button.add"); elm_object_text_set(btn, _("Add")); setPartText("hours_text", _("<big><disabled>Hours of execution</disabled></big>")); setPartText("month_text", _("<big><disabled>Specific schedule</disabled></big>")); }