1 /* cssed (c) Iago Rubio 2003, 2005 - A tiny CSS editor.
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Library General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16 */
17
18 #ifdef HAVE_CONFIG_H
19 # include <config.h>
20 #endif
21
22 #include <sys/types.h>
23 #include <sys/stat.h>
24 #include <string.h>
25 #include <stdio.h>
26
27 #include <gdk/gdkkeysyms.h>
28 #include <gtk/gtk.h>
29
30 #include "cssedwindow.h"
31 #include "document.h"
32 #include "cssdialogs-interface.h"
33 #include "cssdialogs-functions.h"
34 #include "support.h"
35
36 #define GLADE_HOOKUP_OBJECT(component,widget,name) \
37 g_object_set_data_full (G_OBJECT (component), name, \
38 gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
39
40 #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
41 g_object_set_data (G_OBJECT (component), name, widget)
42
43 /* callbacks */
44
45 void
on_box_wizard_close(GtkDialog * dialog,gpointer user_data)46 on_box_wizard_close (GtkDialog *dialog,
47 gpointer user_data)
48 {
49 gtk_widget_destroy(GTK_WIDGET(user_data));
50 }
51
52 void
run_css_dialog(CssedWindow * window,GtkWidget * parent_widget,char * entry_name,char * title,GtkWidget * (* create_function)(CssedWindow *,gchar *,gboolean,gboolean),gchar * (* get_string_function)(CssedWindow *,gpointer))53 run_css_dialog(CssedWindow *window, GtkWidget *parent_widget,
54 char *entry_name,char *title,
55 GtkWidget *(*create_function) (CssedWindow*,gchar *,gboolean, gboolean),
56 gchar *(*get_string_function) (CssedWindow*, gpointer ) )
57 {
58 GtkWidget *dialog;
59 gint response;
60 gchar *string;
61 CssedDoc *doc;
62 GtkWidget *entry;
63
64 doc = document_get_current(window);
65 entry = lookup_widget(GTK_WIDGET(parent_widget), entry_name);
66
67 dialog = create_function(window, title, FALSE, FALSE);
68 response = gtk_dialog_run(GTK_DIALOG(dialog));
69
70 if( response == GTK_RESPONSE_OK ){
71 string = get_string_function( window, (gpointer) dialog );
72 gtk_entry_set_text(GTK_ENTRY(entry),string);
73 g_free(string);
74 }
75 gtk_widget_destroy(dialog);
76 }
77
78 void
on_button_all_width_clicked(GtkButton * button,gpointer user_data)79 on_button_all_width_clicked (GtkButton *button,
80 gpointer user_data)
81 {
82 CssedWindow *window;
83 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
84 char *(*get_string_function) ( CssedWindow*, gpointer );
85
86 window = CSSED_WINDOW(user_data);
87 create_function = &create_percentage_length_value_dialog;
88 get_string_function = &cssdialog_percentage_length_value_get_string;
89 run_css_dialog(window, GTK_WIDGET(button), "entry_all_width", "width",
90 create_function,
91 get_string_function);
92 }
93
94
95 void
on_button_all_height_clicked(GtkButton * button,gpointer user_data)96 on_button_all_height_clicked (GtkButton *button,
97 gpointer user_data)
98 {
99 CssedWindow *window;
100 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
101 char *(*get_string_function) ( CssedWindow*, gpointer );
102
103 window = CSSED_WINDOW(user_data);
104 create_function = &create_percentage_length_value_dialog;
105 get_string_function = &cssdialog_percentage_length_value_get_string;
106 run_css_dialog(window, GTK_WIDGET(button), "entry_all_height", "height",
107 create_function,
108 get_string_function);
109 }
110
111
112 void
on_button_all_border_top_clicked(GtkButton * button,gpointer user_data)113 on_button_all_border_top_clicked (GtkButton *button,
114 gpointer user_data)
115 {
116 CssedWindow *window;
117 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
118 char *(*get_string_function) ( CssedWindow*, gpointer );
119
120 window = CSSED_WINDOW(user_data);
121 create_function = &create_border_properties_dialog;
122 get_string_function = &cssdialog_border_properties_get_string;
123 run_css_dialog(window, GTK_WIDGET(button), "entry_all_border_top",
124 "border-top",
125 create_function,
126 get_string_function);
127 }
128
129
130 void
on_button_all_border_left_clicked(GtkButton * button,gpointer user_data)131 on_button_all_border_left_clicked (GtkButton *button,
132 gpointer user_data)
133 {
134 CssedWindow *window;
135 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
136 char *(*get_string_function) ( CssedWindow*, gpointer );
137
138 window = CSSED_WINDOW(user_data);
139 create_function = &create_border_properties_dialog;
140 get_string_function = &cssdialog_border_properties_get_string;
141 run_css_dialog(window, GTK_WIDGET(button), "entry_all_border_left",
142 "border-left",
143 create_function,
144 get_string_function);
145 }
146
147
148 void
on_button_all_border_bottom_clicked(GtkButton * button,gpointer user_data)149 on_button_all_border_bottom_clicked (GtkButton *button,
150 gpointer user_data)
151 {
152 CssedWindow *window;
153 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
154 char *(*get_string_function) ( CssedWindow*, gpointer );
155
156 window = CSSED_WINDOW(user_data);
157 create_function = &create_border_properties_dialog;
158 get_string_function = &cssdialog_border_properties_get_string;
159 run_css_dialog(window, GTK_WIDGET(button), "entry_all_border_bottom",
160 "border-bottom",
161 create_function,
162 get_string_function);
163 }
164
165
166 void
on_button_all_border_right_clicked(GtkButton * button,gpointer user_data)167 on_button_all_border_right_clicked (GtkButton *button,
168 gpointer user_data)
169 {
170 CssedWindow *window;
171 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
172 char *(*get_string_function) ( CssedWindow*, gpointer );
173
174 window = CSSED_WINDOW(user_data);
175 create_function = &create_border_properties_dialog;
176 get_string_function = &cssdialog_border_properties_get_string;
177 run_css_dialog(window, GTK_WIDGET(button), "entry_all_border_right",
178 "border-right",
179 create_function,
180 get_string_function);
181 }
182
183
184 void
on_button_all_padding_top_clicked(GtkButton * button,gpointer user_data)185 on_button_all_padding_top_clicked (GtkButton *button,
186 gpointer user_data)
187 {
188 CssedWindow *window;
189 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
190 char *(*get_string_function) ( CssedWindow*, gpointer );
191
192 window = CSSED_WINDOW(user_data);
193 create_function = &create_percentage_length_value_dialog;
194 get_string_function = &cssdialog_percentage_length_value_get_string;
195 run_css_dialog(window, GTK_WIDGET(button), "entry_all_padding_top",
196 "padding-top",
197 create_function,
198 get_string_function);
199 }
200
201
202 void
on_button_all_padding_left_clicked(GtkButton * button,gpointer user_data)203 on_button_all_padding_left_clicked (GtkButton *button,
204 gpointer user_data)
205 {
206 CssedWindow *window;
207 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
208 char *(*get_string_function) ( CssedWindow*, gpointer );
209
210 window = CSSED_WINDOW(user_data);
211 create_function = &create_percentage_length_value_dialog;
212 get_string_function = &cssdialog_percentage_length_value_get_string;
213 run_css_dialog(window, GTK_WIDGET(button), "entry_all_padding_left",
214 "padding-left",
215 create_function,
216 get_string_function);
217 }
218
219
220 void
on_button_all_margin_right_clicked(GtkButton * button,gpointer user_data)221 on_button_all_margin_right_clicked (GtkButton *button,
222 gpointer user_data)
223 {
224 CssedWindow *window;
225 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
226 char *(*get_string_function) ( CssedWindow*, gpointer );
227
228 window = CSSED_WINDOW(user_data);
229 create_function = &create_percentage_length_value_dialog;
230 get_string_function = &cssdialog_percentage_length_value_get_string;
231 run_css_dialog(window, GTK_WIDGET(button), "entry_all_padding_right",
232 "padding-right",
233 create_function,
234 get_string_function);
235 }
236
237
238 void
on_button_all_padding_bottom_clicked(GtkButton * button,gpointer user_data)239 on_button_all_padding_bottom_clicked (GtkButton *button,
240 gpointer user_data)
241 {
242 CssedWindow *window;
243 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
244 char *(*get_string_function) ( CssedWindow*, gpointer );
245
246 window = CSSED_WINDOW(user_data);
247 create_function = &create_percentage_length_value_dialog;
248 get_string_function = &cssdialog_percentage_length_value_get_string;
249 run_css_dialog(window, GTK_WIDGET(button), "entry_all_padding_bottom",
250 "padding-bottom",
251 create_function,
252 get_string_function);
253 }
254
255
256 void
on_button_all_padding_right_clicked(GtkButton * button,gpointer user_data)257 on_button_all_padding_right_clicked (GtkButton *button,
258 gpointer user_data)
259 {
260 CssedWindow *window;
261 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
262 char *(*get_string_function) ( CssedWindow*, gpointer );
263
264 window = CSSED_WINDOW(user_data);
265 create_function = &create_percentage_length_value_dialog;
266 get_string_function = &cssdialog_percentage_length_value_get_string;
267 run_css_dialog(window, GTK_WIDGET(button), "entry_all_margin_right",
268 "margin-right",
269 create_function,
270 get_string_function);
271 }
272
273
274 void
on_button_all_margin_bottom_clicked(GtkButton * button,gpointer user_data)275 on_button_all_margin_bottom_clicked (GtkButton *button,
276 gpointer user_data)
277 {
278 CssedWindow *window;
279 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
280 char *(*get_string_function) ( CssedWindow*, gpointer );
281
282 window = CSSED_WINDOW(user_data);
283 create_function = &create_percentage_length_value_dialog;
284 get_string_function = &cssdialog_percentage_length_value_get_string;
285 run_css_dialog(window, GTK_WIDGET(button), "entry_all_margin_bottom",
286 "margin-bottom",
287 create_function,
288 get_string_function);
289 }
290
291
292 void
on_button_all_margin_top_clicked(GtkButton * button,gpointer user_data)293 on_button_all_margin_top_clicked (GtkButton *button,
294 gpointer user_data)
295 {
296 CssedWindow *window;
297 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
298 char *(*get_string_function) ( CssedWindow*, gpointer );
299
300 window = CSSED_WINDOW(user_data);
301 create_function = &create_percentage_length_value_dialog;
302 get_string_function = &cssdialog_percentage_length_value_get_string;
303 run_css_dialog(window, GTK_WIDGET(button), "entry_all_margin_top",
304 "margin-top",
305 create_function,
306 get_string_function);
307 }
308
309
310 void
on_button_all_margin_left_clicked(GtkButton * button,gpointer user_data)311 on_button_all_margin_left_clicked (GtkButton *button,
312 gpointer user_data)
313 {
314 CssedWindow *window;
315 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
316 char *(*get_string_function) ( CssedWindow*, gpointer );
317
318 window = CSSED_WINDOW(user_data);
319 create_function = &create_percentage_length_value_dialog;
320 get_string_function = &cssdialog_percentage_length_value_get_string;
321 run_css_dialog(window, GTK_WIDGET(button), "entry_all_margin_left",
322 "margin-left",
323 create_function,
324 get_string_function);
325 }
326
327
328 void
on_button_short_width_clicked(GtkButton * button,gpointer user_data)329 on_button_short_width_clicked (GtkButton *button,
330 gpointer user_data)
331 {
332 CssedWindow *window;
333 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
334 char *(*get_string_function) ( CssedWindow*, gpointer );
335
336 window = CSSED_WINDOW(user_data);
337 create_function = &create_percentage_length_value_dialog;
338 get_string_function = &cssdialog_percentage_length_value_get_string;
339 run_css_dialog(window, GTK_WIDGET(button), "entry_short_width", "width",
340 create_function,
341 get_string_function);
342 }
343
344
345 void
on_button_short_height_clicked(GtkButton * button,gpointer user_data)346 on_button_short_height_clicked (GtkButton *button,
347 gpointer user_data)
348 {
349 CssedWindow *window;
350 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
351 char *(*get_string_function) ( CssedWindow*, gpointer );
352
353 window = CSSED_WINDOW(user_data);
354 create_function = &create_percentage_length_value_dialog;
355 get_string_function = &cssdialog_percentage_length_value_get_string;
356 run_css_dialog(window, GTK_WIDGET(button), "entry_short_height", "height",
357 create_function,
358 get_string_function);
359 }
360
361
362 void
on_button_short_border_clicked(GtkButton * button,gpointer user_data)363 on_button_short_border_clicked (GtkButton *button,
364 gpointer user_data)
365 {
366 CssedWindow *window;
367 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
368 char *(*get_string_function) ( CssedWindow*, gpointer );
369
370 window = CSSED_WINDOW(user_data);
371 create_function = &create_border_properties_dialog;
372 get_string_function = &cssdialog_border_properties_get_string;
373 run_css_dialog(window, GTK_WIDGET(button), "entry_short_border",
374 "border",
375 create_function,
376 get_string_function);
377 }
378
379
380 void
on_button_short_margin_clicked(GtkButton * button,gpointer user_data)381 on_button_short_margin_clicked (GtkButton *button,
382 gpointer user_data)
383 {
384 CssedWindow *window;
385 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
386 char *(*get_string_function) ( CssedWindow*, gpointer );
387
388 window = CSSED_WINDOW(user_data);
389 create_function = &create_margin_property_dialog;
390 get_string_function = &cssdialog_margin_property_get_string;
391 run_css_dialog(window, GTK_WIDGET(button), "entry_short_margin",
392 "margin",
393 create_function,
394 get_string_function);
395 }
396
397
398 void
on_button_short_padding_clicked(GtkButton * button,gpointer user_data)399 on_button_short_padding_clicked (GtkButton *button,
400 gpointer user_data)
401 {
402 CssedWindow *window;
403 GtkWidget *(*create_function) (CssedWindow*, gchar*, gboolean, gboolean);
404 char *(*get_string_function) ( CssedWindow*, gpointer );
405
406 window = CSSED_WINDOW(user_data);
407 create_function = &create_padding_property_dialog;
408 get_string_function = &cssdialog_padding_property_get_string;
409 run_css_dialog(window, GTK_WIDGET(button), "entry_short_padding",
410 "padding",
411 create_function,
412 get_string_function);
413 }
414
415
416 void
on_box_wizard_cancelbutton_clicked(GtkButton * button,gpointer user_data)417 on_box_wizard_cancelbutton_clicked (GtkButton *button,
418 gpointer user_data)
419 {
420 gtk_widget_destroy(GTK_WIDGET(user_data));
421 }
422
423 void
write_entry_contents_if_any(CssedDoc * doc,gchar * previous_string,GtkWidget * entry)424 write_entry_contents_if_any (CssedDoc *doc, gchar *previous_string,
425 GtkWidget *entry)
426 {
427 gchar *entry_contents;
428 gchar *output_string;
429
430 entry_contents = gtk_editable_get_chars(GTK_EDITABLE(entry),
431 0,-1);
432 if( strlen( entry_contents ) > 0 ){
433 g_strstrip( entry_contents );
434 output_string = g_strdup_printf("\t%s: %s;\n", previous_string,
435 entry_contents);
436 document_add_text(doc,output_string);
437 g_free(output_string);
438 }
439 g_free( entry_contents );
440 }
441
442 void
on_box_wizard_applybutton_clicked(GtkButton * button,gpointer user_data)443 on_box_wizard_applybutton_clicked (GtkButton *button,
444 gpointer user_data)
445 {
446 CssedWindow *window;
447 CssedDoc *doc;
448 GtkWidget *entry_all_width;
449 GtkWidget *entry_all_height;
450 GtkWidget *entry_all_border_top;
451 GtkWidget *entry_all_border_left;
452 GtkWidget *entry_all_border_bottom;
453 GtkWidget *entry_all_border_right;
454 GtkWidget *entry_all_padding_top;
455 GtkWidget *entry_all_padding_left;
456 GtkWidget *entry_all_margin_right;
457 GtkWidget *entry_all_padding_bottom;
458 GtkWidget *entry_all_margin_bottom;
459 GtkWidget *entry_all_padding_right;
460 GtkWidget *entry_all_margin_top;
461 GtkWidget *entry_all_margin_left;
462 GtkWidget *entry_short_width;
463 GtkWidget *entry_short_height;
464 GtkWidget *entry_short_border;
465 GtkWidget *entry_short_margin;
466 GtkWidget *entry_short_padding;
467 GtkWidget *notebook;
468 gint pagenum;
469
470 window = CSSED_WINDOW(user_data);
471 doc = document_get_current(window);
472
473 notebook = lookup_widget(GTK_WIDGET(button), "notebook");
474
475 g_return_if_fail(GTK_IS_NOTEBOOK(notebook));
476
477 pagenum = gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook));
478
479 switch( pagenum ){
480 case 0: // first page
481 entry_all_width = lookup_widget(GTK_WIDGET(button), "entry_all_width");
482 write_entry_contents_if_any(doc, "width", entry_all_width);
483
484 entry_all_height = lookup_widget(GTK_WIDGET(button), "entry_all_height");
485 write_entry_contents_if_any(doc, "height", entry_all_height);
486
487 entry_all_border_top= lookup_widget(GTK_WIDGET(button), "entry_all_border_top");
488 write_entry_contents_if_any(doc, "border-top", entry_all_border_top);
489
490 entry_all_border_left= lookup_widget(GTK_WIDGET(button), "entry_all_border_left");
491 write_entry_contents_if_any(doc, "border-left", entry_all_border_left);
492
493 entry_all_border_bottom = lookup_widget(GTK_WIDGET(button), "entry_all_border_bottom");
494 write_entry_contents_if_any(doc, "border-bottom", entry_all_border_bottom);
495
496 entry_all_border_right = lookup_widget(GTK_WIDGET(button), "entry_all_border_right");
497 write_entry_contents_if_any(doc, "border-right", entry_all_border_right);
498
499 entry_all_padding_top = lookup_widget(GTK_WIDGET(button), "entry_all_padding_top");
500 write_entry_contents_if_any(doc, "padding-top", entry_all_padding_top);
501
502 entry_all_padding_left = lookup_widget(GTK_WIDGET(button), "entry_all_padding_left");
503 write_entry_contents_if_any(doc, "padding-left", entry_all_padding_left);
504
505 entry_all_padding_bottom = lookup_widget(GTK_WIDGET(button), "entry_all_padding_bottom");
506 write_entry_contents_if_any(doc, "padding-bottom", entry_all_padding_bottom);
507
508 entry_all_padding_right = lookup_widget(GTK_WIDGET(button), "entry_all_padding_right");
509 write_entry_contents_if_any(doc, "padding-right", entry_all_padding_right);
510
511 entry_all_margin_top = lookup_widget(GTK_WIDGET(button), "entry_all_margin_top");
512 write_entry_contents_if_any(doc, "margin-top", entry_all_margin_top);
513
514 entry_all_margin_left = lookup_widget(GTK_WIDGET(button), "entry_all_margin_left");
515 write_entry_contents_if_any(doc, "margin-left", entry_all_margin_left);
516
517 entry_all_margin_bottom = lookup_widget(GTK_WIDGET(button), "entry_all_margin_bottom");
518 write_entry_contents_if_any(doc, "margin-bottom", entry_all_margin_bottom);
519
520 entry_all_margin_right = lookup_widget(GTK_WIDGET(button), "entry_all_margin_right");
521 write_entry_contents_if_any(doc, "margin-right", entry_all_margin_right);
522
523 break;
524 case 1: // shorthand page
525 entry_short_width = lookup_widget(GTK_WIDGET(button), "entry_short_width");
526 write_entry_contents_if_any(doc, "width", entry_short_width);
527
528 entry_short_height = lookup_widget(GTK_WIDGET(button), "entry_short_height");
529 write_entry_contents_if_any(doc, "height", entry_short_height);
530
531 entry_short_border = lookup_widget(GTK_WIDGET(button), "entry_short_border");
532 write_entry_contents_if_any(doc, "border", entry_short_border);
533
534 entry_short_margin = lookup_widget(GTK_WIDGET(button), "entry_short_margin");
535 write_entry_contents_if_any(doc, "margin", entry_short_margin);
536
537 entry_short_padding = lookup_widget(GTK_WIDGET(button), "entry_short_padding");
538 write_entry_contents_if_any(doc, "padding", entry_short_padding);
539
540 break;
541 //case 2:// FIXME, do nothing but must say something to user.
542 default:
543 break;
544 }
545 }
546
547
548 void
on_box_wizard_okbutton_clicked(GtkButton * button,gpointer user_data)549 on_box_wizard_okbutton_clicked (GtkButton *button,
550 gpointer user_data)
551 {
552 GtkWidget *dialog;
553
554 dialog = lookup_widget(GTK_WIDGET(button), "box_wizard");
555 on_box_wizard_applybutton_clicked (button, user_data);
556 gtk_widget_destroy(dialog);
557 }
558
559 /* drawing functions */
560 void
draw_area(GtkWidget * widget)561 draw_area(GtkWidget *widget)
562 {
563 const gchar *border = _("<span color='black' size='smaller'>border</span>");
564 const gchar *margin = _("<span color='blue' size='smaller'>margin (transparent)</span>");
565 const gchar *padding = _("<span color='blue' size='smaller'>padding (transparent)</span>");
566 const gchar *content = _("<span color='white' size='smaller'>content</span>");
567 const gchar *top = _("<span color='navy' size='smaller'>TOP</span>");
568 const gchar *left = _("<span color='navy' size='smaller'>LEFT</span>");
569 const gchar *bottom = _("<span color='navy' size='smaller'>BOTTOM</span>");
570 const gchar *right = _("<span color='navy' size='smaller'>RIGHT</span>");
571
572 PangoContext *context;
573 PangoLayout *layout;
574
575 context = gtk_widget_get_pango_context(widget);
576 layout = pango_layout_new( context );
577
578
579 gdk_draw_rectangle (widget->window,
580 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
581 FALSE,
582 40,20, widget->allocation.width - 80, widget->allocation.height - 50);
583
584 gdk_draw_rectangle (widget->window,
585 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
586 FALSE,
587 60,40, widget->allocation.width - 120, widget->allocation.height - 90);
588
589 gdk_draw_rectangle (widget->window,
590 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
591 FALSE,
592 80,60, widget->allocation.width - 165, widget->allocation.height - 130);
593
594 gdk_draw_rectangle (widget->window,
595 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
596 TRUE,
597 100,80, widget->allocation.width - 200, widget->allocation.height - 170);
598
599 pango_layout_set_markup(layout,top ,strlen(top));
600
601 gdk_draw_layout (widget->window,
602 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
603 widget->allocation.width/2 - 15,
604 5,layout);
605
606 pango_layout_set_markup(layout,margin,strlen(margin));
607 gdk_draw_layout (widget->window,
608 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
609 widget->allocation.width/2 - 100,
610 24,layout);
611
612 pango_layout_set_markup(layout,border,strlen(border));
613 gdk_draw_layout (widget->window,
614 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
615 widget->allocation.width/2 - 15,
616 40,layout);
617
618 pango_layout_set_markup(layout,padding,strlen(padding));
619 gdk_draw_layout (widget->window,
620 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
621 widget->allocation.width/2 - 80,
622 60,layout);
623
624 pango_layout_set_markup (layout,content,strlen(content));
625 gdk_draw_layout (widget->window,
626 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
627 widget->allocation.width/2 - 15,
628 widget->allocation.height/2 - 10,layout);
629
630 pango_layout_set_markup (layout,right,strlen(right));
631 gdk_draw_layout (widget->window,
632 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
633 0,
634 widget->allocation.height/2 - 40,layout);
635
636 pango_layout_set_markup (layout,bottom,strlen(bottom));
637
638 gdk_draw_layout (widget->window,
639 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
640 widget->allocation.width/2 - 5,
641 widget->allocation.height - 20,layout);
642
643 pango_layout_set_markup (layout,left,strlen(left));
644
645 gdk_draw_layout (widget->window,
646 widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
647 widget->allocation.width - 30,
648 widget->allocation.height/2 - 40,layout);
649
650 }
651
652
653
654 gboolean
on_drawingarea_expose_event(GtkWidget * widget,GdkEventExpose * event,gpointer user_data)655 on_drawingarea_expose_event (GtkWidget *widget,
656 GdkEventExpose *event,
657 gpointer user_data)
658 {
659 draw_area(widget);
660 return FALSE;
661 }
662 /* draw end */
663
664
665 /* UI */
666 GtkWidget*
create_box_wizard(CssedWindow * window)667 create_box_wizard (CssedWindow *window)
668 {
669 GtkWidget *label_blank;
670 GtkWidget *box_wizard;
671 //GdkPixbuf *box_wizard_icon_pixbuf;
672 GtkWidget *dialog_vbox;
673 GtkWidget *notebook;
674 GtkWidget *table_all_border_right;
675 GtkWidget *button_all_width;
676 GtkWidget *entry_all_width;
677 GtkWidget *label_all_width;
678 GtkWidget *entry_all_height;
679 GtkWidget *entry_all_border_top;
680 GtkWidget *entry_all_border_left;
681 GtkWidget *entry_all_border_bottom;
682 GtkWidget *entry_all_border_right;
683 GtkWidget *entry_all_padding_top;
684 GtkWidget *entry_all_padding_left;
685 GtkWidget *entry_all_margin_right;
686 GtkWidget *button_all_height;
687 GtkWidget *button_all_border_top;
688 GtkWidget *button_all_border_left;
689 GtkWidget *button_all_border_bottom;
690 GtkWidget *button_all_border_right;
691 GtkWidget *button_all_padding_top;
692 GtkWidget *button_all_padding_left;
693 GtkWidget *button_all_margin_right;
694 GtkWidget *label_all_height;
695 GtkWidget *label_all_border_left;
696 GtkWidget *label_all_border_bottom;
697 GtkWidget *label_all_border_right;
698 GtkWidget *label_all_padding_top;
699 GtkWidget *label_all_padding_left;
700 GtkWidget *button_all_padding_bottom;
701 GtkWidget *button_all_padding_right;
702 GtkWidget *button_all_margin_bottom;
703 GtkWidget *entry_all_padding_bottom;
704 GtkWidget *entry_all_margin_bottom;
705 GtkWidget *entry_all_padding_right;
706 GtkWidget *label_all_padding_bottom;
707 GtkWidget *label_all_padding_right;
708 GtkWidget *label_all_margin_bottom;
709 GtkWidget *label_all_margin_right;
710 GtkWidget *label_all_border_top;
711 GtkWidget *label_all_margin_top;
712 GtkWidget *label_all_margin_left;
713 GtkWidget *entry_all_margin_top;
714 GtkWidget *entry_all_margin_left;
715 GtkWidget *button_all_margin_top;
716 GtkWidget *button_all_margin_left;
717 GtkWidget *label_all_padding_big;
718 GtkWidget *label_all_margin_big;
719 GtkWidget *label_all_border_big;
720 GtkWidget *label_all_box_big;
721 GtkWidget *label_prop;
722 GtkWidget *table_shorthand;
723 GtkWidget *entry_short_width;
724 GtkWidget *button_short_width;
725 GtkWidget *entry_short_height;
726 GtkWidget *entry_short_border;
727 GtkWidget *entry_short_margin;
728 GtkWidget *entry_short_padding;
729 GtkWidget *button_short_height;
730 GtkWidget *button_short_border;
731 GtkWidget *button_short_margin;
732 GtkWidget *button_short_padding;
733 GtkWidget *label_short_box_big;
734 GtkWidget *label_short_width;
735 GtkWidget *label_short_height;
736 GtkWidget *label_short_border;
737 GtkWidget *label_short_margin;
738 GtkWidget *label_short_padding;
739 GtkWidget *label_short_box_big_prop;
740 GtkWidget *label_shorthand;
741 GtkWidget *hbox_help;
742 GtkWidget *vbox_help;
743 GtkWidget *scrolledwindow;
744 GtkWidget *textview;
745 GtkWidget *drawingarea;
746 GtkWidget *label_help;
747 GtkWidget *dialog_action_area;
748 GtkWidget *cancelbutton;
749 GtkWidget *applybutton;
750 GtkWidget *okbutton;
751
752 label_blank = gtk_label_new ("");
753
754 box_wizard = gtk_dialog_new ();
755 gtk_window_set_title (GTK_WINDOW (box_wizard), _("Box properties dialog"));
756 gtk_window_set_destroy_with_parent (GTK_WINDOW (box_wizard), TRUE);
757 gtk_window_set_transient_for ( GTK_WINDOW(box_wizard),
758 GTK_WINDOW ( cssed_window_get_window_widget(window) ));
759
760 /*
761 box_wizard_icon_pixbuf = create_pixbuf ("dlg_border.png");
762 if (box_wizard_icon_pixbuf)
763 {
764 gtk_window_set_icon (GTK_WINDOW (box_wizard), box_wizard_icon_pixbuf);
765 gdk_pixbuf_unref (box_wizard_icon_pixbuf);
766 }
767 */
768 dialog_vbox = GTK_DIALOG (box_wizard)->vbox;
769 gtk_widget_show (dialog_vbox);
770
771 notebook = gtk_notebook_new ();
772 gtk_widget_show (notebook);
773 gtk_box_pack_start (GTK_BOX (dialog_vbox), notebook, TRUE, TRUE, 0);
774
775 table_all_border_right = gtk_table_new (21, 3, FALSE);
776 gtk_widget_show (table_all_border_right);
777 gtk_container_add (GTK_CONTAINER (notebook), table_all_border_right);
778 gtk_container_set_border_width (GTK_CONTAINER (table_all_border_right), 5);
779
780 button_all_width = gtk_button_new_with_mnemonic (_("Set"));
781 gtk_widget_show (button_all_width);
782 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_width, 2, 3, 1, 2,
783 (GtkAttachOptions) (GTK_FILL),
784 (GtkAttachOptions) (0), 5, 0);
785
786 entry_all_width = gtk_entry_new ();
787 gtk_widget_show (entry_all_width);
788 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_width, 1, 2, 1, 2,
789 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
790 (GtkAttachOptions) (0), 5, 0);
791
792 label_all_width = gtk_label_new (_("width"));
793 gtk_widget_show (label_all_width);
794 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_width, 0, 1, 1, 2,
795 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
796 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
797 gtk_label_set_justify (GTK_LABEL (label_all_width), GTK_JUSTIFY_LEFT);
798 gtk_misc_set_alignment (GTK_MISC (label_all_width), 0, 0.5);
799
800 entry_all_height = gtk_entry_new ();
801 gtk_widget_show (entry_all_height);
802 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_height, 1, 2, 2, 3,
803 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
804 (GtkAttachOptions) (0), 5, 0);
805
806 entry_all_border_top = gtk_entry_new ();
807 gtk_widget_show (entry_all_border_top);
808 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_border_top, 1, 2, 5, 6,
809 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
810 (GtkAttachOptions) (0), 5, 0);
811
812 entry_all_border_left = gtk_entry_new ();
813 gtk_widget_show (entry_all_border_left);
814 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_border_left, 1, 2, 6, 7,
815 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
816 (GtkAttachOptions) (0), 5, 0);
817
818 entry_all_border_bottom = gtk_entry_new ();
819 gtk_widget_show (entry_all_border_bottom);
820 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_border_bottom, 1, 2, 7, 8,
821 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
822 (GtkAttachOptions) (0), 5, 0);
823
824 entry_all_border_right = gtk_entry_new ();
825 gtk_widget_show (entry_all_border_right);
826 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_border_right, 1, 2, 8, 9,
827 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
828 (GtkAttachOptions) (0), 5, 0);
829
830 entry_all_padding_top = gtk_entry_new ();
831 gtk_widget_show (entry_all_padding_top);
832 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_padding_top, 1, 2, 11, 12,
833 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
834 (GtkAttachOptions) (0), 5, 0);
835
836 entry_all_padding_left = gtk_entry_new ();
837 gtk_widget_show (entry_all_padding_left);
838 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_padding_left, 1, 2, 12, 13,
839 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
840 (GtkAttachOptions) (0), 5, 0);
841
842 entry_all_margin_right = gtk_entry_new ();
843 gtk_widget_show (entry_all_margin_right);
844 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_margin_right, 1, 2, 20, 21,
845 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
846 (GtkAttachOptions) (0), 5, 0);
847
848 button_all_height = gtk_button_new_with_mnemonic (_("Set"));
849 gtk_widget_show (button_all_height);
850 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_height, 2, 3, 2, 3,
851 (GtkAttachOptions) (GTK_FILL),
852 (GtkAttachOptions) (0), 5, 0);
853
854 button_all_border_top = gtk_button_new_with_mnemonic (_("Set"));
855 gtk_widget_show (button_all_border_top);
856 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_border_top, 2, 3, 5, 6,
857 (GtkAttachOptions) (GTK_FILL),
858 (GtkAttachOptions) (0), 5, 0);
859
860 button_all_border_left = gtk_button_new_with_mnemonic (_("Set"));
861 gtk_widget_show (button_all_border_left);
862 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_border_left, 2, 3, 6, 7,
863 (GtkAttachOptions) (GTK_FILL),
864 (GtkAttachOptions) (0), 5, 0);
865
866 button_all_border_bottom = gtk_button_new_with_mnemonic (_("Set"));
867 gtk_widget_show (button_all_border_bottom);
868 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_border_bottom, 2, 3, 7, 8,
869 (GtkAttachOptions) (GTK_FILL),
870 (GtkAttachOptions) (0), 5, 0);
871
872 button_all_border_right = gtk_button_new_with_mnemonic (_("Set"));
873 gtk_widget_show (button_all_border_right);
874 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_border_right, 2, 3, 8, 9,
875 (GtkAttachOptions) (GTK_FILL),
876 (GtkAttachOptions) (0), 5, 0);
877
878 button_all_padding_top = gtk_button_new_with_mnemonic (_("Set"));
879 gtk_widget_show (button_all_padding_top);
880 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_padding_top, 2, 3, 11, 12,
881 (GtkAttachOptions) (GTK_FILL),
882 (GtkAttachOptions) (0), 5, 0);
883
884 button_all_padding_left = gtk_button_new_with_mnemonic (_("Set"));
885 gtk_widget_show (button_all_padding_left);
886 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_padding_left, 2, 3, 12, 13,
887 (GtkAttachOptions) (GTK_FILL),
888 (GtkAttachOptions) (0), 5, 0);
889
890 button_all_margin_right = gtk_button_new_with_mnemonic (_("Set"));
891 gtk_widget_show (button_all_margin_right);
892 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_margin_right, 2, 3, 20, 21,
893 (GtkAttachOptions) (GTK_FILL),
894 (GtkAttachOptions) (0), 5, 0);
895
896 label_all_height = gtk_label_new (_("height"));
897 gtk_widget_show (label_all_height);
898 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_height, 0, 1, 2, 3,
899 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
900 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
901 gtk_label_set_justify (GTK_LABEL (label_all_height), GTK_JUSTIFY_LEFT);
902 gtk_misc_set_alignment (GTK_MISC (label_all_height), 0, 0.5);
903
904 label_all_border_left = gtk_label_new (_("border-left"));
905 gtk_widget_show (label_all_border_left);
906 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_border_left, 0, 1, 6, 7,
907 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
908 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
909 gtk_label_set_justify (GTK_LABEL (label_all_border_left), GTK_JUSTIFY_LEFT);
910 gtk_misc_set_alignment (GTK_MISC (label_all_border_left), 0, 0.5);
911
912 label_all_border_bottom = gtk_label_new (_("border-bottom"));
913 gtk_widget_show (label_all_border_bottom);
914 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_border_bottom, 0, 1, 7, 8,
915 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
916 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
917 gtk_label_set_justify (GTK_LABEL (label_all_border_bottom), GTK_JUSTIFY_LEFT);
918 gtk_misc_set_alignment (GTK_MISC (label_all_border_bottom), 0, 0.5);
919
920 label_all_border_right = gtk_label_new (_("border-right"));
921 gtk_widget_show (label_all_border_right);
922 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_border_right, 0, 1, 8, 9,
923 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
924 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
925 gtk_label_set_justify (GTK_LABEL (label_all_border_right), GTK_JUSTIFY_LEFT);
926 gtk_misc_set_alignment (GTK_MISC (label_all_border_right), 0, 0.5);
927
928 label_all_padding_top = gtk_label_new (_("padding-top"));
929 gtk_widget_show (label_all_padding_top);
930 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_padding_top, 0, 1, 11, 12,
931 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
932 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
933 gtk_label_set_justify (GTK_LABEL (label_all_padding_top), GTK_JUSTIFY_LEFT);
934 gtk_misc_set_alignment (GTK_MISC (label_all_padding_top), 0, 0.5);
935
936 label_all_padding_left = gtk_label_new (_("padding-left"));
937 gtk_widget_show (label_all_padding_left);
938 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_padding_left, 0, 1, 12, 13,
939 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
940 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
941 gtk_label_set_justify (GTK_LABEL (label_all_padding_left), GTK_JUSTIFY_LEFT);
942 gtk_misc_set_alignment (GTK_MISC (label_all_padding_left), 0, 0.5);
943
944 button_all_padding_bottom = gtk_button_new_with_mnemonic (_("Set"));
945 gtk_widget_show (button_all_padding_bottom);
946 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_padding_bottom, 2, 3, 13, 14,
947 (GtkAttachOptions) (GTK_FILL),
948 (GtkAttachOptions) (0), 5, 0);
949
950 button_all_padding_right = gtk_button_new_with_mnemonic (_("Set"));
951 gtk_widget_show (button_all_padding_right);
952 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_padding_right, 2, 3, 14, 15,
953 (GtkAttachOptions) (GTK_FILL),
954 (GtkAttachOptions) (0), 5, 0);
955
956 button_all_margin_bottom = gtk_button_new_with_mnemonic (_("Set"));
957 gtk_widget_show (button_all_margin_bottom);
958 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_margin_bottom, 2, 3, 19, 20,
959 (GtkAttachOptions) (GTK_FILL),
960 (GtkAttachOptions) (0), 5, 0);
961
962 entry_all_padding_bottom = gtk_entry_new ();
963 gtk_widget_show (entry_all_padding_bottom);
964 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_padding_bottom, 1, 2, 13, 14,
965 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
966 (GtkAttachOptions) (0), 5, 0);
967
968 entry_all_margin_bottom = gtk_entry_new ();
969 gtk_widget_show (entry_all_margin_bottom);
970 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_margin_bottom, 1, 2, 19, 20,
971 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
972 (GtkAttachOptions) (0), 5, 0);
973
974 entry_all_padding_right = gtk_entry_new ();
975 gtk_widget_show (entry_all_padding_right);
976 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_padding_right, 1, 2, 14, 15,
977 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
978 (GtkAttachOptions) (0), 5, 0);
979
980 label_all_padding_bottom = gtk_label_new (_("padding-bottom"));
981 gtk_widget_show (label_all_padding_bottom);
982 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_padding_bottom, 0, 1, 13, 14,
983 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
984 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
985 gtk_label_set_justify (GTK_LABEL (label_all_padding_bottom), GTK_JUSTIFY_LEFT);
986 gtk_misc_set_alignment (GTK_MISC (label_all_padding_bottom), 0, 0.5);
987
988 label_all_padding_right = gtk_label_new (_("padding-right"));
989 gtk_widget_show (label_all_padding_right);
990 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_padding_right, 0, 1, 14, 15,
991 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
992 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
993 gtk_label_set_justify (GTK_LABEL (label_all_padding_right), GTK_JUSTIFY_LEFT);
994 gtk_misc_set_alignment (GTK_MISC (label_all_padding_right), 0, 0.5);
995
996 label_all_margin_bottom = gtk_label_new (_("margin-bottom"));
997 gtk_widget_show (label_all_margin_bottom);
998 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_margin_bottom, 0, 1, 19, 20,
999 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1000 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
1001 gtk_label_set_justify (GTK_LABEL (label_all_margin_bottom), GTK_JUSTIFY_LEFT);
1002 gtk_misc_set_alignment (GTK_MISC (label_all_margin_bottom), 0, 0.5);
1003
1004 label_all_margin_right = gtk_label_new (_("margin-right"));
1005 gtk_widget_show (label_all_margin_right);
1006 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_margin_right, 0, 1, 20, 21,
1007 (GtkAttachOptions) (GTK_FILL),
1008 (GtkAttachOptions) (0), 10, 0);
1009 gtk_label_set_justify (GTK_LABEL (label_all_margin_right), GTK_JUSTIFY_LEFT);
1010 gtk_misc_set_alignment (GTK_MISC (label_all_margin_right), 0, 0.5);
1011
1012 label_all_border_top = gtk_label_new (_("border-top"));
1013 gtk_widget_show (label_all_border_top);
1014 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_border_top, 0, 1, 5, 6,
1015 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1016 (GtkAttachOptions) (GTK_EXPAND), 10, 0);
1017 gtk_label_set_justify (GTK_LABEL (label_all_border_top), GTK_JUSTIFY_LEFT);
1018 gtk_misc_set_alignment (GTK_MISC (label_all_border_top), 0, 0.5);
1019
1020 label_blank = gtk_label_new ("");
1021 gtk_widget_show (label_blank);
1022 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 1, 2, 4, 5,
1023 (GtkAttachOptions) (GTK_FILL),
1024 (GtkAttachOptions) (0), 0, 0);
1025 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1026 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1027
1028 label_blank = gtk_label_new ("");
1029 gtk_widget_show (label_blank);
1030 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 2, 3, 4, 5,
1031 (GtkAttachOptions) (GTK_FILL),
1032 (GtkAttachOptions) (0), 0, 0);
1033 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1034 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1035
1036 label_blank = gtk_label_new ("");
1037 gtk_widget_show (label_blank);
1038 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 1, 2, 10, 11,
1039 (GtkAttachOptions) (GTK_FILL),
1040 (GtkAttachOptions) (0), 0, 0);
1041 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1042 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1043
1044 label_blank = gtk_label_new ("");
1045 gtk_widget_show (label_blank);
1046 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 2, 3, 10, 11,
1047 (GtkAttachOptions) (GTK_FILL),
1048 (GtkAttachOptions) (0), 0, 0);
1049 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1050 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1051
1052 label_blank = gtk_label_new ("");
1053 gtk_widget_show (label_blank);
1054 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 1, 2, 16, 17,
1055 (GtkAttachOptions) (GTK_FILL),
1056 (GtkAttachOptions) (0), 0, 0);
1057 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1058 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1059
1060
1061 label_blank = gtk_label_new ("");
1062 gtk_widget_show (label_blank);
1063 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 2, 3, 16, 17,
1064 (GtkAttachOptions) (GTK_FILL),
1065 (GtkAttachOptions) (0), 0, 0);
1066 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1067 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1068
1069 label_all_margin_top = gtk_label_new (_("margin-top"));
1070 gtk_widget_show (label_all_margin_top);
1071 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_margin_top, 0, 1, 17, 18,
1072 (GtkAttachOptions) (GTK_FILL),
1073 (GtkAttachOptions) (0), 10, 0);
1074 gtk_label_set_justify (GTK_LABEL (label_all_margin_top), GTK_JUSTIFY_LEFT);
1075 gtk_misc_set_alignment (GTK_MISC (label_all_margin_top), 0, 0.5);
1076
1077 label_all_margin_left = gtk_label_new (_("margin-left"));
1078 gtk_widget_show (label_all_margin_left);
1079 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_margin_left, 0, 1, 18, 19,
1080 (GtkAttachOptions) (GTK_FILL),
1081 (GtkAttachOptions) (0), 10, 0);
1082 gtk_label_set_justify (GTK_LABEL (label_all_margin_left), GTK_JUSTIFY_LEFT);
1083 gtk_misc_set_alignment (GTK_MISC (label_all_margin_left), 0, 0.5);
1084
1085 entry_all_margin_top = gtk_entry_new ();
1086 gtk_widget_show (entry_all_margin_top);
1087 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_margin_top, 1, 2, 17, 18,
1088 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1089 (GtkAttachOptions) (0), 5, 0);
1090
1091 entry_all_margin_left = gtk_entry_new ();
1092 gtk_widget_show (entry_all_margin_left);
1093 gtk_table_attach (GTK_TABLE (table_all_border_right), entry_all_margin_left, 1, 2, 18, 19,
1094 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1095 (GtkAttachOptions) (0), 5, 0);
1096
1097 button_all_margin_top = gtk_button_new_with_mnemonic (_("Set"));
1098 gtk_widget_show (button_all_margin_top);
1099 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_margin_top, 2, 3, 17, 18,
1100 (GtkAttachOptions) (GTK_FILL),
1101 (GtkAttachOptions) (0), 5, 0);
1102
1103 button_all_margin_left = gtk_button_new_with_mnemonic (_("Set"));
1104 gtk_widget_show (button_all_margin_left);
1105 gtk_table_attach (GTK_TABLE (table_all_border_right), button_all_margin_left, 2, 3, 18, 19,
1106 (GtkAttachOptions) (GTK_FILL),
1107 (GtkAttachOptions) (0), 5, 0);
1108
1109 label_all_padding_big = gtk_label_new (_("<span size='large'>Padding</span>"));
1110 gtk_widget_show (label_all_padding_big);
1111 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_padding_big, 0, 1, 10, 11,
1112 (GtkAttachOptions) (GTK_FILL),
1113 (GtkAttachOptions) (0), 0, 0);
1114 gtk_label_set_use_markup (GTK_LABEL (label_all_padding_big), TRUE);
1115 gtk_label_set_justify (GTK_LABEL (label_all_padding_big), GTK_JUSTIFY_LEFT);
1116 gtk_misc_set_alignment (GTK_MISC (label_all_padding_big), 0, 0.5);
1117
1118 label_all_margin_big = gtk_label_new (_("<span size='large'>Margin</span>"));
1119 gtk_widget_show (label_all_margin_big);
1120 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_margin_big, 0, 1, 16, 17,
1121 (GtkAttachOptions) (GTK_FILL),
1122 (GtkAttachOptions) (0), 0, 0);
1123 gtk_label_set_use_markup (GTK_LABEL (label_all_margin_big), TRUE);
1124 gtk_label_set_justify (GTK_LABEL (label_all_margin_big), GTK_JUSTIFY_LEFT);
1125 gtk_misc_set_alignment (GTK_MISC (label_all_margin_big), 0, 0.5);
1126
1127 label_all_border_big = gtk_label_new (_("<span size='large'>Border</span>"));
1128 gtk_widget_show (label_all_border_big);
1129 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_border_big, 0, 1, 4, 5,
1130 (GtkAttachOptions) (GTK_FILL),
1131 (GtkAttachOptions) (0), 0, 0);
1132 gtk_label_set_use_markup (GTK_LABEL (label_all_border_big), TRUE);
1133 gtk_label_set_justify (GTK_LABEL (label_all_border_big), GTK_JUSTIFY_LEFT);
1134 gtk_misc_set_alignment (GTK_MISC (label_all_border_big), 0, 0.5);
1135
1136 label_blank = gtk_label_new ("");
1137 gtk_widget_show (label_blank);
1138 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 0, 1, 15, 16,
1139 (GtkAttachOptions) (GTK_FILL),
1140 (GtkAttachOptions) (0), 0, 0);
1141 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1142 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1143
1144 label_blank = gtk_label_new ("");
1145 gtk_widget_show (label_blank);
1146 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 1, 2, 15, 16,
1147 (GtkAttachOptions) (GTK_FILL),
1148 (GtkAttachOptions) (0), 0, 0);
1149 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1150 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1151
1152 label_blank = gtk_label_new ("");
1153 gtk_widget_show (label_blank);
1154 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 2, 3, 15, 16,
1155 (GtkAttachOptions) (GTK_FILL),
1156 (GtkAttachOptions) (0), 0, 0);
1157 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1158 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1159
1160 label_blank = gtk_label_new ("");
1161 gtk_widget_show (label_blank);
1162 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 0, 1, 9, 10,
1163 (GtkAttachOptions) (GTK_FILL),
1164 (GtkAttachOptions) (0), 0, 0);
1165 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1166 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1167
1168 label_blank = gtk_label_new ("");
1169 gtk_widget_show (label_blank);
1170 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 1, 2, 9, 10,
1171 (GtkAttachOptions) (GTK_FILL),
1172 (GtkAttachOptions) (0), 0, 0);
1173 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1174 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1175
1176 label_blank = gtk_label_new ("");
1177 gtk_widget_show (label_blank);
1178 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 2, 3, 9, 10,
1179 (GtkAttachOptions) (GTK_FILL),
1180 (GtkAttachOptions) (0), 0, 0);
1181 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1182 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1183
1184 label_blank = gtk_label_new ("");
1185 gtk_widget_show (label_blank);
1186 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 0, 1, 3, 4,
1187 (GtkAttachOptions) (GTK_FILL),
1188 (GtkAttachOptions) (0), 0, 0);
1189 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1190 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1191
1192 label_blank = gtk_label_new ("");
1193 gtk_widget_show (label_blank);
1194 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 1, 2, 3, 4,
1195 (GtkAttachOptions) (GTK_FILL),
1196 (GtkAttachOptions) (0), 0, 0);
1197 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1198 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1199
1200 label_blank = gtk_label_new ("");
1201 gtk_widget_show (label_blank);
1202 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 2, 3, 3, 4,
1203 (GtkAttachOptions) (GTK_FILL),
1204 (GtkAttachOptions) (0), 0, 0);
1205 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1206 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1207
1208 label_all_box_big = gtk_label_new (_("<span size='large'>Box</span>"));
1209 gtk_widget_show (label_all_box_big);
1210 gtk_table_attach (GTK_TABLE (table_all_border_right), label_all_box_big, 0, 1, 0, 1,
1211 (GtkAttachOptions) (GTK_FILL),
1212 (GtkAttachOptions) (0), 0, 0);
1213 gtk_label_set_use_markup (GTK_LABEL (label_all_box_big), TRUE);
1214 gtk_label_set_justify (GTK_LABEL (label_all_box_big), GTK_JUSTIFY_LEFT);
1215 gtk_misc_set_alignment (GTK_MISC (label_all_box_big), 0, 0.5);
1216
1217 label_blank = gtk_label_new ("");
1218 gtk_widget_show (label_blank);
1219 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 1, 2, 0, 1,
1220 (GtkAttachOptions) (GTK_FILL),
1221 (GtkAttachOptions) (0), 0, 0);
1222 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1223 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1224
1225 label_blank = gtk_label_new ("");
1226 gtk_widget_show (label_blank);
1227 gtk_table_attach (GTK_TABLE (table_all_border_right), label_blank, 2, 3, 0, 1,
1228 (GtkAttachOptions) (GTK_FILL),
1229 (GtkAttachOptions) (0), 0, 0);
1230 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1231 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1232
1233 label_prop = gtk_label_new (_("All properties"));
1234 gtk_widget_show (label_prop);
1235 gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 0), label_prop);
1236 gtk_label_set_justify (GTK_LABEL (label_prop), GTK_JUSTIFY_LEFT);
1237
1238 table_shorthand = gtk_table_new (8, 3, FALSE);
1239 gtk_widget_show (table_shorthand);
1240 gtk_container_add (GTK_CONTAINER (notebook), table_shorthand);
1241 gtk_container_set_border_width (GTK_CONTAINER (table_shorthand), 5);
1242
1243 entry_short_width = gtk_entry_new ();
1244 gtk_widget_show (entry_short_width);
1245 gtk_table_attach (GTK_TABLE (table_shorthand), entry_short_width, 1, 2, 1, 2,
1246 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1247 (GtkAttachOptions) (0), 5, 0);
1248
1249 button_short_width = gtk_button_new_with_mnemonic (_("Set"));
1250 gtk_widget_show (button_short_width);
1251 gtk_table_attach (GTK_TABLE (table_shorthand), button_short_width, 2, 3, 1, 2,
1252 (GtkAttachOptions) (GTK_FILL),
1253 (GtkAttachOptions) (0), 5, 0);
1254
1255 entry_short_height = gtk_entry_new ();
1256 gtk_widget_show (entry_short_height);
1257 gtk_table_attach (GTK_TABLE (table_shorthand), entry_short_height, 1, 2, 2, 3,
1258 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1259 (GtkAttachOptions) (0), 5, 0);
1260
1261 entry_short_border = gtk_entry_new ();
1262 gtk_widget_show (entry_short_border);
1263 gtk_table_attach (GTK_TABLE (table_shorthand), entry_short_border, 1, 2, 5, 6,
1264 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1265 (GtkAttachOptions) (0), 5, 0);
1266
1267 entry_short_margin = gtk_entry_new ();
1268 gtk_widget_show (entry_short_margin);
1269 gtk_table_attach (GTK_TABLE (table_shorthand), entry_short_margin, 1, 2, 6, 7,
1270 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1271 (GtkAttachOptions) (0), 5, 0);
1272
1273 entry_short_padding = gtk_entry_new ();
1274 gtk_widget_show (entry_short_padding);
1275 gtk_table_attach (GTK_TABLE (table_shorthand), entry_short_padding, 1, 2, 7, 8,
1276 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1277 (GtkAttachOptions) (0), 5, 0);
1278
1279 button_short_height = gtk_button_new_with_mnemonic (_("Set"));
1280 gtk_widget_show (button_short_height);
1281 gtk_table_attach (GTK_TABLE (table_shorthand), button_short_height, 2, 3, 2, 3,
1282 (GtkAttachOptions) (GTK_FILL),
1283 (GtkAttachOptions) (0), 5, 0);
1284
1285 button_short_border = gtk_button_new_with_mnemonic (_("Set"));
1286 gtk_widget_show (button_short_border);
1287 gtk_table_attach (GTK_TABLE (table_shorthand), button_short_border, 2, 3, 5, 6,
1288 (GtkAttachOptions) (GTK_FILL),
1289 (GtkAttachOptions) (0), 5, 0);
1290
1291 button_short_margin = gtk_button_new_with_mnemonic (_("Set"));
1292 gtk_widget_show (button_short_margin);
1293 gtk_table_attach (GTK_TABLE (table_shorthand), button_short_margin, 2, 3, 6, 7,
1294 (GtkAttachOptions) (GTK_FILL),
1295 (GtkAttachOptions) (0), 5, 0);
1296
1297 button_short_padding = gtk_button_new_with_mnemonic (_("Set"));
1298 gtk_widget_show (button_short_padding);
1299 gtk_table_attach (GTK_TABLE (table_shorthand), button_short_padding, 2, 3, 7, 8,
1300 (GtkAttachOptions) (GTK_FILL),
1301 (GtkAttachOptions) (0), 5, 0);
1302
1303 label_short_box_big = gtk_label_new (_("<span size='large'>Box</span>"));
1304 gtk_widget_show (label_short_box_big);
1305 gtk_table_attach (GTK_TABLE (table_shorthand), label_short_box_big, 0, 1, 0, 1,
1306 (GtkAttachOptions) (GTK_FILL),
1307 (GtkAttachOptions) (0), 0, 0);
1308 gtk_label_set_use_markup (GTK_LABEL (label_short_box_big), TRUE);
1309 gtk_label_set_justify (GTK_LABEL (label_short_box_big), GTK_JUSTIFY_LEFT);
1310 gtk_misc_set_alignment (GTK_MISC (label_short_box_big), 0, 0.5);
1311
1312 label_blank = gtk_label_new ("");
1313 gtk_widget_show (label_blank);
1314 gtk_table_attach (GTK_TABLE (table_shorthand), label_blank, 1, 2, 0, 1,
1315 (GtkAttachOptions) (GTK_FILL),
1316 (GtkAttachOptions) (0), 0, 0);
1317 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1318 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1319
1320 label_blank = gtk_label_new ("");
1321 gtk_widget_show (label_blank);
1322 gtk_table_attach (GTK_TABLE (table_shorthand), label_blank, 2, 3, 0, 1,
1323 (GtkAttachOptions) (GTK_FILL),
1324 (GtkAttachOptions) (0), 0, 0);
1325 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1326 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1327
1328 label_blank = gtk_label_new ("");
1329 gtk_widget_show (label_blank);
1330 gtk_table_attach (GTK_TABLE (table_shorthand), label_blank, 1, 2, 4, 5,
1331 (GtkAttachOptions) (GTK_FILL),
1332 (GtkAttachOptions) (0), 0, 0);
1333 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1334 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1335
1336 label_blank = gtk_label_new ("");
1337 gtk_widget_show (label_blank);
1338 gtk_table_attach (GTK_TABLE (table_shorthand), label_blank, 2, 3, 4, 5,
1339 (GtkAttachOptions) (GTK_FILL),
1340 (GtkAttachOptions) (0), 0, 0);
1341 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1342 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1343
1344 label_short_width = gtk_label_new (_("width"));
1345 gtk_widget_show (label_short_width);
1346 gtk_table_attach (GTK_TABLE (table_shorthand), label_short_width, 0, 1, 1, 2,
1347 (GtkAttachOptions) (GTK_FILL),
1348 (GtkAttachOptions) (0), 10, 0);
1349 gtk_label_set_justify (GTK_LABEL (label_short_width), GTK_JUSTIFY_LEFT);
1350 gtk_misc_set_alignment (GTK_MISC (label_short_width), 0, 0.5);
1351
1352 label_short_height = gtk_label_new (_("height"));
1353 gtk_widget_show (label_short_height);
1354 gtk_table_attach (GTK_TABLE (table_shorthand), label_short_height, 0, 1, 2, 3,
1355 (GtkAttachOptions) (GTK_FILL),
1356 (GtkAttachOptions) (0), 10, 0);
1357 gtk_label_set_justify (GTK_LABEL (label_short_height), GTK_JUSTIFY_LEFT);
1358 gtk_misc_set_alignment (GTK_MISC (label_short_height), 0, 0.5);
1359
1360 label_short_border = gtk_label_new (_("border"));
1361 gtk_widget_show (label_short_border);
1362 gtk_table_attach (GTK_TABLE (table_shorthand), label_short_border, 0, 1, 5, 6,
1363 (GtkAttachOptions) (GTK_FILL),
1364 (GtkAttachOptions) (0), 10, 0);
1365 gtk_label_set_justify (GTK_LABEL (label_short_border), GTK_JUSTIFY_LEFT);
1366 gtk_misc_set_alignment (GTK_MISC (label_short_border), 0, 0.5);
1367
1368 label_short_margin = gtk_label_new (_("margin"));
1369 gtk_widget_show (label_short_margin);
1370 gtk_table_attach (GTK_TABLE (table_shorthand), label_short_margin, 0, 1, 6, 7,
1371 (GtkAttachOptions) (GTK_FILL),
1372 (GtkAttachOptions) (0), 10, 0);
1373 gtk_label_set_justify (GTK_LABEL (label_short_margin), GTK_JUSTIFY_LEFT);
1374 gtk_misc_set_alignment (GTK_MISC (label_short_margin), 0, 0.5);
1375
1376 label_short_padding = gtk_label_new (_("padding"));
1377 gtk_widget_show (label_short_padding);
1378 gtk_table_attach (GTK_TABLE (table_shorthand), label_short_padding, 0, 1, 7, 8,
1379 (GtkAttachOptions) (GTK_FILL),
1380 (GtkAttachOptions) (0), 10, 0);
1381 gtk_label_set_justify (GTK_LABEL (label_short_padding), GTK_JUSTIFY_LEFT);
1382 gtk_misc_set_alignment (GTK_MISC (label_short_padding), 0, 0.5);
1383
1384 label_short_box_big_prop = gtk_label_new (_("<span size='large'>Box properties</span>"));
1385 gtk_widget_show (label_short_box_big_prop);
1386 gtk_table_attach (GTK_TABLE (table_shorthand), label_short_box_big_prop, 0, 1, 4, 5,
1387 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1388 (GtkAttachOptions) (0), 0, 0);
1389 gtk_label_set_use_markup (GTK_LABEL (label_short_box_big_prop), TRUE);
1390 gtk_label_set_justify (GTK_LABEL (label_short_box_big_prop), GTK_JUSTIFY_LEFT);
1391 gtk_misc_set_alignment (GTK_MISC (label_short_box_big_prop), 0, 0.5);
1392
1393 label_blank = gtk_label_new ("");
1394 gtk_widget_show (label_blank);
1395 gtk_table_attach (GTK_TABLE (table_shorthand), label_blank, 0, 1, 3, 4,
1396 (GtkAttachOptions) (GTK_FILL),
1397 (GtkAttachOptions) (0), 0, 0);
1398 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1399 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1400
1401 label_blank = gtk_label_new ("");
1402 gtk_widget_show (label_blank);
1403 gtk_table_attach (GTK_TABLE (table_shorthand), label_blank, 1, 2, 3, 4,
1404 (GtkAttachOptions) (GTK_FILL),
1405 (GtkAttachOptions) (0), 0, 0);
1406 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1407 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1408
1409 label_blank = gtk_label_new ("");
1410 gtk_widget_show (label_blank);
1411 gtk_table_attach (GTK_TABLE (table_shorthand), label_blank, 2, 3, 3, 4,
1412 (GtkAttachOptions) (GTK_FILL),
1413 (GtkAttachOptions) (0), 0, 0);
1414 gtk_label_set_justify (GTK_LABEL (label_blank), GTK_JUSTIFY_LEFT);
1415 gtk_misc_set_alignment (GTK_MISC (label_blank), 0, 0.5);
1416
1417 label_shorthand = gtk_label_new (_("Shorthand properties"));
1418 gtk_widget_show (label_shorthand);
1419 gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 1), label_shorthand);
1420 gtk_label_set_justify (GTK_LABEL (label_shorthand), GTK_JUSTIFY_LEFT);
1421
1422 hbox_help = gtk_hbox_new (FALSE, 0);
1423 gtk_widget_show (hbox_help);
1424 gtk_container_add (GTK_CONTAINER (notebook), hbox_help);
1425
1426 vbox_help = gtk_vbox_new (FALSE, 0);
1427 gtk_widget_show (vbox_help);
1428 gtk_box_pack_start (GTK_BOX (hbox_help), vbox_help, TRUE, TRUE, 0);
1429
1430 scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
1431 gtk_widget_show (scrolledwindow);
1432 gtk_box_pack_start (GTK_BOX (vbox_help), scrolledwindow, TRUE, TRUE, 0);
1433
1434 textview = gtk_text_view_new ();
1435 gtk_widget_show (textview);
1436 gtk_container_add (GTK_CONTAINER (scrolledwindow), textview);
1437 gtk_container_set_border_width (GTK_CONTAINER (textview), 5);
1438 gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (textview), GTK_WRAP_WORD);
1439 gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview)),
1440 _("From: http://www.w3.org/TR/CSS2/box.html\n\nEach box has a content area (e.g., text, an image, etc.) and optional surrounding padding, border, and margin areas; the size of each area is specified by properties defined below. The following diagram shows how these areas relate and the terminology used to refer to pieces of margin, border, and padding.\n\nThe perimeter of each of the four areas (content, padding, border, and margin) is called an \"edge\", so each box has four edges:\n\n- content edge or inner edge:\n The content edge surrounds the element's rendered content. \n\n- padding edge:\n The padding edge surrounds the box padding. If the padding has 0 width, the padding edge is the same as the content edge. The padding edge of a box defines the edges of the containing block established by the box. \n\n- border edge:\n The border edge surrounds the box's border. If the border has 0 width, the border edge is the same as the padding edge. \n\n- margin edge or outer edge:\n The margin edge surrounds the box margin. If the margin has 0 width, the margin edge is the same as the border edge. "), -1);
1441
1442 drawingarea = gtk_drawing_area_new();
1443 gtk_widget_show (drawingarea);
1444 gtk_box_pack_start (GTK_BOX (vbox_help), drawingarea, TRUE, TRUE, 0);
1445
1446 label_help = gtk_label_new (_("Quick help"));
1447 gtk_widget_show (label_help);
1448 gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 2), label_help);
1449 gtk_label_set_justify (GTK_LABEL (label_help), GTK_JUSTIFY_LEFT);
1450
1451 dialog_action_area = GTK_DIALOG (box_wizard)->action_area;
1452 gtk_widget_show (dialog_action_area);
1453 gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area), GTK_BUTTONBOX_END);
1454
1455 cancelbutton = gtk_button_new_from_stock ("gtk-cancel");
1456 gtk_widget_show (cancelbutton);
1457 gtk_dialog_add_action_widget (GTK_DIALOG (box_wizard), cancelbutton, GTK_RESPONSE_CANCEL);
1458 GTK_WIDGET_SET_FLAGS (cancelbutton, GTK_CAN_DEFAULT);
1459
1460 applybutton = gtk_button_new_from_stock ("gtk-apply");
1461 gtk_widget_show (applybutton);
1462 gtk_dialog_add_action_widget (GTK_DIALOG (box_wizard), applybutton, GTK_RESPONSE_APPLY);
1463 GTK_WIDGET_SET_FLAGS (applybutton, GTK_CAN_DEFAULT);
1464
1465 okbutton = gtk_button_new_from_stock ("gtk-ok");
1466 gtk_widget_show (okbutton);
1467 gtk_dialog_add_action_widget (GTK_DIALOG (box_wizard), okbutton, GTK_RESPONSE_OK);
1468 GTK_WIDGET_SET_FLAGS (okbutton, GTK_CAN_DEFAULT);
1469
1470 //
1471 g_signal_connect ((gpointer) drawingarea, "expose_event",
1472 G_CALLBACK (on_drawingarea_expose_event),
1473 NULL);
1474 /*
1475 g_signal_connect ((gpointer) box_wizard, "close",
1476 G_CALLBACK (on_box_wizard_close),
1477 box_wizard);
1478 */
1479 g_signal_connect ((gpointer) button_all_width, "clicked",
1480 G_CALLBACK (on_button_all_width_clicked),
1481 window);
1482 g_signal_connect ((gpointer) button_all_height, "clicked",
1483 G_CALLBACK (on_button_all_height_clicked),
1484 window);
1485 g_signal_connect ((gpointer) button_all_border_top, "clicked",
1486 G_CALLBACK (on_button_all_border_top_clicked),
1487 window);
1488 g_signal_connect ((gpointer) button_all_border_left, "clicked",
1489 G_CALLBACK (on_button_all_border_left_clicked),
1490 window);
1491 g_signal_connect ((gpointer) button_all_border_bottom, "clicked",
1492 G_CALLBACK (on_button_all_border_bottom_clicked),
1493 window);
1494 g_signal_connect ((gpointer) button_all_border_right, "clicked",
1495 G_CALLBACK (on_button_all_border_right_clicked),
1496 window);
1497 g_signal_connect ((gpointer) button_all_padding_top, "clicked",
1498 G_CALLBACK (on_button_all_padding_top_clicked),
1499 window);
1500 g_signal_connect ((gpointer) button_all_padding_left, "clicked",
1501 G_CALLBACK (on_button_all_padding_left_clicked),
1502 window);
1503 g_signal_connect ((gpointer) button_all_margin_right, "clicked",
1504 G_CALLBACK (on_button_all_margin_right_clicked),
1505 window);
1506 g_signal_connect ((gpointer) button_all_padding_bottom, "clicked",
1507 G_CALLBACK (on_button_all_padding_bottom_clicked),
1508 window);
1509 g_signal_connect ((gpointer) button_all_padding_right, "clicked",
1510 G_CALLBACK (on_button_all_padding_right_clicked),
1511 window);
1512 g_signal_connect ((gpointer) button_all_margin_bottom, "clicked",
1513 G_CALLBACK (on_button_all_margin_bottom_clicked),
1514 window);
1515 g_signal_connect ((gpointer) button_all_margin_top, "clicked",
1516 G_CALLBACK (on_button_all_margin_top_clicked),
1517 window);
1518 g_signal_connect ((gpointer) button_all_margin_left, "clicked",
1519 G_CALLBACK (on_button_all_margin_left_clicked),
1520 window);
1521 g_signal_connect ((gpointer) button_short_width, "clicked",
1522 G_CALLBACK (on_button_short_width_clicked),
1523 window);
1524 g_signal_connect ((gpointer) button_short_height, "clicked",
1525 G_CALLBACK (on_button_short_height_clicked),
1526 window);
1527 g_signal_connect ((gpointer) button_short_border, "clicked",
1528 G_CALLBACK (on_button_short_border_clicked),
1529 window);
1530 g_signal_connect ((gpointer) button_short_margin, "clicked",
1531 G_CALLBACK (on_button_short_margin_clicked),
1532 window);
1533 g_signal_connect ((gpointer) button_short_padding, "clicked",
1534 G_CALLBACK (on_button_short_padding_clicked),
1535 window);
1536 g_signal_connect ((gpointer) cancelbutton, "clicked",
1537 G_CALLBACK (on_box_wizard_cancelbutton_clicked),
1538 box_wizard);
1539 g_signal_connect ((gpointer) applybutton, "clicked",
1540 G_CALLBACK (on_box_wizard_applybutton_clicked),
1541 window);
1542 g_signal_connect ((gpointer) okbutton, "clicked",
1543 G_CALLBACK (on_box_wizard_okbutton_clicked),
1544 window);
1545
1546 /* Store pointers to all widgets, for use by lookup_widget(). */
1547 GLADE_HOOKUP_OBJECT_NO_REF (box_wizard, box_wizard, "box_wizard");
1548 GLADE_HOOKUP_OBJECT (box_wizard, notebook, "notebook");
1549 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_width, "entry_all_width");
1550 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_height, "entry_all_height");
1551 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_border_top, "entry_all_border_top");
1552 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_border_left, "entry_all_border_left");
1553 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_border_bottom, "entry_all_border_bottom");
1554 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_border_right, "entry_all_border_right");
1555 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_padding_top, "entry_all_padding_top");
1556 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_padding_left, "entry_all_padding_left");
1557 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_margin_right, "entry_all_margin_right");
1558 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_padding_bottom, "entry_all_padding_bottom");
1559 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_margin_bottom, "entry_all_margin_bottom");
1560 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_padding_right, "entry_all_padding_right");
1561 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_margin_top, "entry_all_margin_top");
1562 GLADE_HOOKUP_OBJECT (box_wizard, entry_all_margin_left, "entry_all_margin_left");
1563 GLADE_HOOKUP_OBJECT (box_wizard, entry_short_width, "entry_short_width");
1564 GLADE_HOOKUP_OBJECT (box_wizard, entry_short_height, "entry_short_height");
1565 GLADE_HOOKUP_OBJECT (box_wizard, entry_short_border, "entry_short_border");
1566 GLADE_HOOKUP_OBJECT (box_wizard, entry_short_margin, "entry_short_margin");
1567 GLADE_HOOKUP_OBJECT (box_wizard, entry_short_padding, "entry_short_padding");
1568 GLADE_HOOKUP_OBJECT (box_wizard, cancelbutton, "cancelbutton");
1569 GLADE_HOOKUP_OBJECT (box_wizard, applybutton, "applybutton");
1570 GLADE_HOOKUP_OBJECT (box_wizard, okbutton, "okbutton");
1571
1572 return box_wizard;
1573 }
1574