LibreOffice Module vcl (master) 1
Classes | Namespaces | Macros | Functions | Variables
win/saldata.hxx File Reference
#include <config_features.h>
#include <array>
#include <memory>
#include <osl/module.h>
#include <svdata.hxx>
#include <salwtype.hxx>
#include <systools/win32/comtools.hxx>
#include <tools/long.hxx>
#include <win/wincomp.hxx>
#include <set>
#include <map>
Include dependency graph for win/saldata.hxx:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  HDCCache
 
struct  SalIcon
 
class  SalData
 
struct  SalShlData
 

Namespaces

namespace  vcl
 

Macros

#define MAX_STOCKPEN   4
 
#define MAX_STOCKBRUSH   4
 
#define SAL_CLIPRECT_COUNT   16
 
#define CACHESIZE_HDC   3
 
#define CACHED_HDC_1   0
 
#define CACHED_HDC_2   1
 
#define CACHED_HDC_DRAW   2
 
#define CACHED_HDC_DEFEXT   64
 
#define SAL_FRAME_WNDEXTRA   sizeof( DWORD )
 
#define SAL_FRAME_THIS   GWLP_USERDATA
 
#define SAL_FRAME_CLASSNAMEW   L"SALFRAME"
 
#define SAL_SUBFRAME_CLASSNAMEW   L"SALSUBFRAME"
 
#define SAL_TMPSUBFRAME_CLASSNAMEW   L"SALTMPSUBFRAME"
 
#define SAL_OBJECT_WNDEXTRA   sizeof( DWORD )
 
#define SAL_OBJECT_THIS   GWLP_USERDATA
 
#define SAL_OBJECT_CLASSNAMEW   L"SALOBJECT"
 
#define SAL_OBJECT_CHILDCLASSNAMEW   L"SALOBJECTCHILD"
 
#define SAL_COM_CLASSNAMEW   L"SALCOMWND"
 
#define SAL_MSG_THREADYIELD   (WM_USER+111)
 
#define SAL_MSG_STARTTIMER   (WM_USER+113)
 
#define SAL_MSG_CREATEFRAME   (WM_USER+114)
 
#define SAL_MSG_DESTROYFRAME   (WM_USER+115)
 
#define SAL_MSG_CREATEOBJECT   (WM_USER+116)
 
#define SAL_MSG_DESTROYOBJECT   (WM_USER+117)
 
#define SAL_MSG_GETCACHEDDC   (WM_USER+120)
 
#define SAL_MSG_RELEASEDC   (WM_USER+121)
 
#define SAL_MSG_RECREATEHWND   (WM_USER+122)
 
#define SAL_MSG_RECREATECHILDHWND   (WM_USER+123)
 
#define SAL_MSG_DESTROYHWND   (WM_USER+124)
 
#define SAL_MSG_USEREVENT   (WM_USER+130)
 
#define SAL_MSG_MOUSELEAVE   (WM_USER+131)
 
#define SAL_MSG_DUMMY   (WM_USER+132)
 
#define SAL_MSG_POSTFOCUS   (WM_USER+133)
 
#define SAL_MSG_POSTQUERYNEWPAL   (WM_USER+134)
 
#define SAL_MSG_POSTPALCHANGED   (WM_USER+135)
 
#define SAL_MSG_POSTMOVE   (WM_USER+136)
 
#define SAL_MSG_POSTCALLSIZE   (WM_USER+137)
 
#define SAL_MSG_POSTPAINT   (WM_USER+138)
 
#define SAL_MSG_FORCEPALETTE   (WM_USER+139)
 
#define SAL_MSG_CAPTUREMOUSE   (WM_USER+140)
 
#define SAL_MSG_RELEASEMOUSE   (WM_USER+141)
 
#define SAL_MSG_TOTOP   (WM_USER+142)
 
#define SAL_MSG_SHOW   (WM_USER+143)
 
#define SAL_MSG_SETINPUTCONTEXT   (WM_USER+144)
 
#define SAL_MSG_ENDEXTTEXTINPUT   (WM_USER+145)
 
#define SALOBJ_MSG_TOTOP   (WM_USER+160)
 
#define SALOBJ_MSG_POSTFOCUS   (WM_USER+161)
 
#define SAL_MSG_TIMER_CALLBACK   (WM_USER+162)
 
#define SAL_MSG_STOPTIMER   (WM_USER+163)
 
#define SAL_MSG_FORCE_REAL_TIMER   (WM_USER+164)
 

Functions

void ImplClearHDCCache (SalData *pData)
 
HDC ImplGetCachedDC (sal_uLong nID, HBITMAP hBmp=nullptr)
 
void ImplReleaseCachedDC (sal_uLong nID)
 
void ImplReleaseTempFonts (SalData &, bool bAll)
 
HCURSOR ImplLoadSalCursor (int nId)
 
HBITMAP ImplLoadSalBitmap (int nId)
 
bool ImplLoadSalIcon (int nId, HICON &rIcon, HICON &rSmallIcon)
 
void ImplInitSalGDI ()
 
void ImplFreeSalGDI ()
 
void ImplSalYieldMutexAcquireWithWait (sal_uInt32 nCount=1)
 
bool ImplSalYieldMutexTryToAcquire ()
 
void ImplSalYieldMutexRelease ()
 
LRESULT CALLBACK SalFrameWndProcW (HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
 
void SalTestMouseLeave ()
 
bool ImplHandleSalObjKeyMsg (HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
 
bool ImplHandleSalObjSysCharMsg (HWND hWnd, WPARAM wParam, LPARAM lParam)
 
bool ImplHandleGlobalMsg (HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam, LRESULT &rlResult)
 
WinSalObjectImplFindSalObject (HWND hWndChild)
 
bool ImplSalPreDispatchMsg (const MSG *pMsg)
 
void ImplSalPostDispatchMsg (const MSG *pMsg)
 
void ImplSalLogFontToFontW (HDC hDC, const LOGFONTW &rLogFont, vcl::Font &rFont)
 
rtl_TextEncoding ImplSalGetSystemEncoding ()
 
OUString ImplSalGetUniString (const char *pStr, sal_Int32 nLen=-1)
 
int ImplSalWICompareAscii (const wchar_t *pStr1, const char *pStr2)
 
void SetWindowPtr (HWND hWnd, WinSalFrame *pThis)
 
WinSalFrameGetWindowPtr (HWND hWnd)
 
void SetSalObjWindowPtr (HWND hWnd, WinSalObject *pThis)
 
WinSalObjectGetSalObjWindowPtr (HWND hWnd)
 

Variables

SalShlData aSalShlData
 

Macro Definition Documentation

◆ CACHED_HDC_1

#define CACHED_HDC_1   0

Definition at line 58 of file win/saldata.hxx.

◆ CACHED_HDC_2

#define CACHED_HDC_2   1

Definition at line 59 of file win/saldata.hxx.

◆ CACHED_HDC_DEFEXT

#define CACHED_HDC_DEFEXT   64

Definition at line 61 of file win/saldata.hxx.

◆ CACHED_HDC_DRAW

#define CACHED_HDC_DRAW   2

Definition at line 60 of file win/saldata.hxx.

◆ CACHESIZE_HDC

#define CACHESIZE_HDC   3

Definition at line 57 of file win/saldata.hxx.

◆ MAX_STOCKBRUSH

#define MAX_STOCKBRUSH   4

Definition at line 54 of file win/saldata.hxx.

◆ MAX_STOCKPEN

#define MAX_STOCKPEN   4

Definition at line 53 of file win/saldata.hxx.

◆ SAL_CLIPRECT_COUNT

#define SAL_CLIPRECT_COUNT   16

Definition at line 55 of file win/saldata.hxx.

◆ SAL_COM_CLASSNAMEW

#define SAL_COM_CLASSNAMEW   L"SALCOMWND"

Definition at line 202 of file win/saldata.hxx.

◆ SAL_FRAME_CLASSNAMEW

#define SAL_FRAME_CLASSNAMEW   L"SALFRAME"

Definition at line 195 of file win/saldata.hxx.

◆ SAL_FRAME_THIS

#define SAL_FRAME_THIS   GWLP_USERDATA

Definition at line 194 of file win/saldata.hxx.

◆ SAL_FRAME_WNDEXTRA

#define SAL_FRAME_WNDEXTRA   sizeof( DWORD )

Definition at line 193 of file win/saldata.hxx.

◆ SAL_MSG_CAPTUREMOUSE

#define SAL_MSG_CAPTUREMOUSE   (WM_USER+140)

Definition at line 249 of file win/saldata.hxx.

◆ SAL_MSG_CREATEFRAME

#define SAL_MSG_CREATEFRAME   (WM_USER+114)

Definition at line 209 of file win/saldata.hxx.

◆ SAL_MSG_CREATEOBJECT

#define SAL_MSG_CREATEOBJECT   (WM_USER+116)

Definition at line 213 of file win/saldata.hxx.

◆ SAL_MSG_DESTROYFRAME

#define SAL_MSG_DESTROYFRAME   (WM_USER+115)

Definition at line 211 of file win/saldata.hxx.

◆ SAL_MSG_DESTROYHWND

#define SAL_MSG_DESTROYHWND   (WM_USER+124)

Definition at line 225 of file win/saldata.hxx.

◆ SAL_MSG_DESTROYOBJECT

#define SAL_MSG_DESTROYOBJECT   (WM_USER+117)

Definition at line 215 of file win/saldata.hxx.

◆ SAL_MSG_DUMMY

#define SAL_MSG_DUMMY   (WM_USER+132)

Definition at line 232 of file win/saldata.hxx.

◆ SAL_MSG_ENDEXTTEXTINPUT

#define SAL_MSG_ENDEXTTEXTINPUT   (WM_USER+145)

Definition at line 259 of file win/saldata.hxx.

◆ SAL_MSG_FORCE_REAL_TIMER

#define SAL_MSG_FORCE_REAL_TIMER   (WM_USER+164)

Definition at line 273 of file win/saldata.hxx.

◆ SAL_MSG_FORCEPALETTE

#define SAL_MSG_FORCEPALETTE   (WM_USER+139)

Definition at line 247 of file win/saldata.hxx.

◆ SAL_MSG_GETCACHEDDC

#define SAL_MSG_GETCACHEDDC   (WM_USER+120)

Definition at line 217 of file win/saldata.hxx.

◆ SAL_MSG_MOUSELEAVE

#define SAL_MSG_MOUSELEAVE   (WM_USER+131)

Definition at line 230 of file win/saldata.hxx.

◆ SAL_MSG_POSTCALLSIZE

#define SAL_MSG_POSTCALLSIZE   (WM_USER+137)

Definition at line 243 of file win/saldata.hxx.

◆ SAL_MSG_POSTFOCUS

#define SAL_MSG_POSTFOCUS   (WM_USER+133)

Definition at line 235 of file win/saldata.hxx.

◆ SAL_MSG_POSTMOVE

#define SAL_MSG_POSTMOVE   (WM_USER+136)

Definition at line 241 of file win/saldata.hxx.

◆ SAL_MSG_POSTPAINT

#define SAL_MSG_POSTPAINT   (WM_USER+138)

Definition at line 245 of file win/saldata.hxx.

◆ SAL_MSG_POSTPALCHANGED

#define SAL_MSG_POSTPALCHANGED   (WM_USER+135)

Definition at line 239 of file win/saldata.hxx.

◆ SAL_MSG_POSTQUERYNEWPAL

#define SAL_MSG_POSTQUERYNEWPAL   (WM_USER+134)

Definition at line 237 of file win/saldata.hxx.

◆ SAL_MSG_RECREATECHILDHWND

#define SAL_MSG_RECREATECHILDHWND   (WM_USER+123)

Definition at line 223 of file win/saldata.hxx.

◆ SAL_MSG_RECREATEHWND

#define SAL_MSG_RECREATEHWND   (WM_USER+122)

Definition at line 221 of file win/saldata.hxx.

◆ SAL_MSG_RELEASEDC

#define SAL_MSG_RELEASEDC   (WM_USER+121)

Definition at line 219 of file win/saldata.hxx.

◆ SAL_MSG_RELEASEMOUSE

#define SAL_MSG_RELEASEMOUSE   (WM_USER+141)

Definition at line 251 of file win/saldata.hxx.

◆ SAL_MSG_SETINPUTCONTEXT

#define SAL_MSG_SETINPUTCONTEXT   (WM_USER+144)

Definition at line 257 of file win/saldata.hxx.

◆ SAL_MSG_SHOW

#define SAL_MSG_SHOW   (WM_USER+143)

Definition at line 255 of file win/saldata.hxx.

◆ SAL_MSG_STARTTIMER

#define SAL_MSG_STARTTIMER   (WM_USER+113)

Definition at line 207 of file win/saldata.hxx.

◆ SAL_MSG_STOPTIMER

#define SAL_MSG_STOPTIMER   (WM_USER+163)

Definition at line 271 of file win/saldata.hxx.

◆ SAL_MSG_THREADYIELD

#define SAL_MSG_THREADYIELD   (WM_USER+111)

Definition at line 205 of file win/saldata.hxx.

◆ SAL_MSG_TIMER_CALLBACK

#define SAL_MSG_TIMER_CALLBACK   (WM_USER+162)

Definition at line 269 of file win/saldata.hxx.

◆ SAL_MSG_TOTOP

#define SAL_MSG_TOTOP   (WM_USER+142)

Definition at line 253 of file win/saldata.hxx.

◆ SAL_MSG_USEREVENT

#define SAL_MSG_USEREVENT   (WM_USER+130)

Definition at line 228 of file win/saldata.hxx.

◆ SAL_OBJECT_CHILDCLASSNAMEW

#define SAL_OBJECT_CHILDCLASSNAMEW   L"SALOBJECTCHILD"

Definition at line 201 of file win/saldata.hxx.

◆ SAL_OBJECT_CLASSNAMEW

#define SAL_OBJECT_CLASSNAMEW   L"SALOBJECT"

Definition at line 200 of file win/saldata.hxx.

◆ SAL_OBJECT_THIS

#define SAL_OBJECT_THIS   GWLP_USERDATA

Definition at line 199 of file win/saldata.hxx.

◆ SAL_OBJECT_WNDEXTRA

#define SAL_OBJECT_WNDEXTRA   sizeof( DWORD )

Definition at line 198 of file win/saldata.hxx.

◆ SAL_SUBFRAME_CLASSNAMEW

#define SAL_SUBFRAME_CLASSNAMEW   L"SALSUBFRAME"

Definition at line 196 of file win/saldata.hxx.

◆ SAL_TMPSUBFRAME_CLASSNAMEW

#define SAL_TMPSUBFRAME_CLASSNAMEW   L"SALTMPSUBFRAME"

Definition at line 197 of file win/saldata.hxx.

◆ SALOBJ_MSG_POSTFOCUS

#define SALOBJ_MSG_POSTFOCUS   (WM_USER+161)

Definition at line 265 of file win/saldata.hxx.

◆ SALOBJ_MSG_TOTOP

#define SALOBJ_MSG_TOTOP   (WM_USER+160)

Definition at line 262 of file win/saldata.hxx.

Function Documentation

◆ GetSalObjWindowPtr()

WinSalObject * GetSalObjWindowPtr ( HWND  hWnd)
inline

Definition at line 290 of file win/saldata.hxx.

References SAL_OBJECT_THIS.

◆ GetWindowPtr()

WinSalFrame * GetWindowPtr ( HWND  hWnd)
inline

Definition at line 280 of file win/saldata.hxx.

References SAL_FRAME_THIS.

◆ ImplClearHDCCache()

void ImplClearHDCCache ( SalData pData)

◆ ImplFindSalObject()

WinSalObject * ImplFindSalObject ( HWND  hWndChild)

◆ ImplFreeSalGDI()

void ImplFreeSalGDI ( )

◆ ImplGetCachedDC()

HDC ImplGetCachedDC ( sal_uLong  nID,
HBITMAP  hBmp = nullptr 
)

◆ ImplHandleGlobalMsg()

bool ImplHandleGlobalMsg ( HWND  hWnd,
UINT  nMsg,
WPARAM  wParam,
LPARAM  lParam,
LRESULT &  rlResult 
)

◆ ImplHandleSalObjKeyMsg()

bool ImplHandleSalObjKeyMsg ( HWND  hWnd,
UINT  nMsg,
WPARAM  wParam,
LPARAM  lParam 
)

◆ ImplHandleSalObjSysCharMsg()

bool ImplHandleSalObjSysCharMsg ( HWND  hWnd,
WPARAM  wParam,
LPARAM  lParam 
)

◆ ImplInitSalGDI()

void ImplInitSalGDI ( )

◆ ImplLoadSalBitmap()

HBITMAP ImplLoadSalBitmap ( int  nId)

◆ ImplLoadSalCursor()

HCURSOR ImplLoadSalCursor ( int  nId)

◆ ImplLoadSalIcon()

bool ImplLoadSalIcon ( int  nId,
HICON &  rIcon,
HICON &  rSmallIcon 
)

◆ ImplReleaseCachedDC()

void ImplReleaseCachedDC ( sal_uLong  nID)

◆ ImplReleaseTempFonts()

void ImplReleaseTempFonts ( SalData ,
bool  bAll 
)

◆ ImplSalGetSystemEncoding()

rtl_TextEncoding ImplSalGetSystemEncoding ( )

◆ ImplSalGetUniString()

OUString ImplSalGetUniString ( const char *  pStr,
sal_Int32  nLen = -1 
)

◆ ImplSalLogFontToFontW()

void ImplSalLogFontToFontW ( HDC  hDC,
const LOGFONTW &  rLogFont,
vcl::Font rFont 
)

◆ ImplSalPostDispatchMsg()

void ImplSalPostDispatchMsg ( const MSG *  pMsg)

◆ ImplSalPreDispatchMsg()

bool ImplSalPreDispatchMsg ( const MSG *  pMsg)

◆ ImplSalWICompareAscii()

int ImplSalWICompareAscii ( const wchar_t *  pStr1,
const char *  pStr2 
)

◆ ImplSalYieldMutexAcquireWithWait()

void ImplSalYieldMutexAcquireWithWait ( sal_uInt32  nCount = 1)

◆ ImplSalYieldMutexRelease()

void ImplSalYieldMutexRelease ( )

◆ ImplSalYieldMutexTryToAcquire()

bool ImplSalYieldMutexTryToAcquire ( )

◆ SalFrameWndProcW()

LRESULT CALLBACK SalFrameWndProcW ( HWND  hWnd,
UINT  nMsg,
WPARAM  wParam,
LPARAM  lParam 
)

References CALLBACK.

◆ SalTestMouseLeave()

void SalTestMouseLeave ( )

◆ SetSalObjWindowPtr()

void SetSalObjWindowPtr ( HWND  hWnd,
WinSalObject pThis 
)
inline

Definition at line 285 of file win/saldata.hxx.

References SAL_OBJECT_THIS.

◆ SetWindowPtr()

void SetWindowPtr ( HWND  hWnd,
WinSalFrame pThis 
)
inline

Definition at line 275 of file win/saldata.hxx.

References SAL_FRAME_THIS.

Variable Documentation

◆ aSalShlData

SalShlData aSalShlData
extern