LCOV - code coverage report
Current view: top level - solver/unxlngi6.pro/inc/vcl - window.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 4 4 100.0 %
Date: 2012-08-25 Functions: 4 4 100.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : #ifndef _SV_WINDOW_HXX
      30                 :            : #define _SV_WINDOW_HXX
      31                 :            : 
      32                 :            : #include <tools/solar.h>
      33                 :            : #include <vcl/dllapi.h>
      34                 :            : #include <vcl/outdev.hxx>
      35                 :            : #include <tools/resid.hxx>
      36                 :            : #include <vcl/pointr.hxx>
      37                 :            : #include <tools/wintypes.hxx>
      38                 :            : #include <vcl/apptypes.hxx>
      39                 :            : #include <vcl/inputctx.hxx>
      40                 :            : #include <vcl/vclevent.hxx>
      41                 :            : // Only for compatibility - because many people outside haven't included event.hxx
      42                 :            : #include <vcl/event.hxx>
      43                 :            : #include <vcl/region.hxx>
      44                 :            : #include <vcl/salnativewidgets.hxx>
      45                 :            : #include <rtl/ustring.hxx>
      46                 :            : #include <cppuhelper/weakref.hxx>
      47                 :            : #include <com/sun/star/uno/Reference.hxx>
      48                 :            : #include <boost/shared_ptr.hpp>
      49                 :            : 
      50                 :            : class VirtualDevice;
      51                 :            : struct ImplDelData;
      52                 :            : struct ImplWinData;
      53                 :            : struct ImplOverlapData;
      54                 :            : struct ImplFrameData;
      55                 :            : struct ImplCalcToTopData;
      56                 :            : struct SystemEnvData;
      57                 :            : struct SystemParentData;
      58                 :            : class ImplBorderWindow;
      59                 :            : class VirtualDevice;
      60                 :            : class Timer;
      61                 :            : class Cursor;
      62                 :            : class DockingManager;
      63                 :            : class ScrollBar;
      64                 :            : class Bitmap;
      65                 :            : class Image;
      66                 :            : class MouseEvent;
      67                 :            : class KeyEvent;
      68                 :            : class CommandEvent;
      69                 :            : class TrackingEvent;
      70                 :            : class HelpEvent;
      71                 :            : class DataChangedEvent;
      72                 :            : class NotifyEvent;
      73                 :            : class SystemWindow;
      74                 :            : class SalFrame;
      75                 :            : class SalObject;
      76                 :            : class MenuFloatingWindow;
      77                 :            : class UNOWindowData;
      78                 :            : // Nur fuer ExecuteDrag:
      79                 :            : struct IDataObject;
      80                 :            : class VCLXWindow;
      81                 :            : struct ImplAccessibleInfos;
      82                 :            : 
      83                 :            : namespace com {
      84                 :            : namespace sun {
      85                 :            : namespace star {
      86                 :            : namespace accessibility {
      87                 :            :     class XAccessible;
      88                 :            : }}}}
      89                 :            : 
      90                 :            : namespace com {
      91                 :            : namespace sun {
      92                 :            : namespace star {
      93                 :            : namespace beans {
      94                 :            :     struct PropertyValue;
      95                 :            : }}}}
      96                 :            : 
      97                 :            : namespace com {
      98                 :            : namespace sun {
      99                 :            : namespace star {
     100                 :            : namespace rendering {
     101                 :            :     class XCanvas;
     102                 :            :     class XSpriteCanvas;
     103                 :            : }}}}
     104                 :            : 
     105                 :            : namespace com {
     106                 :            : namespace sun {
     107                 :            : namespace star {
     108                 :            : namespace awt {
     109                 :            :     class XWindowPeer;
     110                 :            :     class XWindow;
     111                 :            : }
     112                 :            : namespace uno {
     113                 :            :     class Any;
     114                 :            :     class XInterface;
     115                 :            : }
     116                 :            : namespace datatransfer {
     117                 :            : namespace clipboard {
     118                 :            :     class XClipboard;
     119                 :            : }
     120                 :            : 
     121                 :            : namespace dnd {
     122                 :            :     class XDragGestureRecognizer;
     123                 :            :     class XDragSource;
     124                 :            :     class XDropTarget;
     125                 :            : } } } } }
     126                 :            : 
     127                 :            : namespace vcl {
     128                 :            :     struct ControlLayoutData;
     129                 :            :     class WindowArranger;
     130                 :            :     struct ExtWindowImpl;
     131                 :            : }
     132                 :            : 
     133                 :            : namespace svt { class PopupWindowControllerImpl; }
     134                 :            : 
     135                 :            : // ---------------
     136                 :            : // - WindowTypes -
     137                 :            : // ---------------
     138                 :            : 
     139                 :            : // Type fuer GetWindow()
     140                 :            : #define WINDOW_PARENT                   ((sal_uInt16)0)
     141                 :            : #define WINDOW_FIRSTCHILD               ((sal_uInt16)1)
     142                 :            : #define WINDOW_LASTCHILD                ((sal_uInt16)2)
     143                 :            : #define WINDOW_PREV                     ((sal_uInt16)3)
     144                 :            : #define WINDOW_NEXT                     ((sal_uInt16)4)
     145                 :            : #define WINDOW_FIRSTOVERLAP             ((sal_uInt16)5)
     146                 :            : #define WINDOW_LASTOVERLAP              ((sal_uInt16)6)
     147                 :            : #define WINDOW_OVERLAP                  ((sal_uInt16)7)
     148                 :            : #define WINDOW_PARENTOVERLAP            ((sal_uInt16)8)
     149                 :            : #define WINDOW_CLIENT                   ((sal_uInt16)9)
     150                 :            : #define WINDOW_REALPARENT               ((sal_uInt16)10)
     151                 :            : #define WINDOW_FRAME                    ((sal_uInt16)11)
     152                 :            : #define WINDOW_BORDER                   ((sal_uInt16)12)
     153                 :            : #define WINDOW_FIRSTTOPWINDOWCHILD      ((sal_uInt16)13)
     154                 :            : #define WINDOW_LASTTOPWINDOWCHILD       ((sal_uInt16)14)
     155                 :            : #define WINDOW_PREVTOPWINDOWSIBLING     ((sal_uInt16)15)
     156                 :            : #define WINDOW_NEXTTOPWINDOWSIBLING     ((sal_uInt16)16)
     157                 :            : 
     158                 :            : // Flags for SetPosSizePixel()
     159                 :            : #define WINDOW_POSSIZE_X                ((sal_uInt16)0x0001)
     160                 :            : #define WINDOW_POSSIZE_Y                ((sal_uInt16)0x0002)
     161                 :            : #define WINDOW_POSSIZE_WIDTH            ((sal_uInt16)0x0004)
     162                 :            : #define WINDOW_POSSIZE_HEIGHT           ((sal_uInt16)0x0008)
     163                 :            : #define WINDOW_POSSIZE_POS              (WINDOW_POSSIZE_X | WINDOW_POSSIZE_Y)
     164                 :            : #define WINDOW_POSSIZE_SIZE             (WINDOW_POSSIZE_WIDTH | WINDOW_POSSIZE_HEIGHT)
     165                 :            : #define WINDOW_POSSIZE_POSSIZE          (WINDOW_POSSIZE_POS | WINDOW_POSSIZE_SIZE)
     166                 :            : #define WINDOW_POSSIZE_ALL              (WINDOW_POSSIZE_POSSIZE)
     167                 :            : #define WINDOW_POSSIZE_DROPDOWN         ((sal_uInt16)0x0010)
     168                 :            : 
     169                 :            : // Flags for Show()
     170                 :            : #define SHOW_NOPARENTUPDATE             ((sal_uInt16)0x0001)
     171                 :            : #define SHOW_NOFOCUSCHANGE              ((sal_uInt16)0x0002)
     172                 :            : #define SHOW_NOACTIVATE                 ((sal_uInt16)0x0004)
     173                 :            : #define SHOW_FOREGROUNDTASK             ((sal_uInt16)0x0008)
     174                 :            : 
     175                 :            : // Flags for SetZOrder()
     176                 :            : #define WINDOW_ZORDER_BEFOR             ((sal_uInt16)0x0001)
     177                 :            : #define WINDOW_ZORDER_BEHIND            ((sal_uInt16)0x0002)
     178                 :            : #define WINDOW_ZORDER_FIRST             ((sal_uInt16)0x0004)
     179                 :            : #define WINDOW_ZORDER_LAST              ((sal_uInt16)0x0008)
     180                 :            : 
     181                 :            : // Activate-Flags
     182                 :            : #define ACTIVATE_MODE_GRABFOCUS         ((sal_uInt16)0x0001)
     183                 :            : 
     184                 :            : // ToTop-Flags
     185                 :            : #define TOTOP_RESTOREWHENMIN            ((sal_uInt16)0x0001)
     186                 :            : #define TOTOP_FOREGROUNDTASK            ((sal_uInt16)0x0002)
     187                 :            : #define TOTOP_NOGRABFOCUS               ((sal_uInt16)0x0004)
     188                 :            : #define TOTOP_GRABFOCUSONLY             ((sal_uInt16)0x0008)
     189                 :            : 
     190                 :            : // Flags for Invalidate
     191                 :            : #define INVALIDATE_CHILDREN             ((sal_uInt16)0x0001)
     192                 :            : #define INVALIDATE_NOCHILDREN           ((sal_uInt16)0x0002)
     193                 :            : #define INVALIDATE_NOERASE              ((sal_uInt16)0x0004)
     194                 :            : #define INVALIDATE_UPDATE               ((sal_uInt16)0x0008)
     195                 :            : #define INVALIDATE_TRANSPARENT          ((sal_uInt16)0x0010)
     196                 :            : #define INVALIDATE_NOTRANSPARENT        ((sal_uInt16)0x0020)
     197                 :            : #define INVALIDATE_NOCLIPCHILDREN       ((sal_uInt16)0x4000)
     198                 :            : // Temporaer fuer Kompatibilitaet
     199                 :            : #define INVALIDATE_BACKGROUND           INVALIDATE_TRANSPARENT
     200                 :            : 
     201                 :            : // Flags for Validate
     202                 :            : #define VALIDATE_CHILDREN               ((sal_uInt16)0x0001)
     203                 :            : #define VALIDATE_NOCHILDREN             ((sal_uInt16)0x0002)
     204                 :            : 
     205                 :            : // Flags for Scroll
     206                 :            : #define SCROLL_CLIP                     ((sal_uInt16)0x0001)
     207                 :            : #define SCROLL_CHILDREN                 ((sal_uInt16)0x0002)
     208                 :            : #define SCROLL_NOCHILDREN               ((sal_uInt16)0x0004)
     209                 :            : #define SCROLL_NOERASE                  ((sal_uInt16)0x0008)
     210                 :            : #define SCROLL_NOINVALIDATE             ((sal_uInt16)0x0010)
     211                 :            : #define SCROLL_NOWINDOWINVALIDATE       ((sal_uInt16)0x0020)
     212                 :            : #define SCROLL_USECLIPREGION            ((sal_uInt16)0x0040)
     213                 :            : #define SCROLL_UPDATE                   ((sal_uInt16)0x0080)
     214                 :            : 
     215                 :            : // Flags for ParentClipMode
     216                 :            : #define PARENTCLIPMODE_CLIP             ((sal_uInt16)0x0001)
     217                 :            : #define PARENTCLIPMODE_NOCLIP           ((sal_uInt16)0x0002)
     218                 :            : 
     219                 :            : // Flags for Invert()
     220                 :            : #define INVERT_HIGHLIGHT                ((sal_uInt16)0x0001)
     221                 :            : #define INVERT_50                       ((sal_uInt16)0x0002)
     222                 :            : 
     223                 :            : // Flags for ShowTracking()
     224                 :            : #define SHOWTRACK_SMALL                 ((sal_uInt16)0x0001)
     225                 :            : #define SHOWTRACK_BIG                   ((sal_uInt16)0x0002)
     226                 :            : #define SHOWTRACK_SPLIT                 ((sal_uInt16)0x0003)
     227                 :            : #define SHOWTRACK_OBJECT                ((sal_uInt16)0x0004)
     228                 :            : #define SHOWTRACK_WINDOW                ((sal_uInt16)0x1000)
     229                 :            : #define SHOWTRACK_CLIP                  ((sal_uInt16)0x2000)
     230                 :            : #define SHOWTRACK_STYLE                 ((sal_uInt16)0x000F)
     231                 :            : 
     232                 :            : // Flags for StartTracking()
     233                 :            : #define STARTTRACK_KEYINPUT             ((sal_uInt16)0x0001)
     234                 :            : #define STARTTRACK_KEYMOD               ((sal_uInt16)0x0002)
     235                 :            : #define STARTTRACK_NOKEYCANCEL          ((sal_uInt16)0x0004)
     236                 :            : #define STARTTRACK_SCROLLREPEAT         ((sal_uInt16)0x0008)
     237                 :            : #define STARTTRACK_BUTTONREPEAT         ((sal_uInt16)0x0010)
     238                 :            : #define STARTTRACK_MOUSEBUTTONDOWN      ((sal_uInt16)0x0020)
     239                 :            : #define STARTTRACK_FOCUSCANCEL          ((sal_uInt16)0x0040)
     240                 :            : 
     241                 :            : // Flags for StartAutoScroll()
     242                 :            : #define AUTOSCROLL_VERT                 ((sal_uInt16)0x0001)
     243                 :            : #define AUTOSCROLL_HORZ                 ((sal_uInt16)0x0002)
     244                 :            : 
     245                 :            : // Flags for StateChanged()
     246                 :            : typedef sal_uInt16 StateChangedType;
     247                 :            : #define STATE_CHANGE_INITSHOW           ((StateChangedType)1)
     248                 :            : #define STATE_CHANGE_VISIBLE            ((StateChangedType)2)
     249                 :            : #define STATE_CHANGE_UPDATEMODE         ((StateChangedType)3)
     250                 :            : #define STATE_CHANGE_ENABLE             ((StateChangedType)4)
     251                 :            : #define STATE_CHANGE_TEXT               ((StateChangedType)5)
     252                 :            : #define STATE_CHANGE_IMAGE              ((StateChangedType)6)
     253                 :            : #define STATE_CHANGE_DATA               ((StateChangedType)7)
     254                 :            : #define STATE_CHANGE_STATE              ((StateChangedType)8)
     255                 :            : #define STATE_CHANGE_STYLE              ((StateChangedType)9)
     256                 :            : #define STATE_CHANGE_ZOOM               ((StateChangedType)10)
     257                 :            : #define STATE_CHANGE_BORDER             ((StateChangedType)11)
     258                 :            : #define STATE_CHANGE_TRANSPARENT        ((StateChangedType)12)
     259                 :            : #define STATE_CHANGE_CONTROLFONT        ((StateChangedType)13)
     260                 :            : #define STATE_CHANGE_CONTROLFOREGROUND  ((StateChangedType)14)
     261                 :            : #define STATE_CHANGE_CONTROLBACKGROUND  ((StateChangedType)15)
     262                 :            : #define STATE_CHANGE_READONLY           ((StateChangedType)16)
     263                 :            : #define STATE_CHANGE_EXTENDEDSTYLE      ((StateChangedType)17)
     264                 :            : #define STATE_CHANGE_MIRRORING          ((StateChangedType)18)
     265                 :            : #define STATE_CHANGE_USER               ((StateChangedType)10000)
     266                 :            : 
     267                 :            : // GetFocusFlags
     268                 :            : #define GETFOCUS_TAB                    ((sal_uInt16)0x0001)
     269                 :            : #define GETFOCUS_CURSOR                 ((sal_uInt16)0x0002)
     270                 :            : #define GETFOCUS_MNEMONIC               ((sal_uInt16)0x0004)
     271                 :            : #define GETFOCUS_FORWARD                ((sal_uInt16)0x0010)
     272                 :            : #define GETFOCUS_BACKWARD               ((sal_uInt16)0x0020)
     273                 :            : #define GETFOCUS_AROUND                 ((sal_uInt16)0x0040)
     274                 :            : #define GETFOCUS_UNIQUEMNEMONIC         ((sal_uInt16)0x0100)
     275                 :            : #define GETFOCUS_INIT                   ((sal_uInt16)0x0200)
     276                 :            : #define GETFOCUS_FLOATWIN_POPUPMODEEND_CANCEL ((sal_uInt16)0x0400)
     277                 :            : 
     278                 :            : // Draw-Flags fuer Draw()
     279                 :            : #define WINDOW_DRAW_MONO                ((sal_uLong)0x00000001)
     280                 :            : #define WINDOW_DRAW_NOBORDER            ((sal_uLong)0x00000002)
     281                 :            : #define WINDOW_DRAW_NOCONTROLS          ((sal_uLong)0x00000004)
     282                 :            : #define WINDOW_DRAW_NODISABLE           ((sal_uLong)0x00000008)
     283                 :            : #define WINDOW_DRAW_NOMNEMONIC          ((sal_uLong)0x00000010)
     284                 :            : #define WINDOW_DRAW_NOSELECTION         ((sal_uLong)0x00000020)
     285                 :            : #define WINDOW_DRAW_NOFOCUS             ((sal_uLong)0x00000040)
     286                 :            : #define WINDOW_DRAW_NOBACKGROUND        ((sal_uLong)0x00000080)
     287                 :            : #define WINDOW_DRAW_ROLLOVER            ((sal_uLong)0x00000100)
     288                 :            : 
     289                 :            : // Border-Styles fuer SetBorder()
     290                 :            : #define WINDOW_BORDER_NORMAL            ((sal_uInt16)0x0001)
     291                 :            : #define WINDOW_BORDER_MONO              ((sal_uInt16)0x0002)
     292                 :            : #define WINDOW_BORDER_MENU              ((sal_uInt16)0x0010)
     293                 :            : #define WINDOW_BORDER_NWF               ((sal_uInt16)0x0020)
     294                 :            : #define WINDOW_BORDER_NOBORDER          ((sal_uInt16)0x1000)
     295                 :            : #define WINDOW_BORDER_REMOVEBORDER      ((sal_uInt16)0x2000)
     296                 :            : 
     297                 :            : // DialogControl-Flags
     298                 :            : #define WINDOW_DLGCTRL_RETURN           ((sal_uInt16)0x0001)
     299                 :            : #define WINDOW_DLGCTRL_WANTFOCUS        ((sal_uInt16)0x0002)
     300                 :            : #define WINDOW_DLGCTRL_MOD1TAB          ((sal_uInt16)0x0004)
     301                 :            : #define WINDOW_DLGCTRL_FLOATWIN_POPUPMODEEND_CANCEL ((sal_uInt16)0x0008)
     302                 :            : 
     303                 :            : // GetWindowClipRegionPixel-Flags
     304                 :            : #define WINDOW_GETCLIPREGION_NULL       ((sal_uInt16)0x0001)
     305                 :            : #define WINDOW_GETCLIPREGION_NOCHILDREN ((sal_uInt16)0x0002)
     306                 :            : 
     307                 :            : // EndExtTextInput-Flags
     308                 :            : #define EXTTEXTINPUT_END_COMPLETE       ((sal_uInt16)0x0001)
     309                 :            : #define EXTTEXTINPUT_END_CANCEL         ((sal_uInt16)0x0002)
     310                 :            : 
     311                 :            : #define IMPL_MINSIZE_BUTTON_WIDTH       70
     312                 :            : #define IMPL_MINSIZE_BUTTON_HEIGHT      22
     313                 :            : #define IMPL_EXTRA_BUTTON_WIDTH         18
     314                 :            : #define IMPL_EXTRA_BUTTON_HEIGHT        10
     315                 :            : #define IMPL_SEP_BUTTON_X               5
     316                 :            : #define IMPL_SEP_BUTTON_Y               5
     317                 :            : #define IMPL_MINSIZE_MSGBOX_WIDTH       150
     318                 :            : #define IMPL_MINSIZE_MSGBOX_HEIGHT      80
     319                 :            : #define IMPL_DIALOG_OFFSET              5
     320                 :            : #define IMPL_DIALOG_BAR_OFFSET          3
     321                 :            : #define IMPL_MSGBOX_OFFSET_EXTRA_X      0
     322                 :            : #define IMPL_MSGBOX_OFFSET_EXTRA_Y      2
     323                 :            : #define IMPL_SEP_MSGBOX_IMAGE           8
     324                 :            : 
     325                 :            : #define DLGWINDOW_PREV                  0
     326                 :            : #define DLGWINDOW_NEXT                  1
     327                 :            : #define DLGWINDOW_FIRST                 2
     328                 :            : 
     329                 :            : enum WindowSizeType {
     330                 :            :     WINDOWSIZE_MINIMUM,
     331                 :            :     WINDOWSIZE_PREFERRED,
     332                 :            :     WINDOWSIZE_MAXIMUM
     333                 :            : };
     334                 :            : 
     335                 :            : // ----------
     336                 :            : // - Window -
     337                 :            : // ----------
     338                 :            : 
     339                 :            : #ifdef DBG_UTIL
     340                 :            : const char* ImplDbgCheckWindow( const void* pObj );
     341                 :            : #endif
     342                 :            : 
     343                 :            : class BitmapEx; // FIXME: really the SetBackgroundBitmap belongs in a toplevel 'window'
     344                 :            : class WindowImpl;
     345                 :            : class VCL_DLLPUBLIC Window : public OutputDevice
     346                 :            : {
     347                 :            :     friend class Cursor;
     348                 :            :     friend class OutputDevice;
     349                 :            :     friend class Application;
     350                 :            :     friend class SystemWindow;
     351                 :            :     friend class WorkWindow;
     352                 :            :     friend class Dialog;
     353                 :            :     friend class MessBox;
     354                 :            :     friend class DockingWindow;
     355                 :            :     friend class FloatingWindow;
     356                 :            :     friend class GroupBox;
     357                 :            :     friend class PushButton;
     358                 :            :     friend class RadioButton;
     359                 :            :     friend class SystemChildWindow;
     360                 :            :     friend class ImplBorderWindow;
     361                 :            : 
     362                 :            :     // TODO: improve missing functionality
     363                 :            :     // only required because of SetFloatingMode()
     364                 :            :     friend class ImplDockingWindowWrapper;
     365                 :            :     friend class ImplPopupFloatWin;
     366                 :            :     friend class MenuFloatingWindow;
     367                 :            : 
     368                 :            :     friend class svt::PopupWindowControllerImpl;
     369                 :            : 
     370                 :            : private:
     371                 :            :     // NOTE: to remove many dependencies of other modules
     372                 :            :     //       to this central file, all members are now hidden
     373                 :            :     //       in the WindowImpl class and all inline functions
     374                 :            :     //       were removed
     375                 :            :     //
     376                 :            :     //       Please do *not* add new members or inline functions to class Window,
     377                 :            :     //       but use class WindowImpl instead
     378                 :            :     //
     379                 :            :     WindowImpl* mpWindowImpl;
     380                 :            : 
     381                 :            :     SAL_DLLPRIVATE void ImplInitWindowData( WindowType nType );
     382                 :            : 
     383                 :            : #ifdef DBG_UTIL
     384                 :            :     friend const char* ImplDbgCheckWindow( const void* pObj );
     385                 :            : #endif
     386                 :            :     friend Window* ImplFindWindow( const SalFrame* pFrame, Point& rSalFramePos );
     387                 :            : public:
     388                 :            :     SAL_DLLPRIVATE void                ImplInit( Window* pParent, WinBits nStyle, SystemParentData* pSystemParentData );
     389                 :            :     SAL_DLLPRIVATE WinBits             ImplInitRes( const ResId& rResId );
     390                 :            :     SAL_DLLPRIVATE void                ImplLoadRes( const ResId& rResId );
     391                 :            :     SAL_DLLPRIVATE void                ImplWindowRes( const ResId& rResId );
     392                 :            :     SAL_DLLPRIVATE void                ImplSetFrameParent( const Window* pParent );
     393                 :            :     SAL_DLLPRIVATE void                ImplInsertWindow( Window* pParent );
     394                 :            :     SAL_DLLPRIVATE void                ImplRemoveWindow( sal_Bool bRemoveFrameData );
     395                 :            :     SAL_DLLPRIVATE Window*             ImplGetWindow();
     396                 :            :     SAL_DLLPRIVATE ImplFrameData*      ImplGetFrameData();
     397                 :            :                    SalFrame*           ImplGetFrame() const;
     398                 :            :     SAL_DLLPRIVATE ImplWinData*        ImplGetWinData() const;
     399                 :            :     SAL_DLLPRIVATE SalGraphics*        ImplGetFrameGraphics() const;
     400                 :            :     SAL_DLLPRIVATE void                ImplCallFocusChangeActivate( Window* pNewOverlapWindow, Window* pOldOverlapWindow );
     401                 :            :     SAL_DLLPRIVATE Window*             ImplFindWindow( const Point& rFramePos );
     402                 :            :     SAL_DLLPRIVATE sal_uInt16              ImplHitTest( const Point& rFramePos );
     403                 :            :     SAL_DLLPRIVATE Window*             ImplGetParent() const;
     404                 :            :     SAL_DLLPRIVATE Window*             ImplGetClientWindow() const;
     405                 :            :     SAL_DLLPRIVATE Window*             ImplGetBorderWindow() const;
     406                 :            :     SAL_DLLPRIVATE Window*             ImplGetFirstOverlapWindow();
     407                 :            :     SAL_DLLPRIVATE const Window*       ImplGetFirstOverlapWindow() const;
     408                 :            :     SAL_DLLPRIVATE Window*             ImplGetFrameWindow() const;
     409                 :            :     SAL_DLLPRIVATE sal_Bool                ImplIsRealParentPath( const Window* pWindow ) const;
     410                 :            :     SAL_DLLPRIVATE sal_Bool                ImplIsChild( const Window* pWindow, sal_Bool bSystemWindow = sal_False ) const;
     411                 :            :     SAL_DLLPRIVATE sal_Bool                ImplIsWindowOrChild( const Window* pWindow, sal_Bool bSystemWindow = sal_False ) const;
     412                 :            :     SAL_DLLPRIVATE sal_Bool                ImplIsDockingWindow() const;
     413                 :            :     SAL_DLLPRIVATE sal_Bool                ImplIsFloatingWindow() const;
     414                 :            :     SAL_DLLPRIVATE sal_Bool                ImplIsSplitter() const;
     415                 :            :     SAL_DLLPRIVATE sal_Bool                ImplIsPushButton() const;
     416                 :            :     SAL_DLLPRIVATE sal_Bool                ImplIsOverlapWindow() const;
     417                 :            :     SAL_DLLPRIVATE void                ImplSetMouseTransparent( sal_Bool bTransparent );
     418                 :            :     SAL_DLLPRIVATE int                 ImplTestMousePointerSet();
     419                 :            :     SAL_DLLPRIVATE PointerStyle        ImplGetMousePointer() const;
     420                 :            :     SAL_DLLPRIVATE void                ImplResetReallyVisible();
     421                 :            :     SAL_DLLPRIVATE void                ImplSetReallyVisible();
     422                 :            :     SAL_DLLPRIVATE void                ImplCallInitShow();
     423                 :            :     SAL_DLLPRIVATE void                ImplAddDel( ImplDelData* pDel );
     424                 :            :     SAL_DLLPRIVATE void                ImplRemoveDel( ImplDelData* pDel );
     425                 :            :     SAL_DLLPRIVATE void                ImplInitResolutionSettings();
     426                 :            :     SAL_DLLPRIVATE void                ImplPointToLogic( Font& rFont ) const;
     427                 :            :     SAL_DLLPRIVATE void                ImplLogicToPoint( Font& rFont ) const;
     428                 :            :     SAL_DLLPRIVATE Point               ImplOutputToFrame( const Point& rPos );
     429                 :            :     SAL_DLLPRIVATE Point               ImplFrameToOutput( const Point& rPos );
     430                 :            :     SAL_DLLPRIVATE sal_Bool                ImplSysObjClip( const Region* pOldRegion );
     431                 :            :     SAL_DLLPRIVATE void                ImplUpdateSysObjChildrenClip();
     432                 :            :     SAL_DLLPRIVATE void                ImplUpdateSysObjOverlapsClip();
     433                 :            :     SAL_DLLPRIVATE void                ImplUpdateSysObjClip();
     434                 :            :     SAL_DLLPRIVATE sal_Bool                ImplSetClipFlagChildren( sal_Bool bSysObjOnlySmaller = sal_False );
     435                 :            :     SAL_DLLPRIVATE sal_Bool                ImplSetClipFlagOverlapWindows( sal_Bool bSysObjOnlySmaller = sal_False );
     436                 :            :     SAL_DLLPRIVATE sal_Bool                ImplSetClipFlag( sal_Bool bSysObjOnlySmaller = sal_False );
     437                 :            :     SAL_DLLPRIVATE void                ImplIntersectWindowClipRegion( Region& rRegion );
     438                 :            :     SAL_DLLPRIVATE void                ImplIntersectWindowRegion( Region& rRegion );
     439                 :            :     SAL_DLLPRIVATE void                ImplExcludeWindowRegion( Region& rRegion );
     440                 :            :     SAL_DLLPRIVATE void                ImplExcludeOverlapWindows( Region& rRegion );
     441                 :            :     SAL_DLLPRIVATE void                ImplExcludeOverlapWindows2( Region& rRegion );
     442                 :            :     SAL_DLLPRIVATE void                ImplClipBoundaries( Region& rRegion, sal_Bool bThis, sal_Bool bOverlaps );
     443                 :            :     SAL_DLLPRIVATE sal_Bool                ImplClipChildren( Region& rRegion );
     444                 :            :     SAL_DLLPRIVATE void                ImplClipAllChildren( Region& rRegion );
     445                 :            :     SAL_DLLPRIVATE void                ImplClipSiblings( Region& rRegion );
     446                 :            :     SAL_DLLPRIVATE void                ImplInitWinClipRegion();
     447                 :            :     SAL_DLLPRIVATE void                ImplInitWinChildClipRegion();
     448                 :            :     SAL_DLLPRIVATE Region*             ImplGetWinChildClipRegion();
     449                 :            :     SAL_DLLPRIVATE void                ImplIntersectAndUnionOverlapWindows( const Region& rInterRegion, Region& rRegion );
     450                 :            :     SAL_DLLPRIVATE void                ImplIntersectAndUnionOverlapWindows2( const Region& rInterRegion, Region& rRegion );
     451                 :            :     SAL_DLLPRIVATE void                ImplCalcOverlapRegionOverlaps( const Region& rInterRegion, Region& rRegion );
     452                 :            :     SAL_DLLPRIVATE void                ImplCalcOverlapRegion( const Rectangle& rSourceRect, Region& rRegion,
     453                 :            :                                                sal_Bool bChildren, sal_Bool bParent, sal_Bool bSiblings );
     454                 :            :     SAL_DLLPRIVATE void                ImplCallPaint( const Region* pRegion, sal_uInt16 nPaintFlags );
     455                 :            :     SAL_DLLPRIVATE void                ImplCallOverlapPaint();
     456                 :            :     SAL_DLLPRIVATE void                ImplPostPaint();
     457                 :            :     SAL_DLLPRIVATE void                ImplInvalidateFrameRegion( const Region* pRegion, sal_uInt16 nFlags );
     458                 :            :     SAL_DLLPRIVATE void                ImplInvalidateOverlapFrameRegion( const Region& rRegion );
     459                 :            :     SAL_DLLPRIVATE void                ImplInvalidateParentFrameRegion( Region& rRegion );
     460                 :            :     SAL_DLLPRIVATE void                ImplInvalidate( const Region* rRegion, sal_uInt16 nFlags );
     461                 :            :     SAL_DLLPRIVATE void                ImplValidateFrameRegion( const Region* rRegion, sal_uInt16 nFlags );
     462                 :            :     SAL_DLLPRIVATE void                ImplValidate( const Region* rRegion, sal_uInt16 nFlags );
     463                 :            :     SAL_DLLPRIVATE void                ImplMoveInvalidateRegion( const Rectangle& rRect, long nHorzScroll, long nVertScroll, sal_Bool bChildren );
     464                 :            :     SAL_DLLPRIVATE void                ImplMoveAllInvalidateRegions( const Rectangle& rRect, long nHorzScroll, long nVertScroll, sal_Bool bChildren );
     465                 :            :     SAL_DLLPRIVATE void                ImplScroll( const Rectangle& rRect, long nHorzScroll, long nVertScroll, sal_uInt16 nFlags );
     466                 :            :     SAL_DLLPRIVATE void                ImplUpdateAll( sal_Bool bOverlapWindows = sal_True );
     467                 :            :     SAL_DLLPRIVATE void                ImplUpdateWindowPtr( Window* pWindow );
     468                 :            :     SAL_DLLPRIVATE void                ImplUpdateWindowPtr();
     469                 :            :     SAL_DLLPRIVATE void                ImplUpdateOverlapWindowPtr( sal_Bool bNewFrame );
     470                 :            :     SAL_DLLPRIVATE sal_Bool                ImplUpdatePos();
     471                 :            :     SAL_DLLPRIVATE void                ImplUpdateSysObjPos();
     472                 :     227761 :     SAL_DLLPRIVATE WindowImpl*         ImplGetWindowImpl() const { return mpWindowImpl; }
     473                 :            :     SAL_DLLPRIVATE void                ImplFreeExtWindowImpl();
     474                 :            :     // creates ExtWindowImpl on demand, but may return NULL (e.g. if mbInDtor)
     475                 :            :     SAL_DLLPRIVATE vcl::ExtWindowImpl* ImplGetExtWindowImpl() const;
     476                 :            :     SAL_DLLPRIVATE void                ImplDeleteOwnedChildren();
     477                 :            :     /** check whether a font is suitable for UI
     478                 :            : 
     479                 :            :     The font to be tested will be checked whether it could display a
     480                 :            :     localized test string. If this is not the case, then the font
     481                 :            :     is deemed unsuitable as UI font.
     482                 :            : 
     483                 :            :     @param rFont
     484                 :            :     the font to be tested
     485                 :            : 
     486                 :            :     @returns
     487                 :            :     <TRUE/> if the font can be used as UI font
     488                 :            :     <FALSE/> if the font is unsuitable as UI font
     489                 :            :      */
     490                 :            :     SAL_DLLPRIVATE bool        ImplCheckUIFont( const Font& rFont );
     491                 :            :     SAL_DLLPRIVATE void        ImplUpdateGlobalSettings( AllSettings& rSettings, sal_Bool bCallHdl = sal_True );
     492                 :            :     SAL_DLLPRIVATE void        ImplAlignChildren();
     493                 :            :     SAL_DLLPRIVATE void        ImplPosSizeWindow( long nX, long nY, long nWidth, long nHeight, sal_uInt16 nFlags );
     494                 :            :     SAL_DLLPRIVATE void        ImplToBottomChild();
     495                 :            :     SAL_DLLPRIVATE void        ImplCalcToTop( ImplCalcToTopData* pPrevData );
     496                 :            :     SAL_DLLPRIVATE void        ImplToTop( sal_uInt16 nFlags );
     497                 :            :     SAL_DLLPRIVATE void        ImplStartToTop( sal_uInt16 nFlags );
     498                 :            :     SAL_DLLPRIVATE void        ImplFocusToTop( sal_uInt16 nFlags, sal_Bool bReallyVisible );
     499                 :            :     SAL_DLLPRIVATE void        ImplShowAllOverlaps();
     500                 :            :     SAL_DLLPRIVATE void        ImplHideAllOverlaps();
     501                 :            :     SAL_DLLPRIVATE void        ImplNotifyKeyMouseCommandEventListeners( NotifyEvent& rNEvt );
     502                 :            :     SAL_DLLPRIVATE void        ImplCallMouseMove( sal_uInt16 nMouseCode, sal_Bool bModChanged = sal_False );
     503                 :            :     SAL_DLLPRIVATE void        ImplGenerateMouseMove();
     504                 :            :     SAL_DLLPRIVATE void        ImplGrabFocus( sal_uInt16 nFlags );
     505                 :            :     SAL_DLLPRIVATE void        ImplInvertFocus( const Rectangle& rRect );
     506                 :            :     SAL_DLLPRIVATE void        ImplControlFocus( sal_uInt16 nFlags = 0 );
     507                 :            :     SAL_DLLPRIVATE Window*     ImplGetDlgWindow( sal_uInt16 n, sal_uInt16 nType, sal_uInt16 nStart = 0, sal_uInt16 nEnd = 0xFFFF, sal_uInt16* pIndex = NULL );
     508                 :            :     SAL_DLLPRIVATE sal_Bool        ImplDlgCtrl( const KeyEvent& rKEvt, sal_Bool bKeyInput );
     509                 :            :     SAL_DLLPRIVATE sal_Bool        ImplHasDlgCtrl();
     510                 :            :     SAL_DLLPRIVATE void        ImplDlgCtrlNextWindow();
     511                 :            :     SAL_DLLPRIVATE void        ImplDlgCtrlFocusChanged( Window* pWindow, sal_Bool bGetFocus );
     512                 :            :     SAL_DLLPRIVATE Window*     ImplFindDlgCtrlWindow( Window* pWindow );
     513                 :            :     SAL_DLLPRIVATE long        ImplLogicUnitToPixelX( long nX, MapUnit eUnit );
     514                 :            :     SAL_DLLPRIVATE long        ImplLogicUnitToPixelY( long nY, MapUnit eUnit );
     515                 :            :     SAL_DLLPRIVATE sal_Bool        ImplIsWindowInFront( const Window* pTestWindow ) const;
     516                 :            :     SAL_DLLPRIVATE void        ImplSaveOverlapBackground();
     517                 :            :     SAL_DLLPRIVATE sal_Bool        ImplRestoreOverlapBackground( Region& rInvRegion );
     518                 :            :     SAL_DLLPRIVATE void        ImplDeleteOverlapBackground();
     519                 :            :     SAL_DLLPRIVATE void        ImplInvalidateAllOverlapBackgrounds();
     520                 :            :     SAL_DLLPRIVATE static void ImplNewInputContext();
     521                 :            :     SAL_DLLPRIVATE void        ImplCallActivateListeners(Window*);
     522                 :            :     SAL_DLLPRIVATE void        ImplCallDeactivateListeners(Window*);
     523                 :            :     DECL_DLLPRIVATE_LINK(      ImplHandlePaintHdl, void* );
     524                 :            :     DECL_DLLPRIVATE_LINK(      ImplGenerateMouseMoveHdl, void* );
     525                 :            :     DECL_DLLPRIVATE_LINK(      ImplTrackTimerHdl, Timer* );
     526                 :            :     DECL_DLLPRIVATE_LINK(      ImplAsyncFocusHdl, void* );
     527                 :            :     DECL_DLLPRIVATE_LINK(      ImplHideOwnerDrawWindowsHdl, void* );
     528                 :            :     DECL_DLLPRIVATE_LINK(      ImplHandleResizeTimerHdl, void* );
     529                 :            : 
     530                 :            :     SAL_DLLPRIVATE static void ImplCalcSymbolRect( Rectangle& rRect );
     531                 :            :     SAL_DLLPRIVATE void        ImplHandleScroll( ScrollBar* pHScrl, long nX, ScrollBar* pVScrl, long nY );
     532                 :            :     SAL_DLLPRIVATE sal_Bool        ImplIsAccessibleCandidate() const;
     533                 :            :     SAL_DLLPRIVATE sal_Bool        ImplIsAccessibleNativeFrame() const;
     534                 :            :     SAL_DLLPRIVATE sal_uInt16      ImplGetAccessibleCandidateChildWindowCount( sal_uInt16 nFirstWindowType ) const;
     535                 :            :     SAL_DLLPRIVATE Window*     ImplGetAccessibleCandidateChild( sal_uInt16 nChild, sal_uInt16& rChildCount, sal_uInt16 nFirstWindowType, sal_Bool bTopLevel = sal_True ) const;
     536                 :            :     SAL_DLLPRIVATE sal_Bool        ImplRegisterAccessibleNativeFrame();
     537                 :            :     SAL_DLLPRIVATE void        ImplRevokeAccessibleNativeFrame();
     538                 :            :     SAL_DLLPRIVATE void        ImplCallResize();
     539                 :            :     SAL_DLLPRIVATE void        ImplExtResize();
     540                 :            :     SAL_DLLPRIVATE void        ImplCallMove();
     541                 :            :     SAL_DLLPRIVATE Rectangle   ImplOutputToUnmirroredAbsoluteScreenPixel( const Rectangle& rRect ) const;
     542                 :            :     SAL_DLLPRIVATE void        ImplMirrorFramePos( Point &pt ) const;
     543                 :            :     SAL_DLLPRIVATE long        ImplGetUnmirroredOutOffX();
     544                 :            :     SAL_DLLPRIVATE void        ImplIncModalCount();
     545                 :            :     SAL_DLLPRIVATE void        ImplDecModalCount();
     546                 :            : 
     547                 :            :     // retrieves the list of owner draw decorated windows for this window hiearchy
     548                 :            :     SAL_DLLPRIVATE ::std::vector<Window *>& ImplGetOwnerDrawList();
     549                 :            :     SAL_DLLPRIVATE Window*     ImplGetTopmostFrameWindow();
     550                 :            : 
     551                 :            :     SAL_DLLPRIVATE Rectangle   ImplGetWindowExtentsRelative( Window *pRelativeWindow, sal_Bool bClientOnly ) const;
     552                 :            :     SAL_DLLPRIVATE void        ImplNotifyIconifiedState( sal_Bool bIconified );
     553                 :            :     SAL_DLLPRIVATE bool        ImplStopDnd();
     554                 :            :     SAL_DLLPRIVATE void        ImplStartDnd();
     555                 :            : 
     556                 :            :     SAL_DLLPRIVATE static void ImplInitAppFontData( Window* pWindow );
     557                 :            :     SAL_DLLPRIVATE void        ImplPaintToDevice( OutputDevice* pTargetOutDev, const Point& rPos );
     558                 :            : 
     559                 :            :     SAL_DLLPRIVATE void        ImplIsInTaskPaneList( sal_Bool mbIsInTaskList );
     560                 :            :     SAL_DLLPRIVATE ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvas >
     561                 :            :                                ImplGetCanvas( const Size& rFullscreenSize, bool bFullscreen, bool bSpriteCanvas ) const;
     562                 :            : 
     563                 :            : private:
     564                 :            :     // Default construction is forbidden and not implemented.
     565                 :            :     SAL_DLLPRIVATE             Window();
     566                 :            : 
     567                 :            :     // Copy assignment is forbidden and not implemented.
     568                 :            :     SAL_DLLPRIVATE             Window (const Window &);
     569                 :            :     SAL_DLLPRIVATE             Window & operator= (const Window &);
     570                 :            : 
     571                 :            : protected:
     572                 :            :     // Single argument ctors shall be explicit.
     573                 :            :     explicit            Window( WindowType nType );
     574                 :            : 
     575                 :            :             void        SetCompoundControl( sal_Bool bCompound );
     576                 :            : 
     577                 :            :             void        ImplCallEventListeners( sal_uLong nEvent, void* pData = NULL );
     578                 :            :             void        CallEventListeners( sal_uLong nEvent, void* pData = NULL );
     579                 :            :             void        FireVclEvent( VclSimpleEvent* pEvent );
     580                 :            : 
     581                 :            :     // FIXME: this is a hack to workaround missing layout functionality
     582                 :            :     SAL_DLLPRIVATE void ImplAdjustNWFSizes();
     583                 :            : public:
     584                 :            :     // Single argument ctors shall be explicit.
     585                 :            :     explicit            Window( Window* pParent, WinBits nStyle = 0 );
     586                 :            : 
     587                 :            :                         Window( Window* pParent, const ResId& rResId );
     588                 :            :     virtual             ~Window();
     589                 :            : 
     590                 :            :     virtual void        MouseMove( const MouseEvent& rMEvt );
     591                 :            :     virtual void        MouseButtonDown( const MouseEvent& rMEvt );
     592                 :            :     virtual void        MouseButtonUp( const MouseEvent& rMEvt );
     593                 :            :     virtual void        KeyInput( const KeyEvent& rKEvt );
     594                 :            :     virtual void        KeyUp( const KeyEvent& rKEvt );
     595                 :            :     virtual void        PrePaint();
     596                 :            :     virtual void        Paint( const Rectangle& rRect );
     597                 :            : 
     598                 :            :     virtual void        PostPaint();
     599                 :            :     virtual void        Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
     600                 :            :     virtual void        Move();
     601                 :            :     virtual void        Resize();
     602                 :            :     virtual void        Activate();
     603                 :            :     virtual void        Deactivate();
     604                 :            :     virtual void        GetFocus();
     605                 :            :     virtual void        LoseFocus();
     606                 :            :     virtual void        RequestHelp( const HelpEvent& rHEvt );
     607                 :            :     virtual void        Command( const CommandEvent& rCEvt );
     608                 :            :     virtual void        Tracking( const TrackingEvent& rTEvt );
     609                 :            :     virtual void        UserEvent( sal_uLong nEvent, void* pEventData );
     610                 :            :     virtual void        StateChanged( StateChangedType nStateChange );
     611                 :            :     virtual void        DataChanged( const DataChangedEvent& rDCEvt );
     612                 :            :     virtual long        PreNotify( NotifyEvent& rNEvt );
     613                 :            :     virtual long        Notify( NotifyEvent& rNEvt );
     614                 :            :     virtual Window*     GetPreferredKeyInputWindow();
     615                 :            : 
     616                 :            :     /*virtual*/ void    AddEventListener( const Link& rEventListener );
     617                 :            :     /*virtual*/ void    RemoveEventListener( const Link& rEventListener );
     618                 :            :     /*virtual*/ void    AddChildEventListener( const Link& rEventListener );
     619                 :            :     /*virtual*/ void    RemoveChildEventListener( const Link& rEventListener );
     620                 :            : 
     621                 :            :     sal_uLong               PostUserEvent( const Link& rLink, void* pCaller = NULL );
     622                 :            :     sal_Bool                PostUserEvent( sal_uLong& rEventId, sal_uLong nEvent, void* pEventData = NULL );
     623                 :            :     sal_Bool                PostUserEvent( sal_uLong& rEventId, const Link& rLink, void* pCaller = NULL );
     624                 :            :     void                RemoveUserEvent( sal_uLong nUserEvent );
     625                 :            : 
     626                 :            :     void                IncrementLockCount();
     627                 :            :     void                DecrementLockCount();
     628                 :            :     sal_Bool                IsLocked( sal_Bool bChildren = sal_False ) const;
     629                 :            : 
     630                 :            :                         // returns the input language used for the last key stroke
     631                 :            :                         // may be LANGUAGE_DONTKNOW if not supported by the OS
     632                 :            :     LanguageType        GetInputLanguage() const;
     633                 :            : 
     634                 :            :     void                SetStyle( WinBits nStyle );
     635                 :            :     WinBits             GetStyle() const;
     636                 :            :     WinBits             GetPrevStyle() const;
     637                 :            :     void                SetExtendedStyle( WinBits nExtendedStyle );
     638                 :            :     WinBits             GetExtendedStyle() const;
     639                 :            :     void                SetType( WindowType nType );
     640                 :            :     WindowType          GetType() const;
     641                 :            :     sal_Bool                IsSystemWindow() const;
     642                 :            :     sal_Bool                IsDialog() const;
     643                 :            :     sal_Bool                IsMenuFloatingWindow() const;
     644                 :            :     sal_Bool                IsToolbarFloatingWindow() const;
     645                 :            :     sal_Bool                IsTopWindow() const;
     646                 :            :     SystemWindow*       GetSystemWindow() const;
     647                 :            : 
     648                 :            :     void                EnableAllResize( sal_Bool bEnable = sal_True );
     649                 :            : 
     650                 :            :     void                SetBorderStyle( sal_uInt16 nBorderStyle );
     651                 :            :     sal_uInt16              GetBorderStyle() const;
     652                 :            :     void                GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder,
     653                 :            :                                    sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const;
     654                 :            :     Size                CalcWindowSize( const Size& rOutSz ) const;
     655                 :            :     Size                CalcOutputSize( const Size& rWinSz ) const;
     656                 :            :     long                CalcTitleWidth() const;
     657                 :            : 
     658                 :            :     void                EnableClipSiblings( sal_Bool bClipSiblings = sal_True );
     659                 :            : 
     660                 :            :     void                EnableChildTransparentMode( sal_Bool bEnable = sal_True );
     661                 :            :     sal_Bool                IsChildTransparentModeEnabled() const;
     662                 :            : 
     663                 :            :     void                SetMouseTransparent( sal_Bool bTransparent );
     664                 :            :     sal_Bool                IsMouseTransparent() const;
     665                 :            :     void                SetPaintTransparent( sal_Bool bTransparent );
     666                 :            :     sal_Bool                IsPaintTransparent() const;
     667                 :            :     void                SetDialogControlStart( sal_Bool bStart );
     668                 :            :     sal_Bool                IsDialogControlStart() const;
     669                 :            :     void                SetDialogControlFlags( sal_uInt16 nFlags );
     670                 :            :     sal_uInt16              GetDialogControlFlags() const;
     671                 :            : 
     672                 :        477 :     struct PointerState
     673                 :            :     {
     674                 :            :         sal_uLong   mnState;    // the button state
     675                 :            :         Point   maPos;      // mouse position in output coordinates
     676                 :            :     };
     677                 :            :     PointerState        GetPointerState();
     678                 :            :     sal_Bool                IsMouseOver();
     679                 :            : 
     680                 :            :     sal_uLong               GetCurrentModButtons();
     681                 :            : 
     682                 :            :     void                SetInputContext( const InputContext& rInputContext );
     683                 :            :     const InputContext& GetInputContext() const;
     684                 :            :     void                EndExtTextInput( sal_uInt16 nFlags );
     685                 :            :     void                SetCursorRect( const Rectangle* pRect = NULL, long nExtTextInputWidth = 0 );
     686                 :            :     const Rectangle*    GetCursorRect() const;
     687                 :            :     long                GetCursorExtTextInputWidth() const;
     688                 :            : 
     689                 :            :     using               OutputDevice::SetSettings;
     690                 :            :     virtual void        SetSettings( const AllSettings& rSettings );
     691                 :            :     virtual void        SetSettings( const AllSettings& rSettings, sal_Bool bChild );
     692                 :            :     void                UpdateSettings( const AllSettings& rSettings, sal_Bool bChild = sal_False );
     693                 :            :     void                NotifyAllChildren( DataChangedEvent& rDCEvt );
     694                 :            : 
     695                 :            :     void                SetPointFont( const Font& rFont );
     696                 :            :     Font                GetPointFont() const;
     697                 :            :     void                SetZoomedPointFont( const Font& rFont );
     698                 :            :     long                GetDrawPixel( OutputDevice* pDev, long nPixels ) const;
     699                 :            :     Font                GetDrawPixelFont( OutputDevice* pDev ) const;
     700                 :            : 
     701                 :            :     void                SetControlFont();
     702                 :            :     void                SetControlFont( const Font& rFont );
     703                 :            :     Font                GetControlFont() const;
     704                 :            :     sal_Bool                IsControlFont() const;
     705                 :            :     void                SetControlForeground();
     706                 :            :     void                SetControlForeground( const Color& rColor );
     707                 :            :     Color               GetControlForeground() const;
     708                 :            :     sal_Bool                IsControlForeground() const;
     709                 :            :     void                SetControlBackground();
     710                 :            :     void                SetControlBackground( const Color& rColor );
     711                 :            :     Color               GetControlBackground() const;
     712                 :            :     sal_Bool                IsControlBackground() const;
     713                 :            : 
     714                 :            :     void                SetParentClipMode( sal_uInt16 nMode = 0 );
     715                 :            :     sal_uInt16              GetParentClipMode() const;
     716                 :            : 
     717                 :            :     void                SetWindowRegionPixel();
     718                 :            :     void                SetWindowRegionPixel( const Region& rRegion );
     719                 :            :     const Region&       GetWindowRegionPixel() const;
     720                 :            :     sal_Bool                IsWindowRegionPixel() const;
     721                 :            :     Region              GetWindowClipRegionPixel( sal_uInt16 nFlags = 0 ) const;
     722                 :            :     Region              GetPaintRegion() const;
     723                 :            :     sal_Bool                IsInPaint() const;
     724                 :            :     // while IsInPaint returns true ExpandPaintClipRegion adds the
     725                 :            :     // submitted region to the paint clip region so you can
     726                 :            :     // paint additional parts of your window if necessary
     727                 :            :     void                ExpandPaintClipRegion( const Region& rRegion );
     728                 :            : 
     729                 :            :     void                SetParent( Window* pNewParent );
     730                 :            :     Window*             GetParent() const;
     731                 :            :     // return the dialog we are contained in or NULL if un-contained
     732                 :            :     Window*             GetParentDialog() const;
     733                 :            : 
     734                 :            :     void                Show( sal_Bool bVisible = sal_True, sal_uInt16 nFlags = 0 );
     735                 :     194014 :     void                Hide( sal_uInt16 nFlags = 0 ) { Show( sal_False, nFlags ); }
     736                 :            :     sal_Bool                IsVisible() const;
     737                 :            :     sal_Bool                IsReallyVisible() const;
     738                 :            :     sal_Bool                IsReallyShown() const;
     739                 :            :     sal_Bool                IsInInitShow() const;
     740                 :            : 
     741                 :            :     void                Enable( bool bEnable = true, bool bChild = true );
     742                 :        571 :     void                Disable( bool bChild = true ) { Enable( false, bChild ); }
     743                 :            :     sal_Bool                IsEnabled() const;
     744                 :            : 
     745                 :            :     void                EnableInput( sal_Bool bEnable = sal_True, sal_Bool bChild = sal_True );
     746                 :            :     void                EnableInput( sal_Bool bEnable, sal_Bool bChild, sal_Bool bSysWin,
     747                 :            :                                      const Window* pExcludeWindow = NULL );
     748                 :            :     sal_Bool                IsInputEnabled() const;
     749                 :            : 
     750                 :            :     /** Override <code>EnableInput</code>. This can be necessary due to other people
     751                 :            :         using EnableInput for whole window hierarchies.
     752                 :            : 
     753                 :            : 
     754                 :            :         <code>AlwaysEnableInput</code> and <code>AlwaysDisableInput</code> are
     755                 :            :         mutually exclusive; the last setter wins.
     756                 :            :         @param bAlways
     757                 :            :         sets always enabled flag
     758                 :            : 
     759                 :            :         @param bChild
     760                 :            :         if true children are recursively set to AlwaysEnableInput
     761                 :            :     */
     762                 :            :     void                AlwaysEnableInput( sal_Bool bAlways, sal_Bool bChild = sal_True );
     763                 :            :     /** returns the current AlwaysEnableInput state
     764                 :            :     @return
     765                 :            :     true if window is in AlwaysEnableInput state
     766                 :            :     */
     767                 :            :     sal_Bool                IsAlwaysEnableInput() const;
     768                 :            :     /** Override <code>EnableInput</code>, counterpart to AlwaysEnableInput.
     769                 :            :         Windows with AlwaysDisableInput will not get key events even if enabled
     770                 :            :         and input enabled.This can be necessary due to other people using EnableInput
     771                 :            :         for whole window hierarchies.
     772                 :            : 
     773                 :            :         <code>AlwaysEnableInput</code> and <code>AlwaysDisableInput</code> are
     774                 :            :         mutually exclusive; the last setter wins.
     775                 :            : 
     776                 :            :         @param bAlways
     777                 :            :         sets always disable flag
     778                 :            : 
     779                 :            :         @param bChild
     780                 :            :         if true children are recursively set to AlwaysDisableInput
     781                 :            :     */
     782                 :            :     void                AlwaysDisableInput( sal_Bool bAlways, sal_Bool bChild = sal_True );
     783                 :            : 
     784                 :            :     /** usually event handlers (see AddEventListener and AddChildEventListener)
     785                 :            :     are not called on disabled, modal or input disabled windows. There are however rare cases
     786                 :            :     in which one wants a Window or rather one of its Control subclasses to
     787                 :            :     not evaluate events but still react to those events externally. In these
     788                 :            :     rare cases call SetCallHandlersOnInputDisabled( true ) to have your handler
     789                 :            :     called anyway.
     790                 :            : 
     791                 :            :     Currently only mouse events get this special treatment.
     792                 :            : 
     793                 :            :     Use this sparingly, chances are if you want to use it you're wroking around
     794                 :            :     the real problem.
     795                 :            : 
     796                 :            :     @param bCall
     797                 :            :     Enable/Disable calling event handlers for this disabled, modal or input disabled window.
     798                 :            :     This call is implicity done recursively for possible child windows.
     799                 :            :     */
     800                 :            :     void                SetCallHandlersOnInputDisabled( bool bCall );
     801                 :            :     /** get state of SetCallHandlersOnInputDisabled
     802                 :            : 
     803                 :            :     @returns whether handlers are called regardless of input enabled state
     804                 :            :     */
     805                 :            :     bool                IsCallHandlersOnInputDisabled() const;
     806                 :            :     /** A window is in modal mode if one of its children or subchildren
     807                 :            :         is a running modal window (a modal dialog)
     808                 :            : 
     809                 :            :         @returns sal_True if a child or subchild is a running modal window
     810                 :            :     */
     811                 :            :     sal_Bool                IsInModalMode() const;
     812                 :            : 
     813                 :            :     void                SetActivateMode( sal_uInt16 nMode );
     814                 :            :     sal_uInt16              GetActivateMode() const;
     815                 :            : 
     816                 :            :     void                ToTop( sal_uInt16 nFlags = 0 );
     817                 :            :     void                SetZOrder( Window* pRefWindow, sal_uInt16 nFlags );
     818                 :            :     void                EnableAlwaysOnTop( sal_Bool bEnable = sal_True );
     819                 :            :     sal_Bool                IsAlwaysOnTopEnabled() const;
     820                 :            : 
     821                 :            :     virtual void        SetPosSizePixel( long nX, long nY,
     822                 :            :                                          long nWidth, long nHeight,
     823                 :            :                                          sal_uInt16 nFlags = WINDOW_POSSIZE_ALL );
     824                 :            :     virtual void        SetPosPixel( const Point& rNewPos );
     825                 :            :     virtual Point       GetPosPixel() const;
     826                 :            :     virtual void        SetSizePixel( const Size& rNewSize );
     827                 :            :     virtual Size        GetSizePixel() const;
     828                 :            :     virtual void        SetPosSizePixel( const Point& rNewPos,
     829                 :            :                                          const Size& rNewSize );
     830                 :            :     virtual void        SetOutputSizePixel( const Size& rNewSize );
     831                 :            :     sal_Bool                IsDefaultPos() const;
     832                 :            :     sal_Bool                IsDefaultSize() const;
     833                 :            : 
     834                 :            :     // those conversion routines might deliver different results during UI mirroring
     835                 :            :     Point               OutputToScreenPixel( const Point& rPos ) const;
     836                 :            :     Point               ScreenToOutputPixel( const Point& rPos ) const;
     837                 :            :     //  the normalized screen methods work independent from UI mirroring
     838                 :            :     Point               OutputToNormalizedScreenPixel( const Point& rPos ) const;
     839                 :            :     Point               NormalizedScreenToOutputPixel( const Point& rPos ) const;
     840                 :            :     Point               OutputToAbsoluteScreenPixel( const Point& rPos ) const;
     841                 :            :     Point               AbsoluteScreenToOutputPixel( const Point& rPos ) const;
     842                 :            :     Rectangle           GetDesktopRectPixel() const;
     843                 :            :     //  window extents including border and decoratrion
     844                 :            :     Rectangle           GetWindowExtentsRelative( Window *pRelativeWindow ) const;
     845                 :            :     // window extents of the client window, coordinates to be used in SetPosPixel
     846                 :            :     Rectangle           GetClientWindowExtentsRelative( Window *pRelativeWindow ) const;
     847                 :            : 
     848                 :            :     virtual sal_Bool        IsScrollable() const;
     849                 :            :     virtual void        Scroll( long nHorzScroll, long nVertScroll,
     850                 :            :                                 sal_uInt16 nFlags = 0 );
     851                 :            :     virtual void        Scroll( long nHorzScroll, long nVertScroll,
     852                 :            :                                 const Rectangle& rRect, sal_uInt16 nFlags = 0 );
     853                 :            :     virtual void        Invalidate( sal_uInt16 nFlags = 0 );
     854                 :            :     virtual void        Invalidate( const Rectangle& rRect, sal_uInt16 nFlags = 0 );
     855                 :            :     virtual void        Invalidate( const Region& rRegion, sal_uInt16 nFlags = 0 );
     856                 :            :     void                Validate( sal_uInt16 nFlags = 0 );
     857                 :            :     sal_Bool                HasPaintEvent() const;
     858                 :            :     void                Update();
     859                 :            :     void                Flush();
     860                 :            :     void                Sync();
     861                 :            : 
     862                 :            :     // toggles new docking support, enabled via toolkit
     863                 :            :     void                EnableDocking( sal_Bool bEnable = sal_True );
     864                 :            :     // retrieves the single dockingmanager instance
     865                 :            :     static DockingManager* GetDockingManager();
     866                 :            : 
     867                 :            :     void                EnablePaint( sal_Bool bEnable );
     868                 :            :     sal_Bool                IsPaintEnabled() const;
     869                 :            :     void                SetUpdateMode( sal_Bool bUpdate );
     870                 :            :     sal_Bool                IsUpdateMode() const;
     871                 :            :     void                SetParentUpdateMode( sal_Bool bUpdate );
     872                 :            : 
     873                 :            :     void                GrabFocus();
     874                 :            :     sal_Bool                HasFocus() const;
     875                 :            :     sal_Bool                HasChildPathFocus( sal_Bool bSystemWindow = sal_False ) const;
     876                 :            :     sal_Bool                IsActive() const;
     877                 :            :     sal_Bool                HasActiveChildFrame();
     878                 :            :     sal_uInt16              GetGetFocusFlags() const;
     879                 :            :     void                GrabFocusToDocument();
     880                 :            : 
     881                 :            :     /**
     882                 :            :      * Set this when you need to act as if the window has focus even if it
     883                 :            :      * doesn't.  This is necessary for implementing tab stops inside floating
     884                 :            :      * windows, but floating windows don't get focus from the system.
     885                 :            :      */
     886                 :            :     void                SetFakeFocus( bool bFocus );
     887                 :            : 
     888                 :            :     sal_Bool                IsCompoundControl() const;
     889                 :            : 
     890                 :            :     static sal_uIntPtr  SaveFocus();
     891                 :            :     static sal_Bool         EndSaveFocus( sal_uIntPtr nSaveId, sal_Bool bRestore = sal_True );
     892                 :            : 
     893                 :            :     void                CaptureMouse();
     894                 :            :     void                ReleaseMouse();
     895                 :            :     sal_Bool                IsMouseCaptured() const;
     896                 :            : 
     897                 :            :     void                SetPointer( const Pointer& rPointer );
     898                 :            :     const Pointer&      GetPointer() const;
     899                 :            :     void                EnableChildPointerOverwrite( sal_Bool bOverwrite = sal_True );
     900                 :            :     void                SetPointerPosPixel( const Point& rPos );
     901                 :            :     Point               GetPointerPosPixel();
     902                 :            :     Point               GetLastPointerPosPixel();
     903                 :            :     void                ShowPointer( sal_Bool bVisible );
     904                 :            :     void                EnterWait();
     905                 :            :     void                LeaveWait();
     906                 :            :     sal_Bool                IsWait() const;
     907                 :            : 
     908                 :            :     void                SetCursor( Cursor* pCursor );
     909                 :            :     Cursor*             GetCursor() const;
     910                 :            : 
     911                 :            :     void                SetZoom( const Fraction& rZoom );
     912                 :            :     const Fraction&     GetZoom() const;
     913                 :            :     sal_Bool                IsZoom() const;
     914                 :            :     long                CalcZoom( long n ) const;
     915                 :            : 
     916                 :            :     virtual void      SetText( const XubString& rStr );
     917                 :            :     virtual String      GetText() const;
     918                 :            :     // return the actual text displayed
     919                 :            :     // this may have e.g. accellerators removed or portions
     920                 :            :     // replaced by ellipsis
     921                 :            :     virtual String      GetDisplayText() const;
     922                 :            :     // gets the visible background color. for transparent windows
     923                 :            :     // this may be the parent's background color; for controls
     924                 :            :     // this may be a child's background color (e.g. ListBox)
     925                 :            :     virtual const Wallpaper& GetDisplayBackground() const;
     926                 :            : 
     927                 :            :     void                SetBackgroundBitmap( const BitmapEx& rBitmapEx );
     928                 :            : 
     929                 :            :     void                SetHelpText( const XubString& rHelpText );
     930                 :            :     const XubString&    GetHelpText() const;
     931                 :            : 
     932                 :            :     void                SetQuickHelpText( const XubString& rHelpText );
     933                 :            :     const XubString&    GetQuickHelpText() const;
     934                 :            : 
     935                 :            :     void                SetHelpId( const rtl::OString& );
     936                 :            :     const rtl::OString& GetHelpId() const;
     937                 :            : 
     938                 :            :     void                SetUniqueId( const rtl::OString& );
     939                 :            :     const rtl::OString& GetUniqueId() const;
     940                 :            : 
     941                 :            :     Window*             FindWindow( const Point& rPos ) const;
     942                 :            : 
     943                 :            :     sal_uInt16              GetChildCount() const;
     944                 :            :     Window*             GetChild( sal_uInt16 nChild ) const;
     945                 :            :     Window*             GetWindow( sal_uInt16 nType ) const;
     946                 :            :     sal_Bool                IsChild( const Window* pWindow, sal_Bool bSystemWindow = sal_False ) const;
     947                 :            :     sal_Bool                IsWindowOrChild( const Window* pWindow, sal_Bool bSystemWindow = sal_False  ) const;
     948                 :            : 
     949                 :            :     void                SetData( void* pNewData );
     950                 :            :     void*               GetData() const;
     951                 :            : 
     952                 :            :     void                ShowFocus( const Rectangle& rRect );
     953                 :            :     void                HideFocus();
     954                 :            : 
     955                 :            :     void                Invert( const Rectangle& rRect, sal_uInt16 nFlags = 0 );
     956                 :            :     void                Invert( const Polygon& rPoly, sal_uInt16 nFlags = 0 );
     957                 :            : 
     958                 :            :     // transparent background for selected or checked items in toolboxes etc.
     959                 :            :     void                DrawSelectionBackground( const Rectangle& rRect, sal_uInt16 highlight, sal_Bool bChecked, sal_Bool bDrawBorder, sal_Bool bDrawExtBorderOnly );
     960                 :            :     // the same, but fills a passed Color with a text color complementing the selection background
     961                 :            :     void                DrawSelectionBackground( const Rectangle& rRect, sal_uInt16 highlight, sal_Bool bChecked, sal_Bool bDrawBorder, sal_Bool bDrawExtBorderOnly, Color* pSelectionTextColor );
     962                 :            :     // support rounded edges in the selection rect
     963                 :            :     void                DrawSelectionBackground( const Rectangle& rRect, sal_uInt16 highlight, sal_Bool bChecked, sal_Bool bDrawBorder, sal_Bool bDrawExtBorderOnly, long nCornerRadius, Color* pSelectionTextColor, Color* pPaintColor );
     964                 :            : 
     965                 :            :     void                ShowTracking( const Rectangle& rRect,
     966                 :            :                                       sal_uInt16 nFlags = SHOWTRACK_SMALL );
     967                 :            :     void                HideTracking();
     968                 :            :     void                InvertTracking( const Rectangle& rRect,
     969                 :            :                                         sal_uInt16 nFlags = SHOWTRACK_SMALL );
     970                 :            :     void                InvertTracking( const Polygon& rPoly, sal_uInt16 nFlags = 0 );
     971                 :            : 
     972                 :            :     void                StartTracking( sal_uInt16 nFlags = 0 );
     973                 :            :     void                EndTracking( sal_uInt16 nFlags = 0 );
     974                 :            :     sal_Bool                IsTracking() const;
     975                 :            : 
     976                 :            :     void                StartAutoScroll( sal_uInt16 nFlags );
     977                 :            :     void                EndAutoScroll();
     978                 :            : 
     979                 :            :     sal_Bool                HandleScrollCommand( const CommandEvent& rCmd,
     980                 :            :                                              ScrollBar* pHScrl = NULL,
     981                 :            :                                              ScrollBar* pVScrl = NULL );
     982                 :            : 
     983                 :            :     void                SaveBackground( const Point& rPos, const Size& rSize,
     984                 :            :                                         const Point& rDestOff, VirtualDevice& rSaveDevice );
     985                 :            : 
     986                 :            :     const SystemEnvData*                      GetSystemData() const;
     987                 :            :     ::com::sun::star::uno::Any                GetSystemDataAny() const;
     988                 :            : 
     989                 :            :     // API to set/query the component interfaces
     990                 :            :     virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > GetComponentInterface( sal_Bool bCreate = sal_True );
     991                 :            :     virtual void                    SetComponentInterface( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xIFace );
     992                 :            : 
     993                 :            :     // Accessibility
     994                 :            :     ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetAccessible( sal_Bool bCreate = sal_True );
     995                 :            :     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
     996                 :            :     void SetAccessible( ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > );
     997                 :            : 
     998                 :            :     Window* GetAccessibleParentWindow() const;
     999                 :            :     sal_uInt16  GetAccessibleChildWindowCount();
    1000                 :            :     Window* GetAccessibleChildWindow( sal_uInt16 n );
    1001                 :            : 
    1002                 :            :     void    SetAccessibleRole( sal_uInt16 nRole );
    1003                 :            :     sal_uInt16  GetAccessibleRole() const;
    1004                 :            : 
    1005                 :            :     void    SetAccessibleName( const String& rName );
    1006                 :            :     String  GetAccessibleName() const;
    1007                 :            : 
    1008                 :            :     void    SetAccessibleDescription( const String& rDescr );
    1009                 :            :     String  GetAccessibleDescription() const;
    1010                 :            : 
    1011                 :            :     void    SetAccessibleRelationLabeledBy( Window* pLabeledBy );
    1012                 :            :     Window* GetAccessibleRelationLabeledBy() const;
    1013                 :            : 
    1014                 :            :     Window* GetAccessibleRelationLabelFor() const;
    1015                 :            : 
    1016                 :            :     void    SetAccessibleRelationMemberOf( Window* pMemberOf );
    1017                 :            : 
    1018                 :            :     // to avoid sending accessibility events in cases like closing dialogs
    1019                 :            :     // by default checks complete parent path
    1020                 :            :     sal_Bool    IsAccessibilityEventsSuppressed( sal_Bool bTraverseParentPath = sal_True );
    1021                 :            :     void    SetAccessibilityEventsSuppressed(sal_Bool bSuppressed);
    1022                 :            : 
    1023                 :            :     /// request XCanvas render interface for this window
    1024                 :            :     ::com::sun::star::uno::Reference<
    1025                 :            :         ::com::sun::star::rendering::XCanvas > GetCanvas() const;
    1026                 :            :     /// request XSpriteCanvas render interface for this window
    1027                 :            :     ::com::sun::star::uno::Reference<
    1028                 :            :         ::com::sun::star::rendering::XSpriteCanvas > GetSpriteCanvas() const;
    1029                 :            : 
    1030                 :            :     /*  records all DrawText operations within the passed rectangle;
    1031                 :            :      *  a synchronous paint is sent to achieve this
    1032                 :            :      */
    1033                 :            :     void                RecordLayoutData( vcl::ControlLayoutData* pLayout, const Rectangle& rRect );
    1034                 :            : 
    1035                 :            :     // set and retrieve for Toolkit
    1036                 :            :     VCLXWindow*             GetWindowPeer() const;
    1037                 :            :     void                    SetWindowPeer( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xPeer, VCLXWindow* pVCLXWindow );
    1038                 :            : 
    1039                 :            :     // remember if it was generated by Toolkit
    1040                 :            :     sal_Bool                IsCreatedWithToolkit() const;
    1041                 :            :     void                    SetCreatedWithToolkit( sal_Bool b );
    1042                 :            : 
    1043                 :            :             // Deprecated - can use SetAccessibleRelationLabelFor/By nowadys
    1044                 :            :     virtual Window* GetParentLabelFor( const Window* pLabel ) const;
    1045                 :            :     virtual Window* GetParentLabeledBy( const Window* pLabeled ) const;
    1046                 :            :     KeyEvent            GetActivationKey() const;
    1047                 :            : 
    1048                 :            :     // Drag and Drop interfaces
    1049                 :            :     virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDropTarget > GetDropTarget();
    1050                 :            :     virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragSource > GetDragSource();
    1051                 :            :     virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragGestureRecognizer > GetDragGestureRecognizer();
    1052                 :            : 
    1053                 :            :     // Clipboard/Selection interfaces
    1054                 :            :     virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > GetClipboard();
    1055                 :            :     virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > GetPrimarySelection();
    1056                 :            : 
    1057                 :            :     // Advisory Sizing - what is a good size for this widget ?
    1058                 :            :     virtual Size GetOptimalSize(WindowSizeType eType) const;
    1059                 :            : 
    1060                 :            :     //-------------------------------------
    1061                 :            :     //  Native Widget Rendering functions
    1062                 :            :     //-------------------------------------
    1063                 :            : 
    1064                 :            :     // form controls must never use native widgets, this can be toggled here
    1065                 :            :     void    EnableNativeWidget( sal_Bool bEnable = sal_True );
    1066                 :            :     sal_Bool    IsNativeWidgetEnabled() const;
    1067                 :            : 
    1068                 :            :     // a helper method for a Control's Draw method
    1069                 :            :     void PaintToDevice( OutputDevice* pDevice, const Point& rPos, const Size& rSize );
    1070                 :            : 
    1071                 :            :     /* mark Window for deletion in top of event queue
    1072                 :            :     */
    1073                 :            :     void doLazyDelete();
    1074                 :            : 
    1075                 :            :     //-------------------------------------
    1076                 :            :     //  Keyboard access functions
    1077                 :            :     //-------------------------------------
    1078                 :            : 
    1079                 :            :     /** Query the states of keyboard indicators - Caps Lock, Num Lock and
    1080                 :            :         Scroll Lock.  Use the following mask to retrieve the state of each
    1081                 :            :         indicator:
    1082                 :            : 
    1083                 :            :             INDICATOR_CAPS_LOCK
    1084                 :            :             INDICATOR_NUM_LOCK
    1085                 :            :             INDICATOR_SCROLL_LOCK
    1086                 :            :       */
    1087                 :            :     sal_uInt16 GetIndicatorState() const;
    1088                 :            : 
    1089                 :            :     void SimulateKeyPress( sal_uInt16 nKeyCode ) const;
    1090                 :            : 
    1091                 :            :     virtual rtl::OUString GetSurroundingText() const;
    1092                 :            :     virtual Selection GetSurroundingTextSelection() const;
    1093                 :            : 
    1094                 :            :     // ExtImpl
    1095                 :            : 
    1096                 :            :     // layouting
    1097                 :            :     boost::shared_ptr< vcl::WindowArranger > getLayout();
    1098                 :            : 
    1099                 :            :     /* add a child Window
    1100                 :            :        addWindow will do the following things
    1101                 :            :        - insert the passed window into the child list (equivalent to i_pWin->SetParent( this ))
    1102                 :            :        - mark the window as "owned", meaning that the added Window will be destroyed by
    1103                 :            :          the parent's desctructor.
    1104                 :            :          This means: do not pass in member windows or stack objects here. Do not cause
    1105                 :            :          the destructor of the added window to be called in any way.
    1106                 :            : 
    1107                 :            :          to avoid ownership pass i_bTakeOwnership as "false"
    1108                 :            :     */
    1109                 :            :     void addWindow( Window* i_pWin, bool i_bTakeOwnership = true );
    1110                 :            : 
    1111                 :            :     /* return the identifier of this window
    1112                 :            :     */
    1113                 :            :     const rtl::OUString& getIdentifier() const;
    1114                 :            : 
    1115                 :            :     /* returns the first found descendant that matches
    1116                 :            :        the passed identifier or NULL
    1117                 :            :     */
    1118                 :            :     Window* findWindow( const rtl::OUString& ) const;
    1119                 :            : 
    1120                 :            :     /* get/set properties
    1121                 :            :        this will contain window properties (like visible, enabled)
    1122                 :            :        as well as properties of derived classes (e.g. text of Edit fields)
    1123                 :            :     */
    1124                 :            :     virtual com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > getProperties() const;
    1125                 :            :     /*
    1126                 :            :     */
    1127                 :            :     virtual void setProperties( const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& );
    1128                 :            : };
    1129                 :            : 
    1130                 :            : 
    1131                 :            : #endif // _SV_WINDOW_HXX
    1132                 :            : 
    1133                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10