X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Ftabs.c;h=4b58ba590a64c086ce8eba75dd18583f63ff4655;hb=HEAD;hp=92e88ef56a238fc95aaef6d024c4a245a549f05f;hpb=70bfefce791a385c9c4c770be3b058f2de3f0e95;p=citadel.git diff --git a/webcit/tabs.c b/webcit/tabs.c index 92e88ef56..4b58ba590 100644 --- a/webcit/tabs.c +++ b/webcit/tabs.c @@ -1,61 +1,210 @@ -/* - * $Id: $ - * - * Utility functions for creating tabbed dialogs - */ - +#include +#define SHOW_ME_VAPPEND_PRINTF #include "webcit.h" -void tabbed_dialog(int num_tabs, char *tabnames[]) { +/* + * print tabbed dialog + */ +void tabbed_dialog(int num_tabs, const char *tabnames[]) { int i; - wprintf(" \n" + StrBufAppendPrintf(WC->trailing_javascript, + "var previously_selected_tab = '0'; \n" + "function tabsel(which_tab) { \n" + " if (which_tab == previously_selected_tab) { \n" + " return; \n" + " } \n" + " $('tabdiv'+previously_selected_tab).style.display = 'none'; \n" + " $('tabdiv'+which_tab).style.display = 'block'; \n" + " $('tabtd'+previously_selected_tab).className = 'tab_cell_edit'; \n" + " $('tabtd'+which_tab).className = 'tab_cell_label'; \n" + " previously_selected_tab = which_tab; \n" + "} \n" ); - wprintf("" + wc_printf("
" "" ); for (i=0; i" - "", + wc_printf(""); + ); + wc_printf("%s", tabnames[i]); + wc_printf(""); - wprintf("\n"); + wc_printf("\n"); } - wprintf("
 ", i, - ( (i==0) ? "ffffff" : "cccccc" ), + ( (i==0) ? "tab_cell_label" : "tab_cell_edit" ), i - ); - wprintf("%s", tabnames[i]); - wprintf("  
\n"); - wprintf("
"); + wc_printf("
\n"); } +/* + * print the tab-header + * + * tabnum: number of the tab to print + * num_tabs: total number oftabs to be printed + * + */ void begin_tab(int tabnum, int num_tabs) { - wprintf("
", - tabnum, - ( (tabnum == 0) ? "block" : "none" ) - ); + + if (tabnum == num_tabs) { + wc_printf("\n"); + wc_printf("
"); + } + + else { + wc_printf("\n", tabnum, num_tabs); + wc_printf("
", + tabnum, + ( (tabnum == 0) ? "block" : "none" ) + ); + } } +/* + * print the tab-footer + * tabnum: number of the tab to print + * num_tabs: total number of tabs to be printed + * + */ void end_tab(int tabnum, int num_tabs) { - wprintf("
\n"); - if (tabnum == num_tabs-1) { - wprintf("\n"); + if (tabnum == num_tabs) { + wc_printf("
\n"); + wc_printf("\n"); + } + + else { + wc_printf("
\n"); + wc_printf("\n", tabnum, num_tabs); + } +} + + +/* + * print tabbed dialog + */ +void StrTabbedDialog(StrBuf *Target, int num_tabs, StrBuf *tabnames[]) { + int i; + + StrBufAppendBufPlain( + Target, + HKEY( + " \n" + ), 0); + + StrBufAppendBufPlain( + Target, + HKEY( + "" + "" + ), 0); + + for (i=0; i", + i, + ( (i==0) ? "tab_cell_label" : "tab_cell_edit" ), + i + ); + StrEscAppend(Target, tabnames[i], NULL, 0, 0); + StrBufAppendBufPlain( + Target, + HKEY( + "" + "\n"), 0); + } + + StrBufAppendBufPlain( + Target, + HKEY("
  
\n"), 0); +} + +/* + * print the tab-header + * + * tabnum: number of the tab to print + * num_tabs: total number oftabs to be printed + * + */ +void StrBeginTab(StrBuf *Target, int tabnum, int num_tabs, StrBuf **Names) { + + if (tabnum == num_tabs) { + StrBufAppendBufPlain( + Target, + HKEY("\n
"), 0); + } + + else { + StrBufAppendBufPlain( + Target, + HKEY("\n
", + tabnum, + ( (tabnum == 0) ? "block" : "none" ) + ); } } + +/* + * print the tab-footer + * tabnum: number of the tab to print + * num_tabs: total number of tabs to be printed + * + */ +void StrEndTab(StrBuf *Target, int tabnum, int num_tabs) { + + if (tabnum == num_tabs) { + StrBufAppendBufPlain( + Target, + HKEY( + "
\n" + "\n"), 0); + } + + else { + StrBufAppendPrintf( + Target, + "
\n", + "\n", tabnum, num_tabs + ); + } + if (havebstr("last_tabsel")) + { + StrBufAppendPrintf(Target, "", BSTR("last_tabsel")); + } +} + +