X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Ficonbar.c;h=422ebbc103ea8b6807cae53c466f81d3d16cf8da;hb=fb6f6fa4ec4e3277e30d84326d48e6850822d318;hp=5519100dc0de27c93c19379621ab93395225ee1c;hpb=b5f6cba14c339fc66508fac3423e19c8061290a8;p=citadel.git diff --git a/webcit/iconbar.c b/webcit/iconbar.c index 5519100dc..422ebbc10 100644 --- a/webcit/iconbar.c +++ b/webcit/iconbar.c @@ -1,5 +1,15 @@ /* * Displays and customizes the iconbar. + * + * Copyright (c) 1996-2012 by the citadel.org team + * + * This program is open source software. You can redistribute it and/or + * modify it under the terms of the GNU General Public License, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. */ #include "webcit.h" @@ -117,7 +127,7 @@ void LoadIconSettings(StrBuf *iconbar, long lvalue) { WCC->IBSettingsVec = (long*) malloc (nIBV * sizeof(long)); } - /** + /* * The initialized values of these variables also happen to * specify the default values for users who haven't customized * their iconbars. These should probably be set in a master @@ -242,6 +252,58 @@ ServerStartModule_ICONBAR } } + +int ConditionalWholistExpanded(StrBuf *Target, WCTemplputParams *TP) +{ + int r = 0; + if (WC) r = WC->ib_wholist_expanded; + syslog(LOG_DEBUG, "ConditionalWholistExpanded() returns %d", r); + return(r); +} + + +int ConditionalRoomlistExpanded(StrBuf *Target, WCTemplputParams *TP) +{ + if (WC) return(WC->ib_roomlist_expanded); + return(0); +} + + + +/* + * Toggle the roomlist expanded state in session memory + */ +void toggle_roomlist_expanded_state(void) { + wcsession *WCC = WC; + + if (!WCC) { + wc_printf("no session"); + return; + } + + WCC->ib_roomlist_expanded = IBSTR("wstate"); + wc_printf("%d", WCC->ib_roomlist_expanded); + syslog(LOG_DEBUG, "ib_roomlist_expanded set to %d", WCC->ib_roomlist_expanded); +} + + +/* + * Toggle the wholist expanded state in session memory + */ +void toggle_wholist_expanded_state(void) { + wcsession *WCC = WC; + + if (!WCC) { + wc_printf("no session"); + return; + } + + WCC->ib_wholist_expanded = IBSTR("wstate"); + wc_printf("%d", WCC->ib_wholist_expanded); + syslog(LOG_DEBUG, "ib_wholist_expanded set to %d", WCC->ib_wholist_expanded); +} + + void InitModule_ICONBAR (void) @@ -250,8 +312,12 @@ InitModule_ICONBAR /*WebcitAddUrlHandler(HKEY("user_iconbar"), "", 0, doUserIconStylesheet, 0); */ WebcitAddUrlHandler(HKEY("commit_iconbar"), "", 0, commit_iconbar, 0); + WebcitAddUrlHandler(HKEY("toggle_wholist_expanded_state"), "", 0, toggle_wholist_expanded_state, AJAX); + WebcitAddUrlHandler(HKEY("toggle_roomlist_expanded_state"), "", 0, toggle_roomlist_expanded_state, AJAX); RegisterConditional(HKEY("COND:ICONBAR:ACTIVE"), 3, ConditionalIsActiveStylesheet, CTX_NONE); RegisterNamespace("ICONBAR", 0, 0, tmplput_iconbar, NULL, CTX_NONE); + RegisterConditional(HKEY("COND:ICONBAR:WHOLISTEXPANDED"), 0, ConditionalWholistExpanded, CTX_NONE); + RegisterConditional(HKEY("COND:ICONBAR:ROOMLISTEXPANDED"), 0, ConditionalRoomlistExpanded, CTX_NONE); RegisterPreference("iconbar", _("Iconbar Setting"), PRF_STRING, LoadIconSettings); l = 1; @@ -273,3 +339,4 @@ SessionDestroyModule_ICONBAR if (sess->IBSettingsVec != NULL) free(sess->IBSettingsVec); } +