Exemple #1
0
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 );
		}
	}
}
Exemple #2
0
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();
	}
Exemple #4
0
 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);
}
Exemple #6
0
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));
}
Exemple #11
0
void CCSClones::swapEntry(int idxA, int idxB)
{
    CCSClone* pTemp = GetAt(idxA);
    SetAt(idxA, GetAt(idxB));
    SetAt(idxB, pTemp);
}
Exemple #12
0
	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);
		}
	}
Exemple #13
0
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));
}
Exemple #21
0
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();
}