Public Member Functions | Protected Member Functions | Related Functions

Gtk::CellArea Class Reference

An abstract base class for laying out CellRenderers. More...

Inheritance diagram for Gtk::CellArea:
Inheritance graph
[legend]
Collaboration diagram for Gtk::CellArea:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual ~CellArea ()
GtkCellArea* gobj ()
 Provides access to the underlying C GObject.
const GtkCellArea* gobj () const
 Provides access to the underlying C GObject.
GtkCellArea* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
void add (CellRenderer& renderer)
void remove (CellRenderer& renderer)
bool has_renderer (CellRenderer& renderer)
int event (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, GdkEvent* event, const Gdk::Rectangle& cell_area, GtkCellRendererState flags)
void render (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, const Cairo::RefPtr< Cairo::Context >& cr, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, CellRendererState flags, bool paint_focus)
void get_cell_allocation (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, CellRenderer& renderer, const Gdk::Rectangle& cell_area, Gdk::Rectangle& allocation)
CellRendererget_cell_at_position (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, const Gdk::Rectangle& cell_area, int x, int y, Gdk::Rectangle& alloc_area)
const CellRendererget_cell_at_position (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, const Gdk::Rectangle& cell_area, int x, int y, Gdk::Rectangle& alloc_area) const
Glib::RefPtr< CellAreaContextcreate_context () const
Glib::RefPtr< CellAreaContextcopy_context (const Glib::RefPtr< const CellAreaContext >& context)
SizeRequestMode get_request_mode () const
void get_preferred_width (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, int& minimum_width, int& natural_width)
void get_preferred_height_for_width (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, int width, int& minimum_height, int& natural_height)
void get_preferred_height (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, int& minimum_height, int& natural_height)
void get_preferred_width_for_height (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, int height, int& minimum_width, int& natural_width)
Glib::ustring get_current_path_string () const
void apply_attributes (const Glib::RefPtr< TreeModel >& tree_model, const TreeModel::iterator& iter, bool is_expander, bool is_expanded)
void attribute_connect (CellRenderer& renderer, const Glib::ustring& attribute, int column)
void attribute_disconnect (CellRenderer& renderer, const Glib::ustring& attribute)
void cell_set_property (CellRenderer& renderer, const Glib::ustring& property_name, const Glib::ValueBase&value)
void cell_get_property (CellRenderer& renderer, const Glib::ustring& property_name, Glib::ValueBase&value)
bool is_activatable () const
bool activate (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, const Gdk::Rectangle& cell_area, CellRendererState flags, bool edit_only)
bool focus (DirectionType direction)
void set_focus_cell (CellRenderer& renderer)
CellRendererget_focus_cell ()
const CellRendererget_focus_cell () const
void add_focus_sibling (CellRenderer& renderer, CellRenderer& sibling)
void remove_focus_sibling (CellRenderer& renderer, CellRenderer& sibling)
bool is_focus_sibling (CellRenderer& renderer, CellRenderer& sibling)
CellRendererget_focus_from_sibling (CellRenderer& renderer)
const CellRendererget_focus_from_sibling (CellRenderer& renderer) const
CellRendererget_edited_cell ()
const CellRendererget_edited_cell () const
CellEditableget_edit_widget ()
const CellEditableget_edit_widget () const
bool activate_cell (Widget& widget, CellRenderer& renderer, GdkEvent* event, const Gdk::Rectangle& cell_area, CellRendererState flags)
void stop_editing (bool canceled)
void inner_cell_area (Widget& widget, const Gdk::Rectangle& cell_area, Gdk::Rectangle& inner_area)
void request_renderer (CellRenderer& renderer, Orientation orientation, Widget& widget, int for_size, int& minimum_size, int& natural_size)

Protected Member Functions

 CellArea ()
virtual SizeRequestMode get_request_mode_vfunc () const
virtual void get_preferred_width_vfunc (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, int& minimum_width, int& natural_width)
virtual void get_preferred_height_for_width_vfunc (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, int width, int& minimum_height, int& natural_height)
virtual void get_preferred_height_vfunc (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, int& minimum_height, int& natural_height)
virtual void get_preferred_width_for_height_vfunc (const Glib::RefPtr< CellAreaContext >& context, Widget& widget, int height, int& minimum_width, int& natural_width)

Related Functions

(Note that these are not member functions.)


Glib::RefPtr< Gtk::CellAreawrap (GtkCellArea* object, bool take_copy=false)
 A Glib::wrap() method for this object.

Detailed Description

An abstract base class for laying out CellRenderers.

This is an abstract base class for CellLayout widgets (also referred to as "layouting widgets") to interface with an arbitrary number of CellRenderers and interact with the user for a given TreeModel row.

The cell area handles events, focus navigation, drawing and size requests and allocations for a given row of data.

Usually users dont have to interact with the CellArea directly unless they are implementing a cell layouting widget themselves.

Requesting area sizes

As outlined in Gtk::Widget's geometry management description, GTK+ uses a height-for-width geometry management system to compute the sizes of widgets and user interfaces. CellArea uses the same semantics to calculate the size of an area for an arbitrary number of TreeModel rows.

When requesting the size of a cell area one needs to calculate the size for a handful of rows, and this will be done differently by different layouting widgets. For instance a TreeViewColumn always lines up the areas from top to bottom while an IconView, on the other hand, might enforce that all areas received the same width and wrap the areas around, requesting height for more cell areas when allocated less width.

It's also important for areas to maintain some cell alignments with areas rendered for adjacent rows (cells can appear "columnized" inside an area even when the size of cells are different in each row). For this reason the CellArea uses a CellAreaContext object to store the alignments and sizes along the way (as well as the overall largest minimum and natural size for all the rows which have been calculated with the said context).

The CellAreaContext is an opaque object specific to the CellArea which created it (see CellArea::create_context()). The owning cell-layouting widget can create as many contexts as it wishes to calculate sizes of rows which should receive the same size in at least one orientation (horizontally or vertically). However, it's important that the same CellAreaContext which was used to request the sizes for a given TreeModel row be used when rendering or processing events for that row.

Cell Properties

The CellArea introduces cell propertie for CellRenderers in very much the same way that Gtk::Container introduces child properties for Widgets. This provides some general interfaces for defining the relationship cell areas have with their cells. For instance in a CellAreaBox a cell might "expand" and receive extra space when the area is allocated more than its full natural request, or a cell might be configured to "align" with adjacent rows which were requested and rendered with the same CellAreaContext.

To set the value of a cell property, use cell_set_property(). To obtain the value of a cell property, use cell_get_property().

Since gtkmm 3.0:

Constructor & Destructor Documentation

virtual Gtk::CellArea::~CellArea (  ) [virtual]
Gtk::CellArea::CellArea (  ) [protected]

Member Function Documentation

bool Gtk::CellArea::activate ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
const Gdk::Rectangle cell_area,
CellRendererState  flags,
bool  edit_only 
)
bool Gtk::CellArea::activate_cell ( Widget widget,
CellRenderer renderer,
GdkEvent *  event,
const Gdk::Rectangle cell_area,
CellRendererState  flags 
)
void Gtk::CellArea::add ( CellRenderer renderer )
void Gtk::CellArea::add_focus_sibling ( CellRenderer renderer,
CellRenderer sibling 
)
void Gtk::CellArea::apply_attributes ( const Glib::RefPtr< TreeModel >&  tree_model,
const TreeModel::iterator iter,
bool  is_expander,
bool  is_expanded 
)
void Gtk::CellArea::attribute_connect ( CellRenderer renderer,
const Glib::ustring attribute,
int  column 
)
void Gtk::CellArea::attribute_disconnect ( CellRenderer renderer,
const Glib::ustring attribute 
)
void Gtk::CellArea::cell_get_property ( CellRenderer renderer,
const Glib::ustring property_name,
Glib::ValueBase value 
)
void Gtk::CellArea::cell_set_property ( CellRenderer renderer,
const Glib::ustring property_name,
const Glib::ValueBase value 
)
Glib::RefPtr<CellAreaContext> Gtk::CellArea::copy_context ( const Glib::RefPtr< const CellAreaContext >&  context )
Glib::RefPtr<CellAreaContext> Gtk::CellArea::create_context (  ) const
int Gtk::CellArea::event ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
GdkEvent *  event,
const Gdk::Rectangle cell_area,
GtkCellRendererState  flags 
)
bool Gtk::CellArea::focus ( DirectionType  direction )
void Gtk::CellArea::get_cell_allocation ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
CellRenderer renderer,
const Gdk::Rectangle cell_area,
Gdk::Rectangle allocation 
)
CellRenderer* Gtk::CellArea::get_cell_at_position ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
const Gdk::Rectangle cell_area,
int  x,
int  y,
Gdk::Rectangle alloc_area 
)
const CellRenderer* Gtk::CellArea::get_cell_at_position ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
const Gdk::Rectangle cell_area,
int  x,
int  y,
Gdk::Rectangle alloc_area 
) const
Glib::ustring Gtk::CellArea::get_current_path_string (  ) const
CellEditable* Gtk::CellArea::get_edit_widget (  )
const CellEditable* Gtk::CellArea::get_edit_widget (  ) const
const CellRenderer* Gtk::CellArea::get_edited_cell (  ) const
CellRenderer* Gtk::CellArea::get_edited_cell (  )
CellRenderer* Gtk::CellArea::get_focus_cell (  )
const CellRenderer* Gtk::CellArea::get_focus_cell (  ) const
CellRenderer* Gtk::CellArea::get_focus_from_sibling ( CellRenderer renderer )
const CellRenderer* Gtk::CellArea::get_focus_from_sibling ( CellRenderer renderer ) const
void Gtk::CellArea::get_preferred_height ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
int &  minimum_height,
int &  natural_height 
)
void Gtk::CellArea::get_preferred_height_for_width ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
int  width,
int &  minimum_height,
int &  natural_height 
)
virtual void Gtk::CellArea::get_preferred_height_for_width_vfunc ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
int  width,
int &  minimum_height,
int &  natural_height 
) [protected, virtual]
virtual void Gtk::CellArea::get_preferred_height_vfunc ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
int &  minimum_height,
int &  natural_height 
) [protected, virtual]
void Gtk::CellArea::get_preferred_width ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
int &  minimum_width,
int &  natural_width 
)
void Gtk::CellArea::get_preferred_width_for_height ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
int  height,
int &  minimum_width,
int &  natural_width 
)
virtual void Gtk::CellArea::get_preferred_width_for_height_vfunc ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
int  height,
int &  minimum_width,
int &  natural_width 
) [protected, virtual]
virtual void Gtk::CellArea::get_preferred_width_vfunc ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
int &  minimum_width,
int &  natural_width 
) [protected, virtual]
SizeRequestMode Gtk::CellArea::get_request_mode (  ) const
virtual SizeRequestMode Gtk::CellArea::get_request_mode_vfunc (  ) const [protected, virtual]
const GtkCellArea* Gtk::CellArea::gobj (  ) const [inline]

Provides access to the underlying C GObject.

Reimplemented from Gtk::Buildable.

Reimplemented in Gtk::CellAreaBox.

GtkCellArea* Gtk::CellArea::gobj (  ) [inline]

Provides access to the underlying C GObject.

Reimplemented from Gtk::Buildable.

Reimplemented in Gtk::CellAreaBox.

GtkCellArea* Gtk::CellArea::gobj_copy (  )

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

Reimplemented in Gtk::CellAreaBox.

bool Gtk::CellArea::has_renderer ( CellRenderer renderer )
void Gtk::CellArea::inner_cell_area ( Widget widget,
const Gdk::Rectangle cell_area,
Gdk::Rectangle inner_area 
)
bool Gtk::CellArea::is_activatable (  ) const
bool Gtk::CellArea::is_focus_sibling ( CellRenderer renderer,
CellRenderer sibling 
)
void Gtk::CellArea::remove ( CellRenderer renderer )
void Gtk::CellArea::remove_focus_sibling ( CellRenderer renderer,
CellRenderer sibling 
)
void Gtk::CellArea::render ( const Glib::RefPtr< CellAreaContext >&  context,
Widget widget,
const Cairo::RefPtr< Cairo::Context > &  cr,
const Gdk::Rectangle background_area,
const Gdk::Rectangle cell_area,
CellRendererState  flags,
bool  paint_focus 
)
void Gtk::CellArea::request_renderer ( CellRenderer renderer,
Orientation  orientation,
Widget widget,
int  for_size,
int &  minimum_size,
int &  natural_size 
)
void Gtk::CellArea::set_focus_cell ( CellRenderer renderer )
void Gtk::CellArea::stop_editing ( bool  canceled )

Friends And Related Function Documentation

Glib::RefPtr< Gtk::CellArea > wrap ( GtkCellArea *  object,
bool  take_copy = false 
) [related]

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

Parameters:
objectThe C instance.
take_copyFalse 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: