Clase wxCursor
Un cursor es un pequeño mapa de bits que suele utilizarse para indicar dónde se encuentra el puntero del ratón, con una imagen que puede indicar la interpretación de un clic del ratón.
Jerarquía:

Al igual que con los iconos, los cursores en X y MS Windows se crean de manera diferente. Por lo tanto, se crearán cursores separados para los diferentes entornos. Los métodos específicos de la plataforma para crear un objeto wxCursor están previstos, y esta es una ocasión en la que probablemente se requerirá compilación condicional (ver wxIcon para un ejemplo).
Un único objeto cursor puede ser utilizado en muchas ventanas (cualquier tipo de subventana). La convención de wxWidgets es establecer el cursor para una ventana, como en X, en lugar de establecerlo globalmente como en MS Windows, aunque una función global wxSetCursor() también está disponible para su uso en MS Windows.
Creación de un cursor personalizado
El siguiente es un ejemplo de creación de un cursor a partir de datos de mapa de bits de 32x32 (down_bits) y una máscara (down_mask) donde 1 es negro y 0 es blanco para los bits, y 1 es opaco y 0 es transparente para la máscara. Funciona en Windows y GTK+.
static char down_bits[] = { 255, 255, 255, 255, 31, 255, 255, 255, 31, 255, 255, 255, 31, 255, 255, 255, 31, 255, 255, 255, 31, 255, 255, 255, 31, 255, 255, 255, 31, 255, 255, 255, 31, 255, 255, 255, 25, 243, 255, 255, 19, 249, 255, 255, 7, 252, 255, 255, 15, 254, 255, 255, 31, 255, 255, 255, 191, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }; static char down_mask[] = { 240, 1, 0, 0, 240, 1, 0, 0, 240, 1, 0, 0, 240, 1, 0, 0, 240, 1, 0, 0, 240, 1, 0, 0, 240, 1, 0, 0, 240, 1, 0, 0, 255, 31, 0, 0, 255, 31, 0, 0, 254, 15, 0, 0, 252, 7, 0, 0, 248, 3, 0, 0, 240, 1, 0, 0, 224, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; #ifdef __WXMSW__ wxBitmap down_bitmap(down_bits, 32, 32); wxBitmap down_mask_bitmap(down_mask, 32, 32); down_bitmap.SetMask(new wxMask(down_mask_bitmap)); wxImage down_image = down_bitmap.ConvertToImage(); down_image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 6); down_image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 14); wxCursor down_cursor = wxCursor(down_image); #elif defined(__WXGTK__) or defined(__WXMOTIF__) wxCursor down_cursor = wxCursor(down_bits, 32, 32, 6, 14, down_mask, wxWHITE, wxBLACK); #endif
Objetos y punteros predefinidos
wxCROSS_CURSOR()
wxCursor* wxCROSS_CURSOR
Cursor en forma de cruz.
wxHOURGLASS_CURSOR()
wxCursor* wxHOURGLASS_CURSOR
Cursor de reloj. Indica que el programa está ocupado.
wxNullCursor()
wxCursor wxNullCursor
Cursor nulo.
wxSTANDARD_CURSOR()
wxCursor* wxSTANDARD_CURSOR
Cursor estándar, normalmente la flecha.
Funciones miembro
wxCursor()
wxCursor::wxCursor()
Constructor por defecto.
wxCursor()
wxCursor::wxCursor( const char bits[], int width, int height, int hotSpotX = -1, int hotSpotY = -1, const char maskBits[] = NULL )
Construye un cursor pasando una matriz de bits (datos XBM).
Los parámetros fg y bg solo tienen efecto en GTK+, y fuerzan al cursor a utilizar determinados colores de fondo y primer plano.
Si hotSpotX o hotSpotY es -1, el hotspot será el centro de la imagen del cursor (solo en Motif).
Parámetros
- bits
- Matriz de bits de datos XBM.
- width
- Anchura del cursor.
- height
- Altura del cursor.
- hotSpotX
- Coordenada x de la zona activa (relativa a la parte superior izquierda de la imagen).
- hotSpotY
- Coordenada y del punto caliente (relativa a la parte superior izquierda de la imagen).
- maskBits
- Bits para un mapa de bits de máscara.
Disponibilidad: solo disponible para los ports wxGTK, wxMotif.
Nota:: En wxPerl usa Wx::Cursor->newData(bits, width, height, hotSpotX = -1, hotSpotY = -1, maskBits = 0).
wxCursor()
wxCursor::wxCursor( const wxString & cursorName, wxBitmapType type = wxCURSOR_DEFAULT_TYPE, int hotSpotX = 0, int hotSpotY = 0 )
Construye un cursor pasando un nombre de recurso de cadena o un nombre de archivo.
Los argumentos hotSpotX y hotSpotY solo se utilizan cuando no hay información sobre puntos calientes en el recurso/archivo de imagen que se va a cargar (por ejemplo, cuando se utiliza wxBITMAP_TYPE_ICO en wxMSW o wxBITMAP_TYPE_XPM en wxGTK).
Parámetros
- cursorName
- El nombre del recurso o del archivo de imagen a cargar.
- type
- Tipo de icono a cargar. Por defecto es wxCURSOR_DEFAULT_TYPE, que es una #define asociada a diferentes valores en diferentes plataformas:
- bajo Windows, por defecto es wxBITMAP_TYPE_CUR_RESOURCE. Otros tipos permitidos en Windows son wxBITMAP_TYPE_CUR (para cargar un cursor desde un archivo de cursor .cur), wxBITMAP_TYPE_ICO (para cargar un cursor desde un archivo de icono .ico) y wxBITMAP_TYPE_ANI (para cargar un cursor desde un archivo de icono .ani).
- En MacOS, por defecto es wxBITMAP_TYPE_MACCURSOR_RESOURCE; cuando se especifica un nombre de recurso de cadena, primero se escanean los cursores de color 'crsr' y luego los cursores en blanco/negro 'CURS' de la cadena de recursos. hay que tener en cuenta que las bifurcaciones de recursos están obsoletas en macOS, por lo que esto solo está disponible por razones de legado y no debe utilizarse en código nuevo.
- Bajo GTK, por defecto es wxBITMAP_TYPE_XPM. Ver el ctor wxCursor(const wxImage& image) para más información.
- en X11, por defecto es wxBITMAP_TYPE_XPM.
- En Motif, por defecto es wxBITMAP_TYPE_XBM.
- hotSpotX
- Coordenada x de la zona activa (relativa a la parte superior izquierda de la imagen).
- hotSpotY
- Coordenada y de la zona activa (relativa a la parte superior izquierda de la imagen).
wxCursor()
wxCursor::wxCursor(wxStockCursor cursorId)
Construye un cursor utilizando un identificador de cursor.
Parámetros
- cursorId
- Un identificador de cursor de stock. Ver wxStockCursor.
wxCursor()
wxCursor::wxCursor(const wxImage & image)
Construye un cursor a partir de una wxImage.
Si el cursor es monocromo en la plataforma actual, los colores con los elementos RGB todos mayores que 127 estarán en primer plano, los colores menores que este fondo. La máscara (si existe) se utilizará para especificar el área transparente.
En wxMSW el primer plano será blanco y el fondo negro. Si el cursor es mayor de 32x32 se redimensiona.
En wxGTK se soportan cursores de color y canal alfa (a partir de GTK+ 2.2). En caso contrario, se utilizarán los dos colores más frecuentes para el primer plano y el fondo. En cualquier caso, el cursor se mostrará al tamaño de la imagen.
Bajo wxMac (Cocoa), se soportan cursores grandes.
Hay que tener en cuenta que la imagen puede definir el punto caliente del cursor. Para establecerlo se necesita usar wxImage::SetOption() con wxIMAGE_OPTION_CUR_HOTSPOT_X o wxIMAGE_OPTION_CUR_HOTSPOT_Y, p.e.
image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hotSpotX); image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hotSpotY);
wxCursor()
wxCursor::wxCursor(const char *const * xpmData)
Construye un cursor a partir de datos XPM.
En las versiones de wxWidgets hasta la 3.1.6 la construcción de wxCursor a partir de datos XPM utilizaba implícitamente el constructor wxImage a partir de datos XPM y el constructor wxCursor a partir de wxImage. Desde 3.1.6 esta sobrecarga del constructor está disponible para permitir que la construcción de wxCursor desde XPM siga funcionando, aunque el constructor wxImage desde XPM sea ahora explícito.
wxCursor()
wxCursor::wxCursor(const wxCursor & cursor)
Constructor de copia, utiliza el conteo de referencias.
Parámetros
- cursor
- Puntero o referencia a un cursor a copiar.
~wxCursor()
virtual wxCursor::~wxCursor()
Destruye el cursor.
Ver destrucción de objetos contados por referencia para más información.
Un cursor puede ser reutilizado para más de una ventana, y no se destruye cuando se destruye la ventana. wxWidgets destruye todos los cursores al salir de la aplicación, aunque es mejor limpiarlos explícitamente.
GetHotSpot()
wxPoint wxCursor::GetHotSpot() const
Devuelve las coordenadas del punto caliente del cursor.
El punto caliente es el punto en el que se considera que se encuentra el ratón cuando se utiliza este cursor.
Este método actualmente solo está implementado en wxMSW y wxGTK2+ y simplemente devuelve wxDefaultPosition en los otros ports.
IsOk()
virtual bool wxCursor::IsOk() const
Devuelve true si los datos del cursor están presentes.
Operadores
operator=()
wxCursor& wxCursor::operator=(const wxCursor & cursor)
Operador de asignación, utilizando el cómputo de referencias.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxObject y wxGDIObject.