// ----------------------------------------------------------------------- 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; }
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; }
// ----------------------------------------------------------------------- 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; }
// 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; }
// 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; }