summaryrefslogtreecommitdiff
path: root/sd/source/ui/dlg/PaneDockingWindow.cxx
diff options
context:
space:
mode:
authorChristian Lippka <christian.lippka@sun.com>2010-06-14 18:49:32 +0200
committerChristian Lippka <christian.lippka@sun.com>2010-06-14 18:49:32 +0200
commitdefcfcf416a0d25c104e8f492e14049814db51e2 (patch)
tree9ab15168771fa958b32a58b4656041343b9b7732 /sd/source/ui/dlg/PaneDockingWindow.cxx
parentf3b2db1efb379596f0269e439a35b5575b616b2c (diff)
parentf7a274b959bef49abf7f3ff45137d03c041f4a6d (diff)
cws impress190: rebase m82
Diffstat (limited to 'sd/source/ui/dlg/PaneDockingWindow.cxx')
-rwxr-xr-xsd/source/ui/dlg/PaneDockingWindow.cxx229
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)