+ m_listCtrl = (MyListCtrl *) NULL;
+ m_logWindow = (wxTextCtrl *) NULL;
+
+ // Give it an icon
+ SetIcon( wxICON(mondrian) );
+
+ // Make an image list containing large icons
+ m_imageListNormal = new wxImageList(32, 32, TRUE);
+ m_imageListSmall = new wxImageList(16, 16, TRUE);
+
+#ifdef __WXMSW__
+ m_imageListNormal->Add( wxIcon("icon1", wxBITMAP_TYPE_ICO_RESOURCE) );
+ m_imageListNormal->Add( wxIcon("icon2", wxBITMAP_TYPE_ICO_RESOURCE) );
+ m_imageListNormal->Add( wxIcon("icon3", wxBITMAP_TYPE_ICO_RESOURCE) );
+ m_imageListNormal->Add( wxIcon("icon4", wxBITMAP_TYPE_ICO_RESOURCE) );
+ m_imageListNormal->Add( wxIcon("icon5", wxBITMAP_TYPE_ICO_RESOURCE) );
+ m_imageListNormal->Add( wxIcon("icon6", wxBITMAP_TYPE_ICO_RESOURCE) );
+ m_imageListNormal->Add( wxIcon("icon7", wxBITMAP_TYPE_ICO_RESOURCE) );
+ m_imageListNormal->Add( wxIcon("icon8", wxBITMAP_TYPE_ICO_RESOURCE) );
+ m_imageListNormal->Add( wxIcon("icon9", wxBITMAP_TYPE_ICO_RESOURCE) );
+
+ m_imageListSmall->Add( wxIcon("iconsmall", wxBITMAP_TYPE_ICO_RESOURCE) );
+
+#else
+ m_imageListNormal->Add( wxIcon( toolbrai_xpm ) );
+ m_imageListNormal->Add( wxIcon( toolchar_xpm ) );
+ m_imageListNormal->Add( wxIcon( tooldata_xpm ) );
+ m_imageListNormal->Add( wxIcon( toolnote_xpm ) );
+ m_imageListNormal->Add( wxIcon( tooltodo_xpm ) );
+ m_imageListNormal->Add( wxIcon( toolchec_xpm ) );
+ m_imageListNormal->Add( wxIcon( toolgame_xpm ) );
+ m_imageListNormal->Add( wxIcon( tooltime_xpm ) );
+ m_imageListNormal->Add( wxIcon( toolword_xpm ) );
+
+ m_imageListSmall->Add( wxIcon( small1_xpm) );
+#endif
+
+ // Make a menubar
+ wxMenu *menuFile = new wxMenu;
+ menuFile->Append(LIST_ABOUT, "&About");
+ menuFile->AppendSeparator();
+#if 0 // what is this for? (VZ)
+ menuFile->Append(BUSY_ON, "&Busy cursor on");
+ menuFile->Append(BUSY_OFF, "&Busy cursor off");
+ menuFile->AppendSeparator();
+#endif
+ menuFile->Append(LIST_QUIT, "E&xit\tAlt-X");
+
+ wxMenu *menuView = new wxMenu;
+ menuView->Append(LIST_LIST_VIEW, "&List view\tF1");
+ menuView->Append(LIST_REPORT_VIEW, "&Report view\tF2");
+ menuView->Append(LIST_ICON_VIEW, "&Icon view\tF3");
+ menuView->Append(LIST_ICON_TEXT_VIEW, "Icon view with &text\tF4");
+ menuView->Append(LIST_SMALL_ICON_VIEW, "&Small icon view\tF5");
+ menuView->Append(LIST_SMALL_ICON_TEXT_VIEW, "Small icon &view with text\tF6");
+
+ wxMenu *menuList = new wxMenu;
+ menuList->Append(LIST_TOGGLE_FIRST, "&Toggle first item\tCtrl-T");
+ menuList->Append(LIST_DESELECT_ALL, "&Deselect All\tCtrl-D");
+ menuList->Append(LIST_SELECT_ALL, "S&elect All\tCtrl-A");
+ menuList->Append(LIST_SHOW_COL_INFO, "Show &column info\tCtrl-C");
+ menuList->AppendSeparator();
+ menuList->Append(LIST_SORT, "&Sort\tCtrl-S");
+ menuList->AppendSeparator();
+ menuList->Append(LIST_DELETE_ALL, "Delete &all items");
+ menuList->AppendSeparator();
+ menuList->Append(LIST_TOGGLE_MULTI_SEL, "&Multiple selection\tCtrl-M",
+ "Toggle multiple selection", TRUE);
+
+ wxMenu *menuCol = new wxMenu;
+ menuCol->Append(LIST_SET_FG_COL, "&Foreground colour...");
+ menuCol->Append(LIST_SET_BG_COL, "&Background colour...");
+
+ wxMenuBar *menubar = new wxMenuBar;
+ menubar->Append(menuFile, "&File");
+ menubar->Append(menuView, "&View");
+ menubar->Append(menuList, "&List");
+ menubar->Append(menuCol, "&Colour");
+ SetMenuBar(menubar);
+
+ m_listCtrl = new MyListCtrl(this, LIST_CTRL,
+ wxDefaultPosition, wxDefaultSize,
+ wxLC_LIST |
+ wxSUNKEN_BORDER |
+ wxLC_EDIT_LABELS |
+ // wxLC_USER_TEXT requires app to supply all
+ // text on demand
+ //wxLC_USER_TEXT |
+ wxLC_SINGLE_SEL
+ );
+
+ m_logWindow = new wxTextCtrl(this, -1, wxEmptyString,
+ wxDefaultPosition, wxDefaultSize,
+ wxTE_MULTILINE | wxSUNKEN_BORDER);
+
+ m_logOld = wxLog::SetActiveTarget(new wxLogTextCtrl(m_logWindow));
+
+ wxLayoutConstraints *c = new wxLayoutConstraints;
+ c->top.SameAs (this, wxTop);
+ c->left.SameAs (this, wxLeft);
+ c->right.SameAs (this, wxRight);
+ c->height.PercentOf (this, wxHeight, 66);
+ m_listCtrl->SetConstraints(c);
+
+ c = new wxLayoutConstraints;
+ c->top.Below (m_listCtrl);
+ c->left.SameAs (this, wxLeft);
+ c->right.SameAs (this, wxRight);
+ c->bottom.SameAs (this, wxBottom);
+ m_logWindow->SetConstraints(c);
+ SetAutoLayout(TRUE);
+
+ for ( int i = 0; i < 30; i++ )
+ {
+ long idx = m_listCtrl->InsertItem(i, wxString::Format(_T("Item %d"), i));
+ m_listCtrl->SetItemData(idx, i*i);
+ }
+
+ CreateStatusBar(3);