void CKData::ConvertXDR( BOOL bUP, DWORD dateAutoDRBegin, double dAutoDRLimit ) { CDRData drtemp; drtemp = m_drdata; drtemp.Sort( ); if( m_pData ) { delete [] (BYTE*)m_pData; m_nSize = m_nMaxSize = 0; m_pData = NULL; } if( NULL == m_pDataOriginal || 0 == m_nSizeOriginal ) return; /* if( drtemp.GetSize() == 0 ) { SetSize( m_nSizeOriginal ); if( m_pData ) memcpy( m_pData, m_pDataOriginal, sizeof(KDATA)*m_nSize ); return; } */ dAutoDRLimit = dAutoDRLimit / 100; if( bUP ) { SetSize( 0, m_nSizeOriginal ); int drPos = 0; float fRatio = 1.000000; for( int i=0; i<m_nSizeOriginal; i++ ) { KDATA & kd = m_pDataOriginal[i]; KDATA newkd = kd; if( drPos < drtemp.GetSize() && ToDayDate(kd.m_date) >= drtemp.ElementAt(drPos).m_date ) { if( i > 0 ) { KDATA kdLast = m_pDataOriginal[i-1]; fRatio = fRatio * GetRatio( kdLast.m_fClose, drtemp.ElementAt(drPos) ); } drPos ++; } else if( ToDayDate(kd.m_date) >= dateAutoDRBegin && i > 0 ) // Auto XDR { KDATA kdLast = m_pDataOriginal[i-1]; if( kdLast.m_fClose > 1e-4 && kd.m_fOpen < kdLast.m_fClose && fabs(kd.m_fOpen/kdLast.m_fClose-1) > dAutoDRLimit ) fRatio = fRatio * kd.m_fOpen / kdLast.m_fClose; } newkd.m_fOpen = (kd.m_fOpen / fRatio); newkd.m_fHigh = (kd.m_fHigh / fRatio); newkd.m_fLow = (kd.m_fLow / fRatio); newkd.m_fClose = (kd.m_fClose / fRatio); newkd.m_fVolume = (kd.m_fVolume * fRatio); Add( newkd ); } } else { SetSize( m_nSizeOriginal ); int drPos = drtemp.GetSize()-1; float fRatio = 1.000000; for( int i=m_nSizeOriginal-1; i>=0; i-- ) { KDATA & kd = m_pDataOriginal[i]; KDATA newkd = kd; if( drPos >= 0 && ToDayDate(kd.m_date) < drtemp.ElementAt(drPos).m_date ) { if( i < m_nSizeOriginal-1 ) fRatio = fRatio * GetRatio( kd.m_fClose, drtemp.ElementAt(drPos) ); drPos --; } else if( ToDayDate(kd.m_date) >= dateAutoDRBegin && i+1 < m_nSizeOriginal ) // Auto XDR { KDATA kdNext = m_pDataOriginal[i+1]; if( kdNext.m_fOpen > 1e-4 && kdNext.m_fOpen < kd.m_fClose && fabs(kdNext.m_fOpen/kd.m_fClose-1) > dAutoDRLimit ) fRatio = fRatio * kdNext.m_fOpen / kd.m_fClose; } newkd.m_fOpen = (kd.m_fOpen * fRatio); newkd.m_fHigh = (kd.m_fHigh * fRatio); newkd.m_fLow = (kd.m_fLow * fRatio); newkd.m_fClose = (kd.m_fClose * fRatio); newkd.m_fVolume = (kd.m_fVolume / fRatio); SetAt( i, newkd ); } } }
int CKData::MergeKData( CKData * pother ) { if( !pother || pother->GetSize() == 0 ) return 0; if( GetKType() != pother->GetKType() ) return 0; if( GetSize() == 0 ) { CopyData( *pother ); return GetSize(); } int nCount = 0; SetSize( GetSize(), pother->GetSize()+1 ); for( int i=0; i<pother->GetSize(); i++ ) { KDATA kdnew = pother->ElementAt(i); if( kdnew.m_fClose < 1e-4 || kdnew.m_fOpen < 1e-4 || kdnew.m_fHigh < 1e-4 || kdnew.m_fLow < 1e-4 ) continue; for( int j=0; j<GetSize(); j++ ) { if( kdnew.m_date == ElementAt(j).m_date ) { SetAt(j,kdnew); break; } if( kdnew.m_date < ElementAt(j).m_date ) { InsertAt(j,kdnew); break; } } if( GetSize() == j ) Add( kdnew ); nCount ++; } return nCount; /* The Old Version if( !pother || pother->GetSize() == 0 ) return GetSize(); if( GetKType() != pother->GetKType() ) return GetSize(); if( GetSize() == 0 ) { CopyData( *pother ); return GetSize(); } int nLen = GetSize(); int nLenOther = pother->GetSize(); SP_ASSERT( 0 != nLen && 0 != nLenOther ); if( ElementAt(nLen-1).m_date < pother->ElementAt(0).m_date ) CopyData( *pother ); // else if( ElementAt(0).m_date > pother->ElementAt(nLenOther-1).m_date ) // ; // else if( ElementAt(0).m_date <= pother->ElementAt(0).m_date // && ElementAt(nLen-1).m_date >= pother->ElementAt(nLenOther-1).m_date ) // ; else if( ElementAt(0).m_date > pother->ElementAt(0).m_date && ElementAt(nLen-1).m_date < pother->ElementAt(nLenOther-1).m_date ) CopyData( *pother ); else if( ElementAt(0).m_date <= pother->ElementAt(0).m_date && ElementAt(nLen-1).m_date < pother->ElementAt(nLenOther-1).m_date ) { // append from pother DWORD date = ElementAt(nLen-1).m_date; SetSize( GetSize(), pother->GetSize() ); for( int i=0; i<pother->GetSize(); i++ ) { KDATA & kd = pother->ElementAt(i); if( kd.m_date > m_data ) Add( kd ); } } else if( ElementAt(0).m_date >= pother->ElementAt(0).m_date && ElementAt(nLen-1).m_date > pother->ElementAt(nLenOther-1).m_date ) { // insert from pother CKData temp = (*pother); DWORD date = pother->ElementAt(nLenOther-1).m_date; temp.SetSize( temp.GetSize(), GetSize()+5 ); for( int i=0; i<GetSize(); i++ ) { KDATA & kd = ElementAt(i); if( kd.m_date > date ) temp.Add( kd ); } CopyData( temp ); } return GetSize(); */ }
void MyCamera::OnUpdate(){ auto CntlVec = App::GetApp()->GetInputDevice().GetControlerVec(); //前回のターンからの時間 float ElapsedTime = App::GetApp()->GetElapsedTime(); if (CntlVec[0].bConnected){ Vector3 NewAt(0, 0, 0); auto TargetPtr = GetTargetObject(); if (TargetPtr){ //目指したい場所 Vector3 ToAt = TargetPtr->GetComponent<Transform>()->GetPosition(); NewAt = Lerp::CalculateLerp(GetAt(), ToAt, 0, 1.0f, m_ToTargetLerp, Lerp::Linear); } //ステップ1、注視点と位置の変更 Vector3 Span = GetAt() - GetEye(); Vector3 NewEye = NewAt - Span; SetAt(NewAt); SetEye(NewEye); //ステップ2、ズームの変更 //カメラ位置と注視点の間のベクトルを算出 Span = GetAt() - GetEye(); //正規化 Span.Normalize(); //変化値の決定 Span = Span * ElapsedTime * 10.0f; Vector3 NewArm = GetAt() - GetEye(); //Dパッド下 //カメラを引く if (CntlVec[0].wButtons & XINPUT_GAMEPAD_DPAD_DOWN){ //カメラ位置を引く NewEye = NewEye - Span; NewArm = NewAt - NewEye; if (NewArm.Length() > (GetFar() * 0.1f)){ NewEye = NewEye + Span; NewArm = NewAt - NewEye; } } //Dパッド上 //カメラを寄る if (CntlVec[0].wButtons & XINPUT_GAMEPAD_DPAD_UP){ //カメラ位置を寄る NewEye = NewEye + Span; NewArm = NewAt - NewEye; if (NewArm.Length() < GetNear() * 2.0f){ NewEye = NewEye - Span; NewArm = NewAt - NewEye; } } SetAt(NewAt); SetEye(NewEye); //ステップ3角度の変更 //現在のAtとEyeの角度を得る Vector3 ArmInv = GetEye() - GetAt(); //右スティックX方向 FLOAT AngleY = 0; //右スティックY方向 FLOAT AngleX = 0; FLOAT AngleZ = 0; if (CntlVec[0].fThumbRX != 0){ //右スティックを聞かないようにする // AngleY = -CntlVec[0].fThumbRX * ElapsedTime; } if (CntlVec[0].fThumbRY != 0){ //右スティックを聞かないようにする // AngleX = CntlVec[0].fThumbRY * ElapsedTime; // AngleZ = CntlVec[0].fThumbRY * ElapsedTime; } if (ArmInv.z > 0){ AngleX *= -1.0f; } if (ArmInv.x < 0){ AngleZ *= -1.0f; } Quaternion QtSpan(AngleX, AngleY, AngleZ); QtSpan.Normalize(); //回転先計算の行列を作成 Matrix4X4 Mat, Mat2; Mat.STRTransformation( Vector3(1.0f, 1.0f, 1.0f), ArmInv, QtSpan); Mat2.TranslationFromVector(GetAt()); Mat *= Mat2; NewEye = Mat.PosInMatrix(); if (NewEye.y < 0.5f){ NewEye.y = 0.5f; } //カメラが一定以上、上から視線にならなように調整 ArmInv = NewEye - GetAt(); ArmInv.Normalize(); float y2 = ArmInv.y * ArmInv.y; float x2 = ArmInv.x * ArmInv.x; float z2 = ArmInv.z * ArmInv.z; if (y2 <= (x2 + z2)){ SetEye(NewEye); } } Camera::OnUpdate(); }
virtual inline void SetAt(const unsigned int Index, const CStringPair& Pair) { SetAt(Index, Pair.GetName(), Pair.GetValue()); }
void CPDF_Dictionary::SetAtNumber(const CFX_ByteStringC& key, FX_FLOAT f) { CPDF_Number* pNumber = new CPDF_Number; pNumber->SetNumber(f); SetAt(key, pNumber); }
bool wxMaskController::Validate() { int day = 0, month = 0, year = 0, hour = 0, minute = 0, second = 0; bool bDay = FALSE, bMonth = FALSE, bYear = FALSE, bHour = FALSE, bMinute = FALSE, bSecond = FALSE; bool DateValid, TimeValid; int year_len = 0; unsigned long used = 0; long StartPosDay = -1, EndPosDay = -1, StartPosMonth = -1, EndPosMonth = -1, StartPosYear = -1, EndPosYear = -1; long StartPosHour = -1, EndPosHour = -1, StartPosMinute = -1, EndPosMinute = -1, StartPosSecond = -1, EndPosSecond = -1; if(!m_bNeedValidation) return m_bValidation; wxFieldMaskData* pobjData=NULL; m_dtDateTime = wxInvalidDateTime; for(unsigned long pos = 0; pos < m_listData.GetCount();pos++) { pobjData= (wxFieldMaskData *) (m_listData.Item(pos))->GetData(); if(pobjData->m_eType == MaskDataTypeDIGIT) { if(pobjData->m_chValue != m_chPromptSymbol) used++; wxFieldMaskData* pobjDataNext = NULL; switch(pobjData->m_eSubType) { case MaskDataSubTypeDATEDAY: bDay = TRUE; if(StartPosDay == -1) { StartPosDay = pos; EndPosDay = pos; } EndPosDay++; pobjDataNext = (wxFieldMaskData *) (pos < (m_listData.GetCount()-1) ? (m_listData.Item(pos+1))->GetData() : NULL); if(pobjData->m_chValue != m_chPromptSymbol) { day = (day * 10) + (pobjData->m_chValue - 48); if(pobjDataNext != NULL) { if(pobjDataNext->m_eType == MaskDataTypeDIGIT && pobjDataNext->m_eSubType == MaskDataSubTypeDATEDAY) { day = (day * 10) + (pobjDataNext->m_chValue != m_chPromptSymbol ? (pobjDataNext->m_chValue - 48) : 0); EndPosDay++; pos++; } } } break; case MaskDataSubTypeDATEMONTH: bMonth = TRUE; if(StartPosMonth == -1) { StartPosMonth = pos; EndPosMonth = pos; } EndPosMonth++; pobjDataNext = (wxFieldMaskData *) (pos < (m_listData.GetCount()-1) ? (m_listData.Item(pos+1))->GetData() : NULL); if(pobjData->m_chValue != m_chPromptSymbol) { month = (month * 10) + (pobjData->m_chValue - 48); if(pobjDataNext != NULL) { if(pobjDataNext->m_eType == MaskDataTypeDIGIT && pobjDataNext->m_eSubType == MaskDataSubTypeDATEMONTH) { month = (month * 10) + (pobjDataNext->m_chValue != m_chPromptSymbol ? (pobjDataNext->m_chValue - 48) : 0); EndPosMonth++; pos++; } } } break; case MaskDataSubTypeDATEYEAR: bYear = TRUE; if(StartPosYear == -1) { StartPosYear = pos; EndPosYear = pos; } EndPosYear++; if(pobjData->m_chValue != m_chPromptSymbol) { year = (year * 10) + (pobjData->m_chValue - 48); year_len++; } break; case MaskDataSubTypeTIMEHOUR: bHour = TRUE; if(StartPosHour == -1) { StartPosHour = pos; EndPosHour = pos; } EndPosHour++; pobjDataNext = (wxFieldMaskData *) (pos < (m_listData.GetCount()-1) ? (m_listData.Item(pos+1))->GetData() : NULL); if(pobjData->m_chValue != m_chPromptSymbol) { hour = (hour * 10) + (pobjData->m_chValue - 48); if(pobjDataNext != NULL) { if(pobjDataNext->m_eType == MaskDataTypeDIGIT && pobjDataNext->m_eSubType == MaskDataSubTypeTIMEHOUR) { hour = (hour * 10) + (pobjDataNext->m_chValue != m_chPromptSymbol ? (pobjDataNext->m_chValue - 48) : 0); EndPosHour++; pos++; } } } break; case MaskDataSubTypeTIMEMINUTE: bMinute = TRUE; if(StartPosMinute == -1) { StartPosMinute = pos; EndPosMinute = pos; } EndPosMinute++; pobjDataNext = (wxFieldMaskData *) (pos < (m_listData.GetCount()-1) ? (m_listData.Item(pos+1))->GetData() : NULL); if(pobjData->m_chValue != m_chPromptSymbol) { minute = (minute * 10) + (pobjData->m_chValue - 48); if(pobjDataNext != NULL) { if(pobjDataNext->m_eType == MaskDataTypeDIGIT && pobjDataNext->m_eSubType == MaskDataSubTypeTIMEMINUTE) { minute = (minute * 10) + (pobjDataNext->m_chValue != m_chPromptSymbol ? (pobjDataNext->m_chValue - 48) : 0); EndPosMinute++; pos++; } } } break; case MaskDataSubTypeTIMESECOND: bSecond = TRUE; if(StartPosSecond == -1) { StartPosSecond = pos; EndPosSecond = pos; } EndPosSecond++; pobjDataNext = (wxFieldMaskData *) (pos < (m_listData.GetCount()-1) ? (m_listData.Item(pos+1))->GetData() : NULL); if(pobjData->m_chValue != m_chPromptSymbol) { second = (second * 10) + (pobjData->m_chValue - 48); if(pobjDataNext != NULL) { if(pobjDataNext->m_eType == MaskDataTypeDIGIT && pobjDataNext->m_eSubType == MaskDataSubTypeTIMESECOND) { second = (second * 10) + (pobjDataNext->m_chValue != m_chPromptSymbol ? (pobjDataNext->m_chValue - 48) : 0); EndPosSecond++; pos++; } } } break; } } } m_bNeedValidation = FALSE; if(used == 0) return (m_bValidation = TRUE); bool minValid = m_dtMinDateTime.IsValid(); bool maxValid = m_dtMaxDateTime.IsValid(); DateValid = TRUE; if(bDay || bMonth || bYear) { long pos; wxDateTime minDate = m_dtMinDateTime; wxDateTime maxDate = m_dtMaxDateTime; wxDateTime Date = wxDateTime(1, wxDateTime::Jan, (wxDateTime::Now()).GetYear(), 0, 0, 0, 0); if((bDay && day == 0) || (bMonth && month == 0)) DateValid = FALSE; else if((bDay && day > 31) || (bMonth && month > 12)) DateValid = FALSE; if(DateValid) { if(bYear && year_len < 3 && year < 100) { if(year_len == 0) { year = (wxDateTime::Now()).GetYear(); year_len = 1; } else year += ((wxDateTime::Now()).GetYear() / 1000) * 1000; } if(bYear) { if(StartPosYear != -1) { wxString Year_Str = wxString::Format(_("%04d"), year); for(pos = StartPosYear; pos < EndPosYear;pos++) SetAt(pos, Year_Str.GetChar(Year_Str.Length() + pos - EndPosYear)); } Date.SetYear(year); if(minValid) { minDate.SetMonth(wxDateTime::Jan); minDate.SetDay(1); } if(maxValid) { maxDate.SetMonth(wxDateTime::Dec); maxDate.SetDay(31); } } else { if(minValid) minDate.SetYear(Date.GetYear()); if(maxValid) maxDate.SetYear(Date.GetYear()); } if(bMonth) { if(StartPosMonth != -1) { wxString Month_Str = wxString::Format(_("%02d"), month); for(pos = StartPosMonth; pos < EndPosMonth;pos++) SetAt(pos, Month_Str.GetChar(pos - StartPosMonth)); } Date.SetMonth(wxDateTime::Month(month-1)); if(minValid) minDate.SetMonth(m_dtMinDateTime.GetMonth()); if(maxValid) { maxDate.SetDay(1); maxDate.SetMonth(m_dtMaxDateTime.GetMonth()); maxDate.SetDay(m_dtMaxDateTime.GetNumberOfDays(m_dtMaxDateTime.GetMonth(), m_dtMaxDateTime.GetYear())); } } else { if(minValid) minDate.SetMonth(m_dtMinDateTime.GetMonth()); if(maxValid) maxDate.SetMonth(m_dtMaxDateTime.GetMonth()); } if(bDay) { if(StartPosDay != -1) { wxString Day_Str = wxString::Format(_("%02d"), day); for(pos = StartPosDay; pos < EndPosDay;pos++) SetAt(pos, Day_Str.GetChar(pos - StartPosDay)); } if(day > Date.GetNumberOfDays(Date.GetMonth(), Date.GetYear())) DateValid = FALSE; if(DateValid) { Date.SetDay(day); if(minValid) minDate.SetDay(m_dtMinDateTime.GetDay()); if(maxValid) maxDate.SetDay(m_dtMaxDateTime.GetDay()); } } else { if(minValid) minDate.SetDay(1); if(maxValid) maxDate.SetDay(m_dtMaxDateTime.GetNumberOfDays(m_dtMaxDateTime.GetMonth(), m_dtMaxDateTime.GetYear())); } if(DateValid) { if(!Date.IsValid()) DateValid = FALSE; if(minValid && m_bValidation) { if(Date.IsEarlierThan(minDate)) DateValid = FALSE; } if(maxValid && m_bValidation) { if(Date.IsLaterThan(maxDate)) DateValid = FALSE; } m_dtDateTime = Date; } } } TimeValid = TRUE; if(bHour || bMinute || bSecond) { long pos; wxDateTime minDate = m_dtMinDateTime; wxDateTime maxDate = m_dtMaxDateTime; wxDateTime Date; if(m_dtDateTime.IsValid()) Date = m_dtDateTime; else Date = wxDateTime(1, wxDateTime::Jan, (wxDateTime::Now()).GetYear(), 0, 0, 0, 0); if((bHour && hour > 23) || (bMinute && minute > 59) || (bSecond && second > 59)) TimeValid = FALSE; if(TimeValid) { if(bHour) { if(StartPosHour != -1) { wxString Hour_Str = wxString::Format(_("%02d"), hour); for(pos = StartPosHour; pos < EndPosHour;pos++) SetAt(pos, Hour_Str.GetChar(pos - StartPosHour)); } Date.SetHour(hour); } else { if(minValid) minDate.SetHour(0); if(maxValid) maxDate.SetHour(1); } if(bMinute) { if(StartPosMinute != -1) { wxString Minute_Str = wxString::Format(_("%02d"), minute); for(pos = StartPosMinute; pos < EndPosMinute;pos++) SetAt(pos, Minute_Str.GetChar(pos - StartPosMinute)); } Date.SetMinute(minute); } else { if(minValid) minDate.SetMinute(0); if(maxValid) maxDate.SetMinute(59); } if(bSecond) { if(StartPosSecond != -1) { wxString Second_Str = wxString::Format(_("%02d"), second); for(pos = StartPosSecond; pos < EndPosSecond;pos++) SetAt(pos, Second_Str.GetChar(pos - StartPosSecond)); } Date.SetSecond(second); } else { if(minValid) minDate.SetSecond(0); if(maxValid) maxDate.SetSecond(59); } if(!Date.IsValid()) TimeValid = FALSE; if(TimeValid) { if(minValid) { if(Date.IsEarlierThan(minDate)) TimeValid = FALSE; } if(maxValid) { if(Date.IsLaterThan(maxDate)) TimeValid = FALSE; } m_dtDateTime.Set(hour, minute, second); } } } Update(-1); m_bValidation = DateValid & TimeValid; m_bNeedValidation = FALSE; return m_bValidation; }
void CPDF_Dictionary::SetAtString(FX_BSTR key, const CFX_ByteString& str) { SetAt(key, FX_NEW CPDF_String(str)); }
void CPDF_Dictionary::SetAtString(const CFX_ByteStringC& key, const CFX_ByteString& str) { SetAt(key, new CPDF_String(str)); }
void CPDF_Dictionary::SetAtInteger(FX_BSTR key, int i) { SetAt(key, FX_NEW CPDF_Number(i)); }
void CPDF_Dictionary::SetAtName(FX_BSTR key, const CFX_ByteString& name) { SetAt(key, FX_NEW CPDF_Name(name)); }
void CCSClones::swapEntry(int idxA, int idxB) { CCSClone* pTemp = GetAt(idxA); SetAt(idxA, GetAt(idxB)); SetAt(idxB, pTemp); }
void SubRectAllocator::GetRect(CRect& rect, const Subtitle* s, const Align& align, int tlb, int brb) { SubRect sr(rect, s->m_layer); sr.rect.InflateRect(tlb, tlb, brb, brb); StringMapW<SubRect>::CPair* pPair = Lookup(s->m_name); if(pPair && pPair->m_value.rect != sr.rect) { RemoveKey(s->m_name); pPair = NULL; } if(!pPair) { bool vertical = s->m_direction.primary == _T("down") || s->m_direction.primary == _T("up"); bool fOK = false; while(!fOK) { fOK = true; POSITION pos = GetStartPosition(); while(pos) { const SubRect& sr2 = GetNextValue(pos); if(sr.layer == sr2.layer && !(sr.rect & sr2.rect).IsRectEmpty()) { if(vertical) { if(align.h < 0.5) { sr.rect.right = sr2.rect.right + sr.rect.Width(); sr.rect.left = sr2.rect.right; } else { sr.rect.left = sr2.rect.left - sr.rect.Width(); sr.rect.right = sr2.rect.left; } } else { if(align.v < 0.5) { sr.rect.bottom = sr2.rect.bottom + sr.rect.Height(); sr.rect.top = sr2.rect.bottom; } else { sr.rect.top = sr2.rect.top - sr.rect.Height(); sr.rect.bottom = sr2.rect.top; } } fOK = false; } } } SetAt(s->m_name, sr); rect = sr.rect; rect.DeflateRect(tlb, tlb, brb, brb); } }
void ON_String::SetAt( int i, unsigned char c ) { SetAt( i, (char)c ); }
void CPDF_Dictionary::SetAtInteger(const CFX_ByteStringC& key, int i) { SetAt(key, new CPDF_Number(i)); }
void CPDF_Dictionary::SetAtReference(FX_BSTR key, CPDF_IndirectObjects* pDoc, FX_DWORD objnum) { SetAt(key, FX_NEW CPDF_Reference(pDoc, objnum)); }
void CPDF_Dictionary::SetAtName(const CFX_ByteStringC& key, const CFX_ByteString& name) { SetAt(key, new CPDF_Name(name)); }
void CPDF_Dictionary::SetAtNumber(FX_BSTR key, FX_FLOAT f) { CPDF_Number* pNumber = FX_NEW CPDF_Number; pNumber->SetNumber(f); SetAt(key, pNumber); }
void CPDF_Dictionary::SetAtReference(const CFX_ByteStringC& key, CPDF_IndirectObjects* pDoc, FX_DWORD objnum) { SetAt(key, new CPDF_Reference(pDoc, objnum)); }
void CPDF_Dictionary::SetAtBoolean(FX_BSTR key, FX_BOOL bValue) { SetAt(key, FX_NEW CPDF_Boolean(bValue)); }
void CPDF_Dictionary::SetAtBoolean(const CFX_ByteStringC& key, FX_BOOL bValue) { SetAt(key, new CPDF_Boolean(bValue)); }
void wxMaskController::SetDateTimeValue(wxDateTime& value) { wxFieldMaskData *pobjData = NULL, *pobjDataNext = NULL; wxString str_Value; long length; int year_len; if(m_listData.GetCount() == 0 && value.IsValid()) return; for(long pos = 0;pos < (long) m_listData.GetCount();pos++) { pobjData = (wxFieldMaskData *) (m_listData.Item(pos))->GetData(); if(pobjData->m_eType == MaskDataTypeDIGIT) { if(pobjData->m_eSubType == MaskDataSubTypeDATEDAY) { pobjDataNext = (wxFieldMaskData *) (pos < (long) (m_listData.GetCount()-1) ? (m_listData.Item(pos+1))->GetData() : NULL); if(pobjDataNext) { if(pobjData->m_eType == MaskDataTypeDIGIT && pobjData->m_eSubType == MaskDataSubTypeDATEDAY) str_Value = wxString::Format(_("%02d"), value.GetDay()); else str_Value = wxString::Format(_("%d"), value.GetDay() % 10); } } else if(pobjData->m_eSubType == MaskDataSubTypeDATEMONTH) { pobjDataNext = (wxFieldMaskData *) (pos < (long) (m_listData.GetCount()-1) ? (m_listData.Item(pos+1))->GetData() : NULL); if(pobjDataNext) { if(pobjData->m_eType == MaskDataTypeDIGIT && pobjData->m_eSubType == MaskDataSubTypeDATEMONTH) str_Value = wxString::Format(_("%02d"), value.GetMonth()); else str_Value = wxString::Format(_("%d"), value.GetMonth() % 10); } } else if(pobjData->m_eSubType == MaskDataSubTypeDATEYEAR) { year_len = 1; for(long i = pos; i < (long) m_listData.GetCount();i++) { pobjDataNext = (wxFieldMaskData *) (m_listData.Item(pos+1))->GetData(); if(pobjDataNext->m_eType == MaskDataTypeDIGIT && pobjDataNext->m_eSubType == MaskDataSubTypeDATEYEAR) year_len++; else break; } str_Value = (wxString::Format(_("%04d"), value.GetYear())).Right(year_len);; } else if(pobjData->m_eSubType == MaskDataSubTypeTIMEHOUR) { pobjDataNext = (wxFieldMaskData *) (pos < (long) (m_listData.GetCount()-1) ? (m_listData.Item(pos+1))->GetData() : NULL); if(pobjDataNext) { if(pobjData->m_eType == MaskDataTypeDIGIT && pobjData->m_eSubType == MaskDataSubTypeTIMEHOUR) str_Value = wxString::Format(_("%02d"), value.GetHour()); else str_Value = wxString::Format(_("%d"), value.GetHour() % 10); } } else if(pobjData->m_eSubType == MaskDataSubTypeTIMEMINUTE) { pobjDataNext = (wxFieldMaskData *) (pos < (long) (m_listData.GetCount()-1) ? (m_listData.Item(pos+1))->GetData() : NULL); if(pobjDataNext) { if(pobjData->m_eType == MaskDataTypeDIGIT && pobjData->m_eSubType == MaskDataSubTypeTIMEMINUTE) str_Value = wxString::Format(_("%02d"), value.GetMinute()); else str_Value = wxString::Format(_("%d"), value.GetMinute() % 10); } } else if(pobjData->m_eSubType == MaskDataSubTypeTIMESECOND) { pobjDataNext = (wxFieldMaskData *) (pos < (long) (m_listData.GetCount()-1) ? (m_listData.Item(pos+1))->GetData() : NULL); if(pobjDataNext) { if(pobjData->m_eType == MaskDataTypeDIGIT && pobjData->m_eSubType == MaskDataSubTypeTIMESECOND) str_Value = wxString::Format(_("%02d"), value.GetSecond()); else str_Value = wxString::Format(_("%d"), value.GetSecond() % 10); } } length = (long)str_Value.Length(); if(pos + length > (long) m_listData.GetCount()) length = (long) str_Value.Length() - pos; for(long i = pos; pos < (long) (i + length);pos++) SetAt(pos, str_Value.GetChar(pos-i)); } } Update(); }