Changed the tabbed dialog API to include an epilogue that
[citadel.git] / webcit / tabs.c
index 92e88ef56a238fc95aaef6d024c4a245a549f05f..569a7f7633e8ea79d912115b0239e90267bfb535 100644 (file)
@@ -1,11 +1,13 @@
 /*
- * $Id:  $
+ * $Id$
  *
- * Utility functions for creating tabbed dialogs
  */
 
 #include "webcit.h"
 
+/*
+ * print tabbed dialog
+ */
 void tabbed_dialog(int num_tabs, char *tabnames[]) {
        int i;
 
@@ -15,26 +17,27 @@ void tabbed_dialog(int num_tabs, char *tabnames[]) {
                "       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';                          "
+               "       $('tabtd'+previously_selected_tab).className = 'tab_cell_edit';         "
+               "       $('tabtd'+which_tab).className = 'tab_cell_label';                      "
                "       previously_selected_tab = which_tab;                                    "
                "}                                                                              "
                "</script>                                                                      \n"
        );
 
-       wprintf("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%%\">"
+       wprintf("<table id=\"TheTabs\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"
                "<tr align=\"center\" style=\"cursor:pointer\"><td>&nbsp;</td>"
        );
 
        for (i=0; i<num_tabs; ++i) {
-               wprintf("<td id=\"tabtd%d\" bgcolor=\"#%s\" onClick='tabsel(\"%d\");'>"
-                       "<span class=\"tablabel\">",
+               wprintf("<td id=\"tabtd%d\" class=\"%s\" "
+                       "onClick='tabsel(\"%d\");'"
+                       ">",
                        i,
-                       ( (i==0) ? "ffffff" : "cccccc" ),
+                       ( (i==0) ? "tab_cell_label" : "tab_cell_edit" ),
                        i
-               );
+                       );
                wprintf("%s", tabnames[i]);
                wprintf("</td>");
 
@@ -42,20 +45,55 @@ void tabbed_dialog(int num_tabs, char *tabnames[]) {
        }
 
        wprintf("</tr></table>\n");
-       wprintf("<table border=\"0\" width=\"100%%\" bgcolor=\"#ffffff\"><tr><td>");
 }
 
+/*
+ * 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("<div id=\"tabdiv%d\" style=\"display:%s\">",
-               tabnum,
-               ( (tabnum == 0) ? "block" : "none" )
-       );
+
+       if (tabnum == num_tabs) {
+               wprintf("<!-- begin tab-common epilogue -->\n");
+               wprintf("<div class=\"tabcontent_submit\">");
+       }
+
+       else {
+               wprintf("<!-- begin tab %d of %d -->\n", tabnum, num_tabs);
+               wprintf("<div id=\"tabdiv%d\" style=\"display:%s\" class=\"tabcontent\" >",
+                       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("</div>\n");
 
-       if (tabnum == num_tabs-1) {
-               wprintf("</td></tr></table>\n");
+       if (tabnum == num_tabs) {
+               wprintf("</div>\n");
+               wprintf("<!-- end tab-common epilogue -->\n");
+       }
+
+       else {
+               wprintf("</div>\n");
+               wprintf("<!-- end tab %d of %d -->\n", tabnum, num_tabs);
+       
+               if (tabnum == num_tabs-1) {
+                       wprintf("<script type=\"text/javascript\">"
+                               " Nifty(\"table#TheTabs td\", \"small transparent top\");"
+                               "</script>"
+                       );
+               }
        }
 }
+
+