2 * Copyright (C) 2008, 2009, 2010, 2011 Philip Chimento and Marijn van Vliet.
5 * Chimara is free software copyrighted by Philip Chimento and Marijn van Vliet.
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are met:
10 * 1. Redistributions of source code must retain the above copyright notice,
11 * this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright notice,
13 * this list of conditions and the following disclaimer in the documentation
14 * and/or other materials provided with the distribution.
15 * 3. Neither of the names Philip Chimento or Marijn van Vliet, nor the name of
16 * any other contributor may be used to endorse or promote products derived
17 * from this software without specific prior written permission.
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
33 #include <glib/gi18n.h>
40 get_data_file_path(const char *filename)
42 char *path = g_build_filename(PACKAGE_DATA_DIR, filename, NULL);
43 if(g_file_test(path, G_FILE_TEST_EXISTS))
47 path = g_build_filename(PACKAGE_SRC_DIR, filename, NULL);
48 if(g_file_test(path, G_FILE_TEST_EXISTS))
51 g_error("Could not find data file: %s", filename);
55 new_builder_with_objects(char **object_ids)
58 GtkBuilder *builder = gtk_builder_new();
60 if( !gtk_builder_add_objects_from_file(builder, PACKAGE_DATA_DIR "/chimara.ui", object_ids, &error) ) {
64 if( !gtk_builder_add_objects_from_file(builder, PACKAGE_SRC_DIR "/chimara.ui", object_ids, &error) )
71 error_dialog(NULL, error, _("Error while building interface: "));
76 load_object(GtkBuilder *builder, const char *name)
79 if( (retval = gtk_builder_get_object(builder, name)) == NULL) {
80 error_dialog(NULL, NULL, "Error while getting object '%s'", name);
81 g_error("Error while getting object '%s'", name);
87 new_ui_manager(const char *filename)
90 GtkUIManager *uimanager = gtk_ui_manager_new();
91 char *path = g_build_filename(PACKAGE_DATA_DIR, filename, NULL);
93 if( !gtk_ui_manager_add_ui_from_file(uimanager, path, &error) ) {
96 path = g_build_filename(PACKAGE_SRC_DIR, filename, NULL);
99 if( !gtk_ui_manager_add_ui_from_file(uimanager, path, &error) )
106 error_dialog(NULL, error, _("Error while building interface: "));