Пример #1
0
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();
}
Пример #2
0
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();
}
Пример #3
0
void
ModulesView::AllAttached()
{
	PopulateScreenSaverList();
	fScreenSaversListView->Invoke();
}