///////////////////////////////////////////////////////////////////////////////// // // This file is part of SACAMOS, cable models for EMI simulations in SPICE. // It was developed by the University of Nottingham and the Netherlands Aerospace // Centre (NLR) for ESA under contract number 4000112765/14/NL/HK. // // Copyright (C) 2015 - 2018 University of Nottingham // // SACAMOS is free software: you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the Free Software // Foundation, either version 3 of the License, or (at your option) any later // version. // // SACAMOS is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License // for more details. // // A copy of the GNU General Public License version 3 can be found in the // file GNU_GPL_v3 in the root or at . // // wxWidgets is currently licenced under the "wxWindows Library Licence". // A copy of the wxWindows Library Licence, Version 3.1 can be found in the file // wxWindows_Library_Licence_v3-1 in the root or at: // // // The University of Nottingham can be contacted at: ggiemr@nottingham.ac.uk // // File Contents: // // NAME // BUNDLEBLDR.h // // DESCRIPTION // Cable bundle builder application // // AUTHOR(S) // Steve Greedy // ///////////////////////////////////////////////////////////////////////////////// #ifndef BUNDLEBLDR_H #define BUNDLEBLDR_H //(*Headers(BUNDLEBLDR) #include #include #include #include #include #include #include #include #include #include #include #include //*) // Additional wxWidgets Includes #include #include // Application Includes #include "FileSelectorCtrl.h" #include "UTILITIES.h" #include "MESH_LAPLACE.h" #include "MESH_PARAM.h" #include "RUN_STATUS.h" // Standard Library Header Files #include #include class BundleDrawPane : public wxPanel { public: BundleDrawPane(wxFrame* parent); void paintEvent(wxPaintEvent & evt); void paintNow(); void render(wxDC& dc); // some useful events /* void mouseMoved(wxMouseEvent& event); void mouseDown(wxMouseEvent& event); void mouseWheelMoved(wxMouseEvent& event); void mouseReleased(wxMouseEvent& event); void rightClick(wxMouseEvent& event); void mouseLeftWindow(wxMouseEvent& event); void keyPressed(wxKeyEvent& event); void keyReleased(wxKeyEvent& event); */ DECLARE_EVENT_TABLE() }; class BUNDLEBLDR: public wxDialog { public: BUNDLEBLDR(wxWindow* parent,wxWindowID id=wxID_ANY,const wxPoint& pos=wxDefaultPosition,const wxSize& size=wxDefaultSize); void OnTreeSelectionChanged(wxTreeEvent& evt); void SetPathForDir(wxString, wxString ); virtual ~BUNDLEBLDR(); void paintNow(); void render(wxDC& dc); void FormatPanel(double); void DrawBundleCable(wxString, wxString, wxString, wxString); void ConstructBundleCsection(wxString, wxString, wxString); void DrawPanel(); void DrawBundleCsection(); void WriteBundleFile(wxString); void OnListboxRDown(wxMouseEvent& event); void removeElement(int); void PopulateListControl(void); //wxGenericDirCtrl *tree; wxSpecificDirCtrl *tree2 = NULL; //NULL used to remain consistent with wxWidgets use of the standard NULL macro wxString PathToMOD; wxString MODname; struct Bundle { wxString x_offset; wxString y_offset; wxString rot_theta; wxString CableType; Bundle *next; }; Bundle *bundle_root; Bundle *bundle_list; BundleDrawPane *drawPane; wxString MESH_PARAM1; wxString MESH_PARAM2; int MeshSelected = 0; float scale = 1.0; //(*Declarations(BUNDLEBLDR) wxStaticText* StaticText10; wxStaticText* StaticText9; wxTextCtrl* TextCtrl4; wxRadioButton* RadioButton1; wxPanel* Panel5; wxNotebook* Notebook1; wxStaticText* StaticText13; wxStaticText* StaticText2; wxPanel* Panel4; wxStaticText* StaticText14; wxRadioButton* RadioButton2; wxButton* Button1; wxStaticText* StaticText6; wxTextCtrl* TextCtrl6; wxStaticText* StaticText8; wxStaticText* StaticText11; wxCheckBox* CheckBox3; wxCheckBox* CheckBox2; wxPanel* Panel1; wxStaticText* StaticText1; wxStaticText* StaticText3; wxButton* Button2; wxPanel* Panel6; wxCheckBox* CheckBox1; wxPanel* Panel3; wxSpinButton* SpinButton1; wxButton* Button3; wxStaticText* StaticText5; wxStaticText* StaticText7; wxTextCtrl* TextCtrl8; wxTextCtrl* TextCtrl2; wxCheckBox* CheckBox4; wxComboBox* ComboBox1; wxTextCtrl* TextCtrl7; wxTextCtrl* TextCtrl1; wxStaticText* StaticText12; wxTextCtrl* TextCtrl9; wxPanel* Panel2; wxTextCtrl* TextCtrl5; wxStaticText* StaticText4; wxTextCtrl* TextCtrl3; wxTextCtrl* TextCtrl10; wxListBox* ListBox1; //*) protected: //(*Identifiers(BUNDLEBLDR) static const long ID_STATICTEXT1; static const long ID_TEXTCTRL1; static const long ID_PANEL2; static const long ID_LISTBOX1; static const long ID_PANEL3; static const long ID_CHECKBOX1; static const long ID_STATICTEXT2; static const long ID_PANEL4; static const long ID_CHECKBOX2; static const long ID_COMBOBOX1; static const long ID_CHECKBOX3; static const long ID_STATICTEXT6; static const long ID_STATICTEXT7; static const long ID_TEXTCTRL4; static const long ID_STATICTEXT8; static const long ID_TEXTCTRL5; static const long ID_STATICTEXT13; static const long ID_TEXTCTRL9; static const long ID_STATICTEXT14; static const long ID_TEXTCTRL10; static const long ID_PANEL5; static const long ID_STATICTEXT11; static const long ID_CHECKBOX4; static const long ID_STATICTEXT3; static const long ID_TEXTCTRL2; static const long ID_STATICTEXT4; static const long ID_RADIOBUTTON1; static const long ID_RADIOBUTTON2; static const long ID_STATICTEXT5; static const long ID_TEXTCTRL3; static const long ID_STATICTEXT9; static const long ID_TEXTCTRL6; static const long ID_STATICTEXT10; static const long ID_TEXTCTRL7; static const long ID_PANEL6; static const long ID_NOTEBOOK1; static const long ID_BUTTON1; static const long ID_BUTTON2; static const long ID_BUTTON3; static const long ID_PANEL1; static const long ID_STATICTEXT12; static const long ID_TEXTCTRL8; static const long ID_SPINBUTTON1; //*) private: //(*Handlers(BUNDLEBLDR) void OnButton2Click(wxCommandEvent& event); void OnButton3Click(wxCommandEvent& event); void OnPanel2Paint(wxPaintEvent& event); void OnCheckListBox1Toggled(wxCommandEvent& event); void OnPanel1Paint(wxPaintEvent& event); void OnButton1Click(wxCommandEvent& event); void OnButton2Click1(wxCommandEvent& event); void OnCheckBox1Click(wxCommandEvent& event); void OnCheckBox3Click(wxCommandEvent& event); void OnComboBox1Selected(wxCommandEvent& event); void OnTextCtrl4Text(wxCommandEvent& event); void OnInit(wxInitDialogEvent& event); void OnTextCtrl5Text(wxCommandEvent& event); void OnSpinButton1Change(wxSpinEvent& event); void OnTextCtrl8Text(wxCommandEvent& event); void OnTextCtrl8TextEnter(wxCommandEvent& event); void OnSpinButton1ChangeUp(wxSpinEvent& event); void OnSpinButton1ChangeDown(wxSpinEvent& event); void OnCheckBox2Click(wxCommandEvent& event); //*) void PopulateTheDirectoryTree ( wxString); DECLARE_EVENT_TABLE() }; #endif