00001
00002
00003 #ifndef _LIBGDAMM_DATAMODELITER_H
00004 #define _LIBGDAMM_DATAMODELITER_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 #include <glibmm/object.h>
00031 #include <libgdamm/parameterlist.h>
00032
00033
00034 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00035 typedef struct _GdaDataModelIter GdaDataModelIter;
00036 typedef struct _GdaDataModelIterClass GdaDataModelIterClass;
00037 #endif
00038
00039
00040 namespace Gnome
00041 {
00042
00043 namespace Gda
00044 { class DataModelIter_Class; }
00045
00046 }
00047 namespace Gnome
00048 {
00049
00050 namespace Gda
00051 {
00052
00053
00054 class DataModelIter
00055 : public ParameterList
00056 {
00057
00058 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00059
00060 public:
00061 typedef DataModelIter CppObjectType;
00062 typedef DataModelIter_Class CppClassType;
00063 typedef GdaDataModelIter BaseObjectType;
00064 typedef GdaDataModelIterClass BaseClassType;
00065
00066 private: friend class DataModelIter_Class;
00067 static CppClassType datamodeliter_class_;
00068
00069 private:
00070
00071 DataModelIter(const DataModelIter&);
00072 DataModelIter& operator=(const DataModelIter&);
00073
00074 protected:
00075 explicit DataModelIter(const Glib::ConstructParams& construct_params);
00076 explicit DataModelIter(GdaDataModelIter* castitem);
00077
00078 #endif
00079
00080 public:
00081 virtual ~DataModelIter();
00082
00083 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00084 static GType get_type() G_GNUC_CONST;
00085 static GType get_base_type() G_GNUC_CONST;
00086 #endif
00087
00089 GdaDataModelIter* gobj() { return reinterpret_cast<GdaDataModelIter*>(gobject_); }
00090
00092 const GdaDataModelIter* gobj() const { return reinterpret_cast<GdaDataModelIter*>(gobject_); }
00093
00095 GdaDataModelIter* gobj_copy();
00096
00097 private:
00098
00099 protected:
00100 explicit DataModelIter(const Glib::RefPtr<DataModel>& data_model);
00101
00102 public:
00103
00104 static Glib::RefPtr<DataModelIter> create(const Glib::RefPtr<DataModel>& data_model);
00105
00106
00110 bool is_valid() const;
00111
00118 bool set_at_row(int row);
00119
00124 bool move_next();
00125
00130 bool move_prev();
00131
00135 int get_row() const;
00136
00140 void invalidate_contents();
00141
00147 int get_column_for_param(const Glib::RefPtr<Parameter>& param);
00148
00154 Glib::RefPtr<Parameter> get_param_for_column(int col);
00155
00161 Glib::RefPtr<const Parameter> get_param_for_column(int col) const;
00162
00163 #ifdef GLIBMM_PROPERTIES_ENABLED
00164
00170 Glib::PropertyProxy<int> property_current_row() ;
00171 #endif //#GLIBMM_PROPERTIES_ENABLED
00172
00173 #ifdef GLIBMM_PROPERTIES_ENABLED
00174
00180 Glib::PropertyProxy_ReadOnly<int> property_current_row() const;
00181 #endif //#GLIBMM_PROPERTIES_ENABLED
00182
00183 #ifdef GLIBMM_PROPERTIES_ENABLED
00184
00190 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<DataModel> > property_data_model() const;
00191 #endif //#GLIBMM_PROPERTIES_ENABLED
00192
00193
00194 #ifdef GLIBMM_PROPERTIES_ENABLED
00195
00201 Glib::PropertyProxy< Glib::RefPtr<DataModel> > property_forced_model() ;
00202 #endif //#GLIBMM_PROPERTIES_ENABLED
00203
00204 #ifdef GLIBMM_PROPERTIES_ENABLED
00205
00211 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<DataModel> > property_forced_model() const;
00212 #endif //#GLIBMM_PROPERTIES_ENABLED
00213
00214 #ifdef GLIBMM_PROPERTIES_ENABLED
00215
00221 Glib::PropertyProxy<bool> property_update_model() ;
00222 #endif //#GLIBMM_PROPERTIES_ENABLED
00223
00224 #ifdef GLIBMM_PROPERTIES_ENABLED
00225
00231 Glib::PropertyProxy_ReadOnly<bool> property_update_model() const;
00232 #endif //#GLIBMM_PROPERTIES_ENABLED
00233
00234
00240 Glib::SignalProxy0< void > signal_end_of_data();
00241
00242
00248 Glib::SignalProxy1< void,int > signal_row_changed();
00249
00250
00251 public:
00252
00253 public:
00254
00255 #ifdef GLIBMM_VFUNCS_ENABLED
00256 #endif //GLIBMM_VFUNCS_ENABLED
00257
00258 protected:
00259
00260 #ifdef GLIBMM_VFUNCS_ENABLED
00261 #endif //GLIBMM_VFUNCS_ENABLED
00262
00263
00264 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00265 virtual void on_end_of_data();
00266 virtual void on_row_changed(int row);
00267 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00268
00269
00270 };
00271
00272 }
00273 }
00274
00275
00276 namespace Glib
00277 {
00283 Glib::RefPtr<Gnome::Gda::DataModelIter> wrap(GdaDataModelIter* object, bool take_copy = false);
00284 }
00285
00286
00287 #endif
00288