Added (yet unfunctional) skeleton files fir
generic implementation of wxDataViewCtrl. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38221 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
233
include/wx/generic/dataview.h
Normal file
233
include/wx/generic/dataview.h
Normal file
@@ -0,0 +1,233 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/generic/dataview.h
|
||||
// Purpose: wxDataViewCtrl generic implementation header
|
||||
// Author: Robert Roebling
|
||||
// Id: $Id$
|
||||
// Copyright: (c) 1998 Robert Roebling
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __GENERICDATAVIEWCTRLH__
|
||||
#define __GENERICDATAVIEWCTRLH__
|
||||
|
||||
#include "wx/defs.h"
|
||||
#include "wx/object.h"
|
||||
#include "wx/list.h"
|
||||
#include "wx/control.h"
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// classes
|
||||
// ---------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_CORE wxDataViewCtrl;
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// wxDataViewCell
|
||||
// ---------------------------------------------------------
|
||||
|
||||
class wxDataViewCell: public wxDataViewCellBase
|
||||
{
|
||||
public:
|
||||
wxDataViewCell( const wxString &varianttype, wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
|
||||
|
||||
protected:
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCell)
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// wxDataViewTextCell
|
||||
// ---------------------------------------------------------
|
||||
|
||||
class wxDataViewTextCell: public wxDataViewCell
|
||||
{
|
||||
public:
|
||||
wxDataViewTextCell( const wxString &varianttype = wxT("string"),
|
||||
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
|
||||
|
||||
bool SetValue( const wxVariant &value );
|
||||
bool GetValue( wxVariant &value );
|
||||
|
||||
protected:
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextCell)
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// wxDataViewToggleCell
|
||||
// ---------------------------------------------------------
|
||||
|
||||
class wxDataViewToggleCell: public wxDataViewCell
|
||||
{
|
||||
public:
|
||||
wxDataViewToggleCell( const wxString &varianttype = wxT("bool"),
|
||||
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
|
||||
|
||||
bool SetValue( const wxVariant &value );
|
||||
bool GetValue( wxVariant &value );
|
||||
|
||||
protected:
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleCell)
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// wxDataViewCustomCell
|
||||
// ---------------------------------------------------------
|
||||
|
||||
class wxDataViewCustomCell: public wxDataViewCell
|
||||
{
|
||||
public:
|
||||
wxDataViewCustomCell( const wxString &varianttype = wxT("string"),
|
||||
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT )
|
||||
~wxDataViewCustomCell();
|
||||
bool Init();
|
||||
|
||||
virtual bool Render( wxRect cell, wxDC *dc, int state ) = 0;
|
||||
virtual wxSize GetSize() = 0;
|
||||
|
||||
virtual bool Activate( wxRect cell,
|
||||
wxDataViewListModel *model, size_t col, size_t row )
|
||||
{ return false; }
|
||||
|
||||
virtual bool LeftClick( wxPoint cursor, wxRect cell,
|
||||
wxDataViewListModel *model, size_t col, size_t row )
|
||||
{ return false; }
|
||||
virtual bool RightClick( wxPoint cursor, wxRect cell,
|
||||
wxDataViewListModel *model, size_t col, size_t row )
|
||||
{ return false; }
|
||||
virtual bool StartDrag( wxPoint cursor, wxRect cell,
|
||||
wxDataViewListModel *model, size_t col, size_t row )
|
||||
{ return false; }
|
||||
|
||||
// Create DC on request
|
||||
virtual wxDC *GetDC();
|
||||
|
||||
private:
|
||||
wxDC *m_dc;
|
||||
|
||||
protected:
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomCell)
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// wxDataViewProgressCell
|
||||
// ---------------------------------------------------------
|
||||
|
||||
class wxDataViewProgressCell: public wxDataViewCustomCell
|
||||
{
|
||||
public:
|
||||
wxDataViewProgressCell( const wxString &label = wxEmptyString,
|
||||
const wxString &varianttype = wxT("long"),
|
||||
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
|
||||
~wxDataViewProgressCell();
|
||||
|
||||
bool SetValue( const wxVariant &value );
|
||||
|
||||
virtual bool Render( wxRect cell, wxDC *dc, int state );
|
||||
virtual wxSize GetSize();
|
||||
|
||||
private:
|
||||
wxString m_label;
|
||||
int m_value;
|
||||
|
||||
protected:
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressCell)
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// wxDataViewDateCell
|
||||
// ---------------------------------------------------------
|
||||
|
||||
class wxDataViewDateCell: public wxDataViewCustomCell
|
||||
{
|
||||
public:
|
||||
wxDataViewDateCell( const wxString &varianttype = wxT("datetime"),
|
||||
wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE );
|
||||
|
||||
bool SetValue( const wxVariant &value );
|
||||
|
||||
virtual bool Render( wxRect cell, wxDC *dc, int state );
|
||||
virtual wxSize GetSize();
|
||||
virtual bool Activate( wxRect cell,
|
||||
wxDataViewListModel *model, size_t col, size_t row );
|
||||
|
||||
private:
|
||||
wxDateTime m_date;
|
||||
|
||||
protected:
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateCell)
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// wxDataViewColumn
|
||||
// ---------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_CORE wxDataViewColumn: public wxDataViewColumnBase
|
||||
{
|
||||
public:
|
||||
wxDataViewColumn( const wxString &title, wxDataViewCell *cell, size_t model_column, int flags = 0 );
|
||||
virtual ~wxDataViewColumn();
|
||||
|
||||
virtual void SetTitle( const wxString &title );
|
||||
|
||||
private:
|
||||
|
||||
protected:
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewColumn)
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// wxDataViewCtrl
|
||||
// ---------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_CORE wxDataViewCtrl: public wxDataViewCtrlBase,
|
||||
public wxScrollHelperNative
|
||||
{
|
||||
public:
|
||||
wxDataViewCtrl() : wxScrollHelperNative(this)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
wxDataViewCtrl( wxWindow *parent, wxWindowID id,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator ) :
|
||||
wxScrollHelperNative(this)
|
||||
{
|
||||
Create(parent, id, pos, size, style, validator );
|
||||
}
|
||||
|
||||
virtual ~wxDataViewCtrl();
|
||||
|
||||
void Init();
|
||||
|
||||
bool Create(wxWindow *parent, wxWindowID id,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator );
|
||||
|
||||
virtual bool AssociateModel( wxDataViewListModel *model );
|
||||
virtual bool AppendColumn( wxDataViewColumn *col );
|
||||
|
||||
private:
|
||||
wxDataViewListModelNotifier *m_notifier;
|
||||
wxWindow *m_clientArea;
|
||||
wxWindow *m_headerArea;
|
||||
|
||||
private:
|
||||
virtual void ScrollWindow( int dx, int dy, const wxRect *rect );
|
||||
|
||||
// we need to return a special WM_GETDLGCODE value to process just the
|
||||
// arrows but let the other navigation characters through
|
||||
#ifdef __WXMSW__
|
||||
virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
|
||||
#endif // __WXMSW__
|
||||
|
||||
WX_FORWARD_TO_SCROLL_HELPER()
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxDataViewCtrl)
|
||||
DECLARE_NO_COPY_CLASS(wxDataViewCtrl)
|
||||
};
|
||||
|
||||
|
||||
#endif // __GENERICDATAVIEWCTRLH__
|
Reference in New Issue
Block a user