http://fotos.subefotos.com/db2e5a8be0a21c26f620bd4adde20c5fo.png
2012/6/22 Mariano Gaudix <marianocordobar...@gmail.com> > In the POPUP MENU and COMBOBOX ........... has these effects > ....................... > > If you activate a combo-box or menu ..........and then you clicked > the button maximize or minimize of the window ........ ... > > this always happens > > > 1). First .Clicking the maximize or minimize button of the window ... > . The COMBO-BOX is disabled ........... and her menu option . > > > 2)Second . Then recently . I can close the window. > > > > this always happens > > > > > > ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// > > View Example > > > > > /////////////////////////////////////////////////////////////////////////////////////////////////////////// > > > > > > /*******THE CODE********/ > #include <gtk/gtk.h> > > > > > int main(int argc, > char *argv[]) { > > > > GtkWidget *window; > > GtkWidget *combo; > GtkWidget *widget; > GtkWidget *vbox; > GtkWidget *hbox; > > gtk_init(&argc, &argv); > > window = gtk_window_new(GTK_WINDOW_TOPLEVEL); > gtk_window_set_title(GTK_WINDOW(window), "BibMk"); > gtk_container_set_border_width(GTK_CONTAINER(window), 20); > > > g_signal_connect(window, "delete-event", > G_CALLBACK(gtk_main_quit), NULL); > > > > vbox = gtk_vbox_new(FALSE, 0); > hbox = gtk_vbox_new(FALSE, 0); > > > gtk_container_add(GTK_CONTAINER(window), hbox); > > > gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); > > > > > > combo = gtk_combo_box_text_new (); > > > gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(combo), NULL, " Loco "); > > > > gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT(combo) , " Book > "); > > > gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT(combo) , " > Ladron "); > > > gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT(combo) , " > Anibal Bigoton "); > > > gtk_widget_show(combo); > > > > > > gtk_box_pack_start(GTK_BOX(hbox), combo, TRUE, TRUE, 0); > > > > gtk_widget_show_all(window); > gtk_main(); > > > > > > > > > return 0; > } > > > > /*******CODE END**********/ > > > > > > > > ////////////////////////////////////////////////////////////////////////////////////////// > > /////////////////////////////////////////////////////////////////////////////////////////////////////// > > ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// > > > > I am creating a combo-box with scrollbar with GTK 3.0 and VALA (gtk) > ......... .as the COMBO-BOX in LibreOffice that have in the list of > FONTS. > > > > > I wrote an in GTK 3.0 widgets. > > If . I active a POPUP WINDOW (POPUP WINDOW=MENU ) with a > TOGGLEBUTTON... when you clicked the button to close the window. > > 1). First . The TOGGLEBUTTON is off . the POPUP WINDOW is > hidden . > 2) Then recently . I can close the window. > To here all works fine. > > > But I can not do the same with the buttons on the maximize and minimize > WINDOW ...... I must achieve the same effect as the widgets , POPUP MENU > and COMBO-BOX , with these events . > > > If I you can help , I'll be grateful . > > When , you have a time. you can constestarme. > > Best regards . Mariano. > > > > this is the code I've written in GTK 3.0. > > > > > ///////////////////////////////////////////////////////////////////////////// > > ////////////////////////////////////////////////////////////////////////////////////////////////// > > > > > > #include <gtk/gtk.h> > > > enum > { > LIST_ITEM = 0, > N_COLUMNS > }; > > > > > static void init_list(GtkWidget *list) > > { > > GtkCellRenderer *renderer; > GtkTreeViewColumn *column; > GtkListStore *store; > > renderer = gtk_cell_renderer_text_new(); > column = gtk_tree_view_column_new_with_attributes("List Items", > renderer, "text", LIST_ITEM, NULL); > gtk_tree_view_append_column(GTK_TREE_VIEW(list), column); > > store = gtk_list_store_new(N_COLUMNS, G_TYPE_STRING); > > gtk_tree_view_set_model(GTK_TREE_VIEW(list), > GTK_TREE_MODEL(store)); > > g_object_unref(store); > > } > > > > > static void add_to_list(GtkWidget *list, const gchar *str) > > { > GtkListStore *store; > GtkTreeIter iter; > > store = GTK_LIST_STORE(gtk_tree_view_get_model > (GTK_TREE_VIEW(list))); > > gtk_list_store_append(store, &iter); > gtk_list_store_set(store, &iter, LIST_ITEM, str, -1); > } > > > > > > > //////////////////////////////////////////////////////////////////////////////// > > static void text( GtkWidget *widget , GdkEventButton *event, gpointer > buttonf) > { > > gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(buttonf),FALSE); > > > } > > > > > > static void clicked1(GtkWindow *window, GdkEventButton *event, gpointer > buttonf) > { > > gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(buttonf),FALSE); > > > } > > > > static void loc1(GtkWindow *window, GdkEventButton *event, gpointer > buttonf) > > { > > > gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(buttonf),FALSE); > > > } > > > > > static void ponja2(GtkWindow *window, GdkEventButton *event, gpointer > buttonf) > > { > > gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(buttonf),FALSE); > > } > > > ///////////////////////////////////////////////////////////// > //////////////////////////////////////////////////////////// > > > > void activado(GtkWidget *widget, gpointer window3) > { > > if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) > > { > > > gtk_widget_hide(window3); > gtk_widget_show_all(window3); > > } > > else { > > gtk_window_iconify (GTK_WINDOW (window3) ); > gtk_widget_hide(window3); > > } > > > } > > > > > /////////////////////////////////////////////////////////////////////// > > > > > void ventana_p(GtkWindow *window, GdkEvent *event, gpointer window3 ) > > { > > int x, y; > char buf[10]; > x = event->configure.x; > y = event->configure.y; > sprintf(buf, "%d, %d", x, y); > gtk_window_set_title(window3, buf); > gtk_window_move ( GTK_WINDOW(window3), x+30, y+35 ); > > > > } > > ////////////////////////////////////////////////////////////////////////// > > > int main(int argc, char *argv[]) > > { > > GtkWidget *window; > GtkWidget *vbox1 ; > GtkWidget *vbox2; > GtkWidget *vbox3; > GtkWidget *fixed; > GtkWidget *buttonf; > GtkWidget *label2; > GtkWidget *arrow; > > > GtkWidget *vboxtext; > GtkWidget *viewarea; > > GtkWidget *textview; > GtkTextBuffer *buffer; > > > > > GtkWidget *window3; > GtkWidget *vboxw; > GtkWidget *vboxs; > GtkWidget *scrolled_window ; > > > GtkWidget *list; > GtkTreeSelection *selection; > GtkWidget *label; > > > > > gtk_init(&argc, &argv); > > > > > > ////////////////////////////// Ventana Popup / Window Popup > /////////////////////////////// > > > window3 = gtk_window_new(GTK_WINDOW_POPUP); > > > > > > > gtk_window_set_title(GTK_WINDOW(window3), "enter signal"); > gtk_widget_hide(window3); > > > > > vboxw = gtk_hbox_new(FALSE, 0); > > gtk_container_set_border_width (GTK_CONTAINER (vboxw), 3); > gtk_container_add(GTK_CONTAINER(window3), vboxw); > gtk_widget_show (vboxw); > > scrolled_window=gtk_scrolled_window_new(NULL, NULL); > > > > gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), > GTK_POLICY_AUTOMATIC, > GTK_POLICY_AUTOMATIC); > > > gtk_widget_set_size_request(scrolled_window,120, 300); > > > > gtk_box_pack_start(GTK_BOX(vboxw), scrolled_window , FALSE, FALSE, 0); > > gtk_widget_show(scrolled_window); > > > > > > > > vboxs = gtk_vbox_new(FALSE, 0); > > > > gtk_scrolled_window_add_with_viewport( > GTK_SCROLLED_WINDOW(scrolled_window),vboxs); > > > > list = gtk_tree_view_new(); > gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), FALSE); > > gtk_box_pack_start(GTK_BOX(vboxs), list, TRUE, TRUE, 0); > > > > init_list(list); > add_to_list(list, "Ubuntu"); > add_to_list(list, "Mandriva"); > add_to_list(list, "Fedora"); > add_to_list(list, "Debian"); > add_to_list(list, "Linux MInt"); > add_to_list(list, "Tuquito"); > add_to_list(list, "Pupix"); > add_to_list(list, "Open Suse"); > add_to_list(list, "Kubuntu"); > add_to_list(list, "Xubuntu"); > > add_to_list(list, "Trisquel"); > add_to_list(list, "Zorin"); > add_to_list(list, "Mageia"); > add_to_list(list, "Cent OS"); > add_to_list(list, "Pardus"); > add_to_list(list, "Sabayon"); > > add_to_list(list, "Dragora"); > add_to_list(list, "Goblin"); > add_to_list(list, "Linex"); > add_to_list(list, "Pro-linux"); > add_to_list(list, "Red Hat"); > > > //////////////////////////////////////////////////////////////////////// > ///////////////////////// Ventana Principal ////////////////////// > > > 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), 200, 200); > gtk_window_set_title(GTK_WINDOW(window), "Simple"); > > > gtk_window_set_transient_for(GTK_WINDOW (window3),GTK_WINDOW > (window)); > > > > > 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_grab_focus (window); > > > > > vbox1 =gtk_vbox_new(FALSE, 0); > gtk_widget_show_all(vbox1); > gtk_container_add(GTK_CONTAINER(window), vbox1); > > > > > vbox2 = gtk_vbox_new(FALSE, 0); > gtk_box_pack_start(GTK_BOX(vbox1), vbox2 , FALSE, FALSE, 0); > > > fixed = gtk_fixed_new(); > > gtk_container_add(GTK_CONTAINER(vbox2), fixed); > > > > > > buttonf = gtk_toggle_button_new(); > > > > > gtk_widget_set_size_request(buttonf, 128, 35); > > gtk_fixed_put(GTK_FIXED(fixed), buttonf, 29, 0); > > > vbox3 =gtk_hbox_new(FALSE, 0); > label2 = gtk_label_new("Buttonf"); > gtk_box_pack_start(GTK_BOX(vbox3),label2,TRUE,TRUE,2); > > gtk_container_add(GTK_CONTAINER(buttonf), vbox3); > > > > gtk_widget_show(label2); > > arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_IN ); > > gtk_box_pack_start(GTK_BOX(vbox3),arrow,FALSE,FALSE,2); > > ////////////////////////////// TEXTO > /////////////////////////////////////////////// > > vboxtext = gtk_vbox_new(FALSE, 0); > > > gtk_container_add(GTK_CONTAINER(vbox1), vboxtext); > > gtk_widget_set_size_request(vboxtext, 300, 300); > > viewarea=gtk_scrolled_window_new(NULL,NULL); > gtk_box_pack_start(GTK_BOX(vboxtext),viewarea,TRUE,TRUE,0); > gtk_widget_show(viewarea); > > > gtk_widget_add_events(GTK_WIDGET(textview), GDK_BUTTON_PRESS_MASK ); > > > > textview = gtk_text_view_new(); > > > gtk_container_set_border_width(GTK_CONTAINER( textview), 0); > > > gtk_container_add(GTK_CONTAINER(viewarea), textview); > > gtk_container_set_border_width(GTK_CONTAINER(viewarea), 2); > > > > gtk_widget_grab_focus( textview); > > > buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW( textview)); > > > > > ////////////////////////////////////////////////////////////////////////////////////////// > /////////////////////////////////// llamada de ventana > //////////////////////////////// > > g_signal_connect_swapped(window, "destroy",G_CALLBACK(gtk_main_quit), > window); > > > //////////////////////// toggle button llamadas ///////////////////// > > > g_signal_connect(G_OBJECT(window), "configure-event", > G_CALLBACK(ventana_p),window3); > > > > g_signal_connect(buttonf, "toggled", G_CALLBACK(activado), window3); > > > > g_signal_connect(G_OBJECT(window), "button-press-event", > G_CALLBACK(ponja2), buttonf); > > > > g_signal_connect(G_OBJECT(window), "focus-out-event", > G_CALLBACK(loc1), buttonf ); > > > > g_signal_connect (window, "delete_event", G_CALLBACK (clicked1), > buttonf); > > > > > g_signal_connect(G_OBJECT(textview), "button-press-event", > G_CALLBACK(text), buttonf); > > > > gtk_widget_show_all(window); > > > gtk_main(); > > > > return 0; > > > > } > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 2012/6/22 Tadej Borovšak <tadeb...@gmail.com> > >> Hello. >> >> > Hello ........How I can make the buttons are inactive , the buttons >> of >> > the window (Buttons : maximize , minimize , close ) or without focus >> when >> > the pointer is over them ? ................ >> > >> > I need to get the effect . Caso 2 . View image >> > >> > >> > http://fotos.subefotos.com/607c3fb8e19de4ed18357b85a33b3ab5o.png >> >> This is not something you could do with GTK+, since window decorations >> are usually handled by window manager. What window manager (desktop) are >> you using? Maybe it can be themed to behave this way? >> >> Cheers, >> Tadej >> >> >> -- >> Tadej Borovšak >> tadej.borov...@gmail.com >> tadeb...@gmail.com >> tadeboro.blogspot.com >> >> _______________________________________________ >> gtk-app-devel-list mailing list >> gtk-app-devel-list@gnome.org >> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list >> > > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list