Estando todavia de vacaciones, lo unico que he hecho algo con la computadora,
a sido bajarme el codigo fuente de las GTK2.4 y meterlas en la Fedora Core1,
fue el camino mas simple y sencillo.
Asi, que una vez teniendo las GTK, lo siguiente fue coger el codigo que
funciona perfectamente en Windows....
..... por fin esta ya la sincronizacion entre los distintos sistemas
operativos , corriendo con GTK 2.4, tanto en sistemas windows como
en sistemas GNU/Linux.
¿ Os acordais sobre unos post en este misma bitácora sobre GNU/Make ?
Solamente quedaba una unica prueba, que era demostrar que sin
tocar una linea de codigo, esto tiraba para adelante...
Bien, gracias a ello, pasar TODO T-Gtk de un sistema a otro
me a costado 1 minuto.
AHHHH!! que me da argo!! Eduardo.... ;-)
Si señores, por fin he conseguido que la compilacion y creacion de distintas
librerias sea tan simple como escribir: make.
Pero lo más fácil es que esto sirve para los sistemas actuales, Windows o GNU,
que son los que estan siendos probados.
La verdad es que hacia tiempo que no me lo pasaba tambien programando y
aprendiendo, que es lo unico que a mi me gusta esto de la programacion.
Todo ello, es que hasta ahora habiamos estado programando sobre un
Windows XP y Windows 2000 los widgets que trae solamente GTK 2.4, tanto que
mi amigo Joaquim se cree que corre en GNU/Linux por que se lo digo yo, el
solo usa el Windows de momento.
Ya corre T-Gtk sobre GNU/Linux sobre GTK 2.4.0
Asi, que tenemos por el momento corriendo T-Gtk/[x]Harbour sobre:
- Windows XP
- Windows 2000
- GNU/Linux
Saludos , desde mi relax, no tanto pero en fin....
Adjunto imagen sobre como queda bajo GNU/Linux
Ahora ya tenemos en T-Gtk todo la implementacion completa de las toolbars.
Pues solamente me quedaba pendiente el tema de las toolradiobutton a nivel de POO y ahora doy por finalizado el tema, toca documentar el tema en POO, y me dedicare a otra cosa, mariposa....
La implementacion , pues la que desde un principio se dijo:
- Nativamente, puro codigo a base a funciones.
- Usando gClass, la jerarquia de clases de T-Gtk.
- Usando directamente Glade.
- Mezclandolo todo ello ;-)
Dejo el codigo fuente y las imagenes para que veais la sencillez:
#include "gclass.ch"
Function Main()
Local oWindow, oToolBar, oToolButton, oBoxV, oRadio1, oRadio2, oRadio3
DEFINE WINDOW oWindow TITLE "T-GTK Toolbar Example POO"
DEFINE BOX oBoxV VERTICAL OF oWindow
DEFINE TOOLBAR oToolBar OF oBoxV
DEFINE TOOLBUTTON oToolButton ;
TEXT "ICONS";
STOCK_ID GTK_STOCK_STOP ;
ACTION oToolBar:SetStyle( GTK_TOOLBAR_ICONS );
OF oToolBar
DEFINE TOOLBUTTON oToolButton ;
TEXT "TEXT";
STOCK_ID GTK_STOCK_EXECUTE ;
ACTION oToolBar:SetStyle( GTK_TOOLBAR_TEXT );
OF oToolBar
DEFINE TOOLBUTTON oToolButton ;
TEXT "BOTH";
STOCK_ID GTK_STOCK_CDROM ;
ACTION oToolBar:SetStyle( GTK_TOOLBAR_BOTH);
OF oToolBar
DEFINE TOOLBUTTON oToolButton ;
TEXT "BOTH_HORIZ";
STOCK_ID GTK_STOCK_HOME ;
ACTION oToolBar:SetStyle( GTK_TOOLBAR_BOTH_HORIZ );
OF oToolBar
DEFINE TOOL SEPARATOR OF oToolBar
DEFINE TOOLRADIO oRadio1 TEXT "Radio 1" ;
STOCK_ID GTK_STOCK_ZOOM_100 ;
ACTION MsgInfo( "Radio 1","HOLA" );
OF oToolBar
DEFINE TOOLRADIO oRadio2 ;
FROM STOCK GTK_STOCK_ZOOM_IN ;
GROUP oRadio1;
ACTION MsgInfo( "Radio 2","HOLA" );
OF oToolBar ;
ACTIVED
DEFINE TOOLRADIO oRadio2 TEXT "Radio 3" ;
STOCK_ID GTK_STOCK_ZOOM_OUT ;
GROUP oRadio1;
ACTION MsgInfo( "Radio 3","HOLA" );
OF oToolBar
DEFINE TOOL SEPARATOR EXPAND OF oToolBar
DEFINE TOOLTOGGLE oToolButton ;
TEXT "Al final Toggle";
STOCK_ID GTK_STOCK_HOME ;
ACTION MsgInfo( "HOLA","HOLA" );
ACTIVED;
OF oToolBar
ACTIVATE WINDOW oWindow
Return NIL
Este codigo crea esto :
Y claro, pulsando simplemente el toolbutton de 'ICONS', obtenemos esto otro!:
El uso combinado de T-Gtk + POO + Glade , hace la vida mas simple
para el programador.
Por fin es posible usar el diseñador glade en toda su potencia y a traves de POO!!
Hoy he tenido 5 minutos, no he necesitado mas, para dotar a las clases GWindow y GButton
de usar conjuntamente el diseño del glade con la creacion del objeto y su señales.
Pongo un ejemplo sencillo, de la creacion de una ventana y un button , nada mas,
y la conexion de la action del boton.
Codigo fuente
Function main( )
Local cResource, window, oWnd, oBtn
SET RESOURCES cResource FROM FILE "example.glade"
DEFINE WINDOW oWnd ID "window1" RESOURCE cResource
DEFINE BUTTON oBtn ID "button1" RESOURCE cResource ACTION Paso( "Se dispara" )
ACTIVATE WINDOW oWnd
Return NIL
Static Function Paso( cCadena )
MsgBox( "Evento desde buton de glade "+ cCadena , GTK_MSGBOX_OK, GTK_MSGBOX_QUESTION )
return nil
El titulo de la ventana, etiqueta del button , como debe empaquetarse, como
se debe comportar la ventana, si tiene icono o no, todo eso se hace directamente con Glade, en codigo solamente activaremos las señales de los widgets que hemos creado en glade.
Si en el caso de que queramos poner una imagen, la ponemos en Glade, y en nuestro codigo ni tan siquiera debemos preocuparnos de ello, ni codificar nada de nada.
¿ No es maravilloso ?
No se, siempre he pensado que el programar un IDE tipo Xailer me supera , ufff!!
menudo curro, asi que lo mas fácil es dejar que lo haga uno especializado,
como Glade ;-)
Cada dia estoy mas cerca de poder cumplir mi sueño, el poder realizar una
aplicacion multiplataforma y ahora con glade, el asunto cada dia es mas
sencillo.
El camino esta echado, ahora simplemente falta asfaltarlo, y dotarle de muchos
mas widgets.
No creo que se pueda superar esta sencillez, te reto a ello ;-)
Saludos.