Combo-box with scrollbar as the COMBO-BOX in LibreOffice that have in the list of FONTS
- From: Mariano Gaudix <marianocordobario3 gmail com>
- To: gtk-app-devel-list gnome org
- Subject: Combo-box with scrollbar as the COMBO-BOX in LibreOffice that have in the list of FONTS
- Date: Sun, 17 Jun 2012 11:40:58 -0300
COMBOBOX with SCROLLBAR
Excuse me for my question .................... 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 ..........
GTK 3.0 have not a COMBO-BOX with scrollbar ................... You
.. I could give an example of CODE written in GTK 3.0 or VALA (gtk) or a
PyGtk 3.0 . a example COMBO-BOX with SCROLLBAR ......... or spend a
link of a website , where I can get an example of COMBO-BOX with
SCROLLBAR ....
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.
I show . 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 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 *vbox2 ;
GtkWidget *vbox11;
GtkWidget *fixed;
GtkWidget *buttonf;
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);
/* This is the scrolled window to put the List widget inside */
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);
////////// ..............CONTENIDO DE NOTEBOOK .........//////
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, "Cebt OS");
add_to_list(list, "Pardus");
add_to_list(list, "Sabayon");
////////////////////////////////////////////////////////////////////////
///////////////////////// 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), 530, 550);
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);
vbox2 =gtk_vbox_new(FALSE, 0);
gtk_widget_show_all(vbox2);
gtk_container_add(GTK_CONTAINER(window), vbox2);
vbox11 = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox2), vbox11 , FALSE, FALSE, 0);
fixed = gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(vbox11), fixed);
buttonf = gtk_toggle_button_new_with_label("Buttonf");
gtk_widget_set_size_request(buttonf, 80, 35);
gtk_fixed_put(GTK_FIXED(fixed), buttonf, 30, 0);
////////////////////////////// TEXTO
///////////////////////////////////////////////
vboxtext = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(vbox2), vboxtext);
gtk_widget_set_size_request(vboxtext, 400, 400);
viewarea=gtk_scrolled_window_new(NULL,NULL);
gtk_box_pack_start(GTK_BOX(vboxtext),viewarea,TRUE,TRUE,0);
gtk_widget_show(viewarea);
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);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
http://fotos.subefotos.com/99fc8a169bccf1ec0d64e6f20f28bceao.png
http://fotos.subefotos.com/2bc5cf1b09be61059294ea212bf6f5d8o.png
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]