## ESelectionModel ESelectionModel |

## Synopsis

    enum                ECursorMode;
    struct              ESelectionModel;
    void                e_selection_model_do_something      (ESelectionModel *model,
                                                             guint row,
                                                             guint col,
                                                             GdkModifierType state);
    gboolean            e_selection_model_maybe_do_something
                                                            (ESelectionModel *model,
                                                             guint row,
                                                             guint col,
                                                             GdkModifierType state);
    void                e_selection_model_right_click_down  (ESelectionModel *model,
                                                             guint row,
                                                             guint col,
                                                             GdkModifierType state);
    void                e_selection_model_right_click_up    (ESelectionModel *model);
    gboolean            e_selection_model_key_press         (ESelectionModel *model,
                                                             GdkEventKey *key);
    void                e_selection_model_select_as_key_press
                                                            (ESelectionModel *model,
                                                             guint row,
                                                             guint col,
                                                             GdkModifierType state);
    gboolean            e_selection_model_is_row_selected   (ESelectionModel *model,
                                                             gint n);
    void                e_selection_model_foreach           (ESelectionModel *model,
                                                             EForeachFunc callback,
                                                             gpointer closure);
    void                e_selection_model_clear             (ESelectionModel *model);
    gint                e_selection_model_selected_count    (ESelectionModel *model);
    void                e_selection_model_select_all        (ESelectionModel *model);
    gint                e_selection_model_row_count         (ESelectionModel *model);
    void                e_selection_model_change_one_row    (ESelectionModel *model,
                                                             gint row,
                                                             gboolean on);
    void                e_selection_model_change_cursor     (ESelectionModel *model,
                                                             gint row,
                                                             gint col);
    gint                e_selection_model_cursor_row        (ESelectionModel *model);
    gint                e_selection_model_cursor_col        (ESelectionModel *model);
    void                e_selection_model_select_single_row (ESelectionModel *model,
                                                             gint row);
    void                e_selection_model_toggle_single_row (ESelectionModel *model,
                                                             gint row);
    void                e_selection_model_move_selection_end
                                                            (ESelectionModel *model,
                                                             gint row);
    void                e_selection_model_set_selection_end (ESelectionModel *model,
                                                             gint row);
    void                e_selection_model_cursor_changed    (ESelectionModel *model,
                                                             gint row,
                                                             gint col);
    void                e_selection_model_cursor_activated  (ESelectionModel *model,
                                                             gint row,
                                                             gint col);
    void                e_selection_model_selection_row_changed
                                                            (ESelectionModel *model,
                                                             gint row);
    void                e_selection_model_selection_changed (ESelectionModel *model);

## Object Hierarchy

      GObject
       +----ESelectionModel
             +----ESelectionModelArray
             +----ETreeSelectionModel

## Properties

      "cursor-mode"              gint                  : Read / Write
      "selection-mode"           gint                  : Read / Write
      "sorter"                   ESorter*              : Read / Write

## Signals

      "cursor-activated"                               : Run Last
      "cursor-changed"                                 : Run Last
      "selection-changed"                              : Run Last
      "selection-row-changed"                          : Run Last

## Description

## Details

### enum ECursorMode

    typedef enum {
    	E_CURSOR_LINE,
    	E_CURSOR_SIMPLE,
    	E_CURSOR_SPREADSHEET
    } ECursorMode;

`E_CURSOR_LINE` |
`E_CURSOR_SIMPLE` |
`E_CURSOR_SPREADSHEET` |

### struct ESelectionModel

    struct ESelectionModel;

### e_selection_model_do_something ()

    void                e_selection_model_do_something      (ESelectionModel *model,
                                                             guint row,
                                                             guint col,
                                                             GdkModifierType state);

This routine does whatever is appropriate as if the user clicked the mouse in the given row and column.

`model` : | ESelectionModel to do something to.
`row` : | The row to do something in.
`col` : | The col to do something in.
`state` : | The state in which to do something.

### e_selection_model_maybe_do_something ()

    gboolean            e_selection_model_maybe_do_something
                                                            (ESelectionModel *model,
                                                             guint row,
                                                             guint col,
                                                             GdkModifierType state);

If this row is selected, this routine just moves the cursor row and column. Otherwise, it does the same thing as `e_selection_model_do_something()`. This is for being used on right clicks and other events where if the user hit the selection, they don't want it to change.

`model` : | ESelectionModel to do something to.
`row` : | The row to do something in.
`col` : | The col to do something in.
`state` : | The state in which to do something.

### e_selection_model_right_click_down ()

    void                e_selection_model_right_click_down  (ESelectionModel *model,
                                                             guint row,
                                                             guint col,
                                                             GdkModifierType state);

### e_selection_model_right_click_up ()

    void                e_selection_model_right_click_up    (ESelectionModel *model);

### e_selection_model_key_press ()

    gboolean            e_selection_model_key_press         (ESelectionModel *model,
                                                             GdkEventKey *key);

This routine does whatever is appropriate as if the user pressed the given key.

`model` : | ESelectionModel to affect.
`key` : | The event.
Returns : | `TRUE` if the ESelectionModel used the key.

### e_selection_model_select_as_key_press ()

    void                e_selection_model_select_as_key_press
                                                            (ESelectionModel *model,
                                                             guint row,
                                                             guint col,
                                                             GdkModifierType state);

### e_selection_model_is_row_selected ()

    gboolean            e_selection_model_is_row_selected   (ESelectionModel *model,
                                                             gint n);

This routine calculates whether the given row is selected.

`model` : | ESelectionModel to check
`n` : | The row to check
Returns : | `TRUE` if the given row is selected

### e_selection_model_foreach ()

    void                e_selection_model_foreach           (ESelectionModel *model,
                                                             EForeachFunc callback,
                                                             gpointer closure);

This routine calls the given callback function once for each selected row, passing closure as the closure.

`model` : | ESelectionModel to traverse
`callback` : | The callback function to call back.
`closure` : | The closure

### e_selection_model_clear ()

    void                e_selection_model_clear             (ESelectionModel *model);

This routine clears the selection to no rows selected.

`model` : | ESelectionModel to clear

### e_selection_model_selected_count ()

    gint                e_selection_model_selected_count    (ESelectionModel *model);

This routine calculates the number of rows selected.

`model` : | ESelectionModel to count
Returns : | The number of rows selected in the given model.

### e_selection_model_select_all ()

    void                e_selection_model_select_all        (ESelectionModel *model);

This routine selects all the rows in the given ESelectionModel.

`model` : | ESelectionModel to select all

### e_selection_model_row_count ()

    gint                e_selection_model_row_count         (ESelectionModel *model);

### e_selection_model_change_one_row ()

    void                e_selection_model_change_one_row    (ESelectionModel *model,
                                                             gint row,
                                                             gboolean on);

### e_selection_model_change_cursor ()

    void                e_selection_model_change_cursor     (ESelectionModel *model,
                                                             gint row,
                                                             gint col);

### e_selection_model_cursor_row ()

    gint                e_selection_model_cursor_row        (ESelectionModel *model);

### e_selection_model_cursor_col ()

    gint                e_selection_model_cursor_col        (ESelectionModel *model);

### e_selection_model_select_single_row ()

    void                e_selection_model_select_single_row (ESelectionModel *model,
                                                             gint row);

### e_selection_model_toggle_single_row ()

    void                e_selection_model_toggle_single_row (ESelectionModel *model,
                                                             gint row);

### e_selection_model_move_selection_end ()

    void                e_selection_model_move_selection_end
                                                            (ESelectionModel *model,
                                                             gint row);

### e_selection_model_set_selection_end ()

    void                e_selection_model_set_selection_end (ESelectionModel *model,
                                                             gint row);

### e_selection_model_cursor_changed ()

    void                e_selection_model_cursor_changed    (ESelectionModel *model,
                                                             gint row,
                                                             gint col);

### e_selection_model_cursor_activated ()

    void                e_selection_model_cursor_activated  (ESelectionModel *model,
                                                             gint row,
                                                             gint col);

### e_selection_model_selection_row_changed ()

    void                e_selection_model_selection_row_changed
                                                            (ESelectionModel *model,
                                                             gint row);

### e_selection_model_selection_changed ()

    void                e_selection_model_selection_changed (ESelectionModel *model);

## Property Details

### The `"cursor-mode"` property

      "cursor-mode"              gint                  : Read / Write

Allowed values: [0,2]

Default value: 0

### The `"selection-mode"` property

      "selection-mode"           gint                  : Read / Write

Allowed values: [0,3]

Default value: 1

### The `"sorter"` property

      "sorter"                   ESorter*              : Read / Write

## Signal Details

### The `"cursor-activated"` signal

    void                user_function                      (ESelectionModel *eselectionmodel,
                                                            gint             arg1,
                                                            gint             arg2,
                                                            gpointer         user_data)            : Run Last

### The `"cursor-changed"` signal

    void                user_function                      (ESelectionModel *eselectionmodel,
                                                            gint             arg1,
                                                            gint             arg2,
                                                            gpointer         user_data)            : Run Last

### The `"selection-changed"` signal

    void                user_function                      (ESelectionModel *eselectionmodel,
                                                            gpointer         user_data)            : Run Last

### The `"selection-row-changed"` signal

    void                user_function                      (ESelectionModel *eselectionmodel,
                                                            gint             arg1,
                                                            gpointer         user_data)            : Run Last