void EnterMessage::OnSave(wxCommandEvent& whichbutton) {
- wxString sendcmd, recvcmd;
+ wxString sendcmd, recvcmd, xferbuf;
sendcmd = "ENT0 1";
+ xferbuf = TheMessage->GetValue();
if (citsock->serv_trans(sendcmd, recvcmd,
- TheMessage->GetValue(),
- ThisRoom) == 4) {
+ xferbuf, ThisRoom) == 4) {
delete this;
}
}
public:
RoomTree(wxMDIParentFrame *parent, CitClient *sock);
void LoadRoomList(void);
+ wxTreeItemId GetNextRoom(void);
private:
void InitTreeIcons(void);
void OnDoubleClick(wxTreeEvent& evt);
wxMDIParentFrame *citMyMDI;
wxTreeItemId floorboards[MAXFLOORS];
wxImageList *TreeIcons;
+ wxTreeItemId march_next;
DECLARE_EVENT_TABLE()
};
#endif
+wxTreeItemId null_item;
+
class RoomItem : public wxTreeItemData {
public:
RoomItem(wxString name, bool newmsgs);
wxString RoomName;
bool HasNewMessages;
+ wxTreeItemId nextroom;
};
RoomItem::RoomItem(wxString name, bool newmsgs)
RoomName = name;
HasNewMessages = newmsgs;
+ nextroom = null_item;
}
void RoomTree::LoadRoomList(void) {
wxString sendcmd, recvcmd, buf, floorname, roomname, transbuf;
wxTreeItemId item;
+ wxTreeItemId prev;
int i, pos, floornum;
+ prev = null_item;
+
// First, clear it out.
DeleteAllItems();
);
SetItemBold(item, TRUE);
SetItemBold(floorboards[floornum], TRUE);
+ if (prev == null_item)
+ march_next = item;
+ else
+ ((RoomItem *)GetItemData(prev))->nextroom = item;
+ prev = item;
}
// Load the rooms with new messages into the tree
);
}
+ // FIX demo of traversal
+ while (march_next != null_item) {
+ wxTreeItemId foo = GetNextRoom();
+ cout << ((RoomItem *)GetItemData(foo))->RoomName << "\n";
+ }
+
}
new RoomView(citsock, citMyMDI, r->RoomName);
}
+
+
+wxTreeItemId RoomTree::GetNextRoom(void) {
+
+ wxTreeItemId ret;
+
+ ret = march_next;
+
+ if (march_next == null_item)
+ LoadRoomList();
+ else
+ march_next = ((RoomItem *)GetItemData(march_next))->nextroom;
+
+ return ret;
+}
+
+