[wxWidgets] Komplette wxColourDatabase anzeigen
-
Hallo zusammen,
gibt es eine Möglichkeit (bzw. eine Komponente) um alle Farben die in einer wxColourDatabase gespeichert sind anzuzeigen? Der normale wxColourDialog erlaubt als Parameter ja nur wxColourData und kann dann auch nur 48 Default und 16 Benutzerdefinierte Farben anzeigen. Ich benötige aber eine Lösung, bei der ich eine komplette ColourDB anzeigen kann (ca. 256 Farben)
Ist es vielleicht möglich eine ComboBox dafür zu missbrauchen
Gibt es vielleicht eine ColourComboBox?Vielen Danke für die Antworten!
Gruß
-
Nein, so ein widget existiert z.Z. nicht. Leider ist nicht dokumentiert ob wxColourDatabase irgendwie eine Möglichkeit besitzt,
durch alle Farben zu iterieren, als Zugriffsmethode steht dort nur find.
-
Danke für die Antwort.
Leider besitzt eben die wxColourDatabase nur die Methode "Find()" um Farben aus der DB zu holen. Das Problem ist, dass ich gerne dem Benutzer die Möglichkeit geben möchte, alle Farben die in der wxColourDatabase bespeichert sind auch auszuwählen! Denke da bleibt mir nicht viel übrig als das ich mir einen eigenen Dialog schreibe!
Kennst du eine Möglichkeit, die Farben in einer ComboBox anzeigen zu lassen. Soll heißen, dass ich im Prinzip statt Strings Farben in der ComboBox verwalten möchte!
Vielen Dank schon mal für weitere Statements
Gruß
-
Wenn man sich die Klasse in der gdicmn.h ansieht, stehen da leider auch keine undokumentierten Methoden.
Ob es hilfreich ist eine Methode einzufügen, die die HashMap zurückgibt, bezweifel ich.Letzten endes ist die Klasse so simpel, das sich evtl. eine eigene Implementation flexibler und verlässlicher ist:
class myColorDB { std::map<wxString,wxColour> colormap; public: myColorDB(); myColorDB(const myColorDB& copy); void Setcolour(const wxString& name, const wxColour& color){colormap.insert(std::make_pair(name,color));} std::map<wxString,wxColour>::iterator begin(){return colormap.begin();} std::map<wxString,wxColour>::iterator end(){return colormap.end();} std::map<wxString,wxColour>::const_iterator begin()const{return colormap.begin();} std::map<wxString,wxColour>::const_iterator end()const{return colormap.end();} wxString Getcolorname(const wxColour& color); wxColour Getcolor(const wxString& name); };
phlox