void JXDocktab::Draw ( JXWindowPainter& p, const JRect& rect ) { const JColormap* cmap = p.GetColormap(); // drag region JXWindow* w = GetWindow(); JXWindow* focusWindow; JXDockWidget* dock; if (w->GetDockWidget(&dock) && (dock->GetDockDirector())->GetFocusWindow(&focusWindow) && focusWindow == w) { p.SetPenColor(itsFocusColor); p.SetFilling(kJTrue); p.JPainter::Rect(rect); p.SetPenColor((GetColormap())->GetBlackColor()); p.SetFilling(kJFalse); p.SetPenColor(cmap->GetWhiteColor()); } else { p.SetPenColor(cmap->GetGrayColor(60)); } const JRect ap = GetAperture(); const JCoordinate y1 = ap.top + 1; const JCoordinate y2 = ap.bottom - 2; p.Line(3, y1, 3, y2); p.Line(5, y1, 5, y2); }
void JXDocktab::HandleActionMenu ( const JIndex index ) { JXDockManager* dockMgr; if (!JXGetDockManager(&dockMgr)) { return; } if (index == kUndockCmd) { (GetWindow())->Undock(); } else if (index == kUndockAllCompartmentCmd) { JXDockWidget* dock; if ((GetWindow())->GetDockWidget(&dock)) { dock->UndockAll(); } } else if (index == kUndockAllDockCmd) { JXWindow* w; if ((GetWindow())->GetDockWindow(&w)) { w->UndockAllChildWindows(); } } else if (index == kUndockAllCmd) { (GetDisplay())->UndockAllWindows(); } else if (index == kUpdateWindowTypeMapCmd) { JXWindow* w = GetWindow(); const JCharacter* type; if (w->GetWindowType(&type)) { JXDockWidget* dock; w->GetDockWidget(&dock); (JXGetDockManager())->SetDefaultDock(type, w->IsDocked() ? dock : NULL); } } else if (index == kCreateDockHorizCmd) { dockMgr->CreateDock(kJTrue); } else if (index == kCreateDockVertCmd) { dockMgr->CreateDock(kJFalse); } else if (index == kDockAllDefConfigCmd) { dockMgr->DockAll(); } else if (index >= kShowFirstDockCmd) { JPtrArray<JXDockDirector>* dockList = dockMgr->GetDockList(); const JIndex i = index - kShowFirstDockCmd + 1; if (dockList->IndexValid(i)) // paranoia { (dockList->NthElement(i))->Activate(); } } }