예제 #1
0
// -----------------------------------------------------------------------
bool WxGuiColorProperty::OnEvent( wxPropertyGrid* propgrid, wxWindow* primary, wxEvent& event )
{
	if ( propgrid->IsMainButtonEvent(event) )
	{
		CGUIColor color = CGUIColorRefFromVariant(GetValue());
		wxColour aWxColor( 
			GUI_FLOAT2UINT_ROUND( color.GetRed()*255 ),
			GUI_FLOAT2UINT_ROUND( color.GetGreen()*255 ), 
			GUI_FLOAT2UINT_ROUND( color.GetBlue()*255 ), 
			GUI_FLOAT2UINT_ROUND( color.GetAlpha()*255 ));

		wxColourData data;
		data.SetChooseFull(true);
		data.SetColour( aWxColor );
		wxColourDialog dialog(propgrid, &data);
		if ( dialog.ShowModal() == wxID_OK )
		{
			wxColourData retData = dialog.GetColourData();
			aWxColor = retData.GetColour();
			color.SetColor( 
				aWxColor.Red() / 255.0f,
				aWxColor.Green() / 255.0f,
				aWxColor.Blue() / 255.0f,
				aWxColor.Alpha() / 255.0f );

			SetValueInEvent( WXVARIANT(color) );

			return true;
		}
	}
	return false;
}
예제 #2
0
bool ArrayVariableProperty::OnButtonClick(wxPropertyGrid* pg,
		wxWindow* WXUNUSED(primaryCtrl), const wxChar* cbt) {

	dataset_vars_ = get_dataset_vars();

	// Update the value from user entry
	wxVariant useValue = pg->GetUncommittedPropertyValue();
	project_vars_ = get_valid(useValue.GetArrayString());

	//if (!pg->EditorValidate()) return false;

	// Create editor dialog
	//VariablesEditorDialog* dlg = create_editor_dialog();
#if wxUSE_VALIDATORS
	wxValidator* validator = GetValidator();
	wxPGInDialogValidator dialogValidator;
#endif

	const wxString name = GetLabel();
	const wxString title = name + " Editor";
	const wxString default_dir = wxEmptyString;
	VariablesEditorDialog* dlg = new VariablesEditorDialog(
		pg, default_dir, wxID_ANY, title, dataset_vars_, project_vars_,
		wxDefaultPosition, wxDefaultSize);//, wxDEFAULT_DIALOG_STYLE);

    //dlg->SetDialogValue(useValue);
    //dlg->Create(pg, wxEmptyString, m_label);

	bool retVal;

	for (;;) {
		retVal = false;

		int res = dlg->ShowModal();

		if (res == wxID_OK && dlg->IsModified()) {
			wxVariant value = dlg->GetDialogValue();
			if (!value.IsNull()) {
				wxArrayString actualValue = value.GetArrayString();
				wxString tempStr;
				ConvertArrayToString(actualValue, &tempStr, m_delimiter);
			#if wxUSE_VALIDATORS
				if (dialogValidator.DoValidate(pg, validator, tempStr))
			#endif
				{
					SetValueInEvent(actualValue);
					retVal = true;
					break;
                }
			} else break;
		} else break;
	}

	delete dlg;

	return retVal;
}
예제 #3
0
// -----------------------------------------------------------------------
bool WxGUIFontProperty::OnEvent( wxPropertyGrid* propgrid, wxWindow* primary, wxEvent& event )
{
	if ( propgrid->IsMainButtonEvent(event) )
	{
		WxFontSelectDialog dialog( propgrid );
		if ( dialog.ShowModal() == wxID_OK )
		{
			SetValueInEvent( dialog.GetResourceName() );
			return true;
		}
	}
	return false;
}
예제 #4
0
// Must re-create font dialog displayer.
bool wxFontDataProperty::OnEvent( wxPropertyGrid* propgrid,
                                  wxWindow* WXUNUSED(primary), wxEvent& event )
{
    if ( propgrid->IsMainButtonEvent(event) )
    {
        // Update value from last minute changes
        PrepareValueForDialogEditing(propgrid);

        wxFontData& fontData = wxFontDataFromVariant(m_value_wxFontData);

        fontData.SetInitialFont(fontData.GetChosenFont());

        wxFontDialog dlg(propgrid, fontData);

        if ( dlg.ShowModal() == wxID_OK )
        {
            SetValueInEvent( wxFontDataToVariant(dlg.GetFontData()) );
            return true;
        }
    }
    return false;
}
예제 #5
0
// Must re-create font dialog displayer.
bool wxFontDataProperty::OnEvent( wxPropertyGrid* propgrid,
                                  wxWindow* WXUNUSED(primary), wxEvent& event )
{
    if ( propgrid->IsMainButtonEvent(event) )
    {
        wxVariant useValue = propgrid->GetUncommittedPropertyValue();

        wxFontData fontData;
        fontData << useValue;

        fontData.SetInitialFont(fontData.GetChosenFont());

        wxFontDialog dlg(propgrid, fontData);

        if ( dlg.ShowModal() == wxID_OK )
        {
            wxVariant variant;
            variant << dlg.GetFontData();
            SetValueInEvent( variant );
            return true;
        }
    }
    return false;
}