12PANEL_GAL_OPTIONS_BASE::PANEL_GAL_OPTIONS_BASE( wxWindow* parent, wxWindowID 
id, 
const wxPoint& pos, 
const wxSize& size, 
long style, 
const wxString& 
name ) : wxPanel( parent, id, pos, size, style, 
name )
 
   14    wxBoxSizer* mainSizer;
 
   15    mainSizer = 
new wxBoxSizer( wxVERTICAL );
 
   17    m_staticText1 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Grid Display"), wxDefaultPosition, wxDefaultSize, 0 );
 
   21    m_staticline1 = 
new wxStaticLine( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
 
   22    mainSizer->Add( 
m_staticline1, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
 
   24    wxBoxSizer* bSizerGridStyle;
 
   25    bSizerGridStyle = 
new wxBoxSizer( wxHORIZONTAL );
 
   27    m_gridStyleLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Style:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   29    bSizerGridStyle->Add( 
m_gridStyleLabel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
 
   31    m_rbDots = 
new wxRadioButton( 
this, wxID_ANY, 
_(
"Dots"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
 
   32    bSizerGridStyle->Add( 
m_rbDots, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
   34    m_rbLines = 
new wxRadioButton( 
this, wxID_ANY, 
_(
"Lines"), wxDefaultPosition, wxDefaultSize, 0 );
 
   35    bSizerGridStyle->Add( 
m_rbLines, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
   37    m_rbCrosses = 
new wxRadioButton( 
this, wxID_ANY, 
_(
"Small crosses"), wxDefaultPosition, wxDefaultSize, 0 );
 
   38    bSizerGridStyle->Add( 
m_rbCrosses, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
 
   41    mainSizer->Add( bSizerGridStyle, 0, wxEXPAND|wxALL, 5 );
 
   43    wxGridBagSizer* gbGridSettings;
 
   44    gbGridSettings = 
new wxGridBagSizer( 5, 5 );
 
   45    gbGridSettings->SetFlexibleDirection( wxHORIZONTAL );
 
   46    gbGridSettings->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
   48    l_gridLineWidth = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Grid thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   50    gbGridSettings->Add( 
l_gridLineWidth, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
   52    wxArrayString m_gridLineWidthChoices;
 
   53    m_gridLineWidth = 
new wxChoice( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_gridLineWidthChoices, 0 );
 
   55    gbGridSettings->Add( 
m_gridLineWidth, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
 
   57    l_gridLineWidthUnits = 
new wxStaticText( 
this, wxID_ANY, 
_(
"pixels"), wxDefaultPosition, wxDefaultSize, 0 );
 
   59    gbGridSettings->Add( 
l_gridLineWidthUnits, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
 
   61    l_gridMinSpacing = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Minimum grid spacing:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   63    gbGridSettings->Add( 
l_gridMinSpacing, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
   65    m_gridMinSpacing = 
new wxSpinCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 5, 200, 10 );
 
   66    gbGridSettings->Add( 
m_gridMinSpacing, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
 
   68    l_gridMinSpacingUnits = 
new wxStaticText( 
this, wxID_ANY, 
_(
"pixels"), wxDefaultPosition, wxDefaultSize, 0 );
 
   70    gbGridSettings->Add( 
l_gridMinSpacingUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
 
   72    l_gridSnapOptions = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Snap to grid:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   74    gbGridSettings->Add( 
l_gridSnapOptions, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
   76    wxString m_gridSnapOptionsChoices[] = { 
_(
"Always"), 
_(
"When grid shown"), 
_(
"Never") };
 
   77    int m_gridSnapOptionsNChoices = 
sizeof( m_gridSnapOptionsChoices ) / 
sizeof( wxString );
 
   78    m_gridSnapOptions = 
new wxChoice( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_gridSnapOptionsNChoices, m_gridSnapOptionsChoices, 0 );
 
   80    gbGridSettings->Add( 
m_gridSnapOptions, wxGBPosition( 2, 1 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
 
   83    gbGridSettings->AddGrowableCol( 1 );
 
   85    mainSizer->Add( gbGridSettings, 0, wxEXPAND|wxALL, 5 );
 
   88    mainSizer->Add( 0, 5, 0, 0, 5 );
 
   90    m_stGridLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Cursor"), wxDefaultPosition, wxDefaultSize, 0 );
 
   94    m_staticline2 = 
new wxStaticLine( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
 
   95    mainSizer->Add( 
m_staticline2, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
 
   97    wxFlexGridSizer* fgSizer1;
 
   98    fgSizer1 = 
new wxFlexGridSizer( 0, 1, 3, 0 );
 
   99    fgSizer1->SetFlexibleDirection( wxBOTH );
 
  100    fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
  102    m_rbSmallCrosshairs = 
new wxRadioButton( 
this, wxID_ANY, 
_(
"Small crosshairs"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
 
  105    m_rbFullWindowCrosshairs = 
new wxRadioButton( 
this, wxID_ANY, 
_(
"Full window crosshairs"), wxDefaultPosition, wxDefaultSize, 0 );
 
  108    m_rb45DegreeCrosshairs = 
new wxRadioButton( 
this, wxID_ANY, 
_(
"45 degree crosshairs"), wxDefaultPosition, wxDefaultSize, 0 );
 
  112    fgSizer1->Add( 0, 8, 0, wxEXPAND, 5 );
 
  114    m_forceCursorDisplay = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Always show crosshairs"), wxDefaultPosition, wxDefaultSize, 0 );
 
  118    mainSizer->Add( fgSizer1, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
 
  121    this->SetSizer( mainSizer );
 
  123    mainSizer->Fit( 
this );