ETable

Name

ETable -- 

Synopsis



#define     E_TABLE_TYPE
typedef     ETable;
struct      ETableDragSourceSite;
enum        ETableCursorLoc;
ETable*     e_table_construct               (ETable *e_table,
                                             ETableModel *etm,
                                             ETableExtras *ete,
                                             const char *spec,
                                             const char *state);
GtkWidget*  e_table_new                     (ETableModel *etm,
                                             ETableExtras *ete,
                                             const char *spec,
                                             const char *state);
ETable*     e_table_construct_from_spec_file
                                            (ETable *e_table,
                                             ETableModel *etm,
                                             ETableExtras *ete,
                                             const char *spec_fn,
                                             const char *state_fn);
GtkWidget*  e_table_new_from_spec_file      (ETableModel *etm,
                                             ETableExtras *ete,
                                             const char *spec_fn,
                                             const char *state_fn);
gchar*      e_table_get_state               (ETable *e_table);
void        e_table_save_state              (ETable *e_table,
                                             const gchar *filename);
ETableState* e_table_get_state_object       (ETable *e_table);
void        e_table_set_state               (ETable *e_table,
                                             const gchar *state);
void        e_table_set_state_object        (ETable *e_table,
                                             ETableState *state);
void        e_table_load_state              (ETable *e_table,
                                             const gchar *filename);
void        e_table_set_cursor_row          (ETable *e_table,
                                             int row);
int         e_table_get_cursor_row          (ETable *e_table);
void        e_table_selected_row_foreach    (ETable *e_table,
                                             ETableForeachFunc callback,
                                             gpointer closure);
gint        e_table_selected_count          (ETable *e_table);
EPrintable* e_table_get_printable           (ETable *e_table);
gint        e_table_get_next_row            (ETable *e_table,
                                             gint model_row);
gint        e_table_get_prev_row            (ETable *e_table,
                                             gint model_row);
gint        e_table_model_to_view_row       (ETable *e_table,
                                             gint model_row);
gint        e_table_view_to_model_row       (ETable *e_table,
                                             gint view_row);
void        e_table_drag_get_data           (ETable *table,
                                             int row,
                                             int col,
                                             GdkDragContext *context,
                                             GdkAtom target,
                                             guint32 time);
void        e_table_drag_highlight          (ETable *table,
                                             int row,
                                             int col);
void        e_table_drag_unhighlight        (ETable *table);
void        e_table_drag_dest_set           (ETable *table,
                                             GtkDestDefaults flags,
                                             const GtkTargetEntry *targets,
                                             gint n_targets,
                                             GdkDragAction actions);
void        e_table_drag_dest_set_proxy     (ETable *table,
                                             GdkWindow *proxy_window,
                                             GdkDragProtocol protocol,
                                             gboolean use_coordinates);
void        e_table_drag_dest_unset         (GtkWidget *widget);
void        e_table_drag_source_set         (ETable *table,
                                             GdkModifierType start_button_mask,
                                             const GtkTargetEntry *targets,
                                             gint n_targets,
                                             GdkDragAction actions);
void        e_table_drag_source_unset       (ETable *table);
GdkDragContext* e_table_drag_begin          (ETable *table,
                                             int row,
                                             int col,
                                             GtkTargetList *targets,
                                             GdkDragAction actions,
                                             gint button,
                                             GdkEvent *event);
void        e_table_select_all              (ETable *table);
void        e_table_invert_selection        (ETable *table);

Object Hierarchy


  GtkObject
   +----GtkWidget
         +----GtkContainer
               +----GtkTable
                     +----ETable

Args


  "drawfocus"            gboolean             : Read / Write
  "length_threshold"     gint                 : Write

Signal Prototypes


"cursor-change"
            void        user_function      (ETable *etable,
                                            gint arg1,
                                            gpointer user_data);
"selection-change"
            void        user_function      (ETable *etable,
                                            gpointer user_data);
"double-click"
            void        user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            gpointer arg3,
                                            gpointer user_data);
"right-click"
            gint        user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            gpointer arg3,
                                            gpointer user_data);
"click"     gint        user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            gpointer arg3,
                                            gpointer user_data);
"key-press" gint        user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            gpointer arg3,
                                            gpointer user_data);
"table-drag-begin"
            void        user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gpointer user_data);
"table-drag-end"
            void        user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gpointer user_data);
"table-drag-data-get"
            void        user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            GtkSelectionData *arg4,
                                            guint arg5,
                                            guint arg6,
                                            gpointer user_data);
"table-drag-data-delete"
            void        user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gpointer user_data);
"table-drag-leave"
            void        user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            guint arg4,
                                            gpointer user_data);
"table-drag-motion"
            gboolean    user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gint arg4,
                                            gint arg5,
                                            guint arg6,
                                            gpointer user_data);
"table-drag-drop"
            gboolean    user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gint arg4,
                                            gint arg5,
                                            guint arg6,
                                            gpointer user_data);
"table-drag-data-received"
            void        user_function      (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gint arg4,
                                            gint arg5,
                                            GtkSelectionData *arg6,
                                            guint arg7,
                                            guint arg8,
                                            gpointer user_data);

Description

Details

E_TABLE_TYPE

#define E_TABLE_TYPE        (e_table_get_type ())


ETable

typedef struct {
	GtkTable parent;

	ETableModel *model;

	ETableHeader *full_header, *header;

	GnomeCanvasItem *canvas_vbox;
	ETableGroup  *group;

	ETableSortInfo *sort_info;
	ETableSorter   *sorter;

	ETableSelectionModel *selection;
	ETableCursorLoc cursor_loc;
	ETableSpecification *spec;

	int table_model_change_id;
	int table_row_change_id;
	int table_cell_change_id;
	int table_row_inserted_id;
	int table_row_deleted_id;

	int group_info_change_id;

	int reflow_idle_id;

	GnomeCanvas *header_canvas, *table_canvas;

	GnomeCanvasItem *header_item, *root;

	GnomeCanvasItem *white_item;

	gint length_threshold;

	gint rebuild_idle_id;
	guint need_rebuild:1;

	/*
	 * Configuration settings
	 */
	guint draw_grid : 1;
	guint draw_focus : 1;
	guint row_selection_active : 1;
	
	char *click_to_add_message;
	GnomeCanvasItem *click_to_add;
	gboolean use_click_to_add;

	ETableCursorMode cursor_mode;

	int drag_get_data_row;
	int drag_get_data_col;

	int drop_row;
	int drop_col;

	int drag_row;
	int drag_col;
	ETableDragSourceSite *site;
	
	int drag_source_button_press_event_id;
	int drag_source_motion_notify_event_id;
} ETable;


struct ETableDragSourceSite

struct ETableDragSourceSite;


enum ETableCursorLoc

typedef enum {
	E_TABLE_CURSOR_LOC_NONE = 0,
	E_TABLE_CURSOR_LOC_ETCTA = 1 << 0,
	E_TABLE_CURSOR_LOC_TABLE = 1 << 1,
} ETableCursorLoc;


e_table_construct ()

ETable*     e_table_construct               (ETable *e_table,
                                             ETableModel *etm,
                                             ETableExtras *ete,
                                             const char *spec,
                                             const char *state);


e_table_new ()

GtkWidget*  e_table_new                     (ETableModel *etm,
                                             ETableExtras *ete,
                                             const char *spec,
                                             const char *state);


e_table_construct_from_spec_file ()

ETable*     e_table_construct_from_spec_file
                                            (ETable *e_table,
                                             ETableModel *etm,
                                             ETableExtras *ete,
                                             const char *spec_fn,
                                             const char *state_fn);


e_table_new_from_spec_file ()

GtkWidget*  e_table_new_from_spec_file      (ETableModel *etm,
                                             ETableExtras *ete,
                                             const char *spec_fn,
                                             const char *state_fn);


e_table_get_state ()

gchar*      e_table_get_state               (ETable *e_table);


e_table_save_state ()

void        e_table_save_state              (ETable *e_table,
                                             const gchar *filename);


e_table_get_state_object ()

ETableState* e_table_get_state_object       (ETable *e_table);


e_table_set_state ()

void        e_table_set_state               (ETable *e_table,
                                             const gchar *state);


e_table_set_state_object ()

void        e_table_set_state_object        (ETable *e_table,
                                             ETableState *state);


e_table_load_state ()

void        e_table_load_state              (ETable *e_table,
                                             const gchar *filename);


e_table_set_cursor_row ()

void        e_table_set_cursor_row          (ETable *e_table,
                                             int row);


e_table_get_cursor_row ()

int         e_table_get_cursor_row          (ETable *e_table);


e_table_selected_row_foreach ()

void        e_table_selected_row_foreach    (ETable *e_table,
                                             ETableForeachFunc callback,
                                             gpointer closure);


e_table_selected_count ()

gint        e_table_selected_count          (ETable *e_table);


e_table_get_printable ()

EPrintable* e_table_get_printable           (ETable *e_table);


e_table_get_next_row ()

gint        e_table_get_next_row            (ETable *e_table,
                                             gint model_row);


e_table_get_prev_row ()

gint        e_table_get_prev_row            (ETable *e_table,
                                             gint model_row);


e_table_model_to_view_row ()

gint        e_table_model_to_view_row       (ETable *e_table,
                                             gint model_row);


e_table_view_to_model_row ()

gint        e_table_view_to_model_row       (ETable *e_table,
                                             gint view_row);


e_table_drag_get_data ()

void        e_table_drag_get_data           (ETable *table,
                                             int row,
                                             int col,
                                             GdkDragContext *context,
                                             GdkAtom target,
                                             guint32 time);


e_table_drag_highlight ()

void        e_table_drag_highlight          (ETable *table,
                                             int row,
                                             int col);


e_table_drag_unhighlight ()

void        e_table_drag_unhighlight        (ETable *table);


e_table_drag_dest_set ()

void        e_table_drag_dest_set           (ETable *table,
                                             GtkDestDefaults flags,
                                             const GtkTargetEntry *targets,
                                             gint n_targets,
                                             GdkDragAction actions);


e_table_drag_dest_set_proxy ()

void        e_table_drag_dest_set_proxy     (ETable *table,
                                             GdkWindow *proxy_window,
                                             GdkDragProtocol protocol,
                                             gboolean use_coordinates);


e_table_drag_dest_unset ()

void        e_table_drag_dest_unset         (GtkWidget *widget);


e_table_drag_source_set ()

void        e_table_drag_source_set         (ETable *table,
                                             GdkModifierType start_button_mask,
                                             const GtkTargetEntry *targets,
                                             gint n_targets,
                                             GdkDragAction actions);


e_table_drag_source_unset ()

void        e_table_drag_source_unset       (ETable *table);


e_table_drag_begin ()

GdkDragContext* e_table_drag_begin          (ETable *table,
                                             int row,
                                             int col,
                                             GtkTargetList *targets,
                                             GdkDragAction actions,
                                             gint button,
                                             GdkEvent *event);


e_table_select_all ()

void        e_table_select_all              (ETable *table);


e_table_invert_selection ()

void        e_table_invert_selection        (ETable *table);

Args

"drawfocus" (gboolean : Read / Write)

"length_threshold" (gint : Write)

Signals

The "cursor-change" signal

void        user_function                  (ETable *etable,
                                            gint arg1,
                                            gpointer user_data);


The "selection-change" signal

void        user_function                  (ETable *etable,
                                            gpointer user_data);


The "double-click" signal

void        user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            gpointer arg3,
                                            gpointer user_data);


The "right-click" signal

gint        user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            gpointer arg3,
                                            gpointer user_data);


The "click" signal

gint        user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            gpointer arg3,
                                            gpointer user_data);


The "key-press" signal

gint        user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            gpointer arg3,
                                            gpointer user_data);


The "table-drag-begin" signal

void        user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gpointer user_data);


The "table-drag-end" signal

void        user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gpointer user_data);


The "table-drag-data-get" signal

void        user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            GtkSelectionData *arg4,
                                            guint arg5,
                                            guint arg6,
                                            gpointer user_data);


The "table-drag-data-delete" signal

void        user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gpointer user_data);


The "table-drag-leave" signal

void        user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            guint arg4,
                                            gpointer user_data);


The "table-drag-motion" signal

gboolean    user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gint arg4,
                                            gint arg5,
                                            guint arg6,
                                            gpointer user_data);


The "table-drag-drop" signal

gboolean    user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gint arg4,
                                            gint arg5,
                                            guint arg6,
                                            gpointer user_data);


The "table-drag-data-received" signal

void        user_function                  (ETable *etable,
                                            gint arg1,
                                            gint arg2,
                                            GdkDragContext *arg3,
                                            gint arg4,
                                            gint arg5,
                                            GtkSelectionData *arg6,
                                            guint arg7,
                                            guint arg8,
                                            gpointer user_data);