00001
00024 #ifndef INC_GRE_LRSKETCH_H
00025 #define INC_GRE_LRSKETCH_H
00026
00027 #ifndef INC_GRE_LRCAD_H
00028 #include <gre/lrcad.h>
00029 #endif
00030
00031 #ifndef INC_RVC_OBJECT_H
00032 #include <rvc/object.h>
00033 #endif
00034
00035 #ifndef GENERATING_DOXYGEN_OUTPUT
00036 namespace RVC {
00037 class CAD;
00038 class CADELEMENT;
00039 class CADSTDATT;
00040 class STYLE;
00041 }
00042
00043 class DBEDIT;
00044 #endif
00045
00046 namespace GRE {
00047
00048 class LAYER_SKETCH : public LAYER_CAD {
00049 public:
00050
00051 enum WARNOUTSIDE {
00052 WARNOUTSIDE_Always,
00053 WARNOUTSIDE_Once,
00054 WARNOUTSIDE_Never
00055 };
00056
00057 enum SETUPSKETCH {
00058 SETUPSKETCH_AllowNone,
00059 SETUPSKETCH_Create,
00060 SETUPSKETCH_Open
00061 };
00062
00064 static void ForceCloseAll (
00065 GRE::VIEWABLE *viewable
00066 );
00067
00069 static void RegisterType ();
00070
00072 static LAYER_SKETCH* SetupSketch (
00073 GRE::VIEW *view,
00074 LAYER_SKETCH *CurSketchLayer,
00075 SETUPSKETCH mode,
00076 MDLGPARENT dlgparent = 0
00077 );
00078
00080 explicit LAYER_SKETCH (
00081 GRE::GROUP *group,
00082 CREATEFLAGS createflags = CREATEFLAG_None,
00083 GRE::LISTPOS listpos = GRE::LISTPOS_Last,
00084 LAYER *reflayer = 0
00085 );
00086
00087 virtual ~LAYER_SKETCH ();
00088
00090 ERRVALUE AddElement (
00091 MDLGPARENT dlgparent,
00092 RVC::CADELEMENT& Element,
00093 const MULTISTYLE& style,
00094 GRE::VIEW *view
00095 );
00096
00098 ERRVALUE DeleteLastElement ();
00099
00101 ERRVALUE DlgDefineAttribTable (
00102 MDLGPARENT dlgparent
00103 );
00104
00106 ERRVALUE DlgSave (
00107 MDLGPARENT dlgparent
00108 );
00109
00111 ERRVALUE FindAttribTable ();
00112
00114 void ForceCloseObject ();
00115
00117 bool GetPromptForAttrib () const
00118 { return (m_PromptForAttrib && HasAttribTable()); }
00119
00121 RVC::STYLE& GetStyleObject (
00122 ) { return (*m_pObjStyle); }
00123
00125 bool HasAttribTable () const;
00126
00128 bool IsTemporary () const
00129 { return (m_IsTemporary); }
00130
00132 void SetPromptForAttrib (
00133 bool PromptForAttrib
00134 ) { m_PromptForAttrib = PromptForAttrib; }
00135
00137 ERRVALUE SetupStyleObject ();
00138
00140 void SetWarnOutside (
00141 WARNOUTSIDE WarnOutside
00142 ) { m_WarnOutside = WarnOutside; }
00143
00144 private:
00145 #ifndef GENERATING_DOXYGEN_OUTPUT
00146
00147 WARNOUTSIDE m_WarnOutside;
00148 bool m_IsTemporary;
00149 bool m_WarnOutsideDone;
00150 bool m_PromptForAttrib;
00151 int m_AttribTableNum;
00152 DBEDIT *m_pDbEdit;
00153 RVC::CAD *m_pObjSketch;
00154 RVC::CADSTDATT *m_pStdAttSketch;
00155 RVC::STYLE *m_pObjStyle;
00156
00157 ERRVALUE OpenPrivateObject (RVC::OBJECT::OPENMODE mode);
00158
00159
00160 virtual ERRVALUE v_AssignObject (const RVC::OBJITEM& objitem, MDLGPARENT dlgparent);
00161 virtual void v_CloseObject ();
00162 virtual LAYER* v_Copy (GRE::GROUP *group) const;
00163 virtual const char* v_SerialGetTagName () const;
00164
00165 LAYER_SKETCH (const LAYER_SKETCH&);
00166 LAYER_SKETCH& operator= (const LAYER_SKETCH&);
00167
00168 #endif // GENERATING_DOXYGEN_OUTPUT
00169 };
00170
00171
00172 }
00173
00174 #endif // INC_GRE_LRSKETCH_H