added missing horizontal jumper icon
[dia.git] / lib / widgets.h
blobff355cd45efe0ad6e48bd2185ffa7afcff21c4b1
1 /* Dia -- an diagram creation/manipulation program
2 * Copyright (C) 1998 Alexander Larsson
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 #ifndef WIDGETS_H
19 #define WIDGETS_H
21 #include <config.h>
23 #include <gdk/gdk.h>
24 #include <gtk/gtkmenu.h>
25 #include <gtk/gtkoptionmenu.h>
26 #include <gtk/gtkdrawingarea.h>
27 #include <gtk/gtkcolorsel.h>
28 #include <gtk/gtkhbox.h>
29 #include <gtk/gtkfilesel.h>
30 #include <gtk/gtkspinbutton.h>
31 #include <gtk/gtklabel.h>
32 #include <gtk/gtkcolorseldialog.h>
34 #include "diatypes.h"
36 #include "font.h"
37 #include "color.h"
38 #include "arrows.h"
40 /* DiaFontSelector: */
41 #define DIAFONTSELECTOR(obj) GTK_CHECK_CAST (obj, dia_font_selector_get_type (), DiaFontSelector)
42 #define DIAFONTSELECTOR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, dia_font_selector_get_type (), DiaFontSelectorClass)
43 #define IS_DIAFONTSELECTOR(obj) GTK_CHECK_TYPE (obj, dia_font_selector_get_type ())
46 struct _DiaFontSelector
48 GtkHBox hbox;
50 GtkOptionMenu *font_omenu;
51 GtkOptionMenu *style_omenu;
52 GtkMenu *font_menu;
53 GtkMenu *style_menu;
55 gchar *textsample;
58 struct _DiaFontSelectorClass
60 GtkHBoxClass parent_class;
63 guint dia_font_selector_get_type (void);
64 GtkWidget* dia_font_selector_new (void);
65 void dia_font_selector_set_font (DiaFontSelector *fs, DiaFont *font);
66 void dia_font_selector_set_preview (DiaFontSelector *fs, gchar *text);
67 DiaFont * dia_font_selector_get_font (DiaFontSelector *fs);
69 /* DiaAlignmentSelector: */
70 #define DIAALIGNMENTSELECTOR(obj) GTK_CHECK_CAST (obj, dia_alignment_selector_get_type (), DiaAlignmentSelector)
71 #define DIAALIGNMENTSELECTOR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, dia_alignment_selector_get_type (), DiaAlignmentSelectorClass)
72 #define IS_DIAALIGNMENTSELECTOR(obj) GTK_CHECK_TYPE (obj, dia_alignment_selector_get_type ())
75 struct _DiaAlignmentSelector
77 GtkOptionMenu omenu;
79 GtkMenu *alignment_menu;
82 struct _DiaAlignmentSelectorClass
84 GtkOptionMenuClass parent_class;
87 guint dia_alignment_selector_get_type (void);
88 GtkWidget* dia_alignment_selector_new (void);
89 Alignment dia_alignment_selector_get_alignment (DiaAlignmentSelector *as);
90 void dia_alignment_selector_set_alignment (DiaAlignmentSelector *as,
91 Alignment align);
93 /* DiaLineStyleSelector: */
94 #define DIALINESTYLESELECTOR(obj) GTK_CHECK_CAST (obj, dia_line_style_selector_get_type (), DiaLineStyleSelector)
95 #define DIALINESTYLESELECTOR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, dia_line_style_selector_get_type (), DiaLineStyleSelectorClass)
96 #define IS_DIALINESTYLESELECTOR(obj) GTK_CHECK_TYPE (obj, dia_line_style_selector_get_type ())
98 #define DEFAULT_LINESTYLE LINESTYLE_SOLID
99 #define DEFAULT_LINESTYLE_DASHLEN 1.0
102 struct _DiaLineStyleSelector
104 GtkVBox vbox;
106 GtkOptionMenu *omenu;
107 GtkMenu *linestyle_menu;
108 GtkLabel *lengthlabel;
109 GtkSpinButton *dashlength;
113 struct _DiaLineStyleSelectorClass
115 GtkVBoxClass parent_class;
118 guint dia_line_style_selector_get_type (void);
119 GtkWidget* dia_line_style_selector_new (void);
120 void dia_line_style_selector_get_linestyle (DiaLineStyleSelector *as,
121 LineStyle *linestyle,
122 real *dashlength);
123 void dia_line_style_selector_set_linestyle (DiaLineStyleSelector *as,
124 LineStyle linestyle,
125 real dashlength);
127 /* DiaColorSelector: */
128 #define DIACOLORSELECTOR(obj) GTK_CHECK_CAST (obj, dia_color_selector_get_type (), DiaColorSelector)
129 #define DIACOLORSELECTOR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, dia_color_selector_get_type (), DiaColorSelectorClass)
130 #define IS_DIACOLORSELECTOR(obj) GTK_CHECK_TYPE (obj, dia_color_selector_get_type ())
132 #define DEFAULT_FG_COLOR color_black
133 #define DEFAULT_BG_COLOR color_white
134 #define DEFAULT_COLOR color_white
137 struct _DiaColorSelector
139 GtkButton button;
141 GtkWidget *area;
142 GdkGC *gc;
143 Color col;
145 GtkWidget *col_sel;
149 struct _DiaColorSelectorClass
151 GtkButtonClass parent_class;
154 guint dia_color_selector_get_type (void);
155 GtkWidget* dia_color_selector_new (void);
156 void dia_color_selector_get_color (DiaColorSelector *cs, Color *color);
157 void dia_color_selector_set_color (DiaColorSelector *cs,
158 const Color *color);
161 /* DiaArrowSelector */
162 #define DIAARROWSELECTOR(obj) GTK_CHECK_CAST (obj, dia_arrow_selector_get_type (), DiaArrowSelector)
163 #define DIAARROWSELECTOR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, dia_arrow_selector_get_type (), DiaArrowSelectorClass)
164 #define IS_DIAARROWSELECTOR(obj) GTK_CHECK_TYPE (obj, dia_arrow_selector_get_type ())
166 #define DEFAULT_ARROW ARROW_NONE
167 #define DEFAULT_ARROW_LENGTH 0.8
168 #define DEFAULT_ARROW_WIDTH 0.8
171 struct _DiaArrowSelector
173 GtkVBox vbox;
175 GtkHBox *sizebox;
176 GtkLabel *lengthlabel;
177 GtkSpinButton *length;
178 GtkLabel *widthlabel;
179 GtkSpinButton *width;
181 GtkOptionMenu *omenu;
182 GtkMenu *arrow_type_menu;
185 struct _DiaArrowSelectorClass
187 GtkVBoxClass parent_class;
190 guint dia_arrow_selector_get_type (void);
191 GtkWidget* dia_arrow_selector_new (void);
192 Arrow dia_arrow_selector_get_arrow (DiaArrowSelector *as);
193 void dia_arrow_selector_set_arrow (DiaArrowSelector *as,
194 Arrow arrow);
197 /* DiaFileSelector: */
198 #define DIAFILESELECTOR(obj) GTK_CHECK_CAST (obj, dia_file_selector_get_type (), DiaFileSelector)
199 #define DIAFILESELECTOR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, dia_file_selector_get_type (), DiaFileSelectorClass)
200 #define IS_DIAFILESELECTOR(obj) GTK_CHECK_TYPE (obj, dia_file_selector_get_type ())
203 struct _DiaFileSelector
205 GtkHBox hbox;
206 GtkEntry *entry;
207 GtkButton *browse;
208 GtkFileSelection *dialog;
211 struct _DiaFileSelectorClass
213 GtkHBoxClass parent_class;
216 guint dia_file_selector_get_type (void);
217 GtkWidget* dia_file_selector_new (void);
218 void dia_file_selector_set_file (DiaFileSelector *fs, char *file);
219 const gchar *dia_file_selector_get_file (DiaFileSelector *fs);
221 /* Other common defaults */
223 #define DEFAULT_ALIGNMENT ALIGN_LEFT
224 /* This is defined in app/linewidth_area.c. Aw, bummer */
225 #define DEFAULT_LINE_WIDTH 2*0.05
227 #endif /* WIDGETS_H */