SettingsWindow::SettingsWindow(BRect frame, SettingsMessage* settings) : BWindow(frame, B_TRANSLATE("Settings"), B_TITLED_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL, B_AUTO_UPDATE_SIZE_LIMITS | B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE), fSettings(settings) { fApplyButton = new BButton(B_TRANSLATE("Apply"), new BMessage(MSG_APPLY)); fCancelButton = new BButton(B_TRANSLATE("Cancel"), new BMessage(MSG_CANCEL)); fRevertButton = new BButton(B_TRANSLATE("Revert"), new BMessage(MSG_REVERT)); fOpenFilePanel = NULL; float spacing = be_control_look->DefaultItemSpacing(); BTabView* tabView = new BTabView("settings pages", B_WIDTH_FROM_LABEL); tabView->SetBorder(B_NO_BORDER); BLayoutBuilder::Group<>(this, B_VERTICAL, 0) .SetInsets(0, B_USE_DEFAULT_SPACING, 0, B_USE_WINDOW_SPACING) .Add(tabView) .Add(new BSeparatorView(B_HORIZONTAL)) .AddGroup(B_HORIZONTAL) .SetInsets(B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING, B_USE_WINDOW_SPACING, 0) .Add(fRevertButton) .AddGlue() .Add(fCancelButton) .Add(fApplyButton); tabView->AddTab(_CreateGeneralPage(spacing)); tabView->AddTab(_CreateFontsPage(spacing)); tabView->AddTab(_CreateProxyPage(spacing)); _SetupFontSelectionView(fStandardFontView, new BMessage(MSG_STANDARD_FONT_CHANGED)); _SetupFontSelectionView(fSerifFontView, new BMessage(MSG_SERIF_FONT_CHANGED)); _SetupFontSelectionView(fSansSerifFontView, new BMessage(MSG_SANS_SERIF_FONT_CHANGED)); _SetupFontSelectionView(fFixedFontView, new BMessage(MSG_FIXED_FONT_CHANGED)); fApplyButton->MakeDefault(true); if (!frame.IsValid()) CenterOnScreen(); // load settings from disk _RevertSettings(); // apply to WebKit _ApplySettings(); // Start hidden Hide(); Show(); }
ConfigWindow::ConfigWindow() : BWindow(BRect(100, 100, 600, 540), B_TRANSLATE_SYSTEM_NAME("E-mail"), B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS), fLastSelectedAccount(NULL), fSaveSettings(false) { BTabView* tabView = new BTabView("tab"); tabView->SetBorder(B_NO_BORDER); // accounts listview BView* view = new BView("accounts", 0); tabView->AddTab(view); tabView->TabAt(0)->SetLabel(B_TRANSLATE("Accounts")); fAccountsListView = new AccountsListView(this); fAccountsListView->SetExplicitPreferredSize(BSize( fAccountsListView->StringWidth("W") * 22, B_SIZE_UNSET)); BButton* addButton = new BButton(NULL, B_TRANSLATE("Add"), new BMessage(kMsgAddAccount)); fRemoveButton = new BButton(NULL, B_TRANSLATE("Remove"), new BMessage(kMsgRemoveAccount)); fConfigView = new BView(NULL, 0); fConfigView->SetLayout(new BGroupLayout(B_VERTICAL)); fConfigView->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED)); fConfigView->SetViewUIColor(B_PANEL_BACKGROUND_COLOR); BScrollView* scroller = new BScrollView(NULL, fAccountsListView, 0, false, true); BLayoutBuilder::Group<>(view, B_HORIZONTAL) .SetInsets(B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING) .AddGroup(B_VERTICAL) .Add(scroller) .AddGroup(B_HORIZONTAL) .Add(addButton) .Add(fRemoveButton) .End() .End() .Add(fConfigView, 2.0f); _ReplaceConfigView(_BuildHowToView()); // general settings view = new BView("general", 0); view->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED)); tabView->AddTab(view); tabView->TabAt(1)->SetLabel(B_TRANSLATE("Settings")); fCheckMailCheckBox = new BCheckBox("check", B_TRANSLATE("Check every"), NULL); fIntervalControl = new BTextControl("time", B_TRANSLATE("minutes"), NULL, NULL); BPopUpMenu* statusPopUp = new BPopUpMenu(B_EMPTY_STRING); const char* statusModes[] = { B_TRANSLATE_COMMENT("Never", "show status window"), B_TRANSLATE("While sending"), B_TRANSLATE("While sending and receiving")}; for (size_t i = 0; i < sizeof(statusModes) / sizeof(statusModes[0]); i++) { BMessage* msg = new BMessage(kMsgShowStatusWindowChanged); BMenuItem* item = new BMenuItem(statusModes[i], msg); statusPopUp->AddItem(item); msg->AddInt32("ShowStatusWindow", i); } fStatusModeField = new BMenuField("show status", B_TRANSLATE("Show notifications:"), statusPopUp); BMessage* msg = new BMessage(B_REFS_RECEIVED); BButton* editMenuButton = new BButton(B_EMPTY_STRING, B_TRANSLATE("Edit mailbox menu…"), msg); editMenuButton->SetTarget(BMessenger("application/x-vnd.Be-TRAK")); BPath path; find_directory(B_USER_SETTINGS_DIRECTORY, &path); path.Append("Mail/Menu Links"); BEntry entry(path.Path()); if (entry.InitCheck() == B_OK && entry.Exists()) { entry_ref ref; entry.GetRef(&ref); msg->AddRef("refs", &ref); } else editMenuButton->SetEnabled(false); BLayoutBuilder::Group<>(view, B_VERTICAL) .SetInsets(B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING) // .AddGlue() .AddGroup(B_HORIZONTAL, 0.f) .AddGlue() .Add(fCheckMailCheckBox) .AddStrut(be_control_look->DefaultLabelSpacing()) .Add(fIntervalControl->CreateTextViewLayoutItem()) .AddStrut(be_control_look->DefaultLabelSpacing()) .Add(fIntervalControl->CreateLabelLayoutItem()) .AddGlue() .End() .AddGroup(B_HORIZONTAL, 0.f) .AddGlue() .Add(fStatusModeField->CreateLabelLayoutItem()) .Add(fStatusModeField->CreateMenuBarLayoutItem()) .AddGlue() .End() .Add(editMenuButton) .AddGlue(); // save/revert buttons BButton* applyButton = new BButton("apply", B_TRANSLATE("Apply"), new BMessage(kMsgSaveSettings)); BButton* revertButton = new BButton("revert", B_TRANSLATE("Revert"), new BMessage(kMsgRevertSettings)); BLayoutBuilder::Group<>(this, B_VERTICAL, 0) .SetInsets(0, B_USE_DEFAULT_SPACING, 0, B_USE_WINDOW_SPACING) .Add(tabView) .Add(new BSeparatorView(B_HORIZONTAL)) .AddGroup(B_HORIZONTAL, 0) .Add(revertButton) .AddGlue() .Add(applyButton) .SetInsets(B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING, B_USE_WINDOW_SPACING, 0); _LoadSettings(); fAccountsListView->SetSelectionMessage(new BMessage(kMsgAccountSelected)); fAccountsListView->MakeFocus(true); ResizeToPreferred(); CenterOnScreen(); }
BluetoothWindow::BluetoothWindow(BRect frame) : BWindow(frame, B_TRANSLATE_SYSTEM_NAME("Bluetooth"), B_TITLED_WINDOW, B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS) { fDefaultsButton = new BButton("defaults", B_TRANSLATE("Defaults"), new BMessage(kMsgSetDefaults), B_WILL_DRAW); fRevertButton = new BButton("revert", B_TRANSLATE("Revert"), new BMessage(kMsgRevert), B_WILL_DRAW); // Add the menu bar fMenubar = new BMenuBar(Bounds(), "menu_bar"); // Add File menu to menu bar BMenu* menu = new BMenu(B_TRANSLATE("Server")); menu->AddItem(new BMenuItem( B_TRANSLATE("Start bluetooth services" B_UTF8_ELLIPSIS), new BMessage(kMsgStartServices), 0)); menu->AddItem(new BMenuItem( B_TRANSLATE("Stop bluetooth services" B_UTF8_ELLIPSIS), new BMessage(kMsgStopServices), 0)); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem( B_TRANSLATE("Refresh local devices" B_UTF8_ELLIPSIS), new BMessage(kMsgRefresh), 0)); fMenubar->AddItem(menu); menu = new BMenu(B_TRANSLATE("Help")); menu->AddItem(new BMenuItem(B_TRANSLATE("About Bluetooth" B_UTF8_ELLIPSIS), new BMessage(B_ABOUT_REQUESTED), 0)); fMenubar->AddItem(menu); BTabView* tabView = new BTabView("tabview", B_WIDTH_FROM_LABEL); tabView->SetBorder(B_NO_BORDER); fSettingsView = new BluetoothSettingsView(B_TRANSLATE("Settings")); // fConnChan = new ConnChanView("Connections & Channels", B_WILL_DRAW); fRemoteDevices = new RemoteDevicesView( B_TRANSLATE("Remote devices"), B_WILL_DRAW); tabView->AddTab(fRemoteDevices); // tabView->AddTab(fConnChan); tabView->AddTab(fSettingsView); fRevertButton->SetEnabled(false); BLayoutBuilder::Group<>(this, B_VERTICAL, 0) .SetInsets(0) .Add(fMenubar) .AddStrut(B_USE_HALF_ITEM_SPACING) .Add(tabView) .AddStrut(B_USE_HALF_ITEM_SPACING) .Add(new BSeparatorView(B_HORIZONTAL)) .AddGroup(B_HORIZONTAL) .SetInsets(B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING, B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING) .Add(fDefaultsButton) .Add(fRevertButton) .AddGlue() .End() .End(); }