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

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 : 
etm : 
ete : 
spec : 
state : 
Returns : 


e_table_new ()

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

etm : 
ete : 
spec : 
state : 
Returns : 


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 : 
etm : 
ete : 
spec_fn : 
state_fn : 
Returns : 


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);

etm : 
ete : 
spec_fn : 
state_fn : 
Returns : 


e_table_get_state ()

gchar*      e_table_get_state               (ETable *e_table);

e_table : 
Returns : 


e_table_save_state ()

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

This routine saves the state of the e_table object into the file pointed by filename

e_table : ETable object that will be modified
filename : name of the file containing the state to be loaded into the ETable


e_table_get_state_object ()

ETableState* e_table_get_state_object       (ETable *e_table);

e_table : ETable object that will be modified
Returns : the ETableState object that encapsulates the current state of the e_table object


e_table_set_state ()

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

This routine sets the state (as described by ETableState) of the ETable object.

e_table : ETable object that will be modified
state : 


e_table_set_state_object ()

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

e_table : 
state : 


e_table_load_state ()

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

An ETableState will be loaded form the file pointed by filename into the e_table object.

e_table : ETable object that will be modified
filename : name of the file containing the state to be loaded into the ETable


e_table_set_cursor_row ()

void        e_table_set_cursor_row          (ETable *e_table,
                                             int row);

e_table : 
row : 


e_table_get_cursor_row ()

int         e_table_get_cursor_row          (ETable *e_table);

e_table : 
Returns : 


e_table_selected_row_foreach ()

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

e_table : 
callback : 
closure : 


e_table_selected_count ()

gint        e_table_selected_count          (ETable *e_table);

e_table : 
Returns : 


e_table_get_printable ()

EPrintable* e_table_get_printable           (ETable *e_table);

e_table : 
Returns : 


e_table_get_next_row ()

gint        e_table_get_next_row            (ETable *e_table,
                                             gint model_row);

e_table : 
model_row : 
Returns : 


e_table_get_prev_row ()

gint        e_table_get_prev_row            (ETable *e_table,
                                             gint model_row);

e_table : 
model_row : 
Returns : 


e_table_model_to_view_row ()

gint        e_table_model_to_view_row       (ETable *e_table,
                                             gint model_row);

e_table : 
model_row : 
Returns : 


e_table_view_to_model_row ()

gint        e_table_view_to_model_row       (ETable *e_table,
                                             gint view_row);

e_table : 
view_row : 
Returns : 


e_table_drag_get_data ()

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

table : 
row : 
col : 
context : 
target : 
time : 


e_table_drag_highlight ()

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

Set col to -1 to highlight the entire row.

table : 
row : 
col : 


e_table_drag_unhighlight ()

void        e_table_drag_unhighlight        (ETable *table);

table : 


e_table_drag_dest_set ()

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

table : 
flags : 
targets : 
n_targets : 
actions : 


e_table_drag_dest_set_proxy ()

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

table : 
proxy_window : 
protocol : 
use_coordinates : 


e_table_drag_dest_unset ()

void        e_table_drag_dest_unset         (GtkWidget *widget);

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);

table : 
start_button_mask : 
targets : 
n_targets : 
actions : 


e_table_drag_source_unset ()

void        e_table_drag_source_unset       (ETable *table);

table : 


e_table_drag_begin ()

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

table : 
row : 
col : 
targets : 
actions : 
button : 
event : 
Returns : 


e_table_select_all ()

void        e_table_select_all              (ETable *table);

table : 


e_table_invert_selection ()

void        e_table_invert_selection        (ETable *table);

table : 

Signals

The "cursor-change" signal

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

etable :the object which received the signal.
arg1 : 
user_data :user data set when the signal handler was connected.


The "selection-change" signal

void        user_function                  (ETable *etable,
                                            gpointer user_data);

etable :the object which received the signal.
user_data :user data set when the signal handler was connected.


The "double-click" signal

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

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
user_data :user data set when the signal handler was connected.


The "right-click" signal

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

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
user_data :user data set when the signal handler was connected.
Returns : 


The "click" signal

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

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
user_data :user data set when the signal handler was connected.
Returns : 


The "key-press" signal

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

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
user_data :user data set when the signal handler was connected.
Returns : 


The "table-drag-begin" signal

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

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
user_data :user data set when the signal handler was connected.


The "table-drag-end" signal

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

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
user_data :user data set when the signal handler was connected.


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);

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
arg4 : 
arg5 : 
arg6 : 
user_data :user data set when the signal handler was connected.


The "table-drag-data-delete" signal

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

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
user_data :user data set when the signal handler was connected.


The "table-drag-leave" signal

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

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
arg4 : 
user_data :user data set when the signal handler was connected.


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);

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
arg4 : 
arg5 : 
arg6 : 
user_data :user data set when the signal handler was connected.
Returns : 


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);

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
arg4 : 
arg5 : 
arg6 : 
user_data :user data set when the signal handler was connected.
Returns : 


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);

etable :the object which received the signal.
arg1 : 
arg2 : 
arg3 : 
arg4 : 
arg5 : 
arg6 : 
arg7 : 
arg8 : 
user_data :user data set when the signal handler was connected.