ladishd: actually remove app ports, simply logging does not make it happen
[ladish.git] / gui / gtk_builder.c
blob3b7781cb82958990ba9f069b792ba253bc9280db
1 /* -*- Mode: C ; c-basic-offset: 2 -*- */
2 /*
3 * LADI Session Handler (ladish)
5 * Copyright (C) 2009, 2010 Nedko Arnaudov <nedko@arnaudov.name>
7 **************************************************************************
8 * This file contains the GtkBuilder helpers
9 **************************************************************************
11 * LADI Session Handler is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
16 * LADI Session Handler is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with LADI Session Handler. If not, see <http://www.gnu.org/licenses/>
23 * or write to the Free Software Foundation, Inc.,
24 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
27 #include "common.h"
28 #include "gtk_builder.h"
29 #include <sys/types.h>
30 #include <sys/stat.h>
31 #include <unistd.h>
33 GtkBuilder * g_builder;
35 bool init_gtk_builder(void)
37 const char * path;
38 struct stat st;
39 GError * error_ptr;
41 path = "./gui/gladish.ui";
42 if (stat(path, &st) == 0)
44 goto found;
47 path = DATA_DIR "/gladish.ui";
48 if (stat(path, &st) == 0)
50 goto found;
53 log_error("Unable to find the gladish.ui file");
54 return false;
56 found:
57 log_info("Loading glade from %s", path);
59 g_builder = gtk_builder_new();
60 if (g_builder == NULL)
62 log_error("gtk_builder_new() failed.");
63 return false;
66 error_ptr = NULL;
67 if (gtk_builder_add_from_file(g_builder, path, &error_ptr) == 0)
69 log_error("gtk_builder_add_from_file(\"%s\") failed: %s", path, error_ptr->message);
70 g_error_free(error_ptr);
71 g_object_unref(g_builder);
72 return false;
75 return true;
78 void uninit_gtk_builder(void)
80 g_object_unref(g_builder);
83 GObject * get_gtk_builder_object(const char * name)
85 GObject * ptr;
87 ptr = gtk_builder_get_object(g_builder, name);
89 if (ptr == NULL)
91 log_error("glade object with id '%s' not found", name);
92 ASSERT_NO_PASS;
95 return ptr;
98 GtkWidget * get_gtk_builder_widget(const char * name)
100 return GTK_WIDGET(get_gtk_builder_object(name));