summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/utils/html.c52
-rw-r--r--src/utils/html.h4
2 files changed, 56 insertions, 0 deletions
diff --git a/src/utils/html.c b/src/utils/html.c
index fdaa96a..0f44a44 100644
--- a/src/utils/html.c
+++ b/src/utils/html.c
@@ -729,6 +729,58 @@ mq_html_form(const gchar *submit_label, const gchar *reset_label, ...)
}
gchar *
+mq_html_form_v(const gchar *submit_label, const gchar *reset_label,
+ gchar **children)
+{
+ gsize len;
+ gsize i;
+ gchar *form;
+ gchar *ptr;
+
+ /* Calculate length. */
+ len = strlen("<form>\n");
+ for (i = 0; children && children[i]; ++i) {
+ len += strlen(children[i]);
+ }
+ len += strlen("<div class=\"dialog-buttonbox\">\n");
+ if (reset_label && reset_label[0]) {
+ len += strlen("<input type=\"reset\" value=\"");
+ len += strlen(reset_label);
+ len += strlen("\">\n");
+ }
+ if (submit_label && submit_label[0]) {
+ len += strlen("<input type=\"submit\" value=\"");
+ len += strlen(submit_label);
+ len += strlen("\">\n");
+ }
+ len += strlen("</div>\n");
+ len += strlen("</form>\n");
+ ++len; /* NUL byte */
+
+ /* Build string. */
+ form = g_new(gchar, len);
+ ptr = g_stpcpy(form, "<form>\n");
+ for (i = 0; children && children[i]; ++i) {
+ ptr = g_stpcpy(ptr, children[i]);
+ }
+ ptr = g_stpcpy(ptr, "<div class=\"dialog-buttonbox\">\n");
+ if (reset_label && reset_label[0]) {
+ ptr = g_stpcpy(ptr, "<input type=\"reset\" value=\"");
+ ptr = g_stpcpy(ptr, reset_label);
+ ptr = g_stpcpy(ptr, "\">\n");
+ }
+ if (submit_label && submit_label[0]) {
+ ptr = g_stpcpy(ptr, "<input type=\"submit\" value=\"");
+ ptr = g_stpcpy(ptr, submit_label);
+ ptr = g_stpcpy(ptr, "\">\n");
+ }
+ ptr = g_stpcpy(ptr, "</div>\n");
+ ptr = g_stpcpy(ptr, "</form>\n"); /* g_stpcpy() adds the NUL. */
+
+ return form;
+}
+
+gchar *
mq_html_input_text(const gchar *name, const gchar *label, const gchar *value)
{
if (label && label[0]) {
diff --git a/src/utils/html.h b/src/utils/html.h
index 10588f7..86067a9 100644
--- a/src/utils/html.h
+++ b/src/utils/html.h
@@ -70,6 +70,10 @@ mq_html_form(const gchar *submit_label, const gchar *reset_label, ...)
G_GNUC_NULL_TERMINATED;
gchar *
+mq_html_form_v(const gchar *submit_label, const gchar *reset_label,
+ gchar **children);
+
+gchar *
mq_html_input_text(const gchar *name, const gchar *label, const gchar *value);
gchar *