Example #1
0
//------------------------------------------------------------------------------
void SpicePanel::Create()
{
   int bSize     = 2;
//   #if __WXMAC__
//   int buttonWidth = 40;
//   #else
//   int buttonWidth = 25;
//   #endif

//   wxBitmap openBitmap = wxBitmap(OpenFolder_xpm);

   // get the config object
   wxConfigBase *pConfig = wxConfigBase::Get();
   // SetPath() understands ".."
   pConfig->SetPath(wxT("/Spacecraft Spice"));

   // empty the temporary value strings
   naifIdStringWX             = "";
   naifIdRefFrameStringWX     = "";
   spkFileStringWX            = "";
   ckFileStringWX             = "";
   sclkFileStringWX           = "";
   fkFileStringWX             = "";

   wxBoxSizer *spkButtonSizer  = NULL;
   wxBoxSizer *ckButtonSizer   = NULL;
   wxBoxSizer *sclkButtonSizer = NULL;
   wxBoxSizer *fkButtonSizer   = NULL;

   // naif ID for spacecraft
   naifIdStaticText   = new wxStaticText(this, ID_TEXT,wxT(GUI_ACCEL_KEY"NAIF ID"),
                        wxDefaultPosition, wxSize(-1,-1), 0);
   naifIdTextCtrl     = new wxTextCtrl(this, ID_TEXT_CTRL_NAIF_ID, wxT(""),
                        wxDefaultPosition, wxSize(80, -1), 0);
   naifIdTextCtrl->SetToolTip(pConfig->Read(_T("NAIFIDHint")));
   naifIdBlankText    = new wxStaticText(this, ID_TEXT,wxT(""),
                        wxDefaultPosition, wxSize(-1,-1), 0);
   // naif ID of the reference frame for the spacecraft
   naifIdRefFrameStaticText   = new wxStaticText(this, ID_TEXT,wxT("F"GUI_ACCEL_KEY"rame\nNAIF ID"),
                        wxDefaultPosition, wxSize(-1,-1), 0);
   naifIdRefFrameTextCtrl     = new wxTextCtrl(this, ID_TEXT_CTRL_NAIF_ID_REF_FRAME, wxT(""),
                        wxDefaultPosition, wxSize(80, -1), 0);
   naifIdRefFrameTextCtrl->SetToolTip(pConfig->Read(_T("NAIFIDRefFrameHint")));
   naifIdRefFrameBlankText    = new wxStaticText(this, ID_TEXT,wxT(""),
                        wxDefaultPosition, wxSize(-1,-1), 0);
   // SPK file(s)
   wxArrayString emptyList;
   spkFileStaticText   = new wxStaticText(this, ID_TEXT, wxT(GUI_ACCEL_KEY"SPK Files"),
                         wxDefaultPosition, wxSize(-1,-1), 0);
   spkFileListBox      = new wxListBox(this, ID_LIST_BOX_SPK_FILE, wxDefaultPosition, wxSize(150, 100),
                         emptyList, wxLB_EXTENDED|wxLB_NEEDED_SB|wxLB_HSCROLL);
   spkFileListBox->SetToolTip(pConfig->Read(_T("SPKFileListHint")));
   spkFileBrowseButton = new wxButton(this, ID_BROWSE_BUTTON_SPK_FILE, wxT(GUI_ACCEL_KEY"Add"),
                         wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
   spkFileBrowseButton->SetToolTip(pConfig->Read(_T("AddSPKFileHint")));
   spkFileRemoveButton = new wxButton(this, ID_REMOVE_BUTTON_SPK_FILE, wxT(GUI_ACCEL_KEY"Remove"),
                         wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
   spkFileRemoveButton->SetToolTip(pConfig->Read(_T("RemoveSPKFileHint")));
   spkButtonSizer = new wxBoxSizer(wxHORIZONTAL);
   spkButtonSizer->Add(spkFileBrowseButton,0, wxGROW|wxALIGN_CENTRE|wxALL, bSize);
   spkButtonSizer->Add(spkFileRemoveButton,0, wxGROW|wxALIGN_CENTRE|wxALL, bSize);

   // FK file(s)
   fkFileStaticText   = new wxStaticText(this, ID_TEXT, wxT(GUI_ACCEL_KEY"FK Files"),
                         wxDefaultPosition, wxSize(-1,-1), 0);
   fkFileListBox      = new wxListBox(this, ID_LIST_BOX_FK_FILE, wxDefaultPosition, wxSize(150, 100),
                         emptyList, wxLB_EXTENDED|wxLB_NEEDED_SB|wxLB_HSCROLL);
   fkFileListBox->SetToolTip(pConfig->Read(_T("FKFileListHint")));
   fkFileBrowseButton = new wxButton(this, ID_BROWSE_BUTTON_FK_FILE, wxT(GUI_ACCEL_KEY"Add"),
                         wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
   fkFileBrowseButton->SetToolTip(pConfig->Read(_T("AddFKFileHint")));
   fkFileRemoveButton = new wxButton(this, ID_REMOVE_BUTTON_FK_FILE, wxT(GUI_ACCEL_KEY"Remove"),
                         wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
   fkFileRemoveButton->SetToolTip(pConfig->Read(_T("RemoveFKFileHint")));
   fkButtonSizer = new wxBoxSizer(wxHORIZONTAL);
   fkButtonSizer->Add(fkFileBrowseButton,0, wxGROW|wxALIGN_CENTRE|wxALL, bSize);
   fkButtonSizer->Add(fkFileRemoveButton,0, wxGROW|wxALIGN_CENTRE|wxALL, bSize);

   // CK file(s)
   ckFileStaticText   = new wxStaticText(this, ID_TEXT, wxT(GUI_ACCEL_KEY"CK Files"),
                         wxDefaultPosition, wxSize(-1,-1), 0);
   ckFileListBox      = new wxListBox(this, ID_LIST_BOX_CK_FILE, wxDefaultPosition, wxSize(150, 100),
                         emptyList, wxLB_EXTENDED|wxLB_NEEDED_SB|wxLB_HSCROLL);
   ckFileListBox->SetToolTip(pConfig->Read(_T("CKFileListHint")));
   ckFileBrowseButton = new wxButton(this, ID_BROWSE_BUTTON_CK_FILE, wxT(GUI_ACCEL_KEY"Add"),
                         wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
   ckFileBrowseButton->SetToolTip(pConfig->Read(_T("AddCKFileHint")));
   ckFileRemoveButton = new wxButton(this, ID_REMOVE_BUTTON_CK_FILE, wxT(GUI_ACCEL_KEY"Remove"),
                         wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
   ckFileRemoveButton->SetToolTip(pConfig->Read(_T("RemoveCKFileHint")));
   ckButtonSizer = new wxBoxSizer(wxHORIZONTAL);
   ckButtonSizer->Add(ckFileBrowseButton,0, wxGROW|wxALIGN_CENTRE|wxALL, bSize);
   ckButtonSizer->Add(ckFileRemoveButton,0, wxGROW|wxALIGN_CENTRE|wxALL, bSize);

   // SCLK file(s)
   sclkFileStaticText   = new wxStaticText(this, ID_TEXT, wxT("SC"GUI_ACCEL_KEY"LK Files"),
                         wxDefaultPosition, wxSize(-1,-1), 0);
   sclkFileListBox      = new wxListBox(this, ID_LIST_BOX_SCLK_FILE, wxDefaultPosition, wxSize(150, 100),
                         emptyList, wxLB_EXTENDED|wxLB_NEEDED_SB|wxLB_HSCROLL);
   sclkFileListBox->SetToolTip(pConfig->Read(_T("SCLKFileListHint")));
   sclkFileBrowseButton = new wxButton(this, ID_BROWSE_BUTTON_SCLK_FILE, wxT(GUI_ACCEL_KEY"Add"),
                         wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
   sclkFileBrowseButton->SetToolTip(pConfig->Read(_T("AddSCLKFileHint")));
   sclkFileRemoveButton = new wxButton(this, ID_REMOVE_BUTTON_SCLK_FILE, wxT(GUI_ACCEL_KEY"Remove"),
                         wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
   sclkFileRemoveButton->SetToolTip(pConfig->Read(_T("RemoveSCLKFileHint")));
   sclkButtonSizer = new wxBoxSizer(wxHORIZONTAL);
   sclkButtonSizer->Add(sclkFileBrowseButton,0, wxGROW|wxALIGN_CENTRE|wxALL, bSize);
   sclkButtonSizer->Add(sclkFileRemoveButton,0, wxGROW|wxALIGN_CENTRE|wxALL, bSize);

   // sizers

   leftFlexGridSizer = new wxFlexGridSizer(2,0,0);
   leftFlexGridSizer->Add(naifIdStaticText,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
   leftFlexGridSizer->Add(naifIdTextCtrl,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
//   leftFlexGridSizer->Add(0, 0);

   leftFlexGridSizer->Add(spkFileStaticText,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
   leftFlexGridSizer->Add(spkFileListBox,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
//   leftFlexGridSizer->Add(0, 0);

   leftFlexGridSizer->Add(0, 0);
   leftFlexGridSizer->Add(spkButtonSizer, 0, wxALIGN_CENTRE|wxALL, bSize);
//   leftFlexGridSizer->Add(0, 0);

   leftFlexGridSizer->Add(fkFileStaticText,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
   leftFlexGridSizer->Add(fkFileListBox,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
//   leftFlexGridSizer->Add(0, 0);

   leftFlexGridSizer->Add(0, 0);
   leftFlexGridSizer->Add(fkButtonSizer, 0, wxALIGN_CENTRE|wxALL, bSize);
//   leftFlexGridSizer->Add(0, 0);


   rightFlexGridSizer = new wxFlexGridSizer(2,0,0);
   rightFlexGridSizer->Add(naifIdRefFrameStaticText,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
   rightFlexGridSizer->Add(naifIdRefFrameTextCtrl,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
//   rightFlexGridSizer->Add(0, 0);

   rightFlexGridSizer->Add(ckFileStaticText,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
   rightFlexGridSizer->Add(ckFileListBox,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
//   rightFlexGridSizer->Add(0, 0);

   rightFlexGridSizer->Add(0, 0);
   rightFlexGridSizer->Add(ckButtonSizer, 0, wxALIGN_CENTRE|wxALL, bSize);
//   rightFlexGridSizer->Add(0, 0);

   rightFlexGridSizer->Add(sclkFileStaticText,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
   rightFlexGridSizer->Add(sclkFileListBox,0, wxGROW|wxALIGN_LEFT|wxALL, bSize);
//   rightFlexGridSizer->Add(0, 0);

   rightFlexGridSizer->Add(0, 0);
   rightFlexGridSizer->Add(sclkButtonSizer, 0, wxALIGN_CENTRE|wxALL, bSize);
//   rightFlexGridSizer->Add(0, 0);
   
   mainBoxSizer = new wxBoxSizer(wxHORIZONTAL);
   
   GmatStaticBoxSizer  *boxSizer1 = new GmatStaticBoxSizer(wxVERTICAL, this, "" );
   boxSizer1->Add(leftFlexGridSizer, 0, wxALIGN_CENTRE|wxALL, bSize);
   
   GmatStaticBoxSizer  *boxSizer2 = new GmatStaticBoxSizer(wxVERTICAL, this, "");
   boxSizer2->Add(rightFlexGridSizer, 0, wxALIGN_CENTRE|wxALL, bSize);
   
   mainBoxSizer->Add(boxSizer1, 1, wxGROW|wxALIGN_CENTRE|wxALL, bSize);
   mainBoxSizer->Add(boxSizer2, 1, wxGROW|wxALIGN_CENTRE|wxALL, bSize);
   
   // Added #if in case if we want to add another layer of lined box for consistency.
   // I like without another layer, too many lines, so set to 0 (LOJ: 2009.11.18) - from CelestialBody
   #if 0
   
   GmatStaticBoxSizer *mainStaticBoxSizer = new GmatStaticBoxSizer(wxVERTICAL, this, "");
   mainStaticBoxSizer->Add(mainBoxSizer, 1, wxGROW|wxALIGN_CENTRE|wxALL, bSize);
   
   this->SetAutoLayout(true);
   this->SetSizer(mainStaticBoxSizer);
   mainStaticBoxSizer->Fit(this);
   mainStaticBoxSizer->SetSizeHints(this);
   
   #else
   
   wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL);
   mainSizer->Add(mainBoxSizer, 1, wxGROW|wxALIGN_CENTRE|wxALL, bSize);
   
   this->SetAutoLayout(true);
   this->SetSizer(mainSizer);
   mainSizer->Fit(this);
   mainSizer->SetSizeHints(this);
   
   #endif

}