Updated buildgen.sh's clean option to remove gui/config.rpath
[barry.git] / gui / src / util.cc
bloba925457c5f5f6743c903f2ac15019c9cdc0bd1a9
1 ///
2 /// \file util.cc
3 /// GUI utility functions
4 ///
6 /*
7 Copyright (C) 2007-2010, Net Direct Inc. (http://www.netdirect.ca/)
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License in the COPYING file at the
19 root directory of this project for more details.
22 #include "util.h"
23 #include <unistd.h>
24 #include <errno.h>
25 #include <string.h>
27 Glib::RefPtr<Gnome::Glade::Xml> LoadXml(const char *filename)
29 // try loading from global glade directory first
30 try {
31 std::string file = BARRYBACKUP_GLADEDIR;
32 file += filename;
34 Glib::RefPtr<Gnome::Glade::Xml> ref = Gnome::Glade::Xml::create(file);
35 return ref;
37 catch( Gnome::Glade::XmlError &e ) {
38 // oops... let's fall through, and try the local directory
41 // this will throw XmlError on failure, and we let the caller worry
42 // about that
43 return Gnome::Glade::Xml::create(filename);
46 std::string GetPath(const std::string &filename)
48 std::string path;
49 std::string::size_type pos = filename.rfind('/');
50 if( pos != std::string::npos ) {
51 path = filename.substr(0, pos);
53 return path;