diff options
author | Christian Lippka <christian.lippka@sun.com> | 2010-06-14 18:49:32 +0200 |
---|---|---|
committer | Christian Lippka <christian.lippka@sun.com> | 2010-06-14 18:49:32 +0200 |
commit | defcfcf416a0d25c104e8f492e14049814db51e2 (patch) | |
tree | 9ab15168771fa958b32a58b4656041343b9b7732 /sd/source/ui/dlg/PaneDockingWindow.cxx | |
parent | f3b2db1efb379596f0269e439a35b5575b616b2c (diff) | |
parent | f7a274b959bef49abf7f3ff45137d03c041f4a6d (diff) |
cws impress190: rebase m82
Diffstat (limited to 'sd/source/ui/dlg/PaneDockingWindow.cxx')
-rwxr-xr-x | sd/source/ui/dlg/PaneDockingWindow.cxx | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/sd/source/ui/dlg/PaneDockingWindow.cxx b/sd/source/ui/dlg/PaneDockingWindow.cxx index c1dedd5d8293..8bcba545f739 100755 --- a/sd/source/ui/dlg/PaneDockingWindow.cxx +++ b/sd/source/ui/dlg/PaneDockingWindow.cxx @@ -57,6 +57,235 @@ PaneDockingWindow::~PaneDockingWindow (void) { } +<<<<<<< local +======= + + + +void PaneDockingWindow::Resize (void) +{ + SfxDockingWindow::Resize(); + mbIsLayoutPending = true; +} + + + + +void PaneDockingWindow::Layout (void) +{ + mbIsLayoutPending = false; + + Size aWindowSize (GetOutputSizePixel()); + Size aToolBoxSize (0,0); + int nTitleBarHeight (GetSettings().GetStyleSettings().GetTitleHeight()); + + // Place the title tool box. + if (mpTitleToolBox.get() != NULL) + { + if (IsFloatingMode()) + mpTitleToolBox->HideItem (1); + else + mpTitleToolBox->ShowItem (1); + + aToolBoxSize = mpTitleToolBox->CalcWindowSizePixel(); + if (aToolBoxSize.Height() > nTitleBarHeight) + nTitleBarHeight = aToolBoxSize.Height(); + mpTitleToolBox->SetPosSizePixel ( + Point(aWindowSize.Width()-aToolBoxSize.Width(), + (nTitleBarHeight-aToolBoxSize.Height())/2), + aToolBoxSize); + } + + // Place the content window. + if (nTitleBarHeight < aToolBoxSize.Height()) + nTitleBarHeight = aToolBoxSize.Height(); + aWindowSize.Height() -= nTitleBarHeight; + mpContentWindow->SetPosSizePixel( + Point(maBorder.Left(),nTitleBarHeight+maBorder.Top()), + Size (aWindowSize.Width()-maBorder.Left()-maBorder.Right(), + aWindowSize.Height()-maBorder.Top()-maBorder.Bottom())); +} + + + + +void PaneDockingWindow::Paint (const Rectangle& rRectangle) +{ + if (mbIsLayoutPending) + Layout(); + + SfxDockingWindow::Paint (rRectangle); + int nTitleBarHeight (GetSettings().GetStyleSettings().GetTitleHeight()); + Size aToolBoxSize = mpTitleToolBox->CalcWindowSizePixel(); + if (aToolBoxSize.Height() > nTitleBarHeight) + nTitleBarHeight = aToolBoxSize.Height(); + Color aOriginalLineColor (GetLineColor()); + Color aOriginalFillColor (GetFillColor()); + SetFillColor (GetSettings().GetStyleSettings().GetDialogColor()); + SetLineColor (); + + // Make font bold. + const Font& rOriginalFont (GetFont()); + Font aFont (rOriginalFont); + aFont.SetWeight (WEIGHT_BOLD); + SetFont (aFont); + + // Set border values. + Size aWindowSize (GetOutputSizePixel()); + int nOuterLeft = 0; + int nInnerLeft = nOuterLeft + maBorder.Left() - 1; + int nOuterRight = aWindowSize.Width() - 1; + int nInnerRight = nOuterRight - maBorder.Right() + 1; + int nInnerTop = nTitleBarHeight + maBorder.Top() - 1; + int nOuterBottom = aWindowSize.Height() - 1; + int nInnerBottom = nOuterBottom - maBorder.Bottom() + 1; + + // Paint title bar background. + Rectangle aTitleBarBox (Rectangle( + nOuterLeft, + 0, + nOuterRight, + nInnerTop-1)); + DrawRect (aTitleBarBox); + + if (nInnerLeft > nOuterLeft) + DrawRect ( + Rectangle (nOuterLeft, nInnerTop, nInnerLeft, nInnerBottom)); + if (nOuterRight > nInnerRight) + DrawRect ( + Rectangle (nInnerRight, nInnerTop, nOuterRight, nInnerBottom)); + if (nInnerBottom < nOuterBottom) + DrawRect ( + Rectangle (nOuterLeft, nInnerBottom, nOuterRight, nOuterBottom)); + + // Paint bevel border. + SetFillColor (); + SetLineColor (GetSettings().GetStyleSettings().GetShadowColor()); + if (maBorder.Top() > 0) + DrawLine ( + Point(nInnerLeft,nInnerTop), + Point(nInnerLeft,nInnerBottom)); + if (maBorder.Left() > 0) + DrawLine ( + Point(nInnerLeft,nInnerTop), + Point(nInnerRight,nInnerTop)); + SetLineColor (GetSettings().GetStyleSettings().GetLightColor()); + if (maBorder.Bottom() > 0) + DrawLine ( + Point(nInnerRight,nInnerBottom), + Point(nInnerLeft,nInnerBottom)); + if (maBorder.Right() > 0) + DrawLine ( + Point(nInnerRight,nInnerBottom), + Point(nInnerRight,nInnerTop)); + + // Paint title bar text. + SetLineColor (GetSettings().GetStyleSettings().GetActiveTextColor()); + SetFillColor (); + aTitleBarBox.Left() += 3; + DrawText (aTitleBarBox, msTitle, + TEXT_DRAW_LEFT + | TEXT_DRAW_VCENTER + | TEXT_DRAW_MULTILINE + | TEXT_DRAW_WORDBREAK); + + // Restore original values of the output device. + SetFont (rOriginalFont); + SetFillColor (aOriginalFillColor); +} + + + + +void PaneDockingWindow::InitializeTitleToolBox (void) +{ + if (mpTitleToolBox.get() == NULL) + { + // Initialize the title tool box. + mpTitleToolBox.reset (new ToolBox(this)); + mpTitleToolBox->SetSelectHdl ( + LINK(this, PaneDockingWindow, ToolboxSelectHandler)); + mpTitleToolBox->SetOutStyle (TOOLBOX_STYLE_FLAT); + mpTitleToolBox->SetBackground (Wallpaper ( + GetSettings().GetStyleSettings().GetDialogColor())); + mpTitleToolBox->Show(); + } + else + mpTitleToolBox->Clear(); + + // Get the closer bitmap and set it as right most button. + Bitmap aBitmap (SdResId (BMP_CLOSE_DOC)); + Bitmap aBitmapHC (SdResId (BMP_CLOSE_DOC_H)); + Image aImage = Image (aBitmap, Color (COL_LIGHTMAGENTA)); + Image aImageHC = Image (aBitmapHC, Color (BMP_COLOR_HIGHCONTRAST)); + mpTitleToolBox->InsertItem (1, + GetSettings().GetStyleSettings().GetHighContrastMode() + ? aImageHC + : aImage); + mpTitleToolBox->ShowItem (1); +} + + + + +USHORT PaneDockingWindow::AddMenu ( + const String& rsMenuName, + ULONG nHelpId, + const Link& rCallback) +{ + // Add the menu before the closer button. + USHORT nItemCount (mpTitleToolBox->GetItemCount()); + USHORT nItemId (nItemCount+1); + mpTitleToolBox->InsertItem ( + nItemId, + rsMenuName, + TIB_DROPDOWNONLY, + nItemCount>0 ? nItemCount-1 : (USHORT)-1); + mpTitleToolBox->SetHelpId( nItemId, nHelpId ); + mpTitleToolBox->SetClickHdl (rCallback); + mpTitleToolBox->SetDropdownClickHdl (rCallback); + + // The tool box has likely changed its size. The title bar has to be + // resized. + Resize(); + Invalidate(); + + return nItemCount+1; +} + + + + +IMPL_LINK(PaneDockingWindow, ToolboxSelectHandler, ToolBox*, pToolBox) +{ + USHORT nId = pToolBox->GetCurItemId(); + + if (nId == 1) + { + EndTracking(); + SfxBoolItem aVisibility (mnChildWindowId, FALSE); + GetBindings().GetDispatcher()->Execute ( + mnChildWindowId, + SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD, + &aVisibility, + NULL); + } + + return 0; +} + + + + +long PaneDockingWindow::Notify( NotifyEvent& rNEvt ) +{ + return SfxDockingWindow::Notify (rNEvt); +} + + + + +>>>>>>> other void PaneDockingWindow::StateChanged( StateChangedType nType ) { switch (nType) |