void AppConfig::FolderOptions::LoadSave( IniInterface& ini ) { ScopedIniGroup path( ini, L"Folders" ); if( ini.IsSaving() ) { ApplyDefaults(); } IniBitBool( UseDefaultBios ); IniBitBool( UseDefaultSnapshots ); IniBitBool( UseDefaultSavestates ); IniBitBool( UseDefaultMemoryCards ); IniBitBool( UseDefaultLogs ); IniBitBool( UseDefaultLangs ); IniBitBool( UseDefaultPluginsFolder ); IniBitBool( UseDefaultCheats ); IniBitBool( UseDefaultCheatsWS ); //when saving in portable mode, we save relative paths if possible // --> on load, these relative paths will be expanded relative to the exe folder. bool rel = ( ini.IsLoading() || IsPortable() ); IniEntryDirFile( Bios, rel); IniEntryDirFile( Snapshots, rel ); IniEntryDirFile( Savestates, rel ); IniEntryDirFile( MemoryCards, rel ); IniEntryDirFile( Logs, rel ); IniEntryDirFile( Langs, rel ); IniEntryDirFile( Cheats, rel ); IniEntryDirFile( CheatsWS, rel ); ini.Entry( L"PluginsFolder", PluginsFolder, InstallFolder + PathDefs::Base::Plugins(), rel ); IniEntryDirFile( RunIso, rel ); IniEntryDirFile( RunELF, rel ); if( ini.IsLoading() ) { ApplyDefaults(); for( int i=0; i<FolderId_COUNT; ++i ) operator[]( (FoldersEnum_t)i ).Normalize(); } }
void ThemeInterfaceView::MessageReceived(BMessage *_msg) { ThemeManager *tman; int32 value; int32 id; _msg->PrintToStream(); switch(_msg->what) { case B_REFS_RECEIVED: _msg->PrintToStream(); break; case kMakeScreenshot: AddScreenshot(); break; case kThemeSelected: ThemeSelected(); break; case kApplyThemeBtn: ApplySelected(); break; case kCreateThemeBtn: if (fNameText->IsHidden()) { float w = fNameText->Bounds().Width() + 10.0; fNameText->Show(); fNameText->MakeFocus(); fNewBtn->MoveBy(w, 0); fSaveBtn->MoveBy(w, 0); fDeleteBtn->MoveBy(w, 0); break; } else { float w = fNameText->Bounds().Width() + 10.0; fNameText->Hide(); fNameText->MakeFocus(false); fNewBtn->MoveBy(-w, 0); fSaveBtn->MoveBy(-w, 0); fDeleteBtn->MoveBy(-w, 0); } /* FALLTHROUGH */ case kReallyCreateTheme: CreateNew(fNameText->Text()); break; case kSaveThemeBtn: SaveSelected(); break; case kDeleteThemeBtn: DeleteSelected(); break; #if 0 case kColorsChanged: case kGeneralChanged: case kFontsChanged: { BMessenger msgr (Parent()); msgr.SendMessage(B_PREF_APP_ENABLE_REVERT); BMessage changes; if (_msg->FindMessage("changes", &changes) == B_OK) { update_ui_settings(changes); } break; } #endif case B_PREF_APP_SET_DEFAULTS: { ApplyDefaults(); break; } case B_PREF_APP_REVERT: { Revert(); break; } case B_PREF_APP_ADDON_REF: { break; } case kThemeChanged: { /* BMessage data; BMessage names; get_ui_settings(&data, &names); fColorSelector->Update(data); fFontSelector->Refresh(); fGeneralSelector->Refresh(data); */ break; } case CB_APPLY: tman = GetThemeManager(); _msg->PrintToStream(); if (_msg->FindInt32("be:value", &value) < B_OK) value = false; if (_msg->FindInt32("addon", &id) < B_OK) break; if (id > -1) { tman->SetAddonFlags(id, (tman->AddonFlags(id) & ~Z_THEME_ADDON_DO_SET_ALL) | (value?Z_THEME_ADDON_DO_SET_ALL:0)); } else { // apply globally int32 i; for (i = fAddonList->CountItems() - 1; i > 0; i--) { ThemeAddonItem *item = static_cast<ThemeAddonItem *>(fAddonList->ItemAt(i)); item->ApplyBox()->SetValue(value); tman->SetAddonFlags(item->AddonId(), (tman->AddonFlags(item->AddonId()) & ~Z_THEME_ADDON_DO_SET_ALL) | (value?Z_THEME_ADDON_DO_SET_ALL:0)); } } break; case CB_SAVE: tman = GetThemeManager(); _msg->PrintToStream(); if (_msg->FindInt32("be:value", &value) < B_OK) value = false; if (_msg->FindInt32("addon", &id) < B_OK) break; if (id > -1) { tman->SetAddonFlags(id, (tman->AddonFlags(id) & ~Z_THEME_ADDON_DO_RETRIEVE) | (value?Z_THEME_ADDON_DO_RETRIEVE:0)); } else { // apply globally int32 i; for (i = fAddonList->CountItems() - 1; i > 0; i--) { ThemeAddonItem *item = static_cast<ThemeAddonItem *>(fAddonList->ItemAt(i)); item->SaveBox()->SetValue(value); tman->SetAddonFlags(item->AddonId(), (tman->AddonFlags(item->AddonId()) & ~Z_THEME_ADDON_DO_RETRIEVE) | (value?Z_THEME_ADDON_DO_RETRIEVE:0)); } } break; case BTN_PREFS: tman = GetThemeManager(); if (_msg->FindInt32("addon", &id) < B_OK) break; tman->RunPreferencesPanel(id); break; case kHideSSPulse: break; case kShowSSPulse: break; case skOnlineThemes: { /* ZETA code: be_roster->Launch( "application/x-vnd.Mozilla-Firefox", 1, (char **)&skThemeURL); */ if (!be_roster->IsRunning(kHaikuDepotSig)) { be_roster->Launch(kHaikuDepotSig); snooze(1000000); } BMessenger msgr(kHaikuDepotSig); BMessage message(B_SET_PROPERTY); message.AddString("data", "_theme"); message.AddSpecifier("Value"); message.AddSpecifier("View", "search terms"); message.AddSpecifier("Window", (int32)0); msgr.SendMessage(&message); break; } default: { BView::MessageReceived(_msg); break; } } }