X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Froomops.h;h=fd1f60e4ae62686a1bf9606569bc96722cf73097;hb=HEAD;hp=0917a41d48415e4a53de3960d4602b27a80894ae;hpb=d2e4ed1ae2bf6deb60280974ec1b29544c5de49f;p=citadel.git diff --git a/webcit/roomops.h b/webcit/roomops.h index 0917a41d4..c29a10189 100644 --- a/webcit/roomops.h +++ b/webcit/roomops.h @@ -1,8 +1,20 @@ +/* + * Copyright (c) 1996-2013 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. + */ + #define VIRTUAL_MY_FLOOR -1 /* - * \brief This struct holds a list of rooms for \\\oto operations. + * This struct holds a list of rooms for "Goto" operations. */ struct march { struct march *next; /* pointer to next in linked list */ @@ -11,9 +23,8 @@ struct march { int march_order; /* sequence in which we are to visit this room */ }; -/* * - * \brief This struct holds a list of rooms for client display. - * It is a binary tree. +/* + * This struct holds a list of rooms for client display. It is a binary tree. */ struct roomlisting { struct roomlisting *lnext; /* pointer to 'left' tree node */ @@ -35,8 +46,8 @@ typedef struct _floor { long AlphaN; } Floor; -/** - * \brief Data structure for roomlist-to-folderlist conversion +/* + * Data structure for roomlist-to-folderlist conversion */ struct __ofolder { int floor; /* which floor is it on */ @@ -51,8 +62,8 @@ struct __ofolder { -/** - * \brief Data structure for roomlist-to-folderlist conversion +/* + * Data structure for roomlist-to-folderlist conversion */ typedef struct _folder { /* Data citserver tells us about the room */ @@ -78,6 +89,9 @@ typedef struct _folder { int RoomAideLoaded; StrBuf *RoomAide; +/* only available if GNET contains this */ + const StrBuf* RoomAlias; /* by what mail will this room send mail? */ + /* only available if GETR was run */ int XALoaded; StrBuf *XAPass; @@ -90,7 +104,6 @@ typedef struct _folder { long LastMessageRead; long HighestRead; int ShowInfo; - int UsersNewMAilboxMessages; /* should we notify the user about new messages? */ int IsTrash; /* Only available if certain other commands ran */ int XHaveRoomPic; @@ -104,16 +117,37 @@ typedef struct _folder { int BumpUsers; /* if SETR set to 1 to make all users who knew this room to forget about it. */ - HashList *IgnetCfgs[maxRoomNetCfg]; -}folder; + HashList *IgnetCfgs[maxRoomNetCfg + 1]; +} folder; HashList *GetFloorListHash(StrBuf *Target, WCTemplputParams *TP); void vDeleteFolder(void *vFolder); void FlushFolder(folder *room); +void FlushIgnetCfgs(folder *room); void ParseGoto(folder *proom, StrBuf *Line); void FlushRoomlist(void); /* release our caches, so a deleted / zapped room disapears */ void ReloadCurrentRoom(void); /* Flush cache; reload current state */ +HashList *GetFloorListHash(StrBuf *Target, WCTemplputParams *TP); +HashList *GetRoomListHash(StrBuf *Target, WCTemplputParams *TP); +int SortRoomsByListOrder(const void *room1, const void *room2); +void tmplput_roombanner(StrBuf *Target, WCTemplputParams *TP); + + +void LoadRoomAide(void); +void LoadRoomXA (void); +void LoadXRoomPic(void); +void LoadXRoomInfoText(void); +void LoadXRoomXCountFiles(void); + +long gotoroom(const StrBuf *gname); + +void slrp_highest(void); +void remove_march(const StrBuf *aaa); +void dotskip(void); +void smart_goto(const StrBuf *next_room); +void free_march_list(wcsession *wcf); + /* * wrapper around usual sort-comparator; private rooms will allways be prefered, -1 if one of them NULL */ @@ -128,3 +162,6 @@ int CompareRooms(const folder *room1, const folder *room2); #define REST_GOT_LOCAL_PART (1<<4) #define REST_NONEXIST (1<<5) + +extern CtxType CTX_ROOMS; +extern CtxType CTX_FLOORS;