[gnome-hispano] Manipular los BOTONES de la VENTANA en GTK 3.0




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;
}
























[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]