Ejemplo n.º 1
0
void MGuiSlide::sendVariable(void)
{
	if(getVariablePointer())
	{
		switch(getVariableType())
		{
		case M_VAR_INT:
			{
				int * value = (int *)getVariablePointer();
				if(m_value >= 0)
					*value = (int)(m_value + 0.5f);
				else
					*value = (int)(m_value - 0.5f);
			}
			break;
		case M_VAR_FLOAT:
			{
				float * value = (float *)getVariablePointer();
				*value = m_value;
			}
			break;
		}
	}

	// send on change gui event
	if(m_pointerEvent)
	{
		MGuiEvent guiEvent;
		guiEvent.type = MGUI_EVENT_SEND_VARIABLE;

		m_pointerEvent(this, &guiEvent);
	}
}
Ejemplo n.º 2
0
void MGuiSlide::updateFromVariable(void)
{
	if(! getVariablePointer())
		return;

	switch(getVariableType())
	{
	case M_VAR_INT:
		{
			int * value = (int *)getVariablePointer();
			setValue((float)*value);
		}
		break;
	case M_VAR_FLOAT:
		{
			float * value = (float *)getVariablePointer();
			setValue(*value);
		}
		break;
	}
}
Ejemplo n.º 3
0
void MGuiEditText::updateFromVariable(void)
{
	if(! getVariablePointer())
		return;

	switch(getVariableType())
	{
	case M_VAR_BOOL:
		{
			bool * value = (bool *)getVariablePointer();

			if(*value)
				setText("1");
			else
				setText("0");
		}
		break;
	case M_VAR_INT:
		{
			int * value = (int *)getVariablePointer();

			char text[256];
			sprintf(text, "%d", *value);

			setText(text);
		}
		break;
	case M_VAR_UINT:
		{
			unsigned int * value = (unsigned int *)getVariablePointer();

			char text[256];
			sprintf(text, "%d", *value);

			setText(text);
		}
		break;
	case M_VAR_FLOAT:
		{
			float * value = (float *)getVariablePointer();

			char text[256];
			sprintf(text, "%0.2f", *value);

			setText(text);
		}
		break;
	case M_VAR_STRING:
		{
			MString * value = (MString *)getVariablePointer();
			setText(value->getData());
		}
		break;
	}
}
Ejemplo n.º 4
0
MVector2 MGuiSlide::getPointfromValue(float value)
{
	float nValue;
	MVector2 point;

	// variable pointer
	if(getVariablePointer())
	{
		if(getVariableType() == M_VAR_INT)
		{
			int iValue;

			if(value >= 0)
				iValue = (int)(value+0.5f);
			else
				iValue = (int)(value-0.5f);

			nValue = (iValue - getMinValue()) / (getMaxValue() - getMinValue());

			if(nValue < 0)
				nValue = 0;

			if(nValue > 1)
				nValue = 1;

			point = getPosition() + (getDirection() * nValue);
			return point;
		}
	}

	// normal
	nValue = (value - getMinValue()) / (getMaxValue() - getMinValue());

	if(nValue < 0)
		nValue = 0;

	if(nValue > 1)
		nValue = 1;

	point = getPosition() + (getDirection() * nValue);
	return point;
}
Ejemplo n.º 5
0
void MGuiEditText::sendVariable(void)
{
	if(getVariablePointer())
	{
		switch(getVariableType())
		{
		case M_VAR_BOOL:
			{
				bool * value = (bool *)getVariablePointer();

				int i;
				sscanf(getText(), "%d", &i);

				if(i == 1)
					*value = true;
				else if(i == 0)
					*value = false;
			}
			break;
		case M_VAR_INT:
			{
				int * value = (int *)getVariablePointer();

				int i;
				sscanf(getText(), "%d", &i);
				if(i == (*value))
					return;

				*value = i;
			}
			break;
		case M_VAR_UINT:
			{
				unsigned int * value = (unsigned int *)getVariablePointer();

				int i;
				sscanf(getText(), "%d", &i);
				if(i < 0) i = 0;
				if((unsigned int)i == (*value))
					return;

				*value = (unsigned int)i;
			}
			break;
		case M_VAR_FLOAT:
			{
				float * value = (float *)getVariablePointer();

				float f;
				sscanf(getText(), "%f", &f);
				if(f == (*value))
					return;

				*value = f;
			}
			break;
		case M_VAR_STRING:
			{
				MString * value = (MString *)getVariablePointer();
				value->set(getText());
			}
			break;
		}

		unsigned int tSize = m_text.size();
		if(getCharId() > tSize)
			setCharId(tSize);
	}

	// send on change gui event
	if(m_pointerEvent)
	{
		MGuiEvent guiEvent;
		guiEvent.type = MGUI_EVENT_SEND_VARIABLE;
		m_pointerEvent(this, &guiEvent);
	}
}