grid.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 // Generated by gtkmmproc -- DO NOT MODIFY!
00003 #ifndef _LIBGNOMEDBMM_GRID_H
00004 #define _LIBGNOMEDBMM_GRID_H
00005 
00006 
00007 #include <glibmm.h>
00008 
00009 // -*- C++ -*- // 
00010 
00011 /* grid.h
00012  * 
00013  * Copyright 2006 libgnomedbmm 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 <gtkmm/box.h>
00031 #include <libgdamm/datamodel.h>
00032 #include <libgnomedbmm/rawgrid.h>
00033 #include <libgnomedbmm/datawidgetinfo.h>
00034 
00035 
00036 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00037 typedef struct _GnomeDbGrid GnomeDbGrid;
00038 typedef struct _GnomeDbGridClass GnomeDbGridClass;
00039 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00040 
00041 
00042 namespace Gnome
00043 {
00044 
00045 namespace Db
00046 { class Grid_Class; } // namespace Db
00047 
00048 } // namespace Gnome
00049 namespace Gnome
00050 {
00051 
00052 namespace Db
00053 {
00054 
00055 
00056 class Grid : public Gtk::VBox
00057 {
00058   public:
00059 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00060   typedef Grid CppObjectType;
00061   typedef Grid_Class CppClassType;
00062   typedef GnomeDbGrid BaseObjectType;
00063   typedef GnomeDbGridClass BaseClassType;
00064 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00065 
00066   virtual ~Grid();
00067 
00068 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00069 
00070 private:
00071   friend class Grid_Class;
00072   static CppClassType grid_class_;
00073 
00074   // noncopyable
00075   Grid(const Grid&);
00076   Grid& operator=(const Grid&);
00077 
00078 protected:
00079   explicit Grid(const Glib::ConstructParams& construct_params);
00080   explicit Grid(GnomeDbGrid* castitem);
00081 
00082 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00083 
00084 public:
00085 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00086   static GType get_type()      G_GNUC_CONST;
00087   static GType get_base_type() G_GNUC_CONST;
00088 #endif
00089 
00091   GnomeDbGrid*       gobj()       { return reinterpret_cast<GnomeDbGrid*>(gobject_); }
00092 
00094   const GnomeDbGrid* gobj() const { return reinterpret_cast<GnomeDbGrid*>(gobject_); }
00095 
00096 
00097 public:
00098   //C++ methods used to invoke GTK+ virtual functions:
00099 #ifdef GLIBMM_VFUNCS_ENABLED
00100 #endif //GLIBMM_VFUNCS_ENABLED
00101 
00102 protected:
00103   //GTK+ Virtual Functions (override these to change behaviour):
00104 #ifdef GLIBMM_VFUNCS_ENABLED
00105 #endif //GLIBMM_VFUNCS_ENABLED
00106 
00107   //Default Signal Handlers::
00108 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00109 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00110 
00111 
00112 private:
00113 
00114 
00115 public:
00116   explicit Grid(const Glib::RefPtr<Gda::DataModel>& model);
00117 
00118   #ifndef DOXYGEN_SHOULD_SKIP_THIS
00119   // TODO: I wonder why there is no such thing in glibmm.
00120   // Is this really that uncommon? armin.
00121   struct IntTraits
00122   {
00123     typedef int  CppType;
00124     typedef gpointer CType;
00125     typedef gpointer CTypeNonConst;
00126 
00127     static CType   to_c_type      (const CppType& obj) { return GINT_TO_POINTER(obj); }
00128     static CType   to_c_type      (const CType&   obj) { return GINT_TO_POINTER(obj); }
00129     static CppType to_cpp_type    (const CType&   obj) { return GPOINTER_TO_INT(obj); }
00130     static void    release_c_type (const CType&)       {}
00131   };
00132   #endif //DOXYGEN_SHOULD_SKIP_THIS
00133 
00134   typedef Glib::ListHandle<int, IntTraits> IntListHandle;
00135 
00136   // Fully qualify the IntListHandle type here to make it available in
00137   // the generated code.
00138    
00139 
00143   Grid::IntListHandle get_selection() const;
00144 
00145   
00148   void set_sample_size(int sample_size);
00149 
00150   //TODO: Documentation. And why is this hand-coded? murrayc.
00151   // It is just convenience API to provide access to the raw form property
00152   // in a cleaner way than calling property_raw_form and that also works
00153   // when glibmm has not been compiled with support for properties. In
00154   // contrast to other properties, access to this one is required to
00155   // perform some tasks (like restricting a field's possible values).
00156 
00159   RawGrid* get_raw_grid();
00160 
00163   const RawGrid* get_raw_grid() const;
00164 
00165   #ifdef GLIBMM_PROPERTIES_ENABLED
00166 
00172   Glib::PropertyProxy_ReadOnly<RawGrid*> property_raw_grid() const;
00173 #endif //#GLIBMM_PROPERTIES_ENABLED
00174 
00175 
00176   #ifdef GLIBMM_PROPERTIES_ENABLED
00177 
00183   Glib::PropertyProxy_ReadOnly<DataWidgetInfo*> property_widget_info() const;
00184 #endif //#GLIBMM_PROPERTIES_ENABLED
00185 
00186 
00187   #ifdef GLIBMM_PROPERTIES_ENABLED
00188 
00194   Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gda::DataModel> > property_model() const;
00195 #endif //#GLIBMM_PROPERTIES_ENABLED
00196 
00197 
00198 };
00199 
00200 } // namespace Db
00201 } // namespace Gnome
00202 
00203 
00204 namespace Glib
00205 {
00211   Gnome::Db::Grid* wrap(GnomeDbGrid* object, bool take_copy = false);
00212 } //namespace Glib
00213 
00214 
00215 #endif /* _LIBGNOMEDBMM_GRID_H */
00216 

Generated on Mon Feb 12 16:49:00 2007 for libgnomedbmm by  doxygen 1.4.7