ECell

ECell

Synopsis

struct              ECell;
struct              ECellView;
ECellView *         e_cell_new_view                     (ECell *ecell,
                                                         ETableModel *table_model,
                                                         gpointer e_table_item_view);
void                e_cell_kill_view                    (ECellView *ecell_view);
enum                ECellFlags;
enum                ECellActions;
gint                e_cell_event                        (ECellView *ecell_view,
                                                         GdkEvent *event,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         ECellFlags flags,
                                                         ECellActions *actions);
void                e_cell_realize                      (ECellView *ecell_view);
void                e_cell_unrealize                    (ECellView *ecell_view);
void                e_cell_draw                         (ECellView *ecell_view,
                                                         cairo_t *cr,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         ECellFlags flags,
                                                         gint x1,
                                                         gint y1,
                                                         gint x2,
                                                         gint y2);
void                e_cell_print                        (ECellView *ecell_view,
                                                         GtkPrintContext *context,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gdouble width,
                                                         gdouble height);
gdouble             e_cell_print_height                 (ECellView *ecell_view,
                                                         GtkPrintContext *context,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gdouble width);
gint                e_cell_max_width                    (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col);
gint                e_cell_max_width_by_row             (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row);
gboolean            e_cell_max_width_by_row_implemented (ECellView *ecell_view);
gchar *             e_cell_get_bg_color                 (ECellView *ecell_view,
                                                         gint row);
void                e_cell_style_set                    (ECellView *ecell_view,
                                                         GtkStyle *previous_style);
void                e_cell_focus                        (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gint x1,
                                                         gint y1,
                                                         gint x2,
                                                         gint y2);
void                e_cell_unfocus                      (ECellView *ecell_view);
gint                e_cell_height                       (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row);
gpointer            e_cell_enter_edit                   (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row);
void                e_cell_leave_edit                   (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gpointer edit_context);
gpointer            e_cell_save_state                   (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gpointer edit_context);
void                e_cell_load_state                   (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gpointer edit_context,
                                                         gpointer save_state);
void                e_cell_free_state                   (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gpointer save_state);

Object Hierarchy

  GObject
   +----ECell
         +----ECellToggle
         +----ECellPopup
         +----ECellText
         +----ECellHbox
         +----ECellPixbuf
         +----ECellTree
         +----ECellVbox

Description

Details

struct ECell

struct ECell;

struct ECellView

struct ECellView {
	ECell *ecell;
	ETableModel *e_table_model;
	void        *e_table_item_view;

	gint   focus_x1, focus_y1, focus_x2, focus_y2;
	gint   focus_col, focus_row;

	void  (*kill_view_cb) (struct _ECellView *, gpointer);
	GList *kill_view_cb_data;
};

e_cell_new_view ()

ECellView *         e_cell_new_view                     (ECell *ecell,
                                                         ETableModel *table_model,
                                                         gpointer e_table_item_view);

ECell renderers new to be bound to a table_model and to the actual view during their life time to actually render the data. This method is invoked by the ETableItem canvas item to instatiate a new view of the ECell.

This is invoked when the ETableModel is attached to the ETableItem (a CanvasItem that can render ETableModels in the screen).

ecell :

the Ecell that will create the new view

table_model :

the table model the ecell is bound to

e_table_item_view :

an ETableItem object (the CanvasItem that reprensents the view of the table)

Returns :

a new ECellView for this ecell on the table_model displayed on the e_table_item_view.

e_cell_kill_view ()

void                e_cell_kill_view                    (ECellView *ecell_view);

This method it used to destroy a view of an ECell renderer

ecell_view :

view to be destroyed.

enum ECellFlags

typedef enum {
	E_CELL_SELECTED       = 1 << 0,

	E_CELL_JUSTIFICATION  = 3 << 1,
	E_CELL_JUSTIFY_CENTER = 0 << 1,
	E_CELL_JUSTIFY_LEFT   = 1 << 1,
	E_CELL_JUSTIFY_RIGHT  = 2 << 1,
	E_CELL_JUSTIFY_FILL   = 3 << 1,

	E_CELL_ALIGN_LEFT     = 1 << 1,
	E_CELL_ALIGN_RIGHT    = 1 << 2,

	E_CELL_FOCUSED        = 1 << 3,

	E_CELL_EDITING        = 1 << 4,

	E_CELL_CURSOR         = 1 << 5,

	E_CELL_PREEDIT        = 1 << 6
} ECellFlags;

enum ECellActions

typedef enum {
	E_CELL_GRAB           = 1 << 0,
	E_CELL_UNGRAB         = 1 << 1
} ECellActions;

e_cell_event ()

gint                e_cell_event                        (ECellView *ecell_view,
                                                         GdkEvent *event,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         ECellFlags flags,
                                                         ECellActions *actions);

Dispatches the event event to the ecell_view for.

ecell_view :

The ECellView where the event will be dispatched

event :

The GdkEvent.

model_col :

the column in the model

view_col :

the column in the view

row :

the row

flags :

flags about the current state

actions :

a second return value in case the cell wants to take some action (specifically grabbing & ungrabbing)

Returns :

processing state from the GdkEvent handling.

e_cell_realize ()

void                e_cell_realize                      (ECellView *ecell_view);

This function is invoked to give a chance to the ECellView to allocate any resources it needs from Gdk, equivalent to the GtkWidget::realize signal.

ecell_view :

The ECellView to be realized.

e_cell_unrealize ()

void                e_cell_unrealize                    (ECellView *ecell_view);

This function is invoked to give a chance to the ECellView to release any resources it allocated during the realize method, equivalent to the GtkWidget::unrealize signal.

ecell_view :

The ECellView to be unrealized.

e_cell_draw ()

void                e_cell_draw                         (ECellView *ecell_view,
                                                         cairo_t *cr,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         ECellFlags flags,
                                                         gint x1,
                                                         gint y1,
                                                         gint x2,
                                                         gint y2);

This instructs the ECellView to render itself into the Cairo context. The region to be drawn in given by (x1,y1)-(x2,y2).

The most important flags are E_CELL_SELECTED and E_CELL_FOCUSED, other flags include alignments and justifications.

ecell_view :

the ECellView to redraw

cr :

a Cairo context

model_col :

the column in the model being drawn.

view_col :

the column in the view being drawn (what the model maps to).

row :

the row being drawn

flags :

rendering flags.

x1 :

boudary for the rendering

y1 :

boudary for the rendering

x2 :

boudary for the rendering

y2 :

boudary for the rendering

e_cell_print ()

void                e_cell_print                        (ECellView *ecell_view,
                                                         GtkPrintContext *context,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gdouble width,
                                                         gdouble height);

FIXME:


e_cell_print_height ()

gdouble             e_cell_print_height                 (ECellView *ecell_view,
                                                         GtkPrintContext *context,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gdouble width);

e_cell_max_width ()

gint                e_cell_max_width                    (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col);

ecell_view :

the ECellView that will leave editing

model_col :

the column in the model

view_col :

the column in the view.

Returns :

the maximum width for the ECellview at model_col which is being rendered as view_col

e_cell_max_width_by_row ()

gint                e_cell_max_width_by_row             (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row);

ecell_view :

the ECellView that we are curious about

model_col :

the column in the model

view_col :

the column in the view.

row :

The row in the model.

Returns :

the maximum width for the ECellview at model_col which is being rendered as view_col for the data in row.

e_cell_max_width_by_row_implemented ()

gboolean            e_cell_max_width_by_row_implemented (ECellView *ecell_view);

ecell_view :

the ECellView that we are curious about

Returns :

the maximum width for the ECellview at model_col which is being rendered as view_col for the data in row.

e_cell_get_bg_color ()

gchar *             e_cell_get_bg_color                 (ECellView *ecell_view,
                                                         gint row);

e_cell_style_set ()

void                e_cell_style_set                    (ECellView *ecell_view,
                                                         GtkStyle *previous_style);

e_cell_focus ()

void                e_cell_focus                        (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gint x1,
                                                         gint y1,
                                                         gint x2,
                                                         gint y2);

e_cell_unfocus ()

void                e_cell_unfocus                      (ECellView *ecell_view);

e_cell_height ()

gint                e_cell_height                       (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row);

ecell_view :

the ECellView.

model_col :

the column in the model

view_col :

the column in the view.

row :

the row to me measured

Returns :

the height of the cell at model_col, row rendered at view_col, row.

e_cell_enter_edit ()

gpointer            e_cell_enter_edit                   (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row);

Notifies the ECellView that it is about to enter editing mode for model_col, row rendered at view_col, row.

ecell_view :

the ECellView that will enter editing

model_col :

the column in the model

view_col :

the column in the view

row :

the row

e_cell_leave_edit ()

void                e_cell_leave_edit                   (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gpointer edit_context);

Notifies the ECellView that editing is finished at model_col, row rendered at view_col, row.

ecell_view :

the ECellView that will leave editing

model_col :

the column in the model

view_col :

the column in the view

row :

the row

edit_context :

the editing context

e_cell_save_state ()

gpointer            e_cell_save_state                   (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gpointer edit_context);

ecell_view :

the ECellView to save

model_col :

the column in the model

view_col :

the column in the view

row :

the row

edit_context :

the editing context

Returns :

The save state. Requests that the ECellView return a gpointer representing the state of the ECell. This is primarily intended for things like selection or scrolling.

e_cell_load_state ()

void                e_cell_load_state                   (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gpointer edit_context,
                                                         gpointer save_state);

Requests that the ECellView load from the given save state.

ecell_view :

the ECellView to load

model_col :

the column in the model

view_col :

the column in the view

row :

the row

edit_context :

the editing context

save_state :

the save state to load from

e_cell_free_state ()

void                e_cell_free_state                   (ECellView *ecell_view,
                                                         gint model_col,
                                                         gint view_col,
                                                         gint row,
                                                         gpointer save_state);

Requests that the ECellView free the given save state.

ecell_view :

the ECellView

model_col :

the column in the model

view_col :

the column in the view

row :

the row

save_state :

the save state to free