[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r30428 - gnunet-gtk/src/include
From: |
gnunet |
Subject: |
[GNUnet-SVN] r30428 - gnunet-gtk/src/include |
Date: |
Sun, 27 Oct 2013 16:48:59 +0100 |
Author: grothoff
Date: 2013-10-27 16:48:59 +0100 (Sun, 27 Oct 2013)
New Revision: 30428
Added:
gnunet-gtk/src/include/gnunet_gtk_namestore_plugin.h
Modified:
gnunet-gtk/src/include/Makefile.am
Log:
-defining plugin API for gnunet-namestore-gtk
Modified: gnunet-gtk/src/include/Makefile.am
===================================================================
--- gnunet-gtk/src/include/Makefile.am 2013-10-27 14:22:22 UTC (rev 30427)
+++ gnunet-gtk/src/include/Makefile.am 2013-10-27 15:48:59 UTC (rev 30428)
@@ -3,4 +3,5 @@
gnunetgtkincludedir = $(includedir)/gnunet-gtk
gnunetgtkinclude_HEADERS = \
- gnunet_gtk.h
+ gnunet_gtk.h \
+ gnunet_gtk_namestore_plugin.h
Added: gnunet-gtk/src/include/gnunet_gtk_namestore_plugin.h
===================================================================
--- gnunet-gtk/src/include/gnunet_gtk_namestore_plugin.h
(rev 0)
+++ gnunet-gtk/src/include/gnunet_gtk_namestore_plugin.h 2013-10-27
15:48:59 UTC (rev 30428)
@@ -0,0 +1,108 @@
+/*
+ This file is part of GNUnet
+ (C) 2012, 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 src/include/gnunet_gtk_namestore_plugin.h
+ * @author Christian Grothoff
+ * @brief API for plugins for the GNS record editor
+ */
+#ifndef GNUNET_GTK_NAMESTORE_PLUGIN_H
+#define GNUNET_GTK_NAMESTORE_PLUGIN_H
+
+#include "gnunet_gtk.h"
+#include <gnunet/gnunet_namestore_service.h>
+#include <gnunet/gnunet_dnsparser_lib.h>
+
+
+/**
+ * Context for edit operations.
+ */
+struct GNUNET_GTK_NAMESTORE_PluginEnvironment
+{
+ /**
+ * Closure to pass to @e check_validity.
+ */
+ void *cls;
+
+ /**
+ * Function that should be called by the plugin whenever values in
+ * the dialog were edited. It will check the validity of the dialog
+ * and update the "save" button accordingly.
+ */
+ void (*check_validity)(void *cls);
+
+};
+
+
+/**
+ * Each plugin is required to return a pointer to a struct of this
+ * type as the return value from its entry point.
+ */
+struct GNUNET_GTK_NAMESTORE_PluginFunctions
+{
+
+ /**
+ * Closure for all of the callbacks. Will typically contain
+ * the `struct GNUNET_GTK_NAMESTORE_PluginEnvironment`.
+ */
+ void *cls;
+
+ /**
+ * This must be set to the name of the ".glade" file containing the
+ * dialog.
+ */
+ const char *dialog_glade_filename;
+
+ /**
+ * This must be set to the name of the dialog widget in the ".glade"
+ * file.
+ */
+ const char *dialog_widget_name;
+
+ /**
+ * 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.
+ */
+ void (*load)(void *cls,
+ gchar *n_value);
+
+ /**
+ * Function that will be called to retrieve the final value of the
+ * record (in string format) once the dialog is being closed.
+ */
+ gchar *(*store)(void *cls,
+ GtkBuilder *builder);
+
+ /**
+ * 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.
+ */
+ int (*validate)(void *cls,
+ GtkBuilder *builder);
+
+
+};
+
+
+#endif
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r30428 - gnunet-gtk/src/include,
gnunet <=