kicad/gerbview/reglage.cpp

166 lines
4.6 KiB
C++

/********************************************/
/* PCBNEW - Gestion des Options et Reglages */
/********************************************/
/* Fichier reglage.cpp */
/*
Affichage et modifications des parametres de travail de PcbNew
Parametres = dimensions des via, pistes, isolements, options...
*/
#include "fctsys.h"
#include "common.h"
#include "gerbview.h"
#include "pcbplot.h"
#include "protos.h"
/* Fonctions locales */
/* variables locales */
/***********/
enum {
ID_SAVE_CFG = 1000,
ID_EXIT_CFG
};
/* Routines Locales */
/*************************************************/
/* classe derivee pour la frame de Configuration */
/*************************************************/
class WinEDA_ConfigFrame: public wxDialog
{
private:
WinEDA_GerberFrame * m_Parent;
wxListBox * ListLibr;
int LibModified;
WinEDA_EnterText * TextDrillExt;
WinEDA_EnterText * TextPhotoExt;
WinEDA_EnterText * TextPenExt;
// Constructor and destructor
public:
WinEDA_ConfigFrame(WinEDA_GerberFrame *parent,const wxPoint& pos);
~WinEDA_ConfigFrame(void) {};
private:
void SaveCfg(wxCommandEvent & event);
void OnQuit(wxCommandEvent & event);
void OnCloseWindow(wxCloseEvent & event);
DECLARE_EVENT_TABLE()
};
/* Construction de la table des evenements pour WinEDA_ConfigFrame */
BEGIN_EVENT_TABLE(WinEDA_ConfigFrame, wxDialog)
EVT_BUTTON(ID_SAVE_CFG, WinEDA_ConfigFrame::SaveCfg)
EVT_BUTTON(ID_EXIT_CFG, WinEDA_ConfigFrame::OnQuit)
EVT_CLOSE(WinEDA_ConfigFrame::OnCloseWindow)
END_EVENT_TABLE()
/*****************************************************************/
/* void WinEDA_GerberFrame::InstallConfigFrame(const wxPoint & pos) */
/*****************************************************************/
void WinEDA_GerberFrame::InstallConfigFrame(const wxPoint & pos)
{
WinEDA_ConfigFrame * CfgFrame = new WinEDA_ConfigFrame(this, pos);
CfgFrame->ShowModal(); CfgFrame->Destroy();
}
/************************************************************/
/* Constructeur de WinEDA_ConfigFrame: la fenetre de config */
/************************************************************/
WinEDA_ConfigFrame::WinEDA_ConfigFrame(WinEDA_GerberFrame *parent,
const wxPoint& framepos):
wxDialog(parent, -1, wxEmptyString, framepos, wxSize(300, 180),
wxDEFAULT_DIALOG_STYLE|wxFRAME_FLOAT_ON_PARENT )
{
#define LEN_EXT 100
wxString title;
m_Parent = parent;
SetFont(* g_DialogFont);
title = _("from ") + EDA_Appl->m_CurrentOptionFile;
SetTitle(title);
LibModified = FALSE;
wxBoxSizer * MainBoxSizer = new wxBoxSizer(wxHORIZONTAL);
SetSizer(MainBoxSizer);
wxBoxSizer * RightBoxSizer = new wxBoxSizer(wxVERTICAL);
wxBoxSizer * LeftBoxSizer = new wxBoxSizer(wxVERTICAL);
MainBoxSizer->Add(LeftBoxSizer, 0, wxGROW|wxALL, 5);
MainBoxSizer->Add(RightBoxSizer, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
/* Creation des boutons de commande */
wxButton * Button = new wxButton(this, ID_SAVE_CFG, _("Save Cfg"));
Button->SetForegroundColour(*wxRED);
RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
Button = new wxButton(this, ID_EXIT_CFG, _("Exit"));
Button->SetForegroundColour(*wxBLUE);
RightBoxSizer->Add(Button, 0, wxGROW|wxALL, 5);
wxSize size;
size.x = LEN_EXT; size.y = -1;
TextDrillExt = new WinEDA_EnterText(this,
_("Drill File Ext:"), g_DrillFilenameExt,
LeftBoxSizer, size);
TextPhotoExt = new WinEDA_EnterText(this,
_("Gerber File Ext:"), g_PhotoFilenameExt,
LeftBoxSizer, size);
TextPenExt = new WinEDA_EnterText(this,
_("DCode File Ext:"), g_PenFilenameExt,
LeftBoxSizer, size);
GetSizer()->Fit(this);
GetSizer()->SetSizeHints(this);
}
/*****************************************************************/
/* Fonctions de base de WinEDA_ConfigFrame: la fenetre de config */
/*****************************************************************/
void WinEDA_ConfigFrame::OnCloseWindow(wxCloseEvent & event)
{
g_DrillFilenameExt = TextDrillExt->GetValue();
g_PhotoFilenameExt = TextPhotoExt->GetValue();
g_PenFilenameExt = TextPenExt->GetValue();
EndModal(0);
}
/******************************************************************/
void WinEDA_ConfigFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
/******************************************************************/
{
// true is to force the frame to close
Close(true);
}
/******************************************************/
void WinEDA_ConfigFrame::SaveCfg(wxCommandEvent& event)
/******************************************************/
{
m_Parent->Update_config();
}