* add THISROOM:FILES:N and THISROOM:FILES:STR
[citadel.git] / webcit / roomops.h
index 8cdf095e041ff42486fa510f61a178401229640f..ea7f7ab42852abfcd8a6f6ffa0e79956557e861c 100644 (file)
@@ -33,7 +33,7 @@ typedef struct _floor {
        StrBuf *Name;
        long NRooms;
        long AlphaN;
-} floor;
+} Floor;
 
 /**
  * \brief  Data structure for roomlist-to-folderlist conversion 
@@ -65,7 +65,7 @@ typedef struct _folder {
 
        long RAFlags;
 
-       long view;       /* whats its default view? inbox/calendar.... */
+       int view;       /* whats its default view? inbox/calendar.... */
        long defview;
        long lastchange; /* todo... */
 
@@ -73,12 +73,19 @@ typedef struct _folder {
        long nRoomNameParts;
        StrBuf **RoomNameParts;
 
-       const floor *Floor;   /* pint to the floor we're on.. */
+       const Floor *Floor;   /* point to the floor we're on.. */
 
        int hasnewmsgs; /* are there unread messages inside */
        int is_inbox;   /* is it a mailbox?  */
 
+       int RoomAideLoaded;
+       StrBuf *RoomAide;
 
+       int XALoaded;
+       StrBuf *XAPass;
+       StrBuf *Directory;
+       long Order;
+       long DefView;
 
        int selectable; /* can we select it ??? */
        long num_rooms; /* If this is a floor, how many rooms does it have */
@@ -93,9 +100,35 @@ typedef struct _folder {
        int UsersNewMAilboxMessages; /* should we notify the user about new messages? */
        int IsTrash;
 
+       int XHaveRoomPic;
+       int XHaveRoomPicLoaded;
+
+       int XHaveInfoTextLoaded;
+       StrBuf *XInfoText;
+
+       int XHaveDownloadCount;
+       int XDownloadCount;
+
+       HashList *IgnetCfgs[maxRoomNetCfg];
+
 }folder;
 
 HashList *GetFloorListHash(StrBuf *Target, WCTemplputParams *TP);
 void vDeleteFolder(void *vFolder);
 void FlushFolder(folder *room);
 void ParseGoto(folder *proom, StrBuf *Line);
+
+/*
+ * wrapper around usual sort-comparator; private rooms will allways be prefered, -1 if one of them NULL
+ */
+int CompareRooms(const folder *room1, const folder *room2);
+
+
+#define REST_TOPLEVEL 0
+#define REST_IN_NAMESPACE (1<<0)
+#define REST_IN_FLOOR (1<<1)
+#define REST_IN_ROOM (1<<2)
+#define REST_HAVE_SUB_ROOMS (1<<3)
+#define REST_GOT_LOCAL_PART (1<<4)
+#define REST_NONEXIST (1<<5)
+