1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef _SV_SALWTYPE_HXX 29 #define _SV_SALWTYPE_HXX 30 31 #include <i18npool/lang.h> 32 #include <tools/string.hxx> 33 #include <vcl/sv.h> 34 35 class SalGraphics; 36 class SalFrame; 37 class SalObject; 38 class Window; 39 40 class ImplFontSelectData; 41 42 // --------------- 43 // - SalExtInput - 44 // --------------- 45 46 // Muessen mit den Defines in cmdevt.hxx uebereinstimmen, da diese 47 // nicht konvertiert werden 48 #define SAL_EXTTEXTINPUT_ATTR_GRAYWAVELINE ((sal_uInt16)0x0100) 49 #define SAL_EXTTEXTINPUT_ATTR_UNDERLINE ((sal_uInt16)0x0200) 50 #define SAL_EXTTEXTINPUT_ATTR_BOLDUNDERLINE ((sal_uInt16)0x0400) 51 #define SAL_EXTTEXTINPUT_ATTR_DOTTEDUNDERLINE ((sal_uInt16)0x0800) 52 #define SAL_EXTTEXTINPUT_ATTR_DASHDOTUNDERLINE ((sal_uInt16)0x1000) 53 #define SAL_EXTTEXTINPUT_ATTR_HIGHLIGHT ((sal_uInt16)0x2000) 54 #define SAL_EXTTEXTINPUT_ATTR_REDTEXT ((sal_uInt16)0x4000) 55 #define SAL_EXTTEXTINPUT_ATTR_HALFTONETEXT ((sal_uInt16)0x8000) 56 57 #define SAL_EXTTEXTINPUT_CURSOR_INVISIBLE ((sal_uInt16)0x0001) 58 #define SAL_EXTTEXTINPUT_CURSOR_OVERWRITE ((sal_uInt16)0x0002) 59 60 // ------------ 61 // - SalEvent - 62 // ------------ 63 64 #define SALEVENT_MOUSEMOVE ((sal_uInt16)1) 65 #define SALEVENT_MOUSELEAVE ((sal_uInt16)2) 66 #define SALEVENT_MOUSEBUTTONDOWN ((sal_uInt16)3) 67 #define SALEVENT_MOUSEBUTTONUP ((sal_uInt16)4) 68 #define SALEVENT_KEYINPUT ((sal_uInt16)5) 69 #define SALEVENT_KEYUP ((sal_uInt16)6) 70 #define SALEVENT_KEYMODCHANGE ((sal_uInt16)7) 71 #define SALEVENT_PAINT ((sal_uInt16)8) 72 #define SALEVENT_RESIZE ((sal_uInt16)9) 73 #define SALEVENT_GETFOCUS ((sal_uInt16)10) 74 #define SALEVENT_LOSEFOCUS ((sal_uInt16)11) 75 #define SALEVENT_CLOSE ((sal_uInt16)12) 76 #define SALEVENT_SHUTDOWN ((sal_uInt16)13) 77 #define SALEVENT_SETTINGSCHANGED ((sal_uInt16)14) 78 #define SALEVENT_VOLUMECHANGED ((sal_uInt16)15) 79 #define SALEVENT_PRINTERCHANGED ((sal_uInt16)16) 80 #define SALEVENT_DISPLAYCHANGED ((sal_uInt16)17) 81 #define SALEVENT_FONTCHANGED ((sal_uInt16)18) 82 #define SALEVENT_DATETIMECHANGED ((sal_uInt16)19) 83 #define SALEVENT_KEYBOARDCHANGED ((sal_uInt16)20) 84 #define SALEVENT_WHEELMOUSE ((sal_uInt16)21) 85 #define SALEVENT_USEREVENT ((sal_uInt16)22) 86 #define SALEVENT_MOUSEACTIVATE ((sal_uInt16)23) 87 #define SALEVENT_EXTTEXTINPUT ((sal_uInt16)24) 88 #define SALEVENT_ENDEXTTEXTINPUT ((sal_uInt16)25) 89 #define SALEVENT_EXTTEXTINPUTPOS ((sal_uInt16)26) 90 #define SALEVENT_INPUTCONTEXTCHANGE ((sal_uInt16)27) 91 #define SALEVENT_MOVE ((sal_uInt16)28) 92 #define SALEVENT_MOVERESIZE ((sal_uInt16)29) 93 #define SALEVENT_CLOSEPOPUPS ((sal_uInt16)30) 94 #define SALEVENT_EXTERNALKEYINPUT ((sal_uInt16)31) 95 #define SALEVENT_EXTERNALKEYUP ((sal_uInt16)32) 96 #define SALEVENT_MENUCOMMAND ((sal_uInt16)33) 97 #define SALEVENT_MENUHIGHLIGHT ((sal_uInt16)34) 98 #define SALEVENT_MENUACTIVATE ((sal_uInt16)35) 99 #define SALEVENT_MENUDEACTIVATE ((sal_uInt16)36) 100 #define SALEVENT_EXTERNALMOUSEMOVE ((sal_uInt16)37) 101 #define SALEVENT_EXTERNALMOUSEBUTTONDOWN ((sal_uInt16)38) 102 #define SALEVENT_EXTERNALMOUSEBUTTONUP ((sal_uInt16)39) 103 #define SALEVENT_INPUTLANGUAGECHANGE ((sal_uInt16)40) 104 #define SALEVENT_SHOWDIALOG ((sal_uInt16)41) 105 #define SALEVENT_MENUBUTTONCOMMAND ((sal_uInt16)42) 106 #define SALEVENT_SURROUNDINGTEXTREQUEST ((sal_uInt16)43) 107 #define SALEVENT_SURROUNDINGTEXTSELECTIONCHANGE ((sal_uInt16)44) 108 #define SALEVENT_STARTRECONVERSION ((sal_uInt16)45) 109 #define SALEVENT_COUNT ((sal_uInt16)45) 110 111 // MOUSELEAVE must send, when the pointer leave the client area and 112 // the mouse is not captured 113 // MOUSEMOVE, MOUSELEAVE, MOUSEBUTTONDOWN and MOUSEBUTTONUP 114 // MAC: Ctrl+Button is MOUSE_RIGHT 115 struct SalMouseEvent 116 { 117 sal_uLong mnTime; // Time in ms, when event is created 118 long mnX; // X-Position (Pixel, TopLeft-Output) 119 long mnY; // Y-Position (Pixel, TopLeft-Output) 120 sal_uInt16 mnButton; // 0-MouseMove/MouseLeave, MOUSE_LEFT, MOUSE_RIGHT, MOUSE_MIDDLE 121 sal_uInt16 mnCode; // SV-ModifierCode (KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | MOUSE_LEFT | MOUSE_MIDDLE | MOUSE_RIGHT) 122 }; 123 124 // KEYINPUT and KEYUP 125 struct SalKeyEvent 126 { 127 sal_uLong mnTime; // Time in ms, when event is created 128 sal_uInt16 mnCode; // SV-KeyCode (KEY_xxx | KEY_SHIFT | KEY_MOD1 | KEY_MOD2) 129 sal_uInt16 mnCharCode; // SV-CharCode 130 sal_uInt16 mnRepeat; // Repeat-Count (KeyInputs-1) 131 }; 132 133 // MENUEVENT 134 struct SalMenuEvent 135 { 136 sal_uInt16 mnId; // Menu item ID 137 void* mpMenu; // pointer to VCL menu (class Menu) 138 139 SalMenuEvent() : mnId( 0 ), mpMenu( NULL ) {} 140 SalMenuEvent( sal_uInt16 i_nId, void* i_pMenu ) 141 : mnId( i_nId ), mpMenu( i_pMenu ) {} 142 }; 143 144 // KEYMODCHANGE 145 struct SalKeyModEvent 146 { 147 sal_uLong mnTime; // Time in ms, when event is created 148 sal_uInt16 mnCode; // SV-ModifierCode (KEY_SHIFT | KEY_MOD1 | KEY_MOD2) 149 sal_uInt16 mnModKeyCode; // extended Modifier (MODKEY_LEFT, MODKEY_RIGHT, MODKEY_PRESS, MODKEY_RELEASE) 150 }; 151 152 // PAINT 153 struct SalPaintEvent 154 { 155 long mnBoundX; // BoundRect - X 156 long mnBoundY; // BoundRect - Y 157 long mnBoundWidth; // BoundRect - Width 158 long mnBoundHeight; // BoundRect - Height 159 bool mbImmediateUpdate; // set to true to force an immediate update 160 161 SalPaintEvent( long x, long y, long w, long h, bool bImmediate = false ) : 162 mnBoundX( x ), mnBoundY( y ), 163 mnBoundWidth( w ), mnBoundHeight( h ), 164 mbImmediateUpdate( bImmediate ) 165 {} 166 }; 167 168 // USEREVENT 169 // pEvent == pData 170 171 // WHEELMOUSE 172 #define SAL_WHEELMOUSE_EVENT_PAGESCROLL ((sal_uLong)0xFFFFFFFF) 173 struct SalWheelMouseEvent 174 { 175 sal_uLong mnTime; // Time in ms, when event is created 176 long mnX; // X-Position (Pixel, TopLeft-Output) 177 long mnY; // Y-Position (Pixel, TopLeft-Output) 178 long mnDelta; // Anzahl Drehungen 179 long mnNotchDelta; // Anzahl feste Drehungen 180 sal_uLong mnScrollLines; // Aktuelle Anzahl zu scrollende Zeilen 181 sal_uInt16 mnCode; // SV-ModifierCode (KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | MOUSE_LEFT | MOUSE_MIDDLE | MOUSE_RIGHT) 182 sal_Bool mbHorz; // Horizontal 183 sal_Bool mbDeltaIsPixel; // delta value is a pixel value (on mac) 184 185 SalWheelMouseEvent() 186 : mnTime( 0 ), mnX( 0 ), mnY( 0 ), mnDelta( 0 ), mnNotchDelta( 0 ), mnScrollLines( 0 ), mnCode( 0 ), mbHorz( sal_False ), mbDeltaIsPixel( sal_False ) 187 {} 188 }; 189 190 // MOUSEACTIVATE 191 struct SalMouseActivateEvent 192 { 193 long mnX; // X-Position (Pixel, TopLeft-Output) 194 long mnY; // Y-Position (Pixel, TopLeft-Output) 195 }; 196 197 #ifdef __cplusplus 198 199 // EXTTEXTINPUT 200 struct SalExtTextInputEvent 201 { 202 sal_uLong mnTime; // Time in ms, when event is created 203 UniString maText; // Text 204 const sal_uInt16* mpTextAttr; // Text-Attribute 205 sal_uLong mnCursorPos; // Cursor-Position 206 sal_uLong mnDeltaStart; // Start-Position der letzten Aenderung 207 sal_uInt8 mnCursorFlags; // SAL_EXTTEXTINPUT_CURSOR_xxx 208 sal_Bool mbOnlyCursor; // sal_True: Nur Cursor-Position wurde geaendert 209 }; 210 211 #endif // __cplusplus 212 213 // EXTTEXTINPUTPOS 214 struct SalExtTextInputPosEvent 215 { 216 long mnX; // Cursor-X-Position to upper left corner of frame 217 long mnY; // Cursor-Y-Position to upper left corner of frame 218 long mnWidth; // Cursor-Width in Pixel 219 long mnHeight; // Cursor-Height in Pixel 220 long mnExtWidth; // Width of the PreEdit area 221 bool mbVertical; // true if in vertical mode 222 }; 223 224 #ifdef __cplusplus 225 226 // INPUTCONTEXTCHANGE 227 struct SalInputContextChangeEvent 228 { 229 LanguageType meLanguage; // Neue Sprache 230 }; 231 232 #endif // __cplusplus 233 234 #ifdef __cplusplus 235 236 // SURROUNDINGTEXTREQUEST 237 struct SalSurroundingTextRequestEvent 238 { 239 UniString maText; // Text 240 sal_uLong mnStart; // The beggining index of selected range 241 sal_uLong mnEnd; // The end index of selected range 242 }; 243 244 #endif // __cplusplus 245 246 #ifdef __cplusplus 247 248 // SURROUNDINGTEXTSELECTIONCHANGE 249 struct SalSurroundingTextSelectionChangeEvent 250 { 251 sal_uLong mnStart; // The beggining index of selected range 252 sal_uLong mnEnd; // The end index of selected range 253 }; 254 255 #endif // __cplusplus 256 257 // ------------------ 258 // - SalFrame-Types - 259 // ------------------ 260 261 typedef long (*SALFRAMEPROC)( Window* pInst, SalFrame* pFrame, 262 sal_uInt16 nEvent, const void* pEvent ); 263 264 // -------------------- 265 // - SalObject-Events - 266 // -------------------- 267 268 #define SALOBJ_EVENT_GETFOCUS ((sal_uInt16)1) 269 #define SALOBJ_EVENT_LOSEFOCUS ((sal_uInt16)2) 270 #define SALOBJ_EVENT_TOTOP ((sal_uInt16)3) 271 #define SALOBJ_EVENT_COUNT ((sal_uInt16)4) 272 273 // ------------------ 274 // - SalObject-Types - 275 // ------------------ 276 277 typedef long (*SALOBJECTPROC)( void* pInst, SalObject* pObject, 278 sal_uInt16 nEvent, const void* pEvent ); 279 280 // ----------------- 281 // - SalFrameState - 282 // ----------------- 283 284 // Must be the same as in syswin.hxx 285 #define SAL_FRAMESTATE_MASK_X ((sal_uLong)0x00000001) 286 #define SAL_FRAMESTATE_MASK_Y ((sal_uLong)0x00000002) 287 #define SAL_FRAMESTATE_MASK_WIDTH ((sal_uLong)0x00000004) 288 #define SAL_FRAMESTATE_MASK_HEIGHT ((sal_uLong)0x00000008) 289 #define SAL_FRAMESTATE_MASK_MAXIMIZED_X ((sal_uLong)0x00000100) 290 #define SAL_FRAMESTATE_MASK_MAXIMIZED_Y ((sal_uLong)0x00000200) 291 #define SAL_FRAMESTATE_MASK_MAXIMIZED_WIDTH ((sal_uLong)0x00000400) 292 #define SAL_FRAMESTATE_MASK_MAXIMIZED_HEIGHT ((sal_uLong)0x00000800) 293 #define SAL_FRAMESTATE_MASK_STATE ((sal_uLong)0x00000010) 294 295 #define SAL_FRAMESTATE_NORMAL ((sal_uLong)0x00000001) 296 #define SAL_FRAMESTATE_MINIMIZED ((sal_uLong)0x00000002) 297 #define SAL_FRAMESTATE_MAXIMIZED ((sal_uLong)0x00000004) 298 #define SAL_FRAMESTATE_ROLLUP ((sal_uLong)0x00000008) 299 #define SAL_FRAMESTATE_MAXIMIZED_HORZ ((sal_uLong)0x00000010) 300 #define SAL_FRAMESTATE_MAXIMIZED_VERT ((sal_uLong)0x00000020) 301 #define SAL_FRAMESTATE_SYSTEMMASK ((sal_uLong)0x0000FFFF) 302 303 struct SalFrameState 304 { 305 sal_uLong mnMask; 306 long mnX; 307 long mnY; 308 long mnWidth; 309 long mnHeight; 310 long mnMaximizedX; 311 long mnMaximizedY; 312 long mnMaximizedWidth; 313 long mnMaximizedHeight; 314 sal_uLong mnState; 315 }; 316 317 // ------------------- 318 // - SalInputContext - 319 // ------------------- 320 321 // Muessen mit den Defines in inputctx.hxx uebereinstimmen, da diese 322 // nicht konvertiert werden 323 #define SAL_INPUTCONTEXT_TEXT ((sal_uLong)0x00000001) 324 #define SAL_INPUTCONTEXT_EXTTEXTINPUT ((sal_uLong)0x00000002) 325 #define SAL_INPUTCONTEXT_EXTTEXTINPUT_ON ((sal_uLong)0x00000004) 326 #define SAL_INPUTCONTEXT_EXTTEXTINPUT_OFF ((sal_uLong)0x00000008) 327 #define SAL_INPUTCONTEXT_CHANGELANGUAGE ((sal_uLong)0x00000010) 328 329 #ifdef __cplusplus 330 331 struct SalInputContext 332 { 333 ImplFontSelectData* mpFont; 334 LanguageType meLanguage; 335 sal_uLong mnOptions; 336 }; 337 338 #endif // __cplusplus 339 340 // ------------------ 341 // - SalTimer-Types - 342 // ------------------ 343 344 typedef void (*SALTIMERPROC)(); 345 346 #endif // _SV_SALWTYPE_HXX 347