# ETableHeaderItem

## Name

ETableHeaderItem -- Canvas Item to display the ETable header.

## Synopsis

    #define     E_TABLE_HEADER_ITEM_TYPE
    typedef     ETableHeaderItem;

## Object Hierarchy

      GtkObject
       +----GnomeCanvasItem
             +----ETableHeaderItem

## Properties

      "ETableHeader"         GtkObject             : Write
      "full-header"          GtkObject             : Read / Write
      "dnd-code"             gchar*                : Read / Write
      "fontset"              gchar*                : Write
      "sort-info"            GtkObject             : Write
      "table"                GtkObject             : Write

## Signal Prototypes

    "button-pressed"
                void        user_function      (ETableHeaderItem *etableheaderitem,
                                                gpointer arg1,
                                                gpointer user_data);

## Description

The `ETableHeaderItem` object is a `GnomeCanvasItem` item that renders an `ETableHeader` model into a canvas. This canvas item takes a number of argument to configure the display.

## Details

### E_TABLE_HEADER_ITEM_TYPE

    #define E_TABLE_HEADER_ITEM_TYPE        (e_table_header_item_get_type ())

### ETableHeaderItem

    typedef struct {
    	GnomeCanvasItem  parent;
    	ETableHeader    *eth;

    	GdkGC           *gc;
    	GdkCursor       *change_cursor;

    	short            height, width;
    	GdkFont         *font;

    	/*
    	 * Used during resizing;  Could be shorts
    	 */
    	int              resize_col;
    	int              resize_start_pos;
    	int              resize_min_width;

    	GtkObject       *resize_guide;

    	int              group_indent_width;

    	/*
    	 * Ids
    	 */
    	int structure_change_id, dimension_change_id;

    	/*
    	 * For dragging columns
    	 */
    	guint            maybe_drag:1;
    	guint            dnd_ready:1;
    	int              click_x, click_y;
    	int              drag_col, drop_col, drag_mark;
            guint            drag_motion_id, drag_end_id, drag_leave_id, drag_drop_id, drag_data_received_id, drag_data_get_id;
    	guint            sort_info_changed_id, group_info_changed_id;
    	GnomeCanvasItem *remove_item;
    	GdkBitmap       *stipple;

    	gchar           *dnd_code;

    	/*
    	 * For column sorting info
    	 */
    	ETableSortInfo  *sort_info;

    	/* For adding fields. */
    	ETableHeader    *full_header;
    	ETable          *table;
    	GtkWidget       *config;
    } ETableHeaderItem;

## Properties

### The "`ETableHeader`" property

      "ETableHeader"         GtkObject             : Write

Specifies the `ETableHeader` model that this item is going to render on the screen. The ETableHeader contains the information of which columns from the model are going to be displayed and in which order. It also contains details about the actual text displayed to render the column names.

### The "`full-header`" property

      "full-header"          GtkObject             : Read / Write

### The "`dnd-code`" property

      "dnd-code"             gchar*                : Read / Write

### The "`fontset`" property

      "fontset"              gchar*                : Write

This specified the X font set to use to render the column title. This is a string.

### The "`sort-info`" property

      "sort-info"            GtkObject             : Write

### The "`table`" property

      "table"                GtkObject             : Write

This is a pointer to our parent `ETable` object. This is used during by the interactive configuration process.

## Signals

### The "button-pressed" signal

    void        user_function                  (ETableHeaderItem *etableheaderitem,
                                                gpointer arg1,
                                                gpointer user_data);

Emmited when a button has been pressed in the header. This will pass the GdkEvent as the argument to the signal handler.

`etableheaderitem` : | the object which received the signal.
`arg1` : | The GdkEvent.

`user_data` : | user data set when the signal handler was connected.

## See Also

`ETable`, `ETableHeader`, `ETableCol`.