X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Ficonbar.c;h=422ebbc103ea8b6807cae53c466f81d3d16cf8da;hb=fb6f6fa4ec4e3277e30d84326d48e6850822d318;hp=3b4b17554782199881e2a44d43c8d127a81f0036;hpb=b5c01f162e56637db8a93c64ba133578399f3268;p=citadel.git diff --git a/webcit/iconbar.c b/webcit/iconbar.c index 3b4b17554..422ebbc10 100644 --- a/webcit/iconbar.c +++ b/webcit/iconbar.c @@ -1,21 +1,15 @@ /* * Displays and customizes the iconbar. * - * Copyright (c) 1996-2011 by the citadel.org team + * 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 as - * published by the Free Software Foundation; either version 3 of the - * License, or (at your option) any later version. + * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "webcit.h" @@ -133,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 @@ -261,8 +255,10 @@ ServerStartModule_ICONBAR int ConditionalWholistExpanded(StrBuf *Target, WCTemplputParams *TP) { - if (WC) return(WC->ib_wholist_expanded); - return(0); + int r = 0; + if (WC) r = WC->ib_wholist_expanded; + syslog(LOG_DEBUG, "ConditionalWholistExpanded() returns %d", r); + return(r); } @@ -273,6 +269,41 @@ int ConditionalRoomlistExpanded(StrBuf *Target, WCTemplputParams *TP) } + +/* + * 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) @@ -281,6 +312,8 @@ 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); @@ -306,3 +339,4 @@ SessionDestroyModule_ICONBAR if (sess->IBSettingsVec != NULL) free(sess->IBSettingsVec); } +