[libgda-uimm] Add DataProxy Interface.



commit 339807a39b802659cd246d63b18bc4a36b6d8766
Author: José Alburquerque <jaalburqu svn gnome org>
Date:   Wed Feb 24 18:26:29 2010 -0500

    	Add DataProxy Interface.
    
    	* libgda-ui/libgda-uimm.h:
    	* libgda-ui/src/dataproxy.ccg:
    	* libgda-ui/src/dataproxy.hg:
    	* libgda-ui/src/filelist.am: Add new DataProxy interface.
    	* libgda-ui/src/libgda_ui_vfuncs.defs: Added GdauiDataProxy virtual
    	functions.
    	* tools/m4/convert_libgda_uimm.m4: Added conversions for DataProxy.

 ChangeLog                           |   12 +++++
 libgda-ui/libgda-uimm.h             |    1 +
 libgda-ui/src/dataproxy.ccg         |   32 +++++++++++++
 libgda-ui/src/dataproxy.hg          |   83 +++++++++++++++++++++++++++++++++++
 libgda-ui/src/filelist.am           |    1 +
 libgda-ui/src/libgda_ui_vfuncs.defs |   43 ++++++++++++++++++
 tools/m4/convert_libgda_uimm.m4     |   11 +++++
 7 files changed, 183 insertions(+), 0 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 1801d13..eeee358 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2010-02-24  José Alburquerque  <jaalburqu svn gnome org>
 
+	Add DataProxy Interface.
+
+	* libgda-ui/libgda-uimm.h:
+	* libgda-ui/src/dataproxy.ccg:
+	* libgda-ui/src/dataproxy.hg:
+	* libgda-ui/src/filelist.am: Add new DataProxy interface.
+	* libgda-ui/src/libgda_ui_vfuncs.defs: Added GdauiDataProxy virtual
+	functions.
+	* tools/m4/convert_libgda_uimm.m4: Added conversions for DataProxy. 
+
+2010-02-24  José Alburquerque  <jaalburqu svn gnome org>
+
 	Add ProviderSelector class.
 
 	* libgda-ui/libgda-uimm.h:
diff --git a/libgda-ui/libgda-uimm.h b/libgda-ui/libgda-uimm.h
index 532aaab..a96943b 100644
--- a/libgda-ui/libgda-uimm.h
+++ b/libgda-ui/libgda-uimm.h
@@ -21,6 +21,7 @@
 #define _LIBGDA_UIMM_H
 
 #include <combo.h>
+#include <dataproxy.h>
 #include <dataselector.h>
 #include <login.h>
 #include <providerselector.h>
diff --git a/libgda-ui/src/dataproxy.ccg b/libgda-ui/src/dataproxy.ccg
new file mode 100644
index 0000000..54b9fe8
--- /dev/null
+++ b/libgda-ui/src/dataproxy.ccg
@@ -0,0 +1,32 @@
+/* dataproxy.cc
+ * 
+ * Copyright (c) 2010 libgda-uimm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <libgda-ui/gdaui-enum-types.h>
+#include <libgdamm/dataproxy.h>
+#include <gtkmm/actiongroup.h>
+
+namespace Gnome
+{
+
+namespace GdaUI
+{
+
+} /* namespace GdaUI */
+
+} /* namespace Gnome */
diff --git a/libgda-ui/src/dataproxy.hg b/libgda-ui/src/dataproxy.hg
new file mode 100644
index 0000000..91baf9f
--- /dev/null
+++ b/libgda-ui/src/dataproxy.hg
@@ -0,0 +1,83 @@
+/* dataproxy.h
+ *
+ * Copyright (c) 2010 libgda-uimm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <libgda-ui/gdaui-data-proxy.h>
+#include <glibmm/interface.h>
+
+_DEFS(libgda-uimm,libgda_ui)
+
+// Gtk class forward declarations.
+namespace Gtk
+{
+
+class ActionGroup;
+
+}
+
+namespace Gnome
+{
+
+// Gnome::Gda class declarations.
+namespace Gda
+{
+
+class DataProxy;
+
+}
+
+namespace GdaUI
+{
+
+_WRAP_ENUM(Action, GdauiAction)
+_WRAP_ENUM(DataProxyWriteMode, GdauiDataProxyWriteMode)
+
+/** DataProxy â?? Modifying data in a Gome::Gda::DataModel.
+ * The DataProxy interface is implemented by widgets which allow modifications
+ * to a Gnome::Gda::DataModel  (through a Gnome::Gda::DataProxy  to actually
+ * proxy the changes before they are written to the data model).
+ */
+class DataProxy :
+  public Glib::Interface
+{
+  _CLASS_INTERFACE(DataProxy, GdauiDataProxy, GDAUI_DATA_PROXY, GdauiDataProxyIface)
+
+public:
+  _WRAP_METHOD(Glib::RefPtr<Gnome::Gda::DataProxy> get_proxy(), gdaui_data_proxy_get_proxy)
+  _WRAP_METHOD(Glib::RefPtr<const Gnome::Gda::DataProxy> get_proxy() const, gdaui_data_proxy_get_proxy, constversion)
+  _WRAP_METHOD(Glib::RefPtr<Gtk::ActionGroup> get_actions_group(), gdaui_data_proxy_get_actions_group)
+  _WRAP_METHOD(Glib::RefPtr<const Gtk::ActionGroup> get_action_group() const, gdaui_data_proxy_get_actions_group, constversion)
+  _WRAP_METHOD(void perform_action(Action action), gdaui_data_proxy_perform_action)
+  _WRAP_METHOD(void set_editable(int column, bool editable), gdaui_data_proxy_column_set_editable)
+  _WRAP_METHOD(void show_actions(int column, bool show_actions), gdaui_data_proxy_column_show_actions)
+  _WRAP_METHOD(bool set_write_mode(DataProxyWriteMode mode), gdaui_data_proxy_set_write_mode)
+  _WRAP_METHOD(DataProxyWriteMode get_write_mode() const, gdaui_data_proxy_get_write_mode)
+
+#m4 _CONVERSION(`GdaDataProxy*', `const Glib::RefPtr<Gnome::Gda::DataProxy>&', `Glib::wrap($3, true)')
+  _WRAP_SIGNAL(void proxy_changed(const Glib::RefPtr<Gnome::Gda::DataProxy>& proxy), "proxy-changed")
+
+  _WRAP_VFUNC(Glib::RefPtr<Gnome::Gda::DataProxy> get_proxy() const, "get_proxy")
+  _WRAP_VFUNC(void set_editable(int column, bool editable), "set_column_editable")
+  _WRAP_VFUNC(void show_actions(int column, bool show_actions), "show_column_actions")
+  _WRAP_VFUNC(Glib::RefPtr<Gtk::ActionGroup> get_action_group() const, "get_actions_group")
+  _WRAP_VFUNC(bool set_write_mode(DataProxyWriteMode mode), "set_write_mode")
+};
+
+} // namespace GdaUI
+
+} // namespace Gnome
diff --git a/libgda-ui/src/filelist.am b/libgda-ui/src/filelist.am
index 22ff56d..15b30bf 100644
--- a/libgda-ui/src/filelist.am
+++ b/libgda-ui/src/filelist.am
@@ -10,6 +10,7 @@ files_defs =                            \
 
 files_hg =                              \
         combo.hg                        \
+        dataproxy.hg                    \
         dataselector.hg                 \
         login.hg                        \
         providerselector.hg
diff --git a/libgda-ui/src/libgda_ui_vfuncs.defs b/libgda-ui/src/libgda_ui_vfuncs.defs
index 55ef1b8..c905bdb 100644
--- a/libgda-ui/src/libgda_ui_vfuncs.defs
+++ b/libgda-ui/src/libgda_ui_vfuncs.defs
@@ -2,6 +2,49 @@
 ; virtual function definitions
 ; define-vfunc is gtkmm-specific
 
+; GdauiDataProxy
+
+(define-vfunc get_proxy
+  (of-object "GdauiDataProxy")
+  (return-type "GdaDataProxy*")
+)
+
+(define-vfunc set_column_editable
+  (of-object "GdauiDataProxy")
+  (return-type "void")
+  (parameters
+   '("gint" "column")
+   '("gboolean" "editable")
+  )
+)
+
+(define-vfunc show_column_actions
+  (of-object "GdauiDataProxy")
+  (return-type "void")
+  (parameters
+   '("gint" "column")
+   '("gboolean" "show_actions")
+  )
+)
+
+(define-vfunc get_actions_group
+  (of-object "GdauiDataProxy")
+  (return-type "GtkActionGroup*")
+)
+
+(define-vfunc set_write_mode
+  (of-object "GdauiDataProxy")
+  (return-type "gboolean")
+  (parameters
+   '("GdauiDataProxyWriteMode" "mode")
+  )
+)
+
+(define-vfunc get_write_mode
+  (of-object "GdauiDataProxy")
+  (return-type "GdauiDataProxyWriteMode")
+)
+
 ; GdauiDataSelector
 
 (define-vfunc get_model
diff --git a/tools/m4/convert_libgda_uimm.m4 b/tools/m4/convert_libgda_uimm.m4
index ca7b9fc..33e74c4 100644
--- a/tools/m4/convert_libgda_uimm.m4
+++ b/tools/m4/convert_libgda_uimm.m4
@@ -1,8 +1,19 @@
 dnl Copyright (c) 2009 The libgda-uimm Development Team
 
 dnl Enums:
+_CONV_ENUM(Gdaui,Action)
+_CONV_ENUM(Gdaui,DataProxyWriteMode)
 _CONV_ENUM(Gdaui,LoginMode)
 
+dnl ActionGroup:
+_CONVERSION(`GtkActionGroup*', `Glib::RefPtr<Gtk::ActionGroup>', `Glib::wrap($3)')
+_CONVERSION(`Glib::RefPtr<Gtk::ActionGroup>', `GtkActionGroup*', `Glib::unwrap($3)')
+
+dnl DataProxy:
+_CONVERSION(`GdaDataProxy*', `Glib::RefPtr<Gnome::Gda::DataProxy>', `Glib::wrap($3)')
+_CONVERSION(`const Glib::RefPtr<Gnome::Gda::DataProxy>&', `GdaDataProxy*', `Glib::unwrap($3)')
+_CONVERSION(`Glib::RefPtr<Gnome::Gda::DataProxy>', `GdaDataProxy*', `Glib::unwrap($3)')
+
 dnl DataModel:
 _CONVERSION(`const Glib::RefPtr<Gnome::Gda::DataModel>&', `GdaDataModel*', `Glib::unwrap($3)')
 _CONVERSION(`GdaDataModel*', `Glib::RefPtr<Gnome::Gda::DataModel>', `Glib::wrap($3)')



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]