+#define PRF_STRING 1
+#define PRF_INT 2
+#define PRF_QP_STRING 3
+#define PRF_YESNO 4
+
+
+void tmplput_CFG_Value(StrBuf *Target, int nArgs, WCTemplateToken *Token, void *Context)
+{
+ StrBuf *Setting;
+ if (get_PREFERENCE(Token->Params[0]->Start,
+ Token->Params[0]->len,
+ &Setting))
+ StrBufAppendBuf(Target, Setting, 0);
+}
+
+void tmplput_CFG_Descr(StrBuf *Target, int nArgs, WCTemplateToken *Token, void *Context)
+{
+ const char *SettingStr;
+ SettingStr = PrefGetLocalStr(Token->Params[0]->Start,
+ Token->Params[0]->len);
+ if (SettingStr != NULL)
+ StrBufAppendBufPlain(Target, SettingStr, -1, 0);
+}
+
+
+
+void
+InitModule_PREFERENCES
+(void)
+{
+ WebcitAddUrlHandler(HKEY("display_preferences"), display_preferences, 0);
+ WebcitAddUrlHandler(HKEY("set_preferences"), set_preferences, 0);
+
+ RegisterPreference("roomlistview",_("Room list view"),PRF_STRING);
+ RegisterPreference("calhourformat",_("Time format"), PRF_INT);
+ RegisterPreference("daystart", _("Calendar day view begins at:"), PRF_INT);
+ RegisterPreference("dayend", _("Calendar day view ends at:"), PRF_INT);
+ RegisterPreference("weekstart",_("Week starts on:"), PRF_INT);
+
+ RegisterPreference("use_sig",_("Attach signature to email messages?"), PRF_YESNO);
+ RegisterPreference("signature",_("Use this signature:"),PRF_QP_STRING);
+ RegisterPreference("default_header_charset", _("Default character set for email headers:") ,PRF_STRING);
+ RegisterPreference("emptyfloors", _("Show empty floors"), PRF_YESNO);
+
+ RegisterNamespace("PREF:VALUE", 1, 1, tmplput_CFG_Value);
+ RegisterNamespace("PREF:DESCR", 1, 1, tmplput_CFG_Descr);
+}