00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <dialogs/AdminCheckDialog.h>
00022 #include <dialogs/AdminDialog.h>
00023 #include <dialogs/AdminAuthDialog.h>
00024 #include <GLW/GLWWindowManager.h>
00025 #include <client/ClientChannelManager.h>
00026 #include <coms/ComsAdminMessage.h>
00027 #include <coms/ComsMessageSender.h>
00028
00029 AdminCheckDialog *AdminCheckDialog::instance_ = 0;
00030
00031 AdminCheckDialog *AdminCheckDialog::instance()
00032 {
00033 if (!instance_)
00034 {
00035 instance_ = new AdminCheckDialog;
00036 }
00037 return instance_;
00038 }
00039
00040 AdminCheckDialog::AdminCheckDialog() :
00041 GLWWindow("Admin", 10.0f, 10.0f, 300.0f, 70.0f, eSmallTitle, "Add/Remove players.")
00042 {
00043 ClientAdminResultHandler::instance()->addHandler(this);
00044 needCentered_ = true;
00045 }
00046
00047 AdminCheckDialog::~AdminCheckDialog()
00048 {
00049 }
00050
00051 void AdminCheckDialog::display()
00052 {
00053 GLWWindow::display();
00054
00055 unsigned int sid = ClientAdminResultHandler::instance()->getSid();
00056 ComsAdminMessage message(sid, ComsAdminMessage::AdminLoginLocal, "", "");
00057 ComsMessageSender::sendToServer(message);
00058
00059 GLWWindowManager::instance()->hideWindow(getId());
00060 }
00061
00062 void AdminCheckDialog::adminResult(unsigned int sid, ComsAdminMessage::ComsAdminMessageType type)
00063 {
00064 GLWWindowManager::instance()->hideWindow(AdminDialog::instance()->getId());
00065 GLWWindowManager::instance()->hideWindow(AdminAuthDialog::instance()->getId());
00066 if (sid)
00067 {
00068 ClientChannelManager::instance()->addChannel("general", "admin");
00069 GLWWindowManager::instance()->showWindow(AdminDialog::instance()->getId());
00070 }
00071 else
00072 {
00073 ClientChannelManager::instance()->removeChannel("admin");
00074 if (type == ComsAdminMessage::AdminLogin ||
00075 type == ComsAdminMessage::AdminLoginLocal)
00076 {
00077 GLWWindowManager::instance()->showWindow(AdminAuthDialog::instance()->getId());
00078 }
00079 }
00080 }