You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
674 lines
25 KiB
674 lines
25 KiB
6 years ago
|
/***************************************************************
|
||
|
* Name: SFEvents.h
|
||
|
* Purpose: Defines shape events classes
|
||
|
* Author: Michal Bližňák (michal.bliznak@tiscali.cz)
|
||
|
* Created: 2007-09-11
|
||
|
* Copyright: Michal Bližňák
|
||
|
* License: wxWidgets license (www.wxwidgets.org)
|
||
|
* Notes:
|
||
|
**************************************************************/
|
||
|
|
||
|
#ifndef _WXSFEVENTS_H
|
||
|
#define _WXSFEVENTS_H
|
||
|
|
||
|
#include <wx/event.h>
|
||
|
#include <wx/dnd.h>
|
||
|
|
||
|
#include <wx/wxsf/Defs.h>
|
||
|
#include <wx/wxsf/ShapeBase.h>
|
||
|
|
||
|
class WXDLLIMPEXP_SF wxSFShapeEvent;
|
||
|
class WXDLLIMPEXP_SF wxSFShapeTextEvent;
|
||
|
class WXDLLIMPEXP_SF wxSFShapeDropEvent;
|
||
|
class WXDLLIMPEXP_SF wxSFShapePasteEvent;
|
||
|
class WXDLLIMPEXP_SF wxSFShapeHandleEvent;
|
||
|
class WXDLLIMPEXP_SF wxSFShapeKeyEvent;
|
||
|
class WXDLLIMPEXP_SF wxSFShapeMouseEvent;
|
||
|
class WXDLLIMPEXP_SF wxSFShapeChildDropEvent;
|
||
|
|
||
|
BEGIN_DECLARE_EVENT_TYPES()
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_LINE_DONE, 7770)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_TEXT_CHANGE, 7771)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_ON_DROP, 7772)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_ON_PASTE, 7773)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_LEFT_DOWN, 7774)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_LEFT_DCLICK, 7775)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_RIGHT_DOWN, 7776)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_RIGHT_DCLICK, 7777)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_DRAG_BEGIN, 7778)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_DRAG, 7779)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_DRAG_END, 7780)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_HANDLE_BEGIN, 7781)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_HANDLE, 7782)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_HANDLE_END, 7783)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_KEYDOWN, 7784)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_MOUSE_ENTER, 7785)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_MOUSE_OVER, 7786)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_MOUSE_LEAVE, 7787)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_SHAPE_CHILD_DROP, 7788)
|
||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_SF, wxEVT_SF_LINE_BEFORE_DONE, 7789)
|
||
|
END_DECLARE_EVENT_TYPES()
|
||
|
|
||
|
typedef void (wxEvtHandler::*wxSFShapeEventFunction)(wxSFShapeEvent&);
|
||
|
typedef void (wxEvtHandler::*wxSFShapeTextEventFunction)(wxSFShapeTextEvent&);
|
||
|
typedef void (wxEvtHandler::*wxSFShapeDropEventFunction)(wxSFShapeDropEvent&);
|
||
|
typedef void (wxEvtHandler::*wxSFShapePasteEventFunction)(wxSFShapePasteEvent&);
|
||
|
typedef void (wxEvtHandler::*wxSFShapeHandleEventFunction)(wxSFShapeHandleEvent&);
|
||
|
typedef void (wxEvtHandler::*wxSFShapeKeyEventFunction)(wxSFShapeKeyEvent&);
|
||
|
typedef void (wxEvtHandler::*wxSFShapeMouseEventFunction)(wxSFShapeMouseEvent&);
|
||
|
typedef void (wxEvtHandler::*wxSFShapeChildDropEventFunction)(wxSFShapeChildDropEvent&);
|
||
|
|
||
|
#define wxSFShapeEventHandler(func) \
|
||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSFShapeEventFunction, &func)
|
||
|
|
||
|
#define wxSFShapeTextEventHandler(func) \
|
||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSFShapeTextEventFunction, &func)
|
||
|
|
||
|
#define wxSFShapeDropEventHandler(func) \
|
||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSFShapeDropEventFunction, &func)
|
||
|
|
||
|
#define wxSFShapePasteEventHandler(func) \
|
||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSFShapePasteEventFunction, &func)
|
||
|
|
||
|
#define wxSFShapeHandleEventHandler(func) \
|
||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSFShapeHandleEventFunction, &func)
|
||
|
|
||
|
#define wxSFShapeKeyEventHandler(func) \
|
||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSFShapeKeyEventFunction, &func)
|
||
|
|
||
|
#define wxSFShapeMouseEventHandler(func) \
|
||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSFShapeMouseEventFunction, &func)
|
||
|
|
||
|
#define wxSFShapeChildDropEventHandler(func) \
|
||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSFShapeChildDropEventFunction, &func)
|
||
|
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_LINE_DONE. This event occures
|
||
|
* when the interactive connection creation process is finished. The generated event
|
||
|
* object holds a pointer to the new line shape. */
|
||
|
#define EVT_SF_LINE_DONE(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_LINE_DONE, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_TEXT_CHANGE. This event occures
|
||
|
* when the editable text shape's content is changed. */
|
||
|
#define EVT_SF_TEXT_CHANGE(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_TEXT_CHANGE, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeTextEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_ON_DROP. This event occures
|
||
|
* when dragged shapes (via D&D operation) are dropped to a canvas. */
|
||
|
#define EVT_SF_ON_DROP(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_ON_DROP, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeDropEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_ON_PASTE. This event occures
|
||
|
* when shapes stored in the clipboard are pasted to a canvas. */
|
||
|
#define EVT_SF_ON_PASTE(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_ON_PASTE, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapePasteEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_LEFT_DOWN. This event occures
|
||
|
* when the shape is clicked by a left mouse button (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_LEFT_DOWN(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_LEFT_DOWN, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeMouseEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_LEFT_DCLICK. This event occures
|
||
|
* when the shape is double-clicked by a left mouse button (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_LEFT_DCLICK(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_LEFT_DCLICK, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeMouseEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_RIGHT_DOWN. This event occures
|
||
|
* when the shape is clicked by a right mouse button (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_RIGHT_DOWN(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_RIGHT_DOWN, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeMouseEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_RIGHT_DCLICK. This event occures
|
||
|
* when the shape is double-clicked by a right mouse button (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_RIGHT_DCLICK(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_RIGHT_DCLICK, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeMouseEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_DRAG_BEGIN. This event occures
|
||
|
* when the shape has started to be dragged. (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_DRAG_BEGIN(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_DRAG_BEGIN, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeMouseEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_DRAG. This event occures
|
||
|
* when the shape is dragging (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_DRAG(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_DRAG, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeMouseEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_DRAG_END. This event occures
|
||
|
* when the shape's dragging was finished (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_DRAG_END(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_DRAG_END, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeMouseEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_HANDLE_BEGIN. This event occures
|
||
|
* when the shape's handle has started to be dragged. (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_HANDLE_BEGIN(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_HANDLE_BEGIN, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeHandleEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_HANDLE. This event occures
|
||
|
* when the shape's handle is dragging (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_HANDLE(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_HANDLE, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeHandleEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_HANDLE_END. This event occures
|
||
|
* when the shape's dragging was finished (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_HANDLE_END(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_HANDLE_END, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeHandleEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_KEYDOWN. This event occures
|
||
|
* when the any key is pressed on selected shape (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_KEYDOWN(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_KEYDOWN, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeKeyEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_MOUSE_ENTER. This event occures
|
||
|
* when the mouse cursor enters the shape's area (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_MOUSE_ENTER(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_MOUSE_ENTER, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeMouseEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_MOUSE_OVER. This event occures
|
||
|
* when the mouse cursor is moving over the shape's area (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_MOUSE_OVER(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_MOUSE_OVER, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeMouseEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_MOUSE_LEAVE. This event occures
|
||
|
* when the mouse cursor leaves the shape's area (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_MOUSE_LEAVE(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_MOUSE_LEAVE, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeMouseEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_SHAPE_CHILD_DROP. This event occures
|
||
|
* when another shape is dropped onto the new parent shape (sfsEMIT_EVENTS shape style must be in use). */
|
||
|
#define EVT_SF_SHAPE_CHILD_DROP(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_SHAPE_CHILD_DROP, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeChildDropEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*! \brief Event table macro mapping event wxEVT_SF_LINE_BEFORE_DONE. This event occures
|
||
|
* when the interactive connection creation process is finished but this has been added in
|
||
|
* order to allow the developper to cancel the creation if required. The generated event
|
||
|
* object holds a pointer to the new line shape. */
|
||
|
#define EVT_SF_LINE_BEFORE_DONE(id, fn) \
|
||
|
DECLARE_EVENT_TABLE_ENTRY( \
|
||
|
wxEVT_SF_LINE_BEFORE_DONE, id, wxID_ANY, \
|
||
|
(wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent( wxSFShapeEventFunction, &fn ), \
|
||
|
(wxObject *) NULL \
|
||
|
),
|
||
|
|
||
|
/*!
|
||
|
* \brief Class encapsulates generic wxSF shape's event.
|
||
|
*/
|
||
|
class WXDLLIMPEXP_SF wxSFShapeEvent : public wxEvent
|
||
|
{
|
||
|
public:
|
||
|
/*! \brief Constructor */
|
||
|
wxSFShapeEvent(wxEventType cmdType = wxEVT_NULL, int id = 0);
|
||
|
/*! \brief Copy constructor */
|
||
|
wxSFShapeEvent(const wxSFShapeEvent& obj);
|
||
|
/*! \brief Destructor */
|
||
|
virtual ~wxSFShapeEvent();
|
||
|
|
||
|
// public member data accessors
|
||
|
/*!
|
||
|
* \brief Insert a shape object to the event object.
|
||
|
* \param shape Pointer to the shape object
|
||
|
*/
|
||
|
void SetShape(wxSFShapeBase* shape){m_Shape = shape;}
|
||
|
/*!
|
||
|
* \brief Get a shape object from the event object.
|
||
|
* \return Pointer to the shape object.
|
||
|
*/
|
||
|
wxSFShapeBase* GetShape(){return m_Shape;}
|
||
|
|
||
|
/*! \brief Clone this event object and return pointer to the new instance. */
|
||
|
wxEvent* Clone() const { return new wxSFShapeEvent(*this); }
|
||
|
|
||
|
/*!
|
||
|
* \brief Check if the event has been vetoed or not.
|
||
|
* \return TRUE if the event has been vetoed.
|
||
|
*/
|
||
|
bool IsVetoed() {return m_Vetoed;}
|
||
|
|
||
|
/*!
|
||
|
* \brief Set the veto flag to true.
|
||
|
*/
|
||
|
void Veto() {m_Vetoed = true;};
|
||
|
|
||
|
|
||
|
private:
|
||
|
// private data members
|
||
|
/*! \brief Pointer to stored shape object. */
|
||
|
wxSFShapeBase* m_Shape;
|
||
|
bool m_Vetoed;
|
||
|
};
|
||
|
|
||
|
/*!
|
||
|
* \brief Class encapsulates wxEVT_SF_SHAPE_KEYDOWN event.
|
||
|
*/
|
||
|
class WXDLLIMPEXP_SF wxSFShapeKeyEvent : public wxEvent
|
||
|
{
|
||
|
public:
|
||
|
/*! \brief Constructor */
|
||
|
wxSFShapeKeyEvent(wxEventType cmdType = wxEVT_NULL, int id = 0);
|
||
|
/*! \brief Copy constructor */
|
||
|
wxSFShapeKeyEvent(const wxSFShapeKeyEvent& obj);
|
||
|
/*! \brief Destructor */
|
||
|
virtual ~wxSFShapeKeyEvent();
|
||
|
|
||
|
// public member data accessors
|
||
|
/*!
|
||
|
* \brief Insert a shape object to the event object.
|
||
|
* \param shape Pointer to the shape object
|
||
|
*/
|
||
|
void SetShape(wxSFShapeBase* shape){m_Shape = shape;}
|
||
|
/*!
|
||
|
* \brief Get a shape object from the event object.
|
||
|
* \return Pointer to the shape object.
|
||
|
*/
|
||
|
wxSFShapeBase* GetShape(){return m_Shape;}
|
||
|
/**
|
||
|
* \brief Set key code.
|
||
|
* \param KeyCode Code of pressed key
|
||
|
*/
|
||
|
void SetKeyCode(int KeyCode) {this->m_KeyCode = KeyCode;}
|
||
|
/**
|
||
|
* \brief Get key code.
|
||
|
* \return Code of pressed key
|
||
|
*/
|
||
|
int GetKeyCode() const {return m_KeyCode;}
|
||
|
|
||
|
|
||
|
/*! \brief Clone this event object and return pointer to the new instance. */
|
||
|
wxEvent* Clone() const { return new wxSFShapeKeyEvent(*this); }
|
||
|
|
||
|
|
||
|
private:
|
||
|
// private data members
|
||
|
/*! \brief Pointer to stored shape object. */
|
||
|
wxSFShapeBase* m_Shape;
|
||
|
/*! \brief Code of pressed key. */
|
||
|
int m_KeyCode;
|
||
|
};
|
||
|
|
||
|
/*!
|
||
|
* \brief Class encapsulates mouse events generated by a shape.
|
||
|
*/
|
||
|
class WXDLLIMPEXP_SF wxSFShapeMouseEvent : public wxEvent
|
||
|
{
|
||
|
public:
|
||
|
/*! \brief Constructor */
|
||
|
wxSFShapeMouseEvent(wxEventType cmdType = wxEVT_NULL, int id = 0);
|
||
|
/*! \brief Copy constructor */
|
||
|
wxSFShapeMouseEvent(const wxSFShapeMouseEvent& obj);
|
||
|
/*! \brief Destructor */
|
||
|
virtual ~wxSFShapeMouseEvent();
|
||
|
|
||
|
// public member data accessors
|
||
|
/*!
|
||
|
* \brief Insert a shape object to the event object.
|
||
|
* \param shape Pointer to the shape object
|
||
|
*/
|
||
|
void SetShape(wxSFShapeBase* shape){m_Shape = shape;}
|
||
|
/*!
|
||
|
* \brief Get a shape object from the event object.
|
||
|
* \return Pointer to the shape object.
|
||
|
*/
|
||
|
wxSFShapeBase* GetShape(){return m_Shape;}
|
||
|
/**
|
||
|
* \brief Set absolute position of mouse cursor.
|
||
|
* \param MousePosition Mouse cursor's absolute position
|
||
|
*/
|
||
|
void SetMousePosition(const wxPoint& MousePosition) {this->m_MousePosition = MousePosition;}
|
||
|
/**
|
||
|
* \brief Get absolute position of mouse cursor
|
||
|
* \return Mouse cursor's absolute position
|
||
|
*/
|
||
|
const wxPoint& GetMousePosition() const {return m_MousePosition;}
|
||
|
|
||
|
/*! \brief Clone this event object and return pointer to the new instance. */
|
||
|
wxEvent* Clone() const { return new wxSFShapeMouseEvent(*this); }
|
||
|
|
||
|
|
||
|
private:
|
||
|
// private data members
|
||
|
/*! \brief Pointer to stored shape object. */
|
||
|
wxSFShapeBase* m_Shape;
|
||
|
/*! \brief Code of pressed key. */
|
||
|
wxPoint m_MousePosition;
|
||
|
};
|
||
|
|
||
|
|
||
|
/*!
|
||
|
* \brief Class encapsulates wxEVT_SF_TEXT_CHANGE event.
|
||
|
*/
|
||
|
class WXDLLIMPEXP_SF wxSFShapeTextEvent : public wxEvent
|
||
|
{
|
||
|
public:
|
||
|
/*! \brief Constructor */
|
||
|
wxSFShapeTextEvent(wxEventType cmdType = wxEVT_NULL, int id = 0);
|
||
|
/*! \brief Copy constructor */
|
||
|
wxSFShapeTextEvent(const wxSFShapeTextEvent& obj);
|
||
|
/*! \brief Destructor */
|
||
|
virtual ~wxSFShapeTextEvent();
|
||
|
|
||
|
// public member data accessors
|
||
|
/*!
|
||
|
* \brief Insert a shape object to the event object.
|
||
|
* \param shape Pointer to the shape object
|
||
|
*/
|
||
|
void SetShape(wxSFShapeBase* shape){m_Shape = shape;}
|
||
|
/*!
|
||
|
* \brief Get a shape object from the event object.
|
||
|
* \return Pointer to the shape object.
|
||
|
*/
|
||
|
wxSFShapeBase* GetShape(){return m_Shape;}
|
||
|
/*!
|
||
|
* \brief Set new text shape.
|
||
|
* \param txt New text content.
|
||
|
*/
|
||
|
void SetText(const wxString& txt){m_Text = txt;}
|
||
|
/*!
|
||
|
* \brief Get a shape text.
|
||
|
* \return Shape text content.
|
||
|
*/
|
||
|
wxString GetText(){return m_Text;}
|
||
|
|
||
|
/*! \brief Clone this event object and return pointer to the new instance. */
|
||
|
wxEvent* Clone() const { return new wxSFShapeTextEvent(*this); }
|
||
|
|
||
|
|
||
|
private:
|
||
|
// private data members
|
||
|
/*! \brief Pointer to stored shape object. */
|
||
|
wxSFShapeBase* m_Shape;
|
||
|
/*! \brief New shape text. */
|
||
|
wxString m_Text;
|
||
|
};
|
||
|
|
||
|
/*!
|
||
|
* \brief Class encapsulates handle-related events.
|
||
|
*/
|
||
|
class WXDLLIMPEXP_SF wxSFShapeHandleEvent : public wxEvent
|
||
|
{
|
||
|
public:
|
||
|
/*! \brief Constructor */
|
||
|
wxSFShapeHandleEvent(wxEventType cmdType = wxEVT_NULL, int id = 0);
|
||
|
/*! \brief Copy constructor */
|
||
|
wxSFShapeHandleEvent(const wxSFShapeHandleEvent& obj);
|
||
|
/*! \brief Destructor */
|
||
|
virtual ~wxSFShapeHandleEvent();
|
||
|
|
||
|
// public member data accessors
|
||
|
/*!
|
||
|
* \brief Insert a shape object to the event object.
|
||
|
* \param shape Pointer to the shape object
|
||
|
*/
|
||
|
void SetShape(wxSFShapeBase* shape){m_Shape = shape;}
|
||
|
/*!
|
||
|
* \brief Get a shape object from the event object.
|
||
|
* \return Pointer to the shape object.
|
||
|
*/
|
||
|
wxSFShapeBase* GetShape(){return m_Shape;}
|
||
|
/**
|
||
|
* \brief Set pointer to dragged shape handle.
|
||
|
* \param Handle Pointer to shape handle
|
||
|
* \sa wxSFShapeHandle
|
||
|
*/
|
||
|
void SetHandle(wxSFShapeHandle& Handle) {this->m_Handle = &Handle;}
|
||
|
/**
|
||
|
* \brief Get pointer to dragged shape handle.
|
||
|
* \return Pointer to shape handle
|
||
|
* \sa wxSFShapeHandle
|
||
|
*/
|
||
|
wxSFShapeHandle& GetHandle() const {return *m_Handle;}
|
||
|
|
||
|
/*! \brief Clone this event object and return pointer to the new instance. */
|
||
|
wxEvent* Clone() const { return new wxSFShapeHandleEvent(*this); }
|
||
|
|
||
|
|
||
|
private:
|
||
|
// private data members
|
||
|
/*! \brief Pointer to stored shape object. */
|
||
|
wxSFShapeBase* m_Shape;
|
||
|
/*! \brief Dragged handle. */
|
||
|
wxSFShapeHandle* m_Handle;
|
||
|
};
|
||
|
|
||
|
/*!
|
||
|
* \brief Class encapsulates wxEVT_SF_ON_DROP event.
|
||
|
*/
|
||
|
class WXDLLIMPEXP_SF wxSFShapeDropEvent : public wxEvent
|
||
|
{
|
||
|
public:
|
||
|
/*! \brief Constructor */
|
||
|
wxSFShapeDropEvent(wxEventType cmdType = wxEVT_NULL, wxCoord x = 0, wxCoord y = 0, wxSFShapeCanvas* target = NULL, wxDragResult def = wxDragNone, int id = 0);
|
||
|
/*! \brief Copy constructor */
|
||
|
wxSFShapeDropEvent(const wxSFShapeDropEvent& obj);
|
||
|
/*! \brief Destructor */
|
||
|
virtual ~wxSFShapeDropEvent();
|
||
|
|
||
|
// public member data accessors
|
||
|
/*!
|
||
|
* \brief Copy given shapes to the internal list of dropped shapes.
|
||
|
* \param list Reference to a list of copied shapes
|
||
|
*/
|
||
|
void SetDroppedShapes(const ShapeList& list);
|
||
|
/*!
|
||
|
* \brief Set a position where the shapes were dropped.
|
||
|
* \param pos Position
|
||
|
*/
|
||
|
void SetDropPosition(const wxPoint& pos){m_nDropPosition = pos;}
|
||
|
/*!
|
||
|
* \brief Set drag result.
|
||
|
* \param def Drag result
|
||
|
*/
|
||
|
void SetDragResult(wxDragResult def){m_nDragResult = def;}
|
||
|
/*!
|
||
|
* \brief Set drop target (shape canvas where shapes have been dropped to).
|
||
|
* \param target Pointer to drop target (shape canvas)
|
||
|
*/
|
||
|
void SetDropTarget(wxSFShapeCanvas *target){m_pDropTarget = target;}
|
||
|
/*!
|
||
|
* \brief Get a shape object from the event object.
|
||
|
* \return Pointer to the shape object.
|
||
|
*/
|
||
|
ShapeList& GetDroppedShapes(){return m_lstDroppedShapes;}
|
||
|
/*!
|
||
|
* \brief Get drop position.
|
||
|
* \return Position.
|
||
|
*/
|
||
|
wxPoint GetDropPosition(){return m_nDropPosition;}
|
||
|
/*!
|
||
|
* \brief Get drag result.
|
||
|
* \return Drag result.
|
||
|
*/
|
||
|
wxDragResult GetDragResult(){return m_nDragResult;}
|
||
|
/*!
|
||
|
* \brief Get drop target (shape canvas where shapes have been dropped to).
|
||
|
* \return Pointer to drop target (shape canvas)
|
||
|
*/
|
||
|
wxSFShapeCanvas* GetDropTarget(){return m_pDropTarget;}
|
||
|
|
||
|
/*! \brief Clone this event object and return pointer to the new instance. */
|
||
|
wxEvent* Clone() const { return new wxSFShapeDropEvent(*this); }
|
||
|
|
||
|
|
||
|
private:
|
||
|
// private data members
|
||
|
/*! \brief List of dropped shapes. */
|
||
|
ShapeList m_lstDroppedShapes;
|
||
|
/*! \brief Drop target. */
|
||
|
wxSFShapeCanvas *m_pDropTarget;
|
||
|
/*! \brief Drop position. */
|
||
|
wxPoint m_nDropPosition;
|
||
|
/*! \brief Drag result. */
|
||
|
wxDragResult m_nDragResult;
|
||
|
};
|
||
|
|
||
|
/*!
|
||
|
* \brief Class encapsulates wxEVT_SF_ON_PASTE event.
|
||
|
*/
|
||
|
class WXDLLIMPEXP_SF wxSFShapePasteEvent : public wxEvent
|
||
|
{
|
||
|
public:
|
||
|
/*! \brief Constructor */
|
||
|
wxSFShapePasteEvent(wxEventType cmdType = wxEVT_NULL, wxSFShapeCanvas *target = NULL, int id = 0);
|
||
|
/*! \brief Copy constructor */
|
||
|
wxSFShapePasteEvent(const wxSFShapePasteEvent& obj);
|
||
|
/*! \brief Destructor */
|
||
|
virtual ~wxSFShapePasteEvent();
|
||
|
|
||
|
// public member data accessors
|
||
|
/*!
|
||
|
* \brief Copy given shapes to the internal list of pasted shapes.
|
||
|
* \param list Reference to a list of copied shapes
|
||
|
*/
|
||
|
void SetPastedShapes(const ShapeList& list);
|
||
|
/*!
|
||
|
* \brief Set drop target (shape canvas where shapes have been pasted to).
|
||
|
* \param target Pointer to drop target (shape canvas)
|
||
|
*/
|
||
|
void SetDropTarget(wxSFShapeCanvas *target){m_pDropTarget = target;}
|
||
|
/*!
|
||
|
* \brief Get a shape object from the event object.
|
||
|
* \return Pointer to the shape object.
|
||
|
*/
|
||
|
ShapeList& GetPastedShapes(){return m_lstPastedShapes;}
|
||
|
/*!
|
||
|
* \brief Get drop target (shape canvas where shapes have been pasted to).
|
||
|
* \return Pointer to drop target (shape canvas)
|
||
|
*/
|
||
|
wxSFShapeCanvas* GetDropTarget(){return m_pDropTarget;}
|
||
|
|
||
|
/*! \brief Clone this event object and return pointer to the new instance. */
|
||
|
wxEvent* Clone() const { return new wxSFShapePasteEvent(*this); }
|
||
|
|
||
|
|
||
|
private:
|
||
|
// private data members
|
||
|
/*! \brief List of pasted shapes. */
|
||
|
ShapeList m_lstPastedShapes;
|
||
|
/*! \brief Drop target. */
|
||
|
wxSFShapeCanvas *m_pDropTarget;
|
||
|
};
|
||
|
|
||
|
/*!
|
||
|
* \brief Class encapsulates wxEVT_SF_SHAPE_CHILD_DROP event.
|
||
|
*/
|
||
|
class WXDLLIMPEXP_SF wxSFShapeChildDropEvent : public wxEvent
|
||
|
{
|
||
|
public:
|
||
|
/*! \brief Constructor */
|
||
|
wxSFShapeChildDropEvent(wxEventType cmdType = wxEVT_NULL, int id = 0);
|
||
|
/*! \brief Copy constructor */
|
||
|
wxSFShapeChildDropEvent(const wxSFShapeChildDropEvent& obj);
|
||
|
/*! \brief Destructor */
|
||
|
virtual ~wxSFShapeChildDropEvent();
|
||
|
|
||
|
// public member data accessors
|
||
|
/*!
|
||
|
* \brief Insert a shape object to the event object.
|
||
|
* \param shape Pointer to the shape object
|
||
|
*/
|
||
|
void SetShape(wxSFShapeBase* shape){m_Shape = shape;}
|
||
|
/*!
|
||
|
* \brief Get a shape object from the event object.
|
||
|
* \return Pointer to the shape object.
|
||
|
*/
|
||
|
wxSFShapeBase* GetShape(){return m_Shape;}
|
||
|
/**
|
||
|
* \brief Set a pointer to dropped child shape.
|
||
|
* \param ChildShape Pointer to dropped child shape
|
||
|
*/
|
||
|
void SetChildShape(wxSFShapeBase* ChildShape) {this->m_ChildShape = ChildShape;}
|
||
|
/**
|
||
|
* \brief Get a pointer to dropped child shape.
|
||
|
* \return Pointer to dropped child shape
|
||
|
*/
|
||
|
wxSFShapeBase* GetChildShape() {return m_ChildShape;}
|
||
|
|
||
|
/*! \brief Clone this event object and return pointer to the new instance. */
|
||
|
wxEvent* Clone() const { return new wxSFShapeChildDropEvent(*this); }
|
||
|
|
||
|
|
||
|
private:
|
||
|
// private data members
|
||
|
/*! \brief Pointer to stored shape object. */
|
||
|
wxSFShapeBase* m_Shape;
|
||
|
/*! \brief Pointer to dropped child object. */
|
||
|
wxSFShapeBase* m_ChildShape;
|
||
|
};
|
||
|
|
||
|
#endif // _WXSFEVENTS_H
|