void BreakConditionConfigWindow::_UpdateStopImageState() { bool previousStop = fStopOnLoadEnabled; bool previousCustomImages = fUseCustomImages && fStopOnLoadEnabled; fStopOnLoadEnabled = fTeam->StopOnImageLoad(); fStopOnImageLoad->SetValue( fStopOnLoadEnabled ? B_CONTROL_ON : B_CONTROL_OFF); fUseCustomImages = fTeam->StopImageNameListEnabled(); fStopImageConstraints->Menu() ->ItemAt(fTeam->StopImageNameListEnabled() ? 1 : 0)->SetMarked(true); fStopImageNames->MakeEmpty(); const BStringList& imageNames = fTeam->StopImageNames(); for (int32 i = 0; i < imageNames.CountStrings(); i++) { BStringItem* item = new(std::nothrow) BStringItem( imageNames.StringAt(i)); if (item == NULL) return; item->SetEnabled(fUseCustomImages); ObjectDeleter<BStringItem> itemDeleter(item); if (!fStopImageNames->AddItem(item)) return; itemDeleter.Detach(); } _UpdateStopImageButtons(previousStop, previousCustomImages); }
ListChooseWindow::ListChooseWindow(list<string>* strL, string title, string text1, string text2, string str) : BWindow(BRect(200, 200, 415, 400), title.c_str(), B_FLOATING_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL, B_ASYNCHRONOUS_CONTROLS | B_NOT_RESIZABLE | B_NOT_CLOSABLE) { BRect rect(200, 200, 415, 400); rect.OffsetTo(0, 0); BView* backview = new BView(rect, "ListChooseBackView", 0, B_WILL_DRAW); backview->SetViewColor(222, 222, 222); AddChild(backview); BStringView* sv = new BStringView(BRect(15, 5, 185, 20), "ListChooseSV", text1.c_str()); backview->AddChild(sv); sv = new BStringView(BRect(15, 20, 185, 33), "ListChooseSV", text2.c_str()); backview->AddChild(sv); lv = new BListView(BRect(15, 40, 185, 153), "ListChooseLV"); backview->AddChild(new BScrollView("scrollregister", lv, B_FOLLOW_LEFT | B_FOLLOW_TOP, 0, false, true)); BStringItem* si; for (list<string>::iterator iter = strL->begin(); iter != strL->end(); iter++) { si = new BStringItem((*iter).c_str()); lv->AddItem(si); if (*iter == str) si->SetEnabled(false); } BButton* button = new BButton(BRect(15, 165, 95, 185), "okB", "OK", new BMessage(ListChooseOKMSG)); backview->AddChild(button); button->MakeDefault(true); button = new BButton(BRect(105, 165, 200, 185), "cancelB", "Cancel", new BMessage(ListChooseCancelMSG)); backview->AddChild(button); clickWait = create_sem(0, "clickWait"); }
void ThemeInterfaceView::_ThemeListPopulator() { status_t err; int32 i, count; int32 importer; BString name; ThemeItem *ti; bool isro; BStringItem *si; LockLooper(); fThemeList->MakeEmpty(); UnlockLooper(); ThemeManager* tman = GetThemeManager(); tman->LoadThemes(); count = tman->CountThemes(); LockLooper(); si = new BStringItem("(System themes)"); si->SetEnabled(false); fThemeList->AddItem(si); si = NULL; // first non-readonly item will set it again // native themes for (i = 0; i < count; i++) { err = tman->ThemeName(i, name); isro = tman->ThemeIsReadOnly(i); if (err) continue; if (!isro && si == NULL) { si = new BStringItem("(User themes)"); si->SetEnabled(false); fThemeList->AddItem(si); } ti = new ThemeItem(i, name.String(), isro); fThemeList->AddItem(ti); } UnlockLooper(); // for each importer for (importer = 0; importer < tman->CountThemeImporters(); importer++) { err = tman->ImportThemesFor(importer); if (err < 0) continue; PRINT(("Imports for %s: %d\n", tman->ThemeImporterAt(importer), (tman->CountThemes() - count))); if (tman->CountThemes() == count) continue; // nothing found // separator item name = "Imported ("; name << tman->ThemeImporterAt(importer) << ")"; si = new BStringItem(name.String()); si->SetEnabled(false); LockLooper(); fThemeList->AddItem(si); UnlockLooper(); // add new themes count = tman->CountThemes(); // we reuse i from where it was left for (; i < count; i++) { err = tman->ThemeName(i, name); isro = true;// importers can't save themes back if (err) continue; ti = new ThemeItem(i, name.String(), isro); LockLooper(); fThemeList->AddItem(ti); UnlockLooper(); // rest a bit snooze(1000); } } // enable controls again BControl *c; LockLooper(); for (i = 0; ChildAt(i); i++) { c = dynamic_cast<BControl *>(ChildAt(i)); if (c) c->SetEnabled(true); } UnlockLooper(); }