// -*- c++ -*- // Generated by gtkmmproc -- DO NOT MODIFY! #ifndef _GTKMM_TREEVIEWCOLUMN_H #define _GTKMM_TREEVIEWCOLUMN_H #include /* $Id$ */ /* Copyright(C) 2002 The gtkmm Development Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or(at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include #include #include #include #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef struct _GtkTreeViewColumn GtkTreeViewColumn; typedef struct _GtkTreeViewColumnClass GtkTreeViewColumnClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gtk { class TreeViewColumn_Class; } // namespace Gtk namespace Gtk { /** @addtogroup gtkmmEnums Enums and Flags */ /** * @ingroup gtkmmEnums */ enum TreeViewColumnSizing { TREE_VIEW_COLUMN_GROW_ONLY, TREE_VIEW_COLUMN_AUTOSIZE, TREE_VIEW_COLUMN_FIXED }; } // namespace Gtk #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Glib { template <> class Value : public Glib::Value_Enum { public: static GType value_type() G_GNUC_CONST; }; } // namespace Glib #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gtk { // We use GTKMM_API here because gcc needs the extra help on win32 , even // when using --export-all and auto-import. // See http://bugzilla.gnome.org/show_bug.cgi?id=309030. //TODO: This should derive+implement from CellLayout when we can break ABI. /** Typedefed as Gtk::TreeView::Column. * This is a visible column in a Gtk::TreeView widget. It determines the geometry, type. * * @ingroup TreeView */ class GTKMM_API TreeViewColumn : public Gtk::Object { public: #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef TreeViewColumn CppObjectType; typedef TreeViewColumn_Class CppClassType; typedef GtkTreeViewColumn BaseObjectType; typedef GtkTreeViewColumnClass BaseClassType; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ virtual ~TreeViewColumn(); #ifndef DOXYGEN_SHOULD_SKIP_THIS private: friend class TreeViewColumn_Class; static CppClassType treeviewcolumn_class_; // noncopyable TreeViewColumn(const TreeViewColumn&); TreeViewColumn& operator=(const TreeViewColumn&); protected: explicit TreeViewColumn(const Glib::ConstructParams& construct_params); explicit TreeViewColumn(GtkTreeViewColumn* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_type() G_GNUC_CONST; static GType get_base_type() G_GNUC_CONST; #endif ///Provides access to the underlying C GtkObject. GtkTreeViewColumn* gobj() { return reinterpret_cast(gobject_); } ///Provides access to the underlying C GtkObject. const GtkTreeViewColumn* gobj() const { return reinterpret_cast(gobject_); } public: //C++ methods used to invoke GTK+ virtual functions: #ifdef GLIBMM_VFUNCS_ENABLED #endif //GLIBMM_VFUNCS_ENABLED protected: //GTK+ Virtual Functions (override these to change behaviour): #ifdef GLIBMM_VFUNCS_ENABLED #endif //GLIBMM_VFUNCS_ENABLED //Default Signal Handlers:: #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED virtual void on_clicked(); #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED private: public: typedef TreeViewColumn Column; TreeViewColumn(); explicit TreeViewColumn(const Glib::ustring& title); TreeViewColumn(const Glib::ustring& title, CellRenderer& cell); /** Create a default view column for the given model column type. */ template TreeViewColumn(const Glib::ustring& title, const TreeModelColumn& column); /** Packs the @a cell into the beginning of the column. If @a expand is false, then * the @a cell is allocated no more space than it needs. Any unused space is divided * evenly between cells for which @a expand is true. * @param cell The Gtk::CellRenderer. * @param expand true if @a cell is to be given extra space allocated to @a tree_column . */ void pack_start(CellRenderer& cell, bool expand = true); /** Adds the @a cell to end of the column. If @a expand is false, then the @a cell * is allocated no more space than it needs. Any unused space is divided * evenly between cells for which @a expand is true. * @param cell The Gtk::CellRenderer. * @param expand true if @a cell is to be given extra space allocated to @a tree_column . */ void pack_end(CellRenderer& cell, bool expand = true); /** Creates an appropriate CellRenderer for the @a column, and packs that cell into the beginning of the column. * If @a expand is false, then * the cell is allocated no more space than it needs. Any unused space is divided * evenly between cells for which @a expand is true. * * You can use get_first_cell_renderer() or get_cell_renderers() to access the generated CellRenderer. * * @param column The model column that will be rendered by the view cell. * @param expand true if the cell is to be given extra space allocated to the view column. */ template void pack_start(const TreeModelColumn& column, bool expand = true); /** Creates an appropriate CellRenderer for the @a column, and packs that cell at the end of the column. * If @a expand is false, then * the cell is allocated no more space than it needs. Any unused space is divided * evenly between cells for which @a expand is true. * * You can use get_first_cell_renderer() or get_cell_renderers() to access the generated CellRenderer. * * @param column The model column that will be rendered by the view cell. * @param expand true if the cell is to be given extra space allocated to the view column. */ template void pack_end(const TreeModelColumn& column, bool expand = true); /** Unsets all the mappings on all renderers on the @a tree_column . */ void clear(); /** Gets the CellRenderer for the column. * You should dynamic_cast<> to the expected derived CellRenderer type. * This assumes that the TreeViewColumn contains only one CellRenderer. */ CellRenderer* get_first_cell_renderer(); /** Gets the CellRenderer for the column. * You should dynamic_cast<> to the expected derived CellRenderer type. * This assumes that the TreeViewColumn contains only one CellRenderer. */ const CellRenderer* get_first_cell_renderer() const; /** Returns a list of all the cell renderers in the column, * in no particular order. * @return A list of Gtk::CellRenderers. */ Glib::ListHandle get_cell_renderers(); /** Returns a list of all the cell renderers in the column, * in no particular order. * @return A list of Gtk::CellRenderers. */ Glib::ListHandle get_cell_renderers() const; /** Adds an attribute mapping to the list in @a tree_column . The @a column is the * column of the model to get a value from, and the @a attribute is the * parameter on @a cell_renderer to be set from the value. So for example * if column 2 of the model contains strings, you could have the * "text" attribute of a Gtk::CellRendererText get its values from * column 2. * @param cell_renderer The Gtk::CellRenderer to set attributes on. * @param attribute An attribute on the renderer. * @param column The column position on the model to get the attribute from. */ void add_attribute(CellRenderer& cell_renderer, const Glib::ustring& attribute, int column); #ifdef GLIBMM_PROPERTIES_ENABLED void add_attribute(const Glib::PropertyProxy_Base& property, const TreeModelColumnBase& column); #endif void add_attribute(Gtk::CellRenderer& cell, const Glib::ustring& property_name, const TreeModelColumnBase& column); /** Associate a view CellRenderer with a model column, so that the CellRenderer renders the data in the model column. * * @param renderer The view cell renderer which will render the model column. * @param column The model column to be renderered by this view. */ void set_renderer(Gtk::CellRenderer& renderer, const TreeModelColumnBase& column); // _WRAP_METHOD(void set_attributes(CellRenderer& cell_renderer, ...), ) /** For instance, * void on_cell_data(Gtk::CellRenderer* cell, const Gtk::TreeModel::iterator& iter); * * This function is used instead of the standard attributes mapping for setting the column value, and should set the * value of the column's cell renderer as appropriate. */ typedef sigc::slot SlotCellData; /** Sets the slot callback to use for the column. * This callback function is used instead of the standard attributes mapping for setting the column value, and should set the * value of the column's cell renderer as appropriate. * * See also unset_cell_data_func(). * * @param cell_renderer A Gtk::CellRenderer * @param slot The callback slot to use. Create this with sigc::mem_fun(), or sigc::ptr_fun(). */ void set_cell_data_func(CellRenderer& cell_renderer, const SlotCellData& slot); /** Removes a previously set callback slot. See set_cell_data_func(). */ void unset_cell_data_func(CellRenderer& cell_renderer); /** Clears all existing attributes previously set with * set_attributes(). * @param cell_renderer A Gtk::CellRenderer to clear the attribute mapping on. */ void clear_attributes(CellRenderer& cell_renderer); /** Sets the spacing field of @a tree_column , which is the number of pixels to * place between cell renderers packed into it. * @param spacing Distance between cell renderers in pixels. */ void set_spacing(int spacing); /** Returns the spacing of @a tree_column . * @return The spacing of @a tree_column . */ int get_spacing() const; /** Sets the visibility of @a tree_column . * @param visible true if the @a tree_column is visible. */ void set_visible(bool visible = true); /** Returns true if @a tree_column is visible. * @return Whether the column is visible or not. If it is visible, then * the tree will show the column. */ bool get_visible() const; /** If @a resizable is true, then the user can explicitly resize the column by * grabbing the outer edge of the column button. If resizable is true and * sizing mode of the column is Gtk::TREE_VIEW_COLUMN_AUTOSIZE, then the sizing * mode is changed to Gtk::TREE_VIEW_COLUMN_GROW_ONLY. * @param resizable true, if the column can be resized. */ void set_resizable(bool resizable = true); /** Returns true if the @a tree_column can be resized by the end user. * @return true, if the @a tree_column can be resized. */ bool get_resizable() const; /** Sets the growth behavior of @a tree_column to @a type . * @param type The Gtk::TreeViewColumnSizing. */ void set_sizing(TreeViewColumnSizing type); /** Returns the current type of @a tree_column . * @return The type of @a tree_column . */ TreeViewColumnSizing get_sizing(); /** Returns the current size of @a tree_column in pixels. * @return The current width of @a tree_column . */ int get_width() const; /** Gets the fixed width of the column. This value is only meaning may not be * the actual width of the column on the screen, just what is requested. * @return The fixed width of the column. */ int get_fixed_width() const; /** Sets the size of the column in pixels. This is meaningful only if the sizing * type is Gtk::TREE_VIEW_COLUMN_FIXED. The size of the column is clamped to * the min/max width for the column. Please note that the min/max width of the * column doesn't actually affect the "fixed_width" property of the widget, just * the actual size when displayed. * @param fixed_width The size to set @a tree_column to. Must be greater than 0. */ void set_fixed_width(int fixed_width); /** Sets the minimum width of the @a tree_column . If @a min_width is -1, then the * minimum width is unset. * @param min_width The minimum width of the column in pixels, or -1. */ void set_min_width(int min_width); /** Returns the minimum width in pixels of the @a tree_column , or -1 if no minimum * width is set. * @return The minimum width of the @a tree_column . */ int get_min_width() const; /** Sets the maximum width of the @a tree_column . If @a max_width is -1, then the * maximum width is unset. Note, the column can actually be wider than max * width if it's the last column in a view. In this case, the column expands to * fill any extra space. * @param max_width The maximum width of the column in pixels, or -1. */ void set_max_width(int max_width); /** Returns the maximum width in pixels of the @a tree_column , or -1 if no maximum * width is set. * @return The maximum width of the @a tree_column . */ int get_max_width() const; /** Emits the "clicked" signal on the column. This function will only work if * @a tree_column is clickable. */ void clicked(); /** Sets the title of the @a tree_column . If a custom widget has been set, then * this value is ignored. * @param title The title of the @a tree_column . */ void set_title(const Glib::ustring& title); /** Returns the title of the widget. * @return The title of the column. This string should not be * modified or freed. */ Glib::ustring get_title() const; /** Sets the column to take available extra space. This space is shared equally * amongst all columns that have the expand set to true. If no column has this * option set, then the last column gets all extra space. By default, every * column is created with this false. * * @newin2p4 * @param expand true if the column should take available extra space, false if not. */ void set_expand(bool expand = true); /** Return true if the column expands to take any available space. * @return true, if the column expands * * @newin2p4. */ bool get_expand() const; /** Sets the header to be active if @a active is true. When the header is active, * then it can take keyboard focus, and can be clicked. * @param clickable true if the header is active. */ void set_clickable(bool clickable = true); /** Returns true if the user can click on the header for the column. * @return true if user can click the column header. */ bool get_clickable() const; /** Sets the widget in the header to be @a widget . If widget is 0, then the * header button is set with a Gtk::Label set to the title of @a tree_column . * @param widget A child Gtk::Widget, or 0. */ void set_widget(Gtk::Widget& widget); /** Returns the Gtk::Widget in the button on the column header. If a custom * widget has not been set then 0 is returned. * @return The Gtk::Widget in the column header, or 0. */ Widget* get_widget(); /** Returns the Gtk::Widget in the button on the column header. If a custom * widget has not been set then 0 is returned. * @return The Gtk::Widget in the column header, or 0. */ const Widget* get_widget() const; /** Sets the alignment of the title or custom widget inside the column header. * The alignment determines its location inside the button -- 0.0 for left, 0.5 * for center, 1.0 for right. * @param xalign The alignment, which is between [0.0 and 1.0] inclusive. */ void set_alignment(float xalign); /** Sets the alignment of the title or custom widget inside the column header. * The alignment determines its location inside the button -- 0.0 for left, 0.5 * for center, 1.0 for right. * @param xalign The alignment, which is between [0.0 and 1.0] inclusive. */ void set_alignment(AlignmentEnum xalign); /** Returns the current x alignment of @a tree_column . This value can range * between 0.0 and 1.0. * @return The current alignent of @a tree_column . */ float get_alignment() const; /** If @a reorderable is true, then the column can be reordered by the end user * dragging the header. * @param reorderable true, if the column can be reordered. */ void set_reorderable(bool reorderable = true); /** Returns true if the @a tree_column can be reordered by the user. * @return true if the @a tree_column can be reordered by the user. */ bool get_reorderable() const; /** Sets the logical @a sort_column_id that this column sorts on when this column * is selected for sorting. Doing so makes the column header clickable. * @param sort_column_id The @a sort_column_id of the model to sort on. */ void set_sort_column(const TreeModelColumnBase& sort_column_id); /** Sets the logical @a sort_column_id that this column sorts on when this column * is selected for sorting. Doing so makes the column header clickable. * @param sort_column_id The @a sort_column_id of the model to sort on. */ void set_sort_column(int sort_column_id); #ifndef GTKMM_DISABLE_DEPRECATED /** @deprecated Use set_sort_column() instead. */ void set_sort_column_id(const TreeModelColumnBase& sort_column_id); /** @deprecated Use set_sort_column() instead. */ void set_sort_column_id(int sort_column_id); #endif // GTKMM_DISABLE_DEPRECATED /** Gets the logical @a sort_column_id that the model sorts on when this * column is selected for sorting. * See set_sort_column_id(). * @return The current @a sort_column_id for this column, or -1 if * this column can't be used for sorting. */ int get_sort_column_id() const; /** Call this function with a @a setting of true to display an arrow in * the header button indicating the column is sorted. Call * set_sort_order() to change the direction of * the arrow. * @param setting true to display an indicator that the column is sorted. */ void set_sort_indicator(bool setting); /** Gets the value set by set_sort_indicator(). * @return Whether the sort indicator arrow is displayed. */ bool get_sort_indicator() const; /** Changes the appearance of the sort indicator. * * This does not actually sort the model. Use * set_sort_column_id() if you want automatic sorting * support. This function is primarily for custom sorting behavior, and should * be used in conjunction with gtk_tree_sortable_set_sort_column() to do * that. For custom models, the mechanism will vary. * * The sort indicator changes direction to indicate normal sort or reverse sort. * Note that you must have the sort indicator enabled to see anything when * calling this function; see set_sort_indicator(). * @param order Sort order that the sort indicator should indicate. */ void set_sort_order(SortType order); /** Gets the value set by set_sort_order(). * @return The sort order the sort indicator is indicating. */ SortType get_sort_order() const; /** Sets the cell renderer based on the @a tree_model and @a iter . That is, for * every attribute mapping in @a tree_column , it will get a value from the set * column on the @a iter , and use that value to set the attribute on the cell * renderer. This is used primarily by the Gtk::TreeView. * @param tree_model The Gtk::TreeModel to to get the cell renderers attributes from. * @param iter The Gtk::TreeIter to to get the cell renderer's attributes from. * @param is_expander true, if the row has children. * @param is_expanded true, if the row has visible children. */ void cell_set_cell_data(const Glib::RefPtr& tree_model, const TreeModel::iterator& iter, bool is_expander, bool is_expanded); /** Obtains the width and height needed to render the column. This is used * primarily by the Gtk::TreeView. * @param cell_area The area a cell in the column will be allocated. * @param x_offset Location to return x offset of a cell relative to @a cell_area . * @param y_offset Location to return y offset of a cell relative to @a cell_area . * @param width Location to return width needed to render a cell. * @param height Location to return height needed to render a cell. */ void cell_get_size(Gdk::Rectangle& cell_area, int& x_offset, int& y_offset, int& width, int& height) const; /** Returns true if any of the cells packed into the @a tree_column are visible. * For this to be meaningful, you must first initialize the cells with * cell_set_cell_data() * @return true, if any of the cells packed into the @a tree_column are currently visible. */ bool cell_is_visible() const; /** Sets the current keyboard focus to be at @a cell , if the column contains * 2 or more editable and activatable cells. * * @newin2p2 * @param cell A Gtk::CellRenderer. */ void focus_cell(CellRenderer& cell); /** Obtains the horizontal position and size of a cell in a column. If the * cell is not found in the column, @a start_pos and @a width are not changed and * false is returned. * @param cell_renderer A Gtk::CellRenderer. * @param start_pos Return location for the horizontal position of @a cell within * @a tree_column . * @param width Return location for the width of @a cell . * @return true if @a cell belongs to @a tree_column . */ bool get_cell_position(const CellRenderer& cell_renderer, int& start_pos, int& width) const; /** Flags the column, and the cell renderers added to this column, to have * their sizes renegotiated. * * @newin2p8 */ void queue_resize(); /** * @par Prototype: * void %clicked() */ Glib::SignalProxy0< void > signal_clicked(); #ifdef GLIBMM_PROPERTIES_ENABLED /** Whether to display the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_visible() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Whether to display the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_visible() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Current width of the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_width() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Resize mode of the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_sizing() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Resize mode of the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_sizing() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Current fixed width of the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_fixed_width() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Current fixed width of the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_fixed_width() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Minimum allowed width of the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_min_width() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Minimum allowed width of the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_min_width() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Maximum allowed width of the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_max_width() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Maximum allowed width of the column. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_max_width() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Title to appear in column header. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_title() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Title to appear in column header. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_title() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Column gets share of extra width allocated to the widget. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_expand() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Column gets share of extra width allocated to the widget. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_expand() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Whether the header can be clicked. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_clickable() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Whether the header can be clicked. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_clickable() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Widget to put in column header button instead of column title. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_widget() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Widget to put in column header button instead of column title. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_widget() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** X Alignment of the column header text or widget. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_alignment() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** X Alignment of the column header text or widget. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_alignment() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Whether the column can be reordered around the headers. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_reorderable() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Whether the column can be reordered around the headers. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_reorderable() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Whether to show a sort indicator. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_sort_indicator() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Whether to show a sort indicator. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_sort_indicator() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Sort direction the sort indicator should indicate. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_sort_order() ; #endif //#GLIBMM_PROPERTIES_ENABLED #ifdef GLIBMM_PROPERTIES_ENABLED /** Sort direction the sort indicator should indicate. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_sort_order() const; #endif //#GLIBMM_PROPERTIES_ENABLED #ifndef DOXYGEN_SHOULD_SKIP_THIS private: // Only necessary because of the templated ctor, see below. static const Glib::Class& class_init_(); #endif //DOXYGEN_SHOULD_SKIP_THIS }; #ifndef DOXYGEN_SHOULD_SKIP_THIS template inline void TreeViewColumn::pack_start(const TreeModelColumn& column, bool expand) { //Generate appropriate Renderer for the column: CellRenderer* pCellRenderer = manage( CellRenderer_Generation::generate_cellrenderer() ); //Use the renderer: pack_start(*pCellRenderer, expand); set_renderer(*pCellRenderer, column); } template inline void TreeViewColumn::pack_end(const TreeModelColumn& column, bool expand) { //Generate appropriate Renderer for the column: CellRenderer* pCellRenderer= manage( CellRenderer_Generation::generate_cellrenderer() ); //Use the renderer: pack_end(*pCellRenderer, expand); set_renderer(*pCellRenderer, column); } template inline TreeViewColumn::TreeViewColumn(const Glib::ustring& title, const TreeModelColumn& column) : Glib::ObjectBase(0), // not (yet) a custom class Gtk::Object(Glib::ConstructParams(class_init_(), "title", title.c_str(), (char*) 0)) { pack_start(column, true /* expand */); } #endif /* DOXYGEN_SHOULD_SKIP_THIS */ } // namespace Gtk namespace Glib { /** @relates Gtk::TreeViewColumn * @param object The C instance * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. * @result A C++ instance that wraps this C instance. */ Gtk::TreeViewColumn* wrap(GtkTreeViewColumn* object, bool take_copy = false); } //namespace Glib #endif /* _GTKMM_TREEVIEWCOLUMN_H */