Пример #1
0
static VALUE account_send_typing( VALUE self, VALUE buddy_name ) {
  PurpleAccount *account = PURPLE_ACCOUNT( self);
  PurpleConnection *gc = NULL;
  
  gc = purple_account_get_connection( account );
  
  serv_send_typing( gc, RSTRING_PTR(buddy_name), PURPLE_TYPING );
  
  return Qtrue;
}
Пример #2
0
static int purple_send_typing( struct im_connection *ic, char *who, int flags )
{
	PurpleTypingState state = PURPLE_NOT_TYPING;
	PurpleAccount *pa = ic->proto_data;
	
	if( flags & OPT_TYPING )
		state = PURPLE_TYPING;
	else if( flags & OPT_THINKING )
		state = PURPLE_TYPED;
	
	serv_send_typing( purple_account_get_connection( pa ), who, state );
	
	return 1;
}
Пример #3
0
static int purple_send_typing(struct im_connection *ic, char *who, int flags)
{
	PurpleTypingState state = PURPLE_NOT_TYPING;
	struct purple_data *pd = ic->proto_data;

	if (flags & OPT_TYPING) {
		state = PURPLE_TYPING;
	} else if (flags & OPT_THINKING) {
		state = PURPLE_TYPED;
	}

	serv_send_typing(purple_account_get_connection(pd->account), who, state);

	return 1;
}
Пример #4
0
bool PurpleIMChat::changeTypingStateCbk(void * dataIn)
{
	Mutex::ScopedLock lock(PurpleIMChat::_mutex);

	PurpleIMChatCallbackData* cbData = (PurpleIMChatCallbackData*) dataIn;

	IMChatSession*		chatSession = cbData->getIMChatSession();
	IMChat::TypingState state		= cbData->getTypingState();
	PurpleTypingState	gState		 = PURPLE_NOT_TYPING;
	mConvInfo_t			*mConv		 = FindChatStructById(chatSession->getId());
	PurpleConversation	*gConv		 = NULL;

	if (mConv) 
	{
//		if ((gConv = (PurpleConversation *)mConv->purple_conv_session))		//VOXOX - JRT - 2009.07.09 This is poor coding technique!
		gConv = mConv->purple_conv_session;

		if ( gConv ) 
		{
			switch (state)
			{
			case IMChat::TypingStateTyping:
				gState = PURPLE_TYPING;
				break;

			case IMChat::TypingStateStopTyping:
			//gState = PURPLE_TYPED;
				gState = PURPLE_NOT_TYPING;
				break;

			default:
				gState = PURPLE_NOT_TYPING;
				break;
			}

			serv_send_typing(purple_conversation_get_gc(gConv), purple_conversation_get_name(gConv), gState);
		}
	}

	timeoutRemove( cbData );

	delete cbData;

	return TRUE;
}