aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/e-table/e-table-header.h
blob: 96e65fdc2f2f491bc45e19749bf9045c7cb196dc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#ifndef _E_TABLE_COLUMN_H_
#define _E_TABLE_COLUMN_H_

#include <gtk/gtkobject.h>
#include <gdk/gdk.h>
#include "e-table-col.h"

typedef struct _ETableHeader ETableHeader;

#define E_TABLE_HEADER_TYPE        (e_table_header_get_type ())
#define E_TABLE_HEADER(o)          (GTK_CHECK_CAST ((o), E_TABLE_HEADER_TYPE, ETableHeader))
#define E_TABLE_HEADER_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), E_TABLE_HEADER_TYPE, ETableHeaderClass))
#define E_IS_TABLE_HEADER(o)       (GTK_CHECK_TYPE ((o), E_TABLE_HEADER_TYPE))
#define E_IS_TABLE_HEADER_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_TABLE_HEADER_TYPE))

/*
 * A Columnar header.
 */
struct _ETableHeader {
    GtkObject base;

    int col_count;
    ETableCol **columns;
    gboolean selectable;
};

typedef struct {
    GtkObjectClass parent_class;

    void (*structure_change) (ETableHeader *eth);
    void (*dimension_change) (ETableHeader *eth, int col);
} ETableHeaderClass;

GtkType        e_table_header_get_type   (void);
ETableHeader  *e_table_header_new        (void);

void        e_table_header_add_column    (ETableHeader *eth,
                      ETableCol *tc, int pos);
ETableCol * e_table_header_get_column    (ETableHeader *eth,
                      int column);
int         e_table_header_count         (ETableHeader *eth);
int         e_table_header_index         (ETableHeader *eth,
                      int col);
int         e_table_header_get_index_at  (ETableHeader *eth,
                      int x_offset);
ETableCol **e_table_header_get_columns   (ETableHeader *eth);
gboolean    e_table_header_selection_ok  (ETableHeader *eth);
int         e_table_header_get_selected  (ETableHeader *eth);
int         e_table_header_total_width   (ETableHeader *eth);
void        e_table_header_move          (ETableHeader *eth,
                      int source_index,
                      int target_index);
void        e_table_header_remove        (ETableHeader *eth, int idx);
void        e_table_header_set_size      (ETableHeader *eth, int idx, int size);
void        e_table_header_set_selection (ETableHeader *eth,
                      gboolean allow_selection);

int         e_table_header_col_diff      (ETableHeader *eth,
                      int start_col, int end_col);

GList      *e_table_header_get_selected_indexes(ETableHeader *eth);


#endif /* _E_TABLE_HEADER_H_ */

ttext.edwin2008-06-061-0/+1 * - Remove USE_XLIB/USE_X_PREFIX/USE_XPM in favor of USE_XORGmiwi2008-03-251-1/+0 * Update to 0.18delphij2007-10-273-22/+31 * Presenting GNOME 2.20.1 and all related works for FreeBSD. The officialmarcus2007-10-252-15/+16 * Set USE_PERL5/WANT_PERL as appropriate, for ports that either depend onlinimon2007-10-071-0/+1 * Remove always-false/true conditions based on OSVERSION 500000edwin2007-10-041-4/+0 * Welcome bsd.perl.mk. Add support for constructs such as USE_PERL5=5.8.0+.linimon2007-09-081-1/+1 * - Welcome X.org 7.2 \o/.flz2007-05-202-30/+1 * Update to 0.15.kwm2007-01-093-49/+46 * Track libnotify updatejylefort2006-11-141-1/+1 * Chase the GNOME X11BASE to LOCALBASE move, and fix the build with themarcus2006-10-142-49/+74 * - Update to 0.13rafan2006-07-214-17/+22 * - Update to 0.12pav2006-06-233-5/+4 * - Grant maintainership to the submitter of last updatepav2006-05-281-1/+1 * - Update to 0.11pav2006-05-264-66/+125 * Reset kwm due to no response about email.linimon2006-04-151-1/+1 * * Mark BROKEN on 4.X [1]marcus2006-03-271-1/+5 * Conversion to a single libtool environment.ade2006-02-232-2/+7 * SHA256ifyedwin2006-01-221-0/+1 * Replace ugly "@unexec rmdir %D... 2>/dev/null || true" with @dirrmtryedwin2006-01-221-1/+1 * Mass-conversion to the USE_AUTOTOOLS New World Order. The code presentade2005-11-151-1/+1 * Bump PORTREVISION to chase the glib20 shared library update.marcus2005-11-051-0/+1 * Update to 0.5.kwm2005-09-105-69/+55 * Bump PORTREVISION to chase the glib20 shared lib version change.marcus2005-03-121-1/+1 * Chase master site.kwm2005-01-301-1/+1 * Bump PORTREVISIONS for all ports that depend on atk or pango to ease in themarcus2004-11-081-0/+1 * Update to 0.2.kwm2004-10-157-135/+65 * Fix build with gcc-3.4krion2004-09-022-0/+77 * -Correct the pkg-plist.mezz2004-07-272-3/+4