Exemplo n.º 1
0
void SymbolPropertySetting::OnPropertyGridChange(const std::string& name, const wxAny& value)
{
	if (value.IsNull())
		return;

	bool dirty = true;
	if (name == wxT("Name"))
	{
		if (m_sym) {
			std::string name = wxANY_AS(value, wxString);
			m_sym->name = name;
			m_sym->SetName(name);
			RefreshPanelSJ::Instance()->Refresh();
		} else if (m_name) {
			*m_name = wxANY_AS(value, wxString);
		}
	}
	else if (name == "Tag") 
	{
		if (m_sym) {
			m_sym->tag = wxANY_AS(value, wxString);
		} else if (m_tag) {
			*m_tag = wxANY_AS(value, wxString);
		}
	}
	else
	{
		dirty = false;
	}

	if (dirty) {
		SetCanvasDirtySJ::Instance()->SetDirty();
	}
}
Exemplo n.º 2
0
void LayerPropertySetting::onPropertyGridChange(const wxString& name, const wxAny& value)
{
	if (value.IsNull())
		return;

	if (name == wxT("Name"))
		m_layer->setName(wxANY_AS(value, wxString));
	else if (name == wxT("Visible"))
		m_layer->getLayer()->isVisible = wxANY_AS(value, bool);
	else if (name == wxT("Editable"))
Exemplo n.º 3
0
void CirclePropertySetting::onPropertyGridChange(const wxString& name, const wxAny& value)
{
	if (value.IsNull())
		return;

	if (name == wxT("Name"))
		m_circle->name = wxANY_AS(value, wxString);
	if (name == wxT("X"))
		m_circle->center.x = wxANY_AS(value, float);
	else if (name == wxT("Y"))
Exemplo n.º 4
0
void TextPropertySetting::onPropertyGridChange(const wxString& name, const wxAny& value)
{
	if (value.IsNull())
		return;

	if (name == "Text")
	{
		wxString text = wxANY_AS(value, wxString);
		m_sprite->setText(text.ToStdString());
	}
	else if (name == "Size")
	{
		m_sprite->setSize(wxANY_AS(value, float));
	}
Exemplo n.º 5
0
void JointPropertySetting::OnPropertyGridChange(const std::string& name, const wxAny& value)
{
	if (value.IsNull())
		return;

	bool dirty = true;
	if (name == wxT("Name"))
		m_joint->m_name = wxANY_AS(value, wxString);
	else if (name == wxT("collideConnected"))
		m_joint->m_collide_connected = wxANY_AS(value, bool);
	switch (m_joint->m_type)
	{
	case Joint::e_revoluteJoint:
		OnPropertyGridChange(static_cast<RevoluteJoint*>(m_joint), name, value);
		break;
	case Joint::e_prismaticJoint:
		OnPropertyGridChange(static_cast<PrismaticJoint*>(m_joint), name, value);
		break;
	case Joint::e_distanceJoint:
		OnPropertyGridChange(static_cast<DistanceJoint*>(m_joint), name, value);
		break;
	case Joint::e_pulleyJoint:
		OnPropertyGridChange(static_cast<PulleyJoint*>(m_joint), name, value);
		break;
	case Joint::e_gearJoint:
		OnPropertyGridChange(static_cast<GearJoint*>(m_joint), name, value);
		break;
	case Joint::e_wheelJoint:
		OnPropertyGridChange(static_cast<WheelJoint*>(m_joint), name, value);
		break;
	case Joint::e_weldJoint:
		OnPropertyGridChange(static_cast<WeldJoint*>(m_joint), name, value);
		break;
	case Joint::e_frictionJoint:
		OnPropertyGridChange(static_cast<FrictionJoint*>(m_joint), name, value);
		break;
	case Joint::e_ropeJoint:
		OnPropertyGridChange(static_cast<RopeJoint*>(m_joint), name, value);
		break;
	case Joint::e_motorJoint:
		OnPropertyGridChange(static_cast<MotorJoint*>(m_joint), name, value);
		break;
	}

	if (dirty) {
		ee::SetCanvasDirtySJ::Instance()->SetDirty();
	}
}
Exemplo n.º 6
0
bool wxConvertAnyToVariant(const wxAny& any, wxVariant* variant)
{
    if ( any.IsNull() )
    {
        variant->MakeNull();
        return true;
    }

    // (signed) integer is a special case, because there is only one type
    // in wxAny, and two ("long" and "longlong") in wxVariant. For better
    // backwards compatibility, convert all values that fit in "long",
    // and others to "longlong".
    if ( wxANY_CHECK_TYPE(any, signed int) )
    {
#ifdef wxLongLong_t
        wxLongLong_t ll = 0;
        if ( any.GetAs(&ll) )
        {
            // NB: Do not use LONG_MAX here. Explicitly using 32-bit
            //     integer constraint yields more consistent behaviour across
            //     builds.
            if ( ll > wxINT32_MAX || ll < wxINT32_MIN )
                *variant = wxLongLong(ll);
            else
                *variant = (long) wxLongLong(ll).GetLo();
        }
        else
        {
            return false;
        }
#else
        long l;
        if ( any.GetAs(&l) )
            *variant = l;
        else
            return false;
#endif
        return true;
    }