summaryrefslogtreecommitdiffstats
path: root/src/schemes/about/marquee.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/schemes/about/marquee.c')
-rw-r--r--src/schemes/about/marquee.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/schemes/about/marquee.c b/src/schemes/about/marquee.c
new file mode 100644
index 0000000..1ecbe08
--- /dev/null
+++ b/src/schemes/about/marquee.c
@@ -0,0 +1,74 @@
+/*
+ * about:marquee
+ *
+ * Copyright (C) 2017 Patrick McDermott
+ *
+ * This file is part of Marquee.
+ *
+ * Marquee 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 of the License, or
+ * (at your option) any later version.
+ *
+ * Marquee 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 Marquee. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glib.h>
+#include <webkit2/webkit2.h>
+
+#include "../../application.h"
+#include "../about.h"
+#include "../paths.h"
+
+static const gchar *document =
+ "<!doctype html>"
+ "<html dir=\"%s\">"
+ "<head>"
+ "<meta charset=\"utf-8\">"
+ "<title>%s</title>"
+ "<style>"
+ "form {"
+ "text-align: center;"
+ "}"
+ "form > input[type=submit] {"
+ "margin: 32px;"
+ "padding: 16px;"
+ "background-color: #FF0000;"
+ "color: #FFFFFF;"
+ "font-weight: bold;"
+ "font-size: 64px;"
+ "}"
+ "</style>"
+ "</head>"
+ "<body>"
+ "<form>"
+ "<input type=\"submit\" name=\"toggle\""
+ "value=\"%s\">"
+ "</form>"
+ "</body>"
+ "</html>";
+
+void
+mq_about_marquee_response(MqApplication *application, GHashTable *query,
+ WebKitURISchemeRequest *request)
+{
+ if (query && g_hash_table_lookup(query, "toggle")) {
+ if (mq_application_marquee_mode_on(application)) {
+ mq_application_marquee_mode_deactivate(application);
+ } else {
+ mq_application_marquee_mode_activate(application);
+ }
+ mq_about_redirect(request, "mq-about:marquee");
+ } else {
+ mq_about_response(request, g_strdup_printf(document,
+ gtk_widget_get_default_direction() ==
+ GTK_TEXT_DIR_RTL ? "rtl" : "ltr",
+ "DANGER", "DO NOT PRESS"));
+ }
+}