// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef __GTKDATAVIEWCTRLH__
-#define __GTKDATAVIEWCTRLH__
+#ifndef _WX_GTKDATAVIEWCTRL_H_
+#define _WX_GTKDATAVIEWCTRL_H_
-#include "wx/defs.h"
-#include "wx/object.h"
#include "wx/list.h"
-#include "wx/control.h"
// ---------------------------------------------------------
// classes
// implementation
GtkCellRenderer* GetGtkHandle() { return m_renderer; }
void GtkInitHandlers();
+ virtual bool GtkHasAttributes() { return false; }
+ void GtkUpdateAlignment();
protected:
GtkCellRenderer *m_renderer;
+ int m_alignment;
protected:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer)
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer)
};
+// ---------------------------------------------------------
+// wxDataViewTextRendererAttr
+// ---------------------------------------------------------
+
+class WXDLLIMPEXP_ADV wxDataViewTextRendererAttr: public wxDataViewTextRenderer
+{
+public:
+ wxDataViewTextRendererAttr( const wxString &varianttype = wxT("string"),
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+ int align = wxDVR_DEFAULT_ALIGNMENT );
+
+ // implementation
+ bool GtkHasAttributes() { return true; }
+
+protected:
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRendererAttr)
+};
+
// ---------------------------------------------------------
// wxDataViewBitmapRenderer
// ---------------------------------------------------------
virtual bool Render( wxRect cell, wxDC *dc, int state ) = 0;
+
+ void RenderText( const wxString &text, int xoffset, wxRect cell, wxDC *dc, int state );
+
virtual wxSize GetSize() const = 0;
- virtual bool Activate( wxRect cell,
- wxDataViewModel *model, const wxDataViewItem &item, unsigned int col )
+ virtual bool Activate( wxRect WXUNUSED(cell),
+ wxDataViewModel *WXUNUSED(model), const wxDataViewItem &WXUNUSED(item), unsigned int WXUNUSED(col) )
{ return false; }
- virtual bool LeftClick( wxPoint cursor, wxRect cell,
- wxDataViewModel *model, const wxDataViewItem &item, unsigned int col )
- { return false; }
- virtual bool RightClick( wxPoint cursor, wxRect cell,
- wxDataViewModel *model, const wxDataViewItem &item, unsigned int col )
+ virtual bool LeftClick( wxPoint WXUNUSED(cursor), wxRect WXUNUSED(cell),
+ wxDataViewModel *WXUNUSED(model), const wxDataViewItem &WXUNUSED(item), unsigned int WXUNUSED(col) )
{ return false; }
- virtual bool StartDrag( wxPoint cursor, wxRect cell,
- wxDataViewModel *model, const wxDataViewItem &item, unsigned int col )
+ virtual bool StartDrag( wxPoint WXUNUSED(cursor), wxRect WXUNUSED(cell),
+ wxDataViewModel *WXUNUSED(model), const wxDataViewItem &WXUNUSED(item), unsigned int WXUNUSED(col) )
{ return false; }
// Create DC on request
private:
wxDC *m_dc;
-
+
+public:
+ // Internal, temporay for RenderText.
+ GtkCellRenderer *m_text_renderer;
+ GdkWindow *window;
+ GtkWidget *widget;
+ void *background_area;
+ void *cell_area;
+ void *expose_area;
+ int flags;
+
protected:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer)
};
virtual void SetMinWidth( int minWidth );
virtual void SetWidth( int width );
+ virtual void SetReorderable( bool reorderable );
// getters:
virtual int GetWidth() const;
virtual int GetMinWidth() const;
+
+ virtual bool IsReorderable() const;
// implementation
GtkWidget* GetGtkHandle() { return m_column; }
// holds the GTK handle
GtkWidget *m_column;
+ // holds GTK handles for title/bitmap in the header
+ GtkWidget *m_image;
+ GtkWidget *m_label;
+
// delayed connection to mouse events
friend class wxDataViewCtrl;
void OnInternalIdle();
virtual bool AssociateModel( wxDataViewModel *model );
+ virtual bool PrependColumn( wxDataViewColumn *col );
virtual bool AppendColumn( wxDataViewColumn *col );
+ virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col );
+
virtual unsigned int GetColumnCount() const;
virtual wxDataViewColumn* GetColumn( unsigned int pos ) const;
virtual bool DeleteColumn( wxDataViewColumn *column );
GtkWidget *GtkGetTreeView() { return m_treeview; }
wxDataViewCtrlInternal* GtkGetInternal() { return m_internal; }
+ virtual void OnInternalIdle();
+
protected:
virtual void DoSetExpanderColumn();
virtual void DoSetIndent();
private:
- friend class wxDataViewCtrlDC;
+ friend class wxDataViewCtrlDCImpl;
friend class wxDataViewColumn;
friend class wxGtkDataViewModelNotifier;
+ friend class wxDataViewCtrlInternal;
+
GtkWidget *m_treeview;
wxDataViewModelNotifier *m_notifier;
wxDataViewCtrlInternal *m_internal;
wxDataViewColumnList m_cols;
-
- virtual void OnInternalIdle();
-
void GtkEnableSelectionEvents();
void GtkDisableSelectionEvents();
-private:
DECLARE_DYNAMIC_CLASS(wxDataViewCtrl)
DECLARE_NO_COPY_CLASS(wxDataViewCtrl)
};
-#endif // __GTKDATAVIEWCTRLH__
+#endif // _WX_GTKDATAVIEWCTRL_H_