a2dCanvasDocument Class Reference
[Objects in docview frame work.a2dCanvasObject related objects]

Each a2dCanvasView needs to have a a2dCanvasDocument set in order to render data. More...

#include <candoc.h>

Inheritance diagram for a2dCanvasDocument:

Inheritance graph
[legend]
Collaboration diagram for a2dCanvasDocument:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 a2dCanvasDocument ()
 Construct a a2dCanvasDocument to store a complete drawing in.
 ~a2dCanvasDocument ()
 destructor
 a2dCanvasDocument (const a2dCanvasDocument &other)
 like it to be protected, but this does not work with wxList macros
virtual a2dObjectClone (CloneOptions options) const
 create exact copy
a2dCanvasObjectGetRootObject () const
 get the root object, which holds the objects in the document.
void SetRootObject (a2dCanvasObject *newRoot)
 set new root object ( may not ne NULL )
double GetBboxMinX ()
 get bounding box of document its minimum X
double GetBboxMinY ()
 get bounding box of document its minimum Y
double GetBboxMaxX ()
 get bounding box of document its maximum X
double GetBboxMaxY ()
 get bounding box of document its maximum Y
double GetBboxWidth ()
 get bounding box of document its width
double GetBboxHeight ()
 get bounding box of document its height
a2dBoundingBoxGetBbox ()
 get bounding box of document
void Prepend (a2dCanvasObject *obj)
 add at begin an object the root group
void Append (a2dCanvasObject *obj)
 add at end an object the root group
void Insert (size_t before, a2dCanvasObject *obj)
 insert object at a position in the root group
int ReleaseChild (a2dCanvasObject *obj, bool backwards=false, bool all=true)
 release a specific object from the rootobject
bool ReleaseChildObjects (a2dCanvasObjectFlagsMask mask=a2dCanvasOFlags::ALL)
 removes and release only from the childobjects the objects with the given mask
void SetSpecificFlags (bool setOrClear, a2dCanvasObjectFlagsMask which, const wxString &classname=wxT(""), a2dCanvasObjectFlagsMask whichobjects=a2dCanvasOFlags::ALL)
 set all bit flags in object that or true in mask to true or false
a2dCanvasObjectFind (a2dCanvasObject *obj)
 return the object if it is part of the given object or
a2dCanvasObjectFind (const wxString &objectname, const wxString &classname=wxT(""), wxInt64 id=-1)
 return the object with (name, classname, id) if it is part of the given object or
void SetDescription (const wxString &desc)
 Sets a description of the document.
wxString & GetDescription ()
 Returns the description of the document.
void SetLibraryName (const wxString &libraryname)
 to name the document as a library (independent of a path and filename )
wxString & GetLibraryName ()
 Get name the document as a library (independent of a path and filename ).
void SetVersion (int version)
 set version of library or document
int GetVersion ()
 get version of library or document
virtual void DeleteContents ()
 delete all object in this document (also nested groups etc.)
a2dCanvasCommandProcessorGetCanvasCommandProcessor ()
 get a pointer to the command processor
void CreateCommandProcessor ()
 create the commandprocessor (special designed to work with a2dCanvas code)
bool AddPendingUpdatesOldNew ()
 adds current and future boundingbox of the objects with pending flag set, to the pendinglist of all a2dCanvasView's
virtual void UpdateAllViews (a2dView *sender=(a2dView *) NULL, unsigned int hint=a2dCANVIEW_UPDATE_ALL, wxObject *objecthint=(wxObject *) NULL)
 sent Update events to all a2dView which display or use this document.
virtual void Freeze ()
 sets all associated view/drawers to Frozen to prevent all drawer activity
virtual void Thaw (bool update)
 sets all associated view/drawers to non Frozen to allow all drawer activity
bool WriteSVG (a2dCanvasView *drawer, const wxString &filename, a2dCanvasObject *top, double Width, double Height, wxString unit)
 write as SVG to a file starting at given object
virtual a2dDocumentInputStreamLoadObject (a2dDocumentInputStream &stream, a2dIOHandlerStrIn *handler)
 load form a file containing the a2dCanvas specific XML called CVG format
void Load (wxObject *parent, a2dIOHandlerXmlSerIn &parser)
 used by CVG parser
bool Load (const wxString &filename, a2dIOHandlerStrIn *handler)
 load document from a file with the given filename and given parser type
bool SaveLayers (const wxString &filename)
 save layer settings to CVG file
bool LoadLayers (const wxString &filename)
 load layers from another file
virtual void UpdateLoadedLayerSetup ()
 Update a loaded layer setup.
a2dDocumentOutputStreamSaveObject (a2dDocumentOutputStream &stream, a2dIOHandlerStrOut *handler)
 save as the a2dCanvas specific XML called CVG format
void Save (wxObject *parent, a2dIOHandlerXmlSerOut &out, a2dObjectList *towrite)
 called from a2dIOHandlerXmlSerOut after a SaveObject.
void Save (a2dIOHandlerCVGOut &out, a2dCanvasObject *start=0)
 called from a2dIOHandlerCVGOut after a SaveObject.
bool Save (const wxString &filename, a2dIOHandlerStrOut *handler) const
 save document to a file with the given name and given output writer type
void SetCanvasDocumentRecursive ()
 set a2dCanvasDocument recursive for whole tree
void Update (a2dCanvasObject::UpdateMode mode)
 update all pending objects in the document
void SetLayerSetup (a2dLayers *layersetup)
 set the layersettings for the canvas.
a2dLayersGetLayerSetup ()
 Get the layersettings for the canvas.
void SetMultiRoot (bool multiRoot=true)
 Set true if the document read from a file did not have on erootobject but several.
bool GetMultiRoot ()
void SetUpdatesPending (bool onoff)
 Tells the document that an object has changed.
void DependencyPending ()
 call DependencyPending on root object and recursive on childs.
bool GetUpdatesPending ()
 returns true if some objects have changed recently within this document
void SetIgnorePendingObjects (bool onoff)
 Switches ignorance of pending objects on and off.
bool GetIgnorePendingObjects ()
 get setting of ignore pending objects /sa GetUpdatesPending()
double GetUnitsAccuracy ()
 this is the number that defines the number of decimal places in the fraction
void SetUnitsAccuracy (double accuracy)
 this is the number that defines the number of decimal places in the fraction
double GetUnitsScale ()
 this is the number that defines the physical dimension in meters / inch/ etc.
void SetUnitsScale (double scale)
 this is the number that defines the physical dimension in meters / inch/ etc.
double GetNormalizeScale ()
 Normalize objects ( defined in coordinates -1 to 1 ranges ) will be multiplied by this factor.
void SetNormalizeScale (double scale)
 see GetNormalizeScale()
wxString GetUnits ()
 this string defines the unit e.g. meters / inch/ etc.
void SetUnits (const wxString &unitString)
 this string defines the unit e.g. meters / inch/ etc.
void SetInitialSize (double sizeX, double sizeY)
 set size for view in userunits, when still empty
double GetInitialSizeX ()
 get size for view in userunits, when still empty
double GetInitialSizeY ()
 get size for view in userunits, when still empty
void SetModificationTime (const wxDateTime &datatime)
 Sets a time of last modification.
wxDateTime & GetModificationTime ()
 Returns the time of last modification when the document was saved.
void SetAccessTime (const wxDateTime &datatime)
 Sets the time of last access to this doc.
wxDateTime & GetAccessTime ()
 Returns the time of last access.
wxDateTime & GetInternalChangedTime ()
 gives time when a change was made to the document which may effect rendering
 DECLARE_DYNAMIC_CLASS (a2dCanvasDocument)

Public Attributes

wxString m_libraryname
 name of library or document
wxString m_description
 description for document
int m_version
 version of library or document

Static Public Attributes

static const wxEventType sm_layersetupChanged
 layer info changed id sent around when m_layersetup is changed.

Protected Member Functions

void OnIdle (wxIdleEvent &event)
 Called by ProcessEvent(wxEvent& event) of document.
void OnOpenDocument (a2dDocumentEvent &event)
 uses wxBufferedInputStream instead of a2dDocumentInputStream
void DoSave (a2dIOHandlerCVGOut &out, a2dCanvasObjectList *towrite)
 do not use directly, part of CVG format writing

Protected Attributes

a2dCanvasObjectPtr m_rootobject
 start a2dCanvasObject containing all primitives
a2dSmrtPtr< a2dLayersm_layersetup
 setup for layers in this document
bool m_multiRoot
 multi root document
bool m_updatespending
 set by object in this a2dCanvasDocument, to tell they have changed and therefore it needs to be rerendered
bool m_ignorePendingObjects
 if set ignore all setting for pendingobjects
double m_units_accuracy
 how many decimal places in fraction are valid
double m_units_scale
 scaling factor (how many "m_units_measure" is one unit)
double m_normalize_scale
 normalization factor to scale normalized objects.
wxString m_units
 unit (e.g. Meters Inch Microns etc.)
wxString m_units_measure
 measuring unit (e.g. Meters Inch Microns etc.)
double m_initialSizeX
 for new document views what will be the size in userunits in X
double m_initialSizeY
 for new document views what will be the size in userunits in Y
wxDateTime m_modificationtime
 last modification time when this document was stored.
wxDateTime m_accesstime
 when was the document last accessed.
wxDateTime m_changedInternalAccesstime
 gives time when a change was made to the document which may effect rendering


Detailed Description

Each a2dCanvasView needs to have a a2dCanvasDocument set in order to render data.

Several a2dCanvasView objects can share the same a2dCanvasDocument. The a2dCanvasDocument has one top a2dCanvasObject, called m_rootobject. All other a2dCanvasObject's are added as children to this root object. The docuemnt also contains the layer settings for the canvas objects to be rendered. The a2dCanvasDocument is derived from a2dDocument, and it is used to store a hierarchy of a2dCanvasObject's. The updating of modified a2dCanvasObject's is also organized as part of this class. One can load a canvas document from a file, and save it to a file, in the CVG format. But other formats are possible, via the document its a2dDocumentTemplate and associated a2dIOHandlers.

Rendering a a2dCanvasDocument is started at a given a2dCanvasObject, which needs to be part of the data structure below the a2dCanvasDocument. Since a2dCanvasDocument owns a a2dCanvasObject as root, rendering the complete document will start at the m_rootobject. But any nested child a2dCanvasObject can be used to start rendering, and only that object and it children will be displayed on the a2dCanvasView ( and a2dCanvas which is the display window ). The a2dCanvasObject to be displayed on a certain a2dCanvasView is maintained in the a2dCanvasView object. It can be different for all a2dCanvasView objects sharing the same a2dCanvasDocument.

a2dCanvasDocument senets update events when a2dCanvasObject have changed internal. The a2dView's using the document are intercepting the update events, and react by updating the data that they display. For a a2dCanvasView this means redrawing those parts that have changed.

Any nested child from a a2dCanvasDocument Object can be displayed on several a2dCanvasView Objects at the same time. The child displayed does not have to be the same on each a2dCanvasView. The active a2dCanvasView is used to render and convert coordinates from world to device. So it is important to set the active a2dCanvasView based on the a2dCanvasView that has the focus or is scrolled etc. This is normally done within a2dCanvasView when appropriate.

Remarks:
Use a2dDocumentTemplate's to get the type of the file, where this data was read from. based on this the document can be saved in the same type as read from.
See also:
a2dCanvasView

a2dCanvas

wxWorldCanvas

a2dCanvasObject

Definition at line 98 of file candoc.h.


Constructor & Destructor Documentation

a2dCanvasDocument::a2dCanvasDocument (  ) 

Construct a a2dCanvasDocument to store a complete drawing in.

This class contains nested a2dCanvasObject's and other drawing object derived from a2dCanvasObject's. The class itself is derived from a2dDocument. All objects are stored are as childs of the m_rootobject. A complete drawing is stored here, and displaying the drawing, is done by setting a pointer to this a2dCanvasDocument for a a2dCanvasView derived class. Every change inside the wxCavasObject's stored inside this class, will report themselfs as pending to an instance of this class. The a2dCanvasView classes, having this instance of a2dCanvasDocument set, will be updated from the document via update events. a2dCanvasObject that are changed or set pending. Those pending objects are reported to the document also. In Idle time the pending objects are redrawn on the a2dCanvasView's that display the document. The same a2dCanvasDocument can be displayed on reveral a2dCanvasView's at the same time. And therefore a pending a2dCanvasObject maybe be (re)displayed on several a2dCanvasView's also. The a2dCanvasObjects stored in a a2dCanvasDocument, will have their m_root member set in order to get to the a2dCanvasDocument in which they are stored. Through the a2dCanvasDocument they will be able to reach the a2dCanvasView class that is currently active. The a2dCanvasView class is set to the document when needed on a higher level. e.g. when rendering a a2dCanvasDocument. This way each a2dCanvasObject stored inside the a2dCanvasDocument, can draw itself on the active a2dCanvasView. The a2dCanvasView in this case can be seen as a sort of drawing context. Indirectly a a2dCanvasView can use a2dCanvas as the window/device to draw up on. Another type of a2dCanvasView can draw to a bitmap, image or printer device.

Remarks:
The initially layer setup is defined my a2dCanvasGlobal::GetLayerSetup
See also:
SetLayerSetup for an example for introduce your own layers

Definition at line 68 of file candoc.cpp.

a2dCanvasDocument::a2dCanvasDocument ( const a2dCanvasDocument other  ) 

like it to be protected, but this does not work with wxList macros

constructor with other document

Definition at line 103 of file candoc.cpp.


Member Function Documentation

int a2dCanvasDocument::ReleaseChild ( a2dCanvasObject obj,
bool  backwards = false,
bool  all = true 
) [inline]

release a specific object from the rootobject

Parameters:
obj object to release
backwards start at the end
all if true remove all references to object
Returns:
number of released objects

Definition at line 186 of file candoc.h.

bool a2dCanvasDocument::ReleaseChildObjects ( a2dCanvasObjectFlagsMask  mask = a2dCanvasOFlags::ALL  )  [inline]

removes and release only from the childobjects the objects with the given mask

Returns:
true if some object were released

Definition at line 192 of file candoc.h.

void a2dCanvasDocument::SetSpecificFlags ( bool  setOrClear,
a2dCanvasObjectFlagsMask  which,
const wxString &  classname = wxT(""),
a2dCanvasObjectFlagsMask  whichobjects = a2dCanvasOFlags::ALL 
)

set all bit flags in object that or true in mask to true or false

set specific flags to true or false, also recursive for children objects

Remarks:
the object is not setpending when soemthing changed ( actually the pending flag can be set here also )
Parameters:
setOrClear if true sets the flag to true else to false
which set only those flags in object to true or false
classname if not empty, object must have this classname
whichobjects set flags only for object having this flags set already

Definition at line 692 of file candoc.cpp.

a2dCanvasObject * a2dCanvasDocument::Find ( a2dCanvasObject obj  ) 

return the object if it is part of the given object or

if the given object is part of a childobjects within this object. For child objects this means recursively search for it.

Parameters:
obj object to search for

Definition at line 670 of file candoc.cpp.

a2dCanvasObject * a2dCanvasDocument::Find ( const wxString &  objectname,
const wxString &  classname = wxT(""),
wxInt64  id = -1 
)

return the object with (name, classname, id) if it is part of the given object or

if the given object is part of a recursive childobject within this object. For child objects this means recursively search for it.

Parameters:
objectname object with this name to search for. Empty string means ignore this.
classname object must have this classname. Empty string means ignore this.
id if a id is given, the object must have with this id ( address as wxInt64 )

Definition at line 679 of file candoc.cpp.

void a2dCanvasDocument::SetDescription ( const wxString &  desc  )  [inline]

Sets a description of the document.

A description may describe the content of this document or contain keywords etc. The default value is "a2dCanvasDocument generated by wxArt2D".

Parameters:
desc description of the document

Definition at line 231 of file candoc.h.

wxString& a2dCanvasDocument::GetDescription (  )  [inline]

Returns the description of the document.

See also:
SetDescription
Returns:
the description

Definition at line 239 of file candoc.h.

bool a2dCanvasDocument::AddPendingUpdatesOldNew (  ) 

adds current and future boundingbox of the objects with pending flag set, to the pendinglist of all a2dCanvasView's

which are using this document. The areas will only be updated from the a2dCanvasView's, which are using this document in idle time. It first check's for pending object's stored in this a2dCanvasDocument. If true, it searches those object starting from the displayed showgroup in each drawer, and adds the boundingbox of the current state the object is in, to the update area list of the those a2dCanvasView's If the boundingbox of an object is not available, it will be calcualted at that moment. In Next step the new boundingboxes are calculated for the pending objects and those are also added to the pending arae list's of all a2dCanvasView's. This functions adds areas of all places where this object is rendered also when referenced. In the end, the pending flag in all objects is reset.

AddPendingUpdatesOldNew() makes sure all objects that where pending are processed.

In idle time a2dCanvasView's will only redraw the areas that are damaged because of changes to canvas objects.

Returns:
if there were pendingobjects it return true

Definition at line 733 of file candoc.cpp.

void a2dCanvasDocument::UpdateAllViews ( a2dView sender = (a2dView *) NULL,
unsigned int  hint = a2dCANVIEW_UPDATE_ALL,
wxObject *  objecthint = (wxObject *) NULL 
) [virtual]

sent Update events to all a2dView which display or use this document.

Changes in the document are reported by the objects contained in the document, after a change, they set the pending flag of the document and itself. Here the document lets the a2dView's know how the views should be updated. The normal case is Redrawing what is in the old and new boundingbox of each changed object.

The default Updates all a2dCanvasObjects that are pending and adds a redraw area the size of the view to all views, after that the pending object flags are reset. The result is redrawing all a2dCanvasView views in idle time completely.

Parameters:
sender which view did calls this fucntion ( Non = NULL ).
hint will be casted to a2dCanViewUpdateFlags in a2dCanvasView the effect will differ on the hint given.
objecthint more complex way to deliver hints

Reimplemented from a2dDocument.

Definition at line 712 of file candoc.cpp.

bool a2dCanvasDocument::WriteSVG ( a2dCanvasView drawer,
const wxString &  filename,
a2dCanvasObject top,
double  Width,
double  Height,
wxString  unit 
)

write as SVG to a file starting at given object

Parameters:
drawer drawing view context
filename filename of stream to write the SVG content to.
top start writting at this object.
Width width in unit will be the physical width of the drawing.
Height height in unit will be the physical height of the drawing.
unit Unit of width and height e.g. "cm" "um".

Definition at line 645 of file candoc.cpp.

void a2dCanvasDocument::Load ( wxObject *  parent,
a2dIOHandlerXmlSerIn parser 
) [virtual]

used by CVG parser

Remarks:
do not use directly

Reimplemented from a2dDocument.

Definition at line 393 of file candoc.cpp.

bool a2dCanvasDocument::LoadLayers ( const wxString &  filename  ) 

load layers from another file

Only the layer settings are read from the file and put in place of the current layers settings in the document.

Definition at line 443 of file candoc.cpp.

void a2dCanvasDocument::UpdateLoadedLayerSetup (  )  [virtual]

Update a loaded layer setup.

This is called after loading a layer setup. The base class function does nothing. It is usefull to override this to update a loaded layer setup to e.g. a new software version

Definition at line 493 of file candoc.cpp.

void a2dCanvasDocument::Save ( wxObject *  parent,
a2dIOHandlerXmlSerOut out,
a2dObjectList towrite 
) [virtual]

called from a2dIOHandlerXmlSerOut after a SaveObject.

Parameters:
parent parent object from which Save was called
out CVG io handler
towrite object to write later

Reimplemented from a2dDocument.

Definition at line 596 of file candoc.cpp.

void a2dCanvasDocument::Save ( a2dIOHandlerCVGOut out,
a2dCanvasObject start = 0 
)

called from a2dIOHandlerCVGOut after a SaveObject.

Parameters:
out CVG io handler
start start wrting from this object

Definition at line 601 of file candoc.cpp.

void a2dCanvasDocument::SetLayerSetup ( a2dLayers layersetup  ) 

set the layersettings for the canvas.

A default Layer Setting is created in the constructor a2dCanvasDocument::a2dCanvasDocument

An example how to set another layer setup

        // Clone the current layer setup
        a2dLayers* docLayers = doc->GetLayerSetup()->Clone( bool deep = true );
        
        // Create a new layer with an index above the predefined layers
        a2dLayerInfo* lr = new a2dLayerInfo(wxLAYER_USER_FIRST, "MyLayer");
        
        // Set layer available
        lr->Set_Available(true);
        
        // Add layer to to the a2dLayers
        docLayers->Append(lr);
        
        doc->SetLayerSetup(docLayers);

Remarks:
You don't have to call Set_UpdateAvailableLayers it will be done automatically
Parameters:
layersetup the new layersetup

Definition at line 232 of file candoc.cpp.

a2dLayers* a2dCanvasDocument::GetLayerSetup (  )  [inline]

Get the layersettings for the canvas.

A default Layer Setting is taken from a2dCanvasGlobal.

See also:
a2dCanvasGlobal for central layers settings, used for initializing a a2dCanvasDocument

Definition at line 411 of file candoc.h.

void a2dCanvasDocument::SetMultiRoot ( bool  multiRoot = true  )  [inline]

Set true if the document read from a file did not have on erootobject but several.

Some formats as GDS-II and KEY, can contain many structure, which are not placed in a single parent object. Still in a a2dCanvasDocument they will be placed in the m_rootobject. This flag can be used when writing the data back in the same way, skipping the rootobject if possible.

Definition at line 419 of file candoc.h.

bool a2dCanvasDocument::GetMultiRoot (  )  [inline]

See also:
SetMultiRoot()

Definition at line 422 of file candoc.h.

void a2dCanvasDocument::SetUpdatesPending ( bool  onoff  ) 

Tells the document that an object has changed.

If an object has changed and and needs an update, this method informes the document about this. The update of pending objects will be proceed in Idle time.

Definition at line 202 of file candoc.cpp.

void a2dCanvasDocument::DependencyPending (  ) 

call DependencyPending on root object and recursive on childs.

This call is repeated until no more a2dCanvasObject were set pending.

See also:
a2dCanvasObject::DependencyPending

Definition at line 187 of file candoc.cpp.

void a2dCanvasDocument::SetIgnorePendingObjects ( bool  onoff  ) 

Switches ignorance of pending objects on and off.

If set to true pending objects won't be updated. This method is used by several tools (i.e. a2dDragTool) to avoid updates while the tool is working.

See also:
GetUpdatesPending()
Parameters:
onoff true to ignore pending objects, else false

Definition at line 227 of file candoc.cpp.

double a2dCanvasDocument::GetUnitsAccuracy (  )  [inline]

this is the number that defines the number of decimal places in the fraction

when writing numbers to a file. When reading a file, this number is set to the accuracy information available in the file. 1/GetUnitsAccuracy() == 100 means 2 decimal places will be written, or the data just read is accurate to this number of decimal places.

Remarks:
GetUnitsAccuracy() can also be > 1

Definition at line 465 of file candoc.h.

void a2dCanvasDocument::SetUnitsAccuracy ( double  accuracy  )  [inline]

this is the number that defines the number of decimal places in the fraction

when writing numbers to a file. When reading a file, this number is set to the accuracy information available in the file. 1/GetAccuracyUserUnits() == 100 means 2 decimal places will be written, or the data just read is accurate to this number of decimal places.

Remarks:
SetUnitsAccuracy() can also be > 1

Definition at line 474 of file candoc.h.

double a2dCanvasDocument::GetUnitsScale (  )  [inline]

this is the number that defines the physical dimension in meters / inch/ etc.

numbers used for storing length or position or always stored as doubles. The real dimension is: (anynumber) * GetUnitsScale() * GetUnits()

Definition at line 480 of file candoc.h.

void a2dCanvasDocument::SetUnitsScale ( double  scale  )  [inline]

this is the number that defines the physical dimension in meters / inch/ etc.

numbers used for storing length or position or always stored as doubles. The real dimension is: (anynumber) * GetUnitsScale() * GetUnits()

Definition at line 487 of file candoc.h.

double a2dCanvasDocument::GetNormalizeScale (  )  [inline]

Normalize objects ( defined in coordinates -1 to 1 ranges ) will be multiplied by this factor.

Libraries containing object which are defined in normalized coordinates, need to be multiplied by a certain factor before they can be added to a document. This factor defines by how much that should be done. As an example a libary containing arrow objects for placing at the end of a2dEndsLine objects, will use this factor.

Definition at line 497 of file candoc.h.

wxString a2dCanvasDocument::GetUnits (  )  [inline]

this string defines the unit e.g. meters / inch/ etc.

numbers used for storing length or position or always stored as doubles. The real dimension is: (anynumber) * GetUnitsScale() * GetUnits()

Remarks:
the value may also be "trees" "pixels" or "people" etc.

conversion to other units is not just simply changing this string. You must Change the SetUnitsScale(double) or really scale the data itself.

Definition at line 511 of file candoc.h.

void a2dCanvasDocument::SetUnits ( const wxString &  unitString  )  [inline]

this string defines the unit e.g. meters / inch/ etc.

numbers used for storing length or position or always stored as doubles. The real dimension is: (anynumber) * GetUnitsScale() * GetUnits()

Remarks:
the value may also be "trees" "pixels" or "people" etc.

conversion to other units is not just simply changing this string. You must Change the SetUnitsScale(double) or really scale the data itself.

Definition at line 522 of file candoc.h.

void a2dCanvasDocument::SetModificationTime ( const wxDateTime &  datatime  )  [inline]

Sets a time of last modification.

Parameters:
datatime new modification time

Definition at line 538 of file candoc.h.

wxDateTime& a2dCanvasDocument::GetModificationTime (  )  [inline]

Returns the time of last modification when the document was saved.

Returns:
time of last modification

Definition at line 544 of file candoc.h.

void a2dCanvasDocument::SetAccessTime ( const wxDateTime &  datatime  )  [inline]

Sets the time of last access to this doc.

Parameters:
datatime new last access time

Definition at line 550 of file candoc.h.

wxDateTime& a2dCanvasDocument::GetInternalChangedTime (  )  [inline]

gives time when a change was made to the document which may effect rendering

Comparing this time in a dialogs its own update time, one can easily keep them up to date.

e.g. set in SetUpdatesPending()

Definition at line 561 of file candoc.h.

void a2dCanvasDocument::OnIdle ( wxIdleEvent &  event  )  [protected]

Called by ProcessEvent(wxEvent& event) of document.

Event processing is called by wxView and therefore a2dCanvasView. In a a2dDocumentCommandProcessor controller application wxDocChildFrame and wxDocParentFrame redirect events to wxView and a2dDocumentCommandProcessor. In a non a2dDocumentCommandProcessor the a2dCanvas is calling ProcessEvent(wxEvent& event) of document. Onidle updates all drawers if pending updates are available

Definition at line 698 of file candoc.cpp.


Member Data Documentation

setup for layers in this document

Remarks:
will contain if a layer is available/visible for rendering

object without style will take the layer style to draw itself.

Definition at line 596 of file candoc.h.

gives time when a change was made to the document which may effect rendering

e.g. set in SetUpdatesPending()

Definition at line 638 of file candoc.h.


The documentation for this class was generated from the following files:
a2dCanvasDocument Class Reference -- Tue Aug 31 18:12:26 2010 -- 31 Aug 2010 -- 1.5.5 -- wxArt2D -- . -- Main Page Reference Documentation