summaryrefslogtreecommitdiff
path: root/sd/source/ui/toolpanel/TitleBar.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/toolpanel/TitleBar.cxx')
-rw-r--r--sd/source/ui/toolpanel/TitleBar.cxx581
1 files changed, 0 insertions, 581 deletions
diff --git a/sd/source/ui/toolpanel/TitleBar.cxx b/sd/source/ui/toolpanel/TitleBar.cxx
deleted file mode 100644
index 3515c0354..000000000
--- a/sd/source/ui/toolpanel/TitleBar.cxx
+++ /dev/null
@@ -1,581 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sd.hxx"
-
-#include "taskpane/TitleBar.hxx"
-
-#include "ControlContainerDescriptor.hxx"
-#include "tools/IconCache.hxx"
-#include "AccessibleTreeNode.hxx"
-#include <vcl/decoview.hxx>
-#include <vcl/window.hxx>
-#include <vcl/virdev.hxx>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include "sdresid.hxx"
-#include <vcl/bitmap.hxx>
-#include <vcl/lineinfo.hxx>
-#include <vcl/bitmapex.hxx>
-#include <tools/color.hxx>
-#include <svx/xdash.hxx>
-#include <svl/itemset.hxx>
-#include <svx/xlndsit.hxx>
-#include <svx/xlineit0.hxx>
-#include <svx/svdobj.hxx>
-#include <svx/svdpool.hxx>
-#include <svtools/colorcfg.hxx>
-#include <svx/xlnclit.hxx>
-#include <svx/xfillit0.hxx>
-#include "res_bmp.hrc"
-
-
-namespace sd { namespace toolpanel {
-
-const int TitleBar::snIndentationWidth = 16;
-
-TitleBar::TitleBar ( ::Window* pParent, const String& rsTitle, TitleBarType eType, bool bIsExpandable)
-: ::Window (pParent, WB_TABSTOP)
-, TreeNode(this)
-, meType(eType)
-, msTitle(rsTitle)
-, mbExpanded(false)
-, mbFocused(false)
-, mpDevice(new VirtualDevice (*this))
-, mbIsExpandable (bIsExpandable)
-{
- EnableMapMode (sal_False);
-
- SetBackground (Wallpaper());
-
- // Change the mouse pointer shape so that it acts as a mouse over effect.
- switch (meType)
- {
- case TBT_SUB_CONTROL_HEADLINE:
- if (mbIsExpandable)
- SetPointer (POINTER_REFHAND);
- break;
- }
-}
-
-
-
-
-TitleBar::~TitleBar (void)
-{
-}
-
-
-
-
-Size TitleBar::GetPreferredSize (void)
-{
- int nWidth = GetOutputSizePixel().Width();
- Rectangle aTitleBarBox (
- CalculateTitleBarBox(
- CalculateTextBoundingBox(nWidth, true),
- nWidth));
-
- return aTitleBarBox.GetSize();
-}
-
-
-
-
-sal_Int32 TitleBar::GetPreferredWidth (sal_Int32 )
-{
- Rectangle aTitleBarBox (
- CalculateTitleBarBox(
- CalculateTextBoundingBox(0, true),
- 0));
- return aTitleBarBox.GetWidth();
-}
-
-
-
-
-sal_Int32 TitleBar::GetPreferredHeight (sal_Int32 nWidth)
-{
- Rectangle aTitleBarBox (
- CalculateTitleBarBox(
- CalculateTextBoundingBox(nWidth, true),
- nWidth));
-
- return aTitleBarBox.GetHeight();
-}
-
-
-
-
-bool TitleBar::IsResizable (void)
-{
- return true;
-}
-
-
-
-
-::Window* TitleBar::GetWindow (void)
-{
- return this;
-}
-
-
-
-
-sal_Int32 TitleBar::GetMinimumWidth (void)
-{
- return 20;
-}
-
-
-
-
-void TitleBar::Paint (const Rectangle& rBoundingBox)
-{
- mpDevice->SetMapMode(GetMapMode());
- mpDevice->SetOutputSize (GetOutputSizePixel());
- mpDevice->SetSettings(GetSettings());
- mpDevice->SetDrawMode(GetDrawMode());
-
- switch (meType)
- {
- case TBT_SUB_CONTROL_HEADLINE:
- PaintSubPanelHeadLineBar ();
- break;
- }
-
- DrawOutDev (
- Point(0,0),
- GetOutputSizePixel(),
- Point(0,0),
- GetOutputSizePixel(),
- *mpDevice);
-
- ::Window::Paint (rBoundingBox);
-}
-
-
-
-
-bool TitleBar::Expand (bool bFlag)
-{
- bool bExpansionStateChanged (bFlag!=IsExpanded());
- mbExpanded = bFlag;
- Invalidate ();
- return bExpansionStateChanged;
-}
-
-
-
-
-bool TitleBar::IsExpanded (void) const
-{
- return mbExpanded;
-}
-
-
-void TitleBar::SetEnabledState(bool bFlag)
-{
- if(bFlag)
- Enable();
- else
- Disable();
- Invalidate ();
-}
-
-
-
-
-void TitleBar::GetFocus()
-{
- mbFocused = true;
- Invalidate();
-}
-
-
-
-
-void TitleBar::LoseFocus()
-{
- mbFocused = false;
- Invalidate();
-}
-
-
-
-
-bool TitleBar::HasExpansionIndicator (void) const
-{
- bool bHasExpansionIndicator (false);
- if (mbIsExpandable)
- {
- switch (meType)
- {
- case TBT_SUB_CONTROL_HEADLINE:
- bHasExpansionIndicator = true;
- break;
- }
- }
- return bHasExpansionIndicator;
-}
-
-
-
-
-Image TitleBar::GetExpansionIndicator (void) const
-{
- Image aIndicator;
- if (mbIsExpandable)
- {
- sal_uInt16 nResourceId = 0;
- switch (meType)
- {
- case TBT_SUB_CONTROL_HEADLINE:
- if (mbExpanded)
- nResourceId = BMP_COLLAPSE;
- else
- nResourceId = BMP_EXPAND;
-
- aIndicator = IconCache::Instance().GetIcon(nResourceId);
- break;
- }
- }
-
- return aIndicator;
-}
-
-
-
-
-void TitleBar::PaintSubPanelHeadLineBar (void)
-{
- int nWidth (GetOutputSizePixel().Width());
- Rectangle aTextBox (CalculateTextBoundingBox (nWidth, true));
-
- Rectangle aTitleBarBox (CalculateTitleBarBox(aTextBox, nWidth));
- int nVerticalOffset = -aTitleBarBox.Top();
- aTitleBarBox.Top() += nVerticalOffset;
- aTitleBarBox.Bottom() += nVerticalOffset;
- aTextBox.Top() += nVerticalOffset;
- aTextBox.Bottom() += nVerticalOffset;
-
- PaintBackground (aTitleBarBox);
- Rectangle aFocusBox (PaintExpansionIndicator (aTextBox));
- PaintText (aTextBox);
-
- aFocusBox.Union (aTextBox);
- aFocusBox.Left() -= 2;
- aFocusBox.Right() += 1;
- PaintFocusIndicator (aFocusBox);
-}
-
-
-
-
-void TitleBar::PaintFocusIndicator (const Rectangle& rTextBox)
-{
- if (mbFocused)
- {
- Rectangle aTextPixelBox (mpDevice->LogicToPixel (rTextBox));
- mpDevice->EnableMapMode (sal_False);
- Rectangle aBox (rTextBox);
- aBox.Top() -= 1;
- aBox.Bottom() += 1;
-
- mpDevice->SetFillColor ();
-
- mpDevice->DrawRect (aTextPixelBox);
-
- LineInfo aDottedStyle (LINE_DASH);
- aDottedStyle.SetDashCount (0);
- aDottedStyle.SetDotCount (1);
- aDottedStyle.SetDotLen (1);
- aDottedStyle.SetDistance (1);
-
- mpDevice->SetLineColor (COL_BLACK);
- mpDevice->DrawPolyLine (Polygon(aTextPixelBox), aDottedStyle);
- mpDevice->EnableMapMode (sal_False);
- }
- else
- HideFocus ();
-}
-
-
-
-
-Rectangle TitleBar::PaintExpansionIndicator (const Rectangle& rTextBox)
-{
- Rectangle aExpansionIndicatorArea;
-
- if (HasExpansionIndicator())
- {
- Image aImage = GetExpansionIndicator();
- int nHeight (aImage.GetSizePixel().Height());
- if (nHeight > 0)
- {
- Point aPosition (
- 0,
- rTextBox.Top() + (GetTextHeight() - nHeight) / 2);
- if (meType == TBT_SUB_CONTROL_HEADLINE)
- aPosition.X() += 3;
- mpDevice->DrawImage (aPosition, aImage);
-
- aExpansionIndicatorArea = Rectangle (
- aPosition, aImage.GetSizePixel());
- }
- }
-
- return aExpansionIndicatorArea;
-}
-
-
-
-
-void TitleBar::PaintText (const Rectangle& rTextBox)
-{
- mpDevice->DrawText (rTextBox, msTitle, GetTextStyle());
-}
-
-
-
-
-sal_uInt16 TitleBar::GetTextStyle (void)
-{
- if(IsEnabled())
- {
- return TEXT_DRAW_LEFT
- | TEXT_DRAW_TOP
- | TEXT_DRAW_MULTILINE
- | TEXT_DRAW_WORDBREAK;
- }
- else
- {
- return TEXT_DRAW_DISABLE;
- }
-}
-
-
-
-void TitleBar::PaintBackground (const Rectangle& rTitleBarBox)
-{
- // Fill a slightly rounded rectangle.
- Color aFillColor (GetFillColor());
- Color aLineColor (GetLineColor());
-
- switch (meType)
- {
- case TBT_SUB_CONTROL_HEADLINE:
- {
- Color aColor (GetSettings().GetStyleSettings().GetDialogColor());
- if (mbExpanded)
- {
- // Make the color a little bit darker.
- aColor.SetRed(sal_uInt8(((sal_uInt16)aColor.GetRed()) * 8 / 10));
- aColor.SetGreen(sal_uInt8(((sal_uInt16)aColor.GetGreen()) * 8 / 10));
- aColor.SetBlue(sal_uInt8(((sal_uInt16)aColor.GetBlue()) * 8 / 10));
- }
-
- mpDevice->SetFillColor (aColor);
- mpDevice->SetLineColor ();
- mpDevice->DrawRect (rTitleBarBox);
-
- // Erase the four corner pixels to make the rectangle appear
- // rounded.
- mpDevice->SetLineColor (
- GetSettings().GetStyleSettings().GetWindowColor());
- mpDevice->DrawPixel (
- rTitleBarBox.TopLeft());
- mpDevice->DrawPixel (
- Point(rTitleBarBox.Right(), rTitleBarBox.Top()));
- mpDevice->DrawPixel (
- Point(rTitleBarBox.Left(), rTitleBarBox.Bottom()));
- mpDevice->DrawPixel (
- Point(rTitleBarBox.Right(), rTitleBarBox.Bottom()));
- }
- break;
- }
-}
-
-
-
-
-Rectangle TitleBar::CalculateTextBoundingBox (
- int nAvailableWidth,
- bool bEmphasizeExpanded)
-{
- // Show the title of expanded controls in bold font.
- const Font& rOriginalFont (GetFont());
- Font aFont (rOriginalFont);
- if (bEmphasizeExpanded && mbExpanded)
- aFont.SetWeight (WEIGHT_BOLD);
- else
- aFont.SetWeight (WEIGHT_NORMAL);
- mpDevice->SetFont (aFont);
-
- // Use the natural width of the text when no width is given.
- if (nAvailableWidth == 0)
- nAvailableWidth = GetTextWidth (msTitle);
-
- Rectangle aTextBox (
- Point(0,0),
- Size (nAvailableWidth,
- GetSettings().GetStyleSettings().GetTitleHeight()));
- aTextBox.Top() += (aTextBox.GetHeight() - GetTextHeight()) / 2;
- if (HasExpansionIndicator())
- aTextBox.Left() += snIndentationWidth;
- else
- aTextBox.Left() += 3;
- aTextBox.Right() -= 1;
-
- aTextBox = mpDevice->GetTextRect (aTextBox, msTitle, GetTextStyle());
-
- return aTextBox;
-}
-
-
-
-
-Rectangle TitleBar::CalculateTitleBarBox (
- const Rectangle& rTextBox,
- int nWidth)
-{
- Rectangle aTitleBarBox (rTextBox);
-
- switch (meType)
- {
- case TBT_SUB_CONTROL_HEADLINE:
- aTitleBarBox.Top() -= 3;
- aTitleBarBox.Bottom() += 3;
- break;
-
- }
- aTitleBarBox.Left() = 0;
- if (aTitleBarBox.GetWidth() < nWidth)
- aTitleBarBox.Right() = nWidth-1;
-
- return aTitleBarBox;
-}
-
-
-
-
-void TitleBar::MouseMove (const MouseEvent& )
-{
-}
-
-
-
-
-void TitleBar::MouseButtonDown (const MouseEvent& )
-{
- // Do not forward to parent window so that the mouse button handler of
- // the docking window is not invoked.
-}
-
-
-
-
-void TitleBar::MouseButtonUp (const MouseEvent& )
-{
- // Do not forward to parent window so that the mouse button handler of
- // the docking window is not invoked.
-}
-
-
-
-
-void TitleBar::DataChanged (const DataChangedEvent& rEvent)
-{
- ::Window::DataChanged (rEvent);
-
- switch (rEvent.GetType())
- {
- case DATACHANGED_SETTINGS:
- if ((rEvent.GetFlags() & SETTINGS_STYLE) == 0)
- break;
- SetSettings(Application::GetSettings());
- mpDevice.reset(new VirtualDevice (*this));
-
- // fall through.
-
- case DATACHANGED_FONTS:
- case DATACHANGED_FONTSUBSTITUTION:
- {
- const StyleSettings& rStyleSettings (GetSettings().GetStyleSettings());
-
- // Font.
- Font aFont = rStyleSettings.GetAppFont();
- if (IsControlFont())
- aFont.Merge(GetControlFont());
- SetZoomedPointFont(aFont);
-
- // Color.
- Color aColor;
- if (IsControlForeground())
- aColor = GetControlForeground();
- else
- aColor = rStyleSettings.GetButtonTextColor();
- SetTextColor(aColor);
- SetTextFillColor();
-
- Resize();
- Invalidate();
- }
- break;
- }
-}
-
-
-
-
-String TitleBar::GetTitle (void) const
-{
- return msTitle;
-}
-
-
-
-
-::com::sun::star::uno::Reference<
- ::com::sun::star::accessibility::XAccessible > TitleBar::CreateAccessibleObject (
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::accessibility::XAccessible>& )
-{
- return new ::accessibility::AccessibleTreeNode(
- *this,
- GetTitle(),
- GetTitle(),
- ::com::sun::star::accessibility::AccessibleRole::LABEL);
-}
-
-
-} } // end of namespace ::sd::toolpanel
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */