OptionsWindow::OptionsWindow(Controller* controller) : BWindow(kWindowRect, "Encoding Settings", B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS|B_AUTO_UPDATE_SIZE_LIMITS) { BBox *encodingBox = new BBox("encoding options"); BBox* frameBox = new BBox("frame rate"); BLayoutBuilder::Group<>(this, B_VERTICAL) .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .Add(encodingBox) .Add(frameBox) .End(); encodingBox->SetLabel("Encoding options"); frameBox->SetLabel("Frame rate"); BView* layoutView = BLayoutBuilder::Group<>() .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .Add(new MediaFormatView(controller)) .View(); encodingBox->AddChild(layoutView); layoutView = BLayoutBuilder::Group<>() .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .Add(new FrameRateView(controller)) .View(); frameBox->AddChild(layoutView); CenterOnScreen(); }
MidiSettingsView::MidiSettingsView() : SettingsView() { BBox* defaultsBox = new BBox("SoundFont"); defaultsBox->SetLabel(B_TRANSLATE("SoundFont")); BGridView* defaultsGridView = new BGridView(); fListView = new BListView(B_SINGLE_SELECTION_LIST); fListView->SetSelectionMessage(new BMessage(kSelectSoundFont)); BScrollView *scrollView = new BScrollView("ScrollView", fListView, 0, false, true); BLayoutBuilder::Grid<>(defaultsGridView) .SetInsets(B_USE_DEFAULT_SPACING, 0, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .Add(scrollView, 0, 0); defaultsBox->AddChild(defaultsGridView); BLayoutBuilder::Group<>(this) .SetInsets(0, 0, 0, 0) .Add(defaultsBox) .AddGlue(); }
PoorManAdvancedView::PoorManAdvancedView(const char* name) : BView(name, B_WILL_DRAW, NULL) { PoorManWindow* win; win = ((PoorManApplication*)be_app)->GetPoorManWindow(); BBox* connectionOptions = new BBox(B_TRANSLATE("Connections")); connectionOptions->SetLabel(STR_BBX_CONNECTION); fMaxConnections = new StatusSlider("Max Slider", STR_SLD_LABEL, STR_SLD_STATUS_LABEL, new BMessage(MSG_PREF_ADV_SLD_MAX_CONNECTION), 1, 200); // labels below the slider 1 and 200 fMaxConnections->SetLimitLabels("1", "200"); SetMaxSimutaneousConnections(win->MaxConnections()); BGroupLayout* connectionOptionsLayout = new BGroupLayout(B_VERTICAL, 0); connectionOptions->SetLayout(connectionOptionsLayout); BLayoutBuilder::Group<>(this, B_VERTICAL) .AddGroup(connectionOptionsLayout) .SetInsets(B_USE_ITEM_INSETS) .AddStrut(B_USE_ITEM_SPACING) .Add(fMaxConnections) .End() .AddGlue() .SetInsets(B_USE_ITEM_INSETS); }
VideoSettingsView::VideoSettingsView() { BBox* defaultsBox = new BBox("defaults"); defaultsBox->SetLabel(B_TRANSLATE("Defaults")); BGridView* defaultsGridView = new BGridView(); BMenuField* inputMenuField = new BMenuField("inputMenuField", B_TRANSLATE("Video input:"), InputMenu()); BMenuField* outputMenuField = new BMenuField("outputMenuField", B_TRANSLATE("Video output:"), OutputMenu()); BLayoutBuilder::Grid<>(defaultsGridView) .SetInsets(B_USE_DEFAULT_SPACING, 0, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .AddMenuField(inputMenuField, 0, 0) .AddMenuField(outputMenuField, 0, 1); defaultsBox->AddChild(defaultsGridView); BLayoutBuilder::Group<>(this) .SetInsets(0, 0, 0, 0) .Add(defaultsBox) .AddGroup(B_HORIZONTAL) .AddGlue() .Add(MakeRestartButton()) .End() .AddGlue(); }
MidiView::MidiView() : BGroupView(B_VERTICAL, B_USE_DEFAULT_SPACING) { BBox* defaultsBox = new BBox("defaults"); defaultsBox->SetLabel("Defaults"); BGridView* defaultsGridView = new BGridView(); fListView = new BListView(B_SINGLE_SELECTION_LIST); fImportButton = new BButton("Import SoundFont", new BMessage(kImportSoundFont)); BLayoutBuilder::Grid<>(defaultsGridView) .SetInsets(B_USE_DEFAULT_SPACING, 0, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .Add(fListView, 0, 0) .Add(fImportButton, 0, 1); defaultsBox->AddChild(defaultsGridView); BLayoutBuilder::Group<>(this) .SetInsets(0, 0, 0, 0) .Add(defaultsBox) .AddGlue(); }
LookAndFeelSettingsView::LookAndFeelSettingsView(const char* name) : BView(name, 0), fDecorInfoButton(NULL), fDecorMenuField(NULL), fDecorMenu(NULL) { // Decorator menu _BuildDecorMenu(); fDecorMenuField = new BMenuField("decorator", B_TRANSLATE("Decorator:"), fDecorMenu); fDecorInfoButton = new BButton(B_TRANSLATE("About"), new BMessage(kMsgDecorInfo)); // scroll bar arrow style BBox* arrowStyleBox = new BBox("arrow style"); arrowStyleBox->SetLabel(B_TRANSLATE("Arrow style")); fSavedDoubleArrowsValue = _DoubleScrollBarArrows(); fArrowStyleSingle = new FakeScrollBar(true, false, new BMessage(kMsgArrowStyleSingle)); fArrowStyleDouble = new FakeScrollBar(true, true, new BMessage(kMsgArrowStyleDouble)); BView* arrowStyleView; arrowStyleView = BLayoutBuilder::Group<>() .AddGroup(B_VERTICAL, 1) .Add(new BStringView("single", B_TRANSLATE("Single:"))) .Add(fArrowStyleSingle) .AddStrut(B_USE_DEFAULT_SPACING) .Add(new BStringView("double", B_TRANSLATE("Double:"))) .Add(fArrowStyleDouble) .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .End() .View(); arrowStyleBox->AddChild(arrowStyleView); arrowStyleBox->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT, B_ALIGN_VERTICAL_CENTER)); arrowStyleBox->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET)); BStringView* scrollBarLabel = new BStringView("scroll bar", B_TRANSLATE("Scroll bar:")); scrollBarLabel->SetExplicitAlignment( BAlignment(B_ALIGN_LEFT, B_ALIGN_TOP)); // control layout BLayoutBuilder::Grid<>(this, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .Add(fDecorMenuField->CreateLabelLayoutItem(), 0, 0) .Add(fDecorMenuField->CreateMenuBarLayoutItem(), 1, 0) .Add(fDecorInfoButton, 2, 0) .Add(scrollBarLabel, 0, 1) .Add(arrowStyleBox, 1, 1) .AddGlue(0, 2) .SetInsets(B_USE_WINDOW_SPACING); // TODO : Decorator Preview Image? }
void OpenGroup(const char* text) { if (text != NULL) { BBox* box = new BBox(GetControlBounds(), text); box->SetLabel(text); GetView()->AddChild(box); Push(box); box->ResizeTo(box->Bounds().Width(), kBoxHeight); } }
SettingsView::SettingsView(Core* core) : BView("SettingsView", B_WILL_DRAW, 0), fCore(core) { SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); // Engines entry BBox* audioBox = new BBox("audiobox"); audioBox->SetLabel("Engines"); BGroupLayout* audioLayout = new BGroupLayout(B_VERTICAL); audioLayout->SetInsets(10, audioBox->TopBorderOffset() * 2 + 10, 10, 10); audioBox->SetLayout(audioLayout); fEngines[0] = new BRadioButton("sine", "Sine", _ButtonMsg(CRONO_SINE_ENGINE)); audioLayout->AddView(fEngines[0]); fEngines[1] = new BRadioButton("triangle", "Triangle", _ButtonMsg(CRONO_TRIANGLE_ENGINE)); audioLayout->AddView(fEngines[1]); fEngines[2] = new BRadioButton("sawtooth", "Sawtooth", _ButtonMsg(CRONO_SAWTOOTH_ENGINE)); audioLayout->AddView(fEngines[2]); fEngines[3] = new BRadioButton("file", "File Engine", _ButtonMsg(CRONO_FILE_ENGINE)); audioLayout->AddView(fEngines[3]); fSoundEntry = new BTextControl("Soundfile", "Soundfile", gCronoSettings.SoundFileLocation, new BMessage(MSG_SET), B_WILL_DRAW); fSoundEntry->SetDivider(70); fSoundEntry->SetAlignment(B_ALIGN_CENTER, B_ALIGN_CENTER); audioLayout->AddView(fSoundEntry); fSoundEntry->SetEnabled(false); fDefaultsButton = new BButton("Defaults", new BMessage(MSG_DEFAULTS)); BLayoutBuilder::Group<>(this, B_VERTICAL, 5) .AddGroup(B_VERTICAL) .Add(audioBox, 0) .End() .AddGroup(B_HORIZONTAL) .Add(fDefaultsButton, 0) .End(); _SetEngine(fCore->Engine()); }
virtual void Visit(BAddressContactField* field) { if (fOwner->fAddrView != NULL && fOwner->fAddrView->Field()->Value() == field->Value()) return; fOwner->fAddrView = new AddressView(field); BBox* box = new BBox("addrbox", B_WILL_DRAW, B_FANCY_BORDER, fOwner->fAddrView); box->SetLabel("Postal Address"); fOwner->GridLayout()->AddView(box, 1, 0); }
SpaceBarSettingsView::SpaceBarSettingsView() : SettingsView("SpaceBarSettingsView") { fSpaceBarShowCheckBox = new BCheckBox("", B_TRANSLATE("Show space bars on volumes"), new BMessage(kUpdateVolumeSpaceBar)); BPopUpMenu* menu = new BPopUpMenu(B_EMPTY_STRING); menu->SetFont(be_plain_font); BMenuItem* item; menu->AddItem(item = new BMenuItem( B_TRANSLATE("Used space color"), new BMessage(kSpaceBarSwitchColor))); item->SetMarked(true); fCurrentColor = 0; menu->AddItem(new BMenuItem( B_TRANSLATE("Free space color"), new BMessage(kSpaceBarSwitchColor))); menu->AddItem(new BMenuItem( B_TRANSLATE("Warning space color"), new BMessage(kSpaceBarSwitchColor))); BBox* box = new BBox("box"); box->SetLabel(fColorPicker = new BMenuField("menu", NULL, menu)); fColorControl = new BColorControl(BPoint(8, fColorPicker->Bounds().Height() + 8 + kItemExtraSpacing), B_CELLS_16x16, 1, "SpaceColorControl", new BMessage(kSpaceBarColorChanged)); fColorControl->SetValue(TrackerSettings().UsedSpaceColor()); box->AddChild(fColorControl); const float spacing = be_control_look->DefaultItemSpacing(); BGroupLayout* layout = GroupLayout(); layout->SetOrientation(B_VERTICAL); layout->SetSpacing(0); BGroupLayoutBuilder(layout) .Add(fSpaceBarShowCheckBox) .Add(box) .AddGlue() .SetInsets(spacing, spacing, spacing, spacing); }
PasswordWindow::PasswordWindow() : BWindow(BRect(100, 100, 400, 230), "Enter password", B_NO_BORDER_WINDOW_LOOK, kPasswordWindowFeel /* TODO: B_MODAL_APP_WINDOW_FEEL should also behave correctly */, B_NOT_MOVABLE | B_NOT_CLOSABLE | B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS, B_ALL_WORKSPACES) { BView* topView = new BView(Bounds(), "topView", B_FOLLOW_ALL, B_WILL_DRAW); topView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); AddChild(topView); BRect bounds(Bounds()); bounds.InsetBy(10.0, 10.0); BBox *customBox = new BBox(bounds, "customBox", B_FOLLOW_NONE); topView->AddChild(customBox); customBox->SetLabel("Unlock screen saver"); bounds.top += 10.0; fPassword = new BTextControl(bounds, "password", "Enter password:"******"VeryLongPasswordPossible", B_FOLLOW_NONE); customBox->AddChild(fPassword); fPassword->MakeFocus(true); fPassword->ResizeToPreferred(); fPassword->TextView()->HideTyping(true); fPassword->SetDivider(be_plain_font->StringWidth("Enter password:"******"unlock", "Unlock", new BMessage(kMsgUnlock), B_FOLLOW_NONE); customBox->AddChild(button); button->MakeDefault(true); button->ResizeToPreferred(); button->SetTarget(NULL, be_app); BRect frame = fPassword->Frame(); button->MoveTo(frame.right - button->Bounds().Width(), frame.bottom + 10.0); customBox->ResizeTo(frame.right + 10.0, button->Frame().bottom + 10.0); frame = customBox->Frame(); ResizeTo(frame.right + 10.0, frame.bottom + 10.0); BScreen screen(this); MoveTo(screen.Frame().left + (screen.Frame().Width() - Bounds().Width()) / 2, screen.Frame().top + (screen.Frame().Height() - Bounds().Height()) / 2); }
SpaceBarSettingsView::SpaceBarSettingsView() : SettingsView("SpaceBarSettingsView") { fSpaceBarShowCheckBox = new BCheckBox("", B_TRANSLATE("Show space bars on volumes"), new BMessage(kUpdateVolumeSpaceBar)); BPopUpMenu* menu = new BPopUpMenu(B_EMPTY_STRING); menu->SetFont(be_plain_font); BMenuItem* item; menu->AddItem(item = new BMenuItem( B_TRANSLATE("Used space color"), new BMessage(kSpaceBarSwitchColor))); item->SetMarked(true); fCurrentColor = 0; menu->AddItem(new BMenuItem( B_TRANSLATE("Free space color"), new BMessage(kSpaceBarSwitchColor))); menu->AddItem(new BMenuItem( B_TRANSLATE("Warning space color"), new BMessage(kSpaceBarSwitchColor))); fColorPicker = new BMenuField("menu", NULL, menu); fColorControl = new BColorControl(BPoint(0, 0), B_CELLS_16x16, 1, "SpaceColorControl", new BMessage(kSpaceBarColorChanged)); fColorControl->SetValue(TrackerSettings().UsedSpaceColor()); BBox* box = new BBox("box"); box->SetLabel(fColorPicker); box->AddChild(BLayoutBuilder::Group<>(B_HORIZONTAL) .Add(fColorControl) .SetInsets(B_USE_DEFAULT_SPACING) .View()); BLayoutBuilder::Group<>(this, B_VERTICAL) .Add(fSpaceBarShowCheckBox) .Add(box) .AddGlue() .SetInsets(B_USE_DEFAULT_SPACING); }
BView* PrefsWindow::constructGeneralBox(BRect frame) { BBox* generalBox = new BBox(frame); generalBox->SetLabel("General"); float offset = 30.0f, bwidth = 80.0f, bheight = 30.0f, bspacing = 10.0f, cbheight = 14.0f, adjust = 5.0f ; float controlX = (offset * 2.0f / 3.0f); BRect bubbleFrame = BRect(controlX, offset - adjust, offset + 150.0f, offset + cbheight - adjust); ColourButton *bubbleColourButton = new ColourButton(bubbleFrame, GetPrefsMessage(K_BUBBLE_COLOUR), ColourConstants::K_BLACK, "Tooltips"); generalBox->AddChild(bubbleColourButton); BRect recentDocsPathFrame(controlX, 50.0f, controlX + 150.0f, 70.0f); BCheckBox *showRecentDocsPath = new BCheckBox(recentDocsPathFrame, K_IS_RECENT_DOCS_SHOWN, "Show Path in Recent Docs", GetPrefsMessage(K_IS_RECENT_DOCS_SHOWN)); generalBox->AddChild(showRecentDocsPath); BRect isActivationFrame(controlX, 80.0f, controlX + 190.0f, 100.0f); BCheckBox *isActivationOk = new BCheckBox(isActivationFrame, K_IS_ACTIVATION_OK, "Activate Window on Opening Docs", GetPrefsMessage(K_IS_ACTIVATION_OK)); generalBox->AddChild(isActivationOk); BRect recentDocsFrame(controlX, 110.0f, controlX + 150.0f, 120.0f); BTextControl *numRecentDocs = new BTextControl(recentDocsFrame, K_NUM_RECENT_DOCS, "Number of Recent Docs", "", GetPrefsMessage(K_NUM_RECENT_DOCS)); numRecentDocs->SetDivider(120.0f); numRecentDocs->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT); generalBox->AddChild(numRecentDocs); BRect insertDateFrame(controlX, 140.0f, controlX + 200.0f, 150.0f); BTextControl *insertDateFlags = new BTextControl(insertDateFrame, K_DATE_FLAGS, "Insert Date Flags", "", GetPrefsMessage(K_DATE_FLAGS)); generalBox->AddChild(insertDateFlags); BRect generalRect = generalBox->Bounds(); BRect generalbtnRect(generalRect.right - bspacing - bwidth, generalRect.bottom - bspacing - bheight, generalRect.right - bspacing, generalRect.bottom - bspacing); BButton *resetGeneralDefaults = new BButton(generalbtnRect,"fResetGeneralDefaults","Defaults",new BMessage(PrefsConstants::K_PREFS_VIEW_RESET_GENERAL_DEFAULTS)); generalBox->AddChild(resetGeneralDefaults); return generalBox; }
AttribFill::AttribFill () : AttribView (BRect (0, 0, 146, 146), lstring (24, "Fill")) { SetViewColor (LightGrey); BBox *tolSets = new BBox (BRect (4, 4, 142, 142), "tol"); tolSets->SetLabel (lstring (338, "Tolerance")); AddChild (tolSets); tol = new BRadioButton (BRect (8, 13, 124, 30), "tol", lstring (339, "Visual Distance"), new BMessage ('AFtV')); rgb = new BRadioButton (BRect (8, 30, 124, 46), "rgb", lstring (340, "Absolute RGB"), new BMessage ('AFtS')); tol->SetValue (B_CONTROL_ON); tolSets->AddChild (tol); tolSets->AddChild (rgb); TabView *bgTab = new TabView (BRect (4, 50, 132, 134), "AttribFill Tab"); tolSets->AddChild (bgTab); BView *tolTab = new BView (BRect (2, TAB_HEIGHT + 4, 126, TAB_HEIGHT + 63), "tol View", B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW); BView *rgbTab = new BView (BRect (2, TAB_HEIGHT + 4, 126, TAB_HEIGHT + 63), "rgb View", B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW); tolTab->SetViewColor (LightGrey); rgbTab->SetViewColor (LightGrey); bgTab->AddView (tolTab, lstring (341, "Visual")); bgTab->AddView (rgbTab, lstring (342, "RGB")); BStringView *explD = new BStringView (BRect (2, 8, 122, 20), "explD", lstring (343, "Visual Factors:")); BStringView *facD = new BStringView (BRect (2, 20, 122, 32), "facD", lstring (344, "R: 0.213 G: 0.715 B: 0.072")); explD->SetFontSize (10); facD->SetFontSize (10); sT = new Slider (BRect (4, 42, 122, 58), 10, "D", 0, 255, 1, new BMessage ('AFcT')); sR = new Slider (BRect (4, 2, 122, 18), 10, "R", 0, 255, 1, new BMessage ('AFcR')); sG = new Slider (BRect (4, 22, 122, 38), 10, "G", 0, 255, 1, new BMessage ('AFcG')); sB = new Slider (BRect (4, 42, 122, 58), 10, "B", 0, 255, 1, new BMessage ('AFcB')); tolTab->AddChild (sT); tolTab->AddChild (explD); tolTab->AddChild (facD); rgbTab->AddChild (sR); rgbTab->AddChild (sG); rgbTab->AddChild (sB); fTolMode = FILLTOL_TOL; fTolerance = 0; fToleranceRGB.red = 0; fToleranceRGB.green = 0; fToleranceRGB.blue = 0; fCurrentProperty = 0; }
void HexKeyView::AttachedToWindow() { BBox *aBox; BRect aBoxRect; aBoxRect.Set(10, 10, 370, 270); aBox = new BBox(aBoxRect, "Box1", B_FOLLOW_NONE); aBox->SetLabel(LABEL_BOX_TITLE); AddChild(aBox); BRect drawRect; drawRect.Set(10, 10, 340, 240); DrawView *drawView; drawView = new DrawView(drawRect, "DrawView"); drawView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); drawView->SetLowColor(ui_color(B_PANEL_BACKGROUND_COLOR)); aBox->AddChild(drawView); }
ClockView::ClockView(const char* name) : BView(name, 0), fCachedShowClock(B_CONTROL_ON), fCachedShowSeconds(B_CONTROL_OFF), fCachedShowDayOfWeek(B_CONTROL_OFF), fCachedShowTimeZone(B_CONTROL_OFF) { fShowClock = new BCheckBox(B_TRANSLATE("Show clock in Deskbar"), new BMessage(kShowHideTime)); fShowSeconds = new BCheckBox(B_TRANSLATE("Display time with seconds"), new BMessage(kShowSeconds)); fShowDayOfWeek = new BCheckBox(B_TRANSLATE("Show day of week"), new BMessage(kShowDayOfWeek)); fShowTimeZone = new BCheckBox(B_TRANSLATE("Show time zone"), new BMessage(kShowTimeZone)); BView* view = BLayoutBuilder::Group<>(B_VERTICAL, 0) .SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET)) .Add(fShowSeconds) .Add(fShowDayOfWeek) .Add(fShowTimeZone) .AddGlue() .SetInsets(B_USE_DEFAULT_SPACING) .View(); BBox* showClockBox = new BBox("show clock box"); showClockBox->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT, B_ALIGN_TOP)); showClockBox->SetLabel(fShowClock); showClockBox->AddChild(view); BLayoutBuilder::Group<>(this) .AddGroup(B_VERTICAL, 0) .Add(showClockBox) .End() .SetInsets(B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING); }
void add_status_bars(BGridLayout* layout, int32& row) { BBox* box = new BBox(B_FANCY_BORDER, NULL); box->SetLabel("Info"); BGroupLayout* boxLayout = new BGroupLayout(B_VERTICAL, kInset); boxLayout->SetInsets(kInset, kInset + box->TopBorderOffset(), kInset, kInset); box->SetLayout(boxLayout); BStatusBar* statusBar = new BStatusBar("status bar", "Status", "Completed"); statusBar->SetMaxValue(100); statusBar->SetTo(0); statusBar->SetBarHeight(12); boxLayout->AddView(statusBar); statusBar = new BStatusBar("status bar", "Progress", "Completed"); statusBar->SetMaxValue(100); statusBar->SetTo(40); statusBar->SetBarHeight(12); boxLayout->AddView(statusBar); statusBar = new BStatusBar("status bar", "Lifespan of capitalism", "Completed"); statusBar->SetMaxValue(100); statusBar->SetTo(100); statusBar->SetBarHeight(12); boxLayout->AddView(statusBar); layout->AddView(box, 0, row, 4); row++; }
SpaceBarSettingsView::SpaceBarSettingsView(BRect rect) : SettingsView(rect, "SpaceBarSettingsView") { rect.OffsetTo(B_ORIGIN); fSpaceBarShowCheckBox = new BCheckBox(rect, "", "Show space bars on volumes", new BMessage(kUpdateVolumeSpaceBar)); fSpaceBarShowCheckBox->ResizeToPreferred(); AddChild(fSpaceBarShowCheckBox); rect = fSpaceBarShowCheckBox->Frame(); rect.OffsetBy(0, fSpaceBarShowCheckBox->Bounds().Height() + kItemExtraSpacing); BPopUpMenu *menu = new BPopUpMenu(B_EMPTY_STRING); menu->SetFont(be_plain_font); BMenuItem *item; menu->AddItem(item = new BMenuItem("Used space color", new BMessage(kSpaceBarSwitchColor))); item->SetMarked(true); fCurrentColor = 0; menu->AddItem(new BMenuItem("Free space color", new BMessage(kSpaceBarSwitchColor))); menu->AddItem(new BMenuItem("Warning space color", new BMessage(kSpaceBarSwitchColor))); BBox *box = new BBox(rect); box->SetLabel(fColorPicker = new BMenuField(rect, NULL, NULL, menu)); AddChild(box); fColorControl = new BColorControl(BPoint(8, fColorPicker->Bounds().Height() + 8 + kItemExtraSpacing), B_CELLS_16x16, 1, "SpaceColorControl", new BMessage(kSpaceBarColorChanged)); fColorControl->SetValue(TrackerSettings().UsedSpaceColor()); fColorControl->ResizeToPreferred(); box->AddChild(fColorControl); box->ResizeTo(fColorControl->Bounds().Width() + 16, fColorControl->Frame().bottom + 8); }
OutputView::OutputView(Controller *controller) : BView("Capture Options", B_WILL_DRAW), fController(controller) { SetLayout(new BGroupLayout(B_VERTICAL)); BBox *selectBox = new BBox("selection"); selectBox->SetLabel("Selection"); selectBox->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT, B_ALIGN_TOP)); AddChild(selectBox); BBox *outputBox = new BBox("output"); outputBox->SetLabel("Output"); outputBox->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT, B_ALIGN_TOP)); AddChild(outputBox); Settings settings; const char *kTCLabel = "File name:"; const char *fileName = NULL; settings.GetOutputFileName(&fileName); fFileName = new BTextControl("file name", kTCLabel, fileName, new BMessage(kFileNameChanged)); const char *kOutputMenuLabel = "Output Format:"; fOutputFileType = new BOptionPopUp("OutFormat", kOutputMenuLabel, new BMessage(kFileTypeChanged)); const char *kCodecMenuLabel = "Codec:"; BPopUpMenu *popUpMenu = new BPopUpMenu("Codecs"); fCodecMenu = new BMenuField("OutCodec", kCodecMenuLabel, popUpMenu); fWholeScreen = new BRadioButton("screen frame", "Whole screen", new BMessage(kCheckBoxAreaSelectionChanged)); fCustomArea = new BRadioButton("custom area", "Custom Area", new BMessage(kCheckBoxAreaSelectionChanged)); fSelectArea = new BButton("select area", "Select", new BMessage(kSelectArea)); fSelectArea->SetEnabled(false); fMinimizeOnStart = new BCheckBox("Minimize on start", "Minimize on recording", new BMessage(kMinimizeOnRecording)); fRectView = new PreviewView(); BView *layoutView = BLayoutBuilder::Group<>() .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING) .Add(fFileName) .Add(fOutputFileType) .Add(fCodecMenu) .Add(fMinimizeOnStart) .End() .View(); outputBox->AddChild(layoutView); layoutView = BLayoutBuilder::Group<>() .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .AddGroup(B_VERTICAL) .AddGroup(B_HORIZONTAL) .AddGroup(B_VERTICAL, 0) .Add(fWholeScreen) .Add(fCustomArea) .End() .AddGroup(B_VERTICAL) .AddGlue() .Add(fSelectArea) .End() .End() .Add(fRectView) .End() .View(); selectBox->AddChild(layoutView); fMinimizeOnStart->SetValue(settings.MinimizeOnRecording() ? B_CONTROL_ON : B_CONTROL_OFF); // fill in the list of available file formats media_file_format mff; int32 cookie = 0; bool firstFound = true; while (get_next_file_format(&cookie, &mff) == B_OK) { if (mff.capabilities & media_file_format::B_KNOWS_ENCODED_VIDEO) { fOutputFileType->AddOption(mff.pretty_name, mff.family); if (firstFound) { fOutputFileType->MenuField()->Menu()->ItemAt(0)->SetMarked(true); firstFound = false; } } } fWholeScreen->SetValue(B_CONTROL_ON); UpdateSettings(); fController->SetCaptureArea(BScreen(Window()).Frame()); fController->SetMediaFormatFamily(FormatFamily()); fController->SetOutputFileName(fFileName->Text()); }
FileTypeWindow::FileTypeWindow(BPoint position, const BMessage& refs) : BWindow(BRect(0.0f, 0.0f, 300.0f, 200.0f).OffsetBySelf(position), B_TRANSLATE("File type"), B_TITLED_WINDOW, B_NOT_V_RESIZABLE | B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS) { float padding = be_control_look->DefaultItemSpacing(); // "File Type" group BBox* fileTypeBox = new BBox("file type BBox"); fileTypeBox->SetLabel(B_TRANSLATE("File type")); fTypeControl = new BTextControl("type", NULL, "Type Control", new BMessage(kMsgTypeEntered)); // filter out invalid characters that can't be part of a MIME type name BTextView* textView = fTypeControl->TextView(); const char* disallowedCharacters = "<>@,;:\"()[]?="; for (int32 i = 0; disallowedCharacters[i]; i++) { textView->DisallowChar(disallowedCharacters[i]); } fSelectTypeButton = new BButton("select type", B_TRANSLATE("Select" B_UTF8_ELLIPSIS), new BMessage(kMsgSelectType)); fSameTypeAsButton = new BButton("same type as", B_TRANSLATE_COMMENT("Same as" B_UTF8_ELLIPSIS, "The same TYPE as ..."), new BMessage(kMsgSameTypeAs)); BLayoutBuilder::Grid<>(fileTypeBox, padding, padding / 2) .SetInsets(padding, padding * 2, padding, padding) .Add(fTypeControl, 0, 0, 3, 1) .Add(fSelectTypeButton, 0, 1) .Add(fSameTypeAsButton, 1, 1); // "Icon" group BBox* iconBox = new BBox("icon BBox"); iconBox->SetLabel(B_TRANSLATE("Icon")); fIconView = new IconView("icon"); BLayoutBuilder::Group<>(iconBox, B_HORIZONTAL) .SetInsets(padding, padding * 2, padding, padding) .Add(fIconView); // "Preferred Application" group BBox* preferredBox = new BBox("preferred BBox"); preferredBox->SetLabel(B_TRANSLATE("Preferred application")); BMenu* menu = new BPopUpMenu("preferred"); BMenuItem* item; menu->AddItem(item = new BMenuItem(B_TRANSLATE("Default application"), new BMessage(kMsgPreferredAppChosen))); item->SetMarked(true); fPreferredField = new BMenuField("preferred", NULL, menu); fSelectAppButton = new BButton("select app", B_TRANSLATE("Select" B_UTF8_ELLIPSIS), new BMessage(kMsgSelectPreferredApp)); fSameAppAsButton = new BButton("same app as", B_TRANSLATE_COMMENT("Same as" B_UTF8_ELLIPSIS, "The same APPLICATION as ..."), new BMessage(kMsgSamePreferredAppAs)); BLayoutBuilder::Grid<>(preferredBox, padding, padding / 2) .SetInsets(padding, padding * 2, padding, padding) .Add(fPreferredField, 0, 0, 3, 1) .Add(fSelectAppButton, 0, 1) .Add(fSameAppAsButton, 1, 1); BLayoutBuilder::Grid<>(this) .SetInsets(padding) .Add(fileTypeBox, 0, 0, 2, 1) .Add(preferredBox, 0, 1, 1, 1) .Add(iconBox, 1, 1, 1, 1); fTypeControl->MakeFocus(true); BMimeType::StartWatching(this); _SetTo(refs); }
FadeView::FadeView(const char* name, ScreenSaverSettings& settings) : BView(name, B_WILL_DRAW), fSettings(settings) { SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); font_height fontHeight; be_plain_font->GetHeight(&fontHeight); float textHeight = ceilf(fontHeight.ascent + fontHeight.descent); fEnableCheckBox = new BCheckBox("EnableCheckBox", B_TRANSLATE("Enable screensaver"), new BMessage(kMsgEnableScreenSaverBox)); BBox* box = new BBox("EnableScreenSaverBox"); box->SetLabel(fEnableCheckBox); // Start Screensaver BStringView* startScreenSaver = new BStringView("startScreenSaver", B_TRANSLATE("Start screensaver")); startScreenSaver->SetAlignment(B_ALIGN_RIGHT); fRunSlider = new TimeSlider("RunSlider", kMsgRunSliderChanged, kMsgRunSliderUpdate); // Turn Off rgb_color textColor = tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), B_DISABLED_LABEL_TINT); fTurnOffNotSupported = new BTextView("not_supported", be_plain_font, &textColor, B_WILL_DRAW); fTurnOffNotSupported->SetExplicitMinSize(BSize(B_SIZE_UNSET, 3 + textHeight * 3)); fTurnOffNotSupported->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fTurnOffNotSupported->MakeEditable(false); fTurnOffNotSupported->MakeSelectable(false); fTurnOffNotSupported->SetText( B_TRANSLATE("Display Power Management Signaling not available")); fTurnOffCheckBox = new BCheckBox("TurnOffScreenCheckBox", B_TRANSLATE("Turn off screen"), new BMessage(kMsgTurnOffCheckBox)); fTurnOffCheckBox->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT, B_ALIGN_VERTICAL_CENTER)); fTurnOffSlider = new TimeSlider("TurnOffSlider", kMsgTurnOffSliderChanged, kMsgTurnOffSliderUpdate); // Password fPasswordCheckBox = new BCheckBox("PasswordCheckbox", B_TRANSLATE("Password lock"), new BMessage(kMsgPasswordCheckBox)); fPasswordCheckBox->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT, B_ALIGN_VERTICAL_CENTER)); fPasswordSlider = new TimeSlider("PasswordSlider", kMsgPasswordSliderChanged, kMsgPasswordSliderUpdate); fPasswordButton = new BButton("PasswordButton", B_TRANSLATE("Password" B_UTF8_ELLIPSIS), new BMessage(kMsgChangePassword)); // Bottom float monitorHeight = 10 + textHeight * 3; float aspectRatio = 4.0f / 3.0f; float monitorWidth = monitorHeight * aspectRatio; BRect monitorRect = BRect(0, 0, monitorWidth, monitorHeight); fFadeNow = new ScreenCornerSelector(monitorRect, "FadeNow", new BMessage(kMsgFadeCornerChanged), B_FOLLOW_NONE); BTextView* fadeNowText = new BTextView("FadeNowText", B_WILL_DRAW); fadeNowText->SetExplicitMinSize(BSize(B_SIZE_UNSET, 4 + textHeight * 4)); fadeNowText->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fadeNowText->MakeEditable(false); fadeNowText->MakeSelectable(false); fadeNowText->SetText(B_TRANSLATE("Fade now when mouse is here")); fFadeNever = new ScreenCornerSelector(monitorRect, "FadeNever", new BMessage(kMsgNeverFadeCornerChanged), B_FOLLOW_NONE); BTextView* fadeNeverText = new BTextView("FadeNeverText", B_WILL_DRAW); fadeNeverText->SetExplicitMinSize(BSize(B_SIZE_UNSET, 4 + textHeight * 4)); fadeNeverText->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fadeNeverText->MakeEditable(false); fadeNeverText->MakeSelectable(false); fadeNeverText->SetText(B_TRANSLATE("Don't fade when mouse is here")); box->AddChild(BLayoutBuilder::Group<>(B_VERTICAL) .SetInsets(B_USE_DEFAULT_SPACING, 0, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .AddGrid(B_USE_DEFAULT_SPACING, B_USE_SMALL_SPACING) .Add(startScreenSaver, 0, 0) .Add(fRunSlider, 1, 0) .Add(fTurnOffCheckBox, 0, 1) .Add(BLayoutBuilder::Group<>(B_VERTICAL) .Add(fTurnOffNotSupported) .Add(fTurnOffSlider) .View(), 1, 1) .Add(fPasswordCheckBox, 0, 2) .Add(fPasswordSlider, 1, 2) .End() .AddGroup(B_HORIZONTAL) .AddGlue() .Add(fPasswordButton) .End() .AddGlue() .AddGroup(B_HORIZONTAL) .Add(fFadeNow) .AddGroup(B_VERTICAL, 0) .Add(fadeNowText) .AddGlue() .End() .Add(fFadeNever) .AddGroup(B_VERTICAL, 0) .Add(fadeNeverText) .AddGlue() .End() .End() .AddGlue() .View()); BLayoutBuilder::Group<>(this, B_HORIZONTAL) .SetInsets(B_USE_SMALL_SPACING) .Add(box) .End(); }
ExtendedInfoWindow::ExtendedInfoWindow(PowerStatusDriverInterface* interface) : BWindow(BRect(100, 150, 500, 500), "Extended battery info", B_TITLED_WINDOW, B_NOT_RESIZABLE | B_NOT_ZOOMABLE | B_AVOID_FRONT | B_ASYNCHRONOUS_CONTROLS), fDriverInterface(interface), fSelectedView(NULL) { fDriverInterface->AcquireReference(); BView *view = new BView(Bounds(), "view", B_FOLLOW_ALL, 0); view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); AddChild(view); BGroupLayout* mainLayout = new BGroupLayout(B_VERTICAL); mainLayout->SetSpacing(10); mainLayout->SetInsets(10, 10, 10, 10); view->SetLayout(mainLayout); BRect rect = Bounds(); rect.InsetBy(5, 5); BBox *infoBox = new BBox(rect, "Power status box"); infoBox->SetLabel("Battery info"); BGroupLayout* infoLayout = new BGroupLayout(B_HORIZONTAL); infoLayout->SetInsets(10, infoBox->TopBorderOffset() * 2 + 10, 10, 10); infoLayout->SetSpacing(10); infoBox->SetLayout(infoLayout); mainLayout->AddView(infoBox); BGroupView* batteryView = new BGroupView(B_VERTICAL); batteryView->GroupLayout()->SetSpacing(10); infoLayout->AddView(batteryView); // create before the battery views fBatteryInfoView = new BatteryInfoView(); BGroupLayout* batteryLayout = batteryView->GroupLayout(); BRect batteryRect(0, 0, 50, 30); for (int i = 0; i < interface->GetBatteryCount(); i++) { ExtPowerStatusView* view = new ExtPowerStatusView(interface, batteryRect, B_FOLLOW_NONE, i, this); view->SetExplicitMaxSize(BSize(70, 80)); view->SetExplicitMinSize(BSize(70, 80)); batteryLayout->AddView(view); fBatteryViewList.AddItem(view); fDriverInterface->StartWatching(view); if (!view->IsCritical()) fSelectedView = view; } batteryLayout->AddItem(BSpaceLayoutItem::CreateGlue()); infoLayout->AddView(fBatteryInfoView); if (!fSelectedView && fBatteryViewList.CountItems() > 0) fSelectedView = fBatteryViewList.ItemAt(0); fSelectedView->Select(); BSize size = mainLayout->PreferredSize(); ResizeTo(size.width, size.height); }
ConfigWindow::ConfigWindow() : BWindow(BRect(200.0, 200.0, 640.0, 640.0), "E-mail", B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_NOT_RESIZABLE), fLastSelectedAccount(NULL), fSaveSettings(false) { /*** create controls ***/ BRect rect(Bounds()); BView *top = new BView(rect,NULL,B_FOLLOW_ALL,0); top->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); AddChild(top); // determine font height font_height fontHeight; top->GetFontHeight(&fontHeight); int32 height = (int32)(fontHeight.ascent + fontHeight.descent + fontHeight.leading) + 5; rect.InsetBy(5,5); rect.bottom -= 11 + height; BTabView *tabView = new BTabView(rect,NULL); BView *view,*generalView; rect = tabView->Bounds(); rect.bottom -= tabView->TabHeight() + 4; tabView->AddTab(view = new BView(rect,NULL,B_FOLLOW_ALL,0)); tabView->TabAt(0)->SetLabel(MDR_DIALECT_CHOICE ("Accounts","アカウント")); view->SetViewColor(top->ViewColor()); // accounts listview rect = view->Bounds().InsetByCopy(8,8); rect.right = 140 - B_V_SCROLL_BAR_WIDTH; rect.bottom -= height + 12; fAccountsListView = new AccountsListView(rect); view->AddChild(new BScrollView(NULL,fAccountsListView,B_FOLLOW_ALL,0,false,true)); rect.right += B_V_SCROLL_BAR_WIDTH; rect.top = rect.bottom + 8; rect.bottom = rect.top + height; BRect sizeRect = rect; sizeRect.right = sizeRect.left + 30 + view->StringWidth(MDR_DIALECT_CHOICE ("Add","追加")); view->AddChild(new BButton(sizeRect,NULL,MDR_DIALECT_CHOICE ("Add","追加"), new BMessage(kMsgAddAccount),B_FOLLOW_BOTTOM)); sizeRect.left = sizeRect.right+3; sizeRect.right = sizeRect.left + 30 + view->StringWidth(MDR_DIALECT_CHOICE ("Remove","削除")); view->AddChild(fRemoveButton = new BButton(sizeRect,NULL,MDR_DIALECT_CHOICE ("Remove","削除"), new BMessage(kMsgRemoveAccount),B_FOLLOW_BOTTOM)); // accounts config view rect = view->Bounds(); rect.left = fAccountsListView->Frame().right + B_V_SCROLL_BAR_WIDTH + 16; rect.right -= 10; view->AddChild(fConfigView = new CenterContainer(rect)); MakeHowToView(); // general settings rect = tabView->Bounds(); rect.bottom -= tabView->TabHeight() + 4; tabView->AddTab(view = new CenterContainer(rect)); tabView->TabAt(1)->SetLabel(MDR_DIALECT_CHOICE ("General","一般")); rect = view->Bounds().InsetByCopy(8,8); rect.right -= 1; rect.bottom = rect.top + height * 5 + 15; BBox *box = new BBox(rect); box->SetLabel(MDR_DIALECT_CHOICE ("Retrieval Frequency","メールチェック間隔")); view->AddChild(box); rect = box->Bounds().InsetByCopy(8,8); rect.top += 7; rect.bottom = rect.top + height + 5; BRect tile = rect.OffsetByCopy(0,1); int32 labelWidth = (int32)view->StringWidth(MDR_DIALECT_CHOICE ("Check every:","メールチェック間隔:"))+6; tile.right = 80 + labelWidth; fIntervalControl = new BTextControl(tile,"time",MDR_DIALECT_CHOICE ("Check every:","メールチェック間隔:"), NULL,NULL); fIntervalControl->SetDivider(labelWidth); box->AddChild(fIntervalControl); BPopUpMenu *frequencyPopUp = new BPopUpMenu(B_EMPTY_STRING); const char *frequencyStrings[] = { MDR_DIALECT_CHOICE ("Never","チェックしない"), MDR_DIALECT_CHOICE ("Minutes","分毎チェック"), MDR_DIALECT_CHOICE ("Hours","時間毎チェック"), MDR_DIALECT_CHOICE ("Days","日間毎チェック")}; BMenuItem *item; for (int32 i = 0;i < 4;i++) { frequencyPopUp->AddItem(item = new BMenuItem(frequencyStrings[i],new BMessage(kMsgIntervalUnitChanged))); if (i == 1) item->SetMarked(true); } tile.left = tile.right + 5; tile.right = rect.right; tile.OffsetBy(0,-1); fIntervalUnitField = new BMenuField(tile,"frequency", B_EMPTY_STRING, frequencyPopUp); fIntervalUnitField->SetDivider(0.0); box->AddChild(fIntervalUnitField); rect.OffsetBy(0,height + 9); rect.bottom -= 2; fPPPActiveCheckBox = new BCheckBox(rect,"ppp active", MDR_DIALECT_CHOICE ("only when PPP is active","PPP接続中時のみ"), NULL); box->AddChild(fPPPActiveCheckBox); rect.OffsetBy(0,height + 9); rect.bottom -= 2; fPPPActiveSendCheckBox = new BCheckBox(rect,"ppp activesend", MDR_DIALECT_CHOICE ("Queue outgoing mail when PPP is inactive","PPP切断時、送信メールを送信箱に入れる"), NULL); box->AddChild(fPPPActiveSendCheckBox); rect = box->Frame(); rect.bottom = rect.top + 4*height + 20; box = new BBox(rect); box->SetLabel(MDR_DIALECT_CHOICE ("Status Window","送受信状況の表示")); view->AddChild(box); BPopUpMenu *statusPopUp = new BPopUpMenu(B_EMPTY_STRING); const char *statusModes[] = { MDR_DIALECT_CHOICE ("Never","表示しない"), MDR_DIALECT_CHOICE ("While Sending","送信時"), MDR_DIALECT_CHOICE ("While Sending / Fetching","送受信時"), MDR_DIALECT_CHOICE ("Always","常に表示")}; BMessage *msg; for (int32 i = 0;i < 4;i++) { statusPopUp->AddItem(item = new BMenuItem(statusModes[i],msg = new BMessage(kMsgShowStatusWindowChanged))); msg->AddInt32("ShowStatusWindow",i); if (i == 0) item->SetMarked(true); } rect = box->Bounds().InsetByCopy(8,8); rect.top += 7; rect.bottom = rect.top + height + 5; labelWidth = (int32)view->StringWidth( MDR_DIALECT_CHOICE ("Show Status Window:","ステータスの表示:")) + 8; fStatusModeField = new BMenuField(rect,"show status", MDR_DIALECT_CHOICE ("Show Status Window:","ステータスの表示:"), statusPopUp); fStatusModeField->SetDivider(labelWidth); box->AddChild(fStatusModeField); BPopUpMenu *lookPopUp = new BPopUpMenu(B_EMPTY_STRING); const char *windowLookStrings[] = { MDR_DIALECT_CHOICE ("Normal, With Tab","タブ付通常"), MDR_DIALECT_CHOICE ("Normal, Border Only","ボーダーのみ通常"), MDR_DIALECT_CHOICE ("Floating","フローティング"), MDR_DIALECT_CHOICE ("Thin Border","細いボーダー"), MDR_DIALECT_CHOICE ("No Border","ボーダー無し")}; for (int32 i = 0;i < 5;i++) { lookPopUp->AddItem(item = new BMenuItem(windowLookStrings[i],msg = new BMessage(kMsgStatusLookChanged))); msg->AddInt32("StatusWindowLook",i); if (i == 0) item->SetMarked(true); } rect.OffsetBy(0, height + 6); fStatusLookField = new BMenuField(rect,"status look", MDR_DIALECT_CHOICE ("Window Look:","ウィンドウ外観:"),lookPopUp); fStatusLookField->SetDivider(labelWidth); box->AddChild(fStatusLookField); BPopUpMenu *workspacesPopUp = new BPopUpMenu(B_EMPTY_STRING); workspacesPopUp->AddItem(item = new BMenuItem( MDR_DIALECT_CHOICE ("Current Workspace","使用中ワークスペース"), msg = new BMessage(kMsgStatusWorkspaceChanged))); msg->AddInt32("StatusWindowWorkSpace", 0); workspacesPopUp->AddItem(item = new BMenuItem( MDR_DIALECT_CHOICE ("All Workspaces","全てのワークスペース"), msg = new BMessage(kMsgStatusWorkspaceChanged))); msg->AddInt32("StatusWindowWorkSpace", -1); rect.OffsetBy(0,height + 6); fStatusWorkspaceField = new BMenuField(rect,"status workspace", MDR_DIALECT_CHOICE ("Window visible on:","表示場所:"),workspacesPopUp); fStatusWorkspaceField->SetDivider(labelWidth); box->AddChild(fStatusWorkspaceField); rect = box->Frame(); rect.bottom = rect.top + 3*height + 13; box = new BBox(rect); box->SetLabel(MDR_DIALECT_CHOICE ("Deskbar Icon","デスクバーアイコンリンク")); view->AddChild(box); rect = box->Bounds().InsetByCopy(8,8); rect.top += 7; rect.bottom = rect.top + height + 5; BStringView *stringView = new BStringView(rect,B_EMPTY_STRING, MDR_DIALECT_CHOICE ( "The menu links are links to folders in a real folder like the Be menu.", "デスクバーで表示する項目の設定")); box->AddChild(stringView); stringView->SetAlignment(B_ALIGN_CENTER); stringView->ResizeToPreferred(); // BStringView::ResizeToPreferred() changes the width, so that the // alignment has no effect anymore stringView->ResizeTo(rect.Width(), stringView->Bounds().Height()); rect.left += 100; rect.right -= 100; rect.OffsetBy(0,height + 1); BButton *button = new BButton(rect,B_EMPTY_STRING, MDR_DIALECT_CHOICE ("Configure Menu Links","メニューリンクの設定"), msg = new BMessage(B_REFS_RECEIVED)); box->AddChild(button); button->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 button->SetEnabled(false); rect = box->Frame(); rect.bottom = rect.top + 2*height + 6; box = new BBox(rect); box->SetLabel(MDR_DIALECT_CHOICE ("Misc.","その他の設定")); view->AddChild(box); rect = box->Bounds().InsetByCopy(8,8); rect.top += 7; rect.bottom = rect.top + height + 5; fAutoStartCheckBox = new BCheckBox(rect,"start daemon", MDR_DIALECT_CHOICE ("Auto-Start Mail Daemon","Mail Daemonを自動起動"),NULL); box->AddChild(fAutoStartCheckBox); // about page rect = tabView->Bounds(); rect.bottom -= tabView->TabHeight() + 4; tabView->AddTab(view = new BView(rect,NULL,B_FOLLOW_ALL,0)); tabView->TabAt(2)->SetLabel(MDR_DIALECT_CHOICE ("About","情報")); view->SetViewColor(top->ViewColor()); AboutTextView *about = new AboutTextView(rect); about->SetViewColor(top->ViewColor()); view->AddChild(about); // save/cancel/revert buttons top->AddChild(tabView); rect = tabView->Frame(); rect.top = rect.bottom + 5; rect.bottom = rect.top + height + 5; BButton *saveButton = new BButton(rect,"save", MDR_DIALECT_CHOICE ("Save","保存"), new BMessage(kMsgSaveSettings)); float w,h; saveButton->GetPreferredSize(&w,&h); saveButton->ResizeTo(w,h); saveButton->MoveTo(rect.right - w, rect.top); top->AddChild(saveButton); BButton *cancelButton = new BButton(rect,"cancel", MDR_DIALECT_CHOICE ("Cancel","中止"), new BMessage(kMsgCancelSettings)); cancelButton->GetPreferredSize(&w,&h); cancelButton->ResizeTo(w,h); #ifdef HAVE_APPLY_BUTTON cancelButton->MoveTo(saveButton->Frame().left - w - 5,rect.top); #else cancelButton->MoveTo(saveButton->Frame().left - w - 20,rect.top); #endif top->AddChild(cancelButton); #ifdef HAVE_APPLY_BUTTON BButton *applyButton = new BButton(rect,"apply", MDR_DIALECT_CHOICE ("Apply","適用"), new BMessage(kMsgApplySettings)); applyButton->GetPreferredSize(&w,&h); applyButton->ResizeTo(w,h); applyButton->MoveTo(cancelButton->Frame().left - w - 20,rect.top); top->AddChild(applyButton); #endif BButton *revertButton = new BButton(rect,"revert", MDR_DIALECT_CHOICE ("Revert","復元"), new BMessage(kMsgRevertSettings)); revertButton->GetPreferredSize(&w,&h); revertButton->ResizeTo(w,h); #ifdef HAVE_APPLY_BUTTON revertButton->MoveTo(applyButton->Frame().left - w - 5,rect.top); #else revertButton->MoveTo(cancelButton->Frame().left - w - 6,rect.top); #endif top->AddChild(revertButton); LoadSettings(); fAccountsListView->SetSelectionMessage(new BMessage(kMsgAccountSelected)); }
AttribPolygon::AttribPolygon () : AttribView (BRect (0, 0, 148, 90), lstring (30, "Polygons")) { SetViewColor (LightGrey); lSlid = new Slider (BRect (8, 8, 140, 26), 60, lstring (310, "Pen Size"), 1, 50, 1, new BMessage ('ALpc')); AddChild (lSlid); fPenSize = 1; fType = POLYGON_OUTFILL; BBox *type = new BBox (BRect (18, 32, 130, 82), "type"); type->SetLabel (lstring (311, "Type")); AddChild (type); BPoint pointArray[] = { BPoint ( 2, 8), BPoint ( 9, 2), BPoint (27, 12), BPoint (19, 28), BPoint (14, 20), BPoint ( 9, 26) }; BPolygon *poly = new BPolygon(); poly->AddPoints(pointArray, 6); BWindow *picWindow = new BWindow (BRect (0, 0, 100, 100), "Temp Pic Window", B_BORDERED_WINDOW, uint32 (NULL), uint32 (NULL)); BView *bg = new BView (BRect (0, 0, 100, 100), "Temp Pic View", uint32 (NULL), uint32 (NULL)); picWindow->AddChild (bg); BPicture *p10; bg->BeginPicture (new BPicture); bg->SetLowColor (LightGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetLowColor (White); bg->FillPolygon (poly, B_SOLID_LOW); bg->StrokePolygon (poly); p10 = bg->EndPicture(); BPicture *p20; bg->BeginPicture (new BPicture); bg->SetLowColor (LightGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetHighColor (Black); bg->SetLowColor (White); bg->FillPolygon (poly, B_SOLID_LOW); p20 = bg->EndPicture(); BPicture *p30; bg->BeginPicture (new BPicture); bg->SetLowColor (LightGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetHighColor (Black); bg->SetLowColor (White); bg->StrokePolygon (poly); p30 = bg->EndPicture(); BPicture *p11; bg->BeginPicture (new BPicture); bg->SetLowColor (DarkGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetHighColor (Black); bg->SetLowColor (White); bg->FillPolygon (poly, B_SOLID_LOW); bg->StrokePolygon (poly); p11 = bg->EndPicture(); BPicture *p21; bg->BeginPicture (new BPicture); bg->SetLowColor (DarkGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetHighColor (Black); bg->SetLowColor (White); bg->FillPolygon (poly, B_SOLID_LOW); p21 = bg->EndPicture(); BPicture *p31; bg->BeginPicture (new BPicture); bg->SetLowColor (DarkGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetHighColor (Black); bg->SetLowColor (White); bg->StrokePolygon (poly); p31 = bg->EndPicture(); delete poly; delete picWindow; SetViewColor (LightGrey); pT1 = new BPictureButton (BRect (4, 15, 34, 45), "APVt1", p10, p11, new BMessage ('pvT1'), B_TWO_STATE_BUTTON); pT2 = new BPictureButton (BRect (40, 15, 70, 45), "APVt2", p20, p21, new BMessage ('pvT2'), B_TWO_STATE_BUTTON); pT3 = new BPictureButton (BRect (76, 15, 106, 45), "APVt3", p30, p31, new BMessage ('pvT3'), B_TWO_STATE_BUTTON); type->AddChild (pT1); type->AddChild (pT2); type->AddChild (pT3); pT1->SetValue (B_CONTROL_ON); fCurrentProperty = 0; }
SettingsWindow::SettingsWindow(BRect frame) : BWindow(frame, "MediaPlayer settings", B_FLOATING_WINDOW_LOOK, B_FLOATING_APP_WINDOW_FEEL, B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_NOT_RESIZABLE #ifdef __ANTARES__ | B_AUTO_UPDATE_SIZE_LIMITS) #else ) #endif { #ifdef __ANTARES__ BBox* settingsBox = new BBox(B_PLAIN_BORDER, NULL); BGroupLayout* settingsLayout = new BGroupLayout(B_VERTICAL, 5); settingsBox->SetLayout(settingsLayout); BBox* buttonBox = new BBox(B_PLAIN_BORDER, NULL); BGroupLayout* buttonLayout = new BGroupLayout(B_HORIZONTAL, 5); buttonBox->SetLayout(buttonLayout); BStringView* playModeLabel = new BStringView("stringViewPlayMode", "Play mode"); BStringView* viewOptionsLabel = new BStringView("stringViewViewOpions", "View options"); BStringView* bgMoviesModeLabel = new BStringView("stringViewPlayBackg", "Play background clips at"); BAlignment alignment(B_ALIGN_LEFT, B_ALIGN_VERTICAL_CENTER); playModeLabel->SetExplicitAlignment(alignment); playModeLabel->SetFont(be_bold_font); viewOptionsLabel->SetExplicitAlignment(alignment); viewOptionsLabel->SetFont(be_bold_font); bgMoviesModeLabel->SetExplicitAlignment(alignment); bgMoviesModeLabel->SetFont(be_bold_font); fAutostartCB = new BCheckBox("chkboxAutostart", "Automatically start playing", new BMessage(M_AUTOSTART)); fCloseWindowMoviesCB = new BCheckBox("chkBoxCloseWindowMovies", "Close window when done playing movies", new BMessage(M_CLOSE_WINDOW_MOVIE)); fCloseWindowSoundsCB = new BCheckBox("chkBoxCloseWindowSounds", "Close window when done playing sounds", new BMessage(M_CLOSE_WINDOW_SOUNDS)); fLoopMoviesCB = new BCheckBox("chkBoxLoopMovie", "Loop movies by default", new BMessage(M_LOOP_MOVIE)); fLoopSoundsCB = new BCheckBox("chkBoxLoopSounds", "Loop sounds by default", new BMessage(M_LOOP_SOUND)); fUseOverlaysCB = new BCheckBox("chkBoxUseOverlays", "Use hardware video overlays if available", new BMessage(M_USE_OVERLAYS)); fScaleBilinearCB = new BCheckBox("chkBoxScaleBilinear", "Scale movies smoothly (non-overlay mode)", new BMessage(M_SCALE_BILINEAR)); fFullVolumeBGMoviesRB = new BRadioButton("rdbtnfullvolume", "Full volume", new BMessage(M_START_FULL_VOLUME)); fHalfVolumeBGMoviesRB = new BRadioButton("rdbtnhalfvolume", "Low volume", new BMessage(M_START_HALF_VOLUME)); fMutedVolumeBGMoviesRB = new BRadioButton("rdbtnfullvolume", "Muted", new BMessage(M_START_MUTE_VOLUME)); fRevertB = new BButton("revert", "Revert", new BMessage(M_SETTINGS_REVERT)); BButton* cancelButton = new BButton("cancel", "Cancel", new BMessage(M_SETTINGS_CANCEL)); BButton* okButton = new BButton("ok", "OK", new BMessage(M_SETTINGS_SAVE)); okButton->MakeDefault(true); // Build the layout SetLayout(new BGroupLayout(B_HORIZONTAL)); AddChild(BGroupLayoutBuilder(B_VERTICAL, 0) .Add(BGroupLayoutBuilder(settingsLayout) .Add(playModeLabel) .Add(BGroupLayoutBuilder(B_HORIZONTAL, 0) .Add(BSpaceLayoutItem::CreateHorizontalStrut(10)) .Add(BGroupLayoutBuilder(B_VERTICAL, 0) .Add(fAutostartCB) .Add(BGridLayoutBuilder(5, 0) .Add(BSpaceLayoutItem::CreateHorizontalStrut(10), 0, 0) .Add(fCloseWindowMoviesCB, 1, 0) .Add(BSpaceLayoutItem::CreateHorizontalStrut(10), 0, 1) .Add(fCloseWindowSoundsCB, 1, 1) ) .Add(fLoopMoviesCB) .Add(fLoopSoundsCB) ) ) .Add(BSpaceLayoutItem::CreateVerticalStrut(5)) .Add(viewOptionsLabel) .Add(BGroupLayoutBuilder(B_HORIZONTAL, 0) .Add(BSpaceLayoutItem::CreateHorizontalStrut(10)) .Add(BGroupLayoutBuilder(B_VERTICAL, 0) .Add(fUseOverlaysCB) .Add(fScaleBilinearCB) ) ) .Add(BSpaceLayoutItem::CreateVerticalStrut(5)) .Add(bgMoviesModeLabel) .Add(BGroupLayoutBuilder(B_HORIZONTAL, 0) .Add(BSpaceLayoutItem::CreateHorizontalStrut(10)) .Add(BGroupLayoutBuilder(B_VERTICAL, 0) .Add(fFullVolumeBGMoviesRB) .Add(fHalfVolumeBGMoviesRB) .Add(fMutedVolumeBGMoviesRB) ) ) .Add(BSpaceLayoutItem::CreateVerticalStrut(5)) .SetInsets(5, 5, 15, 5) ) .Add(BGroupLayoutBuilder(buttonLayout) .Add(fRevertB) .AddGlue() .Add(cancelButton) .Add(okButton) .SetInsets(5, 5, 5, 5) ) ); #else frame = Bounds(); BView* view = new BView(frame,"SettingsView",B_FOLLOW_ALL_SIDES,B_WILL_DRAW); view->SetViewColor(216, 216, 216); BRect btnRect(80.00, frame.bottom - (SPACE + BUTTONHEIGHT), 145.00, frame.bottom-SPACE); fRevertB = new BButton(btnRect, "revert", "Revert", new BMessage(M_SETTINGS_REVERT)); view->AddChild(fRevertB); btnRect.OffsetBy(btnRect.Width() + SPACE, 0); BButton* btn = new BButton(btnRect, "btnCancel", "Cancel", new BMessage(M_SETTINGS_CANCEL)); view->AddChild(btn); btnRect.OffsetBy(btnRect.Width() + SPACE, 0); btn = new BButton(btnRect, "btnOK", "OK", new BMessage(M_SETTINGS_SAVE)); view->AddChild(btn); BRect rectBox(frame.left + SPACE, frame.top + SPACE, frame.right - SPACE, btnRect.top- SPACE); BBox* bbox = new BBox(rectBox, "box1", B_FOLLOW_ALL_SIDES,B_WILL_DRAW | B_NAVIGABLE, B_FANCY_BORDER); bbox->SetLabel("MediaPlayer Settings"); BFont font; font_height fh1; font.GetHeight(&fh1); BString str("Play Mode:"); BRect rect(rectBox.left, rectBox.top + SPACE, rectBox.right - (12*2), rectBox.top + fh1.leading + fh1.ascent + 10); bbox->AddChild(new BStringView(rect, "stringViewPlayMode", str.String())); rect.OffsetBy(0, rect.Height()); bbox->AddChild(fAutostartCB = new BCheckBox(rect, "chkboxAutostart", "Automatically start playing", new BMessage(M_AUTOSTART))); rect.OffsetBy(SPACE, rect.Height() + SPACEING); bbox->AddChild(fCloseWindowMoviesCB = new BCheckBox(rect, "chkBoxCloseWindowMovies", "Close window when done playing movies", new BMessage(M_CLOSE_WINDOW_MOVIE))); rect.OffsetBy(0, rect.Height() + SPACEING); bbox->AddChild(fCloseWindowSoundsCB = new BCheckBox(rect, "chkBoxCloseWindowSounds", "Close window when done playing sounds", new BMessage(M_CLOSE_WINDOW_SOUNDS))); rect.OffsetBy(-SPACE, rect.Height() + SPACEING); bbox->AddChild(fLoopMoviesCB = new BCheckBox(rect, "chkBoxLoopMovie", "Loop movies by default", new BMessage(M_LOOP_MOVIE))); rect.OffsetBy(0, rect.Height() + SPACEING); bbox->AddChild(fLoopSoundsCB = new BCheckBox(rect, "chkBoxLoopSounds", "Loop sounds by default", new BMessage(M_LOOP_SOUND))); rect.OffsetBy(0, rect.Height() + SPACEING); bbox->AddChild(fUseOverlaysCB = new BCheckBox(rect, "chkBoxUseOverlays", "Use hardware video overlays if available", new BMessage(M_USE_OVERLAYS))); rect.OffsetBy(0, rect.Height() + SPACEING); bbox->AddChild(fScaleBilinearCB = new BCheckBox(rect, "chkBoxScaleBilinear", "Scale movies smoothly (non-overlay mode)", new BMessage(M_SCALE_BILINEAR))); rect.OffsetBy(0, rect.Height() + SPACE + SPACEING); bbox->AddChild(new BStringView(rect, "stringViewPlayBackg", "Play backgrounds clips at:")); rect.OffsetBy(SPACE, rect.Height() + SPACEING); fFullVolumeBGMoviesRB = new BRadioButton(rect, "rdbtnfullvolume", "Full Volume", new BMessage(M_START_FULL_VOLUME)); bbox->AddChild(fFullVolumeBGMoviesRB); rect.OffsetBy(0, rect.Height() + SPACEING); fHalfVolumeBGMoviesRB = new BRadioButton(rect, "rdbtnhalfvolume", "Low Volume", new BMessage(M_START_HALF_VOLUME)); bbox->AddChild(fHalfVolumeBGMoviesRB); rect.OffsetBy(0, rect.Height() + SPACEING); fMutedVolumeBGMoviesRB = new BRadioButton(rect, "rdbtnfullvolume", "Muted", new BMessage(M_START_MUTE_VOLUME)); bbox->AddChild(fMutedVolumeBGMoviesRB); view->AddChild(bbox); AddChild(view); #endif // disable currently unsupported features fLoopMoviesCB->SetEnabled(false); fLoopSoundsCB->SetEnabled(false); }
ApplicationTypesWindow::ApplicationTypesWindow(const BMessage& settings) : BWindow(_Frame(settings), B_TRANSLATE("Application types"), B_TITLED_WINDOW, B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS) { float padding = be_control_look->DefaultItemSpacing(); BAlignment labelAlignment = be_control_look->DefaultLabelAlignment(); BAlignment fullWidthTopAlignment(B_ALIGN_USE_FULL_WIDTH, B_ALIGN_TOP); // Application list fTypeListView = new MimeTypeListView("listview", "application", true, true); fTypeListView->SetSelectionMessage(new BMessage(kMsgTypeSelected)); fTypeListView->SetInvocationMessage(new BMessage(kMsgTypeInvoked)); // TODO: this isn't the perfect solution, but otherwise the window contents // will jump chaotically fTypeListView->SetExplicitMinSize(BSize(200, B_SIZE_UNSET)); fTypeListView->SetExplicitMaxSize(BSize(250, B_SIZE_UNSET)); BScrollView* scrollView = new BScrollView("scrollview", fTypeListView, B_FRAME_EVENTS | B_WILL_DRAW, false, true); BButton* button = new BButton("remove", B_TRANSLATE("Remove uninstalled"), new BMessage(kMsgRemoveUninstalled)); // "Information" group BBox* infoBox = new BBox((char*)NULL); infoBox->SetLabel(B_TRANSLATE("Information")); infoBox->SetExplicitAlignment(fullWidthTopAlignment); fNameView = new StringView(B_TRANSLATE("Name:"), NULL); fNameView->TextView()->SetExplicitAlignment(labelAlignment); fNameView->LabelView()->SetExplicitAlignment(labelAlignment); fSignatureView = new StringView(B_TRANSLATE("Signature:"), NULL); fSignatureView->TextView()->SetExplicitAlignment(labelAlignment); fSignatureView->LabelView()->SetExplicitAlignment(labelAlignment); fPathView = new StringView(B_TRANSLATE("Path:"), NULL); fPathView->TextView()->SetExplicitAlignment(labelAlignment); fPathView->LabelView()->SetExplicitAlignment(labelAlignment); BLayoutBuilder::Grid<>(infoBox, padding, padding) .SetInsets(padding, padding * 2, padding, padding) .Add(fNameView->LabelView(), 0, 0) .Add(fNameView->TextView(), 1, 0, 2) .Add(fSignatureView->LabelView(), 0, 1) .Add(fSignatureView->TextView(), 1, 1, 2) .Add(fPathView->LabelView(), 0, 2) .Add(fPathView->TextView(), 1, 2, 2); // "Version" group BBox* versionBox = new BBox(""); versionBox->SetLabel(B_TRANSLATE("Version")); versionBox->SetExplicitAlignment(fullWidthTopAlignment); fVersionView = new StringView(B_TRANSLATE("Version:"), NULL); fVersionView->TextView()->SetExplicitAlignment(labelAlignment); fVersionView->LabelView()->SetExplicitAlignment(labelAlignment); fDescriptionLabel = new StringView(B_TRANSLATE("Description:"), NULL); fDescriptionLabel->LabelView()->SetExplicitAlignment(labelAlignment); fDescriptionView = new BTextView("description"); fDescriptionView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fDescriptionView->SetLowColor(fDescriptionView->ViewColor()); fDescriptionView->MakeEditable(false); BLayoutBuilder::Grid<>(versionBox, padding, padding) .SetInsets(padding, padding * 2, padding, padding) .Add(fVersionView->LabelView(), 0, 0) .Add(fVersionView->TextView(), 1, 0) .Add(fDescriptionLabel->LabelView(), 0, 1) .Add(fDescriptionView, 1, 1, 2, 2); // Launch and Tracker buttons fEditButton = new BButton(B_TRANSLATE("Edit" B_UTF8_ELLIPSIS), new BMessage(kMsgEdit)); // launch and tracker buttons get messages in _SetType() fLaunchButton = new BButton(B_TRANSLATE("Launch")); fTrackerButton = new BButton( B_TRANSLATE("Show in Tracker" B_UTF8_ELLIPSIS)); BLayoutBuilder::Group<>(this, B_HORIZONTAL, padding) .AddGroup(B_VERTICAL, padding, 3) .Add(scrollView) .AddGroup(B_HORIZONTAL) .Add(button) .AddGlue() .End() .End() .AddGroup(B_VERTICAL, padding) .Add(infoBox) .Add(versionBox) .AddGroup(B_HORIZONTAL, padding) .Add(fEditButton) .Add(fLaunchButton) .Add(fTrackerButton) .AddGlue() .End() .AddGlue() .End() .SetInsets(padding, padding, padding, padding); BMimeType::StartWatching(this); _SetType(NULL); }
AttribRect::AttribRect () : AttribView (BRect (0, 0, 148, 90), lstring (31, "Rectangles")) { SetViewColor (LightGrey); lSlid = new Slider (BRect (8, 8, 140, 26), 60, lstring (310, "Pen Size"), 1, 50, 1, new BMessage ('ALpc')); AddChild (lSlid); fType = RECT_OUTFILL; fPenSize = 1; BBox *type = new BBox (BRect (18, 32, 130, 82), "type"); type->SetLabel (lstring (311, "Type")); AddChild (type); BRect shape = BRect (3, 5, 27, 25); BWindow *picWindow = new BWindow (BRect (0, 0, 100, 100), "Temp Pic Window", B_BORDERED_WINDOW, uint32 (NULL), uint32 (NULL)); BView *bg = new BView (BRect (0, 0, 100, 100), "Temp Pic View", uint32 (NULL), uint32 (NULL)); picWindow->AddChild (bg); BPicture *p10; bg->BeginPicture (new BPicture); bg->SetLowColor (LightGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetLowColor (White); bg->FillRect (shape, B_SOLID_LOW); bg->StrokeRect (shape); p10 = bg->EndPicture(); BPicture *p20; bg->BeginPicture (new BPicture); bg->SetLowColor (LightGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetHighColor (Black); bg->SetLowColor (White); bg->FillRect (shape, B_SOLID_LOW); p20 = bg->EndPicture(); BPicture *p30; bg->BeginPicture (new BPicture); bg->SetLowColor (LightGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetHighColor (Black); bg->SetLowColor (White); bg->StrokeRect (shape); p30 = bg->EndPicture(); BPicture *p11; bg->BeginPicture (new BPicture); bg->SetLowColor (DarkGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetHighColor (Black); bg->SetLowColor (White); bg->FillRect (shape, B_SOLID_LOW); bg->StrokeRect (shape); p11 = bg->EndPicture(); BPicture *p21; bg->BeginPicture (new BPicture); bg->SetLowColor (DarkGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetHighColor (Black); bg->SetLowColor (White); bg->FillRect (shape, B_SOLID_LOW); p21 = bg->EndPicture(); BPicture *p31; bg->BeginPicture (new BPicture); bg->SetLowColor (DarkGrey); bg->FillRect (BRect (0, 0, 32, 32), B_SOLID_LOW); bg->SetHighColor (Black); bg->SetLowColor (White); bg->StrokeRect (shape); p31 = bg->EndPicture(); SetViewColor (LightGrey); delete picWindow; pT1 = new BPictureButton (BRect (4, 15, 34, 45), "APVt1", p10, p11, new BMessage ('pvT1'), B_TWO_STATE_BUTTON); pT2 = new BPictureButton (BRect (40, 15, 70, 45), "APVt2", p20, p21, new BMessage ('pvT2'), B_TWO_STATE_BUTTON); pT3 = new BPictureButton (BRect (76, 15, 106, 45), "APVt3", p30, p31, new BMessage ('pvT3'), B_TWO_STATE_BUTTON); type->AddChild (pT1); type->AddChild (pT2); type->AddChild (pT3); pT1->SetValue (B_CONTROL_ON); fCurrentProperty = 0; }
ConfigWindow::ConfigWindow() : BWindow(BRect(100.0, 100.0, 580.0, 540.0), "E-mail", B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_NOT_RESIZABLE), fLastSelectedAccount(NULL), fSaveSettings(false) { // create controls BRect rect(Bounds()); BView *top = new BView(rect, NULL, B_FOLLOW_ALL, 0); top->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); AddChild(top); // determine font height font_height fontHeight; top->GetFontHeight(&fontHeight); int32 height = (int32)(fontHeight.ascent + fontHeight.descent + fontHeight.leading) + 5; rect.InsetBy(5, 5); rect.bottom -= 11 + height; BTabView *tabView = new BTabView(rect, NULL); BView *view; rect = tabView->Bounds(); rect.bottom -= tabView->TabHeight() + 4; tabView->AddTab(view = new BView(rect, NULL, B_FOLLOW_ALL, 0)); tabView->TabAt(0)->SetLabel(B_TRANSLATE("Accounts")); view->SetViewColor(top->ViewColor()); // accounts listview rect = view->Bounds().InsetByCopy(8, 8); rect.right = 140 - B_V_SCROLL_BAR_WIDTH; rect.bottom -= height + 12; fAccountsListView = new AccountsListView(rect); view->AddChild(new BScrollView(NULL, fAccountsListView, B_FOLLOW_ALL, 0, false, true)); rect.right += B_V_SCROLL_BAR_WIDTH; rect.top = rect.bottom + 8; rect.bottom = rect.top + height; BRect sizeRect = rect; sizeRect.right = sizeRect.left + 30 + view->StringWidth( B_TRANSLATE("Add")); view->AddChild(new BButton(sizeRect, NULL, B_TRANSLATE("Add"), new BMessage(kMsgAddAccount), B_FOLLOW_BOTTOM)); sizeRect.left = sizeRect.right+3; sizeRect.right = sizeRect.left + 30 + view->StringWidth( B_TRANSLATE("Remove")); view->AddChild(fRemoveButton = new BButton( sizeRect, NULL, B_TRANSLATE("Remove"), new BMessage(kMsgRemoveAccount), B_FOLLOW_BOTTOM)); // accounts config view rect = view->Bounds(); rect.left = fAccountsListView->Frame().right + B_V_SCROLL_BAR_WIDTH + 16; rect.right -= 10; view->AddChild(fConfigView = new CenterContainer(rect)); MakeHowToView(); // general settings rect = tabView->Bounds(); rect.bottom -= tabView->TabHeight() + 4; tabView->AddTab(view = new CenterContainer(rect)); tabView->TabAt(1)->SetLabel(B_TRANSLATE("Settings")); rect = view->Bounds().InsetByCopy(8, 8); rect.right -= 1; rect.bottom = rect.top + height * 5 + 15; BBox *box = new BBox(rect); box->SetLabel(B_TRANSLATE("Mail checking")); view->AddChild(box); rect = box->Bounds().InsetByCopy(8, 8); rect.top += 7; rect.bottom = rect.top + height + 5; BRect tile = rect.OffsetByCopy(0, 1); int32 labelWidth = (int32)view->StringWidth(B_TRANSLATE("Check every")) + 6; tile.right = 80 + labelWidth; fIntervalControl = new BTextControl(tile, "time", B_TRANSLATE("Check every"), NULL, NULL); fIntervalControl->SetDivider(labelWidth); box->AddChild(fIntervalControl); BPopUpMenu *frequencyPopUp = new BPopUpMenu(B_EMPTY_STRING); const char *frequencyStrings[] = { B_TRANSLATE("never"), B_TRANSLATE("minutes"), B_TRANSLATE("hours"), B_TRANSLATE("days") }; BMenuItem *item; for (int32 i = 0; i < 4; i++) { frequencyPopUp->AddItem(item = new BMenuItem(frequencyStrings[i], new BMessage(kMsgIntervalUnitChanged))); if (i == 1) item->SetMarked(true); } tile.left = tile.right + 5; tile.right = rect.right; tile.OffsetBy(0,-1); fIntervalUnitField = new BMenuField(tile, "frequency", B_EMPTY_STRING, frequencyPopUp); fIntervalUnitField->SetDivider(0.0); box->AddChild(fIntervalUnitField); rect.OffsetBy(0,height + 9); rect.bottom -= 2; fPPPActiveCheckBox = new BCheckBox(rect, "ppp active", B_TRANSLATE("Only when dial-up is connected"), NULL); box->AddChild(fPPPActiveCheckBox); rect.OffsetBy(0,height + 9); rect.bottom -= 2; fPPPActiveSendCheckBox = new BCheckBox(rect, "ppp activesend", B_TRANSLATE("Schedule outgoing mail when dial-up is disconnected"), NULL); box->AddChild(fPPPActiveSendCheckBox); // Miscellaneous settings box rect = box->Frame(); rect.bottom = rect.top + 3 * height + 30; box = new BBox(rect); box->SetLabel(B_TRANSLATE("Miscellaneous")); view->AddChild(box); BPopUpMenu *statusPopUp = new BPopUpMenu(B_EMPTY_STRING); const char *statusModes[] = { B_TRANSLATE("Never"), B_TRANSLATE("While sending"), B_TRANSLATE("While sending and receiving"), B_TRANSLATE("Always") }; BMessage *msg; for (int32 i = 0; i < 4; i++) { statusPopUp->AddItem(item = new BMenuItem(statusModes[i], msg = new BMessage(kMsgShowStatusWindowChanged))); msg->AddInt32("ShowStatusWindow", i); if (i == 0) item->SetMarked(true); } rect = box->Bounds().InsetByCopy(8,8); rect.top += 7; rect.bottom = rect.top + height + 5; labelWidth = (int32)view->StringWidth( B_TRANSLATE("Show connection status window:")) + 8; fStatusModeField = new BMenuField(rect, "show status", B_TRANSLATE("Show connection status window:"), statusPopUp); fStatusModeField->SetDivider(labelWidth); box->AddChild(fStatusModeField); rect = fStatusModeField->Frame();; rect.OffsetBy(0, rect.Height() + 10); BButton *button = new BButton(rect, B_EMPTY_STRING, B_TRANSLATE("Edit mailbox menu…"), msg = new BMessage(B_REFS_RECEIVED)); button->ResizeToPreferred(); box->AddChild(button); button->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 button->SetEnabled(false); rect = button->Frame(); rect.OffsetBy(rect.Width() + 30,0); fAutoStartCheckBox = new BCheckBox(rect, "start daemon", B_TRANSLATE("Start mail services on startup"), NULL); fAutoStartCheckBox->ResizeToPreferred(); box->AddChild(fAutoStartCheckBox); // save/revert buttons top->AddChild(tabView); rect = tabView->Frame(); rect.top = rect.bottom + 5; rect.bottom = rect.top + height + 5; BButton *saveButton = new BButton(rect, "apply", B_TRANSLATE("Apply"), new BMessage(kMsgSaveSettings)); float w,h; saveButton->GetPreferredSize(&w, &h); saveButton->ResizeTo(w, h); saveButton->MoveTo(rect.right - w, rect.top); top->AddChild(saveButton); BButton *revertButton = new BButton(rect, "revert", B_TRANSLATE("Revert"), new BMessage(kMsgRevertSettings)); revertButton->GetPreferredSize(&w, &h); revertButton->ResizeTo(w,h); revertButton->MoveTo(saveButton->Frame().left - 25 - w, rect.top); top->AddChild(revertButton); LoadSettings(); // this will also move our window to the stored position fAccountsListView->SetSelectionMessage(new BMessage(kMsgAccountSelected)); fAccountsListView->MakeFocus(true); }
CronoView::CronoView() : BView("CronoView", B_WILL_DRAW | B_FULL_UPDATE_ON_RESIZE), fAccentsList(false) { fReplicated = false; // Core fCore = new Core(); SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); rgb_color barColor = { 0, 200, 0 }; rgb_color fillColor = { 240, 240, 240 }; _BuildMenu(); // Volume slider BBox* volBox = new BBox("volbox"); volBox->SetLabel("Volume"); BGroupLayout* volLayout = new BGroupLayout(B_VERTICAL); volLayout->SetInsets(10, volBox->TopBorderOffset() * 2 + 10, 10, 10); volBox->SetLayout(volLayout); fVolumeSlider = new VolumeSlider("", 0, 1000, DEFAULT_VOLUME, new BMessage(MSG_VOLUME)); fVolumeSlider->SetLimitLabels("Min", "Max"); fVolumeSlider->SetHashMarks(B_HASH_MARKS_BOTTOM); fVolumeSlider->SetHashMarkCount(20); fVolumeSlider->SetValue((int32)fCore->Volume()*10); fVolumeSlider->UseFillColor(true, &fillColor); fVolumeSlider->SetPosition(gCronoSettings.CronoVolume); fVolumeSlider->SetLabel(BString() << gCronoSettings.CronoVolume); volLayout->AddView(fVolumeSlider); // Speed Slider & TextControl BBox* speedBox = new BBox("speedbox"); speedBox->SetLabel("BPM"); BGroupLayout* speedLayout = new BGroupLayout(B_HORIZONTAL); speedLayout->SetInsets(10, speedBox->TopBorderOffset() * 2 + 10, 10, 10); speedBox->SetLayout(speedLayout); fSpeedSlider = new VolumeSlider("", MIN_SPEED, MAX_SPEED, DEFAULT_SPEED, new BMessage(MSG_SPEED_SLIDER)); fSpeedSlider->SetLimitLabels(BString() << MIN_SPEED, BString() << MAX_SPEED); fSpeedSlider->SetKeyIncrementValue(5); fSpeedSlider->SetHashMarks(B_HASH_MARKS_BOTTOM); fSpeedSlider->SetHashMarkCount(15); fSpeedSlider->SetValue(fCore->Speed()); fSpeedSlider->UseFillColor(true, &fillColor); _UpdateTempoName(gCronoSettings.Speed); fSpeedEntry = new BTextControl("", "", BString() << gCronoSettings.Speed, new BMessage(MSG_SPEED_ENTRY), B_WILL_DRAW); fSpeedEntry->SetDivider(70); fSpeedEntry->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_RIGHT); fSpeedEntry->SetExplicitSize(BSize(35, 20)); speedLayout->AddView(fSpeedSlider); speedLayout->AddView(fSpeedEntry); // Meter buttons BBox* tempoBox = new BBox("tempoBox"); tempoBox->SetLabel("Tempo"); for(int i = 0; i < 5; i++) fTempoRadios[i] = new BRadioButton("", "", new BMessage(MSG_METER_RADIO)); fTempoRadios[0]->SetLabel("1/4"); fTempoRadios[1]->SetLabel("2/4"); fTempoRadios[2]->SetLabel("3/4"); fTempoRadios[3]->SetLabel("4/4"); fTempoRadios[4]->SetLabel("Other"); fTempoRadios[fCore->Meter()]->SetValue(1); fTempoEntry = new BTextControl("", "", "4", new BMessage(MSG_METER_ENTRY), B_WILL_DRAW); fTempoEntry->SetDivider(70); if (fTempoRadios[4]->Value() == 1) fTempoEntry->SetEnabled(true); else fTempoEntry->SetEnabled(false); fAccentsView = new BGroupView(B_HORIZONTAL, 0); BLayoutBuilder::Group<>(tempoBox, B_VERTICAL, 0) .SetInsets(10, tempoBox->TopBorderOffset() * 2 + 10, 10, 10) .AddGroup(B_HORIZONTAL, 0) .Add(fTempoRadios[0]) .Add(fTempoRadios[1]) .Add(fTempoRadios[2]) .Add(fTempoRadios[3]) .Add(fTempoRadios[4]) .Add(fTempoEntry) .AddGlue() .End() .Add(fAccentsView) .AddGlue() .End(); if (gCronoSettings.AccentTable == true) _ShowTable(true); fStartButton = new BButton("Start", new BMessage(MSG_START)); fStartButton->MakeDefault(true); fStopButton = new BButton("Stop", new BMessage(MSG_STOP)); #ifdef CRONO_REPLICANT_ACTIVE // Dragger BRect frame(Bounds()); frame.left = frame.right - 7; frame.top = frame.bottom - 7; BDragger *dragger = new BDragger(frame, this, B_FOLLOW_RIGHT | B_FOLLOW_TOP); #endif // Create view BLayoutBuilder::Group<>(this, B_VERTICAL, 0) .Add(fMenuBar) .Add(volBox) .Add(speedBox) .Add(tempoBox) .AddGroup(B_HORIZONTAL) .Add(fStartButton) .Add(fStopButton) .End() #ifdef CRONO_REPLICANT_ACTIVE .Add(dragger) #endif .End(); }
BView* SeqPrefWin::NewFileView(BRect bounds, const BMessage& prefs) const { BView* v = new BView( bounds, FILE_STR, B_FOLLOW_ALL, 0 ); if( !v ) return v; v->SetViewColor( Prefs().Color(AM_AUX_WINDOW_BG_C) ); float fh = view_font_height(v); float bfh = bold_font_height(); float openH = bfh + 5 + fh + 5 + fh + 5 + fh; /* The Remember Open Songs preference. */ float w = v->StringWidth("Remember open songs") + 25; BRect f(bounds.left + 5, bounds.top + 5, bounds.left + 5 + w, bounds.top + 5 + fh); BCheckBox* cb = new BCheckBox( f, REMEMBER_OPEN_STR, "Remember open songs", new BMessage(REMEMBER_OPEN_MSG) ); if( cb ) { bool b; if( prefs.FindBool(REMEBER_OPEN_SONGS_PREF, &b) != B_OK ) b = false; cb->SetValue( (b) ? B_CONTROL_ON : B_CONTROL_OFF ); v->AddChild( cb ); } /* The Skin preference. */ BMenu* menu = new BMenu("skin_menu"); BMessage skinMsg(CHANGE_SKIN_MSG); BMenuItem* item = new BMenuItem( "Default", new BMessage(CHANGE_SKIN_TO_DEFAULT_MSG) ); item->SetMarked(true); menu->AddItem(item); menu->AddSeparatorItem(); menu->SetLabelFromMarked(true); if( seq_make_skin_menu(menu, &skinMsg) == B_OK ) { const char* label = "Choose skin:"; f.Set(f.left, f.bottom + 8, bounds.right - 5, f.bottom + 8 + fh + 10); BMenuField* field = new BMenuField(f, "skin_field", label, menu); if (field) { field->SetDivider( v->StringWidth(label) + 10 ); v->AddChild(field); } else delete menu; } else delete menu; /* The Open New Songs preferences. */ f.Set(bounds.left + 5, f.bottom + 10, bounds.right - 5, f.bottom + 10 + openH + 10); BBox* box = new BBox( f, "open_new_songs", B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP); if( box ) { box->SetLabel( "Open New Songs" ); BRect boxB = box->Bounds(); BRect sf(boxB.left + 5, boxB.top + 5 + bfh, boxB.right - 5, boxB.top + 5 + bfh + fh); const char* choice; if( prefs.FindString(OPEN_NEW_SONG_PREF, &choice) != B_OK ) choice = 0; BRadioButton* button = new BRadioButton( sf, OPEN_BLANK_STR, "Blank", new BMessage(OPEN_BLANK_MSG), B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP ); if( button ) { if( choice && strcmp(choice, "blank") == 0 ) button->SetValue( B_CONTROL_ON ); box->AddChild( button ); } sf.OffsetBy( 0, 5 + fh ); button = new BRadioButton( sf, OPEN_FOUR_STR, "With two channels of each device", new BMessage(OPEN_FOUR_MSG), B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP ); if( button ) { if( choice && strcmp(choice, "channels") == 0 ) button->SetValue( B_CONTROL_ON ); box->AddChild( button ); } sf.OffsetBy( 0, 5 + fh ); button = new BRadioButton( sf, OPEN_FILE_STR, "From file: <click to select>", new BMessage(OPEN_FILE_MSG), B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP ); if( button ) { if( choice && strcmp(choice, "file") == 0 ) button->SetValue( B_CONTROL_ON ); entry_ref ref; if( prefs.FindRef(OPEN_NEW_SONG_FILE_PREF, &ref) == B_OK ) button->SetLabel( label_for_open_new_from_file(&ref).String() ); box->AddChild( button ); } v->AddChild( box ); f.OffsetBy(0, f.bottom - f.top + 10 ); } /* The Open From Query preferences */ f.bottom = bounds.bottom - 27; box = new BBox( f, "open_from_query", B_FOLLOW_ALL); if( box ) { box->SetLabel("Open From Query"); BRect boxB = box->Bounds(); BRect tableF(boxB.left + 5, boxB.top + 5 + bfh, boxB.right - 5, boxB.bottom - 35); mOwqTable = new _OwqList( tableF, mPreferences ); if( mOwqTable ) { mOwqTable->SetLatchWidth( 0 ); box->AddChild( mOwqTable ); mOwqTable->AddColumn( new BStringColumn(ON_STR, 40, 20, 100, B_TRUNCATE_END), 0 ); mOwqTable->AddColumn( new BStringColumn(NAME_STR, 100, 20, 150, B_TRUNCATE_END), 1 ); mOwqTable->AddColumn( new BStringColumn(QUERY_STR, 180, 20, 450, B_TRUNCATE_MIDDLE), 2 ); // mOwqTable->AddColumn( new BStringColumn(SKIP_TOP_LEVEL_STR, 100, 20, 250, B_TRUNCATE_END), 3 ); mOwqTable->SetSortColumn(mOwqTable->ColumnAt(1), false, true); // mOwqTable->SetSortColumn(mOwqTable->ColumnAt(), true, true); mOwqTable->SetSelectionMode( B_SINGLE_SELECTION_LIST ); BRect bF(tableF.left, tableF.bottom + 5, tableF.left + 55, tableF.Height() - 10); BButton* add = new BButton( bF, "owq_add", "Add", new BMessage(OWQ_INVOKE_ADD), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM ); if( add ) box->AddChild( add ); bF.OffsetBy( bF.Width() + 5, 0 ); BButton* change = new BButton( bF, "owq_change", "Change", new BMessage(OWQ_CHANGE), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM ); if( change ) { change->SetEnabled( false ); box->AddChild( change ); } bF.OffsetBy( bF.Width() + 5, 0 ); BButton* remove = new BButton( bF, "owq_remove", "Remove", new BMessage(OWQ_REMOVE), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM ); if( remove ) { remove->SetEnabled( false ); box->AddChild( remove ); } mOwqTable->SetButtons( add, change, remove ); } v->AddChild( box ); } return v; }