Rafa,
Estuve revisando nuevamente la msgnoyes() para utilizar un booleano que defina el uso de lenguaje de marcas.
Disculpa que te moleste un poco con esto, pero como tiene que ver con la sintaxis me imagino que debe comentarse antes de actualizar el repositorio.
Realice los siguientes cambios:
Cambie el nombre de la funcion MsgNOYES a MsgYN para que luego en el PRG no obligar a cambiar nada. De manera que no hay efectos secundarios sobre los fuentes de los usuarios t-gtk.
en gclass.ch
#xcommand MsgNoYes( <cMessage> [, <cTitle> ] [ <lMarkup: MARKUP> ] ) =>;
MsgYN( <cMessage>,[ <cTitle> ], .F. [, <.lMarkup.> ] )
#xcommand MsgYesNo( <cMessage> [, <cTitle> ] [ <lMarkup: MARKUP> ] ) =>;
MsgYN( <cMessage>,[ <cTitle> ],.T.,[ <.lMarkup.> ] )
De esta manera, se puede ignorar el booleano que indica si es yes por defecto mediante el nombre de la funcion, y el uso de lenguaje de marca se definiria mediante la frase MARKUP
Entonces la sintaxis quedaria:
MsgYesNo( cMensaje, [cTitulo] [MARKUP] ) --- (Yes) por defecto.
MsgNoYes(cMensaje, [cTitulo] [MARKUP] ) --- (No) por defecto.
De estar de acuerdo, entonces procedo a hacer los cambios en las otras funciones (msginfo,msgstop, etc.)
Ejemplos:
MsgYesNo( "<b>YES</b> por Defecto, con <span foreground='blue'>lenguaje de marcas</span> " ,"titulo" MARKUP )
MsgYesNo( "<b>Mensaje</b> Yes por Defecto, sin lenguaje de marcas" )
MsgNoYes( "<b>NO</b> por Defecto ","Titulo")
MsgNoYes( "<b>NO</b> por Defecto con lenguaje de marcas","Titulo" MARKUP)
La funcion:
HB_FUNC( MSGYN ) // cMessage, cTitle, lResponse, lMarkup -> logical
{
GtkWidget *dialog;
gchar *msg = hb_parc( 1 );
gchar *title = hb_parc( 2 );
gboolean bresponse = hb_parl( 3 );
gboolean lmarkup = hb_parl( 4 );
/*
gchar *msg = g_convert( hb_parc(1), -1,"UTF-8","ISO-8859-1",
NULL,NULL,NULL );
gchar *title = g_convert( hb_parc(2), -1,"UTF-8","ISO-8859-1",
NULL,NULL,NULL );
*/
gint response;
dialog = gtk_message_dialog_new( NULL, GTK_DIALOG_MODAL,
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_YES_NO, msg );
gtk_window_set_title( GTK_WINDOW( dialog ), title );
gtk_window_set_position( GTK_WINDOW( dialog ), GTK_WIN_POS_CENTER );
gtk_window_set_type_hint( GTK_WINDOW( dialog ), GDK_WINDOW_TYPE_HINT_MENU );
if ( lmarkup ){
gtk_message_dialog_set_markup( GTK_MESSAGE_DIALOG( dialog ) , msg ); // Habilitando soporte de lenguaje de marcas
}
if ( bresponse ) {
gtk_dialog_set_default_response( GTK_DIALOG( dialog ), GTK_MSGBOX_YES );
}
response = gtk_dialog_run( GTK_DIALOG( dialog ) );
gtk_widget_destroy( dialog );
hb_retl( ( response == GTK_RESPONSE_YES) );
}
Saludos
Riztan
--
Riztan Gutierrez
Caracas - Venezuela.
.
(gcc+gtk) + (xharbour+tgtk) = entorno de desarrollo xbase multiplataforma y libre!.
.
_________________________
"Miremos más que somos padres de nuestro porvenir que no hijos de nuestro pasado." Marcial
Estuve revisando nuevamente la msgnoyes() para utilizar un booleano que defina el uso de lenguaje de marcas.
Disculpa que te moleste un poco con esto, pero como tiene que ver con la sintaxis me imagino que debe comentarse antes de actualizar el repositorio.
Realice los siguientes cambios:
Cambie el nombre de la funcion MsgNOYES a MsgYN para que luego en el PRG no obligar a cambiar nada. De manera que no hay efectos secundarios sobre los fuentes de los usuarios t-gtk.
en gclass.ch
#xcommand MsgNoYes( <cMessage> [, <cTitle> ] [ <lMarkup: MARKUP> ] ) =>;
MsgYN( <cMessage>,[ <cTitle> ], .F. [, <.lMarkup.> ] )
#xcommand MsgYesNo( <cMessage> [, <cTitle> ] [ <lMarkup: MARKUP> ] ) =>;
MsgYN( <cMessage>,[ <cTitle> ],.T.,[ <.lMarkup.> ] )
De esta manera, se puede ignorar el booleano que indica si es yes por defecto mediante el nombre de la funcion, y el uso de lenguaje de marca se definiria mediante la frase MARKUP
Entonces la sintaxis quedaria:
MsgYesNo( cMensaje, [cTitulo] [MARKUP] ) --- (Yes) por defecto.
MsgNoYes(cMensaje, [cTitulo] [MARKUP] ) --- (No) por defecto.
De estar de acuerdo, entonces procedo a hacer los cambios en las otras funciones (msginfo,msgstop, etc.)
Ejemplos:
MsgYesNo( "<b>YES</b> por Defecto, con <span foreground='blue'>lenguaje de marcas</span> " ,"titulo" MARKUP )
MsgYesNo( "<b>Mensaje</b> Yes por Defecto, sin lenguaje de marcas" )
MsgNoYes( "<b>NO</b> por Defecto ","Titulo")
MsgNoYes( "<b>NO</b> por Defecto con lenguaje de marcas","Titulo" MARKUP)
La funcion:
HB_FUNC( MSGYN ) // cMessage, cTitle, lResponse, lMarkup -> logical
{
GtkWidget *dialog;
gchar *msg = hb_parc( 1 );
gchar *title = hb_parc( 2 );
gboolean bresponse = hb_parl( 3 );
gboolean lmarkup = hb_parl( 4 );
/*
gchar *msg = g_convert( hb_parc(1), -1,"UTF-8","ISO-8859-1",
NULL,NULL,NULL );
gchar *title = g_convert( hb_parc(2), -1,"UTF-8","ISO-8859-1",
NULL,NULL,NULL );
*/
gint response;
dialog = gtk_message_dialog_new( NULL, GTK_DIALOG_MODAL,
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_YES_NO, msg );
gtk_window_set_title( GTK_WINDOW( dialog ), title );
gtk_window_set_position( GTK_WINDOW( dialog ), GTK_WIN_POS_CENTER );
gtk_window_set_type_hint( GTK_WINDOW( dialog ), GDK_WINDOW_TYPE_HINT_MENU );
if ( lmarkup ){
gtk_message_dialog_set_markup( GTK_MESSAGE_DIALOG( dialog ) , msg ); // Habilitando soporte de lenguaje de marcas
}
if ( bresponse ) {
gtk_dialog_set_default_response( GTK_DIALOG( dialog ), GTK_MSGBOX_YES );
}
response = gtk_dialog_run( GTK_DIALOG( dialog ) );
gtk_widget_destroy( dialog );
hb_retl( ( response == GTK_RESPONSE_YES) );
}
Saludos
Riztan
El 1 de octubre de 2008 9:47, Rafa Carmona <thefull_tgtk@...> escribió:
Correcto! Yo lo haría de esta manera sencilla.
Mi cuenta de sourceforge no puedo recuparla todavía, haber si miro
como puedo hacerlo.
Saludos
Rafa Carmona
--
Riztan Gutierrez
Caracas - Venezuela.
.
(gcc+gtk) + (xharbour+tgtk) = entorno de desarrollo xbase multiplataforma y libre!.
.
_________________________
"Miremos más que somos padres de nuestro porvenir que no hijos de nuestro pasado." Marcial