2005-09-05 Inaki Larranaga <dooteo@euskalgnu.org>
[dia.git] / lib / diaarrowchooser.h
blob726017e77e96e59b3bbddc6179a0e161051b4e20
1 /* Dia -- an diagram creation/manipulation program
2 * Copyright (C) 1998 Alexander Larsson
4 * diarrowchooser.h -- Copyright (C) 1999 James Henstridge.
5 * Copyright (C) 2004 Hubert Figuiere
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 #ifndef _DIAARROWCHOOSER_H_
23 #define _DIAARROWCHOOSER_H_
25 #include <gtk/gtk.h>
27 #include "arrows.h"
28 #include "diatypes.h"
31 /* --------------- DiaArrowPreview -------------------------------- */
32 GType dia_arrow_preview_get_type (void);
34 #define DIA_TYPE_ARROW_PREVIEW (dia_arrow_preview_get_type ())
35 #define DIA_ARROW_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIA_TYPE_ARROW_PREVIEW, DiaArrowPreview))
36 #define DIA_ARROW_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DIA_TYPE_ARROW_PREVIEW, DiaArrowPreviewClass))
37 #define DIA_IS_ARROW_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DIA_TYPE_ARROW_PREVIEW))
38 #define DIA_IS_ARROW_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DIA_TYPE_ARROW_PREVIEW))
39 #define DIA_ARROW_PREVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DIA_TYPE_ARROW_PREVIEW, DiaArrowPreviewClass))
41 typedef struct _DiaArrowPreview DiaArrowPreview;
42 typedef struct _DiaArrowPreviewClass DiaArrowPreviewClass;
44 struct _DiaArrowPreview
46 GtkMisc misc;
47 ArrowType atype;
48 gboolean left;
51 struct _DiaArrowPreviewClass
53 GtkMiscClass parent_class;
56 GtkWidget *dia_arrow_preview_new (ArrowType atype, gboolean left);
59 /* ------- Code for DiaArrowChooser ----------------------- */
60 GType dia_arrow_chooser_get_type (void);
62 #define DIA_TYPE_ARROW_CHOOSER (dia_arrow_chooser_get_type ())
63 #define DIA_ARROW_CHOOSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIA_TYPE_ARROW_CHOOSER, DiaArrowChooser))
64 #define DIA_ARROW_CHOOSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DIA_TYPE_ARROW_CHOOSER, DiaArrowChooserClass))
65 #define DIA_IS_ARROW_CHOOSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DIA_TYPE_ARROW_CHOOSER))
66 #define DIA_IS_ARROW_CHOOSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DIA_TYPE_ARROW_CHOOSER))
67 #define DIA_ARROW_CHOOSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DIA_TYPE_ARROW_CHOOSER, DiaArrowChooserClass))
69 typedef struct _DiaArrowChooser DiaArrowChooser;
70 typedef struct _DiaArrowChooserClass DiaArrowChooserClass;
72 typedef void (*DiaChangeArrowCallback) (Arrow atype, gpointer user_data);
74 struct _DiaArrowChooser
76 GtkButton button;
77 DiaArrowPreview *preview;
78 Arrow arrow;
79 gboolean left;
81 DiaChangeArrowCallback callback;
82 gpointer user_data;
84 GtkWidget *dialog;
85 DiaArrowSelector *selector;
88 struct _DiaArrowChooserClass
90 GtkButtonClass parent_class;
93 GtkWidget *dia_arrow_chooser_new (gboolean left,
94 DiaChangeArrowCallback callback,
95 gpointer user_data, GtkTooltips *tool_tips);
96 void dia_arrow_chooser_set_arrow(DiaArrowChooser *chooser, Arrow *arrow);
97 ArrowType dia_arrow_chooser_get_arrow_type(DiaArrowChooser *chooser);
99 #endif /* _DIAARROWCHOOSER_H_ */