summaryrefslogtreecommitdiff
path: root/include/vcl/cmdevt.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/vcl/cmdevt.hxx')
-rw-r--r--include/vcl/cmdevt.hxx466
1 files changed, 466 insertions, 0 deletions
diff --git a/include/vcl/cmdevt.hxx b/include/vcl/cmdevt.hxx
new file mode 100644
index 000000000000..03876e52e5a3
--- /dev/null
+++ b/include/vcl/cmdevt.hxx
@@ -0,0 +1,466 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+#ifndef _VCL_CMDEVT_HXX
+#define _VCL_CMDEVT_HXX
+
+#include <tools/gen.hxx>
+#include <tools/solar.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( 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_ZOOM_SCALE ((sal_uInt16)0x0003)
+#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)); }
+ 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;
+}
+
+// ---------------------
+// - CommandModKeyData -
+// ---------------------
+
+class VCL_DLLPUBLIC CommandModKeyData
+{
+private:
+ sal_uInt16 mnCode;
+
+public:
+ CommandModKeyData();
+ CommandModKeyData( sal_uInt16 nCode );
+
+ bool IsShift() const { return (mnCode & MODKEY_SHIFT) ? true : 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_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)
+
+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 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 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
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */