creativity  v1.3.0
Agent-based model of creativity and piracy
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
creativity::gui::ReaderStore Class Reference

Gtk::TreeModel::ColumnRecord subclass for handling Reader information in the list of readers in the main GUI window. More...

#include <creativity/gui/ReaderStore.hpp>

Classes

class  ColRec
 ColumnRecord object for a ReaderStore. More...
 

Public Member Functions

void appendColumnsTo (Gtk::TreeView &v) const override
 Takes a Gtk::TreeView and adds this object's columns to it. More...
 
- Public Member Functions inherited from creativity::gui::MemberStore< state::ReaderState >
const state::ReaderStatemember (const Path &path) const
 Gets the M Member from a Path. More...
 
const state::ReaderStatemember (const iterator &iter) const
 Gets the M Member from an iterator. More...
 
Path find (eris::eris_id_t id, size_t hint=0) const
 Returns the Path to the member with the given id. More...
 
Path find (eris::eris_id_t id, const iterator &iter) const
 Returns the Path to the member with the given id. More...
 
Path find (eris::eris_id_t id, const Path &hint) const
 Returns the Path to the member with the given id. More...
 

Static Public Member Functions

static Glib::RefPtr< ReaderStorecreate (std::shared_ptr< const state::State > state)
 Interface class between a simulation state's Reader information and a Gtk::TreeView. More...
 

Public Attributes

ColRec columns
 The columns of this ReaderStore. More...
 

Protected Member Functions

 ReaderStore (std::shared_ptr< const state::State > &&state)
 Protected constructor; this object should be constructed using create().
 
virtual GType get_column_type_vfunc (int index) const override
 Returns the column type of the given position. More...
 
virtual int get_n_columns_vfunc () const override
 Returns obj.columns.size(), the number of model columns. More...
 
virtual void get_value_vfunc (const iterator &iter, int column, Glib::ValueBase &value) const override
 Accesses a column value. More...
 
virtual void set_sort_column_id_vfunc (int sort_column_id, Gtk::SortType order) override
 Sets the model sort column and sort order. More...
 
- Protected Member Functions inherited from creativity::gui::MemberStore< state::ReaderState >
 MemberStore (std::shared_ptr< const state::State > &&state)
 Protected constructor; this object should be constructed from a subclass, typically via the subclass's static create() method. More...
 
virtual Gtk::TreeModelFlags get_flags_vfunc () const override
 Returns Gtk::TreeModel flags (specifically, the LIST_ONLY flag). More...
 
virtual bool get_iter_vfunc (const Path &path, iterator &iter) const override
 Converts a path to an iterator. More...
 
virtual bool iter_next_vfunc (const iterator &iter, iterator &iter_next) const override
 Takes an iterator, returns an iterator to the next item. More...
 
virtual bool iter_children_vfunc (const iterator &, iterator &) const override
 Returns false always: MemberStore elements cannot have children.
 
virtual bool iter_parent_vfunc (const iterator &, iterator &) const override
 Returns false always: MemberStore elemenets cannot have children/parents.
 
virtual bool iter_nth_child_vfunc (const iterator &, int, iterator &) const override
 Returns false always: MemberStore elements cannot have children.
 
virtual bool iter_has_child_vfunc (const iterator &) const override
 Returns false always: MemberStore elements cannot have children.
 
virtual int iter_n_children_vfunc (const iterator &) const override
 Returns 0 always: MemberStore elements have no children.
 
virtual bool iter_nth_root_child_vfunc (int n, iterator &iter) const override
 Obtains an iterator to the nth reader. More...
 
virtual int iter_n_root_children_vfunc () const override
 Returns the number of readers stored in this model.
 
virtual Path get_path_vfunc (const iterator &iter) const override
 Converts iterator iter into a Path.
 
virtual bool get_sort_column_id_vfunc (int *sort_column_id, Gtk::SortType *order) const override
 Accesses the current sort column and order. More...
 
virtual void sort_members (std::function< bool(const state::ReaderState &a, const state::ReaderState &b)> &compare, int sort_column_id, Gtk::SortType order)
 Called by subclasses, typically in set_sort_column_id_vfunc, to resort the current list of members using the given function. More...
 
void appendCol (Gtk::TreeView &v, const std::string &label, T &col, int width, bool sortable=true) const
 Appends a single column to the given view using the given label, width, and sortability. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from creativity::gui::MemberStore< state::ReaderState >
static void copy_value_ (Glib::ValueBase &valueobj, const T &val)
 Helper method for the crap needed in get_value_vfunc(): creates a Glib::Value of the right type and copies it into the given Glib::ValueBase. More...
 
- Protected Attributes inherited from creativity::gui::MemberStore< state::ReaderState >
const std::shared_ptr< const state::Statestate_
 The state this MemberStore represents.
 
std::vector< std::reference_wrapper< const state::ReaderState > > members_
 The vector of members. Subclasses need to add all member references to this vector.
 
int stamp_
 Tracks model changes by being incremented whenever such a change occurs.
 

Detailed Description

Gtk::TreeModel::ColumnRecord subclass for handling Reader information in the list of readers in the main GUI window.

Member Function Documentation

§ appendColumnsTo()

void creativity::gui::ReaderStore::appendColumnsTo ( Gtk::TreeView &  v) const
overridevirtual

Takes a Gtk::TreeView and adds this object's columns to it.

Implements creativity::gui::MemberStore< state::ReaderState >.

§ create()

static Glib::RefPtr<ReaderStore> creativity::gui::ReaderStore::create ( std::shared_ptr< const state::State state)
static

Interface class between a simulation state's Reader information and a Gtk::TreeView.

This exposes various reader-specific columns; see ColRec for details.

§ get_column_type_vfunc()

virtual GType creativity::gui::ReaderStore::get_column_type_vfunc ( int  index) const
overrideprotectedvirtual

Returns the column type of the given position.

This is typically invoked via get_column_type, itself given a column member of the .columns ColRec object.

See also
ReaderStore::ColRec

Implements creativity::gui::MemberStore< state::ReaderState >.

§ get_n_columns_vfunc()

virtual int creativity::gui::ReaderStore::get_n_columns_vfunc ( ) const
overrideprotectedvirtual

Returns obj.columns.size(), the number of model columns.

Implements creativity::gui::MemberStore< state::ReaderState >.

§ get_value_vfunc()

virtual void creativity::gui::ReaderStore::get_value_vfunc ( const iterator &  iter,
int  column,
Glib::ValueBase &  value 
) const
overrideprotectedvirtual

Accesses a column value.

Parameters
itera valid iterator referencing the row to access
columnthe index of the column to access
valuea Glib::Value<TYPE> object (where TYPE is the appropriate type for the requested column) in which to store the value.

Implements creativity::gui::MemberStore< state::ReaderState >.

§ set_sort_column_id_vfunc()

virtual void creativity::gui::ReaderStore::set_sort_column_id_vfunc ( int  sort_column_id,
Gtk::SortType  order 
)
overrideprotectedvirtual

Sets the model sort column and sort order.

If the sort_column and order differ from the current values, the model data is resorted. If resorting occurs, the sort_column_changed and rows_reordered signals will fire.

This uses a stable sort: elements that are equal under the new sort column will preserve their current ordering. Note that this means that sorting by the current column but in the opposite order will not reverse the ordering of equal-value elements.

Parameters
sort_column_idthe index of the new sort column
orderthe new sort order (Gtk::SORT_ASCENDING or Gtk::SORT_DESCENDING).

Implements creativity::gui::MemberStore< state::ReaderState >.

Member Data Documentation

§ columns

ColRec creativity::gui::ReaderStore::columns

The columns of this ReaderStore.

For example, to access the utility column, use readerstore.columns.u.

Inheritance diagram for creativity::gui::ReaderStore:
[legend]
Collaboration diagram for creativity::gui::ReaderStore:
[legend]

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