initial commit
Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
This commit is contained in:
111
libs/wxWidgets-3.3.1/include/wx/gtk/dvrenderer.h
Normal file
111
libs/wxWidgets-3.3.1/include/wx/gtk/dvrenderer.h
Normal file
@@ -0,0 +1,111 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/gtk/dvrenderer.h
|
||||
// Purpose: wxDataViewRenderer for GTK wxDataViewCtrl implementation
|
||||
// Author: Robert Roebling, Vadim Zeitlin
|
||||
// Created: 2009-11-07 (extracted from wx/gtk/dataview.h)
|
||||
// Copyright: (c) 2006 Robert Roebling
|
||||
// (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_GTK_DVRENDERER_H_
|
||||
#define _WX_GTK_DVRENDERER_H_
|
||||
|
||||
typedef struct _GtkCellRendererText GtkCellRendererText;
|
||||
typedef struct _GtkTreeViewColumn GtkTreeViewColumn;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxDataViewRenderer
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_ADV wxDataViewRenderer: public wxDataViewRendererBase
|
||||
{
|
||||
public:
|
||||
wxDataViewRenderer( const wxString &varianttype,
|
||||
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
|
||||
int align = wxDVR_DEFAULT_ALIGNMENT );
|
||||
|
||||
virtual void SetMode( wxDataViewCellMode mode ) override;
|
||||
virtual wxDataViewCellMode GetMode() const override;
|
||||
|
||||
virtual void SetAlignment( int align ) override;
|
||||
virtual int GetAlignment() const override;
|
||||
|
||||
virtual void EnableEllipsize(wxEllipsizeMode mode = wxELLIPSIZE_MIDDLE) override;
|
||||
virtual wxEllipsizeMode GetEllipsizeMode() const override;
|
||||
|
||||
virtual bool FinishEditing() override;
|
||||
|
||||
// GTK-specific implementation
|
||||
// ---------------------------
|
||||
|
||||
// pack the GTK cell renderers used by this renderer to the given column
|
||||
//
|
||||
// by default only a single m_renderer is used but some renderers use more
|
||||
// than one GTK cell renderer
|
||||
virtual void GtkPackIntoColumn(GtkTreeViewColumn *column);
|
||||
|
||||
// called when the cell value was edited by user with the new value
|
||||
//
|
||||
// it uses GtkGetValueFromString() to parse the new value, then validates
|
||||
// it by calling Validate() and notifies the model about the change if it
|
||||
// passes validation
|
||||
void GtkOnTextEdited(const char *itempath, const wxString& value);
|
||||
|
||||
GtkCellRenderer* GetGtkHandle() { return m_renderer; }
|
||||
void GtkInitHandlers();
|
||||
virtual void GtkUpdateAlignment() { GtkApplyAlignment(m_renderer); }
|
||||
|
||||
// return the text renderer used by this renderer for setting text cell
|
||||
// specific attributes: can return nullptr if this renderer doesn't render any
|
||||
// text
|
||||
virtual GtkCellRendererText *GtkGetTextRenderer() const { return nullptr; }
|
||||
|
||||
// return the widget actually used by the renderer for editing, this may be
|
||||
// different from the editor control widget for the custom renderers
|
||||
virtual GtkWidget* GtkGetEditorWidget() const;
|
||||
|
||||
void GtkSetCurrentItem(const wxDataViewItem& item) { m_itemBeingRendered = item; }
|
||||
|
||||
private:
|
||||
// Change the mode at GTK level without touching m_mode, this is useful for
|
||||
// temporarily making the renderer insensitive but does mean that GetMode()
|
||||
// may return a value different from the actual GTK renderer mode.
|
||||
void GtkSetMode(wxDataViewCellMode mode);
|
||||
|
||||
protected:
|
||||
virtual void SetAttr(const wxDataViewItemAttr& attr) override;
|
||||
virtual void SetEnabled(bool enabled) override;
|
||||
|
||||
virtual bool IsHighlighted() const override;
|
||||
|
||||
// Apply our effective alignment (i.e. m_alignment if specified or the
|
||||
// associated column alignment by default) to the given renderer.
|
||||
void GtkApplyAlignment(GtkCellRenderer *renderer);
|
||||
|
||||
// This method is used to interpret the string entered by user and by
|
||||
// default just uses it as is, but can be overridden for classes requiring
|
||||
// special treatment.
|
||||
virtual wxVariant GtkGetValueFromString(const wxString& str) const;
|
||||
|
||||
|
||||
GtkCellRenderer *m_renderer;
|
||||
int m_alignment;
|
||||
|
||||
// We store the renderer mode at wx level as it can differ from the mode of
|
||||
// the corresponding GTK+ renderer as explained above.
|
||||
wxDataViewCellMode m_mode;
|
||||
|
||||
// true if we hadn't changed any visual attributes or restored them since
|
||||
// doing this
|
||||
bool m_usingDefaultAttrs;
|
||||
|
||||
// the item currently being rendered
|
||||
wxDataViewItem m_itemBeingRendered;
|
||||
|
||||
protected:
|
||||
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer);
|
||||
};
|
||||
|
||||
#endif // _WX_GTK_DVRENDERER_H_
|
||||
|
||||
Reference in New Issue
Block a user