Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

value.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 // Generated by gtkmmproc -- DO NOT MODIFY!
00003 #ifndef _GCONFMM_VALUE_H
00004 #define _GCONFMM_VALUE_H
00005 
00006 #include <glibmm.h>
00007 
00008 // -*- Mode: C++; c-basic-offset: 4  -*-
00009 /* $Id: value.hg,v 1.2 2002/12/10 23:26:01 murrayc Exp $ */
00010 
00011 /* value.hg
00012  * 
00013  * Copyright (C) 2000-2002 GConfmm Development Team
00014  *
00015  * This library is free software; you can redistribute it and/or
00016  * modify it under the terms of the GNU Library General Public
00017  * License as published by the Free Software Foundation; either
00018  * version 2 of the License, or (at your option) any later version.
00019  *
00020  * This library is distributed in the hope that it will be useful,
00021  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00022  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00023  * Library General Public License for more details.
00024  *
00025  * You should have received a copy of the GNU Library General Public
00026  * License along with this library; if not, write to the Free
00027  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00028  */
00029 
00030 #include <glibmm/ustring.h>
00031 #include <gconfmm/value_listhelpers.h>
00032 
00033 
00034 namespace Gnome
00035 {
00036 
00037 namespace Conf
00038 {
00039 
00045 enum ValueType
00046 {
00047   VALUE_INVALID,
00048   VALUE_STRING,
00049   VALUE_INT,
00050   VALUE_FLOAT,
00051   VALUE_BOOL,
00052   VALUE_SCHEMA,
00053   VALUE_LIST,
00054   VALUE_PAIR
00055 };
00056 
00057 } // namespace Conf
00058 
00059 } // namespace Gnome
00060 
00061 
00062 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00063 namespace Glib
00064 {
00065 
00066 template <>
00067 class Value<Gnome::Conf::ValueType> : public Glib::Value_Enum<Gnome::Conf::ValueType>
00068 {
00069 public:
00070   static GType value_type() G_GNUC_CONST;
00071 };
00072 
00073 } // namespace Glib
00074 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00075 
00076 
00077 namespace Gnome
00078 {
00079 
00080 namespace Conf
00081 {
00082 
00083 
00084 typedef std::pair<Value, Value> ValuePair;    
00085 typedef std::pair<ValueType, ValueType> ValueTypePair;
00086 
00106 class Value 
00107 {
00108   public:
00109 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00110   typedef Value CppObjectType;
00111   typedef GConfValue BaseObjectType;
00112 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00113 
00114 
00115   // Use make_a_copy=true when getting it directly from a struct.
00116   explicit Value(GConfValue* castitem, bool make_a_copy = false);
00117 
00118   Value(const Value& src);
00119   Value& operator=(const Value& src);
00120 
00121   ~Value();
00122 
00123   GConfValue*       gobj()       { return gobject_; }
00124   const GConfValue* gobj() const { return gobject_; }
00125 
00126   // The caller is responsible for freeing it. Use when directly setting fields in structs.
00127   GConfValue* gobj_copy() const;
00128 
00129 protected:
00130   GConfValue* gobject_;
00131 
00132 private:
00133 
00134   ;
00135   
00136 public:
00137 
00142   Value(ValueType type = VALUE_INVALID);
00143 
00147   void set(gint val);
00148 
00153   void set(gdouble val);
00154 
00157   void set(bool val);
00158 
00161   void set(const Schema& sc);
00162 
00165   void set_car(const Value& car);
00166 
00169   void set_cdr(const Value& cdr);
00170 
00173   void set(const Glib::ustring& val);
00174   
00175 
00178   void set_list_type(ValueType type);
00179 
00185   void set_int_list(const SListHandle_ValueInt& list);
00186 
00190   void set_bool_list(const SListHandle_ValueBool& list);
00191 
00195   void set_float_list(const SListHandle_ValueFloat& list);
00196 
00200   void set_string_list(const SListHandle_ValueString& list);
00201 
00205   void set_schema_list(const SListHandle_ValueSchema& list);
00206   
00207 
00211   ValueType get_type() const;
00212   
00213 
00219   ValueType get_list_type() const;
00220 
00223   int get_int() const;
00224 
00227   bool get_bool() const;
00228 
00231   double get_float() const;
00232 
00235   Glib::ustring get_string() const;
00236   
00237 
00239   Schema get_schema() const;
00240   
00241 
00243   Value get_car() const;
00244 
00246   Value get_cdr() const;
00247 
00257   SListHandle_ValueFloat  get_float_list() const;
00258 
00263   SListHandle_ValueInt    get_int_list() const;
00264 
00269   SListHandle_ValueBool   get_bool_list() const;
00270 
00275   SListHandle_ValueString get_string_list() const;
00276 
00281   SListHandle_ValueSchema get_schema_list() const;
00282 
00288   Glib::ustring to_string() const;
00289 
00290 
00291 };
00292 
00293 } /* namespace Conf */
00294 } /* namespace Gnome */
00295 
00296 
00297 namespace Glib
00298 {
00299 
00301 Gnome::Conf::Value wrap(GConfValue* object, bool take_copy = false);
00302 
00303 } // namespace Glib
00304 
00305 #endif /* _GCONFMM_VALUE_H */
00306 

Generated on Fri Nov 5 06:43:07 2004 for gconfmm by  doxygen 1.3.9.1