# ETableCol

## Name

ETableCol --

## Synopsis

    #define     E_TABLE_COL_TYPE
    typedef     ETableCol;
    enum        ETableColArrow;
    ETableCol*  e_table_col_new                 (int col_idx,
                                                 const char *text,
                                                 double expansion,
                                                 int min_width,
                                                 ECell *ecell,
                                                 GCompareFunc compare,
                                                 gboolean resizable);
    ETableCol*  e_table_col_new_with_pixbuf     (int col_idx,
                                                 GdkPixbuf *pixbuf,
                                                 double expansion,
                                                 int min_width,
                                                 ECell *ecell,
                                                 GCompareFunc compare,
                                                 gboolean resizable);
    void        e_table_col_destroy             (ETableCol *etc);

## Object Hierarchy

      GtkObject
       +----ETableCol

## Properties

      "sortable"             gboolean              : Read / Write

## Description

## Details

### E_TABLE_COL_TYPE

    #define E_TABLE_COL_TYPE        (e_table_col_get_type ())

### ETableCol

    typedef struct {
    	GtkObject    base;
    	char        *text;
    	GdkPixbuf   *pixbuf;
    	int          min_width;
    	int          width;
    	double       expansion;
    	short        x;
    	GCompareFunc compare;
    	unsigned int is_pixbuf:1;
    	unsigned int selected:1;
    	unsigned int resizeable:1;
    	unsigned int sortable:1;
    	unsigned int groupable:1;
    	int          col_idx;

    	GtkJustification justification;

    	ECell         *ecell;
    } ETableCol;

### enum ETableColArrow

    typedef enum {
    	E_TABLE_COL_ARROW_NONE = 0,
    	E_TABLE_COL_ARROW_UP,
    	E_TABLE_COL_ARROW_DOWN
    } ETableColArrow;

### e_table_col_new ()

    ETableCol*  e_table_col_new                 (int col_idx,
                                                 const char *text,
                                                 double expansion,
                                                 int min_width,
                                                 ECell *ecell,
                                                 GCompareFunc compare,
                                                 gboolean resizable);

The ETableCol represents a column to be used inside an ETable. The ETableCol objects are inserted inside an ETableHeader (which is just a collection of ETableCols). The ETableHeader is the definition of the order in which columns are shown to the user.

The `text` argument is the the text that will be shown as a header to the user. `col_idx` reflects where the data for this ETableCol object will be fetch from an ETableModel. So even if the user changes the order of the columns being viewed (the ETableCols in the ETableHeader), the column will always point to the same column inside the ETableModel.

The `ecell` argument is an ECell object that needs to know how to render the data in the ETableModel for this specific row.

`col_idx` : | the column we represent in the model
`text` : | a title for this column
`expansion` : | FIXME
`min_width` : | minimum width in pixels for this column
`ecell` : | the renderer to be used for this column
`compare` : | comparision function for the elements stored in this column
`resizable` : | whether the column can be resized interactively by the user
Returns : | the newly created ETableCol object.

### e_table_col_new_with_pixbuf ()

    ETableCol*  e_table_col_new_with_pixbuf     (int col_idx,
                                                 GdkPixbuf *pixbuf,
                                                 double expansion,
                                                 int min_width,
                                                 ECell *ecell,
                                                 GCompareFunc compare,
                                                 gboolean resizable);

The ETableCol represents a column to be used inside an ETable. The ETableCol objects are inserted inside an ETableHeader (which is just a collection of ETableCols). The ETableHeader is the definition of the order in which columns are shown to the user.

The `text` argument is the the text that will be shown as a header to the user. `col_idx` reflects where the data for this ETableCol object will be fetch from an ETableModel. So even if the user changes the order of the columns being viewed (the ETableCols in the ETableHeader), the column will always point to the same column inside the ETableModel.

The `ecell` argument is an ECell object that needs to know how to render the data in the ETableModel for this specific row.

`col_idx` : | the column we represent in the model
`pixbuf` : | the image to be used for the header
`expansion` : | FIXME
`min_width` : | minimum width in pixels for this column
`ecell` : | the renderer to be used for this column
`compare` : | comparision function for the elements stored in this column
`resizable` : | whether the column can be resized interactively by the user
Returns : | the newly created ETableCol object.

### e_table_col_destroy ()

    void        e_table_col_destroy             (ETableCol *etc);

`etc` : |

## Properties

### The "`sortable`" property

      "sortable"             gboolean              : Read / Write