Main Page   Class Hierarchy   Compound List   File List   Compound Members  

chandbas.h

00001 
00002 
00003 /*
00004 Program                 CHANDLER.H
00005 Purpose                 Commandhandler between userinterface and commands (header)
00006                                         This file is the buffer between every command generator
00007                                         and the internal structures. It's platform independed.
00008                                         It's used by MainWindow
00009                                         This file also calls functions from the mainwindow. See
00010                                         the documentation for more details about these functions.
00011 Last Update             20-12-1995
00012 */
00013 
00014 #ifndef CHANDBAS_H
00015 #define CHANDBAS_H
00016 
00017 #ifdef __GNUG__
00018 #pragma interface
00019 #endif
00020 
00021 #include "misc.h"
00022 #include "wxwin.h"
00023 #include "_dl_itr.h"
00024 #include "units.h"
00025 
00026 //__UNIX__ uses
00027 #include        <stdarg.h>
00028 #include <fstream.h>
00029 #include "alias.h"
00030 
00031 #define MAXHISTORY 10
00032 enum OperationMethod{GROUP_LAYER,GROUP_SELECTED,SELECTED_ELEMENTS};
00033 
00034 // forward declaration of the mainwindow
00035 class AliasList;
00036 class GdsII;
00037 class Structure;
00038 class ElementList;
00039 class Command;
00040 class group;
00041 class Setup;
00042 class wxColour;
00043 class bbox;
00044 class DDEHandler;
00045 class Handler;
00046 
00047 
00048 //pointer to function
00049 typedef bool (CommandHandler::*lfp) ();
00050 
00052 
00063 class CommandHandler
00064 {
00065         public:
00066                 // constructors
00067       CommandHandler();
00069                 ~CommandHandler();
00070 
00071 
00073                 bool Replace_Setup(Setup* new_setup);
00074 
00076       //\return 1 if command was oke
00077       //\return 2 if command was if not oke
00078       //\return 0 if command does not exist
00079                 int     ExecuteCommand();
00080 
00082                 bool    DoCommand(char* Format,...);
00083 
00085                 bool   GetStepMode() {return m_stepmode;};
00087                 bool   StepMode();
00088 
00090                 bool   GetContinue() {return m_continue;};
00092                 bool   SetContinue(bool a){m_continue=a;return true;};
00094                 bool   SetContinueFlag();
00095 
00097                 double                                                  Get_ScaleFactor();
00099                 int                                                             Get_ZoomHistoryEmpty();
00101                 bool                                                    ZoomOut();
00103                 bool                                                    ZoomOut2();
00105                 bool                                                    ZoomBack();
00107                 bool                                            Draw();
00108 
00110                 bool                     GetSpline(){return m_spline;};
00111 
00113       bool                                                      SetSpline();
00114 
00115 
00117                 bool                     Get_Record();
00119                 group*                     Get_A();
00121                 group*                     Get_B();
00123                 int                        Get_Destination();
00125                 bool                       Get_Destination_Add(){return m_destination_add;};
00127                 GdsII*                     Get_GDSII();
00129                 void                         Set_GDSII(GdsII* a_gdsii);
00130 
00131       //only viewmode?
00132       bool                     GetViewer(){return m_viewer;}
00133 
00135                 Structure*                 Get_TopStructure();
00136 
00138                 wxString                               Get_FileName();
00140                 void                         Set_FileName(const wxString& filename);
00141 
00143       bool                                                      SetWidth();
00145       wxUnit&                                                   GetWidth();
00146 
00148       bool                                                      SetPathtype();
00149 
00151       int                                                               GetPathtype();
00152 
00154                 bool                                                    GetViewCoord();
00156       bool                                                      SetViewCoord(bool value);
00157 
00159                 bool                                                    GetViewOutline();
00161                 bool                                                    SetViewOutline(bool value);
00162 
00164       bool                                                      GetSelectedOnly();
00165 
00167       bool                                                      GetVisibleOnly();
00168 
00170       bool                                                      GetSaveSetUpOnExit();
00171 
00173       bool                                                      GetGridVisible();
00174 
00176                 bool                                                    GetEnv(const wxString& envname,wxString& envstring);
00178                 bool                                                    SetEnv();
00180                 bool                                                    GetAlias(const wxString& aliasname,wxString& aliasstring);
00182                 bool                                                    SetAlias();
00183 
00185                 int                                                             GetNrAlias();
00187                 bool                                                    GetAliasNr(int i,wxString& aliasname,wxString& aliasstring);
00188 
00190       bool                                                      GetMirrorX();
00192       bool                                                              GetMirrorY();
00194       wxUnit&                                                   GetMoveHor();
00196       wxUnit&                                                   GetMoveVer();
00198       double                                                    GetScale();
00200       double                                                    GetRotate();
00202       bool                                                              GetDirection();
00203 
00205       long                                                              GetGridColour();
00207       long                                                              GetBackColour();
00209       wxUnit&                                                   GetGridSpace();
00210 
00212                 int                                                             GetGridPlacement();
00213 
00215                 double                                                  GetSelectmarge(){return _selectmarge;};
00217                 wxUnit&                                                 GetSnapfactor();
00219                 wxUnit&                                                 GetCorrectionfactor();
00221                 wxUnit&                                                 GetCorrectionaber();
00223                 double                                                  GetRoundfactor();
00225                 wxString&                                               GetRoundtype();
00226 
00228                 wxUnit&                                                 GetPoly2ArcRmin();
00230                 wxUnit&                                                 GetPoly2ArcRmax();
00232                 wxUnit&                                                 GetPoly2ArcAber();
00234                 wxUnit&                                                 GetArc2PolyAber();
00235 
00237                 wxUnit&                                                 GetSmoothAber();
00239                 wxUnit&                                                 GetDisplayaber();
00241                 int                                                             GetStrucThres();
00243                 int                                                             GetPrimThres();
00245                 bool                                                            GetDrawSmallPrim();
00247                 wxUnit&                                                 GetMaxlinemerge();
00248 
00250       double                     GetDefaultAcc(){return _default_acc;};
00252                 wxUnit                     GetDefaultUnit(){return _default_unit;};
00253 
00255                 void                                                            AddSlash(wxString& _filename);
00257                 void                                                            StripSlash(wxString& _filename);
00258 
00260                 bool                                                    SetFileType(const wxString& _filetype);
00261 
00263                 wxString                                                GetFileType();
00264 
00266                 bool                                                    SetFileEnv(const wxString& _filetoload);
00268                 bool                                                    SetProcEnv(const wxString& _processfile);
00270                 void                                                            SetupEnv();
00271 
00273                 bool                     SetStartPoint();
00275                 bool                     SetRelPoint();
00276 
00278       bool                     KeyString();
00279 
00281                 bool                                                    Select();
00283                 bool                                                    ReplaceStruct();
00284 
00286       ElementList*                                      GetTopElementList();
00288                 bool                                                    ToHistory(char* Format,...);
00290                 bool                                                    ToHistory(Command* a_command);
00292                 int                                                             GetCurrentLayer();
00293 
00295       bool AddFileToHistory(const wxString& file,const wxString& type);
00297       bool CommandHandler::SaveHistory();
00298 
00301                 DL_List<Alias*>*                _file_history;
00302 
00303    private:
00304 
00306       int                                                               maxpointer;
00307 
00309       void   SetOperationFlags(bool explode);
00310 
00312                 bool                                                    Select(double,double,double,double,int);
00313 
00315 
00317       bool Operation_transform();
00319       bool Operation_undotrans();
00321       bool Operation_move_a();
00323       bool Operation_copy_a();
00325       bool Operation_delete_a();
00327                 bool Operation_addproperty_a();
00329       bool Operation_transform_a();
00331       bool Operation_undotrans_a();
00333       bool Operation_calcarea_a();
00335         bool Operation_makering();
00337       bool Operation_correction();
00339       bool Operation_toarcs();
00341       bool Operation_tolines();
00343       bool Operation_smoothen();
00345       bool Operation_intersect();
00347       bool Operation_merge();
00349       bool Operation_a_subtract_b();
00351       bool Operation_b_subtract_a();
00353       bool Operation_exor();
00354 
00355       //use windingrule for filling or not
00356       bool SetWindingRule();
00357 
00359                 bool                                                    Tool();
00361                 bool                                                    EndCommand();
00363                 bool                                                    UndoCommand();
00365                 bool                                                    Delete();
00367                 bool                                                    MakeStructure();
00369                 bool                                                    DeSelect();
00371                 bool                                                    Begin();
00373                 bool                                                    End();
00375       bool                                                      SetCursor();
00377                 bool                                                    AddPoint();
00379                 bool                                                    Move();
00380 
00382                 bool                                                    NewFile();
00384                 bool                                                    LoadFile();
00386                 bool                                                    MergeFile();
00387 
00389                 bool                                                    ScrollScreen();
00390 
00392                 bool                                                    IsZoomed();
00394                 void                                                            EmptyZoomHistory();
00396                 bool                                                    Zoom();
00398                 bool                                                    PrintFile();
00400                 double                          Zoom(double,double,double,double,int);
00401 
00403                 bool                                                    ClearScreen();
00404 
00406                 bool                                                    ShowCoords();
00407 
00409                 bool                                                    AddMenuFile();
00411                 bool                                                    CloseFile();
00413                 bool                                                    Flatten();
00415                 bool                                                    ViewStructure();
00417                 int                                                             View_Structure(Structure*);
00419                 bool                                                    DrawOutline();
00421       bool                                                      SetSelectedOnly();
00423       bool                                                      SetVisibleOnly();
00424 
00426       bool                                                      SetSaveSetUpOnExit();
00427 
00429       bool                                                      ShowGrid();
00431       bool                     ResetTrans();
00433       bool                     ShowBrowser();
00435       bool                     Exit();
00436 
00438       bool                     SetLogFile();
00439 
00440       //only use as viewer
00441       bool                     SetViewer();
00442 
00444                 bool    AskFile();
00446                 bool    Ask();
00447 
00449                 bool    Load_Process_File();
00451                 bool    LoadSetup();
00453                 bool    SaveSetup();
00455                 bool    SaveFile();
00456 
00458       bool      GetFileType(const wxString& filename, GdsII* gdsii,const wxString& type);
00459 
00461                 bool    SaveFileGDS(const wxString& filename);
00463                 bool    SaveFilePNG(const wxString& filename);
00465                 bool    SaveFileBMP(const wxString& filename);
00467                 bool    SaveFileKEY(const wxString& filename);
00469                 bool    SaveFileSVG(const wxString& filename);
00471                 bool   SaveFileFLASH(const wxString& filename);
00473                 bool   SaveFileEMASK(const wxString& filename);
00475                 bool    SaveFileExelon(const wxString& filename);
00477                 bool    SaveFileGerber(const wxString& filename);
00479                 bool    SaveFileCnc(const wxString& filename);
00480 
00482                 bool    Define_A();
00484                 bool    Define_B();
00486                 bool    DefineDestination();
00487 
00489                 bool    AddProperty();
00490 
00492                 bool    Record();
00494                 bool   Pause();
00495 
00497                 bool    SetMirrorX();
00499                 bool    SetMirrorY();
00501                 bool    SetMoveHor();
00503                 bool    SetMoveVer();
00505                 bool    SetScale();
00507                 bool    SetRotate();
00509                 bool    SetDirection();
00510 
00512       bool      SetGridSpace();
00514       bool      SetGridColour();
00516       bool      SetBackColour();
00518       bool      SetGridPlacement();
00520                 bool    SetSelectmarge();
00522                 bool    SetSnapfactor();
00524                 bool    SetCorrectionfactor();
00526                 bool    SetCorrectionaber();
00528                 bool    SetRoundfactor();
00530                 bool    SetRoundtype();
00532                 bool    SetPoly2ArcRmin();
00534                 bool    SetPoly2ArcRmax();
00536                 bool    SetPoly2ArcAber();
00538                 bool    SetArc2PolyAber();
00540                 bool    SetSmoothAber();
00542                 bool    SetDisplayaber();
00544                 bool    SetStrucThres();
00546                 bool    SetPrimThres();
00548                 bool    SetMaxlinemerge();
00550       bool   SetDefaultAcc();
00552       bool   SetDefaultUnit();
00553 
00555                 void            ParameterError(const wxString& );
00557                 bool    SetCurrentLayer();
00559                 bool    SetCurrentLayerByName();
00561                 bool    SetLayerName();
00563                 bool    SetGdsInMap();
00565                 bool    SetGdsOutMap();
00567                 bool    SetLayerVisible();
00569                 bool    SetLayerSelectable();
00571                 bool    SetLayerBorderColor();
00573                 bool    SetLayerFillColor();
00575                 bool    SetLayerBrush();
00577                 bool    SetLayerOrder();
00579                 bool    SetLayerRead();
00580 
00582                 bool   ShowTextDlg();
00584                 bool    ShowPathtypeDlg();
00586 
00587       bool      ShowCursorDlg();
00589                 bool   ShowFactors();
00591                 bool   ShowOrder();
00593                 bool    ShowGroups();
00595                 bool    ShowAlias();
00597                 bool    ShowEnv();
00599                 bool    ShowLayers();
00601                 bool    ShowFilename();
00603                 bool    ShowKeyBNF();
00605                 bool    ShowProcessBNF();
00607                 bool   ShowTopStructure();
00609                 bool                                                    ShowExecDlg();
00611                 bool                                                    ShowInsertLayerDlg();
00613                 bool                                                    ShowDistDlg();
00615                 bool                                                    ShowIdentDlg();
00617                 bool                                                    ShowHelp();
00618 
00620                 GdsII*                     _gdsii;
00622                 GdsII*                     _gdsii_merge;
00624                 Setup*                     _setup;
00625 
00627                 bool                                                    _view_coord;
00629                 bool                                                    _view_outline;
00631                 bool                                                    _view_debug;
00633       bool                                                      _selected_only;
00635       bool                                                      _visible_only;
00637       bool                                                      _savesetuponexit;
00639       bool                                                      _show_grid;
00640 
00642                 bool          _mirror_x;
00644                 bool          _mirror_y;
00646                 wxUnit          _move_hor;
00648       wxUnit          _move_ver;
00650       wxUnit          _scaling;
00652       double          _rotate;
00654       bool                               _direction;
00655 
00657       wxUnit                                                    m_grid_space;
00659       char                                                              _str_grid_colour[30];
00661       char                                                              _str_back_colour[30];
00662 
00664                 double          _selectmarge;
00666                 wxUnit          _snapfactor;
00668                 wxUnit          _correctionfactor;
00670                 wxUnit          _correctionaber;
00672                 double          _roundfactor;
00674                 wxUnit          _poly2arcrmin;
00676                 wxUnit          _poly2arcrmax;
00678                 wxUnit          _poly2arcaber;
00680                 wxUnit          _arc2polyaber;
00682                 wxUnit          _smoothaber;
00684                 wxUnit          _displayaber;
00686                 wxUnit          _maxlinemerge;
00687 
00688                 wxString        _roundtype;
00689 
00691                 int                                             _structhres;
00693                 int                                             _primthres;
00695                 bool                                            _drawsmallprim;
00696 
00698       wxUnit                     _default_width;
00700       wxUnit                     _default_height;
00702                 wxUnit                                          _default_unit;
00703 
00705                 double                                          _default_acc;
00706 
00708            bool                                                 m_stepmode;
00710            bool                                                 m_continue;
00711 
00712 
00714                 ofstream*                  _processing_file;
00715 
00717                 int                        _CurrentLayer;
00718 
00720                 group*                                                  _group_A;
00722                 group*                                                  _group_B;
00723 
00725                 int                        _destination;
00726 
00728                 bool                       m_destination_add;
00729 
00730       //only viewer
00731       bool m_viewer;
00732 
00734                 wxString                   _filename;
00735 
00737                 wxString                   _file_type;
00738 
00740                 wxString                                                _name_backup;
00741 
00743                 const wxString*                         _keyword;
00744 
00745       long                                                              _grid_colour;
00746       long                                                              _back_colour;
00747       int                                                               _grid_placement;
00748       double                     _start_point_x;
00749       double                     _start_point_y;
00750                 double                     _rel_point_x;
00751                 double                     _rel_point_y;
00752                 wxUnit                     _width;
00753                 int                          _pathtype;
00754 
00756                 bool          m_spline;
00757 
00759       OperationMethod                           _operationmethod;
00760 
00762                 DL_Iter<const wxString*>*                _I;
00763 
00765                 DL_List<Command*>*            _commandhistory;
00766 
00767         protected:
00768                 wxColour                                                        ltowxc(long);
00769       DDEHandler*                                               _ddehandler;
00770 
00772                 DL_List<void*>*                                 _zoom_history;
00774                 double                                                  _scale;
00775 
00777       Handler* _handler[200];
00778 };
00779 
00781 class Handler
00782 {
00783         public:
00785                 wxString        keyword;
00787            lfp                  fpointer;
00788 
00789 
00790                 Handler(const wxString& keyword,lfp);
00791         ~Handler();
00792 };
00793 
00794 #endif
00795 
chandbas.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . -- Main Page