Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
DirectInputMouse Class Reference

#include <Win32DIMouse.h>

Inherits Mouse.

Public Member Functions

 DirectInputMouse (void)
 
virtual ~DirectInputMouse (void)
 
virtual void init (void)
 initialize the direct input mouse, extending functionality
 
virtual void reset (void)
 reset system
 
virtual void update (void)
 update the mouse data, extending functionality
 
virtual void setPosition (Int x, Int y)
 set position for mouse
 
virtual void setMouseLimits (void)
 update the limit extents the mouse can move in
 
virtual void setCursor (MouseCursor cursor)
 set mouse cursor
 
virtual void capture (void)
 capture the mouse
 
virtual void releaseCapture (void)
 release mouse capture
 
- Public Member Functions inherited from Mouse
 Mouse (void)
 
virtual ~Mouse (void)
 
virtual void parseIni (void)
 parse ini settings associated with mouse (do this before init()).
 
virtual void initCursorResources (void)=0
 needed so Win32 cursors can load resources before D3D device created.
 
virtual void createStreamMessages (void)
 
virtual void draw (void)
 draw the mouse
 
const MouseIOgetMouseStatus (void)
 get current mouse status
 
Int getCursorTooltipDelay ()
 
void setCursorTooltipDelay (Int delay)
 
void setCursorTooltip (UnicodeString tooltip, Int tooltipDelay=-1, const RGBColor *color=NULL, Real width=1.0f)
 set tooltip string at cursor
 
void setMouseText (UnicodeString text, const RGBAColorInt *color, const RGBAColorInt *dropColor)
 set the cursor text, NOT the tooltip text
 
MouseCursor getMouseCursor (void)
 get the current mouse cursor image type
 
virtual void setRedrawMode (RedrawMode mode)
 set cursor drawing method.
 
virtual RedrawMode getRedrawMode (void)
 
virtual void setVisibility (Bool visible)
 
Bool getVisibility (void)
 
void drawTooltip (void)
 draw the tooltip text
 
void drawCursorText (void)
 draw the mouse cursor text
 
Int getCursorIndex (const AsciiString &name)
 
void resetTooltipDelay (void)
 
void mouseNotifyResolutionChange (void)
 
Bool isClick (const ICoord2D *anchor, const ICoord2D *dest, UnsignedInt previousMouseClick, UnsignedInt currentMouseClick)
 
virtual ~Mouse (void)
 
virtual void Set_Cursor (int xhotspot, int yhotspot, ShapeSet const *cursor, int shape)=0
 
virtual void Hide_Mouse (void)=0
 
virtual void Show_Mouse (void)=0
 
virtual void Release_Mouse (void)=0
 
virtual void Capture_Mouse (void)=0
 
virtual bool Is_Captured (void) const =0
 
virtual void Conditional_Hide_Mouse (Rect region)=0
 
virtual void Conditional_Show_Mouse (void)=0
 
virtual int Get_Mouse_State (void) const =0
 
virtual int Get_Mouse_X (void) const =0
 
virtual int Get_Mouse_Y (void) const =0
 
virtual void Set_Mouse_XY (int xpos, int ypos)=0
 
virtual void Draw_Mouse (Surface *scr, bool issidebarsurface=false)=0
 
virtual void Erase_Mouse (Surface *scr, bool issidebarsurface=false)=0
 
virtual void Convert_Coordinate (int &x, int &y) const =0
 
- Public Member Functions inherited from SubsystemInterface
 SubsystemInterface ()
 
virtual ~SubsystemInterface ()
 
virtual void postProcessLoad ()
 
void UPDATE (void)
 
void DRAW (void)
 
AsciiString getName (void)
 
void setName (AsciiString name)
 

Protected Member Functions

virtual UnsignedByte getMouseEvent (MouseIO *result, Bool flush)
 device implementation to get mouse event
 
void openMouse (void)
 create the direct input mouse
 
void closeMouse (void)
 
void mapDirectInputMouse (MouseIO *mouse, DIDEVICEOBJECTDATA *mdat)
 map direct input mouse data to our own format
 
- Protected Member Functions inherited from Mouse
void updateMouseData ()
 update the mouse with the current device data
 
void processMouseEvent (Int eventToProcess)
 combine mouse events into final data
 
void checkForDrag (void)
 check for mouse drag
 
void moveMouse (Int x, Int y, Int relOrAbs)
 move mouse by delta or absolute
 

Protected Attributes

LPDIRECTINPUT8 m_pDirectInput
 pointer to direct input interface
 
LPDIRECTINPUTDEVICE8 m_pMouseDevice
 pointer to mouse device
 
- Protected Attributes inherited from Mouse
UnsignedByte m_numButtons
 number of buttons on this mouse
 
UnsignedByte m_numAxes
 number of axes this mouse has
 
Bool m_forceFeedback
 set to TRUE if mouse supprots force feedback
 
UnicodeString m_tooltipString
 tooltip text
 
DisplayStringm_tooltipDisplayString
 tooltipDisplayString
 
Bool m_displayTooltip
 
Bool m_isTooltipEmpty
 
MouseIO m_mouseEvents [NUM_MOUSE_EVENTS]
 for event list
 
MouseIO m_currMouse
 for current mouse data
 
MouseIO m_prevMouse
 for previous mouse data
 
Int m_minX
 mouse is locked to this region
 
Int m_maxX
 mouse is locked to this region
 
Int m_minY
 mouse is locked to this region
 
Int m_maxY
 mouse is locked to this region
 
UnsignedInt m_inputFrame
 frame input was gathered on
 
UnsignedInt m_deadInputFrame
 Frame which last input occured.
 
Bool m_inputMovesAbsolute
 
Bool m_visible
 
MouseCursor m_currentCursor
 current mouse cursor
 
DisplayStringm_cursorTextDisplayString
 text to display on the cursor (if specified)
 
RGBAColorInt m_cursorTextColor
 color of the cursor text
 
RGBAColorInt m_cursorTextDropColor
 color of the cursor text drop shadow
 
Int m_tooltipDelay
 millisecond delay for tooltips
 
Int m_highlightPos
 
UnsignedInt m_highlightUpdateStart
 
UnsignedInt m_stillTime
 
RGBAColorInt m_tooltipTextColor
 
RGBAColorInt m_tooltipBackColor
 
Int m_eventsThisFrame
 
- Protected Attributes inherited from SubsystemInterface
AsciiString m_name
 

Additional Inherited Members

- Public Types inherited from Mouse
enum  MouseCursor {
  INVALID_MOUSE_CURSOR = -1 , NONE = 0 , FIRST_CURSOR , NORMAL = FIRST_CURSOR ,
  ARROW , SCROLL , CROSS , MOVETO ,
  ATTACKMOVETO , ATTACK_OBJECT , FORCE_ATTACK_OBJECT , FORCE_ATTACK_GROUND ,
  BUILD_PLACEMENT , INVALID_BUILD_PLACEMENT , GENERIC_INVALID , SELECTING ,
  ENTER_FRIENDLY , ENTER_AGGRESSIVELY , SET_RALLY_POINT , GET_REPAIRED ,
  GET_HEALED , DO_REPAIR , RESUME_CONSTRUCTION , CAPTUREBUILDING ,
  SNIPE_VEHICLE , LASER_GUIDED_MISSILES , TANKHUNTER_TNT_ATTACK , STAB_ATTACK ,
  PLACE_REMOTE_CHARGE , PLACE_TIMED_CHARGE , DEFECTOR , DOCK ,
  FIRE_FLAME , FIRE_BOMB , PLACE_BEACON , DISGUISE_AS_VEHICLE ,
  WAYPOINT , OUTRANGE , STAB_ATTACK_INVALID , PLACE_CHARGE_INVALID ,
  HACK , PARTICLE_UPLINK_CANNON , NUM_MOUSE_CURSORS
}
 
enum  RedrawMode {
  RM_WINDOWS =0 , RM_W3D , RM_POLYGON , RM_DX8 ,
  RM_MAX
}
 
- Public Attributes inherited from Mouse
CursorInfo m_cursorInfo [NUM_MOUSE_CURSORS]
 
AsciiString m_tooltipFontName
 tooltip font
 
Int m_tooltipFontSize
 tooltip font
 
Bool m_tooltipFontIsBold
 tooltip font
 
Bool m_tooltipAnimateBackground
 animate the background with the text
 
Int m_tooltipFillTime
 milliseconds to animate tooltip
 
Int m_tooltipDelayTime
 milliseconds to wait before showing tooltip
 
Real m_tooltipWidth
 default tooltip width in screen width %
 
Real m_lastTooltipWidth
 
RGBAColorInt m_tooltipColorText
 
RGBAColorInt m_tooltipColorHighlight
 
RGBAColorInt m_tooltipColorShadow
 
RGBAColorInt m_tooltipColorBackground
 
RGBAColorInt m_tooltipColorBorder
 
RedrawMode m_currentRedrawMode
 mouse cursor drawing method
 
Bool m_useTooltipAltTextColor
 draw tooltip text with house colors?
 
Bool m_useTooltipAltBackColor
 draw tooltip backgrounds with house colors?
 
Bool m_adjustTooltipAltColor
 adjust house colors (darker/brighter) for tooltips?
 
Bool m_orthoCamera
 use an ortho camera for 3D cursors?
 
Real m_orthoZoom
 uniform zoom to apply to 3D cursors when using ortho cameras
 
UnsignedInt m_dragTolerance
 
UnsignedInt m_dragTolerance3D
 
UnsignedInt m_dragToleranceMS
 
- Static Public Attributes inherited from Mouse
static const char * RedrawModeName [RM_MAX]
 
- Protected Types inherited from Mouse
enum  { NUM_MOUSE_EVENTS = 256 }
 

Detailed Description

Direct input implementation for the mouse device

Definition at line 62 of file Win32DIMouse.h.

Constructor & Destructor Documentation

◆ DirectInputMouse()

DirectInputMouse::DirectInputMouse ( void )

Definition at line 323 of file Win32DIMouse.cpp.

◆ ~DirectInputMouse()

DirectInputMouse::~DirectInputMouse ( void )
virtual

Definition at line 333 of file Win32DIMouse.cpp.

Member Function Documentation

◆ capture()

void DirectInputMouse::capture ( void )
virtual

capture the mouse

Capture the mouse to our application

Implements Mouse.

Definition at line 498 of file Win32DIMouse.cpp.

◆ closeMouse()

void DirectInputMouse::closeMouse ( void )
protected

close and release mouse resources

Release any resources for our direct input mouse

Definition at line 165 of file Win32DIMouse.cpp.

◆ getMouseEvent()

UnsignedByte DirectInputMouse::getMouseEvent ( MouseIO * result,
Bool flush )
protectedvirtual

device implementation to get mouse event

Get a single mouse event from the device

Implements Mouse.

Definition at line 196 of file Win32DIMouse.cpp.

◆ init()

void DirectInputMouse::init ( void )
virtual

initialize the direct input mouse, extending functionality

Initialize the direct input mouse device

Reimplemented from Mouse.

Definition at line 345 of file Win32DIMouse.cpp.

◆ mapDirectInputMouse()

void DirectInputMouse::mapDirectInputMouse ( MouseIO * mouse,
DIDEVICEOBJECTDATA * mdat )
protected

map direct input mouse data to our own format

Map the direct input codes to our own mouse format

Definition at line 278 of file Win32DIMouse.cpp.

◆ openMouse()

void DirectInputMouse::openMouse ( void )
protected

create the direct input mouse

Create our direct input object, mouse device, and initialize it to the data formats we want

Definition at line 44 of file Win32DIMouse.cpp.

◆ releaseCapture()

void DirectInputMouse::releaseCapture ( void )
virtual

release mouse capture

Release the mouse capture for our app window

Implements Mouse.

Definition at line 508 of file Win32DIMouse.cpp.

◆ reset()

void DirectInputMouse::reset ( void )
virtual

reset system

Reset direct input mouse

Reimplemented from Mouse.

Definition at line 367 of file Win32DIMouse.cpp.

◆ setCursor()

void DirectInputMouse::setCursor ( MouseCursor cursor)
virtual

set mouse cursor

Super basic simplistic cursor

Implements Mouse.

Definition at line 458 of file Win32DIMouse.cpp.

◆ setMouseLimits()

void DirectInputMouse::setMouseLimits ( void )
virtual

update the limit extents the mouse can move in

Set the limits which the mouse is allowed to move around in. We will limit it to the client area, and if we are windowed we will allow for the mouse to move within the title bar at the top of the window

Reimplemented from Mouse.

Definition at line 407 of file Win32DIMouse.cpp.

◆ setPosition()

void DirectInputMouse::setPosition ( Int x,
Int y )
virtual

set position for mouse

set the cursor position for windows OS

Reimplemented from Mouse.

Definition at line 438 of file Win32DIMouse.cpp.

◆ update()

void DirectInputMouse::update ( void )
virtual

update the mouse data, extending functionality

Update the mouse position and button data, this is called once per frame in the engine. NOTE that this routine is extendion functionality that we may need that is direct input specific, not replacing

Todo
we need to really visit this system and possibly come up with our own multi-threaded cursor etc

Reimplemented from Mouse.

Definition at line 380 of file Win32DIMouse.cpp.

Member Data Documentation

◆ m_pDirectInput

LPDIRECTINPUT8 DirectInputMouse::m_pDirectInput
protected

pointer to direct input interface

Definition at line 95 of file Win32DIMouse.h.

◆ m_pMouseDevice

LPDIRECTINPUTDEVICE8 DirectInputMouse::m_pMouseDevice
protected

pointer to mouse device

Definition at line 96 of file Win32DIMouse.h.


The documentation for this class was generated from the following files: