Gtk::CellRendererSpin Class Reference
TreeView Classes

Renders a spin button in a cell. More...

Inheritance diagram for Gtk::CellRendererSpin:
[legend]

## Public Member Functions

virtual | ~CellRendererSpin ()
GtkCellRendererSpin* | gobj ()
| Provides access to the underlying C GtkObject. More...
const GtkCellRendererSpin* | gobj () const
| Provides access to the underlying C GtkObject. More...
| CellRendererSpin ()
Glib::PropertyProxy < Glib::RefPtr< Adjustment > > | property_adjustment ()
| The adjustment that holds the value of the spin button. More...
Glib::PropertyProxy_ReadOnly < Glib::RefPtr< Adjustment > > | property_adjustment () const
| The adjustment that holds the value of the spin button. More...
Glib::PropertyProxy< double > | property_climb_rate ()
| The acceleration rate when you hold down a button. More...
Glib::PropertyProxy_ReadOnly < double > | property_climb_rate () const
| The acceleration rate when you hold down a button. More...
Glib::PropertyProxy< guint > | property_digits ()
| The number of decimal places to display. More...
Glib::PropertyProxy_ReadOnly < guint > | property_digits () const
| The number of decimal places to display. More...
Public Member Functions inherited from Gtk::CellRendererText
virtual | ~CellRendererText ()
GtkCellRendererText* | gobj ()
| Provides access to the underlying C GtkObject. More...
const GtkCellRendererText* | gobj () const
| Provides access to the underlying C GtkObject. More...
| CellRendererText ()
void | set_fixed_height_from_font (int number_of_rows)
| Sets the height of a renderer to explicitly be determined by the "font" and "y_pad" property set on it. More...
Glib::SignalProxy2< void, const Glib::ustring &, const Glib::ustring& > | signal_edited ()
Glib::PropertyProxy < Glib::ustring > | property_text ()
| Text to render. More...
Glib::PropertyProxy_ReadOnly < Glib::ustring > | property_text () const
| Text to render. More...
Glib::PropertyProxy_WriteOnly < Glib::ustring > | property_markup ()
| Marked up text to render. More...
Glib::PropertyProxy < Pango::AttrList > | property_attributes ()
| A list of style attributes to apply to the text of the renderer. More...
Glib::PropertyProxy_ReadOnly < Pango::AttrList > | property_attributes () const
| A list of style attributes to apply to the text of the renderer. More...
Glib::PropertyProxy_WriteOnly < Glib::ustring > | property_background ()
| Background color as a string. More...
Glib::PropertyProxy_WriteOnly < Glib::ustring > | property_foreground ()
| Foreground color as a string. More...
Glib::PropertyProxy< Gdk::Color > | property_background_gdk ()
| Background color as a GdkColor. More...
Glib::PropertyProxy_ReadOnly < Gdk::Color > | property_background_gdk () const
| Background color as a GdkColor. More...
Glib::PropertyProxy< Gdk::Color > | property_foreground_gdk ()
| Foreground color as a GdkColor. More...
Glib::PropertyProxy_ReadOnly < Gdk::Color > | property_foreground_gdk () const
| Foreground color as a GdkColor. More...
Glib::PropertyProxy< Gdk::RGBA > | property_background_rgba ()
| Background color as a GdkRGBA. More...
Glib::PropertyProxy_ReadOnly < Gdk::RGBA > | property_background_rgba () const
| Background color as a GdkRGBA. More...
Glib::PropertyProxy< Gdk::RGBA > | property_foreground_rgba ()
| Foreground color as a GdkRGBA. More...
Glib::PropertyProxy_ReadOnly < Gdk::RGBA > | property_foreground_rgba () const
| Foreground color as a GdkRGBA. More...
Glib::PropertyProxy < Glib::ustring > | property_font ()
| Font description as a string, e.g. More...
Glib::PropertyProxy_ReadOnly < Glib::ustring > | property_font () const
| Font description as a string, e.g. More...
Glib::PropertyProxy < Pango::FontDescription > | property_font_desc ()
| Font description as a PangoFontDescription struct. More...
Glib::PropertyProxy_ReadOnly < Pango::FontDescription > | property_font_desc () const
| Font description as a PangoFontDescription struct. More...
Glib::PropertyProxy < Glib::ustring > | property_family ()
| Name of the font family, e.g. More...
Glib::PropertyProxy_ReadOnly < Glib::ustring > | property_family () const
| Name of the font family, e.g. More...
Glib::PropertyProxy< Pango::Style > | property_style ()
| Font style. More...
Glib::PropertyProxy_ReadOnly < Pango::Style > | property_style () const
| Font style. More...
Glib::PropertyProxy < Pango::Variant > | property_variant ()
| Font variant. More...
Glib::PropertyProxy_ReadOnly < Pango::Variant > | property_variant () const
| Font variant. More...
Glib::PropertyProxy< int > | property_weight ()
| Font weight. More...
Glib::PropertyProxy_ReadOnly< int > | property_weight () const
| Font weight. More...
Glib::PropertyProxy < Pango::Stretch > | property_stretch ()
| Font stretch. More...
Glib::PropertyProxy_ReadOnly < Pango::Stretch > | property_stretch () const
| Font stretch. More...
Glib::PropertyProxy< int > | property_size ()
| Font size. More...
Glib::PropertyProxy_ReadOnly< int > | property_size () const
| Font size. More...
Glib::PropertyProxy< double > | property_size_points ()
| Font size in points. More...
Glib::PropertyProxy_ReadOnly < double > | property_size_points () const
| Font size in points. More...
Glib::PropertyProxy< double > | property_scale ()
| Font scaling factor. More...
Glib::PropertyProxy_ReadOnly < double > | property_scale () const
| Font scaling factor. More...
Glib::PropertyProxy< bool > | property_editable ()
| Whether the text can be modified by the user. More...
Glib::PropertyProxy_ReadOnly < bool > | property_editable () const
| Whether the text can be modified by the user. More...
Glib::PropertyProxy< bool > | property_strikethrough ()
| Whether to strike through the text. More...
Glib::PropertyProxy_ReadOnly < bool > | property_strikethrough () const
| Whether to strike through the text. More...
Glib::PropertyProxy < Pango::Underline > | property_underline ()
| Style of underline for this text. More...
Glib::PropertyProxy_ReadOnly < Pango::Underline > | property_underline () const
| Style of underline for this text. More...
Glib::PropertyProxy< int > | property_rise ()
| Offset of text above the baseline (below the baseline if rise is negative). More...
Glib::PropertyProxy_ReadOnly< int > | property_rise () const
| Offset of text above the baseline (below the baseline if rise is negative). More...
Glib::PropertyProxy < Glib::ustring > | property_language ()
| The language this text is in, as an ISO code. More...
Glib::PropertyProxy_ReadOnly < Glib::ustring > | property_language () const
| The language this text is in, as an ISO code. More...
Glib::PropertyProxy < Pango::EllipsizeMode > | property_ellipsize ()
| The preferred place to ellipsize the string, if the cell renderer does not have enough room to display the entire string. More...
Glib::PropertyProxy_ReadOnly < Pango::EllipsizeMode > | property_ellipsize () const
| The preferred place to ellipsize the string, if the cell renderer does not have enough room to display the entire string. More...
Glib::PropertyProxy< int > | property_width_chars ()
| The desired width of the label, in characters. More...
Glib::PropertyProxy_ReadOnly< int > | property_width_chars () const
| The desired width of the label, in characters. More...
Glib::PropertyProxy< int > | property_max_width_chars ()
| The maximum width of the cell, in characters. More...
Glib::PropertyProxy_ReadOnly< int > | property_max_width_chars () const
| The maximum width of the cell, in characters. More...
Glib::PropertyProxy < Pango::WrapMode > | property_wrap_mode ()
| How to break the string into multiple lines, if the cell renderer does not have enough room to display the entire string. More...
Glib::PropertyProxy_ReadOnly < Pango::WrapMode > | property_wrap_mode () const
| How to break the string into multiple lines, if the cell renderer does not have enough room to display the entire string. More...
Glib::PropertyProxy< int > | property_wrap_width ()
| The width at which the text is wrapped. More...
Glib::PropertyProxy_ReadOnly< int > | property_wrap_width () const
| The width at which the text is wrapped. More...
Glib::PropertyProxy < Pango::Alignment > | property_alignment ()
| How to align the lines. More...
Glib::PropertyProxy_ReadOnly < Pango::Alignment > | property_alignment () const
| How to align the lines. More...
Glib::PropertyProxy< bool > | property_background_set ()
| Whether this tag affects the background color. More...
Glib::PropertyProxy_ReadOnly < bool > | property_background_set () const
| Whether this tag affects the background color. More...
Glib::PropertyProxy< bool > | property_foreground_set ()
| Whether this tag affects the foreground color. More...
Glib::PropertyProxy_ReadOnly < bool > | property_foreground_set () const
| Whether this tag affects the foreground color. More...
Glib::PropertyProxy< bool > | property_family_set ()
| Whether this tag affects the font family. More...
Glib::PropertyProxy_ReadOnly < bool > | property_family_set () const
| Whether this tag affects the font family. More...
Glib::PropertyProxy< bool > | property_style_set ()
| Whether this tag affects the font style. More...
Glib::PropertyProxy_ReadOnly < bool > | property_style_set () const
| Whether this tag affects the font style. More...
Glib::PropertyProxy< bool > | property_variant_set ()
| Whether this tag affects the font variant. More...
Glib::PropertyProxy_ReadOnly < bool > | property_variant_set () const
| Whether this tag affects the font variant. More...
Glib::PropertyProxy< bool > | property_weight_set ()
| Whether this tag affects the font weight. More...
Glib::PropertyProxy_ReadOnly < bool > | property_weight_set () const
| Whether this tag affects the font weight. More...
Glib::PropertyProxy< bool > | property_stretch_set ()
| Whether this tag affects the font stretch. More...
Glib::PropertyProxy_ReadOnly < bool > | property_stretch_set () const
| Whether this tag affects the font stretch. More...
Glib::PropertyProxy< bool > | property_size_set ()
| Whether this tag affects the font size. More...
Glib::PropertyProxy_ReadOnly < bool > | property_size_set () const
| Whether this tag affects the font size. More...
Glib::PropertyProxy< bool > | property_scale_set ()
| Whether this tag scales the font size by a factor. More...
Glib::PropertyProxy_ReadOnly < bool > | property_scale_set () const
| Whether this tag scales the font size by a factor. More...
Glib::PropertyProxy< bool > | property_editable_set ()
| Whether this tag affects text editability. More...
Glib::PropertyProxy_ReadOnly < bool > | property_editable_set () const
| Whether this tag affects text editability. More...
Glib::PropertyProxy< bool > | property_strikethrough_set ()
| Whether this tag affects strikethrough. More...
Glib::PropertyProxy_ReadOnly < bool > | property_strikethrough_set () const
| Whether this tag affects strikethrough. More...
Glib::PropertyProxy< bool > | property_underline_set ()
| Whether this tag affects underlining. More...
Glib::PropertyProxy_ReadOnly < bool > | property_underline_set () const
| Whether this tag affects underlining. More...
Glib::PropertyProxy< bool > | property_rise_set ()
| Whether this tag affects the rise. More...
Glib::PropertyProxy_ReadOnly < bool > | property_rise_set () const
| Whether this tag affects the rise. More...
Glib::PropertyProxy< bool > | property_language_set ()
| Whether this tag affects the language the text is rendered as. More...
Glib::PropertyProxy_ReadOnly < bool > | property_language_set () const
| Whether this tag affects the language the text is rendered as. More...
Glib::PropertyProxy< bool > | property_ellipsize_set ()
| Whether this tag affects the ellipsize mode. More...
Glib::PropertyProxy_ReadOnly < bool > | property_ellipsize_set () const
| Whether this tag affects the ellipsize mode. More...
Glib::PropertyProxy< bool > | property_single_paragraph_mode ()
| Whether to keep all text in a single paragraph. More...
Glib::PropertyProxy_ReadOnly < bool > | property_single_paragraph_mode () const
| Whether to keep all text in a single paragraph. More...
Glib::PropertyProxy< bool > | property_align_set ()
| Whether this tag affects the alignment mode. More...
Glib::PropertyProxy_ReadOnly < bool > | property_align_set () const
| Whether this tag affects the alignment mode. More...
Glib::PropertyProxy < Glib::ustring > | property_placeholder_text ()
| Text rendered when an editable cell is empty. More...
Glib::PropertyProxy_ReadOnly < Glib::ustring > | property_placeholder_text () const
| Text rendered when an editable cell is empty. More...
Public Member Functions inherited from Gtk::CellRenderer
virtual | ~CellRenderer ()
GtkCellRenderer* | gobj ()
| Provides access to the underlying C GtkObject. More...
const GtkCellRenderer* | gobj () const
| Provides access to the underlying C GtkObject. More...
SizeRequestMode | get_request_mode () const
| Gets whether the cell renderer prefers a height-for-width layout or a width-for-height layout. More...
void | get_preferred_width (Widget& widget, int& minimum_width, int& natural_width) const
| Retreives a renderer's natural size when rendered to widget. More...
void | get_preferred_height_for_width (Widget& widget, int width, int& minimum_height, int& natural_height) const
| Retreives a cell renderers's minimum and natural height if it were rendered to widget with the specified width. More...
void | get_preferred_height (Widget& widget, int& minimum_height, int& natural_height) const
| Retreives a renderer's natural size when rendered to widget. More...
void | get_preferred_width_for_height (Widget& widget, int height, int& minimum_width, int& natural_width) const
| Retreives a cell renderers's minimum and natural width if it were rendered to widget with the specified height. More...
void | get_preferred_size (Widget& widget, Requisition& minimum_size, Requisition& natural_size) const
| Retrieves the minimum and natural size of a cell taking into account the widget's preference for height-for-width management. More...
void | get_aligned_area (Widget& widget, CellRendererState flags, const Gdk::Rectangle& cell_area, Gdk::Rectangle& aligned_area)
| Gets the aligned area used by cell inside cell_area. More...
void | render (const ::Cairo::RefPtr< ::Cairo::Context >& cr, Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, CellRendererState flags)
| Invokes the virtual render function of the Gtk::CellRenderer. More...
bool | activate (GdkEvent* event, Widget& widget, const Glib::ustring& path, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, CellRendererState flags)
| Passes an activate event to the cell renderer for possible processing. More...
CellEditable* | start_editing (GdkEvent* event, Widget& widget, const Glib::ustring& path, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, CellRendererState flags=CellRendererState(0))
| Passes an activate event to the cell renderer for possible processing. More...
void | set_fixed_size (int width, int height)
| Sets the renderer size to be explicit, independent of the properties set. More...
void | get_fixed_size (int& width, int& height) const
| Fills in width and height with the appropriate size of cell. More...
void | set_alignment (float xalign, float yalign)
| Sets the renderer's alignment within its available space. More...
void | get_alignment (float& xalign, float& yalign) const
| Fills in xalign and yalign with the appropriate values of cell. More...
void | set_padding (int xpad, int ypad)
| Sets the renderer's padding. More...
void | get_padding (int& xpad, int& ypad) const
| Fills in xpad and ypad with the appropriate values of cell. More...
void | set_visible (bool visible=true)
| Sets the cell renderer's visibility. More...
bool | get_visible () const
| Returns the cell renderer's visibility. More...
void | set_sensitive (bool sensitive=true)
| Sets the cell renderer's sensitivity. More...
bool | get_sensitive () const
| Returns the cell renderer's sensitivity. More...
bool | is_activatable () const
| Checks whether the cell renderer can do something when activated. More...
void | stop_editing (bool canceled=false)
| Informs the cell renderer that the editing is stopped. More...
StateFlags | get_state (Widget& widget, CellRendererState cell_state) const
| Translates the cell renderer state to Gtk::StateFlags, based on the cell renderer and widget sensitivity, and the given Gtk::CellRendererState. More...
StateFlags | get_state (CellRendererState cell_state) const
| Translates the cell renderer state to StateFlags, based on the cell renderer and the given CellRendererState. More...
Glib::SignalProxy0< void > | signal_editing_canceled ()
Glib::SignalProxy2< void, CellEditable*, const Glib::ustring& > | signal_editing_started ()
| Note that this signal does not work yet in gtkmm. More...
Glib::PropertyProxy < CellRendererMode > | property_mode ()
| Editable mode of the CellRenderer. More...
Glib::PropertyProxy_ReadOnly < CellRendererMode > | property_mode () const
| Editable mode of the CellRenderer. More...
Glib::PropertyProxy< bool > | property_visible ()
| Display the cell. More...
Glib::PropertyProxy_ReadOnly < bool > | property_visible () const
| Display the cell. More...
Glib::PropertyProxy< bool > | property_sensitive ()
| Display the cell sensitive. More...
Glib::PropertyProxy_ReadOnly < bool > | property_sensitive () const
| Display the cell sensitive. More...
Glib::PropertyProxy< float > | property_xalign ()
| The x-align. More...
Glib::PropertyProxy_ReadOnly < float > | property_xalign () const
| The x-align. More...
Glib::PropertyProxy< float > | property_yalign ()
| The y-align. More...
Glib::PropertyProxy_ReadOnly < float > | property_yalign () const
| The y-align. More...
Glib::PropertyProxy< unsigned int > | property_xpad ()
| The xpad. More...
Glib::PropertyProxy_ReadOnly < unsigned int > | property_xpad () const
| The xpad. More...
Glib::PropertyProxy< unsigned int > | property_ypad ()
| The ypad. More...
Glib::PropertyProxy_ReadOnly < unsigned int > | property_ypad () const
| The ypad. More...
Glib::PropertyProxy< int > | property_width ()
| The fixed width. More...
Glib::PropertyProxy_ReadOnly< int > | property_width () const
| The fixed width. More...
Glib::PropertyProxy< int > | property_height ()
| The fixed height. More...
Glib::PropertyProxy_ReadOnly< int > | property_height () const
| The fixed height. More...
Glib::PropertyProxy< bool > | property_is_expander ()
| Row has children. More...
Glib::PropertyProxy_ReadOnly < bool > | property_is_expander () const
| Row has children. More...
Glib::PropertyProxy< bool > | property_is_expanded ()
| Row is an expander row, and is expanded. More...
Glib::PropertyProxy_ReadOnly < bool > | property_is_expanded () const
| Row is an expander row, and is expanded. More...
Glib::PropertyProxy_WriteOnly < Glib::ustring > | property_cell_background ()
| Cell background color as a string. More...
Glib::PropertyProxy< Gdk::Color > | property_cell_background_gdk ()
| Cell background color as a GdkColor. More...
Glib::PropertyProxy_ReadOnly < Gdk::Color > | property_cell_background_gdk () const
| Cell background color as a GdkColor. More...
Glib::PropertyProxy< Gdk::RGBA > | property_cell_background_rgba ()
| Cell background color as a GdkRGBA. More...
Glib::PropertyProxy_ReadOnly < Gdk::RGBA > | property_cell_background_rgba () const
| Cell background color as a GdkRGBA. More...
Glib::PropertyProxy< bool > | property_cell_background_set ()
| Whether the cell background color is set. More...
Glib::PropertyProxy_ReadOnly < bool > | property_cell_background_set () const
| Whether the cell background color is set. More...
Glib::PropertyProxy_ReadOnly < bool > | property_editing () const
| Whether the cell renderer is currently in editing mode. More...
Public Member Functions inherited from Gtk::Object
virtual | ~Object ()
GObject* | gobj ()
| Provides access to the underlying C GtkObject. More...
const GObject* | gobj () const
| Provides access to the underlying C GtkObject. More...

## Static Public Member Functions

static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...
Static Public Member Functions inherited from Gtk::CellRendererText
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...
Static Public Member Functions inherited from Gtk::CellRenderer
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...

## Related Functions

(Note that these are not member functions.)
Gtk::CellRendererSpin* | wrap (GtkCellRendererSpin* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...
Related Functions inherited from Gtk::CellRendererText
Gtk::CellRendererText* | wrap (GtkCellRendererText* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...
Related Functions inherited from Gtk::CellRenderer
Gtk::CellRenderer* | wrap (GtkCellRenderer* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...

## Additional Inherited Members

Protected Member Functions inherited from Gtk::CellRendererText
virtual void | on_edited (const Glib::ustring& path, const Glib::ustring& new_text)
| This is a default handler for the signal signal_edited(). More...
void | edited (const Glib::ustring& path, const Glib::ustring& new_text)
| Emits the "edited" signal. More...

## Detailed Description

Renders a spin button in a cell.

Gtk::CellRendererSpin renders text in a cell like Gtk::CellRendererText, from which it is derived. But while Gtk::CellRendererText offers a simple entry to edit the text, Gtk::CellRendererSpin offers a Gtk::SpinButton widget. Of course, that means that the text must be parseable as a floating point number.

The range of the spinbutton is taken from the adjustment property of the cell renderer, which can be set explicitly or mapped to a column in the tree model, like all properties of cell renders. Gtk::CellRendererSpin also has properties for the climb rate and the number of digits to display. Other Gtk::SpinButton properties can be set in a handler for the start-editing signal.

Since gtkmm 2.12:

## Constructor & Destructor Documentation

virtual Gtk::CellRendererSpin::~CellRendererSpin | ( |  | ) |

virtual

Gtk::CellRendererSpin::CellRendererSpin | ( |  | ) |

## Member Function Documentation

static GType Gtk::CellRendererSpin::get_type | ( |  | ) |

static

Get the GType for this class, for use with the underlying GObject type system.

GtkCellRendererSpin* Gtk::CellRendererSpin::gobj | ( |  | ) |

inline

Provides access to the underlying C GtkObject.

const GtkCellRendererSpin* Gtk::CellRendererSpin::gobj | ( |  | ) | const

inline

Provides access to the underlying C GtkObject.

Glib::PropertyProxy< Glib::RefPtr<Adjustment> > Gtk::CellRendererSpin::property_adjustment | ( |  | ) |

The adjustment that holds the value of the spin button.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns
  A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Adjustment> > Gtk::CellRendererSpin::property_adjustment | ( |  | ) | const

The adjustment that holds the value of the spin button.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

Glib::PropertyProxy< double > Gtk::CellRendererSpin::property_climb_rate | ( |  | ) |

The acceleration rate when you hold down a button.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns
  A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly< double > Gtk::CellRendererSpin::property_climb_rate | ( |  | ) | const

The acceleration rate when you hold down a button.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

Glib::PropertyProxy< guint > Gtk::CellRendererSpin::property_digits | ( |  | ) |

The number of decimal places to display.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns
  A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly< guint > Gtk::CellRendererSpin::property_digits | ( |  | ) | const

The number of decimal places to display.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## Friends And Related Function Documentation

Gtk::CellRendererSpin* wrap | ( | GtkCellRendererSpin * | object,
|  | bool | take_copy = `false`
| ) |  |

related

A Glib::wrap() method for this object.

Parameters

  object | The C instance.
  take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns
  A C++ instance that wraps this C instance.

The documentation for this class was generated from the following file:

- gtkmm/cellrendererspin.h