Beispiel #1
0
void TimeEdit::PasteTime() {
	if (byFrame) {
		Paste();
		return;
	}

	if (wxTheClipboard->Open()) {
		wxString text;
		if (wxTheClipboard->IsSupported(wxDF_TEXT)) {
			wxTextDataObject data;
			wxTheClipboard->GetData(data);
			text = data.GetText().Trim(false).Trim(true);
		}
		wxTheClipboard->Close();

		AssTime tempTime(text);
		if (tempTime.GetASSFormated() == text) {
			SetTime(tempTime);
			SetSelection(0, GetValue().size());

			wxCommandEvent evt(wxEVT_COMMAND_TEXT_UPDATED, GetId());
			evt.SetEventObject(this);
			HandleWindowEvent(evt);
		}
	}
}
Beispiel #2
0
void TimeEdit::PasteTime() {
    if (byFrame) {
        Paste();
        return;
    }

    std::string text(GetClipboard());
    if (text.empty()) return;

    AssTime tempTime(text);
    if (tempTime.GetAssFormated() == text) {
        SetTime(tempTime);
        SetSelection(0, GetValue().size());

        wxCommandEvent evt(wxEVT_TEXT, GetId());
        evt.SetEventObject(this);
        HandleWindowEvent(evt);
    }
}
Beispiel #3
0
    /**
     *
     * @return String representation (formated) of the map.
     */
    std::string toString() const {
        std::stringstream strstream;
        std::lock_guard<std::mutex> lock(m_mutex);

        // iterate over map, key is caller
        for (auto callerIter = m_map.begin(); callerIter != m_map.end();
                callerIter++) {
            strstream << "\r\nCaller: " << callerIter->first << "\r\n";
            auto callerQueue = callerIter->second;

            // SBA events of the caller
            for (auto eventIter = callerQueue->begin();
                    eventIter != callerQueue->end(); eventIter++) {
                std::shared_ptr<SbaEvent> event = (*eventIter);
                time_t timestamp = systemClock::to_time_t(event->timestamp);
                std::string tempTime(ctime(&timestamp));
                strstream << "Event Type:\t"
                          << sbaEventTypeEnumToString(event->eventType)
                          << "\r\n"
                          << "Call ID:\t"
                          << event->callId
                          << "\r\n"
                          << "Timestamp:\t"
                          << tempTime.substr(0, tempTime.size() - 1)
                          << "\r\n"
                          << "Initiator:\t"
                          << event->transactionInitiator.address
                          << "\r\n"
                          << "Final rsponse:\t";
                if (event->finalResponseCode != 0) {
                    strstream << event->finalResponseCode
                              << " "
                              << event->finalResponseReason
                              << "\r\n";
                } else {
                    strstream << "N/A" << "\r\n";
                };

                switch (event->eventType) {
                case et_INVITE: {
                    auto inviteEvent = std::static_pointer_cast<InviteEvent>(
                            event);

                    strstream << "flags [ack/reinvite/cancel]: "
                              << inviteEvent->ackFlag
                              << "/"
                              << inviteEvent->reinviteFlag
                              << "/"
                              << inviteEvent->cancelFlag
                              << "\r\n";
                }
                break;
                case et_BYE: {
                    auto byeEvent = std::static_pointer_cast<ByeEvent>(event);

                    auto duration = boost::chrono::duration_cast<seconds>(
                            byeEvent->callDuration);

                    auto durationMinutes =
                            boost::chrono::duration_cast<minutes>(
                                    duration % 60);
                    auto durationSeconds = duration - durationMinutes * 60;

                    strstream << "Call duration:\t"
                              << durationMinutes
                              << " "
                              << durationSeconds
                              << "\r\n";
                }
                break;
                case et_CANCEL: {
                    auto optionsEvent = std::static_pointer_cast<OptionsEvent>(
                            event);

                    strstream << "";
                }
                break;
                case et_OPTIONS: {
                    auto optionsEvent = std::static_pointer_cast<OptionsEvent>(
                            event);

                    strstream << "Dialog established:\t"
                              << (optionsEvent->dialogEstablished ? "yes" : "no");
                }
                break;
                default:
                break;
                }
                strstream << "\r\n";
            }
        }
        if (strstream.tellp() == 0) {
            strstream << "\r\nSbaEventMap is empty.\r\n\r\n";
        }
        return strstream.str();
    }
Beispiel #4
0
Node* CGroupsUI::AddNode(const FriendListItemInfo& item, Node* parent)
{
	if (!parent)
		parent = root_node_;

	TCHAR szBuf[MAX_PATH] = {0};

    CListContainerElementUI* pListElement = NULL;
    if( !m_dlgBuilder.GetMarkup()->IsValid() ) 
	{
		if (uiType == eUI_Group)
		{
			pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create(_T("item_group_list.xml"), (UINT)0, NULL, &paint_manager_));
			kGroupListItemNormalHeight = 26;
			kGroupListItemSelectedHeight = 44;
		}
		else if (uiType == eUI_Member)
		{
			pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create(_T("item_member_list.xml"), (UINT)0, NULL, &paint_manager_));
			kGroupListItemNormalHeight = 26;
			kGroupListItemSelectedHeight = 44;
		}
		else if (uiType == eUI_Recent)
		{
			pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create(_T("item_recent_list.xml"), (UINT)0, NULL, &paint_manager_));
			kGroupListItemNormalHeight = 56;
			kGroupListItemSelectedHeight = 56;
		}
    }
    else 
	{
        pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create((UINT)0, &paint_manager_));
    }
    if (pListElement == NULL)
        return NULL;

	Node* node = new Node;

	node->data().level_ = parent->data().level_ + 1;
	if (item.folder)
		node->data().has_child_ = !item.empty;
	else
		node->data().has_child_ = false;

	node->data().folder_ = item.folder;
	node->data().child_visible_ = (node->data().level_ == 0);

	node->data().nodetype = item.nodetype;
	node->data().type = item.type;
	node->data().rusertype = item.rusertype;
	node->data().text_ = item.showname;
	node->data().value = item.id;
	node->data().id = item.id;
	node->data().numid = item.numid;
	node->data().Parentid = item.Parentid;
	node->data().nickname = item.nick_name;
	node->data().list_elment_ = pListElement;

	//IM2.0
	node->data().Lastword = item.Lastword;
	node->data().GoodAt = item.GoodAt;
	node->data().lastwordtime = item.lastwordtime;
	node->data().isvip = item.isvip;
	node->data().hasright = item.hasright;
	node->data().totlenum = item.totlenum;
	node->data().onlinenum = item.onlinenum;

	if (!parent->data().child_visible_)
		pListElement->SetVisible(false);

	if (parent != root_node_ && !parent->data().list_elment_->IsVisible())
		pListElement->SetVisible(false);

	CDuiRect rcPadding = text_padding_;
	for (int i = 0; i < node->data().level_; ++i)
	{
		rcPadding.left += level_text_start_pos_;		
	}
	pListElement->SetPadding(rcPadding);

	CButtonUI* log_button = static_cast<CButtonUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoButtonControlName));
	if (log_button != NULL)
	{
		if (!item.folder && !item.logo.IsEmpty())
		{
			_stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), item.logo);
			log_button->SetNormalImage(szBuf);
		}
		else
		{
			CContainerUI* logo_container = static_cast<CContainerUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoContainerControlName));
			if (logo_container != NULL)
				logo_container->SetVisible(false);
		}
        log_button->SetTag((UINT_PTR)pListElement);
        log_button->OnEvent += MakeDelegate(&OnLogoButtonEvent);
	}

	CDuiString html_text;
	if (node->data().has_child_)
	{
		if (node->data().child_visible_)
			html_text += level_expand_image_;
		else
			html_text += level_collapse_image_;

		_stprintf_s(szBuf, MAX_PATH - 1, _T("<x %d>"), level_text_start_pos_);
		html_text += szBuf;
	}

	if (item.folder)
	{
		html_text += node->data().text_;
	}
	else
	{
		_stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), node->data().text_);
		html_text += szBuf;
	}

	CLabelUI* nick_name = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kNickNameControlName));
	if (nick_name != NULL)
	{
		if (item.folder)
			nick_name->SetFixedWidth(0);

		nick_name->SetShowHtml(true);
		nick_name->SetText(html_text);
	}

	//////////////////////////////////////////////////////////////////////////
	//IM2.0
	CLabelUI* l_time = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kTimeControlName));
	if (l_time != NULL)
	{
		CDuiString lastwordtime = _T("");
		long time = item.lastwordtime ; 
		CTime tempTime(time) ; 
		CTime curTime = CTime::GetCurrentTime() ; 

		// 昨天 
		if( ( curTime.GetYear() == tempTime.GetYear() && curTime.GetMonth() == tempTime.GetMonth() ) && ( curTime.GetDay() == tempTime.GetDay() + 1 ) )
		{
			l_time->SetText(_T("昨天")) ; 
		}
		else if( ( curTime.GetYear() == tempTime.GetYear() && curTime.GetMonth() == tempTime.GetMonth() ) && ( curTime.GetDay() == tempTime.GetDay() + 2 ) ) 
		{
			l_time->SetText(_T("前天")) ;
		}
		else if( ( curTime.GetYear() == tempTime.GetYear() && curTime.GetMonth() == tempTime.GetMonth() ) && ( curTime.GetDay() == tempTime.GetDay()) )
		{
			// 当天 
			CString strText = _T(" ") ;
			strText.Format("%d:%d" ,tempTime.GetHour(),tempTime.GetMinute()) ; 
			l_time->SetText(strText.GetBuffer()) ;
		}
		else 
		{
			CString strText = _T(" ") ;
			strText.Format("%d-%d" ,tempTime.GetMonth(),tempTime.GetDay()) ; 
			l_time->SetText(strText.GetBuffer()) ;
		}
		//lastwordtime.Format("%02d:%02d", item.lastwordtime/100, item.lastwordtime%100);
		//l_time->SetText(lastwordtime);
	}
	CLabelUI* l_lastword = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kLastWordControlName));
	if (l_lastword != NULL)
		l_lastword->SetText(item.Lastword);
	//////////////////////////////////////////////////////////////////////////

	if (!item.folder && !item.description.IsEmpty())
	{
		CLabelUI* description = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kDescriptionControlName));
		if (description != NULL)
		{
			_stprintf_s(szBuf, MAX_PATH - 1, _T("<x 8><c #808080>%s</c>"), item.description);
			description->SetShowHtml(true);
			description->SetText(szBuf);
		}
	}

	pListElement->SetFixedHeight(kGroupListItemNormalHeight);
	pListElement->SetTag((UINT_PTR)node);
	int index = 0;
	if (parent->has_children())
	{
		Node* prev = parent->get_last_child();
		index = prev->data().list_elment_->GetIndex() + 1;
	}
	else 
	{
		if (parent == root_node_)
			index = 0;
		else
			index = parent->data().list_elment_->GetIndex() + 1;
	}
	if (!CListUI::AddAt(pListElement, index))
	{
		delete pListElement;
		delete node;
		node = NULL;
	}

	parent->add_child(node);

	CString strID = item.id.GetData();
	allNodeInfo[strID] = node;
	return node;
}
// -----------------------------------------------------------------------------
// CSyncMLFilterProperty::NewLC
// Symbian two-phased constructor.
// -----------------------------------------------------------------------------
EXPORT_C CSyncMLFilterProperty*
                CSyncMLFilterProperty::NewLC( RReadStream& aStream )
	{
	CSyncMLFilterProperty* self = new (ELeave) CSyncMLFilterProperty();
	CleanupStack::PushL( self );
	
	self->iQueryValueText16 = NULL;
	self->iQueryValueText8 = NULL;
	
	// Create filter from stream
	//  name
	TInt tempLength( aStream.ReadUint32L() );
	if ( tempLength )
		{
		// name
		self->iDisplayName = HBufC::NewL( aStream, tempLength );
		}
	
	// data type for default values
	self->iDataTypeForDefaultValues = 
	                ( TSyncMLFilterPropertyDataType )aStream.ReadInt8L();
	
	// data type for query value
	self->iDataTypeForQueryValue = 
	                ( TSyncMLFilterPropertyDataType )aStream.ReadInt8L();

    // max text length
	self->iMaxTextLength = aStream.ReadUint32L();
	
	// default values
	switch( self->iDataTypeForDefaultValues )
		{
		case ESyncMLDataTypeBool:
		case ESyncMLDataTypeNumber:
			{
			TInt count = aStream.ReadInt32L();
			for ( TInt i = 0; i < count; i++ )
				{
				self->iDefaultValueIntOrBoolList.AppendL( 
				                aStream.ReadInt32L() );
				}
			break;
			}
		case ESyncMLDataTypeTime:
		case ESyncMLDataTypeDate:
			{
			TInt count = aStream.ReadInt32L();
			for ( TInt i = 0; i < count; i++ )
				{
				TTime* temp = new ( ELeave ) TTime( aStream.ReadReal64L() );
				CleanupDeletePushL( temp );
				self->iDefaultValueDateOrTimeList.AppendL( temp );
				CleanupStack::Pop(); // temp
				}
			break;
			}
			
		case ESyncMLDataTypeText8:
			{
			TInt count = aStream.ReadInt32L();
			for ( TInt i = 0; i < count; i++ )
				{
				TInt length( aStream.ReadUint32L() );
				if ( length )
					{
					self->iDefaultValueText8List.AppendL( 
					                HBufC8::NewLC( aStream, length ) );
					CleanupStack::Pop(); // text
					}
				}
			break;
			}
		case ESyncMLDataTypeText16:
			{
			TInt count = aStream.ReadInt32L();
			for ( TInt i = 0; i < count; i++ )
				{
				TInt length( aStream.ReadUint32L() );
				if ( length )
					{
					self->iDefaultValueText16List.AppendL( 
					                HBufC::NewLC( aStream, length ) );
					CleanupStack::Pop(); // text
					}
				}
			break;
			}
		case ESyncMLDataTypeNull:
			{
			aStream.ReadInt32L();
			break;
			}
		default:
			{
			break;
			}
		}
		
	// query values
	switch( self->iDataTypeForQueryValue )
		{
		case ESyncMLDataTypeBool:
		case ESyncMLDataTypeNumber:
			{
			self->iQueryValueIntOrBool = aStream.ReadInt32L();
			break;
			}
		case ESyncMLDataTypeTime:	
		case ESyncMLDataTypeDate:
			{	
			TTime tempTime( aStream.ReadReal64L() );
			self->iQueryValueDateOrTime = tempTime;
			break;
			}
			
		case ESyncMLDataTypeText8:
			{
			TInt length( aStream.ReadUint32L() );
			if (length)
				{
				self->iQueryValueText8 = HBufC8::NewL( aStream, length );
				}
			break;
			}
		case ESyncMLDataTypeText16:
			{
			TInt length( aStream.ReadUint32L() );
			if (length)
				{
				self->iQueryValueText16 = HBufC::NewL( aStream, length );
				}
				
			break;
			}
		case ESyncMLDataTypeNull:
			{
			aStream.ReadInt32L();
			break;
			}
		default:
			{
			break;
			}
		}

    // default value selection
	tempLength = aStream.ReadInt32L();
	for ( TInt i = 0; i < tempLength; i++ )
		{
		self->iDefaultValueSelected.AppendL( aStream.ReadInt32L() );
		}

    // can use query
	if ( aStream.ReadInt8L() > 0 )
		{
		self->iCanUseQueryValue = ETrue;
		}
	
	// supports multiple selection
	if ( aStream.ReadInt8L() > 0 )
		{
		self->iSupportsMultpleSelection = ETrue;
		}
	
	// supports empty selection
	if ( aStream.ReadInt8L() > 0 )
		{
		self->iSupportsEmptySelection = ETrue;
		}
	
	// query value selected
	if ( aStream.ReadInt8L() > 0 )
		{
		self->iQueryValueSelected = ETrue;
		}

	return self;
	}