2010-10-14 08:27:31 +02:00
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
re-base on ALv2 code. Includes (at least) relevant parts of:
linecap: Reintegrating finished LineCap feature
Patch contributed by Regina Henschel
http://svn.apache.org/viewvc?view=revision&revision=1232507
Patches contributed by Sven Jacobi
impress212: #i81610# fixed animation export
http://svn.apache.org/viewvc?view=revision&revision=1167620
impress212: drawinglayer gbuild environment changes
http://svn.apache.org/viewvc?view=revision&revision=1167627
http://svn.apache.org/viewvc?view=revision&revision=1167628
impress212: DffPropSet -> minor code improvements, removing table
http://svn.apache.org/viewvc?view=revision&revision=1167634
impress212: #158494# fixed excel import (text rotation)
http://svn.apache.org/viewvc?view=revision&revision=1167638
Patches contributed by Armin Le Grand
Svg: Reintegrated Svg replacement from /branches/alg/svgreplavement
http://svn.apache.org/viewvc?view=revision&revision=1220836
#118728# changed indentifying definitions for Svg file detection
http://svn.apache.org/viewvc?view=revision&revision=1229961
#118838# LineGeometry creation for complicated cases optimized to
create single Polygons
http://svn.apache.org/viewvc?view=revision&revision=1236232
#119176# corrected file type detection for SVG for svg files
without xml header
http://svn.apache.org/viewvc?view=revision&revision=1309445
#118728# Extended Svg file detection
http://svn.apache.org/viewvc?view=revision&revision=1230531
#118529# solve break converters and convert commands for OLEs and images
http://svn.apache.org/viewvc?view=revision&revision=1186168
svg: added WaE changes from branch svgreplacement to trunc
http://svn.apache.org/viewvc?view=revision&revision=1222974
svg: corrected missing member initialization
http://svn.apache.org/viewvc?view=revision&revision=1226134
fix for #118525#: Using primitives for chart sub-geometry visualisation
http://svn.apache.org/viewvc?view=revision&revision=1226879
#118898# Adapted ImpGraphic::ImplGetBitmap to correctly convert
metafiles to bitmapEx ...
http://svn.apache.org/viewvc?view=revision&revision=1293316
fix for #118525#: removed no longer used variable maOriginalMapMode, one
more exception eliminated
http://svn.apache.org/viewvc?view=revision&revision=1227097
#16758# Added buffering to the VDev usages of the VclProcessor2D derivates...
http://svn.apache.org/viewvc?view=revision&revision=1229521
#116758# Secured VDev buffer device to Vcl deinit
http://svn.apache.org/viewvc?view=revision&revision=1230574
#116758# added remembering allocated VDevs for VDevBuffer to be able to also
delete these when vcl goes down; it should never happen, but You never know
http://svn.apache.org/viewvc?view=revision&revision=1230927
#118730# Changed SvgClipPathNode to use MaskPrimitive2D for primitive
representation instead of TransparencePrimitive2D
http://svn.apache.org/viewvc?view=revision&revision=1231198
#118822# secured 3D geometry creation (slices) by subdividing the 2D
source polyPolygon early
http://svn.apache.org/viewvc?view=revision&revision=1234749
#118829# enhanced Svg gradient quality, obstacles avoided
http://svn.apache.org/viewvc?view=revision&revision=1235361
#118834# Unified usage of TextBreakupHelper as single tooling class
for i18n text primitive breakup
http://svn.apache.org/viewvc?view=revision&revision=1236110
#118853# added square pixel size limit to conversion of
TransparencePrimitive2D to Metafile action
http://svn.apache.org/viewvc?view=revision&revision=1237656
#118824# coreccted mirroring and boundrect when the graphicmanager
is used for bitmap output
http://svn.apache.org/viewvc?view=revision&revision=1240097
#115092# Corrected VclProcessor2D::RenderPolygonStrokePrimitive2D for
various optimization scenarios
http://svn.apache.org/viewvc?view=revision&revision=1241434
#118783# Corrected errors in ID strings, corrected Svg line/fill export,
corrected polygon close state
http://svn.apache.org/viewvc?view=revision&revision=1232006
#118796# corrected null-pointer usage in SVG text exporter
http://svn.apache.org/viewvc?view=revision&revision=1240262
#118729# Use GraphicStreamUrl and GraphicUrl to allow multi image
import with linked graphics, too
http://svn.apache.org/viewvc?view=revision&revision=1229962
#118898# corrected error in GDIMetaFile::GetBoundRect in handling
MetaFloatTransparentAction
http://svn.apache.org/viewvc?view=revision&revision=1293349
#118855# Corrected handling of possibly created empty clipRegions
after PolyPolygon clipping
http://svn.apache.org/viewvc?view=revision&revision=1237725
#115962# Better (but not yet optimal, see comments in task) handling
of MetaFloatTransparentAction in PDF export
http://svn.apache.org/viewvc?view=revision&revision=1241078
IP clearance: #118466# This patch removes librsvg, libcroco, libgsf, ...
http://svn.apache.org/viewvc?view=revision&revision=1200879
118779# Added svg content streaming in/out to ImpGraphic stream operators
http://svn.apache.org/viewvc?view=revision&revision=1231908
linecap: correctons for WaE and mac drawing
http://svn.apache.org/viewvc?view=revision&revision=1232793
svg: uses current system Dpi for Svg replacement image creation
http://svn.apache.org/viewvc?view=revision&revision=1233948
Patches contributed by Mathias Bauer (and others)
gnumake4 work variously
http://svn.apache.org/viewvc?view=revision&revision=1394326
http://svn.apache.org/viewvc?view=revision&revision=1396797
http://svn.apache.org/viewvc?view=revision&revision=1397315
http://svn.apache.org/viewvc?view=revision&revision=1394326
Remove duplicate header includes.
cws mba34issues01: #i117720#: convert assertion into warning
http://svn.apache.org/viewvc?view=revision&revision=1172352
118485 - Styles for OLEs are not saved. Submitted by Armin Le Grand.
http://svn.apache.org/viewvc?view=revision&revision=1182166
cws mba34issues01: #i117714#: remove assertion
http://svn.apache.org/viewvc?view=revision&revision=1172357
Patch contributed by Jurgen Schmidt
add some additional checks to ensure proper reading operations
http://svn.apache.org/viewvc?view=revision&revision=1209022
mostly prefer our stream / bounds checking work.
Patches contributed by Herbert Duerr
#i118816# add clarifying comment regarding Font::*Color*() methods
http://svn.apache.org/viewvc?view=revision&revision=1233833
extend macro->string handling for empty strings
http://svn.apache.org/viewvc?view=revision&revision=1175801
avoid magic constants for SALCOLOR_NONE
http://svn.apache.org/viewvc?view=revision&revision=1177543
initialize slant properly in ImplFontMetricData constructor (author=iorsh)
http://svn.apache.org/viewvc?view=revision&revision=1177551
#i118675# make check for extension updates more stable
http://svn.apache.org/viewvc?view=revision&revision=1214797
#a118617# remove VBasicEventListener.dll binary
There are no known users depending on its CLSID
http://svn.apache.org/viewvc?view=revision&revision=1203697
Patches contributed by Ariel Constenla-Haile
Fix build breaker on Linux/gcc
http://svn.apache.org/viewvc?view=revision&revision=1221104
Fix crash when trying to instantiate css.graphic.GraphicRasterizer_RSVG
http://svn.apache.org/viewvc?view=revision&revision=1215559
Patches contributed by Oliver-Rainer Wittmann
sw34bf06: #i117962# - method <SwFlyFrm::IsPaint(..)> - consider
instances of <SwFlyDrawObj>
http://svn.apache.org/viewvc?view=revision&revision=1172120
sw34bf06: #i117783# - Writer's implementation of XPagePrintable -
apply print settings to new printing routines
http://svn.apache.org/viewvc?view=revision&revision=1172115
gnumake4 work variously from Hans-Joachim Lankenau
http://svn.apache.org/viewvc?view=revision&revision=1397315
http://svn.apache.org/viewvc?view=revision&revision=1396797
http://svn.apache.org/viewvc?view=revision&revision=1396782
http://svn.apache.org/viewvc?view=revision&revision=1394707
plus some amount of re-splitting of legacy headers.
Patch contributed by Pavel Janik
WaE: Remove unused variables.
http://svn.apache.org/viewvc?view=revision&revision=1230697
Patches contributed by Takashi Ono
mingwport35: i#117795: MinGW port fix for vcl2gnumake
http://svn.apache.org/viewvc?view=revision&revision=1172091
mingwport35: i#117795: MinGW port fix for vcl2gnumake
http://svn.apache.org/viewvc?view=revision&revision=1172091
Patch contributed by Christian Lippka
impress212: #i98044# re enable Text menu for outline and title shapes
http://svn.apache.org/viewvc?view=revision&revision=1167639
Patch contributed by Andre Fischer
118674: Made category B code optional and disabled by default.
http://svn.apache.org/viewvc?view=revision&revision=1215131
118881: Ignore empty paragraphs after bullets.
http://svn.apache.org/viewvc?view=revision&revision=1296205
Patches contributed by Philipp Lohmann
ooo340fixes: #i117780# use rtl allocator
http://svn.apache.org/viewvc?view=revision&revision=1172087
ooo34gsl02: #i117807# fix an off by one error (index actually
inside the pfb section header)
http://svn.apache.org/viewvc?view=revision&revision=1167576
various cleanups, related compilation fixes, warning cleanups, re-working
of obsolete stl template pieces to use boost instead, changed string
classes, re-adapt KDE about data, about dialog, fixing warnings,
and other fixes & improvements.
Disable svg import / render for about/ branding code-paths for now.
Restore full icon theme set.
Remove OS/2 conditionals and sources.
Remove conflicting gtk/full-screen monitors support.
Retain existing svg rasterizer files - temporarily disabled.
Standardize stringificaiton and fixup dllpostfix issues.
Rename SvgGradientHelper::== to equalTo to avoid overloading issues.
Use the flat GdiPlus API for LineCaps calls.
2012-10-09 12:22:23 +01:00
/*
* 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 .
*/
2007-04-11 16:49:50 +00:00
# ifndef _VCL_CMDEVT_HXX
# define _VCL_CMDEVT_HXX
# include <tools/gen.hxx>
2012-06-10 19:26:30 +03:00
# include <tools/solar.h>
2007-04-11 16:49:50 +00:00
# include <vcl/dllapi.h>
# include <vcl/keycod.hxx>
# include <vcl/font.hxx>
// ---------------------------
// - CommandExtTextInputData -
// ---------------------------
2010-09-29 15:46:40 +08:00
# 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)
2007-04-11 16:49:50 +00:00
class VCL_DLLPUBLIC CommandExtTextInputData
{
private :
XubString maText ;
2010-09-29 15:46:40 +08:00
sal_uInt16 * mpTextAttr ;
2007-04-11 16:49:50 +00:00
xub_StrLen mnCursorPos ;
xub_StrLen mnDeltaStart ;
xub_StrLen mnOldTextLen ;
2010-09-29 15:46:40 +08:00
sal_uInt16 mnCursorFlags ;
sal_Bool mbOnlyCursor ;
2007-04-11 16:49:50 +00:00
public :
CommandExtTextInputData ( const XubString & rText ,
2010-09-29 15:46:40 +08:00
const sal_uInt16 * pTextAttr ,
2007-04-11 16:49:50 +00:00
xub_StrLen nCursorPos ,
2010-09-29 15:46:40 +08:00
sal_uInt16 nCursorFlags ,
2007-04-11 16:49:50 +00:00
xub_StrLen nDeltaStart ,
xub_StrLen nOldTextLen ,
2010-09-29 15:46:40 +08:00
sal_Bool bOnlyCursor ) ;
2007-04-11 16:49:50 +00:00
CommandExtTextInputData ( const CommandExtTextInputData & rData ) ;
~ CommandExtTextInputData ( ) ;
const XubString & GetText ( ) const { return maText ; }
2010-09-29 15:46:40 +08:00
const sal_uInt16 * GetTextAttr ( ) const { return mpTextAttr ; }
sal_uInt16 GetCharTextAttr ( sal_uInt16 nIndex ) const ;
2007-04-11 16:49:50 +00:00
xub_StrLen GetCursorPos ( ) const { return mnCursorPos ; }
2010-09-29 15:46:40 +08:00
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 ; }
2007-04-11 16:49:50 +00:00
xub_StrLen GetDeltaStart ( ) const { return mnDeltaStart ; }
xub_StrLen GetOldTextLen ( ) const { return mnOldTextLen ; }
2010-09-29 15:46:40 +08:00
sal_Bool IsOnlyCursorChanged ( ) const { return mbOnlyCursor ; }
2007-04-11 16:49:50 +00:00
} ;
2010-09-29 15:46:40 +08:00
inline sal_uInt16 CommandExtTextInputData : : GetCharTextAttr ( sal_uInt16 nIndex ) const
2007-04-11 16:49:50 +00:00
{
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 -
// --------------------
2010-09-29 15:46:40 +08:00
# define COMMAND_WHEEL_SCROLL ((sal_uInt16)0x0001)
# define COMMAND_WHEEL_ZOOM ((sal_uInt16)0x0002)
2013-03-03 22:23:54 +02:00
# define COMMAND_WHEEL_ZOOM_SCALE ((sal_uInt16)0x0003)
2010-09-29 15:46:40 +08:00
# define COMMAND_WHEEL_DATAZOOM ((sal_uInt16)0x0004)
2007-04-11 16:49:50 +00:00
2011-01-12 15:07:10 +01:00
# define COMMAND_WHEEL_PAGESCROLL ((sal_uLong)0xFFFFFFFF)
2007-04-11 16:49:50 +00:00
class VCL_DLLPUBLIC CommandWheelData
{
private :
long mnDelta ;
long mnNotchDelta ;
2011-01-12 15:07:10 +01:00
sal_uLong mnLines ;
2010-09-29 15:46:40 +08:00
sal_uInt16 mnMode ;
sal_uInt16 mnCode ;
sal_Bool mbHorz ;
sal_Bool mbDeltaIsPixel ;
2007-04-11 16:49:50 +00:00
public :
CommandWheelData ( ) ;
CommandWheelData ( long nWheelDelta , long nWheelNotchDelta ,
2011-01-12 15:07:10 +01:00
sal_uLong nScrollLines ,
2010-09-29 15:46:40 +08:00
sal_uInt16 nWheelMode , sal_uInt16 nKeyModifier ,
sal_Bool bHorz = sal_False , sal_Bool bDeltaIsPixel = sal_False ) ;
2007-04-11 16:49:50 +00:00
long GetDelta ( ) const { return mnDelta ; }
long GetNotchDelta ( ) const { return mnNotchDelta ; }
2011-01-12 15:07:10 +01:00
sal_uLong GetScrollLines ( ) const { return mnLines ; }
2010-09-29 15:46:40 +08:00
sal_Bool IsHorz ( ) const { return mbHorz ; }
sal_Bool IsDeltaPixel ( ) const { return mbDeltaIsPixel ; }
2007-04-11 16:49:50 +00:00
2010-09-29 15:46:40 +08:00
sal_uInt16 GetMode ( ) const { return mnMode ; }
2007-04-11 16:49:50 +00:00
2010-09-29 15:46:40 +08:00
sal_uInt16 GetModifier ( ) const
2007-04-11 16:49:50 +00:00
{ return ( mnCode & ( KEY_SHIFT | KEY_MOD1 | KEY_MOD2 ) ) ; }
2011-01-10 20:51:02 +00:00
bool IsShift ( ) const
2007-04-11 16:49:50 +00:00
{ return ( ( mnCode & KEY_SHIFT ) ! = 0 ) ; }
2010-09-29 15:46:40 +08:00
sal_Bool IsMod1 ( ) const
2007-04-11 16:49:50 +00:00
{ return ( ( mnCode & KEY_MOD1 ) ! = 0 ) ; }
2010-09-29 15:46:40 +08:00
sal_Bool IsMod2 ( ) const
2007-04-11 16:49:50 +00:00
{ return ( ( mnCode & KEY_MOD2 ) ! = 0 ) ; }
2010-09-29 15:46:40 +08:00
sal_Bool IsMod3 ( ) const
2008-01-14 15:19:38 +00:00
{ return ( ( mnCode & KEY_MOD3 ) ! = 0 ) ; }
2007-04-11 16:49:50 +00:00
} ;
inline CommandWheelData : : CommandWheelData ( )
{
mnDelta = 0 ;
mnNotchDelta = 0 ;
mnLines = 0 ;
mnMode = 0 ;
mnCode = 0 ;
2010-09-29 15:46:40 +08:00
mbHorz = sal_False ;
mbDeltaIsPixel = sal_False ;
2007-04-11 16:49:50 +00:00
}
inline CommandWheelData : : CommandWheelData ( long nWheelDelta , long nWheelNotchDelta ,
2011-01-12 15:07:10 +01:00
sal_uLong nScrollLines ,
2010-09-29 15:46:40 +08:00
sal_uInt16 nWheelMode , sal_uInt16 nKeyModifier ,
sal_Bool bHorz , sal_Bool bDeltaIsPixel )
2007-04-11 16:49:50 +00:00
{
mnDelta = nWheelDelta ;
mnNotchDelta = nWheelNotchDelta ;
mnLines = nScrollLines ;
mnMode = nWheelMode ;
mnCode = nKeyModifier ;
mbHorz = bHorz ;
2010-02-26 20:50:25 +01:00
mbDeltaIsPixel = bDeltaIsPixel ;
2007-04-11 16:49:50 +00:00
}
// ---------------------
// - 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 :
2010-09-29 15:46:40 +08:00
sal_uInt16 mnCode ;
2007-04-11 16:49:50 +00:00
public :
CommandModKeyData ( ) ;
2010-09-29 15:46:40 +08:00
CommandModKeyData ( sal_uInt16 nCode ) ;
2007-04-11 16:49:50 +00:00
2011-01-10 20:51:02 +00:00
bool IsShift ( ) const { return ( mnCode & MODKEY_SHIFT ) ? true : false ; }
2010-09-29 15:46:40 +08:00
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 ; }
2007-04-11 16:49:50 +00:00
} ;
inline CommandModKeyData : : CommandModKeyData ( )
{
mnCode = 0L ;
}
2010-09-29 15:46:40 +08:00
inline CommandModKeyData : : CommandModKeyData ( sal_uInt16 nCode )
2007-04-11 16:49:50 +00:00
{
mnCode = nCode ;
}
2007-07-05 07:35:14 +00:00
// --------------------
// - 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 ; }
} ;
2008-07-02 11:14:09 +00:00
// --------------
// 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.
2008-10-29 10:26:13 +00:00
# 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.
2008-07-02 11:14:09 +00:00
2008-10-29 09:25:50 +00:00
// ------------------------------
// - CommandSelectionChangeData -
// ------------------------------
class VCL_DLLPUBLIC CommandSelectionChangeData
{
private :
2011-01-12 15:07:10 +01:00
sal_uLong mnStart ;
sal_uLong mnEnd ;
2008-10-29 09:25:50 +00:00
public :
CommandSelectionChangeData ( ) ;
2011-01-12 15:07:10 +01:00
CommandSelectionChangeData ( sal_uLong nStart , sal_uLong nEnd ) ;
2008-10-29 09:25:50 +00:00
2011-01-12 15:07:10 +01:00
sal_uLong GetStart ( ) const { return mnStart ; }
sal_uLong GetEnd ( ) const { return mnEnd ; }
2008-10-29 09:25:50 +00:00
} ;
inline CommandSelectionChangeData : : CommandSelectionChangeData ( )
{
mnStart = mnEnd = 0 ;
}
2011-01-12 15:07:10 +01:00
inline CommandSelectionChangeData : : CommandSelectionChangeData ( sal_uLong nStart ,
sal_uLong nEnd )
2008-10-29 09:25:50 +00:00
{
mnStart = nStart ;
mnEnd = nEnd ;
}
2007-04-11 16:49:50 +00:00
// ----------------
// - CommandEvent -
// ----------------
2010-09-29 15:46:40 +08:00
# 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)
2013-05-06 14:20:11 +09:00
# define COMMAND_QUERYCHARPOSITION ((sal_uInt16)20)
2007-04-11 16:49:50 +00:00
class VCL_DLLPUBLIC CommandEvent
{
private :
Point maPos ;
void * mpData ;
2010-09-29 15:46:40 +08:00
sal_uInt16 mnCommand ;
sal_Bool mbMouseEvent ;
2007-04-11 16:49:50 +00:00
public :
CommandEvent ( ) ;
2010-09-29 15:46:40 +08:00
CommandEvent ( const Point & rMousePos , sal_uInt16 nCmd ,
sal_Bool bMEvt = sal_False , const void * pCmdData = NULL ) ;
2007-04-11 16:49:50 +00:00
2010-09-29 15:46:40 +08:00
sal_uInt16 GetCommand ( ) const { return mnCommand ; }
2007-04-11 16:49:50 +00:00
const Point & GetMousePosPixel ( ) const { return maPos ; }
2010-09-29 15:46:40 +08:00
sal_Bool IsMouseEvent ( ) const { return mbMouseEvent ; }
2007-04-11 16:49:50 +00:00
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 ;
2007-07-05 07:35:14 +00:00
const CommandDialogData * GetDialogData ( ) const ;
2008-07-02 11:14:09 +00:00
sal_Int16 GetMediaCommand ( ) const ;
2008-10-29 09:25:50 +00:00
const CommandSelectionChangeData * GetSelectionChangeData ( ) const ;
2007-04-11 16:49:50 +00:00
} ;
inline CommandEvent : : CommandEvent ( )
{
mpData = NULL ;
mnCommand = 0 ;
2010-09-29 15:46:40 +08:00
mbMouseEvent = sal_False ;
2007-04-11 16:49:50 +00:00
}
inline CommandEvent : : CommandEvent ( const Point & rMousePos ,
2010-09-29 15:46:40 +08:00
sal_uInt16 nCmd , sal_Bool bMEvt , const void * pCmdData ) :
2007-04-11 16:49:50 +00:00
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 ;
}
2007-07-05 07:35:14 +00:00
inline const CommandDialogData * CommandEvent : : GetDialogData ( ) const
{
if ( mnCommand = = COMMAND_SHOWDIALOG )
return ( const CommandDialogData * ) mpData ;
else
return NULL ;
}
2008-07-02 11:14:09 +00:00
inline sal_Int16 CommandEvent : : GetMediaCommand ( ) const
{
if ( mnCommand = = COMMAND_MEDIA )
return * ( const sal_Int16 * ) ( mpData ) ;
else
return 0 ;
}
2008-10-29 09:25:50 +00:00
inline const CommandSelectionChangeData * CommandEvent : : GetSelectionChangeData ( ) const
{
if ( mnCommand = = COMMAND_SELECTIONCHANGE )
return ( const CommandSelectionChangeData * ) mpData ;
else
return NULL ;
}
2007-04-11 16:49:50 +00:00
# endif // _VCL_CMDEVT_HXX
2010-10-14 08:27:31 +02:00
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */