本文整理汇总了C++中AccountManager::SetStatus方法的典型用法代码示例。如果您正苦于以下问题:C++ AccountManager::SetStatus方法的具体用法?C++ AccountManager::SetStatus怎么用?C++ AccountManager::SetStatus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AccountManager
的用法示例。
在下文中一共展示了AccountManager::SetStatus方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: notification
filter_result
Server::ImMessage(BMessage* msg)
{
filter_result result = B_DISPATCH_MESSAGE;
int32 im_what = msg->FindInt32("im_what");
switch (im_what) {
case IM_CONTACT_LIST:
{
int i = 0;
BString id;
while (msg->FindString("id", i++, &id) == B_OK) {
bool found = false;
ContactLinker* item = fRosterMap.ValueFor(id, &found);
if (found)
continue;
item = new ContactLinker(id.String(), Looper());
item->SetProtocolLooper(_LooperFromMessage(msg));
fRosterMap.AddItem(id, item);
}
result = B_SKIP_MESSAGE;
break;
}
case IM_OWN_STATUS_SET:
{
//msg->PrintToStream();
int32 status;
const char* protocol;
if (msg->FindInt32("status", &status) != B_OK)
return B_SKIP_MESSAGE;
if (msg->FindString("protocol", &protocol) != B_OK)
return B_SKIP_MESSAGE;
AccountManager* accountManager = AccountManager::Get();
accountManager->SetStatus((CayaStatus)status);
break;
}
case IM_STATUS_SET:
{
int32 status;
if (msg->FindInt32("status", &status) != B_OK)
return B_SKIP_MESSAGE;
ContactLinker* linker = _EnsureContactLinker(msg);
if (!linker)
break;
linker->SetNotifyStatus((CayaStatus)status);
BString statusMsg;
if (msg->FindString("message", &statusMsg) == B_OK) {
linker->SetNotifyPersonalStatus(statusMsg);
linker->GetChatWindow()->UpdatePersonalMessage();
}
break;
}
case IM_CONTACT_INFO:
{
ContactLinker* linker = _EnsureContactLinker(msg);
if (!linker)
break;
const char* name = NULL;
if ((msg->FindString("name", &name) == B_OK)
&& (strcmp(name, "") != 0))
linker->SetNotifyName(name);
BString status;
if (msg->FindString("message", &status) == B_OK) {
linker->SetNotifyPersonalStatus(status);
linker->GetChatWindow()->UpdatePersonalMessage();
}
break;
}
case IM_EXTENDED_CONTACT_INFO:
{
ContactLinker* linker = _EnsureContactLinker(msg);
if (!linker)
break;
if (linker->GetName().Length() > 0)
break;
const char* name = NULL;
if ((msg->FindString("full name", &name) == B_OK)
&& (strcmp(name, "") != 0))
linker->SetNotifyName(name);
break;
}
case IM_AVATAR_SET:
{
ContactLinker* linker = _EnsureContactLinker(msg);
if (!linker)
break;
//.........这里部分代码省略.........
示例2: if
void
MainWindow::MessageReceived(BMessage* message)
{
switch (message->what) {
case kSearchContact:
{
void* control = NULL;
if (message->FindPointer("source", &control) != B_OK)
return;
SearchBarTextControl* searchBox
= static_cast<SearchBarTextControl*>(control);
if (searchBox == NULL)
return;
RosterMap map = fServer->RosterItems();
for (uint32 i = 0; i < map.CountItems(); i++) {
ContactLinker* linker = map.ValueAt(i);
RosterItem* item = linker->GetRosterItem();
// If the search filter has been deleted show all the items,
// otherwise remove the item in order to show only items
// that matches the search criteria
if (strcmp(searchBox->Text(), "") == 0)
AddItem(item);
else if (linker->GetName().IFindFirst(searchBox->Text()) == B_ERROR)
RemoveItem(item);
else
AddItem(item);
UpdateListItem(item);
}
break;
}
case CAYA_SHOW_SETTINGS:
{
PreferencesDialog* dialog = new PreferencesDialog();
dialog->Show();
break;
}
case CAYA_OPEN_CHAT_WINDOW:
{
int index = message->FindInt32("index");
RosterItem* ritem = ItemAt(index);
if (ritem != NULL)
ritem->GetContactLinker()->ShowWindow(false, true);
break;
}
case CAYA_REPLICANT_STATUS_SET:
{
int32 status;
message->FindInt32("status", &status);
AccountManager* accountManager = AccountManager::Get();
accountManager->SetStatus((CayaStatus)status);
break;
}
case CAYA_REPLICANT_SHOW_WINDOW:
{
if (LockLooper()) {
SetWorkspaces(B_CURRENT_WORKSPACE);
if ((IsMinimized() || IsHidden())
|| fWorkspaceChanged) {
Minimize(false);
Show();
fWorkspaceChanged = false;
} else if ((!IsMinimized() || !IsHidden())
|| (!fWorkspaceChanged)) {
Minimize(true);
}
UnlockLooper();
}
break;
}
case IM_MESSAGE:
ImMessage(message);
break;
case IM_ERROR:
ImError(message);
break;
case B_ABOUT_REQUESTED:
be_app->PostMessage(message);
break;
default:
BWindow::MessageReceived(message);
}
}