|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>Example
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
NAME="GENERATOR"
|
|
Packit Service |
fb6fa5 |
CONTENT="Modular DocBook HTML Stylesheet Version 1.79">
|
|
Packit Service |
fb6fa5 |
REL="HOME"
|
|
Packit Service |
fb6fa5 |
TITLE="GTK+ 2.0 Tutorial"
|
|
Packit Service |
fb6fa5 |
HREF="book1.html">
|
|
Packit Service |
fb6fa5 |
REL="UP"
|
|
Packit Service |
fb6fa5 |
TITLE="Range Widgets"
|
|
Packit Service |
fb6fa5 |
HREF="c633.html">
|
|
Packit Service |
fb6fa5 |
REL="PREVIOUS"
|
|
Packit Service |
fb6fa5 |
TITLE="Key and Mouse bindings"
|
|
Packit Service |
fb6fa5 |
HREF="x725.html">
|
|
Packit Service |
fb6fa5 |
REL="NEXT"
|
|
Packit Service |
fb6fa5 |
TITLE="Miscellaneous Widgets"
|
|
Packit Service |
fb6fa5 |
HREF="c753.html">
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
CLASS="SECT1"
|
|
Packit Service |
fb6fa5 |
BGCOLOR="#FFFFFF"
|
|
Packit Service |
fb6fa5 |
TEXT="#000000"
|
|
Packit Service |
fb6fa5 |
LINK="#0000FF"
|
|
Packit Service |
fb6fa5 |
VLINK="#840084"
|
|
Packit Service |
fb6fa5 |
ALINK="#0000FF"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
CLASS="NAVHEADER"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
SUMMARY="Header navigation table"
|
|
Packit Service |
fb6fa5 |
WIDTH="100%"
|
|
Packit Service |
fb6fa5 |
BORDER="0"
|
|
Packit Service |
fb6fa5 |
CELLPADDING="0"
|
|
Packit Service |
fb6fa5 |
CELLSPACING="0"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
COLSPAN="3"
|
|
Packit Service |
fb6fa5 |
ALIGN="center"
|
|
Packit Service |
fb6fa5 |
>GTK+ 2.0 Tutorial
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
WIDTH="10%"
|
|
Packit Service |
fb6fa5 |
ALIGN="left"
|
|
Packit Service |
fb6fa5 |
VALIGN="bottom"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
HREF="x725.html"
|
|
Packit Service |
fb6fa5 |
ACCESSKEY="P"
|
|
Packit Service |
fb6fa5 |
><<< Previous
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
WIDTH="80%"
|
|
Packit Service |
fb6fa5 |
ALIGN="center"
|
|
Packit Service |
fb6fa5 |
VALIGN="bottom"
|
|
Packit Service |
fb6fa5 |
>Range Widgets
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
WIDTH="10%"
|
|
Packit Service |
fb6fa5 |
ALIGN="right"
|
|
Packit Service |
fb6fa5 |
VALIGN="bottom"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
HREF="c753.html"
|
|
Packit Service |
fb6fa5 |
ACCESSKEY="N"
|
|
Packit Service |
fb6fa5 |
>Next >>>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
ALIGN="LEFT"
|
|
Packit Service |
fb6fa5 |
WIDTH="100%">
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
CLASS="SECT1"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
CLASS="SECT1"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
NAME="SEC-RANGEWIDGETSEXAMPLE"
|
|
Packit Service |
fb6fa5 |
>Example
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>This example is a somewhat modified version of the "range controls"
|
|
Packit Service |
fb6fa5 |
test from
|
|
Packit Service |
fb6fa5 |
CLASS="FILENAME"
|
|
Packit Service |
fb6fa5 |
>testgtk.c
|
|
Packit Service |
fb6fa5 |
>. It basically puts up a window with three
|
|
Packit Service |
fb6fa5 |
range widgets all connected to the same adjustment, and a couple of
|
|
Packit Service |
fb6fa5 |
controls for adjusting some of the parameters mentioned above and in
|
|
Packit Service |
fb6fa5 |
the section on adjustments, so you can see how they affect the way
|
|
Packit Service |
fb6fa5 |
these widgets work for the user.
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
CLASS="INLINEMEDIAOBJECT"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
SRC="images/rangewidgets.png">
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
BORDER="0"
|
|
Packit Service |
fb6fa5 |
BGCOLOR="#E0E0E0"
|
|
Packit Service |
fb6fa5 |
WIDTH="100%"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
CLASS="PROGRAMLISTING"
|
|
Packit Service |
fb6fa5 |
>
#include <gtk/gtk.h>
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
GtkWidget *hscale, *vscale;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void cb_pos_menu_select( GtkWidget *item,
|
|
Packit Service |
fb6fa5 |
GtkPositionType pos )
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* Set the value position on both scale widgets */
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_value_pos (GTK_SCALE (hscale), pos);
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_value_pos (GTK_SCALE (vscale), pos);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void cb_update_menu_select( GtkWidget *item,
|
|
Packit Service |
fb6fa5 |
GtkUpdateType policy )
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* Set the update policy for both scale widgets */
|
|
Packit Service |
fb6fa5 |
gtk_range_set_update_policy (GTK_RANGE (hscale), policy);
|
|
Packit Service |
fb6fa5 |
gtk_range_set_update_policy (GTK_RANGE (vscale), policy);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void cb_digits_scale( GtkAdjustment *adj )
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* Set the number of decimal places to which adj->value is rounded */
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_digits (GTK_SCALE (hscale), (gint) adj->value);
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_digits (GTK_SCALE (vscale), (gint) adj->value);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void cb_page_size( GtkAdjustment *get,
|
|
Packit Service |
fb6fa5 |
GtkAdjustment *set )
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* Set the page size and page increment size of the sample
|
|
Packit Service |
fb6fa5 |
* adjustment to the value specified by the "Page Size" scale */
|
|
Packit Service |
fb6fa5 |
set->page_size = get->value;
|
|
Packit Service |
fb6fa5 |
set->page_increment = get->value;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* This sets the adjustment and makes it emit the "changed" signal to
|
|
Packit Service |
fb6fa5 |
reconfigure all the widgets that are attached to this signal. */
|
|
Packit Service |
fb6fa5 |
gtk_adjustment_set_value (set, CLAMP (set->value,
|
|
Packit Service |
fb6fa5 |
set->lower,
|
|
Packit Service |
fb6fa5 |
(set->upper - set->page_size)));
|
|
Packit Service |
fb6fa5 |
g_signal_emit_by_name(set, "changed");
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void cb_draw_value( GtkToggleButton *button )
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
/* Turn the value display on the scale widgets off or on depending
|
|
Packit Service |
fb6fa5 |
* on the state of the checkbutton */
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_draw_value (GTK_SCALE (hscale), button->active);
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_draw_value (GTK_SCALE (vscale), button->active);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Convenience functions */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static GtkWidget *make_menu_item ( gchar *name,
|
|
Packit Service |
fb6fa5 |
GCallback callback,
|
|
Packit Service |
fb6fa5 |
gpointer data )
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkWidget *item;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
item = gtk_menu_item_new_with_label (name);
|
|
Packit Service |
fb6fa5 |
g_signal_connect (item, "activate",
|
|
Packit Service |
fb6fa5 |
callback, (gpointer) data);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (item);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return item;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void scale_set_default_values( GtkScale *scale )
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_range_set_update_policy (GTK_RANGE (scale),
|
|
Packit Service |
fb6fa5 |
GTK_UPDATE_CONTINUOUS);
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_digits (scale, 1);
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_value_pos (scale, GTK_POS_TOP);
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_draw_value (scale, TRUE);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* makes the sample window */
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
static void create_range_controls( void )
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
GtkWidget *window;
|
|
Packit Service |
fb6fa5 |
GtkWidget *box1, *box2, *box3;
|
|
Packit Service |
fb6fa5 |
GtkWidget *button;
|
|
Packit Service |
fb6fa5 |
GtkWidget *scrollbar;
|
|
Packit Service |
fb6fa5 |
GtkWidget *separator;
|
|
Packit Service |
fb6fa5 |
GtkWidget *opt, *menu, *item;
|
|
Packit Service |
fb6fa5 |
GtkWidget *label;
|
|
Packit Service |
fb6fa5 |
GtkWidget *scale;
|
|
Packit Service |
fb6fa5 |
GtkObject *adj1, *adj2;
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Standard window-creating stuff */
|
|
Packit Service |
fb6fa5 |
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
Packit Service |
fb6fa5 |
g_signal_connect (window, "destroy",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (gtk_main_quit),
|
|
Packit Service |
fb6fa5 |
NULL);
|
|
Packit Service |
fb6fa5 |
gtk_window_set_title (GTK_WINDOW (window), "range controls");
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
box1 = gtk_vbox_new (FALSE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_container_add (GTK_CONTAINER (window), box1);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (box1);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
box2 = gtk_hbox_new (FALSE, 10);
|
|
Packit Service |
fb6fa5 |
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (box2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* value, lower, upper, step_increment, page_increment, page_size */
|
|
Packit Service |
fb6fa5 |
/* Note that the page_size value only makes a difference for
|
|
Packit Service |
fb6fa5 |
* scrollbar widgets, and the highest value you'll get is actually
|
|
Packit Service |
fb6fa5 |
* (upper - page_size). */
|
|
Packit Service |
fb6fa5 |
adj1 = gtk_adjustment_new (0.0, 0.0, 101.0, 0.1, 1.0, 1.0);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
vscale = gtk_vscale_new (GTK_ADJUSTMENT (adj1));
|
|
Packit Service |
fb6fa5 |
scale_set_default_values (GTK_SCALE (vscale));
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), vscale, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (vscale);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
box3 = gtk_vbox_new (FALSE, 10);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), box3, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (box3);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Reuse the same adjustment */
|
|
Packit Service |
fb6fa5 |
hscale = gtk_hscale_new (GTK_ADJUSTMENT (adj1));
|
|
Packit Service |
fb6fa5 |
gtk_widget_set_size_request (GTK_WIDGET (hscale), 200, -1);
|
|
Packit Service |
fb6fa5 |
scale_set_default_values (GTK_SCALE (hscale));
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box3), hscale, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (hscale);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Reuse the same adjustment again */
|
|
Packit Service |
fb6fa5 |
scrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (adj1));
|
|
Packit Service |
fb6fa5 |
/* Notice how this causes the scales to always be updated
|
|
Packit Service |
fb6fa5 |
* continuously when the scrollbar is moved */
|
|
Packit Service |
fb6fa5 |
gtk_range_set_update_policy (GTK_RANGE (scrollbar),
|
|
Packit Service |
fb6fa5 |
GTK_UPDATE_CONTINUOUS);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box3), scrollbar, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (scrollbar);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
box2 = gtk_hbox_new (FALSE, 10);
|
|
Packit Service |
fb6fa5 |
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (box2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* A checkbutton to control whether the value is displayed or not */
|
|
Packit Service |
fb6fa5 |
button = gtk_check_button_new_with_label("Display value on scale widgets");
|
|
Packit Service |
fb6fa5 |
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
|
|
Packit Service |
fb6fa5 |
g_signal_connect (button, "toggled",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (cb_draw_value), NULL);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (button);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
box2 = gtk_hbox_new (FALSE, 10);
|
|
Packit Service |
fb6fa5 |
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* An option menu to change the position of the value */
|
|
Packit Service |
fb6fa5 |
label = gtk_label_new ("Scale Value Position:");
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), label, FALSE, FALSE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (label);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
opt = gtk_option_menu_new ();
|
|
Packit Service |
fb6fa5 |
menu = gtk_menu_new ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
item = make_menu_item ("Top",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (cb_pos_menu_select),
|
|
Packit Service |
fb6fa5 |
GINT_TO_POINTER (GTK_POS_TOP));
|
|
Packit Service |
fb6fa5 |
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
item = make_menu_item ("Bottom", G_CALLBACK (cb_pos_menu_select),
|
|
Packit Service |
fb6fa5 |
GINT_TO_POINTER (GTK_POS_BOTTOM));
|
|
Packit Service |
fb6fa5 |
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
item = make_menu_item ("Left", G_CALLBACK (cb_pos_menu_select),
|
|
Packit Service |
fb6fa5 |
GINT_TO_POINTER (GTK_POS_LEFT));
|
|
Packit Service |
fb6fa5 |
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
item = make_menu_item ("Right", G_CALLBACK (cb_pos_menu_select),
|
|
Packit Service |
fb6fa5 |
GINT_TO_POINTER (GTK_POS_RIGHT));
|
|
Packit Service |
fb6fa5 |
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_option_menu_set_menu (GTK_OPTION_MENU (opt), menu);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), opt, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (opt);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (box2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
box2 = gtk_hbox_new (FALSE, 10);
|
|
Packit Service |
fb6fa5 |
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* Yet another option menu, this time for the update policy of the
|
|
Packit Service |
fb6fa5 |
* scale widgets */
|
|
Packit Service |
fb6fa5 |
label = gtk_label_new ("Scale Update Policy:");
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), label, FALSE, FALSE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (label);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
opt = gtk_option_menu_new ();
|
|
Packit Service |
fb6fa5 |
menu = gtk_menu_new ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
item = make_menu_item ("Continuous",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (cb_update_menu_select),
|
|
Packit Service |
fb6fa5 |
GINT_TO_POINTER (GTK_UPDATE_CONTINUOUS));
|
|
Packit Service |
fb6fa5 |
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
item = make_menu_item ("Discontinuous",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (cb_update_menu_select),
|
|
Packit Service |
fb6fa5 |
GINT_TO_POINTER (GTK_UPDATE_DISCONTINUOUS));
|
|
Packit Service |
fb6fa5 |
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
item = make_menu_item ("Delayed",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (cb_update_menu_select),
|
|
Packit Service |
fb6fa5 |
GINT_TO_POINTER (GTK_UPDATE_DELAYED));
|
|
Packit Service |
fb6fa5 |
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_option_menu_set_menu (GTK_OPTION_MENU (opt), menu);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), opt, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (opt);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (box2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
box2 = gtk_hbox_new (FALSE, 10);
|
|
Packit Service |
fb6fa5 |
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* An HScale widget for adjusting the number of digits on the
|
|
Packit Service |
fb6fa5 |
* sample scales. */
|
|
Packit Service |
fb6fa5 |
label = gtk_label_new ("Scale Digits:");
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), label, FALSE, FALSE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (label);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
adj2 = gtk_adjustment_new (1.0, 0.0, 5.0, 1.0, 1.0, 0.0);
|
|
Packit Service |
fb6fa5 |
g_signal_connect (adj2, "value_changed",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (cb_digits_scale), NULL);
|
|
Packit Service |
fb6fa5 |
scale = gtk_hscale_new (GTK_ADJUSTMENT (adj2));
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_digits (GTK_SCALE (scale), 0);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (scale);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (box2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
box2 = gtk_hbox_new (FALSE, 10);
|
|
Packit Service |
fb6fa5 |
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
/* And, one last HScale widget for adjusting the page size of the
|
|
Packit Service |
fb6fa5 |
* scrollbar. */
|
|
Packit Service |
fb6fa5 |
label = gtk_label_new ("Scrollbar Page Size:");
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), label, FALSE, FALSE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (label);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
adj2 = gtk_adjustment_new (1.0, 1.0, 101.0, 1.0, 1.0, 0.0);
|
|
Packit Service |
fb6fa5 |
g_signal_connect (adj2, "value_changed",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (cb_page_size), (gpointer) adj1);
|
|
Packit Service |
fb6fa5 |
scale = gtk_hscale_new (GTK_ADJUSTMENT (adj2));
|
|
Packit Service |
fb6fa5 |
gtk_scale_set_digits (GTK_SCALE (scale), 0);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (scale);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (box2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
separator = gtk_hseparator_new ();
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (separator);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
box2 = gtk_vbox_new (FALSE, 10);
|
|
Packit Service |
fb6fa5 |
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (box2);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
button = gtk_button_new_with_label ("Quit");
|
|
Packit Service |
fb6fa5 |
g_signal_connect_swapped (button, "clicked",
|
|
Packit Service |
fb6fa5 |
G_CALLBACK (gtk_main_quit),
|
|
Packit Service |
fb6fa5 |
NULL);
|
|
Packit Service |
fb6fa5 |
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
|
Packit Service |
fb6fa5 |
gtk_widget_set_can_default (button, TRUE);
|
|
Packit Service |
fb6fa5 |
gtk_widget_grab_default (button);
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (button);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_widget_show (window);
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
int main( int argc,
|
|
Packit Service |
fb6fa5 |
char *argv[] )
|
|
Packit Service |
fb6fa5 |
{
|
|
Packit Service |
fb6fa5 |
gtk_init (&argc, &argv);
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
create_range_controls ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
gtk_main ();
|
|
Packit Service |
fb6fa5 |
|
|
Packit Service |
fb6fa5 |
return 0;
|
|
Packit Service |
fb6fa5 |
}
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>You will notice that the program does not call g_signal_connect()
|
|
Packit Service |
fb6fa5 |
for the "delete-event", but only for the "destroy" signal. This will
|
|
Packit Service |
fb6fa5 |
still perform the desired function, because an unhandled
|
|
Packit Service |
fb6fa5 |
"delete-event" will result in a "destroy" signal being given to the
|
|
Packit Service |
fb6fa5 |
window.
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
CLASS="NAVFOOTER"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
ALIGN="LEFT"
|
|
Packit Service |
fb6fa5 |
WIDTH="100%">
|
|
Packit Service |
fb6fa5 |
SUMMARY="Footer navigation table"
|
|
Packit Service |
fb6fa5 |
WIDTH="100%"
|
|
Packit Service |
fb6fa5 |
BORDER="0"
|
|
Packit Service |
fb6fa5 |
CELLPADDING="0"
|
|
Packit Service |
fb6fa5 |
CELLSPACING="0"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
WIDTH="33%"
|
|
Packit Service |
fb6fa5 |
ALIGN="left"
|
|
Packit Service |
fb6fa5 |
VALIGN="top"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
HREF="x725.html"
|
|
Packit Service |
fb6fa5 |
ACCESSKEY="P"
|
|
Packit Service |
fb6fa5 |
><<< Previous
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
WIDTH="34%"
|
|
Packit Service |
fb6fa5 |
ALIGN="center"
|
|
Packit Service |
fb6fa5 |
VALIGN="top"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
HREF="book1.html"
|
|
Packit Service |
fb6fa5 |
ACCESSKEY="H"
|
|
Packit Service |
fb6fa5 |
>Home
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
WIDTH="33%"
|
|
Packit Service |
fb6fa5 |
ALIGN="right"
|
|
Packit Service |
fb6fa5 |
VALIGN="top"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
HREF="c753.html"
|
|
Packit Service |
fb6fa5 |
ACCESSKEY="N"
|
|
Packit Service |
fb6fa5 |
>Next >>>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
WIDTH="33%"
|
|
Packit Service |
fb6fa5 |
ALIGN="left"
|
|
Packit Service |
fb6fa5 |
VALIGN="top"
|
|
Packit Service |
fb6fa5 |
>Key and Mouse bindings
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
WIDTH="34%"
|
|
Packit Service |
fb6fa5 |
ALIGN="center"
|
|
Packit Service |
fb6fa5 |
VALIGN="top"
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
HREF="c633.html"
|
|
Packit Service |
fb6fa5 |
ACCESSKEY="U"
|
|
Packit Service |
fb6fa5 |
>Up
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
WIDTH="33%"
|
|
Packit Service |
fb6fa5 |
ALIGN="right"
|
|
Packit Service |
fb6fa5 |
VALIGN="top"
|
|
Packit Service |
fb6fa5 |
>Miscellaneous Widgets
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|
|
Packit Service |
fb6fa5 |
>
|