BundleConfigDialog(ProjectPtr project, wxWindow* parent, const wxArrayString& choices, IManager* manager) : wxDialog(parent, wxID_ANY, _("Mac Bundler Configuration"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) , m_pluginManager(manager) { m_accepted = false; m_project_name = project->GetName(); wxStaticText* titleLabel = new wxStaticText(this, wxID_ANY, _("Choose which target(s) to \"bundle-ize\"")); m_choices_widget = new wxCheckListBox(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, choices); m_info_plist_cb = new wxCheckBox(this, wxID_ANY, _("Generate Info.plist file")); m_get_info_string = new wxTextCtrl(this, wxID_ANY, m_project_name + wxT(", version 1.0, copyright myself")); m_version = new wxTextCtrl(this, wxID_ANY, wxT("1.0")); m_icon_file = new wxTextCtrl(this, wxID_ANY, m_project_name + wxT(".icns")); m_identifier = new wxTextCtrl(this, wxID_ANY, wxT("com.mycompany.") + m_project_name.Lower()); m_signature = new wxTextCtrl(this, wxID_ANY, (m_project_name + wxT("????")).Left(4).Upper()); m_icon_cb = new wxCheckBox(this, wxID_ANY, _("Copy the following icon into the project")); wxStaticText* warning = new wxStaticText(this, wxID_ANY, _("Warning : applying these changes cannot be undone automatically")); wxButton* okBtn = new wxButton(this, wxID_OK, _("Apply changes")); wxButton* cancelBtn = new wxButton(this, wxID_CANCEL, _("Cancel")); okBtn->SetDefault(); m_signature->SetMaxLength(4); m_info_plist_cb->SetValue(true); m_icon_cb->SetValue(true); wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* subsizer = new wxBoxSizer(wxHORIZONTAL); wxFlexGridSizer* plistSizer = new wxFlexGridSizer(5, 2, 5, 5); plistSizer->AddGrowableCol(1, 1); plistSizer->Add(new wxStaticText(this, wxID_ANY, _("Get Info Version String")), 0, wxALIGN_RIGHT); plistSizer->Add(m_get_info_string, 1, wxEXPAND); plistSizer->Add(new wxStaticText(this, wxID_ANY, _("Version Number")), 0, wxALIGN_RIGHT); plistSizer->Add(m_version, 1, wxEXPAND); plistSizer->Add(new wxStaticText(this, wxID_ANY, _("Icon File")), 0, wxALIGN_RIGHT); plistSizer->Add(m_icon_file, 1, wxEXPAND); plistSizer->Add(new wxStaticText(this, wxID_ANY, _("Bundle Identifier")), 0, wxALIGN_RIGHT); plistSizer->Add(m_identifier, 1, wxEXPAND); plistSizer->Add(new wxStaticText(this, wxID_ANY, _("4-Character Signature")), 0, wxALIGN_RIGHT); plistSizer->Add(m_signature, 1, wxEXPAND); sizer->Add(titleLabel, 0, wxEXPAND | wxALL, 10); sizer->Add(m_choices_widget, 1, wxEXPAND | wxALL, 10); sizer->Add(m_info_plist_cb, 0, wxEXPAND | wxALL, 5); sizer->Add(plistSizer, 1, wxEXPAND | wxALL, 5); sizer->Add(m_icon_cb, 0, wxALL, 10); wxStaticBoxSizer* iconBox = new wxStaticBoxSizer(wxHORIZONTAL, this); m_icon_picker = new IconPicker(this); m_icon_picker->setImage( wxT("/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/GenericApplicationIcon.icns")); iconBox->Add(m_icon_picker, 1, wxEXPAND); sizer->Add(iconBox, 0, wxALL, 10); sizer->Add(warning, 0, wxEXPAND | wxALL, 10); subsizer->AddStretchSpacer(); subsizer->Add(cancelBtn, 0, wxLEFT | wxRIGHT, 5); subsizer->Add(okBtn, 0, wxLEFT | wxRIGHT, 5); sizer->Add(subsizer, 0, wxEXPAND | wxALL, 10); okBtn->Connect( okBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BundleConfigDialog::onOk), NULL, this); cancelBtn->Connect(cancelBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BundleConfigDialog::onCancel), NULL, this); m_info_plist_cb->Connect(m_info_plist_cb->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BundleConfigDialog::onPlistCheckboxPressed), NULL, this); this->SetSizerAndFit(sizer); this->Centre(); // Load last stored size & position from the configuration tool SetName("BundleConfigDialog"); WindowAttrManager::Load(this); }