1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
4 * (GLABELS) Label and Business Card Creation program for GNOME
6 * ui-commands.c: GLabels UI commands module
8 * Copyright (C) 2001-2003 Jim Evins <evins@snaught.com>.
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27 #include "ui-commands.h"
29 #include <glib/gi18n.h>
30 #include <gtk/gtkwindow.h>
31 #include <gtk/gtkaboutdialog.h>
32 #include <libgnome/gnome-help.h>
33 #include <libgnome/gnome-url.h>
37 #include "template-designer.h"
38 #include "print-dialog.h"
40 #include "prefs-dialog.h"
44 #define LOGO_PIXMAP gnome_program_locate_file (NULL,\
45 GNOME_FILE_DOMAIN_APP_PIXMAP,\
46 "glabels/glabels-about-logo.png",\
50 /****************************************************************************/
51 /** File/New command. */
52 /****************************************************************************/
54 gl_ui_cmd_file_new (GtkAction *action,
57 gl_debug (DEBUG_COMMANDS, "START");
59 g_return_if_fail (action && GTK_IS_ACTION(action));
60 g_return_if_fail (window && GL_IS_WINDOW(window));
64 gl_debug (DEBUG_COMMANDS, "END");
67 /****************************************************************************/
68 /** File/Properties command. */
69 /****************************************************************************/
71 gl_ui_cmd_file_properties (GtkAction *action,
74 gl_debug (DEBUG_COMMANDS, "START");
76 g_return_if_fail (action && GTK_IS_ACTION(action));
77 g_return_if_fail (window && GL_IS_WINDOW(window));
79 gl_file_properties (GL_VIEW(window->view)->label, window);
81 gl_debug (DEBUG_COMMANDS, "END");
84 /****************************************************************************/
85 /** File/Template-Designer command. */
86 /****************************************************************************/
88 gl_ui_cmd_file_template_designer (GtkAction *action,
93 gl_debug (DEBUG_COMMANDS, "START");
95 g_return_if_fail (action && GTK_IS_ACTION(action));
96 g_return_if_fail (window && GL_IS_WINDOW(window));
98 dialog = gl_template_designer_new (GTK_WINDOW(window));
100 gtk_widget_show (dialog);
102 gl_debug (DEBUG_COMMANDS, "END");
105 /****************************************************************************/
106 /** File/Open command. */
107 /****************************************************************************/
109 gl_ui_cmd_file_open (GtkAction *action,
112 gl_debug (DEBUG_COMMANDS, "START");
114 g_return_if_fail (action && GTK_IS_ACTION(action));
115 g_return_if_fail (window && GL_IS_WINDOW(window));
117 gl_file_open (window);
119 gl_debug (DEBUG_COMMANDS, "END");
122 /****************************************************************************/
123 /** File/Open-Recent command. */
124 /****************************************************************************/
126 gl_ui_cmd_file_open_recent (GtkRecentChooser *chooser,
130 gchar *utf8_filename;
132 gl_debug (DEBUG_COMMANDS, "START");
134 g_return_if_fail (chooser && GTK_IS_RECENT_CHOOSER(chooser));
135 g_return_if_fail (window && GL_IS_WINDOW(window));
137 item = gtk_recent_chooser_get_current_item (chooser);
141 utf8_filename = gl_recent_get_utf8_filename (item);
143 gl_debug (DEBUG_COMMANDS, "Selected %s\n", utf8_filename);
145 gl_file_open_recent (utf8_filename, window);
148 gtk_recent_info_unref (item);
150 gl_debug (DEBUG_COMMANDS, "END");
153 /****************************************************************************/
154 /** File/Save command. */
155 /****************************************************************************/
157 gl_ui_cmd_file_save (GtkAction *action,
160 gl_debug (DEBUG_COMMANDS, "START");
162 g_return_if_fail (action && GTK_IS_ACTION(action));
163 g_return_if_fail (window && GL_IS_WINDOW(window));
165 gl_file_save (GL_VIEW(window->view)->label, window);
167 gl_debug (DEBUG_COMMANDS, "END");
170 /****************************************************************************/
171 /** File/Save-as command. */
172 /****************************************************************************/
174 gl_ui_cmd_file_save_as (GtkAction *action,
177 gl_debug (DEBUG_COMMANDS, "START");
179 g_return_if_fail (action && GTK_IS_ACTION(action));
180 g_return_if_fail (window && GL_IS_WINDOW(window));
182 gl_file_save_as (GL_VIEW(window->view)->label, window);
184 gl_debug (DEBUG_COMMANDS, "END");
187 /****************************************************************************/
188 /** File/Print command. */
189 /****************************************************************************/
191 gl_ui_cmd_file_print (GtkAction *action,
194 gl_debug (DEBUG_COMMANDS, "START");
196 g_return_if_fail (action && GTK_IS_ACTION(action));
197 g_return_if_fail (window && GL_IS_WINDOW(window));
199 if (window->print_dialog) {
201 gtk_window_present (GTK_WINDOW(window->print_dialog));
202 gtk_window_set_transient_for (GTK_WINDOW (window->print_dialog),
203 GTK_WINDOW (window));
207 window->print_dialog =
209 gl_print_dialog_new (GL_VIEW(window->view)->label,
210 GTK_WINDOW(window)) );
212 g_signal_connect (G_OBJECT(window->print_dialog), "destroy",
213 G_CALLBACK (gtk_widget_destroyed),
214 &window->print_dialog);
216 gtk_widget_show (GTK_WIDGET (window->print_dialog));
219 gl_debug (DEBUG_COMMANDS, "END");
222 /****************************************************************************/
223 /** File/Close command. */
224 /****************************************************************************/
226 gl_ui_cmd_file_close (GtkAction *action,
229 gl_debug (DEBUG_COMMANDS, "START");
231 g_return_if_fail (action && GTK_IS_ACTION(action));
232 g_return_if_fail (window && GL_IS_WINDOW(window));
234 gl_file_close (window);
236 gl_debug (DEBUG_COMMANDS, "END");
239 /****************************************************************************/
240 /** File/Quit command. */
241 /****************************************************************************/
243 gl_ui_cmd_file_quit (GtkAction *action,
246 gl_debug (DEBUG_COMMANDS, "START");
248 g_return_if_fail (action && GTK_IS_ACTION(action));
249 g_return_if_fail (window && GL_IS_WINDOW(window));
253 gl_debug (DEBUG_COMMANDS, "END");
257 /****************************************************************************/
258 /** Edit/Cut command. */
259 /****************************************************************************/
261 gl_ui_cmd_edit_cut (GtkAction *action,
264 gl_debug (DEBUG_COMMANDS, "START");
266 g_return_if_fail (action && GTK_IS_ACTION(action));
267 g_return_if_fail (window && GL_IS_WINDOW(window));
269 gl_view_cut (GL_VIEW(window->view));
271 gl_debug (DEBUG_COMMANDS, "END");
274 /****************************************************************************/
275 /** Edit/Copy command. */
276 /****************************************************************************/
278 gl_ui_cmd_edit_copy (GtkAction *action,
281 gl_debug (DEBUG_COMMANDS, "START");
283 g_return_if_fail (action && GTK_IS_ACTION(action));
284 g_return_if_fail (window && GL_IS_WINDOW(window));
286 gl_view_copy (GL_VIEW(window->view));
288 gl_debug (DEBUG_COMMANDS, "END");
291 /****************************************************************************/
292 /** Edit/Paste command. */
293 /****************************************************************************/
295 gl_ui_cmd_edit_paste (GtkAction *action,
298 gl_debug (DEBUG_COMMANDS, "START");
300 g_return_if_fail (action && GTK_IS_ACTION(action));
301 g_return_if_fail (window && GL_IS_WINDOW(window));
303 gl_view_paste (GL_VIEW(window->view));
305 gl_debug (DEBUG_COMMANDS, "END");
309 /****************************************************************************/
310 /** Edit/Delete command. */
311 /****************************************************************************/
313 gl_ui_cmd_edit_delete (GtkAction *action,
316 gl_debug (DEBUG_COMMANDS, "START");
318 g_return_if_fail (action && GTK_IS_ACTION(action));
319 g_return_if_fail (window && GL_IS_WINDOW(window));
321 gl_view_delete_selection (GL_VIEW(window->view));
323 gl_debug (DEBUG_COMMANDS, "END");
327 /****************************************************************************/
328 /** Edit/Select-all command. */
329 /****************************************************************************/
331 gl_ui_cmd_edit_select_all (GtkAction *action,
334 gl_debug (DEBUG_COMMANDS, "START");
336 g_return_if_fail (action && GTK_IS_ACTION(action));
337 g_return_if_fail (window && GL_IS_WINDOW(window));
339 gl_view_select_all (GL_VIEW(window->view));
341 gl_debug (DEBUG_COMMANDS, "END");
344 /****************************************************************************/
345 /** Edit/Unselect-all command. */
346 /****************************************************************************/
348 gl_ui_cmd_edit_unselect_all (GtkAction *action,
351 gl_debug (DEBUG_COMMANDS, "START");
353 g_return_if_fail (action && GTK_IS_ACTION(action));
354 g_return_if_fail (window && GL_IS_WINDOW(window));
356 gl_view_unselect_all (GL_VIEW(window->view));
358 gl_debug (DEBUG_COMMANDS, "END");
361 /****************************************************************************/
362 /** Edit/Preferences command. */
363 /****************************************************************************/
365 gl_ui_cmd_edit_preferences (GtkAction *action,
368 static GtkWidget *dlg = NULL;
370 gl_debug (DEBUG_COMMANDS, "START");
372 g_return_if_fail (action && GTK_IS_ACTION(action));
373 g_return_if_fail (window && GL_IS_WINDOW(window));
377 gtk_window_present (GTK_WINDOW (dlg));
378 gtk_window_set_transient_for (GTK_WINDOW (dlg),
383 dlg = gl_prefs_dialog_new (GTK_WINDOW(window));
385 g_signal_connect (G_OBJECT (dlg), "destroy",
386 G_CALLBACK (gtk_widget_destroyed), &dlg);
388 gtk_widget_show (dlg);
392 gl_debug (DEBUG_COMMANDS, "END");
395 /*****************************************************************************/
396 /** View/Property-bar-toggle command. */
397 /*****************************************************************************/
399 gl_ui_cmd_view_property_bar_toggle (GtkToggleAction *action,
404 gl_debug (DEBUG_COMMANDS, "START");
406 g_return_if_fail (action && GTK_IS_TOGGLE_ACTION(action));
407 g_return_if_fail (window && GL_IS_WINDOW(window));
409 state = gtk_toggle_action_get_active (action);
411 gl_prefs->property_toolbar_visible = state;
413 gtk_widget_show (GTK_WIDGET (window->property_bar));
415 gtk_widget_hide (GTK_WIDGET (window->property_bar));
417 gl_prefs_model_save_settings (gl_prefs);
419 gl_debug (DEBUG_COMMANDS, "END");
422 /*****************************************************************************/
423 /** View/Property-bar-tooltips-toggle command. */
424 /*****************************************************************************/
426 gl_ui_cmd_view_property_bar_tips_toggle (GtkToggleAction *action,
431 gl_debug (DEBUG_COMMANDS, "START");
433 g_return_if_fail (action && GTK_IS_TOGGLE_ACTION(action));
434 g_return_if_fail (window && GL_IS_WINDOW(window));
436 state = gtk_toggle_action_get_active (action);
438 gl_prefs->property_toolbar_view_tooltips = state;
439 gl_ui_property_bar_set_tooltips (window->property_bar, state);
440 gl_prefs_model_save_settings (gl_prefs);
442 gl_debug (DEBUG_COMMANDS, "END");
445 /*****************************************************************************/
446 /** View/Grid-toggle command. */
447 /*****************************************************************************/
449 gl_ui_cmd_view_grid_toggle (GtkToggleAction *action,
454 gl_debug (DEBUG_COMMANDS, "START");
456 g_return_if_fail (action && GTK_IS_TOGGLE_ACTION(action));
457 g_return_if_fail (window && GL_IS_WINDOW(window));
459 state = gtk_toggle_action_get_active (action);
461 if (window->view != NULL)
464 gl_view_show_grid (GL_VIEW(window->view));
466 gl_view_hide_grid (GL_VIEW(window->view));
470 gl_prefs->grid_visible = state;
471 gl_prefs_model_save_settings (gl_prefs);
473 gl_debug (DEBUG_COMMANDS, "END");
476 /*****************************************************************************/
477 /** View/Markup-toggle command. */
478 /*****************************************************************************/
480 gl_ui_cmd_view_markup_toggle (GtkToggleAction *action,
485 gl_debug (DEBUG_COMMANDS, "START");
487 g_return_if_fail (action && GTK_IS_TOGGLE_ACTION(action));
488 g_return_if_fail (window && GL_IS_WINDOW(window));
490 state = gtk_toggle_action_get_active (action);
492 if (window->view != NULL)
495 gl_view_show_markup (GL_VIEW(window->view));
497 gl_view_hide_markup (GL_VIEW(window->view));
501 gl_prefs->markup_visible = state;
502 gl_prefs_model_save_settings (gl_prefs);
504 gl_debug (DEBUG_COMMANDS, "END");
507 /*****************************************************************************/
508 /** View/Zoom-in command. */
509 /*****************************************************************************/
511 gl_ui_cmd_view_zoomin (GtkAction *action,
515 gl_debug (DEBUG_COMMANDS, "START");
517 g_return_if_fail (action && GTK_IS_ACTION(action));
518 g_return_if_fail (window && GL_IS_WINDOW(window));
520 if (window->view != NULL) {
521 gl_view_zoom_in (GL_VIEW(window->view));
524 gl_debug (DEBUG_COMMANDS, "END");
527 /*****************************************************************************/
528 /** View/Zoom-out command. */
529 /*****************************************************************************/
531 gl_ui_cmd_view_zoomout (GtkAction *action,
535 gl_debug (DEBUG_COMMANDS, "START");
537 g_return_if_fail (action && GTK_IS_ACTION(action));
538 g_return_if_fail (window && GL_IS_WINDOW(window));
540 if (window->view != NULL) {
541 gl_view_zoom_out (GL_VIEW(window->view));
544 gl_debug (DEBUG_COMMANDS, "END");
547 /*****************************************************************************/
548 /** View/Zoom-1:1 command. */
549 /*****************************************************************************/
551 gl_ui_cmd_view_zoom1to1 (GtkAction *action,
555 gl_debug (DEBUG_COMMANDS, "START");
557 g_return_if_fail (action && GTK_IS_ACTION(action));
558 g_return_if_fail (window && GL_IS_WINDOW(window));
560 if (window->view != NULL) {
561 gl_view_set_zoom (GL_VIEW(window->view), 1.0);
564 gl_debug (DEBUG_COMMANDS, "END");
567 /*****************************************************************************/
568 /** View/Zoom-to-fit command. */
569 /*****************************************************************************/
571 gl_ui_cmd_view_zoom_to_fit (GtkAction *action,
575 gl_debug (DEBUG_COMMANDS, "START");
577 g_return_if_fail (action && GTK_IS_ACTION(action));
578 g_return_if_fail (window && GL_IS_WINDOW(window));
580 if (window->view != NULL) {
581 gl_view_zoom_to_fit (GL_VIEW(window->view));
584 gl_debug (DEBUG_COMMANDS, "END");
587 /*****************************************************************************/
588 /** Objects/Arrow-mode command. */
589 /*****************************************************************************/
591 gl_ui_cmd_objects_arrow_mode (GtkAction *action,
594 gl_debug (DEBUG_COMMANDS, "START");
596 g_return_if_fail (action && GTK_IS_ACTION(action));
597 g_return_if_fail (window && GL_IS_WINDOW(window));
599 if (window->view != NULL) {
600 gl_view_arrow_mode (GL_VIEW(window->view));
603 gl_debug (DEBUG_COMMANDS, "END");
606 /*****************************************************************************/
607 /** Objects/Create-text object command. */
608 /*****************************************************************************/
610 gl_ui_cmd_objects_create_text (GtkAction *action,
614 gl_debug (DEBUG_COMMANDS, "START");
616 g_return_if_fail (action && GTK_IS_ACTION(action));
617 g_return_if_fail (window && GL_IS_WINDOW(window));
619 if (window->view != NULL) {
620 gl_view_object_create_mode (GL_VIEW(window->view),
621 GL_LABEL_OBJECT_TEXT);
624 gl_debug (DEBUG_COMMANDS, "END");
627 /*****************************************************************************/
628 /** Objects/Create-box object command. */
629 /*****************************************************************************/
631 gl_ui_cmd_objects_create_box (GtkAction *action,
635 gl_debug (DEBUG_COMMANDS, "START");
637 g_return_if_fail (action && GTK_IS_ACTION(action));
638 g_return_if_fail (window && GL_IS_WINDOW(window));
640 if (window->view != NULL) {
641 gl_view_object_create_mode (GL_VIEW(window->view),
642 GL_LABEL_OBJECT_BOX);
645 gl_debug (DEBUG_COMMANDS, "END");
648 /*****************************************************************************/
649 /** Objects/Create-line object command. */
650 /*****************************************************************************/
652 gl_ui_cmd_objects_create_line (GtkAction *action,
656 gl_debug (DEBUG_COMMANDS, "START");
658 g_return_if_fail (action && GTK_IS_ACTION(action));
659 g_return_if_fail (window && GL_IS_WINDOW(window));
661 if (window->view != NULL) {
662 gl_view_object_create_mode (GL_VIEW(window->view),
663 GL_LABEL_OBJECT_LINE);
666 gl_debug (DEBUG_COMMANDS, "END");
669 /*****************************************************************************/
670 /** Objects/Create-ellipse object command. */
671 /*****************************************************************************/
673 gl_ui_cmd_objects_create_ellipse (GtkAction *action,
677 gl_debug (DEBUG_COMMANDS, "START");
679 g_return_if_fail (action && GTK_IS_ACTION(action));
680 g_return_if_fail (window && GL_IS_WINDOW(window));
682 if (window->view != NULL) {
683 gl_view_object_create_mode (GL_VIEW(window->view),
684 GL_LABEL_OBJECT_ELLIPSE);
687 gl_debug (DEBUG_COMMANDS, "END");
690 /*****************************************************************************/
691 /** Objects/Create-image object command. */
692 /*****************************************************************************/
694 gl_ui_cmd_objects_create_image (GtkAction *action,
698 gl_debug (DEBUG_COMMANDS, "START");
700 g_return_if_fail (action && GTK_IS_ACTION(action));
701 g_return_if_fail (window && GL_IS_WINDOW(window));
703 if (window->view != NULL) {
704 gl_view_object_create_mode (GL_VIEW(window->view),
705 GL_LABEL_OBJECT_IMAGE);
708 gl_debug (DEBUG_COMMANDS, "END");
711 /*****************************************************************************/
712 /** Objects/Create-barcode object command. */
713 /*****************************************************************************/
715 gl_ui_cmd_objects_create_barcode (GtkAction *action,
719 gl_debug (DEBUG_COMMANDS, "START");
721 g_return_if_fail (action && GTK_IS_ACTION(action));
722 g_return_if_fail (window && GL_IS_WINDOW(window));
724 if (window->view != NULL) {
725 gl_view_object_create_mode (GL_VIEW(window->view),
726 GL_LABEL_OBJECT_BARCODE);
729 gl_debug (DEBUG_COMMANDS, "END");
732 /*****************************************************************************/
733 /** Objects/Raise command. */
734 /*****************************************************************************/
736 gl_ui_cmd_objects_raise (GtkAction *action,
740 gl_debug (DEBUG_COMMANDS, "START");
742 g_return_if_fail (action && GTK_IS_ACTION(action));
743 g_return_if_fail (window && GL_IS_WINDOW(window));
745 if (window->view != NULL) {
746 gl_view_raise_selection (GL_VIEW(window->view));
749 gl_debug (DEBUG_COMMANDS, "END");
752 /*****************************************************************************/
753 /** Objects/Lower command. */
754 /*****************************************************************************/
756 gl_ui_cmd_objects_lower (GtkAction *action,
760 gl_debug (DEBUG_COMMANDS, "START");
762 g_return_if_fail (action && GTK_IS_ACTION(action));
763 g_return_if_fail (window && GL_IS_WINDOW(window));
765 if (window->view != NULL) {
766 gl_view_lower_selection (GL_VIEW(window->view));
769 gl_debug (DEBUG_COMMANDS, "END");
772 /*****************************************************************************/
773 /** Objects/Rotate-left-90-degrees command. */
774 /*****************************************************************************/
776 gl_ui_cmd_objects_rotate_left (GtkAction *action,
780 gl_debug (DEBUG_COMMANDS, "START");
782 g_return_if_fail (action && GTK_IS_ACTION(action));
783 g_return_if_fail (window && GL_IS_WINDOW(window));
785 if (window->view != NULL) {
786 gl_view_rotate_selection_left (GL_VIEW(window->view));
789 gl_debug (DEBUG_COMMANDS, "END");
792 /*****************************************************************************/
793 /** Objects/Rotate-right-90-degrees command. */
794 /*****************************************************************************/
796 gl_ui_cmd_objects_rotate_right (GtkAction *action,
800 gl_debug (DEBUG_COMMANDS, "START");
802 g_return_if_fail (action && GTK_IS_ACTION(action));
803 g_return_if_fail (window && GL_IS_WINDOW(window));
805 if (window->view != NULL) {
806 gl_view_rotate_selection_right (GL_VIEW(window->view));
809 gl_debug (DEBUG_COMMANDS, "END");
812 /*****************************************************************************/
813 /** Objects/Flip-horizontally command. */
814 /*****************************************************************************/
816 gl_ui_cmd_objects_flip_horiz (GtkAction *action,
820 gl_debug (DEBUG_COMMANDS, "START");
822 g_return_if_fail (action && GTK_IS_ACTION(action));
823 g_return_if_fail (window && GL_IS_WINDOW(window));
825 if (window->view != NULL) {
826 gl_view_flip_selection_horiz (GL_VIEW(window->view));
829 gl_debug (DEBUG_COMMANDS, "END");
832 /*****************************************************************************/
833 /** Objects/Flip-vertically command. */
834 /*****************************************************************************/
836 gl_ui_cmd_objects_flip_vert (GtkAction *action,
840 gl_debug (DEBUG_COMMANDS, "START");
842 g_return_if_fail (action && GTK_IS_ACTION(action));
843 g_return_if_fail (window && GL_IS_WINDOW(window));
845 if (window->view != NULL) {
846 gl_view_flip_selection_vert (GL_VIEW(window->view));
849 gl_debug (DEBUG_COMMANDS, "END");
852 /*****************************************************************************/
853 /** Objects/Align-left command. */
854 /*****************************************************************************/
856 gl_ui_cmd_objects_align_left (GtkAction *action,
860 gl_debug (DEBUG_COMMANDS, "START");
862 g_return_if_fail (action && GTK_IS_ACTION(action));
863 g_return_if_fail (window && GL_IS_WINDOW(window));
865 if (window->view != NULL) {
866 gl_view_align_selection_left (GL_VIEW(window->view));
869 gl_debug (DEBUG_COMMANDS, "END");
872 /*****************************************************************************/
873 /** Objects/Align-right command. */
874 /*****************************************************************************/
876 gl_ui_cmd_objects_align_right (GtkAction *action,
880 gl_debug (DEBUG_COMMANDS, "START");
882 g_return_if_fail (action && GTK_IS_ACTION(action));
883 g_return_if_fail (window && GL_IS_WINDOW(window));
885 if (window->view != NULL) {
886 gl_view_align_selection_right (GL_VIEW(window->view));
889 gl_debug (DEBUG_COMMANDS, "END");
892 /*****************************************************************************/
893 /** Objects/Align-horizontal-center command. */
894 /*****************************************************************************/
896 gl_ui_cmd_objects_align_hcenter (GtkAction *action,
900 gl_debug (DEBUG_COMMANDS, "START");
902 g_return_if_fail (action && GTK_IS_ACTION(action));
903 g_return_if_fail (window && GL_IS_WINDOW(window));
905 if (window->view != NULL) {
906 gl_view_align_selection_hcenter (GL_VIEW(window->view));
909 gl_debug (DEBUG_COMMANDS, "END");
912 /*****************************************************************************/
913 /** Objects/Align-top command. */
914 /*****************************************************************************/
916 gl_ui_cmd_objects_align_top (GtkAction *action,
920 gl_debug (DEBUG_COMMANDS, "START");
922 g_return_if_fail (action && GTK_IS_ACTION(action));
923 g_return_if_fail (window && GL_IS_WINDOW(window));
925 if (window->view != NULL) {
926 gl_view_align_selection_top (GL_VIEW(window->view));
929 gl_debug (DEBUG_COMMANDS, "END");
932 /*****************************************************************************/
933 /** Objects/Align-bottom command. */
934 /*****************************************************************************/
936 gl_ui_cmd_objects_align_bottom (GtkAction *action,
940 gl_debug (DEBUG_COMMANDS, "START");
942 g_return_if_fail (action && GTK_IS_ACTION(action));
943 g_return_if_fail (window && GL_IS_WINDOW(window));
945 if (window->view != NULL) {
946 gl_view_align_selection_bottom (GL_VIEW(window->view));
949 gl_debug (DEBUG_COMMANDS, "END");
952 /*****************************************************************************/
953 /** Objects/Align-vertical center command. */
954 /*****************************************************************************/
956 gl_ui_cmd_objects_align_vcenter (GtkAction *action,
960 gl_debug (DEBUG_COMMANDS, "START");
962 g_return_if_fail (action && GTK_IS_ACTION(action));
963 g_return_if_fail (window && GL_IS_WINDOW(window));
965 if (window->view != NULL) {
966 gl_view_align_selection_vcenter (GL_VIEW(window->view));
969 gl_debug (DEBUG_COMMANDS, "END");
972 /*****************************************************************************/
973 /** Objects/Center-horizontally command. */
974 /*****************************************************************************/
976 gl_ui_cmd_objects_center_horiz (GtkAction *action,
980 gl_debug (DEBUG_COMMANDS, "START");
982 g_return_if_fail (action && GTK_IS_ACTION(action));
983 g_return_if_fail (window && GL_IS_WINDOW(window));
985 if (window->view != NULL) {
986 gl_view_center_selection_horiz (GL_VIEW(window->view));
989 gl_debug (DEBUG_COMMANDS, "END");
992 /*****************************************************************************/
993 /** Objects/Center-vertically command. */
994 /*****************************************************************************/
996 gl_ui_cmd_objects_center_vert (GtkAction *action,
1000 gl_debug (DEBUG_COMMANDS, "START");
1002 g_return_if_fail (action && GTK_IS_ACTION(action));
1003 g_return_if_fail (window && GL_IS_WINDOW(window));
1005 if (window->view != NULL) {
1006 gl_view_center_selection_vert (GL_VIEW(window->view));
1009 gl_debug (DEBUG_COMMANDS, "END");
1012 /*****************************************************************************/
1013 /** Objects/Edit- merge-properties command. */
1014 /*****************************************************************************/
1016 gl_ui_cmd_objects_merge_properties (GtkAction *action,
1020 gl_debug (DEBUG_COMMANDS, "START");
1022 g_return_if_fail (action && GTK_IS_ACTION(action));
1023 g_return_if_fail (window && GL_IS_WINDOW(window));
1025 if (window->merge_dialog) {
1027 gtk_window_present (GTK_WINDOW(window->merge_dialog));
1028 gtk_window_set_transient_for (GTK_WINDOW (window->merge_dialog),
1029 GTK_WINDOW (window));
1033 window->merge_dialog =
1035 gl_merge_properties_dialog_new (GL_VIEW(window->view)->label,
1036 GTK_WINDOW(window)) );
1038 g_signal_connect (G_OBJECT(window->merge_dialog), "destroy",
1039 G_CALLBACK (gtk_widget_destroyed),
1040 &window->merge_dialog);
1042 gtk_widget_show (GTK_WIDGET (window->merge_dialog));
1046 gl_debug (DEBUG_COMMANDS, "END");
1049 /****************************************************************************/
1050 /** Help/Contents command. */
1051 /****************************************************************************/
1053 gl_ui_cmd_help_contents (GtkAction *action,
1056 GError *error = NULL;
1058 gl_debug (DEBUG_COMMANDS, "START");
1060 g_return_if_fail (action && GTK_IS_ACTION(action));
1061 g_return_if_fail (window && GL_IS_WINDOW(window));
1063 gnome_help_display_with_doc_id (NULL, NULL, "glabels.xml", NULL, &error);
1067 g_message (error->message);
1069 g_error_free (error);
1072 gl_debug (DEBUG_COMMANDS, "END");
1075 /*--------------------------------------------------------------------------*/
1076 /** Private: URL handler. */
1077 /*--------------------------------------------------------------------------*/
1079 activate_url (GtkAboutDialog *about,
1083 gl_debug (DEBUG_COMMANDS, "START");
1085 gnome_url_show (url, NULL);
1087 gl_debug (DEBUG_COMMANDS, "END");
1091 /****************************************************************************/
1092 /** Help/About command. */
1093 /****************************************************************************/
1095 gl_ui_cmd_help_about (GtkAction *action,
1098 static GtkWidget *about = NULL;
1100 GdkPixbuf *pixbuf = NULL;
1102 const gchar *authors[] = {
1105 _("Glabels includes contributions from:"),
1111 _("See the file AUTHORS for additional credits,"),
1112 _("or visit http://glabels.sourceforge.net/"),
1116 const gchar *artists[] = {
1122 const gchar *copy_text = "Copyright \xc2\xa9 2001-2005 Jim Evins";
1124 const gchar *about_text = _("A label and business card creation program.\n");
1126 const gchar *url = "http://glabels.sourceforge.net";
1128 const gchar *translator_credits = _("translator-credits");
1130 const gchar *license = _(
1131 "Glabels is free software; you can redistribute it and/or modify it\n"
1132 "under the terms of the GNU General Public License as published by\n"
1133 "the Free Software Foundation; either version 2 of the License, or\n"
1134 "(at your option) any later version.\n" "\n"
1135 "This program is distributed in the hope that it will be useful, but\n"
1136 "WITHOUT ANY WARRANTY; without even the implied warranty of\n"
1137 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See\n"
1138 "the GNU General Public License for more details.\n");
1140 gl_debug (DEBUG_COMMANDS, "START");
1142 g_return_if_fail (action && GTK_IS_ACTION(action));
1143 g_return_if_fail (window && GL_IS_WINDOW(window));
1148 gtk_window_present (GTK_WINDOW (about));
1149 gtk_window_set_transient_for (GTK_WINDOW (about),
1150 GTK_WINDOW (window));
1154 pixbuf = gdk_pixbuf_new_from_file ( LOGO_PIXMAP, NULL);
1156 gtk_about_dialog_set_url_hook (activate_url, NULL, NULL);
1158 about = gtk_about_dialog_new ();
1159 gtk_about_dialog_set_name (GTK_ABOUT_DIALOG(about), _("glabels"));
1160 gtk_about_dialog_set_version (GTK_ABOUT_DIALOG(about), VERSION);
1161 gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG(about), copy_text);
1162 gtk_about_dialog_set_comments (GTK_ABOUT_DIALOG(about), about_text);
1163 gtk_about_dialog_set_website (GTK_ABOUT_DIALOG(about), url);
1164 gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG(about), pixbuf);
1166 gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG(about), authors);
1167 gtk_about_dialog_set_artists (GTK_ABOUT_DIALOG(about), artists);
1168 gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG(about),
1169 translator_credits);
1170 gtk_about_dialog_set_license (GTK_ABOUT_DIALOG(about), license);
1172 gtk_window_set_destroy_with_parent (GTK_WINDOW (about), TRUE);
1174 g_signal_connect (G_OBJECT (about), "response",
1175 G_CALLBACK (gtk_widget_destroy), NULL);
1176 g_signal_connect (G_OBJECT (about), "destroy",
1177 G_CALLBACK (gtk_widget_destroyed), &about);
1179 gtk_window_set_transient_for (GTK_WINDOW (about),
1180 GTK_WINDOW (window));
1182 gtk_window_present (GTK_WINDOW (about));
1185 g_object_unref (pixbuf);
1189 gl_debug (DEBUG_COMMANDS, "END");