2000-12-23 Christopher James Lahey <clahey@helixcode.com> * e-table-col.c, e-table-col.h (etc_destroy): Destroy text and pixbuf if they exist whether or not is_pixbuf is set. (e_table_col_new_with_pixbuf): Make new_with_pixbuf take a title argument which is for when you can't display pixmaps. * e-table-column-specification.c (e_table_column_specification_load_from_node): Don't translate the pixbuf string attribute. * e-table-sort-info.c, e-table-sort-info.h (e_table_sort_info_load_from_node): Added a state_version parameter to the load_from_node function. This lets the loader specify which version of ETableState is being processed. If it's less than .05, use the old nested version. If it's greater, use the new flat version. (e_table_sort_info_save_to_node): Changed this to store a list of group and leaf nodes instead of nesting the group nodes and leaf nodes one inside the other. This is much easier to understand and requires less typing when creating a new ETableSpecification's initial ETableState. * e-table-state.c: Changed the state-version parameter to 0.1. (e_table_state_load_from_node): Use e_xml_get_double_prop_by_name_with_default so that we can specify a state-version default of 0.1 for people writing ETableStates by hand. Pass the state-version to e_table_sort_info_load_from_node. * e-table.c (et_col_spec_to_col): Pass the title from the ETableColumnSpecification to the ETableCol even if it's a pixbuf column. svn path=/trunk/; revision=7138
75 lines
2.7 KiB
C
75 lines
2.7 KiB
C
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
#ifndef _E_TABLE_SORT_INFO_H_
|
|
#define _E_TABLE_SORT_INFO_H_
|
|
|
|
#include <gtk/gtkobject.h>
|
|
#include <gnome-xml/tree.h>
|
|
|
|
#define E_TABLE_SORT_INFO_TYPE (e_table_sort_info_get_type ())
|
|
#define E_TABLE_SORT_INFO(o) (GTK_CHECK_CAST ((o), E_TABLE_SORT_INFO_TYPE, ETableSortInfo))
|
|
#define E_TABLE_SORT_INFO_CLASS(k) (GTK_CHECK_CLASS_CAST((k), E_TABLE_SORT_INFO_TYPE, ETableSortInfoClass))
|
|
#define E_IS_TABLE_SORT_INFO(o) (GTK_CHECK_TYPE ((o), E_TABLE_SORT_INFO_TYPE))
|
|
#define E_IS_TABLE_SORT_INFO_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_TABLE_SORT_INFO_TYPE))
|
|
|
|
typedef struct _ETableSortColumn ETableSortColumn;
|
|
|
|
struct _ETableSortColumn {
|
|
guint column : 31;
|
|
guint ascending : 1;
|
|
};
|
|
|
|
typedef struct {
|
|
GtkObject base;
|
|
|
|
gint group_count;
|
|
ETableSortColumn *groupings;
|
|
gint sort_count;
|
|
ETableSortColumn *sortings;
|
|
|
|
guint frozen : 1;
|
|
guint sort_info_changed : 1;
|
|
guint group_info_changed : 1;
|
|
} ETableSortInfo;
|
|
|
|
typedef struct {
|
|
GtkObjectClass parent_class;
|
|
|
|
/*
|
|
* Signals
|
|
*/
|
|
void (*sort_info_changed) (ETableSortInfo *info);
|
|
void (*group_info_changed) (ETableSortInfo *info);
|
|
} ETableSortInfoClass;
|
|
|
|
GtkType e_table_sort_info_get_type (void);
|
|
|
|
void e_table_sort_info_freeze (ETableSortInfo *info);
|
|
void e_table_sort_info_thaw (ETableSortInfo *info);
|
|
|
|
guint e_table_sort_info_grouping_get_count (ETableSortInfo *info);
|
|
void e_table_sort_info_grouping_truncate (ETableSortInfo *info,
|
|
int length);
|
|
ETableSortColumn e_table_sort_info_grouping_get_nth (ETableSortInfo *info,
|
|
int n);
|
|
void e_table_sort_info_grouping_set_nth (ETableSortInfo *info,
|
|
int n,
|
|
ETableSortColumn column);
|
|
|
|
guint e_table_sort_info_sorting_get_count (ETableSortInfo *info);
|
|
void e_table_sort_info_sorting_truncate (ETableSortInfo *info,
|
|
int length);
|
|
ETableSortColumn e_table_sort_info_sorting_get_nth (ETableSortInfo *info,
|
|
int n);
|
|
void e_table_sort_info_sorting_set_nth (ETableSortInfo *info,
|
|
int n,
|
|
ETableSortColumn column);
|
|
|
|
ETableSortInfo *e_table_sort_info_new (void);
|
|
void e_table_sort_info_load_from_node (ETableSortInfo *info,
|
|
xmlNode *node,
|
|
gdouble state_version);
|
|
xmlNode *e_table_sort_info_save_to_node (ETableSortInfo *info,
|
|
xmlNode *parent);
|
|
|
|
#endif /* _E_TABLE_SORT_INFO_H_ */
|