[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 */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r30429 - gnunet-gtk/src/namestore,
gnunet <=