gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r30429 - gnunet-gtk/src/namestore


From: gnunet
Subject: [GNUnet-SVN] r30429 - gnunet-gtk/src/namestore
Date: Sun, 27 Oct 2013 17:09:40 +0100

Author: grothoff
Date: 2013-10-27 17:09:40 +0100 (Sun, 27 Oct 2013)
New Revision: 30429

Added:
   gnunet-gtk/src/namestore/plugin_gtk_namestore_a.c
   gnunet-gtk/src/namestore/plugin_gtk_namestore_template.c
Modified:
   gnunet-gtk/src/namestore/Makefile.am
Log:
-first namestore editor plugin

Modified: gnunet-gtk/src/namestore/Makefile.am
===================================================================
--- gnunet-gtk/src/namestore/Makefile.am        2013-10-27 15:48:59 UTC (rev 
30428)
+++ gnunet-gtk/src/namestore/Makefile.am        2013-10-27 16:09:40 UTC (rev 
30429)
@@ -1,6 +1,10 @@
 SUBDIRS = .
 
-INCLUDES = \
+# we use libgnunetutil to load plugins, and it
+# only looks in /gnunet, not /gnunet-gtk!
+plugindir = $(libdir)/gnunet
+
+AM_CPPFLAGS = \
   -I$(top_srcdir)/ \
   -I$(top_srcdir)/src/include
 
@@ -23,3 +27,19 @@
   @QR_CFLAGS@
 gnunet_namestore_gtk_LDFLAGS = \
   -export-dynamic
+
+
+
+plugin_LTLIBRARIES = \
+  libgnunet_plugin_gtk_namestore_a.la
+
+libgnunet_plugin_gtk_namestore_a_la_SOURCES = \
+  plugin_gtk_namestore_a.c
+libgnunet_plugin_gtk_namestore_a_la_CFLAGS = \
+  @GTK_CFLAGS@ \
+  @GNUNET_CFLAGS@ \
+  @GLADE_CFLAGS@
+libgnunet_plugin_gtk_namestore_a_la_LIBADD = \
+  -lgnunetutil
+libgnunet_plugin_gtk_namestore_a_la_LDFLAGS = \
+ $(GN_PLUGIN_LDFLAGS)

Added: gnunet-gtk/src/namestore/plugin_gtk_namestore_a.c
===================================================================
--- gnunet-gtk/src/namestore/plugin_gtk_namestore_a.c                           
(rev 0)
+++ gnunet-gtk/src/namestore/plugin_gtk_namestore_a.c   2013-10-27 16:09:40 UTC 
(rev 30429)
@@ -0,0 +1,142 @@
+/*
+  * This file is part of GNUnet
+  * (C) 2009-2013 Christian Grothoff (and other contributing authors)
+  *
+  * GNUnet is free software; you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published
+  * by the Free Software Foundation; either version 3, or (at your
+  * option) any later version.
+  *
+  * GNUnet 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
+  * General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with GNUnet; see the file COPYING.  If not, write to the
+  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  * Boston, MA 02111-1307, USA.
+  */
+
+/**
+ * @file namestore/plugin_gtk_namestore_a.c
+ * @brief namestore plugin for editing A records
+ * @author Christian Grothoff
+ */
+#include "gnunet_gtk.h"
+#include "gnunet_gtk_namestore_plugin.h"
+
+
+/**
+ * Function that will be called to initialize the builder's
+ * widgets from the existing record (if there is one).
+ * The `n_value` is the existing value of the record as a string.
+ *
+ * @param cls the `struct GNUNET_GTK_NAMESTORE_PluginEnvirionment *`
+ * @param n_value the record as a string
+ * @param builder the edit dialog's builder
+ */
+static void
+a_load (void *cls,
+        gchar *n_value,
+        GtkBuilder *builder)
+{
+  GtkEntry *entry;
+
+  entry = GTK_ENTRY (gtk_builder_get_object (builder,
+                                             "edit_dialog_a_entry"));
+  gtk_entry_set_text (entry,
+                      n_value);
+}
+
+
+/**
+ * Function that will be called to retrieve the final value of the
+ * record (in string format) once the dialog is being closed.
+ *
+ * @param cls the `struct GNUNET_GTK_NAMESTORE_PluginEnvirionment *`
+ * @param builder the edit dialog's builder
+ * @return record value as a string, as specified in the dialog
+ */
+static gchar *
+a_store (void *cls,
+         GtkBuilder *builder)
+{
+  GtkEntry *entry;
+  const gchar *value;
+
+  entry = GTK_ENTRY (gtk_builder_get_object (builder,
+                                             "edit_dialog_a_entry"));
+  value = gtk_entry_get_text (entry);
+  return g_strdup (value);
+}
+
+
+/**
+ * Function to call to validate the state of the dialog.  Should
+ * return #GNUNET_OK if the information in the dialog is valid, and
+ * #GNUNET_SYSERR if some fields contain invalid values.  The
+ * function should highlight fields with invalid inputs for the
+ * user.
+ *
+ * @param cls the `struct GNUNET_GTK_NAMESTORE_PluginEnvirionment *`
+ * @param builder the edit dialog's builder
+ * @return #GNUNET_OK if there is a valid record value in the dialog
+ */
+static int
+a_validate (void *cls,
+            GtkBuilder *builder)
+{
+  GtkEditable *entry;
+  const gchar *preedit;
+  struct in_addr v4;
+
+  entry = GTK_EDITABLE (gtk_builder_get_object (builder,
+                                               "edit_dialog_a_entry")),
+  preedit = gtk_editable_get_chars (entry, 0, -1);
+  if ( (NULL == preedit) ||
+       (1 != inet_pton (AF_INET, preedit, &v4)) )
+    return GNUNET_SYSERR;
+  return GNUNET_OK;
+}
+
+
+/**
+ * Entry point for the plugin.
+ *
+ * @param cls the "struct GNUNET_GTK_NAMESTORE_PluginEnvironment*"
+ * @return NULL on error, otherwise the plugin context
+ */
+void *
+libgnunet_plugin_gtk_namestore_a_init (void *cls)
+{
+  struct GNUNET_GTK_NAMESTORE_PluginEnvirionment *env = cls;
+  struct GNUNET_GTK_NAMESTORE_PluginFunctions *plugin;
+
+  plugin = GNUNET_new (struct GNUNET_GTK_NAMESTORE_PluginFunctions);
+  plugin->cls = env;
+  plugin->dialog_glade_filename = "gnunet_namestore_edit_a.glade";
+  plugin->dialog_widget_name = "edit_a_dialog";
+  plugin->load = &a_load;
+  plugin->store = &a_store;
+  plugin->validate = &a_validate;
+  return plugin;
+}
+
+
+/**
+ * Exit point from the plugin.
+ *
+ * @param cls the plugin context (as returned by "init")
+ * @return always NULL
+ */
+void *
+libgnunet_plugin_namecache_sqlite_done (void *cls)
+{
+  struct GNUNET_GTK_NAMESTORE_PluginFunctions *plugin = cls;
+
+  GNUNET_free (plugin);
+  return NULL;
+}
+
+/* end of plugin_gtk_namestore_a.c */

Added: gnunet-gtk/src/namestore/plugin_gtk_namestore_template.c
===================================================================
--- gnunet-gtk/src/namestore/plugin_gtk_namestore_template.c                    
        (rev 0)
+++ gnunet-gtk/src/namestore/plugin_gtk_namestore_template.c    2013-10-27 
16:09:40 UTC (rev 30429)
@@ -0,0 +1,123 @@
+/*
+  * This file is part of GNUnet
+  * (C) 2009-2013 Christian Grothoff (and other contributing authors)
+  *
+  * GNUnet is free software; you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published
+  * by the Free Software Foundation; either version 3, or (at your
+  * option) any later version.
+  *
+  * GNUnet 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
+  * General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with GNUnet; see the file COPYING.  If not, write to the
+  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+  * Boston, MA 02111-1307, USA.
+  */
+
+/**
+ * @file namestore/plugin_gtk_namestore_a.c
+ * @brief namestore plugin for editing A records
+ * @author Christian Grothoff
+ */
+#include "gnunet_gtk.h"
+#include "gnunet_gtk_namestore_plugin.h"
+
+
+/**
+ * Function that will be called to initialize the builder's
+ * widgets from the existing record (if there is one).
+ * The `n_value` is the existing value of the record as a string.
+ *
+ * @param cls the `struct GNUNET_GTK_NAMESTORE_PluginEnvirionment *`
+ * @param n_value the record as a string
+ * @param builder the edit dialog's builder
+ */
+static void
+a_load (void *cls,
+        gchar *n_value,
+        GtkBuilder *builder)
+{
+  GNUNET_break (0);
+}
+
+
+/**
+ * Function that will be called to retrieve the final value of the
+ * record (in string format) once the dialog is being closed.
+ *
+ * @param cls the `struct GNUNET_GTK_NAMESTORE_PluginEnvirionment *`
+ * @param builder the edit dialog's builder
+ * @return record value as a string, as specified in the dialog
+ */
+static gchar *
+a_store (void *cls,
+         GtkBuilder *builder)
+{
+  GNUNET_break (0);
+  return NULL;
+}
+
+
+/**
+ * Function to call to validate the state of the dialog.  Should
+ * return #GNUNET_OK if the information in the dialog is valid, and
+ * #GNUNET_SYSERR if some fields contain invalid values.  The
+ * function should highlight fields with invalid inputs for the
+ * user.
+ *
+ * @param cls the `struct GNUNET_GTK_NAMESTORE_PluginEnvirionment *`
+ * @param builder the edit dialog's builder
+ * @return #GNUNET_OK if there is a valid record value in the dialog
+ */
+static int
+a_validate (void *cls,
+            GtkBuilder *builder)
+{
+  GNUNET_break (0);
+  return GNUNET_OK;
+}
+
+
+/**
+ * Entry point for the plugin.
+ *
+ * @param cls the "struct GNUNET_GTK_NAMESTORE_PluginEnvironment*"
+ * @return NULL on error, otherwise the plugin context
+ */
+void *
+libgnunet_plugin_gtk_namestore_a_init (void *cls)
+{
+  struct GNUNET_GTK_NAMESTORE_PluginEnvirionment *env = cls;
+  struct GNUNET_GTK_NAMESTORE_PluginFunctions *plugin;
+
+  plugin = GNUNET_new (struct GNUNET_GTK_NAMESTORE_PluginFunctions);
+  plugin->cls = env;
+  plugin->dialog_glade_filename = "gnunet_namestore_edit_a.glade";
+  plugin->dialog_widget_name = "edit_a_dialog";
+  plugin->load = &a_load;
+  plugin->store = &a_store;
+  plugin->validate = &a_validate;
+  return plugin;
+}
+
+
+/**
+ * Exit point from the plugin.
+ *
+ * @param cls the plugin context (as returned by "init")
+ * @return always NULL
+ */
+void *
+libgnunet_plugin_namecache_sqlite_done (void *cls)
+{
+  struct GNUNET_GTK_NAMESTORE_PluginFunctions *plugin = cls;
+
+  GNUNET_free (plugin);
+  return NULL;
+}
+
+/* end of plugin_gtk_namestore_a.c */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]