summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2023-03-25 13:24:26 +0100
committerVivien Kraus <vivien@planete-kraus.eu>2023-03-25 13:59:33 +0100
commit476ba7b276658b35b54732fffde6cc87d7768f65 (patch)
treec6b5a96293d349fd2d62be0378f4822b3b43da86 /src
parent2c04502589876dc4c19bdbff4426757571ac76b0 (diff)
Don’t develop the application in C
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am2
-rw-r--r--src/adwaita/Makefile.am34
-rw-r--r--src/adwaita/disfluid-about.c144
-rw-r--r--src/adwaita/disfluid-adwaita.h73
-rw-r--r--src/adwaita/disfluid-application.c207
-rw-r--r--src/adwaita/disfluid-cache-entry.c286
-rw-r--r--src/adwaita/disfluid-cache-key-demo.c267
-rw-r--r--src/adwaita/disfluid-g-cache-entry.c25
-rw-r--r--src/adwaita/disfluid-hash-key-demo.c170
-rw-r--r--src/adwaita/disfluid-menus.c53
-rw-r--r--src/adwaita/disfluid-tests-results.c108
-rw-r--r--src/adwaita/disfluid-window.c89
-rw-r--r--src/disfluid/Makefile.am40
-rw-r--r--src/disfluid/main.c25
-rw-r--r--src/disfluid/run-unit-tests.c70
-rw-r--r--src/libdisfluid/Makefile.am12
16 files changed, 12 insertions, 1593 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index bdb7b63..506c7a8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,3 +1 @@
include %D%/libdisfluid/Makefile.am
-include %D%/adwaita/Makefile.am
-include %D%/disfluid/Makefile.am
diff --git a/src/adwaita/Makefile.am b/src/adwaita/Makefile.am
deleted file mode 100644
index d28455b..0000000
--- a/src/adwaita/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
-noinst_LTLIBRARIES += %D%/libdisfluid-adwaita.la
-
-%C%_libdisfluid_adwaita_la_SOURCES = \
- %D%/disfluid-adwaita.h \
- %D%/disfluid-about.c \
- %D%/disfluid-application.c \
- %D%/disfluid-cache-key-demo.c \
- %D%/disfluid-hash-key-demo.c \
- %D%/disfluid-g-cache-entry.c \
- %D%/disfluid-cache-entry.c \
- %D%/disfluid-menus.c \
- %D%/disfluid-tests-results.c \
- %D%/disfluid-window.c
-
-%C%_libdisfluid_adwaita_la_CPPFLAGS = \
- -I lib -I $(srcdir)/lib \
- -I include -I $(srcdir)/include \
- -I %D% -I $(srcdir)/%D% \
- -DLOCALEDIR=\"$(localedir)\" \
- -DINSTALLDIR=\"$(bindir)\" \
- -DLIBEXECDIR=\"$(libexecdir)\"
-
-%C%_libdisfluid_adwaita_la_LIBADD = \
- lib/libgnu.la \
- src/libdisfluid/libdisfluid.la
-
-%C%_libdisfluid_adwaita_la_LDFLAGS = \
- $(CLOCK_TIME_LIB) \
- $(GETRANDOM_LIB) \
- $(LIBTHREAD) \
- $(LTLIBINTL) \
- $(SETLOCALE_LIB) \
- $(SETLOCALE_NULL_LIB) \
- @INTL_MACOSX_LIBS@
diff --git a/src/adwaita/disfluid-about.c b/src/adwaita/disfluid-about.c
deleted file mode 100644
index ccc55f8..0000000
--- a/src/adwaita/disfluid-about.c
+++ /dev/null
@@ -1,144 +0,0 @@
-#include <config.h>
-
-#include "attribute.h"
-#include <disfluid.h>
-#include "disfluid-adwaita.h"
-
-#define STREQ(a, b) (strcmp ((a), (b)) == 0)
-#define STRNEQ(a, b) (! (STREQ (a, b)))
-
-#include <locale.h>
-#include <stdio.h>
-#include <unistd.h>
-#include "gettext.h"
-#include "relocatable.h"
-
-#define _(String) dgettext (PACKAGE, (String))
-#define N_(String) (String)
-
-#include <adwaita.h>
-#include <gtk/gtk.h>
-
-static char *
-some_developers (void)
-{
- char *first_developer = NULL;
- bool and_others = false;
- for (size_t i = 0; i < disfluid_count_authors (); i++)
- {
- if (disfluid_author_is_developer (i))
- {
- if (first_developer == NULL)
- {
- first_developer = g_strdup (disfluid_author_name (i));
- }
- else
- {
- and_others = true;
- }
- }
- }
- char *ret = NULL;
- if (first_developer != NULL)
- {
- if (and_others)
- {
- asprintf (&ret, _("%s and others"), first_developer);
- free (first_developer);
- }
- else
- {
- ret = first_developer;
- }
- }
- return ret;
-}
-
-static char **
-enumerate_credits (int (*check) (size_t))
-{
- size_t n = disfluid_count_authors ();
- char **ret = malloc ((n + 1) * sizeof (char *));
- if (ret == NULL)
- {
- abort ();
- }
- size_t n_relevant = 0;
- for (size_t i = 0; i < n; i++)
- {
- if (check (i))
- {
- if (disfluid_author_uri (i))
- {
- asprintf (&(ret[n_relevant]), "%s %s", disfluid_author_name (i),
- disfluid_author_uri (i));
- }
- else if (disfluid_author_email (i))
- {
- asprintf (&(ret[n_relevant]), "%s <%s>",
- disfluid_author_name (i), disfluid_author_email (i));
- }
- else
- {
- asprintf (&(ret[n_relevant]), "%s", disfluid_author_name (i));
- }
- n_relevant++;
- }
- }
- ret[n_relevant] = NULL;
- return ret;
-}
-
-void
-disfluid_adw_show_about (GtkApplication * app)
-{
- char *developer = some_developers ();
- char **developers = enumerate_credits (disfluid_author_is_developer);
- char **designers = enumerate_credits (disfluid_author_is_designer);
- char **artists = enumerate_credits (disfluid_author_is_artist);
- char **documenters = enumerate_credits (disfluid_author_is_documenter);
- AdwAboutWindow *window =
- (AdwAboutWindow *) g_object_new (ADW_TYPE_ABOUT_WINDOW,
- "application-name", _("Experiences"),
- "application-icon",
- disfluid_adw_application_id (),
- "version", disfluid_version (),
- "copyright",
- _("Copyright © 2023 Vivien Kraus"),
- "developer-name", developer,
- "website", disfluid_website (),
- "developers", developers,
- "designers", designers,
- "artists", artists,
- "documenters", documenters,
- "translator-credits",
- disfluid_translation_credits (),
- "license-type", GTK_LICENSE_AGPL_3_0,
- "release-notes", disfluid_whats_new (),
- "release-notes-version",
- disfluid_major_version (),
- NULL);
- gtk_window_set_application (GTK_WINDOW (window), app);
- gtk_window_present (GTK_WINDOW (window));
- free (developer);
- for (size_t i = 0; developers[i] != NULL; i++)
- {
- free (developers[i]);
- }
- free (developers);
- for (size_t i = 0; designers[i] != NULL; i++)
- {
- free (designers[i]);
- }
- free (designers);
- for (size_t i = 0; artists[i] != NULL; i++)
- {
- free (artists[i]);
- }
- free (artists);
- for (size_t i = 0; documenters[i] != NULL; i++)
- {
- free (documenters[i]);
- }
- free (documenters);
-}
diff --git a/src/adwaita/disfluid-adwaita.h b/src/adwaita/disfluid-adwaita.h
deleted file mode 100644
index e57a78d..0000000
--- a/src/adwaita/disfluid-adwaita.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef H_DISFLUID_ADWAITA_INCLUDED
-# define H_DISFLUID_ADWAITA_INCLUDED
-
-# include <stdlib.h>
-# include <glib-object.h>
-# include <gtk/gtk.h>
-# include <adwaita.h>
-# include <disfluid.h>
-
-/* *INDENT-OFF* */
-G_BEGIN_DECLS
-/* *INDENT-ON* */
-
-# define DISFLUID_TYPE_CACHE_ENTRY \
- disfluid_cache_entry_get_type ()
-
-# define DISFLUID_ADW_TYPE_APPLICATION \
- disfluid_adw_application_get_type ()
-
-# define DISFLUID_ADW_TYPE_WINDOW \
- disfluid_adw_window_get_type ()
-
-# define DISFLUID_ADW_TYPE_CACHE_ENTRY \
- disfluid_adw_cache_entry_get_type ()
-
-/* *INDENT-OFF* */
-G_DECLARE_FINAL_TYPE (DisfluidAdwApplication,
- disfluid_adw_application,
- DISFLUID_ADW, APPLICATION,
- AdwApplication)
-G_DECLARE_FINAL_TYPE (DisfluidAdwWindow,
- disfluid_adw_window,
- DISFLUID_ADW, WINDOW,
- AdwApplicationWindow)
-G_DECLARE_FINAL_TYPE (DisfluidAdwCacheEntry,
- disfluid_adw_cache_entry,
- DISFLUID_ADW, CACHE_ENTRY,
- AdwPreferencesGroup)
-G_END_DECLS
-/* *INDENT-ON* */
-
-GType disfluid_cache_entry_get_type (void);
-
-DisfluidAdwApplication *disfluid_adw_application_new (void);
-
-GtkWidget *disfluid_adw_window_new (GtkApplication * app);
-
-ATTRIBUTE_CONST const char *disfluid_adw_application_id (void);
-
-void disfluid_adw_show_about (GtkApplication * app);
-
-void disfluid_adw_show_tests_results (GtkApplication * app,
- size_t n_tests,
- size_t n_errors, const char *output);
-
-GMenuItem *disfluid_adw_menu_item_about (void);
-
-GMenuItem *disfluid_adw_menu_item_run_tests (void);
-
-GMenu *disfluid_adw_main_menu (void);
-
-void disfluid_adw_cache_entry_set_file_name (DisfluidAdwCacheEntry *
- cache_entry, const char *fname);
-
-void disfluid_adw_cache_entry_set_cache_entry (DisfluidAdwCacheEntry *
- cache_entry,
- struct disfluid_cache_entry
- *value);
-
-GtkWidget *disfluid_adw_cache_key_demo (void);
-GtkWidget *disfluid_adw_hash_key_demo (void);
-
-#endif /* not H_DISFLUID_ADWAITA_INCLUDED */
diff --git a/src/adwaita/disfluid-application.c b/src/adwaita/disfluid-application.c
deleted file mode 100644
index 9afe838..0000000
--- a/src/adwaita/disfluid-application.c
+++ /dev/null
@@ -1,207 +0,0 @@
-#include <config.h>
-
-#include "attribute.h"
-#include <disfluid-adwaita.h>
-
-#define STREQ(a, b) (strcmp ((a), (b)) == 0)
-#define STRNEQ(a, b) (! (STREQ (a, b)))
-
-#include <locale.h>
-#include <stdio.h>
-#include <unistd.h>
-#include "gettext.h"
-#include "relocatable.h"
-
-#define _(String) dgettext (PACKAGE, (String))
-#define N_(String) (String)
-
-#include <disfluid.h>
-#include <glib-object.h>
-#include <adwaita.h>
-#include <gtk/gtk.h>
-
-struct _DisfluidAdwApplication
-{
- AdwApplication parent_instance;
- gboolean only_show_version;
- gboolean only_run_tests;
- gint n_tests_run;
- gint n_tests_errors;
- gchar *tests_output;
-};
-
-struct _DisfluidAdwApplicationClass
-{
- AdwApplicationClass parent_instance;
-};
-
-/* *INDENT-OFF* */
-G_DEFINE_TYPE (DisfluidAdwApplication, disfluid_adw_application, ADW_TYPE_APPLICATION)
-/* *INDENT-ON* */
-
-static void
-launch_about_window (GSimpleAction * action, GVariant * parameter,
- gpointer user_data)
-{
- (void) action;
- (void) parameter;
- DisfluidAdwApplication *self = user_data;
- disfluid_adw_show_about (GTK_APPLICATION (self));
-}
-
-static void
-start_tests (GSimpleAction * action, GVariant * parameter, gpointer user_data)
-{
- (void) action;
- (void) parameter;
- (void) user_data;
- char *arg_0;
- if (asprintf (&arg_0, "%s/disfluid-run-unit-tests", relocate (LIBEXECDIR)) <
- 0)
- {
- abort ();
- }
- char *args[] = { arg_0, NULL };
- g_spawn_async (NULL, args, NULL, 0, NULL, NULL, NULL, NULL);
- free (arg_0);
-}
-
-static void
-disfluid_adw_application_init (DisfluidAdwApplication * self)
-{
- (void) self;
- /* Perform default initialization of self. */
- self->only_show_version = false;
- self->only_run_tests = false;
- self->n_tests_run = -1;
- self->n_tests_errors = -1;
- self->tests_output = NULL;
- g_application_set_flags (G_APPLICATION (self),
- g_application_get_flags (G_APPLICATION (self)) |
- G_APPLICATION_HANDLES_OPEN);
- static GActionEntry app_actions[] = {
- {.name = "about",.activate = launch_about_window},
- {.name = "runtests",.activate = start_tests}
- };
- g_action_map_add_action_entries (G_ACTION_MAP (self), app_actions,
- G_N_ELEMENTS (app_actions), self);
- GOptionEntry app_options[] = {
- {
- .long_name = N_("version"),
- .short_name = 'V',
- .flags = G_OPTION_FLAG_NONE,
- .arg = G_OPTION_ARG_NONE,
- .arg_data = &(self->only_show_version),
- .description = N_("Show the program version.")},
- {
- .long_name = N_("run-tests"),
- .short_name = 'T',
- .flags = G_OPTION_FLAG_NONE,
- .arg = G_OPTION_ARG_NONE,
- .arg_data = &(self->only_run_tests),
- .description = N_("Run the unit tests and exit.")},
- {
- .long_name = N_("n-tests-run"),
- .flags = G_OPTION_FLAG_NONE,
- .arg = G_OPTION_ARG_INT,
- .arg_data = &(self->n_tests_run),
- .description = N_("Indicate how many tests were run.")},
- {
- .long_name = N_("n-tests-errors"),
- .flags = G_OPTION_FLAG_NONE,
- .arg = G_OPTION_ARG_INT,
- .arg_data = &(self->n_tests_errors),
- .description = N_("Indicate how many tests failed.")},
- {
- .long_name = N_("tests-output"),
- .flags = G_OPTION_FLAG_NONE,
- .arg = G_OPTION_ARG_STRING,
- .arg_data = &(self->tests_output),
- .description = N_("Report the tests output.")},
- {0}
- };
- for (size_t i = 0; i < sizeof (app_options) / sizeof (app_options[0]); i++)
- {
- app_options[i].long_name = dgettext (PACKAGE, app_options[i].long_name);
- app_options[i].description =
- dgettext (PACKAGE, app_options[i].description);
- }
- g_application_add_main_option_entries (G_APPLICATION (self), app_options);
-}
-
-static void
-disfluid_adw_application_finalize (GObject * object)
-{
- DisfluidAdwApplication *self = DISFLUID_ADW_APPLICATION (object);
- g_free (self->tests_output);
-}
-
-static void
-disfluid_adw_application_class_init (DisfluidAdwApplicationClass * klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = disfluid_adw_application_finalize;
-}
-
-static void
-activated (GtkApplication * app)
-{
- DisfluidAdwApplication *self = DISFLUID_ADW_APPLICATION (app);
- if (self->only_show_version)
- {
- launch_about_window (NULL, NULL, app);
- }
- else if (self->only_run_tests)
- {
- start_tests (NULL, NULL, app);
- }
- else if (self->n_tests_run >= 0 || self->n_tests_errors >= 0
- || self->tests_output != NULL)
- {
- if (self->n_tests_run < 0)
- {
- self->n_tests_run = 0;
- }
- if (self->n_tests_errors < 0)
- {
- self->n_tests_errors = 0;
- }
- if (self->tests_output == NULL)
- {
- self->tests_output = g_strdup (_("No output is available."));
- }
- disfluid_adw_show_tests_results (app, self->n_tests_run,
- self->n_tests_errors,
- self->tests_output);
- }
- else
- {
- GtkWidget *window = disfluid_adw_window_new (app);
- gtk_window_present (GTK_WINDOW (window));
- }
-}
-
-DisfluidAdwApplication *
-disfluid_adw_application_new (void)
-{
- DisfluidAdwApplication *self = NULL;
- self =
- (DisfluidAdwApplication *) g_object_new (DISFLUID_ADW_TYPE_APPLICATION,
- "application-id",
- disfluid_adw_application_id (),
- NULL);
- g_signal_connect (self, "activate", G_CALLBACK (activated), NULL);
- return self;
-}
-
-const char *
-disfluid_adw_application_id ()
-{
- static const char *id_non_nightly = "eu.planete_kraus.Disfluid";
- static const char *id_nightly = "eu.planete_kraus.Disfluid.Devel";
- if (disfluid_is_nightly ())
- {
- return id_nightly;
- }
- return id_non_nightly;
-}
diff --git a/src/adwaita/disfluid-cache-entry.c b/src/adwaita/disfluid-cache-entry.c
deleted file mode 100644
index 02d7e83..0000000
--- a/src/adwaita/disfluid-cache-entry.c
+++ /dev/null
@@ -1,286 +0,0 @@
-#include <config.h>
-
-#include "attribute.h"
-#include <disfluid-adwaita.h>
-
-#define STREQ(a, b) (strcmp ((a), (b)) == 0)
-#define STRNEQ(a, b) (! (STREQ (a, b)))
-
-#include <locale.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <assert.h>
-#include "gettext.h"
-#include "relocatable.h"
-
-#define _(String) dgettext (PACKAGE, (String))
-#define N_(String) (String)
-
-#include <disfluid.h>
-#include <glib-object.h>
-#include <adwaita.h>
-#include <gtk/gtk.h>
-
-struct _DisfluidAdwCacheEntry
-{
- AdwPreferencesGroup parent_instance;
- char *file_name;
- struct disfluid_cache_entry *cache_entry;
- GtkLabel *row_request_date;
- GtkLabel *row_response_date;
- GtkLabel *row_invalidation_status;
-};
-
-struct _DisfluidAdwCacheEntryClass
-{
- AdwPreferencesGroupClass parent_instance;
-};
-
-/* *INDENT-OFF* */
-G_DEFINE_TYPE (DisfluidAdwCacheEntry,
- disfluid_adw_cache_entry,
- ADW_TYPE_PREFERENCES_GROUP)
-/* *INDENT-ON* */
-
-typedef enum
-{
- PROP_FILE_NAME = 1,
- PROP_CACHE_ENTRY = 2,
-
- /* ... */
- N_PROPERTIES
-} DisfluidAdwCacheEntryProperty;
-
-static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, };
-
-static void
-disfluid_adw_cache_entry_set_property (GObject * object,
- guint property_id,
- const GValue * value,
- GParamSpec * pspec)
-{
- DisfluidAdwCacheEntry *self = DISFLUID_ADW_CACHE_ENTRY (object);
- switch ((DisfluidAdwCacheEntryProperty) property_id)
- {
- case PROP_FILE_NAME:
- disfluid_adw_cache_entry_set_file_name (self,
- g_value_get_string (value));
- break;
-
- case PROP_CACHE_ENTRY:
- assert (G_VALUE_TYPE (value) == DISFLUID_TYPE_CACHE_ENTRY);
- disfluid_adw_cache_entry_set_cache_entry (self,
- g_value_get_boxed (value));
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
-static void
-disfluid_adw_cache_entry_get_property (GObject * object,
- guint property_id,
- GValue * value, GParamSpec * pspec)
-{
- DisfluidAdwCacheEntry *self = DISFLUID_ADW_CACHE_ENTRY (object);
- switch ((DisfluidAdwCacheEntryProperty) property_id)
- {
- case PROP_FILE_NAME:
- g_value_set_string (value, self->file_name);
- break;
- case PROP_CACHE_ENTRY:
- if (self->cache_entry != NULL)
- {
- g_value_set_boxed (value,
- disfluid_cache_entry_dup (self->cache_entry));
- }
- else
- {
- g_value_set_boxed (value, NULL);
- }
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
-static void
-disfluid_adw_cache_entry_finalize (GObject * obj)
-{
- DisfluidAdwCacheEntry *self = DISFLUID_ADW_CACHE_ENTRY (obj);
- free (self->file_name);
- disfluid_cache_entry_free (self->cache_entry);
- G_OBJECT_CLASS (disfluid_adw_cache_entry_parent_class)->finalize (obj);
-}
-
-static void
-disfluid_adw_cache_entry_class_init (DisfluidAdwCacheEntryClass * klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->set_property = disfluid_adw_cache_entry_set_property;
- object_class->get_property = disfluid_adw_cache_entry_get_property;
- object_class->finalize = disfluid_adw_cache_entry_finalize;
- obj_properties[PROP_FILE_NAME] =
- g_param_spec_string ("file-name", _("File name"), _("Name of the file \
-of this cache entry"), NULL, G_PARAM_READWRITE);
- obj_properties[PROP_CACHE_ENTRY] =
- g_param_spec_boxed ("cache-entry",
- _("Cache entry"), _("Value of the cache entry \
-that is to be displayed by this widget"), DISFLUID_TYPE_CACHE_ENTRY, G_PARAM_READWRITE);
- g_object_class_install_properties (object_class, N_PROPERTIES,
- obj_properties);
-}
-
-static void
-disfluid_adw_cache_entry_init (DisfluidAdwCacheEntry * self)
-{
- /* Perform default initialization of self. */
- self->file_name = NULL;
- self->cache_entry = NULL;
- self->row_request_date = GTK_LABEL (gtk_label_new (_("Unset")));
- self->row_response_date = GTK_LABEL (gtk_label_new (_("Unset")));
- self->row_invalidation_status = GTK_LABEL (gtk_label_new (_("Unset")));
- GtkLabel *my_labels[3] = { self->row_request_date, self->row_response_date,
- self->row_invalidation_status
- };
- for (size_t i = 0; i < sizeof (my_labels) / sizeof (my_labels[0]); i++)
- {
- gtk_label_set_wrap (my_labels[i], true);
- const int margin = 8;
- gtk_widget_set_margin_top (GTK_WIDGET (my_labels[i]), margin);
- gtk_widget_set_margin_bottom (GTK_WIDGET (my_labels[i]), margin);
- gtk_widget_set_margin_start (GTK_WIDGET (my_labels[i]), margin);
- gtk_widget_set_margin_end (GTK_WIDGET (my_labels[i]), margin);
- }
- GtkListBoxRow *row_request_date =
- GTK_LIST_BOX_ROW (g_object_new (ADW_TYPE_PREFERENCES_ROW,
- "title", _("Request date"),
- "child", self->row_request_date,
- "selectable", false,
- NULL));
- GtkListBoxRow *row_response_date =
- GTK_LIST_BOX_ROW (g_object_new (ADW_TYPE_PREFERENCES_ROW,
- "title", _("Response date"),
- "child", self->row_response_date,
- "selectable", false,
- NULL));
- GtkListBoxRow *row_invalidation_status =
- GTK_LIST_BOX_ROW (g_object_new (ADW_TYPE_PREFERENCES_ROW,
- "title", _("Invalidation status"),
- "child", self->row_invalidation_status,
- "selectable", false,
- NULL));
- adw_preferences_group_set_title (ADW_PREFERENCES_GROUP (self),
- _("Unknown cache entry"));
- adw_preferences_group_set_description (ADW_PREFERENCES_GROUP (self),
- _("Unknown URI"));
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self),
- GTK_WIDGET (row_request_date));
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self),
- GTK_WIDGET (row_response_date));
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self),
- GTK_WIDGET (row_invalidation_status));
-}
-
-void
-disfluid_adw_cache_entry_set_file_name (DisfluidAdwCacheEntry * self,
- const char *fname)
-{
- free (self->file_name);
- self->file_name = NULL;
- if (fname)
- {
- self->file_name = g_strdup (fname);
- }
- if (self->file_name == NULL)
- {
- adw_preferences_group_set_title (ADW_PREFERENCES_GROUP (self),
- _("Unknown cache entry"));
- }
- else
- {
- adw_preferences_group_set_title (ADW_PREFERENCES_GROUP (self),
- self->file_name);
- }
-}
-
-void
-disfluid_adw_cache_entry_set_cache_entry (DisfluidAdwCacheEntry * self,
- struct disfluid_cache_entry *value)
-{
- disfluid_cache_entry_free (self->cache_entry);
- if (value != NULL)
- {
- self->cache_entry = disfluid_cache_entry_dup (value);
- struct timespec request_ts, response_ts;
- disfluid_cache_entry_get_request_date (self->cache_entry, &request_ts);
- disfluid_cache_entry_get_response_date (self->cache_entry,
- &response_ts);
- GDateTime *request_date_gross =
- g_date_time_new_from_unix_local (request_ts.tv_sec);
- const double request_frac = request_ts.tv_nsec * 1e-9;
- GDateTime *request_date = g_date_time_add_seconds (request_date_gross,
- request_frac);
- g_date_time_unref (request_date_gross);
- GDateTime *response_date_gross =
- g_date_time_new_from_unix_local (response_ts.tv_sec);
- const double response_frac = response_ts.tv_nsec * 1e-9;
- GDateTime *response_date = g_date_time_add_seconds (response_date_gross,
- response_frac);
- g_date_time_unref (response_date_gross);
- gchar *request_format = g_date_time_format (request_date, "%c");
- gchar *response_format = g_date_time_format (response_date, "%c");
- g_date_time_unref (request_date);
- g_date_time_unref (response_date);
- char *request_title;
- char *response_title;
- char *invalidation_status_title;
- /* TRANSLATORS: The argument is a date and time. */
- if (asprintf (&request_title, _("Requested %s"), request_format) < 0)
- {
- abort ();
- }
- /* TRANSLATORS: The argument is a date and time. */
- if (asprintf (&response_title, _("Responded %s"), response_format) < 0)
- {
- abort ();
- }
- if (disfluid_cache_entry_is_invalidated (self->cache_entry))
- {
- if (asprintf
- (&invalidation_status_title,
- _("This response has been invalidated.")) < 0)
- {
- abort ();
- }
- }
- else
- {
- if (asprintf
- (&invalidation_status_title,
- _("This response is still valid.")) < 0)
- {
- abort ();
- }
- }
- g_free (request_format);
- g_free (response_format);
- gtk_label_set_label (self->row_request_date, request_title);
- gtk_label_set_label (self->row_response_date, response_title);
- gtk_label_set_label (self->row_invalidation_status,
- invalidation_status_title);
- g_free (request_title);
- g_free (response_title);
- g_free (invalidation_status_title);
- }
- else
- {
- self->cache_entry = NULL;
- gtk_label_set_label (self->row_request_date, _("No content"));
- gtk_label_set_label (self->row_response_date, _("No content"));
- gtk_label_set_label (self->row_invalidation_status, _("No content"));
- }
-}
diff --git a/src/adwaita/disfluid-cache-key-demo.c b/src/adwaita/disfluid-cache-key-demo.c
deleted file mode 100644
index 93ec136..0000000
--- a/src/adwaita/disfluid-cache-key-demo.c
+++ /dev/null
@@ -1,267 +0,0 @@
-#include <config.h>
-
-#include "attribute.h"
-#include <disfluid.h>
-#include "disfluid-adwaita.h"
-
-#define STREQ(a, b) (strcmp ((a), (b)) == 0)
-#define STRNEQ(a, b) (! (STREQ (a, b)))
-
-#include <locale.h>
-#include <stdio.h>
-#include <unistd.h>
-#include "gettext.h"
-#include "relocatable.h"
-
-#define _(String) dgettext (PACKAGE, (String))
-#define N_(String) (String)
-
-#include <adwaita.h>
-#include <gtk/gtk.h>
-
-/* *INDENT-OFF* */
-G_BEGIN_DECLS
-/* *INDENT-ON* */
-
-#define DISFLUID_ADW_TYPE_CACHE_KEY_DEMO \
- disfluid_adw_cache_key_demo_get_type ()
-
-/* *INDENT-OFF* */
-G_DECLARE_FINAL_TYPE (DisfluidAdwCacheKeyDemo,
- disfluid_adw_cache_key_demo,
- DISFLUID_ADW, CACHE_KEY_DEMO,
- AdwPreferencesGroup)
-G_END_DECLS
-/* *INDENT-ON* */
-
-GType disfluid_adw_cache_key_demo_get_type (void);
-
-struct _DisfluidAdwCacheKeyDemo
-{
- AdwPreferencesGroup parent_instance;
- AdwEntryRow *scheme_view;
- GtkTextBuffer *request_buffer;
- GtkTextBuffer *response_buffer;
- GtkTextBuffer *output_buffer;
-};
-
-struct _DisfluidAdwCacheKeyDemoClass
-{
- AdwPreferencesGroupClass parent_instance;
-};
-
-/* *INDENT-OFF* */
-G_DEFINE_TYPE (DisfluidAdwCacheKeyDemo, disfluid_adw_cache_key_demo, ADW_TYPE_PREFERENCES_GROUP)
-/* *INDENT-ON* */
-
-static void
-disfluid_adw_cache_key_demo_class_init (DisfluidAdwCacheKeyDemoClass * klass)
-{
- (void) klass;
-}
-
-static inline void
-push_dynamic_text (char **text, size_t *used, size_t *allocated, char c)
-{
- if (*used == *allocated)
- {
- *allocated *= 2;
- *text = realloc (*text, *allocated);
- if (*text == NULL)
- {
- abort ();
- }
- }
- (*text)[*used] = c;
- *used += 1;
-}
-
-static inline char *
-get_text_buffer_data (GtkTextBuffer * buffer)
-{
- GtkTextIter iter_start = { 0 };
- GtkTextIter iter_end = { 0 };
- gtk_text_buffer_get_start_iter (buffer, &iter_start);
- gtk_text_buffer_get_end_iter (buffer, &iter_end);
- gchar *raw_text =
- gtk_text_buffer_get_text (buffer, &iter_start, &iter_end, TRUE);
- /* raw_text has \n or \r\n line ending, replace them with \r\n. */
- size_t allocated_size = 1;
- size_t used_size = 0;
- char *http_ready = calloc (allocated_size, 1);
- for (size_t i = 0; i < strlen (raw_text); i++)
- {
- if (raw_text[i] != '\r')
- {
- if (raw_text[i] == '\n')
- {
- push_dynamic_text (&http_ready, &used_size, &allocated_size,
- '\r');
- }
- push_dynamic_text (&http_ready, &used_size, &allocated_size,
- raw_text[i]);
- }
- }
- push_dynamic_text (&http_ready, &used_size, &allocated_size, '\0');
- g_free (raw_text);
- return http_ready;
-}
-
-static inline void
-recompute (DisfluidAdwCacheKeyDemo * self)
-{
- static const size_t max = 4096;
- char *key = calloc (max, 1);
- if (key == NULL)
- {
- abort ();
- }
- char *scheme =
- g_strdup (gtk_editable_get_text (GTK_EDITABLE (self->scheme_view)));
- char *request_header = get_text_buffer_data (self->request_buffer);
- char *response_header = get_text_buffer_data (self->response_buffer);
- int error =
- disfluid_compute_cache_key (scheme, request_header, response_header, max,
- key);
- switch (error)
- {
- case 0:
- gtk_text_buffer_set_text (self->output_buffer, key, strlen (key));
- break;
- case -1:
- {
- const char *error_message =
- _("Error: there is a problem with your input.");
- gtk_text_buffer_set_text (self->output_buffer, error_message,
- strlen (error_message));
- }
- break;
- case -2:
- {
- const char *error_message = _("Error: the key would be too large.");
- gtk_text_buffer_set_text (self->output_buffer, error_message,
- strlen (error_message));
- }
- break;
- default:
- {
- const char *error_message = _("You triggered an unknown error.");
- gtk_text_buffer_set_text (self->output_buffer, error_message,
- strlen (error_message));
- }
- break;
- }
- free (key);
-}
-
-static GtkWidget *
-make_text_view_row (const char *title, const char *default_text,
- GtkTextBuffer ** buffer, gboolean editable)
-{
- GtkBox *container = GTK_BOX (g_object_new (GTK_TYPE_BOX,
- "orientation",
- GTK_ORIENTATION_VERTICAL,
- NULL));
- GtkLabel *title_widget = GTK_LABEL (g_object_new (GTK_TYPE_LABEL,
- "label", title,
- "ellipsize",
- PANGO_ELLIPSIZE_END,
- "margin-top", 8,
- "margin-bottom", 8,
- "margin-start", 8,
- "margin-end", 8,
- NULL));
- *buffer = GTK_TEXT_BUFFER (g_object_new (GTK_TYPE_TEXT_BUFFER,
- "text", default_text, NULL));
- GtkTextView *text_view = GTK_TEXT_VIEW (g_object_new (GTK_TYPE_TEXT_VIEW,
- "monospace", TRUE,
- "buffer", *buffer,
- "margin-top", 8,
- "margin-bottom", 8,
- "margin-start", 8,
- "margin-end", 8,
- "editable", editable,
- NULL));
- gtk_box_append (container, GTK_WIDGET (title_widget));
- gtk_box_append (container, GTK_WIDGET (text_view));
- AdwPreferencesRow *ret =
- ADW_PREFERENCES_ROW (g_object_new (ADW_TYPE_PREFERENCES_ROW,
- "title", title,
- "activatable", FALSE,
- "selectable", FALSE,
- "child", container,
- NULL));
- return GTK_WIDGET (ret);
-}
-
-static inline void
-change_scheme (GtkEditable * editable, void *user_data)
-{
- (void) editable;
- DisfluidAdwCacheKeyDemo *context = user_data;
- recompute (context);
-}
-
-static inline void
-change_text_buffer (GtkTextBuffer * ptr, void *user_data)
-{
- (void) ptr;
- DisfluidAdwCacheKeyDemo *context = user_data;
- recompute (context);
-}
-
-static void
-disfluid_adw_cache_key_demo_init (DisfluidAdwCacheKeyDemo * self)
-{
- g_object_set (G_OBJECT (self),
- "title", _("Cache key demo"),
- "description",
- _("See how disfluid indexes a request/response pair."), NULL);
- /* TRANSLATORS: Make sure the HTTP/1.1 example stays valid (the CR
- characters, \r, are not mandatory), but you can translate the URI
- and host. */
- const char *request_example = _("\
-GET /example HTTP/1.1\n\
-Host: example.com\n\
-Accept: text/plain\n\
-\n");
- GtkWidget *request_view =
- make_text_view_row (_("Request header"), request_example,
- &(self->request_buffer), TRUE);
- /* TRANSLATORS: Make sure the HTTP/1.1 example stays valid (the CR
- characters, \r, are not mandatory), but you can translate the
- reason phrase and the message. */
- const char *response_example = _("\
-HTTP/1.1 200 OK\n\
-Content-Type: text/plain\n\
-\n\
-Hi :)\n");
- GtkWidget *response_view =
- make_text_view_row (_("Response header"), response_example,
- &(self->response_buffer), TRUE);
- GtkWidget *output_view =
- make_text_view_row (_("Cache key"), "", &(self->output_buffer), FALSE);
- self->scheme_view =
- ADW_ENTRY_ROW (g_object_new
- (ADW_TYPE_ENTRY_ROW, "title", _("HTTP scheme"),
- "input-purpose", GTK_INPUT_PURPOSE_ALPHA, "activatable",
- FALSE, "selectable", FALSE, "text", "https", NULL));
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self),
- GTK_WIDGET (self->scheme_view));
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self), request_view);
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self), response_view);
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self), output_view);
- g_signal_connect (self->scheme_view, "changed", G_CALLBACK (change_scheme),
- self);
- g_signal_connect (self->request_buffer, "changed",
- G_CALLBACK (change_text_buffer), self);
- g_signal_connect (self->response_buffer, "changed",
- G_CALLBACK (change_text_buffer), self);
- recompute (self);
-}
-
-GtkWidget *
-disfluid_adw_cache_key_demo (void)
-{
- return GTK_WIDGET (g_object_new (DISFLUID_ADW_TYPE_CACHE_KEY_DEMO, NULL));
-}
diff --git a/src/adwaita/disfluid-g-cache-entry.c b/src/adwaita/disfluid-g-cache-entry.c
deleted file mode 100644
index 8fe7141..0000000
--- a/src/adwaita/disfluid-g-cache-entry.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <config.h>
-
-#include "attribute.h"
-#include <disfluid.h>
-#include "disfluid-adwaita.h"
-
-#define STREQ(a, b) (strcmp ((a), (b)) == 0)
-#define STRNEQ(a, b) (! (STREQ (a, b)))
-
-#include <locale.h>
-#include <stdio.h>
-#include <unistd.h>
-#include "gettext.h"
-#include "relocatable.h"
-
-#define _(String) dgettext (PACKAGE, (String))
-#define N_(String) (String)
-
-#include <glib-object.h>
-
-typedef struct disfluid_cache_entry DisfluidCacheEntry;
-
-G_DEFINE_BOXED_TYPE (DisfluidCacheEntry,
- disfluid_cache_entry,
- disfluid_cache_entry_dup, disfluid_cache_entry_free)
diff --git a/src/adwaita/disfluid-hash-key-demo.c b/src/adwaita/disfluid-hash-key-demo.c
deleted file mode 100644
index c8af2b1..0000000
--- a/src/adwaita/disfluid-hash-key-demo.c
+++ /dev/null
@@ -1,170 +0,0 @@
-#include <config.h>
-
-#include "attribute.h"
-#include <disfluid.h>
-#include "disfluid-adwaita.h"
-
-#define STREQ(a, b) (strcmp ((a), (b)) == 0)
-#define STRNEQ(a, b) (! (STREQ (a, b)))
-
-#include <locale.h>
-#include <stdio.h>
-#include <unistd.h>
-#include "gettext.h"
-#include "relocatable.h"
-
-#define _(String) dgettext (PACKAGE, (String))
-#define N_(String) (String)
-
-#include <adwaita.h>
-#include <gtk/gtk.h>
-#include <assert.h>
-
-/* *INDENT-OFF* */
-G_BEGIN_DECLS
-/* *INDENT-ON* */
-
-#define DISFLUID_ADW_TYPE_HASH_KEY_DEMO \
- disfluid_adw_hash_key_demo_get_type ()
-
-/* *INDENT-OFF* */
-G_DECLARE_FINAL_TYPE (DisfluidAdwHashKeyDemo,
- disfluid_adw_hash_key_demo,
- DISFLUID_ADW, HASH_KEY_DEMO,
- AdwPreferencesGroup)
-G_END_DECLS
-/* *INDENT-ON* */
-
-GType disfluid_adw_hash_key_demo_get_type (void);
-
-struct _DisfluidAdwHashKeyDemo
-{
- AdwPreferencesGroup parent_instance;
- AdwEntryRow *method_view;
- AdwEntryRow *uri_view;
- AdwEntryRow *password_view;
- GtkTextBuffer *output_buffer;
-};
-
-struct _DisfluidAdwHashKeyDemoClass
-{
- AdwPreferencesGroupClass parent_instance;
-};
-
-/* *INDENT-OFF* */
-G_DEFINE_TYPE (DisfluidAdwHashKeyDemo, disfluid_adw_hash_key_demo, ADW_TYPE_PREFERENCES_GROUP)
-/* *INDENT-ON* */
-
-static void
-disfluid_adw_hash_key_demo_class_init (DisfluidAdwHashKeyDemoClass * klass)
-{
- (void) klass;
-}
-
-static inline void
-recompute (DisfluidAdwHashKeyDemo * self)
-{
- char *method =
- g_strdup (gtk_editable_get_text (GTK_EDITABLE (self->method_view)));
- char *uri =
- g_strdup (gtk_editable_get_text (GTK_EDITABLE (self->uri_view)));
- char *password =
- g_strdup (gtk_editable_get_text (GTK_EDITABLE (self->password_view)));
- char output[65];
- int error =
- disfluid_hash_primary_cache_key (method, uri, password, strlen (password),
- sizeof (output), output);
- if (error < 0)
- {
- abort ();
- }
- assert (strlen (output) == 64);
- gtk_text_buffer_set_text (self->output_buffer, output, strlen (output));
- free (password);
- free (uri);
- free (method);
-}
-
-static inline void
-change_and_recompute (GtkEditable * editable, void *user_data)
-{
- (void) editable;
- DisfluidAdwHashKeyDemo *context = user_data;
- recompute (context);
-}
-
-static void
-disfluid_adw_hash_key_demo_init (DisfluidAdwHashKeyDemo * self)
-{
- g_object_set (G_OBJECT (self),
- "title", _("Hash key demo"),
- "description",
- _("See how disfluid hashes a method and URI."), NULL);
- self->method_view =
- ADW_ENTRY_ROW (g_object_new (ADW_TYPE_ENTRY_ROW,
- "title", _("HTTP Method"),
- "input-purpose", GTK_INPUT_PURPOSE_ALPHA,
- "activatable", FALSE,
- "selectable", FALSE, "text", "GET", NULL));
- self->uri_view =
- ADW_ENTRY_ROW (g_object_new (ADW_TYPE_ENTRY_ROW,
- "title", _("URI"),
- "activatable", FALSE,
- "selectable", FALSE,
- "text", "https://example.com", NULL));
- self->password_view =
- ADW_ENTRY_ROW (g_object_new (ADW_TYPE_PASSWORD_ENTRY_ROW,
- "title", _("Password"),
- "activatable", FALSE,
- "selectable", FALSE, "text", "", NULL));
- self->output_buffer =
- GTK_TEXT_BUFFER (g_object_new (GTK_TYPE_TEXT_BUFFER, "text", "", NULL));
- GtkTextView *text_view = GTK_TEXT_VIEW (g_object_new (GTK_TYPE_TEXT_VIEW,
- "monospace", TRUE,
- "buffer",
- self->output_buffer,
- "margin-top", 8,
- "margin-bottom", 8,
- "margin-start", 8,
- "margin-end", 8,
- "editable", FALSE,
- "wrap-mode",
- GTK_WRAP_CHAR,
- NULL));
- g_signal_connect (self->method_view, "changed",
- G_CALLBACK (change_and_recompute), self);
- g_signal_connect (self->uri_view, "changed",
- G_CALLBACK (change_and_recompute), self);
- g_signal_connect (self->password_view, "changed",
- G_CALLBACK (change_and_recompute), self);
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self),
- GTK_WIDGET (self->method_view));
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self),
- GTK_WIDGET (self->uri_view));
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self),
- GTK_WIDGET (self->password_view));
- GtkLabel *output_title_widget =
- GTK_LABEL (g_object_new
- (GTK_TYPE_LABEL, "label", _("Hash output"), "ellipsize",
- PANGO_ELLIPSIZE_END, "margin-top", 8, "margin-bottom", 8,
- "margin-start", 8, "margin-end", 8, NULL));
- GtkBox *output_container =
- GTK_BOX (g_object_new
- (GTK_TYPE_BOX, "orientation", GTK_ORIENTATION_VERTICAL, NULL));
- gtk_box_append (output_container, GTK_WIDGET (output_title_widget));
- gtk_box_append (output_container, GTK_WIDGET (text_view));
- AdwPreferencesRow *output_row =
- ADW_PREFERENCES_ROW (g_object_new
- (ADW_TYPE_PREFERENCES_ROW, "title", _("Hash output"),
- "activatable", FALSE, "selectable", FALSE, "child",
- output_container, NULL));
- adw_preferences_group_add (ADW_PREFERENCES_GROUP (self),
- GTK_WIDGET (output_row));
- recompute (self);
-}
-
-GtkWidget *
-disfluid_adw_hash_key_demo (void)
-{
- return GTK_WIDGET (g_object_new (DISFLUID_ADW_TYPE_HASH_KEY_DEMO, NULL));
-}
diff --git a/src/adwaita/disfluid-menus.c b/src/adwaita/disfluid-menus.c
deleted file mode 100644
index 34766c7..0000000
--- a/src/adwaita/disfluid-menus.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <config.h>
-
-#include "attribute.h"
-#include <disfluid.h>
-#include "disfluid-adwaita.h"
-
-#define STREQ(a, b) (strcmp ((a), (b)) == 0)
-#define STRNEQ(a, b) (! (STREQ (a, b)))
-
-#include <locale.h>
-#include <stdio.h>
-#include <unistd.h>
-#include "gettext.h"
-#include "relocatable.h"
-
-#define _(String) dgettext (PACKAGE, (String))
-#define N_(String) (String)
-
-#include <adwaita.h>
-#include <gtk/gtk.h>
-
-GMenuItem *
-disfluid_adw_menu_item_about (void)
-{
- GMenuItem *item = g_menu_item_new (_("About Experiences"), "app.about");
- GIcon *help_about_icon = G_ICON (g_themed_icon_new ("help-about"));
- g_menu_item_set_icon (item, help_about_icon);
- g_object_unref (help_about_icon);
- return item;
-}
-
-GMenuItem *
-disfluid_adw_menu_item_run_tests (void)
-{
- GMenuItem *item = g_menu_item_new (_("Run Tests"), "app.runtests");
- GIcon *system_run_icon = G_ICON (g_themed_icon_new ("system-run"));
- g_menu_item_set_icon (item, system_run_icon);
- g_object_unref (system_run_icon);
- return item;
-}
-
-GMenu *
-disfluid_adw_main_menu (void)
-{
- GMenu *menu = g_menu_new ();
- GMenuItem *about = disfluid_adw_menu_item_about ();
- GMenuItem *runtests = disfluid_adw_menu_item_run_tests ();
- g_menu_append_item (menu, about);
- g_menu_append_item (menu, runtests);
- g_object_unref (about);
- g_object_unref (runtests);
- return menu;
-}
diff --git a/src/adwaita/disfluid-tests-results.c b/src/adwaita/disfluid-tests-results.c
deleted file mode 100644
index f4794ef..0000000
--- a/src/adwaita/disfluid-tests-results.c
+++ /dev/null
@@ -1,108 +0,0 @@
-#include <config.h>
-
-#include "attribute.h"
-#include <disfluid.h>
-#include "disfluid-adwaita.h"
-
-#define STREQ(a, b) (strcmp ((a), (b)) == 0)
-#define STRNEQ(a, b) (! (STREQ (a, b)))
-
-#include <locale.h>
-#include <stdio.h>
-#include <unistd.h>
-#include "gettext.h"
-#include "relocatable.h"
-
-#define _(String) dgettext (PACKAGE, (String))
-#define N_(String) (String)
-
-#include <adwaita.h>
-#include <gtk/gtk.h>
-
-void
-disfluid_adw_show_tests_results (GtkApplication * app,
- size_t n_tests,
- size_t n_errors, const char *output)
-{
- GtkTextBuffer *buffer = gtk_text_buffer_new (NULL);
- g_object_set (G_OBJECT (buffer), "text", output, NULL);
- GtkTextView *text_area =
- GTK_TEXT_VIEW (gtk_text_view_new_with_buffer (buffer));
- g_object_unref (buffer);
- g_object_set (G_OBJECT (text_area),
- "editable", (gboolean) 0,
- "hscroll-policy", GTK_SCROLL_NATURAL, NULL);
- char *icon_name = NULL;
- char *title = NULL;
- char *description = NULL;
- if (n_errors == 0)
- {
- icon_name = g_strdup ("dialog-information");
- if (asprintf
- (&title,
- dngettext (PACKAGE, "The %lu test passed", "All %lu tests passed",
- n_tests), n_tests) < 0)
- {
- title = NULL;
- }
- if (asprintf (&description, dngettext (PACKAGE, "\
-The unit test indicates that when you restart Experiences, \
-it will behave as expected.", "\
-The unit tests indicate that when you restart Experiences, \
-it will behave as expected.", n_tests)) < 0)
- {
- description = NULL;
- }
- }
- else
- {
- icon_name = g_strdup ("dialog-error");
- if (asprintf
- (&title,
- dngettext (PACKAGE, "A test failed", "Some tests failed",
- n_errors)) < 0)
- {
- title = NULL;
- }
- if (asprintf (&description,
- dngettext (PACKAGE,
- "%2$lu unit tests failed out of %1$lu.",
- "%2$lu unit tests failed out of %1$lu.",
- n_errors), n_tests, n_errors) < 0)
- {
- description = NULL;
- }
- }
- AdwStatusPage *page = ADW_STATUS_PAGE (g_object_new (ADW_TYPE_STATUS_PAGE,
- "child", text_area,
- "icon-name", icon_name,
- "title", title,
- "description",
- description,
- NULL));
- g_free (icon_name);
- free (title);
- free (description);
- AdwWindowTitle *window_title =
- ADW_WINDOW_TITLE (g_object_new (ADW_TYPE_WINDOW_TITLE,
- "title", _("Experiences"),
- "subtitle", _("Unit Tests Results"),
- NULL));
- AdwHeaderBar *header_bar =
- ADW_HEADER_BAR (g_object_new (ADW_TYPE_HEADER_BAR,
- "title-widget", GTK_WIDGET (window_title),
- "centering-policy",
- ADW_CENTERING_POLICY_STRICT,
- NULL));
- GtkBox *main_content = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 0));
- gtk_box_append (main_content, GTK_WIDGET (header_bar));
- gtk_box_append (main_content, GTK_WIDGET (page));
- AdwApplicationWindow *window =
- (AdwApplicationWindow *) g_object_new (ADW_TYPE_APPLICATION_WINDOW,
- "application",
- GTK_APPLICATION (app),
- "content",
- GTK_WIDGET (main_content),
- NULL);
- gtk_window_present (GTK_WINDOW (window));
-}
diff --git a/src/adwaita/disfluid-window.c b/src/adwaita/disfluid-window.c
deleted file mode 100644
index d7d1519..0000000
--- a/src/adwaita/disfluid-window.c
+++ /dev/null
@@ -1,89 +0,0 @@
-#include <config.h>
-
-#include "attribute.h"
-#include <disfluid-adwaita.h>
-
-#define STREQ(a, b) (strcmp ((a), (b)) == 0)
-#define STRNEQ(a, b) (! (STREQ (a, b)))
-
-#include <locale.h>
-#include <stdio.h>
-#include <unistd.h>
-#include "gettext.h"
-#include "relocatable.h"
-
-#define _(String) dgettext (PACKAGE, (String))
-#define N_(String) (String)
-
-#include <disfluid.h>
-#include <glib-object.h>
-#include <adwaita.h>
-#include <gtk/gtk.h>
-
-struct _DisfluidAdwWindow
-{
- AdwApplicationWindow parent_instance;
-};
-
-struct _DisfluidAdwWindowClass
-{
- AdwApplicationWindowClass parent_instance;
-};
-
-/* *INDENT-OFF* */
-G_DEFINE_TYPE (DisfluidAdwWindow, disfluid_adw_window, ADW_TYPE_APPLICATION_WINDOW)
-/* *INDENT-ON* */
-
-static void
-disfluid_adw_window_class_init (DisfluidAdwWindowClass * klass)
-{
- (void) klass;
-}
-
-static void
-disfluid_adw_window_init (DisfluidAdwWindow * self)
-{
- (void) self;
- /* Perform default initialization of self. */
- GMenu *main_menu = disfluid_adw_main_menu ();
- GtkWidget *menu_button = gtk_menu_button_new ();
- GtkWidget *header_bar = adw_header_bar_new ();
- gtk_menu_button_set_icon_name (GTK_MENU_BUTTON (menu_button), "open-menu");
- gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (menu_button),
- G_MENU_MODEL (main_menu));
- g_object_unref (main_menu);
- adw_header_bar_pack_end (ADW_HEADER_BAR (header_bar), menu_button);
- GtkWidget *unique_content = disfluid_adw_hash_key_demo ();
- GtkWidget *main_page = g_object_new (ADW_TYPE_PREFERENCES_PAGE, NULL);
- adw_preferences_page_add (ADW_PREFERENCES_PAGE (main_page),
- ADW_PREFERENCES_GROUP (unique_content));
- GtkWidget *content = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
- gtk_box_append (GTK_BOX (content), header_bar);
- gtk_box_append (GTK_BOX (content), main_page);
- adw_application_window_set_content (ADW_APPLICATION_WINDOW (self), content);
- char *settings_id;
- if (asprintf (&settings_id, "%s.State", disfluid_adw_application_id ()) < 0)
- {
- abort ();
- }
- GSettings *settings = g_settings_new (settings_id);
- free (settings_id);
- g_settings_bind (settings, "width", self, "default-width",
- G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "height", self, "default-height",
- G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "is-maximized", self, "maximized",
- G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "is-fullscreen", self, "fullscreened",
- G_SETTINGS_BIND_DEFAULT);
-}
-
-GtkWidget *
-disfluid_adw_window_new (GtkApplication * app)
-{
- GtkWidget *self = NULL;
- self =
- (GtkWidget *) g_object_new (DISFLUID_ADW_TYPE_WINDOW,
- "application", app, NULL);
- return self;
-}
diff --git a/src/disfluid/Makefile.am b/src/disfluid/Makefile.am
deleted file mode 100644
index 555d455..0000000
--- a/src/disfluid/Makefile.am
+++ /dev/null
@@ -1,40 +0,0 @@
-bin_PROGRAMS += %D%/disfluid
-libexec_PROGRAMS += %D%/disfluid-run-unit-tests
-
-%C%_disfluid_SOURCES = \
- %D%/main.c
-%C%_disfluid_CPPFLAGS = \
- -I libprog -I $(srcdir)/libprog \
- -I include -I $(srcdir)/include \
- -DLOCALEDIR=\"$(localedir)\" \
- -DINSTALLDIR=\"$(bindir)\" \
- -DGETTEXT_PACKAGE=\"$(PACKAGE)\"
-%C%_disfluid_LDADD = \
- libprog/libgnu.la \
- src/libdisfluid/libdisfluid.la \
- src/adwaita/libdisfluid-adwaita.la \
- $(LIBTHREAD) \
- $(LTLIBINTL) \
- $(POSIX_SPAWN_LIB) \
- $(SETLOCALE_LIB) \
- $(SETLOCALE_NULL_LIB) \
- @INTL_MACOSX_LIBS@
-
-%C%_disfluid_run_unit_tests_SOURCES = \
- %D%/run-unit-tests.c
-%C%_disfluid_run_unit_tests_CPPFLAGS = \
- -I libprog -I $(srcdir)/libprog \
- -I include -I $(srcdir)/include \
- -DLOCALEDIR=\"$(localedir)\" \
- -DINSTALLDIR=\"$(bindir)\" \
- -DGETTEXT_PACKAGE=\"$(PACKAGE)\"
-%C%_disfluid_run_unit_tests_LDADD = \
- libprog/libgnu.la \
- src/libdisfluid/libdisfluid.la \
- src/adwaita/libdisfluid-adwaita.la \
- $(LIBTHREAD) \
- $(LTLIBINTL) \
- $(POSIX_SPAWN_LIB) \
- $(SETLOCALE_LIB) \
- $(SETLOCALE_NULL_LIB) \
- @INTL_MACOSX_LIBS@
diff --git a/src/disfluid/main.c b/src/disfluid/main.c
deleted file mode 100644
index 598cd36..0000000
--- a/src/disfluid/main.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <config.h>
-#include "attribute.h"
-#include <disfluid.h>
-
-#include <locale.h>
-#include "gettext.h"
-#include "progname.h"
-#include "relocatable.h"
-
-#include "../adwaita/disfluid-adwaita.h"
-#include <glib.h>
-#include <adwaita.h>
-
-int
-main (int argc, char *argv[])
-{
- set_program_name (argv[0]);
- setlocale (LC_ALL, "");
- bindtextdomain (PACKAGE, relocate (LOCALEDIR));
- textdomain (PACKAGE);
- DisfluidAdwApplication *app = disfluid_adw_application_new ();
- int status = g_application_run ((GApplication *) app, argc, argv);
- g_object_unref (app);
- return status;
-}
diff --git a/src/disfluid/run-unit-tests.c b/src/disfluid/run-unit-tests.c
deleted file mode 100644
index 7f9b8f3..0000000
--- a/src/disfluid/run-unit-tests.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <config.h>
-#include "attribute.h"
-#include <disfluid.h>
-
-#include <unistd.h>
-#include <locale.h>
-#include "gettext.h"
-#include "progname.h"
-#include "relocatable.h"
-
-#include <glib.h>
-
-#define _(String) gettext (String)
-#define N_(String) (String)
-
-int
-main (int argc, char *argv[])
-{
- (void) argc;
- set_program_name (argv[0]);
- setlocale (LC_ALL, "");
- bindtextdomain (PACKAGE, relocate (LOCALEDIR));
- textdomain (PACKAGE);
- size_t n_tests, n_errors;
- char *tests_output = disfluid_run_tests (&n_tests, &n_errors);
- const char *bindir = relocate (INSTALLDIR);
- char *disfluid_exec = malloc (strlen (bindir) + strlen ("/disfluid") + 1);
- if (disfluid_exec == NULL)
- {
- abort ();
- }
- strcpy (disfluid_exec, bindir);
- strcat (disfluid_exec, "/disfluid");
- char *arg_0 = NULL;
- if (asprintf (&arg_0, "%s", disfluid_exec) < 0)
- {
- abort ();
- }
- char *arg_1 = NULL;
- if (asprintf (&arg_1, "--%s=%lu", _("n-tests-run"), n_tests) < 0)
- {
- abort ();
- }
- char *arg_2 = NULL;
- if (asprintf (&arg_2, "--%s=%lu", _("n-tests-errors"), n_errors) < 0)
- {
- abort ();
- }
- char *arg_3 = NULL;
- if (asprintf (&arg_3, "--%s=%s", _("tests-output"), tests_output) < 0)
- {
- abort ();
- }
- char *args[] = { arg_0, arg_1, arg_2, arg_3, NULL };
- int error = execv (disfluid_exec, args);
- for (size_t i = 0; args[i] != NULL; i++)
- {
- free (args[i]);
- }
- free (tests_output);
- if (error)
- {
- fprintf (stderr, "%s:%d: cannot execute %s.\n", __FILE__, __LINE__,
- disfluid_exec);
- free (disfluid_exec);
- return EXIT_FAILURE;
- }
- free (disfluid_exec);
- return EXIT_SUCCESS;
-}
diff --git a/src/libdisfluid/Makefile.am b/src/libdisfluid/Makefile.am
index e8bb8f5..8eb2d3a 100644
--- a/src/libdisfluid/Makefile.am
+++ b/src/libdisfluid/Makefile.am
@@ -49,3 +49,15 @@ defexec_DATA = \
DISTCLEANFILES += $(defexec_DATA)
endif
+
+AM_V_SCAN = $(am__v_SCAN_@AM_V@)
+am__v_SCAN_ = $(am__v_SCAN_@AM_DEFAULT_V@)
+am__v_SCAN_0 = @echo " SCAN " $@;
+am__v_SCAN_1 =
+
+girdir = $(datarootdir)/gir-1.0
+
+dist_gir_DATA = %D%/Disfluid-$(DLL_VERSION).gir
+
+%D%/Disfluid-$(DLL_VERSION).gir: $(include_HEADERS) $(dist_pkginclude_HEADERS)
+ $(AM_V_SCAN) ($(G_IR_SCANNER) --warn-all --strict --format=gir -I$(abs_top_srcdir)/include --c-include=disfluid.h --c-include=disfluid/cache_entry.h -n Disfluid --nsversion=$(DLL_VERSION) --symbol-prefix=disfluid_ --output=%D%/Disfluid-$(DLL_VERSION).gir-t $(include_HEADERS) $(dist_pkginclude_HEADERS) --program=echo && mv %D%/Disfluid-$(DLL_VERSION).gir-t $(srcdir)/%D%/Disfluid-$(DLL_VERSION).gir)