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
2013-10-23 19:10:20 +02:00
# ifndef INCLUDED_VCL_CMDEVT_HXX
# define INCLUDED_VCL_CMDEVT_HXX
2007-04-11 16:49:50 +00:00
# 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>
2014-02-25 19:06:16 +01:00
2007-04-11 16:49:50 +00:00
// - CommandExtTextInputData -
2014-02-25 19:06:16 +01:00
2007-04-11 16:49:50 +00:00
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 :
2013-08-11 17:00:11 +01:00
OUString maText ;
2014-01-12 10:26:13 +00:00
sal_uInt16 * mpTextAttr ;
sal_Int32 mnCursorPos ;
sal_uInt16 mnCursorFlags ;
bool mbOnlyCursor ;
2007-04-11 16:49:50 +00:00
public :
2013-08-11 17:00:11 +01:00
CommandExtTextInputData ( const OUString & rText ,
2010-09-29 15:46:40 +08:00
const sal_uInt16 * pTextAttr ,
2013-08-01 12:38:47 +02:00
sal_Int32 nCursorPos ,
2010-09-29 15:46:40 +08:00
sal_uInt16 nCursorFlags ,
2014-01-12 10:26:13 +00:00
bool bOnlyCursor ) ;
2007-04-11 16:49:50 +00:00
CommandExtTextInputData ( const CommandExtTextInputData & rData ) ;
~ CommandExtTextInputData ( ) ;
2013-08-11 17:00:11 +01:00
const OUString & GetText ( ) const { return maText ; }
2014-01-12 10:26:13 +00:00
const sal_uInt16 * GetTextAttr ( ) const { return mpTextAttr ; }
sal_uInt16 GetCharTextAttr ( sal_Int32 nIndex ) const
{
assert ( nIndex > = 0 ) ;
if ( mpTextAttr & & nIndex < maText . getLength ( ) & & nIndex > = 0 )
return mpTextAttr [ nIndex ] ;
else
return 0 ;
}
2007-04-11 16:49:50 +00:00
2014-01-12 10:26:13 +00:00
sal_Int32 GetCursorPos ( ) const { return mnCursorPos ; }
bool IsCursorVisible ( ) const { return ( mnCursorFlags & EXTTEXTINPUT_CURSOR_INVISIBLE ) = = 0 ; }
bool IsCursorOverwrite ( ) const { return ( mnCursorFlags & EXTTEXTINPUT_CURSOR_OVERWRITE ) ! = 0 ; }
sal_uInt16 GetCursorFlags ( ) const { return mnCursorFlags ; }
bool IsOnlyCursorChanged ( ) const { return mbOnlyCursor ; }
} ;
2007-04-11 16:49:50 +00:00
2014-02-25 19:06:16 +01:00
2007-04-11 16:49:50 +00:00
// - CommandInputContextData -
2014-02-25 19:06:16 +01:00
2007-04-11 16:49:50 +00:00
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 ;
}
2014-02-25 19:06:16 +01:00
2007-04-11 16:49:50 +00:00
// - CommandWheelData -
2014-02-25 19:06:16 +01:00
2007-04-11 16:49:50 +00:00
2014-10-31 07:26:39 +02:00
enum class CommandWheelMode
{
NONE = 0 ,
SCROLL = 1 ,
ZOOM = 2 ,
ZOOM_SCALE = 3 ,
DATAZOOM = 4
} ;
2007-04-11 16:49:50 +00:00
2014-10-31 07:26:39 +02:00
// Magic value used in mnLines field in CommandWheelData
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 :
2014-10-31 07:26:39 +02:00
long mnDelta ;
long mnNotchDelta ;
sal_uLong mnLines ;
CommandWheelMode mnWheelMode ;
sal_uInt16 mnCode ;
bool mbHorz ;
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 ,
2014-10-31 07:26:39 +02:00
CommandWheelMode nWheelMode , sal_uInt16 nKeyModifier ,
2014-01-22 11:28:57 +01:00
bool bHorz = false , bool bDeltaIsPixel = false ) ;
2007-04-11 16:49:50 +00:00
long GetDelta ( ) const { return mnDelta ; }
long GetNotchDelta ( ) const { return mnNotchDelta ; }
2014-10-31 07:26:39 +02:00
sal_uLong GetScrollLines ( ) const { return mnLines ; }
2014-01-22 11:28:57 +01:00
bool IsHorz ( ) const { return mbHorz ; }
bool IsDeltaPixel ( ) const { return mbDeltaIsPixel ; }
2007-04-11 16:49:50 +00:00
2014-10-31 07:26:39 +02:00
CommandWheelMode GetMode ( ) const { return mnWheelMode ; }
2007-04-11 16:49:50 +00:00
2014-10-31 07:26:39 +02: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 ) ; }
2014-01-22 11:28:57 +01:00
bool IsMod1 ( ) const
2007-04-11 16:49:50 +00:00
{ return ( ( mnCode & KEY_MOD1 ) ! = 0 ) ; }
2014-01-22 11:28:57 +01:00
bool IsMod2 ( ) const
2007-04-11 16:49:50 +00:00
{ return ( ( mnCode & KEY_MOD2 ) ! = 0 ) ; }
2014-01-22 11:28:57 +01:00
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 ;
2014-10-31 07:26:39 +02:00
mnWheelMode = CommandWheelMode : : NONE ;
2007-04-11 16:49:50 +00:00
mnCode = 0 ;
2014-01-22 11:28:57 +01:00
mbHorz = false ;
mbDeltaIsPixel = 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 ,
2014-10-31 07:26:39 +02:00
CommandWheelMode nWheelMode , sal_uInt16 nKeyModifier ,
2014-01-22 11:28:57 +01:00
bool bHorz , bool bDeltaIsPixel )
2007-04-11 16:49:50 +00:00
{
mnDelta = nWheelDelta ;
mnNotchDelta = nWheelNotchDelta ;
mnLines = nScrollLines ;
2014-10-31 07:26:39 +02:00
mnWheelMode = nWheelMode ;
2007-04-11 16:49:50 +00:00
mnCode = nKeyModifier ;
mbHorz = bHorz ;
2010-02-26 20:50:25 +01:00
mbDeltaIsPixel = bDeltaIsPixel ;
2007-04-11 16:49:50 +00:00
}
2014-02-25 19:06:16 +01:00
2007-04-11 16:49:50 +00:00
// - CommandScrollData -
2014-02-25 19:06:16 +01:00
2007-04-11 16:49:50 +00:00
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 ;
}
2014-02-25 19:06:16 +01:00
2007-04-11 16:49:50 +00:00
// - CommandModKeyData -
2014-02-25 19:06:16 +01:00
2007-04-11 16:49:50 +00:00
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
2014-01-22 11:28:57 +01:00
bool IsShift ( ) const { return ( mnCode & MODKEY_SHIFT ) ! = 0 ; }
bool IsMod1 ( ) const { return ( mnCode & MODKEY_MOD1 ) ! = 0 ; }
bool IsMod2 ( ) const { return ( mnCode & MODKEY_MOD2 ) ! = 0 ; }
bool IsMod3 ( ) const { return ( mnCode & MODKEY_MOD3 ) ! = 0 ; }
2010-09-29 15:46:40 +08:00
2014-01-22 11:28:57 +01:00
bool IsLeftShift ( ) const { return ( mnCode & MODKEY_LSHIFT ) ! = 0 ; }
bool IsLeftMod1 ( ) const { return ( mnCode & MODKEY_LMOD1 ) ! = 0 ; }
bool IsLeftMod2 ( ) const { return ( mnCode & MODKEY_LMOD2 ) ! = 0 ; }
bool IsLeftMod3 ( ) const { return ( mnCode & MODKEY_LMOD3 ) ! = 0 ; }
2010-09-29 15:46:40 +08:00
2014-01-22 11:28:57 +01:00
bool IsRightShift ( ) const { return ( mnCode & MODKEY_RSHIFT ) ! = 0 ; }
bool IsRightMod1 ( ) const { return ( mnCode & MODKEY_RMOD1 ) ! = 0 ; }
bool IsRightMod2 ( ) const { return ( mnCode & MODKEY_RMOD2 ) ! = 0 ; }
bool IsRightMod3 ( ) const { return ( mnCode & MODKEY_RMOD3 ) ! = 0 ; }
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 ;
}
2014-02-25 19:06:16 +01:00
2007-07-05 07:35:14 +00:00
// - CommanDialogData -
2014-02-25 19:06:16 +01:00
2007-07-05 07:35:14 +00:00
# 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
2015-01-15 11:10:03 +00:00
class VCL_DLLPUBLIC CommandMediaData
{
sal_Int16 m_nMediaId ;
bool m_bPassThroughToOS ;
public :
CommandMediaData ( sal_Int16 nMediaId )
: m_nMediaId ( nMediaId )
, m_bPassThroughToOS ( true )
{
}
sal_Int16 GetMediaId ( ) const { return m_nMediaId ; }
void SetPassThroughToOS ( bool bPassThroughToOS ) { m_bPassThroughToOS = bPassThroughToOS ; }
bool GetPassThroughToOS ( ) const { return m_bPassThroughToOS ; }
} ;
2014-02-25 19:06:16 +01: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 ;
}
2015-03-23 21:07:10 +00:00
class VCL_DLLPUBLIC CommandSwipeData
{
double mnVelocityX ;
double mnVelocityY ;
public :
CommandSwipeData ( )
: mnVelocityX ( 0 )
, mnVelocityY ( 0 )
{
}
CommandSwipeData ( double nVelocityX , double nVelocityY )
: mnVelocityX ( nVelocityX )
, mnVelocityY ( nVelocityY )
{
}
double getVelocityX ( ) const { return mnVelocityX ; }
double getVelocityY ( ) const { return mnVelocityY ; }
} ;
2014-02-25 19:06:16 +01:00
2015-03-26 10:20:34 +00:00
class VCL_DLLPUBLIC CommandLongPressData
{
double mnX ;
double mnY ;
public :
CommandLongPressData ( )
: mnX ( 0 )
, mnY ( 0 )
{
}
CommandLongPressData ( double nX , double nY )
: mnX ( nX )
, mnY ( nY )
{
}
double getX ( ) const { return mnX ; }
double getY ( ) const { return mnY ; }
} ;
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)
2015-03-23 21:07:10 +00:00
# define COMMAND_SWIPE ((sal_uInt16)21)
2015-03-26 10:20:34 +00:00
# define COMMAND_LONGPRESS ((sal_uInt16)22)
2007-04-11 16:49:50 +00:00
class VCL_DLLPUBLIC CommandEvent
{
private :
Point maPos ;
void * mpData ;
2015-01-14 10:50:58 +00:00
sal_uInt16 mnCommand ;
2014-01-22 11:28:57 +01:00
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 ,
2014-01-22 11:28:57 +01:00
bool bMEvt = false , const void * pCmdData = NULL ) ;
2007-04-11 16:49:50 +00:00
2015-01-14 10:50:58 +00:00
sal_uInt16 GetCommand ( ) const { return mnCommand ; }
2007-04-11 16:49:50 +00:00
const Point & GetMousePosPixel ( ) const { return maPos ; }
2014-01-22 11:28:57 +01:00
bool IsMouseEvent ( ) const { return mbMouseEvent ; }
2015-01-14 10:50:58 +00:00
void * GetEventData ( ) const { return mpData ; }
2007-04-11 16:49:50 +00:00
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 ;
2015-01-15 11:10:03 +00:00
CommandMediaData * GetMediaData ( ) const ;
2008-10-29 09:25:50 +00:00
const CommandSelectionChangeData * GetSelectionChangeData ( ) const ;
2015-03-23 21:07:10 +00:00
const CommandSwipeData * GetSwipeData ( ) const ;
2015-03-26 10:20:34 +00:00
const CommandLongPressData * GetLongPressData ( ) const ;
2007-04-11 16:49:50 +00:00
} ;
inline CommandEvent : : CommandEvent ( )
{
mpData = NULL ;
mnCommand = 0 ;
2014-01-22 11:28:57 +01:00
mbMouseEvent = false ;
2007-04-11 16:49:50 +00:00
}
inline CommandEvent : : CommandEvent ( const Point & rMousePos ,
2014-01-22 11:28:57 +01:00
sal_uInt16 nCmd , bool bMEvt , const void * pCmdData ) :
2007-04-11 16:49:50 +00:00
maPos ( rMousePos )
{
2015-03-29 09:17:00 +02:00
mpData = const_cast < void * > ( pCmdData ) ;
2007-04-11 16:49:50 +00:00
mnCommand = nCmd ;
mbMouseEvent = bMEvt ;
}
inline const CommandExtTextInputData * CommandEvent : : GetExtTextInputData ( ) const
{
if ( mnCommand = = COMMAND_EXTTEXTINPUT )
2015-03-28 19:08:26 +01:00
return static_cast < const CommandExtTextInputData * > ( mpData ) ;
2007-04-11 16:49:50 +00:00
else
return NULL ;
}
inline const CommandInputContextData * CommandEvent : : GetInputContextChangeData ( ) const
{
if ( mnCommand = = COMMAND_INPUTCONTEXTCHANGE )
2015-03-28 19:08:26 +01:00
return static_cast < const CommandInputContextData * > ( mpData ) ;
2007-04-11 16:49:50 +00:00
else
return NULL ;
}
inline const CommandWheelData * CommandEvent : : GetWheelData ( ) const
{
if ( mnCommand = = COMMAND_WHEEL )
2015-03-28 19:08:26 +01:00
return static_cast < const CommandWheelData * > ( mpData ) ;
2007-04-11 16:49:50 +00:00
else
return NULL ;
}
inline const CommandScrollData * CommandEvent : : GetAutoScrollData ( ) const
{
if ( mnCommand = = COMMAND_AUTOSCROLL )
2015-03-28 19:08:26 +01:00
return static_cast < const CommandScrollData * > ( mpData ) ;
2007-04-11 16:49:50 +00:00
else
return NULL ;
}
inline const CommandModKeyData * CommandEvent : : GetModKeyData ( ) const
{
if ( mnCommand = = COMMAND_MODKEYCHANGE )
2015-03-28 19:08:26 +01:00
return static_cast < const CommandModKeyData * > ( mpData ) ;
2007-04-11 16:49:50 +00:00
else
return NULL ;
}
2007-07-05 07:35:14 +00:00
inline const CommandDialogData * CommandEvent : : GetDialogData ( ) const
{
if ( mnCommand = = COMMAND_SHOWDIALOG )
2015-03-28 19:08:26 +01:00
return static_cast < const CommandDialogData * > ( mpData ) ;
2007-07-05 07:35:14 +00:00
else
return NULL ;
}
2015-01-15 11:10:03 +00:00
inline CommandMediaData * CommandEvent : : GetMediaData ( ) const
2008-07-02 11:14:09 +00:00
{
if ( mnCommand = = COMMAND_MEDIA )
2015-03-28 19:08:26 +01:00
return static_cast < CommandMediaData * > ( mpData ) ;
2008-07-02 11:14:09 +00:00
else
2015-01-15 11:10:03 +00:00
return NULL ;
2008-07-02 11:14:09 +00:00
}
2008-10-29 09:25:50 +00:00
inline const CommandSelectionChangeData * CommandEvent : : GetSelectionChangeData ( ) const
{
if ( mnCommand = = COMMAND_SELECTIONCHANGE )
2015-03-28 19:08:26 +01:00
return static_cast < const CommandSelectionChangeData * > ( mpData ) ;
2008-10-29 09:25:50 +00:00
else
return NULL ;
}
2015-03-23 21:07:10 +00:00
inline const CommandSwipeData * CommandEvent : : GetSwipeData ( ) const
{
if ( mnCommand = = COMMAND_SWIPE )
2015-03-28 19:08:26 +01:00
return static_cast < const CommandSwipeData * > ( mpData ) ;
2015-03-23 21:07:10 +00:00
else
return NULL ;
}
2008-10-29 09:25:50 +00:00
2015-03-26 10:20:34 +00:00
inline const CommandLongPressData * CommandEvent : : GetLongPressData ( ) const
{
if ( mnCommand = = COMMAND_LONGPRESS )
2015-03-28 19:08:26 +01:00
return static_cast < const CommandLongPressData * > ( mpData ) ;
2015-03-26 10:20:34 +00:00
else
return NULL ;
}
2013-10-23 19:10:20 +02:00
# endif // INCLUDED_VCL_CMDEVT_HXX
2010-10-14 08:27:31 +02:00
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */