MusicCollectionWindow::MusicCollectionWindow(BRect frame, const char* title) : BWindow(frame, title, B_DOCUMENT_WINDOW, B_AVOID_FRONT) { BView* rootView = new BView(Bounds(), NULL, B_FOLLOW_ALL, B_WILL_DRAW); AddChild(rootView); rootView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fQueryField = new BTextControl("Search: ", "", NULL); fQueryField->SetExplicitAlignment(BAlignment(B_ALIGN_HORIZONTAL_CENTER, B_ALIGN_USE_FULL_HEIGHT)); fQueryField->SetModificationMessage(new BMessage(kMsgQueryInput)); fCountView = new BStringView("Count View", "Count:"); fFileListView = new MusicFileListView("File List View"); fFileListView->SetInvocationMessage(new BMessage(kMsgItemInvoked)); BScrollView* scrollView = new BScrollView("list scroll", fFileListView, 0, true, true, B_PLAIN_BORDER); float spacing = be_control_look->DefaultItemSpacing() / 2; BALMLayout* layout = new BALMLayout(spacing); layout->SetInset(spacing); rootView->SetLayout(layout); layout->AddView(fQueryField, layout->Left(), layout->Top()); layout->AddViewToRight(fCountView, layout->Right()); layout->AddView(scrollView, layout->Left(), layout->AreaFor(fQueryField)->Bottom(), layout->Right(), layout->Bottom()); Area* area = layout->AreaFor(scrollView); area->SetLeftInset(0); area->SetRightInset(0); area->SetBottomInset(0); BSize min = layout->MinSize(); BSize max = layout->MaxSize(); SetSizeLimits(min.Width(), max.Width(), min.Height(), max.Height()); fEntryViewInterface = new ListViewListener<FileListItem>(fFileListView, fCountView); fQueryHandler = new QueryHandler(fEntryViewInterface); AddHandler(fQueryHandler); fQueryReader = new QueryReader(fQueryHandler); fQueryHandler->SetReadThread(fQueryReader); // start initial query PostMessage(kMsgQueryInput); }
void DataTranslationsWindow::_SetupViews() { fConfigView = NULL; // This is NULL until a translator is // selected from the listview // Window box BView* mainView = new BView(Bounds(), "", B_FOLLOW_ALL, B_WILL_DRAW | B_FRAME_EVENTS); mainView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); AddChild(mainView); // Add the translators list view fTranslatorListView = new TranslatorListView(BRect(0, 0, 1, 1), "TransList", B_SINGLE_SELECTION_LIST); fTranslatorListView->SetSelectionMessage(new BMessage(kMsgSelectedTranslator)); BScrollView *scrollView = new BScrollView("scroll_trans", fTranslatorListView, B_FOLLOW_LEFT | B_FOLLOW_TOP_BOTTOM, B_WILL_DRAW | B_FRAME_EVENTS, false, true, B_FANCY_BORDER); // Box around the config and info panels fRightBox = new BBox("Right_Side"); // Add the translator icon view fIconView = new IconView(BRect(0, 0, 31, 31), "Icon", B_FOLLOW_LEFT | B_FOLLOW_BOTTOM, B_WILL_DRAW | B_FRAME_EVENTS); // Add the translator info button BButton *button = new BButton("STD", "Info" B_UTF8_ELLIPSIS, new BMessage(kMsgTranslatorInfo), B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE); // Add the translator name view fTranslatorNameView = new BStringView("TranName", "None"); // Populate the translators list view _PopulateListView(); // Build the layout BALMLayout *layout = new BALMLayout(); mainView->SetLayout(layout); XTab *x1 = layout->AddXTab(); XTab *x2 = layout->AddXTab(); XTab *x3 = layout->AddXTab(); YTab *y1 = layout->AddYTab(); Area *leftArea = layout->AddArea(layout->Left(), layout->Top(), x1, layout->Bottom(), scrollView); leftArea->SetLeftInset(10); leftArea->SetTopInset(10); leftArea->SetBottomInset(10); Area *rightArea = layout->AddArea(x1, layout->Top(), layout->Right(), y1, fRightBox); rightArea->SetLeftInset(10); rightArea->SetTopInset(10); rightArea->SetRightInset(10); rightArea->SetBottomInset(10); Area *iconArea = layout->AddArea(x1, y1, x2, layout->Bottom(), fIconView); iconArea->SetLeftInset(10); iconArea->SetBottomInset(10); Area *infoButtonArea = layout->AddArea(x3, y1, layout->Right(), layout->Bottom(), button); infoButtonArea->SetRightInset(10); infoButtonArea->SetBottomInset(10); layout->AddConstraint(3.0, x1, -1.0, layout->Right(), OperatorType(EQ), 0.0); fTranslatorListView->MakeFocus(); fTranslatorListView->Select(0); }