// wxString xsPropIO::ToString(T value) -> creates a string representation of the given value wxString xsColourDataPropIO::ToString(wxColourData value) { wxString out; out << xsColourPropIO::ToString(value.GetColour()); for(int i = 0; i < 16; i++) { out << wxT("|") << xsColourPropIO::ToString(value.GetCustomColour(i)); } return out; }
void MyFrame::OnColourGalleryButton(wxCommandEvent& evt) { wxRibbonGallery *gallery = wxDynamicCast(evt.GetEventObject(), wxRibbonGallery); if(gallery == NULL) return; m_ribbon->DismissExpandedPanel(); if(gallery->GetSelection()) m_colour_data.SetColour(GetGalleryColour(gallery, gallery->GetSelection(), NULL)); wxColourDialog dlg(this, &m_colour_data); if(dlg.ShowModal() == wxID_OK) { m_colour_data = dlg.GetColourData(); wxColour clr = m_colour_data.GetColour(); // Try to find colour in gallery wxRibbonGalleryItem *item = NULL; for(unsigned int i = 0; i < gallery->GetCount(); ++i) { item = gallery->GetItem(i); if(GetGalleryColour(gallery, item, NULL) == clr) break; else item = NULL; } // Colour not in gallery - add it if(item == NULL) { item = AddColourToGallery(gallery, clr.GetAsString(wxC2S_HTML_SYNTAX), m_bitmap_creation_dc, &clr); gallery->Realise(); } // Set selection gallery->EnsureVisible(item); gallery->SetSelection(item); // Send an event to respond to the selection change wxRibbonGalleryEvent dummy(wxEVT_RIBBONGALLERY_SELECTED, gallery->GetId()); dummy.SetEventObject(gallery); dummy.SetGallery(gallery); dummy.SetGalleryItem(item); ProcessWindowEvent(dummy); } }