- m_logOld = NULL;
-
- SetIcon(wxICON(sample));
-
- wxMenu *file_menu = new wxMenu;
-
- file_menu->Append(DYNAMIC_ABOUT, _T("&About"));
- file_menu->Append(DYNAMIC_QUIT, _T("E&xit"));
- wxMenuBar *menu_bar = new wxMenuBar;
- menu_bar->Append(file_menu, _T("&File"));
- SetMenuBar(menu_bar);
-
- // You used to have to do some casting for param 4, but now there are type-safe handlers
- Connect( DYNAMIC_QUIT, wxID_ANY,
- wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MySortingFrame::OnQuit) );
- Connect( DYNAMIC_ABOUT, wxID_ANY,
- wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MySortingFrame::OnAbout) );
-
- CreateStatusBar();
-
-
- // Left wxDataViewCtrl
- dataview_left = new wxDataViewCtrl( this, ID_UNSORTED, wxDefaultPosition, wxDefaultSize, wxDV_MULTIPLE );
-
- m_unsorted_model = new MyUnsortedTextModel;
- dataview_left->AssociateModel( m_unsorted_model );
- wxDataViewTextRenderer *text_renderer = new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_EDITABLE );
- wxDataViewColumn *column = new wxDataViewColumn( wxT("editable"), text_renderer, 0 );
- dataview_left->AppendColumn( column );
- dataview_left->AppendTextColumn( wxT("second"), 1 );
- dataview_left->AppendColumn( new wxDataViewColumn( wxT("icon"), new wxDataViewBitmapRenderer, 2, 25 ) );
- dataview_left->AppendColumn( new wxDataViewColumn( wxT("icon"), new wxDataViewBitmapRenderer, 3, 25 ) );
-
- // Right wxDataViewCtrl using the sorting model
- dataview_right = new wxDataViewCtrl( this, ID_SORTED );
-
- wxDataViewSortedListModel *sorted_model =
- new wxDataViewSortedListModel( m_unsorted_model );
- dataview_right->AssociateModel( sorted_model );
- text_renderer = new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_EDITABLE );
- column = new wxDataViewColumn( wxT("editable"), text_renderer, 0, -1, wxDATAVIEW_COL_SORTABLE|wxDATAVIEW_COL_RESIZABLE );
- dataview_right->AppendColumn( column );
-
- dataview_right->AppendTextColumn( wxT("second"), 1 );
-
- // layout dataview controls.
-
- wxBoxSizer *top_sizer = new wxBoxSizer( wxHORIZONTAL );
- top_sizer->Add( dataview_left, 1, wxGROW );
- top_sizer->Add(10,10);
- top_sizer->Add( dataview_right, 1, wxGROW );
-
- wxBoxSizer *button_sizer = new wxBoxSizer( wxHORIZONTAL );
- button_sizer->Add( 10, 10, 1 );
- wxFlexGridSizer *left_sizer = new wxFlexGridSizer( 2 );
- left_sizer->Add( new wxButton( this, ID_APPEND_ROW_LEFT, wxT("Append") ), 0, wxALL, 5 );
- left_sizer->Add( new wxButton( this, ID_PREPEND_ROW_LEFT, wxT("Prepend") ), 0, wxALL, 5 );
- left_sizer->Add( new wxButton( this, ID_INSERT_ROW_LEFT, wxT("Insert") ), 0, wxALL, 5 );
- left_sizer->Add( new wxButton( this, ID_DELETE_ROW_LEFT, wxT("Delete second") ), 0, wxALL, 5 );
- left_sizer->Add( new wxButton( this, ID_EDIT_ROW_LEFT, wxT("Edit") ), 0, wxALL, 5 );
- left_sizer->Add( 5,5 );
- left_sizer->Add( new wxButton( this, ID_SELECT, wxT("Select third") ), 0, wxALL, 5 );
- left_sizer->Add( new wxButton( this, ID_UNSELECT_ALL, wxT("Unselect all") ), 0, wxALL, 5 );
- button_sizer->Add( left_sizer );
- button_sizer->Add( 10, 10, 2 );
- wxFlexGridSizer *right_sizer = new wxFlexGridSizer( 2 );
- right_sizer->Add( new wxButton( this, ID_APPEND_ROW_RIGHT, wxT("Append") ), 0, wxALL, 5 );
- right_sizer->Add( new wxButton( this, ID_PREPEND_ROW_RIGHT, wxT("Prepend") ), 0, wxALL, 5 );
- right_sizer->Add( new wxButton( this, ID_INSERT_ROW_RIGHT, wxT("Insert") ), 0, wxALL, 5 );
- right_sizer->Add( new wxButton( this, ID_DELETE_ROW_RIGHT, wxT("Delete second") ), 0, wxALL, 5 );
- right_sizer->Add( new wxButton( this, ID_EDIT_ROW_RIGHT, wxT("Edit") ), 0, wxALL, 5 );
- button_sizer->Add( right_sizer );
- button_sizer->Add( 10, 10, 1 );
-
- wxBoxSizer *main_sizer = new wxBoxSizer( wxVERTICAL );
- main_sizer->Add( top_sizer, 1, wxGROW );
- main_sizer->Add( button_sizer, 0, wxGROW );
-
- m_logWindow = new wxTextCtrl(this, wxID_ANY, wxEmptyString,
- wxDefaultPosition, wxDefaultSize,
- wxTE_MULTILINE | wxSUNKEN_BORDER);
- main_sizer->Add( 20,20 );
- main_sizer->Add( m_logWindow, 1, wxGROW );
-
- m_logOld = wxLog::SetActiveTarget(new wxLogTextCtrl(m_logWindow));