1 [+ autogen5 template +]
2 [+INCLUDE (string-append "licenses/" (get "License") ".tpl") \+]
3 [+INCLUDE (string-append "indent.tpl") \+]
4 /* [+INVOKE EMACS-MODELINE MODE="C" \+] */
5 [+INVOKE START-INDENT\+]
6 /*
7  * main.c
8  * Copyright (C) [+(shell "date +%Y")+] [+Author+][+IF (get "Email")+] <[+Email+]>[+ENDIF+]
9  *
10 [+INVOKE LICENSE-DESCRIPTION PFX=" * " PROGRAM=(get "Name") OWNER=(get "Author") \+]
11  */
12 
13 #include <config.h>
14 #include <gtk/gtk.h>
15 
16 [+IF (=(get "HaveI18n") "1")+]
17 #include <glib/gi18n.h>
18 [+ENDIF+]
19 
20 [+IF (=(get "HaveBuilderUI") "1")+]
21 typedef struct _Private Private;
22 struct _Private
23 {
24 	/* ANJUTA: Widgets declaration for [+NameHLower+].ui - DO NOT REMOVE */
25 };
26 
27 static Private* priv = NULL;
28 
29 /* For testing purpose, define TEST to use the local (not installed) ui file */
30 #define TEST
31 #ifdef TEST
32 #define UI_FILE "src/[+NameHLower+].ui"
33 #else
34 [+IF (=(get "HaveWindowsSupport") "1")\+]
35 #ifdef G_OS_WIN32
36 #define UI_FILE ui_file
37 #else
38 [+ENDIF\+]
39 #define UI_FILE PACKAGE_DATA_DIR"/ui/[+NameHLower+].ui"
40 [+IF (=(get "HaveWindowsSupport") "1")\+]
41 #endif
42 [+ENDIF\+]
43 #endif
44 #define TOP_WINDOW "window"
45 
46 /* Signal handlers */
47 /* Note: These may not be declared static because signal autoconnection
48  * only works with non-static methods
49  */
50 
51 /* Called when the window is closed */
52 void
on_window_destroy(GtkWidget * widget,gpointer data)53 on_window_destroy (GtkWidget *widget, gpointer data)
54 {
55 	gtk_main_quit ();
56 }
57 
58 static GtkWidget*
create_window(void)59 create_window (void)
60 {
61 [+IF (=(get "HaveWindowsSupport") "1")\+]
62 #if !defined(TEST) && defined(G_OS_WIN32)
63 	gchar *prefix = g_win32_get_package_installation_directory_of_module (NULL);
64 	gchar *datadir = g_build_filename (prefix, "share", PACKAGE, NULL);
65 	gchar *ui_file = g_build_filename (datadir, "ui", "[+NameHLower+].ui", NULL);
66 #endif
67 [+ENDIF\+]
68 	GtkWidget *window;
69 	GtkBuilder *builder;
70 	GError* error = NULL;
71 
72 	/* Load UI from file */
73 	builder = gtk_builder_new ();
74 	if (!gtk_builder_add_from_file (builder, UI_FILE, &error))
75 	{
76 		g_critical ("Couldn't load builder file: %s", error->message);
77 		g_error_free (error);
78 	}
79 
80 	/* Auto-connect signal handlers */
81 	gtk_builder_connect_signals (builder, NULL);
82 
83 	/* Get the window object from the ui file */
84 	window = GTK_WIDGET (gtk_builder_get_object (builder, TOP_WINDOW));
85         if (!window)
86         {
87                 g_critical ("Widget \"%s\" is missing in file %s.",
88 				TOP_WINDOW,
89 				UI_FILE);
90         }
91 
92 	priv = g_malloc (sizeof (struct _Private));
93 	/* ANJUTA: Widgets initialization for [+NameHLower+].ui - DO NOT REMOVE */
94 
95 	g_object_unref (builder);
96 
97 [+IF (=(get "HaveWindowsSupport") "1")+]
98 #if !defined(TEST) && defined(G_OS_WIN32)
99 	g_free (prefix);
100 	g_free (datadir);
101 	g_free (ui_file);
102 #endif
103 [+ENDIF\+]
104 
105 	return window;
106 }[+
107 ELSE+]
108 static GtkWidget*
create_window(void)109 create_window (void)
110 {
111 	GtkWidget *window;
112 
113 	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
114 	gtk_window_set_title (GTK_WINDOW (window), "[+Name+]");
115 
116 	/* Exit when the window is closed */
117 	g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
118 
119 	return window;
120 }[+
121 ENDIF+]
122 
123 int
main(int argc,char * argv[])124 main (int argc, char *argv[])
125 {
126  	GtkWidget *window;
127 
128 [+IF (=(get "HaveI18n") "1")+][+
129 IF (=(get "HaveWindowsSupport") "1")+]
130 #ifdef G_OS_WIN32
131 	gchar *prefix = g_win32_get_package_installation_directory_of_module (NULL);
132 	gchar *localedir = g_build_filename (prefix, "share", "locale", NULL);
133 #endif[+
134 ENDIF+]
135 
136 #ifdef ENABLE_NLS
137 [+IF (=(get "HaveWindowsSupport") "1")+]
138 # ifndef G_OS_WIN32
139 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
140 # else
141 	bindtextdomain (GETTEXT_PACKAGE, localedir);
142 # endif[+
143 ELSE+]
144 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);[+
145 ENDIF+]
146 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
147 	textdomain (GETTEXT_PACKAGE);
148 #endif[+
149 ENDIF+]
150 
151 	gtk_init (&argc, &argv);
152 
153 	window = create_window ();
154 	gtk_widget_show (window);
155 
156 	gtk_main ();
157 
158 [+IF (=(get "HaveBuilderUI") "1")+]
159 	g_free (priv);[+
160 ENDIF+]
161 [+IF (=(get "HaveI18n") "1")+][+
162 IF (=(get "HaveWindowsSupport") "1")+]
163 #ifdef G_OS_WIN32
164 	g_free (prefix);
165 	g_free (localedir);
166 #endif[+
167 ENDIF+][+
168 ENDIF+]
169 
170 	return 0;
171 }
172 [+INVOKE END-INDENT\+]
173