89 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //-----------------------------------------------------------------------------
 | |
| // Name:        custclas.h
 | |
| // Purpose:     XML resources sample: A custom class to insert into a XRC file
 | |
| // Author:      Robert O'Connor (rob@medicalmnemonics.com), Vaclav Slavik
 | |
| // Copyright:   (c) Robert O'Connor and Vaclav Slavik
 | |
| // Licence:     wxWindows licence
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| //----------------------------------------------------------------------------------------
 | |
| // Begin single inclusion of this .h file condition
 | |
| //----------------------------------------------------------------------------------------
 | |
| 
 | |
| #ifndef _CUSTCLAS_H_
 | |
| #define _CUSTCLAS_H_
 | |
| 
 | |
| //----------------------------------------------------------------------------------------
 | |
| // Headers
 | |
| //----------------------------------------------------------------------------------------
 | |
| 
 | |
| #include "wx/listctrl.h"
 | |
| 
 | |
| //----------------------------------------------------------------------------------------
 | |
| // Class definition: MyResizableListCtrl
 | |
| //----------------------------------------------------------------------------------------
 | |
| 
 | |
| //! A custom listctrl that resizes itself and pops up a context-sensitive menu.
 | |
| class MyResizableListCtrl : public wxListCtrl
 | |
| {
 | |
|     // Very helpful wxWidgets macro required for wxWidgets-RTTI tracing: By using this
 | |
|     // you will see "Leaked one object of type myResizableListCtrl" in the debug log,
 | |
|     // along with which line you if was created, but you forget to free the memory.
 | |
|     // NOTE: Using this REQUIRES a default constructor: that means either: giving a
 | |
|     // default value for all parameters in your constructor, or else having a dummy
 | |
|     // MyResizableListCtrl(){} constructor in addition to your regular one.
 | |
|     wxDECLARE_DYNAMIC_CLASS( MyResizableListCtrl );
 | |
| 
 | |
| public:
 | |
| 
 | |
|     // Constructor.
 | |
|     /*
 | |
|         These parameters are the same as a wxWidgets constructor.
 | |
|         \param parent The parent window.
 | |
|         \param id The id of the progress_listbox. Will usually be -1 unless multiple
 | |
|             of them on the same dialog.
 | |
|         \param pos The pixel position of the listctrl on its parent window
 | |
|         \param size The pixel size of the listctrl
 | |
|         \param style Style of the listbox. See wxWidgets wxListBox docs for details.
 | |
|         \param validator Window validator. See wxWidgets docs for details.
 | |
|         \param name Windows name (rarely used).
 | |
|         \param exclusion_column_caption The label of header of listctrl's exclusion
 | |
|             column.
 | |
|      */
 | |
|     MyResizableListCtrl( wxWindow *parent = NULL,
 | |
|                          wxWindowID id = wxID_ANY,
 | |
|                          const wxPoint &pos = wxDefaultPosition,
 | |
|                          const wxSize &size = wxDefaultSize,
 | |
|                          long style = wxLC_REPORT,
 | |
|                          const wxValidator& validator = wxDefaultValidator,
 | |
|                          const wxString &name = "myResizableListCtrl"
 | |
|                        );
 | |
| 
 | |
|     // Destructor.
 | |
|     ~MyResizableListCtrl(){}
 | |
| 
 | |
| protected:
 | |
| 
 | |
|     // A custom function for a context sensitive menu.
 | |
|     void ContextSensitiveMenu( wxMouseEvent& event );
 | |
| 
 | |
|     // This is a wxWidgets function that we are going to override with our own behaviour.
 | |
|     void OnSize( wxSizeEvent &event );
 | |
| 
 | |
|     // A custom function. What is called in the constructor, and in an OnSize()
 | |
|     void SetColumnWidths();
 | |
| 
 | |
| private:
 | |
| 
 | |
|     // wxWidgets macro, required to be able to use Event tables in the .cpp file.
 | |
|     wxDECLARE_EVENT_TABLE();
 | |
| 
 | |
| };
 | |
| 
 | |
| //----------------------------------------------------------------------------------------
 | |
| // End single inclusion of this .h file condition
 | |
| //----------------------------------------------------------------------------------------
 | |
| 
 | |
| #endif  //_CUSTCLAS_H_
 | |
| 
 |