Back to index

webcit  8.12-dfsg
Classes | Defines | Typedefs | Functions | Variables
iconbar.c File Reference
#include "webcit.h"

Go to the source code of this file.

Classes

struct  _dflt_IB_Setting

Defines

#define IB_PICTEXT   0 /* picture and text */
#define IB_PICONLY   1 /* just a picture */
#define IB_TEXTONLY   2 /* just text */
#define IconbarIsEnabled(a, b)   IconbarIsENABLED(a, sizeof(a) - 1, b)

Typedefs

typedef struct _dflt_IB_Setting dflt_IB_Setting

Functions

void DontDeleteThis (void *Data)
long IconbarIsENABLED (long val, const char *key, size_t keylen)
int ConditionalIsActiveStylesheet (StrBuf *Target, WCTemplputParams *TP)
void LoadIconSettings (StrBuf *iconbar, long lvalue)
void commit_iconbar (void)
void tmplput_iconbar (StrBuf *Target, WCTemplputParams *TP)
void ServerShutdownModule_ICONBAR (void)
void ServerStartModule_ICONBAR (void)
int ConditionalWholistExpanded (StrBuf *Target, WCTemplputParams *TP)
int ConditionalRoomlistExpanded (StrBuf *Target, WCTemplputParams *TP)
void toggle_roomlist_expanded_state (void)
void toggle_wholist_expanded_state (void)
void InitModule_ICONBAR (void)
void SessionDestroyModule_ICONBAR (wcsession *sess)

Variables

HashList * IB_Seeting_Order = NULL
long nIBV = 0
dflt_IB_Setting IconbarDefaults []
HashList * IBDfl = NULL

Class Documentation

struct _dflt_IB_Setting

Definition at line 28 of file iconbar.c.

Class Members
int DefVal
const char * Key
long len
long n

Define Documentation

#define IB_PICONLY   1 /* just a picture */

Definition at line 19 of file iconbar.c.

#define IB_PICTEXT   0 /* picture and text */

Definition at line 18 of file iconbar.c.

#define IB_TEXTONLY   2 /* just text */

Definition at line 20 of file iconbar.c.

#define IconbarIsEnabled (   a,
 
)    IconbarIsENABLED(a, sizeof(a) - 1, b)

Definition at line 24 of file iconbar.c.


Typedef Documentation


Function Documentation

void commit_iconbar ( void  )

Definition at line 161 of file iconbar.c.

                          {
       const StrBuf *MimeType;
       StrBuf *iconbar;
       StrBuf *buf;
       int i;


       if (!havebstr("ok_button")) {
              display_main_menu();
              return;
       }

       iconbar = NewStrBuf();
       buf = NewStrBuf();
       StrBufPrintf(iconbar, "ib_displayas=%d", ibstr("ib_displayas"));
       for (i=0; i<(sizeof(IconbarDefaults)/sizeof(dflt_IB_Setting )); ++i) {
              char *Val;
              if (!strcasecmp(Bstr(IconbarDefaults[i].Key,
                                 IconbarDefaults[i].len),
                            "yes")) 
              {
                     Val = "1";
              }
              else if (!strcasecmp(Bstr(IconbarDefaults[i].Key,
                                     IconbarDefaults[i].len),
                                 "yeslist")) 
              {
                     Val = "2";
              }
              else {
                     Val = "0";
              }
              StrBufPrintf(buf, ",%s=%s", IconbarDefaults[i].Key, Val);
              StrBufAppendBuf(iconbar, buf, 0);

       }
       FreeStrBuf(&buf);
       set_preference("iconbar", iconbar, 1);


       begin_burst();
       MimeType = DoTemplate(HKEY("iconbar_save"), NULL, &NoCtx);
       http_transmit_thing(ChrPtr(MimeType), 0);
#ifdef DBG_ICONBAR_HASH
       dbg_PrintHash(WC->IconBarSetttings, PrintInt, NULL);
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

int ConditionalIsActiveStylesheet ( StrBuf *  Target,
WCTemplputParams TP 
)

Definition at line 91 of file iconbar.c.

                                                                        {
       long testFor;
       long lookAt;
       long ib_displayas;

       lookAt = GetTemplateTokenNumber(Target, TP, 3, IB_PICTEXT);
       testFor = GetTemplateTokenNumber(Target, TP, 2, IB_PICTEXT);



       ib_displayas = IconbarIsENABLED(lookAt, TKEY(3));
/*
       printf ("%ld == %ld ? %s : %s\n", 
              testFor, 
              ib_displayas, 
              IconbarDefaults[lookAt ].Key, 
              ChrPtr(TP->Tokens->FlatToken));
*/

       return (testFor == ib_displayas);
}

Here is the call graph for this function:

Here is the caller graph for this function:

int ConditionalRoomlistExpanded ( StrBuf *  Target,
WCTemplputParams TP 
)

Definition at line 265 of file iconbar.c.

{
       if (WC) return(WC->ib_roomlist_expanded);
       return(0);
}

Here is the caller graph for this function:

int ConditionalWholistExpanded ( StrBuf *  Target,
WCTemplputParams TP 
)

Definition at line 256 of file iconbar.c.

{
       int r = 0;
       if (WC) r = WC->ib_wholist_expanded;
       syslog(LOG_DEBUG, "ConditionalWholistExpanded() returns %d", r);
       return(r);
}

Here is the caller graph for this function:

void DontDeleteThis ( void *  Data)

Definition at line 22 of file iconbar.c.

{}
long IconbarIsENABLED ( long  val,
const char *  key,
size_t  keylen 
)

Definition at line 58 of file iconbar.c.

{
       void *vIBDfl = NULL;
       wcsession *WCC = WC;

       if ((WCC != NULL) && 
           (WCC->IBSettingsVec != NULL) && 
           (val < nIBV))
       {
              return WCC->IBSettingsVec[val];
       }
       if (GetHash(IBDfl, key, keylen, &vIBDfl)) {
              dflt_IB_Setting *Set = (dflt_IB_Setting*)vIBDfl;
              return Set->DefVal;
       }
       else 
              return 1;
}

Here is the caller graph for this function:

void InitModule_ICONBAR ( void  )

Definition at line 309 of file iconbar.c.

{
       long l;

       /*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;
       while (IconbarDefaults[l].len != 0)
       {
              RegisterTokenParamDefine(IconbarDefaults[l].Key, 
                                    IconbarDefaults[l].len, l);
              l ++;
       }
       nIBV = l;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void LoadIconSettings ( StrBuf *  iconbar,
long  lvalue 
)

Definition at line 113 of file iconbar.c.

{
       void *vIBDfl;
       dflt_IB_Setting *Set;
       const char *pCh = NULL;

       wcsession *WCC = WC;
       StrBuf *buf;
       StrBuf *key;
       long val;

       buf = NewStrBuf();
       key = NewStrBuf();
       if (WCC->IBSettingsVec == NULL)
       {
              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
        * configuration somewhere.
        */

       while (StrBufExtract_NextToken(buf, iconbar, &pCh,  ',') >= 0)
       {
              StrBufExtract_token(key, buf, 0, '=');
              val = StrBufExtract_long(buf, 1, '=');

              if (!GetHash(IBDfl, SKEY(key), &vIBDfl)) 
                     continue;
              Set = (dflt_IB_Setting*)vIBDfl;

              WCC->IBSettingsVec[Set->n] = val;
/*            printf("%ld %s %s -> %ld \n", Set->n, Set->Key, IconbarDefaults[Set->n].Key, val);*/
       }
#ifdef DBG_ICONBAR_HASH
       dbg_PrintHash(WCC->IconBarSetttings, PrintInt, NULL);
#endif

       FreeStrBuf(&key);
       FreeStrBuf(&buf);
}

Here is the caller graph for this function:

Definition at line 230 of file iconbar.c.

{
       DeleteHash(&IBDfl);
}

Here is the caller graph for this function:

void ServerStartModule_ICONBAR ( void  )

Definition at line 239 of file iconbar.c.

{
       int i = 1;
       IBDfl = NewHash(1, NULL);

       while (IconbarDefaults[i].len != 0)
       {
              Put(IBDfl, 
                  IconbarDefaults[i].Key, 
                  IconbarDefaults[i].len, 
                  &IconbarDefaults[i], 
                  reference_free_handler);
              i++;
       }
}

Here is the caller graph for this function:

Definition at line 337 of file iconbar.c.

{
       if (sess->IBSettingsVec != NULL)
              free(sess->IBSettingsVec);
}

Here is the caller graph for this function:

void tmplput_iconbar ( StrBuf *  Target,
WCTemplputParams TP 
)

Definition at line 214 of file iconbar.c.

{
       wcsession *WCC = WC;
       
        if (  (WCC != NULL)
              && (   (WCC->logged_in)
                     || (WCC->serv_info->serv_supports_guest)
              )
       ) {
              DoTemplate(HKEY("iconbar"), NULL, &NoCtx);
       }
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 276 of file iconbar.c.

                                          {
       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);
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 293 of file iconbar.c.

                                         {
       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);
}

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

HashList* IB_Seeting_Order = NULL

Definition at line 27 of file iconbar.c.

HashList* IBDfl = NULL

Definition at line 55 of file iconbar.c.

Initial value:
 {
       {0,  0, HKEY("unused")},
       {0,  1, HKEY("ib_displayas")},
       {0,  2, HKEY("ib_logo")},
       {1,  3, HKEY("ib_summary")},
       {1,  4, HKEY("ib_inbox")},
       {1,  5, HKEY("ib_calendar")},
       {1,  6, HKEY("ib_contacts")},
       {1,  7, HKEY("ib_notes")},
       {1,  8, HKEY("ib_tasks")},
       {1,  9, HKEY("ib_rooms")},
       {1, 10, HKEY("ib_users")},
       {1, 11, HKEY("ib_chat")},
       {1, 12, HKEY("ib_advanced")},
       {1, 13, HKEY("ib_logoff")},
       {1, 14, HKEY("ib_citadel")},
       {0, 15, HKEY("")}
}

Definition at line 36 of file iconbar.c.

long nIBV = 0

Definition at line 35 of file iconbar.c.