header_editor_frame_c::header_editor_frame_c(wxWindow *parent) : wxFrame(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(800, 600), wxDEFAULT_FRAME_STYLE | wxTAB_TRAVERSAL) , m_file_menu(NULL) , m_file_menu_sep(false) , m_page_panel(NULL) , m_bs_main(NULL) , m_bs_page(NULL) , m_ignore_tree_selection_changes(false) { wxPanel *frame_panel = new wxPanel(this); m_tc_tree = new wxTreeCtrl(frame_panel, ID_HE_TC_TREE, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN | wxTR_DEFAULT_STYLE | wxTR_HIDE_ROOT | wxTR_SINGLE); //| wxTAB_TRAVERSAL); m_root_id = m_tc_tree->AddRoot(wxEmptyString); m_tc_tree->SetMinSize(wxSize(250, -1)); m_page_panel = new wxPanel(frame_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_SIMPLE); m_bs_page = new wxBoxSizer(wxHORIZONTAL); m_page_panel->SetSizer(m_bs_page); m_bs_main = new wxBoxSizer(wxHORIZONTAL); m_bs_main->Add(m_tc_tree, 2, wxGROW | wxALL, 5); m_bs_main->Add(m_page_panel,3, wxGROW | wxALL, 5); frame_panel->SetSizer(m_bs_main); SetMinSize(wxSize(800, 600)); clear_pages(); const wxString dummy(wxU("dummy")); m_file_menu = new wxMenu(); m_file_menu->Append(ID_M_HE_FILE_OPEN, dummy); m_file_menu->Append(ID_M_HE_FILE_SAVE, dummy); m_file_menu->Append(ID_M_HE_FILE_RELOAD, dummy); m_file_menu->Append(ID_M_HE_FILE_CLOSE, dummy); m_file_menu->AppendSeparator(); m_file_menu->Append(ID_M_HE_FILE_QUIT, dummy); m_headers_menu = new wxMenu(); m_headers_menu->Append(ID_M_HE_HEADERS_EXPAND_ALL, dummy); m_headers_menu->Append(ID_M_HE_HEADERS_COLLAPSE_ALL, dummy); m_headers_menu->AppendSeparator(); m_headers_menu->Append(ID_M_HE_HEADERS_VALIDATE, dummy); wxMenu *help_menu = new wxMenu(); help_menu->Append(ID_M_HE_HELP_HELP, dummy); wxMenuBar *menu_bar = new wxMenuBar(); menu_bar->Append(m_file_menu, dummy); menu_bar->Append(m_headers_menu, dummy); menu_bar->Append(help_menu, dummy); SetMenuBar(menu_bar); translate_ui(); enable_menu_entries(); m_status_bar = new wxStatusBar(this, wxID_ANY); SetStatusBar(m_status_bar); m_status_bar_timer.SetOwner(this, ID_T_HE_STATUS_BAR); SetIcon(wxIcon(mkvmergeGUI_xpm)); SetDropTarget(new header_editor_drop_target_c(this)); set_status_bar(Z("Header editor ready.")); }
void he_value_page_c::init() { m_cb_add_or_remove = new wxCheckBox(this, ID_HE_CB_ADD_OR_REMOVE, wxEmptyString); m_input = create_input_control(); m_b_reset = new wxButton(this, ID_HE_B_RESET); wxBoxSizer *siz = new wxBoxSizer(wxVERTICAL); siz->AddSpacer(5); siz->Add(new wxStaticText(this, wxID_ANY, wxU(m_title.get_translated())), 0, wxGROW | wxLEFT | wxRIGHT, 5); siz->AddSpacer(5); siz->Add(new wxStaticLine(this), 0, wxGROW | wxLEFT | wxRIGHT, 5); siz->AddSpacer(5); wxFlexGridSizer *siz_fg = new wxFlexGridSizer(2, 5, 5); siz_fg->AddGrowableCol(1, 1); siz_fg->AddSpacer(5); siz_fg->AddSpacer(5); m_st_type_label = new wxStaticText(this, wxID_ANY, wxEmptyString); m_st_type = new wxStaticText(this, wxID_ANY, wxEmptyString); siz_fg->Add(m_st_type_label, 0, wxALIGN_TOP, 0); siz_fg->Add(m_st_type, 0, wxALIGN_TOP | wxGROW, 0); if (!m_description.get_untranslated().empty()) { m_st_description_label = new wxStaticText(this, wxID_ANY, wxEmptyString); m_st_description = new wxStaticText(this, wxID_ANY, wxEmptyString); siz_fg->Add(m_st_description_label, 0, wxALIGN_TOP, 0); siz_fg->Add(m_st_description, 0, wxALIGN_TOP | wxGROW, 0); } m_st_add_or_remove = new wxStaticText(this, wxID_ANY, wxEmptyString); if (!m_element) m_present = false; else { m_present = true; const EbmlSemantic *semantic = find_ebml_semantic(KaxSegment::ClassInfos, m_callbacks.GlobalId); if (semantic && semantic->Mandatory) m_cb_add_or_remove->Disable(); } m_st_status = new wxStaticText(this, wxID_ANY, wxEmptyString); siz_fg->Add(m_st_status, 0, wxALIGN_TOP, 0); siz_fg->Add(m_st_add_or_remove, 1, wxALIGN_TOP | wxGROW, 0); siz_fg->AddSpacer(0); siz_fg->Add(m_cb_add_or_remove, 1, wxALIGN_TOP | wxGROW, 0); if (m_present) { m_st_original_value = new wxStaticText(this, wxID_ANY, wxEmptyString); siz_fg->Add(m_st_original_value, 0, wxALIGN_TOP, 0); siz_fg->Add(new wxStaticText(this, wxID_ANY, get_original_value_as_string()), 1, wxALIGN_TOP | wxGROW, 0); } m_input->Enable(m_present); m_st_value_label = new wxStaticText(this, wxID_ANY, wxEmptyString); siz_fg->Add(m_st_value_label, 0, wxALIGN_CENTER_VERTICAL, 0); siz_fg->Add(m_input, 1, wxALIGN_CENTER_VERTICAL | wxGROW, 0); siz->Add(siz_fg, 0, wxGROW | wxLEFT | wxRIGHT, 5); siz->AddStretchSpacer(); wxBoxSizer *siz_line = new wxBoxSizer(wxHORIZONTAL); siz_line->AddStretchSpacer(); siz_line->Add(m_b_reset, 0, wxGROW, 0); siz->Add(siz_line, 0, wxGROW | wxLEFT | wxRIGHT, 5); siz->AddSpacer(5); SetSizer(siz); if (!m_toplevel_page) m_parent->append_page(this); else m_parent->append_sub_page(this, m_toplevel_page->m_page_id); m_toplevel_page->m_children.push_back(this); translate_ui(); }