Fix message-passing to roster window
This commit is contained in:
parent
5dbcfc1a52
commit
3e202e3609
|
@ -38,7 +38,8 @@ const uint32 kLogin = 'LOGI';
|
||||||
MainWindow::MainWindow()
|
MainWindow::MainWindow()
|
||||||
:
|
:
|
||||||
BWindow(BRect(0, 0, 300, 400), "Caya", B_TITLED_WINDOW, 0),
|
BWindow(BRect(0, 0, 300, 400), "Caya", B_TITLED_WINDOW, 0),
|
||||||
fWorkspaceChanged(false)
|
fWorkspaceChanged(false),
|
||||||
|
fRosterWindow(NULL)
|
||||||
{
|
{
|
||||||
_InitInterface();
|
_InitInterface();
|
||||||
|
|
||||||
|
@ -103,9 +104,9 @@ MainWindow::MessageReceived(BMessage* message)
|
||||||
|
|
||||||
case CAYA_NEW_CHAT:
|
case CAYA_NEW_CHAT:
|
||||||
{
|
{
|
||||||
RosterWindow* roster = new RosterWindow("Invite contact to chat"
|
fRosterWindow = new RosterWindow("Invite contact to chat"
|
||||||
B_UTF8_ELLIPSIS, IM_CREATE_CHAT, new BMessenger(this), fServer);
|
B_UTF8_ELLIPSIS, IM_CREATE_CHAT, new BMessenger(this), fServer);
|
||||||
roster->Show();
|
fRosterWindow->Show();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,6 +192,15 @@ MainWindow::ImMessage(BMessage* msg)
|
||||||
_EnsureConversationItem(msg);
|
_EnsureConversationItem(msg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case IM_AVATAR_SET:
|
||||||
|
case IM_CONTACT_INFO:
|
||||||
|
case IM_EXTENDED_CONTACT_INFO:
|
||||||
|
case IM_STATUS_SET:
|
||||||
|
{
|
||||||
|
if (fRosterWindow != NULL)
|
||||||
|
fRosterWindow->PostMessage(msg);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -310,7 +320,7 @@ MainWindow::_CreateMenuBar()
|
||||||
|
|
||||||
BMenu* chatMenu = new BMenu("Chat");
|
BMenu* chatMenu = new BMenu("Chat");
|
||||||
chatMenu->AddItem(new BMenuItem("New chat" B_UTF8_ELLIPSIS,
|
chatMenu->AddItem(new BMenuItem("New chat" B_UTF8_ELLIPSIS,
|
||||||
new BMessage(CAYA_NEW_CHAT)));
|
new BMessage(CAYA_NEW_CHAT), 'M', B_COMMAND_KEY));
|
||||||
chatMenu->SetTargetForItems(this);
|
chatMenu->SetTargetForItems(this);
|
||||||
|
|
||||||
menuBar->AddItem(programMenu);
|
menuBar->AddItem(programMenu);
|
||||||
|
|
|
@ -18,6 +18,7 @@ class ConversationItem;
|
||||||
class ConversationListView;
|
class ConversationListView;
|
||||||
class ConversationView;
|
class ConversationView;
|
||||||
class RosterItem;
|
class RosterItem;
|
||||||
|
class RosterWindow;
|
||||||
class Server;
|
class Server;
|
||||||
class StatusView;
|
class StatusView;
|
||||||
|
|
||||||
|
@ -51,6 +52,7 @@ private:
|
||||||
void _UpdateListItem(ConversationItem* item);
|
void _UpdateListItem(ConversationItem* item);
|
||||||
|
|
||||||
Server* fServer;
|
Server* fServer;
|
||||||
|
RosterWindow* fRosterWindow;
|
||||||
bool fWorkspaceChanged;
|
bool fWorkspaceChanged;
|
||||||
|
|
||||||
// Left panel, chat list
|
// Left panel, chat list
|
||||||
|
|
|
@ -110,6 +110,10 @@ RosterWindow::MessageReceived(BMessage* message)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case IM_MESSAGE:
|
||||||
|
ImMessage(message);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
BWindow::MessageReceived(message);
|
BWindow::MessageReceived(message);
|
||||||
}
|
}
|
||||||
|
|
Ŝarĝante…
Reference in New Issue