How "views" work in Citadel (beginning with v6.00) -------------------------------------------------- (Note: this stuff isn't finished yet; we're still building the framework.) There's no need to be rigid and stupid about how different rooms are presented in a Citadel client. And we don't enforce things either. But there's a need to make things look the way the user wants to see them. For example, we might always choose to see a room full of private mail as a summary (one line per message) rather than always dumping out the entire contents like we do on a typical BBS room. An address book room might look better as a tabbed view or something, rather than as a bunch of messages with vCards attached to them. This is why we define "views" for a room. It gives the client software a hint as to how to display the contents of a room. This is kept on a per-user basis by storing it in the 'visit' record for a particular room/user combination. It is visit.v_view and is an integer. Naturally, there also needs to be a default, for users who have never visited the room before. This is in the room record as room.QRdefaultview (and is also an integer). The values currently defined are: #define VIEW_BBS 0 /* Traditional Citadel BBS view */ #define VIEW_MAILBOX 1 /* Mailbox summary */ #define VIEW_ADDRESSBOOK 2 /* Address book view */ #define VIEW_CALENDAR 3 /* Calendar view */ #define VIEW_TASKS 4 /* Tasks view */ #define VIEW_NOTES 5 /* Notes view */