diff options
Diffstat (limited to 'patches/OOO_1_1_2/vcl-inc.diff')
-rw-r--r-- | patches/OOO_1_1_2/vcl-inc.diff | 8737 |
1 files changed, 8737 insertions, 0 deletions
diff --git a/patches/OOO_1_1_2/vcl-inc.diff b/patches/OOO_1_1_2/vcl-inc.diff new file mode 100644 index 000000000..9abbee81a --- /dev/null +++ b/patches/OOO_1_1_2/vcl-inc.diff @@ -0,0 +1,8737 @@ +Index: vcl/inc/abstdlg.hxx +=================================================================== +RCS file: vcl/inc/abstdlg.hxx +diff -N vcl/inc/abstdlg.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/abstdlg.hxx 3 Feb 2004 17:13:21 -0000 1.3 +@@ -0,0 +1,101 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++#ifndef _VCL_ABSTDLG_HXX ++#define _VCL_ABSTDLG_HXX ++ ++// include --------------------------------------------------------------- ++ ++#include <tools/solar.h> ++#include <tools/string.hxx> ++ ++class Window; ++class ResId; ++ ++class VclAbstractDialog ++{ ++public: ++ virtual USHORT Execute() = 0; ++ //virtual void Show( BOOL bVisible = TRUE, USHORT nFlags = 0 ) = 0; ++ virtual ~VclAbstractDialog(); ++}; ++ ++class VclAbstractTerminatedDialog : public VclAbstractDialog ++{ ++public: ++ virtual void EndDialog(long nResult =0) = 0; ++}; ++ ++class VclAbstractRefreshableDialog : public VclAbstractDialog ++{ ++public: ++ virtual void Update() = 0; ++ virtual void Sync() = 0; ++}; ++ ++class VclAbstractDialogFactory ++{ ++public: ++ static VclAbstractDialogFactory* Create(); ++ virtual VclAbstractDialog* CreateVclDialog( Window* pParent, const ResId& rResId ) = 0; ++}; ++ ++#endif ++ +Index: vcl/inc/accel.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/accel.hxx,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -p -u -r1.2 -r1.3 +--- vcl/inc/accel.hxx 7 Dec 2000 13:37:15 -0000 1.2 ++++ vcl/inc/accel.hxx 6 Jan 2004 12:50:31 -0000 1.3 +@@ -65,11 +65,11 @@ + #ifndef _SV_SV_H + #include <sv.h> + #endif +-#ifndef _SV_RESID_HXX +-#include <resid.hxx> ++#ifndef _TOOLS_RESID_HXX ++#include <tools/resid.hxx> + #endif +-#ifndef _SV_RC_HXX +-#include <rc.hxx> ++#ifndef _TOOLS_RC_HXX ++#include <tools/rc.hxx> + #endif + #ifndef _SV_KEYCOD_HXX + #include <keycod.hxx> +@@ -84,6 +84,8 @@ class ImplAccelEntry; + + class Accelerator : public Resource + { ++ friend class ImplAccelManager; ++ + private: + ImplAccelData* mpData; + XubString maHelpStr; +@@ -99,15 +101,12 @@ private: + BOOL* mpDel; + + #if _SOLAR__PRIVATE +-#ifdef _SV_ACCEL_CXX + void ImplInit(); + void ImplCopyData( ImplAccelData& rAccelData ); + void ImplDeleteData(); + void ImplInsertAccel( USHORT nItemId, const KeyCode& rKeyCode, + BOOL bEnable, Accelerator* pAutoAccel ); +-#endif + +- friend class ImplAccelManager; + ImplAccelEntry* ImplGetAccelData( const KeyCode& rKeyCode ) const; + #endif + +@@ -118,7 +117,7 @@ public: + Accelerator(); + Accelerator( const Accelerator& rAccel ); + Accelerator( const ResId& rResId ); +- ~Accelerator(); ++ virtual ~Accelerator(); + + virtual void Activate(); + virtual void Deactivate(); +Index: vcl/inc/alpha.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/alpha.hxx,v +retrieving revision 1.3 +retrieving revision 1.6 +diff -u -p -u -r1.3 -r1.6 +--- vcl/inc/alpha.hxx 12 Sep 2002 09:30:19 -0000 1.3 ++++ vcl/inc/alpha.hxx 21 May 2004 16:20:16 -0000 1.6 +@@ -70,15 +70,15 @@ + // - AlphaMask - + // ------------- + ++class ImageList; ++ + class AlphaMask : private Bitmap + { + friend class BitmapEx; + friend class OutputDevice; ++ friend SvStream& operator<<( SvStream&, const ImageList& ); + + private: +- +- long nDummy1; +- long nDummy2; + + const Bitmap& ImplGetBitmap() const; + void ImplSetBitmap( const Bitmap& rBitmap ); +Index: vcl/inc/apptypes.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/apptypes.hxx,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -p -u -r1.3 -r1.4 +--- vcl/inc/apptypes.hxx 11 Jul 2001 08:32:52 -0000 1.3 ++++ vcl/inc/apptypes.hxx 6 Jan 2004 12:51:37 -0000 1.4 +@@ -62,12 +62,12 @@ + #ifndef _VCL_APPTYPES_HXX + #define _VCL_APPTYPES_HXX + +-#ifndef _RTTI_HXX +-#include <tools/rtti.hxx> +-#endif +- + #ifndef _SV_SV_H + #include <sv.h> ++#endif ++ ++#ifndef _RTTI_HXX ++#include <tools/rtti.hxx> + #endif + + // --------------------- +Index: vcl/inc/bitmap.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/bitmap.hxx,v +retrieving revision 1.8 +retrieving revision 1.13 +diff -u -p -u -r1.8 -r1.13 +--- vcl/inc/bitmap.hxx 24 Apr 2003 14:56:11 -0000 1.8 ++++ vcl/inc/bitmap.hxx 10 Jun 2004 17:36:43 -0000 1.13 +@@ -68,8 +68,8 @@ + #ifndef _SV_MAPMOD_HXX + #include <mapmod.hxx> + #endif +-#ifndef _SV_RC_HXX +-#include <rc.hxx> ++#ifndef _TOOLS_RC_HXX ++#include <tools/rc.hxx> + #endif + #ifndef _SV_REGION_HXX + #include <region.hxx> +@@ -106,8 +106,8 @@ + + // ----------------------------------------------------------------------------- + +-#define BMP_COL_TRANS Color( 252, 3, 251 ) +- ++#define BMP_COL_TRANS Color( 252, 3, 251 ) ++#define BMP_COLOR_MONOCHROME_THRESHOLD 128 + + // --------- + // - Enums - +@@ -188,7 +188,9 @@ enum BmpFilter + enum BmpColorMode + { + BMP_COLOR_NORMAL = 0, +- BMP_COLOR_HIGHCONTRAST = 1 ++ BMP_COLOR_HIGHCONTRAST = 1, ++ BMP_COLOR_MONOCHROME_BLACK = 2, ++ BMP_COLOR_MONOCHROME_WHITE = 3 + }; + + // -------------------- +@@ -330,27 +332,6 @@ public: + BOOL ImplMosaic( const BmpFilterParam* pFilterParam, const Link* pProgress ); + BOOL ImplPopArt( const BmpFilterParam* pFilterParam, const Link* pProgress ); + +-#ifdef REMOTE_APPSERVER +- +- void ImplDrawRemote( OutputDevice* pOut, +- const Point& rSrcPt, const Size& rSrcSz, +- const Point& rDestPt, const Size& rDestSz ) const; +- void ImplDrawRemoteEx( OutputDevice* pOut, +- const Point& rSrcPt, const Size& rSrcSz, +- const Point& rDestPt, const Size& rDestSz, +- const Bitmap& rMask ) const; +- void ImplDrawRemoteAlpha( OutputDevice* pOut, +- const Point& rSrcPt, const Size& rSrcSz, +- const Point& rDestPt, const Size& rDestSz, +- const AlphaMask& rAlpha ) const; +- void ImplDrawRemoteMask( OutputDevice* pOut, +- const Point& rSrcPt, const Size& rSrcSz, +- const Point& rDestPt, const Size& rDestSz, +- const Color& rColor ) const; +- void ImplGetRemoteBmp( OutputDevice* pOut, const Point& rPt, +- const Size& rSz ); +- +-#endif // REMOTE_APPSERVER + #endif // PRIVATE + + public: +Index: vcl/inc/bitmapex.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/bitmapex.hxx,v +retrieving revision 1.5 +retrieving revision 1.9 +diff -u -p -u -r1.5 -r1.9 +--- vcl/inc/bitmapex.hxx 22 Oct 2002 17:07:54 -0000 1.5 ++++ vcl/inc/bitmapex.hxx 21 May 2004 16:20:50 -0000 1.9 +@@ -68,8 +68,8 @@ + #ifndef _SV_ALPHA_HXX + #include <alpha.hxx> + #endif +-#ifndef _SV_COLOR_HXX +-#include <color.hxx> ++#ifndef _TOOLS_COLOR_HXX ++#include <tools/color.hxx> + #endif + + // ------------------- +@@ -100,23 +100,10 @@ private: + Size aBitmapSize; + Color aTransparentColor; + TransparentType eTransparent; +- USHORT nDummy; + BOOL bAlpha; +- BYTE cDummy; + + public: + +-#ifdef REMOTE_APPSERVER +- +- void ImplDrawRemote( OutputDevice* pOut, +- const Point& rSrcPt, const Size& rSrcSz, +- const Point& rDestPt, const Size& rDestSz ) const; +- void ImplDrawRemoteAlpha( OutputDevice* pOut, +- const Point& rSrcPt, const Size& rSrcSz, +- const Point& rDestPt, const Size& rDestSz ) const; +- +-#endif // REMOTE +- + #if _SOLAR__PRIVATE + + ImpBitmap* ImplGetBitmapImpBitmap() const { return aBitmap.ImplGetImpBitmap(); } +Index: vcl/inc/brdwin.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/brdwin.hxx,v +retrieving revision 1.2 +retrieving revision 1.4 +diff -u -p -u -r1.2 -r1.4 +--- vcl/inc/brdwin.hxx 16 Feb 2001 11:09:45 -0000 1.2 ++++ vcl/inc/brdwin.hxx 17 Jun 2004 12:01:23 -0000 1.4 +@@ -156,14 +156,12 @@ private: + BOOL mbHelpBtn; + BOOL mbDisplayActive; + +-#ifdef _SV_BRDWIN_CXX + void ImplInit( Window* pParent, + WinBits nStyle, USHORT nTypeStyle, + SystemParentData* pParentData ); + void ImplInit( Window* pParent, + WinBits nStyle, USHORT nTypeStyle, + const ::com::sun::star::uno::Any& ); +-#endif + + public: + ImplBorderWindow( Window* pParent, +@@ -213,8 +211,8 @@ public: + void SetMinOutputSize( long nWidth, long nHeight ) + { mnMinWidth = nWidth; mnMinHeight = nHeight; } + +- void GetBorder( long& rLeftBorder, long& rTopBorder, +- long& rRightBorder, long& rBottomBorder ) const; ++ void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, ++ sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; + long CalcTitleWidth() const; + }; + +@@ -242,10 +240,10 @@ struct ImplBorderFrameData + long mnTrackY; + long mnTrackWidth; + long mnTrackHeight; +- long mnLeftBorder; +- long mnTopBorder; +- long mnRightBorder; +- long mnBottomBorder; ++ sal_Int32 mnLeftBorder; ++ sal_Int32 mnTopBorder; ++ sal_Int32 mnRightBorder; ++ sal_Int32 mnBottomBorder; + long mnNoTitleTop; + long mnBorderSize; + long mnTitleHeight; +@@ -279,8 +277,8 @@ public: + virtual USHORT RequestHelp( const Point& rPos, Rectangle& rHelpRect ); + + virtual void Init( OutputDevice* pDev, long nWidth, long nHeight ) = 0; +- virtual void GetBorder( long& rLeftBorder, long& rTopBorder, +- long& rRightBorder, long& rBottomBorder ) const = 0; ++ virtual void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, ++ sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const = 0; + virtual long CalcTitleWidth() const = 0; + virtual void DrawWindow( USHORT nDrawFlags, OutputDevice* pOutDev = NULL, const Point* pOffset = NULL ) = 0; + +@@ -305,8 +303,8 @@ public: + ImplNoBorderWindowView( ImplBorderWindow* pBorderWindow ); + + virtual void Init( OutputDevice* pDev, long nWidth, long nHeight ); +- virtual void GetBorder( long& rLeftBorder, long& rTopBorder, +- long& rRightBorder, long& rBottomBorder ) const; ++ virtual void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, ++ sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; + virtual long CalcTitleWidth() const; + virtual void DrawWindow( USHORT nDrawFlags, OutputDevice* pOutDev, const Point* pOffset ); + }; +@@ -324,17 +322,17 @@ class ImplSmallBorderWindowView : public + OutputDevice* mpOutDev; + long mnWidth; + long mnHeight; +- long mnLeftBorder; +- long mnTopBorder; +- long mnRightBorder; +- long mnBottomBorder; ++ sal_Int32 mnLeftBorder; ++ sal_Int32 mnTopBorder; ++ sal_Int32 mnRightBorder; ++ sal_Int32 mnBottomBorder; + + public: + ImplSmallBorderWindowView( ImplBorderWindow* pBorderWindow ); + + virtual void Init( OutputDevice* pOutDev, long nWidth, long nHeight ); +- virtual void GetBorder( long& rLeftBorder, long& rTopBorder, +- long& rRightBorder, long& rBottomBorder ) const; ++ virtual void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, ++ sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; + virtual long CalcTitleWidth() const; + virtual void DrawWindow( USHORT nDrawFlags, OutputDevice* pOutDev, const Point* pOffset ); + }; +@@ -363,8 +361,8 @@ public: + virtual USHORT RequestHelp( const Point& rPos, Rectangle& rHelpRect ); + + virtual void Init( OutputDevice* pDev, long nWidth, long nHeight ); +- virtual void GetBorder( long& rLeftBorder, long& rTopBorder, +- long& rRightBorder, long& rBottomBorder ) const; ++ virtual void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, ++ sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; + virtual long CalcTitleWidth() const; + virtual void DrawWindow( USHORT nDrawFlags, OutputDevice* pOutDev, const Point* pOffset ); + }; +Index: vcl/inc/btndlg.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/btndlg.hxx,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -p -u -r1.2 -r1.3 +--- vcl/inc/btndlg.hxx 7 Dec 2000 13:37:15 -0000 1.2 ++++ vcl/inc/btndlg.hxx 6 Jan 2004 12:53:29 -0000 1.3 +@@ -101,20 +101,15 @@ private: + BOOL mbFormat; + Link maClickHdl; + +-#if _SOLAR__PRIVATE +-#ifdef _SV_BTNDLG_CXX + void ImplInitData(); + PushButton* ImplCreatePushButton( USHORT nBtnFlags ); + ImplBtnDlgItem* ImplGetItem( USHORT nId ) const; + DECL_LINK( ImplClickHdl, PushButton* pBtn ); + void ImplPosControls(); +-#endif +-protected: +- long ImplGetButtonSize(); +-#endif + + protected: + ButtonDialog( WindowType nType ); ++ long ImplGetButtonSize(); + + public: + ButtonDialog( Window* pParent, WinBits nStyle = WB_STDDIALOG ); +Index: vcl/inc/button.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/button.hxx,v +retrieving revision 1.8 +retrieving revision 1.11 +diff -u -p -u -r1.8 -r1.11 +--- vcl/inc/button.hxx 17 Apr 2003 17:55:12 -0000 1.8 ++++ vcl/inc/button.hxx 10 May 2004 15:40:59 -0000 1.11 +@@ -78,6 +78,10 @@ + #include <bitmap.hxx> + #endif + ++#ifndef _SV_NATIVEWIDGETS_HXX ++#include <salnativewidgets.hxx> ++#endif ++ + class UserDrawEvent; + + // ---------- +@@ -124,7 +128,6 @@ protected: + Image maImageHC; + BitmapEx* mpBitmapEx; + BitmapEx* mpBitmapExHC; +- void* mpDummy; + SymbolType meSymbol; + ImageAlign meImageAlign; + TriState meState; +@@ -133,12 +136,9 @@ protected: + USHORT mnButtonState; + BOOL mbPressed; + BOOL mbInUserDraw; +- BOOL mbDummy1; +- BOOL mbDummy2; + Link maToggleHdl; + + #if _SOLAR__PRIVATE +-#ifdef _SV_BUTTON_CXX + void ImplInitData(); + WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle ); + void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); +@@ -148,7 +148,6 @@ protected: + USHORT ImplGetTextStyle() const; + BOOL IsSymbol() const { return ( (meSymbol != SYMBOL_NOSYMBOL) && (meSymbol != SYMBOL_IMAGE) ); } + BOOL IsImage() const { return !!maImage; } +-#endif + + protected: + void ImplInit( Window* pParent, WinBits nStyle ); +@@ -180,6 +179,7 @@ public: + 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(); +@@ -253,10 +246,8 @@ inline BOOL PushButton::IsChecked() cons + + class OKButton : public PushButton + { +-#ifdef _SV_BUTTON_CXX + private: + void ImplInit( Window* pParent, WinBits nStyle ); +-#endif + + public: + OKButton( Window* pParent, WinBits nStyle = WB_DEFBUTTON ); +@@ -271,10 +262,8 @@ public: + + class CancelButton : public PushButton + { +-#ifdef _SV_BUTTON_CXX + private: + void ImplInit( Window* pParent, WinBits nStyle ); +-#endif + + public: + CancelButton( Window* pParent, WinBits nStyle = 0 ); +@@ -289,10 +278,8 @@ public: + + class HelpButton : public PushButton + { +-#ifdef _SV_BUTTON_CXX + private: + void ImplInit( Window* pParent, WinBits nStyle ); +-#endif + + public: + HelpButton( Window* pParent, WinBits nStyle = 0 ); +@@ -318,12 +305,9 @@ private: + BOOL mbSaveValue; + BOOL mbRadioCheck; + BOOL mbStateChanged; +- BOOL mbDummy1; +- BOOL mbDummy2; + Link maToggleHdl; + + #if _SOLAR__PRIVATE +-#ifdef _SV_BUTTON_CXX + void ImplInitData(); + WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle ); + void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); +@@ -336,7 +320,6 @@ private: + bool bLayout = false ); + void ImplDrawRadioButton( bool bLayout = false ); + void ImplUncheckAllOther(); +-#endif + + protected: + void ImplInit( Window* pParent, WinBits nStyle ); +@@ -376,6 +359,7 @@ public: + virtual void LoseFocus(); + virtual void StateChanged( StateChangedType nType ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); ++ virtual long PreNotify( NotifyEvent& rNEvt ); + + virtual void Toggle(); + +@@ -428,7 +412,6 @@ private: + Link maToggleHdl; + + #if _SOLAR__PRIVATE +-#ifdef _SV_BUTTON_CXX + void ImplInitData(); + WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle ); + void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); +@@ -439,7 +422,6 @@ private: + Rectangle& rStateRect, + Rectangle& rMouseRect, Rectangle& rFocusRect, bool bLayout ); + void ImplDrawCheckBox( bool bLayout = false ); +-#endif + + protected: + void ImplInit( Window* pParent, WinBits nStyle ); +@@ -465,6 +447,7 @@ public: + virtual void LoseFocus(); + virtual void StateChanged( StateChangedType nType ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); ++ virtual long PreNotify( NotifyEvent& rNEvt ); + + virtual void Toggle(); + +Index: vcl/inc/cmdevt.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/cmdevt.hxx,v +retrieving revision 1.10.250.1 +retrieving revision 1.12 +diff -u -p -u -r1.10.250.1 -r1.12 +--- vcl/inc/cmdevt.hxx 9 Jan 2004 18:13:38 -0000 1.10.250.1 ++++ vcl/inc/cmdevt.hxx 6 Jan 2004 12:54:08 -0000 1.12 +@@ -101,7 +101,6 @@ private: + xub_StrLen mnOldTextLen; + USHORT mnCursorFlags; + BOOL mbOnlyCursor; +- BOOL mbDummy; + + public: + CommandExtTextInputData(); +Index: vcl/inc/combobox.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/combobox.hxx,v +retrieving revision 1.12 +retrieving revision 1.14 +diff -u -p -u -r1.12 -r1.14 +--- vcl/inc/combobox.hxx 11 Apr 2003 17:24:42 -0000 1.12 ++++ vcl/inc/combobox.hxx 18 May 2004 10:47:56 -0000 1.14 +@@ -192,6 +192,7 @@ public: + BOOL IsUserDrawEnabled() const; + + void DrawEntry( const UserDrawEvent& rEvt, BOOL bDrawImage, BOOL bDrawText, BOOL bDrawTextAtImagePos = FALSE ); ++ void SetBorderStyle( USHORT nBorderStyle ); + + void SetSeparatorPos( USHORT n ); + void SetSeparatorPos(); +Index: vcl/inc/controllayout.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/controllayout.hxx,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -p -u -r1.3 -r1.4 +--- vcl/inc/controllayout.hxx 16 May 2002 11:52:49 -0000 1.3 ++++ vcl/inc/controllayout.hxx 18 May 2004 10:48:10 -0000 1.4 +@@ -103,6 +103,20 @@ struct ControlLayoutData + // returns the interval [start,end] of line nLine + // returns [-1,-1] for an invalid line + Pair GetLineStartEnd( long nLine ) const; ++ /** ToRelativeLineIndex changes a layout data index to a count relative to its line. ++ ++ <p>This is equivalent to getting the line start/end pairs with ++ <member>GetLineStartEnd</member> until the index lies within [start,end] of a line ++ </p> ++ ++ @param nIndex ++ the absolute index inside the display text to be changed to a relative index ++ ++ @returns ++ the relative index inside the displayed line or -1 if the absolute index does ++ not match any line ++ */ ++ long ToRelativeLineIndex( long nIndex ) const; + }; + + } // namespace vcl +Index: vcl/inc/ctrl.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/ctrl.hxx,v +retrieving revision 1.5 +retrieving revision 1.8 +diff -u -p -u -r1.5 -r1.8 +--- vcl/inc/ctrl.hxx 16 May 2002 11:52:49 -0000 1.5 ++++ vcl/inc/ctrl.hxx 18 May 2004 10:48:23 -0000 1.8 +@@ -73,6 +73,10 @@ + #include <window.hxx> + #endif + ++#ifndef _SV_NATIVEWIDGETS_HXX ++#include <salnativewidgets.hxx> ++#endif ++ + // forward + namespace vcl { struct ControlLayoutData; } + +@@ -83,27 +87,26 @@ namespace vcl { struct ControlLayoutData + class Control : public Window + { + protected: +- mutable vcl::ControlLayoutData* mpLayoutData; ++ mutable vcl::ControlLayoutData* mpLayoutData; + private: +- long mnDummy1; +- BOOL mbHasFocus; +- BOOL mbDummy1; +- BOOL mbDummy2; +- BOOL mbDummy3; +- Link maGetFocusHdl; +- Link maLoseFocusHdl; ++ BOOL mbHasFocus; ++ Link maGetFocusHdl; ++ Link maLoseFocusHdl; + +-#ifdef _SV_CTRL_CXX + void ImplInitData(); +-public: +- void ImplSubControlLayoutChanged() const; +-#endif ++ + protected: + Control( WindowType nType ); +- virtual void FillLayoutData() const; ++ virtual void FillLayoutData() const; + + // helper method for composite controls + void AppendLayoutData( const Control& rSubControl ) const; ++ ++#if _SOLAR__PRIVATE ++public: ++ void ImplClearLayoutData() const; ++#endif ++ + public: + Control( Window* pParent, WinBits nWinStyle = 0 ); + Control( Window* pParent, const ResId& rResId ); +@@ -129,6 +132,20 @@ public: + // returns the interval [start,end] of line nLine + // returns [-1,-1] for an invalid line + Pair GetLineStartEnd( long nLine ) const; ++ /** ToRelativeLineIndex changes a layout data index to a count relative to its line. ++ ++ <p>This is equivalent to getting the line start/end pairs with ++ <member>GetLineStartEnd</member> until the index lies within [start,end] of a line ++ </p> ++ ++ @param nIndex ++ the absolute index inside the display text to be changed to a relative index ++ ++ @returns ++ the relative index inside the displayed line or -1 if the absolute index does ++ not match any line ++ */ ++ long ToRelativeLineIndex( long nIndex ) const; + + + void SetGetFocusHdl( const Link& rLink ) { maGetFocusHdl = rLink; } +Index: vcl/inc/cursor.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/cursor.hxx,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -p -u -r1.3 -r1.4 +--- vcl/inc/cursor.hxx 27 Mar 2003 17:57:20 -0000 1.3 ++++ vcl/inc/cursor.hxx 6 Jan 2004 12:55:28 -0000 1.4 +@@ -66,6 +66,10 @@ + #include <tools/gen.hxx> + #endif + ++#ifndef _LINK_HXX ++#include <tools/link.hxx> ++#endif ++ + #ifndef _SV_SV_H + #include <sv.h> + #endif +@@ -103,11 +107,9 @@ private: + + #if _SOLAR__PRIVATE + public: +-#ifdef _SV_CURSOR_CXX + void ImplDraw(); + void ImplRestore(); + DECL_LINK( ImplTimerHdl, AutoTimer* ); +-#endif + void ImplShow( BOOL bDrawDirect = TRUE ); + void ImplHide(); + void ImplNew(); +Index: vcl/inc/cvtsvm.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/cvtsvm.hxx,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -p -u -r1.3 -r1.4 +--- vcl/inc/cvtsvm.hxx 7 Dec 2000 13:37:15 -0000 1.3 ++++ vcl/inc/cvtsvm.hxx 6 Jan 2004 12:55:49 -0000 1.4 +@@ -129,7 +129,6 @@ class SVMConverter + { + private: + #if _SOLAR__PRIVATE +-#ifdef _SV_CVTSVM_CXX + void ImplConvertFromSVM1( SvStream& rIStm, GDIMetaFile& rMtf ); + void ImplConvertToSVM1( SvStream& rOStm, GDIMetaFile& rMtf ); + ULONG ImplWriteActions( SvStream& rOStm, GDIMetaFile& rMtf, +@@ -137,7 +136,6 @@ private: + Color& rLineCol, Stack& rLineColStack, + rtl_TextEncoding& rActualCharSet ); + #endif +-#endif // __PRIVATE + + public: + SVMConverter( SvStream& rIStm, GDIMetaFile& rMtf, ULONG nConvertMode ); +Index: vcl/inc/decoview.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/decoview.hxx,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -p -u -r1.3 -r1.4 +--- vcl/inc/decoview.hxx 27 Mar 2003 17:57:20 -0000 1.3 ++++ vcl/inc/decoview.hxx 10 May 2004 15:41:25 -0000 1.4 +@@ -88,6 +88,7 @@ class OutputDevice; + #define FRAME_DRAW_DOUBLEIN ((USHORT)0x0004) + #define FRAME_DRAW_DOUBLEOUT ((USHORT)0x0005) + #define FRAME_DRAW_MENU ((USHORT)0x0010) ++#define FRAME_DRAW_WINDOWBORDER ((USHORT)0x0020) + #define FRAME_DRAW_MONO ((USHORT)0x1000) + #define FRAME_DRAW_NODRAW ((USHORT)0x8000) + #define FRAME_DRAW_STYLE ((USHORT)0x000F) +Index: vcl/inc/dialog.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/dialog.hxx,v +retrieving revision 1.7.252.1 +retrieving revision 1.10 +diff -u -p -u -r1.7.252.1 -r1.10 +--- vcl/inc/dialog.hxx 31 Oct 2003 15:43:22 -0000 1.7.252.1 ++++ vcl/inc/dialog.hxx 17 Jun 2004 12:02:16 -0000 1.10 +@@ -81,20 +81,16 @@ class Dialog : public SystemWindow + { + private: + Window* mpDialogParent; +- long mnDummy; + Dialog* mpPrevExecuteDlg; + long* mpResult; +- long mnDummy1; + long mnMousePositioned; + BOOL mbInExecute; + BOOL mbOldSaveBack; + BOOL mbInClose; + BOOL mbModalMode; + +-#ifdef _SV_DIALOG_CXX + void ImplInitData(); + void ImplInitSettings(); +-#endif + + #if _SOLAR__PRIVATE + protected: +@@ -126,8 +122,8 @@ public: + void EndDialog( long nResult = 0 ); + static void EndAllDialogs( Window* pParent=NULL ); + +- void GetDrawWindowBorder( long& rLeftBorder, long& rTopBorder, +- long& rRightBorder, long& rBottomBorder ) const; ++ void GetDrawWindowBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, ++ sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; + + void SetModalInputMode( BOOL bModal ); + void SetModalInputMode( BOOL bModal, BOOL bSubModalDialogs ); +Index: vcl/inc/dockwin.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/dockwin.hxx,v +retrieving revision 1.4 +retrieving revision 1.6 +diff -u -p -u -r1.4 -r1.6 +--- vcl/inc/dockwin.hxx 24 Apr 2002 15:41:07 -0000 1.4 ++++ vcl/inc/dockwin.hxx 17 Jun 2004 12:02:29 -0000 1.6 +@@ -89,10 +89,10 @@ private: + long mnTrackY; + long mnTrackWidth; + long mnTrackHeight; +- long mnDockLeft; +- long mnDockTop; +- long mnDockRight; +- long mnDockBottom; ++ sal_Int32 mnDockLeft; ++ sal_Int32 mnDockTop; ++ sal_Int32 mnDockRight; ++ sal_Int32 mnDockBottom; + WinBits mnFloatBits; + BOOL mbDockCanceled:1, + mbDockPrevented:1, +@@ -106,15 +106,10 @@ private: + mbPined:1, + mbRollUp:1, + mbDockBtn:1, +- mbHideBtn:1, +- mbDummy1:1, +- mbDummy2:1, +- mbDummy3:1; ++ mbHideBtn:1; + + #if _SOLAR__PRIVATE +-#ifdef _SV_DOCKWIN_CXX + void ImplInitData(); +-#endif + + protected: + void ImplInit( Window* pParent, WinBits nStyle ); +Index: vcl/inc/edit.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/edit.hxx,v +retrieving revision 1.11 +retrieving revision 1.13 +diff -u -p -u -r1.11 -r1.13 +--- vcl/inc/edit.hxx 27 Mar 2003 17:57:20 -0000 1.11 ++++ vcl/inc/edit.hxx 10 May 2004 15:41:45 -0000 1.13 +@@ -139,7 +139,6 @@ private: + Link maAutocompleteHdl; + + #if _SOLAR__PRIVATE +-#ifdef _SV_EDIT_CXX + DECL_LINK( ImplUpdateDataHdl, Timer* ); + + void ImplInitData(); +@@ -164,7 +163,6 @@ private: + void ImplPaste( ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard >& rxClipboard ); + long ImplGetExtraOffset() const; + #endif +-#endif + + protected: + #if _SOLAR__PRIVATE +@@ -174,6 +172,7 @@ protected: + void ImplLoadRes( const ResId& rResId ); + void ImplSetSelection( const Selection& rSelection, BOOL bPaint = TRUE ); + #endif ++ int ImplGetNativeControlType(); + + ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragSourceListener > mxDnDListener; + +Index: vcl/inc/field.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/field.hxx,v +retrieving revision 1.9 +retrieving revision 1.12 +diff -u -p -u -r1.9 -r1.12 +--- vcl/inc/field.hxx 5 Nov 2001 13:00:00 -0000 1.9 ++++ vcl/inc/field.hxx 2 Apr 2004 10:35:02 -0000 1.12 +@@ -105,17 +105,10 @@ private: + BOOL mbEmptyFieldValue; + BOOL mbEmptyFieldValueEnabled; + BOOL mbDefaultLocale; +- ULONG mnDummy1; +- BOOL mbDummy1; +- BOOL mbDummy2; +- BOOL mbDummy3; +- BOOL mbDummy4; + + protected: +-#if defined( _SV_FIELD_CXX ) || defined( _SV_FIELD2_CXX ) || defined( VCL_LONGCURR_CXX ) + void ImplSetText( const XubString& rText, Selection* pNewSel = NULL ); + BOOL ImplGetEmptyFieldValue() const { return mbEmptyFieldValue; } +-#endif + + void SetFieldText( const XubString& rText, BOOL bKeepSelection ); + void SetEmptyFieldValueData( BOOL bValue ) { mbEmptyFieldValue = bValue; } +@@ -125,7 +118,7 @@ protected: + + public: + FormatterBase( Edit* pField = NULL ); +- ~FormatterBase(); ++ virtual ~FormatterBase(); + + const LocaleDataWrapper& GetLocaleDataWrapper() const; + +@@ -174,21 +163,16 @@ private: + XubString maFieldString; + XubString maLiteralMask; + USHORT mnFormatFlags; +- USHORT mnDummy1; + BOOL mbSameMask; + BOOL mbInPattKeyInput; +- BOOL mbDummy1; +- BYTE mbDummy2; + + protected: + PatternFormatter(); + +-#ifdef _SV_FIELD2_CXX + void ImplLoadRes( const ResId& rResId ); + void ImplSetMask( const ByteString& rEditMask, const XubString& rLiteralMask ); + BOOL ImplIsSameMask() const { return mbSameMask; } + BOOL& ImplGetInPattKeyInput() { return mbInPattKeyInput; } +-#endif + + public: + ~PatternFormatter(); +@@ -217,9 +201,7 @@ public: + class NumericFormatter : public FormatterBase + { + private: +-#ifdef _SV_FIELD_CXX + void ImplInit(); +-#endif + + protected: + long mnFieldValue; +@@ -233,8 +215,6 @@ protected: + USHORT mnDumym2; + BOOL mbThousandSep; + BOOL mbShowTrailingZeros; +- BYTE mbDummy2; +- BYTE mbDummy3; + + // Eigentlich nur am entsprechenden Feld einstellbar (fuer Interaktion), + // wird aber in allen Verschiedenen Ableitungen benoetigt +@@ -255,12 +235,10 @@ protected: + void FieldFirst(); + void FieldLast(); + +-#ifdef _SV_FIELD_CXX + void ImplLoadRes( const ResId& rResId ); + BOOL ImplNumericReformat( const XubString& rStr, double& rValue, XubString& rOutStr ); + void ImplNewFieldValue( long nNewValue ); + void ImplSetUserValue( long nNewValue, Selection* pNewSelection = NULL ); +-#endif + + public: + ~NumericFormatter(); +@@ -308,9 +286,7 @@ public: + class MetricFormatter : public NumericFormatter + { + private: +-#ifdef _SV_FIELD_CXX + void ImplInit(); +-#endif + + protected: + XubString maCustomUnitText; +@@ -324,10 +300,8 @@ protected: + + virtual XubString CreateFieldText( long nValue ) const; + +-#ifdef _SV_FIELD_CXX + void ImplLoadRes( const ResId& rResId ); + BOOL ImplMetricReformat( const XubString& rStr, double& rValue, XubString& rOutStr ); +-#endif + + public: + ~MetricFormatter(); +@@ -368,23 +342,13 @@ class CurrencyFormatter : public Numeric + { + private: + String maCurrencySymbol; +- BOOL mbDummy1; +- BOOL mbDummy2; +- BYTE mbDummy3; +- BYTE mbDummy4; + +-#ifdef _SV_FIELD_CXX + void ImplInit(); +-#endif + + protected: + CurrencyFormatter(); +- + virtual XubString CreateFieldText( long nValue ) const; +- +-#ifdef _SV_FIELD_CXX + BOOL ImplCurrencyReformat( const XubString& rStr, XubString& rOutStr ); +-#endif + + public: + ~CurrencyFormatter(); +@@ -417,19 +381,13 @@ private: + BOOL mbShowDateCentury; + USHORT mnDateFormat; + ULONG mnExtDateFormat; +- BOOL mbDummy1; +- BOOL mbDummy2; +- BYTE mbDummy3; +- BYTE mbDummy4; ++ BOOL mbEnforceValidValue; + +-#ifdef _SV_FIELD2_CXX + void ImplInit(); +-#endif + + protected: + DateFormatter(); + +-#ifdef _SV_FIELD2_CXX + void ImplLoadRes( const ResId& rResId ); + const Date& ImplGetFieldDate() const { return maFieldDate; } + BOOL ImplDateReformat( const XubString& rStr, XubString& rOutStr, +@@ -440,7 +398,8 @@ protected: + const AllSettings& rSettings ) const; + void ImplNewFieldValue( const Date& rDate ); + CalendarWrapper& GetCalendarWrapper() const; +-#endif ++ ++ BOOL ImplAllowMalformedInput() const; + + public: + ~DateFormatter(); +@@ -450,11 +409,6 @@ public: + + virtual void SetLocale( const ::com::sun::star::lang::Locale& rLocale ); + +-#if SUPD < 651 +- // MT 11/01: Seems that nobody uses them, I only want to use the ExtDateFormat now ( ## ) +- void SetDateFormat( DateFormat eFormat ); +- DateFormat GetDateFormat() const; +-#endif + + void SetExtDateFormat( ExtDateFieldFormat eFormat ); + ExtDateFieldFormat GetExtDateFormat( BOOL bResolveSystemFormat = FALSE ) const; +@@ -489,6 +443,23 @@ public: + + static void ExpandCentury( Date& rDate ); + static void ExpandCentury( Date& rDate, USHORT nTwoDigitYearStart ); ++ ++ static Date GetInvalidDate() { return Date( 0, 0, 0 ); } ++ ++ /** enables or disables the enforcement of valid values ++ ++ If this is set to <TRUE/> (which is the default), then GetDate will always return a valid ++ date, no matter whether the current text can really be interpreted as date. (Note: this ++ is the compatible bahavior). ++ ++ If this is set to <FALSE/>, the GetDate will return GetInvalidDate, in case the current text ++ cannot be interpreted as date. ++ ++ In addition, if this is set to <FALSE/>, the text in the field will <em>not</em> be corrected ++ when the control loses the focus - instead, the invalid input will be preserved. ++ */ ++ void EnforceValidValue( BOOL _bEnforce ) { mbEnforceValidValue = _bEnforce; } ++ inline BOOL IsEnforceValidValue( ) const { return mbEnforceValidValue; } + }; + + +@@ -507,27 +478,20 @@ private: + USHORT mnTimeFormat; + BOOL mbDuration; + BOOL mbEmptyTime; +- ULONG mnDummy1; +- BOOL mbDummy1; +- BOOL mbDummy2; +- BYTE mbDummy3; +- BYTE mbDummy4; ++ BOOL mbEnforceValidValue; + +-#ifdef _SV_FIELD2_CXX + void ImplInit(); +-#endif + + protected: + Time maFieldTime; + + TimeFormatter(); + +-#ifdef _SV_FIELD2_CXX + void ImplLoadRes( const ResId& rResId ); + BOOL ImplTimeReformat( const XubString& rStr, XubString& rOutStr ); + void ImplNewFieldValue( const Time& rTime ); + void ImplSetUserTime( const Time& rNewTime, Selection* pNewSelection = NULL ); +-#endif ++ BOOL ImplAllowMalformedInput() const; + + public: + ~TimeFormatter(); +@@ -557,6 +521,23 @@ public: + void SetEmptyTime() { FormatterBase::SetEmptyFieldValue(); } + BOOL IsEmptyTime() const { return FormatterBase::IsEmptyFieldValue(); } + Time GetCorrectedTime() const { return maCorrectedTime; } ++ ++ static Time GetInvalidTime() { return Time( 99, 99, 99 ); } ++ ++ /** enables or disables the enforcement of valid values ++ ++ If this is set to <TRUE/> (which is the default), then GetTime will always return a valid ++ time, no matter whether the current text can really be interpreted as time. (Note: this ++ is the compatible bahavior). ++ ++ If this is set to <FALSE/>, the GetTime will return GetInvalidTime, in case the current text ++ cannot be interpreted as time. ++ ++ In addition, if this is set to <FALSE/>, the text in the field will <em>not</em> be corrected ++ when the control loses the focus - instead, the invalid input will be preserved. ++ */ ++ void EnforceValidValue( BOOL _bEnforce ) { mbEnforceValidValue = _bEnforce; } ++ inline BOOL IsEnforceValidValue( ) const { return mbEnforceValidValue; } + }; + + +@@ -583,10 +564,8 @@ public: + + class NumericField : public SpinField, public NumericFormatter + { +-#ifdef _SV_FIELD_CXX + protected: + void ImplLoadRes( const ResId& rResId ); +-#endif + + public: + NumericField( Window* pParent, WinBits nWinStyle ); +@@ -612,10 +591,8 @@ public: + + class MetricField : public SpinField, public MetricFormatter + { +-#ifdef _SV_FIELD_CXX + protected: + void ImplLoadRes( const ResId& rResId ); +-#endif + + public: + MetricField( Window* pParent, WinBits nWinStyle ); +@@ -663,10 +640,8 @@ public: + + class CurrencyField : public SpinField, public CurrencyFormatter + { +-#ifdef _SV_FIELD_CXX + protected: + void ImplLoadRes( const ResId& rResId ); +-#endif + + public: + CurrencyField( Window* pParent, WinBits nWinStyle ); +@@ -696,11 +671,9 @@ private: + Date maFirst; + Date maLast; + +-#ifdef _SV_FIELD2_CXX + protected: + void ImplDateSpinArea( BOOL bUp ); + void ImplLoadRes( const ResId& rResId ); +-#endif + + public: + DateField( Window* pParent, WinBits nWinStyle ); +@@ -739,11 +707,9 @@ private: + Time maFirst; + Time maLast; + +-#ifdef _SV_FIELD2_CXX + protected: + void ImplTimeSpinArea( BOOL bUp ); + void ImplLoadRes( const ResId& rResId ); +-#endif + + public: + TimeField( Window* pParent, WinBits nWinStyle ); +Index: vcl/inc/fixbrd.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/fixbrd.hxx,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -p -u -r1.2 -r1.3 +--- vcl/inc/fixbrd.hxx 7 Dec 2000 13:37:15 -0000 1.2 ++++ vcl/inc/fixbrd.hxx 6 Jan 2004 12:57:59 -0000 1.3 +@@ -91,18 +91,13 @@ class FixedBorder : public Control + private: + USHORT mnType; + BOOL mbTransparent; +- BOOL mbDummy1; + +-#if _SOLAR__PRIVATE +-#ifdef _SV_FIXBRD_CXX + private: + void ImplInit( Window* pParent, WinBits nStyle ); + WinBits ImplInitStyle( WinBits nStyle ); + void ImplInitSettings(); + void ImplDraw( OutputDevice* pDev, ULONG nDrawFlags, + const Point& rPos, const Size& rSize ); +-#endif +-#endif + + public: + FixedBorder( Window* pParent, WinBits nStyle = 0 ); +Index: vcl/inc/fixed.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/fixed.hxx,v +retrieving revision 1.5 +retrieving revision 1.6 +diff -u -p -u -r1.5 -r1.6 +--- vcl/inc/fixed.hxx 29 Apr 2002 17:46:17 -0000 1.5 ++++ vcl/inc/fixed.hxx 6 Jan 2004 12:58:20 -0000 1.6 +@@ -84,14 +84,12 @@ class UserDrawEvent; + class FixedText : public Control + { + #if _SOLAR__PRIVATE +-#ifdef _SV_FIXED_CXX + private: + void ImplInit( Window* pParent, WinBits nStyle ); + WinBits ImplInitStyle( WinBits nStyle ); + void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); + void ImplDraw( OutputDevice* pDev, ULONG nDrawFlags, + const Point& rPos, const Size& rSize, bool bFillLayout = false ) const; +-#endif + public: + static USHORT ImplGetTextStyle( WinBits nWinBits ); + #endif +@@ -116,17 +114,15 @@ public: + + class FixedLine : public Control + { +-#if _SOLAR__PRIVATE +-#ifdef _SV_FIXED_CXX + private: + void ImplInit( Window* pParent, WinBits nStyle ); + WinBits ImplInitStyle( WinBits nStyle ); + void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); + void ImplDraw( bool bLayout = false ); +-#endif +-#endif ++ + protected: +- virtual void FillLayoutData() const; ++ virtual void FillLayoutData() const; ++ + public: + FixedLine( Window* pParent, WinBits nStyle = WB_HORZ ); + FixedLine( Window* pParent, const ResId& rResId ); +@@ -148,19 +144,14 @@ private: + Bitmap maBitmap; + Bitmap maBitmapHC; + +-#if _SOLAR__PRIVATE +-#ifdef _SV_FIXED_CXX +-private: + void ImplInit( Window* pParent, WinBits nStyle ); + WinBits ImplInitStyle( WinBits nStyle ); + void ImplInitSettings(); + void ImplDraw( OutputDevice* pDev, ULONG nDrawFlags, + const Point& rPos, const Size& rSize ); +-#endif + + protected: + void ImplLoadRes( const ResId& rResId ); +-#endif + + public: + FixedBitmap( Window* pParent, WinBits nStyle = 0 ); +@@ -190,19 +181,15 @@ private: + Image maImageHC; + BOOL mbInUserDraw; + +-#if _SOLAR__PRIVATE +-#ifdef _SV_FIXED_CXX + private: + void ImplInit( Window* pParent, WinBits nStyle ); + WinBits ImplInitStyle( WinBits nStyle ); + void ImplInitSettings(); + void ImplDraw( OutputDevice* pDev, ULONG nDrawFlags, + const Point& rPos, const Size& rSize ); +-#endif + + protected: + void ImplLoadRes( const ResId& rResId ); +-#endif + + public: + FixedImage( Window* pParent, WinBits nStyle = 0 ); +Index: vcl/inc/floatwin.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/floatwin.hxx,v +retrieving revision 1.5 +retrieving revision 1.6 +diff -u -p -u -r1.5 -r1.6 +--- vcl/inc/floatwin.hxx 31 Oct 2001 19:28:50 -0000 1.5 ++++ vcl/inc/floatwin.hxx 6 Jan 2004 12:58:54 -0000 1.6 +@@ -114,7 +114,6 @@ private: + FloatingWindow* mpNextFloat; + Window* mpFirstPopupModeWin; + ToolBox* mpBox; +- void* mpDummy; + Rectangle maFloatRect; + ULONG mnPostId; + ULONG mnPopupModeFlags; +@@ -131,10 +130,8 @@ private: + Link maPopupModeEndHdl; + + #if _SOLAR__PRIVATE +-#ifdef _SV_FLOATWIN_CXX + void ImplCallPopupModeEnd(); + DECL_LINK( ImplEndPopupModeHdl, void* ); +-#endif + + protected: + void ImplInit( Window* pParent, WinBits nStyle ); +Index: vcl/inc/fntstyle.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/fntstyle.hxx,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -p -u -r1.2 -r1.3 +--- vcl/inc/fntstyle.hxx 23 Mar 2001 11:44:51 -0000 1.2 ++++ vcl/inc/fntstyle.hxx 6 Jan 2004 12:59:13 -0000 1.3 +@@ -62,6 +62,7 @@ + #ifndef _VCL_FNTSTYLE_HXX + #define _VCL_FNTSTYLE_HXX + ++#include <tools/solar.h> + #include <sal/types.h> + + // -------------- +Index: vcl/inc/font.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/font.hxx,v +retrieving revision 1.6 +retrieving revision 1.8 +diff -u -p -u -r1.6 -r1.8 +--- vcl/inc/font.hxx 1 Aug 2001 12:32:45 -0000 1.6 ++++ vcl/inc/font.hxx 6 Jan 2004 12:59:38 -0000 1.8 +@@ -71,8 +71,8 @@ + #ifndef _TOOLS_LANG_HXX + #include <tools/lang.hxx> + #endif +-#ifndef _SV_COLOR_HXX +-#include <color.hxx> ++#ifndef _TOOLS_COLOR_HXX ++#include <tools/color.hxx> + #endif + #ifndef _VCL_VCLENUM_HXX + #include <vclenum.hxx> +@@ -81,12 +81,6 @@ + #include <fntstyle.hxx> + #endif + +-#ifdef SMART_UNO_GENERATION +-class Font_Type; +-class Font_Size; +-class Font_Attribs; +-#endif +- + class SvStream; + #define FontAlign TextAlign + +@@ -226,16 +220,4 @@ public: + + friend SvStream& operator>>( SvStream& rIStm, Font& rFont ); + friend SvStream& operator<<( SvStream& rOStm, const Font& rFont ); +- +-#ifdef SMART_UNO_GENERATION +- void getType( Font_Type& ) const; +- void setType( const Font_Type& ); +- +- void getSize( Font_Size& ) const; +- void setSize( const Font_Size& ); +- +- void getAttribs( Font_Attribs& ) const; +- void setAttribs( const Font_Attribs& ); +-#endif +- + }; + +Index: vcl/inc/fontcfg.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/fontcfg.hxx,v +retrieving revision 1.3 +retrieving revision 1.5 +diff -u -p -u -r1.3 -r1.5 +--- vcl/inc/fontcfg.hxx 29 May 2002 13:37:05 -0000 1.3 ++++ vcl/inc/fontcfg.hxx 25 Jun 2004 15:24:19 -0000 1.5 +@@ -66,43 +66,70 @@ + #ifndef _UTL_CONFIGITEM_HXX_ + #include <unotools/configitem.hxx> + #endif +-#ifndef _LANG_HXX +-#include <tools/lang.hxx> +-#endif + #ifndef _STRING_HXX + #include <tools/string.hxx> + #endif + #ifndef _VCL_ENUM_HXX + #include <vclenum.hxx> + #endif ++#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_ ++#include <com/sun/star/lang/Locale.hpp> ++#endif + +-#include <map> + #include <hash_map> + #include <vector> + ++namespace com { ++namespace sun { ++namespace star { ++namespace lang { ++ ++// equality operator needed for hash_map; ++// (-> why does this need to be in the namespace of Locale ? g++ fails to compile else) ++inline bool operator==( const com::sun::star::lang::Locale& rLeft, const com::sun::star::lang::Locale& rRight ) ++{ ++ return ++ rLeft.Language.equals( rRight.Language ) && ++ rLeft.Country.equals( rRight.Country ) && ++ rLeft.Variant.equals( rRight.Variant ) ++ ; ++} ++}}}} ++ + namespace vcl + { + ++struct LocaleHash ++{ ++ size_t operator()( const com::sun::star::lang::Locale& rLocale ) const ++ { ++ return ++ (size_t)rLocale.Language.hashCode() ^ ++ (size_t)rLocale.Country.hashCode() ^ ++ (size_t)rLocale.Variant.hashCode(); ++ } ++}; ++ + class DefaultFontConfigItem : public ::utl::ConfigItem + { + +- ::std::map< int, ::std::map< int, ::rtl::OUString > > m_aDefaults; ++ std::hash_map< com::sun::star::lang::Locale , std::hash_map< int, rtl::OUString >, vcl::LocaleHash > m_aDefaults; + +- virtual void Notify( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& rPropertyNames ); ++ virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& rPropertyNames ); + virtual void Commit(); + + void getValues(); +- static int getKeyType( const ::rtl::OUString& rKey ); ++ static int getKeyType( const rtl::OUString& rKey ); + DefaultFontConfigItem(); + public: + virtual ~DefaultFontConfigItem(); + + static DefaultFontConfigItem* get(); + +- const ::rtl::OUString& getDefaultFont( int nLanguage, int nType ) const; +- const ::rtl::OUString& getUserInterfaceFont( int nLanguage = LANGUAGE_SYSTEM ) const; ++ const rtl::OUString& getDefaultFont( const com::sun::star::lang::Locale& rLocale, int nType ) const; ++ const rtl::OUString& getUserInterfaceFont( const com::sun::star::lang::Locale& rLocale ) const; + +- void setDefaultFont( int nLanguage, int nType, const ::rtl::OUString& rName ); ++ void setDefaultFont( const com::sun::star::lang::Locale& rLocale, int nType, const rtl::OUString& rName ); + }; + + +@@ -170,13 +197,13 @@ public: + struct FontNameAttr + { + String Name; +- ::std::vector< String > Substitutions; +- ::std::vector< String > MSSubstitutions; +- ::std::vector< String > PSSubstitutions; +- ::std::vector< String > HTMLSubstitutions; +- FontWeight Weight; ++ std::vector< String > Substitutions; ++ std::vector< String > MSSubstitutions; ++ std::vector< String > PSSubstitutions; ++ std::vector< String > HTMLSubstitutions; ++ FontWeight Weight; + FontWidth Width; +- unsigned long Type; // bitfield of IMPL_FONT_ATTR_* ++ unsigned long Type; // bitfield of IMPL_FONT_ATTR_* + }; + private: + +@@ -184,9 +211,9 @@ private: + // searches on the substitutes are done with Name as key, where + // a minimal match is sufficient (that is e.g. "Thorndale" will match + // "Thorndale BlaBlub"). Also names must be lower case. +- ::std::map< int, ::std::vector< FontNameAttr > > m_aSubstitutions; ++ std::hash_map< com::sun::star::lang::Locale, std::vector< FontNameAttr >, vcl::LocaleHash > m_aSubstitutions; + +- virtual void Notify( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& rPropertyNames ); ++ virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& rPropertyNames ); + virtual void Commit(); + + void getValues(); +@@ -196,17 +223,23 @@ public: + + static FontSubstConfigItem* get(); + +- const FontNameAttr* getSubstInfo( const String& rFontName, int nLanguage = LANGUAGE_ENGLISH ) const; ++ const FontNameAttr* getSubstInfo( ++ const String& rFontName, ++ const com::sun::star::lang::Locale& rLocale = ++ com::sun::star::lang::Locale( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "en" ) ), ++ rtl::OUString(), ++ rtl::OUString() ) ++ ) const; + static void getMapName( const String& rOrgName, String& rShortName, String& rFamilyName, FontWeight& rWeight, FontWidth& rWidth, unsigned long& rType ); + }; + + class SettingsConfigItem : public ::utl::ConfigItem + { + +- ::std::hash_map< ::rtl::OUString, ::std::hash_map< ::rtl::OUString, ::rtl::OUString, ::rtl::OUStringHash >, ::rtl::OUStringHash > ++ std::hash_map< rtl::OUString, std::hash_map< rtl::OUString, rtl::OUString, rtl::OUStringHash >, rtl::OUStringHash > + m_aSettings; + +- virtual void Notify( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& rPropertyNames ); ++ virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& rPropertyNames ); + virtual void Commit(); + + void getValues(); +@@ -216,8 +249,8 @@ public: + + static SettingsConfigItem* get(); + +- const ::rtl::OUString& getValue( const ::rtl::OUString& rGroup, const ::rtl::OUString& rKey ) const; +- void setValue( const ::rtl::OUString& rGroup, const ::rtl::OUString& rKey, const ::rtl::OUString& rValue ); ++ const rtl::OUString& getValue( const rtl::OUString& rGroup, const rtl::OUString& rKey ) const; ++ void setValue( const rtl::OUString& rGroup, const rtl::OUString& rKey, const rtl::OUString& rValue ); + }; + + +Index: vcl/inc/gdimtf.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/gdimtf.hxx,v +retrieving revision 1.5 +retrieving revision 1.6 +diff -u -p -u -r1.5 -r1.6 +--- vcl/inc/gdimtf.hxx 18 Nov 2002 13:42:14 -0000 1.5 ++++ vcl/inc/gdimtf.hxx 6 Jan 2004 13:00:30 -0000 1.6 +@@ -98,6 +98,7 @@ class Gradient; + #ifndef METAFILE_END + #define METAFILE_END GDI_METAFILE_END + #endif ++ + #ifndef METAFILE_LABEL_NOTFOUND + #define METAFILE_LABEL_NOTFOUND GDI_METAFILE_LABEL_NOTFOUND + #endif +@@ -136,11 +137,7 @@ typedef BitmapEx (*BmpExchangeFnc)( cons + // - GDIMetaFile - + // --------------- + +-#ifndef MAC + class GDIMetaFile : protected List +-#else +-class GDIMetaFile : public List +-#endif + { + private: + +@@ -191,8 +188,8 @@ protected: + + public: + GDIMetaFile(); +- GDIMetaFile( const GDIMetaFile& rMtf ); +- ~GDIMetaFile(); ++ GDIMetaFile( const GDIMetaFile& rMtf ); ++ virtual ~GDIMetaFile(); + + GDIMetaFile& operator=( const GDIMetaFile& rMtf ); + BOOL operator==( const GDIMetaFile& rMtf ) const; +Index: vcl/inc/glyphcache.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/glyphcache.hxx,v +retrieving revision 1.19 +retrieving revision 1.22 +diff -u -p -u -r1.19 -r1.22 +--- vcl/inc/glyphcache.hxx 2 Jul 2003 13:38:54 -0000 1.19 ++++ vcl/inc/glyphcache.hxx 18 May 2004 10:48:36 -0000 1.22 +@@ -72,6 +72,7 @@ class ServerFontLayout; + + #include <tools/gen.hxx> + #include <hash_map> ++#include <map> + #include <hash_set> + + struct ImplFontSelectData; +@@ -90,14 +91,20 @@ bool operator==( const ImplFontSelectDat + + // ======================================================================= + ++namespace std { + template<> +-struct std::hash<ImplFontSelectData> ++struct hash<ImplFontSelectData> + { + size_t operator()( const ImplFontSelectData& ) const; + }; + ++} ++ + //-------- + ++typedef std::map< sal_Unicode, std::map< sal_Unicode, int > > unicodeKernMap; ++typedef std::map< int, std::map< int, int > > glyphKernMap; ++ + class GlyphCache + { + public: +@@ -110,7 +117,11 @@ public: + void ClearFontPath(); + void AddFontPath( const String& rFontPath ); + void AddFontFile( const rtl::OString& rNormalizedName, +- int nFaceNum, int nFontId, const ImplFontData* ); ++ int nFaceNum, ++ int nFontId, ++ const ImplFontData*, ++ const unicodeKernMap* pUniKernPairs = NULL ++ ); + long FetchFontList( ImplDevFontList* ) const; + + ServerFont* CacheFont( const ImplFontSelectData& ); +@@ -118,7 +129,7 @@ public: + void RemoveFont( const ImplFontData* ); + + private: +-friend ServerFont; ++ friend class ServerFont; + // used by ServerFont class only + void AddedGlyph( ServerFont& rServerFont, GlyphData& rGlyphData ); + void RemovingGlyph( ServerFont& rSF, GlyphData& rGD, int nGlyphIndex ); +@@ -156,7 +167,7 @@ public: + long GetCharWidth() const { return mnAdvanceWidth; } + + protected: +-friend class GlyphData; ++ friend class GlyphData; + void SetOffset( int nX, int nY ) { maOffset = Point( nX, nY); } + void SetDelta( int nX, int nY ) { maDelta = Point( nX, nY); } + void SetSize( const Size& s ) { maSize = s; } +@@ -218,8 +229,8 @@ public: + const ImplFontSelectData& GetFontSelData() const { return maFontSelData; } + + virtual void FetchFontMetric( ImplFontMetricData&, long& rFactor ) const = 0; +- virtual ULONG GetKernPairs( struct ImplKernPairData** ) const = 0; +- virtual int GetGlyphKernValue( int, int ) const = 0; ++ virtual ULONG GetKernPairs( struct ImplKernPairData** ) const; ++ virtual int GetGlyphKernValue( int, int ) const; + virtual ULONG GetFontCodeRanges( sal_uInt32* pCodes ) const { return 0; } + Point TransformPoint( const Point& ) const; + +@@ -238,9 +249,9 @@ public: + void* GetExtPointer() { return mpExtData; } + + protected: +-friend GlyphCache; +-friend ServerFontLayout; +- ServerFont( const ImplFontSelectData& ); ++ friend class GlyphCache; ++ friend class ServerFontLayout; ++ ServerFont( const ImplFontSelectData&, const glyphKernMap* pGlyphKern = NULL, const unicodeKernMap* pUniKern = NULL ); + virtual ~ServerFont(); + + void AddRef() const { ++mnRefCount; } +@@ -273,6 +284,12 @@ private: + protected: + long nCos; + long nSin; ++ ++ // maps left glyph id to map of right glyphid ++ // the inner map maps right glyphid to kern value ++ const glyphKernMap* mpKernPairs; ++ const unicodeKernMap* mpUnicodeKernPairs; ++ + }; + + // ======================================================================= +Index: vcl/inc/gradient.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/gradient.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.3 +diff -u -p -u -r1.1.1.1 -r1.3 +--- vcl/inc/gradient.hxx 19 Sep 2000 10:23:04 -0000 1.1.1.1 ++++ vcl/inc/gradient.hxx 6 Jan 2004 13:01:22 -0000 1.3 +@@ -62,7 +62,10 @@ + #ifndef _SV_GRADIENT_HXX + #define _SV_GRADIENT_HXX + +-#include <color.hxx> ++#ifndef _TOOLS_COLOR_HXX ++#include <tools/color.hxx> ++#endif ++ + #include <vclenum.hxx> + + // ------------------ +@@ -160,29 +163,6 @@ public: + + friend SvStream& operator>>( SvStream& rIStm, Gradient& rGradient ); + friend SvStream& operator<<( SvStream& rOStm, const Gradient& rGradient ); +- +-#ifdef SMART_UNO_GENERATION +- GradientStyle getStyle() const { return GetStyle(); } +- void setStyle( GradientStyle e ) { SetStyle( e ); } +- long getStartColor() const { return GetStartColor().GetColor(); } +- void setStartColor( long n ) { SetStartColor( Color( n ) ); } +- long getEndColor() const { return GetEndColor().GetColor(); } +- void setEndColor( long n ) { SetEndColor( Color( n ) ); } +- USHORT getAngle() const { return GetAngle(); } +- void setAngle( USHORT n ) { SetAngle( n ); } +- USHORT getBorder() const { return GetBorder(); } +- void setBorder( USHORT n ) { SetBorder( n ); } +- USHORT getXOffset() const { return GetOfsX(); } +- void setXOffset( USHORT n ) { SetOfsX( n ); } +- USHORT getYOffset() const { return GetOfsY(); } +- void setYOffset( USHORT n ) { SetOfsY( n ); } +- USHORT getStartIntensity() const { return GetStartIntensity(); } +- void setStartIntensity( USHORT n ) { SetStartIntensity( n ); } +- USHORT getEndIntensity() const { return GetEndIntensity(); } +- void setEndIntensity( USHORT n ) { SetEndIntensity( n ); } +- USHORT getStepCount() const { return GetSteps(); } +- void setStepCount( USHORT n ) { SetSteps( n ); } +-#endif + }; + + #endif // _SV_GRADIENT_HXX +Index: vcl/inc/graph.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/graph.hxx,v +retrieving revision 1.6 +retrieving revision 1.7 +diff -u -p -u -r1.6 -r1.7 +--- vcl/inc/graph.hxx 27 Mar 2003 17:57:21 -0000 1.6 ++++ vcl/inc/graph.hxx 20 Apr 2004 13:53:29 -0000 1.7 +@@ -143,6 +143,8 @@ public: + Bitmap GetBitmap( const Size* pSizePixel ) const; + BitmapEx GetBitmapEx() const; + BitmapEx GetBitmapEx( const Size* pSizePixel ) const; ++ Bitmap GetUnlimitedBitmap( const Size* pSizePixel ) const; ++ BitmapEx GetUnlimitedBitmapEx( const Size* pSizePixel ) const; + Animation GetAnimation() const; + const GDIMetaFile& GetGDIMetaFile() const; + +Index: vcl/inc/group.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/group.hxx,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -p -u -r1.2 -r1.3 +--- vcl/inc/group.hxx 8 May 2002 16:01:29 -0000 1.2 ++++ vcl/inc/group.hxx 6 Jan 2004 13:01:39 -0000 1.3 +@@ -75,16 +75,15 @@ + + class GroupBox : public Control + { +-#ifdef _SV_GROUP_CXX + private: + void ImplInit( Window* pParent, WinBits nStyle ); + WinBits ImplInitStyle( WinBits nStyle ); + void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); + void ImplDraw( OutputDevice* pDev, ULONG nDrawFlags, + const Point& rPos, const Size& rSize, bool bLayout = false ); +-#endif + +- virtual void FillLayoutData() const; ++ virtual void FillLayoutData() const; ++ + public: + GroupBox( Window* pParent, WinBits nStyle = 0 ); + GroupBox( Window* pParent, const ResId& rResId ); +Index: vcl/inc/hatch.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/hatch.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.3 +diff -u -p -u -r1.1.1.1 -r1.3 +--- vcl/inc/hatch.hxx 19 Sep 2000 10:23:04 -0000 1.1.1.1 ++++ vcl/inc/hatch.hxx 6 Jan 2004 13:01:57 -0000 1.3 +@@ -62,7 +62,10 @@ + #ifndef _SV_HATCH_HXX + #define _SV_HATCH_HXX + +-#include <color.hxx> ++#ifndef _TOOLS_COLOR_HXX ++#include <tools/color.hxx> ++#endif ++ + #include <vclenum.hxx> + + // -------------- +@@ -77,7 +80,6 @@ struct ImplHatch + Color maColor; + HatchStyle meStyle; + long mnDistance; +- long mnDummy; + USHORT mnAngle; + + ImplHatch(); +@@ -124,22 +126,6 @@ public: + + friend SvStream& operator>>( SvStream& rIStm, Hatch& rHatch ); + friend SvStream& operator<<( SvStream& rOStm, const Hatch& rHatch ); +- +-#ifdef SMART_UNO_GENERATION +- +- HatchStyle getStyle() const { return GetStyle(); } +- void setStyle( HatchStyle eStyle ) { SetStyle( eStyle ); } +- +- long getColor() const { return GetColor().GetColor(); } +- void setColor( long nColor ) { SetColor( Color( nColor ) ); } +- +- long getDistance() const { return GetDistance(); } +- void setDistance( ULONG nDistance ) { SetDistance( nDistance ); } +- +- USHORT getAngle() const { return GetAngle(); } +- void setAngle( USHORT n ) { SetAngle( n ); } +- +-#endif + }; + + #endif // _SV_HATCH_HXX +Index: vcl/inc/help.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/help.hxx,v +retrieving revision 1.3.284.1 +retrieving revision 1.5 +diff -u -p -u -r1.3.284.1 -r1.5 +--- vcl/inc/help.hxx 9 Jan 2004 18:13:39 -0000 1.3.284.1 ++++ vcl/inc/help.hxx 6 Jan 2004 13:02:14 -0000 1.5 +@@ -103,6 +103,7 @@ private: + + public: + Help(); ++ virtual ~Help(); + + void SetHelpFile( const String& rFileName ) { maHelpFile = rFileName; } + const String& GetHelpFile() const { return maHelpFile; } +Index: vcl/inc/ilstbox.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/ilstbox.hxx,v +retrieving revision 1.20 +retrieving revision 1.23 +diff -u -p -u -r1.20 -r1.23 +--- vcl/inc/ilstbox.hxx 24 Apr 2003 16:29:18 -0000 1.20 ++++ vcl/inc/ilstbox.hxx 18 May 2004 10:48:51 -0000 1.23 +@@ -244,7 +244,7 @@ private: + USHORT mnBorder; // Abstand Rahmen - Text + USHORT mnTextHeight; // Texthoehe + +- USHORT mnSelectModifier; // Modifiers ++ USHORT mnSelectModifier; // Modifiers + + BOOL mbHasFocusRect; + +@@ -261,8 +261,8 @@ private: + mbGrabFocus: 1, // Focus bei MBDown grabben + mbUserDrawEnabled: 1, // UserDraw possible + mbInUserDraw: 1, // In UserDraw +- mbReadOnly: 1; // ReadOnly +- ++ mbReadOnly: 1, // ReadOnly ++ mbMirroring: 1; // pb: #106948# explicit mirroring for calc + + Link maScrollHdl; + Link maSelectHdl; +@@ -273,7 +273,7 @@ private: + + protected: + DECL_LINK( SearchStringTimeout, Timer* ); +- ++ + virtual void KeyInput( const KeyEvent& rKEvt ); + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void MouseMove( const MouseEvent& rMEvt ); +@@ -293,7 +293,7 @@ protected: + void ImplShowFocusRect(); + void ImplHideFocusRect(); + +- ++ + virtual void StateChanged( StateChangedType nType ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + +@@ -316,6 +316,7 @@ public: + + void SelectEntry( USHORT nPos, BOOL bSelect ); + void DeselectAll(); ++ USHORT GetEntryPosForPoint( const Point& rPoint ) const; + + BOOL ProcessKeyInput( const KeyEvent& rKEvt ); + +@@ -342,13 +343,13 @@ public: + + void EnableUserDraw( BOOL bUserDraw ) { mbUserDrawEnabled = bUserDraw; } + BOOL IsUserDrawEnabled() const { return mbUserDrawEnabled; } +- ++ + void EnableMultiSelection( BOOL bMulti, BOOL bStackMode ) { mbMulti = bMulti; mbStackMode = bStackMode; } + BOOL IsMultiSelectionEnabled() const { return mbMulti; } +- ++ + void SetMultiSelectionSimpleMode( BOOL bSimple ) { mbSimpleMode = bSimple; } + BOOL IsMultiSelectionSimpleMode() const { return mbSimpleMode; } +- ++ + void EnableMouseMoveSelect( BOOL bMouseMoveSelect ) { mbMouseMoveSelect = bMouseMoveSelect; } + BOOL IsMouseMoveSelectEnabled() const { return mbMouseMoveSelect; } + BOOL IsMouseMoveSelect() const { return mbMouseMoveSelect||mbStackMode; } +@@ -372,7 +373,7 @@ public: + const Link& GetUserDrawHdl() const { return maUserDrawHdl; } + void SetMRUChangedHdl( const Link& rLink ) { maMRUChangedHdl = rLink; } + const Link& GetMRUChangedHdl() const { return maMRUChangedHdl; } +- ++ + BOOL IsSelectionChanged() const { return mbSelectionChanged; } + USHORT GetSelectModifier() const { return mnSelectModifier; } + +@@ -381,8 +382,11 @@ public: + void SetReadOnly( BOOL bReadOnly ) { mbReadOnly = bReadOnly; } + BOOL IsReadOnly() const { return mbReadOnly; } + +- + void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); ++ ++ // pb: #106948# explicit mirroring for calc ++ inline void EnableMirroring() { mbMirroring = TRUE; } ++ inline BOOL IsMirroring() const { return mbMirroring; } + }; + + // --------------- +@@ -422,7 +426,7 @@ public: + + const ImplEntryList* GetEntryList() const { return maLBWindow.GetEntryList(); } + ImplListBoxWindow* GetMainWindow() { return &maLBWindow; } +- ++ + virtual void Resize(); + virtual const Wallpaper& GetDisplayBackground() const; + virtual Window* GetPreferredKeyInputWindow(); +@@ -441,7 +445,7 @@ public: + + BOOL ProcessKeyInput( const KeyEvent& rKEvt ) { return maLBWindow.ProcessKeyInput( rKEvt ); } + BOOL HandleWheelAsCursorTravel( const CommandEvent& rCEvt ); +- ++ + void SetSeparatorPos( USHORT n ) { maLBWindow.SetSeparatorPos( n ); } + USHORT GetSeparatorPos() const { return maLBWindow.GetSeparatorPos(); } + +@@ -459,7 +463,7 @@ public: + + void EnableMultiSelection( BOOL bMulti, BOOL bStackMode ) { maLBWindow.EnableMultiSelection( bMulti, bStackMode ); } + BOOL IsMultiSelectionEnabled() const { return maLBWindow.IsMultiSelectionEnabled(); } +- ++ + void SetMultiSelectionSimpleMode( BOOL bSimple ) { maLBWindow.SetMultiSelectionSimpleMode( bSimple ); } + BOOL IsMultiSelectionSimpleMode() const { return maLBWindow.IsMultiSelectionSimpleMode(); } + +@@ -481,7 +485,7 @@ public: + const Link& GetDoubleClickHdl() const { return maLBWindow.GetDoubleClickHdl(); } + void SetUserDrawHdl( const Link& rLink ) { maLBWindow.SetUserDrawHdl( rLink ); } + const Link& GetUserDrawHdl() const { return maLBWindow.GetUserDrawHdl(); } +- ++ + void SetSelectionChangedHdl( const Link& rLnk ) { maLBWindow.GetEntryList()->SetSelectionChangedHdl( rLnk ); } + void SetCallSelectionChangedHdl( BOOL bCall ) { maLBWindow.GetEntryList()->SetCallSelectionChangedHdl( bCall ); } + BOOL IsSelectionChanged() const { return maLBWindow.IsSelectionChanged(); } +@@ -493,6 +497,9 @@ public: + USHORT GetMaxMRUCount() const { return maLBWindow.GetEntryList()->GetMaxMRUCount(); } + USHORT GetDisplayLineCount() const + { return maLBWindow.GetDisplayLineCount(); } ++ ++ // pb: #106948# explicit mirroring for calc ++ inline void EnableMirroring() { maLBWindow.EnableMirroring(); } + }; + + // ----------------------------- +@@ -535,6 +542,8 @@ public: + USHORT GetDropDownLineCount() const { return mnDDLineCount; } + + USHORT GetPopupModeStartSaveSelection() const { return mnPopupModeStartSaveSelection; } ++ ++ virtual void Resize(); + }; + + // ----------- +@@ -544,15 +553,15 @@ public: + class ImplWin : public Control + { + private: +- ++ + USHORT mnItemPos; // wegen UserDraw muss ich wissen, welches Item ich darstelle. + XubString maString; + Image maImage; + Image maImageHC; +- ++ + Rectangle maFocusRect; + Size maUserItemSize; +- ++ + Link maMBDownHdl; + Link maUserDrawHdl; + +@@ -573,10 +582,11 @@ public: + virtual void Resize(); + virtual void GetFocus(); + virtual void LoseFocus(); ++ virtual long PreNotify( NotifyEvent& rNEvt ); + + USHORT GetItemPos() const { return mnItemPos; } + void SetItemPos( USHORT n ) { mnItemPos = n; } +- ++ + const XubString& GetString() const { return maString; } + void SetString( const XubString& rStr ) { maString = rStr; } + +@@ -590,16 +600,16 @@ public: + virtual void MBDown(); + void SetMBDownHdl( const Link& rLink ) { maMBDownHdl = rLink; } + const Link& GetMBDownHdl() const { return maMBDownHdl; } +- ++ + void SetUserDrawHdl( const Link& rLink ) { maUserDrawHdl = rLink; } + const Link& GetUserDrawHdl() const { return maUserDrawHdl; } +- ++ + void SetUserItemSize( const Size& rSz ) { maUserItemSize = rSz; } + const Size& GetUserItemSize() const { return maUserItemSize; } + + void EnableUserDraw( BOOL bUserDraw ) { mbUserDrawEnabled = bUserDraw; } + BOOL IsUserDrawEnabled() const { return mbUserDrawEnabled; } +- ++ + void DrawEntry( BOOL bDrawImage, BOOL bDrawText, BOOL bDrawTextAtImagePos = FALSE, bool bLayout = false ); + }; + +Index: vcl/inc/imgcons.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/imgcons.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/imgcons.hxx 19 Sep 2000 10:23:04 -0000 1.1.1.1 ++++ vcl/inc/imgcons.hxx 6 Jan 2004 13:03:07 -0000 1.2 +@@ -85,7 +85,6 @@ private: + Bitmap maBitmap; + Bitmap maMask; + Rectangle maChangedRect; +- Rectangle maDummyRect; + Size maSize; + ImplColorMapper* mpMapper; + Color* mpPal; +@@ -94,10 +93,6 @@ private: + ULONG mnFormat; + ULONG mnStatus; + BOOL mbTrans; +- long mnDummy1; +- long mnDummy2; +- BOOL mbDummy1; +- BOOL mbDummy2; + + protected: + +Index: vcl/inc/imgctrl.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/imgctrl.hxx,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -p -u -r1.4 -r1.5 +--- vcl/inc/imgctrl.hxx 15 Aug 2002 14:49:14 -0000 1.4 ++++ vcl/inc/imgctrl.hxx 6 Jan 2004 13:03:24 -0000 1.5 +@@ -74,7 +74,7 @@ class ImageControl : public FixedImage + private: + BitmapEx maBmp; + BitmapEx maBmpHC; +- ULONG mnDummy1_mbScaleImage; // Change member in next full update! ++ BOOL mbScaleImage; + + public: + ImageControl( Window* pParent, WinBits nStyle = 0 ); +Index: vcl/inc/impbmp.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/impbmp.hxx,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -p -u -r1.2 -r1.3 +--- vcl/inc/impbmp.hxx 7 Dec 2000 13:37:15 -0000 1.2 ++++ vcl/inc/impbmp.hxx 1 Dec 2003 12:53:44 -0000 1.3 +@@ -92,11 +92,7 @@ private: + ULONG mnRefCount; + ULONG mnChecksum; + RMBitmap* mpRMBitmap; +-#ifndef REMOTE_APPSERVER + SalBitmap* mpSalBitmap; +-#else +- ImplServerBitmap* mpSalBitmap; +-#endif + + public: + +@@ -107,41 +103,8 @@ public: + + public: + +-#ifndef REMOTE_APPSERVER + void ImplSetSalBitmap( SalBitmap* pSalBitmap ); + SalBitmap* ImplGetSalBitmap() const { return mpSalBitmap; } +-#else +- void ImplSetSalBitmap( ImplServerBitmap* pSalBitmap ); +- ImplServerBitmap* ImplGetSalBitmap() const { return mpSalBitmap; } +- +- RMBitmap* ImplGetRemoteBmp(); +- +- void ImplCreateRemoteBmp( const Bitmap& rBitmap ); +- void ImplCreateRemoteBmp( const Bitmap& rBitmap, +- OutputDevice* pOut, +- const Point& rPt, const Size& rSz ); +- +- void ImplReleaseRemoteBmp(); +- +- void ImplDrawRemoteBmp( OutputDevice* pOut, +- const Point& rSrcPt, const Size& rSrcSz, +- const Point& rDestPt, const Size& rDestSz ); +- void ImplDrawRemoteBmpEx( OutputDevice* pOut, +- const Point& rSrcPt, const Size& rSrcSz, +- const Point& rDestPt, const Size& rDestSz, +- const Bitmap& rMask ); +- void ImplDrawRemoteBmpAlpha( OutputDevice* pOut, +- const Point& rSrcPt, const Size& rSrcSz, +- const Point& rDestPt, const Size& rDestSz, +- const AlphaMask& rAlpha ); +- void ImplDrawRemoteBmpMask( OutputDevice* pOut, +- const Point& rSrcPt, const Size& rSrcSz, +- const Point& rDestPt, const Size& rDestSz, +- const Color& rColor ); +- +- BOOL ImplIsGetPrepared() const; +- void ImplResolveGet(); +-#endif + + public: + +Index: vcl/inc/impgraph.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/impgraph.hxx,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -p -u -r1.3 -r1.4 +--- vcl/inc/impgraph.hxx 24 Aug 2001 14:07:49 -0000 1.3 ++++ vcl/inc/impgraph.hxx 20 Apr 2004 13:53:44 -0000 1.4 +@@ -144,8 +144,8 @@ private: + BOOL ImplIsAlpha() const; + BOOL ImplIsAnimated() const; + +- Bitmap ImplGetBitmap( const Size* pSizePixel ) const; +- BitmapEx ImplGetBitmapEx( const Size* pSizePixel ) const; ++ Bitmap ImplGetBitmap( const Size* pSizePixel, BOOL bUnlimited ) const; ++ BitmapEx ImplGetBitmapEx( const Size* pSizePixel, BOOL bUnlimited ) const; + Animation ImplGetAnimation() const; + const GDIMetaFile& ImplGetGDIMetaFile() const; + +Index: vcl/inc/jobset.h +=================================================================== +RCS file: /cvs/gsl/vcl/inc/jobset.h,v +retrieving revision 1.5 +retrieving revision 1.6 +diff -u -p -u -r1.5 -r1.6 +--- vcl/inc/jobset.h 6 Mar 2002 11:13:54 -0000 1.5 ++++ vcl/inc/jobset.h 6 Jan 2004 13:03:42 -0000 1.6 +@@ -72,7 +72,7 @@ + #ifndef _SV_PRNTYPES_HXX + #include <prntypes.hxx> + #endif +-#ifndef __SGI_STL_HASH_MAP ++#ifndef _STLP_HASH_MAP + #include <hash_map> + #endif + #ifndef _RTL_USTRING_ +Index: vcl/inc/jobset.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/jobset.hxx,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -p -u -r1.4 -r1.5 +--- vcl/inc/jobset.hxx 19 Dec 2001 14:43:31 -0000 1.4 ++++ vcl/inc/jobset.hxx 1 Dec 2003 12:54:41 -0000 1.5 +@@ -75,10 +75,6 @@ + class SvStream; + struct ImplJobSetup; + +-#ifdef REMOTE_APPSERVER +-namespace com { namespace sun { namespace star { namespace portal { namespace client { struct RmJobSetup; } } } } } +-#endif +- + // ------------ + // - JobSetup - + // ------------ +@@ -115,10 +111,6 @@ public: + + + JobSetup& operator=( const JobSetup& rJob ); +-#ifdef REMOTE_APPSERVER +- JobSetup& operator=( const ::com::sun::star::portal::client::RmJobSetup& ); +- void SetRmJobSetup( ::com::sun::star::portal::client::RmJobSetup& ) const; +-#endif + + BOOL operator==( const JobSetup& rJobSetup ) const; + BOOL operator!=( const JobSetup& rJobSetup ) const +Index: vcl/inc/keycod.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/keycod.hxx,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -p -u -r1.2 -r1.3 +--- vcl/inc/keycod.hxx 27 Feb 2002 12:11:26 -0000 1.2 ++++ vcl/inc/keycod.hxx 6 Jan 2004 13:03:58 -0000 1.3 +@@ -69,8 +69,8 @@ + #ifndef _SV_SV_H + #include <sv.h> + #endif +-#ifndef _SV_RESID_HXX +-#include <resid.hxx> ++#ifndef _TOOLS_RESID_HXX ++#include <tools/resid.hxx> + #endif + #ifndef _SV_KEYCODES_HXX + #include <keycodes.hxx> +Index: vcl/inc/keycodes.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/keycodes.hxx,v +retrieving revision 1.2.250.1 +retrieving revision 1.5 +diff -u -p -u -r1.2.250.1 -r1.5 +--- vcl/inc/keycodes.hxx 9 Jan 2004 18:13:39 -0000 1.2.250.1 ++++ vcl/inc/keycodes.hxx 17 Mar 2004 10:04:17 -0000 1.5 +@@ -70,7 +70,7 @@ + // - KeyCode-Types - + // ----------------- + +-// By changes you must also change: tools/vclrsc.hxx ++// By changes you must also change: rsc/vclrsc.hxx + + // Key-Gruppen + #define KEYGROUP_NUM ((USHORT)0x0100) +@@ -186,6 +186,7 @@ + #define KEY_MENU ((USHORT)(KEYGROUP_MISC+26)) + #define KEY_HELP ((USHORT)(KEYGROUP_MISC+27)) + #define KEY_HANGUL_HANJA ((USHORT)(KEYGROUP_MISC+28)) ++#define KEY_DECIMAL ((USHORT)(KEYGROUP_MISC+29)) + + #define KEY_CODE ((USHORT)0x0FFF) + +Index: vcl/inc/lineinfo.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/lineinfo.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/lineinfo.hxx 19 Sep 2000 10:23:05 -0000 1.1.1.1 ++++ vcl/inc/lineinfo.hxx 4 Sep 2003 07:41:49 -0000 1.2 +@@ -140,31 +140,6 @@ public: + + friend SvStream& operator>>( SvStream& rIStm, LineInfo& rLineInfo ); + friend SvStream& operator<<( SvStream& rOStm, const LineInfo& rLineInfo ); +- +-#ifdef SMART_UNO_GENERATION +- +- LineStyle getStyle() const { return GetStyle(); } +- void setStyle( LineStyle eStyle ) { SetStyle( eStyle ); } +- +- long getWidth() const { return GetWidth(); } +- void setWidth( ULONG nDistance ) { SetWidth( nWidth ); } +- +- USORT getDashCount const { return GetDashCount(); } +- void setDashCount( USHORT nDashCount ) { SetDashCount( nDashCount ); } +- +- long getDashLen() const { return GetDashLen(); } +- void setDashLen( long nDashLen ) { SetDashLen( nDashLen ); } +- +- USHORT getDotCount() const { return GetDotCount(); } +- void setDotCount( USHORT nDotCount ) { SetDotCount( nDotCount ); } +- +- long getDotLen() const { GetDotLen(); } +- void setDotLen( long nDotLen ) { SetDotLen( nDotLen ); } +- +- long getDistance() const { return GetDistance(); } +- void setDistance( long nDistance ) { SetDistance( nDistance ); } +- +-#endif + }; + + #endif // _SV_LINEINFO_HXX +Index: vcl/inc/longcurr.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/longcurr.hxx,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -p -u -r1.3 -r1.4 +--- vcl/inc/longcurr.hxx 29 Jun 2001 10:17:29 -0000 1.3 ++++ vcl/inc/longcurr.hxx 6 Jan 2004 13:04:51 -0000 1.4 +@@ -77,12 +77,9 @@ class LocaleDataWrapper; + + class LongCurrencyFormatter : public FormatterBase + { +-#if _SOLAR__PRIVATE +-#ifdef VCL_LONGCURR_CXX +- friend BOOL ImplLongCurrencyReformat( const XubString&, BigInt, BigInt, USHORT, const LocaleDataWrapper&, XubString&, LongCurrencyFormatter& ); ++private: ++ friend BOOL ImplLongCurrencyReformat( const XubString&, BigInt, BigInt, USHORT, const LocaleDataWrapper&, XubString&, LongCurrencyFormatter& ); + void ImpInit(); +-#endif +-#endif + + protected: + BigInt mnFieldValue; +@@ -95,9 +92,6 @@ protected: + USHORT mnDecimalDigits; + BOOL mbThousandSep; + +- ULONG mnDummy; +- BOOL mbDummy; +- + LongCurrencyFormatter(); + void ImplLoadRes( const ResId& rResId ); + +@@ -141,9 +135,7 @@ public: + class LongCurrencyField : public SpinField, public LongCurrencyFormatter + { + #if _SOLAR__PRIVATE +-#ifdef VCL_LONGCURR_CXX + friend void ImplNewLongCurrencyFieldValue( LongCurrencyField*, BigInt ); +-#endif + #endif + + private: +Index: vcl/inc/lstbox.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/lstbox.hxx,v +retrieving revision 1.12 +retrieving revision 1.14 +diff -u -p -u -r1.12 -r1.14 +--- vcl/inc/lstbox.hxx 1 Nov 2002 09:00:27 -0000 1.12 ++++ vcl/inc/lstbox.hxx 18 May 2004 10:49:04 -0000 1.14 +@@ -232,6 +232,9 @@ public: + USHORT GetMaxMRUCount() const; + + USHORT GetDisplayLineCount() const; ++ ++ void EnableMirroring(); ++ + }; + + + +Index: vcl/inc/mapmod.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/mapmod.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/mapmod.hxx 19 Sep 2000 10:23:05 -0000 1.1.1.1 ++++ vcl/inc/mapmod.hxx 7 Jan 2004 09:06:47 -0000 1.2 +@@ -72,8 +72,8 @@ + #ifndef _SV_SV_H + #include <sv.h> + #endif +-#ifndef _SV_RESID_HXX +-#include <resid.hxx> ++#ifndef _TOOLS_RESID_HXX ++#include <tools/resid.hxx> + #endif + #ifndef _VCL_MAPUNIT_HXX + #include <mapunit.hxx> +@@ -101,11 +101,9 @@ private: + friend SvStream& operator>>( SvStream& rIStm, ImplMapMode& rMapMode ); + friend SvStream& operator<<( SvStream& rOStm, const ImplMapMode& rMapMode ); + +-#ifdef _SV_MAPMOD_CXX + public: + ImplMapMode(); + ImplMapMode( const ImplMapMode& rImpMapMode ); +-#endif + }; + + // ----------- +@@ -119,9 +117,7 @@ class MapMode + private: + ImplMapMode* mpImplMapMode; + +-#ifdef _SV_MAPMOD_CXX + void ImplMakeUnique(); +-#endif + + public: + MapMode(); +Index: vcl/inc/menu.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/menu.hxx,v +retrieving revision 1.26.112.1 +retrieving revision 1.30 +diff -u -p -u -r1.26.112.1 -r1.30 +--- vcl/inc/menu.hxx 13 Nov 2003 16:48:20 -0000 1.26.112.1 ++++ vcl/inc/menu.hxx 25 Feb 2004 17:29:29 -0000 1.30 +@@ -66,20 +66,20 @@ + #include <sv.h> + #endif + +-#ifndef _SV_RC_HXX +-#include <rc.hxx> ++#ifndef _TOOLS_RC_HXX ++#include <tools/rc.hxx> + #endif + +-#ifndef _SV_RESID_HXX +-#include <resid.hxx> ++#ifndef _TOOLS_RESID_HXX ++#include <tools/resid.hxx> + #endif + + #ifndef _SV_BITMAPEX_HXX + #include <bitmapex.hxx> + #endif + +-#ifndef _SV_COLOR_HXX +-#include <color.hxx> ++#ifndef _TOOLS_COLOR_HXX ++#include <tools/color.hxx> + #endif + + #ifndef _VCL_VCLEVENT_HXX +@@ -103,7 +103,9 @@ class KeyEvent; + class AppBarWindow; + class MenuFloatingWindow; + class Window; + class AccessObjectRef; ++class SalMenu; ++struct SystemMenuData; + + namespace com { + namespace sun { +@@ -126,11 +127,11 @@ namespace vcl { struct MenuLayoutData; } + #define POPUPMENU_EXECUTE_LEFT ((USHORT)0x0004) + #define POPUPMENU_EXECUTE_RIGHT ((USHORT)0x0008) + +-// By changes you must also change: tools/vclrsc.hxx ++// By changes you must also change: rsc/vclrsc.hxx + enum MenuItemType { MENUITEM_DONTKNOW, MENUITEM_STRING, MENUITEM_IMAGE, + MENUITEM_STRINGIMAGE, MENUITEM_SEPARATOR }; + +-// By changes you must also change: tools/vclrsc.hxx ++// By changes you must also change: rsc/vclrsc.hxx + typedef USHORT MenuItemBits; + #define MIB_CHECKABLE ((MenuItemBits)0x0001) + #define MIB_RADIOCHECK ((MenuItemBits)0x0002) +@@ -151,12 +152,10 @@ struct MenuLogo + BitmapEx aBitmap; + Color aStartColor; + Color aEndColor; +- ULONG nDummy; + }; + + class Menu : public Resource + { +- friend class AccessObject; + friend class MenuBar; + friend class MenuBarWindow; + friend class MenuFloatingWindow; +@@ -164,6 +163,7 @@ class Menu : public Resource + friend class SystemWindow; + + private: ++ void* pMenuData_NotUsedYet; + MenuItemList* pItemList; // Liste mit den MenuItems + MenuLogo* pLogo; + Menu* pStartedFrom; +@@ -180,7 +180,7 @@ private: + XubString aTitleText; // PopupMenu-Text + + ULONG nEventId; +- ULONG nDummy; ++ USHORT mnHighlightedItemPos; // for native menues: keeps track of the highlighted item + USHORT nMenuFlags; + USHORT nDefaultItem; // Id vom Default-Item + USHORT nSelectedId; +@@ -197,16 +197,14 @@ private: + + ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > mxAccessible; + mutable vcl::MenuLayoutData* mpLayoutData; +- void* mpDummy; +- long mnDummy; +- BOOL mbDummy; ++ SalMenu* mpSalMenu; + + protected: +-#ifdef _SV_MENU_CXX + void ImplInit(); + void ImplLoadRes( const ResId& rResId ); + Menu* ImplGetStartMenu(); + Menu* ImplFindSelectMenu(); ++ Menu* ImplFindMenu( USHORT nId ); + Size ImplCalcSize( Window* pWin ); + BOOL ImplIsVisible( USHORT nPos ) const; + USHORT ImplGetVisibleItemCount() const; +@@ -220,11 +218,16 @@ protected: + DECL_LINK( ImplCallSelect, Menu* ); + + void ImplFillLayoutData() const; ++ SalMenu* ImplGetSalMenu() { return mpSalMenu; } ++ void ImplSetSalMenu( SalMenu *pMenu ); ++ ++#if _SOLAR__PRIVATE + public: + void ImplKillLayoutData() const; + #endif + + Menu(); ++ Menu( BOOL bMenuBar ); + Window* ImplGetWindow() const { return pWindow; } + + public: +@@ -315,7 +318,10 @@ public: + void SetTipHelpText( USHORT nItemId, const XubString& rString ); + const XubString& GetTipHelpText( USHORT nItemId ) const; + +- void SetHelpId( USHORT nItemId, ULONG nHelpId ); ++ void SetHelpCommand( USHORT nItemId, const XubString& rString ); ++ const XubString& GetHelpCommand( USHORT nItemId ) const; ++ ++ void SetHelpId( USHORT nItemId, ULONG nHelpId ); + ULONG GetHelpId( USHORT nItemId ) const; + + void SetActivateHdl( const Link& rLink ) { aActivateHdl = rLink; } +@@ -342,6 +348,9 @@ public: + // Fuer Menu-'Funktionen' + MenuItemList* GetItemList() const { return pItemList; } + ++ // returns the system's menu handle if native menues are supported ++ // pData must point to a SystemMenuData structure ++ BOOL GetSystemMenuData( SystemMenuData* pData ) const; + + // accessibility helpers + +@@ -393,14 +400,13 @@ public: + + class MenuBar : public Menu + { +- void* pDummy; + Link maCloserHdl; + Link maFloatHdl; + Link maHideHdl; + BOOL mbCloserVisible; + BOOL mbFloatBtnVisible; + BOOL mbHideBtnVisible; +- BOOL mbDummy1; ++ BOOL mbDisplayable; + + #if _SOLAR__PRIVATE + friend class Application; +@@ -431,6 +437,10 @@ public: + void ShowButtons( BOOL bClose, BOOL bFloat, BOOL bHide ); + + void SelectEntry( USHORT nId ); ++ BOOL HandleMenuActivateEvent( Menu *pMenu ) const; ++ BOOL HandleMenuDeActivateEvent( Menu *pMenu ) const; ++ BOOL HandleMenuHighlightEvent( Menu *pMenu, USHORT nEventId ) const; ++ BOOL HandleMenuCommandEvent( Menu *pMenu, USHORT nEventId ) const; + + void SetCloserHdl( const Link& rLink ) { maCloserHdl = rLink; } + const Link& GetCloserHdl() const { return maCloserHdl; } +@@ -438,6 +448,14 @@ public: + const Link& GetFloatButtonClickHdl() const { return maFloatHdl; } + void SetHideButtonClickHdl( const Link& rLink ) { maHideHdl = rLink; } + const Link& GetHideButtonClickHdl() const { return maHideHdl; } ++ ++ // - by default a menubar is displayable ++ // - if a menubar is not displayable, its MenuBarWindow will never be shown ++ // and it will be hidden if it was visible before ++ // - note: if a menubar is diplayable, this does not necessarily mean that it is currently visible ++ void SetDisplayable( BOOL bDisplayable ); ++ BOOL IsDisplayable() const { return mbDisplayable; } ++ + }; + + inline MenuBar& MenuBar::operator =( const MenuBar& rMenu ) +Index: vcl/inc/menubtn.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/menubtn.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/menubtn.hxx 19 Sep 2000 10:23:05 -0000 1.1.1.1 ++++ vcl/inc/menubtn.hxx 7 Jan 2004 09:07:50 -0000 1.2 +@@ -86,7 +86,6 @@ class MenuButton : public PushButton + { + private: + Rectangle maFocusRect; +- void* mpDummy; + Timer* mpMenuTimer; + PopupMenu* mpOwnMenu; + PopupMenu* mpMenu; +@@ -95,11 +94,9 @@ private: + Link maActivateHdl; + Link maSelectHdl; + +-#ifdef _SV_MENUBTN_CXX + void ImplInitData(); + void ImplExecuteMenu(); + DECL_LINK( ImplMenuTimeoutHdl, Timer* ); +-#endif + + protected: + void ImplInit( Window* pParent, WinBits nStyle ); +Index: vcl/inc/metaact.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/metaact.hxx,v +retrieving revision 1.4.252.1 +retrieving revision 1.7 +diff -u -p -u -r1.4.252.1 -r1.7 +--- vcl/inc/metaact.hxx 9 Jan 2004 18:13:40 -0000 1.4.252.1 ++++ vcl/inc/metaact.hxx 17 Jun 2004 12:05:02 -0000 1.7 +@@ -74,8 +74,8 @@ + #ifndef _SV_FONT_HXX + #include <font.hxx> + #endif +-#ifndef _SV_POLY_HXX +-#include <poly.hxx> ++#ifndef _TL_POLY_HXX ++#include <tools/poly.hxx> + #endif + #ifndef _SV_BITMAP_HXX + #include <bitmap.hxx> +@@ -575,7 +575,7 @@ private: + + Point maStartPt; + XubString maStr; +- long* mpDXAry; ++ sal_Int32* mpDXAry; + USHORT mnIndex; + USHORT mnLen; + +@@ -586,7 +586,7 @@ public: + MetaTextArrayAction( const MetaTextArrayAction& rAction ); + MetaTextArrayAction( const Point& rStartPt, + const XubString& rStr, +- const long* pDXAry, ++ const sal_Int32* pDXAry, + USHORT nIndex, + USHORT nLen ); + virtual ~MetaTextArrayAction(); +@@ -605,7 +605,7 @@ public: + const XubString& GetText() const { return maStr; } + USHORT GetIndex() const { return mnIndex; } + USHORT GetLen() const { return mnLen; } +- long* GetDXArray() const { return mpDXAry; } ++ sal_Int32* GetDXArray() const { return mpDXAry; } + }; + + // ------------------------- +Index: vcl/inc/msgbox.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/msgbox.hxx,v +retrieving revision 1.5 +retrieving revision 1.6 +diff -u -p -u -r1.5 -r1.6 +--- vcl/inc/msgbox.hxx 24 Oct 2002 10:56:12 -0000 1.5 ++++ vcl/inc/msgbox.hxx 7 Jan 2004 09:08:49 -0000 1.6 +@@ -118,12 +118,9 @@ protected: + XubString maCheckBoxText; + BOOL mbCheck; + +-#ifdef _SV_MSGBOX_CXX +-private: + void ImplInitData(); + void ImplInitButtons(); + void ImplPosControls(); +-#endif + + protected: + void ImplLoadRes( const ResId& rResId ); +@@ -159,10 +156,8 @@ public: + + class InfoBox : public MessBox + { +-#ifdef _SV_MSGBOX_CXX + private: + void ImplInitData(); +-#endif + + public: + InfoBox( Window* pParent, const XubString& rMessage ); +@@ -177,10 +172,8 @@ public: + + class WarningBox : public MessBox + { +-#ifdef _SV_MSGBOX_CXX + private: + void ImplInitData(); +-#endif + + public: + WarningBox( Window* pParent, WinBits nStyle, +@@ -198,10 +191,8 @@ public: + + class ErrorBox : public MessBox + { +-#ifdef _SV_MSGBOX_CXX + private: + void ImplInitData(); +-#endif + + public: + ErrorBox( Window* pParent, WinBits nStyle, +@@ -217,10 +208,8 @@ public: + + class QueryBox : public MessBox + { +-#ifdef _SV_MSGBOX_CXX + private: + void ImplInitData(); +-#endif + + public: + QueryBox( Window* pParent, WinBits nStyle, +Index: vcl/inc/opengl.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/opengl.hxx,v +retrieving revision 1.3 +retrieving revision 1.5 +diff -u -p -u -r1.3 -r1.5 +--- vcl/inc/opengl.hxx 15 Mar 2002 17:10:25 -0000 1.3 ++++ vcl/inc/opengl.hxx 7 Jan 2004 09:09:11 -0000 1.5 +@@ -80,22 +80,13 @@ class RmOpenGL; + class OpenGL + { + static BOOL mbNoOGL; +-private: + ++private: + OutputDevice* mpOutDev; +-#ifndef REMOTE_APPSERVER + SalOpenGL* mpOGL; +-#else +- RmOpenGL* mpOGL; +-#endif + +-#if _SOLAR__PRIVATE +-#ifdef _SV_OPENGL_CXX +-private: + void ImplInit(); + BOOL ImplInitFncPointers(); +-#endif +-#endif // __PRIVATE + + public: + OpenGL( OutputDevice* pOutDev ); +Index: vcl/inc/outdata.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/outdata.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.3 +diff -u -p -u -r1.1.1.1 -r1.3 +--- vcl/inc/outdata.hxx 19 Sep 2000 10:23:05 -0000 1.1.1.1 ++++ vcl/inc/outdata.hxx 7 Jan 2004 09:09:31 -0000 1.3 +@@ -66,8 +66,8 @@ + #include <sv.h> + #endif + +-#ifndef _SV_COLOR_HXX +-#include <color.hxx> ++#ifndef _TOOLS_COLOR_HXX ++#include <tools/color.hxx> + #endif + + #ifndef _SV_SALGTYPE_HXX +@@ -78,12 +78,10 @@ + // - Hilfemethoden - + // ----------------- + +-#ifndef REMOTE_APPSERVER + inline SalColor ImplColorToSal( Color aColor ) + { + return MAKE_SALCOLOR( aColor.GetRed(), aColor.GetGreen(), aColor.GetBlue() ); + } +-#endif + + inline int ImplIsColorTransparent( Color aColor ) + { +Index: vcl/inc/outdev.h +=================================================================== +RCS file: /cvs/gsl/vcl/inc/outdev.h,v +retrieving revision 1.13 +retrieving revision 1.14 +diff -u -p -u -r1.13 -r1.14 +--- vcl/inc/outdev.h 27 Mar 2003 17:57:25 -0000 1.13 ++++ vcl/inc/outdev.h 7 Jan 2004 09:09:50 -0000 1.14 +@@ -263,7 +263,6 @@ private: + ImplFontEntry* mpFirstEntry; + USHORT mnRef0Count; + BOOL mbPrinter; +- BOOL mbDummy; + + public: + ImplFontCache( BOOL bPrinter ); +Index: vcl/inc/outdev.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/outdev.hxx,v +retrieving revision 1.40 +retrieving revision 1.51 +diff -u -p -u -r1.40 -r1.51 +--- vcl/inc/outdev.hxx 6 Jun 2003 10:29:59 -0000 1.40 ++++ vcl/inc/outdev.hxx 17 Jun 2004 12:05:32 -0000 1.51 +@@ -71,11 +71,11 @@ + #ifndef _SV_SV_H + #include <sv.h> + #endif +-#ifndef _SV_RC_HXX +-#include <rc.hxx> ++#ifndef _TOOLS_RC_HXX ++#include <tools/rc.hxx> + #endif +-#ifndef _SV_COLOR_HXX +-#include <color.hxx> ++#ifndef _TOOLS_COLOR_HXX ++#include <tools/color.hxx> + #endif + #ifndef _SV_FONT_HXX + #include <font.hxx> +@@ -92,8 +92,8 @@ + #ifndef _SV_SETTINGS_HXX + #include <settings.hxx> + #endif +-#ifndef _SV_POLY_HXX +-#include <poly.hxx> ++#ifndef _TL_POLY_HXX ++#include <tools/poly.hxx> + #endif + + #include <vector> +@@ -108,7 +108,6 @@ class ImplGetDevFontList; + class ImplGetDevSizeList; + class ImplMultiTextLineInfo; + class SalGraphics; +-class ImplServerGraphics; + class Gradient; + class Hatch; + class Bitmap; +@@ -139,7 +138,10 @@ namespace awt { + typedef std::vector< Rectangle > MetricVector; + + namespace vcl { class PDFWriterImpl; } + ++#define OUTDEV_BUFFER_SIZE 128 ++ ++ + // --------------------- + // - OutputDevice-Data - + // --------------------- +@@ -196,7 +194,9 @@ struct KerningPair + #define PUSH_TEXTALIGN ((USHORT)0x0100) + #define PUSH_REFPOINT ((USHORT)0x0200) + #define PUSH_TEXTLINECOLOR ((USHORT)0x0400) +-#define PUSH_ALLTEXT (PUSH_TEXTCOLOR | PUSH_TEXTFILLCOLOR | PUSH_TEXTLINECOLOR | PUSH_TEXTALIGN) ++#define PUSH_TEXTLAYOUTMODE ((USHORT)0x0800) ++#define PUSH_TEXTLANGUAGE ((USHORT)0x1000) ++#define PUSH_ALLTEXT (PUSH_TEXTCOLOR | PUSH_TEXTFILLCOLOR | PUSH_TEXTLINECOLOR | PUSH_TEXTALIGN | PUSH_TEXTLAYOUTMODE | PUSH_TEXTLANGUAGE) + #define PUSH_ALLFONT (PUSH_ALLTEXT | PUSH_FONT) + #define PUSH_ALL ((USHORT)0xFFFF) + +@@ -224,10 +224,11 @@ struct KerningPair + #define IMAGE_DRAW_DISABLE ((USHORT)0x0001) + #define IMAGE_DRAW_HIGHLIGHT ((USHORT)0x0002) + #define IMAGE_DRAW_DEACTIVE ((USHORT)0x0004) +-#define IMAGE_DRAW_COLORTRANSFORM ((USHORT)0x0008) ++#define IMAGE_DRAW_COLORTRANSFORM ((USHORT)0x0008) + #define IMAGE_DRAW_SEMITRANSPARENT ((USHORT)0x0010) ++#define IMAGE_DRAW_MONOCHROME_BLACK ((USHORT)0x0020) ++#define IMAGE_DRAW_MONOCHROME_WHITE ((USHORT)0x0040) + #define IMAGE_DRAW_3DLOOK 0 +- + #define IMAGE_DRAW_BTNLOOK 0 + + // WaveLine +@@ -327,20 +328,24 @@ enum OutDevViewType { OUTDEV_VIEWTYPE_DO + + class OutputDevice : public Resource + { +- friend class Window; +- friend class VirtualDevice; +- friend class Printer; +- friend class ImplQPrinter; +- friend class OpenGL; +- friend class ::vcl::PDFWriterImpl; +- friend class SalGraphicsLayout; ++ friend class Application; ++ friend class Bitmap; ++ friend class ImplImageBmp; ++ friend class ImplQPrinter; ++ friend class OpenGL; ++ friend class Printer; ++ friend class RMBitmap; ++ friend class RMBitmapEx; ++ friend class SalGraphicsLayout; ++ friend class System; ++ friend class VirtualDevice; ++ friend class Window; ++ friend class WorkWindow; ++ friend class vcl::PDFWriterImpl; ++ friend const char* ImplDbgCheckOutputDevice( const void* pObj ); + + private: +-#ifndef REMOTE_APPSERVER + mutable SalGraphics* mpGraphics; +-#else +- mutable ImplServerGraphics* mpGraphics; +-#endif + mutable OutputDevice* mpPrevGraphics; + mutable OutputDevice* mpNextGraphics; + GDIMetaFile* mpMetaFile; +@@ -354,7 +359,10 @@ private: + List* mpUnoGraphicsList; + OutDev3D* mp3DContext; + vcl::PDFWriterImpl* mpPDFWriter; +- void* mpDummy1; ++ ++ // TEMP TEMP TEMP ++ VirtualDevice* mpAlphaVDev; ++ + /// Additional output pixel offset, applied in LogicToPixel (used by SetPixelOffset/GetPixelOffset) + long mnOutOffOrigX; + /// Additional output offset in _logical_ coordinates, applied in PixelToLogic (used by SetPixelOffset/GetPixelOffset) +@@ -369,8 +377,8 @@ private: + long mnOutOffY; + long mnOutWidth; + long mnOutHeight; +- long mnDPIX; +- long mnDPIY; ++ sal_Int32 mnDPIX; ++ sal_Int32 mnDPIY; + /// Output offset for text alignment in pixel + long mnTextOffX; + /// Output offset for text alignment in pixel +@@ -379,7 +387,6 @@ private: + long mnEmphasisDescent; + ULONG mnDrawMode; + ULONG mnTextLayoutMode; +- long mnDummy1; + ImplMapRes maMapRes; + ImplThresholdRes maThresRes; + OutDevType meOutDevType; +@@ -389,7 +396,6 @@ private: + Color maFillColor; + Font maFont; + Color maTextColor; +- Color maTextFillColorDummy; // For compatibility to SV we work with the font fill color + Color maTextLineColor; + TextAlign meTextAlign; + RasterOp meRasterOp; +@@ -399,8 +405,6 @@ private: + Point maRefPoint; + USHORT mnAntialiasing; + LanguageType meTextLanguage; +- USHORT mnDummy3; +- USHORT mnDummy4; + mutable BOOL mbMap:1, + mbMapIsDefault:1, + mbClipRegion:1, +@@ -421,12 +425,121 @@ private: + mbTextLines:1, + mbTextSpecial:1, + mbRefPoint:1, +- mbEnableRTL:1, +- mbDummy2:1, +- mbDummy3:1; ++ mbEnableRTL:1; + + #if _SOLAR__PRIVATE +-#include <outdev.imp> ++public: ++ sal_Int32 ImplGetDPIX() const { return mnDPIX; } ++ sal_Int32 ImplGetDPIY() const { return mnDPIY; } ++ int ImplGetGraphics() const; ++ void ImplReleaseGraphics( BOOL bRelease = TRUE ); ++ BOOL ImplHasMirroredGraphics(); ++ void ImplReMirror( Point &rPoint ) const; ++ void ImplReMirror( Rectangle &rRect ) const; ++ void ImplReMirror( Region &rRegion ) const; ++ void ImplInitOutDevData(); ++ void ImplDeInitOutDevData(); ++ void ImplInitLineColor(); ++ void ImplInitFillColor(); ++ int ImplNewFont(); ++ void ImplInitFont(); ++ void ImplInitTextColor(); ++ void ImplInitKerningPairs( ImplKernPairData* pKernPairs = 0, long nKernPairs = 0 ); ++ void ImplInitClipRegion(); ++ static BOOL ImplSelectClipRegion( SalGraphics* pGraphics, const Region& rRegion, OutputDevice *pOutDev ); ++ void ImplSetClipRegion( const Region* pRegion ); ++ ++ SalLayout* ImplLayout( const String& rOrigStr, xub_StrLen nIndex, ++ xub_StrLen nLen, const Point& rLogicPos = Point(0,0), ++ long nLogicWidth=0, const sal_Int32* pLogicDXArray=NULL ) const; ++ long ImplGetTextWidth( const SalLayout& ) const; ++ void ImplDrawTextBackground( const SalLayout& ); ++ void ImplDrawTextLines( SalLayout&, FontStrikeout eStrikeout, FontUnderline eUnderline, BOOL bWordLine, BOOL bUnderlineAbove ); ++ bool ImplDrawRotateText( SalLayout& ); ++ void ImplDrawTextDirect( SalLayout&, BOOL bTextLines ); ++ void ImplDrawSpecialText( SalLayout& ); ++ void ImplDrawText( SalLayout& ); ++ Rectangle ImplGetTextBoundRect( const SalLayout& ); ++ void ImplDrawEmphasisMarks( SalLayout& ); ++ ++ void ImplDrawTextRect( long nBaseX, long nBaseY, long nX, long nY, long nWidth, long nHeight ); ++ ++ void ImplInitTextLineSize(); ++ void ImplInitAboveTextLineSize(); ++ void ImplDrawWaveLine( long nBaseX, long nBaseY, long nStartX, long nStartY, long nWidth, long nHeight, long nLineWidth, short nOrientation, const Color& rColor ); ++ void ImplDrawTextLine( long nBaseX, long nX, long nY, long nWidth, FontStrikeout eStrikeout, FontUnderline eUnderline, BOOL bUnderlineAbove ); ++ void ImplDrawMnemonicLine( long nX, long nY, long nWidth ); ++ void ImplGetEmphasisMark( PolyPolygon& rPolyPoly, BOOL& rPolyLine, Rectangle& rRect1, Rectangle& rRect2, long& rYOff, long& rWidth, FontEmphasisMark eEmphasis, long nHeight, short nOrient ); ++ void ImplDrawEmphasisMark( long nBaseX, long nX, long nY, const PolyPolygon& rPolyPoly, BOOL bPolyLine, const Rectangle& rRect1, const Rectangle& rRect2 ); ++ long ImplGetTextLines( ImplMultiTextLineInfo& rLineInfo, long nWidth, const XubString& rStr, USHORT nStyle ) const; ++ void ImplInitFontList() const; ++ void ImplUpdateFontData( BOOL bNewFontLists ); ++ static void ImplUpdateAllFontData( BOOL bNewFontLists ); ++ long ImplLogicXToDevicePixel( long nX ) const; ++ long ImplLogicYToDevicePixel( long nY ) const; ++ long ImplLogicWidthToDevicePixel( long nWidth ) const; ++ long ImplLogicHeightToDevicePixel( long nHeight ) const; ++ long ImplDevicePixelToLogicWidth( long nWidth ) const; ++ long ImplDevicePixelToLogicHeight( long nHeight ) const; ++ Point ImplLogicToDevicePixel( const Point& rLogicPt ) const; ++ Size ImplLogicToDevicePixel( const Size& rLogicSize ) const; ++ Rectangle ImplLogicToDevicePixel( const Rectangle& rLogicRect ) const; ++ Polygon ImplLogicToDevicePixel( const Polygon& rLogicPoly ) const; ++ PolyPolygon ImplLogicToDevicePixel( const PolyPolygon& rLogicPolyPoly ) const; ++ LineInfo ImplLogicToDevicePixel( const LineInfo& rLineInfo ) const; ++ Rectangle ImplDevicePixelToLogic( const Rectangle& rLogicRect ) const; ++ Region ImplPixelToDevicePixel( const Region& rRegion ) const; ++ void ImplDrawPolygon( const Polygon& rPoly, const PolyPolygon* pClipPolyPoly = NULL ); ++ void ImplDrawPolyPolygon( const PolyPolygon& rPolyPoly, const PolyPolygon* pClipPolyPoly = NULL ); ++ void ImplDrawPolyPolygon( USHORT nPoly, const PolyPolygon& rPolyPoly ); ++ void ImplDrawLinearGradient( const Rectangle& rRect, const Gradient& rGradient, BOOL bMtf, const PolyPolygon* pClipPolyPoly ); ++ void ImplDrawComplexGradient( const Rectangle& rRect, const Gradient& rGradient, BOOL bMtf, const PolyPolygon* pClipPolyPoly ); ++ ++ void ImplDrawHatch( const PolyPolygon& rPolyPoly, const Hatch& rHatch, BOOL bMtf ); ++ void ImplCalcHatchValues( const Rectangle& rRect, long nDist, USHORT nAngle10, Point& rPt1, Point& rPt2, Size& rInc, Point& rEndPt1 ); ++ void ImplDrawHatchLine( const Line& rLine, const PolyPolygon& rPolyPoly, Point* pPtBuffer, BOOL bMtf ); ++ ++ void ImplDrawWallpaper( long nX, long nY, long nWidth, long nHeight, const Wallpaper& rWallpaper ); ++ void ImplDrawColorWallpaper( long nX, long nY, long nWidth, long nHeight, const Wallpaper& rWallpaper ); ++ void ImplDrawBitmapWallpaper( long nX, long nY, long nWidth, long nHeight, const Wallpaper& rWallpaper ); ++ void ImplDrawGradientWallpaper( long nX, long nY, long nWidth, long nHeight, const Wallpaper& rWallpaper ); ++ void ImplDraw2ColorFrame( const Rectangle& rRect, const Color& rLeftTopColor, const Color& rRightBottomColor ); ++ ++ void ImplDrawOutDevDirect( const OutputDevice* pSrcDev, void* pPosAry ); ++ void ImplDrawBitmap( const Point& rDestPt, const Size& rDestSize, ++ const Point& rSrcPtPixel, const Size& rSrcSizePixel, ++ const Bitmap& rBitmap, const ULONG nAction ); ++ void ImplDrawBitmapEx( const Point& rDestPt, const Size& rDestSize, ++ const Point& rSrcPtPixel, const Size& rSrcSizePixel, ++ const BitmapEx& rBitmapEx, const ULONG nAction ); ++ void ImplDrawMask( const Point& rDestPt, const Size& rDestSize, ++ const Point& rSrcPtPixel, const Size& rSrcSizePixel, ++ const Bitmap& rBitmap, const Color& rMaskColor, ++ const ULONG nAction ); ++ void ImplDrawAlpha( const Bitmap& rBmp, const AlphaMask& rAlpha, ++ const Point& rDestPt, const Size& rDestSize, ++ const Point& rSrcPtPixel, const Size& rSrcSizePixel ); ++ void ImplPrintTransparent( const Bitmap& rBmp, const Bitmap& rMask, ++ const Point& rDestPt, const Size& rDestSize, ++ const Point& rSrcPtPixel, const Size& rSrcSizePixel ); ++ void ImplPrintMask( const Bitmap& rMask, const Color& rMaskColor, ++ const Point& rDestPt, const Size& rDestSize, ++ const Point& rSrcPtPixel, const Size& rSrcSizePixel ); ++ void ImplDrawFrameDev( const Point& rPt, const Point& rDevPt, const Size& rDevSize, ++ const OutputDevice& rOutDev, const Region& rRegion ); ++ void ImplGetFrameDev( const Point& rPt, const Point& rDevPt, const Size& rDevSize, ++ OutputDevice& rOutDev ); ++ void ImplGetFrameBitmap( const Point& rPt, const Size& rSize, ++ Bitmap& rBitmap ) const; ++ ++ BOOL ImplIsRecordLayout() const; ++ ++ void ImplAddDevFontSubstitute( const XubString& rFontName, ++ const XubString& rReplaceFontName, ++ USHORT nFlags = 0 ); ++ ++ static FontEmphasisMark ImplGetEmphasisMarkStyle( const Font& rFont ); ++ static BOOL ImplIsUnderlineAbove( const Font& ); + #endif + + protected: +@@ -459,15 +572,15 @@ public: + xub_StrLen nLen = STRING_LEN ) const; + long GetTextHeight() const; + void DrawTextArray( const Point& rStartPt, const XubString& rStr, +- const long* pDXAry = NULL, ++ const sal_Int32* pDXAry = NULL, + xub_StrLen nIndex = 0, + xub_StrLen nLen = STRING_LEN ); +- long GetTextArray( const XubString& rStr, long* pDXAry = NULL, ++ long GetTextArray( const XubString& rStr, sal_Int32* pDXAry = NULL, + xub_StrLen nIndex = 0, + xub_StrLen nLen = STRING_LEN ) const; +- bool GetCaretPositions( const XubString&, long* pCaretXArray, ++ bool GetCaretPositions( const XubString&, sal_Int32* pCaretXArray, + xub_StrLen nIndex, xub_StrLen nLen, +- long* pDXAry = NULL, long nWidth = 0, ++ sal_Int32* pDXAry = NULL, long nWidth = 0, + BOOL bCellBreaking = TRUE ) const; + void DrawStretchText( const Point& rStartPt, ULONG nWidth, + const XubString& rStr, +@@ -505,10 +618,10 @@ public: + xub_StrLen nLen = STRING_LEN ) const; + BOOL GetTextOutline( PolyPolygon&, + const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0, +- xub_StrLen nLen = STRING_LEN, BOOL bOptimize = TRUE, const ULONG nWidth = 0, const long* pDXArray = NULL ) const; ++ xub_StrLen nLen = STRING_LEN, BOOL bOptimize = TRUE, const ULONG nWidth = 0, const sal_Int32* pDXArray = NULL ) const; + BOOL GetTextOutlines( PolyPolyVector&, + const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0, +- xub_StrLen nLen = STRING_LEN, BOOL bOptimize = TRUE, const ULONG nWidth = 0, const long* pDXArray = NULL ) const; ++ xub_StrLen nLen = STRING_LEN, BOOL bOptimize = TRUE, const ULONG nWidth = 0, const sal_Int32* pDXArray = NULL ) const; + BOOL GetGlyphBoundRects( const Point& rOrigin, const String& rStr, int nIndex, + int nLen, int nBase, MetricVector& rVector ); + +@@ -517,10 +630,52 @@ public: + void DrawLine( const Point& rStartPt, const Point& rEndPt ); + void DrawLine( const Point& rStartPt, const Point& rEndPt, + const LineInfo& rLineInfo ); ++ ++ /** Render the given polygon as a line stroke ++ ++ The given polygon is stroked with the current LineColor, start ++ and end point are not automatically connected ++ ++ @see DrawPolygon ++ @see DrawPolyPolygon ++ */ + void DrawPolyLine( const Polygon& rPoly ); ++ ++ /** Render the given polygon as a line stroke ++ ++ The given polygon is stroked with the current LineColor, start ++ and end point are not automatically connected. The line is ++ rendered according to the specified LineInfo, e.g. supplying a ++ dash pattern, or a line thickness. ++ ++ @see DrawPolygon ++ @see DrawPolyPolygon ++ */ + void DrawPolyLine( const Polygon& rPoly, + const LineInfo& rLineInfo ); ++ ++ /** Render the given polygon ++ ++ The given polygon is stroked with the current LineColor, and ++ filled with the current FillColor. If one of these colors are ++ transparent, the corresponding stroke or fill stays ++ invisible. Start and end point of the polygon are ++ automatically connected. ++ ++ @see DrawPolyLine ++ */ + void DrawPolygon( const Polygon& rPoly ); ++ ++ /** Render the given poly-polygon ++ ++ The given poly-polygon is stroked with the current LineColor, ++ and filled with the current FillColor. If one of these colors ++ are transparent, the corresponding stroke or fill stays ++ invisible. Start and end points of the contained polygons are ++ automatically connected. ++ ++ @see DrawPolyLine ++ */ + void DrawPolyPolygon( const PolyPolygon& rPolyPoly ); + void DrawRect( const Rectangle& rRect ); + void DrawRect( const Rectangle& rRect, +@@ -606,17 +755,21 @@ public: + + Bitmap GetBitmap( const Point& rSrcPt, const Size& rSize ) const; + +- void EnableMapMode( BOOL bEnable = TRUE ) { mbMap = (bEnable != 0); } ++ /** Query extended bitmap (with alpha channel, if available). ++ */ ++ BitmapEx GetBitmapEx( const Point& rSrcPt, const Size& rSize ) const; ++ ++ void EnableMapMode( BOOL bEnable = TRUE ); + BOOL IsMapModeEnabled() const { return mbMap; } + + // Enabling/disabling RTL only makes sense for OutputDevices that use a mirroring SalGraphisLayout + void EnableRTL( BOOL bEnable = TRUE); + BOOL IsRTLEnabled() const { return mbEnableRTL; } + +- void SetConnectMetaFile( GDIMetaFile* pMtf ) { mpMetaFile = pMtf; } ++ void SetConnectMetaFile( GDIMetaFile* pMtf ); + GDIMetaFile* GetConnectMetaFile() const { return mpMetaFile; } + +- void EnableOutput( BOOL bEnable = TRUE ) { mbOutput = (bEnable != 0); } ++ void EnableOutput( BOOL bEnable = TRUE ); + BOOL IsOutputEnabled() const { return mbOutput; } + BOOL IsDeviceOutput() const { return mbDevOutput; } + BOOL IsDeviceOutputNecessary() const { return (mbOutput && mbDevOutput); } +@@ -676,7 +829,7 @@ public: + void SetFont( const Font& rNewFont ); + const Font& GetFont() const { return maFont; } + void SetTextColor( const Color& rColor ); +- const Color& GetTextColor() const { return maFont.GetColor(); } ++ const Color& GetTextColor() const { return maTextColor; } + void SetTextFillColor(); + void SetTextFillColor( const Color& rColor ); + +@@ -689,6 +842,6 @@ public: + void SetTextAlign( TextAlign eAlign ); + TextAlign GetTextAlign() const { return maFont.GetAlign(); } + +- void SetSettings( const AllSettings& rSettings ) { maSettings = rSettings; } ++ void SetSettings( const AllSettings& rSettings ); + const AllSettings& GetSettings() const { return maSettings; } + +@@ -811,6 +953,11 @@ public: + + Size GetOutputSizePixel() const + { return Size( mnOutWidth, mnOutHeight ); } ++ long GetOutputWidthPixel() const { return mnOutWidth; } ++ long GetOutputHeightPixel() const { return mnOutHeight; } ++ long GetOutOffXPixel() const { return mnOutOffX; } ++ long GetOutOffYPixel() const { return mnOutOffY; } ++ + Size GetOutputSize() const + { return PixelToLogic( GetOutputSizePixel() ); } + +@@ -831,9 +978,22 @@ public: + USHORT GetBitCount() const; ++ ++ /** Query the existence and depth of the alpha channel ++ ++ @return 0, if no alpha channel available, and the bit depth of ++ the alpha channel otherwise. ++ */ ++ USHORT GetAlphaBitCount() const; + ULONG GetColorCount() const; + + void Push( USHORT nFlags = PUSH_ALL ); + void Pop(); + ++ /** Query availability of alpha channel ++ ++ @return TRUE, if this device has an alpha channel. ++ */ ++ BOOL HasAlpha(); ++ + void DrawEPS( const Point& rPt, const Size& rSz, + const GfxLink& rGfxLink, GDIMetaFile* pSubst = NULL ); + + +Index: vcl/inc/pdfwriter.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/pdfwriter.hxx,v +retrieving revision 1.6 +retrieving revision 1.8 +diff -u -p -u -r1.6 -r1.8 +--- vcl/inc/pdfwriter.hxx 28 May 2003 12:29:54 -0000 1.6 ++++ vcl/inc/pdfwriter.hxx 17 Jun 2004 12:05:47 -0000 1.8 +@@ -73,7 +73,7 @@ + #ifndef _STRING_HXX + #include <tools/string.hxx> + #endif +-#ifndef _COLOR_HXX ++#ifndef _TOOLS_COLOR_HXX + #include <tools/color.hxx> + #endif + +@@ -191,7 +191,7 @@ public: + FontUnderline eUnderline, + BOOL bUnderlineAbove = FALSE ); + void DrawTextArray( const Point& rStartPt, const XubString& rStr, +- const long* pDXAry = NULL, ++ const sal_Int32* pDXAry = NULL, + xub_StrLen nIndex = 0, + xub_StrLen nLen = STRING_LEN ); + void DrawStretchText( const Point& rStartPt, ULONG nWidth, +Index: vcl/inc/pngread.hxx +=================================================================== +RCS file: vcl/inc/pngread.hxx +diff -N vcl/inc/pngread.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/pngread.hxx 28 Jun 2004 16:05:43 -0000 1.3 +@@ -0,0 +1,101 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++#ifndef _SV_PNGREAD_HXX ++#define _SV_PNGREAD_HXX ++ ++#ifndef _SV_BITMAPEX_HXX ++#include <bitmapex.hxx> ++#endif ++#include <vector> ++ ++// ------------- ++// - PNGReader - ++// ------------- ++ ++namespace vcl ++{ ++ class PNGReaderImpl; ++ ++ class PNGReader ++ { ++ PNGReaderImpl* mpImpl; ++ ++ public: ++ ++ /* the PNG chunks are read within the c'tor, so the stream will ++ be positioned at the end of the PNG */ ++ PNGReader( SvStream& rStm ); ++ ~PNGReader(); ++ ++ BitmapEx Read(); ++ ++ // retrieve every chunk that resides inside the PNG ++ struct ChunkData ++ { ++ sal_uInt32 nType; ++ std::vector< sal_uInt8 > aData; ++ }; ++ const std::vector< ChunkData >& GetChunks() const; ++ }; ++} ++ ++#endif // _SV_PNGREAD_HXX +Index: vcl/inc/pngwrite.hxx +=================================================================== +RCS file: vcl/inc/pngwrite.hxx +diff -N vcl/inc/pngwrite.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/pngwrite.hxx 28 Jun 2004 16:05:57 -0000 1.3 +@@ -0,0 +1,106 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++#ifndef _SV_PNGWRITE_HXX ++#define _SV_PNGWRITE_HXX ++ ++#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_ ++#include <com/sun/star/uno/Sequence.hxx> ++#endif ++#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ ++#include <com/sun/star/beans/PropertyValue.hpp> ++#endif ++#ifndef _SV_BITMAPEX_HXX ++#include <bitmapex.hxx> ++#endif ++#include <vector> ++ ++// ------------- ++// - PNGWriter - ++// ------------- ++ ++namespace vcl ++{ ++ class PNGWriterImpl; ++ ++ class PNGWriter ++ { ++ PNGWriterImpl* mpImpl; ++ ++ public: ++ ++ PNGWriter( const BitmapEx& BmpEx, ++ const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >* pFilterData = NULL ); ++ ~PNGWriter(); ++ ++ sal_Bool Write( SvStream& rStm ); ++ ++ // additional method to be able to modify all chunk before they are stored ++ struct ChunkData ++ { ++ sal_uInt32 nType; ++ std::vector< sal_uInt8 > aData; ++ }; ++ std::vector< ChunkData >& GetChunks(); ++ }; ++} ++ ++#endif // _SV_PNGWRITE_HXX +Index: vcl/inc/print.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/print.hxx,v +retrieving revision 1.17 +retrieving revision 1.19 +diff -u -p -u -r1.17 -r1.19 +--- vcl/inc/print.hxx 27 Mar 2003 17:57:29 -0000 1.17 ++++ vcl/inc/print.hxx 7 Jan 2004 09:11:49 -0000 1.19 +@@ -85,12 +85,9 @@ + #include <tools/stream.hxx> + #endif + +-#if defined REMOTE_APPSERVER +-#include <vector> +-#endif +- + struct SalPrinterInfoQueue; + class SalInfoPrinter; ++struct SalPrinterQueueInfo; + class SalPrinter; + class VirtualDevice; + class Window; +@@ -101,10 +98,6 @@ namespace com { namespace sun { namespac + class Any; + } } } } + +-#ifdef REMOTE_APPSERVER +-namespace com { namespace sun { namespace star { namespace portal { namespace client { struct RmJobSetup; } } } } } +-#endif +- + // ----------------- + // - Printer-Types - + // ----------------- +@@ -268,29 +261,17 @@ class Printer : public OutputDevice + friend class ImplQPrinter; + + private: +-#ifndef REMOTE_APPSERVER ++ void* mpPrinterData_NotUsedYet; + SalInfoPrinter* mpInfoPrinter; + SalPrinter* mpPrinter; + Printer* mpJobPrinter; + SalGraphics* mpJobGraphics; +-#else +- RmPrinter* mpInfoPrinter; +- RmPrinter* mpPrinter; +- void* mpJobPrinter; +- void* mpJobGraphics; +-#endif + Printer* mpPrev; + Printer* mpNext; + VirtualDevice* mpDisplayDev; + ImplQPrinter* mpQPrinter; + GDIMetaFile* mpQMtf; + PrinterOptions* mpPrinterOptions; +-#ifndef REMOTE_APPSERVER +- void* mpDummy2; +-#else +- ::std::vector< PrinterPage* >* mpRemotePages; +-#endif +- void* mpDummy3; + XubString maPrinterName; + XubString maDriver; + XubString maPrintFile; +@@ -313,18 +294,11 @@ private: + BOOL mbIsQueuePrinter; + BOOL mbUserSetupCompleted; + BOOL mbUserSetupResult; +- BOOL mbDummy3; + Link maErrorHdl; + Link maStartPrintHdl; + Link maEndPrintHdl; + Link maPrintPageHdl; + +-#ifdef REMOTE_APPSERVER +- DECL_LINK( UserSetupCompleted, ::com::sun::star::uno::Any* ); +-#endif +- +-#if _SOLAR__PRIVATE +-#ifdef _SV_PRINT_CXX + void ImplInitData(); + void ImplInit( SalPrinterQueueInfo* pInfo ); + void ImplInitDisplay( const Window* pWindow ); +@@ -333,19 +307,11 @@ private: + void ImplUpdatePageData(); + void ImplUpdateFontList(); + void ImplFindPaperFormatForUserSize( JobSetup& ); +-#endif // _SV_PRINT_CXX +-#ifndef REMOTE_APPSERVER +- + DECL_LINK( ImplDestroyPrinterAsync, void* ); ++#if _SOLAR__PRIVATE + public: +- + void ImplEndPrint(); +-#else +-public: +- void PrintRemotePage( ULONG nPage ); +- void GetRemotePageSetup( ULONG nPage, ::com::sun::star::portal::client::RmJobSetup& rSetup ); +-#endif // REMOTE_APPSERVER +-#endif // __PRIVATE ++#endif + + #ifdef _SPOOLPRINTER_EXT + public: +Index: vcl/inc/regband.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/regband.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/regband.hxx 19 Sep 2000 10:23:06 -0000 1.1.1.1 ++++ vcl/inc/regband.hxx 7 Jan 2004 09:13:14 -0000 1.2 +@@ -65,8 +65,8 @@ + #ifndef _SV_SV_H + #include <sv.h> + #endif +-#ifndef _SV_POLY_HXX +-#include <poly.hxx> ++#ifndef _TL_POLY_HXX ++#include <tools/poly.hxx> + #endif + + /* ======================================================================= +Index: vcl/inc/region.h +=================================================================== +RCS file: /cvs/gsl/vcl/inc/region.h,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/region.h 19 Sep 2000 10:23:06 -0000 1.1.1.1 ++++ vcl/inc/region.h 7 Jan 2004 09:13:32 -0000 1.2 +@@ -68,8 +68,8 @@ + #ifndef _SV_REGBAND_HXX + #include <regband.hxx> + #endif +-#ifndef _SV_POLY_HXX +-#include <poly.hxx> ++#ifndef _TL_POLY_HXX ++#include <tools/poly.hxx> + #endif + + #ifndef _SV_REGION_HXX +Index: vcl/inc/region.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/region.hxx,v +retrieving revision 1.3 +retrieving revision 1.5 +diff -u -p -u -r1.3 -r1.5 +--- vcl/inc/region.hxx 18 Jun 2001 12:53:13 -0000 1.3 ++++ vcl/inc/region.hxx 7 Jan 2004 09:13:51 -0000 1.5 +@@ -91,11 +91,30 @@ typedef long RegionHandle; + + class Region + { ++ friend class OutputDevice; ++ friend class Window; ++ friend class Bitmap; ++ + private: +- ImplRegion* mpImplRegion; ++ ImplRegion* mpImplRegion; ++ ++ void ImplCopyData(); ++ void ImplCreateRectRegion( const Rectangle& rRect ); ++ void ImplCreatePolyPolyRegion( const PolyPolygon& rPolyPoly ); ++ void ImplPolyPolyRegionToBandRegionFunc(); ++ inline void ImplPolyPolyRegionToBandRegion(); ++ const ImplRegion* ImplGetImplRegion() const { return mpImplRegion; } ++ ImplRegion* ImplGetImplRegion() { return mpImplRegion; } ++ BOOL ImplGetFirstRect( ImplRegionInfo& rImplRegionInfo, ++ long& nX, long& nY, long& nWidth, long& nHeight ) const; ++ BOOL ImplGetNextRect( ImplRegionInfo& rImplRegionInfo, ++ long& nX, long& nY, long& nWidth, long& nHeight ) const; ++ void ImplBeginAddRect( ); ++ BOOL ImplAddRect( const Rectangle& rRect ); ++ void ImplEndAddRect( ); + +-#if _SOLAR__PRIVATE +-#include <region.imp> ++#ifdef DBG_UTIL ++ friend const char* ImplDbgTestRegion( const void* pObj ); + #endif + + public: +@@ -150,9 +169,6 @@ public: + + friend SvStream& operator>>( SvStream& rIStm, Region& rRegion ); + friend SvStream& operator<<( SvStream& rOStm, const Region& rRegion ); +- +- // usage of this function is only intended for the remote client +- RegionOverlapType GetOverlapType( const Rectangle& rRect ) const; + }; + + #endif // _SV_REGION_HXX +Index: vcl/inc/salbmp.hxx +=================================================================== +RCS file: vcl/inc/salbmp.hxx +diff -N vcl/inc/salbmp.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/salbmp.hxx 18 Nov 2003 14:28:29 -0000 1.2 +@@ -0,0 +1,96 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++#ifndef _SV_SALBMP_HXX ++#define _SV_SALBMP_HXX ++ ++#ifndef _TL_GEN_HXX ++#include <tools/gen.hxx> ++#endif ++ ++struct BitmapBuffer; ++class SalGraphics; ++class BitmapPalette; ++ ++class SalBitmap ++{ ++public: ++ SalBitmap() {} ++ virtual ~SalBitmap(); ++ ++ virtual bool Create( const Size& rSize, ++ USHORT nBitCount, ++ const BitmapPalette& rPal ) = 0; ++ virtual bool Create( const SalBitmap& rSalBmp ) = 0; ++ virtual bool Create( const SalBitmap& rSalBmp, ++ SalGraphics* pGraphics ) = 0; ++ virtual bool Create( const SalBitmap& rSalBmp, ++ USHORT nNewBitCount ) = 0; ++ virtual void Destroy() = 0; ++ virtual Size GetSize() const = 0; ++ virtual USHORT GetBitCount() const = 0; ++ ++ virtual BitmapBuffer* AcquireBuffer( bool bReadOnly ) = 0; ++ virtual void ReleaseBuffer( BitmapBuffer* pBuffer, bool bReadOnly ) = 0; ++ ++}; ++ ++#endif +Index: vcl/inc/salctrlhandle.hxx +=================================================================== +RCS file: vcl/inc/salctrlhandle.hxx +diff -N vcl/inc/salctrlhandle.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/salctrlhandle.hxx 10 May 2004 15:42:11 -0000 1.2 +@@ -0,0 +1,82 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++#ifndef _SV_SALCTRLHANDLE_HXX ++#define _SV_SALCTRLHANDLE_HXX ++ ++/* SalControlHandle: ++ * ++ * Container for platform-specific handles and data ++ * about controls. Lives as long as the VCL control ++ * lives. ++ */ ++ ++class SalControlHandle ++{ ++ public: ++ SalControlHandle() {} ++ virtual ~SalControlHandle(); ++ ++ // TODO: derive Sal implementation ++ //SalControlHandleData maData; ++}; ++ ++#endif +Index: vcl/inc/salframe.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/salframe.hxx,v +retrieving revision 1.16 +retrieving revision 1.19 +diff -u -p -u -r1.16 -r1.19 +--- vcl/inc/salframe.hxx 24 Apr 2003 15:16:48 -0000 1.16 ++++ vcl/inc/salframe.hxx 10 May 2004 15:42:24 -0000 1.19 +@@ -80,9 +80,6 @@ + #ifndef _SV_SALWTYPE_HXX + #include <salwtype.hxx> + #endif +-#ifndef _SV_SALFRAME_H +-#include <salframe.h> +-#endif + #ifndef _SV_SALGEOM_HXX + #include <salgeom.hxx> + #endif +@@ -91,11 +88,20 @@ + #include <tools/gen.hxx> + #endif + ++#ifndef _SV_REGION_HXX ++#include <region.hxx> ++#endif ++ ++#ifndef _RTL_USTRING_HXX_ ++#include <rtl/ustring.hxx> ++#endif ++ + #ifdef __cplusplus + + class AllSettings; + class SalGraphics; + class SalBitmap; ++class SalMenu; + + #else + +@@ -160,112 +166,119 @@ struct SystemEnvData; + + #ifdef __cplusplus + ++using namespace rtl; ++ + // ------------ + // - SalFrame - + // ------------ + ++struct SystemParentData; ++ + class SalFrame + { +- friend class SalInstance; +- ++ void* m_pInst; ++ SALFRAMEPROC m_pProc; + public: // public for Sal Implementation +- SalFrame(); +- ~SalFrame(); ++ SalFrame() : m_pInst( NULL ), m_pProc( NULL ) {} ++ virtual ~SalFrame(); + + public: // public for Sal Implementation +- SalFrameData maFrameData; + SalFrameGeometry maGeometry; +- static BOOL mbInReparent; +- +-#ifdef _INCL_SAL_SALFRAME_IMP +-#include <salframe.imp> +-#endif + + public: + // SalGraphics or NULL, but two Graphics for all SalFrames + // must be returned +- SalGraphics* GetGraphics(); +- void ReleaseGraphics( SalGraphics* pGraphics ); ++ virtual SalGraphics* GetGraphics() = 0; ++ virtual void ReleaseGraphics( SalGraphics* pGraphics ) = 0; + + // Event must be destroyed, when Frame is destroyed + // When Event is called, SalInstance::Yield() must be returned +- BOOL PostEvent( void* pData ); ++ virtual BOOL PostEvent( void* pData ) = 0; + +- void SetTitle( const XubString& rTitle ); +- void SetIcon( USHORT nIcon ); +- +- // Befor the window is visible, a resize event +- // must be sent with the correct size +- void Show( BOOL bVisible, BOOL bNoActivate = FALSE ); +- void Enable( BOOL bEnable ); +- // Set ClientSize and Center the Window to the desktop +- // and send/post a resize message +- void SetMinClientSize( long nWidth, long nHeight ); +- void SetPosSize( long nX, long nY, long nWidth, long nHeight, USHORT nFlags ); +- void GetClientSize( long& rWidth, long& rHeight ); +- void GetWorkArea( Rectangle& rRect ); +- SalFrame* GetParent() const; ++ virtual void SetTitle( const XubString& rTitle ) = 0; ++ virtual void SetIcon( USHORT nIcon ) = 0; ++ virtual void SetMenu( SalMenu *pSalMenu ) = 0; ++ virtual void DrawMenuBar() = 0; ++ ++ // Before the window is visible, a resize event ++ // must be sent with the correct size ++ virtual void Show( BOOL bVisible, BOOL bNoActivate = FALSE ) = 0; ++ virtual void Enable( BOOL bEnable ) = 0; ++ // Set ClientSize and Center the Window to the desktop ++ // and send/post a resize message ++ virtual void SetMinClientSize( long nWidth, long nHeight ) = 0; ++ virtual void SetPosSize( long nX, long nY, long nWidth, long nHeight, USHORT nFlags ) = 0; ++ virtual void GetClientSize( long& rWidth, long& rHeight ) = 0; ++ virtual void GetWorkArea( Rectangle& rRect ) = 0; ++ virtual SalFrame* GetParent() const = 0; + // Note: x will be mirrored at parent if UI mirroring is active +- SalFrameGeometry GetGeometry(); +- const SalFrameGeometry& GetUnmirroredGeometry() const { return maGeometry; } +- void SetWindowState( const SalFrameState* pState ); +- BOOL GetWindowState( SalFrameState* pState ); +- void ShowFullScreen( BOOL bFullScreen ); +- // Enable/Disable ScreenSaver, SystemAgents, ... +- void StartPresentation( BOOL bStart ); +- // Show Window over all other Windows +- void SetAlwaysOnTop( BOOL bOnTop ); +- +- // Window to top and grab focus +- void ToTop( USHORT nFlags ); +- +- // this function can call with the same +- // pointer style +- void SetPointer( PointerStyle ePointerStyle ); +- void CaptureMouse( BOOL bMouse ); +- void SetPointerPos( long nX, long nY ); +- +- // Alle noch anstehenden Ausgaben sofort +- // durchfuehren +- void Flush(); +- // Dummy-Syncronen Aufruf zum Client/Display +- // machen, damit man sicher sein kann, das +- // Ausgaben nicht den Client/das Display +- // ueberrennen +- void Sync(); +- +- void SetInputContext( SalInputContext* pContext ); +- void EndExtTextInput( USHORT nFlags ); +- +- XubString GetKeyName( USHORT nKeyCode ); +- XubString GetSymbolKeyName( const XubString& rFontName, USHORT nKeyCode ); +- +- // returns the input language used for the last key stroke +- // may be LANGUAGE_DONTKNOW if not supported by the OS +- LanguageType GetInputLanguage(); +- +- SalBitmap* SnapShot(); ++ SalFrameGeometry GetGeometry(); ++ const SalFrameGeometry& GetUnmirroredGeometry() const { return maGeometry; } ++ virtual void SetWindowState( const SalFrameState* pState ) = 0; ++ virtual BOOL GetWindowState( SalFrameState* pState ) = 0; ++ virtual void ShowFullScreen( BOOL bFullScreen ) = 0; ++ // Enable/Disable ScreenSaver, SystemAgents, ... ++ virtual void StartPresentation( BOOL bStart ) = 0; ++ // Show Window over all other Windows ++ virtual void SetAlwaysOnTop( BOOL bOnTop ) = 0; ++ ++ // Window to top and grab focus ++ virtual void ToTop( USHORT nFlags ) = 0; ++ ++ // this function can call with the same ++ // pointer style ++ virtual void SetPointer( PointerStyle ePointerStyle ) = 0; ++ virtual void CaptureMouse( BOOL bMouse ) = 0; ++ virtual void SetPointerPos( long nX, long nY ) = 0; ++ ++ // flush output buffer ++ virtual void Flush() = 0; ++ // flush output buffer, wait till outstanding operations are done ++ virtual void Sync() = 0; ++ ++ virtual void SetInputContext( SalInputContext* pContext ) = 0; ++ virtual void EndExtTextInput( USHORT nFlags ) = 0; ++ ++ virtual String GetKeyName( USHORT nKeyCode ) = 0; ++ virtual String GetSymbolKeyName( const XubString& rFontName, USHORT nKeyCode ) = 0; ++ ++ // returns the input language used for the last key stroke ++ // may be LANGUAGE_DONTKNOW if not supported by the OS ++ virtual LanguageType GetInputLanguage() = 0; + +- void UpdateSettings( AllSettings& rSettings ); ++ virtual SalBitmap* SnapShot() = 0; + +- void Beep( SoundType eSoundType ); ++ virtual void UpdateSettings( AllSettings& rSettings ) = 0; + +- // Liefert die SystemDaten zurueck +- const SystemEnvData* GetSystemData() const; ++ virtual void Beep( SoundType eSoundType ) = 0; ++ ++ // returns system data (most prominent: window handle) ++ virtual const SystemEnvData* GetSystemData() const = 0; + +- // Callbacks (indepen in \sv\source\app\svframe.cxx) +- // for default message handling return 0 +- void SetCallback( void* pInst, SALFRAMEPROC pProc ); + + // get current modifier and button mask +- ULONG GetCurrentModButtons(); ++ virtual ULONG GetCurrentModButtons() = 0; + + // set new parent window +- void SetParent( SalFrame* pNewParent ); ++ virtual void SetParent( SalFrame* pNewParent ) = 0; + // reparent window to act as a plugin; implementation + // may choose to use a new system window inetrnally + // return false to indicate failure +- bool SetPluginParent( SystemParentData* pNewParent ); ++ virtual bool SetPluginParent( SystemParentData* pNewParent ) = 0; ++ ++ // Callbacks (indepent part in vcl/source/window/winproc.cxx) ++ // for default message handling return 0 ++ void SetCallback( void* pInst, SALFRAMEPROC pProc ) ++ { m_pInst = pInst; m_pProc = pProc; } ++ ++ // returns the instance set ++ void* GetInstance() const { return m_pInst; } ++ ++ // Call the callback set; this sometimes necessary for implementation classes ++ // that should not now more than necessary about the SalFrame implementation ++ // (e.g. input methods, printer update handlers). ++ long CallCallback( USHORT nEvent, const void* pEvent ) const ++ { return m_pProc ? m_pProc( m_pInst, const_cast<SalFrame*>(this), nEvent, pEvent ) : 0; } + }; + + +Index: vcl/inc/salgdi.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/salgdi.hxx,v +retrieving revision 1.20.116.1 +retrieving revision 1.24 +diff -u -p -u -r1.20.116.1 -r1.24 +--- vcl/inc/salgdi.hxx 9 Jan 2004 18:13:40 -0000 1.20.116.1 ++++ vcl/inc/salgdi.hxx 17 Jun 2004 12:07:14 -0000 1.24 +@@ -72,15 +72,21 @@ + #ifndef _SV_SALGTYPE_HXX + #include <salgtype.hxx> + #endif +-#ifndef _SV_SALGDI_H +-#include <salgdi.h> +-#endif + #ifndef _VOS_THREAD_HXX + #include <vos/thread.hxx> + #endif + #ifndef _SV_OUTDEV_HXX + #include <outdev.hxx> + #endif ++#ifndef _RTL_USTRING_HXX_ ++#include <rtl/ustring.hxx> ++#endif ++#ifndef _SV_NATIVEWIDGETS_HXX ++#include <salnativewidgets.hxx> ++#endif ++#ifndef _SV_SALCTRLHANDLE_HXX ++#include <salctrlhandle.hxx> ++#endif + + #include <map> + +@@ -97,6 +103,7 @@ class ImplLayoutArgs; + class Rectangle; + struct FontSubsetInfo; + class OutputDevice; ++class ServerFontLayout; + + // --------------------- + // - SalGraphics-Codes - +@@ -114,72 +121,131 @@ class OutputDevice; + // - SalGraphics - + // --------------- + +-// note: if you add any new methods to class SalGraphics that work with coordinates +-// make sure they are virtual and add them to class SalGraphicsLayout where you have +-// to perform coordinate mirroring if required, (see existing methods as sample) ++// note: if you add any new methods to class SalGraphics using coordinates ++// make sure they have a corresponding protected pure virtual method ++// which has to be implemented by the platform dependent part. ++// Add a method that performs coordinate mirroring if required, (see ++// existing methods as sample) and then calls the equivalent pure method. ++ ++// note: all positions are in pixel and relative to ++// the top/left-position of the virtual output area ++ + + class SalGraphics + { +- friend class SalFrame; +- friend class SalVirtualDevice; +- friend class SalPrinter; +- +-public: // public for Sal Implementation +- SalGraphics(); +- virtual ~SalGraphics(); +- +-public: // public for Sal Implementation +- SalGraphicsData maGraphicsData; +- +- // to be overridden by derived class +- virtual int GetLayout() { return 0; } // base class supports left-to-right only +- virtual void SetLayout( int ) {}; ++ int m_nLayout; // 0: mirroring off, 1: mirror x-axis ++public: ++ SalGraphics(); ++ virtual ~SalGraphics(); + +-#ifdef _INCL_SAL_SALGDI_IMP +-#include <salgdi.imp> +-#endif ++protected: ++ virtual BOOL unionClipRegion( long nX, long nY, long nWidth, long nHeight ) = 0; ++ // draw --> LineColor and FillColor and RasterOp and ClipRegion ++ virtual void drawPixel( long nX, long nY ) = 0; ++ virtual void drawPixel( long nX, long nY, SalColor nSalColor ) = 0; ++ virtual void drawLine( long nX1, long nY1, long nX2, long nY2 ) = 0; ++ virtual void drawRect( long nX, long nY, long nWidth, long nHeight ) = 0; ++ virtual void drawPolyLine( ULONG nPoints, const SalPoint* pPtAry ) = 0; ++ virtual void drawPolygon( ULONG nPoints, const SalPoint* pPtAry ) = 0; ++ virtual void drawPolyPolygon( ULONG nPoly, const ULONG* pPoints, PCONSTSALPOINT* pPtAry ) = 0; ++ virtual sal_Bool drawPolyLineBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry ) = 0; ++ virtual sal_Bool drawPolygonBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry ) = 0; ++ virtual sal_Bool drawPolyPolygonBezier( ULONG nPoly, const ULONG* pPoints, const SalPoint* const* pPtAry, const BYTE* const* pFlgAry ) = 0; + ++ // CopyArea --> No RasterOp, but ClipRegion ++ virtual void copyArea( long nDestX, long nDestY, long nSrcX, long nSrcY, long nSrcWidth, ++ long nSrcHeight, USHORT nFlags ) = 0; ++ ++ // CopyBits and DrawBitmap --> RasterOp and ClipRegion ++ // CopyBits() --> pSrcGraphics == NULL, then CopyBits on same Graphics ++ virtual void copyBits( const SalTwoRect* pPosAry, SalGraphics* pSrcGraphics ) = 0; ++ virtual void drawBitmap( const SalTwoRect* pPosAry, const SalBitmap& rSalBitmap ) = 0; ++ virtual void drawBitmap( const SalTwoRect* pPosAry, ++ const SalBitmap& rSalBitmap, ++ SalColor nTransparentColor ) = 0; ++ virtual void drawBitmap( const SalTwoRect* pPosAry, ++ const SalBitmap& rSalBitmap, ++ const SalBitmap& rTransparentBitmap ) = 0; ++ virtual void drawMask( const SalTwoRect* pPosAry, ++ const SalBitmap& rSalBitmap, ++ SalColor nMaskColor ) = 0; ++ ++ virtual SalBitmap* getBitmap( long nX, long nY, long nWidth, long nHeight ) = 0; ++ virtual SalColor getPixel( long nX, long nY ) = 0; ++ ++ // invert --> ClipRegion (only Windows or VirDevs) ++ virtual void invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags) = 0; ++ virtual void invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags ) = 0; ++ ++ virtual BOOL drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize ) = 0; ++ ++ // native widget rendering methods that require mirroring ++ virtual BOOL hitTestNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, ++ const Point& aPos, SalControlHandle& rControlHandle, BOOL& rIsInside ); ++ virtual BOOL drawNativeControl( ControlType nType, ControlPart nPart, const Region& rControlRegion, ++ ControlState nState, const ImplControlValue& aValue, SalControlHandle& rControlHandle, ++ rtl::OUString aCaption ); ++ virtual BOOL drawNativeControlText( ControlType nType, ControlPart nPart, const Region& rControlRegion, ++ ControlState nState, const ImplControlValue& aValue, ++ SalControlHandle& rControlHandle, rtl::OUString aCaption ); ++ virtual BOOL getNativeControlRegion( ControlType nType, ControlPart nPart, const Region& rControlRegion, ControlState nState, ++ const ImplControlValue& aValue, SalControlHandle& rControlHandle, rtl::OUString aCaption, ++ Region &rNativeBoundingRegion, Region &rNativeContentRegion ); + public: ++ // public SalGraphics methods, the interface to the independent vcl part + +- // this functions must be quick, because this data is query for all +- // GetGraphics()-Instances +- void GetResolution( long& rDPIX, long& rDPIY ); +- void GetScreenFontResolution( long& rDPIX, long& rDPIY ); +- USHORT GetBitCount(); +- long GetGraphicsWidth(); +- +- void ResetClipRegion(); +- void BeginSetClipRegion( ULONG nCount ); +- virtual BOOL UnionClipRegion( long nX, long nY, long nWidth, long nHeight, const OutputDevice *pOutDev ); +- void EndSetClipRegion(); +- +- void SetLineColor(); +- void SetLineColor( SalColor nSalColor ); +- void SetFillColor(); +- +- void SetFillColor( SalColor nSalColor ); +- +- void SetXORMode( BOOL bSet ); +- +- void SetROPLineColor( SalROPColor nROPColor ); +- void SetROPFillColor( SalROPColor nROPColor ); +- +- // all positions are in pixel and relative to +- // the top/left-position of the output area +- void SetTextColor( SalColor nSalColor ); +- USHORT SetFont( ImplFontSelectData*, int nFallbackLevel ); +- void GetFontMetric( ImplFontMetricData* ); +- // return only PairCount when (pKernPairs == NULL) +- ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs ); +- ULONG GetFontCodeRanges( sal_uInt32* pCodePairs ) const; ++ // get device resolution ++ virtual void GetResolution( sal_Int32& rDPIX, sal_Int32& rDPIY ) = 0; ++ // get resolution for fonts (an implementations specific adjustment, ++ // ideally would be the same as the Resolution) ++ virtual void GetScreenFontResolution( sal_Int32& rDPIX, sal_Int32& rDPIY ) = 0; ++ // get the depth of the device ++ virtual USHORT GetBitCount() = 0; ++ // get the width of the device ++ virtual long GetGraphicsWidth() = 0; ++ ++ // set the clip region to empty ++ virtual void ResetClipRegion() = 0; ++ // begin setting the clip region, add rectangles to the ++ // region with the UnionClipRegion call ++ virtual void BeginSetClipRegion( ULONG nCount ) = 0; ++ // all rectangles were added and the clip region should be set now ++ virtual void EndSetClipRegion() = 0; ++ ++ // set the line color to transparent (= don't draw lines) ++ virtual void SetLineColor() = 0; ++ // set the line color to a specific color ++ virtual void SetLineColor( SalColor nSalColor ) = 0; ++ // set the fill color to transparent (= don't fill) ++ virtual void SetFillColor() = 0; ++ // set the fill color to a specific color, shapes will be ++ // filled accordingly ++ virtual void SetFillColor( SalColor nSalColor ) = 0; ++ // enable/disable XOR drawing ++ virtual void SetXORMode( BOOL bSet ) = 0; ++ // set line color for raster operations ++ virtual void SetROPLineColor( SalROPColor nROPColor ) = 0; ++ // set fill color for raster operations ++ virtual void SetROPFillColor( SalROPColor nROPColor ) = 0; ++ // set the text color to a specific color ++ virtual void SetTextColor( SalColor nSalColor ) = 0; ++ // set the font ++ virtual USHORT SetFont( ImplFontSelectData*, int nFallbackLevel ) = 0; ++ // get the current font's etrics ++ virtual void GetFontMetric( ImplFontMetricData* ) = 0; ++ // get kernign pairs of the current font ++ // return only PairCount if (pKernPairs == NULL) ++ virtual ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs ) = 0; ++ // get the repertoire of the current font; the code pairs returned ++ // contain unicode ranges. if pCodePairs is NULL return only the ++ // number of pairs which would be filled ++ virtual ULONG GetFontCodeRanges( sal_uInt32* pCodePairs ) const = 0; + // graphics must fill supplied font list +- void GetDevFontList( ImplDevFontList* ); ++ virtual void GetDevFontList( ImplDevFontList* ) = 0; + // graphics should call ImplAddDevFontSubstitute on supplied + // OutputDevice for all its device specific preferred font substitutions +- void GetDevFontSubstList( OutputDevice* ); +- ImplFontData* AddTempDevFont( const String& rFileURL, const String& rFontName ); +- static void RemovingFont( ImplFontData* ); +- ++ virtual void GetDevFontSubstList( OutputDevice* ) = 0; ++ virtual ImplFontData* AddTempDevFont( const String& rFileURL, const String& rFontName ) = 0; + // CreateFontSubset: a method to get a subset of glyhps of a font + // inside a new valid font file + // returns TRUE if creation of subset was successfull +@@ -192,14 +258,14 @@ public: + // rInfo: additional outgoing information + // implementation note: encoding 0 with glyph id 0 should be added implicitly + // as "undefined character" +- BOOL CreateFontSubset( const rtl::OUString& rToFile, ++ virtual BOOL CreateFontSubset( const rtl::OUString& rToFile, + ImplFontData* pFont, +- long* pGlyphIDs, ++ sal_Int32* pGlyphIDs, + sal_uInt8* pEncoding, + sal_Int32* pWidths, + int nGlyphs, + FontSubsetInfo& rInfo // out parameter +- ); ++ ) = 0; + + // GetFontEncodingVector: a method to get the encoding map Unicode + // to font encoded character; this is only used for type1 fonts and +@@ -208,7 +274,7 @@ public: + // glyphs with only a name) exist it is set to the corresponding + // map for non encoded glyphs; the encoding vector contains -1 + // as encoding for these cases +- const std::map< sal_Unicode, sal_Int32 >* GetFontEncodingVector( ImplFontData* pFont, const std::map< sal_Unicode, rtl::OString >** ppNonEncoded ); ++ virtual const std::map< sal_Unicode, sal_Int32 >* GetFontEncodingVector( ImplFontData* pFont, const std::map< sal_Unicode, rtl::OString >** ppNonEncoded ) = 0; + + // GetEmbedFontData: gets the font data for a font marked + // embeddable by GetDevFontList or NULL in case of error +@@ -219,130 +285,146 @@ public: + // pWidths MUST support at least 256 members; + // rInfo: additional outgoing information + // pDataLen: out parameter, contains the byte length of the returned buffer +- const void* GetEmbedFontData( ImplFontData* pFont, +- const sal_Unicode* pUnicodes, +- sal_Int32* pWidths, +- FontSubsetInfo& rInfo, +- long* pDataLen ); ++ virtual const void* GetEmbedFontData( ImplFontData* pFont, ++ const sal_Unicode* pUnicodes, ++ sal_Int32* pWidths, ++ FontSubsetInfo& rInfo, ++ long* pDataLen ) = 0; + // frees the font data again +- void FreeEmbedFontData( const void* pData, long nDataLen ); ++ virtual void FreeEmbedFontData( const void* pData, long nDataLen ) = 0; + +- virtual BOOL GetGlyphBoundRect( long nIndex, Rectangle&, const OutputDevice *pOutDev ); +- virtual BOOL GetGlyphOutline( long nIndex, PolyPolygon&, const OutputDevice *pOutDev ); ++ virtual BOOL GetGlyphBoundRect( long nIndex, Rectangle& ) = 0; ++ virtual BOOL GetGlyphOutline( long nIndex, PolyPolygon& ) = 0; + +- virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ); ++ virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) = 0; ++ virtual void DrawServerFontLayout( const ServerFontLayout& ) = 0; + +- // draw --> LineColor and FillColor and RasterOp and ClipRegion +- virtual void DrawPixel( long nX, long nY, const OutputDevice *pOutDev ); +- virtual void DrawPixel( long nX, long nY, SalColor nSalColor, const OutputDevice *pOutDev ); +- virtual void DrawLine( long nX1, long nY1, long nX2, long nY2, const OutputDevice *pOutDev ); +- virtual void DrawRect( long nX, long nY, long nWidth, long nHeight, const OutputDevice *pOutDev ); +- virtual void DrawPolyLine( ULONG nPoints, const SalPoint* pPtAry, const OutputDevice *pOutDev ); +- virtual void DrawPolygon( ULONG nPoints, const SalPoint* pPtAry, const OutputDevice *pOutDev ); +- virtual void DrawPolyPolygon( ULONG nPoly, const ULONG* pPoints, +- PCONSTSALPOINT* pPtAry, const OutputDevice *pOutDev ); +- virtual sal_Bool DrawPolyLineBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry, const OutputDevice *pOutDev ); +- virtual sal_Bool DrawPolygonBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry, const OutputDevice *pOutDev ); +- virtual sal_Bool DrawPolyPolygonBezier( ULONG nPoly, const ULONG* pPoints, +- const SalPoint* const* pPtAry, const BYTE* const* pFlgAry, const OutputDevice *pOutDev ); ++ // mirroring specifica ++ int GetLayout() { return m_nLayout; } ++ void SetLayout( int aLayout ) { m_nLayout = aLayout;} + ++ void mirror( long& nX, const OutputDevice *pOutDev ); ++ void mirror( long& nX, long& nWidth, const OutputDevice *pOutDev ); ++ BOOL mirror( sal_uInt32 nPoints, const SalPoint *pPtAry, SalPoint *pPtAry2, const OutputDevice *pOutDev ); ++ void mirror( Region& rRgn, const OutputDevice *pOutDev ); ++ ++ // non virtual methods; these do eventual coordinate mirroring and ++ // then delegate to protected virtual methods ++ BOOL UnionClipRegion( long nX, long nY, long nWidth, long nHeight, const OutputDevice *pOutDev ); ++ // draw --> LineColor and FillColor and RasterOp and ClipRegion ++ void DrawPixel( long nX, long nY, const OutputDevice *pOutDev ); ++ void DrawPixel( long nX, long nY, SalColor nSalColor, const OutputDevice *pOutDev ); ++ void DrawLine( long nX1, long nY1, long nX2, long nY2, const OutputDevice *pOutDev ); ++ void DrawRect( long nX, long nY, long nWidth, long nHeight, const OutputDevice *pOutDev ); ++ void DrawPolyLine( ULONG nPoints, const SalPoint* pPtAry, const OutputDevice *pOutDev ); ++ void DrawPolygon( ULONG nPoints, const SalPoint* pPtAry, const OutputDevice *pOutDev ); ++ void DrawPolyPolygon( ULONG nPoly, ++ const ULONG* pPoints, ++ PCONSTSALPOINT* pPtAry, ++ const OutputDevice *pOutDev ); ++ sal_Bool DrawPolyLineBezier( ULONG nPoints, ++ const SalPoint* pPtAry, ++ const BYTE* pFlgAry, ++ const OutputDevice *pOutDev ); ++ sal_Bool DrawPolygonBezier( ULONG nPoints, ++ const SalPoint* pPtAry, ++ const BYTE* pFlgAry, ++ const OutputDevice *pOutDev ); ++ sal_Bool DrawPolyPolygonBezier( ULONG nPoly, ++ const ULONG* pPoints, ++ const SalPoint* const* pPtAry, ++ const BYTE* const* pFlgAry, ++ const OutputDevice *pOutDev ); ++ + // CopyArea --> No RasterOp, but ClipRegion +- virtual void CopyArea( long nDestX, long nDestY, +- long nSrcX, long nSrcY, +- long nSrcWidth, long nSrcHeight, +- USHORT nFlags, const OutputDevice *pOutDev ); ++ void CopyArea( long nDestX, ++ long nDestY, ++ long nSrcX, ++ long nSrcY, ++ long nSrcWidth, ++ long nSrcHeight, ++ USHORT nFlags, ++ const OutputDevice *pOutDev ); + + // CopyBits and DrawBitmap --> RasterOp and ClipRegion + // CopyBits() --> pSrcGraphics == NULL, then CopyBits on same Graphics +- virtual void CopyBits( const SalTwoRect* pPosAry, +- SalGraphics* pSrcGraphics, const OutputDevice *pOutDev, const OutputDevice *pSrcOutDev ); +- virtual void DrawBitmap( const SalTwoRect* pPosAry, +- const SalBitmap& rSalBitmap, const OutputDevice *pOutDev ); +- virtual void DrawBitmap( const SalTwoRect* pPosAry, ++ void CopyBits( const SalTwoRect* pPosAry, ++ SalGraphics* pSrcGraphics, ++ const OutputDevice *pOutDev, ++ const OutputDevice *pSrcOutDev ); ++ void DrawBitmap( const SalTwoRect* pPosAry, + const SalBitmap& rSalBitmap, +- SalColor nTransparentColor, const OutputDevice *pOutDev ); +- virtual void DrawBitmap( const SalTwoRect* pPosAry, ++ const OutputDevice *pOutDev ); ++ void DrawBitmap( const SalTwoRect* pPosAry, + const SalBitmap& rSalBitmap, +- const SalBitmap& rTransparentBitmap, const OutputDevice *pOutDev ); ++ SalColor nTransparentColor, ++ const OutputDevice *pOutDev ); ++ void DrawBitmap( const SalTwoRect* pPosAry, ++ const SalBitmap& rSalBitmap, ++ const SalBitmap& rTransparentBitmap, ++ const OutputDevice *pOutDev ); + +- virtual void DrawMask( const SalTwoRect* pPosAry, ++ void DrawMask( const SalTwoRect* pPosAry, + const SalBitmap& rSalBitmap, +- SalColor nMaskColor, const OutputDevice *pOutDev ); ++ SalColor nMaskColor, ++ const OutputDevice *pOutDev ); + +- virtual SalBitmap* GetBitmap( long nX, long nY, long nWidth, long nHeight, const OutputDevice *pOutDev ); +- virtual SalColor GetPixel( long nX, long nY, const OutputDevice *pOutDev ); ++ SalBitmap* GetBitmap( long nX, long nY, long nWidth, long nHeight, const OutputDevice *pOutDev ); ++ SalColor GetPixel( long nX, long nY, const OutputDevice *pOutDev ); + + // invert --> ClipRegion (only Windows) +- virtual void Invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags, const OutputDevice *pOutDev ); +- virtual void Invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags, const OutputDevice *pOutDev ); +- +- virtual BOOL DrawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize, const OutputDevice *pOutDev ); +-}; +- +- +-// --------------------- +-// - SalGraphicsLayout - +-// --------------------- +- +-// extend SalGraphics for RTL +- +-class SalGraphicsLayout : public SalGraphics +-{ +- friend class SalFrame; +- friend class SalVirtualDevice; +- friend class SalPrinter; +- +-private: +- int mnLayout; +- +-public: +- SalGraphicsLayout(); +- ~SalGraphicsLayout(); +- +- int GetLayout() { return mnLayout; } +- void SetLayout( int aLayout) { mnLayout = aLayout;} +- +- void mirror( long& nX, const OutputDevice *pOutDev ); +- void mirror( long& nX, long& nWidth, const OutputDevice *pOutDev ); +- BOOL mirror( sal_uInt32 nPoints, const SalPoint *pPtAry, SalPoint *pPtAry2, const OutputDevice *pOutDev ); +- +- // overwrite those SalGraphics methods that require mirroring +- // note: text methods will not be mirrored here, this is handled in outdev3.cxx +- BOOL UnionClipRegion( long nX, long nY, long nWidth, long nHeight, const OutputDevice *pOutDev ); +- void DrawPixel( long nX, long nY, const OutputDevice *pOutDev ); +- void DrawPixel( long nX, long nY, SalColor nSalColor, const OutputDevice *pOutDev ); +- void DrawLine( long nX1, long nY1, long nX2, long nY2, const OutputDevice *pOutDev ); +- void DrawRect( long nX, long nY, long nWidth, long nHeight, const OutputDevice *pOutDev ); +- void DrawPolyLine( ULONG nPoints, const SalPoint* pPtAry, const OutputDevice *pOutDev ); +- void DrawPolygon( ULONG nPoints, const SalPoint* pPtAry, const OutputDevice *pOutDev ); +- void DrawPolyPolygon( ULONG nPoly, const ULONG* pPoints, +- PCONSTSALPOINT* pPtAry, const OutputDevice *pOutDev ); +- sal_Bool DrawPolyLineBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry, const OutputDevice *pOutDev ); +- sal_Bool DrawPolygonBezier( ULONG nPoints, const SalPoint* pPtAry, const BYTE* pFlgAry, const OutputDevice *pOutDev ); +- sal_Bool DrawPolyPolygonBezier( ULONG nPoly, const ULONG* pPoints, +- const SalPoint* const* pPtAry, const BYTE* const* pFlgAry, const OutputDevice *pOutDev ); +- void CopyArea( long nDestX, long nDestY, +- long nSrcX, long nSrcY, +- long nSrcWidth, long nSrcHeight, +- USHORT nFlags, const OutputDevice *pOutDev ); +- void CopyBits( const SalTwoRect* pPosAry, +- SalGraphics* pSrcGraphics, const OutputDevice *pOutDev, const OutputDevice *pSrcOutDev ); +- void DrawBitmap( const SalTwoRect* pPosAry, +- const SalBitmap& rSalBitmap, const OutputDevice *pOutDev ); +- void DrawBitmap( const SalTwoRect* pPosAry, +- const SalBitmap& rSalBitmap, +- SalColor nTransparentColor, const OutputDevice *pOutDev ); +- void DrawBitmap( const SalTwoRect* pPosAry, +- const SalBitmap& rSalBitmap, +- const SalBitmap& rTransparentBitmap, const OutputDevice *pOutDev ); +- void DrawMask( const SalTwoRect* pPosAry, +- const SalBitmap& rSalBitmap, +- SalColor nMaskColor, const OutputDevice *pOutDev ); +- SalBitmap* GetBitmap( long nX, long nY, long nWidth, long nHeight, const OutputDevice *pOutDev ); +- SalColor GetPixel( long nX, long nY, const OutputDevice *pOutDev ); +- void Invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags, const OutputDevice *pOutDev ); +- void Invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags, const OutputDevice *pOutDev ); +- BOOL DrawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize, const OutputDevice *pOutDev ); ++ void Invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags, const OutputDevice *pOutDev ); ++ void Invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nFlags, const OutputDevice *pOutDev ); ++ ++ BOOL DrawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize, const OutputDevice *pOutDev ); ++ ++ //------------------------------------- ++ // Native Widget Rendering functions ++ //------------------------------------- ++ ++ // Query the platform layer for control support ++ virtual BOOL IsNativeControlSupported( ControlType nType, ControlPart nPart ); ++ ++ // Query the native control to determine if it was acted upon ++ BOOL HitTestNativeControl( ControlType nType, ++ ControlPart nPart, ++ const Region& rControlRegion, ++ const Point& aPos, ++ SalControlHandle& rControlHandle, ++ BOOL& rIsInside, ++ const OutputDevice *pOutDev ); ++ ++ // Request rendering of a particular control and/or part ++ BOOL DrawNativeControl( ControlType nType, ++ ControlPart nPart, ++ const Region& rControlRegion, ++ ControlState nState, ++ const ImplControlValue& aValue, ++ SalControlHandle& rControlHandle, ++ rtl::OUString aCaption, ++ const OutputDevice *pOutDev ); ++ ++ // Request rendering of a caption string for a control ++ BOOL DrawNativeControlText( ControlType nType, ++ ControlPart nPart, ++ const Region& rControlRegion, ++ ControlState nState, ++ const ImplControlValue& aValue, ++ SalControlHandle& rControlHandle, ++ rtl::OUString aCaption, ++ const OutputDevice *pOutDev ); ++ ++ // Query the native control's actual drawing region (including adornment) ++ BOOL GetNativeControlRegion( ControlType nType, ++ ControlPart nPart, ++ const Region& rControlRegion, ++ ControlState nState, ++ const ImplControlValue& aValue, ++ SalControlHandle& rControlHandle, ++ rtl::OUString aCaption, ++ Region &rNativeBoundingRegion, ++ Region &rNativeContentRegion, ++ const OutputDevice *pOutDev ); + }; + + #endif // _SV_SALGDI_HXX +Index: vcl/inc/salimestatus.hxx +=================================================================== +RCS file: vcl/inc/salimestatus.hxx +diff -N vcl/inc/salimestatus.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/salimestatus.hxx 18 Nov 2003 14:29:06 -0000 1.2 +@@ -0,0 +1,77 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++#ifndef _SV_SALIMESTATUS_HXX ++#define _SV_SALIMESTATUS_HXX ++ ++class SalI18NImeStatus ++{ ++public: ++ SalI18NImeStatus() {} ++ virtual ~SalI18NImeStatus(); ++ ++ // asks whether there is a status window available ++ // to toggle into menubar ++ virtual bool canToggle() = 0; ++ virtual void toggle() = 0; ++}; ++ ++#endif +Index: vcl/inc/salinst.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/salinst.hxx,v +retrieving revision 1.6.280.1 +retrieving revision 1.10 +diff -u -p -u -r1.6.280.1 -r1.10 +--- vcl/inc/salinst.hxx 2 Mar 2004 10:00:22 -0000 1.6.280.1 ++++ vcl/inc/salinst.hxx 18 May 2004 10:49:17 -0000 1.10 +@@ -67,15 +67,11 @@ + #ifndef _STRING_HXX + #include <tools/string.hxx> + #endif +- + #endif // __cplusplus + + #ifndef _SV_SV_H + #include <sv.h> + #endif +-#ifndef _SV_SALINST_H +-#include <salinst.h> +-#endif + + #ifdef __cplusplus + +@@ -86,10 +82,19 @@ struct ImplJobSetup; + class SalGraphics; + class SalFrame; + class SalObject; ++class SalSound; ++class SalOpenGL; ++class SalMenu; ++class SalMenuItem; + class SalVirtualDevice; + class SalInfoPrinter; + class SalPrinter; ++class SalTimer; + class ImplPrnQueueList; ++class SalI18NImeStatus; ++class SalSystem; ++class SalBitmap; ++struct SalItemParams; + class SalSession; + + namespace vos { class IMutex; } +@@ -100,67 +105,88 @@ namespace vos { class IMutex; } + + class SalInstance + { +- friend SalInstance* CreateSalInstance(); +- friend void DestroySalInstance( SalInstance* ); +- ++public: ++ typedef bool(*Callback)(void*,void*,int); + private: +- SalInstance(); +- ~SalInstance(); +- +-public: // public for Sal Implementation +- SalInstanceData maInstData; +- +-#ifdef _INCL_SAL_SALINST_IMP +-#include <salinst.imp> +-#endif +- ++ void* m_pEventInst; ++ void* m_pErrorInst; ++ Callback m_pEventCallback; ++ Callback m_pErrorCallback; ++ + public: +- // Frame +- // DisplayName for Unix ??? +- SalFrame* CreateChildFrame( SystemParentData* pParent, ULONG nStyle ); +- SalFrame* CreateFrame( SalFrame* pParent, ULONG nStyle ); +- void DestroyFrame( SalFrame* pFrame ); +- +- // Object (System Child Window) +- SalObject* CreateObject( SalFrame* pParent ); +- void DestroyObject( SalObject* pObject ); +- +- // VirtualDevice +- // nDX and nDY in Pixeln +- // nBitCount: 0 == Default / 1 == Mono +- SalVirtualDevice* CreateVirtualDevice( SalGraphics* pGraphics, +- long nDX, long nDY, +- USHORT nBitCount ); +- void DestroyVirtualDevice( SalVirtualDevice* pDevice ); +- +- // Printer +- // pSetupData->mpDriverData can be 0 +- // pSetupData must be updatet with the current +- // JobSetup +- SalInfoPrinter* CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo, +- ImplJobSetup* pSetupData ); +- void DestroyInfoPrinter( SalInfoPrinter* pPrinter ); +- SalPrinter* CreatePrinter( SalInfoPrinter* pInfoPrinter ); +- void DestroyPrinter( SalPrinter* pPrinter ); +- +- void GetPrinterQueueInfo( ImplPrnQueueList* pList ); +- void GetPrinterQueueState( SalPrinterQueueInfo* pInfo ); +- void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ); +- XubString GetDefaultPrinter(); ++ SalInstance() : ++ m_pEventInst( NULL ), ++ m_pErrorInst( NULL ), ++ m_pEventCallback( NULL ), ++ m_pErrorCallback( NULL ) ++ {} ++ virtual ~SalInstance(); ++ ++ // Frame ++ // DisplayName for Unix ??? ++ virtual SalFrame* CreateChildFrame( SystemParentData* pParent, ULONG nStyle ) = 0; ++ virtual SalFrame* CreateFrame( SalFrame* pParent, ULONG nStyle ) = 0; ++ virtual void DestroyFrame( SalFrame* pFrame ) = 0; ++ ++ // Object (System Child Window) ++ virtual SalObject* CreateObject( SalFrame* pParent ) = 0; ++ virtual void DestroyObject( SalObject* pObject ) = 0; ++ ++ // VirtualDevice ++ // nDX and nDY in Pixel ++ // nBitCount: 0 == Default(=as window) / 1 == Mono ++ virtual SalVirtualDevice* CreateVirtualDevice( SalGraphics* pGraphics, ++ long nDX, long nDY, ++ USHORT nBitCount ) = 0; ++ virtual void DestroyVirtualDevice( SalVirtualDevice* pDevice ) = 0; ++ ++ // Printer ++ // pSetupData->mpDriverData can be 0 ++ // pSetupData must be updatet with the current ++ // JobSetup ++ virtual SalInfoPrinter* CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo, ++ ImplJobSetup* pSetupData ) = 0; ++ virtual void DestroyInfoPrinter( SalInfoPrinter* pPrinter ) = 0; ++ virtual SalPrinter* CreatePrinter( SalInfoPrinter* pInfoPrinter ) = 0; ++ virtual void DestroyPrinter( SalPrinter* pPrinter ) = 0; ++ ++ virtual void GetPrinterQueueInfo( ImplPrnQueueList* pList ) = 0; ++ virtual void GetPrinterQueueState( SalPrinterQueueInfo* pInfo ) = 0; ++ virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ) = 0; ++ virtual String GetDefaultPrinter() = 0; ++ ++ // SalSound ++ virtual SalSound* CreateSalSound() = 0; ++ // SalTimer ++ virtual SalTimer* CreateSalTimer() = 0; ++ // SalOpenGL ++ virtual SalOpenGL* CreateSalOpenGL( SalGraphics* pGraphics ) = 0; ++ // SalI18NImeStatus ++ virtual SalI18NImeStatus* CreateI18NImeStatus() = 0; ++ // SalSystem ++ virtual SalSystem* CreateSalSystem() = 0; ++ // SalBitmap ++ virtual SalBitmap* CreateSalBitmap() = 0; ++ ++ // YieldMutex ++ virtual vos::IMutex* GetYieldMutex() = 0; ++ virtual ULONG ReleaseYieldMutex() = 0; ++ virtual void AcquireYieldMutex( ULONG nCount ) = 0; ++ ++ // wait next event and dispatch ++ // must returned by UserEvent (SalFrame::PostEvent) ++ // and timer ++ virtual void Yield( BOOL bWait ) = 0; ++ virtual bool AnyInput( USHORT nType ) = 0; ++ ++ // Menues ++ virtual SalMenu* CreateMenu( BOOL bMenuBar ) = 0; ++ virtual void DestroyMenu( SalMenu* pMenu) = 0; ++ virtual SalMenuItem* CreateMenuItem( const SalItemParams* pItemData ) = 0; ++ virtual void DestroyMenuItem( SalMenuItem* pItem ) = 0; + + // may return NULL to disable session management +- SalSession* CreateSalSession(); +- +- // YieldMutex +- vos::IMutex* GetYieldMutex(); +- ULONG ReleaseYieldMutex(); +- void AcquireYieldMutex( ULONG nCount ); +- +- // wait next event and dispatch +- // must returned by UserEvent (SalFrame::PostEvent) +- // and timer +- void Yield( BOOL bWait ); +- static BOOL AnyInput( USHORT nType ); ++ virtual SalSession* CreateSalSession() = 0; + + // methods for XDisplayConnection + +@@ -168,11 +194,21 @@ public: + // void* pInst: pInstance form the SetCallback call + // void* pEvent: address of the system specific event structure + // int nBytes: length of the system specific event structure +- void SetEventCallback( void* pInstance, bool(*pCallback)(void*,void*,int)); +- void SetErrorEventCallback( void* pInstance, bool(*pCallback)(void*,void*,int)); ++ void SetEventCallback( void* pInstance, Callback pCallback ) ++ { m_pEventInst = pInstance; m_pEventCallback = pCallback; } ++ Callback GetEventCallback() const ++ { return m_pEventCallback; } ++ bool CallEventCallback( void* pEvent, int nBytes ) ++ { return m_pEventCallback ? m_pEventCallback( m_pEventInst, pEvent, nBytes ) : false; } ++ void SetErrorEventCallback( void* pInstance, Callback pCallback ) ++ { m_pErrorInst = pInstance; m_pErrorCallback = pCallback; } ++ Callback GetErrorEventCallback() const ++ { return m_pErrorCallback; } ++ bool CallErrorCallback( void* pEvent, int nBytes ) ++ { return m_pErrorCallback ? m_pErrorCallback( m_pErrorInst, pEvent, nBytes ) : false; } + + enum ConnectionIdentifierType { AsciiCString, Blob }; +- void* GetConnectionIdentifier( ConnectionIdentifierType& rReturnedType, int& rReturnedBytes ); ++ virtual void* GetConnectionIdentifier( ConnectionIdentifierType& rReturnedType, int& rReturnedBytes ) = 0; + }; + + // called from SVMain +@@ -185,6 +221,8 @@ void DestroySalInstance( SalInstance* pI + + void SalAbort( const XubString& rErrorText ); + ++const ::rtl::OUString& SalGetDesktopEnvironment(); ++ + #endif // __cplusplus + + // ----------- +@@ -193,7 +231,6 @@ void SalAbort( const XubString& rErrorTe + + void InitSalData(); // called from Application-Ctor + void DeInitSalData(); // called from Application-Dtor +-void SetFilterCallback( void* pCallback, void* pInst ); + + void InitSalMain(); + void DeInitSalMain(); +Index: vcl/inc/sallayout.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/sallayout.hxx,v +retrieving revision 1.31.68.1 +retrieving revision 1.36 +diff -u -p -u -r1.31.68.1 -r1.36 +--- vcl/inc/sallayout.hxx 9 Jan 2004 18:13:41 -0000 1.31.68.1 ++++ vcl/inc/sallayout.hxx 17 Jun 2004 12:07:38 -0000 1.36 +@@ -63,10 +63,10 @@ + #define _SV_SALLAYOUT_HXX + + #ifndef _SV_GEN_HXX +-#include <gen.hxx> +-#endif // _SV_GEN_HXX +-#ifndef _SV_POLY_HXX +-#include <poly.hxx> ++#include <tools/gen.hxx> ++#endif ++#ifndef _TL_POLY_HXX ++#include <tools/poly.hxx> + #endif + + #ifndef _TOOLS_LANG_HXX +@@ -76,11 +76,6 @@ typedef unsigned short LanguageType; + #include <vector> + #include <list> + +-#ifdef REMOTE_APPSERVER +-// TODO: better solution: derive ImpServerGraphics from SalGraphics +-#define SalGraphics ImplServerGraphics +-#endif +- + class SalGraphics; + struct ImplFontData; + +@@ -113,7 +108,7 @@ private: + std::vector<int> maRuns; + + public: +- ImplLayoutRuns() { mnRunIndex = 0; } ++ ImplLayoutRuns() { mnRunIndex = 0; maRuns.reserve(8); } + + void Clear() { maRuns.clear(); } + bool AddPos( int nCharPos, bool bRTL ); +@@ -140,7 +135,7 @@ public: + const xub_Unicode* mpStr; + + // positioning related inputs +- const long* mpDXArray; // in pixel units ++ const sal_Int32* mpDXArray; // in pixel units + long mnLayoutWidth; // in pixel units + int mnOrientation; // in 0-3600 system + +@@ -153,7 +148,7 @@ public: + int nMinCharPos, int nEndCharPos, int nFlags ); + + void SetLayoutWidth( long nWidth ) { mnLayoutWidth = nWidth; } +- void SetDXArray( const long* pDXArray ) { mpDXArray = pDXArray; } ++ void SetDXArray( const sal_Int32* pDXArray ) { mpDXArray = pDXArray; } + void SetOrientation( int nOrientation ) { mnOrientation = nOrientation; } + + void ResetPos() +@@ -220,13 +215,13 @@ public: + + // methods using string indexing + virtual int GetTextBreak( long nMaxWidth, long nCharExtra=0, int nFactor=1 ) const = 0; +- virtual long FillDXArray( long* pDXArray ) const = 0; ++ virtual long FillDXArray( sal_Int32* pDXArray ) const = 0; + virtual long GetTextWidth() const { return FillDXArray( NULL ); } +- virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const = 0; ++ virtual void GetCaretPositions( int nArraySize, sal_Int32* pCaretXArray ) const = 0; + + // methods using glyph indexing +- virtual int GetNextGlyphs( int nLen, long* pGlyphIdxAry, Point& rPos, int&, +- long* pGlyphAdvAry = NULL, int* pCharPosAry = NULL ) const = 0; ++ virtual int GetNextGlyphs( int nLen, sal_Int32* pGlyphIdxAry, Point& rPos, int&, ++ sal_Int32* pGlyphAdvAry = NULL, int* pCharPosAry = NULL ) const = 0; + virtual bool GetOutline( SalGraphics&, PolyPolyVector& ) const; + virtual bool GetBoundRect( SalGraphics&, Rectangle& ) const; + +@@ -280,10 +275,10 @@ class MultiSalLayout : public SalLayout + public: + virtual void DrawText( SalGraphics& ) const; + virtual int GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const; +- virtual long FillDXArray( long* pDXArray ) const; +- virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const; +- virtual int GetNextGlyphs( int nLen, long* pGlyphIdxAry, Point& rPos, +- int&, long* pGlyphAdvAry, int* pCharPosAry ) const; ++ virtual long FillDXArray( sal_Int32* pDXArray ) const; ++ virtual void GetCaretPositions( int nArraySize, sal_Int32* pCaretXArray ) const; ++ virtual int GetNextGlyphs( int nLen, sal_Int32* pGlyphIdxAry, Point& rPos, ++ int&, sal_Int32* pGlyphAdvAry, int* pCharPosAry ) const; + virtual bool GetOutline( SalGraphics&, PolyPolyVector& ) const; + virtual bool GetBoundRect( SalGraphics&, Rectangle& ) const; + +@@ -364,13 +359,13 @@ public: + + // used by upper layers + virtual long GetTextWidth() const; +- virtual long FillDXArray( long* pDXArray ) const; ++ virtual long FillDXArray( sal_Int32* pDXArray ) const; + virtual int GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const; +- virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const; ++ virtual void GetCaretPositions( int nArraySize, sal_Int32* pCaretXArray ) const; + + // used by display layers +- virtual int GetNextGlyphs( int nLen, long* pGlyphIdxAry, Point& rPos, int&, +- long* pGlyphAdvAry = NULL, int* pCharPosAry = NULL ) const; ++ virtual int GetNextGlyphs( int nLen, sal_Int32* pGlyphIdxAry, Point& rPos, int&, ++ sal_Int32* pGlyphAdvAry = NULL, int* pCharPosAry = NULL ) const; + + protected: + GenericSalLayout(); +@@ -381,7 +376,7 @@ protected: + virtual void DropGlyph( int nStart ); + virtual void Simplify( bool bIsBase ); + +- bool GetCharWidths( long* pCharWidths ) const; ++ bool GetCharWidths( sal_Int32* pCharWidths ) const; + + private: + GlyphItem* mpGlyphItems; // TODO: change to GlyphList +Index: vcl/inc/salmenu.hxx +=================================================================== +RCS file: vcl/inc/salmenu.hxx +diff -N vcl/inc/salmenu.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/salmenu.hxx 7 Jan 2004 09:17:01 -0000 1.4 +@@ -0,0 +1,122 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++#ifndef _SV_SALMENU_HXX ++#define _SV_SALMENU_HXX ++ ++#ifndef _SV_SV_H ++#include <sv.h> ++#endif ++#ifndef _SV_MENU_HXX ++#include <menu.hxx> ++#endif ++#ifndef _SV_KEYCODE_HXX ++#include <keycod.hxx> ++#endif ++#ifndef _SV_IMAGE_HXX ++#include <image.hxx> ++#endif ++ ++struct SystemMenuData; ++class SalFrame; ++ ++struct SalItemParams ++{ ++ USHORT nId; // item Id ++ MenuItemType eType; // MenuItem-Type ++ MenuItemBits nBits; // MenuItem-Bits ++ Menu* pMenu; // Pointer to Menu ++ XubString aText; // Menu-Text ++ Image aImage; // Image ++}; ++ ++ ++class SalMenuItem ++{ ++public: ++ SalMenuItem() {} ++ virtual ~SalMenuItem(); ++}; ++ ++class SalMenu ++{ ++public: ++ SalMenu() {} ++ virtual ~SalMenu(); ++ ++ virtual BOOL VisibleMenuBar() = 0; // must return TRUE to actually DISPLAY native menu bars ++ // otherwise only menu messages are processed (eg, OLE on Windows) ++ ++ virtual void InsertItem( SalMenuItem* pSalMenuItem, unsigned nPos ) = 0; ++ virtual void RemoveItem( unsigned nPos ) = 0; ++ virtual void SetSubMenu( SalMenuItem* pSalMenuItem, SalMenu* pSubMenu, unsigned nPos ) = 0; ++ virtual void SetFrame( const SalFrame* pFrame ) = 0; ++ virtual void CheckItem( unsigned nPos, BOOL bCheck ) = 0; ++ virtual void EnableItem( unsigned nPos, BOOL bEnable ) = 0; ++ virtual void SetItemText( unsigned nPos, SalMenuItem* pSalMenuItem, const XubString& rText )= 0; ++ virtual void SetItemImage( unsigned nPos, SalMenuItem* pSalMenuItem, const Image& rImage ) = 0; ++ virtual void SetAccelerator( unsigned nPos, SalMenuItem* pSalMenuItem, const KeyCode& rKeyCode, const XubString& rKeyName ) = 0; ++ virtual void GetSystemMenuData( SystemMenuData* pData ) = 0; ++}; ++ ++ ++#endif // _SV_SALMENU_HXX ++ +Index: vcl/inc/salnativewidgets.hxx +=================================================================== +RCS file: vcl/inc/salnativewidgets.hxx +diff -N vcl/inc/salnativewidgets.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/salnativewidgets.hxx 10 May 2004 15:42:51 -0000 1.2 +@@ -0,0 +1,367 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++#ifndef _SV_NATIVEWIDGETS_HXX ++#define _SV_NATIVEWIDGETS_HXX ++ ++#ifndef _RTL_USTRING_HXX_ ++#include <rtl/ustring.hxx> ++#endif ++ ++/* Control Types: ++ * ++ * Specify the overall, whole control ++ * type (as opposed to parts of the ++ * control if it were composite). ++ */ ++ ++typedef sal_uInt32 ControlType; ++ ++// Normal PushButton/Command Button ++#define CTRL_PUSHBUTTON 1 ++ ++// Normal single radio button ++#define CTRL_RADIOBUTTON 2 ++ ++// Normal single checkbox ++#define CTRL_CHECKBOX 10 ++ ++// Combobox, i.e. a ListBox ++// that allows data entry by user ++#define CTRL_COMBOBOX 20 ++ ++// Control that allows text entry ++#define CTRL_EDITBOX 30 ++ ++// Control that allows text entry, but without the usual border ++// Has to be handled separately, because this one cannot handle ++// HAS_BACKGROUND_TEXTURE, which is drawn in the edit box'es ++// border window. ++#define CTRL_EDITBOX_NOBORDER 31 ++ ++// Control that pops up a menu, ++// but does NOT allow data entry ++#define CTRL_LISTBOX 35 ++ ++// An edit field together with two little ++// buttons on the side (aka spin field) ++#define CTRL_SPINBOX 40 ++ ++// Two standalone spin buttons ++// without an edit field ++#define CTRL_SPINBUTTONS 45 ++ ++// A single tab ++#define CTRL_TAB_ITEM 50 ++ ++// The border around a tab area, ++// but without the tabs themselves. ++// May have a gap at the top for ++// the active tab ++#define CTRL_TAB_PANE 55 ++ ++// Background of a Tab Pane ++#define CTRL_TAB_BODY 56 ++ ++// Normal scrollbar, including ++// all parts like slider, buttons ++#define CTRL_SCROLLBAR 60 ++ ++// Border around a group of related ++// items, perhaps also displaying ++// a label of identification ++#define CTRL_GROUPBOX 70 ++ ++// A separator line ++#define CTRL_FIXEDLINE 80 ++ ++// A rectangular border, like a ++// Tab Pane, but without the ++// possible gap for a tab ++#define CTRL_FIXEDBORDER 90 ++ ++ ++ ++/* Control Parts: ++ * ++ * Uniquely identify a part of a control, ++ * for example the slider of a scroll bar. ++ */ ++ ++typedef sal_uInt32 ControlPart; ++ ++#define PART_ENTIRE_CONTROL 1 ++#define PART_WINDOW 5 // the static listbox window containing the list ++#define PART_BUTTON 100 ++#define PART_BUTTON_UP 101 ++#define PART_BUTTON_DOWN 102 // Also for ComboBoxes/ListBoxes ++#define PART_BUTTON_LEFT 103 ++#define PART_BUTTON_RIGHT 104 ++#define PART_ALL_BUTTONS 105 ++#define PART_TRACK_HORZ_LEFT 200 ++#define PART_TRACK_VERT_UPPER 201 ++#define PART_TRACK_HORZ_RIGHT 202 ++#define PART_TRACK_VERT_LOWER 203 ++#define PART_THUMB_HORZ 210 ++#define PART_THUMB_VERT 211 ++ ++/** The edit field part of a control, e.g. of the combo box. ++ ++ Currently used just for combo boxes and just for GetNativeControlRegion(). ++ It is valid only if GetNativeControlRegion() supports PART_BUTTON_DOWN as ++ well. ++*/ ++#define PART_SUB_EDIT 300 ++ ++// For controls that require the entire background ++// to be drawn first, and then other pieces over top. ++// (GTK+ scrollbars for example). Control region passed ++// in to draw this part is expected to be the entire ++// area of the control. ++// A control may respond to one or both. ++#define PART_DRAW_BACKGROUND_HORZ 1000 ++#define PART_DRAW_BACKGROUND_VERT 1001 ++ ++// GTK+ also draws tabs right->left since there is a ++// hardcoded 2 pixel overlap between adjacent tabs ++#define PART_TABS_DRAW_RTL 3000 ++ ++// For themes that do not want to have the focus ++// rectangle part drawn by VCL but take care of the ++// whole inner control part by themselves ++// eg, listboxes or comboboxes or spinbuttons ++#define HAS_BACKGROUND_TEXTURE 4000 ++ ++// For scrollbars that have 3 buttons (most KDE themes) ++#define HAS_THREE_BUTTONS 5000 ++ ++/* Control State: ++ * ++ * Specify how a particular part of the control ++ * is to be drawn. Constants are bitwise OR-ed ++ * together to compose a final drawing state. ++ * A _disabled_ state is assumed by the drawing ++ * functions until an ENABLED or HIDDEN is passed ++ * in the ControlState. ++ */ ++ ++typedef sal_uInt32 ControlState; ++ ++#define CTRL_STATE_ENABLED 0x0001 ++#define CTRL_STATE_FOCUSED 0x0002 ++#define CTRL_STATE_PRESSED 0x0004 ++#define CTRL_STATE_ROLLOVER 0x0008 ++#define CTRL_STATE_HIDDEN 0x0010 ++#define CTRL_STATE_DEFAULT 0x0020 ++#define CTRL_STATE_SELECTED 0x0040 ++#define CTRL_CACHING_ALLOWED 0x8000 // set when the control is completely visible (i.e. not clipped) ++ ++/* ButtonValue: ++ * ++ * Identifies the tri-state value options ++ * that buttons allow ++ */ ++ ++enum ButtonValue { ++ BUTTONVALUE_DONTKNOW, ++ BUTTONVALUE_ON, ++ BUTTONVALUE_OFF, ++ BUTTONVALUE_MIXED ++}; ++ ++ ++#ifdef __cplusplus ++ ++ ++/* ScrollbarValue: ++ * ++ * Value container for scrollbars. ++ */ ++class ScrollbarValue ++{ ++ public: ++ long mnMin; ++ long mnMax; ++ long mnCur; ++ long mnVisibleSize; ++ Rectangle maThumbRect; ++ Rectangle maButton1Rect; ++ Rectangle maButton2Rect; ++ ControlState mnButton1State; ++ ControlState mnButton2State; ++ ControlState mnThumbState; ++ ControlState mnPage1State; ++ ControlState mnPage2State; ++ ++ inline ScrollbarValue() ++ { ++ mnMin = 0; mnMax = 0; mnCur = 0; mnVisibleSize = 0; ++ mnButton1State = 0; mnButton2State = 0; ++ mnThumbState = 0; mnPage1State = 0; mnPage2State = 0; ++ }; ++ inline ~ScrollbarValue() {}; ++}; ++ ++/* TabitemValue: ++ * ++ * Value container for tabitems. ++ */ ++ ++/* TABITEM constants are OR-ed together */ ++#define TABITEM_NOTALIGNED 0x000 // the tabitem is an inner item ++#define TABITEM_LEFTALIGNED 0x001 // the tabitem is aligned with the left border of the TabControl ++#define TABITEM_RIGHTALIGNED 0x002 // the tabitem is aligned with the right border of the TabControl ++#define TABITEM_FIRST_IN_GROUP 0x004 // the tabitem is the first in group of tabitems ++#define TABITEM_LAST_IN_GROUP 0x008 // the tabitem is the last in group of tabitems ++ ++class TabitemValue ++{ ++ public: ++ unsigned int mnAlignment; ++ ++ inline TabitemValue() ++ { ++ mnAlignment = 0; ++ }; ++ inline ~TabitemValue() {}; ++ ++ BOOL isLeftAligned() { return (mnAlignment & TABITEM_LEFTALIGNED) != 0; } ++ BOOL isRightAligned() { return (mnAlignment & TABITEM_RIGHTALIGNED) != 0; } ++ BOOL isBothAligned() { return isLeftAligned() && isRightAligned(); } ++ BOOL isNotAligned() { return (mnAlignment & (TABITEM_LEFTALIGNED | TABITEM_RIGHTALIGNED)) == 0; } ++ BOOL isFirst() { return (mnAlignment & TABITEM_FIRST_IN_GROUP) != 0; } ++ BOOL isLast() { return (mnAlignment & TABITEM_LAST_IN_GROUP) != 0; } ++}; ++ ++ ++/* SpinbuttonValue: ++ * ++ * Value container for spinbuttons to paint both buttons at once. ++ * Note: the other parameters of DrawNativeControl will have no meaning ++ * all parameters for spinbuttons are carried here ++ */ ++class SpinbuttonValue ++{ ++ public: ++ Rectangle maUpperRect; ++ Rectangle maLowerRect; ++ ControlState mnUpperState; ++ ControlState mnLowerState; ++ int mnUpperPart; ++ int mnLowerPart; ++ ++ inline SpinbuttonValue() ++ { ++ mnUpperState = mnLowerState = 0; ++ }; ++ inline ~SpinbuttonValue() {}; ++}; ++ ++/* ImplControlValue: ++ * ++ * Generic value container for all control parts. ++ */ ++ ++class ImplControlValue ++{ ++ friend class SalFrame; ++ ++ private: ++ ButtonValue mTristate; // Tristate value: on, off, mixed ++ rtl::OUString mString; // string value ++ long mNumber; // numeric value ++ void * mOptionalVal; // optional control-specific value ++ ++ public: ++ inline ImplControlValue( ButtonValue nTristate, rtl::OUString sString, long nNumeric, void * aOptVal ) \ ++ { mTristate = nTristate; mString = sString; mNumber = nNumeric; mOptionalVal = aOptVal; }; ++ inline ImplControlValue( ButtonValue nTristate, rtl::OUString sString, long nNumeric ) \ ++ { mTristate = nTristate; mString = sString; mNumber = nNumeric; mOptionalVal = NULL; }; ++ inline ImplControlValue( ButtonValue nTristate ) { mTristate = nTristate; mOptionalVal = NULL; }; ++ inline ImplControlValue( rtl::OUString sString ) { mString = sString; mOptionalVal = NULL; }; ++ inline ImplControlValue( long nNumeric ) { mNumber = nNumeric; mOptionalVal = NULL; }; ++ inline ImplControlValue( void * aOptVal ) { mOptionalVal = aOptVal; }; ++ inline ImplControlValue() { mTristate = BUTTONVALUE_DONTKNOW; mNumber = 0; mOptionalVal = NULL; }; ++ inline ~ImplControlValue() { mOptionalVal = NULL; }; ++ ++ inline ButtonValue getTristateVal( void ) const { return mTristate; } ++ inline void setTristateVal( ButtonValue nTristate ) { mTristate = nTristate; } ++ ++ inline const rtl::OUString& getStringVal( void ) const { return mString; } ++ inline void setStringVal( rtl::OUString sString ) { mString = sString; } ++ ++ inline long getNumericVal( void ) const { return mNumber; } ++ inline void setNumericVal( long nNumeric ) { mNumber = nNumeric; } ++ ++ inline void * getOptionalVal( void ) const { return mOptionalVal; } ++ inline void setOptionalVal( void * aOptVal ) { mOptionalVal = aOptVal; } ++}; ++ ++#endif /* __cplusplus */ ++ ++#endif ++ ++ ++ ++ ++ ++ ++ +Index: vcl/inc/salobj.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/salobj.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/salobj.hxx 19 Sep 2000 10:23:06 -0000 1.1.1.1 ++++ vcl/inc/salobj.hxx 18 Nov 2003 14:29:32 -0000 1.2 +@@ -71,9 +71,6 @@ + #ifndef _SV_SALWTYPE_HXX + #include <salwtype.hxx> + #endif +-#ifndef _SV_SALOBJ_H +-#include <salobj.h> +-#endif + + struct SystemEnvData; + +@@ -91,37 +88,32 @@ struct SystemEnvData; + + class SalObject + { +-public: // public for Sal Implementation +- SalObject(); +- ~SalObject(); +- +-public: // public for Sal Implementation +- SalObjectData maObjectData; +- +-#ifdef _INCL_SAL_SALOBJ_IMP +-#include <salobj.imp> +-#endif +- ++ void* m_pInst; ++ SALOBJECTPROC m_pCallback; + public: +- void ResetClipRegion(); +- USHORT GetClipRegionType(); +- void BeginSetClipRegion( ULONG nRects ); +- void UnionClipRegion( long nX, long nY, long nWidth, long nHeight ); +- void EndSetClipRegion(); +- +- void SetPosSize( long nX, long nY, long nWidth, long nHeight ); +- void Show( BOOL bVisible ); +- void Enable( BOOL nEnable ); +- void GrabFocus(); +- +- void SetBackground(); +- void SetBackground( SalColor nSalColor ); +- +- const SystemEnvData* GetSystemData() const; +- +- // Callbacks (indepen in \vcl\source\window\winproc.cxx) +- // for default message handling return 0 +- void SetCallback( void* pInst, SALOBJECTPROC pProc ); ++ SalObject() : m_pInst( NULL ), m_pCallback( NULL ) {} ++ virtual ~SalObject(); ++ ++ virtual void ResetClipRegion() = 0; ++ virtual USHORT GetClipRegionType() = 0; ++ virtual void BeginSetClipRegion( ULONG nRects ) = 0; ++ virtual void UnionClipRegion( long nX, long nY, long nWidth, long nHeight ) = 0; ++ virtual void EndSetClipRegion() = 0; ++ ++ virtual void SetPosSize( long nX, long nY, long nWidth, long nHeight ) = 0; ++ virtual void Show( BOOL bVisible ) = 0; ++ virtual void Enable( BOOL nEnable ) = 0; ++ virtual void GrabFocus() = 0; ++ ++ virtual void SetBackground() = 0; ++ virtual void SetBackground( SalColor nSalColor ) = 0; ++ ++ virtual const SystemEnvData* GetSystemData() const = 0; ++ ++ void SetCallback( void* pInst, SALOBJECTPROC pProc ) ++ { m_pInst = pInst; m_pCallback = pProc; } ++ long CallCallback( USHORT nEvent, const void* pEvent ) ++ { return m_pCallback ? m_pCallback( m_pInst, this, nEvent, pEvent ) : 0; } + }; + + #endif // _SV_SALOBJ_HXX +Index: vcl/inc/salogl.hxx +=================================================================== +RCS file: vcl/inc/salogl.hxx +diff -N vcl/inc/salogl.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/salogl.hxx 18 Nov 2003 14:29:40 -0000 1.2 +@@ -0,0 +1,109 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++#ifndef _SV_SALOGL_HXX ++#define _SV_SALOGL_HXX ++ ++#define _OPENGL_EXT ++ ++#ifndef _GEN_HXX ++#include <tools/gen.hxx> ++#endif ++ ++#define _SVUNX_H ++ ++#ifndef _SV_SV_H ++#include <sv.h> ++#endif ++#ifndef _SV_SALOTYPE_HXX ++#include <salotype.hxx> ++#endif ++ ++// ----------------- ++// - State defines - ++// ----------------- ++ ++#define OGL_STATE_UNLOADED (0x00000000) ++#define OGL_STATE_INVALID (0x00000001) ++#define OGL_STATE_VALID (0x00000002) ++ ++// ------------- ++// - SalOpenGL - ++// ------------- ++ ++class SalGraphics; ++ ++class SalOpenGL ++{ ++public: ++ ++ SalOpenGL() {} ++ virtual ~SalOpenGL(); ++ ++ virtual bool IsValid() = 0; ++ virtual void* GetOGLFnc( const char * ) = 0; ++ virtual void OGLEntry( SalGraphics* pGraphics ) = 0; ++ virtual void OGLExit( SalGraphics* pGraphics ) = 0; ++ virtual void StartScene( SalGraphics* pGraphics ) = 0; ++ virtual void StopScene() = 0; ++}; ++ ++#endif +Index: vcl/inc/salprn.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/salprn.hxx,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -p -u -r1.4 -r1.5 +--- vcl/inc/salprn.hxx 20 Nov 2002 12:03:33 -0000 1.4 ++++ vcl/inc/salprn.hxx 18 Nov 2003 14:29:49 -0000 1.5 +@@ -69,9 +69,6 @@ + #ifndef _SV_SV_H + #include <sv.h> + #endif +-#ifndef _SV_SALPRN_H +-#include <salprn.h> +-#endif + #ifndef _SV_PRNTYPES_HXX + #include <prntypes.hxx> + #endif +@@ -107,49 +104,39 @@ struct SalPrinterQueueInfo + + class SalInfoPrinter + { +- friend class SalInstance; +- + public: + std::vector< vcl::PaperInfo > m_aPaperFormats; // all printer supported formats + bool m_bPapersInit; // set to true after InitPaperFormats ++ ++ SalInfoPrinter() {} ++ virtual ~SalInfoPrinter(); + +- SalInfoPrinter(); +- ~SalInfoPrinter(); +- +-public: // public for Sal Implementation +- SalInfoPrinterData maPrinterData; +- +-#ifdef _INCL_SAL_SALIPRN_IMP +-#include <saliprn.imp> +-#endif +- +-public: + // SalGraphics or NULL, but two Graphics for all SalFrames + // must be returned +- SalGraphics* GetGraphics(); +- void ReleaseGraphics( SalGraphics* pGraphics ); ++ virtual SalGraphics* GetGraphics() = 0; ++ virtual void ReleaseGraphics( SalGraphics* pGraphics ) = 0; + +- BOOL Setup( SalFrame* pFrame, ImplJobSetup* pSetupData ); +- // This function set the driver data and +- // set the new indepen data in pSetupData +- BOOL SetPrinterData( ImplJobSetup* pSetupData ); +- // This function merged the indepen driver data +- // and set the new indepen data in pSetupData +- // Only the data must changed, where the bit +- // in nFlags is set +- BOOL SetData( ULONG nFlags, ImplJobSetup* pSetupData ); +- +- void GetPageInfo( const ImplJobSetup* pSetupData, +- long& rOutWidth, long& rOutHeight, +- long& rPageOffX, long& rPageOffY, +- long& rPageWidth, long& rPageHeight ); +- ULONG GetCapabilities( const ImplJobSetup* pSetupData, USHORT nType ); +- ULONG GetPaperBinCount( const ImplJobSetup* pSetupData ); +- XubString GetPaperBinName( const ImplJobSetup* pSetupData, ULONG nPaperBin ); ++ virtual BOOL Setup( SalFrame* pFrame, ImplJobSetup* pSetupData ) = 0; ++ // This function set the driver data and ++ // set the new indepen data in pSetupData ++ virtual BOOL SetPrinterData( ImplJobSetup* pSetupData ) = 0; ++ // This function merged the indepen driver data ++ // and set the new indepen data in pSetupData ++ // Only the data must changed, where the bit ++ // in nFlags is set ++ virtual BOOL SetData( ULONG nFlags, ImplJobSetup* pSetupData ) = 0; ++ ++ virtual void GetPageInfo( const ImplJobSetup* pSetupData, ++ long& rOutWidth, long& rOutHeight, ++ long& rPageOffX, long& rPageOffY, ++ long& rPageWidth, long& rPageHeight ) = 0; ++ virtual ULONG GetCapabilities( const ImplJobSetup* pSetupData, USHORT nType ) = 0; ++ virtual ULONG GetPaperBinCount( const ImplJobSetup* pSetupData ) = 0; ++ virtual String GetPaperBinName( const ImplJobSetup* pSetupData, ULONG nPaperBin ) = 0; + // fills m_aPaperFormats and sets m_bPapersInit to true +- void InitPaperFormats( const ImplJobSetup* pSetupData ); ++ virtual void InitPaperFormats( const ImplJobSetup* pSetupData ) = 0; + // returns angle that a landscape page will be turned counterclockwise wrt to portrait +- int GetLandscapeAngle( const ImplJobSetup* pSetupData ); ++ virtual int GetLandscapeAngle( const ImplJobSetup* pSetupData ) = 0; + }; + + +@@ -159,30 +146,20 @@ public: + + class SalPrinter + { +- friend class SalInstance; +- +-private: +- SalPrinter(); +- ~SalPrinter(); +- + public: // public for Sal Implementation +- SalPrinterData maPrinterData; ++ SalPrinter() {} ++ virtual ~SalPrinter(); + +-#ifdef _INCL_SAL_SALPRN_IMP +-#include <salprn.imp> +-#endif +- +-public: +- BOOL StartJob( const XubString* pFileName, +- const XubString& rJobName, +- const XubString& rAppName, +- ULONG nCopies, BOOL bCollate, +- ImplJobSetup* pSetupData ); +- BOOL EndJob(); +- BOOL AbortJob(); +- SalGraphics* StartPage( ImplJobSetup* pSetupData, BOOL bNewJobData ); +- BOOL EndPage(); +- ULONG GetErrorCode(); ++ virtual BOOL StartJob( const XubString* pFileName, ++ const XubString& rJobName, ++ const XubString& rAppName, ++ ULONG nCopies, BOOL bCollate, ++ ImplJobSetup* pSetupData ) = 0; ++ virtual BOOL EndJob() = 0; ++ virtual BOOL AbortJob() = 0; ++ virtual SalGraphics* StartPage( ImplJobSetup* pSetupData, BOOL bNewJobData ) = 0; ++ virtual BOOL EndPage() = 0; ++ virtual ULONG GetErrorCode() = 0; + }; + + #endif // _SV_SALPRN_HXX + +Index: vcl/inc/salsound.hxx +=================================================================== +RCS file: vcl/inc/salsound.hxx +diff -N vcl/inc/salsound.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/salsound.hxx 18 Nov 2003 14:29:57 -0000 1.2 +@@ -0,0 +1,119 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++#ifndef _SV_SALSOUND_HXX ++#define _SV_SALSOUND_HXX ++ ++#ifndef _GEN_HXX ++#include <tools/gen.hxx> ++#endif ++#ifndef _SV_SV_H ++#include <sv.h> ++#endif ++#ifndef _STRING_HXX ++#include <tools/string.hxx> ++#endif ++#ifndef _SV_SALSTYPE_HXX ++#include <salstype.hxx> ++#endif ++ ++class SalSound ++{ ++ // for notification ++ void* m_pInst; ++ SALSOUNDPROC m_aPROC; ++public: ++ SalSound() : m_pInst( NULL ), m_aPROC( NULL ) {} ++ virtual ~SalSound(); ++ ++ // checks whether sound system is ready for input and hence ++ // SalSound can be initialized ++ virtual bool IsValid() = 0; ++ // initialize with sound file name, returns success and // FIXME: rSoundLen ? ++ virtual bool Init( const String& rSoundName, ++ ULONG& rSoundLen ) = 0; ++ // play the sound, start at nStartTime (ms), play for nPlayTime (ms), ++ // loop = true/false ++ virtual void Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop ) = 0; ++ // stop playing ++ virtual void Stop() = 0; ++ // pause playing ++ virtual void Pause() = 0; ++ // continue a paused play ++ virtual void Continue() = 0; ++ // is looping ? ++ virtual bool IsLoopMode() const = 0; ++ // is playing ? ++ virtual bool IsPlaying() const = 0; ++ // is paused ? ++ virtual bool IsPaused() const = 0; ++ ++ // register a callback to be called when state changes ++ void SetNotifyProc( void* pInst, SALSOUNDPROC pProc ) ++ { m_pInst = pInst; m_aPROC = pProc; } ++ void CallNotifyProc( SoundNotification eNotification, ULONG nError ) ++ { ++ if( m_aPROC ) ++ m_aPROC( m_pInst, eNotification, nError ); ++ } ++}; ++ ++#endif +Index: vcl/inc/salsys.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/salsys.hxx,v +retrieving revision 1.7 +retrieving revision 1.9 +diff -u -p -u -r1.7 -r1.9 +--- vcl/inc/salsys.hxx 20 Nov 2002 15:45:04 -0000 1.7 ++++ vcl/inc/salsys.hxx 7 Jan 2004 09:17:24 -0000 1.9 +@@ -65,44 +65,9 @@ + #ifndef _STRING_HXX + #include <tools/string.hxx> + #endif +-#ifndef _LIST_HXX +-#include <tools/list.hxx> +-#endif +- +-#ifndef _SV_SV_H +-#include <sv.h> +-#endif +- +-#ifndef _SV_SYSTEM_HXX +-#include <system.hxx> +-#endif +- +-#include <list> +- +-// ------------------- +-// - SalSystem-Types - +-// ------------------- +- +-// Must be the same values like in VCLSystemInfo +-#define SALSYSTEM_GETSYSTEMINFO_STACK ((ULONG)0x00000001) +-#define SALSYSTEM_GETSYSTEMINFO_MODULES ((ULONG)0x00000002) +-#define SALSYSTEM_GETSYSTEMINFO_SYSTEMVERSION ((ULONG)0x00000004) +-#define SALSYSTEM_GETSYSTEMINFO_CPUTYPE ((ULONG)0x00000008) +-#define SALSYSTEM_GETSYSTEMINFO_MEMORYINFO ((ULONG)0x00000010) +-#define SALSYSTEM_GETSYSTEMINFO_LOCALVOLUMES ((ULONG)0x00000020) +-#define SALSYSTEM_GETSYSTEMINFO_SYSTEMDIRS ((ULONG)0x00000040) +-#define SALSYSTEM_GETSYSTEMINFO_MOUSEINFO ((ULONG)0x00000080) +-#define SALSYSTEM_GETSYSTEMINFO_GRAPHICSSYSTEM ((ULONG)0x00000100) +- +-// ------------- +-// - SalSystem - +-// ------------- + +-String GetSalSummarySystemInfos( ULONG nFlags ); + +-bool GetSalSystemDisplayInfo( System::DisplayInfo& rInfo ); +- +-/* Button combinations for ImplShowNativeMessageBox ++/* Button combinations for ShowNativeMessageBox + */ + const int SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_OK = 0; + const int SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_OK_CANCEL = 1; +@@ -111,7 +76,7 @@ const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN + const int SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_YES_NO = 4; + const int SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_RETRY_CANCEL = 5; + +-/* Button identifier for ImplShowNativeMessageBox ++/* Button identifier for ShowNativeMessageBox + */ + const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_OK = 1; + const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_CANCEL = 2; +@@ -121,29 +86,57 @@ const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN + const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_YES = 6; + const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_NO = 7; + +-/* Shows a native message box with the specified title, message and button +- combination. ++ ++ ++// ------------- ++// - SalSystem - ++// ------------- ++ ++struct DisplayInfo ++{ ++ int nWidth, nHeight, nDepth; ++}; ++ ++ ++class SalSystem ++{ ++public: ++ SalSystem() {} ++ virtual ~SalSystem(); ++ ++ // get info about the display ++ virtual bool GetSalSystemDisplayInfo( DisplayInfo& rInfo ) = 0; ++ ++ ++ /* Shows a native message box with the specified title, message and button ++ combination. + +- @param rTitle +- The title to be shown by the dialog box. ++ @param rTitle ++ The title to be shown by the dialog box. + +- @param rMessage +- The message to be shown by the dialog box. ++ @param rMessage ++ The message to be shown by the dialog box. + +- @param nButtonCombination +- Specify which button combination the message box should display. +- See button combinations above. ++ @param nButtonCombination ++ Specify which button combination the message box should display. ++ See button combinations above. + +- @param nDefaultButton +- Specifies which button has the focus initially. +- See button identifiers above. +- The effect of specifying a button that doesn't belong +- to the specified button combination is undefined. ++ @param nDefaultButton ++ Specifies which button has the focus initially. ++ See button identifiers above. ++ The effect of specifying a button that doesn't belong ++ to the specified button combination is undefined. + +- @returns the identifier of the button that was pressed by the user. +- See button identifier above. If the function fails the +- return value is 0. +-*/ +-int ImplShowNativeMessageBox(const String& rTitle, const String& rMessage, int nButtonCombination, int nDefaultButton); ++ @returns the identifier of the button that was pressed by the user. ++ See button identifier above. If the function fails the ++ return value is 0. ++ */ ++ virtual int ShowNativeMessageBox( const String& rTitle, ++ const String& rMessage, ++ int nButtonCombination, ++ int nDefaultButton) = 0; ++}; ++ ++SalSystem* ImplGetSalSystem(); + + #endif // _SV_SALSYS_HXX +Index: vcl/inc/saltimer.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/saltimer.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/saltimer.hxx 19 Sep 2000 10:23:06 -0000 1.1.1.1 ++++ vcl/inc/saltimer.hxx 18 Nov 2003 14:30:19 -0000 1.2 +@@ -73,15 +73,34 @@ + // - SalTimer - + // ------------ + ++/* ++ * note: there will be only a single instance of SalTimer ++ * SalTimer originally had only static methods, but ++ * this needed to be virtualized for the sal plugin migration ++ */ ++ + class SalTimer + { ++ SALTIMERPROC m_pProc; + public: +- // AutoRepeat and Restart +- static void Start( ULONG nMS ); +- static void Stop(); ++ SalTimer() : m_pProc( NULL ) {} ++ virtual ~SalTimer(); ++ ++ // AutoRepeat and Restart ++ virtual void Start( ULONG nMS ) = 0; ++ virtual void Stop() = 0; + + // Callbacks (indepen in \sv\source\app\timer.cxx) +- static void SetCallback( SALTIMERPROC pProc ); ++ void SetCallback( SALTIMERPROC pProc ) ++ { ++ m_pProc = pProc; ++ } ++ ++ void CallCallback() ++ { ++ if( m_pProc ) ++ m_pProc(); ++ } + }; + + #endif // _SV_SALTIMER_HXX +Index: vcl/inc/salvd.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/salvd.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/salvd.hxx 19 Sep 2000 10:23:06 -0000 1.1.1.1 ++++ vcl/inc/salvd.hxx 18 Nov 2003 14:30:29 -0000 1.2 +@@ -65,9 +65,6 @@ + #ifndef _SV_SV_H + #include <sv.h> + #endif +-#ifndef _SV_SALVD_H +-#include <salvd.h> +-#endif + + class SalGraphics; + +@@ -77,27 +74,17 @@ class SalGraphics; + + class SalVirtualDevice + { +- friend class SalInstance; +- +-private: +- SalVirtualDevice(); +- ~SalVirtualDevice(); +- + public: // public for Sal Implementation +- SalVirDevData maVirDevData; +- +-#ifdef _INCL_SAL_SALVD_IMP +-#include <salvd.imp> +-#endif ++ SalVirtualDevice() {} ++ virtual ~SalVirtualDevice(); + +-public: + // SalGraphics or NULL, but two Graphics for all SalVirtualDevices + // must be returned +- SalGraphics* GetGraphics(); +- void ReleaseGraphics( SalGraphics* pGraphics ); ++ virtual SalGraphics* GetGraphics() = 0; ++ virtual void ReleaseGraphics( SalGraphics* pGraphics ) = 0; + + // Set new size, without saving the old contents +- BOOL SetSize( long nNewDX, long nNewDY ); ++ virtual BOOL SetSize( long nNewDX, long nNewDY ) = 0; + }; + + #endif // _SV_SALVD_HXX +Index: vcl/inc/salwtype.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/salwtype.hxx,v +retrieving revision 1.11 +retrieving revision 1.12 +diff -u -p -u -r1.11 -r1.12 +--- vcl/inc/salwtype.hxx 27 Mar 2003 17:57:31 -0000 1.11 ++++ vcl/inc/salwtype.hxx 18 Nov 2003 14:56:54 -0000 1.12 +@@ -147,7 +147,11 @@ struct ImplFontSelectData; + #define SALEVENT_CLOSEPOPUPS ((USHORT)30) + #define SALEVENT_EXTERNALKEYINPUT ((USHORT)31) + #define SALEVENT_EXTERNALKEYUP ((USHORT)32) +-#define SALEVENT_COUNT ((USHORT)32) ++#define SALEVENT_MENUCOMMAND ((USHORT)33) ++#define SALEVENT_MENUHIGHLIGHT ((USHORT)34) ++#define SALEVENT_MENUACTIVATE ((USHORT)35) ++#define SALEVENT_MENUDEACTIVATE ((USHORT)36) ++#define SALEVENT_COUNT ((USHORT)36) + + // MOUSELEAVE must send, when the pointer leave the client area and + // the mouse is not captured +@@ -169,6 +173,13 @@ struct SalKeyEvent + USHORT mnCode; // SV-KeyCode (KEY_xxx | KEY_SHIFT | KEY_MOD1 | KEY_MOD2) + USHORT mnCharCode; // SV-CharCode + USHORT mnRepeat; // Repeat-Count (KeyInputs-1) ++}; ++ ++// MENUEVENT ++struct SalMenuEvent ++{ ++ USHORT mnId; // Menu item ID ++ void* mpMenu; // pointer to VCL menu (class Menu) + }; + + // KEYMODCHANGE +Index: vcl/inc/scrbar.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/scrbar.hxx,v +retrieving revision 1.5 +retrieving revision 1.10 +diff -u -p -u -r1.5 -r1.10 +--- vcl/inc/scrbar.hxx 25 Jul 2001 11:39:21 -0000 1.5 ++++ vcl/inc/scrbar.hxx 10 May 2004 15:43:03 -0000 1.10 +@@ -69,6 +69,8 @@ + #include <ctrl.hxx> + #endif + ++class AutoTimer; ++ + // ------------------- + // - ScrollBar-Types - + // ------------------- +@@ -79,6 +81,7 @@ enum ScrollType { SCROLL_DONTKNOW, SCROL + // ------------- + // - ScrollBar - + // ------------- ++struct ImplScrollBarData; + + class ScrollBar : public Control + { +@@ -88,7 +91,7 @@ private: + Rectangle maPage1Rect; + Rectangle maPage2Rect; + Rectangle maThumbRect; +- void* mpDummy; ++ ImplScrollBarData* mpData; + long mnStartPos; + long mnMouseOff; + long mnThumbPixRange; +@@ -107,14 +110,26 @@ private: + ScrollType meDDScrollType; + BOOL mbCalcSize; + BOOL mbFullDrag; +- BOOL mbDummy1; +- BOOL mbDummy2; + Link maScrollHdl; + Link maEndScrollHdl; ++ Rectangle* ImplFindPartRect( const Point& rPt ); + +-#ifdef _SV_SCRBAR_CXX +-#include <scrbar.imp> +-#endif ++ void ImplInit( Window* pParent, WinBits nStyle ); ++ void ImplInitStyle( WinBits nStyle ); ++ void ImplLoadRes( const ResId& rResId ); ++ BOOL ImplUpdateThumbRect( const Rectangle& rOldRect ); ++ void ImplUpdateRects( BOOL bUpdate = TRUE ); ++ long ImplCalcThumbPos( long nPixPos ); ++ long ImplCalcThumbPosPix( long nPos ); ++ void ImplCalc( BOOL bUpdate = TRUE ); ++ void ImplDraw( USHORT nDrawFlags, OutputDevice* pOutDev ); ++ long ImplScroll( long nNewPos, BOOL bCallEndScroll ); ++ long ImplDoAction( BOOL bCallEndScroll ); ++ void ImplDoMouseAction( const Point& rPos, BOOL bCallAction = TRUE ); ++ void ImplInvert(); ++ BOOL ImplDrawNative( USHORT nDrawFlags ); ++ DECL_LINK( ImplTimerHdl, Timer* ); ++ DECL_LINK( ImplAutoTimerHdl, AutoTimer* ); + + public: + ScrollBar( Window* pParent, WinBits nStyle = WB_VERT ); +@@ -125,9 +140,13 @@ public: + 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(); + + virtual void Scroll(); + virtual void EndScroll(); +@@ -169,11 +188,9 @@ public: + + class ScrollBarBox : public Window + { +-#ifdef _SV_SCRBAR_CXX + private: + void ImplInit( Window* pParent, WinBits nStyle ); + void ImplInitSettings(); +-#endif + + public: + ScrollBarBox( Window* pParent, WinBits nStyle = 0 ); +Index: vcl/inc/settings.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/settings.hxx,v +retrieving revision 1.19 +retrieving revision 1.23 +diff -u -p -u -r1.19 -r1.23 +--- vcl/inc/settings.hxx 17 Apr 2003 15:16:59 -0000 1.19 ++++ vcl/inc/settings.hxx 10 Jun 2004 17:17:43 -0000 1.23 +@@ -69,8 +69,8 @@ + #ifndef _SV_SV_H + #include <sv.h> + #endif +-#ifndef _SV_COLOR_HXX +-#include <color.hxx> ++#ifndef _TOOLS_COLOR_HXX ++#include <tools/color.hxx> + #endif + #ifndef _SV_FONT_HXX + #include <font.hxx> +@@ -99,10 +99,8 @@ class ImplMachineData + { + friend class MachineSettings; + +-#ifdef _SV_SETTINGS_CXX + ImplMachineData(); + ImplMachineData( const ImplMachineData& rData ); +-#endif + + private: + USHORT mnRefCount; +@@ -161,10 +159,8 @@ class ImplMouseData + { + friend class MouseSettings; + +-#ifdef _SV_SETTINGS_CXX + ImplMouseData(); + ImplMouseData( const ImplMouseData& rData ); +-#endif + + private: + USHORT mnRefCount; +@@ -187,10 +183,6 @@ private: + ULONG mnActionDelay; + ULONG mnMenuDelay; + ULONG mnFollow; +- ULONG mnDummy1; +- ULONG mnDummy2; +- ULONG mnDummy3; +- ULONG mnDummy4; + USHORT mnMiddleButtonAction; + USHORT mnAlign1; + }; +@@ -324,10 +316,8 @@ class ImplKeyboardData + { + friend class KeyboardSettings; + +-#ifdef _SV_SETTINGS_CXX + ImplKeyboardData(); + ImplKeyboardData( const ImplKeyboardData& rData ); +-#endif + + private: + USHORT mnRefCount; +@@ -378,74 +368,56 @@ class ImplStyleData + { + friend class StyleSettings; + +-#ifdef _SV_SETTINGS_CXX + ImplStyleData(); + ImplStyleData( const ImplStyleData& rData ); + void SetStandardStyles(); +- void SetStandardWinStyles(); +- void SetStandardOS2Styles(); +- void SetStandardMacStyles(); +- void SetStandardUnixStyles(); +-#endif + + private: + USHORT mnRefCount; +- Color maFaceColor; +- Color maCheckedColor; +- Color maLightColor; +- Color maLightBorderColor; +- Color maShadowColor; +- Color maDarkShadowColor; +- Color maButtonTextColor; +- Color maRadioCheckTextColor; +- Color maLabelTextColor; +- Color maInfoTextColor; +- Color maWindowColor; +- Color maWindowTextColor; +- Color maDialogColor; +- Color maDialogTextColor; +- Color maWorkspaceColor; +- Color maFieldColor; +- Color maFieldTextColor; ++ ++ void* mpStyleData_NotUsedYet; ++ ++ Color maActiveBorderColor; + Color maActiveColor; + Color maActiveColor2; + Color maActiveTextColor; +- Color maActiveBorderColor; ++ Color maButtonTextColor; ++ Color maCheckedColor; ++ Color maDarkShadowColor; ++ Color maDeactiveBorderColor; + Color maDeactiveColor; + Color maDeactiveColor2; + Color maDeactiveTextColor; +- Color maDeactiveBorderColor; ++ Color maDialogColor; ++ Color maDialogTextColor; ++ Color maDisableColor; ++ Color maFaceColor; ++ Color maFieldColor; ++ Color maFieldTextColor; ++ Color maFontColor; ++ Color maGroupTextColor; ++ Color maHelpColor; + Color maHelpTextColor; +- Color maMenuColor; + 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 maDisableColor; +- Color maHelpColor; +- Color maGroupTextColor; + Color maMenuTextColor; +- Color maLinkColor; ++ Color maRadioCheckTextColor; ++ Color maShadowColor; + Color maVisitedLinkColor; +- Color maHighlightLinkColor; +- Color maFontColor; +- Color maDummyColor2; +- Color maDummyColor3; +- Color maDummyColor4; +- Color maDummyColor5; +- Color maDummyColor6; +- Color maDummyColor7; +- Color maDummyColor8; +- Color maDummyColor9; +- Color maDummyColor10; +- Color maDummyColor11; +- Color maDummyColor12; +- Color maDummyColor13; +- Color maDummyColor14; +- Color maDummyColor15; +- Color maDummyColor16; +- Color maMenuBorderColor; +- Color maMenuBarColor; ++ Color maWindowColor; ++ Color maWindowTextColor; ++ Color maWorkspaceColor; + Font maAppFont; + Font maHelpFont; + Font maTitleFont; +@@ -459,8 +431,6 @@ private: + Font maFieldFont; + Font maIconFont; + Font maGroupFont; +- Font maDummyFont1; +- Font maDummyFont2; + long mnBorderSize; + long mnTitleHeight; + long mnFloatTitleHeight; +@@ -473,11 +443,6 @@ private: + long mnIconHorzSpace; + long mnIconVertSpace; + long mnAntialiasedMin; +- long mnDummySize2; +- long mnDummySize3; +- long mnDummySize4; +- long mnDummySize5; +- long mnDummySize6; + ULONG mnCursorBlinkTime; + ULONG mnDragFullOptions; + ULONG mnAnimationOptions; +@@ -485,8 +450,6 @@ private: + ULONG mnLogoDisplayTime; + ULONG mnDisplayOptions; + ULONG mnToolbarIconSize; +- ULONG mnDummyOption3; +- ULONG mnDummyOption4; + ULONG mnUseFlatMenues; + ULONG mnOptions; + USHORT mnScreenZoom; +@@ -499,6 +462,7 @@ private: + USHORT mnUseSystemUIFonts; + USHORT mnAutoMnemonic; + USHORT mnUseImagesInMenus; ++ ULONG mnUseFlatBorders; + }; + + // ----------------- +@@ -750,10 +714,15 @@ public: + { 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 +@@ -962,17 +931,14 @@ class ImplMiscData + { + friend class MiscSettings; + +-#ifdef _SV_SETTINGS_CXX + ImplMiscData(); + ImplMiscData( const ImplMiscData& rData ); +-#endif + + private: + USHORT mnRefCount; + USHORT mnTwoDigitYearStart; + USHORT mnEnableATT; +- USHORT mnDummy1; +- USHORT mnDummy2; ++ BOOL mbEnableLocalizedDecimalSep; + }; + + // ---------------- +@@ -997,6 +963,8 @@ public: + { return mpData->mnTwoDigitYearStart; } + void SetEnableATToolSupport( BOOL bEnable ); + BOOL GetEnableATToolSupport() const; ++ void SetEnableLocalizedDecimalSep( BOOL bEnable ); ++ BOOL GetEnableLocalizedDecimalSep() const; + const MiscSettings& operator =( const MiscSettings& rSet ); + + BOOL operator ==( const MiscSettings& rSet ) const; +@@ -1012,10 +980,8 @@ class ImplSoundData + { + friend class SoundSettings; + +-#ifdef _SV_SETTINGS_CXX + ImplSoundData(); + ImplSoundData( const ImplSoundData& rData ); +-#endif + + private: + USHORT mnRefCount; +@@ -1063,10 +1029,8 @@ class ImplNotificationData + { + friend class NotificationSettings; + +-#ifdef _SV_SETTINGS_CXX + ImplNotificationData(); + ImplNotificationData( const ImplNotificationData& rData ); +-#endif + + private: + USHORT mnRefCount; +@@ -1109,10 +1073,8 @@ class ImplHelpData + { + friend class HelpSettings; + +-#ifdef _SV_SETTINGS_CXX + ImplHelpData(); + ImplHelpData( const ImplHelpData& rData ); +-#endif + + private: + USHORT mnRefCount; +@@ -1171,13 +1133,11 @@ public: + + class ImplAllSettingsData + { +- friend class AllSettings; ++ friend class AllSettings; + +-#ifdef _SV_SETTINGS_CXX +- ImplAllSettingsData(); +- ImplAllSettingsData( const ImplAllSettingsData& rData ); +- ~ImplAllSettingsData(); +-#endif ++ ImplAllSettingsData(); ++ ImplAllSettingsData( const ImplAllSettingsData& rData ); ++ ~ImplAllSettingsData(); + + private: + USHORT mnRefCount; +@@ -1202,9 +1162,6 @@ private: + CollatorWrapper* mpUICollatorWrapper; + vcl::I18nHelper* mpI18nHelper; + vcl::I18nHelper* mpUII18nHelper; +- +- void* mpDummy1; +- void* mpDummy2; + }; + + // --------------- +Index: vcl/inc/slider.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/slider.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/slider.hxx 19 Sep 2000 10:23:07 -0000 1.1.1.1 ++++ vcl/inc/slider.hxx 7 Jan 2004 09:18:32 -0000 1.2 +@@ -106,7 +106,6 @@ private: + Link maSlideHdl; + Link maEndSlideHdl; + +-#ifdef _SV_SLIDER_CXX + void ImplInit( Window* pParent, WinBits nStyle ); + void ImplInitStyle( WinBits nStyle ); + void ImplLoadRes( const ResId& rResId ); +@@ -123,7 +122,6 @@ private: + void ImplDoMouseAction( const Point& rPos, BOOL bCallAction = TRUE ); + long ImplDoSlide( long nNewPos ); + long ImplDoSlideAction( ScrollType eScrollType ); +-#endif + + public: + Slider( Window* pParent, WinBits nStyle = WB_HORZ ); +Index: vcl/inc/sound.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/sound.hxx,v +retrieving revision 1.3 +retrieving revision 1.5 +diff -u -p -u -r1.3 -r1.5 +--- vcl/inc/sound.hxx 13 Jun 2001 10:52:47 -0000 1.3 ++++ vcl/inc/sound.hxx 7 Jan 2004 09:19:13 -0000 1.5 +@@ -92,15 +92,10 @@ class Sound + { + private: + +-#ifndef REMOTE_APPSERVER + SalSound* mpSound; +-#else +- RMSound* mpSound; +-#endif +- + XubString maSoundName; + Window* mpWindow; +- BYTE* mpSoundData; ++ BYTE* mpSoundData_NOTUSED; + ULONG mnDataLen; + ULONG mnSoundLen; + ULONG mnStartTime; +@@ -124,7 +119,7 @@ public: + + public: + Sound( Window* pWindow = NULL ); +- ~Sound(); ++ virtual ~Sound(); + + virtual void Notify(); + +@@ -132,8 +127,6 @@ public: + Window* GetWindow() const { return mpWindow; } + BOOL SetSoundName( const XubString& rSoundName ); + const XubString& GetSoundName() const { return maSoundName; } +- BOOL SetSoundData( const BYTE* pSoundData, ULONG nDataLen ); +- BYTE* GetSoundData() const { return mpSoundData; } + ULONG GetSoundLen() const { return mnSoundLen; } + + void Play(); +Index: vcl/inc/spin.h +=================================================================== +RCS file: /cvs/gsl/vcl/inc/spin.h,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/spin.h 19 Sep 2000 10:23:07 -0000 1.1.1.1 ++++ vcl/inc/spin.h 11 Dec 2003 11:51:45 -0000 1.2 +@@ -82,6 +82,6 @@ void ImplDrawSpinButton( OutputDevice* p + BOOL bUpperIn, BOOL bLowerIn, + BOOL bUpperEnabled = TRUE, + BOOL bLowerEnabled = TRUE, +- BOOL bHorz = FALSE ); ++ BOOL bHorz = FALSE, BOOL bMirrorHorz = FALSE ); + + #endif // _SV_SPIN_H +Index: vcl/inc/spin.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/spin.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.4 +diff -u -p -u -r1.1.1.1 -r1.4 +--- vcl/inc/spin.hxx 19 Sep 2000 10:23:07 -0000 1.1.1.1 ++++ vcl/inc/spin.hxx 10 May 2004 15:43:29 -0000 1.4 +@@ -82,19 +82,24 @@ private: + AutoTimer maRepeatTimer; + Rectangle maUpperRect; + Rectangle maLowerRect; +- BOOL mbRepeat : 1; +- BOOL mbUpperIn : 1; +- BOOL mbLowerIn : 1; +- BOOL mbInitialUp : 1; +- BOOL mbInitialDown : 1; +- BOOL mbHorz : 1; ++ Rectangle maFocusRect; ++ BOOL mbRepeat : 1; ++ BOOL mbUpperIn : 1; ++ BOOL mbLowerIn : 1; ++ BOOL mbInitialUp : 1; ++ BOOL mbInitialDown : 1; ++ BOOL mbHorz : 1; ++ BOOL mbUpperIsFocused : 1; + Link maUpHdlLink; + Link maDownHdlLink; ++ long mnMinRange; ++ long mnMaxRange; ++ long mnValue; ++ long mnValueStep; ++ Rectangle* ImplFindPartRect( const Point& rPt ); + +-#ifdef _SV_SPIN_CXX + void ImplInit( Window* pParent, WinBits nStyle ); + DECL_LINK( ImplTimeout, Timer* ); +-#endif + + public: + SpinButton( Window* pParent, WinBits nStyle = 0 ); +@@ -106,16 +111,45 @@ public: + + virtual void Resize(); + virtual void Paint( const Rectangle& rRect ); ++ virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, ULONG nFlags ); + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void MouseButtonUp( const MouseEvent& rMEvt ); + virtual void MouseMove( const MouseEvent& rMEvt ); + virtual void KeyInput( const KeyEvent& rKEvt ); + virtual void StateChanged( StateChangedType nStateChange ); ++ virtual void GetFocus(); ++ virtual void LoseFocus(); ++ ++ 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 SetValue( long nValue ); ++ long GetValue() const { return mnValue; } ++ void SetValueStep( long nNewStep ) { mnValueStep = nNewStep; } ++ long GetValueStep() const { return mnValueStep; } ++ virtual long PreNotify( NotifyEvent& rNEvt ); + + void SetUpHdl( const Link& rLink ) { maUpHdlLink = rLink; } + const Link& GetUpHdl() const { return maUpHdlLink; } + void SetDownHdl( const Link& rLink ) { maDownHdlLink = rLink; } + const Link& GetDownHdl() const { return maDownHdlLink; } ++ ++private: ++ // moves the focus to the upper or lower rect. Return TRUE if the focus rect actually changed. ++ BOOL ImplMoveFocus( BOOL _bUpper ); ++ void ImplCalcFocusRect( BOOL _bUpper ); ++ ++ inline BOOL ImplIsUpperEnabled( ) const ++ { ++ return mnValue + mnValueStep <= mnMaxRange; ++ } ++ inline BOOL ImplIsLowerEnabled( ) const ++ { ++ return mnValue >= mnMinRange + mnValueStep; ++ } + }; + + #endif // _SV_SPIN_HXX +Index: vcl/inc/spinfld.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/spinfld.hxx,v +retrieving revision 1.3 +retrieving revision 1.6 +diff -u -p -u -r1.3 -r1.6 +--- vcl/inc/spinfld.hxx 3 May 2002 13:04:10 -0000 1.3 ++++ vcl/inc/spinfld.hxx 10 May 2004 15:43:41 -0000 1.6 +@@ -97,16 +97,12 @@ protected: + mbLowerIn:1, + mbInDropDown:1; + +-#if _SOLAR__PRIVATE + void ImplInit( Window* pParent, WinBits nStyle ); + +-#ifdef _SV_SPINFLD_CXX + private: + DECL_LINK( ImplTimeout, Timer* ); + void ImplInitData(); + void ImplCalcButtonAreas( OutputDevice* pDev, const Size& rOutSz, Rectangle& rDDArea, Rectangle& rSpinUpArea, Rectangle& rSpinDownArea ); +-#endif +-#endif + + protected: + SpinField( WindowType nTyp ); +@@ -117,6 +113,7 @@ protected: + void EndDropDown(); + + virtual void FillLayoutData() const; ++ Rectangle * ImplFindPartRect( const Point& rPt ); + public: + SpinField( Window* pParent, WinBits nWinStyle = 0 ); + SpinField( Window* pParent, const ResId& rResId ); +@@ -137,6 +134,7 @@ public: + virtual void Resize(); + virtual void StateChanged( StateChangedType nType ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); ++ virtual long PreNotify( NotifyEvent& rNEvt ); + + void SetUpHdl( const Link& rLink ) { maUpHdlLink = rLink; } + const Link& GetUpHdl() const { return maUpHdlLink; } +Index: vcl/inc/split.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/split.hxx,v +retrieving revision 1.7 +retrieving revision 1.8 +diff -u -p -u -r1.7 -r1.8 +--- vcl/inc/split.hxx 14 Aug 2002 14:06:39 -0000 1.7 ++++ vcl/inc/split.hxx 7 Jan 2004 09:20:22 -0000 1.8 +@@ -92,7 +92,6 @@ private: + Link maStartSplitHdl; + Link maSplitHdl; + +-#ifdef _SV_SPLIT_CXX + void ImplInitData(); + void ImplDrawSplitter(); + void ImplSplitMousePos( Point& rPos ); +@@ -101,7 +100,6 @@ private: + BOOL ImplSplitterActive(); + Splitter* ImplFindSibling(); + void ImplRestoreSplitter(); +-#endif + + protected: + void ImplInit( Window* pParent, WinBits nWinStyle ); +Index: vcl/inc/splitwin.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/splitwin.hxx,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -p -u -r1.2 -r1.3 +--- vcl/inc/splitwin.hxx 27 Mar 2003 17:57:33 -0000 1.2 ++++ vcl/inc/splitwin.hxx 7 Jan 2004 09:20:41 -0000 1.3 +@@ -141,10 +141,7 @@ private: + mbFadeInPressed:1, + mbFadeOutPressed:1, + mbFadeNoButtonMode:1, +- mbNoAlign:1, +- mbDummy2:1, +- mbDummy3:1, +- mbDummy4:1; ++ mbNoAlign:1; + Link maStartSplitHdl; + Link maSplitHdl; + Link maSplitResizeHdl; +@@ -152,7 +149,6 @@ private: + Link maFadeInHdl; + Link maFadeOutHdl; + +-#ifdef _SV_SPLITWIN_CXX + void ImplInit( Window* pParent, WinBits nStyle ); + void ImplInitSettings(); + void ImplCalcLayout(); +@@ -169,7 +165,6 @@ private: + void ImplDrawFadeIn( BOOL bInPaint ); + void ImplDrawFadeOut( BOOL bInPaint ); + void ImplNewAlign(); +-#endif + + public: + SplitWindow( Window* pParent, WinBits nStyle = 0 ); +Index: vcl/inc/status.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/status.hxx,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -p -u -r1.3 -r1.4 +--- vcl/inc/status.hxx 27 Mar 2003 17:57:33 -0000 1.3 ++++ vcl/inc/status.hxx 7 Jan 2004 09:20:58 -0000 1.4 +@@ -128,23 +128,17 @@ private: + long mnCalcHeight; + long mnTextY; + long mnItemY; +- long mnDummyLong; + USHORT mnCurItemId; + USHORT mnPercent; + USHORT mnPercentCount; +- USHORT mnDummy1; + BOOL mbVisibleItems; + BOOL mbFormat; + BOOL mbProgressMode; + BOOL mbInUserDraw; + BOOL mbBottomBorder; +- BOOL mbDummy1; +- BOOL mbDummy2; +- BOOL mbDummy3; + Link maClickHdl; + Link maDoubleClickHdl; + +-#ifdef _SV_STATUS_CXX + void ImplInit( Window* pParent, WinBits nStyle ); + void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); + void ImplFormat(); +@@ -155,7 +149,6 @@ private: + USHORT nOldPerc, USHORT nNewPerc ); + void ImplCalcProgressRect(); + Rectangle ImplGetItemRectPos( USHORT nPos ) const; +-#endif + + public: + StatusBar( Window* pParent, +Index: vcl/inc/svapp.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/svapp.hxx,v +retrieving revision 1.27 +retrieving revision 1.30 +diff -u -p -u -r1.27 -r1.30 +--- vcl/inc/svapp.hxx 10 Jun 2003 14:29:14 -0000 1.27 ++++ vcl/inc/svapp.hxx 10 May 2004 12:57:43 -0000 1.30 +@@ -74,9 +74,6 @@ + #ifndef _UNQID_HXX + #include <tools/unqid.hxx> + #endif +-#ifndef _RTTI_HXX +-#include <tools/rtti.hxx> +-#endif + #ifndef _SV_SV_H + #include <sv.h> + #endif +@@ -100,13 +97,8 @@ class Window; + class Reflection; + class KeyCode; + class NotifyEvent; + class KeyEvent; + +-#ifndef NOOLDSV +-class Font; +-class ApplicationAddress; +-class ApplicationEvent; +-#endif + namespace vos { class IMutex; } + + #ifndef _COM_SUN_STAR_UNO_REFERENCE_H_ +@@ -327,7 +291,7 @@ class Application + { + public: + Application(); +- ~Application(); ++ virtual ~Application(); + + virtual void Main() = 0; + +@@ -406,8 +370,9 @@ public: + + #ifndef NO_GETAPPWINDOW + static WorkWindow* GetAppWindow(); + #endif +- static Window* GetFocusWindow(); ++ ++ static Window* GetFocusWindow(); + static OutputDevice* GetDefaultDevice(); + + static Window* GetFirstTopLevelWindow(); +@@ -562,6 +482,11 @@ public: + Can be called without the Solar mutex locked. + */ + static bool GetShowImeStatusWindowDefault(); ++ ++ /** Returns a string representing the desktop environment ++ the process is currently running in. ++ */ ++ static const ::rtl::OUString& GetDesktopEnvironment(); + }; + + Application* GetpApp(); +Index: vcl/inc/svdata.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/svdata.hxx,v +retrieving revision 1.38.88.2 +retrieving revision 1.45 +diff -u -p -u -r1.38.88.2 -r1.45 +--- vcl/inc/svdata.hxx 2 Mar 2004 10:00:45 -0000 1.38.88.2 ++++ vcl/inc/svdata.hxx 25 Jun 2004 17:08:32 -0000 1.45 +@@ -147,80 +147,13 @@ class ImplVDevCache; + class UnoWrapperBase; + class GraphicConverter; + class ImplWheelWindow; ++class SalTimer; ++class SalI18NImeStatus; + + namespace vos { class OMutex; } + namespace vos { class OCondition; } + namespace vcl { class DisplayConnection; class DefaultFontConfigItem; class FontSubstConfigItem; class SettingsConfigItem;} + +-// ---------- +-// - Remote - +-// ---------- +- +-#ifdef REMOTE_APPSERVER +-class VclOTimer; +-class RmEventQueue; +-class UNODispatchThread; +- +-// see unotools/atom.hxx +-namespace utl { +- class AtomClient; +-} +- +-// needed for server side drag and drop +-namespace com { namespace sun { namespace star { namespace datatransfer { namespace dnd { +- class XDragSource; +-} } } } } +- +-#include <tools/table.hxx> +-#include <vos/mutex.hxx> +-#include <vos/thread.hxx> +-#include <vos/semaphor.hxx> +-#include "rvp.hxx" +- +-#define CHECK_FOR_RVPSYNC_NORMAL() ImplGetSVData()->mpRVPNormalSync->CheckForRVPSync( NULL ); +-#define CHECK_FOR_RVPSYNC_SOUND() ImplGetSVData()->mpRVPSoundSync->CheckForRVPSync( NULL ); +- +-void rvpExceptionHandler(); +- +-DECLARE_TABLE( KeyNames, String* ); +- +-class ImplRemoteYieldMutex : public vos::OMutex +-{ +- ULONG mnCount; +- vos::OThread::TThreadIdentifier mnThreadId; +- vos::OThread::TThreadIdentifier mnMainThreadId; +- +-public: +- ImplRemoteYieldMutex(); +- +- virtual void SAL_CALL acquire(); +- virtual void SAL_CALL release(); +- virtual sal_Bool SAL_CALL tryToAcquire(); +- +- ULONG GetAcquireCount() const { return mnCount; } +- vos::OThread::TThreadIdentifier GetThreadId() const { return mnThreadId; } +- vos::OThread::TThreadIdentifier GetMainThreadId() const { return mnMainThreadId; } +- +-}; +- +-// sync uno rvp call packages +-class RVPSync +-{ +- vos::OThread::TThreadIdentifier mnLastThreadId; +- oslInterlockedCount mnRVPCount; +- REF( NMSP_CLIENT::XRmSync ) mxRVPSync; +- vos::OMutex maMutex; +- sal_uInt32 mnForceSyncCount; +- sal_uInt32 mnSyncCount; +- +-public: +- RVPSync( const REF( NMSP_CLIENT::XRmSync )& xRVPSync ); +- +- void CheckForRVPSync( const char* ); +-}; +- +-#endif +- + // ----------------- + // - ImplSVAppData - + // ----------------- +@@ -234,9 +167,6 @@ struct ImplSVAppData + ImeStatusWindowMode_SHOW + }; + +-#ifdef REMOTE_APPSERVER +- ImplRemoteYieldMutex* mpSolarMutex; // Solar-Mutex +-#endif + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMSF; + String* mpMSFTempFileName; + AllSettings* mpSettings; // Application settings +@@ -337,7 +266,6 @@ struct ImplSVWinData + USHORT mnAutoScrollFlags; // auto scroll flags + BOOL mbNoDeactivate; // TRUE: keine Deactivate durchfuehren + BOOL mbNoSaveFocus; // TRUE: menues must not save/restore focus +- BOOL mbDummy1; + }; + + +@@ -387,17 +315,6 @@ struct ImplSVHelpData + }; + + +-// -------------------- +-// - ImplSVSystemData - +-// -------------------- +- +-struct ImplSVSystemData +-{ +-#ifndef REMOTE_APPSERVER +- SalSystem* mpDefSystem; // Default-System-Instance +-#endif +-}; +- + // -------------- + // - ImplSVData - + // -------------- +@@ -412,6 +329,9 @@ struct ImplSVData + ULONG mnThreadCount; // is VCL MultiThread enabled + ImplConfigData* mpFirstConfigData; // Zeiger auf ersten Config-Block + ImplTimerData* mpFirstTimerData; // list of all running timers ++ SalTimer* mpSalTimer; // interface to sal event loop/timers ++ SalI18NImeStatus* mpImeStatus; // interface to ime status window ++ SalSystem* mpSalSystem; // SalSystem interface + ResMgr* mpResMgr; // SV-Resource-Manager + ULONG mnTimerPeriod; // current timer period + ULONG mnTimerUpdate; // TimerCallbackProcs on stack +@@ -422,35 +342,12 @@ struct ImplSVData + ImplSVWinData maWinData; // indepen data for Windows classes + ImplSVCtrlData maCtrlData; // indepen data for Control classes + ImplSVHelpData maHelpData; // indepen data for Help classes +- ImplSVSystemData maSystemData; // indepen data for class System + UnoWrapperBase* mpUnoWrapper; + Window* mpIntroWindow; // the splash screen + + vos::OThread::TThreadIdentifier mnMainThreadId; + ::vcl::DisplayConnection* mpDisplayConnection; + +-#ifdef REMOTE_APPSERVER +- VclOTimer* mpOTimer; // VOS-Timer +- RmEventQueue* mpRmEventQueue; // Remote-EventQueue +- REF( NMSP_CLIENT::XRmStatus ) mxStatus; // Remote-Status +- REF( NMSP_LANG::XMultiServiceFactory ) mxClientFactory; // XFactory zum erzeugen der UNO-Objekte statt ueber UNO_createObject +- REF( NMSP_CLIENT::XMultiInstanceFactory ) mxMultiFactory; // XFactory zum erzeugen der UNO-Objekte statt ueber UNO_createObject +- RVPSync* mpRVPNormalSync; // sync interfaces for rvp normal-calls +- RVPSync* mpRVPSoundSync; // sync interfaces for rvp sound-calls +- long mnRemoteVersion; // remote version of client +- ::utl::AtomClient* mpAtoms; // Atoms for client connection +- ::vos::OMutex* mpWindowObjectMutex; +- ::vos::OCondition* mpStartUpCond; +- void* mhRemoteEnv; // not needed anymore +- String* mpConnectionName; +- KeyNames* mpKeyNames; +- REF( NMSP_CLIENT::XRmPrinterEnvironment ) mxRmPrinterEnvironment; +- NMSP_CLIENT::PrinterEnvironment* mpPrinterEnvironment; +-// UNO_Server mhRemotePrinter; // UNO-PrinterServer +-// XRmPrinterEnvironment* mpRmPrinterEnv; // UNO-Printer-Environment +- ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragSource > mxServerDragSource; +- Rectangle maWorkArea; // the remote screen size in pixels +-#endif + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxAccessBridge; + com::sun::star::uno::Reference< com::sun::star::frame::XSessionManagerClient > xSMClient; + ::vcl::SettingsConfigItem* mpSettingsConfigItem; +@@ -465,10 +362,8 @@ ResMgr* ImplGetResMgr(); + void ImplWindowAutoMnemonic( Window* pWindow ); + void ImplTimerCallbackProc(); + +-#ifndef REMOTE_APPSERVER + void ImplUpdateSystemProcessWindow(); + Window* ImplFindWindow( const SalFrame* pFrame, Point& rSalFramePos ); +-#endif + + // SVAPP.CXX + BOOL ImplCallHotKey( const KeyCode& rKeyCode ); +Index: vcl/inc/sysdata.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/sysdata.hxx,v +retrieving revision 1.2 +retrieving revision 1.4 +diff -u -p -u -r1.2 -r1.4 +--- vcl/inc/sysdata.hxx 9 Feb 2001 14:51:45 -0000 1.2 ++++ vcl/inc/sysdata.hxx 7 Jan 2004 09:22:49 -0000 1.4 +@@ -69,11 +69,8 @@ + struct SystemEnvData + { + unsigned long nSize; // size in bytes of this structure +-#ifndef SYSDATA_ONLY_BASETYPE +-#if defined( WIN ) || defined( WNT ) ++#if defined( WNT ) + HWND hWnd; // the window hwnd +-#elif defined( OS2 ) +- HWND hWnd; // the client hwnd + #elif defined( UNX ) + void* pDisplay; // the relevant display connection + long aWindow; // the window of the object +@@ -86,7 +83,6 @@ struct SystemEnvData + long aShellWindow; // the window of the frame's shell + void* pShellWidget; // the frame's shell widget + #endif +-#endif + }; + + #define SystemChildData SystemEnvData +@@ -98,14 +94,24 @@ struct SystemEnvData + struct SystemParentData + { + unsigned long nSize; // size in bytes of this structure +-#ifndef SYSDATA_ONLY_BASETYPE +-#if defined( WIN ) || defined( WNT ) ++#if defined( WNT ) + HWND hWnd; // the window hwnd +-#elif defined( OS2 ) +- HWND hWnd; // the client hwnd + #elif defined( UNX ) + long aWindow; // the window of the object + #endif ++}; ++ ++// -------------------- ++// - SystemMenuData - ++// -------------------- ++ ++struct SystemMenuData ++{ ++ unsigned long nSize; // size in bytes of this structure ++#if defined( WNT ) ++ HMENU hMenu; // the menu handle of the menu bar ++#elif defined( UNX ) ++ long aMenu; // ??? + #endif + }; + +Index: vcl/inc/syswin.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/syswin.hxx,v +retrieving revision 1.12 +retrieving revision 1.13 +diff -u -p -u -r1.12 -r1.13 +--- vcl/inc/syswin.hxx 27 Mar 2003 17:57:34 -0000 1.12 ++++ vcl/inc/syswin.hxx 7 Jan 2004 09:23:35 -0000 1.13 +@@ -219,12 +219,9 @@ private: + BOOL mbDockBtn; + BOOL mbHideBtn; + BOOL mbSysChild; +- BOOL mbDummy2; +- BOOL mbDummy3; + USHORT mnMenuBarMode; + USHORT mnIcon; + TaskPaneList* mpTaskPaneList; +- void* mpDummy; + + protected: + SystemWindow( WindowType nType ); +Index: vcl/inc/tabctrl.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/tabctrl.hxx,v +retrieving revision 1.4 +retrieving revision 1.7 +diff -u -p -u -r1.4 -r1.7 +--- vcl/inc/tabctrl.hxx 4 Jun 2003 11:21:18 -0000 1.4 ++++ vcl/inc/tabctrl.hxx 10 May 2004 15:43:53 -0000 1.7 +@@ -110,8 +110,6 @@ private: + Link maActivateHdl; + Link maDeactivateHdl; + +-#ifdef _SV_TABCTRL_CXX +-private: + void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); + ImplTabItem* ImplGetItem( USHORT nId ) const; + void ImplScrollBtnsColor(); +@@ -124,16 +122,17 @@ private: + void ImplActivateTabPage( BOOL bNext ); + void ImplSetFirstPagePos( USHORT nPagePos ); + void ImplShowFocus(); +- void ImplDrawItem( ImplTabItem* pItem, const Rectangle& rCurRect, bool bLayout = false ); ++ void ImplDrawItem( ImplTabItem* pItem, const Rectangle& rCurRect, bool bLayout = false, bool bFirstInGroup = false, bool bLastInGroup = false, bool bIsCurrentItem = false ); + void ImplPaint( const Rectangle& rRect, bool bLayout = false ); + void ImplFreeLayoutData(); + DECL_LINK( ImplScrollBtnHdl, PushButton* pBtn ); +-#endif ++ + protected: + void ImplInit( Window* pParent, WinBits nStyle ); + void ImplLoadRes( const ResId& rResId ); + + virtual void FillLayoutData() const; ++ Rectangle* ImplFindPartRect( const Point& rPt ); + + public: + TabControl( Window* pParent, +@@ -152,6 +151,7 @@ public: + virtual long Notify( NotifyEvent& rNEvt ); + virtual void StateChanged( StateChangedType nType ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); ++ virtual long PreNotify( NotifyEvent& rNEvt ); + + virtual void ActivatePage(); + virtual long DeactivatePage(); +Index: vcl/inc/tabdlg.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/tabdlg.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/tabdlg.hxx 19 Sep 2000 10:23:07 -0000 1.1.1.1 ++++ vcl/inc/tabdlg.hxx 7 Jan 2004 09:24:21 -0000 1.2 +@@ -83,10 +83,8 @@ private: + WindowAlign meViewAlign; + BOOL mbPosControls; + +-#ifdef _SV_TABDLG_CXX + void ImplInitData(); + void ImplPosControls(); +-#endif + + public: + TabDialog( Window* pParent, +Index: vcl/inc/tabpage.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/tabpage.hxx,v +retrieving revision 1.3 +retrieving revision 1.5 +diff -u -p -u -r1.3 -r1.5 +--- vcl/inc/tabpage.hxx 24 Apr 2003 16:30:10 -0000 1.3 ++++ vcl/inc/tabpage.hxx 20 Feb 2004 08:49:19 -0000 1.5 +@@ -75,15 +75,15 @@ + + class TabPage : public Window + { +-#ifdef _SV_TABPAGE_CXX + private: + void ImplInit( Window* pParent, WinBits nStyle ); + void ImplInitSettings(); +-#endif + + public: + TabPage( Window* pParent, WinBits nStyle = 0 ); + TabPage( Window* pParent, const ResId& rResId ); ++ ++ virtual void Paint( const Rectangle& rRect ); + + virtual void StateChanged( StateChangedType nStateChange ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); +Index: vcl/inc/threadex.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/threadex.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/threadex.hxx 19 Sep 2000 10:23:07 -0000 1.1.1.1 ++++ vcl/inc/threadex.hxx 7 Jan 2004 09:24:56 -0000 1.2 +@@ -74,7 +74,7 @@ namespace vcl + static void SAL_CALL worker( void* ); + public: + ThreadExecutor(); +- ~ThreadExecutor(); ++ virtual ~ThreadExecutor(); + + virtual long doIt() = 0; + long execute(); +@@ -88,7 +88,7 @@ namespace vcl + DECL_LINK( worker, void* ); + public: + SolarThreadExecutor(); +- ~SolarThreadExecutor(); ++ virtual ~SolarThreadExecutor(); + + virtual long doIt() = 0; + long execute(); +Index: vcl/inc/timer.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/timer.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/timer.hxx 19 Sep 2000 10:23:07 -0000 1.1.1.1 ++++ vcl/inc/timer.hxx 7 Jan 2004 09:25:18 -0000 1.2 +@@ -89,7 +89,7 @@ protected: + public: + Timer(); + Timer( const Timer& rTimer ); +- ~Timer(); ++ virtual ~Timer(); + + virtual void Timeout(); + +Index: vcl/inc/toolbox.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/toolbox.hxx,v +retrieving revision 1.24 +retrieving revision 1.26 +diff -u -p -u -r1.24 -r1.26 +--- vcl/inc/toolbox.hxx 17 Apr 2003 15:17:11 -0000 1.24 ++++ vcl/inc/toolbox.hxx 20 Jan 2004 11:55:53 -0000 1.26 +@@ -202,7 +201,6 @@ private: + Rectangle maPaintRect; + FloatingWindow* mpFloatWin; + USHORT mnKeyModifier; +- USHORT mnDummy2; + long mnDX; + long mnDY; + long mnItemWidth; +@@ -250,10 +248,9 @@ private: + mbDragging:1, + mbHideStatusText:1, + mbMenuStrings:1, +- mbDummy1_Shift:1, +- mbDummy2_KeyEvt:1, +- mbDummy3_ChangingHighlight:1, +- mbDummy4:1; ++ mbIsShift:1, ++ mbIsKeyEvent:1, ++ mbChangingHighlight:1; + WindowAlign meAlign; + WindowAlign meDockAlign; + ButtonType meButtonType; +@@ -267,8 +264,6 @@ private: + Link maSelectHdl; + Link maNextToolBoxHdl; + +-#if _SOLAR__PRIVATE +-#ifdef _SV_TOOLBOX_CXX + void ImplInit( Window* pParent, WinBits nStyle ); + void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); + void ImplLoadRes( const ResId& rResId ); +@@ -298,12 +293,16 @@ private: + void ImplUpdateInputEnable(); + void ImplFillLayoutData() const; + DECL_LINK( ImplUpdateHdl, void* ); +-#endif ++ ++#if _SOLAR__PRIVATE + public: + void ImplFloatControl( BOOL bStart, FloatingWindow* pWindow = NULL ); + void ImplDisableFlatButtons(); + #endif + ++protected: ++ void SetCurItemId(USHORT nSet) { mnCurItemId = nSet; } ++ + public: + ToolBox( Window* pParent, WinBits nStyle = 0 ); + ToolBox( Window* pParent, const ResId& rResId ); +@@ -510,9 +509,9 @@ public: + void GetAccessObject( AccessObjectRef& rAcc ) const; + + // allow Click Handler to detect special key +- BOOL IsShift() const { return mbDummy1_Shift; } ++ BOOL IsShift() const { return mbIsShift; } + // allow Click Handler to distinguish between mouse and key input +- BOOL IsKeyEvent() const { return mbDummy2_KeyEvt; } ++ BOOL IsKeyEvent() const { return mbIsKeyEvent; } + + // accessibility helpers + +Index: vcl/inc/unobrok.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/unobrok.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/unobrok.hxx 19 Sep 2000 10:23:07 -0000 1.1.1.1 ++++ vcl/inc/unobrok.hxx 1 Dec 2003 13:02:17 -0000 1.2 +@@ -62,62 +62,8 @@ + #ifndef _UNOBROK_HXX + #define _UNOBROK_HXX + +-#include "rvp.hxx" +- + #include <svdata.hxx> + #include <vos/thread.hxx> +- +-// #include <com/sun/star/connection/XAcceptor.hpp> +- +-// class UnoBrokerThread : public ::vos::OThread +-// { +-// public: +- +-// UnoBrokerThread( +-// const ::com::sun::star::uno::Reference< +-// ::com::sun::star::lang::XMultiServiceFactory > &rSMgr, +-// const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > &rInitialObject ); +- +-// ~UnoBrokerThread(); +-// protected: +- +-// virtual void SAL_CALL run(); +-// virtual void SAL_CALL onTerminated(); +- +-// private: +- +-// ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_rSMgr; +-// ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_rInitialObject; +-// }; +- +- +-// /***************** +-// * This thread is used, when application is started as appserver +-// * Note : No security is checked, every user may connect to the application ! +-// *****************/ +-// class vcl_AcceptorThread : public ::vos::OThread +-// { +-// public: +- +-// vcl_AcceptorThread( +-// const ::com::sun::star::uno::Reference< +-// ::com::sun::star::lang::XMultiServiceFactory > &rSMgr, +-// const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > &rInitialObject, +-// const ::rtl::OUString &sAcceptorParameter); +- +-// protected: +- +-// virtual void SAL_CALL run(); +-// virtual void SAL_CALL onTerminated(); +- +-// virtual void SAL_CALL terminate(); +-// private: +- +-// ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_rSMgr; +-// ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_rInitialObject; +-// ::com::sun::star::uno::Reference< ::com::sun::star::connection::XAcceptor > m_rAcceptor; +-// ::rtl::OUString m_sAcceptorDescription; +-// }; + + namespace vcl_accept + { +Index: vcl/inc/unohelp2.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/unohelp2.hxx,v +retrieving revision 1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1 -r1.2 +--- vcl/inc/unohelp2.hxx 18 Mar 2002 17:34:51 -0000 1.1 ++++ vcl/inc/unohelp2.hxx 7 Jan 2004 09:25:54 -0000 1.2 +@@ -74,6 +74,9 @@ + #include <tools/string.hxx> + #endif + ++#ifndef _OSL_MUTEX_HXX_ ++#include <osl/mutex.hxx> ++#endif + + namespace vcl { namespace unohelper { + +@@ -98,6 +101,14 @@ namespace vcl { namespace unohelper { + ::com::sun::star::uno::Any SAL_CALL getTransferData( const ::com::sun::star::datatransfer::DataFlavor& aFlavor ) throw(::com::sun::star::datatransfer::UnsupportedFlavorException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException); + ::com::sun::star::uno::Sequence< ::com::sun::star::datatransfer::DataFlavor > SAL_CALL getTransferDataFlavors( ) throw(::com::sun::star::uno::RuntimeException); + sal_Bool SAL_CALL isDataFlavorSupported( const ::com::sun::star::datatransfer::DataFlavor& aFlavor ) throw(::com::sun::star::uno::RuntimeException); ++ }; ++ ++ struct MutexHelper ++ { ++ private: ++ ::osl::Mutex maMutex; ++ public: ++ ::osl::Mutex& GetMutex() { return maMutex; } + }; + + }} // namespace vcl::unohelper +Index: vcl/inc/vclevent.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/vclevent.hxx,v +retrieving revision 1.30 +retrieving revision 1.31 +diff -u -p -u -r1.30 -r1.31 +--- vcl/inc/vclevent.hxx 12 Jun 2003 07:50:37 -0000 1.30 ++++ vcl/inc/vclevent.hxx 19 May 2004 13:50:40 -0000 1.31 +@@ -178,6 +178,7 @@ class Menu; + #define VCLEVENT_TOOLBOX_ITEMENABLED 1168 // pData = itempos + #define VCLEVENT_TOOLBOX_ITEMDISABLED 1169 // pData = itempos + #define VCLEVENT_TABPAGE_PAGETEXTCHANGED 1170 // pData = pageid ++#define VCLEVENT_ROADMAP_ITEMSELECTED 1171 + + // VclMenuEvent + #define VCLEVENT_MENU_ACTIVATE 1200 +@@ -203,8 +204,8 @@ class VclSimpleEvent + { + private: + ULONG nId; +- +-public: ++ ++public: + VclSimpleEvent( ULONG n ) { nId = n; } + TYPEINFO(); + +@@ -216,11 +217,11 @@ class VclWindowEvent : public VclSimpleE + private: + Window* pWindow; + void* pData; +- +-public: ++ ++public: + VclWindowEvent( Window* pWin, ULONG n, void* pDat = NULL ) : VclSimpleEvent(n) { pWindow = pWin; pData = pDat; } + TYPEINFO(); +- ++ + Window* GetWindow() const { return pWindow; } + void* GetData() const { return pData; } + }; +@@ -230,11 +231,11 @@ class VclMouseEvent : public VclWindowEv + { + private: + MouseEvent aEvent; +- +-public: ++ ++public: + VclMouseEvent( Window* pWin, ULONG n, const MouseEvent& rEvent ) : VclWindowEvent( pWin, n ), aEvent(rEvent) { ; } + TYPEINFO(); +- ++ + const MouseEvent& GetEvent() const { return aEvent; } + }; + */ +@@ -244,11 +245,11 @@ class VclMenuEvent : public VclSimpleEve + private: + Menu* pMenu; + USHORT mnPos; +- +-public: ++ ++public: + VclMenuEvent( Menu* pM, ULONG n, USHORT nPos ) : VclSimpleEvent(n) { pMenu = pM; mnPos = nPos; } + TYPEINFO(); +- ++ + Menu* GetMenu() const { return pMenu; } + USHORT GetItemPos() const { return mnPos; } + }; +@@ -261,7 +262,7 @@ public: + + // stops notifying when any handler has processed the event + // and returns TRUE in that case +- // a handler must return TRUE to signal that it has processed the event ++ // a handler must return TRUE to signal that it has processed the event + BOOL Process( VclSimpleEvent* pEvent ) const; + }; + +Index: vcl/inc/virdev.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/virdev.hxx,v +retrieving revision 1.3 +retrieving revision 1.7 +diff -u -p -u -r1.3 -r1.7 +--- vcl/inc/virdev.hxx 1 Apr 2003 09:43:53 -0000 1.3 ++++ vcl/inc/virdev.hxx 7 Jan 2004 09:26:54 -0000 1.7 +@@ -78,40 +78,52 @@ class RmVirtualDevice; + + class VirtualDevice : public OutputDevice + { +-private: ++ friend class Application; ++ friend class OutputDevice; + +-#ifndef REMOTE_APPSERVER ++private: + SalVirtualDevice* mpVirDev; +-#else +- RmVirtualDevice* mpVirDev; +-#endif + VirtualDevice* mpPrev; + VirtualDevice* mpNext; + USHORT mnBitCount; + BOOL mbScreenComp; +- BOOL mbDummyAlign; ++ sal_Int8 mnAlphaDepth; ++ BYTE meRefDevMode; + +-#if _SOLAR__PRIVATE +- friend class Application; +- friend class OutputDevice; +-#ifdef _SV_VIRDEV_CXX + void ImplInitVirDev( const OutputDevice* pOutDev, long nDX, long nDY, USHORT nBitCount ); +-#endif +-#ifdef REMOTE_APPSERVER +- RmVirtualDevice* ImplGetRemoteVirDev() const { return mpVirDev; } +-#endif +-#endif ++ BOOL ImplSetOutputSizePixel( const Size& rNewSize, BOOL bErase ); + + public: + VirtualDevice( USHORT nBitCount = 0 ); + VirtualDevice( const OutputDevice& rCompDev, + USHORT nBitCount = 0 ); ++ /** Create a virtual device with alpha channel ++ ++ @param rCompDev ++ The generated vdev will be compatible to this device. By ++ default, Application::GetDefaultDevice() is used here. ++ ++ @param nBitCount ++ Bit depth of the generated virtual device. Use 0 here, to ++ indicate: take default screen depth. Currently, only 0 and 1 ++ are allowed here, with 1 denoting binary mask. ++ ++ @param nAlphaBitCount ++ Bit depth of the generated virtual device. Use 0 here, to ++ indicate: take default screen depth. Currently, only 0 and 1 ++ are allowed here, with 1 denoting binary mask. ++ */ ++ VirtualDevice( const OutputDevice& rCompDev, ++ USHORT nBitCount, USHORT nAlphaBitCount ); + virtual ~VirtualDevice(); + +- void SetReferenceDevice(); + BOOL SetOutputSizePixel( const Size& rNewSize, BOOL bErase = TRUE ); + BOOL SetOutputSize( const Size& rNewSize, BOOL bErase = TRUE ) + { return SetOutputSizePixel( LogicToPixel( rNewSize ), bErase ); } ++ ++ // reference device modes for different compatibility levels ++ enum RefDevMode { REFDEV_NONE=0, REFDEV_MODE06, REFDEV_MODE48, REFDEV_MODE96 }; ++ void SetReferenceDevice( RefDevMode eMode = VirtualDevice::REFDEV_MODE06 ); + }; + + #endif // _SV_VIRDEV_HXX +Index: vcl/inc/wall.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/wall.hxx,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -u -p -u -r1.1.1.1 -r1.2 +--- vcl/inc/wall.hxx 19 Sep 2000 10:23:08 -0000 1.1.1.1 ++++ vcl/inc/wall.hxx 7 Jan 2004 09:27:34 -0000 1.2 +@@ -65,13 +65,14 @@ + #ifndef _SV_SV_H + #include <sv.h> + #endif +-#ifndef _SV_COLOR_HXX +-#include <color.hxx> ++#ifndef _TOOLS_COLOR_HXX ++#include <tools/color.hxx> + #endif + + class Rectangle; + class Gradient; + class BitmapEx; ++class ImplWallpaper; + + // ------------------- + // - Wallpaper-Types - +@@ -113,40 +114,6 @@ enum WallpaperStyle + + #endif + +-// ----------------- +-// - ImplWallpaper - +-// ----------------- +- +-class SvStream; +- +-class ImplWallpaper +-{ +- friend class Wallpaper; +- +-private: +- Color maColor; +- BitmapEx* mpBitmap; +- Gradient* mpGradient; +- Rectangle* mpRect; +- WallpaperStyle meStyle; +- USHORT mnRefCount; +- BitmapEx* mpCache; +- +- friend SvStream& operator>>( SvStream& rIStm, ImplWallpaper& rImplWallpaper ); +- friend SvStream& operator<<( SvStream& rOStm, const ImplWallpaper& rImplWallpaper ); +- +-#ifdef _SV_WALL_CXX +-public: +- ImplWallpaper(); +- ImplWallpaper( const ImplWallpaper& rImplWallpaper ); +- ~ImplWallpaper(); +- +- void ImplSetCachedBitmap( BitmapEx& rBmp ); +- const BitmapEx* ImplGetCachedBitmap() { return mpCache; } +- void ImplReleaseCachedBitmap(); +-#endif +-}; +- + // ------------- + // - Wallpaper - + // ------------- +@@ -156,8 +123,9 @@ class Wallpaper + private: + ImplWallpaper* mpImplWallpaper; + +-#ifdef _SV_WALL_CXX + void ImplMakeUnique( BOOL bReleaseCache = TRUE ); ++ ++#if _SOLAR__PRIVATE + public: + ImplWallpaper* ImplGetImpWallpaper() const { return mpImplWallpaper; } + #endif +@@ -171,25 +139,25 @@ public: + ~Wallpaper(); + + void SetColor( const Color& rColor ); +- const Color& GetColor() const { return mpImplWallpaper->maColor; } ++ const Color& GetColor() const; + + void SetStyle( WallpaperStyle eStyle ); +- WallpaperStyle GetStyle() const { return mpImplWallpaper->meStyle; } ++ WallpaperStyle GetStyle() const; + + void SetBitmap( const BitmapEx& rBitmap ); + void SetBitmap(); + BitmapEx GetBitmap() const; +- BOOL IsBitmap() const { return (mpImplWallpaper->mpBitmap != 0); } ++ BOOL IsBitmap() const; + + void SetGradient( const Gradient& rGradient ); + void SetGradient(); + Gradient GetGradient() const; +- BOOL IsGradient() const { return (mpImplWallpaper->mpGradient != 0); } ++ BOOL IsGradient() const; + + void SetRect( const Rectangle& rRect ); + void SetRect(); + Rectangle GetRect() const; +- BOOL IsRect() const { return (mpImplWallpaper->mpRect != 0); } ++ BOOL IsRect() const; + + BOOL IsFixed() const; + BOOL IsScrollable() const; +Index: vcl/inc/wall2.hxx +=================================================================== +RCS file: vcl/inc/wall2.hxx +diff -N vcl/inc/wall2.hxx +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ vcl/inc/wall2.hxx 7 Jan 2004 09:27:49 -0000 1.2 +@@ -0,0 +1,96 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 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 ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (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.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++#ifndef _SV_WALL2_HXX ++#define _SV_WALL2_HXX ++ ++#ifndef _SV_WALL_HXX ++#include <wall.hxx> ++#endif ++ ++class ImplWallpaper ++{ ++ friend class Wallpaper; ++ ++private: ++ Color maColor; ++ BitmapEx* mpBitmap; ++ Gradient* mpGradient; ++ Rectangle* mpRect; ++ WallpaperStyle meStyle; ++ USHORT mnRefCount; ++ BitmapEx* mpCache; ++ ++ friend SvStream& operator>>( SvStream& rIStm, ImplWallpaper& rImplWallpaper ); ++ friend SvStream& operator<<( SvStream& rOStm, const ImplWallpaper& rImplWallpaper ); ++ ++public: ++ ImplWallpaper(); ++ ImplWallpaper( const ImplWallpaper& rImplWallpaper ); ++ ~ImplWallpaper(); ++ ++ void ImplSetCachedBitmap( BitmapEx& rBmp ); ++ const BitmapEx* ImplGetCachedBitmap() { return mpCache; } ++ void ImplReleaseCachedBitmap(); ++}; ++ ++ ++#endif // _SV_WALL2_HXX +Index: vcl/inc/windata.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/windata.hxx,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -p -u -r1.2 -r1.3 +--- vcl/inc/windata.hxx 27 Jun 2001 08:23:42 -0000 1.2 ++++ vcl/inc/windata.hxx 1 Dec 2003 13:02:52 -0000 1.3 +@@ -72,15 +72,7 @@ class SalFrame; + // - Prototypes - + // -------------- + +-#ifndef REMOTE_APPSERVER +- long ImplWindowFrameProc( void* pInst, SalFrame* pFrame, +- USHORT nEvent, const void* pEvent ); +-#else +- class ExtRmEvent; +- class Window; +- void ImplRemoteWindowFrameProc( ExtRmEvent* pEvent ); +- void ImplUpdateCursorRect( Window *pWindow ); +-#endif ++long ImplWindowFrameProc( void* pInst, SalFrame* pFrame, USHORT nEvent, const void* pEvent ); + + // ----------- + // - HitTest - +Index: vcl/inc/window.h +=================================================================== +RCS file: /cvs/gsl/vcl/inc/window.h,v +retrieving revision 1.11.136.1 +retrieving revision 1.15 +diff -u -p -u -r1.11.136.1 -r1.15 +--- vcl/inc/window.h 9 Jan 2004 18:13:41 -0000 1.11.136.1 ++++ vcl/inc/window.h 17 Jun 2004 12:10:38 -0000 1.15 +@@ -86,6 +86,7 @@ class VirtualDevice; + struct SalPaintEvent; + class ImplDevFontList; + class ImplFontCache; ++class SalControlHandle; + + namespace com { + namespace sun { +@@ -113,6 +114,10 @@ struct ImplWinData + Rectangle* mpFocusRect; + Rectangle* mpTrackRect; + USHORT mnTrackFlags; ++ USHORT mnIsTopWindow; ++ BOOL mbMouseOver; // tracks mouse over for native widget paint effect ++ SalControlHandle* mpSalControlHandle; // native data for NWF ++ BOOL mbEnableNativeWidget; // toggle native widget rendering + }; + + // ------------------- +@@ -145,16 +150,18 @@ struct ImplFrameData + Window* mpFirstBackWin; // Erstes Overlap-Window mit Hintergrund-Sicherung + ImplDevFontList* mpFontList; // Font-List for this frame + ImplFontCache* mpFontCache; // Font-Cache for this frame +- long mnDPIX; // Original Screen Resolution +- long mnDPIY; // Original Screen Resolution +- long mnFontDPIX; // Original Font Resolution +- long mnFontDPIY; // Original Font Resolution ++ sal_Int32 mnDPIX; // Original Screen Resolution ++ sal_Int32 mnDPIY; // Original Screen Resolution ++ sal_Int32 mnFontDPIX; // Original Font Resolution ++ sal_Int32 mnFontDPIY; // Original Font Resolution + ImplMapRes maMapUnitRes; // for LogicUnitToPixel + ULONG mnAllSaveBackSize; // Groesse aller Bitmaps fuer Hintergrund-Sicherung + ULONG mnFocusId; // FocusId for PostUserLink + ULONG mnMouseMoveId; // MoveId for PostUserLink + long mnLastMouseX; // last x mouse position + long mnLastMouseY; // last y mouse position ++ long mnBeforeLastMouseX; // last but one x mouse position ++ long mnBeforeLastMouseY; // last but one y mouse position + long mnFirstMouseX; // first x mouse position by mousebuttondown + long mnFirstMouseY; // first y mouse position by mousebuttondown + long mnLastMouseWinX; // last x mouse position, rel. to pMouseMoveWin +Index: vcl/inc/window.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/window.hxx,v +retrieving revision 1.47.112.1 +retrieving revision 1.55 +diff -u -p -u -r1.47.112.1 -r1.55 +--- vcl/inc/window.hxx 26 Jan 2004 17:20:36 -0000 1.47.112.1 ++++ vcl/inc/window.hxx 17 Jun 2004 12:10:54 -0000 1.55 +@@ -68,8 +68,8 @@ + #ifndef _SV_OUTDEV_HXX + #include <outdev.hxx> + #endif +-#ifndef _SV_RESID_HXX +-#include <resid.hxx> ++#ifndef _TOOLS_RESID_HXX ++#include <tools/resid.hxx> + #endif + #ifndef _SV_POINTR_HXX + #include <pointr.hxx> +@@ -91,12 +91,20 @@ + #include <event.hxx> + #endif + +-#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_ +-#include <com/sun/star/uno/Reference.hxx> ++#ifndef _SV_REGION_HXX ++#include <region.hxx> ++#endif ++ ++#ifndef _SV_NATIVEWIDGETS_HXX ++#include <salnativewidgets.hxx> ++#endif ++ ++#ifndef _RTL_USTRING_HXX_ ++#include <rtl/ustring.hxx> + #endif + +-#ifdef REMOTE_APPSERVER +-#include "rvp.hxx" ++#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_ ++#include <com/sun/star/uno/Reference.hxx> + #endif + + class VirtualDevice; +@@ -144,6 +151,7 @@ namespace sun { + namespace star { + namespace awt { + class XWindowPeer; ++ class XWindow; + } + namespace uno { + class Any; +@@ -335,26 +351,55 @@ typedef USHORT StateChangedType; + #define EXTTEXTINPUT_END_COMPLETE ((USHORT)0x0001) + #define EXTTEXTINPUT_END_CANCEL ((USHORT)0x0002) + ++#if _SOLAR__PRIVATE ++#define IMPL_MINSIZE_BUTTON_WIDTH 70 ++#define IMPL_MINSIZE_BUTTON_HEIGHT 22 ++#define IMPL_EXTRA_BUTTON_WIDTH 18 ++#define IMPL_EXTRA_BUTTON_HEIGHT 10 ++#define IMPL_SEP_BUTTON_X 5 ++#define IMPL_SEP_BUTTON_Y 5 ++#define IMPL_MINSIZE_MSGBOX_WIDTH 150 ++#define IMPL_MINSIZE_MSGBOX_HEIGHT 80 ++#define IMPL_DIALOG_OFFSET 5 ++#define IMPL_DIALOG_BAR_OFFSET 3 ++#define IMPL_MSGBOX_OFFSET_EXTRA_X 0 ++#define IMPL_MSGBOX_OFFSET_EXTRA_Y 2 ++#define IMPL_SEP_MSGBOX_IMAGE 8 ++#define IMPL_SEP_BUTTON_IMAGE 4 ++ ++#define DLGWINDOW_PREV 0 ++#define DLGWINDOW_NEXT 1 ++#define DLGWINDOW_FIRST 2 ++#endif ++ + // ---------- + // - Window - + // ---------- + + class Window : public OutputDevice + { ++ friend class Cursor; ++ friend class OutputDevice; ++ friend class Application; ++ friend class SystemWindow; ++ friend class WorkWindow; ++ friend class Dialog; ++ friend class MessBox; ++ friend class DockingWindow; ++ friend class FloatingWindow; ++ friend class GroupBox; ++ friend class PushButton; ++ friend class RadioButton; ++ friend class SystemChildWindow; ++ friend class ImplBorderWindow; ++ + private: + ImplWinData* mpWinData; + ImplOverlapData* mpOverlapData; + ImplFrameData* mpFrameData; +-#ifndef REMOTE_APPSERVER + SalFrame* mpFrame; + SalObject* mpSysObj; + void* mpRmEvents; +-#else +- friend class ExtRmEvent; +- RmFrameWindow* mpFrame; +- void* mpSysObj; +- ExtRmEvent* mpRmEvents; +-#endif + Window* mpFrameWindow; + Window* mpOverlapWindow; + Window* mpBorderWindow; +@@ -385,14 +433,13 @@ private: + Font* mpControlFont; + Color maControlForeground; + Color maControlBackground; +- long mnLeftBorder; +- long mnTopBorder; +- long mnRightBorder; +- long mnBottomBorder; ++ sal_Int32 mnLeftBorder; ++ sal_Int32 mnTopBorder; ++ sal_Int32 mnRightBorder; ++ sal_Int32 mnBottomBorder; + long mnX; + long mnY; + long mnAbsScreenX; +- long mnDummy2; + Point maPos; + ULONG mnHelpId; + ULONG mnUniqId; +@@ -413,8 +460,6 @@ private: + WinBits mnExtendedStyle; + WinBits mnPrevExtendedStyle; + WindowType mnType; +- LanguageType meDummy1; +- CharSet meDummy2; + USHORT mnWaitCount; + USHORT mnPaintFlags; + USHORT mnGetFocusFlags; +@@ -422,8 +467,6 @@ private: + USHORT mnActivateMode; + USHORT mnDlgCtrlFlags; + USHORT mnLockCount; +- USHORT mnDummy3; +- USHORT mnIsTopWindow; + BOOL mbFrame:1, + mbBorderWin:1, + mbOverlapWin:1, +@@ -490,9 +533,176 @@ private: + mbDrawSelectionBackground:1; + + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxDNDListenerContainer; ++ void ImplInitData( WindowType nType ); ++ + + #if _SOLAR__PRIVATE +-#include <window.imp> ++ ++#ifdef DBG_UTIL ++ friend const char* ImplDbgCheckWindow( const void* pObj ); ++#endif ++ ++public: ++ void ImplInit( Window* pParent, WinBits nStyle, SystemParentData* pSystemParentData ); ++ void ImplInit( Window* pParent, WinBits nStyle, const ::com::sun::star::uno::Any& aSystemWorkWindowToken ); ++ WinBits ImplInitRes( const ResId& rResId ); ++ void ImplLoadRes( const ResId& rResId ); ++ void ImplWindowRes( const ResId& rResId ); ++ void ImplSetFrameParent( const Window* pParent ); ++ void ImplInsertWindow( Window* pParent ); ++ void ImplRemoveWindow( BOOL bRemoveFrameData ); ++ Window* ImplGetWindow() { if ( mpClientWindow ) return mpClientWindow; else return this; } ++ ImplFrameData* ImplGetFrameData() { return mpFrameData; } ++ SalFrame* ImplGetFrame() const { return mpFrame; } ++ ImplWinData* ImplGetWinData() const; ++ SalGraphics* ImplGetFrameGraphics() const; ++ void ImplCallFocusChangeActivate( Window* pNewOverlapWindow, Window* pOldOverlapWindow ); ++ Window* ImplFindWindow( const Point& rFramePos ); ++ USHORT ImplHitTest( const Point& rFramePos ); ++ Window* ImplGetParent() const { return mpParent; } ++ Window* ImplGetClientWindow() const { return mpClientWindow; } ++ Window* ImplGetBorderWindow() const { return mpBorderWindow; } ++ Window* ImplGetFirstOverlapWindow() { if ( mbOverlapWin ) return this; else return mpOverlapWindow; } ++ const Window* ImplGetFirstOverlapWindow() const { if ( mbOverlapWin ) return this; else return mpOverlapWindow; } ++ Window* ImplGetFrameWindow() const { return mpFrameWindow; } ++ BOOL ImplIsRealParentPath( const Window* pWindow ) const; ++ BOOL ImplIsChild( const Window* pWindow, BOOL bSystemWindow = FALSE ) const; ++ BOOL ImplIsWindowOrChild( const Window* pWindow, BOOL bSystemWindow = FALSE ) const; ++ Window* ImplGetSameParent( const Window* pWindow ) const; ++ BOOL ImplIsDockingWindow() const { return mbDockWin; } ++ BOOL ImplIsFloatingWindow() const { return mbFloatWin; } ++ BOOL ImplIsToolbox() const { return mbToolBox; } ++ BOOL ImplIsSplitter() const { return mbSplitter; } ++ BOOL ImplIsPushButton() const { return mbPushButton; } ++ BOOL ImplIsOverlapWindow() const { return mbOverlapWin; } ++ void ImplSetActive( BOOL bActive ) { mbActive = bActive; } ++ BOOL ImplIsMouseTransparent() const { return mbMouseTransparent; } ++ void ImplSetMouseTransparent( BOOL bTransparent ) { mbMouseTransparent = bTransparent; } ++ int ImplTestMousePointerSet(); ++ PointerStyle ImplGetMousePointer() const; ++ void ImplResetReallyVisible(); ++ void ImplSetReallyVisible(); ++ void ImplCallInitShow(); ++ void ImplAddDel( ImplDelData* pDel ); ++ void ImplRemoveDel( ImplDelData* pDel ); ++ void ImplInitResolutionSettings(); ++ void ImplPointToLogic( Font& rFont ) const; ++ void ImplLogicToPoint( Font& rFont ) const; ++ Point ImplOutputToFrame( const Point& rPos ) ++ { return Point( rPos.X()+mnOutOffX, rPos.Y()+mnOutOffY ); } ++ Point ImplFrameToOutput( const Point& rPos ) ++ { return Point( rPos.X()-mnOutOffX, rPos.Y()-mnOutOffY ); } ++ void ImplOutputToFrame( Rectangle& rRect ) ++ { rRect.Left()+=mnOutOffX; rRect.Top()+=mnOutOffY; ++ rRect.Right()+=mnOutOffX; rRect.Bottom()+=mnOutOffY; } ++ void ImplFrameToOutput( Rectangle& rRect ) ++ { rRect.Left()-=mnOutOffX; rRect.Top()-=mnOutOffY; ++ rRect.Right()-=mnOutOffX; rRect.Bottom()-=mnOutOffY; } ++ BOOL ImplSysObjClip( const Region* pOldRegion ); ++ void ImplUpdateSysObjChildsClip(); ++ void ImplUpdateSysObjOverlapsClip(); ++ void ImplUpdateSysObjClip(); ++ BOOL ImplSetClipFlagChilds( BOOL bSysObjOnlySmaller = FALSE ); ++ BOOL ImplSetClipFlagOverlapWindows( BOOL bSysObjOnlySmaller = FALSE ); ++ BOOL ImplSetClipFlag( BOOL bSysObjOnlySmaller = FALSE ); ++ void ImplIntersectWindowClipRegion( Region& rRegion ); ++ void ImplIntersectWindowRegion( Region& rRegion ); ++ void ImplExcludeWindowRegion( Region& rRegion ); ++ void ImplExcludeOverlapWindows( Region& rRegion ); ++ void ImplExcludeOverlapWindows2( Region& rRegion ); ++ void ImplClipBoundaries( Region& rRegion, BOOL bThis, BOOL bOverlaps ); ++ BOOL ImplClipChilds( Region& rRegion ); ++ void ImplClipAllChilds( Region& rRegion ); ++ void ImplClipSiblings( Region& rRegion ); ++ void ImplInitWinClipRegion(); ++ void ImplInitWinChildClipRegion(); ++ Region* ImplGetWinChildClipRegion(); ++ void ImplIntersectAndUnionOverlapWindows( const Region& rInterRegion, Region& rRegion ); ++ void ImplIntersectAndUnionOverlapWindows2( const Region& rInterRegion, Region& rRegion ); ++ void ImplCalcOverlapRegionOverlaps( const Region& rInterRegion, Region& rRegion ); ++ void ImplCalcOverlapRegion( const Rectangle& rSourceRect, Region& rRegion, ++ BOOL bChilds, BOOL bParent, BOOL bSiblings ); ++ void ImplCallPaint( const Region* pRegion, USHORT nPaintFlags ); ++ void ImplCallOverlapPaint(); ++ void ImplPostPaint(); ++ void ImplInvalidateFrameRegion( const Region* pRegion, USHORT nFlags ); ++ void ImplInvalidateOverlapFrameRegion( const Region& rRegion ); ++ void ImplInvalidateParentFrameRegion( Region& rRegion ); ++ void ImplInvalidate( const Region* rRegion, USHORT nFlags ); ++ void ImplValidateFrameRegion( const Region* rRegion, USHORT nFlags ); ++ void ImplValidate( const Region* rRegion, USHORT nFlags ); ++ void ImplMoveInvalidateRegion( const Rectangle& rRect, long nHorzScroll, long nVertScroll, BOOL bChilds ); ++ void ImplMoveAllInvalidateRegions( const Rectangle& rRect, long nHorzScroll, long nVertScroll, BOOL bChilds ); ++ void ImplScroll( const Rectangle& rRect, long nHorzScroll, long nVertScroll, USHORT nFlags ); ++ void ImplUpdateAll( BOOL bOverlapWindows = TRUE ); ++ void ImplUpdateWindowPtr( Window* pWindow ); ++ void ImplUpdateWindowPtr(); ++ void ImplUpdateOverlapWindowPtr( BOOL bNewFrame ); ++ BOOL ImplUpdatePos(); ++ void ImplUpdateSysObjPos(); ++ void ImplUpdateGlobalSettings( AllSettings& rSettings, BOOL bCallHdl = TRUE ); ++ void ImplAlignChilds(); ++ void ImplPosSizeWindow( long nX, long nY, long nWidth, long nHeight, USHORT nFlags ); ++ void ImplToBottomChild(); ++ void ImplCalcToTop( ImplCalcToTopData* pPrevData ); ++ void ImplCalcChildOverlapToTop( ImplCalcToTopData* pPrevData ); ++ void ImplToTop( USHORT nFlags ); ++ void ImplStartToTop( USHORT nFlags ); ++ void ImplFocusToTop( USHORT nFlags, BOOL bReallyVisible ); ++ void ImplShowAllOverlaps(); ++ void ImplHideAllOverlaps(); ++ void ImplNotifyKeyMouseCommandEventListeners( NotifyEvent& rNEvt ); ++ void ImplCallMouseMove( USHORT nMouseCode, BOOL bModChanged = FALSE ); ++ void ImplGenerateMouseMove(); ++ void ImplGrabFocus( USHORT nFlags ); ++ void ImplInvertFocus( const Rectangle& rRect ); ++ void ImplControlFocus( USHORT nFlags = 0 ); ++ Window* ImplGetDlgWindow( USHORT n, USHORT nType, USHORT nStart = 0, USHORT nEnd = 0xFFFF, USHORT* pIndex = NULL ); ++ BOOL ImplDlgCtrl( const KeyEvent& rKEvt, BOOL bKeyInput ); ++ BOOL ImplHasDlgCtrl(); ++ void ImplDlgCtrlNextWindow(); ++ void ImplDlgCtrlFocusChanged( Window* pWindow, BOOL bGetFocus ); ++ Window* ImplFindDlgCtrlWindow( Window* pWindow ); ++ long ImplLogicUnitToPixelX( long nX, MapUnit eUnit ); ++ long ImplLogicUnitToPixelY( long nY, MapUnit eUnit ); ++ BOOL ImplIsWindowInFront( const Window* pTestWindow ) const; ++ void ImplSaveOverlapBackground(); ++ BOOL ImplRestoreOverlapBackground( Region& rInvRegion ); ++ void ImplDeleteOverlapBackground(); ++ void ImplInvalidateAllOverlapBackgrounds(); ++ static void ImplNewInputContext(); ++ void ImplCallActivateListeners(Window*); ++ void ImplCallDeactivateListeners(Window*); ++ DECL_LINK( ImplHandlePaintHdl, void* ); ++ DECL_LINK( ImplGenerateMouseMoveHdl, void* ); ++ DECL_LINK( ImplTrackTimerHdl, Timer* ); ++ DECL_LINK( ImplAsyncFocusHdl, void* ); ++ DECL_LINK( ImplAsyncStateChangedHdl, void* ); ++ ++ static void ImplCalcSymbolRect( Rectangle& rRect ); ++ void ImplHandleScroll( ScrollBar* pHScrl, long nX, ScrollBar* pVScrl, long nY ); ++ BOOL ImplGetCurrentBackgroundColor( Color& rCol ); ++ BOOL ImplIsAccessibleCandidate() const; ++ BOOL ImplIsAccessibleNativeFrame() const; ++ USHORT ImplGetAccessibleCandidateChildWindowCount( USHORT nFirstWindowType ) const; ++ Window* ImplGetAccessibleCandidateChild( USHORT nChild, USHORT& rChildCount, USHORT nFirstWindowType, BOOL bTopLevel = TRUE ) const; ++ BOOL ImplRegisterAccessibleNativeFrame(); ++ void ImplRevokeAccessibleNativeFrame(); ++ void ImplCallResize(); ++ void ImplCallMove(); ++ Rectangle ImplOutputToUnmirroredAbsoluteScreenPixel( const Rectangle& rRect ) const; ++ void ImplMirrorFramePos( Point &pt ) const; ++ long ImplGetUnmirroredOutOffX(); ++ void ImplIncModalCount(); ++ void ImplDecModalCount(); ++ ++ Rectangle ImplGetWindowExtentsRelative( Window *pRelativeWindow, BOOL bClientOnly ); ++ void ImplNotifyIconifiedState( BOOL bIconified ); ++ bool ImplStopDnd(); ++ void ImplStartDnd(); ++ ++ static void ImplInitAppFontData( Window* pWindow ); ++ void ImplInitSalControlHandle(); + #endif + + protected: +@@ -573,8 +783,8 @@ public: + + void SetBorderStyle( USHORT nBorderStyle ); + USHORT GetBorderStyle() const; +- void GetBorder( long& rLeftBorder, long& rTopBorder, +- long& rRightBorder, long& rBottomBorder ) const; ++ void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, ++ sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const; + Size CalcWindowSize( const Size& rOutSz ) const; + Size CalcOutputSize( const Size& rWinSz ) const; + long CalcTitleWidth() const; +@@ -594,6 +804,8 @@ public: + void SetDialogControlFlags( USHORT nFlags ) { mnDlgCtrlFlags = nFlags; } + USHORT GetDialogControlFlags() const { return mnDlgCtrlFlags; } + ++ BOOL IsMouseOver(); ++ + ULONG GetCurrentModButtons(); + + void SetInputContext( const InputContext& rInputContext ); +@@ -616,7 +828,7 @@ public: + void SetZoomedPointFont( const Font& rFont ); + long GetDrawPixel( OutputDevice* pDev, long nPixels ) const; + Font GetDrawPixelFont( OutputDevice* pDev ) const; +- void GetFontResolution( long& nDPIX, long& nDPIY ) const; ++ void GetFontResolution( sal_Int32& nDPIX, sal_Int32& nDPIY ) const; + + void SetControlFont(); + void SetControlFont( const Font& rFont ); +@@ -641,6 +853,10 @@ public: + Region GetWindowClipRegionPixel( USHORT nFlags = 0 ) const; + Region GetPaintRegion() const; + BOOL IsInPaint() const { return mbInPaint; } ++ // while IsInPaint returns true ExpandPaintClipRegion adds the ++ // submitted region to the paint clip region so you can ++ // paint additional parts of your window if necessary ++ void ExpandPaintClipRegion( const Region& rRegion ); + + void SetParent( Window* pNewParent ); + Window* GetParent() const { return mpRealParent; } +@@ -687,8 +903,12 @@ public: + BOOL IsDefaultPos() const { return mbDefPos; } + BOOL IsDefaultSize() const { return mbDefSize; } + ++ // those conversion routines might deliver different results during UI mirroring + Point OutputToScreenPixel( const Point& rPos ) const; + Point ScreenToOutputPixel( const Point& rPos ) const; ++ // the normalized screen methods work independent from UI mirroring ++ Point OutputToNormalizedScreenPixel( const Point& rPos ) const; ++ Point NormalizedScreenToOutputPixel( const Point& rPos ) const; + Point OutputToAbsoluteScreenPixel( const Point& rPos ) const; + Point AbsoluteScreenToOutputPixel( const Point& rPos ) const; + Rectangle GetDesktopRectPixel() const; +@@ -753,6 +964,7 @@ public: + BOOL IsChildPointerOverwrite() const { return mbChildPtrOverwrite; } + void SetPointerPosPixel( const Point& rPos ); + Point GetPointerPosPixel(); ++ Point GetLastPointerPosPixel(); + void ShowPointer( BOOL bVisible ); + BOOL IsPointerVisible() const { return !mbNoPtrVisible; } + void EnterWait(); +@@ -852,11 +1060,11 @@ public: + ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetAccessible( BOOL bCreate = TRUE ); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible(); + void SetAccessible( ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > ); +- ++ + Window* GetAccessibleParentWindow() const; + USHORT GetAccessibleChildWindowCount(); + Window* GetAccessibleChildWindow( USHORT n ); +- ++ + void SetAccessibleRole( USHORT nRole ); + USHORT GetAccessibleRole() const; + +@@ -900,6 +1114,52 @@ public: + // Clipboard/Selection interfaces + virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > GetClipboard(); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > GetSelection(); ++ ++ //------------------------------------- ++ // Native Widget Rendering functions ++ //------------------------------------- ++ ++ // form controls must never use native widgets, this can be toggled here ++ void EnableNativeWidget( BOOL bEnable = TRUE ); ++ BOOL IsNativeWidgetEnabled() const; ++ ++ // These all just call through to the private mpFrame functions of the same name. ++ ++ // Query the platform layer for control support ++ BOOL IsNativeControlSupported( ControlType nType, ControlPart nPart ); ++ ++ // Query the native control to determine if it was acted upon ++ BOOL HitTestNativeControl( ControlType nType, ++ ControlPart nPart, ++ const Region& rControlRegion, ++ const Point& aPos, ++ BOOL& rIsInside ); ++ ++ // Request rendering of a particular control and/or part ++ BOOL DrawNativeControl( ControlType nType, ++ ControlPart nPart, ++ const Region& rControlRegion, ++ ControlState nState, ++ const ImplControlValue& aValue, ++ rtl::OUString aCaption ); ++ ++ // Request rendering of a caption string for a control ++ BOOL DrawNativeControlText( ControlType nType, ++ ControlPart nPart, ++ const Region& rControlRegion, ++ ControlState nState, ++ const ImplControlValue& aValue, ++ rtl::OUString aCaption ); ++ ++ // Query the native control's actual drawing region (including adornment) ++ BOOL GetNativeControlRegion( ControlType nType, ++ ControlPart nPart, ++ const Region& rControlRegion, ++ ControlState nState, ++ const ImplControlValue& aValue, ++ rtl::OUString aCaption, ++ Region &rNativeBoundingRegion, ++ Region &rNativeContentRegion ); + }; + + inline void Window::SetPosPixel( const Point& rNewPos ) +Index: vcl/inc/wintypes.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/wintypes.hxx,v +retrieving revision 1.14 +retrieving revision 1.17 +diff -u -p -u -r1.14 -r1.17 +--- vcl/inc/wintypes.hxx 11 Apr 2003 17:27:04 -0000 1.14 ++++ vcl/inc/wintypes.hxx 10 May 2004 15:44:37 -0000 1.17 +@@ -154,14 +154,15 @@ typedef USHORT WindowType; + #define WINDOW_TREELISTBOX (WINDOW_FIRST + 0x4d) + #define WINDOW_HELPTEXTWINDOW (WINDOW_FIRST + 0x4e) + #define WINDOW_INTROWINDOW (WINDOW_FIRST + 0x4f) +-#define WINDOW_LAST (WINDOW_INTROWINDOW) ++#define WINDOW_LISTBOXWINDOW (WINDOW_FIRST + 0x50) ++#define WINDOW_LAST (WINDOW_LISTBOXWINDOW) + + + // --------------- + // - Window-Bits - + // --------------- + +-// By changes you must also change: tools/vclrsc.hxx ++// By changes you must also change: rsc/vclrsc.hxx + typedef sal_Int64 WinBits; + + // Window-Bits fuer Window +Index: vcl/inc/wrkwin.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/wrkwin.hxx,v +retrieving revision 1.7 +retrieving revision 1.9 +diff -u -p -u -r1.7 -r1.9 +--- vcl/inc/wrkwin.hxx 11 Apr 2003 17:27:14 -0000 1.7 ++++ vcl/inc/wrkwin.hxx 17 Jun 2004 11:43:45 -0000 1.9 +@@ -96,20 +92,10 @@ private: + BOOL mbPresentationMode:1, + mbPresentationVisible:1, + mbPresentationFull:1, +- mbFullScreenMode:1, +- mbDummy0:1, +- mbDummy1:1, +- mbDummy2:1, +- mbDummy3:1, +- mbDummy4:1, +- mbDummy5:1, +- mbDummy6:1, +- mbDummy7:1; ++ mbFullScreenMode:1; + +-#ifdef _SV_WRKWIN_CXX + void ImplInitData(); + void ImplInit( Window* pParent, WinBits nStyle, const ::com::sun::star::uno::Any& aSystemWorkWindowToken ); +-#endif + + protected: + WorkWindow( WindowType nType ); +@@ -124,6 +110,8 @@ public: + WorkWindow( SystemParentData* pParent ); // Not in the REMOTE-Version + ~WorkWindow(); + ++ virtual BOOL Close(); ++ + void ShowFullScreenMode( BOOL bFullScreenMode = TRUE ); + void EndFullScreenMode() { ShowFullScreenMode( FALSE ); } + BOOL IsFullScreenMode() const { return mbFullScreenMode; } +@@ -136,16 +124,14 @@ public: + + BOOL SetPluginParent( SystemParentData* pParent ); + +-#ifndef NOOLDSV + void Minimize(); +- void Maximize(); + void Restore(); + +- BOOL IsMaximized() const; + + void SetOptOutputSizePixel( const Size& ) {} + Size GetOptOutputSizePixel() const { return Size(); } +-#endif ++ void Maximize( BOOL bMaximize = TRUE ); ++ BOOL IsMaximized(); + }; + + #endif // _SV_WRKWIN_HXX +Index: vcl/inc/xconnection.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/xconnection.hxx,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -p -u -r1.2 -r1.3 +--- vcl/inc/xconnection.hxx 11 Sep 2001 15:52:21 -0000 1.2 ++++ vcl/inc/xconnection.hxx 6 Jan 2004 13:08:25 -0000 1.3 +@@ -78,7 +78,7 @@ + #include <com/sun/star/uno/Reference.hxx> + #endif + +-#ifndef __SGI_STL_LIST ++#ifndef _STLP_LIST + #include <list> + #endif + |