# ETableSelectionModel

## Name

ETableSelectionModel --

## Synopsis

    #define     E_TABLE_SELECTION_MODEL_TYPE
    typedef     ETableSelectionModel;
    gboolean    e_table_selection_model_is_row_selected
                                                (ETableSelectionModel *selection,
                                                 gint n);
    void        e_table_selection_model_foreach (ETableSelectionModel *selection,
                                                 ETableForeachFunc callback,
                                                 gpointer closure);
    void        e_table_selection_model_do_something
                                                (ETableSelectionModel *selection,
                                                 guint row,
                                                 guint col,
                                                 GdkModifierType state);
    void        e_table_selection_model_maybe_do_something
                                                (ETableSelectionModel *selection,
                                                 guint row,
                                                 guint col,
                                                 GdkModifierType state);
    void        e_table_selection_model_clear   (ETableSelectionModel *selection);
    gint        e_table_selection_model_selected_count
                                                (ETableSelectionModel *selection);
    void        e_table_selection_model_select_all
                                                (ETableSelectionModel *selection);
    void        e_table_selection_model_invert_selection
                                                (ETableSelectionModel *selection);
    ETableSelectionModel* e_table_selection_model_new
                                                (void);

## Object Hierarchy

      GtkObject
       +----ETableSelectionModel

## Properties

      "model"                GtkObject             : Read / Write
      "sorter"               GtkObject             : Read / Write
      "cursor-row"           gint                  : Read / Write
      "cursor-col"           gint                  : Read / Write

## Signal Prototypes

    "cursor-changed"
                void        user_function      (ETableSelectionModel *etableselectionmodel,
                                                gint arg1,
                                                gint arg2,
                                                gpointer user_data);
    "selection-changed"
                void        user_function      (ETableSelectionModel *etableselectionmodel,
                                                gpointer user_data);

## Description

## Details

### E_TABLE_SELECTION_MODEL_TYPE

    #define E_TABLE_SELECTION_MODEL_TYPE        (e_table_selection_model_get_type ())

### ETableSelectionModel

    typedef struct {
    	GtkObject     base;

    	ETableModel  *model;
    	ETableSorter *sorter;

    	gint row_count;
            guint32 *selection;

    	gint cursor_row;
    	gint cursor_col;
    	gint selection_start_row;

    	guint model_changed_id;
    	guint model_row_inserted_id, model_row_deleted_id;

    	guint frozen : 1;
    	guint selection_model_changed : 1;
    	guint group_info_changed : 1;
    } ETableSelectionModel;

### e_table_selection_model_is_row_selected ()

    gboolean    e_table_selection_model_is_row_selected
                                                (ETableSelectionModel *selection,
                                                 gint n);

`selection` : |
`n` : |
Returns : |

### e_table_selection_model_foreach ()

    void        e_table_selection_model_foreach (ETableSelectionModel *selection,
                                                 ETableForeachFunc callback,
                                                 gpointer closure);

`selection` : |
`callback` : |
`closure` : |

### e_table_selection_model_do_something ()

    void        e_table_selection_model_do_something
                                                (ETableSelectionModel *selection,
                                                 guint row,
                                                 guint col,
                                                 GdkModifierType state);

`selection` : |
`row` : |
`col` : |
`state` : |

### e_table_selection_model_maybe_do_something ()

    void        e_table_selection_model_maybe_do_something
                                                (ETableSelectionModel *selection,
                                                 guint row,
                                                 guint col,
                                                 GdkModifierType state);

`selection` : |
`row` : |
`col` : |
`state` : |

### e_table_selection_model_clear ()

    void        e_table_selection_model_clear   (ETableSelectionModel *selection);

`selection` : |

### e_table_selection_model_selected_count ()

    gint        e_table_selection_model_selected_count
                                                (ETableSelectionModel *selection);

`selection` : |
Returns : |

### e_table_selection_model_select_all ()

    void        e_table_selection_model_select_all
                                                (ETableSelectionModel *selection);

`selection` : |

### e_table_selection_model_invert_selection ()

    void        e_table_selection_model_invert_selection
                                                (ETableSelectionModel *selection);

`selection` : |

### e_table_selection_model_new ()

    ETableSelectionModel* e_table_selection_model_new
                                                (void);

This routine creates a new ETableSelectionModel.

Returns : | The new ETableSelectionModel.

## Properties

### The "`model`" property

      "model"                GtkObject             : Read / Write

### The "`sorter`" property

      "sorter"               GtkObject             : Read / Write

### The "`cursor-row`" property

      "cursor-row"           gint                  : Read / Write

### The "`cursor-col`" property

      "cursor-col"           gint                  : Read / Write

## Signals

### The "cursor-changed" signal

    void        user_function                  (ETableSelectionModel *etableselectionmodel,
                                                gint arg1,
                                                gint arg2,
                                                gpointer user_data);

`etableselectionmodel` : | the object which received the signal.
`arg1` : |
`arg2` : |
`user_data` : | user data set when the signal handler was connected.

### The "selection-changed" signal

    void        user_function                  (ETableSelectionModel *etableselectionmodel,
                                                gpointer user_data);

`etableselectionmodel` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.