Manipular    los  BOTONES  de  la  VENTANA  en GTK 3.0


//////////////////////////////////////////////////////////////////////////////////////////////////////////


Disculpen  por la  pregunta   .

de  casualidad  no tienen   un  ejemplo  de   como   .Manipular  los
 botones    MAXIMIZAR  y  MINIMIZAR   de  la  VENTANA  en GTK 3.0.

Al botón maximizar lo  he  podido  manipular  .



Por  ejemplo  lo que hice es lo  siguiente   .

Ejemplo ;


Tengo dos  TOGGLEBUTTON     .   si activo un   TOGGLEBUTTON     al  hacer
clix  sobre el BOTON   CERRAR    lo que  sucede  es lo  siguiente

Primero :  al primer  Clix  se  desactiva  al  TOGGLEBUTTON

Segundo  :  al segundo   Clix . Recién se  cierra  la  ventana   .


Deseo hacer  lo mismo con los  botones  MAXIMIZAR  y MINIMIZAR  .  Pero no
 se como  hacerlo  .

De esta  manera  trato  de   imito  el efecto  de un MENU-POPUP  o
COMBO-BOX  .  Pero con  un  TOGGLEBUTTON



Estoy creando  un  WIDGET   con  una LISTA   de  FONTS  o estilos  de
 LETRAS    como el que  tiene  LIBREOFFICE  .  Es decir un COMBO-BOX  con
 SCROLLBAR .Pero utilizo una
WINDOW-POPUP   ubicada  debajo  de  un TOGGLEBUTTON   .





  Me podrían  hacer   el favor  de  pasar  un ejemplo  o tutorial   de
 como poder  manipular    los  botones    MAXIMIZAR  y  MINIMIZAR    .


  cuando tengan   tiempo    .  Pueden  pasarme     un tutorial  o algo  de
 código como ejemplo    .




Disculpa por la  molestia  .... les  deseo  mucha  suerte  Mariano




//////////////////////////////////////////////////////////////////////////////////////////////////////////

Les   paso  mi ejemplo  :






///////////////////////////////////////////////////////////////////////



#include <gtk/gtk.h>





static void loc1(GtkWindow *window, GdkEventButton *event, gpointer button2)

{

 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button2),FALSE);


}


////////////////////////////////////////////////////////////////////


static void loc2(GtkWindow *window, GdkEventButton *event, gpointer button1)

{


gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button1),FALSE);


}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

static void hide1(GtkWindow *window, GdkEventButton *event, gpointer
button1)
{



gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button1),FALSE);


}


////////////////////////////////////////////////////////////////////////////////////////


static void ponja2(GtkWindow *window, GdkEventButton *event, gpointer
button2)
{



gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button2),FALSE);


}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


static void ponja1(GtkWindow *window, GdkEventButton *event, gpointer
button1)
{



gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button1),FALSE);


}

///////////////////////////////////////////////////////////////////





static void clicked2(GtkWindow *window, GdkEventButton *event, gpointer
button2)
{



gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button2),FALSE);


}

//////////////////////////////////////////////////////////////////////////////////////


static void clicked1(GtkWindow *window, GdkEventButton *event, gpointer
button1)
{


gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button1),FALSE);


}

/////////////////////////////////////////////////////////////////////////////////////////////////////////

void ono2(GtkWindow *window,
      GdkEvent *event, gpointer  button2)
{


gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button2),FALSE);

}




///////////////////////////////////////////////



void ono(GtkWindow *window,
      GdkEvent *event, gpointer  button1)
{

gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button1),FALSE);

}





int main( int argc, char *argv[])
{

  GtkWidget *window;
  GtkWidget *table;

  GtkWidget *fixed;
  GtkWidget *button1;
   GtkWidget *image1;

  GtkWidget *button2;
  GtkWidget *image2;

  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
  gtk_window_set_default_size(GTK_WINDOW(window), 250, 250);
  gtk_window_set_title(GTK_WINDOW(window), "GtkFrame");

  gtk_container_set_border_width(GTK_CONTAINER(window), 10);





gtk_widget_add_events(GTK_WIDGET(window), GDK_BUTTON_PRESS_MASK );

gtk_widget_add_events(GTK_WIDGET(window),GDK_CONFIGURE );

gtk_widget_add_events(GTK_WIDGET(window),GDK_FOCUS_CHANGE_MASK );



gtk_widget_add_events(GTK_WIDGET(window), GDK_KEY_PRESS_MASK );





 fixed = gtk_fixed_new();

gtk_container_add(GTK_CONTAINER( window), fixed);




button1= gtk_toggle_button_new() ;

image1 = gtk_image_new_from_stock( GTK_STOCK_GOTO_LAST , 30);
gtk_button_set_image(GTK_BUTTON(button1),image1);


gtk_fixed_put(GTK_FIXED(fixed ), button1, 5, 5);



gtk_widget_set_size_request( button1 , 35, 35);


//////////////////////////////////////////////////////////////////////




button2= gtk_toggle_button_new() ;





image2 = gtk_image_new_from_stock( GTK_STOCK_GOTO_LAST , 30);
gtk_button_set_image(GTK_BUTTON(button2),image2);




gtk_fixed_put(GTK_FIXED(fixed ), button2, 45, 5);




gtk_widget_set_size_request( button2 , 35, 35);




/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


      g_signal_connect (window, "delete_event", G_CALLBACK (clicked1),
button1);


      g_signal_connect (window, "delete_event", G_CALLBACK (clicked2),
button2);



///////////////////////////////////////////////////////////////////////////////////////////////////////////


g_signal_connect(G_OBJECT(window), "configure-event",   G_CALLBACK(ono2),
button2);

 g_signal_connect(G_OBJECT(window), "configure-event",   G_CALLBACK(ono),
button1);



///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


 g_signal_connect(G_OBJECT(window), "button-press-event",
G_CALLBACK(ponja1), button1);


 g_signal_connect(G_OBJECT(window), "button-press-event",
G_CALLBACK(ponja2), button2);


///////////////////////////////////////////////////////////////////////



 g_signal_connect(G_OBJECT(window), "focus-out-event", G_CALLBACK(loc1),
button2 );


 g_signal_connect(G_OBJECT(window), "focus-out-event", G_CALLBACK(loc2),
button1);





  gtk_widget_show_all(window);

  gtk_main();

  return 0;
}
_______________________________________________
gnome-hispano-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gnome-hispano-list

Responder a