]> git.saurik.com Git - wxWidgets.git/blame - samples/xrc/custclas.h
CodeWarrior dislikes #include <> syntax for in-tree headers, prefer ""
[wxWidgets.git] / samples / xrc / custclas.h
CommitLineData
af1337b0
JS
1//-----------------------------------------------------------------------------
2// Name: custclas.h
3// Purpose: XML resources sample: A custom class to insert into a XRC file
4// Author: Robert O'Connor (rob@medicalmnemonics.com), Vaclav Slavik
5// RCS-ID: $Id$
6// Copyright: (c) Robert O'Connor and Vaclav Slavik
7// Licence: wxWindows licence
8//-----------------------------------------------------------------------------
9
10//----------------------------------------------------------------------------------------
11// Begin single inclusion of this .h file condition
12//----------------------------------------------------------------------------------------
13
14#ifndef _CUSTCLAS_H_
15#define _CUSTCLAS_H_
16
17//----------------------------------------------------------------------------------------
18// GCC interface
19//----------------------------------------------------------------------------------------
20
ab7ce33c 21#if defined(__GNUG__) && !defined(__APPLE__)
af1337b0
JS
22 #pragma interface "custclas.h"
23#endif
24
25//----------------------------------------------------------------------------------------
26// Headers
27//----------------------------------------------------------------------------------------
28
29#include "wx/listctrl.h"
30
31//----------------------------------------------------------------------------------------
32// Class definition: MyResizableListCtrl
33//----------------------------------------------------------------------------------------
34
35//! A custom listctrl that resizes itself and pops up a context-sensitive menu.
36class MyResizableListCtrl : public wxListCtrl
37{
be5a51fb
JS
38 // Very helpful wxWidgets macro required for wxWidgets-RTTI tracing: By using this
39 // you will see "Leaked one object of type myResizeableListCtrl" in the debug log,
af1337b0 40 // along with which line you if was created, but you forget to free the memory.
f80ea77b 41 // NOTE: Using this REQUIRES a default constructor: that means either: giving a
af1337b0
JS
42 // default value for all parameters in your constructor, or else having a dummy
43 // MyResizableListCtrl(){} constructor in addition to your regular one.
44 DECLARE_DYNAMIC_CLASS( MyResizableListCtrl )
45
46public:
47
f80ea77b 48 // Constructor.
af1337b0 49 /*
be5a51fb 50 These parameters are the same as a wxWidgets constructor.
af1337b0
JS
51 \param parent The parent window.
52 \param id The id of the progress_listbox. Will usually be -1 unless multiple
53 of them on the same dialog.
54 \param pos The pixel position of the listctrl on its parent window
55 \param size The pixel size of the listctrl
be5a51fb
JS
56 \param style Style of the listbox. See wxWidgets wxListBox docs for details.
57 \param validator Window validator. See wxWidgets docs for details.
af1337b0
JS
58 \param name Windows name (rarely used).
59 \param exclusion_column_caption The label of header of listctrl's exclusion
60 column.
61 */
62 MyResizableListCtrl( wxWindow *parent = NULL,
f80ea77b 63 wxWindowID id = wxID_ANY,
af1337b0
JS
64 const wxPoint &pos = wxDefaultPosition,
65 const wxSize &size = wxDefaultSize,
66 long style = wxLC_REPORT,
67 const wxValidator& validator = wxDefaultValidator,
68 const wxString &name = wxT("myResizableListCtrl")
f80ea77b 69 );
af1337b0
JS
70
71 // Destuctor.
925e9792 72 ~MyResizableListCtrl(){};
af1337b0 73
f80ea77b
WS
74protected:
75
76 // A custom function for a context sensitive menu.
77 void ContextSensitiveMenu( wxMouseEvent& event );
af1337b0 78
be5a51fb 79 // This is a wxWidgets function that we are going to override with our own behaviour.
af1337b0 80 void OnSize( wxSizeEvent &event );
f80ea77b 81
af1337b0 82 // A custom function. What is called in the constructor, and in an OnSize()
f80ea77b
WS
83 void SetColumnWidths();
84
af1337b0
JS
85private:
86
be5a51fb 87 // wxWidgets macro, required to be able to use Event tables in the .cpp file.
af1337b0 88 DECLARE_EVENT_TABLE()
f80ea77b 89
af1337b0
JS
90};
91
92//----------------------------------------------------------------------------------------
93// End single inclusion of this .h file condition
94//----------------------------------------------------------------------------------------
95
96#endif //_CUSTCLAS_H_
97