Re: Need help with GtkComboBoxEntry set_active selection



Hi Dru,

On Mon, 2005-03-21 at 00:57 +1200, Dru wrote:
Hello. I'm trying to make a GtkComboBoxEntry show what item you have 
currently selected in its popup list
and I'm not having much luck. The problem is the list is not showing 
what your current selection is.  It
also doesnt scroll to your current selection is, so if you have a large 
list in a combobox and want to select
the next item in a list its a real pain for the user.

heres a screen shot.
http://www.treshna.com/~andru/gtkcomboentry.png

Does anyone know of a way I can force highlighting in GtkComboBox? Is it 
possible to extract the table_view variable
from the GtkCombo? Maybe that would allow me to force selection of the 
cell i want.  I'm just not sure on the
approach to solving this.  If someone knows of an app that uses 
GtkComboBoxEntry effectivily let me know, maybe
that code could help me out a bit.

This example shows the behaviour you're looking for - not exactly but
it's close - with no need for an special configuration.

It always shows the selected item centered on the combo, just using
gtk_combo_box_new_text() on the combo box construction.

May be it could help you.

// save as test.c. 
// compile with:
// gcc `pkg-config --cflags --libs gtk+-2.0` test.c -o test 

#include <gtk/gtk.h>

int
main (int argc, char **argv)
{
  GtkWidget *window;
  GtkWidget *vbox;
  GtkWidget *combo;

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

  vbox = gtk_vbox_new (FALSE, 0);
  gtk_widget_show (vbox);
  gtk_container_add (GTK_CONTAINER (window), vbox);

  combo = gtk_combo_box_new_text ();
  gtk_widget_show (combo);
  gtk_box_pack_start (GTK_BOX (vbox), combo, FALSE, FALSE, 0);

 // sorry for the long list but is needed when testing
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "one");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "two");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "three");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "four");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "five");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "six");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "seven");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "eight");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "nine");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "ten");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "eleven");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "twelve");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "q");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "w");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "e");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "r");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "t");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "y");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "u");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "i");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "o");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "p");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "a");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "s");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "d");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "f");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "g");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "h");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "j");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "k");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "l");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "z");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "x");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "c");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "v");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "b");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "n");
 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "m");

  g_signal_connect ((gpointer) window, "destroy",
                    G_CALLBACK (gtk_main_quit),
                    NULL);

  gtk_widget_show (window);

  gtk_main ();
  return 0;
}

-- 
Iago Rubio



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