Estoy tratando de cambiar el color del texto de un objeto SAY o BUTTOM, pero no hace nada.
Consulta ¿se puede hacer? ¿Qué estaré haciendo mal?
Se agradece cualquier ayuda.
DEFINE WINDOW oWnd_Principal TITLE hb_strtoutf8(cTitulo) SIZE 1024, 690
DEFINE FONT oFnt1 NAME "helvetica bold italic 130"
@ 36, 9 SAY oCaja PROMPT "CAJA "+alltrim(str(ncajax,2,0)) OF oWnd_Principal SIZE 800, 230 FONT oFnt1
@60,44 BUTTON oBtn PROMPT "Continuar" OF oWnd_Principal SIZE 120, nAltoLetra ACTION ( fRestauraPantallaPrincipal(oBtn), Pos_000() )
gtk_widget_modify_text(oCaja:hWnd)
gtk_widget_modify_text(oBtn:hWnd)
ACTIVATE WINDOW oWnd_Principal
#IfDef __FIVELINUX__
#pragma BEGINDUMP
#include <gtk/gtk.h>
#include "hbapi.h"
HB_FUNC( GTK_WIDGET_MODIFY_TEXT )
{
GdkColor color = { 0, 0, 0, 27500 };
gtk_widget_modify_text(( GtkWidget * ) hb_parnl( 1 ), GTK_STATE_NORMAL, &color);
gtk_widget_modify_text(( GtkWidget * ) hb_parnl( 1 ), GTK_STATE_ACTIVE, &color);
gtk_widget_modify_text(( GtkWidget * ) hb_parnl( 1 ), GTK_STATE_PRELIGHT, &color);
gtk_widget_modify_text(( GtkWidget * ) hb_parnl( 1 ), GTK_STATE_SELECTED, &color);
}
#pragma ENDDUMP
#Endif
Usar GTK con FiveLinux
Re: Usar GTK con FiveLinux
En T-Gtk disponemos de una función para ello, quizás la puedas adaptar a FiveLinux.
Puedes ver un ejemplo de aplicación ;
http://www.gtxbase.org/devel/filedetail ... uttons.prg
Al ser T-GTK un proyecto libre, puedes coger el código que necesites para adaptarlo a Fivelinux.
Miraté el código de la clase gButton.prg e intenta adaptarlo;
http://www.gtxbase.org/devel/filedetail ... button.prg
Puedes ver un ejemplo de aplicación ;
http://www.gtxbase.org/devel/filedetail ... uttons.prg
Code: Select all
// Funcion generica que cambia el color de un widget
/*
STATE_NORMAL # El estado durante la operacin normal
STATE_ACTIVE # El control est�activado, como cuando se pulsa un botn
STATE_PRELIGHT # El puntero del ratn est�sobre el control
STATE_SELECTED # El control est�seleccionado
STATE_INSENSITIVE # El control est�desactivado
*/
HB_FUNC( __GSTYLE )
{
GtkWidget * widget = GTK_WIDGET( hb_parptr( 2 ) );
gtk_widget_ensure_style( widget ); // Aseguramos que el Widget tengo el estilo
GtkStyle* newstyle; // Estilo a crear
GdkColor color;
int component = hb_parni( 3 ); // sobre que actuar
int iState = hb_parni( 4 ); // Estado
gdk_color_parse( hb_parc(1), &color);
newstyle = gtk_style_copy( gtk_widget_get_style( widget ) ); // Copiamos el actual
if (component & FGCOLOR)
newstyle->fg[iState] = color;
if (component & BGCOLOR)
newstyle->bg[iState] = color;
if (component & BASECOLOR)
newstyle->base[iState] = color;
if (component & TEXTCOLOR)
newstyle->text[iState] = color;
gtk_widget_set_style( widget, newstyle ); // Y se lo aplicamos
}
Miraté el código de la clase gButton.prg e intenta adaptarlo;
http://www.gtxbase.org/devel/filedetail ... button.prg
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Re: Usar GTK con FiveLinux
Ya lo solucione:
fLabel_Cambio_Color(oCaja:hWnd, 3);
HB_FUNC( FLABEL_CAMBIO_COLOR)
{
GdkColor tRojo = {0, 0xffff, 0x0000, 0x0000};
GdkColor tVerde = {0, 0x0000, 0xffff, 0x0000};
GdkColor tAzul = {0, 0x0000, 0x0000, 0xffff};
GdkColor tColor;
if (hb_parnl(2) == 1) {
tColor = tRojo;
} else if (hb_parnl(2) == 2) {
tColor = tVerde;
} else {
tColor = tAzul;
};
gtk_widget_modify_fg(( GtkWidget * ) hb_parnl( 1 ), GTK_STATE_NORMAL, &tColor);
}
Saludos cordiales,
fLabel_Cambio_Color(oCaja:hWnd, 3);
HB_FUNC( FLABEL_CAMBIO_COLOR)
{
GdkColor tRojo = {0, 0xffff, 0x0000, 0x0000};
GdkColor tVerde = {0, 0x0000, 0xffff, 0x0000};
GdkColor tAzul = {0, 0x0000, 0x0000, 0xffff};
GdkColor tColor;
if (hb_parnl(2) == 1) {
tColor = tRojo;
} else if (hb_parnl(2) == 2) {
tColor = tVerde;
} else {
tColor = tAzul;
};
gtk_widget_modify_fg(( GtkWidget * ) hb_parnl( 1 ), GTK_STATE_NORMAL, &tColor);
}
Saludos cordiales,
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Usar GTK con FiveLinux
Jorge,
Puedes ampliarlo facilmente para que admita cualquier color
Puedes ampliarlo facilmente para que admita cualquier color
Code: Select all
fLabel_Cambio_Color( oCaja:hWnd, 10, 20, 30 )
HB_FUNC( FLABEL_CAMBIO_COLOR )
{
GdkColor color = { 0, hb_parnl( 2 ), hb_parnl( 3 ), hb_parnl( 4 ) };
gtk_widget_modify_fg( ( GtkWidget * ) hb_parnl( 1 ), GTK_STATE_NORMAL, &color );
}