diff options
author | Patrick McDermott <pj@pehjota.net> | 2017-09-30 19:47:41 (EDT) |
---|---|---|
committer | Patrick McDermott <pj@pehjota.net> | 2017-09-30 19:47:41 (EDT) |
commit | 136ba113ccf963b89b093d11388c5c473efb2799 (patch) | |
tree | 514066950fcd2f2c8df1d50ece4b2be135dfbfd2 | |
parent | bc3add50886602f1cc1ea248305d4cc49c3619c8 (diff) | |
download | marquee-136ba113ccf963b89b093d11388c5c473efb2799.zip marquee-136ba113ccf963b89b093d11388c5c473efb2799.tar.gz marquee-136ba113ccf963b89b093d11388c5c473efb2799.tar.bz2 |
mq_html_notebook(): Accept and handle a current_page argument
-rw-r--r-- | src/html.c | 24 | ||||
-rw-r--r-- | src/html.h | 2 |
2 files changed, 16 insertions, 10 deletions
@@ -68,7 +68,7 @@ mq_html_container(const gchar *element, ...) } gchar * -mq_html_notebook(gboolean vertical, const gchar *name, ...) +mq_html_notebook(gboolean vertical, const gchar *name, guint current_page, ...) { gsize name_len; gsize len; @@ -83,7 +83,7 @@ mq_html_notebook(gboolean vertical, const gchar *name, ...) /* Calculate length. */ name_len = strlen(name); len = strlen("<div class=\"notebook-") + 1 + strlen("\">\n"); - va_start(ap, name); + va_start(ap, current_page); i = 0; while ((child = va_arg(ap, gchar *)) && (tab_label = va_arg(ap, gchar *))) { @@ -93,8 +93,11 @@ mq_html_notebook(gboolean vertical, const gchar *name, ...) len += strlen("_"); len += strlen(i_str); /* len += (gsize) log10(i) + 1; */ - len += strlen("\" type=\"radio\" checked=\"checked\" " - "name=\"_tabs\"></input>\n"); + len += strlen("\" type=\"radio\""); + if (i == current_page) { + len += strlen(" checked=\"checked\""); + } + len += strlen(" name=\"_tabs\"></input>\n"); len += strlen("<label for=\"_tab_"); len += name_len; len += strlen("_"); @@ -106,7 +109,7 @@ mq_html_notebook(gboolean vertical, const gchar *name, ...) ++i; } va_end(ap); - va_start(ap, name); + va_start(ap, current_page); while ((child = va_arg(ap, gchar *)) && (tab_label = va_arg(ap, gchar *))) { /* TODO: Page ID and control CSS */ @@ -121,7 +124,7 @@ mq_html_notebook(gboolean vertical, const gchar *name, ...) ptr = g_stpcpy(notebook, "<div class=\"notebook-"); ptr = g_stpcpy(ptr, vertical ? "v" : "h"); ptr = g_stpcpy(ptr, "\">\n"); - va_start(ap, name); + va_start(ap, current_page); i = 0; while ((child = va_arg(ap, gchar *)) && (tab_label = va_arg(ap, gchar *))) { @@ -130,8 +133,11 @@ mq_html_notebook(gboolean vertical, const gchar *name, ...) ptr = g_stpcpy(ptr, name); ptr = g_stpcpy(ptr, "_"); ptr = g_stpcpy(ptr, i_str); - ptr = g_stpcpy(ptr, "\" type=\"radio\" checked=\"checked\" " - "name=\"_tabs\"></input>\n"); + ptr = g_stpcpy(ptr, "\" type=\"radio\""); + if (i == current_page) { + ptr = g_stpcpy(ptr, " checked=\"checked\""); + } + ptr = g_stpcpy(ptr, " name=\"_tabs\"></input>\n"); ptr = g_stpcpy(ptr, "<label for=\"_tab_"); ptr = g_stpcpy(ptr, name); ptr = g_stpcpy(ptr, "_"); @@ -143,7 +149,7 @@ mq_html_notebook(gboolean vertical, const gchar *name, ...) ++i; } va_end(ap); - va_start(ap, name); + va_start(ap, current_page); while ((child = va_arg(ap, gchar *)) && (tab_label = va_arg(ap, gchar *))) { /* TODO: Page ID and control CSS */ @@ -28,7 +28,7 @@ gchar * mq_html_container(const gchar *element, ...); gchar * -mq_html_notebook(gboolean vertical, const gchar *name, ...); +mq_html_notebook(gboolean vertical, const gchar *name, guint current_page, ...); gchar * mq_html_form(const gchar *submit_label, const gchar *reset_label, ...); |