当前位置: 首页>>代码示例>>C++>>正文


C++ AccountManager::SetStatus方法代码示例

本文整理汇总了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;

//.........这里部分代码省略.........
开发者ID:Barrett17,项目名称:Caya,代码行数:101,代码来源:Server.cpp

示例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);
	}
}
开发者ID:ModeenF,项目名称:Caya,代码行数:90,代码来源:MainWindow.cpp


注:本文中的AccountManager::SetStatus方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。