示例#1
0
void CGUIRadioButtonControl::SetRadioDimensions(float posX, float posY, float width, float height)
{
  m_radioPosX = posX;
  m_radioPosY = posY;
  if (width)
  {
    m_imgRadioOnFocus.SetWidth(width);
    m_imgRadioOnNoFocus.SetWidth(width);
    m_imgRadioOffFocus.SetWidth(width);
    m_imgRadioOffNoFocus.SetWidth(width);
    m_imgRadioOnDisabled.SetWidth(width);
    m_imgRadioOffDisabled.SetWidth(width);
  }
  if (height)
  {
    m_imgRadioOnFocus.SetHeight(height);
    m_imgRadioOnNoFocus.SetHeight(height);
    m_imgRadioOffFocus.SetHeight(height);
    m_imgRadioOffNoFocus.SetHeight(height);
    m_imgRadioOnDisabled.SetHeight(height);
    m_imgRadioOffDisabled.SetHeight(height);
  }

  // use label2 to display the button value in case no
  // dimensions were specified and there's no label2 yet.
  if (GetLabel2().empty() && !width && !height)
    m_useLabel2 = true;

  SetPosition(GetXPosition(), GetYPosition());
}
示例#2
0
bool CGUIEditControl::OnMessage(CGUIMessage &message)
{
  if (message.GetMessage() == GUI_MSG_SET_TYPE)
  {
    SetInputType((INPUT_TYPE)message.GetParam1(), (int)message.GetParam2());
    return true;
  }
  else if (message.GetMessage() == GUI_MSG_ITEM_SELECTED)
  {
    message.SetLabel(GetLabel2());
    return true;
  }
  else if (message.GetMessage() == GUI_MSG_SET_TEXT &&
          ((message.GetControlId() <= 0 && HasFocus()) || (message.GetControlId() == GetID())))
  {
    SetLabel2(message.GetLabel());
    UpdateText();
  }
  else if (message.GetMessage() == GUI_MSG_INPUT_TEXT_EDIT && HasFocus())
  {
    g_charsetConverter.utf8ToW(message.GetLabel(), m_edit);
    m_editOffset = message.GetParam1();
    m_editLength = message.GetParam2();
    UpdateText(false);
    return true;
  }
  return CGUIButtonControl::OnMessage(message);
}
示例#3
0
bool CGUIEditControl::ValidateInput(const std::wstring &data) const
{
  if (m_inputValidator == NULL)
    return true;

  return m_inputValidator(GetLabel2(), (void*)(m_inputValidatorData != NULL ? m_inputValidatorData : this));
}
示例#4
0
std::string CGUIEditControl::GetDescriptionByIndex(int index) const
{
  if (index == 0)
    return GetDescription();
  else if(index == 1)
    return GetLabel2();
  
  return "";
}
示例#5
0
int ConvertData2(FILE *readdata_file, InputData *inputlist, TrafficRecord *traffic_record){
	
	double avesum = 0;

	// 最初のデータを生成するのに必要なトラフィック履歴を取得
	for(int j=0; j<exparam.necessary_record; j++){
		traffic_record[exparam.record_pointer].traffic = GetTraffic(readdata_file);
		exparam.record_pointer++;
	}

	// 0番目の入力ベクトルは必要ない(real_traffic,real_level,base_levelがあればよい)


	//0番目のデータ設定
	inputlist[0].real_traffic = GetTraffic(readdata_file);
	inputlist[0].record_index = exparam.record_pointer;
	inputlist[0].base_level = GetBaseLevel(inputlist[0].real_traffic);
	routerstate.level = inputlist[0].base_level;
	inputlist[0].real_level = routerstate.level;

	//TrafficRecord設定
	traffic_record[exparam.record_pointer].traffic = inputlist[0].real_traffic;
	traffic_record[exparam.record_pointer].base_level = inputlist[0].base_level;
	traffic_record[exparam.record_pointer].real_level = inputlist[0].real_level;

	//inputlist[0].labelの設定
	inputlist[0].label[0] = 0;
	inputlist[0].label[1] = -1;
	inputlist[0].answer = -1;

	routerstate.base_level = (int)exparam.maxlevel;

	// traffic_recordをスライド
	exparam.record_pointer++;

	// トレーニングデータセットを用意
	int k = 1;
	subcounter = exparam.sleep;
	
	while (k < exparam.data_length){

		subcounter++;

		//入力ベクトル設定部分
		SetInputVector(&inputlist[k], &inputlist[k-1], traffic_record);

		//inputlist[k]の設定
		inputlist[k].real_traffic = GetTraffic(readdata_file);
		inputlist[k].record_index = exparam.record_pointer;
		if (k > exparam.sleep){
			inputlist[k].base_level = GetBaseLevel2(inputlist[k].record_index, traffic_record);
		}
		else{
			inputlist[k].base_level = GetBaseLevel(inputlist[k].real_traffic);
		}
		inputlist[k].real_level = routerstate.level;
	
		//TrafficRecord設定
		traffic_record[exparam.record_pointer].traffic = inputlist[k].real_traffic;
		traffic_record[exparam.record_pointer].base_level = inputlist[k].base_level;
		traffic_record[exparam.record_pointer].real_level = inputlist[k].real_level;

		//inputlist[k].labelの設定(予測時はわからないよ)
		if (k > exparam.sleep){

			// label設定
			GetLabel2(&inputlist[k-exparam.sleep], inputlist, traffic_record);

			// ideal_level設定
			inputlist[k-exparam.sleep].ideal_level = inputlist[k].base_level;
			traffic_record[inputlist[exparam.trainnum].record_index].ideal_level = inputlist[exparam.trainnum].ideal_level;
			routerstate.base_level = inputlist[k].base_level;
			
			if (subcounter >= exparam.sleep){
				routerstate.level = routerstate.base_level + inputlist[k].label[0] + inputlist[k].label[1];
				subcounter = 0;
			}

		}
		
		// traffic_recordをスライド
		exparam.record_pointer++;
#ifdef RECORD
		//	WriteTrfRecFile(&traffic_record[k], recorddata_file);
#endif
		k++;

	}

	return 0;


}