element.h Source File

Main Page Class Hierarchy Compound List File List Compound Members

# element.h

    00001
    00002
    00003 /*
    00004 Program                 ELEMENT.H
    00005 Purpose                 base class for elements
    00006 Last Update             24-09-96
    00007 */
    00008
    00009 #ifndef ELEMENT_H
    00010 #define ELEMENT_H
    00011
    00012 #ifdef __GNUG__
    00013 #pragma interface
    00014 #endif
    00015
    00016 enum SelectType { DESELECT, SELECT, SELECTALL, DESELECTALL,QUERY };
    00017 enum TYPE {NON,BOUNDARY,PATH,TEXT,SREF,AREF,ARCSEG,BOX,CIRCLE,IMAGE,SLINE};
    00018 enum EleFlags{ELE_NON=0x0000,ELE_SELECTED=0x0001,ELE_GR_A=0x0002,ELE_GR_B=0x0004,
    00019                                   ELE_GR_C=0x0008,ELE_GR_AB=0x0006,ELE_FILLED=0x0010,ELE_ALL=0xFFFF};
    00020 enum PATHTYPE {PATH_END_SQAURE,PATH_END_ROUND,PATH_END_SQAURE_EXT};
    00021
    00022 #include "misc.h"
    00023 #include "bbox.h"
    00024
    00025 class wxPropertySheet;
    00026
    00027 class DrawDriver;
    00028 class Driver_out;
    00029
    00030
    00031 typedef struct element_bitflags
    00032 {
    00033
    00034 #if wxBYTE_ORDER == wxLITTLE_ENDIAN
    00035                 unsigned        m_select : 1;
    00036                 unsigned        m_group_a: 1;
    00037                 unsigned        m_group_b: 1;
    00038                 unsigned        m_group_c: 1;
    00039                 unsigned        m_filled : 1;
    00040                 unsigned        m_template:1 ;
    00041                 unsigned        m_external :1 ;
    00042                 unsigned        m_used :1 ;
    00043                 unsigned        reserved  :      8;
    00044 #else
    00045                 unsigned        reserved  :      8;
    00046                 unsigned        m_used :1 ;
    00047                 unsigned        m_external :1 ;
    00048                 unsigned        m_template:1 ;
    00049                 unsigned        m_filled : 1;
    00050                 unsigned        m_group_c: 1;
    00051                 unsigned        m_group_b: 1;
    00052                 unsigned        m_group_a: 1;
    00053                 unsigned        m_select : 1;
    00054 #endif
    00055 } element_bitflags;
    00056
    00057 class Structure;
    00058
    00060
    00069 class Element
    00070 {
    00071         public:
    00072                 Element();
    00073
    00074                 virtual ~Element();
    00075
    00076                 Element& operator=(Element &other);
    00077
    00078       void Write(Driver_out& dr);
    00079       virtual void OWrite(Driver_out& dr)=0;
    00080
    00081       virtual void Write(DrawDriver& dr);
    00082       virtual void DoWrite(DrawDriver& dr)=0;
    00083
    00084                 virtual Element*                        Duplicate()=0;
    00085
    00087                 virtual BoundingBox&                            CalcBoundingBox()=0;
    00089                 virtual BoundingBox&                            GetBoundingBox()=0;
    00091                 virtual void                                            Transform( wxTransformMatrix* _Matrix)=0;
    00092
    00094                 virtual TYPE                                            GetType()=0;
    00096                 virtual bool                                            Select(Point*)=0;
    00099                 virtual bool                                            Select(BoundingBox*,wxTransformMatrix*)=0;
    00100
    00102                 void                                                          SetFilled(bool);
    00104                 bool                                                    GetFilled();
    00106                 void                                                          SetSelect(bool);
    00108                 bool                                                    GetSelect();
    00110                 bool                                                                    GetGroupA();
    00112                 bool                                                                    GetGroupB();
    00114                 bool                                                                    GetGroupC();
    00116                 void                                                                    SetGroupA(bool value);
    00118                 void                                                                    SetGroupB(bool value);
    00120                 void                                                                    SetGroupC(bool value);
    00122                 void                                                                    SetFlags(short int which);
    00124                 void                                                                    ClearFlags(short int which);
    00126                 short int                                                  GetFlags();
    00128                 virtual wxPropertySheet*                HasPropList();
    00130       virtual wxPropertySheet*          GetPropList();
    00132       virtual void                                              UpdatePropList();
    00134                 void                                                                    AddProperty(const wxString& name,const wxString& type,const wxString& value);
    00136       void                                                                      SetStamp(long event);
    00138       long                                                                      GetStamp();
    00139
    00140       virtual Structure*                                        GetStructure(){return 0;};
    00141
    00142                 void            SetTemplate(bool b = true);
    00143                 void            SetExternal(bool b = true);
    00144                 void            SetUsed(bool b = true);
    00145
    00146                 bool    GetTemplate();
    00147                 bool    GetExternal();
    00148                 bool    GetUsed();
    00149
    00150    protected:
    00152                 long                                     m_stamp;
    00154                 union  {
    00155                short int _all;
    00156                                         element_bitflags bits;
    00157                                  } bit_flags;
    00159       wxPropertySheet*   m_wxpropsheet;
    00161                 BoundingBox     m_boundingbox;
    00162
    00163 };
    00164 #endif
    00165

element.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . -- Main Page