Skip to content

Instantly share code, notes, and snippets.

@segphault
Created March 22, 2009 01:25
Show Gist options
  • Save segphault/83035 to your computer and use it in GitHub Desktop.
Save segphault/83035 to your computer and use it in GitHub Desktop.
Test of new entry widget features in GTK+ 2.16
/*
* Testing new GTK+ 2.16 features
* SegPhault (Ryan Paul) - 03/20/2009
*/
#include <gtk/gtk.h>
#include <glib/gprintf.h>
GtkWidget *entry;
GtkWidget *slider;
gboolean on_slider_adjust(GtkRange *range, GtkScrollType scroll,
gdouble value, gpointer userdata)
{
gtk_entry_set_progress_fraction(GTK_ENTRY(entry), value / 100.0);
return TRUE;
}
gboolean on_icon_press(GtkEntry *entry, GtkEntryIconPosition pos,
GdkEvent *event, gpointer userdata)
{
gtk_entry_set_icon_from_stock(GTK_ENTRY(entry),
GTK_ENTRY_ICON_SECONDARY,
GTK_STOCK_APPLY);
return TRUE;
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(win), "GTK+ 2.16 feature test");
g_signal_connect(GTK_OBJECT(win), "destroy",
G_CALLBACK(gtk_main_quit), NULL);
entry = gtk_entry_new();
g_signal_connect(GTK_OBJECT(entry), "icon-press",
G_CALLBACK(on_icon_press), NULL);
gtk_entry_set_text(GTK_ENTRY(entry), "This is a test");
gtk_entry_set_icon_from_stock(GTK_ENTRY(entry),
GTK_ENTRY_ICON_SECONDARY,
GTK_STOCK_ABOUT);
slider = gtk_hscale_new_with_range(0.0, 100.0, 1.0);
g_signal_connect(GTK_OBJECT(slider), "value-changed",
G_CALLBACK(on_slider_adjust), NULL);
GtkWidget *vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), slider, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(vbox), entry, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(win), vbox);
gtk_widget_show_all(win);
gtk_main();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment