]> code.citadel.org Git - citadel.git/commitdiff
Added 'zap' capability
authorSteve Williams <patriot@uncensored.citadel.org>
Thu, 11 Nov 1999 00:48:14 +0000 (00:48 +0000)
committerSteve Williams <patriot@uncensored.citadel.org>
Thu, 11 Nov 1999 00:48:14 +0000 (00:48 +0000)
Added a 'zapped rooms' window
Started working on 'chat' functionality.

daphne/roomtree.cpp
daphne/roomview.cpp

index 8abc486884e1c668a9c32c7aa12cd8f37ed232dd..e0ff08f0c38b113f16db8195088c6a912dbf9937 100644 (file)
@@ -15,7 +15,8 @@ enum {
        RI_NOTHING,
        RI_ROOM,
        RI_CURRUSER,
-       RI_SERVPROPS
+       RI_SERVPROPS,
+       RI_ZAPPED
 };
 
 
@@ -96,6 +97,7 @@ void RoomTree::LoadRoomList(void) {
        wxTreeItemId prev;
        int i, pos, floornum, where;
        int mailfloor;
+       int zapfloor;
        unsigned int roomflags;
 
        prev = null_item;
@@ -121,7 +123,10 @@ void RoomTree::LoadRoomList(void) {
                -1,
                new RoomItem(citsock->curr_user, FALSE, RI_CURRUSER)
                );
+
                
+
+
        sendcmd = "LFLR";
        // Bail out silently if we can't retrieve the floor list
        if (citsock->serv_trans(sendcmd, recvcmd, transbuf) != 1) return;
@@ -191,6 +196,36 @@ void RoomTree::LoadRoomList(void) {
                        );
        }
 
+
+       zapfloor = AppendItem(
+               GetRootItem(),
+               "Zapped Rooms",
+               1,
+               -1,
+               new RoomItem("Zapped Rooms", TRUE, RI_ZAPPED)
+               );
+
+       sendcmd = "LZRM";
+
+       if (citsock->serv_trans(sendcmd, recvcmd, transbuf) != 1) return;
+       while (pos = transbuf.Find('\n', FALSE), (pos >= 0)) {
+               buf = transbuf.Left(pos);
+               transbuf = transbuf.Mid(pos+1);
+               extract(roomname, buf, 0);
+               roomflags = extract_int(buf, 1);
+                floornum = extract_int(buf, 2);
+                        where = zapfloor;
+                AppendItem(
+                        where,
+                        roomname,
+                        4,
+                        -1,
+                        new RoomItem(roomname, FALSE, RI_ROOM)
+                        );
+        }
+
+
+
        wxTreeItemId sp = AppendItem(
                GetRootItem(),
                "Global settings",
@@ -252,6 +287,13 @@ void RoomTree::OnDoubleClick(wxTreeEvent& evt) {
                new RoomView(citsock, citMyMDI, r->RoomName);
                break;
 
+       case RI_ZAPPED:
+               new RoomView(citsock, citMyMDI, r->RoomName);
+               DeleteAllItems();
+               LoadRoomList();
+               break;
+
+
        case RI_SERVPROPS:
                if (CurrServProps == NULL) {
                        CurrServProps = new ServProps(
index 323d58d4f4946ecf099b575bb9834391bd999bdc..4cdc83d0c819c7729717d9fb31c06ba259c00a72 100644 (file)
@@ -7,7 +7,8 @@ enum {
        BUTTON_CLOSE,
        BUTTON_READNEW,
        BUTTON_READALL,
-       BUTTON_ENTER
+       BUTTON_ENTER,
+       BUTTON_ZAP
 };
 
 
@@ -18,6 +19,7 @@ BEGIN_EVENT_TABLE(RoomView, wxMDIChildFrame)
        EVT_BUTTON(     BUTTON_READNEW,         RoomView::OnButtonPressed)
        EVT_BUTTON(     BUTTON_READALL,         RoomView::OnButtonPressed)
        EVT_BUTTON(     BUTTON_ENTER,           RoomView::OnButtonPressed)
+       EVT_BUTTON(     BUTTON_ZAP,             RoomView::OnButtonPressed)
 END_EVENT_TABLE()
 
 
@@ -184,6 +186,18 @@ RoomView::RoomView(
        c4->right.LeftOf(readall_button, 5);
        enter_button->SetConstraints(c4);
 
+        wxButton *zap_button = new wxButton(
+                this,
+                BUTTON_ZAP,
+                " Zap ",
+                wxDefaultPosition);
+        wxLayoutConstraints *c5 = new wxLayoutConstraints;
+        c5->top.SameAs(enter_button, wxTop);
+        c5->bottom.SameAs(readall_button, wxBottom);
+        c5->width.AsIs();
+        c5->right.LeftOf(readall_button, 5);
+        zap_button->SetConstraints(c5);
+
         Layout();
        wxYield();
 
@@ -225,6 +239,13 @@ void RoomView::OnButtonPressed(wxCommandEvent& whichbutton) {
                citsock->serv_trans(sendcmd, recvcmd, xferbuf, ThisRoom);
                new RoomView(citsock, citMyMDI, RoomList->GetNextRoom());
                delete this;
+       } else if (whichbutton.GetId() == BUTTON_ZAP) {
+               sendcmd = "FORG";               //Zap (forget) room
+               citsock->serv_trans(sendcmd, recvcmd, xferbuf, ThisRoom);
+               new RoomView(citsock, citMyMDI, RoomList->GetNextRoom());
+               delete this;
+               RoomList->DeleteAllItems();
+               RoomList->LoadRoomList();
        }
 }