Clase wxColourDatabase
wxWidgets mantiene una base de datos de colores RGB estándar para un conjunto predefinido de colores con nombre.
La aplicación puede añadir a este conjunto si lo desea utilizando AddColour() y puede utilizarlo para buscar colores por nombres utilizando Find() o encontrar los nombres para el color estándar utilizando FindName().
También es posible cambiar entre los valores de color definidos en el estándar CSS (véase https://www.w3.org/TR/css-color-4/#named-colors) y los valores de color tradicionales que se utilizaban en las versiones de wxWidgets anteriores a la 3.3.0, lo que puede resultar útil para conservar la apariencia del código existente: si se necesita hacerlo, llamar a UseScheme() con el argumento Traditional, pero se recomienda utilizar los nuevos colores estándar.
Existe una instancia global predefinida de esta clase llamada wxTheColourDatabase.
La base de datos estándar contiene al menos los siguientes colores:
| AQUAMARINE BLACK BLUE BLUE VIOLET BROWN CADET BLUE CORAL CORNFLOWER BLUE CYAN DARK GREY DARK GREEN DARK OLIVE GREEN DARK ORCHID DARK SLATE BLUE DARK SLATE GREY DARK TURQUOISE DIM GREY | FIREBRICK FOREST GREEN GOLD GOLDENROD GREY GREEN GREEN YELLOW INDIAN RED KHAKI LIGHT BLUE LIGHT GREY LIGHT STEEL BLUE LIME GREEN MAGENTA MAROON MEDIUM AQUAMARINE MEDIUM BLUE | MEDIUM FOREST GREEN MEDIUM GOLDENROD MEDIUM ORCHID MEDIUM SEA GREEN MEDIUM SLATE BLUE MEDIUM SPRING GREEN MEDIUM TURQUOISE MEDIUM VIOLET RED MIDNIGHT BLUE NAVY ORANGE ORANGE RED ORCHID PALE GREEN PINK PLUM PURPLE | RED SALMON SEA GREEN SIENNA SKY BLUE SLATE BLUE SPRING GREEN STEEL BLUE TAN THISTLE TURQUOISE VIOLET VIOLET RED WHEAT WHITE YELLOW YELLOW GREEN |
Tipos públicos
Scheme
enum wxColourDatabase::Scheme
enum Scheme {
CSS ,
Traditional
}
Posibles combinaciones de colores para UseScheme().
- CSS
- Utiliza colores estándar CSS, predeterminados desde la versión 3.3.0.
- Traditional
- Utiliza los colores tradicionales de wxWidgets para garantizar la compatibilidad.
Funciones miembro
wxColourDatabase()
wxColourDatabase::wxColourDatabase()
Crea la base de datos de colores.
Se inicializará en el primer uso.
AddColour()
Añade un color a la base de datos.
Si ya existe un color con el mismo nombre, se sustituye.
Find()
Busca un color dado el nombre.
Devuelve un objeto de color no válido (es decir, wxColour::IsOk() devolverá false) si el color no se ha encontrado en la base de datos.
FindName()
Busca un nombre de color dado el color.
Devuelve una cadena vacía si el color no se encuentra en la base de datos.
GetAllNames()
wxVector<wxString> wxColourDatabase::GetAllNames() const
Enumera todos los colores conocidos por su nombre.
UseScheme()
void wxColourDatabase::UseScheme(Scheme scheme)
Selecciona la combinación de colores que desea utilizar.
De forma predeterminada, wxColourDatabase utiliza el esquema CSS, que devuelve los valores estándar para los colores definidos en la especificación CSS. Consultar https://www.w3.org/TR/css-color-4/#named-colors.
Si es importante mantener la compatibilidad con el comportamiento y la apariencia de las versiones anteriores de wxWidgets, puede cambiar al esquema de colores tradicional utilizando esta función con el argumento Traditional, por ejemplo, llame a
wxTheColourDatabase->UseScheme(wxColourDatabase::Traditional);
durante la inicialización de la aplicación. Hay que tener en cuenta que en las versiones anteriores, wxGTK ya utilizaba valores de color CSS, a diferencia de todos los demás puertos, por lo que Traditional no es realmente compatible con versiones anteriores para wxGTK, pero hace que los valores de color sean consistentes en todas las plataformas y los mismos que se habían utilizado anteriormente en wxMSW y wxOSX. En otras palabras, para obtener una compatibilidad del 100 % con las versiones anteriores, la llamada UseScheme() anterior debe realizarse para todos los puertos excepto wxGTK.
Hay que tener en cuenta que los nombres de colores definidos solo por wxWidgets, que incluyen notablemente todas las variantes de color con espacios en sus nombres, siguen estando disponibles en el esquema de colores CSS predeterminado, con sus valores tradicionales, pero los nombres de los colores definidos por el estándar CSS se toman de él, por ejemplo, "GREEN" corresponde a #00ff00 en el esquema tradicional, pero a #008000 en el esquema CSS. Del mismo modo, los nombres de colores CSS que no estaban definidos por las versiones anteriores de wxWidgets están disponibles incluso cuando se utiliza el esquema tradicional; la elección del esquema sólo afecta a los valores de los colores definidos tanto por wxWidgets como por CSS con valores diferentes.