home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / samples / listctrl / listtest.h < prev    next >
C/C++ Source or Header  |  2002-11-09  |  5KB  |  168 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        listctrl.h
  3. // Purpose:     wxListCtrl sample
  4. // Author:      Julian Smart
  5. // Modified by:
  6. // Created:     04/01/98
  7. // RCS-ID:      $Id: listtest.h,v 1.31.2.2 2002/11/04 22:25:55 VZ Exp $
  8. // Copyright:   (c) Julian Smart and Markus Holzem
  9. // Licence:     wxWindows license
  10. /////////////////////////////////////////////////////////////////////////////
  11.  
  12. // Define a new application type
  13. class MyApp: public wxApp
  14. {
  15. public:
  16.     virtual bool OnInit();
  17. };
  18.  
  19. class MyListCtrl: public wxListCtrl
  20. {
  21. public:
  22.     MyListCtrl(wxWindow *parent,
  23.                const wxWindowID id,
  24.                const wxPoint& pos,
  25.                const wxSize& size,
  26.                long style)
  27.         : wxListCtrl(parent, id, pos, size, style),
  28.           m_attr(*wxBLUE, *wxLIGHT_GREY, wxNullFont)
  29.         {
  30.         }
  31.  
  32.     // add one item to the listctrl in report mode
  33.     void InsertItemInReportView(int i);
  34.  
  35.     void OnColClick(wxListEvent& event);
  36.     void OnColRightClick(wxListEvent& event);
  37.     void OnColBeginDrag(wxListEvent& event);
  38.     void OnColDragging(wxListEvent& event);
  39.     void OnColEndDrag(wxListEvent& event);
  40.     void OnBeginDrag(wxListEvent& event);
  41.     void OnBeginRDrag(wxListEvent& event);
  42.     void OnBeginLabelEdit(wxListEvent& event);
  43.     void OnEndLabelEdit(wxListEvent& event);
  44.     void OnDeleteItem(wxListEvent& event);
  45.     void OnDeleteAllItems(wxListEvent& event);
  46.     void OnGetInfo(wxListEvent& event);
  47.     void OnSetInfo(wxListEvent& event);
  48.     void OnSelected(wxListEvent& event);
  49.     void OnDeselected(wxListEvent& event);
  50.     void OnListKeyDown(wxListEvent& event);
  51.     void OnActivated(wxListEvent& event);
  52.     void OnFocused(wxListEvent& event);
  53.     void OnCacheHint(wxListEvent& event);
  54.  
  55.     void OnChar(wxKeyEvent& event);
  56.  
  57. private:
  58.     void SetColumnImage(int col, int image);
  59.  
  60.     void LogEvent(const wxListEvent& event, const wxChar *eventName);
  61.     void LogColEvent(const wxListEvent& event, const wxChar *eventName);
  62.  
  63.     virtual wxString OnGetItemText(long item, long column) const;
  64.     virtual int OnGetItemImage(long item) const;
  65.     virtual wxListItemAttr *OnGetItemAttr(long item) const;
  66.  
  67.     wxListItemAttr m_attr;
  68.  
  69.     DECLARE_EVENT_TABLE()
  70. };
  71.  
  72. // Define a new frame type
  73. class MyFrame: public wxFrame
  74. {
  75. public:
  76.     MyFrame(const wxChar *title, int x, int y, int w, int h);
  77.     ~MyFrame();
  78.  
  79. protected:
  80.     void OnSize(wxSizeEvent& event);
  81.  
  82.     void OnQuit(wxCommandEvent& event);
  83.     void OnAbout(wxCommandEvent& event);
  84.     void OnListView(wxCommandEvent& event);
  85.     void OnReportView(wxCommandEvent& event);
  86.     void OnIconView(wxCommandEvent& event);
  87.     void OnIconTextView(wxCommandEvent& event);
  88.     void OnSmallIconView(wxCommandEvent& event);
  89.     void OnSmallIconTextView(wxCommandEvent& event);
  90.     void OnVirtualView(wxCommandEvent& event);
  91.  
  92.     void OnFocusLast(wxCommandEvent& event);
  93.     void OnToggleFirstSel(wxCommandEvent& event);
  94.     void OnDeselectAll(wxCommandEvent& event);
  95.     void OnSelectAll(wxCommandEvent& event);
  96.     void OnAdd(wxCommandEvent& event);
  97.     void OnEdit(wxCommandEvent& event);
  98.     void OnDelete(wxCommandEvent& event);
  99.     void OnDeleteAll(wxCommandEvent& event);
  100.     void OnSort(wxCommandEvent& event);
  101.     void OnSetFgColour(wxCommandEvent& event);
  102.     void OnSetBgColour(wxCommandEvent& event);
  103.     void OnToggleMultiSel(wxCommandEvent& event);
  104.     void OnShowColInfo(wxCommandEvent& event);
  105.     void OnShowSelInfo(wxCommandEvent& event);
  106.     void OnFreeze(wxCommandEvent& event);
  107.     void OnThaw(wxCommandEvent& event);
  108.  
  109.     void OnUpdateShowColInfo(wxUpdateUIEvent& event);
  110.  
  111.     wxImageList *m_imageListNormal;
  112.     wxImageList *m_imageListSmall;
  113.  
  114.     wxPanel *m_panel;
  115.     MyListCtrl *m_listCtrl;
  116.     wxTextCtrl *m_logWindow;
  117.  
  118. private:
  119.     // recreate the list control with the new flags
  120.     void RecreateList(long flags, bool withText = TRUE);
  121.  
  122.     // fill the control with items depending on the view
  123.     void InitWithListItems();
  124.     void InitWithReportItems();
  125.     void InitWithIconItems(bool withText, bool sameIcon = FALSE);
  126.     void InitWithVirtualItems();
  127.  
  128.     wxLog *m_logOld;
  129.  
  130.     DECLARE_EVENT_TABLE()
  131. };
  132.  
  133.  
  134. // IDs for the menu commands
  135. enum
  136. {
  137.     LIST_ABOUT,
  138.     LIST_QUIT,
  139.  
  140.     LIST_LIST_VIEW,
  141.     LIST_ICON_VIEW,
  142.     LIST_ICON_TEXT_VIEW,
  143.     LIST_SMALL_ICON_VIEW,
  144.     LIST_SMALL_ICON_TEXT_VIEW,
  145.     LIST_REPORT_VIEW,
  146.     LIST_VIRTUAL_VIEW,
  147.  
  148.     LIST_DESELECT_ALL,
  149.     LIST_SELECT_ALL,
  150.     LIST_DELETE_ALL,
  151.     LIST_DELETE,
  152.     LIST_ADD,
  153.     LIST_EDIT,
  154.     LIST_SORT,
  155.     LIST_SET_FG_COL,
  156.     LIST_SET_BG_COL,
  157.     LIST_TOGGLE_MULTI_SEL,
  158.     LIST_TOGGLE_FIRST,
  159.     LIST_SHOW_COL_INFO,
  160.     LIST_SHOW_SEL_INFO,
  161.     LIST_FOCUS_LAST,
  162.     LIST_FREEZE,
  163.     LIST_THAW,
  164.  
  165.     LIST_CTRL                   = 1000
  166. };
  167.  
  168.