]> code.citadel.org Git - citadel.git/commitdiff
Got the icons in the tree working
authorArt Cancro <ajc@citadel.org>
Mon, 22 Mar 1999 00:25:30 +0000 (00:25 +0000)
committerArt Cancro <ajc@citadel.org>
Mon, 22 Mar 1999 00:25:30 +0000 (00:25 +0000)
daphne/bitmaps/floor.xpm [new file with mode: 0644]
daphne/bitmaps/mailroom.xpm [new file with mode: 0644]
daphne/bitmaps/newroom.xpm [new file with mode: 0644]
daphne/bitmaps/oldroom.xpm [new file with mode: 0644]
daphne/bitmaps/root.xpm [new file with mode: 0644]
daphne/main.cpp
daphne/utils.cpp

diff --git a/daphne/bitmaps/floor.xpm b/daphne/bitmaps/floor.xpm
new file mode 100644 (file)
index 0000000..3b79fbe
--- /dev/null
@@ -0,0 +1,26 @@
+/* XPM */
+static char *floor_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 14 6 1",
+"  c #000000",
+". c #595959",
+"X c #ffff00",
+"o c #dfdfdf",
+"O c #ffffff",
+"+ c None",
+/* pixels */
+"+++.....++++++++",
+"++.OOOOO.+++++++",
+"+.OoXoXoO......+",
+"+.OXoXoXoOOOOO. ",
+"+.OoXoXoXoXoXo. ",
+".............X. ",
+".OOOOOOOOOO. o. ",
+".OoXoXoXoXoX .. ",
+"+.OoXoXoXoXo. . ",
+"+.OXoXoXoXoXo . ",
+"++.OXoXoXoXoX.  ",
+"++............  ",
+"+++             ",
+"++++++++++++++++"
+};
diff --git a/daphne/bitmaps/mailroom.xpm b/daphne/bitmaps/mailroom.xpm
new file mode 100644 (file)
index 0000000..1eaf681
--- /dev/null
@@ -0,0 +1,21 @@
+/* XPM */
+static char *mailroom_xpm[] = {
+"16 14 4 1",
+"      c None",
+".     c black",
+"X     c white",
+"o     c gray50",
+"                ",
+"                ",
+" .............  ",
+" .XXXXXXXXXXX.o ",
+" ..XXXXXXXXX..o ",
+" .X.XXXXXXX.X.o ",
+" .XX.XXXXX.XX.o ",
+" .XX..XXX..XX.o ",
+" .X.XX...XX.X.o ",
+" ..XXXXXXXXX..o ",
+" .............o ",
+"  ooooooooooooo ",
+"                ",
+"                "};
diff --git a/daphne/bitmaps/newroom.xpm b/daphne/bitmaps/newroom.xpm
new file mode 100644 (file)
index 0000000..748c1b1
--- /dev/null
@@ -0,0 +1,21 @@
+/* XPM */
+static char *newroom_xpm[] = {
+"16 14 4 1",
+"      c None",
+".     c black",
+"X     c gray51",
+"o     c yellow",
+"       .        ",
+"       .   .X   ",
+"      .o. ..    ",
+" ......oo.o.    ",
+"  .oooooooo....X",
+"   .oooooooooo. ",
+"    .oooooooo.  ",
+"   ..ooooooo.   ",
+"   .oooooooo.   ",
+"  .oo..oo..oo.  ",
+" .... .oo. ...  ",
+" X     ..    .X ",
+"        .       ",
+"                "};
diff --git a/daphne/bitmaps/oldroom.xpm b/daphne/bitmaps/oldroom.xpm
new file mode 100644 (file)
index 0000000..f0c684b
--- /dev/null
@@ -0,0 +1,21 @@
+/* XPM */
+static char *oldroom_xpm[] = {
+"16 14 4 1",
+"      c None",
+".     c red",
+"X     c white",
+"o     c gray50",
+"                ",
+"                ",
+"                ",
+"                ",
+"      ...       ",
+"     .XX..      ",
+"     .XX..o     ",
+"     .....o     ",
+"      ...oo     ",
+"       ooo      ",
+"                ",
+"                ",
+"                ",
+"                "};
diff --git a/daphne/bitmaps/root.xpm b/daphne/bitmaps/root.xpm
new file mode 100644 (file)
index 0000000..e27cfe6
--- /dev/null
@@ -0,0 +1,25 @@
+/* XPM */
+/* Drawn  by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static char *root_xpm[]={
+"16 16 3 1",
+"a c #ffffff",
+"# c #000000",
+". c None",
+"................",
+".......##.......",
+"..#...####......",
+"..#..#aaaa#.....",
+"..#.#aaaaaa#....",
+"..##aaaaaaaa#...",
+"..#aaaaaaaaaa#..",
+".#aaaaaaaaaaaa#.",
+"###aaaaaaaaaa###",
+"..#aaaaaaaaaa#..",
+"..#aaa###aaaa#..",
+"..#aaa#.#aaaa#..",
+"..#aaa#.#aaaa#..",
+"..#aaa#.#aaaa#..",
+"..#aaa#.#aaaa#..",
+"..#####.######.."};
+
index 97e1b9af07d87efe835fa2fbe9cb2a3b17dd0f8e..4087e1abeafacfc6fbde38667daadac4f0d905bd 100644 (file)
@@ -50,8 +50,9 @@ public:
        void OnQuit(wxCommandEvent& event);
        void OnAbout(wxCommandEvent& event);
        void OnDoCmd(wxCommandEvent& event);
-       void OnConnect(wxCommandEvent& event);
 private:
+       void OnConnect(wxCommandEvent& event);
+       void OnTestWin(wxCommandEvent& event);
        void OnUsersMenu(wxCommandEvent& cmd);
        void OnWindowMenu(wxCommandEvent& cmd);
        wxButton *do_cmd;
@@ -75,6 +76,7 @@ enum
        IG_About,
        IG_Text,
        MENU_CONNECT,
+       MENU_TESTWIN,
        UMENU_WHO,
        UMENU_SEND_EXPRESS,
        WMENU_CASCADE,
@@ -96,6 +98,7 @@ BEGIN_EVENT_TABLE(    MyFrame, wxMDIParentFrame)
        EVT_MENU(       IG_Quit,                MyFrame::OnQuit)
        EVT_MENU(       IG_About,               MyFrame::OnAbout)
        EVT_MENU(       MENU_CONNECT,           MyFrame::OnConnect)
+       EVT_MENU(       MENU_TESTWIN,           MyFrame::OnTestWin)
        EVT_MENU(       UMENU_WHO,              MyFrame::OnUsersMenu)
        EVT_MENU(       UMENU_SEND_EXPRESS,     MyFrame::OnUsersMenu)
        EVT_MENU(       WMENU_CASCADE,          MyFrame::OnWindowMenu)
@@ -198,6 +201,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
 
        wxMenu *menuFile = new wxMenu;
        menuFile->Append(MENU_CONNECT, "&Connect");
+       menuFile->Append(MENU_TESTWIN, "Add &Test window");
        menuFile->AppendSeparator(); 
        menuFile->Append(IG_Quit, "E&xit");
 
@@ -359,13 +363,15 @@ void MyFrame::OnConnect(wxCommandEvent& unused) {
        DefaultPort = "citadel";
 
        if (citadel->IsConnected()) {
-               wxMessageBox("You are already connected to a Citadel server.",
-                       "Oops!");
+               wxMessageBox("You are currently connected to "
+                       + citadel->HumanNode
+                       + ".  If you wish to connect to a different Citadel "
+                       + "server, you must log out first.",
+                       "Already connected");
        } else {
                retval = citadel->attach(DefaultHost, DefaultPort);
                if (retval == 0) {
                        SetStatusText("Connected to " + citadel->HumanNode, 0);
-                       new TestWindow(citadel, this);
                        new UserLogin(citadel, this);
                } else {
                        wxMessageBox("Could not connect to server.", "Error");
@@ -373,3 +379,6 @@ void MyFrame::OnConnect(wxCommandEvent& unused) {
        }
 }
 
+void MyFrame::OnTestWin(wxCommandEvent& unused) {
+       new TestWindow(citadel, this);
+}
index 2a76b00e4cb09678680ce945d930b4f0c16957f5..3b2c72a95244b5cf3952e5b52ebcc0f060e72798 100644 (file)
@@ -3,7 +3,14 @@
 #include <wx/wx.h>
 #include "includes.hpp"
 
+#include "bitmaps/root.xpm"
+#include "bitmaps/floor.xpm"
+#include "bitmaps/newroom.xpm"
+#include "bitmaps/oldroom.xpm"
+#include "bitmaps/mailroom.xpm"
+
 wxTreeItemId floorboards[128];
+wxImageList *TreeIcons = NULL;
 
 // The following two functions convert between the wxStringList class used for
 // text transfers to and from the Citadel server, and the wxString class used
@@ -82,6 +89,15 @@ int extract_int(wxString inputbuf, int parmnum) {
 }
 
 
+void InitTreeIcons(void) {
+       TreeIcons = new wxImageList(16, 16);
+       cout << TreeIcons->Add(wxICON(root));
+       cout << TreeIcons->Add(wxICON(floor));
+       cout << TreeIcons->Add(wxICON(newroom));
+       cout << TreeIcons->Add(wxICON(oldroom));
+       cout << TreeIcons->Add(wxICON(mailroom));
+}
+
 
 // Load a tree with a room list
 //
@@ -90,13 +106,16 @@ void load_roomlist(wxTreeCtrl *tree, CitClient *citsock) {
        wxStringList transbuf;
        int i, floornum;
 
+       if (TreeIcons == NULL) InitTreeIcons();
+
        // First, clear it out.
        tree->DeleteAllItems();
+       tree->SetImageList(TreeIcons);
 
        // Set the root with the name of the Citadel server.
        tree->AddRoot(
                citsock->HumanNode,
-               -1,     // FIX use an "earth" pixmap here
+               0,
                -1,
                NULL);
 
@@ -112,7 +131,7 @@ void load_roomlist(wxTreeCtrl *tree, CitClient *citsock) {
                floorboards[floornum] = tree->AppendItem(
                        tree->GetRootItem(),
                        floorname,
-                       -1,     // FIX use a floor pixmap here
+                       1,
                        -1,
                        NULL);
        }
@@ -129,7 +148,7 @@ void load_roomlist(wxTreeCtrl *tree, CitClient *citsock) {
                tree->AppendItem(
                        floorboards[floornum],
                        roomname,
-                       -1,     // FIX use a room pixmap here
+                       3,
                        -1,
                        NULL);
        }