/***************************************************/ /* set_grid.cpp - Gestion de la grille utilisateur */ /***************************************************/ /* Affichage et modifications des parametres de travail de PcbNew Parametres = dimensions de la grille utilisateur */ #include "fctsys.h" #include "common.h" #include "class_drawpanel.h" #include "pcbnew.h" #include "protos.h" #include #include "id.h" #include "set_grid.h" /************************************************************/ void WinEDA_BasePcbFrame::InstallGridFrame(const wxPoint & pos) { WinEDA_PcbGridFrame dlg( this, pos ); dlg.SetGridSize( m_UserGridSize ); dlg.SetGridUnits( m_UserGridUnits ); if( dlg.ShowModal() == wxID_CANCEL ) return; m_UserGridSize = dlg.GetGridSize(); m_UserGridUnits = dlg.GetGridUnits(); GetScreen()->AddGrid( m_UserGridSize, m_UserGridUnits, ID_POPUP_GRID_USER ); DrawPanel->Refresh(); } /*! * WinEDA_PcbGridFrame type definition */ IMPLEMENT_DYNAMIC_CLASS( WinEDA_PcbGridFrame, wxDialog ) /*! * WinEDA_PcbGridFrame event table definition */ BEGIN_EVENT_TABLE( WinEDA_PcbGridFrame, wxDialog ) ////@begin WinEDA_PcbGridFrame event table entries EVT_BUTTON( wxID_OK, WinEDA_PcbGridFrame::OnOkClick ) EVT_BUTTON( wxID_CANCEL, WinEDA_PcbGridFrame::OnCancelClick ) ////@end WinEDA_PcbGridFrame event table entries END_EVENT_TABLE() /*! * WinEDA_PcbGridFrame constructors */ WinEDA_PcbGridFrame::WinEDA_PcbGridFrame( ) { } WinEDA_PcbGridFrame::WinEDA_PcbGridFrame( WinEDA_BasePcbFrame* parent, const wxPoint& pos, wxWindowID id, const wxString& caption, const wxSize& size, long style ) { Create(parent, id, caption, pos, size, style); } /*! * WinEDA_PcbGridFrame creator */ bool WinEDA_PcbGridFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) { ////@begin WinEDA_PcbGridFrame member initialisation m_UnitGrid = NULL; m_OptGridSizeX = NULL; m_OptGridSizeY = NULL; ////@end WinEDA_PcbGridFrame member initialisation ////@begin WinEDA_PcbGridFrame creation SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); wxDialog::Create( parent, id, caption, pos, size, style ); CreateControls(); if (GetSizer()) { GetSizer()->SetSizeHints(this); } ////@end WinEDA_PcbGridFrame creation return true; } /*! * Control creation for WinEDA_PcbGridFrame */ void WinEDA_PcbGridFrame::CreateControls() { SetFont(*g_DialogFont); ////@begin WinEDA_PcbGridFrame content construction // Generated by DialogBlocks, 17/08/2006 09:27:19 (unregistered) WinEDA_PcbGridFrame* itemDialog1 = this; wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); itemDialog1->SetSizer(itemBoxSizer2); wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL); itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxALL, 5); wxString m_UnitGridStrings[] = { _("Inches"), _("mm") }; m_UnitGrid = new wxRadioBox( itemDialog1, ID_RADIOBOX, _("Grid Size Units"), wxDefaultPosition, wxDefaultSize, 2, m_UnitGridStrings, 1, wxRA_SPECIFY_COLS ); m_UnitGrid->SetSelection(0); itemBoxSizer3->Add(m_UnitGrid, 0, wxGROW|wxALL, 5); itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); wxStaticText* itemStaticText6 = new wxStaticText( itemDialog1, wxID_STATIC, _("User Grid Size X"), wxDefaultPosition, wxDefaultSize, 0 ); itemBoxSizer3->Add(itemStaticText6, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5); m_OptGridSizeX = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 ); itemBoxSizer3->Add(m_OptGridSizeX, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); wxStaticText* itemStaticText8 = new wxStaticText( itemDialog1, wxID_STATIC, _("User Grid Size Y"), wxDefaultPosition, wxDefaultSize, 0 ); itemBoxSizer3->Add(itemStaticText8, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5); m_OptGridSizeY = new wxTextCtrl( itemDialog1, ID_TEXTCTRL1, _T(""), wxDefaultPosition, wxDefaultSize, 0 ); itemBoxSizer3->Add(m_OptGridSizeY, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxVERTICAL); itemBoxSizer2->Add(itemBoxSizer10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); wxButton* itemButton11 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 ); itemButton11->SetDefault(); itemButton11->SetForegroundColour(wxColour(202, 0, 0)); itemBoxSizer10->Add(itemButton11, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); wxButton* itemButton12 = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); itemButton12->SetForegroundColour(wxColour(0, 0, 255)); itemBoxSizer10->Add(itemButton12, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); ////@end WinEDA_PcbGridFrame content construction } /*! * Should we show tooltips? */ bool WinEDA_PcbGridFrame::ShowToolTips() { return true; } /*! * Get bitmap resources */ wxBitmap WinEDA_PcbGridFrame::GetBitmapResource( const wxString& name ) { // Bitmap retrieval ////@begin WinEDA_PcbGridFrame bitmap retrieval wxUnusedVar(name); return wxNullBitmap; ////@end WinEDA_PcbGridFrame bitmap retrieval } /*! * Get icon resources */ wxIcon WinEDA_PcbGridFrame::GetIconResource( const wxString& name ) { // Icon retrieval ////@begin WinEDA_PcbGridFrame icon retrieval wxUnusedVar(name); return wxNullIcon; ////@end WinEDA_PcbGridFrame icon retrieval } /*! * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK */ void WinEDA_PcbGridFrame::OnOkClick( wxCommandEvent& event ) { } /*! * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL */ void WinEDA_PcbGridFrame::OnCancelClick( wxCommandEvent& event ) { ////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL in WinEDA_PcbGridFrame. // Before editing this code, remove the block markers. event.Skip(); ////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL in WinEDA_PcbGridFrame. } void WinEDA_PcbGridFrame::SetGridSize( const wxRealPoint& grid ) { wxString msg; msg.Printf( wxT( "%.4f" ), grid.x ); m_OptGridSizeX->SetValue( msg ); msg.Printf( wxT( "%.4f" ), grid.y ); m_OptGridSizeY->SetValue( msg ); } wxRealPoint WinEDA_PcbGridFrame::GetGridSize() { wxRealPoint grid; /* TODO: Some error checking here would be a good thing. */ m_OptGridSizeX->GetValue().ToDouble( &grid.x ); m_OptGridSizeY->GetValue().ToDouble( &grid.y ); return grid; } void WinEDA_PcbGridFrame::SetGridUnits( int units ) { if ( units != INCHES ) m_UnitGrid->SetSelection( 1 ); } int WinEDA_PcbGridFrame::GetGridUnits() { return m_UnitGrid->GetSelection(); }