#define IB_TEXTONLY 2 /**< just text */
-/**
- * \brief draw the icon bar?????
+void do_iconbar(void);
+void do_iconbar_roomlist(void);
+
+/*
+ * Render the left side iconbar
*/
void do_selected_iconbar(void) {
if (WC->current_iconbar == current_iconbar_roomlist) {
}
}
-void DontDeleteThis(void *Data){};
+void DontDeleteThis(void *Data){}
-#define IconbarIsEnabled(a, b) IconbarIsENABLED(a, sizeof(a), b)
+#define IconbarIsEnabled(a, b) IconbarIsENABLED(a, sizeof(a) - 1, b)
long IconbarIsENABLED(const char *key, size_t keylen, long defval)
{
return defval;
}
+#ifdef DBG_ICONBAR_HASH
static char nbuf[32];
inline const char *PrintInt(void *Prefstr)
{
- snprintf(nbuf, sizeof(nbuf), "%ld", Prefstr);
+ snprintf(nbuf, sizeof(nbuf), "%ld", (long)Prefstr);
return nbuf;
}
+#endif
void LoadIconSettings(void)
{
- struct wcsession *WCC = WC;
- StrBuf *iconbar;
- StrBuf *buf = NewStrBuf();;
- StrBuf *key = NewStrBuf();
+ wcsession *WCC = WC;
+ StrBuf *iconbar = NULL;
+ StrBuf *buf;
+ StrBuf *key;
long val;
int i, nTokens;
+ buf = NewStrBuf();;
+ key = NewStrBuf();
WCC->current_iconbar = current_iconbar_menu;
if (WCC->IconBarSetttings == NULL)
WCC->IconBarSetttings = NewHash(1, NULL);
(void*)val, DontDeleteThis);
}
}
- printf("-----------icon-------------------\n");
+
+#ifdef DBG_ICONBAR_HASH
dbg_PrintHash(WCC->IconBarSetttings, PrintInt, NULL);
+#endif
FreeStrBuf(&key);
FreeStrBuf(&buf);
* \brief draw the icon bar???
*/
void do_iconbar(void) {
- int ib_displayas = 0; /**< pictures and text, pictures, text */
+ int ib_displayas = IB_PICTEXT; /**< pictures and text, pictures, text */
LoadIconSettings();
- ib_displayas = IconbarIsEnabled("ib_displayas", 0);
+ ib_displayas = IconbarIsEnabled("ib_displayas", IB_PICTEXT);
/** Site logo */
if (IconbarIsEnabled("ib_logo", 0)) {
/** Users icon */
if (IconbarIsEnabled("ib_users", 1)) {
wprintf("<li>"
- "<a href=\"who\" title=\"%s\" "
+ "<a href=\"do_template?template=who\" title=\"%s\" "
">",
_("See who is online right now")
);
/** Advanced Options icon */
if (IconbarIsEnabled("ib_advanced", 1)) {
wprintf("<li>"
- "<a href=\"display_main_menu\" "
+ "<a href=\"do_template?template=display_main_menu\" "
"title=\"%s\" "
">",
_("Advanced Options Menu: Advanced Room commands, Account Info, and Chat")
if ((WC->axlevel >= 6) || (WC->is_room_aide)) {
wprintf("<li>"
- "<a href=\"display_aide_menu\" "
+ "<a href=\"do_template?template=display_aide_menu\" "
"title=\"%s\" "
">",
_("Room and system administration functions")
wprintf("</ul>\n");
- if (IconbarIsEnabled("ib_users", 0)) {
- wprintf(
- "<script type=\"text/javascript\"> "
- " new Ajax.PeriodicalUpdater('wholist', 'wholist_section', { method: 'get', frequency: 30 } );"
- "</script> \n"
- );
+ if (IconbarIsEnabled("ib_users", 0) == 2) {
+ StrBufAppendPrintf(WC->trailing_javascript,
+ "new Ajax.PeriodicalUpdater('wholist', 'do_template?template=wholist_section', "
+ "{ method: 'get', frequency: 30 } ); \n"
+ );
}
}
* we generate its innerHTML...
*/
void do_iconbar_roomlist(void) {
+ int ib_displayas;
WC->current_iconbar = current_iconbar_roomlist;
* their iconbars. These should probably be set in a master
* configuration somewhere.
*/
- int ib_displayas;
LoadIconSettings();
- ib_displayas = IconbarIsEnabled("ib_displayas", 0); /* pictures and text, pictures, text */
+ ib_displayas = IconbarIsEnabled("ib_displayas", IB_PICTEXT); /* pictures and text, pictures, text */
/** Site logo */
if (IconbarIsEnabled("ib_logo", 0)) {
"choices to continue."));
wprintf("</td></tr></table>\n");
wDumpContent(2);
- printf("-----------icon-------------------\n");
+#ifdef DBG_ICONBAR_HASH
dbg_PrintHash(WC->IconBarSetttings, PrintInt, NULL);
+#endif
}
+void tmplput_iconbar(StrBuf *Target, WCTemplputParams *TP)
+{
+ wcsession *WCC = WC;
+
+ if ((WCC != NULL) && (WCC->logged_in)) {
+ wprintf("<div id=\"iconbar\">");
+ do_selected_iconbar();
+ /** check for instant messages (these display in a new window) */
+ page_popup();
+ wprintf("</div>");
+ }
+}
+
+void
+InitModule_ICONBAR
+(void)
+{
+ WebcitAddUrlHandler(HKEY("iconbar_ajax_menu"), do_iconbar, AJAX);
+ WebcitAddUrlHandler(HKEY("iconbar_ajax_rooms"), do_iconbar_roomlist, AJAX);
+ WebcitAddUrlHandler(HKEY("display_customize_iconbar"), display_customize_iconbar, 0);
+ WebcitAddUrlHandler(HKEY("commit_iconbar"), commit_iconbar, 0);
+ RegisterNamespace("ICONBAR", 0, 0, tmplput_iconbar, 0);
+
+}
+
/*@}*/