aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/text/e-reflow.h
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2009-05-20 22:50:00 +0800
committerMilan Crha <mcrha@redhat.com>2009-05-20 22:50:00 +0800
commitf4cf9af33ccde3142a3011e8b2dbcfb4cbc9ae81 (patch)
tree1c0228db536f5fa0efc6e0f779bb86df610989d0 /widgets/text/e-reflow.h
parent3acc45b10c9849aa5385a762b4d139472916dca1 (diff)
downloadgsoc2013-evolution-f4cf9af33ccde3142a3011e8b2dbcfb4cbc9ae81.tar.gz
gsoc2013-evolution-f4cf9af33ccde3142a3011e8b2dbcfb4cbc9ae81.tar.zst
gsoc2013-evolution-f4cf9af33ccde3142a3011e8b2dbcfb4cbc9ae81.zip
Use -no-undefined on Linux too
There still left two things opened, search for KILL-BONOBO to find them. One is in calendar's Makefile.am, one in composer.
Diffstat (limited to 'widgets/text/e-reflow.h')
-rw-r--r--widgets/text/e-reflow.h146
1 files changed, 146 insertions, 0 deletions
diff --git a/widgets/text/e-reflow.h b/widgets/text/e-reflow.h
new file mode 100644
index 0000000000..afdc9edb67
--- /dev/null
+++ b/widgets/text/e-reflow.h
@@ -0,0 +1,146 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ *
+ * Authors:
+ * Chris Lahey <clahey@ximian.com>
+ *
+ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
+ *
+ */
+
+#ifndef __E_REFLOW_H__
+#define __E_REFLOW_H__
+
+#include <libgnomecanvas/gnome-canvas.h>
+#include <text/e-reflow-model.h>
+#include <misc/e-selection-model.h>
+#include <e-util/e-sorter-array.h>
+
+#ifdef __cplusplus
+extern "C" {
+#pragma }
+#endif /* __cplusplus */
+
+/* EReflow - A canvas item container.
+ *
+ * The following arguments are available:
+ *
+ * name type read/write description
+ * --------------------------------------------------------------------------------
+ * minimum_width double RW minimum width of the reflow. width >= minimum_width
+ * width double R width of the reflow
+ * height double RW height of the reflow
+ */
+
+#define E_REFLOW_TYPE (e_reflow_get_type ())
+#define E_REFLOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_REFLOW_TYPE, EReflow))
+#define E_REFLOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_REFLOW_TYPE, EReflowClass))
+#define E_IS_REFLOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_REFLOW_TYPE))
+#define E_IS_REFLOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), E_REFLOW_TYPE))
+
+
+typedef struct EReflowPriv EReflowPriv;
+
+typedef struct _EReflow EReflow;
+typedef struct _EReflowClass EReflowClass;
+
+struct _EReflow
+{
+ GnomeCanvasGroup parent;
+
+ /* item specific fields */
+ EReflowModel *model;
+ guint model_changed_id;
+ guint comparison_changed_id;
+ guint model_items_inserted_id;
+ guint model_item_removed_id;
+ guint model_item_changed_id;
+
+ ESelectionModel *selection;
+ guint selection_changed_id;
+ guint selection_row_changed_id;
+ guint cursor_changed_id;
+ ESorterArray *sorter;
+
+ GtkAdjustment *adjustment;
+ guint adjustment_changed_id;
+ guint adjustment_value_changed_id;
+ guint set_scroll_adjustments_id;
+
+ int *heights;
+ GnomeCanvasItem **items;
+ int count;
+ int allocated_count;
+
+ int *columns;
+ gint column_count; /* Number of columnns */
+
+ GnomeCanvasItem *empty_text;
+ gchar *empty_message;
+
+ double minimum_width;
+ double width;
+ double height;
+
+ double column_width;
+
+ int incarnate_idle_id;
+ int do_adjustment_idle_id;
+
+ /* These are all for when the column is being dragged. */
+ gdouble start_x;
+ gint which_column_dragged;
+ double temp_column_width;
+ double previous_temp_column_width;
+
+ int cursor_row;
+
+ int reflow_from_column;
+
+ guint column_drag : 1;
+
+ guint need_height_update : 1;
+ guint need_column_resize : 1;
+ guint need_reflow_columns : 1;
+
+ guint default_cursor_shown : 1;
+
+ guint maybe_did_something : 1;
+ guint maybe_in_drag : 1;
+ GdkCursor *arrow_cursor;
+ GdkCursor *default_cursor;
+};
+
+struct _EReflowClass
+{
+ GnomeCanvasGroupClass parent_class;
+
+ int (*selection_event) (EReflow *reflow, GnomeCanvasItem *item, GdkEvent *event);
+ void (*column_width_changed) (EReflow *reflow, double width);
+};
+
+/*
+ * To be added to a reflow, an item must have the argument "width" as
+ * a Read/Write argument and "height" as a Read Only argument. It
+ * should also do an ECanvas parent reflow request if its size
+ * changes.
+ */
+GType e_reflow_get_type (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __E_REFLOW_H__ */