calendar.o calendar_tools.o calendar_view.o event.o \
availability.o iconbar.o crypto.o inetconf.o notes.o \
groupdav_main.o groupdav_get.o groupdav_propfind.o fmt_date.o \
- groupdav_options.o autocompletion.o gettext.o\
+ groupdav_options.o autocompletion.o gettext.o tabs.o \
groupdav_delete.o groupdav_put.o http_datestring.o setup_wizard.o \
$(LIBOBJS)
$(CC) webserver.o context_loop.o tools.o cookie_conversion.o \
summary.o calendar.o calendar_tools.o calendar_view.o event.o \
availability.o ical_dezonify.o iconbar.o crypto.o inetconf.o notes.o \
groupdav_main.o groupdav_get.o groupdav_propfind.o groupdav_delete.o \
- groupdav_options.o autocompletion.o \
+ groupdav_options.o autocompletion.o tabs.o \
groupdav_put.o http_datestring.o setup_wizard.o fmt_date.o \
gettext.o \
$(LIBOBJS) $(LIBS) $(LDFLAGS) -o webserver
--- /dev/null
+/*
+ * $Id: $
+ *
+ * Utility functions for creating tabbed dialogs
+ */
+
+#include "webcit.h"
+
+void tabbed_dialog(int num_tabs, char *tabnames[]) {
+ int i;
+
+ wprintf("<script type=\"text/javascript\"> "
+ "var previously_selected_tab = '0'; "
+ "function tabsel(which_tab) { "
+ " if (which_tab == previously_selected_tab) { "
+ " return; "
+ " } "
+ " $('tabtd'+previously_selected_tab).style.backgroundColor = '#cccccc'; "
+ " $('tabdiv'+previously_selected_tab).style.display = 'none'; "
+ " $('tabtd'+which_tab).style.backgroundColor = '#ffffff'; "
+ " $('tabdiv'+which_tab).style.display = 'block'; "
+ " previously_selected_tab = which_tab; "
+ "} "
+ "</script> \n"
+ );
+
+ wprintf("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%%\">"
+ "<tr align=\"center\" style=\"cursor:pointer\"><td> </td>"
+ );
+
+ for (i=0; i<num_tabs; ++i) {
+ wprintf("<td id=\"tabtd%d\" bgcolor=\"#%s\" onClick='tabsel(\"%d\");'>"
+ "<span class=\"tablabel\">",
+ i,
+ ( (i==0) ? "ffffff" : "cccccc" ),
+ i
+ );
+ wprintf("%s", tabnames[i]);
+ wprintf("</td>");
+
+ wprintf("<td> </td>\n");
+ }
+
+ wprintf("</tr></table>\n");
+ wprintf("<table border=\"0\" width=\"100%%\" bgcolor=\"#ffffff\"><tr><td>");
+}
+
+void begin_tab(int tabnum, int num_tabs) {
+ wprintf("<div id=\"tabdiv%d\" style=\"display:%s\">",
+ tabnum,
+ ( (tabnum == 0) ? "block" : "none" )
+ );
+}
+
+void end_tab(int tabnum, int num_tabs) {
+ wprintf("</div>\n");
+
+ if (tabnum == num_tabs-1) {
+ wprintf("</td></tr></table>\n");
+ }
+}
void go_selected_language(void);
void stop_selected_language(void);
void httplang_to_locale(char *LocaleString);
+void tabbed_dialog(int num_tabs, char *tabnames[]);
+void begin_tab(int tabnum, int num_tabs);
+void end_tab(int tabnum, int num_tabs);
void embed_room_banner(char *, int);
+
/* navbar types that can be passed to embed_room_banner */
enum {
navbar_none,