void DragEffectBitmapButton::OnMouseLeftDown (wxMouseEvent& event) { if (mEffect == nullptr) { return; } wxString data; wxTextDataObject dragData(data); //unselect any running effect to make sure the notebook change won't effect it wxCommandEvent unselectEffect(EVT_UNSELECTED_EFFECT); wxPostEvent(GetParent(), unselectEffect); int id = mEffect->GetId(); // Change the Choicebook to correct page wxCommandEvent eventEffectChanged(EVT_SELECTED_EFFECT_CHANGED); eventEffectChanged.SetInt(id); // We are only changing choicebook not populating effect panel with settings eventEffectChanged.SetClientData(nullptr); wxPostEvent(GetParent(), eventEffectChanged); #ifdef __linux__ wxIcon dragCursor; dragCursor.CopyFromBitmap(mEffect->GetEffectIcon(16, true)); #else wxCursor dragCursor(mEffect->GetEffectIcon(16, true).ConvertToImage()); #endif wxDropSource dragSource(this,dragCursor,dragCursor,dragCursor ); dragSource.SetData( dragData ); dragSource.DoDragDrop( wxDragMove ); }
void EffectsPanel::EffectSelected(wxChoicebookEvent& event) { EffectChanged=true; wxScrolledWindow* w = (wxScrolledWindow*)EffectChoicebook->GetPage(EffectChoicebook->GetSelection()); wxString ef = EffectChoicebook->GetPageText(EffectChoicebook->GetSelection()); SetDefaultEffectValues(nullptr, nullptr, ef); wxCommandEvent eventEffectChanged(EVT_SELECTED_EFFECT_CHANGED); // We do not have an actual effect in grid to send // Set Index of page. eventEffectChanged.SetInt(EffectChoicebook->GetSelection()); eventEffectChanged.SetClientData(nullptr); wxPostEvent(GetParent(), eventEffectChanged); w->FitInside(); w->SetScrollRate(5, 5); w->Refresh(); }
void xlGridCanvasPictures::UpdateRenderedImage() { wxString settings = mEffect->GetSettingsAsString(); wxArrayString all_settings = wxSplit(settings, ','); for( int s = 0; s < all_settings.size(); s++ ) { wxArrayString parts = wxSplit(all_settings[s], '='); if( parts[0] == "E_FILEPICKER_Pictures_Filename" ) { parts[1] = PictureName; } all_settings[s] = wxJoin(parts, '='); } settings = wxJoin(all_settings, ','); mEffect->SetSettings(settings.ToStdString(), false); wxCommandEvent eventEffectChanged(EVT_EFFECT_CHANGED); eventEffectChanged.SetClientData(mEffect); wxPostEvent(mMessageParent, eventEffectChanged); }