GNU compiler included with Mac OS X 10.2 (Jaguar) as well as August Developer Tools update contain a bug concerning #pragma interface handling that can only be worked around by not using them (and they are not necessary anyways) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@17039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			98 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			4.1 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
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// 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_
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------
 | 
						|
// GCC interface
 | 
						|
//----------------------------------------------------------------------------------------
 | 
						|
 | 
						|
#if defined(__GNUG__) && !defined(__APPLE__)
 | 
						|
    #pragma interface "custclas.h"
 | 
						|
#endif
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------
 | 
						|
// 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 wxWindows macro required for wxWindows-RTTI tracing: By using this
 | 
						|
    // you will see "Leaked one object of type myResizeableListCtrl" 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.
 | 
						|
    DECLARE_DYNAMIC_CLASS( MyResizableListCtrl )
 | 
						|
 | 
						|
public:
 | 
						|
 | 
						|
    // Constructor.        
 | 
						|
    /*
 | 
						|
        These parameters are the same as a wxWindows 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 wxWindows wxListBox docs for details.
 | 
						|
        \param validator Window validator. See wxWindows 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 = -1,
 | 
						|
                         const wxPoint &pos = wxDefaultPosition,
 | 
						|
                         const wxSize &size = wxDefaultSize,
 | 
						|
                         long style = wxLC_REPORT,
 | 
						|
                         const wxValidator& validator = wxDefaultValidator,
 | 
						|
                         const wxString &name = wxT("myResizableListCtrl")
 | 
						|
                       );                   
 | 
						|
 | 
						|
    // Destuctor.
 | 
						|
    ~MyResizableListCtrl();    
 | 
						|
 | 
						|
protected:       
 | 
						|
 | 
						|
    // A custom function for a context sensitive menu. 
 | 
						|
    void ContextSensitiveMenu( wxMouseEvent& event );       
 | 
						|
    
 | 
						|
    // This is a wxWindows 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:
 | 
						|
 | 
						|
    // wxWindows macro, required to be able to use Event tables in the .cpp file.
 | 
						|
    DECLARE_EVENT_TABLE()
 | 
						|
    
 | 
						|
};
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------
 | 
						|
// End single inclusion of this .h file condition
 | 
						|
//----------------------------------------------------------------------------------------
 | 
						|
 | 
						|
#endif  //_CUSTCLAS_H_
 | 
						|
 |