diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2007-04-11 17:10:26 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2007-04-11 17:10:26 +0000 |
commit | ab68076b1eab940638b94a12fa02740067d57677 (patch) | |
tree | 9f73d80620d3b018d9ee82b3cee90b93fa8b0e83 /vcl/inc | |
parent | 41b28a7bdea75c11029bb053531e43c6f1fcb2ab (diff) |
INTEGRATION: CWS hedaburemove01 (1.1.2); FILE ADDED
2007/02/09 16:11:10 vg 1.1.2.1: #72503# get rid of hedabu procedure: Moving headers to vcl/inc/vcl and correspondent necessary changes
Diffstat (limited to 'vcl/inc')
-rw-r--r-- | vcl/inc/vcl/scrbar.hxx | 185 | ||||
-rw-r--r-- | vcl/inc/vcl/seleng.hxx | 269 | ||||
-rw-r--r-- | vcl/inc/vcl/settings.hxx | 1324 | ||||
-rw-r--r-- | vcl/inc/vcl/slider.hxx | 148 |
4 files changed, 1926 insertions, 0 deletions
diff --git a/vcl/inc/vcl/scrbar.hxx b/vcl/inc/vcl/scrbar.hxx new file mode 100644 index 0000000000..b5b6dff4f6 --- /dev/null +++ b/vcl/inc/vcl/scrbar.hxx @@ -0,0 +1,185 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: scrbar.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: vg $ $Date: 2007-04-11 18:09:58 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#ifndef _SV_SCRBAR_HXX +#define _SV_SCRBAR_HXX + +#ifndef _SV_SV_H +#include <vcl/sv.h> +#endif +#ifndef _VCL_DLLAPI_H +#include <vcl/dllapi.h> +#endif + +#ifndef _SV_CTRL_HXX +#include <vcl/ctrl.hxx> +#endif + +class AutoTimer; + +// ------------------- +// - ScrollBar-Types - +// ------------------- + +enum ScrollType { SCROLL_DONTKNOW, SCROLL_LINEUP, SCROLL_LINEDOWN, + SCROLL_PAGEUP, SCROLL_PAGEDOWN, SCROLL_DRAG, SCROLL_SET }; + +// ------------- +// - ScrollBar - +// ------------- +struct ImplScrollBarData; + +class VCL_DLLPUBLIC ScrollBar : public Control +{ +private: + Rectangle maBtn1Rect; + Rectangle maBtn2Rect; + Rectangle maPage1Rect; + Rectangle maPage2Rect; + Rectangle maThumbRect; + ImplScrollBarData* mpData; + long mnStartPos; + long mnMouseOff; + long mnThumbPixRange; + long mnThumbPixPos; + long mnThumbPixSize; + long mnMinRange; + long mnMaxRange; + long mnThumbPos; + long mnVisibleSize; + long mnLineSize; + long mnPageSize; + long mnDelta; + USHORT mnDragDraw; + USHORT mnStateFlags; + ScrollType meScrollType; + ScrollType meDDScrollType; + BOOL mbCalcSize; + BOOL mbFullDrag; + Link maScrollHdl; + Link maEndScrollHdl; + + SAL_DLLPRIVATE Rectangle* ImplFindPartRect( const Point& rPt ); + using Window::ImplInit; + SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); + SAL_DLLPRIVATE void ImplInitStyle( WinBits nStyle ); + SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); + SAL_DLLPRIVATE void ImplUpdateRects( BOOL bUpdate = TRUE ); + SAL_DLLPRIVATE long ImplCalcThumbPos( long nPixPos ); + SAL_DLLPRIVATE long ImplCalcThumbPosPix( long nPos ); + SAL_DLLPRIVATE void ImplCalc( BOOL bUpdate = TRUE ); + SAL_DLLPRIVATE void ImplDraw( USHORT nDrawFlags, OutputDevice* pOutDev ); + using Window::ImplScroll; + SAL_DLLPRIVATE long ImplScroll( long nNewPos, BOOL bCallEndScroll ); + SAL_DLLPRIVATE long ImplDoAction( BOOL bCallEndScroll ); + SAL_DLLPRIVATE void ImplDoMouseAction( const Point& rPos, BOOL bCallAction = TRUE ); + SAL_DLLPRIVATE void ImplInvert(); + SAL_DLLPRIVATE BOOL ImplDrawNative( USHORT nDrawFlags ); + SAL_DLLPRIVATE void ImplDragThumb( const Point& rMousePos ); + DECL_DLLPRIVATE_LINK( ImplTimerHdl, Timer* ); + DECL_DLLPRIVATE_LINK( ImplAutoTimerHdl, AutoTimer* ); + +public: + ScrollBar( Window* pParent, WinBits nStyle = WB_VERT ); + ScrollBar( Window* pParent, const ResId& rResId ); + ~ScrollBar(); + + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void Tracking( const TrackingEvent& rTEvt ); + virtual void KeyInput( const KeyEvent& rKEvt ); + virtual void Paint( const Rectangle& rRect ); + virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, ULONG nFlags ); + virtual void Resize(); + virtual void StateChanged( StateChangedType nType ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + virtual long PreNotify( NotifyEvent& rNEvt ); + virtual void GetFocus(); + virtual void LoseFocus(); + + using Window::Scroll; + virtual void Scroll(); + virtual void EndScroll(); + + long DoScroll( long nNewPos ); + long DoScrollAction( ScrollType eScrollType ); + + void EnableDrag( BOOL bEnable = TRUE ) + { mbFullDrag = bEnable; } + BOOL IsDragEnabled() const { return mbFullDrag; } + + void SetRangeMin( long nNewRange ); + long GetRangeMin() const { return mnMinRange; } + void SetRangeMax( long nNewRange ); + long GetRangeMax() const { return mnMaxRange; } + void SetRange( const Range& rRange ); + Range GetRange() const { return Range( GetRangeMin(), GetRangeMax() ); } + void SetThumbPos( long nThumbPos ); + long GetThumbPos() const { return mnThumbPos; } + void SetLineSize( long nNewSize ) { mnLineSize = nNewSize; } + long GetLineSize() const { return mnLineSize; } + void SetPageSize( long nNewSize ) { mnPageSize = nNewSize; } + long GetPageSize() const { return mnPageSize; } + void SetVisibleSize( long nNewSize ); + long GetVisibleSize() const { return mnVisibleSize; } + + long GetDelta() const { return mnDelta; } + ScrollType GetType() const { return meScrollType; } + + void SetScrollHdl( const Link& rLink ) { maScrollHdl = rLink; } + const Link& GetScrollHdl() const { return maScrollHdl; } + void SetEndScrollHdl( const Link& rLink ) { maEndScrollHdl = rLink; } + const Link& GetEndScrollHdl() const { return maEndScrollHdl; } +}; + +// ---------------- +// - ScrollBarBox - +// ---------------- + +class VCL_DLLPUBLIC ScrollBarBox : public Window +{ +private: + using Window::ImplInit; + SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); + SAL_DLLPRIVATE void ImplInitSettings(); + +public: + ScrollBarBox( Window* pParent, WinBits nStyle = 0 ); + ScrollBarBox( Window* pParent, const ResId& rResId ); + + virtual void StateChanged( StateChangedType nType ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); +}; + +#endif // _SV_SCRBAR_HXX diff --git a/vcl/inc/vcl/seleng.hxx b/vcl/inc/vcl/seleng.hxx new file mode 100644 index 0000000000..606ac3eac1 --- /dev/null +++ b/vcl/inc/vcl/seleng.hxx @@ -0,0 +1,269 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: seleng.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: vg $ $Date: 2007-04-11 18:10:08 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#ifndef _SV_SELENG_HXX +#define _SV_SELENG_HXX + +#ifndef _VCL_DLLAPI_H +#include <vcl/dllapi.h> +#endif + +#ifndef _SV_TIMER_HXX +#include <vcl/timer.hxx> +#endif + +#ifndef _SV_EVENT_HXX +#include <vcl/event.hxx> +#endif + +class Window; +class CommandEvent; + +// Timerticks +#define SELENG_DRAGDROP_TIMEOUT 400 +#define SELENG_AUTOREPEAT_INTERVAL 50 + +enum SelectionMode { NO_SELECTION, SINGLE_SELECTION, RANGE_SELECTION, MULTIPLE_SELECTION }; + +// --------------- +// - FunctionSet - +// --------------- + +class VCL_DLLPUBLIC FunctionSet +{ +public: + virtual void BeginDrag() = 0; + + virtual void CreateAnchor() = 0; // Anker-Pos := Cursor-Pos + virtual void DestroyAnchor() = 0; + + // Cursor neu setzen, dabei die beim Anker beginnende + // Selektion der neuen Cursor-Position anpassen. TRUE == Ok + virtual BOOL SetCursorAtPoint( const Point& rPointPixel, + BOOL bDontSelectAtCursor = FALSE ) = 0; + + virtual BOOL IsSelectionAtPoint( const Point& rPointPixel ) = 0; + virtual void DeselectAtPoint( const Point& rPointPixel ) = 0; + // Anker loeschen & alles deselektieren + virtual void DeselectAll() = 0; +}; + +// ------------------- +// - SelectionEngine - +// ------------------- + +#define SELENG_DRG_ENAB 0x0001 +#define SELENG_IN_SEL 0x0002 +#define SELENG_IN_ADD 0x0004 +#define SELENG_ADD_ALW 0x0008 +#define SELENG_IN_DRG 0x0010 +#define SELENG_HAS_ANCH 0x0020 +#define SELENG_CMDEVT 0x0040 +#define SELENG_WAIT_UPEVT 0x0080 +#define SELENG_EXPANDONMOVE 0x0100 + +class VCL_DLLPUBLIC SelectionEngine +{ +private: + FunctionSet* pFunctionSet; + Window* pWin; + Rectangle aArea; + Timer aWTimer; // erzeugt kuenstliche Mouse-Moves + MouseEvent aLastMove; + SelectionMode eSelMode; + // Stufigkeit fuer Mausbewegungen waehrend einer Selektion + USHORT nMouseSensitivity; + USHORT nLockedMods; + USHORT nFlags; +//#if 0 // _SOLAR__PRIVATE + DECL_DLLPRIVATE_LINK( ImpWatchDog, Timer * ); +//#endif + + inline BOOL ShouldDeselect( BOOL bModifierKey1 ) const; + // determines to deselect or not when Ctrl-key is pressed on CursorPosChanging +public: + + SelectionEngine( Window* pWindow, + FunctionSet* pFunctions = NULL ); + ~SelectionEngine(); + + // TRUE: Event wurde von Selection-Engine verarbeitet. + BOOL SelMouseButtonDown( const MouseEvent& rMEvt ); + BOOL SelMouseButtonUp( const MouseEvent& rMEvt ); + BOOL SelMouseMove( const MouseEvent& rMEvt ); + + // Tastatur + void CursorPosChanging( BOOL bShift, BOOL bMod1 ); + + // wird benoetigt, um bei ausserhalb des Bereichs stehender + // Maus ueber einen Timer Move-Events zu erzeugen + void SetVisibleArea( const Rectangle rNewArea ) + { aArea = rNewArea; } + const Rectangle& GetVisibleArea() const { return aArea; } + + void SetAddMode( BOOL); + BOOL IsAddMode() const; + + void AddAlways( BOOL bOn ); + BOOL IsAlwaysAdding() const; + + void EnableDrag( BOOL bOn ); + BOOL IsDragEnabled() const; + void ActivateDragMode(); + BOOL IsInDragMode() const; + + void SetSelectionMode( SelectionMode eMode ); + SelectionMode GetSelectionMode() const { return eSelMode; } + + void SetFunctionSet( FunctionSet* pFuncs ) + { pFunctionSet = pFuncs; } + const FunctionSet* GetFunctionSet() const { return pFunctionSet; } + + void SetMouseSensitivity( USHORT nSensitivity ) + { nMouseSensitivity = nSensitivity; } + USHORT GetMouseSensitivity() const + { return nMouseSensitivity; } + + const Point& GetMousePosPixel() const + { return aLastMove.GetPosPixel(); } + const MouseEvent& GetMouseEvent() const { return aLastMove; } + + void SetWindow( Window*); + Window* GetWindow() const { return pWin; } + + void LockModifiers( USHORT nModifiers ) + { nLockedMods = nModifiers; } + USHORT GetLockedModifiers() const { return nLockedMods; } + + BOOL IsInSelection() const; + void Reset(); + + void Command( const CommandEvent& rCEvt ); + + BOOL HasAnchor() const; + void SetAnchor( BOOL bAnchor ); + + // wird im Ctor eingeschaltet + void ExpandSelectionOnMouseMove( BOOL bExpand = TRUE ) + { + if( bExpand ) + nFlags |= SELENG_EXPANDONMOVE; + else + nFlags &= ~SELENG_EXPANDONMOVE; + } +}; + +inline BOOL SelectionEngine::IsDragEnabled() const +{ + if ( nFlags & SELENG_DRG_ENAB ) + return TRUE; + else + return FALSE; +} + +inline BOOL SelectionEngine::IsAddMode() const +{ + if ( nFlags & (SELENG_IN_ADD | SELENG_ADD_ALW) ) + return TRUE; + else + return FALSE; +} + +inline void SelectionEngine::SetAddMode( BOOL bNewMode ) +{ + if ( bNewMode ) + nFlags |= SELENG_IN_ADD; + else + nFlags &= (~SELENG_IN_ADD); +} + +inline void SelectionEngine::EnableDrag( BOOL bOn ) +{ + if ( bOn ) + nFlags |= SELENG_DRG_ENAB; + else + nFlags &= (~SELENG_DRG_ENAB); +} + +inline void SelectionEngine::AddAlways( BOOL bOn ) +{ + if( bOn ) + nFlags |= SELENG_ADD_ALW; + else + nFlags &= (~SELENG_ADD_ALW); +} + +inline BOOL SelectionEngine::IsAlwaysAdding() const +{ + if ( nFlags & SELENG_ADD_ALW ) + return TRUE; + else + return FALSE; +} + +inline BOOL SelectionEngine::IsInDragMode() const +{ + if ( nFlags & SELENG_IN_DRG ) + return TRUE; + else + return FALSE; +} + +inline BOOL SelectionEngine::IsInSelection() const +{ + if ( nFlags & SELENG_IN_SEL ) + return TRUE; + else + return FALSE; +} + +inline BOOL SelectionEngine::HasAnchor() const +{ + if ( nFlags & SELENG_HAS_ANCH ) + return TRUE; + else + return FALSE; +} + +inline void SelectionEngine::SetAnchor( BOOL bAnchor ) +{ + if ( bAnchor ) + nFlags |= SELENG_HAS_ANCH; + else + nFlags &= (~SELENG_HAS_ANCH); +} + +#endif // _SV_SELENG_HXX + diff --git a/vcl/inc/vcl/settings.hxx b/vcl/inc/vcl/settings.hxx new file mode 100644 index 0000000000..07367edcea --- /dev/null +++ b/vcl/inc/vcl/settings.hxx @@ -0,0 +1,1324 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: settings.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: vg $ $Date: 2007-04-11 18:10:17 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#ifndef _SV_SETTINGS_HXX +#define _SV_SETTINGS_HXX + +#ifndef _SV_SV_H +#include <vcl/sv.h> +#endif +#ifndef _VCL_DLLAPI_H +#include <vcl/dllapi.h> +#endif + +#ifndef _TOOLS_COLOR_HXX +#include <tools/color.hxx> +#endif +#ifndef _SV_FONT_HXX +#include <vcl/font.hxx> +#endif +#ifndef _SV_ACCEL_HXX +#include <vcl/accel.hxx> +#endif + +#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_ +#include <com/sun/star/lang/Locale.hpp> +#endif + +class CollatorWrapper; +class LocaleDataWrapper; + +namespace vcl { + class I18nHelper; +} + +// ------------------- +// - ImplMachineData - +// ------------------- + +class ImplMachineData +{ + friend class MachineSettings; + + ImplMachineData(); + ImplMachineData( const ImplMachineData& rData ); + +private: + ULONG mnRefCount; + ULONG mnOptions; + ULONG mnScreenOptions; + ULONG mnPrintOptions; + long mnScreenRasterFontDeviation; +}; + +// ------------------- +// - MachineSettings - +// ------------------- + +class VCL_DLLPUBLIC MachineSettings +{ + void CopyData(); + +private: + ImplMachineData* mpData; + +public: + MachineSettings(); + MachineSettings( const MachineSettings& rSet ); + ~MachineSettings(); + + void SetOptions( ULONG nOptions ) + { CopyData(); mpData->mnOptions = nOptions; } + ULONG GetOptions() const + { return mpData->mnOptions; } + void SetScreenOptions( ULONG nOptions ) + { CopyData(); mpData->mnScreenOptions = nOptions; } + ULONG GetScreenOptions() const + { return mpData->mnScreenOptions; } + void SetPrintOptions( ULONG nOptions ) + { CopyData(); mpData->mnPrintOptions = nOptions; } + ULONG GetPrintOptions() const + { return mpData->mnPrintOptions; } + + void SetScreenRasterFontDeviation( long nDeviation ) + { CopyData(); mpData->mnScreenRasterFontDeviation = nDeviation; } + long GetScreenRasterFontDeviation() const + { return mpData->mnScreenRasterFontDeviation; } + + const MachineSettings& operator =( const MachineSettings& rSet ); + + BOOL operator ==( const MachineSettings& rSet ) const; + BOOL operator !=( const MachineSettings& rSet ) const + { return !(*this == rSet); } +}; + +// ----------------- +// - ImplMouseData - +// ----------------- + +class ImplMouseData +{ + friend class MouseSettings; + + ImplMouseData(); + ImplMouseData( const ImplMouseData& rData ); + +private: + ULONG mnRefCount; + ULONG mnOptions; + ULONG mnDoubleClkTime; + long mnDoubleClkWidth; + long mnDoubleClkHeight; + long mnStartDragWidth; + long mnStartDragHeight; + USHORT mnStartDragCode; + USHORT mnDragMoveCode; + USHORT mnDragCopyCode; + USHORT mnDragLinkCode; + USHORT mnContextMenuCode; + USHORT mnContextMenuClicks; + BOOL mbContextMenuDown; + ULONG mnScrollRepeat; + ULONG mnButtonStartRepeat; + ULONG mnButtonRepeat; + ULONG mnActionDelay; + ULONG mnMenuDelay; + ULONG mnFollow; + USHORT mnMiddleButtonAction; + BOOL mbNoWheelActionWithoutFocus; + BOOL mbAlign1; +}; + +// ----------------- +// - MouseSettings - +// ----------------- + +#define MOUSE_OPTION_AUTOFOCUS ((ULONG)0x00000001) +#define MOUSE_OPTION_AUTOCENTERPOS ((ULONG)0x00000002) +#define MOUSE_OPTION_AUTODEFBTNPOS ((ULONG)0x00000004) + +#define MOUSE_FOLLOW_MENU ((ULONG)0x00000001) +#define MOUSE_FOLLOW_DDLIST ((ULONG)0x00000002) + +#define MOUSE_MIDDLE_NOTHING ((USHORT)0) +#define MOUSE_MIDDLE_AUTOSCROLL ((USHORT)1) +#define MOUSE_MIDDLE_PASTESELECTION ((USHORT)2) + +class VCL_DLLPUBLIC MouseSettings +{ + void CopyData(); + +private: + ImplMouseData* mpData; + +public: + MouseSettings(); + MouseSettings( const MouseSettings& rSet ); + ~MouseSettings(); + + void SetOptions( ULONG nOptions ) + { CopyData(); mpData->mnOptions = nOptions; } + ULONG GetOptions() const + { return mpData->mnOptions; } + + void SetDoubleClickTime( ULONG nDoubleClkTime ) + { CopyData(); mpData->mnDoubleClkTime = nDoubleClkTime; } + ULONG GetDoubleClickTime() const + { return mpData->mnDoubleClkTime; } + void SetDoubleClickWidth( long nDoubleClkWidth ) + { CopyData(); mpData->mnDoubleClkWidth = nDoubleClkWidth; } + long GetDoubleClickWidth() const + { return mpData->mnDoubleClkWidth; } + void SetDoubleClickHeight( long nDoubleClkHeight ) + { CopyData(); mpData->mnDoubleClkHeight = nDoubleClkHeight; } + long GetDoubleClickHeight() const + { return mpData->mnDoubleClkHeight; } + + void SetStartDragWidth( long nDragWidth ) + { CopyData(); mpData->mnStartDragWidth = nDragWidth; } + long GetStartDragWidth() const + { return mpData->mnStartDragWidth; } + void SetStartDragHeight( long nDragHeight ) + { CopyData(); mpData->mnStartDragHeight = nDragHeight; } + long GetStartDragHeight() const + { return mpData->mnStartDragHeight; } + void SetStartDragCode( USHORT nCode ) + { CopyData(); mpData->mnStartDragCode = nCode; } + USHORT GetStartDragCode() const + { return mpData->mnStartDragCode; } + void SetDragMoveCode( USHORT nCode ) + { CopyData(); mpData->mnDragMoveCode = nCode; } + USHORT GetDragMoveCode() const + { return mpData->mnDragMoveCode; } + void SetDragCopyCode( USHORT nCode ) + { CopyData(); mpData->mnDragCopyCode = nCode; } + USHORT GetDragCopyCode() const + { return mpData->mnDragCopyCode; } + void SetDragLinkCode( USHORT nCode ) + { CopyData(); mpData->mnDragLinkCode = nCode; } + USHORT GetDragLinkCode() const + { return mpData->mnDragLinkCode; } + + void SetContextMenuCode( USHORT nCode ) + { CopyData(); mpData->mnContextMenuCode = nCode; } + USHORT GetContextMenuCode() const + { return mpData->mnContextMenuCode; } + void SetContextMenuClicks( USHORT nClicks ) + { CopyData(); mpData->mnContextMenuClicks = nClicks; } + USHORT GetContextMenuClicks() const + { return mpData->mnContextMenuClicks; } + void SetContextMenuDown( BOOL bDown ) + { CopyData(); mpData->mbContextMenuDown = bDown; } + BOOL GetContextMenuDown() const + { return mpData->mbContextMenuDown; } + + void SetScrollRepeat( ULONG nRepeat ) + { CopyData(); mpData->mnScrollRepeat = nRepeat; } + ULONG GetScrollRepeat() const + { return mpData->mnScrollRepeat; } + void SetButtonStartRepeat( ULONG nRepeat ) + { CopyData(); mpData->mnButtonStartRepeat = nRepeat; } + ULONG GetButtonStartRepeat() const + { return mpData->mnButtonStartRepeat; } + void SetButtonRepeat( ULONG nRepeat ) + { CopyData(); mpData->mnButtonRepeat = nRepeat; } + ULONG GetButtonRepeat() const + { return mpData->mnButtonRepeat; } + void SetActionDelay( ULONG nDelay ) + { CopyData(); mpData->mnActionDelay = nDelay; } + ULONG GetActionDelay() const + { return mpData->mnActionDelay; } + void SetMenuDelay( ULONG nDelay ) + { CopyData(); mpData->mnMenuDelay = nDelay; } + ULONG GetMenuDelay() const + { return mpData->mnMenuDelay; } + + void SetFollow( ULONG nFollow ) + { CopyData(); mpData->mnFollow = nFollow; } + ULONG GetFollow() const + { return mpData->mnFollow; } + + void SetMiddleButtonAction( USHORT nAction ) + { CopyData(); mpData->mnMiddleButtonAction = nAction; } + USHORT GetMiddleButtonAction() const + { return mpData->mnMiddleButtonAction; } + + void SetNoWheelActionWithoutFocus( BOOL bAction ) + { CopyData(); mpData->mbNoWheelActionWithoutFocus = bAction; } + BOOL GetNoWheelActionWithoutFocus() const + { return mpData->mbNoWheelActionWithoutFocus; } + + const MouseSettings& operator =( const MouseSettings& rSet ); + + BOOL operator ==( const MouseSettings& rSet ) const; + BOOL operator !=( const MouseSettings& rSet ) const + { return !(*this == rSet); } +}; + +// -------------------- +// - ImplKeyboardData - +// -------------------- + +class ImplKeyboardData +{ + friend class KeyboardSettings; + + ImplKeyboardData(); + ImplKeyboardData( const ImplKeyboardData& rData ); + +private: + ULONG mnRefCount; + Accelerator maStandardAccel; + ULONG mnOptions; +}; + +// -------------------- +// - KeyboardSettings - +// -------------------- + +#define KEYBOARD_OPTION_QUICKCURSOR ((ULONG)0x00000001) + +class VCL_DLLPUBLIC KeyboardSettings +{ + void CopyData(); + +private: + ImplKeyboardData* mpData; + +public: + KeyboardSettings(); + KeyboardSettings( const KeyboardSettings& rSet ); + ~KeyboardSettings(); + + void SetStandardAccel( const Accelerator& rAccelerator ) + { CopyData(); mpData->maStandardAccel = rAccelerator; } + const Accelerator& GetStandardAccel() const + { return mpData->maStandardAccel; } + + void SetOptions( ULONG nOptions ) + { CopyData(); mpData->mnOptions = nOptions; } + ULONG GetOptions() const + { return mpData->mnOptions; } + + const KeyboardSettings& operator =( const KeyboardSettings& rSet ); + + BOOL operator ==( const KeyboardSettings& rSet ) const; + BOOL operator !=( const KeyboardSettings& rSet ) const + { return !(*this == rSet); } +}; + +// ----------------- +// - ImplStyleData - +// ----------------- + +class ImplStyleData +{ + friend class StyleSettings; + + ImplStyleData(); + ImplStyleData( const ImplStyleData& rData ); + void SetStandardStyles(); + +private: + ULONG mnRefCount; + + void* mpStyleData_NotUsedYet; + + Color maActiveBorderColor; + Color maActiveColor; + Color maActiveColor2; + Color maActiveTextColor; + Color maButtonTextColor; + Color maButtonRolloverTextColor; + Color maCheckedColor; + Color maDarkShadowColor; + Color maDeactiveBorderColor; + Color maDeactiveColor; + Color maDeactiveColor2; + Color maDeactiveTextColor; + Color maDialogColor; + Color maDialogTextColor; + Color maDisableColor; + Color maFaceColor; + Color maFieldColor; + Color maFieldTextColor; + Color maFieldRolloverTextColor; + Color maFontColor; + Color maGroupTextColor; + Color maHelpColor; + Color maHelpTextColor; + Color maHighlightColor; + Color maHighlightLinkColor; + Color maHighlightTextColor; + Color maInfoTextColor; + Color maLabelTextColor; + Color maLightBorderColor; + Color maLightColor; + Color maLinkColor; + Color maMenuBarColor; + Color maMenuBorderColor; + Color maMenuColor; + Color maMenuHighlightColor; + Color maMenuHighlightTextColor; + Color maMenuTextColor; + Color maMonoColor; + Color maRadioCheckTextColor; + Color maShadowColor; + Color maVisitedLinkColor; + Color maWindowColor; + Color maWindowTextColor; + Color maWorkspaceColor; + Font maAppFont; + Font maHelpFont; + Font maTitleFont; + Font maFloatTitleFont; + Font maMenuFont; + Font maToolFont; + Font maLabelFont; + Font maInfoFont; + Font maRadioCheckFont; + Font maPushButtonFont; + Font maFieldFont; + Font maIconFont; + Font maGroupFont; + long mnBorderSize; + long mnTitleHeight; + long mnFloatTitleHeight; + long mnTearOffTitleHeight; + long mnScrollBarSize; + long mnSplitSize; + long mnSpinSize; + long mnCursorSize; + long mnMenuBarHeight; + long mnIconHorzSpace; + long mnIconVertSpace; + long mnAntialiasedMin; + ULONG mnCursorBlinkTime; + ULONG mnDragFullOptions; + ULONG mnAnimationOptions; + ULONG mnSelectionOptions; + ULONG mnLogoDisplayTime; + ULONG mnDisplayOptions; + ULONG mnToolbarIconSize; + ULONG mnUseFlatMenues; + ULONG mnOptions; + USHORT mnScreenZoom; + USHORT mnScreenFontZoom; + USHORT mnRadioButtonStyle; + USHORT mnCheckBoxStyle; + USHORT mnPushButtonStyle; + USHORT mnTabControlStyle; + USHORT mnHighContrast; + USHORT mnUseSystemUIFonts; + USHORT mnAutoMnemonic; + USHORT mnUseImagesInMenus; + ULONG mnUseFlatBorders; + long mnMinThumbSize; + ULONG mnSymbolsStyle; + USHORT mnSkipDisabledInMenus; +}; + +// ----------------- +// - StyleSettings - +// ----------------- + +#define STYLE_OPTION_MONO ((ULONG)0x00000001) +#define STYLE_OPTION_COLOR ((ULONG)0x00000002) +#define STYLE_OPTION_FLAT ((ULONG)0x00000004) +#define STYLE_OPTION_GREAT ((ULONG)0x00000008) +#define STYLE_OPTION_HIGHLIGHT ((ULONG)0x00000010) +#define STYLE_OPTION_ADVANCEDUSER ((ULONG)0x00000020) +#define STYLE_OPTION_SCROLLARROW ((ULONG)0x00000040) +#define STYLE_OPTION_SPINARROW ((ULONG)0x00000080) +#define STYLE_OPTION_SPINUPDOWN ((ULONG)0x00000100) +#define STYLE_OPTION_NOMNEMONICS ((ULONG)0x00000200) +#define STYLE_OPTION_WINSTYLE ((ULONG)0x00010000) +#define STYLE_OPTION_OS2STYLE ((ULONG)0x00020000) +#define STYLE_OPTION_MACSTYLE ((ULONG)0x00040000) +#define STYLE_OPTION_UNIXSTYLE ((ULONG)0x00080000) +#define STYLE_OPTION_SYSTEMSTYLE ((ULONG)0x000F0000) +#define STYLE_OPTION_HIDEDISABLED ((ULONG)0x00100000) + +#define DRAGFULL_OPTION_WINDOWMOVE ((ULONG)0x00000001) +#define DRAGFULL_OPTION_WINDOWSIZE ((ULONG)0x00000002) +#define DRAGFULL_OPTION_OBJECTMOVE ((ULONG)0x00000004) +#define DRAGFULL_OPTION_OBJECTSIZE ((ULONG)0x00000008) +#define DRAGFULL_OPTION_DOCKING ((ULONG)0x00000010) +#define DRAGFULL_OPTION_SPLIT ((ULONG)0x00000020) +#define DRAGFULL_OPTION_SCROLL ((ULONG)0x00000040) + +#define LOGO_DISPLAYTIME_NOLOGO ((ULONG)0) +#define LOGO_DISPLAYTIME_STARTTIME ((ULONG)0xFFFFFFFF) + +#define ANIMATION_OPTION_MINIMIZE ((ULONG)0x00000001) +#define ANIMATION_OPTION_POPUP ((ULONG)0x00000002) +#define ANIMATION_OPTION_DIALOG ((ULONG)0x00000004) +#define ANIMATION_OPTION_TREE ((ULONG)0x00000008) +#define ANIMATION_OPTION_SCROLL ((ULONG)0x00000010) + +#define SELECTION_OPTION_WORD ((ULONG)0x00000001) +#define SELECTION_OPTION_FOCUS ((ULONG)0x00000002) +#define SELECTION_OPTION_INVERT ((ULONG)0x00000004) +#define SELECTION_OPTION_SHOWFIRST ((ULONG)0x00000008) + +#define DISPLAY_OPTION_AA_DISABLE ((ULONG)0x00000001) + +#define STYLE_RADIOBUTTON_WIN ((USHORT)0x0001) +#define STYLE_RADIOBUTTON_OS2 ((USHORT)0x0002) +#define STYLE_RADIOBUTTON_MAC ((USHORT)0x0003) +#define STYLE_RADIOBUTTON_UNIX ((USHORT)0x0004) +#define STYLE_RADIOBUTTON_MONO ((USHORT)0x0005) +#define STYLE_RADIOBUTTON_STYLE ((USHORT)0x000F) + +#define STYLE_CHECKBOX_WIN ((USHORT)0x0001) +#define STYLE_CHECKBOX_OS2 ((USHORT)0x0002) +#define STYLE_CHECKBOX_MAC ((USHORT)0x0003) +#define STYLE_CHECKBOX_UNIX ((USHORT)0x0004) +#define STYLE_CHECKBOX_MONO ((USHORT)0x0005) +#define STYLE_CHECKBOX_STYLE ((USHORT)0x000F) + +#define STYLE_PUSHBUTTON_WIN ((USHORT)0x0001) +#define STYLE_PUSHBUTTON_OS2 ((USHORT)0x0002) +#define STYLE_PUSHBUTTON_MAC ((USHORT)0x0003) +#define STYLE_PUSHBUTTON_UNIX ((USHORT)0x0004) +#define STYLE_PUSHBUTTON_STYLE ((USHORT)0x000F) + +#define STYLE_TABCONTROL_SINGLELINE ((USHORT)0x0001) +#define STYLE_TABCONTROL_COLOR ((USHORT)0x0002) + +#define STYLE_TOOLBAR_ICONSIZE_UNKNOWN ((ULONG)0) +#define STYLE_TOOLBAR_ICONSIZE_SMALL ((ULONG)1) +#define STYLE_TOOLBAR_ICONSIZE_LARGE ((ULONG)2) + +#define STYLE_SYMBOLS_AUTO ((ULONG)0) +#define STYLE_SYMBOLS_DEFAULT ((ULONG)1) +#define STYLE_SYMBOLS_HICONTRAST ((ULONG)2) +#define STYLE_SYMBOLS_INDUSTRIAL ((ULONG)3) +#define STYLE_SYMBOLS_CRYSTAL ((ULONG)4) + +#define STYLE_CURSOR_NOBLINKTIME ((ULONG)0xFFFFFFFF) + +class VCL_DLLPUBLIC StyleSettings +{ + void CopyData(); + +private: + ImplStyleData* mpData; + +public: + StyleSettings(); + StyleSettings( const StyleSettings& rSet ); + ~StyleSettings(); + + void Set3DColors( const Color& rColor ); + void SetFaceColor( const Color& rColor ) + { CopyData(); mpData->maFaceColor = rColor; } + const Color& GetFaceColor() const + { return mpData->maFaceColor; } + Color GetFaceGradientColor() const; + Color GetSeparatorColor() const; + void SetCheckedColor( const Color& rColor ) + { CopyData(); mpData->maCheckedColor = rColor; } + const Color& GetCheckedColor() const + { return mpData->maCheckedColor; } + void SetLightColor( const Color& rColor ) + { CopyData(); mpData->maLightColor = rColor; } + const Color& GetLightColor() const + { return mpData->maLightColor; } + void SetLightBorderColor( const Color& rColor ) + { CopyData(); mpData->maLightBorderColor = rColor; } + const Color& GetLightBorderColor() const + { return mpData->maLightBorderColor; } + void SetShadowColor( const Color& rColor ) + { CopyData(); mpData->maShadowColor = rColor; } + const Color& GetShadowColor() const + { return mpData->maShadowColor; } + void SetDarkShadowColor( const Color& rColor ) + { CopyData(); mpData->maDarkShadowColor = rColor; } + const Color& GetDarkShadowColor() const + { return mpData->maDarkShadowColor; } + void SetButtonTextColor( const Color& rColor ) + { CopyData(); mpData->maButtonTextColor = rColor; } + const Color& GetButtonTextColor() const + { return mpData->maButtonTextColor; } + void SetButtonRolloverTextColor( const Color& rColor ) + { CopyData(); mpData->maButtonRolloverTextColor = rColor; } + const Color& GetButtonRolloverTextColor() const + { return mpData->maButtonRolloverTextColor; } + void SetRadioCheckTextColor( const Color& rColor ) + { CopyData(); mpData->maRadioCheckTextColor = rColor; } + const Color& GetRadioCheckTextColor() const + { return mpData->maRadioCheckTextColor; } + void SetGroupTextColor( const Color& rColor ) + { CopyData(); mpData->maGroupTextColor = rColor; } + const Color& GetGroupTextColor() const + { return mpData->maGroupTextColor; } + void SetLabelTextColor( const Color& rColor ) + { CopyData(); mpData->maLabelTextColor = rColor; } + const Color& GetLabelTextColor() const + { return mpData->maLabelTextColor; } + void SetInfoTextColor( const Color& rColor ) + { CopyData(); mpData->maInfoTextColor = rColor; } + const Color& GetInfoTextColor() const + { return mpData->maInfoTextColor; } + void SetWindowColor( const Color& rColor ) + { CopyData(); mpData->maWindowColor = rColor; } + const Color& GetWindowColor() const + { return mpData->maWindowColor; } + void SetWindowTextColor( const Color& rColor ) + { CopyData(); mpData->maWindowTextColor = rColor; } + const Color& GetWindowTextColor() const + { return mpData->maWindowTextColor; } + void SetDialogColor( const Color& rColor ) + { CopyData(); mpData->maDialogColor = rColor; } + const Color& GetDialogColor() const + { return mpData->maDialogColor; } + void SetDialogTextColor( const Color& rColor ) + { CopyData(); mpData->maDialogTextColor = rColor; } + const Color& GetDialogTextColor() const + { return mpData->maDialogTextColor; } + void SetWorkspaceColor( const Color& rColor ) + { CopyData(); mpData->maWorkspaceColor = rColor; } + const Color& GetWorkspaceColor() const + { return mpData->maWorkspaceColor; } + void SetFieldColor( const Color& rColor ) + { CopyData(); mpData->maFieldColor = rColor; } + const Color& GetFieldColor() const + { return mpData->maFieldColor; } + void SetFieldTextColor( const Color& rColor ) + { CopyData(); mpData->maFieldTextColor = rColor; } + const Color& GetFieldTextColor() const + { return mpData->maFieldTextColor; } + void SetFieldRolloverTextColor( const Color& rColor ) + { CopyData(); mpData->maFieldRolloverTextColor = rColor; } + const Color& GetFieldRolloverTextColor() const + { return mpData->maFieldRolloverTextColor; } + void SetActiveColor( const Color& rColor ) + { CopyData(); mpData->maActiveColor = rColor; } + const Color& GetActiveColor() const + { return mpData->maActiveColor; } + void SetActiveColor2( const Color& rColor ) + { CopyData(); mpData->maActiveColor2 = rColor; } + const Color& GetActiveColor2() const + { return mpData->maActiveColor2; } + void SetActiveTextColor( const Color& rColor ) + { CopyData(); mpData->maActiveTextColor = rColor; } + const Color& GetActiveTextColor() const + { return mpData->maActiveTextColor; } + void SetActiveBorderColor( const Color& rColor ) + { CopyData(); mpData->maActiveBorderColor = rColor; } + const Color& GetActiveBorderColor() const + { return mpData->maActiveBorderColor; } + void SetDeactiveColor( const Color& rColor ) + { CopyData(); mpData->maDeactiveColor = rColor; } + const Color& GetDeactiveColor() const + { return mpData->maDeactiveColor; } + void SetDeactiveColor2( const Color& rColor ) + { CopyData(); mpData->maDeactiveColor2 = rColor; } + const Color& GetDeactiveColor2() const + { return mpData->maDeactiveColor2; } + void SetDeactiveTextColor( const Color& rColor ) + { CopyData(); mpData->maDeactiveTextColor = rColor; } + const Color& GetDeactiveTextColor() const + { return mpData->maDeactiveTextColor; } + void SetDeactiveBorderColor( const Color& rColor ) + { CopyData(); mpData->maDeactiveBorderColor = rColor; } + const Color& GetDeactiveBorderColor() const + { return mpData->maDeactiveBorderColor; } + void SetHighlightColor( const Color& rColor ) + { CopyData(); mpData->maHighlightColor = rColor; } + const Color& GetHighlightColor() const + { return mpData->maHighlightColor; } + void SetHighlightTextColor( const Color& rColor ) + { CopyData(); mpData->maHighlightTextColor = rColor; } + const Color& GetHighlightTextColor() const + { return mpData->maHighlightTextColor; } + void SetDisableColor( const Color& rColor ) + { CopyData(); mpData->maDisableColor = rColor; } + const Color& GetDisableColor() const + { return mpData->maDisableColor; } + void SetHelpColor( const Color& rColor ) + { CopyData(); mpData->maHelpColor = rColor; } + const Color& GetHelpColor() const + { return mpData->maHelpColor; } + void SetHelpTextColor( const Color& rColor ) + { CopyData(); mpData->maHelpTextColor = rColor; } + const Color& GetHelpTextColor() const + { return mpData->maHelpTextColor; } + void SetMenuColor( const Color& rColor ) + { CopyData(); mpData->maMenuColor = rColor; } + const Color& GetMenuColor() const + { return mpData->maMenuColor; } + void SetMenuBarColor( const Color& rColor ) + { CopyData(); mpData->maMenuBarColor = rColor; } + const Color& GetMenuBarColor() const + { return mpData->maMenuBarColor; } + void SetMenuBorderColor( const Color& rColor ) + { CopyData(); mpData->maMenuBorderColor = rColor; } + const Color& GetMenuBorderColor() const + { return mpData->maMenuBorderColor; } + void SetMenuTextColor( const Color& rColor ) + { CopyData(); mpData->maMenuTextColor = rColor; } + const Color& GetMenuTextColor() const + { return mpData->maMenuTextColor; } + void SetMenuHighlightColor( const Color& rColor ) + { CopyData(); mpData->maMenuHighlightColor = rColor; } + const Color& GetMenuHighlightColor() const + { return mpData->maMenuHighlightColor; } + void SetMenuHighlightTextColor( const Color& rColor ) + { CopyData(); mpData->maMenuHighlightTextColor = rColor; } + const Color& GetMenuHighlightTextColor() const + { return mpData->maMenuHighlightTextColor; } + void SetLinkColor( const Color& rColor ) + { CopyData(); mpData->maLinkColor = rColor; } + const Color& GetLinkColor() const + { return mpData->maLinkColor; } + void SetVisitedLinkColor( const Color& rColor ) + { CopyData(); mpData->maVisitedLinkColor = rColor; } + const Color& GetVisitedLinkColor() const + { return mpData->maVisitedLinkColor; } + void SetHighlightLinkColor( const Color& rColor ) + { CopyData(); mpData->maHighlightLinkColor = rColor; } + const Color& GetHighlightLinkColor() const + { return mpData->maHighlightLinkColor; } + + void SetMonoColor( const Color& rColor ) + { CopyData(); mpData->maMonoColor = rColor; } + const Color& GetMonoColor() const + { return mpData->maMonoColor; } + + void SetHighContrastMode( BOOL bHighContrast ) + { CopyData(); mpData->mnHighContrast = bHighContrast; } + BOOL GetHighContrastMode() const + { return (BOOL) mpData->mnHighContrast; } + BOOL IsHighContrastBlackAndWhite() const; + void SetUseSystemUIFonts( BOOL bUseSystemUIFonts ) + { CopyData(); mpData->mnUseSystemUIFonts = bUseSystemUIFonts; } + BOOL GetUseSystemUIFonts() const + { return (BOOL) mpData->mnUseSystemUIFonts; } + void SetUseFlatBorders( BOOL bUseFlatBorders ) + { CopyData(); mpData->mnUseFlatBorders = bUseFlatBorders; } + BOOL GetUseFlatBorders() const + { return (BOOL) mpData->mnUseFlatBorders; } + void SetUseFlatMenues( BOOL bUseFlatMenues ) + { CopyData(); mpData->mnUseFlatMenues = bUseFlatMenues; } + BOOL GetUseFlatMenues() const + { return (BOOL) mpData->mnUseFlatMenues; } + void SetUseImagesInMenus( BOOL bUseImagesInMenus ) + { CopyData(); mpData->mnUseImagesInMenus = bUseImagesInMenus; } + BOOL GetUseImagesInMenus() const + { return (BOOL) mpData->mnUseImagesInMenus; } + void SetSkipDisabledInMenus( BOOL bSkipDisabledInMenus ) + { CopyData(); mpData->mnSkipDisabledInMenus = bSkipDisabledInMenus; } + BOOL GetSkipDisabledInMenus() const + { return (BOOL) mpData->mnSkipDisabledInMenus; } + + void SetAppFont( const Font& rFont ) + { CopyData(); mpData->maAppFont = rFont; } + const Font& GetAppFont() const + { return mpData->maAppFont; } + void SetHelpFont( const Font& rFont ) + { CopyData(); mpData->maHelpFont = rFont; } + const Font& GetHelpFont() const + { return mpData->maHelpFont; } + void SetTitleFont( const Font& rFont ) + { CopyData(); mpData->maTitleFont = rFont; } + const Font& GetTitleFont() const + { return mpData->maTitleFont; } + void SetFloatTitleFont( const Font& rFont ) + { CopyData(); mpData->maFloatTitleFont = rFont; } + const Font& GetFloatTitleFont() const + { return mpData->maFloatTitleFont; } + void SetMenuFont( const Font& rFont ) + { CopyData(); mpData->maMenuFont = rFont; } + const Font& GetMenuFont() const + { return mpData->maMenuFont; } + void SetToolFont( const Font& rFont ) + { CopyData(); mpData->maToolFont = rFont; } + const Font& GetToolFont() const + { return mpData->maToolFont; } + void SetGroupFont( const Font& rFont ) + { CopyData(); mpData->maGroupFont = rFont; } + const Font& GetGroupFont() const + { return mpData->maGroupFont; } + void SetLabelFont( const Font& rFont ) + { CopyData(); mpData->maLabelFont = rFont; } + const Font& GetLabelFont() const + { return mpData->maLabelFont; } + void SetInfoFont( const Font& rFont ) + { CopyData(); mpData->maInfoFont = rFont; } + const Font& GetInfoFont() const + { return mpData->maInfoFont; } + void SetRadioCheckFont( const Font& rFont ) + { CopyData(); mpData->maRadioCheckFont = rFont; } + const Font& GetRadioCheckFont() const + { return mpData->maRadioCheckFont; } + void SetPushButtonFont( const Font& rFont ) + { CopyData(); mpData->maPushButtonFont = rFont; } + const Font& GetPushButtonFont() const + { return mpData->maPushButtonFont; } + void SetFieldFont( const Font& rFont ) + { CopyData(); mpData->maFieldFont = rFont; } + const Font& GetFieldFont() const + { return mpData->maFieldFont; } + void SetIconFont( const Font& rFont ) + { CopyData(); mpData->maIconFont = rFont; } + const Font& GetIconFont() const + { return mpData->maIconFont; } + + void SetRadioButtonStyle( USHORT nStyle ) + { CopyData(); mpData->mnRadioButtonStyle = nStyle; } + USHORT GetRadioButtonStyle() const + { return mpData->mnRadioButtonStyle; } + void SetCheckBoxStyle( USHORT nStyle ) + { CopyData(); mpData->mnCheckBoxStyle = nStyle; } + USHORT GetCheckBoxStyle() const + { return mpData->mnCheckBoxStyle; } + void SetPushButtonStyle( USHORT nStyle ) + { CopyData(); mpData->mnPushButtonStyle = nStyle; } + USHORT GetPushButtonStyle() const + { return mpData->mnPushButtonStyle; } + void SetTabControlStyle( USHORT nStyle ) + { CopyData(); mpData->mnTabControlStyle = nStyle; } + USHORT GetTabControlStyle() const + { return mpData->mnTabControlStyle; } + + void SetBorderSize( long nSize ) + { CopyData(); mpData->mnBorderSize = nSize; } + long GetBorderSize() const + { return mpData->mnBorderSize; } + void SetTitleHeight( long nSize ) + { CopyData(); mpData->mnTitleHeight = nSize; } + long GetTitleHeight() const + { return mpData->mnTitleHeight; } + void SetFloatTitleHeight( long nSize ) + { CopyData(); mpData->mnFloatTitleHeight = nSize; } + long GetFloatTitleHeight() const + { return mpData->mnFloatTitleHeight; } + void SetTearOffTitleHeight( long nSize ) + { CopyData(); mpData->mnTearOffTitleHeight = nSize; } + long GetTearOffTitleHeight() const + { return mpData->mnTearOffTitleHeight; } + void SetMenuBarHeight( long nSize ) + { CopyData(); mpData->mnMenuBarHeight = nSize; } + long GetMenuBarHeight() const + { return mpData->mnMenuBarHeight; } + void SetScrollBarSize( long nSize ) + { CopyData(); mpData->mnScrollBarSize = nSize; } + long GetScrollBarSize() const + { return mpData->mnScrollBarSize; } + void SetMinThumbSize( long nSize ) + { CopyData(); mpData->mnMinThumbSize = nSize; } + long GetMinThumbSize() const + { return mpData->mnMinThumbSize; } + void SetSpinSize( long nSize ) + { CopyData(); mpData->mnSpinSize = nSize; } + long GetSpinSize() const + { return mpData->mnSpinSize; } + void SetSplitSize( long nSize ) + { CopyData(); mpData->mnSplitSize = nSize; } + long GetSplitSize() const + { return mpData->mnSplitSize; } + + void SetIconHorzSpace( long nSpace ) + { CopyData(); mpData->mnIconHorzSpace = nSpace; } + long GetIconHorzSpace() const + { return mpData->mnIconHorzSpace; } + void SetIconVertSpace( long nSpace ) + { CopyData(); mpData->mnIconVertSpace = nSpace; } + long GetIconVertSpace() const + { return mpData->mnIconVertSpace; } + + void SetCursorSize( long nSize ) + { CopyData(); mpData->mnCursorSize = nSize; } + long GetCursorSize() const + { return mpData->mnCursorSize; } + void SetCursorBlinkTime( long nBlinkTime ) + { CopyData(); mpData->mnCursorBlinkTime = nBlinkTime; } + long GetCursorBlinkTime() const + { return mpData->mnCursorBlinkTime; } + + void SetScreenZoom( USHORT nPercent ) + { CopyData(); mpData->mnScreenZoom = nPercent; } + USHORT GetScreenZoom() const + { return mpData->mnScreenZoom; } + void SetScreenFontZoom( USHORT nPercent ) + { CopyData(); mpData->mnScreenFontZoom = nPercent; } + USHORT GetScreenFontZoom() const + { return mpData->mnScreenFontZoom; } + + void SetLogoDisplayTime( ULONG nDisplayTime ) + { CopyData(); mpData->mnLogoDisplayTime = nDisplayTime; } + ULONG GetLogoDisplayTime() const + { return mpData->mnLogoDisplayTime; } + + void SetDragFullOptions( ULONG nOptions ) + { CopyData(); mpData->mnDragFullOptions = nOptions; } + ULONG GetDragFullOptions() const + { return mpData->mnDragFullOptions; } + + void SetAnimationOptions( ULONG nOptions ) + { CopyData(); mpData->mnAnimationOptions = nOptions; } + ULONG GetAnimationOptions() const + { return mpData->mnAnimationOptions; } + + void SetSelectionOptions( ULONG nOptions ) + { CopyData(); mpData->mnSelectionOptions = nOptions; } + ULONG GetSelectionOptions() const + { return mpData->mnSelectionOptions; } + + void SetDisplayOptions( ULONG nOptions ) + { CopyData(); mpData->mnDisplayOptions = nOptions; } + ULONG GetDisplayOptions() const + { return mpData->mnDisplayOptions; } + void SetAntialiasingMinPixelHeight( long nMinPixel ) + { CopyData(); mpData->mnAntialiasedMin = nMinPixel; } + ULONG GetAntialiasingMinPixelHeight() const + { return mpData->mnAntialiasedMin; } + + void SetOptions( ULONG nOptions ) + { CopyData(); mpData->mnOptions = nOptions; } + ULONG GetOptions() const + { return mpData->mnOptions; } + void SetAutoMnemonic( BOOL bAutoMnemonic ) + { CopyData(); mpData->mnAutoMnemonic = (USHORT)bAutoMnemonic; } + BOOL GetAutoMnemonic() const + { return mpData->mnAutoMnemonic ? TRUE : FALSE; } + + void SetFontColor( const Color& rColor ) + { CopyData(); mpData->maFontColor = rColor; } + const Color& GetFontColor() const + { return mpData->maFontColor; } + + void SetToolbarIconSize( ULONG nSize ) + { CopyData(); mpData->mnToolbarIconSize = nSize; } + ULONG GetToolbarIconSize() const + { return mpData->mnToolbarIconSize; } + + void SetSymbolsStyle( ULONG nStyle ) + { CopyData(); mpData->mnSymbolsStyle = nStyle; } + ULONG GetSymbolsStyle() const + { return mpData->mnSymbolsStyle; } + ULONG GetCurrentSymbolsStyle() const; + + void SetSymbolsStyleName( const ::rtl::OUString &rName ) + { return SetSymbolsStyle( ImplNameToSymbolsStyle( rName ) ); } + ::rtl::OUString GetSymbolsStyleName() const + { return ImplSymbolsStyleToName( GetSymbolsStyle() ); } + ::rtl::OUString GetCurrentSymbolsStyleName() const + { return ImplSymbolsStyleToName( GetCurrentSymbolsStyle() ); } + + void SetStandardStyles(); + void SetStandardWinStyles(); + void SetStandardOS2Styles(); + void SetStandardMacStyles(); + void SetStandardUnixStyles(); + + const StyleSettings& operator =( const StyleSettings& rSet ); + + BOOL operator ==( const StyleSettings& rSet ) const; + BOOL operator !=( const StyleSettings& rSet ) const + { return !(*this == rSet); } + +protected: + ::rtl::OUString ImplSymbolsStyleToName( ULONG nStyle ) const; + ULONG ImplNameToSymbolsStyle( const ::rtl::OUString &rName ) const; +}; + +// ---------------- +// - ImplMiscData - +// ---------------- + +class ImplMiscData +{ + friend class MiscSettings; + + ImplMiscData(); + ImplMiscData( const ImplMiscData& rData ); + +private: + ULONG mnRefCount; + USHORT mnTwoDigitYearStart; + USHORT mnEnableATT; + BOOL mbEnableLocalizedDecimalSep; + USHORT mnDisablePrinting; +}; + +// ---------------- +// - MiscSettings - +// ---------------- + +class VCL_DLLPUBLIC MiscSettings +{ + void CopyData(); + +private: + ImplMiscData* mpData; + +public: + MiscSettings(); + MiscSettings( const MiscSettings& rSet ); + ~MiscSettings(); + + void SetTwoDigitYearStart( USHORT nYearStart ) + { CopyData(); mpData->mnTwoDigitYearStart = nYearStart; } + USHORT GetTwoDigitYearStart() const + { return mpData->mnTwoDigitYearStart; } + void SetEnableATToolSupport( BOOL bEnable ); + BOOL GetEnableATToolSupport() const; + void SetDisablePrinting( BOOL bEnable ); + BOOL GetDisablePrinting() const; + void SetEnableLocalizedDecimalSep( BOOL bEnable ); + BOOL GetEnableLocalizedDecimalSep() const; + const MiscSettings& operator =( const MiscSettings& rSet ); + + BOOL operator ==( const MiscSettings& rSet ) const; + BOOL operator !=( const MiscSettings& rSet ) const + { return !(*this == rSet); } +}; + +// ----------------- +// - ImplSoundData - +// ----------------- + +class ImplSoundData +{ + friend class SoundSettings; + + ImplSoundData(); + ImplSoundData( const ImplSoundData& rData ); + +private: + ULONG mnRefCount; + ULONG mnOptions; +}; + +// ----------------- +// - SoundSettings - +// ----------------- + +#define SOUND_OPTION_ON ((ULONG)0x00000001) +#define SOUND_OPTION_NOTIFYBEEP ((ULONG)0x00000002) +#define SOUND_OPTION_WARNINGBEEP ((ULONG)0x00000004) +#define SOUND_OPTION_ERRORBEEP ((ULONG)0x00000008) + +class VCL_DLLPUBLIC SoundSettings +{ + void CopyData(); + +private: + ImplSoundData* mpData; + +public: + SoundSettings(); + SoundSettings( const SoundSettings& rSet ); + ~SoundSettings(); + + void SetOptions( ULONG nOptions ) + { CopyData(); mpData->mnOptions = nOptions; } + ULONG GetOptions() const + { return mpData->mnOptions; } + + const SoundSettings& operator =( const SoundSettings& rSet ); + + BOOL operator ==( const SoundSettings& rSet ) const; + BOOL operator !=( const SoundSettings& rSet ) const + { return !(*this == rSet); } +}; + +// ------------------------ +// - ImplNotificationData - +// ------------------------ + +class ImplNotificationData +{ + friend class NotificationSettings; + + ImplNotificationData(); + ImplNotificationData( const ImplNotificationData& rData ); + +private: + ULONG mnRefCount; + ULONG mnOptions; +}; + +// ------------------------ +// - NotificationSettings - +// ------------------------ + +class VCL_DLLPUBLIC NotificationSettings +{ + void CopyData(); + +private: + ImplNotificationData* mpData; + +public: + NotificationSettings(); + NotificationSettings( const NotificationSettings& rSet ); + ~NotificationSettings(); + + void SetOptions( ULONG nOptions ) + { CopyData(); mpData->mnOptions = nOptions; } + ULONG GetOptions() const + { return mpData->mnOptions; } + + const NotificationSettings& operator =( const NotificationSettings& rSet ); + + BOOL operator ==( const NotificationSettings& rSet ) const; + BOOL operator !=( const NotificationSettings& rSet ) const + { return !(*this == rSet); } +}; + +// ---------------- +// - ImplHelpData - +// ---------------- + +class ImplHelpData +{ + friend class HelpSettings; + + ImplHelpData(); + ImplHelpData( const ImplHelpData& rData ); + +private: + ULONG mnRefCount; + ULONG mnOptions; + ULONG mnTipDelay; + ULONG mnTipTimeout; + ULONG mnBalloonDelay; +}; + +// ---------------- +// - HelpSettings - +// ---------------- + +#define HELP_OPTION_QUICK ((ULONG)0x00000001) +#define HELP_OPTION_ACTIVE ((ULONG)0x00000002) + +class VCL_DLLPUBLIC HelpSettings +{ + void CopyData(); + +private: + ImplHelpData* mpData; + +public: + HelpSettings(); + HelpSettings( const HelpSettings& rSet ); + ~HelpSettings(); + + void SetOptions( ULONG nOptions ) + { CopyData(); mpData->mnOptions = nOptions; } + ULONG GetOptions() const + { return mpData->mnOptions; } + void SetTipDelay( ULONG nTipDelay ) + { CopyData(); mpData->mnTipDelay = nTipDelay; } + ULONG GetTipDelay() const + { return mpData->mnTipDelay; } + void SetTipTimeout( ULONG nTipTimeout ) + { CopyData(); mpData->mnTipTimeout = nTipTimeout; } + ULONG GetTipTimeout() const + { return mpData->mnTipTimeout; } + void SetBalloonDelay( ULONG nBalloonDelay ) + { CopyData(); mpData->mnBalloonDelay = nBalloonDelay; } + ULONG GetBalloonDelay() const + { return mpData->mnBalloonDelay; } + + const HelpSettings& operator =( const HelpSettings& rSet ); + + BOOL operator ==( const HelpSettings& rSet ) const; + BOOL operator !=( const HelpSettings& rSet ) const + { return !(*this == rSet); } +}; + +// ----------------------- +// - ImplAllSettingsData - +// ----------------------- + +class ImplAllSettingsData +{ + friend class AllSettings; + + ImplAllSettingsData(); + ImplAllSettingsData( const ImplAllSettingsData& rData ); + ~ImplAllSettingsData(); + +private: + ULONG mnRefCount; + MachineSettings maMachineSettings; + MouseSettings maMouseSettings; + KeyboardSettings maKeyboardSettings; + StyleSettings maStyleSettings; + MiscSettings maMiscSettings; + SoundSettings maSoundSettings; + NotificationSettings maNotificationSettings; + HelpSettings maHelpSettings; + ::com::sun::star::lang::Locale maLocale; + ULONG mnSystemUpdate; + ULONG mnWindowUpdate; + ::com::sun::star::lang::Locale maUILocale; + LanguageType meLanguage; + LanguageType meUILanguage; + LocaleDataWrapper* mpLocaleDataWrapper; + LocaleDataWrapper* mpUILocaleDataWrapper; + CollatorWrapper* mpCollatorWrapper; + CollatorWrapper* mpUICollatorWrapper; + vcl::I18nHelper* mpI18nHelper; + vcl::I18nHelper* mpUII18nHelper; +}; + +// --------------- +// - AllSettings - +// --------------- + +#define SETTINGS_MACHINE ((ULONG)0x00000001) +#define SETTINGS_MOUSE ((ULONG)0x00000002) +#define SETTINGS_KEYBOARD ((ULONG)0x00000004) +#define SETTINGS_STYLE ((ULONG)0x00000008) +#define SETTINGS_MISC ((ULONG)0x00000010) +#define SETTINGS_SOUND ((ULONG)0x00000020) +#define SETTINGS_NOTIFICATION ((ULONG)0x00000040) +#define SETTINGS_HELP ((ULONG)0x00000080) +#define SETTINGS_INTERNATIONAL ((ULONG)0x00000100) /* was for class International, has no effect anymore */ +#define SETTINGS_LOCALE ((ULONG)0x00000200) +#define SETTINGS_UILOCALE ((ULONG)0x00000400) +#define SETTINGS_ALLSETTINGS (SETTINGS_MACHINE |\ + SETTINGS_MOUSE | SETTINGS_KEYBOARD |\ + SETTINGS_STYLE | SETTINGS_MISC |\ + SETTINGS_SOUND | SETTINGS_NOTIFICATION |\ + SETTINGS_HELP |\ + SETTINGS_LOCALE | SETTINGS_UILOCALE ) +#define SETTINGS_IN_UPDATE_SETTINGS ((ULONG)0x00000800) // this flag indicates that the data changed event was created + // in Windows::UpdateSettings probably because of a global + // settings changed + +class VCL_DLLPUBLIC AllSettings +{ + void CopyData(); + +private: + ImplAllSettingsData* mpData; + +public: + AllSettings(); + AllSettings( const AllSettings& rSet ); + ~AllSettings(); + + void SetMachineSettings( const MachineSettings& rSet ) + { CopyData(); mpData->maMachineSettings = rSet; } + const MachineSettings& GetMachineSettings() const + { return mpData->maMachineSettings; } + + void SetMouseSettings( const MouseSettings& rSet ) + { CopyData(); mpData->maMouseSettings = rSet; } + const MouseSettings& GetMouseSettings() const + { return mpData->maMouseSettings; } + + void SetKeyboardSettings( const KeyboardSettings& rSet ) + { CopyData(); mpData->maKeyboardSettings = rSet; } + const KeyboardSettings& GetKeyboardSettings() const + { return mpData->maKeyboardSettings; } + + void SetStyleSettings( const StyleSettings& rSet ) + { CopyData(); mpData->maStyleSettings = rSet; } + const StyleSettings& GetStyleSettings() const + { return mpData->maStyleSettings; } + + void SetMiscSettings( const MiscSettings& rSet ) + { CopyData(); mpData->maMiscSettings = rSet; } + const MiscSettings& GetMiscSettings() const + { return mpData->maMiscSettings; } + + void SetSoundSettings( const SoundSettings& rSet ) + { CopyData(); mpData->maSoundSettings = rSet; } + const SoundSettings& GetSoundSettings() const + { return mpData->maSoundSettings; } + + void SetNotificationSettings( const NotificationSettings& rSet ) + { CopyData(); mpData->maNotificationSettings = rSet; } + const NotificationSettings& GetNotificationSettings() const + { return mpData->maNotificationSettings; } + + void SetHelpSettings( const HelpSettings& rSet ) + { CopyData(); mpData->maHelpSettings = rSet; } + const HelpSettings& GetHelpSettings() const + { return mpData->maHelpSettings; } + + void SetLocale( const ::com::sun::star::lang::Locale& rLocale ); + const ::com::sun::star::lang::Locale& GetLocale() const; + void SetUILocale( const ::com::sun::star::lang::Locale& rLocale ); + const ::com::sun::star::lang::Locale& GetUILocale() const; + void SetLanguage( LanguageType eLang ); + LanguageType GetLanguage() const; + void SetUILanguage( LanguageType eLang ); + LanguageType GetUILanguage() const; + BOOL GetLayoutRTL() const; // returns TRUE if UI language requires right-to-left UI + const LocaleDataWrapper& GetLocaleDataWrapper() const; + const LocaleDataWrapper& GetUILocaleDataWrapper() const; + const vcl::I18nHelper& GetLocaleI18nHelper() const; + const vcl::I18nHelper& GetUILocaleI18nHelper() const; +/* + const CollatorWrapper& GetCollatorWrapper() const; + const CollatorWrapper& GetUICollatorWrapper() const; + sal_Unicode GetMnemonicMatchChar( sal_Unicode c ) const; + String GetMatchString( const String& rStr ) const; + String GetUIMatchString( const String& rStr ) const; + int MatchString( const String& rStr1, xub_StrLen nPos1, xub_StrLen nCount1, + const String& rStr2, xub_StrLen nPos2, xub_StrLen nCount2 ) const; + int MatchUIString( const String& rStr1, xub_StrLen nPos1, xub_StrLen nCount1, + const String& rStr2, xub_StrLen nPos2, xub_StrLen nCount2 ) const; +*/ + + void SetSystemUpdate( ULONG nUpdate ) + { CopyData(); mpData->mnSystemUpdate = nUpdate; } + ULONG GetSystemUpdate() const + { return mpData->mnSystemUpdate; } + void SetWindowUpdate( ULONG nUpdate ) + { CopyData(); mpData->mnWindowUpdate = nUpdate; } + ULONG GetWindowUpdate() const + { return mpData->mnWindowUpdate; } + + ULONG Update( ULONG nFlags, const AllSettings& rSettings ); + ULONG GetChangeFlags( const AllSettings& rSettings ) const; + + const AllSettings& operator =( const AllSettings& rSet ); + + BOOL operator ==( const AllSettings& rSet ) const; + BOOL operator !=( const AllSettings& rSet ) const + { return !(*this == rSet); } +}; + +#endif // _SV_SETTINGS_HXX diff --git a/vcl/inc/vcl/slider.hxx b/vcl/inc/vcl/slider.hxx new file mode 100644 index 0000000000..48fdc956e1 --- /dev/null +++ b/vcl/inc/vcl/slider.hxx @@ -0,0 +1,148 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: slider.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: vg $ $Date: 2007-04-11 18:10:26 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#ifndef _SV_SLIDER_HXX +#define _SV_SLIDER_HXX + +#ifndef _SV_SV_H +#include <vcl/sv.h> +#endif +#ifndef _VCL_DLLAPI_H +#include <vcl/dllapi.h> +#endif + +#ifndef _SV_CTRL_HXX +#include <vcl/ctrl.hxx> +#endif +// for enum ScrollType +#ifndef _SV_SCRBAR_HXX +#include <vcl/scrbar.hxx> +#endif + +// ---------- +// - Slider - +// ---------- + +class VCL_DLLPUBLIC Slider : public Control +{ +private: + Rectangle maChannel1Rect; + Rectangle maChannel2Rect; + Rectangle maThumbRect; + long mnStartPos; + long mnMouseOff; + long mnThumbPixOffset; + long mnThumbPixRange; + long mnThumbPixPos; + long mnChannelPixOffset; + long mnChannelPixRange; + long mnChannelPixTop; + long mnChannelPixBottom; + long mnMinRange; + long mnMaxRange; + long mnThumbPos; + long mnLineSize; + long mnPageSize; + long mnDelta; + USHORT mnDragDraw; + USHORT mnStateFlags; + ScrollType meScrollType; + BOOL mbCalcSize; + BOOL mbFullDrag; + Link maSlideHdl; + Link maEndSlideHdl; + + using Window::ImplInit; + SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle ); + SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId ); + SAL_DLLPRIVATE void ImplInitSettings(); + SAL_DLLPRIVATE void ImplUpdateRects( BOOL bUpdate = TRUE ); + SAL_DLLPRIVATE long ImplCalcThumbPos( long nPixPos ); + SAL_DLLPRIVATE long ImplCalcThumbPosPix( long nPos ); + SAL_DLLPRIVATE void ImplCalc( BOOL bUpdate = TRUE ); + SAL_DLLPRIVATE void ImplDraw( USHORT nDrawFlags ); + SAL_DLLPRIVATE BOOL ImplIsPageUp( const Point& rPos ); + SAL_DLLPRIVATE BOOL ImplIsPageDown( const Point& rPos ); + SAL_DLLPRIVATE long ImplSlide( long nNewPos, BOOL bCallEndSlide ); + SAL_DLLPRIVATE long ImplDoAction( BOOL bCallEndSlide ); + SAL_DLLPRIVATE void ImplDoMouseAction( const Point& rPos, BOOL bCallAction = TRUE ); + SAL_DLLPRIVATE long ImplDoSlide( long nNewPos ); + SAL_DLLPRIVATE long ImplDoSlideAction( ScrollType eScrollType ); + +public: + Slider( Window* pParent, WinBits nStyle = WB_HORZ ); + Slider( Window* pParent, const ResId& rResId ); + + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void MouseButtonUp( const MouseEvent& rMEvt ); + virtual void Tracking( const TrackingEvent& rTEvt ); + virtual void KeyInput( const KeyEvent& rKEvt ); + virtual void Paint( const Rectangle& rRect ); + virtual void Resize(); + virtual void RequestHelp( const HelpEvent& rHEvt ); + virtual void StateChanged( StateChangedType nType ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + + virtual void Slide(); + virtual void EndSlide(); + + void EnableDrag( BOOL bEnable = TRUE ) + { mbFullDrag = bEnable; } + BOOL IsDragEnabled() const { return mbFullDrag; } + + void SetRangeMin( long nNewRange ); + long GetRangeMin() const { return mnMinRange; } + void SetRangeMax( long nNewRange ); + long GetRangeMax() const { return mnMaxRange; } + void SetRange( const Range& rRange ); + Range GetRange() const { return Range( GetRangeMin(), GetRangeMax() ); } + void SetThumbPos( long nThumbPos ); + long GetThumbPos() const { return mnThumbPos; } + void SetLineSize( long nNewSize ) { mnLineSize = nNewSize; } + long GetLineSize() const { return mnLineSize; } + void SetPageSize( long nNewSize ) { mnPageSize = nNewSize; } + long GetPageSize() const { return mnPageSize; } + + long GetDelta() const { return mnDelta; } + + Size CalcWindowSizePixel(); + + void SetSlideHdl( const Link& rLink ) { maSlideHdl = rLink; } + const Link& GetSlideHdl() const { return maSlideHdl; } + void SetEndSlideHdl( const Link& rLink ) { maEndSlideHdl = rLink; } + const Link& GetEndSlideHdl() const { return maEndSlideHdl; } +}; + +#endif // _SV_SLIDER_HXX |