ModulesView::ModulesView(BRect rect, const char* name, ScreenSaverSettings& settings) : BView(rect, name, B_FOLLOW_ALL, B_WILL_DRAW), fSettings(settings), fSaverRunner(NULL), fSettingsView(NULL), fScreenSaverTestTeam(-1) { SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fTestButton = new BButton(rect, "TestButton", B_TRANSLATE("Test"), new BMessage(kMsgTestSaver), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM); float width, height; fTestButton->GetPreferredSize(&width, &height); fTestButton->ResizeTo(width + 16, height); fTestButton->MoveTo(8, rect.bottom - 8 - height); AddChild(fTestButton); rect = fTestButton->Frame(); rect.OffsetBy(fTestButton->Bounds().Width() + 8, 0); fAddButton = new BButton(rect, "AddButton", B_TRANSLATE("Add" B_UTF8_ELLIPSIS), new BMessage(kMsgAddSaver), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM); AddChild(fAddButton); rect = Bounds().InsetByCopy(8 + kPreviewMonitorGap, 12); rect.right = fAddButton->Frame().right - kPreviewMonitorGap; rect.bottom = rect.top + 3 * rect.Width() / 4; // 4:3 monitor fPreviewView = new PreviewView(rect, "preview"); AddChild(fPreviewView); rect.left = 8; rect.right -= B_V_SCROLL_BAR_WIDTH + 2 - kPreviewMonitorGap; // scroll view border rect.top = rect.bottom + 14; rect.bottom = fTestButton->Frame().top - 10; fListView = new BListView(rect, "SaversListView", B_SINGLE_SELECTION_LIST, B_FOLLOW_LEFT | B_FOLLOW_TOP_BOTTOM); fListView->SetSelectionMessage(new BMessage(kMsgSaverSelected)); AddChild(new BScrollView("scroll_list", fListView, B_FOLLOW_LEFT | B_FOLLOW_TOP_BOTTOM, 0, false, true)); rect = Bounds().InsetByCopy(8, 8); rect.left = fAddButton->Frame().right + 8; AddChild(fSettingsBox = new BBox(rect, "SettingsBox", B_FOLLOW_ALL, B_WILL_DRAW)); fSettingsBox->SetLabel(B_TRANSLATE("Screensaver settings")); PopulateScreenSaverList(); fFilePanel = new BFilePanel(); }
ModulesView::ModulesView(const char* name, ScreenSaverSettings& settings) : BView(name, B_WILL_DRAW), fSettings(settings), fSaverRunner(NULL), fSettingsView(NULL), fScreenSaverTestTeam(-1) { SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fTestButton = new BButton("TestButton", B_TRANSLATE("Test"), new BMessage(kMsgTestSaver)); fAddButton = new BButton("AddButton", B_TRANSLATE("Add" B_UTF8_ELLIPSIS), new BMessage(kMsgAddSaver)); fPreviewView = new PreviewView("preview"); fScreenSaversListView = new BListView("SaversListView", B_SINGLE_SELECTION_LIST); fScreenSaversListView->SetSelectionMessage( new BMessage(kMsgSaverSelected)); BScrollView* saversListScrollView = new BScrollView("scroll_list", fScreenSaversListView, 0, false, true); fSettingsBox = new BBox("SettingsBox"); fSettingsBox->SetLabel(B_TRANSLATE("Screensaver settings")); fFilePanel = new BFilePanel(); BLayoutBuilder::Group<>(this, B_HORIZONTAL) .SetInsets(B_USE_DEFAULT_SPACING) .AddGroup(B_VERTICAL) .Add(fPreviewView) .Add(saversListScrollView) .AddGroup(B_HORIZONTAL) .Add(fTestButton) .Add(fAddButton) .End() .End() .Add(fSettingsBox) .End(); PopulateScreenSaverList(); }
void ModulesView::AllAttached() { PopulateScreenSaverList(); fScreenSaversListView->Invoke(); }