summaryrefslogtreecommitdiffstats
path: root/src/utils/html.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/html.h')
-rw-r--r--src/utils/html.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/utils/html.h b/src/utils/html.h
new file mode 100644
index 0000000..92fe2ea
--- /dev/null
+++ b/src/utils/html.h
@@ -0,0 +1,88 @@
+/*
+ * HTML document generation
+ *
+ * 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/>.
+ */
+
+#ifndef MQ_HTML_H
+#define MQ_HTML_H
+
+#include <glib.h>
+
+gchar *
+mq_html_document(const gchar *title, ...) G_GNUC_NULL_TERMINATED;
+
+#define TEXT_ELEMENT(ELEM) \
+ gchar * \
+ mq_html_##ELEM(const gchar *text); \
+ gchar * \
+ mq_html_##ELEM##_free(gchar *text);
+TEXT_ELEMENT(h1)
+TEXT_ELEMENT(h2)
+TEXT_ELEMENT(h3)
+TEXT_ELEMENT(h4)
+TEXT_ELEMENT(h5)
+TEXT_ELEMENT(h6)
+TEXT_ELEMENT(p)
+#undef TEXT_ELEMENT
+
+gchar *
+mq_html_container(const gchar *element, ...) G_GNUC_NULL_TERMINATED;
+
+gchar *
+mq_html_list(const gchar *type, GDestroyNotify destroy, ...)
+ G_GNUC_NULL_TERMINATED;
+
+gchar *
+mq_html_list_v(const gchar *type, gchar **children);
+
+gchar *
+mq_html_notebook(gboolean vertical, const gchar *name, guint current_page, ...)
+ G_GNUC_NULL_TERMINATED;
+
+gchar *
+mq_html_form(const gchar *submit_label, const gchar *reset_label, ...)
+ G_GNUC_NULL_TERMINATED;
+
+gchar *
+mq_html_input_text(const gchar *name, const gchar *label, const gchar *value);
+
+gchar *
+mq_html_input_number_i(const gchar *name, const gchar *label,
+ gint min, gint step, gint max, gint value);
+
+gchar *
+mq_html_input_number_d(const gchar *name, const gchar *label,
+ gdouble min, gdouble step, gdouble max, gdouble value);
+
+gchar *
+mq_html_input_radio(const gchar *name, const gchar *label, gboolean checked);
+
+gchar *
+mq_html_input_checkbox(const gchar *name, const gchar *label, gboolean checked);
+
+gchar *
+mq_html_input_select(const gchar *name, const gchar *label,
+ const gchar *selected,
+ GDestroyNotify destroy_value, GDestroyNotify destroy_label, ...)
+ G_GNUC_NULL_TERMINATED;
+
+gchar *
+mq_html_input_iframe(const gchar *src);
+
+#endif