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); } } }
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); } }
/** * * @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(×tamp)); 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(); }
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; }