Blame docs/tutorial/html/x829.html

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Progress Bars
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="Miscellaneous Widgets"
Packit Service fb6fa5
HREF="c753.html">
Packit Service fb6fa5
REL="PREVIOUS"
Packit Service fb6fa5
TITLE="The Tooltips Object"
Packit Service fb6fa5
HREF="x810.html">
Packit Service fb6fa5
REL="NEXT"
Packit Service fb6fa5
TITLE="Dialogs"
Packit Service fb6fa5
HREF="x861.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="x810.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
>Miscellaneous 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="x861.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-PROGRESSBARS"
Packit Service fb6fa5
>Progress Bars
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Progress bars are used to show the status of an operation. They are
Packit Service fb6fa5
pretty easy to use, as you will see with the code below. But first
Packit Service fb6fa5
lets start out with the calls to create a new progress bar.
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
>GtkWidget *gtk_progress_bar_new( void );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Now that the progress bar has been created we can use it.
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
>void gtk_progress_bar_set_fraction ( GtkProgressBar *pbar,
Packit Service fb6fa5
                                     gdouble        fraction );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>The first argument is the progress bar you wish to operate on, and the
Packit Service fb6fa5
second argument is the amount "completed", meaning the amount the
Packit Service fb6fa5
progress bar has been filled from 0-100%. This is passed to the
Packit Service fb6fa5
function as a real number ranging from 0 to 1.
Packit Service fb6fa5
>
Packit Service fb6fa5
>GTK v1.2 has added new functionality to the progress bar that enables
Packit Service fb6fa5
it to display its value in different ways, and to inform the user of
Packit Service fb6fa5
its current value and its range.
Packit Service fb6fa5
>
Packit Service fb6fa5
>A progress bar may be set to one of a number of orientations using the
Packit Service fb6fa5
function
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
>void gtk_progress_bar_set_orientation( GtkProgressBar *pbar,
Packit Service fb6fa5
                                       GtkProgressBarOrientation orientation );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>The 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>orientation
Packit Service fb6fa5
> argument may take one of the following
Packit Service fb6fa5
values to indicate the direction in which the progress bar moves:
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
>  GTK_PROGRESS_LEFT_TO_RIGHT
Packit Service fb6fa5
  GTK_PROGRESS_RIGHT_TO_LEFT
Packit Service fb6fa5
  GTK_PROGRESS_BOTTOM_TO_TOP
Packit Service fb6fa5
  GTK_PROGRESS_TOP_TO_BOTTOM
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>As well as indicating the amount of progress that has occured, the
Packit Service fb6fa5
progress bar may be set to just indicate that there is some activity. 
Packit Service fb6fa5
This can be useful in situations where progress cannot be measured against 
Packit Service fb6fa5
a value range. The following function indicates that some progress has been 
Packit Service fb6fa5
made.
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
>void gtk_progress_bar_pulse ( GtkProgressBar *progress );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>The step size of the activity indicator is set using the following 
Packit Service fb6fa5
function.
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
>void gtk_progress_bar_set_pulse_step( GtkProgressBar *pbar,
Packit Service fb6fa5
                                      gdouble         fraction );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>When not in activity mode, the progress bar can also display a
Packit Service fb6fa5
configurable text string within its trough, using the following
Packit Service fb6fa5
function.
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
>void gtk_progress_bar_set_text( GtkProgressBar *progress,
Packit Service fb6fa5
                                const gchar    *text );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="NOTE"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="NOTE"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="25"
Packit Service fb6fa5
ALIGN="CENTER"
Packit Service fb6fa5
VALIGN="TOP"
Packit Service fb6fa5
>
Packit Service fb6fa5
SRC="./stylesheet-images/note.gif"
Packit Service fb6fa5
HSPACE="5"
Packit Service fb6fa5
ALT="Note">
Packit Service fb6fa5
>
Packit Service fb6fa5
ALIGN="LEFT"
Packit Service fb6fa5
VALIGN="TOP"
Packit Service fb6fa5
>
Packit Service fb6fa5
>Note that gtk_progress_set_text() doesn't support the printf()-like formatting
Packit Service fb6fa5
of the GTK+ 1.2 Progressbar.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>You can turn off the display of the string by calling gtk_progess_bar_set_text()
Packit Service fb6fa5
again with NULL as second argument.
Packit Service fb6fa5
>
Packit Service fb6fa5
>The current text setting of a progressbar can be retrieved with the 
Packit Service fb6fa5
following function. Do not free the returned string.
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
>const gchar *gtk_progress_bar_get_text( GtkProgressBar *pbar );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Progress Bars are usually used with timeouts or other such functions
Packit Service fb6fa5
(see section on 
Packit Service fb6fa5
HREF="c1759.html"
Packit Service fb6fa5
>Timeouts, I/O and Idle Functions
Packit Service fb6fa5
>) 
Packit Service fb6fa5
to give the illusion of multitasking. All will employ the
Packit Service fb6fa5
gtk_progress_bar_set_fraction() or gtk_progress_bar_pulse() functions in the 
Packit Service fb6fa5
same manner.
Packit Service fb6fa5
>
Packit Service fb6fa5
>Here is an example of the progress bar, updated using timeouts. This
Packit Service fb6fa5
code also shows you how to reset the Progress Bar.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="INLINEMEDIAOBJECT"
Packit Service fb6fa5
>
Packit Service fb6fa5
SRC="images/progressbar.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
typedef struct _ProgressData {
Packit Service fb6fa5
  GtkWidget *window;
Packit Service fb6fa5
  GtkWidget *pbar;
Packit Service fb6fa5
  int timer;
Packit Service fb6fa5
  gboolean activity_mode;
Packit Service fb6fa5
} ProgressData;
Packit Service fb6fa5
Packit Service fb6fa5
/* Update the value of the progress bar so that we get
Packit Service fb6fa5
 * some movement */
Packit Service fb6fa5
static gboolean progress_timeout( gpointer data )
Packit Service fb6fa5
{
Packit Service fb6fa5
  ProgressData *pdata = (ProgressData *)data;
Packit Service fb6fa5
  gdouble new_val;
Packit Service fb6fa5
  
Packit Service fb6fa5
  if (pdata->activity_mode) 
Packit Service fb6fa5
    gtk_progress_bar_pulse (GTK_PROGRESS_BAR (pdata->pbar));
Packit Service fb6fa5
  else 
Packit Service fb6fa5
    {
Packit Service fb6fa5
      /* Calculate the value of the progress bar using the
Packit Service fb6fa5
       * value range set in the adjustment object */
Packit Service fb6fa5
      
Packit Service fb6fa5
      new_val = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (pdata->pbar)) + 0.01;
Packit Service fb6fa5
      
Packit Service fb6fa5
      if (new_val > 1.0)
Packit Service fb6fa5
	new_val = 0.0;
Packit Service fb6fa5
      
Packit Service fb6fa5
      /* Set the new value */
Packit Service fb6fa5
      gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (pdata->pbar), new_val);
Packit Service fb6fa5
    }
Packit Service fb6fa5
  
Packit Service fb6fa5
  /* As this is a timeout function, return TRUE so that it
Packit Service fb6fa5
   * continues to get called */
Packit Service fb6fa5
  return TRUE;
Packit Service fb6fa5
} 
Packit Service fb6fa5
Packit Service fb6fa5
/* Callback that toggles the text display within the progress bar trough */
Packit Service fb6fa5
static void toggle_show_text( GtkWidget    *widget,
Packit Service fb6fa5
                              ProgressData *pdata )
Packit Service fb6fa5
{
Packit Service fb6fa5
  const gchar *text;
Packit Service fb6fa5
  
Packit Service fb6fa5
  text = gtk_progress_bar_get_text (GTK_PROGRESS_BAR (pdata->pbar));
Packit Service fb6fa5
  if (text && *text)
Packit Service fb6fa5
    gtk_progress_bar_set_text (GTK_PROGRESS_BAR (pdata->pbar), "");
Packit Service fb6fa5
  else 
Packit Service fb6fa5
    gtk_progress_bar_set_text (GTK_PROGRESS_BAR (pdata->pbar), "some text");
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/* Callback that toggles the activity mode of the progress bar */
Packit Service fb6fa5
static void toggle_activity_mode( GtkWidget    *widget,
Packit Service fb6fa5
                                  ProgressData *pdata )
Packit Service fb6fa5
{
Packit Service fb6fa5
  pdata->activity_mode = !pdata->activity_mode;
Packit Service fb6fa5
  if (pdata->activity_mode) 
Packit Service fb6fa5
      gtk_progress_bar_pulse (GTK_PROGRESS_BAR (pdata->pbar));
Packit Service fb6fa5
  else
Packit Service fb6fa5
      gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (pdata->pbar), 0.0);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
 
Packit Service fb6fa5
/* Callback that toggles the orientation of the progress bar */
Packit Service fb6fa5
static void toggle_orientation( GtkWidget    *widget,
Packit Service fb6fa5
                                ProgressData *pdata )
Packit Service fb6fa5
{
Packit Service fb6fa5
  switch (gtk_progress_bar_get_orientation (GTK_PROGRESS_BAR (pdata->pbar))) {
Packit Service fb6fa5
  case GTK_PROGRESS_LEFT_TO_RIGHT:
Packit Service fb6fa5
    gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (pdata->pbar), 
Packit Service fb6fa5
				      GTK_PROGRESS_RIGHT_TO_LEFT);
Packit Service fb6fa5
    break;
Packit Service fb6fa5
  case GTK_PROGRESS_RIGHT_TO_LEFT:
Packit Service fb6fa5
    gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (pdata->pbar), 
Packit Service fb6fa5
				      GTK_PROGRESS_LEFT_TO_RIGHT);
Packit Service fb6fa5
    break;
Packit Service fb6fa5
  default:;
Packit Service fb6fa5
    /* do nothing */
Packit Service fb6fa5
  }
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
 
Packit Service fb6fa5
/* Clean up allocated memory and remove the timer */
Packit Service fb6fa5
static void destroy_progress( GtkWidget    *widget,
Packit Service fb6fa5
                              ProgressData *pdata)
Packit Service fb6fa5
{
Packit Service fb6fa5
    g_source_remove (pdata->timer);
Packit Service fb6fa5
    pdata->timer = 0;
Packit Service fb6fa5
    pdata->window = NULL;
Packit Service fb6fa5
    g_free (pdata);
Packit Service fb6fa5
    gtk_main_quit ();
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
int main( int   argc,
Packit Service fb6fa5
          char *argv[])
Packit Service fb6fa5
{
Packit Service fb6fa5
    ProgressData *pdata;
Packit Service fb6fa5
    GtkWidget *align;
Packit Service fb6fa5
    GtkWidget *separator;
Packit Service fb6fa5
    GtkWidget *table;
Packit Service fb6fa5
    GtkWidget *button;
Packit Service fb6fa5
    GtkWidget *check;
Packit Service fb6fa5
    GtkWidget *vbox;
Packit Service fb6fa5
Packit Service fb6fa5
    gtk_init (&argc, &argv);
Packit Service fb6fa5
Packit Service fb6fa5
    /* Allocate memory for the data that is passed to the callbacks */
Packit Service fb6fa5
    pdata = g_malloc (sizeof (ProgressData));
Packit Service fb6fa5
  
Packit Service fb6fa5
    pdata->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
Packit Service fb6fa5
    gtk_window_set_resizable (GTK_WINDOW (pdata->window), TRUE);
Packit Service fb6fa5
Packit Service fb6fa5
    g_signal_connect (pdata->window, "destroy",
Packit Service fb6fa5
	              G_CALLBACK (destroy_progress),
Packit Service fb6fa5
                      (gpointer) pdata);
Packit Service fb6fa5
    gtk_window_set_title (GTK_WINDOW (pdata->window), "GtkProgressBar");
Packit Service fb6fa5
    gtk_container_set_border_width (GTK_CONTAINER (pdata->window), 0);
Packit Service fb6fa5
Packit Service fb6fa5
    vbox = gtk_vbox_new (FALSE, 5);
Packit Service fb6fa5
    gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
Packit Service fb6fa5
    gtk_container_add (GTK_CONTAINER (pdata->window), vbox);
Packit Service fb6fa5
    gtk_widget_show (vbox);
Packit Service fb6fa5
  
Packit Service fb6fa5
    /* Create a centering alignment object */
Packit Service fb6fa5
    align = gtk_alignment_new (0.5, 0.5, 0, 0);
Packit Service fb6fa5
    gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 5);
Packit Service fb6fa5
    gtk_widget_show (align);
Packit Service fb6fa5
Packit Service fb6fa5
    /* Create the GtkProgressBar */
Packit Service fb6fa5
    pdata->pbar = gtk_progress_bar_new ();
Packit Service fb6fa5
    pdata->activity_mode = FALSE;
Packit Service fb6fa5
Packit Service fb6fa5
    gtk_container_add (GTK_CONTAINER (align), pdata->pbar);
Packit Service fb6fa5
    gtk_widget_show (pdata->pbar);
Packit Service fb6fa5
Packit Service fb6fa5
    /* Add a timer callback to update the value of the progress bar */
Packit Service fb6fa5
    pdata->timer = g_timeout_add (100, progress_timeout, pdata);
Packit Service fb6fa5
Packit Service fb6fa5
    separator = gtk_hseparator_new ();
Packit Service fb6fa5
    gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, FALSE, 0);
Packit Service fb6fa5
    gtk_widget_show (separator);
Packit Service fb6fa5
Packit Service fb6fa5
    /* rows, columns, homogeneous */
Packit Service fb6fa5
    table = gtk_table_new (2, 3, FALSE);
Packit Service fb6fa5
    gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, TRUE, 0);
Packit Service fb6fa5
    gtk_widget_show (table);
Packit Service fb6fa5
Packit Service fb6fa5
    /* Add a check button to select displaying of the trough text */
Packit Service fb6fa5
    check = gtk_check_button_new_with_label ("Show text");
Packit Service fb6fa5
    gtk_table_attach (GTK_TABLE (table), check, 0, 1, 0, 1,
Packit Service fb6fa5
                      GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
Packit Service fb6fa5
		      5, 5);
Packit Service fb6fa5
    g_signal_connect (check, "clicked",
Packit Service fb6fa5
                      G_CALLBACK (toggle_show_text),
Packit Service fb6fa5
                      pdata);
Packit Service fb6fa5
    gtk_widget_show (check);
Packit Service fb6fa5
Packit Service fb6fa5
    /* Add a check button to toggle activity mode */
Packit Service fb6fa5
    check = gtk_check_button_new_with_label ("Activity mode");
Packit Service fb6fa5
    gtk_table_attach (GTK_TABLE (table), check, 0, 1, 1, 2,
Packit Service fb6fa5
                      GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
Packit Service fb6fa5
                      5, 5);
Packit Service fb6fa5
    g_signal_connect (check, "clicked",
Packit Service fb6fa5
                      G_CALLBACK (toggle_activity_mode),
Packit Service fb6fa5
                      pdata);
Packit Service fb6fa5
    gtk_widget_show (check);
Packit Service fb6fa5
Packit Service fb6fa5
    /* Add a check button to toggle orientation */
Packit Service fb6fa5
    check = gtk_check_button_new_with_label ("Right to Left");
Packit Service fb6fa5
    gtk_table_attach (GTK_TABLE (table), check, 0, 1, 2, 3,
Packit Service fb6fa5
                      GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
Packit Service fb6fa5
                      5, 5);
Packit Service fb6fa5
    g_signal_connect (check, "clicked",
Packit Service fb6fa5
                      G_CALLBACK (toggle_orientation),
Packit Service fb6fa5
                      pdata);
Packit Service fb6fa5
    gtk_widget_show (check);
Packit Service fb6fa5
Packit Service fb6fa5
    /* Add a button to exit the program */
Packit Service fb6fa5
    button = gtk_button_new_with_label ("close");
Packit Service fb6fa5
    g_signal_connect_swapped (button, "clicked",
Packit Service fb6fa5
                              G_CALLBACK (gtk_widget_destroy),
Packit Service fb6fa5
                              pdata->window);
Packit Service fb6fa5
    gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
    /* This makes it so the button is the default. */
Packit Service fb6fa5
    gtk_widget_set_can_default (button, TRUE);
Packit Service fb6fa5
Packit Service fb6fa5
    /* This grabs this button to be the default button. Simply hitting
Packit Service fb6fa5
     * the "Enter" key will cause this button to activate. */
Packit Service fb6fa5
    gtk_widget_grab_default (button);
Packit Service fb6fa5
    gtk_widget_show (button);
Packit Service fb6fa5
Packit Service fb6fa5
    gtk_widget_show (pdata->window);
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
>
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="x810.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="x861.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
>The Tooltips Object
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="c753.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
>Dialogs
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>