gdicmn.h

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()

void wxColourDatabase::AddColour( const wxString & colourName, const wxColour & colour )

Añade un color a la base de datos.

Si ya existe un color con el mismo nombre, se sustituye.

Find()

wxColour wxColourDatabase::Find(const wxString & colourName) const

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()

wxString wxColourDatabase::FindName(const wxColour & colour) const

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.