/////////////////////////////////////////////////////////////////////////////////
//
// 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;
//(*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