diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index fa918d333..664b7abbe 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -39,7 +39,7 @@ #include #include -#include + #include #include #include @@ -377,10 +377,6 @@ int CChannelList::doChannelMenu(void) menu->addItem(new CMenuForwarder(LOCALE_CHANNELLIST_RESET_ALL, reset_all, NULL, selector, cnt, CRCInput::convertDigitToKey(shortcut++)), old_selected == i++); snprintf(cnt, sizeof(cnt), "%d", i); menu->addItem(new CMenuSeparator(CMenuSeparator::LINE)); - - //use osd channel list settings widget from COsdSetup class - CMenuWidget osd_menu_chanlist(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_OSDSETUP_CHANNELLIST); - osd_menu_chanlist.suppressDetailsLine(true); menu->addItem(new CMenuForwarder(LOCALE_MAINMENU_SETTINGS, true, NULL, selector, cnt, CRCInput::convertDigitToKey(shortcut++)), old_selected == i++); menu->exec(NULL, ""); delete menu; @@ -502,7 +498,7 @@ int CChannelList::doChannelMenu(void) { previous_channellist_additional = g_settings.channellist_additional; COsdSetup osd_setup; - osd_setup.showContextChanlistMenu(&osd_menu_chanlist); + osd_setup.showContextChanlistMenu(); //FIXME check font/options changed ? hide(); calcSize(); diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index ce3173556..955fa8ef2 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -1118,10 +1118,68 @@ bool COsdSetup::changeNotify(const neutrino_locale_t OptionName, void * data) return false; } -int COsdSetup::showContextChanlistMenu(CMenuWidget *menu_chanlist) +int COsdSetup::showContextChanlistMenu() { - showOsdChanlistSetup(menu_chanlist); - return menu_chanlist->exec(NULL, ""); + static int cselected = -1; + + CMenuWidget * menu_chanlist = new CMenuWidget(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width); + menu_chanlist->enableSaveScreen(true); + menu_chanlist->enableFade(false); + menu_chanlist->setSelected(cselected); + + CMenuOptionChooser * mc; + + menu_chanlist->addIntroItems(LOCALE_MISCSETTINGS_CHANNELLIST);//, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); + + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_ADDITIONAL, &g_settings.channellist_additional, CHANNELLIST_ADDITIONAL_OPTIONS, CHANNELLIST_ADDITIONAL_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_ADDITIONAL); + menu_chanlist->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_EPGTEXT_ALIGN, &g_settings.channellist_epgtext_align_right, CHANNELLIST_EPGTEXT_ALIGN_RIGHT_OPTIONS, CHANNELLIST_EPGTEXT_ALIGN_RIGHT_OPTIONS_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_EPG_ALIGN); + menu_chanlist->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_EXTENDED, &g_settings.channellist_extended, CHANNELLIST_EXTENDED_OPTIONS, CHANNELLIST_EXTENDED_OPTIONS_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_EXTENDED); + menu_chanlist->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_FOOT, &g_settings.channellist_foot, CHANNELLIST_FOOT_OPTIONS, CHANNELLIST_FOOT_OPTIONS_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_FOOT); + menu_chanlist->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_COLORED_EVENTS, &g_settings.colored_events_channellist, OPTIONS_COLORED_EVENTS_OPTIONS, OPTIONS_COLORED_EVENTS_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_COLORED); + menu_chanlist->addItem(mc); + + //show channel logo + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_SHOW_CHANNELLOGO, &g_settings.channellist_show_channellogo, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_SHOW_CHANNELLOGO); + menu_chanlist->addItem(mc); + + menu_chanlist->addItem(new CMenuSeparator(CMenuSeparator::LINE)); + + CMenuWidget *fontSettingsSubMenu = new CMenuWidget(LOCALE_FONTMENU_HEAD, NEUTRINO_ICON_KEYBINDING); + fontSettingsSubMenu->enableSaveScreen(true); + fontSettingsSubMenu->enableFade(false); + + int i = 1; + fontSettingsSubMenu->addIntroItems(font_sizes_groups[i].groupname);//, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); + + for (unsigned int j = 0; j < font_sizes_groups[i].count; j++) + { + AddFontSettingItem(*fontSettingsSubMenu, font_sizes_groups[i].content[j]); + } + fontSettingsSubMenu->addItem(GenericMenuSeparatorLine); + fontSettingsSubMenu->addItem(new CMenuForwarder(LOCALE_OPTIONS_DEFAULT, true, NULL, this, font_sizes_groups[i].actionkey)); + + CMenuForwarder * mf = new CMenuDForwarder(LOCALE_FONTMENU_HEAD, true, NULL, fontSettingsSubMenu, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_FONTS); + menu_chanlist->addItem(mf); + + int res = menu_chanlist->exec(NULL, ""); + cselected = menu_chanlist->getSelected(); + delete menu_chanlist; + return res; } //screenshot diff --git a/src/gui/osd_setup.h b/src/gui/osd_setup.h index a33a37ac3..be227c04e 100644 --- a/src/gui/osd_setup.h +++ b/src/gui/osd_setup.h @@ -101,7 +101,7 @@ class COsdSetup : public CMenuTarget, public CChangeObserver ~COsdSetup(); int exec(CMenuTarget* parent, const std::string & actionKey); bool changeNotify(const neutrino_locale_t OptionName, void * /*data*/); - int showContextChanlistMenu(CMenuWidget *menu_chanlist); + int showContextChanlistMenu(); }; #endif