00001
00002
00003
00004
00005
00006
00007
00010 #ifndef TEXT_H
00011 #define TEXT_H
00012
00013 #ifdef __GNUG__
00014 #pragma interface
00015 #endif
00016
00017 #include <string.h>
00018 #include <stdlib.h>
00019
00020 #include "misc.h"
00021 #include "wxmatrix.h"
00022 #include "point.h"
00023 #include "bbox.h"
00024 #include "gdserr.h"
00025 #include "gdsii.h"
00026 #include "shape.h"
00027
00028 class DrawDriver;
00029 class Driver_out;
00030
00031 class Strans;
00032
00033
00034 #define _char_width 10
00035 #define _char_height 8
00036
00037 enum TEXT_PATHTYPE {TEXT_PATH_END_SQAURE,TEXT_PATH_END_ROUND,TEXT_PATH_END_SQAURE_EXT};
00038 typedef short int TEXT_TYPE;
00039
00040
00041
00042
00043 enum {FONT0,FONT1,FONT2,FONT3};
00044 enum {TOP, MIDDLE, BOTTOM};
00045 enum {LEFT, CENTER, RIGTH};
00046
00047 typedef struct pres_bitflags
00048 {
00049
00050 #if wxBYTE_ORDER == wxBIG_ENDIAN
00051 unsigned reserved : 10;
00052 unsigned _font: 2;
00053 unsigned _vertical: 2;
00054 unsigned _horizontal: 2;
00055 #else
00056 unsigned _horizontal: 2;
00057 unsigned _vertical: 2;
00058 unsigned _font: 2;
00059 unsigned reserved : 10;
00060 #endif
00061 } pres_bitflags;
00062
00063
00064
00065
00066
00067 #define DEFAULT_PRESENTATION_FONT FONT0
00068 #define DEFAULT_PRESENTATION_VERTICAL TOP
00069 #define DEFAULT_PRESENTATION_HORIZONTAL LEFT
00070 #define DEFAULT_FONT_HEIGHT 1
00071
00073
00076 class Text : public Shape
00077 {
00078 public:
00079
00080 Text(int layernr = 0);
00081 ~Text();
00082
00083 void OWrite(Driver_out& where);
00084 void DoWrite(DrawDriver& dr);
00085
00086 TYPE GetType() {return TEXT;};
00087 void GetPoint(Point& offsetpoint);
00088
00089
00090 void Init(int);
00091 Element* Duplicate();
00092 Text& operator=(Text&);
00093
00094 void SetRelativeMatrix(wxTransformMatrix* m);
00095 wxTransformMatrix* GetRelativeMatrix();
00096 BoundingBox& CalcBoundingBox();
00097 void SetPresentationFlags( short int total);
00098 short int GetPresentationFlags( );
00099 TEXT_TYPE GetTexttype();
00100 void SetTexttype(TEXT_TYPE);
00101 TEXT_PATHTYPE GetPathtype();
00102 void SetPathtype(TEXT_PATHTYPE);
00103 void SetText(const wxString& text);
00104 wxString MyText();
00105 void Transform(wxTransformMatrix* _Matrix);
00106 void Convert(G_Polygon* noneed, double marge);
00107
00108 bool Select(Point*);
00109 bool Select(BoundingBox*,wxTransformMatrix*);
00110
00111 double GetHeight();
00112 void SetHeight(double newheight);
00113 Point GetMin();
00114 Point GetMax();
00115
00116 wxPropertySheet* GetPropList();
00117 void UpdatePropList();
00118
00119 void SetFont(char nw_font = DEFAULT_PRESENTATION_FONT);
00120 void SetVertical(char nw_vertical = DEFAULT_PRESENTATION_VERTICAL);
00121 void SetHorizontal(char nw_horizontal = DEFAULT_PRESENTATION_HORIZONTAL);
00122 char GetFont();
00123 char GetVertical();
00124 char GetHorizontal();
00125 void SetRotation(double rotation);
00126 double GetRotation();
00127
00128
00129 protected:
00130 wxString _text;
00131 TEXT_TYPE _texttype;
00132 TEXT_PATHTYPE _pathtype;
00133 wxTransformMatrix _relative_matrix;
00134 Point _min;
00135 Point _max;
00136 union {
00137 short int total;
00138 pres_bitflags bits;
00139 } _presentationflags;
00140 };
00141
00142 #endif
text.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . --