00001
00002
00003
#ifndef _LIBGNOMEMM_MODULEINFO_H
00004
#define _LIBGNOMEMM_MODULEINFO_H
00005
00006
#include <glibmm.h>
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
#include <glibmm/containers.h>
00030
#include <libgnome/gnome-program.h>
00031
00032
00033
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00034
extern "C" {
typedef struct _GnomeModuleInfo GnomeModuleInfo; }
00035
#endif
00036
00037
namespace Gnome
00038 {
00039
00040
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00041
00042 GnomeModuleInfo* gnomemm_module_info_copy(
const GnomeModuleInfo* src);
00043
void gnomemm_module_info_free(GnomeModuleInfo* src);
00044
#endif //DOXYGEN_SHOULD_SKIP_THIS
00045
00046 class ModuleInfo
00047 {
00048
public:
00049
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00050
typedef ModuleInfo CppObjectType;
00051
typedef GnomeModuleInfo BaseObjectType;
00052
00053
static GType get_type() G_GNUC_CONST;
00054
#endif
00055
00056
00057
explicit ModuleInfo(GnomeModuleInfo* gobject,
bool make_a_copy =
true);
00058
00059
ModuleInfo(
const ModuleInfo& other);
00060
ModuleInfo&
operator=(
const ModuleInfo& other);
00061
00062
~ModuleInfo();
00063
00064
void swap(
ModuleInfo& other);
00065
00067 GnomeModuleInfo*
gobj() {
return gobject_; }
00068
00070 const GnomeModuleInfo*
gobj()
const {
return gobject_; }
00071
00073 GnomeModuleInfo*
gobj_copy()
const;
00074
00075 protected:
00076 GnomeModuleInfo* gobject_;
00077
00078 private:
00079
00080 public:
00081
00082
00083
ModuleInfo();
00084
00086 ModuleInfo(
const gchar* name,
const gchar* version,
const gchar* description);
00087
00088
00089 Glib::ustring get_name()
const;
00090 Glib::ustring get_version() const;
00091 Glib::ustring get_description() const;
00092
00093
00094
00095
void set_requirements(GnomeModuleRequirement* requirements);
00096
00097
void set_post_args_parse(GnomeModuleHook function);
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110 };
00111
00112 }
00113
00114
00115 namespace Gnome
00116 {
00117
00122 inline void swap(ModuleInfo& lhs, ModuleInfo& rhs)
00123 { lhs.
swap(rhs); }
00124
00125 }
00126
00127
namespace Glib
00128 {
00129
00135
Gnome::ModuleInfo wrap(GnomeModuleInfo* object,
bool take_copy =
false);
00136
00137
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00138
template <>
00139
class Value<Gnome::ModuleInfo> :
public Glib::Value_Boxed<Gnome::ModuleInfo>
00140 {};
00141
#endif
00142
00143 }
00144
00145
#endif
00146