00001
00002
00003 #ifndef _LIBGNOMEMM_PROGRAM_H
00004 #define _LIBGNOMEMM_PROGRAM_H
00005
00006
00007 #include <glibmm.h>
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #include <glibmm/object.h>
00032 #include <glibmm/slisthandle.h>
00033
00034
00035
00036 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00037 typedef struct _GnomeProgram GnomeProgram;
00038 typedef struct _GnomeProgramClass GnomeProgramClass;
00039 #endif
00040
00041
00042 namespace Gnome
00043 { class Program_Class; }
00044 namespace Gnome
00045 {
00046
00047
00053 enum FileDomain
00054 {
00055 FILE_DOMAIN_UNKNOWN,
00056 FILE_DOMAIN_LIBDIR,
00057 FILE_DOMAIN_DATADIR,
00058 FILE_DOMAIN_SOUND,
00059 FILE_DOMAIN_PIXMAP,
00060 FILE_DOMAIN_CONFIG,
00061 FILE_DOMAIN_HELP,
00062 FILE_DOMAIN_APP_LIBDIR,
00063 FILE_DOMAIN_APP_DATADIR,
00064 FILE_DOMAIN_APP_SOUND,
00065 FILE_DOMAIN_APP_PIXMAP,
00066 FILE_DOMAIN_APP_CONFIG,
00067 FILE_DOMAIN_APP_HELP
00068 };
00069
00070 }
00071
00072
00073 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00074 namespace Glib
00075 {
00076
00077 template <>
00078 class Value<Gnome::FileDomain> : public Glib::Value_Enum<Gnome::FileDomain>
00079 {
00080 public:
00081 static GType value_type() G_GNUC_CONST;
00082 };
00083
00084 }
00085 #endif
00086
00087
00088 namespace Gnome
00089 {
00090
00091
00096 class Program : public Glib::Object
00097 {
00098
00099 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00100
00101 public:
00102 typedef Program CppObjectType;
00103 typedef Program_Class CppClassType;
00104 typedef GnomeProgram BaseObjectType;
00105 typedef GnomeProgramClass BaseClassType;
00106
00107 private: friend class Program_Class;
00108 static CppClassType program_class_;
00109
00110 private:
00111
00112 Program(const Program&);
00113 Program& operator=(const Program&);
00114
00115 protected:
00116 explicit Program(const Glib::ConstructParams& construct_params);
00117 explicit Program(GnomeProgram* castitem);
00118
00119 #endif
00120
00121 public:
00122 virtual ~Program();
00123
00124 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00125 static GType get_type() G_GNUC_CONST;
00126
00127
00128 static GType get_base_type() G_GNUC_CONST;
00129 #endif
00130
00132 GnomeProgram* gobj() { return reinterpret_cast<GnomeProgram*>(gobject_); }
00133
00135 const GnomeProgram* gobj() const { return reinterpret_cast<GnomeProgram*>(gobject_); }
00136
00138 GnomeProgram* gobj_copy();
00139
00140 private:
00141
00142 public:
00143
00144
00145 static Glib::RefPtr<Program> get();
00146
00147
00148 Glib::ustring get_human_readable_name() const;
00149
00150 Glib::ustring get_app_id() const;
00151
00152 Glib::ustring get_app_version() const;
00153
00154 Glib::ustring locate_file(FileDomain domain, const Glib::ustring& file_name, bool only_if_exists = true);
00155 Glib::SListHandle<Glib::ustring> locate_file_multiple(FileDomain domain, const Glib::ustring& file_name, bool only_if_exists = true);
00156
00157
00158 public:
00159
00160 public:
00161
00162 #ifdef GLIBMM_VFUNCS_ENABLED
00163 #endif //GLIBMM_VFUNCS_ENABLED
00164
00165 protected:
00166
00167 #ifdef GLIBMM_VFUNCS_ENABLED
00168 #endif //GLIBMM_VFUNCS_ENABLED
00169
00170
00171 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00172 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00173
00174
00175 };
00176
00177 }
00178
00179
00180 namespace Glib
00181 {
00190 Glib::RefPtr<Gnome::Program> wrap(GnomeProgram* object, bool take_copy = false);
00191 }
00192
00193
00194 #endif
00195