This project is a demonstrator tool, made by the MOISE project, that translates timed Altarica models into Fiacre models. Such translation allows to use model checkers such as Tina to prove properties. The project contains the translator tool.
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.
 
 
 
 
 
 

196 lines
6.5 KiB

/***************************************************************
* Name: TextShape.h
* Purpose: Defines static text shape class
* Author: Michal Bližňák (michal.bliznak@tiscali.cz)
* Created: 2007-07-22
* Copyright: Michal Bližňák
* License: wxWidgets license (www.wxwidgets.org)
* Notes:
**************************************************************/
#ifndef _WXSFTEXTSHAPE_H
#define _WXSFTEXTSHAPE_H
#include <wx/wxsf/RectShape.h>
// default values
/*! \brief Default value of wxSFTextShape::m_Font data member. */
#define sfdvTEXTSHAPE_FONT *wxSWISS_FONT
/*! \brief Default value of wxSFTextShape::m_TextColor data member. */
#define sfdvTEXTSHAPE_TEXTCOLOR *wxBLACK
/*! \brief Class encapsulates basic non-editable text shape which is suitable for
* displaying of various text information in the canvas.
* \sa wxSFEditTextShape
*/
class WXDLLIMPEXP_SF wxSFTextShape : public wxSFRectShape
{
public:
XS_DECLARE_CLONABLE_CLASS(wxSFTextShape);
/*! \brief Default constructor. */
wxSFTextShape(void);
/*!
* \brief User constructor.
* \param pos Initial position
* \param txt Text content
* \param manager Pointer to parent diagram manager
*/
wxSFTextShape(const wxRealPoint& pos, const wxString& txt, wxSFDiagramManager* manager);
/*!
* \brief Copy constructor.
* \param obj Source objct
*/
wxSFTextShape(const wxSFTextShape& obj);
/*! \brief Destructor */
virtual ~wxSFTextShape();
// public member data accessors
/*!
* \brief Set text font.
* \param font Font
*/
void SetFont(const wxFont& font);
/*!
* \brief Get text font.
* \return Font
*/
wxFont& GetFont(){return m_Font;}
/*!
* \brief Set text.
* \param txt Text content
*/
void SetText(const wxString& txt);
/*!
* \brief Get text.
* \return Current text content
*/
wxString GetText() const {return m_sText;}
/*!
* \brief Set text color.
* \param col Text color
*/
void SetTextColour(const wxColour& col){m_TextColor = col;}
/*!
* \brief Get text color.
* \return Current text color
*/
wxColour GetTextColour() const {return m_TextColor;}
// public virtual functions
/*!
* \brief Scale the shape size by in both directions. The function can be overrided if necessary
* (new implementation should call default one ore scale shape's children manualy if neccesary).
* \param x Horizontal scale factor
* \param y Vertical scale factor
* \param children TRUE if the shape's children shoould be scaled as well, otherwise the shape will be updated after scaling via Update() function.
*/
virtual void Scale(double x, double y, bool children = sfWITHCHILDREN);
/*!
* \brief Event handler called during dragging of the shape handle.
* The function can be overrided if necessary.
*
* The function is called by the framework (by the shape canvas).
* Default implementation does nothing.
* \param handle Reference to dragged handle
*/
virtual void OnHandle(wxSFShapeHandle& handle);
/*! \brief Upate shape (align all child shapes an resize it to fit them) */
virtual void Update();
// public functions
wxSize GetTextExtent();
void UpdateRectSize();
protected:
// protected data members
wxFont m_Font;
wxColour m_TextColor;
wxString m_sText;
// protected virtual functions
/*!
* \brief Draw the shape in the normal way. The function can be overrided if neccessary.
* \param dc Reference to device context where the shape will be drawn to
*/
virtual void DrawNormal(wxDC& dc);
/*!
* \brief Draw the shape in the hower mode (the mouse cursor is above the shape).
* The function can be overrided if neccessary.
* \param dc Reference to device context where the shape will be drawn to
*/
virtual void DrawHover(wxDC& dc);
/*!
* \brief Draw the shape in the highlighted mode (another shape is dragged over this
* shape and this shape will accept the dragged one if it will be dropped on it).
* The function can be overrided if neccessary.
* \param dc Reference to device context where the shape will be drawn to
*/
virtual void DrawHighlighted(wxDC& dc);
/*!
* \brief Draw shadow under the shape. The function can be overrided if neccessary.
* \param dc Reference to device context where the shadow will be drawn to
*/
virtual void DrawShadow(wxDC& dc);
/*!
* \brief Serialize shape's properties to the given XML node. The serialization
* routine is automatically called by the framework and should take care about serialization
* of all specific (non-standard) shape's properties.
* \param node Pointer to XML node where the shape's property nodes will be appended to
* \sa xsSerializable::Serialize
*/
virtual wxXmlNode* Serialize(wxXmlNode* node);
/*!
* \brief Deserialize shape's properties from the given XML node. The
* routine is automatically called by the framework and should take care about deserialization
* of all specific (non-standard) shape's properties.
* \param node Pointer to a source XML node containig the shape's property nodes
* \sa xsSerializable::Deserialize
*/
virtual void Deserialize(wxXmlNode* node);
/*!
* \brief Event handler called during dragging of the left shape handle.
* The function can be overrided if neccessary.
* \param handle Reference to dragged shape handle
*/
virtual void OnLeftHandle(wxSFShapeHandle& handle);
/*!
* \brief Event handler called during dragging of the top shape handle.
* The function can be overrided if neccessary.
* \param handle Reference to dragged shape handle
*/
virtual void OnTopHandle(wxSFShapeHandle& handle);
/*!
* \brief Event handler called during dragging of the right shape handle.
* The function can be overrided if neccessary.
* \param handle Reference to dragged shape handle
*/
virtual void OnRightHandle(wxSFShapeHandle& handle);
/*!
* \brief Event handler called during dragging of the bottom shape handle.
* The function can be overrided if neccessary.
* \param handle Reference to dragged shape handle
*/
virtual void OnBottomHandle(wxSFShapeHandle& handle);
// protected functions
/*!
* \brief Draw text shape.
* \param dc Device context where the text shape will be drawn to
*/
void DrawTextContent(wxDC& dc);
private:
// private functions
/*! \brief Initialize serializable properties. */
void MarkSerializableDataMembers();
wxCoord m_nLineHeight;
};
#endif //_WXSFTEXTSHAPE_H