bool CPanelPreferences::ReadSkinSettings() { CSkinManager* pSkinManager = wxGetApp().GetSkinManager(); wxASSERT(pSkinManager); wxASSERT(wxDynamicCast(pSkinManager, CSkinManager)); // Setup the values for all the skins, and then set the default. m_SkinSelectorCtrl->Append(pSkinManager->GetCurrentSkins()); m_SkinSelectorCtrl->SetValue(pSkinManager->GetSelectedSkin()); return true; }
void CSimpleFrame::BuildSkinSubmenu( wxMenu *submenu) { unsigned int i; wxMenuItem *skinItem; wxArrayString astrSkins; wxString strSelectedSkin; CSkinManager* pSkinManager = wxGetApp().GetSkinManager(); wxASSERT(pSkinManager); wxASSERT(wxDynamicCast(pSkinManager, CSkinManager)); // The "Default" skin menu item is localized, but // the name of the default skin is not localized skinItem = submenu->AppendRadioItem( ID_SGDEFAULTSKINSELECTOR, _("Default") ); astrSkins = pSkinManager->GetCurrentSkins(); strSelectedSkin = pSkinManager->GetSelectedSkin(); if (strSelectedSkin == pSkinManager->GetDefaultSkinName()) { skinItem->Check(true); } // Skins list always contains the Default entry if (astrSkins.GetCount() <= 1) { skinItem->Check(true); skinItem->Enable(false); return; // No non-default skins } // I'd like to put a separator here, but we can't separate radio items for (i = 0; i < astrSkins.GetCount(); i++) { if (astrSkins[i] == pSkinManager->GetDefaultSkinName()) { continue; } skinItem = submenu->AppendRadioItem( ID_SGFIRSTSKINSELECTOR + i, astrSkins[i] ); if (astrSkins[i] == strSelectedSkin) { skinItem->Check(true); } } }