gnunet-svn
[Top][All Lists]
Advanced

[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




reply via email to

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