]> code.citadel.org Git - citadel.git/commitdiff
Got a minimal march list implemented...
authorArt Cancro <ajc@citadel.org>
Sat, 10 Apr 1999 05:51:05 +0000 (05:51 +0000)
committerArt Cancro <ajc@citadel.org>
Sat, 10 Apr 1999 05:51:05 +0000 (05:51 +0000)
daphne/enter.cpp
daphne/includes.hpp
daphne/roomtree.cpp

index f481ccc99adea24f94ca43c9529376b0719c8bf3..abca4994d470f67a1ee6b432a48807a42e86d805 100644 (file)
@@ -104,12 +104,12 @@ void EnterMessage::OnCancel(wxCommandEvent& whichbutton) {
 
 
 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;
        }
 }
index 397a812babbb38ec922c0123982a175b80f034f6..16fa870034b7532bf882a82402e4946c91d0972d 100644 (file)
@@ -203,6 +203,7 @@ class RoomTree : public wxTreeCtrl {
 public:
        RoomTree(wxMDIParentFrame *parent, CitClient *sock);
        void LoadRoomList(void);
+       wxTreeItemId GetNextRoom(void);
 private:
        void InitTreeIcons(void);
        void OnDoubleClick(wxTreeEvent& evt);
@@ -210,6 +211,7 @@ private:
        wxMDIParentFrame *citMyMDI;
        wxTreeItemId floorboards[MAXFLOORS];
        wxImageList *TreeIcons;
+       wxTreeItemId march_next;
        DECLARE_EVENT_TABLE()
 };
 
index 22b4ba119bc9fd987823a47f24dfdadd2417fbee..e90be30f1d5a227a3ab4736edc658a11083d9442 100644 (file)
@@ -9,12 +9,15 @@
 #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)
@@ -22,6 +25,7 @@ RoomItem::RoomItem(wxString name, bool newmsgs)
 
        RoomName = name;
        HasNewMessages = newmsgs;
+       nextroom = null_item;
 }
 
 
@@ -79,8 +83,11 @@ void RoomTree::InitTreeIcons(void) {
 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();
 
@@ -129,6 +136,11 @@ void RoomTree::LoadRoomList(void) {
                        );
                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
@@ -148,6 +160,12 @@ void RoomTree::LoadRoomList(void) {
                        );
        }
 
+       // FIX demo of traversal
+       while (march_next != null_item) {
+               wxTreeItemId foo = GetNextRoom();
+               cout << ((RoomItem *)GetItemData(foo))->RoomName << "\n";
+       }
+
 
 }
 
@@ -172,3 +190,20 @@ void RoomTree::OnDoubleClick(wxTreeEvent& evt) {
        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;
+}
+
+