Files
loongoffice/include/vcl/button.hxx
Oliver-Rainer Wittmann d02f75a8c3 Resolves: #i121420# merge sidebar feature
(cherry picked from commit 0a0a9b32aa5bf1ce2554ad37cbba3c7a105db2b5)

Conflicts:
	chart2/source/controller/dialogs/dlg_View3D.cxx
	chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
	chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
	chart2/source/controller/drawinglayer/ViewElementListProvider.cxx
	chart2/source/controller/inc/ViewElementListProvider.hxx
	chart2/source/controller/inc/dlg_View3D.hxx
	chart2/source/controller/main/ShapeController.cxx
	chart2/source/inc/chartview/DrawModelWrapper.hxx
	chart2/source/view/main/DrawModelWrapper.cxx
	cui/source/inc/border.hxx
	cui/source/inc/cuitabarea.hxx
	cui/source/inc/cuitabline.hxx
	cui/source/inc/sdrcelldlg.hxx
	cui/source/inc/treeopt.hxx
	cui/source/options/optchart.cxx
	cui/source/options/optchart.hxx
	cui/source/options/optcolor.cxx
	cui/source/options/treeopt.cxx
	cui/source/tabpages/backgrnd.cxx
	cui/source/tabpages/border.cxx
	cui/source/tabpages/chardlg.cxx
	cui/source/tabpages/numpages.cxx
	cui/source/tabpages/tpcolor.cxx
	cui/source/tabpages/tplneend.cxx
	editeng/inc/editeng/outliner.hxx
	extensions/source/propctrlr/standardcontrol.cxx
	framework/source/register/registerservices.cxx
	offapi/com/sun/star/ui/makefile.mk
	officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
	officecfg/registry/data/org/openoffice/Office/UI/makefile.mk
	officecfg/registry/schema/org/openoffice/Office/UI/makefile.mk
	postprocess/packregistry/makefile.mk
	reportdesign/source/ui/dlg/Condition.cxx
	reportdesign/source/ui/misc/UITools.cxx
	sc/inc/document.hxx
	sc/inc/helpids.h
	sc/inc/sc.hrc
	sc/prj/build.lst
	sc/sdi/scalc.sdi
	sc/source/core/data/documen9.cxx
	sc/source/core/data/drwlayer.cxx
	sc/source/ui/app/scdll.cxx
	sc/source/ui/app/typemap.cxx
	sc/source/ui/dbgui/scendlg.cxx
	sc/source/ui/docshell/docsh2.cxx
	sc/source/ui/docshell/docsh4.cxx
	sc/source/ui/drawfunc/chartsh.cxx
	sc/source/ui/drawfunc/drawsh.cxx
	sc/source/ui/drawfunc/drawsh2.cxx
	sc/source/ui/drawfunc/drawsh4.cxx
	sc/source/ui/drawfunc/drformsh.cxx
	sc/source/ui/drawfunc/drtxtob.cxx
	sc/source/ui/drawfunc/drtxtob1.cxx
	sc/source/ui/drawfunc/drtxtob2.cxx
	sc/source/ui/drawfunc/graphsh.cxx
	sc/source/ui/drawfunc/oleobjsh.cxx
	sc/source/ui/inc/chartsh.hxx
	sc/source/ui/inc/formatsh.hxx
	sc/source/ui/miscdlgs/tabbgcolordlg.cxx
	sc/source/ui/navipi/navipi.cxx
	sc/source/ui/optdlg/opredlin.cxx
	sc/source/ui/optdlg/tpview.cxx
	sc/source/ui/sidebar/makefile.mk
	sc/source/ui/view/auditsh.cxx
	sc/source/ui/view/cellsh.cxx
	sc/source/ui/view/editsh.cxx
	sc/source/ui/view/formatsh.cxx
	sc/source/ui/view/pivotsh.cxx
	sc/source/ui/view/tabvwsh.cxx
	sc/util/makefile.mk
	sd/inc/sdabstdlg.hxx
	sd/prj/build.lst
	sd/sdi/ToolPanelViewShell.sdi
	sd/sdi/makefile.mk
	sd/source/ui/accessibility/makefile.mk
	sd/source/ui/animations/CustomAnimationDialog.cxx
	sd/source/ui/dlg/PaneChildWindows.cxx
	sd/source/ui/dlg/PaneShells.cxx
	sd/source/ui/dlg/copydlg.cxx
	sd/source/ui/dlg/navigatr.cxx
	sd/source/ui/dlg/sddlgfact.cxx
	sd/source/ui/dlg/sddlgfact.hxx
	sd/source/ui/docshell/docshel3.cxx
	sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx
	sd/source/ui/framework/factories/TaskPanelFactory.cxx
	sd/source/ui/framework/factories/TaskPanelFactory.hxx
	sd/source/ui/framework/factories/ViewShellWrapper.cxx
	sd/source/ui/framework/factories/makefile.mk
	sd/source/ui/framework/module/ImpressModule.cxx
	sd/source/ui/framework/module/ToolPanelModule.cxx
	sd/source/ui/framework/tools/FrameworkHelper.cxx
	sd/source/ui/func/fuolbull.cxx
	sd/source/ui/inc/DrawViewShell.hxx
	sd/source/ui/inc/PaneChildWindows.hxx
	sd/source/ui/inc/celltempl.hxx
	sd/source/ui/inc/copydlg.hxx
	sd/source/ui/inc/dlgpage.hxx
	sd/source/ui/inc/framework/FrameworkHelper.hxx
	sd/source/ui/inc/prltempl.hxx
	sd/source/ui/inc/tabtempl.hxx
	sd/source/ui/inc/taskpane/ILayoutableWindow.hxx
	sd/source/ui/inc/taskpane/PanelId.hxx
	sd/source/ui/inc/tpaction.hxx
	sd/source/ui/sidebar/AllMasterPagesSelector.cxx
	sd/source/ui/sidebar/AllMasterPagesSelector.hxx
	sd/source/ui/sidebar/CurrentMasterPagesSelector.cxx
	sd/source/ui/sidebar/CurrentMasterPagesSelector.hxx
	sd/source/ui/sidebar/DocumentHelper.cxx
	sd/source/ui/sidebar/DocumentHelper.hxx
	sd/source/ui/sidebar/LayoutMenu.cxx
	sd/source/ui/sidebar/LayoutMenu.hxx
	sd/source/ui/sidebar/MasterPageContainer.cxx
	sd/source/ui/sidebar/MasterPageContainer.hxx
	sd/source/ui/sidebar/MasterPageContainerFiller.cxx
	sd/source/ui/sidebar/MasterPageContainerFiller.hxx
	sd/source/ui/sidebar/MasterPageContainerProviders.cxx
	sd/source/ui/sidebar/MasterPageContainerProviders.hxx
	sd/source/ui/sidebar/MasterPageContainerQueue.cxx
	sd/source/ui/sidebar/MasterPageContainerQueue.hxx
	sd/source/ui/sidebar/MasterPageDescriptor.cxx
	sd/source/ui/sidebar/MasterPageDescriptor.hxx
	sd/source/ui/sidebar/MasterPageObserver.cxx
	sd/source/ui/sidebar/MasterPagesSelector.cxx
	sd/source/ui/sidebar/MasterPagesSelector.hxx
	sd/source/ui/sidebar/PreviewValueSet.cxx
	sd/source/ui/sidebar/PreviewValueSet.hxx
	sd/source/ui/sidebar/RecentMasterPagesSelector.cxx
	sd/source/ui/sidebar/RecentlyUsedMasterPages.cxx
	sd/source/ui/sidebar/SidebarShellManager.cxx
	sd/source/ui/sidebar/SlideTransitionPanel.hxx
	sd/source/ui/sidebar/makefile.mk
	sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx
	sd/source/ui/table/TableDesignPane.hxx
	sd/source/ui/toolpanel/ControlContainer.cxx
	sd/source/ui/toolpanel/ControlContainerDescriptor.hxx
	sd/source/ui/toolpanel/MethodGuard.hxx
	sd/source/ui/toolpanel/ScrollPanel.cxx
	sd/source/ui/toolpanel/SlideSorterCacheDisplay.cxx
	sd/source/ui/toolpanel/SubToolPanel.cxx
	sd/source/ui/toolpanel/TaskPaneFocusManager.cxx
	sd/source/ui/toolpanel/TaskPaneTreeNode.cxx
	sd/source/ui/toolpanel/TitleBar.cxx
	sd/source/ui/toolpanel/TitledControl.cxx
	sd/source/ui/toolpanel/ToolPanel.cxx
	sd/source/ui/toolpanel/ToolPanel.hxx
	sd/source/ui/toolpanel/ToolPanelFactory.cxx
	sd/source/ui/toolpanel/ToolPanelUIElement.cxx
	sd/source/ui/toolpanel/ToolPanelUIElement.hxx
	sd/source/ui/toolpanel/ToolPanelViewShell.cxx
	sd/source/ui/toolpanel/controls/CustomAnimationPanel.cxx
	sd/source/ui/toolpanel/controls/CustomAnimationPanel.hxx
	sd/source/ui/toolpanel/controls/MasterPagesPanel.cxx
	sd/source/ui/toolpanel/controls/MasterPagesPanel.hxx
	sd/source/ui/toolpanel/controls/SlideTransitionPanel.cxx
	sd/source/ui/toolpanel/controls/SlideTransitionPanel.hxx
	sd/source/ui/toolpanel/controls/TableDesignPanel.cxx
	sd/source/ui/toolpanel/controls/TableDesignPanel.hxx
	sd/source/ui/unoidl/UnoDocumentSettings.cxx
	sd/source/ui/view/ViewShellBase.cxx
	sd/source/ui/view/drtxtob.cxx
	sd/source/ui/view/drviews3.cxx
	sd/source/ui/view/drviews7.cxx
	sd/source/ui/view/drviewsa.cxx
	sd/source/ui/view/drviewsf.cxx
	sd/source/ui/view/outlnvsh.cxx
	sd/source/ui/view/sdview.cxx
	sd/source/ui/view/viewshel.cxx
	sd/uiconfig/sdraw/menubar/menubar.xml
	sd/util/makefile.mk
	sfx2/Package_inc.mk
	sfx2/inc/sfx2/sfx.hrc
	sfx2/inc/sfx2/sfxsids.hrc
	sfx2/source/control/bindings.cxx
	sfx2/source/dialog/templdlg.cxx
	sfx2/source/inc/templdgi.hxx
	svx/AllLangResTarget_svx.mk
	svx/Package_inc.mk
	svx/inc/svx/XPropertyTable.hxx
	svx/inc/svx/bmpmask.hxx
	svx/inc/svx/colrctrl.hxx
	svx/inc/svx/dialogs.hrc
	svx/inc/svx/dlgctrl.hxx
	svx/inc/svx/dlgutil.hxx
	svx/inc/svx/drawitem.hxx
	svx/inc/svx/fontwork.hxx
	svx/inc/svx/galbrws.hxx
	svx/inc/svx/sdr/table/tablecontroller.hxx
	svx/inc/svx/svdmodel.hxx
	svx/inc/svx/svdstr.hrc
	svx/inc/svx/svxids.hrc
	svx/inc/svx/svxitems.hrc
	svx/inc/svx/xattr.hxx
	svx/inc/svx/xflgrit.hxx
	svx/inc/svx/xflhtit.hxx
	svx/inc/svx/xit.hxx
	svx/inc/svx/xlineit.hxx
	svx/inc/svx/xlndsit.hxx
	svx/inc/svx/xlnedit.hxx
	svx/inc/svx/xlnstit.hxx
	svx/inc/svx/xtable.hxx
	svx/sdi/svx.sdi
	svx/source/dialog/_bmpmask.cxx
	svx/source/dialog/dialcontrol.cxx
	svx/source/dialog/dlgctrl.cxx
	svx/source/dialog/dlgutil.cxx
	svx/source/dialog/fontwork.cxx
	svx/source/gallery2/galbrws.cxx
	svx/source/gallery2/galbrws1.cxx
	svx/source/gallery2/gallery1.cxx
	svx/source/items/drawitem.cxx
	svx/source/items/svxitems.src
	svx/source/sdr/attribute/sdrformtextattribute.cxx
	svx/source/sidebar/ColorPanel.hxx
	svx/source/sidebar/EmptyPanel.hrc
	svx/source/sidebar/EmptyPanel.hxx
	svx/source/sidebar/gallery/GalleryPanel.hxx
	svx/source/svdraw/svdedtv1.cxx
	svx/source/svdraw/svdmodel.cxx
	svx/source/svdraw/svdogrp.cxx
	svx/source/svdraw/svdstr.src
	svx/source/tbxctrls/tbcontrl.cxx
	svx/source/unodraw/XPropertyTable.cxx
	svx/source/unodraw/unoctabl.cxx
	svx/source/xoutdev/XPropertyEntry.cxx
	svx/source/xoutdev/xattr.cxx
	svx/source/xoutdev/xattr2.cxx
	svx/source/xoutdev/xtabbtmp.cxx
	svx/source/xoutdev/xtabcolr.cxx
	svx/source/xoutdev/xtabdash.cxx
	svx/source/xoutdev/xtabgrdt.cxx
	svx/source/xoutdev/xtabhtch.cxx
	svx/source/xoutdev/xtable.cxx
	svx/source/xoutdev/xtablend.cxx
	svx/util/svx.component
	sw/inc/cmdid.h
	sw/inc/docsh.hxx
	sw/inc/editsh.hxx
	sw/inc/helpid.h
	sw/inc/rcid.hrc
	sw/inc/swabstdlg.hxx
	sw/inc/swcommands.h
	sw/sdi/swriter.sdi
	sw/source/core/doc/docdesc.cxx
	sw/source/core/draw/drawdoc.cxx
	sw/source/ui/app/docsh2.cxx
	sw/source/ui/app/docshdrw.cxx
	sw/source/ui/app/docshini.cxx
	sw/source/ui/app/docst.cxx
	sw/source/ui/config/optpage.cxx
	sw/source/ui/dialog/swdlgfact.cxx
	sw/source/ui/dialog/swdlgfact.hxx
	sw/source/ui/fmtui/tmpdlg.cxx
	sw/source/ui/inc/tmpdlg.hxx
	sw/source/ui/misc/pggrid.cxx
	sw/source/ui/shells/annotsh.cxx
	sw/source/ui/shells/basesh.cxx
	sw/source/ui/shells/beziersh.cxx
	sw/source/ui/shells/drawdlg.cxx
	sw/source/ui/shells/drawsh.cxx
	sw/source/ui/shells/drformsh.cxx
	sw/source/ui/shells/drwbassh.cxx
	sw/source/ui/shells/drwtxtex.cxx
	sw/source/ui/shells/drwtxtsh.cxx
	sw/source/ui/shells/frmsh.cxx
	sw/source/ui/shells/grfsh.cxx
	sw/source/ui/shells/olesh.cxx
	sw/source/ui/shells/tabsh.cxx
	sw/source/ui/shells/textsh.cxx
	sw/source/ui/shells/textsh1.cxx
	sw/source/ui/shells/txtnum.cxx
	sw/source/ui/uiview/viewtab.cxx
	sw/source/ui/uno/unofreg.cxx
	sw/source/ui/utlui/navipi.cxx
	sw/util/sw.component
	vcl/inc/vcl/split.hxx
	vcl/inc/vcl/window.hxx
	vcl/inc/window.h
	vcl/source/window/split.cxx
	vcl/source/window/window.cxx
	vcl/source/window/window4.cxx

Change-Id: Idebaff59f9d60e4e93290cefefdda4c5a1e9215e

Resolves: #i122194# Adapted license text in propertypanel.hrc

then renamed it to ResourceDefinitions.hrc

(cherry picked from commit e952d1401c1adc41934118ba7f542611ef9da11b)

Conflicts:
	sfx2/Package_inc.mk
	sfx2/source/sidebar/SidebarChildWindow.cxx
	svx/source/sidebar/graphic/GraphicPropertyPanel.cxx
	svx/source/sidebar/line/LinePropertyPanel.cxx
	svx/source/sidebar/possize/PosSizePropertyPanel.cxx
	sw/source/ui/sidebar/PagePropertyPanel.src
	sw/source/ui/sidebar/WrapPropertyPanel.src

Change-Id: Ie009056a78ab108556717a501399c83b477b3548

Resolves: #i122194# finally I got the correct file name

Change-Id: If7a075af8c9a829f6f0a69f883c5c6d4ac97ba2a

More merge changes for optional sidebar:
     revert toolpanel removal, restore and re-enable task pane
     remove apparently un-used SidebarFactory module
     add extra visibility annotation to ItemReceiverUpdate
2013-05-20 11:33:10 +01:00

573 lines
22 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef _SV_BUTTON_HXX
#define _SV_BUTTON_HXX
#include <tools/solar.h>
#include <vcl/dllapi.h>
#include <vcl/image.hxx>
#include <vcl/ctrl.hxx>
#include <vcl/bitmap.hxx>
#include <vcl/salnativewidgets.hxx>
#include <rsc/rsc-vcl-shared-types.hxx>
#include <vector>
class UserDrawEvent;
class ImplCommonButtonData;
// ----------
// - Button -
// ----------
class VCL_DLLPUBLIC Button : public Control
{
private:
ImplCommonButtonData *mpButtonData;
Link maClickHdl;
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE Button (const Button &);
SAL_DLLPRIVATE Button & operator= (const Button &);
public:
SAL_DLLPRIVATE sal_uInt16 ImplGetButtonState() const;
SAL_DLLPRIVATE sal_uInt16& ImplGetButtonState();
SAL_DLLPRIVATE sal_uInt16 ImplGetTextStyle( OUString& rText, WinBits nWinStyle, sal_uLong nDrawFlags );
SAL_DLLPRIVATE void ImplDrawAlignedImage( OutputDevice* pDev, Point& rPos, Size& rSize,
sal_Bool bLayout, sal_uLong nImageSep, sal_uLong nDrawFlags,
sal_uInt16 nTextStyle, Rectangle *pSymbolRect=NULL, bool bAddImageSep = false );
SAL_DLLPRIVATE void ImplSetFocusRect( const Rectangle &rFocusRect );
SAL_DLLPRIVATE const Rectangle& ImplGetFocusRect() const;
SAL_DLLPRIVATE void ImplSetSymbolAlign( SymbolAlign eAlign );
/// The x-coordinate of the vertical separator line, use in MenuButton subclass only.
SAL_DLLPRIVATE long ImplGetSeparatorX() const;
SAL_DLLPRIVATE void ImplSetSeparatorX( long nX );
protected:
explicit Button( WindowType nType );
public:
virtual ~Button();
virtual void Click();
void SetClickHdl( const Link& rLink ) { maClickHdl = rLink; }
const Link& GetClickHdl() const { return maClickHdl; }
static OUString GetStandardText( StandardButtonType eButton );
static XubString GetStandardHelpText( StandardButtonType eButton );
sal_Bool SetModeImage( const Image& rImage );
const Image GetModeImage( ) const;
sal_Bool HasImage() const;
void SetImageAlign( ImageAlign eAlign );
ImageAlign GetImageAlign() const;
void EnableImageDisplay( sal_Bool bEnable );
void EnableTextDisplay( sal_Bool bEnable );
void SetFocusRect( const Rectangle& rFocusRect );
bool IsSmallSymbol() const;
void SetSmallSymbol(bool bSmall = true);
};
// --------------------
// - PushButton-Types -
// --------------------
#define PUSHBUTTON_DROPDOWN_TOOLBOX ((sal_uInt16)0x0001)
#define PUSHBUTTON_DROPDOWN_MENUBUTTON ((sal_uInt16)0x0002)
// --------------
// - PushButton -
// --------------
class VCL_DLLPUBLIC PushButton : public Button
{
protected:
SymbolType meSymbol;
TriState meState;
TriState meSaveValue;
sal_uInt16 mnDDStyle;
sal_Bool mbPressed;
sal_Bool mbInUserDraw;
Link maToggleHdl;
SAL_DLLPRIVATE void ImplInitPushButtonData();
SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle );
SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground );
SAL_DLLPRIVATE void ImplDrawPushButtonContent( OutputDevice* pDev, sal_uLong nDrawFlags,
const Rectangle& rRect, bool bLayout, bool bMenuBtnSep );
SAL_DLLPRIVATE void ImplDrawPushButton( bool bLayout = false );
using Button::ImplGetTextStyle;
SAL_DLLPRIVATE sal_uInt16 ImplGetTextStyle( sal_uLong nDrawFlags ) const;
SAL_DLLPRIVATE sal_Bool IsSymbol() const { return ( (meSymbol != SYMBOL_NOSYMBOL) && (meSymbol != SYMBOL_IMAGE) ); }
SAL_DLLPRIVATE sal_Bool IsImage() const { return Button::HasImage(); }
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE PushButton( const PushButton & );
SAL_DLLPRIVATE PushButton& operator=( const PushButton & );
SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
using Control::ImplInitSettings;
using Window::ImplInit;
public:
SAL_DLLPRIVATE void ImplSetDefButton( sal_Bool bSet );
SAL_DLLPRIVATE static void ImplDrawPushButtonFrame( Window* pDev, Rectangle& rRect, sal_uInt16 nStyle );
SAL_DLLPRIVATE static sal_Bool ImplHitTestPushButton( Window* pDev, const Point& rPos );
SAL_DLLPRIVATE sal_Bool ImplIsDefButton() const;
protected:
explicit PushButton( WindowType nType );
virtual void FillLayoutData() const;
virtual const Font&
GetCanonicalFont( const StyleSettings& _rStyle ) const;
virtual const Color&
GetCanonicalTextColor( const StyleSettings& _rStyle ) const;
public:
explicit PushButton( Window* pParent, WinBits nStyle = 0 );
explicit PushButton( Window* pParent, const ResId& );
virtual ~PushButton();
virtual void MouseButtonDown( const MouseEvent& rMEvt );
virtual void Tracking( const TrackingEvent& rTEvt );
virtual void KeyInput( const KeyEvent& rKEvt );
virtual void KeyUp( const KeyEvent& rKEvt );
virtual void Paint( const Rectangle& rRect );
virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
virtual void Resize();
virtual void GetFocus();
virtual void LoseFocus();
virtual void StateChanged( StateChangedType nType );
virtual void DataChanged( const DataChangedEvent& rDCEvt );
virtual long PreNotify( NotifyEvent& rNEvt );
virtual void UserDraw( const UserDrawEvent& rUDEvt );
virtual void Toggle();
void SetSymbol( SymbolType eSymbol );
SymbolType GetSymbol() const { return meSymbol; }
void SetSymbolAlign( SymbolAlign eAlign );
void SetDropDown( sal_uInt16 nStyle );
sal_uInt16 GetDropDown() const { return mnDDStyle; }
void SetState( TriState eState );
TriState GetState() const { return meState; }
void Check( sal_Bool bCheck = sal_True );
sal_Bool IsChecked() const;
void SetPressed( sal_Bool bPressed );
sal_Bool IsPressed() const { return mbPressed; }
void EndSelection();
void SaveValue() { meSaveValue = GetState(); }
TriState GetSavedValue() const { return meSaveValue; }
Size CalcMinimumSize( long nMaxWidth = 0 ) const;
virtual Size GetOptimalSize() const;
void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; }
const Link& GetToggleHdl() const { return maToggleHdl; }
virtual bool set_property(const OString &rKey, const OString &rValue);
};
inline void PushButton::Check( sal_Bool bCheck )
{
SetState( (bCheck) ? STATE_CHECK : STATE_NOCHECK );
}
inline sal_Bool PushButton::IsChecked() const
{
return (GetState() == STATE_CHECK);
}
// ------------
// - OKButton -
// ------------
class VCL_DLLPUBLIC OKButton : public PushButton
{
protected:
using PushButton::ImplInit;
private:
SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE OKButton (const OKButton &);
SAL_DLLPRIVATE OKButton & operator= (const OKButton &);
public:
explicit OKButton( Window* pParent, WinBits nStyle = WB_DEFBUTTON );
explicit OKButton( Window* pParent, const ResId& );
virtual void Click();
};
// ----------------
// - CancelButton -
// ----------------
class VCL_DLLPUBLIC CancelButton : public PushButton
{
protected:
using PushButton::ImplInit;
private:
SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE CancelButton (const CancelButton &);
SAL_DLLPRIVATE CancelButton & operator= (const CancelButton &);
public:
explicit CancelButton( Window* pParent, WinBits nStyle = 0 );
explicit CancelButton( Window* pParent, const ResId& );
virtual void Click();
};
class VCL_DLLPUBLIC CloseButton : public CancelButton
{
public:
explicit CloseButton(Window* pParent, WinBits nStyle = 0);
};
// --------------
// - HelpButton -
// --------------
class VCL_DLLPUBLIC HelpButton : public PushButton
{
protected:
using PushButton::ImplInit;
private:
SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE HelpButton( const HelpButton & );
SAL_DLLPRIVATE HelpButton & operator= ( const HelpButton & );
public:
explicit HelpButton( Window* pParent, WinBits nStyle = 0 );
explicit HelpButton( Window* pParent, const ResId& );
virtual void Click();
};
// ---------------
// - RadioButton -
// ---------------
class VCL_DLLPUBLIC RadioButton : public Button
{
private:
boost::shared_ptr< std::vector<RadioButton*> > m_xGroup;
Rectangle maStateRect;
Rectangle maMouseRect;
Image maImage;
sal_Bool mbChecked;
sal_Bool mbSaveValue;
sal_Bool mbRadioCheck;
sal_Bool mbStateChanged;
Link maToggleHdl;
// when mbLegacyNoTextAlign is set then the old behaviour where
// the WB_LEFT, WB_RIGHT & WB_CENTER affect the image placement
// occurs, otherwise the image ( radiobutton circle ) is placed
// to the left or right ( depending on RTL or LTR settings )
bool mbLegacyNoTextAlign;
SAL_DLLPRIVATE void ImplInitRadioButtonData();
SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle );
SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground );
SAL_DLLPRIVATE void ImplDrawRadioButtonState();
SAL_DLLPRIVATE void ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
const Point& rPos, const Size& rSize,
const Size& rImageSize, Rectangle& rStateRect,
Rectangle& rMouseRect, bool bLayout = false );
SAL_DLLPRIVATE void ImplDrawRadioButton( bool bLayout = false );
SAL_DLLPRIVATE void ImplInvalidateOrDrawRadioButtonState();
SAL_DLLPRIVATE void ImplUncheckAllOther();
SAL_DLLPRIVATE Size ImplGetRadioImageSize() const;
SAL_DLLPRIVATE long ImplGetImageToTextDistance() const;
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE RadioButton(const RadioButton &);
SAL_DLLPRIVATE RadioButton& operator= (const RadioButton &);
protected:
using Control::ImplInitSettings;
using Window::ImplInit;
SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId );
public:
SAL_DLLPRIVATE void ImplCallClick( sal_Bool bGrabFocus = sal_False, sal_uInt16 nFocusFlags = 0 );
SAL_DLLPRIVATE void ImplSetMinimumNWFSize();
protected:
virtual void FillLayoutData() const;
virtual const Font&
GetCanonicalFont( const StyleSettings& _rStyle ) const;
virtual const Color&
GetCanonicalTextColor( const StyleSettings& _rStyle ) const;
inline void SetMouseRect( const Rectangle& _rMouseRect ) { maMouseRect = _rMouseRect; }
inline const Rectangle& GetMouseRect( ) const { return maMouseRect; }
inline void SetStateRect( const Rectangle& _rStateRect ) { maStateRect = _rStateRect; }
inline const Rectangle& GetStateRect( ) const { return maStateRect; }
// draws the radio button (the knob image), in it's current state (pressed/checked)
// at the usual location, which can be overridden with SetStateRect
void DrawRadioButtonState( );
public:
explicit RadioButton( Window* pParent, WinBits nWinStyle = 0 );
explicit RadioButton( Window* pParent, const ResId& );
virtual ~RadioButton();
virtual void MouseButtonDown( const MouseEvent& rMEvt );
virtual void Tracking( const TrackingEvent& rTEvt );
virtual void KeyInput( const KeyEvent& rKEvt );
virtual void KeyUp( const KeyEvent& rKEvt );
virtual void Paint( const Rectangle& rRect );
virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
virtual void Resize();
virtual void GetFocus();
virtual void LoseFocus();
virtual void StateChanged( StateChangedType nType );
virtual void DataChanged( const DataChangedEvent& rDCEvt );
virtual long PreNotify( NotifyEvent& rNEvt );
virtual void Toggle();
sal_Bool IsStateChanged() const { return mbStateChanged; }
void EnableRadioCheck( sal_Bool bRadioCheck = sal_True ) { mbRadioCheck = bRadioCheck; }
sal_Bool IsRadioCheckEnabled() const { return mbRadioCheck; }
sal_Bool SetModeRadioImage( const Image& rImage );
const Image& GetModeRadioImage( ) const;
void SetState( sal_Bool bCheck );
void Check( sal_Bool bCheck = sal_True );
sal_Bool IsChecked() const { return mbChecked; }
void SaveValue() { mbSaveValue = IsChecked(); }
sal_Bool GetSavedValue() const { return mbSaveValue; }
static Image GetRadioImage( const AllSettings& rSettings, sal_uInt16 nFlags );
Size CalcMinimumSize( long nMaxWidth = 0 ) const;
virtual Size GetOptimalSize() const;
void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; }
const Link& GetToggleHdl() const { return maToggleHdl; }
/** GetRadioButtonGroup returns a list of pointers to <code>RadioButton</code>s in the same group.
The pointers in the returned list are valid at the time call returns. However rescheduling
or giving up the SolarMutex may mean events get executed that lead to the pointers getting
invalid.
@param bIncludeThis
defines whether <code>this</code> is contained in the returned list
@return
on return contains the <code>RadioButton</code>s
in the same group as this <code>RadioButton</code>.
*/
std::vector<RadioButton*> GetRadioButtonGroup(bool bIncludeThis = true) const;
virtual bool set_property(const OString &rKey, const OString &rValue);
/*
* Group this RadioButton with another
*/
void group(RadioButton &rOther);
};
// ------------
// - CheckBox -
// ------------
class VCL_DLLPUBLIC CheckBox : public Button
{
private:
Rectangle maStateRect;
Rectangle maMouseRect;
TriState meState;
TriState meSaveValue;
sal_Bool mbTriState;
Link maToggleHdl;
// when mbLegacyNoTextAlign is set then the old behaviour where
// the WB_LEFT, WB_RIGHT & WB_CENTER affect the image placement
// occurs, otherwise the image ( checkbox box ) is placed
// to the left or right ( depending on RTL or LTR settings )
bool mbLegacyNoTextAlign;
SAL_DLLPRIVATE void ImplInitCheckBoxData();
SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle );
SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground );
SAL_DLLPRIVATE void ImplInvalidateOrDrawCheckBoxState();
SAL_DLLPRIVATE void ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
const Point& rPos, const Size& rSize,
const Size& rImageSize, Rectangle& rStateRect,
Rectangle& rMouseRect, bool bLayout );
SAL_DLLPRIVATE void ImplDrawCheckBox( bool bLayout = false );
SAL_DLLPRIVATE long ImplGetImageToTextDistance() const;
SAL_DLLPRIVATE Size ImplGetCheckImageSize() const;
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE CheckBox(const CheckBox &);
SAL_DLLPRIVATE CheckBox& operator= (const CheckBox &);
protected:
using Control::ImplInitSettings;
using Window::ImplInit;
SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId );
virtual void FillLayoutData() const;
virtual const Font& GetCanonicalFont( const StyleSettings& _rStyle ) const;
virtual const Color& GetCanonicalTextColor( const StyleSettings& _rStyle ) const;
virtual void ImplDrawCheckBoxState();
SAL_DLLPRIVATE const Rectangle& GetStateRect() const { return maStateRect; }
SAL_DLLPRIVATE const Rectangle& GetMouseRect() const { return maMouseRect; }
public:
SAL_DLLPRIVATE void ImplCheck();
SAL_DLLPRIVATE void ImplSetMinimumNWFSize();
public:
explicit CheckBox( Window* pParent, WinBits nStyle = 0 );
explicit CheckBox( Window* pParent, const ResId& );
virtual void MouseButtonDown( const MouseEvent& rMEvt );
virtual void Tracking( const TrackingEvent& rTEvt );
virtual void KeyInput( const KeyEvent& rKEvt );
virtual void KeyUp( const KeyEvent& rKEvt );
virtual void Paint( const Rectangle& rRect );
virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
virtual void Resize();
virtual void GetFocus();
virtual void LoseFocus();
virtual void StateChanged( StateChangedType nType );
virtual void DataChanged( const DataChangedEvent& rDCEvt );
virtual long PreNotify( NotifyEvent& rNEvt );
virtual void Toggle();
void SetState( TriState eState );
TriState GetState() const { return meState; }
void Check( sal_Bool bCheck = sal_True );
sal_Bool IsChecked() const;
void EnableTriState( sal_Bool bTriState = sal_True );
sal_Bool IsTriStateEnabled() const { return mbTriState; }
void SaveValue() { meSaveValue = GetState(); }
TriState GetSavedValue() const { return meSaveValue; }
static Image GetCheckImage( const AllSettings& rSettings, sal_uInt16 nFlags );
Size CalcMinimumSize( long nMaxWidth = 0 ) const;
virtual Size GetOptimalSize() const;
void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; }
const Link& GetToggleHdl() const { return maToggleHdl; }
bool IsLegacyNoTextAlign() { return mbLegacyNoTextAlign; }
void SetLegacyNoTextAlign( bool bVal ) { mbLegacyNoTextAlign = bVal; }
virtual bool set_property(const OString &rKey, const OString &rValue);
};
inline void CheckBox::Check( sal_Bool bCheck )
{
SetState( (bCheck) ? STATE_CHECK : STATE_NOCHECK );
}
inline sal_Bool CheckBox::IsChecked() const
{
return (GetState() == STATE_CHECK);
}
// ---------------------------------
// - Control-Layer fuer alten Code -
// ---------------------------------
class VCL_DLLPUBLIC ImageButton : public PushButton
{
protected:
using PushButton::ImplInitStyle;
private:
SAL_DLLPRIVATE void ImplInitStyle();
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE ImageButton( const ImageButton & );
SAL_DLLPRIVATE ImageButton & operator= ( const ImageButton & );
public:
ImageButton( Window* pParent, WinBits nStyle = 0 );
ImageButton( Window* pParent, const ResId& rResId );
~ImageButton();
};
class VCL_DLLPUBLIC ImageRadioButton : public RadioButton
{
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE ImageRadioButton( const ImageRadioButton & );
SAL_DLLPRIVATE ImageRadioButton & operator= ( const ImageRadioButton & );
public:
explicit ImageRadioButton( Window* pParent, WinBits nStyle = 0 );
explicit ImageRadioButton( Window* pParent, const ResId& );
virtual ~ImageRadioButton();
};
class VCL_DLLPUBLIC TriStateBox : public CheckBox
{
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE TriStateBox( const TriStateBox & );
SAL_DLLPRIVATE TriStateBox & operator= ( const TriStateBox & );
public:
explicit TriStateBox( Window* pParent, WinBits nStyle = 0 );
explicit TriStateBox( Window* pParent, const ResId& );
virtual ~TriStateBox();
};
class VCL_DLLPUBLIC DisclosureButton : public CheckBox
{
protected:
SAL_DLLPRIVATE virtual void ImplDrawCheckBoxState();
public:
explicit DisclosureButton( Window* pParent, WinBits nStyle = 0 );
explicit DisclosureButton( Window* pParent, const ResId& rResId );
virtual void KeyInput( const KeyEvent& rKEvt );
};
#endif // _SV_BUTTON_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */