51 m_buttonId = buttonId;
54 m_contentBorder = 0.0;
151 double xshift = -tbbox.
GetMinX();
152 double yshift = -tbbox.
GetMinY();
172 if( scaleX && fabs( scaleX ) < fabs( scaleY ) )
174 else if( scaleY && fabs( scaleY ) < fabs( scaleX ) )
218 double xshift = -tbbox.
GetMinX();
219 double yshift = -tbbox.
GetMinY();
297 wxCommandEvent commandEvent( wxEVT_COMMAND_BUTTON_CLICKED,
m_buttonId );
298 commandEvent.SetEventObject(
this );
299 if ( !ProcessEvent( commandEvent ) &&
m_parent )
300 m_parent->ProcessEvent( commandEvent );
335 m_worldExtend = extra;
336 m_singleSelect =
true;
354 void a2dWidgetButtonGroup::OnAnyButton( wxCommandEvent& event )
363 setflags2.SetSkipNotRenderedInDrawing(
true );
382 int buttonId = hitButton ? hitButton->
GetButtonId() : 0;
384 wxCommandEvent commandEvent( wxEVT_COMMAND_CHOICE_SELECTED, buttonId );
385 commandEvent.SetEventObject( hit );
386 hit->ProcessEvent( commandEvent );
400 m_docviewCommand = 0;
433 if( event.GetEventObject() == this )
469 wxMDIParentFrame* mdiFrame =
wxDynamicCast( wxTheApp->GetTopWindow(), wxMDIParentFrame );
471 if ( mdiFrame && mdiFrame->GetActiveChild() )
472 mdiFrame->GetActiveChild()->GetEventHandler()->ProcessEvent( *
m_event );
474 wxTheApp->GetTopWindow()->GetEventHandler()->ProcessEvent( *
m_event );
a2dHit m_how
return in which way the object was hit (stroke, fill, ...)
double m_relx
(world coordinates) hit point x relative to the canvas object its parent object(s) ...
double GetHeight() const
returns height of the boundingbox
virtual void Render(a2dIterC &ic, OVERLAP clipparent)
Render this object to the active a2dDrawingPart.
#define wxDynamicCast(obj, className)
Define wxDynamicCast so that it will give a compiler error for unrelated types.
Base class for all types of strokes, understood by a2dDrawer2D classes.
virtual void SetTransform(const a2dAffineMatrix &userToWorld)
set user-to-world transform matrix.
mouse event sent from a2dCanvasObject to itself
const a2dStroke * a2dBLACK_STROKE
global a2dStroke stock object for BLACK stroking
class to map references to objects stored in XML, in order to make the connection later on...
a2dDrawing * m_root
root group for rendering and accessing the canvas's also contains layer settings
a2dCanvasOFlags m_flags
holds flags for objects
double m_maxx
maximum x of rectangle
#define EVT_CANVASOBJECT_ENTER_EVENT(func)
static event table macro for a2dCanvasObject mouse enter event
a2dCanvasObject * GetRootObject() const
get the root object, which holds the objects in the document
void Enlarge(const double Marge)
enlarge with the given amount
bool IsHit() const
true if this is a hit
void SetDrawerStroke(const a2dStroke &stroke)
Used to set the current stroke.
a2dBoundingBox GetCalculatedBoundingBox(int nChildLevels)
Like GetBbox, but it always calculcates the bounding box from scratch.
UpdateMode
Various mode flags for Update.
virtual void SetPending(bool pending)
set this object pending for update
OVERLAP
Result of a a2dBoundingBox intersection or hittest.
#define EVT_CHOICE_ANY(func)
wxEvthandler macro
The base class for all drawable objects in a a2dCanvasDocument.
double GetTransformedHitMargin()
transformed to object its coordinate system
a2dCanvasObject is the base class for Canvas Objects.
A2DGENERALDLLEXP a2dWalkEvent a2dWalker_a2dDerivedCanvasObjectStart
id for a2dWalkEvent issued from within a2dWalkerIOHandler
void SetSelected(bool selected)
Set the object selected flag if allowed.
double m_minx
minimum x of rectangle
a2dAffineMatrix m_lworld
used for positioning the object (x,y,ang,scale etc.)
void SetDrawerFill(const a2dFill &fill)
Used to set the current fill.
Io handler to iterate through a a2dDocument.
bool GetValid() const
returns true if boundingbox is calculated properly and therefore its valid flag is set...
void Expand(const a2dPoint2D &, const a2dPoint2D &)
expand boundingbox width two points
const a2dBoundingBox & Translate(a2dPoint2D &)
translate with given vector
double GetMinX() const
get minimum X of the boundingbox
virtual void DrawRoundedRectangle(double x, double y, double width, double height, double radius, bool pixelsize=false)
Draw RoundedRectangle in world coordinates.
void Walker(wxObject *parent, a2dWalkerIOHandler &handler)
This is used to recursively walk through an object tree.
a2dDrawer2D * GetDrawer2D() const
get current a2dDrawer2D
#define wxStaticCast(obj, className)
The wxWindows 2.4.2 wxStaticCast is buggy. It evaluates its argument twice.
#define EVT_CANVASOBJECT_MOUSE_EVENT(func)
static event table macro for a2dCanvasObject mouse event
virtual void DrawLine(double x1, double y1, double x2, double y2)
Draw line in world coordinates.
static const a2dCanvasObjectFlagsMask SELECTED
bool IsSelected() const
Is the object selected flag set.
const a2dFill * a2dNullFILL
global a2dFill stock object for defining NO filling
a2dCanvasObject(double x=0, double y=0)
constructor called by derived objects
bool Identity(void)
Make into identity matrix.
set a2dCanvasObjects flags in a hierarchy of a a2dCanvasDocument
void DoRender(a2dIterC &ic, OVERLAP clipparent)
render derived object
A 2x3 affine matrix class for 2D transformations.
wxMouseEvent & GetMouseEvent()
return the original mouse event that was redirected to the a2dCanvasObject
const a2dStroke * a2dNullSTROKE
global a2dStroke stock object for NO stroking
double GetMaxX() const
get maximum X of the boundingbox
double m_maxy
maximum y of rectangle
while iterating a a2dCanvasDocument, this holds the context.
a2dWalker based algorithms
void MapBbox(const a2dAffineMatrix &matrix)
#define EVT_CANVASOBJECT_LEAVE_EVENT(func)
static event table macro for a2dCanvasObject mouse leave event
void SetChildrenOnSameLayer(bool samelayer)
if set children are rendered on the same layer as this object.
set pending flag in a drawing
double GetMaxY() const
get maximum Y of the boundingbox
double GetWidth() const
returns width of the boundingbox
An object of this class will update a a2dIterC with the required information.
const a2dStroke * a2dTRANSPARENT_STROKE
global a2dStroke stock object for TRANSPARENT stroking
double m_miny
minimum of rectangle
a2dCanvasObject * IsHitWorld(a2dIterC &ic, a2dHitEvent &hitEvent)
If the position (x,y) is within the object return this.
The a2dBoundingBox class stores one a2dBoundingBox of a a2dCanvasObject.
bool GetChildrenOnSameLayer() const
are children rendered on the same layer as this object?
bool Invert(void)
Invert matrix.
const a2dAffineMatrix & GetTransform() const
get the user-to-world transform matrix.
virtual bool WalkTask(wxObject *parent, wxObject *object, a2dWalkEvent event)
called from within a2dObject's and derived classes
double GetMinY() const
get minimum Y of the boundingbox
the a2dDrawingPart is a a2dView specially designed for displaying parts of a a2dDrawing. It uses a a2dDrawer2D to actually redraw things from the document, by giving that a2dDrawer2D as drawing context to the document, and telling the document to redraw a certain rectangular area. At that last is what this class is for. It optimizes the areas to be redrawn after object in the document were changed. To do that it combines redraw areas to a minimal set of redrawing areas. All the administration for this and the way things will be redrawn is from this view.
#define EVT_BUTTON_ANY(func)
wxEvtHandler macro
A2DGENERALDLLEXP a2dWalkEvent a2dWalker_a2dDerivedCanvasObjectEnd
id for a2dWalkEvent issued from within a2dWalkerIOHandler
a2dBoundingBox m_bbox
boundingbox in world coordinates
double m_rely
(world coordinates) hit point y relative to the canvas object its parent object(s) ...
a2dDocumentRenderStyle GetDrawStyle()
get drawstyles used for drawing the document
CloneOptions
options for cloning
structure to give as parameter to member functions of a2dCanvasObject
virtual void DoWalker(wxObject *parent, a2dWalkerIOHandler &handler)
iterate over this object and its children
const a2dFill * a2dTRANSPARENT_FILL
global a2dFill stock object for TRANSPARENT filling
general canvas module declarations and classes
a base command for the a2dCommandProcessor