xref: /aoo4110/main/vcl/inc/vcl/cmdevt.hxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #ifndef _VCL_CMDEVT_HXX
25*b1cdbd2cSJim Jagielski #define _VCL_CMDEVT_HXX
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include <tools/gen.hxx>
28*b1cdbd2cSJim Jagielski #include <vcl/sv.h>
29*b1cdbd2cSJim Jagielski #include <vcl/dllapi.h>
30*b1cdbd2cSJim Jagielski #include <vcl/keycod.hxx>
31*b1cdbd2cSJim Jagielski #include <vcl/font.hxx>
32*b1cdbd2cSJim Jagielski 
33*b1cdbd2cSJim Jagielski // ---------------------------
34*b1cdbd2cSJim Jagielski // - CommandExtTextInputData -
35*b1cdbd2cSJim Jagielski // ---------------------------
36*b1cdbd2cSJim Jagielski 
37*b1cdbd2cSJim Jagielski #define EXTTEXTINPUT_ATTR_GRAYWAVELINE          ((sal_uInt16)0x0100)
38*b1cdbd2cSJim Jagielski #define EXTTEXTINPUT_ATTR_UNDERLINE             ((sal_uInt16)0x0200)
39*b1cdbd2cSJim Jagielski #define EXTTEXTINPUT_ATTR_BOLDUNDERLINE         ((sal_uInt16)0x0400)
40*b1cdbd2cSJim Jagielski #define EXTTEXTINPUT_ATTR_DOTTEDUNDERLINE       ((sal_uInt16)0x0800)
41*b1cdbd2cSJim Jagielski #define EXTTEXTINPUT_ATTR_DASHDOTUNDERLINE      ((sal_uInt16)0x1000)
42*b1cdbd2cSJim Jagielski #define EXTTEXTINPUT_ATTR_HIGHLIGHT             ((sal_uInt16)0x2000)
43*b1cdbd2cSJim Jagielski #define EXTTEXTINPUT_ATTR_REDTEXT               ((sal_uInt16)0x4000)
44*b1cdbd2cSJim Jagielski #define EXTTEXTINPUT_ATTR_HALFTONETEXT          ((sal_uInt16)0x8000)
45*b1cdbd2cSJim Jagielski 
46*b1cdbd2cSJim Jagielski #define EXTTEXTINPUT_CURSOR_INVISIBLE           ((sal_uInt16)0x0001)
47*b1cdbd2cSJim Jagielski #define EXTTEXTINPUT_CURSOR_OVERWRITE           ((sal_uInt16)0x0002)
48*b1cdbd2cSJim Jagielski 
49*b1cdbd2cSJim Jagielski class VCL_DLLPUBLIC CommandExtTextInputData
50*b1cdbd2cSJim Jagielski {
51*b1cdbd2cSJim Jagielski private:
52*b1cdbd2cSJim Jagielski     XubString           maText;
53*b1cdbd2cSJim Jagielski     sal_uInt16*             mpTextAttr;
54*b1cdbd2cSJim Jagielski     xub_StrLen          mnCursorPos;
55*b1cdbd2cSJim Jagielski     xub_StrLen          mnDeltaStart;
56*b1cdbd2cSJim Jagielski     xub_StrLen          mnOldTextLen;
57*b1cdbd2cSJim Jagielski     sal_uInt16              mnCursorFlags;
58*b1cdbd2cSJim Jagielski     sal_Bool                mbOnlyCursor;
59*b1cdbd2cSJim Jagielski 
60*b1cdbd2cSJim Jagielski public:
61*b1cdbd2cSJim Jagielski                         CommandExtTextInputData();
62*b1cdbd2cSJim Jagielski                         CommandExtTextInputData( const XubString& rText,
63*b1cdbd2cSJim Jagielski                                                  const sal_uInt16* pTextAttr,
64*b1cdbd2cSJim Jagielski                                                  xub_StrLen nCursorPos,
65*b1cdbd2cSJim Jagielski                                                  sal_uInt16 nCursorFlags,
66*b1cdbd2cSJim Jagielski                                                  xub_StrLen nDeltaStart,
67*b1cdbd2cSJim Jagielski                                                  xub_StrLen nOldTextLen,
68*b1cdbd2cSJim Jagielski                                                  sal_Bool bOnlyCursor );
69*b1cdbd2cSJim Jagielski                         CommandExtTextInputData( const CommandExtTextInputData& rData );
70*b1cdbd2cSJim Jagielski                         ~CommandExtTextInputData();
71*b1cdbd2cSJim Jagielski 
GetText() const72*b1cdbd2cSJim Jagielski     const XubString&    GetText() const { return maText; }
GetTextAttr() const73*b1cdbd2cSJim Jagielski     const sal_uInt16*       GetTextAttr() const { return mpTextAttr; }
74*b1cdbd2cSJim Jagielski     sal_uInt16              GetCharTextAttr( sal_uInt16 nIndex ) const;
GetCursorPos() const75*b1cdbd2cSJim Jagielski     xub_StrLen          GetCursorPos() const { return mnCursorPos; }
IsCursorVisible() const76*b1cdbd2cSJim Jagielski     sal_Bool                IsCursorVisible() const { return (mnCursorFlags & EXTTEXTINPUT_CURSOR_INVISIBLE) == 0; }
IsCursorOverwrite() const77*b1cdbd2cSJim Jagielski     sal_Bool                IsCursorOverwrite() const { return (mnCursorFlags & EXTTEXTINPUT_CURSOR_OVERWRITE) != 0; }
GetCursorFlags() const78*b1cdbd2cSJim Jagielski     sal_uInt16              GetCursorFlags() const { return mnCursorFlags; }
GetDeltaStart() const79*b1cdbd2cSJim Jagielski     xub_StrLen          GetDeltaStart() const { return mnDeltaStart; }
GetOldTextLen() const80*b1cdbd2cSJim Jagielski     xub_StrLen          GetOldTextLen() const { return mnOldTextLen; }
IsOnlyCursorChanged() const81*b1cdbd2cSJim Jagielski     sal_Bool                IsOnlyCursorChanged() const { return mbOnlyCursor; }
82*b1cdbd2cSJim Jagielski };
83*b1cdbd2cSJim Jagielski 
GetCharTextAttr(sal_uInt16 nIndex) const84*b1cdbd2cSJim Jagielski inline sal_uInt16 CommandExtTextInputData::GetCharTextAttr( sal_uInt16 nIndex ) const
85*b1cdbd2cSJim Jagielski {
86*b1cdbd2cSJim Jagielski     if ( mpTextAttr && (nIndex < maText.Len()) )
87*b1cdbd2cSJim Jagielski         return mpTextAttr[nIndex];
88*b1cdbd2cSJim Jagielski     else
89*b1cdbd2cSJim Jagielski         return 0;
90*b1cdbd2cSJim Jagielski }
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski // ---------------------------
93*b1cdbd2cSJim Jagielski // - CommandInputContextData -
94*b1cdbd2cSJim Jagielski // ---------------------------
95*b1cdbd2cSJim Jagielski 
96*b1cdbd2cSJim Jagielski class VCL_DLLPUBLIC CommandInputContextData
97*b1cdbd2cSJim Jagielski {
98*b1cdbd2cSJim Jagielski private:
99*b1cdbd2cSJim Jagielski     LanguageType    meLanguage;
100*b1cdbd2cSJim Jagielski 
101*b1cdbd2cSJim Jagielski public:
102*b1cdbd2cSJim Jagielski                     CommandInputContextData();
103*b1cdbd2cSJim Jagielski                     CommandInputContextData( LanguageType eLang );
104*b1cdbd2cSJim Jagielski 
GetLanguage() const105*b1cdbd2cSJim Jagielski     LanguageType    GetLanguage() const { return meLanguage; }
106*b1cdbd2cSJim Jagielski };
107*b1cdbd2cSJim Jagielski 
CommandInputContextData()108*b1cdbd2cSJim Jagielski inline CommandInputContextData::CommandInputContextData()
109*b1cdbd2cSJim Jagielski {
110*b1cdbd2cSJim Jagielski     meLanguage = LANGUAGE_DONTKNOW;
111*b1cdbd2cSJim Jagielski }
112*b1cdbd2cSJim Jagielski 
CommandInputContextData(LanguageType eLang)113*b1cdbd2cSJim Jagielski inline CommandInputContextData::CommandInputContextData( LanguageType eLang )
114*b1cdbd2cSJim Jagielski {
115*b1cdbd2cSJim Jagielski     meLanguage = eLang;
116*b1cdbd2cSJim Jagielski }
117*b1cdbd2cSJim Jagielski 
118*b1cdbd2cSJim Jagielski // --------------------
119*b1cdbd2cSJim Jagielski // - CommandWheelData -
120*b1cdbd2cSJim Jagielski // --------------------
121*b1cdbd2cSJim Jagielski 
122*b1cdbd2cSJim Jagielski #define COMMAND_WHEEL_SCROLL            ((sal_uInt16)0x0001)
123*b1cdbd2cSJim Jagielski #define COMMAND_WHEEL_ZOOM              ((sal_uInt16)0x0002)
124*b1cdbd2cSJim Jagielski #define COMMAND_WHEEL_DATAZOOM          ((sal_uInt16)0x0004)
125*b1cdbd2cSJim Jagielski 
126*b1cdbd2cSJim Jagielski #define COMMAND_WHEEL_PAGESCROLL        ((sal_uLong)0xFFFFFFFF)
127*b1cdbd2cSJim Jagielski 
128*b1cdbd2cSJim Jagielski class VCL_DLLPUBLIC CommandWheelData
129*b1cdbd2cSJim Jagielski {
130*b1cdbd2cSJim Jagielski private:
131*b1cdbd2cSJim Jagielski     long            mnDelta;
132*b1cdbd2cSJim Jagielski     long            mnNotchDelta;
133*b1cdbd2cSJim Jagielski     sal_uLong           mnLines;
134*b1cdbd2cSJim Jagielski     sal_uInt16          mnMode;
135*b1cdbd2cSJim Jagielski     sal_uInt16          mnCode;
136*b1cdbd2cSJim Jagielski     sal_Bool            mbHorz;
137*b1cdbd2cSJim Jagielski     sal_Bool            mbDeltaIsPixel;
138*b1cdbd2cSJim Jagielski 
139*b1cdbd2cSJim Jagielski public:
140*b1cdbd2cSJim Jagielski                     CommandWheelData();
141*b1cdbd2cSJim Jagielski                     CommandWheelData( long nWheelDelta, long nWheelNotchDelta,
142*b1cdbd2cSJim Jagielski                                       sal_uLong nScrollLines,
143*b1cdbd2cSJim Jagielski                                       sal_uInt16 nWheelMode, sal_uInt16 nKeyModifier,
144*b1cdbd2cSJim Jagielski                                       sal_Bool bHorz = sal_False, sal_Bool bDeltaIsPixel = sal_False );
145*b1cdbd2cSJim Jagielski 
GetDelta() const146*b1cdbd2cSJim Jagielski     long            GetDelta() const { return mnDelta; }
GetNotchDelta() const147*b1cdbd2cSJim Jagielski     long            GetNotchDelta() const { return mnNotchDelta; }
GetScrollLines() const148*b1cdbd2cSJim Jagielski     sal_uLong           GetScrollLines() const { return mnLines; }
IsHorz() const149*b1cdbd2cSJim Jagielski     sal_Bool            IsHorz() const { return mbHorz; }
IsDeltaPixel() const150*b1cdbd2cSJim Jagielski     sal_Bool            IsDeltaPixel() const { return mbDeltaIsPixel; }
151*b1cdbd2cSJim Jagielski 
GetMode() const152*b1cdbd2cSJim Jagielski     sal_uInt16          GetMode() const { return mnMode; }
153*b1cdbd2cSJim Jagielski 
GetModifier() const154*b1cdbd2cSJim Jagielski     sal_uInt16          GetModifier() const
155*b1cdbd2cSJim Jagielski                         { return (mnCode & (KEY_SHIFT | KEY_MOD1 | KEY_MOD2)); }
IsShift() const156*b1cdbd2cSJim Jagielski     sal_Bool            IsShift() const
157*b1cdbd2cSJim Jagielski                         { return ((mnCode & KEY_SHIFT) != 0); }
IsMod1() const158*b1cdbd2cSJim Jagielski     sal_Bool            IsMod1() const
159*b1cdbd2cSJim Jagielski                         { return ((mnCode & KEY_MOD1) != 0); }
IsMod2() const160*b1cdbd2cSJim Jagielski     sal_Bool            IsMod2() const
161*b1cdbd2cSJim Jagielski                         { return ((mnCode & KEY_MOD2) != 0); }
IsMod3() const162*b1cdbd2cSJim Jagielski     sal_Bool	        IsMod3() const
163*b1cdbd2cSJim Jagielski                         { return ((mnCode & KEY_MOD3) != 0); }
164*b1cdbd2cSJim Jagielski };
165*b1cdbd2cSJim Jagielski 
CommandWheelData()166*b1cdbd2cSJim Jagielski inline CommandWheelData::CommandWheelData()
167*b1cdbd2cSJim Jagielski {
168*b1cdbd2cSJim Jagielski     mnDelta         = 0;
169*b1cdbd2cSJim Jagielski     mnNotchDelta    = 0;
170*b1cdbd2cSJim Jagielski     mnLines         = 0;
171*b1cdbd2cSJim Jagielski     mnMode          = 0;
172*b1cdbd2cSJim Jagielski     mnCode          = 0;
173*b1cdbd2cSJim Jagielski     mbHorz          = sal_False;
174*b1cdbd2cSJim Jagielski     mbDeltaIsPixel  = sal_False;
175*b1cdbd2cSJim Jagielski }
176*b1cdbd2cSJim Jagielski 
CommandWheelData(long nWheelDelta,long nWheelNotchDelta,sal_uLong nScrollLines,sal_uInt16 nWheelMode,sal_uInt16 nKeyModifier,sal_Bool bHorz,sal_Bool bDeltaIsPixel)177*b1cdbd2cSJim Jagielski inline CommandWheelData::CommandWheelData( long nWheelDelta, long nWheelNotchDelta,
178*b1cdbd2cSJim Jagielski                                            sal_uLong nScrollLines,
179*b1cdbd2cSJim Jagielski                                            sal_uInt16 nWheelMode, sal_uInt16 nKeyModifier,
180*b1cdbd2cSJim Jagielski                                            sal_Bool bHorz, sal_Bool bDeltaIsPixel )
181*b1cdbd2cSJim Jagielski {
182*b1cdbd2cSJim Jagielski     mnDelta         = nWheelDelta;
183*b1cdbd2cSJim Jagielski     mnNotchDelta    = nWheelNotchDelta;
184*b1cdbd2cSJim Jagielski     mnLines         = nScrollLines;
185*b1cdbd2cSJim Jagielski     mnMode          = nWheelMode;
186*b1cdbd2cSJim Jagielski     mnCode          = nKeyModifier;
187*b1cdbd2cSJim Jagielski     mbHorz          = bHorz;
188*b1cdbd2cSJim Jagielski     mbDeltaIsPixel  = bDeltaIsPixel;
189*b1cdbd2cSJim Jagielski }
190*b1cdbd2cSJim Jagielski 
191*b1cdbd2cSJim Jagielski // ---------------------
192*b1cdbd2cSJim Jagielski // - CommandScrollData -
193*b1cdbd2cSJim Jagielski // ---------------------
194*b1cdbd2cSJim Jagielski 
195*b1cdbd2cSJim Jagielski class VCL_DLLPUBLIC CommandScrollData
196*b1cdbd2cSJim Jagielski {
197*b1cdbd2cSJim Jagielski private:
198*b1cdbd2cSJim Jagielski     long            mnDeltaX;
199*b1cdbd2cSJim Jagielski     long            mnDeltaY;
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski public:
202*b1cdbd2cSJim Jagielski                     CommandScrollData();
203*b1cdbd2cSJim Jagielski                     CommandScrollData( long nDeltaX, long nDeltaY );
204*b1cdbd2cSJim Jagielski 
GetDeltaX() const205*b1cdbd2cSJim Jagielski     long            GetDeltaX() const { return mnDeltaX; }
GetDeltaY() const206*b1cdbd2cSJim Jagielski     long            GetDeltaY() const { return mnDeltaY; }
207*b1cdbd2cSJim Jagielski };
208*b1cdbd2cSJim Jagielski 
CommandScrollData()209*b1cdbd2cSJim Jagielski inline CommandScrollData::CommandScrollData()
210*b1cdbd2cSJim Jagielski {
211*b1cdbd2cSJim Jagielski     mnDeltaX    = 0;
212*b1cdbd2cSJim Jagielski     mnDeltaY    = 0;
213*b1cdbd2cSJim Jagielski }
214*b1cdbd2cSJim Jagielski 
CommandScrollData(long nDeltaX,long nDeltaY)215*b1cdbd2cSJim Jagielski inline CommandScrollData::CommandScrollData( long nDeltaX, long nDeltaY )
216*b1cdbd2cSJim Jagielski {
217*b1cdbd2cSJim Jagielski     mnDeltaX    = nDeltaX;
218*b1cdbd2cSJim Jagielski     mnDeltaY    = nDeltaY;
219*b1cdbd2cSJim Jagielski }
220*b1cdbd2cSJim Jagielski 
221*b1cdbd2cSJim Jagielski // --------------------
222*b1cdbd2cSJim Jagielski // - CommandVoiceData -
223*b1cdbd2cSJim Jagielski // --------------------
224*b1cdbd2cSJim Jagielski 
225*b1cdbd2cSJim Jagielski enum DictationCommandType
226*b1cdbd2cSJim Jagielski {
227*b1cdbd2cSJim Jagielski     VOICECOMMANDTYPE_DICTATION,
228*b1cdbd2cSJim Jagielski     VOICECOMMANDTYPE_CONTROL
229*b1cdbd2cSJim Jagielski };
230*b1cdbd2cSJim Jagielski 
231*b1cdbd2cSJim Jagielski class VCL_DLLPUBLIC CommandVoiceData
232*b1cdbd2cSJim Jagielski {
233*b1cdbd2cSJim Jagielski private:
234*b1cdbd2cSJim Jagielski     XubString               maText;
235*b1cdbd2cSJim Jagielski     sal_uInt16                  mnCommand;
236*b1cdbd2cSJim Jagielski     DictationCommandType    meType;
237*b1cdbd2cSJim Jagielski 
238*b1cdbd2cSJim Jagielski public:
239*b1cdbd2cSJim Jagielski                             CommandVoiceData();
240*b1cdbd2cSJim Jagielski                             CommandVoiceData( const XubString& rStr,
241*b1cdbd2cSJim Jagielski                                               DictationCommandType eType,
242*b1cdbd2cSJim Jagielski                                               sal_uInt16 nCommand );
243*b1cdbd2cSJim Jagielski 
GetText() const244*b1cdbd2cSJim Jagielski     const XubString&        GetText() const { return maText; }
GetCommand() const245*b1cdbd2cSJim Jagielski     sal_uInt16                  GetCommand() const { return mnCommand; }
GetType() const246*b1cdbd2cSJim Jagielski     DictationCommandType    GetType() const { return meType; }
247*b1cdbd2cSJim Jagielski };
248*b1cdbd2cSJim Jagielski 
CommandVoiceData()249*b1cdbd2cSJim Jagielski inline CommandVoiceData::CommandVoiceData()
250*b1cdbd2cSJim Jagielski {
251*b1cdbd2cSJim Jagielski     meType = VOICECOMMANDTYPE_DICTATION;
252*b1cdbd2cSJim Jagielski     mnCommand = 0;
253*b1cdbd2cSJim Jagielski }
254*b1cdbd2cSJim Jagielski 
CommandVoiceData(const XubString & rStr,DictationCommandType eType,sal_uInt16 nCommand)255*b1cdbd2cSJim Jagielski inline CommandVoiceData::CommandVoiceData( const XubString& rStr,
256*b1cdbd2cSJim Jagielski                                            DictationCommandType eType,
257*b1cdbd2cSJim Jagielski                                            sal_uInt16 nCommand ) :
258*b1cdbd2cSJim Jagielski     maText( rStr ),
259*b1cdbd2cSJim Jagielski     mnCommand( nCommand ),
260*b1cdbd2cSJim Jagielski     meType( eType )
261*b1cdbd2cSJim Jagielski {
262*b1cdbd2cSJim Jagielski }
263*b1cdbd2cSJim Jagielski 
264*b1cdbd2cSJim Jagielski // ---------------------
265*b1cdbd2cSJim Jagielski // - CommandModKeyData -
266*b1cdbd2cSJim Jagielski // ---------------------
267*b1cdbd2cSJim Jagielski 
268*b1cdbd2cSJim Jagielski class VCL_DLLPUBLIC CommandModKeyData
269*b1cdbd2cSJim Jagielski {
270*b1cdbd2cSJim Jagielski private:
271*b1cdbd2cSJim Jagielski     sal_uInt16          mnCode;
272*b1cdbd2cSJim Jagielski 
273*b1cdbd2cSJim Jagielski public:
274*b1cdbd2cSJim Jagielski                     CommandModKeyData();
275*b1cdbd2cSJim Jagielski                     CommandModKeyData( sal_uInt16 nCode );
276*b1cdbd2cSJim Jagielski 
IsShift() const277*b1cdbd2cSJim Jagielski     sal_Bool            IsShift()   const { return (mnCode & MODKEY_SHIFT) ? sal_True : sal_False; }
IsMod1() const278*b1cdbd2cSJim Jagielski     sal_Bool            IsMod1()    const { return (mnCode & MODKEY_MOD1) ? sal_True : sal_False; }
IsMod2() const279*b1cdbd2cSJim Jagielski     sal_Bool            IsMod2()    const { return (mnCode & MODKEY_MOD2) ? sal_True : sal_False; }
IsMod3() const280*b1cdbd2cSJim Jagielski     sal_Bool            IsMod3()    const { return (mnCode & MODKEY_MOD3) ? sal_True : sal_False; }
281*b1cdbd2cSJim Jagielski 
IsLeftShift() const282*b1cdbd2cSJim Jagielski     sal_Bool            IsLeftShift() const { return (mnCode & MODKEY_LSHIFT) ? sal_True : sal_False; }
IsLeftMod1() const283*b1cdbd2cSJim Jagielski     sal_Bool            IsLeftMod1()  const { return (mnCode & MODKEY_LMOD1) ? sal_True : sal_False; }
IsLeftMod2() const284*b1cdbd2cSJim Jagielski     sal_Bool            IsLeftMod2()  const { return (mnCode & MODKEY_LMOD2) ? sal_True : sal_False; }
IsLeftMod3() const285*b1cdbd2cSJim Jagielski     sal_Bool            IsLeftMod3()  const { return (mnCode & MODKEY_LMOD3) ? sal_True : sal_False; }
286*b1cdbd2cSJim Jagielski 
IsRightShift() const287*b1cdbd2cSJim Jagielski     sal_Bool            IsRightShift() const { return (mnCode & MODKEY_RSHIFT) ? sal_True : sal_False; }
IsRightMod1() const288*b1cdbd2cSJim Jagielski     sal_Bool            IsRightMod1()  const { return (mnCode & MODKEY_RMOD1) ? sal_True : sal_False; }
IsRightMod2() const289*b1cdbd2cSJim Jagielski     sal_Bool            IsRightMod2()  const { return (mnCode & MODKEY_RMOD2) ? sal_True : sal_False; }
IsRightMod3() const290*b1cdbd2cSJim Jagielski     sal_Bool            IsRightMod3()  const { return (mnCode & MODKEY_RMOD3) ? sal_True : sal_False; }
291*b1cdbd2cSJim Jagielski };
292*b1cdbd2cSJim Jagielski 
CommandModKeyData()293*b1cdbd2cSJim Jagielski inline CommandModKeyData::CommandModKeyData()
294*b1cdbd2cSJim Jagielski {
295*b1cdbd2cSJim Jagielski     mnCode = 0L;
296*b1cdbd2cSJim Jagielski }
297*b1cdbd2cSJim Jagielski 
CommandModKeyData(sal_uInt16 nCode)298*b1cdbd2cSJim Jagielski inline CommandModKeyData::CommandModKeyData( sal_uInt16 nCode )
299*b1cdbd2cSJim Jagielski {
300*b1cdbd2cSJim Jagielski     mnCode = nCode;
301*b1cdbd2cSJim Jagielski }
302*b1cdbd2cSJim Jagielski 
303*b1cdbd2cSJim Jagielski // --------------------
304*b1cdbd2cSJim Jagielski // - CommanDialogData -
305*b1cdbd2cSJim Jagielski // --------------------
306*b1cdbd2cSJim Jagielski 
307*b1cdbd2cSJim Jagielski #define SHOWDIALOG_ID_PREFERENCES       1
308*b1cdbd2cSJim Jagielski #define SHOWDIALOG_ID_ABOUT             2
309*b1cdbd2cSJim Jagielski 
310*b1cdbd2cSJim Jagielski class VCL_DLLPUBLIC CommandDialogData
311*b1cdbd2cSJim Jagielski {
312*b1cdbd2cSJim Jagielski     int             m_nDialogId;
313*b1cdbd2cSJim Jagielski     public:
CommandDialogData(int nDialogId=SHOWDIALOG_ID_PREFERENCES)314*b1cdbd2cSJim Jagielski     CommandDialogData( int nDialogId = SHOWDIALOG_ID_PREFERENCES )
315*b1cdbd2cSJim Jagielski     : m_nDialogId( nDialogId )
316*b1cdbd2cSJim Jagielski     {}
317*b1cdbd2cSJim Jagielski 
GetDialogId() const318*b1cdbd2cSJim Jagielski     int GetDialogId() const { return m_nDialogId; }
319*b1cdbd2cSJim Jagielski };
320*b1cdbd2cSJim Jagielski 
321*b1cdbd2cSJim Jagielski // --------------
322*b1cdbd2cSJim Jagielski // Media Commands
323*b1cdbd2cSJim Jagielski // --------------
324*b1cdbd2cSJim Jagielski 
325*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_CHANNEL_DOWN			 ((sal_Int16)1)	// Decrement the channel value, for example, for a TV or radio tuner.
326*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_CHANNEL_UP			 ((sal_Int16)2)	// Increment the channel value, for example, for a TV or radio tuner.
327*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_NEXTTRACK				 ((sal_Int16)3)	// Go to next media track/slide.
328*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_PAUSE					 ((sal_Int16)4) // Pause. If already paused, take no further action. This is a direct PAUSE command that has no state.
329*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_PLAY					 ((sal_Int16)5)	// Begin playing at the current position. If already paused, it will resume. This is a direct PLAY command that has no state.
330*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_PLAY_PAUSE			 ((sal_Int16)6)	// Play or pause playback.
331*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_PREVIOUSTRACK			 ((sal_Int16)7)	// Go to previous media track/slide.
332*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_RECORD				 ((sal_Int16)8)	// Begin recording the current stream.
333*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_REWIND				 ((sal_Int16)9)// Go backward in a stream at a higher rate of speed.
334*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_STOP					 ((sal_Int16)10)// Stop playback.
335*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_MIC_ON_OFF_TOGGLE		 ((sal_Int16)11)// Toggle the microphone.
336*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_MICROPHONE_VOLUME_DOWN ((sal_Int16)12)// Increase microphone volume.
337*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_MICROPHONE_VOLUME_MUTE ((sal_Int16)13)// Mute the microphone.
338*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_MICROPHONE_VOLUME_UP   ((sal_Int16)14)// Decrease microphone volume.
339*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_VOLUME_DOWN			 ((sal_Int16)15)// Lower the volume.
340*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_VOLUME_MUTE			 ((sal_Int16)16)// Mute the volume.
341*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_VOLUME_UP				 ((sal_Int16)17)// Raise the volume.
342*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_MENU                   ((sal_Int16)18)// Button Menu pressed.
343*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_MENU_HOLD              ((sal_Int16)19)// Button Menu (long) pressed.
344*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_PLAY_HOLD              ((sal_Int16)20)// Button Play (long) pressed.
345*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_NEXTTRACK_HOLD         ((sal_Int16)21)// Button Right holding pressed.
346*b1cdbd2cSJim Jagielski #define MEDIA_COMMAND_PREVIOUSTRACK_HOLD     ((sal_Int16)22)// Button Left holding pressed.
347*b1cdbd2cSJim Jagielski 
348*b1cdbd2cSJim Jagielski 
349*b1cdbd2cSJim Jagielski // ------------------------------
350*b1cdbd2cSJim Jagielski // - CommandSelectionChangeData -
351*b1cdbd2cSJim Jagielski // ------------------------------
352*b1cdbd2cSJim Jagielski 
353*b1cdbd2cSJim Jagielski class VCL_DLLPUBLIC CommandSelectionChangeData
354*b1cdbd2cSJim Jagielski {
355*b1cdbd2cSJim Jagielski private:
356*b1cdbd2cSJim Jagielski     sal_uLong          mnStart;
357*b1cdbd2cSJim Jagielski     sal_uLong          mnEnd;
358*b1cdbd2cSJim Jagielski 
359*b1cdbd2cSJim Jagielski public:
360*b1cdbd2cSJim Jagielski     CommandSelectionChangeData();
361*b1cdbd2cSJim Jagielski     CommandSelectionChangeData( sal_uLong nStart, sal_uLong nEnd );
362*b1cdbd2cSJim Jagielski 
GetStart() const363*b1cdbd2cSJim Jagielski     sal_uLong          GetStart() const { return mnStart; }
GetEnd() const364*b1cdbd2cSJim Jagielski     sal_uLong          GetEnd() const { return mnEnd; }
365*b1cdbd2cSJim Jagielski };
366*b1cdbd2cSJim Jagielski 
CommandSelectionChangeData()367*b1cdbd2cSJim Jagielski inline CommandSelectionChangeData::CommandSelectionChangeData()
368*b1cdbd2cSJim Jagielski {
369*b1cdbd2cSJim Jagielski     mnStart = mnEnd = 0;
370*b1cdbd2cSJim Jagielski }
371*b1cdbd2cSJim Jagielski 
CommandSelectionChangeData(sal_uLong nStart,sal_uLong nEnd)372*b1cdbd2cSJim Jagielski inline CommandSelectionChangeData::CommandSelectionChangeData( sal_uLong nStart,
373*b1cdbd2cSJim Jagielski 							       sal_uLong nEnd )
374*b1cdbd2cSJim Jagielski {
375*b1cdbd2cSJim Jagielski     mnStart = nStart;
376*b1cdbd2cSJim Jagielski     mnEnd = nEnd;
377*b1cdbd2cSJim Jagielski }
378*b1cdbd2cSJim Jagielski 
379*b1cdbd2cSJim Jagielski // ----------------
380*b1cdbd2cSJim Jagielski // - CommandEvent -
381*b1cdbd2cSJim Jagielski // ----------------
382*b1cdbd2cSJim Jagielski 
383*b1cdbd2cSJim Jagielski #define COMMAND_CONTEXTMENU             ((sal_uInt16)1)
384*b1cdbd2cSJim Jagielski #define COMMAND_STARTDRAG               ((sal_uInt16)2)
385*b1cdbd2cSJim Jagielski #define COMMAND_WHEEL                   ((sal_uInt16)3)
386*b1cdbd2cSJim Jagielski #define COMMAND_STARTAUTOSCROLL         ((sal_uInt16)4)
387*b1cdbd2cSJim Jagielski #define COMMAND_AUTOSCROLL              ((sal_uInt16)5)
388*b1cdbd2cSJim Jagielski #define COMMAND_VOICE                   ((sal_uInt16)6)
389*b1cdbd2cSJim Jagielski #define COMMAND_STARTEXTTEXTINPUT       ((sal_uInt16)7)
390*b1cdbd2cSJim Jagielski #define COMMAND_EXTTEXTINPUT            ((sal_uInt16)8)
391*b1cdbd2cSJim Jagielski #define COMMAND_ENDEXTTEXTINPUT         ((sal_uInt16)9)
392*b1cdbd2cSJim Jagielski #define COMMAND_INPUTCONTEXTCHANGE      ((sal_uInt16)10)
393*b1cdbd2cSJim Jagielski #define COMMAND_CURSORPOS               ((sal_uInt16)11)
394*b1cdbd2cSJim Jagielski #define COMMAND_PASTESELECTION          ((sal_uInt16)12)
395*b1cdbd2cSJim Jagielski #define COMMAND_MODKEYCHANGE            ((sal_uInt16)13)
396*b1cdbd2cSJim Jagielski #define COMMAND_HANGUL_HANJA_CONVERSION ((sal_uInt16)14)
397*b1cdbd2cSJim Jagielski #define COMMAND_INPUTLANGUAGECHANGE     ((sal_uInt16)15)
398*b1cdbd2cSJim Jagielski #define COMMAND_SHOWDIALOG              ((sal_uInt16)16)
399*b1cdbd2cSJim Jagielski #define COMMAND_MEDIA					((sal_uInt16)17)
400*b1cdbd2cSJim Jagielski #define COMMAND_SELECTIONCHANGE         ((sal_uInt16)18)
401*b1cdbd2cSJim Jagielski #define COMMAND_PREPARERECONVERSION     ((sal_uInt16)19)
402*b1cdbd2cSJim Jagielski #define COMMAND_USER                    ((sal_uInt16)4096)
403*b1cdbd2cSJim Jagielski 
404*b1cdbd2cSJim Jagielski class VCL_DLLPUBLIC CommandEvent
405*b1cdbd2cSJim Jagielski {
406*b1cdbd2cSJim Jagielski private:
407*b1cdbd2cSJim Jagielski     Point                               maPos;
408*b1cdbd2cSJim Jagielski     void*                               mpData;
409*b1cdbd2cSJim Jagielski     sal_uInt16                              mnCommand;
410*b1cdbd2cSJim Jagielski     sal_Bool                                mbMouseEvent;
411*b1cdbd2cSJim Jagielski 
412*b1cdbd2cSJim Jagielski public:
413*b1cdbd2cSJim Jagielski                                         CommandEvent();
414*b1cdbd2cSJim Jagielski                                         CommandEvent( const Point& rMousePos, sal_uInt16 nCmd,
415*b1cdbd2cSJim Jagielski                                                       sal_Bool bMEvt = sal_False, const void* pCmdData = NULL );
416*b1cdbd2cSJim Jagielski 
GetCommand() const417*b1cdbd2cSJim Jagielski     sal_uInt16                              GetCommand() const { return mnCommand; }
GetMousePosPixel() const418*b1cdbd2cSJim Jagielski     const Point&                        GetMousePosPixel() const { return maPos; }
IsMouseEvent() const419*b1cdbd2cSJim Jagielski     sal_Bool                                IsMouseEvent() const { return mbMouseEvent; }
GetData() const420*b1cdbd2cSJim Jagielski     void*                               GetData() const { return mpData; }
421*b1cdbd2cSJim Jagielski 
422*b1cdbd2cSJim Jagielski     const CommandExtTextInputData*      GetExtTextInputData() const;
423*b1cdbd2cSJim Jagielski     const CommandInputContextData*      GetInputContextChangeData() const;
424*b1cdbd2cSJim Jagielski     const CommandWheelData*             GetWheelData() const;
425*b1cdbd2cSJim Jagielski     const CommandScrollData*            GetAutoScrollData() const;
426*b1cdbd2cSJim Jagielski     const CommandVoiceData*             GetVoiceData() const;
427*b1cdbd2cSJim Jagielski     const CommandModKeyData*			GetModKeyData() const;
428*b1cdbd2cSJim Jagielski     const CommandDialogData*            GetDialogData() const;
429*b1cdbd2cSJim Jagielski 	sal_Int16							GetMediaCommand() const;
430*b1cdbd2cSJim Jagielski     const CommandSelectionChangeData*   GetSelectionChangeData() const;
431*b1cdbd2cSJim Jagielski };
432*b1cdbd2cSJim Jagielski 
CommandEvent()433*b1cdbd2cSJim Jagielski inline CommandEvent::CommandEvent()
434*b1cdbd2cSJim Jagielski {
435*b1cdbd2cSJim Jagielski     mpData          = NULL;
436*b1cdbd2cSJim Jagielski     mnCommand       = 0;
437*b1cdbd2cSJim Jagielski     mbMouseEvent    = sal_False;
438*b1cdbd2cSJim Jagielski }
439*b1cdbd2cSJim Jagielski 
CommandEvent(const Point & rMousePos,sal_uInt16 nCmd,sal_Bool bMEvt,const void * pCmdData)440*b1cdbd2cSJim Jagielski inline CommandEvent::CommandEvent( const Point& rMousePos,
441*b1cdbd2cSJim Jagielski                                    sal_uInt16 nCmd, sal_Bool bMEvt, const void* pCmdData ) :
442*b1cdbd2cSJim Jagielski             maPos( rMousePos )
443*b1cdbd2cSJim Jagielski {
444*b1cdbd2cSJim Jagielski     mpData          = (void*)pCmdData;
445*b1cdbd2cSJim Jagielski     mnCommand       = nCmd;
446*b1cdbd2cSJim Jagielski     mbMouseEvent    = bMEvt;
447*b1cdbd2cSJim Jagielski }
448*b1cdbd2cSJim Jagielski 
GetExtTextInputData() const449*b1cdbd2cSJim Jagielski inline const CommandExtTextInputData* CommandEvent::GetExtTextInputData() const
450*b1cdbd2cSJim Jagielski {
451*b1cdbd2cSJim Jagielski     if ( mnCommand == COMMAND_EXTTEXTINPUT )
452*b1cdbd2cSJim Jagielski         return (const CommandExtTextInputData*)mpData;
453*b1cdbd2cSJim Jagielski     else
454*b1cdbd2cSJim Jagielski         return NULL;
455*b1cdbd2cSJim Jagielski }
456*b1cdbd2cSJim Jagielski 
GetInputContextChangeData() const457*b1cdbd2cSJim Jagielski inline const CommandInputContextData* CommandEvent::GetInputContextChangeData() const
458*b1cdbd2cSJim Jagielski {
459*b1cdbd2cSJim Jagielski     if ( mnCommand == COMMAND_INPUTCONTEXTCHANGE )
460*b1cdbd2cSJim Jagielski         return (const CommandInputContextData*)mpData;
461*b1cdbd2cSJim Jagielski     else
462*b1cdbd2cSJim Jagielski         return NULL;
463*b1cdbd2cSJim Jagielski }
464*b1cdbd2cSJim Jagielski 
GetWheelData() const465*b1cdbd2cSJim Jagielski inline const CommandWheelData* CommandEvent::GetWheelData() const
466*b1cdbd2cSJim Jagielski {
467*b1cdbd2cSJim Jagielski     if ( mnCommand == COMMAND_WHEEL )
468*b1cdbd2cSJim Jagielski         return (const CommandWheelData*)mpData;
469*b1cdbd2cSJim Jagielski     else
470*b1cdbd2cSJim Jagielski         return NULL;
471*b1cdbd2cSJim Jagielski }
472*b1cdbd2cSJim Jagielski 
GetAutoScrollData() const473*b1cdbd2cSJim Jagielski inline const CommandScrollData* CommandEvent::GetAutoScrollData() const
474*b1cdbd2cSJim Jagielski {
475*b1cdbd2cSJim Jagielski     if ( mnCommand == COMMAND_AUTOSCROLL )
476*b1cdbd2cSJim Jagielski         return (const CommandScrollData*)mpData;
477*b1cdbd2cSJim Jagielski     else
478*b1cdbd2cSJim Jagielski         return NULL;
479*b1cdbd2cSJim Jagielski }
480*b1cdbd2cSJim Jagielski 
GetVoiceData() const481*b1cdbd2cSJim Jagielski inline const CommandVoiceData* CommandEvent::GetVoiceData() const
482*b1cdbd2cSJim Jagielski {
483*b1cdbd2cSJim Jagielski     if ( mnCommand == COMMAND_VOICE )
484*b1cdbd2cSJim Jagielski         return (const CommandVoiceData*)mpData;
485*b1cdbd2cSJim Jagielski     else
486*b1cdbd2cSJim Jagielski         return NULL;
487*b1cdbd2cSJim Jagielski }
488*b1cdbd2cSJim Jagielski 
GetModKeyData() const489*b1cdbd2cSJim Jagielski inline const CommandModKeyData* CommandEvent::GetModKeyData() const
490*b1cdbd2cSJim Jagielski {
491*b1cdbd2cSJim Jagielski     if( mnCommand == COMMAND_MODKEYCHANGE )
492*b1cdbd2cSJim Jagielski         return (const CommandModKeyData*)mpData;
493*b1cdbd2cSJim Jagielski     else
494*b1cdbd2cSJim Jagielski         return NULL;
495*b1cdbd2cSJim Jagielski }
496*b1cdbd2cSJim Jagielski 
GetDialogData() const497*b1cdbd2cSJim Jagielski inline const CommandDialogData* CommandEvent::GetDialogData() const
498*b1cdbd2cSJim Jagielski {
499*b1cdbd2cSJim Jagielski     if( mnCommand == COMMAND_SHOWDIALOG )
500*b1cdbd2cSJim Jagielski         return (const CommandDialogData*)mpData;
501*b1cdbd2cSJim Jagielski     else
502*b1cdbd2cSJim Jagielski         return NULL;
503*b1cdbd2cSJim Jagielski }
504*b1cdbd2cSJim Jagielski 
GetMediaCommand() const505*b1cdbd2cSJim Jagielski inline sal_Int16 CommandEvent::GetMediaCommand() const
506*b1cdbd2cSJim Jagielski {
507*b1cdbd2cSJim Jagielski     if( mnCommand == COMMAND_MEDIA )
508*b1cdbd2cSJim Jagielski         return *(const sal_Int16*)(mpData);
509*b1cdbd2cSJim Jagielski     else
510*b1cdbd2cSJim Jagielski         return 0;
511*b1cdbd2cSJim Jagielski }
512*b1cdbd2cSJim Jagielski 
GetSelectionChangeData() const513*b1cdbd2cSJim Jagielski inline const CommandSelectionChangeData* CommandEvent::GetSelectionChangeData() const
514*b1cdbd2cSJim Jagielski {
515*b1cdbd2cSJim Jagielski     if( mnCommand == COMMAND_SELECTIONCHANGE )
516*b1cdbd2cSJim Jagielski 	return (const CommandSelectionChangeData*)mpData;
517*b1cdbd2cSJim Jagielski     else
518*b1cdbd2cSJim Jagielski 	return NULL;
519*b1cdbd2cSJim Jagielski }
520*b1cdbd2cSJim Jagielski 
521*b1cdbd2cSJim Jagielski 
522*b1cdbd2cSJim Jagielski #endif // _VCL_CMDEVT_HXX
523