This is a combination of running clang-tidy with modernize-use-nullptr check for some ports (GTK, X11, OSX) and manual changes to the ports for which it couldn't be used easily (MSW, DFB) and also manually updating the docs. Also replace NULL with null or nullptr in the comments as this is more consistent with the use of nullptr in the code and makes it simpler to grep for the remaining occurrences of NULL itself. And also use null in the assert messages. Only a few occurrences of "NULL" are still left in non-C files, mostly corresponding to unclear comments or string output which it might not be safe to change.
111 lines
4.3 KiB
C++
111 lines
4.3 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// 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_
|
|
|