~brian-sidebotham/wxwidgets-cmake/wxpython-2.9.4

« back to all changes in this revision

Viewing changes to samples/xrc/custclas.h

  • Committer: Brian Sidebotham
  • Date: 2013-08-03 14:30:08 UTC
  • Revision ID: brian.sidebotham@gmail.com-20130803143008-c7806tkych1tp6fc
Initial import into Bazaar

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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: custclas.h 67384 2011-04-03 20:31:32Z DS $
 
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
// Headers
 
19
//----------------------------------------------------------------------------------------
 
20
 
 
21
#include "wx/listctrl.h"
 
22
 
 
23
//----------------------------------------------------------------------------------------
 
24
// Class definition: MyResizableListCtrl
 
25
//----------------------------------------------------------------------------------------
 
26
 
 
27
//! A custom listctrl that resizes itself and pops up a context-sensitive menu.
 
28
class MyResizableListCtrl : public wxListCtrl
 
29
{
 
30
    // Very helpful wxWidgets macro required for wxWidgets-RTTI tracing: By using this
 
31
    // you will see "Leaked one object of type myResizableListCtrl" in the debug log,
 
32
    // along with which line you if was created, but you forget to free the memory.
 
33
    // NOTE: Using this REQUIRES a default constructor: that means either: giving a
 
34
    // default value for all parameters in your constructor, or else having a dummy
 
35
    // MyResizableListCtrl(){} constructor in addition to your regular one.
 
36
    DECLARE_DYNAMIC_CLASS( MyResizableListCtrl )
 
37
 
 
38
public:
 
39
 
 
40
    // Constructor.
 
41
    /*
 
42
        These parameters are the same as a wxWidgets constructor.
 
43
        \param parent The parent window.
 
44
        \param id The id of the progress_listbox. Will usually be -1 unless multiple
 
45
            of them on the same dialog.
 
46
        \param pos The pixel position of the listctrl on its parent window
 
47
        \param size The pixel size of the listctrl
 
48
        \param style Style of the listbox. See wxWidgets wxListBox docs for details.
 
49
        \param validator Window validator. See wxWidgets docs for details.
 
50
        \param name Windows name (rarely used).
 
51
        \param exclusion_column_caption The label of header of listctrl's exclusion
 
52
            column.
 
53
     */
 
54
    MyResizableListCtrl( wxWindow *parent = NULL,
 
55
                         wxWindowID id = wxID_ANY,
 
56
                         const wxPoint &pos = wxDefaultPosition,
 
57
                         const wxSize &size = wxDefaultSize,
 
58
                         long style = wxLC_REPORT,
 
59
                         const wxValidator& validator = wxDefaultValidator,
 
60
                         const wxString &name = wxT("myResizableListCtrl")
 
61
                       );
 
62
 
 
63
    // Destructor.
 
64
    ~MyResizableListCtrl(){};
 
65
 
 
66
protected:
 
67
 
 
68
    // A custom function for a context sensitive menu.
 
69
    void ContextSensitiveMenu( wxMouseEvent& event );
 
70
 
 
71
    // This is a wxWidgets function that we are going to override with our own behaviour.
 
72
    void OnSize( wxSizeEvent &event );
 
73
 
 
74
    // A custom function. What is called in the constructor, and in an OnSize()
 
75
    void SetColumnWidths();
 
76
 
 
77
private:
 
78
 
 
79
    // wxWidgets macro, required to be able to use Event tables in the .cpp file.
 
80
    DECLARE_EVENT_TABLE()
 
81
 
 
82
};
 
83
 
 
84
//----------------------------------------------------------------------------------------
 
85
// End single inclusion of this .h file condition
 
86
//----------------------------------------------------------------------------------------
 
87
 
 
88
#endif  //_CUSTCLAS_H_
 
89