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

Class extending BookStore that lists a reader's library books (excluding self-written works); it includes all the base book columns plus: More...

#include <creativity/gui/LibraryStore.hpp>

Classes

class  ColRec
 BookStore::ColRec extension to add reader-specific fields. More...
 

Public Member Functions

virtual 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::BookState >
const state::BookStatemember (const Path &path) const
 Gets the M Member from a Path. More...
 
const state::BookStatemember (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< LibraryStorecreate (std::shared_ptr< const state::State > state, eris::eris_id_t reader)
 Creates a LibraryStore (cast to a BookStore) for the given reader. More...
 
- Static Public Member Functions inherited from creativity::gui::BookStore
static Glib::RefPtr< BookStorecreate (std::shared_ptr< const state::State > state, eris::eris_id_t author=0)
 Interface class between a simulation's Books and a Gtk::TreeView. More...
 

Protected Member Functions

 LibraryStore (std::shared_ptr< const state::State > &&state, eris::eris_id_t reader)
 Protected constructor; this object should be constructed using create().
 
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::BookStore
 BookStore (std::shared_ptr< const state::State > &&state, eris::eris_id_t author)
 Protected constructor; this object should be constructed using create().
 
 BookStore (std::shared_ptr< const state::State > &&state, eris::eris_id_t author, std::unique_ptr< ColRec > &&cols)
 Protected constructor that overrides the default set of columns (for use by subclasses).
 
 BookStore (std::shared_ptr< const state::State > &&state, std::unique_ptr< ColRec > &&cols)
 Protected constructor that overrides the default set of columns but has no author parameter at all: members_ will not be populated (but should be populated by the subclass).
 
void initializeBooks ()
 Called during construction to populated members_ with either all books (if the author constructor parameter is 0) or an author's written books (if the author constructor parameter is non-zero). More...
 
virtual int get_n_columns_vfunc () const override
 Returns obj.columns->size(), the number of book model columns. More...
 
virtual GType get_column_type_vfunc (int index) const override
 Returns the column type of the given position. More...
 
- Protected Member Functions inherited from creativity::gui::MemberStore< state::BookState >
 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::BookState &a, const state::BookState &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

- Public Attributes inherited from creativity::gui::BookStore
std::unique_ptr< ColReccolumns {new ColRec}
 The columns of this BookStore. More...
 
- Static Protected Member Functions inherited from creativity::gui::MemberStore< state::BookState >
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::BookState >
const std::shared_ptr< const state::Statestate_
 The state this MemberStore represents.
 
std::vector< std::reference_wrapper< const state::BookState > > 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

Class extending BookStore that lists a reader's library books (excluding self-written works); it includes all the base book columns plus:

Member Function Documentation

§ appendColumnsTo()

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

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

Reimplemented from creativity::gui::BookStore.

§ create()

static Glib::RefPtr<LibraryStore> creativity::gui::LibraryStore::create ( std::shared_ptr< const state::State state,
eris::eris_id_t  reader 
)
static

Creates a LibraryStore (cast to a BookStore) for the given reader.

§ get_value_vfunc()

virtual void creativity::gui::LibraryStore::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.

Reimplemented from creativity::gui::BookStore.

§ set_sort_column_id_vfunc()

virtual void creativity::gui::LibraryStore::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).

Reimplemented from creativity::gui::BookStore.

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

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