Clase wxPen
Una pluma es una herramienta de dibujo para trazar contornos.
Jerarquía:

Sirve para trazar líneas y pintar el contorno de rectángulos, elipses, etc. Tiene un color, una anchura y un estilo.
Nota: En una pantalla monocroma, wxWidgets muestra todos los lápices que no son blancos como negros. No inicializar los objetos en la pila antes de que comience el programa, ya que otras estructuras necesarias pueden no haber sido configuradas todavía. En su lugar, definir punteros globales a los objetos y créelos en wxApp::OnInit() o cuando sea necesario.
Una aplicación puede desear crear dinámicamente plumas con diferentes características, y existe el consiguiente peligro de que se cree un gran número de ellos duplicados. Por lo tanto, una aplicación puede desear obtener un puntero a una pluma utilizando la lista global de plumas wxThePenList, y llamando a la función miembro wxPenList::FindOrCreatePen(). Ver wxPenList para más información.
Esta clase utiliza internamente el recuento de referencias y la copia en escritura para que las asignaciones entre dos instancias de esta clase sean muy baratas. Por lo tanto, se pueden utilizar objetos reales en lugar de punteros sin problemas de eficiencia. Si se cambia una instancia de esta clase, creará sus propios datos internamente para que otras instancias, que previamente compartieron los datos usando el conteo de referencias, no se vean afectadas.
Objetos y punteros predefinidos
- wxNullPen: Una pluma vacía. wxPen::IsOk() siempre retorna false para este objeto.
- wxBLACK_DASHED_PEN: Pluma negra discontinuo. Excepto por el color y por el wxPENSTYLE_SHORT_DASH tiene todos los atributos estándar (ancho de 1 píxel, estilo wxCAP_ROUND, etc...).
- wxBLACK_PEN: Pluma negra.
- wxBLUE_PEN: Pluma azul.
- wxCYAN_PEN: Pluma cian.
- wxGREEN_PEN: Pluma verde.
- wxYELLOW_PEN: Pluma amarilla.
- wxGREY_PEN: Pluma gris.
- wxLIGHT_GREY_PEN: Pluma gris claro.
- wxMEDIUM_GREY_PEN: Pluma gris medio.
- wxRED_PEN: Pluma roja.
- wxTRANSPARENT_PEN: Pluma transparente.
- wxWHITE_PEN: Pluma blanca.
Salvo en el caso de wxBLACK_DASHED_PEN, todas las plumas tienen todos los atributos estándar (anchura de 1 píxel, estilos wxPENSTYLE_SOLID y wxCAP_ROUND, etc...).
Funciones miembro
wxPen()
wxPen::wxPen()
Constructor por defecto.
La pluma no se inicializará y IsOk() devolverá false.
wxPen()
wxPen::wxPen(const wxPenInfo & info)
Crea un objeto pluma utilizando la descripción de pluma especificada.
wxPen()
wxPen::wxPen( const wxColour & colour, int width = 1, wxPenStyle style = wxPENSTYLE_SOLID )
Construye una pluma a partir de un objeto de color, un ancho de pluma y un estilo.
Parámetros
- colour
- Un objeto de color.
- width
- Anchura de la pluma. En Windows, el ancho de la pluma no puede ser mayor que 1 si el estilo es wxPENSTYLE_DOT, wxPENSTYLE_LONG_DASH, wxPENSTYLE_SHORT_DASH, wxPENSTYLE_DOT_DASH, o wxPENSTYLE_USER_DASH.
- style
- El estilo puede ser uno de los valores de wxPenStyle.
Observaciones
Diferentes versiones de Windows y diferentes versiones de otras plataformas soportan subconjuntos muy diferentes de los estilos anteriores, así que hay que tener cuidado.
wxPen()
wxPen::wxPen( const wxBitmap & stipple, int width )
Crea una pluma punteada a partir de un mapa de bits punteado y una anchura.
Parámetros
- stipple
- Mapa de bits stipple.
- width
- Anchura de la pluma. En Windows, el ancho de la pluma no puede ser mayor que 1 si el estilo es wxPENSTYLE_DOT, wxPENSTYLE_LONG_DASH, wxPENSTYLE_SHORT_DASH, wxPENSTYLE_DOT_DASH, o wxPENSTYLE_USER_DASH.
Disponibilidad: sólo disponible para los ports wxMSW, wxOSX/Cocoa.
wxPen()
wxPen::wxPen(const wxPen & pen)
Constructor de copia, utiliza Reference Counting.
Parámetros
- pen
- Un puntero o referencia a un bolígrafo para copiar.
~wxPen()
virtual wxPen::~wxPen()
Destructor.
Ver también el tema de destrucción de objetos contados por referencia
Observaciones
Aunque todos las plumas restantes se borran cuando la aplicación sale, la aplicación debería intentar limpiar todas las plumas por sí misma. Esto se debe a que wxWidgets no puede saber si un puntero al objeto pluma está almacenado en una estructura de datos de la aplicación, y existe el riesgo de un doble borrado.
GetCap()
virtual wxPenCap wxPen::GetCap() const
Devuelve el estilo del extremo del trazado de la pluma, que puede ser uno de wxCAP_ROUND, wxCAP_PROJECTING y wxCAP_BUTT.
El valor predeterminado es wxCAP_ROUND.
GetColour()
virtual wxColour wxPen::GetColour() const
Devuelve una referencia al color de la pluma.
GetDashes()
virtual int wxPen::GetDashes(wxDash ** dashes) const
Obtiene una matriz de guiones (definidos como char en X, DWORD en Windows).
dashes es un puntero a la matriz interna. No desasignar ni almacenar este puntero.
Valor de retorno
El número de guiones asociados a este lápiz.
GetJoin()
virtual wxPenJoin wxPen::GetJoin() const
Devuelve el estilo de unión de la pluma, que puede ser uno de wxJOIN_BEVEL, wxJOIN_ROUND y wxJOIN_MITER.
Por defecto es wxJOIN_ROUND.
GetQuality()
wxPenQuality wxPen::GetQuality() const
Devuelve la calidad de la pluma.
El valor por defecto es wxPEN_QUALITY_DEFAULT.
GetStipple()
virtual wxBitmap* wxPen::GetStipple() const
Obtiene un puntero al mapa de bits del punteado.
GetStyle()
virtual wxPenStyle wxPen::GetStyle() const
Devuelve el estilo de la pluma.
GetWidth()
virtual int wxPen::GetWidth() const
Devuelve la anchura de la pluma.
IsNonTransparent()
bool wxPen::IsNonTransparent() const
Devuelve true si la pluma es una no transparente válida.
Este método devuelve true si el objeto pluma está inicializado y tiene un estilo no transparente. Hay que tener en cuenta que esto se debe utilizar en lugar de simplemente probar si GetStyle() devuelve un estilo diferente de wxPENSTYLE_TRANSPARENT si la pluma puede ser inválida como GetStyle() afirmaría en este caso.
IsOk()
virtual bool wxPen::IsOk() const
Devuelve true si la pluma está inicializada.
Hay que tener en cuenta que un objeto pluma no inicializado no puede ser consultado por ninguna de las propiedades de la pluma y todas las llamadas a los métodos de acceso en él dará lugar a un fallo de aserción.
IsTransparent()
bool wxPen::IsTransparent() const
Devuelve true si la pluma es transparente.
Una pluma transparente es simplemente una pluma con estilo wxPENSTYLE_TRANSPARENT.
Observese que esta función funciona incluso para plumas no inicializadas (para los que devuelve false) a diferencia de las pruebas de la forma GetStyle() == wxPENSTYLE_TRANSPARENT que afirmarían si el bolígrafo no es válido.
SetCap()
virtual void wxPen::SetCap(wxPenCap capStyle)
Establece el estilo del extremo de línea de la pluma, que puede ser uno de wxCAP_ROUND, wxCAP_PROJECTING y wxCAP_BUTT.
Por defecto es wxCAP_ROUND.
SetColour()
virtual void wxPen::SetColour( unsigned char red, unsigned char green, unsigned char blue )
El color del bolígrafo cambia al color indicado.
SetColour()
virtual void wxPen::SetColour(wxColour & colour)
El color del bolígrafo cambia al color indicado.
SetDashes()
virtual void wxPen::SetDashes( int n, const wxDash * dash )
Asocia un array de valores de guiones (definidos como char en X, DWORD en Windows) con la pluma.
wxPen no reasigna la matriz, pero la aplicación que llama tampoco debe reasignarla hasta que se elimine la pluma o se llame a esta función con una matriz NULL.
SetJoin()
virtual void wxPen::SetJoin(wxPenJoin join_style)
Establece el estilo de unión de la pluma, que puede ser uno de wxJOIN_BEVEL, wxJOIN_ROUND y wxJOIN_MITER.
Por defecto es wxJOIN_ROUND.
SetQuality()
void wxPen::SetQuality(wxPenQuality quality)
Establece la calidad de la pluma.
Seleccionar explícitamente una calidad de pluma baja puede ser útil en wxMSW si el rendimiento del dibujo es más importante que el aspecto exacto de las líneas dibujadas con esta pluma.
SetStipple()
virtual void wxPen::SetStipple(const wxBitmap & stipple)
Establece el mapa de bits para el punteado.
SetStyle()
virtual void wxPen::SetStyle(wxPenStyle style)
Establece el estilo de la pluma.
SetWidth()
virtual void wxPen::SetWidth(int width)
Establece la anchura de la pluma.
Operadores
operator!=()
bool wxPen::operator!=(const wxPen & pen) const
Operador de desigualdad.
operator=()
wxPen& wxPen::operator=(const wxPen & pen)
Operador de asignación, utilizando contador de referencias.
operator==()
bool wxPen::operator==(const wxPen & pen) const
Operador de igualdad.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxGDIObject y wxObject.