| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef _VCL_CMDEVT_HXX |
| #define _VCL_CMDEVT_HXX |
| |
| #include <tools/gen.hxx> |
| #include <vcl/sv.h> |
| #include <vcl/dllapi.h> |
| #include <vcl/keycod.hxx> |
| #include <vcl/font.hxx> |
| |
| // --------------------------- |
| // - CommandExtTextInputData - |
| // --------------------------- |
| |
| #define EXTTEXTINPUT_ATTR_GRAYWAVELINE ((sal_uInt16)0x0100) |
| #define EXTTEXTINPUT_ATTR_UNDERLINE ((sal_uInt16)0x0200) |
| #define EXTTEXTINPUT_ATTR_BOLDUNDERLINE ((sal_uInt16)0x0400) |
| #define EXTTEXTINPUT_ATTR_DOTTEDUNDERLINE ((sal_uInt16)0x0800) |
| #define EXTTEXTINPUT_ATTR_DASHDOTUNDERLINE ((sal_uInt16)0x1000) |
| #define EXTTEXTINPUT_ATTR_HIGHLIGHT ((sal_uInt16)0x2000) |
| #define EXTTEXTINPUT_ATTR_REDTEXT ((sal_uInt16)0x4000) |
| #define EXTTEXTINPUT_ATTR_HALFTONETEXT ((sal_uInt16)0x8000) |
| |
| #define EXTTEXTINPUT_CURSOR_INVISIBLE ((sal_uInt16)0x0001) |
| #define EXTTEXTINPUT_CURSOR_OVERWRITE ((sal_uInt16)0x0002) |
| |
| class VCL_DLLPUBLIC CommandExtTextInputData |
| { |
| private: |
| XubString maText; |
| sal_uInt16* mpTextAttr; |
| xub_StrLen mnCursorPos; |
| xub_StrLen mnDeltaStart; |
| xub_StrLen mnOldTextLen; |
| sal_uInt16 mnCursorFlags; |
| sal_Bool mbOnlyCursor; |
| |
| public: |
| CommandExtTextInputData(); |
| CommandExtTextInputData( const XubString& rText, |
| const sal_uInt16* pTextAttr, |
| xub_StrLen nCursorPos, |
| sal_uInt16 nCursorFlags, |
| xub_StrLen nDeltaStart, |
| xub_StrLen nOldTextLen, |
| sal_Bool bOnlyCursor ); |
| CommandExtTextInputData( const CommandExtTextInputData& rData ); |
| ~CommandExtTextInputData(); |
| |
| const XubString& GetText() const { return maText; } |
| const sal_uInt16* GetTextAttr() const { return mpTextAttr; } |
| sal_uInt16 GetCharTextAttr( sal_uInt16 nIndex ) const; |
| xub_StrLen GetCursorPos() const { return mnCursorPos; } |
| sal_Bool IsCursorVisible() const { return (mnCursorFlags & EXTTEXTINPUT_CURSOR_INVISIBLE) == 0; } |
| sal_Bool IsCursorOverwrite() const { return (mnCursorFlags & EXTTEXTINPUT_CURSOR_OVERWRITE) != 0; } |
| sal_uInt16 GetCursorFlags() const { return mnCursorFlags; } |
| xub_StrLen GetDeltaStart() const { return mnDeltaStart; } |
| xub_StrLen GetOldTextLen() const { return mnOldTextLen; } |
| sal_Bool IsOnlyCursorChanged() const { return mbOnlyCursor; } |
| }; |
| |
| inline sal_uInt16 CommandExtTextInputData::GetCharTextAttr( sal_uInt16 nIndex ) const |
| { |
| if ( mpTextAttr && (nIndex < maText.Len()) ) |
| return mpTextAttr[nIndex]; |
| else |
| return 0; |
| } |
| |
| // --------------------------- |
| // - CommandInputContextData - |
| // --------------------------- |
| |
| class VCL_DLLPUBLIC CommandInputContextData |
| { |
| private: |
| LanguageType meLanguage; |
| |
| public: |
| CommandInputContextData(); |
| CommandInputContextData( LanguageType eLang ); |
| |
| LanguageType GetLanguage() const { return meLanguage; } |
| }; |
| |
| inline CommandInputContextData::CommandInputContextData() |
| { |
| meLanguage = LANGUAGE_DONTKNOW; |
| } |
| |
| inline CommandInputContextData::CommandInputContextData( LanguageType eLang ) |
| { |
| meLanguage = eLang; |
| } |
| |
| // -------------------- |
| // - CommandWheelData - |
| // -------------------- |
| |
| #define COMMAND_WHEEL_SCROLL ((sal_uInt16)0x0001) |
| #define COMMAND_WHEEL_ZOOM ((sal_uInt16)0x0002) |
| #define COMMAND_WHEEL_DATAZOOM ((sal_uInt16)0x0004) |
| |
| #define COMMAND_WHEEL_PAGESCROLL ((sal_uLong)0xFFFFFFFF) |
| |
| class VCL_DLLPUBLIC CommandWheelData |
| { |
| private: |
| long mnDelta; |
| long mnNotchDelta; |
| sal_uLong mnLines; |
| sal_uInt16 mnMode; |
| sal_uInt16 mnCode; |
| sal_Bool mbHorz; |
| sal_Bool mbDeltaIsPixel; |
| |
| public: |
| CommandWheelData(); |
| CommandWheelData( long nWheelDelta, long nWheelNotchDelta, |
| sal_uLong nScrollLines, |
| sal_uInt16 nWheelMode, sal_uInt16 nKeyModifier, |
| sal_Bool bHorz = sal_False, sal_Bool bDeltaIsPixel = sal_False ); |
| |
| long GetDelta() const { return mnDelta; } |
| long GetNotchDelta() const { return mnNotchDelta; } |
| sal_uLong GetScrollLines() const { return mnLines; } |
| sal_Bool IsHorz() const { return mbHorz; } |
| sal_Bool IsDeltaPixel() const { return mbDeltaIsPixel; } |
| |
| sal_uInt16 GetMode() const { return mnMode; } |
| |
| sal_uInt16 GetModifier() const |
| { return (mnCode & (KEY_SHIFT | KEY_MOD1 | KEY_MOD2)); } |
| sal_Bool IsShift() const |
| { return ((mnCode & KEY_SHIFT) != 0); } |
| sal_Bool IsMod1() const |
| { return ((mnCode & KEY_MOD1) != 0); } |
| sal_Bool IsMod2() const |
| { return ((mnCode & KEY_MOD2) != 0); } |
| sal_Bool IsMod3() const |
| { return ((mnCode & KEY_MOD3) != 0); } |
| }; |
| |
| inline CommandWheelData::CommandWheelData() |
| { |
| mnDelta = 0; |
| mnNotchDelta = 0; |
| mnLines = 0; |
| mnMode = 0; |
| mnCode = 0; |
| mbHorz = sal_False; |
| mbDeltaIsPixel = sal_False; |
| } |
| |
| inline CommandWheelData::CommandWheelData( long nWheelDelta, long nWheelNotchDelta, |
| sal_uLong nScrollLines, |
| sal_uInt16 nWheelMode, sal_uInt16 nKeyModifier, |
| sal_Bool bHorz, sal_Bool bDeltaIsPixel ) |
| { |
| mnDelta = nWheelDelta; |
| mnNotchDelta = nWheelNotchDelta; |
| mnLines = nScrollLines; |
| mnMode = nWheelMode; |
| mnCode = nKeyModifier; |
| mbHorz = bHorz; |
| mbDeltaIsPixel = bDeltaIsPixel; |
| } |
| |
| // --------------------- |
| // - CommandScrollData - |
| // --------------------- |
| |
| class VCL_DLLPUBLIC CommandScrollData |
| { |
| private: |
| long mnDeltaX; |
| long mnDeltaY; |
| |
| public: |
| CommandScrollData(); |
| CommandScrollData( long nDeltaX, long nDeltaY ); |
| |
| long GetDeltaX() const { return mnDeltaX; } |
| long GetDeltaY() const { return mnDeltaY; } |
| }; |
| |
| inline CommandScrollData::CommandScrollData() |
| { |
| mnDeltaX = 0; |
| mnDeltaY = 0; |
| } |
| |
| inline CommandScrollData::CommandScrollData( long nDeltaX, long nDeltaY ) |
| { |
| mnDeltaX = nDeltaX; |
| mnDeltaY = nDeltaY; |
| } |
| |
| // -------------------- |
| // - CommandVoiceData - |
| // -------------------- |
| |
| enum DictationCommandType |
| { |
| VOICECOMMANDTYPE_DICTATION, |
| VOICECOMMANDTYPE_CONTROL |
| }; |
| |
| class VCL_DLLPUBLIC CommandVoiceData |
| { |
| private: |
| XubString maText; |
| sal_uInt16 mnCommand; |
| DictationCommandType meType; |
| |
| public: |
| CommandVoiceData(); |
| CommandVoiceData( const XubString& rStr, |
| DictationCommandType eType, |
| sal_uInt16 nCommand ); |
| |
| const XubString& GetText() const { return maText; } |
| sal_uInt16 GetCommand() const { return mnCommand; } |
| DictationCommandType GetType() const { return meType; } |
| }; |
| |
| inline CommandVoiceData::CommandVoiceData() |
| { |
| meType = VOICECOMMANDTYPE_DICTATION; |
| mnCommand = 0; |
| } |
| |
| inline CommandVoiceData::CommandVoiceData( const XubString& rStr, |
| DictationCommandType eType, |
| sal_uInt16 nCommand ) : |
| maText( rStr ), |
| mnCommand( nCommand ), |
| meType( eType ) |
| { |
| } |
| |
| // --------------------- |
| // - CommandModKeyData - |
| // --------------------- |
| |
| class VCL_DLLPUBLIC CommandModKeyData |
| { |
| private: |
| sal_uInt16 mnCode; |
| |
| public: |
| CommandModKeyData(); |
| CommandModKeyData( sal_uInt16 nCode ); |
| |
| sal_Bool IsShift() const { return (mnCode & MODKEY_SHIFT) ? sal_True : sal_False; } |
| sal_Bool IsMod1() const { return (mnCode & MODKEY_MOD1) ? sal_True : sal_False; } |
| sal_Bool IsMod2() const { return (mnCode & MODKEY_MOD2) ? sal_True : sal_False; } |
| sal_Bool IsMod3() const { return (mnCode & MODKEY_MOD3) ? sal_True : sal_False; } |
| |
| sal_Bool IsLeftShift() const { return (mnCode & MODKEY_LSHIFT) ? sal_True : sal_False; } |
| sal_Bool IsLeftMod1() const { return (mnCode & MODKEY_LMOD1) ? sal_True : sal_False; } |
| sal_Bool IsLeftMod2() const { return (mnCode & MODKEY_LMOD2) ? sal_True : sal_False; } |
| sal_Bool IsLeftMod3() const { return (mnCode & MODKEY_LMOD3) ? sal_True : sal_False; } |
| |
| sal_Bool IsRightShift() const { return (mnCode & MODKEY_RSHIFT) ? sal_True : sal_False; } |
| sal_Bool IsRightMod1() const { return (mnCode & MODKEY_RMOD1) ? sal_True : sal_False; } |
| sal_Bool IsRightMod2() const { return (mnCode & MODKEY_RMOD2) ? sal_True : sal_False; } |
| sal_Bool IsRightMod3() const { return (mnCode & MODKEY_RMOD3) ? sal_True : sal_False; } |
| }; |
| |
| inline CommandModKeyData::CommandModKeyData() |
| { |
| mnCode = 0L; |
| } |
| |
| inline CommandModKeyData::CommandModKeyData( sal_uInt16 nCode ) |
| { |
| mnCode = nCode; |
| } |
| |
| // -------------------- |
| // - CommanDialogData - |
| // -------------------- |
| |
| #define SHOWDIALOG_ID_PREFERENCES 1 |
| #define SHOWDIALOG_ID_ABOUT 2 |
| |
| class VCL_DLLPUBLIC CommandDialogData |
| { |
| int m_nDialogId; |
| public: |
| CommandDialogData( int nDialogId = SHOWDIALOG_ID_PREFERENCES ) |
| : m_nDialogId( nDialogId ) |
| {} |
| |
| int GetDialogId() const { return m_nDialogId; } |
| }; |
| |
| // -------------- |
| // Media Commands |
| // -------------- |
| |
| #define MEDIA_COMMAND_CHANNEL_DOWN ((sal_Int16)1) // Decrement the channel value, for example, for a TV or radio tuner. |
| #define MEDIA_COMMAND_CHANNEL_UP ((sal_Int16)2) // Increment the channel value, for example, for a TV or radio tuner. |
| #define MEDIA_COMMAND_NEXTTRACK ((sal_Int16)3) // Go to next media track/slide. |
| #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. |
| #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. |
| #define MEDIA_COMMAND_PLAY_PAUSE ((sal_Int16)6) // Play or pause playback. |
| #define MEDIA_COMMAND_PREVIOUSTRACK ((sal_Int16)7) // Go to previous media track/slide. |
| #define MEDIA_COMMAND_RECORD ((sal_Int16)8) // Begin recording the current stream. |
| #define MEDIA_COMMAND_REWIND ((sal_Int16)9)// Go backward in a stream at a higher rate of speed. |
| #define MEDIA_COMMAND_STOP ((sal_Int16)10)// Stop playback. |
| #define MEDIA_COMMAND_MIC_ON_OFF_TOGGLE ((sal_Int16)11)// Toggle the microphone. |
| #define MEDIA_COMMAND_MICROPHONE_VOLUME_DOWN ((sal_Int16)12)// Increase microphone volume. |
| #define MEDIA_COMMAND_MICROPHONE_VOLUME_MUTE ((sal_Int16)13)// Mute the microphone. |
| #define MEDIA_COMMAND_MICROPHONE_VOLUME_UP ((sal_Int16)14)// Decrease microphone volume. |
| #define MEDIA_COMMAND_VOLUME_DOWN ((sal_Int16)15)// Lower the volume. |
| #define MEDIA_COMMAND_VOLUME_MUTE ((sal_Int16)16)// Mute the volume. |
| #define MEDIA_COMMAND_VOLUME_UP ((sal_Int16)17)// Raise the volume. |
| #define MEDIA_COMMAND_MENU ((sal_Int16)18)// Button Menu pressed. |
| #define MEDIA_COMMAND_MENU_HOLD ((sal_Int16)19)// Button Menu (long) pressed. |
| #define MEDIA_COMMAND_PLAY_HOLD ((sal_Int16)20)// Button Play (long) pressed. |
| #define MEDIA_COMMAND_NEXTTRACK_HOLD ((sal_Int16)21)// Button Right holding pressed. |
| #define MEDIA_COMMAND_PREVIOUSTRACK_HOLD ((sal_Int16)22)// Button Left holding pressed. |
| |
| |
| // ------------------------------ |
| // - CommandSelectionChangeData - |
| // ------------------------------ |
| |
| class VCL_DLLPUBLIC CommandSelectionChangeData |
| { |
| private: |
| sal_uLong mnStart; |
| sal_uLong mnEnd; |
| |
| public: |
| CommandSelectionChangeData(); |
| CommandSelectionChangeData( sal_uLong nStart, sal_uLong nEnd ); |
| |
| sal_uLong GetStart() const { return mnStart; } |
| sal_uLong GetEnd() const { return mnEnd; } |
| }; |
| |
| inline CommandSelectionChangeData::CommandSelectionChangeData() |
| { |
| mnStart = mnEnd = 0; |
| } |
| |
| inline CommandSelectionChangeData::CommandSelectionChangeData( sal_uLong nStart, |
| sal_uLong nEnd ) |
| { |
| mnStart = nStart; |
| mnEnd = nEnd; |
| } |
| |
| // ---------------- |
| // - CommandEvent - |
| // ---------------- |
| |
| #define COMMAND_CONTEXTMENU ((sal_uInt16)1) |
| #define COMMAND_STARTDRAG ((sal_uInt16)2) |
| #define COMMAND_WHEEL ((sal_uInt16)3) |
| #define COMMAND_STARTAUTOSCROLL ((sal_uInt16)4) |
| #define COMMAND_AUTOSCROLL ((sal_uInt16)5) |
| #define COMMAND_VOICE ((sal_uInt16)6) |
| #define COMMAND_STARTEXTTEXTINPUT ((sal_uInt16)7) |
| #define COMMAND_EXTTEXTINPUT ((sal_uInt16)8) |
| #define COMMAND_ENDEXTTEXTINPUT ((sal_uInt16)9) |
| #define COMMAND_INPUTCONTEXTCHANGE ((sal_uInt16)10) |
| #define COMMAND_CURSORPOS ((sal_uInt16)11) |
| #define COMMAND_PASTESELECTION ((sal_uInt16)12) |
| #define COMMAND_MODKEYCHANGE ((sal_uInt16)13) |
| #define COMMAND_HANGUL_HANJA_CONVERSION ((sal_uInt16)14) |
| #define COMMAND_INPUTLANGUAGECHANGE ((sal_uInt16)15) |
| #define COMMAND_SHOWDIALOG ((sal_uInt16)16) |
| #define COMMAND_MEDIA ((sal_uInt16)17) |
| #define COMMAND_SELECTIONCHANGE ((sal_uInt16)18) |
| #define COMMAND_PREPARERECONVERSION ((sal_uInt16)19) |
| #define COMMAND_USER ((sal_uInt16)4096) |
| |
| class VCL_DLLPUBLIC CommandEvent |
| { |
| private: |
| Point maPos; |
| void* mpData; |
| sal_uInt16 mnCommand; |
| sal_Bool mbMouseEvent; |
| |
| public: |
| CommandEvent(); |
| CommandEvent( const Point& rMousePos, sal_uInt16 nCmd, |
| sal_Bool bMEvt = sal_False, const void* pCmdData = NULL ); |
| |
| sal_uInt16 GetCommand() const { return mnCommand; } |
| const Point& GetMousePosPixel() const { return maPos; } |
| sal_Bool IsMouseEvent() const { return mbMouseEvent; } |
| void* GetData() const { return mpData; } |
| |
| const CommandExtTextInputData* GetExtTextInputData() const; |
| const CommandInputContextData* GetInputContextChangeData() const; |
| const CommandWheelData* GetWheelData() const; |
| const CommandScrollData* GetAutoScrollData() const; |
| const CommandVoiceData* GetVoiceData() const; |
| const CommandModKeyData* GetModKeyData() const; |
| const CommandDialogData* GetDialogData() const; |
| sal_Int16 GetMediaCommand() const; |
| const CommandSelectionChangeData* GetSelectionChangeData() const; |
| }; |
| |
| inline CommandEvent::CommandEvent() |
| { |
| mpData = NULL; |
| mnCommand = 0; |
| mbMouseEvent = sal_False; |
| } |
| |
| inline CommandEvent::CommandEvent( const Point& rMousePos, |
| sal_uInt16 nCmd, sal_Bool bMEvt, const void* pCmdData ) : |
| maPos( rMousePos ) |
| { |
| mpData = (void*)pCmdData; |
| mnCommand = nCmd; |
| mbMouseEvent = bMEvt; |
| } |
| |
| inline const CommandExtTextInputData* CommandEvent::GetExtTextInputData() const |
| { |
| if ( mnCommand == COMMAND_EXTTEXTINPUT ) |
| return (const CommandExtTextInputData*)mpData; |
| else |
| return NULL; |
| } |
| |
| inline const CommandInputContextData* CommandEvent::GetInputContextChangeData() const |
| { |
| if ( mnCommand == COMMAND_INPUTCONTEXTCHANGE ) |
| return (const CommandInputContextData*)mpData; |
| else |
| return NULL; |
| } |
| |
| inline const CommandWheelData* CommandEvent::GetWheelData() const |
| { |
| if ( mnCommand == COMMAND_WHEEL ) |
| return (const CommandWheelData*)mpData; |
| else |
| return NULL; |
| } |
| |
| inline const CommandScrollData* CommandEvent::GetAutoScrollData() const |
| { |
| if ( mnCommand == COMMAND_AUTOSCROLL ) |
| return (const CommandScrollData*)mpData; |
| else |
| return NULL; |
| } |
| |
| inline const CommandVoiceData* CommandEvent::GetVoiceData() const |
| { |
| if ( mnCommand == COMMAND_VOICE ) |
| return (const CommandVoiceData*)mpData; |
| else |
| return NULL; |
| } |
| |
| inline const CommandModKeyData* CommandEvent::GetModKeyData() const |
| { |
| if( mnCommand == COMMAND_MODKEYCHANGE ) |
| return (const CommandModKeyData*)mpData; |
| else |
| return NULL; |
| } |
| |
| inline const CommandDialogData* CommandEvent::GetDialogData() const |
| { |
| if( mnCommand == COMMAND_SHOWDIALOG ) |
| return (const CommandDialogData*)mpData; |
| else |
| return NULL; |
| } |
| |
| inline sal_Int16 CommandEvent::GetMediaCommand() const |
| { |
| if( mnCommand == COMMAND_MEDIA ) |
| return *(const sal_Int16*)(mpData); |
| else |
| return 0; |
| } |
| |
| inline const CommandSelectionChangeData* CommandEvent::GetSelectionChangeData() const |
| { |
| if( mnCommand == COMMAND_SELECTIONCHANGE ) |
| return (const CommandSelectionChangeData*)mpData; |
| else |
| return NULL; |
| } |
| |
| |
| #endif // _VCL_CMDEVT_HXX |