void CharismaWindow::Minimize(bool minimize) { const float margin=4.0f; BRect r; // en réalité, minimize est ignoré if(!isminim){ menubar->Hide(); setupview->MoveTo(B_ORIGIN); modemenu->MoveTo(margin,margin); r=modemenu->Frame(); ResizeTo(r.right+margin,r.bottom+margin); SetLook(B_MODAL_WINDOW_LOOK); isminim=1; }else{ menubar->Show(); setupview->MoveTo(0,menubar->Frame().bottom); modemenu->MoveTo(10.0f,10.0f); r=setupview->Frame(); ResizeTo(r.right,r.bottom); SetLook(B_TITLED_WINDOW_LOOK); isminim=0; } }
void DocInfoWindow::_SetupDocInfoView(BBox* panel) { BRect bounds(panel->Bounds()); #if HAVE_FULLVERSION_PDF_LIB bounds.InsetBy(10.0, 10.0); #endif // add list of keys fKeyList = new BMenu("Delete Key"); BMenuField *menu = new BMenuField(bounds, "delete", "", fKeyList, B_FOLLOW_BOTTOM); panel->AddChild(menu); menu->SetDivider(0); #ifdef __HAIKU__ menu->ResizeToPreferred(); menu->MoveTo(bounds.left, bounds.bottom - menu->Bounds().Height()); #else menu->ResizeTo(menu->StringWidth("Delete Key") + 15.0, 25.0); menu->MoveTo(bounds.left, bounds.bottom - 25.0); #endif const char* title[6] = { "Title", "Author", "Subject", "Keywords", "Creator", NULL }; // PDFlib sets these: "Producer", "CreationDate", not "ModDate" BMenu* defaultKeys = new BMenu("Default Keys"); for (int32 i = 0; title[i] != NULL; ++i) defaultKeys->AddItem(new BMenuItem(title[i], new BMessage(DEFAULT_KEY_MSG))); BRect frame(menu->Frame()); menu = new BMenuField(frame, "add", "", defaultKeys, B_FOLLOW_BOTTOM); panel->AddChild(menu); menu->SetDivider(0); #ifdef __HAIKU__ menu->ResizeToPreferred(); menu->MoveBy(frame.Width() + 10.0, 0.0); #else menu->ResizeTo(menu->StringWidth("Default Keys") + 15.0, 25.0); menu->MoveBy(menu->Bounds().Width() + 10.0, 0.0); #endif frame = menu->Frame(); frame.left = frame.right + 10.0; frame.right = bounds.right; BTextControl *add = new BTextControl(frame, "add", "Add Key:", "", new BMessage(ADD_KEY_MSG), B_FOLLOW_LEFT_RIGHT | B_FOLLOW_BOTTOM); panel->AddChild(add); float width, height; add->GetPreferredSize(&width, &height); add->ResizeTo(bounds.right - frame.left, height); add->SetDivider(be_plain_font->StringWidth("Add Key: ")); bounds.bottom = frame.top - 10.0; bounds.right -= B_V_SCROLL_BAR_WIDTH; bounds.InsetBy(2.0, 2.0); fTable = new BView(bounds, "table", B_FOLLOW_ALL, B_WILL_DRAW); fTable->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fTableScrollView = new BScrollView("scroll_table", fTable, B_FOLLOW_ALL, 0, false, true); panel->AddChild(fTableScrollView); BMessage docInfo; fDocInfo->FindMessage("doc_info", &docInfo); // fill table _BuildTable(docInfo); }