Home   |   Guides and Tutorials   |   What's New?   |   Comments   |   About
 

GtkCheckButton - Check Button Widget

by Brent Fox
Last Modified: Wednesday, 19-May-2004 11:54:19 EDT

Introduction
    GtkCheckButton widgets serve the exact same purpose as GtkToggleButtons except that they look differently. Instead of looking like a normal button, GtkCheckButton widgets appear as small check boxes. GtkCheckButton widgets are usually used next to GtkLabels that describe what the option is. Instead of declaring a GtkCheckButton and a GtkLabel and placing them next to each other, a shortcut is to use the gtk_check_button_new_with_label function, which allows you to create the check button and the label in one statement.
Screenshot



Source Code
Source code for this example is also available in the file checkbutton.c

/*
 *File name: checkbutton.c
 */

#include <gtk/gtk.h>
#include <glib.h>

/*-- This function allows the program to exit properly when the window is closed --*/
gint destroyapp (GtkWidget *widget, gpointer gdata)
{
  g_print ("Quitting...\n");
  gtk_main_quit();
  return (FALSE);
}

int main (int argc, char *argv[])
{
  /*-- Declare the GTK Widgets used in the program --*/
  GtkWidget *window;
  GtkWidget *check1;
  GtkWidget *check2;
  GtkWidget *check3;
  GtkWidget *hbox;
  
  /*--  Initialize GTK --*/
  gtk_init (&argc, &argv);

  /*-- Create the new window --*/
  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

  /*-- Create the hbox --*/
  hbox = gtk_hbox_new(FALSE, 0);

  /*-- Connect the window to the destroyapp function  --*/
  gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(destroyapp), NULL);

  /*-- Create the first radio button with a label --*/
  check1 = gtk_check_button_new_with_label ("Check 1");
  check2 = gtk_check_button_new_with_label ("Check 2");
  check3 = gtk_check_button_new_with_label ("Check 3");    
  
  /*-- Pack all the radio buttons into the hbox --*/
  gtk_box_pack_start(GTK_BOX(hbox), check1, TRUE, TRUE, 2);
  gtk_box_pack_start(GTK_BOX(hbox), check2, TRUE, TRUE, 2);
  gtk_box_pack_start(GTK_BOX(hbox), check3, TRUE, TRUE, 2);

  /*-- Add the hbox to the window --*/
  gtk_container_add(GTK_CONTAINER(window), hbox);

  /*-- Add a border to the window to give the button a little room --*/
  gtk_container_border_width (GTK_CONTAINER (window), 15);

  /*-- Display the widgets --*/
  gtk_widget_show(check1);
  gtk_widget_show(check2);
  gtk_widget_show(check3);
  gtk_widget_show(hbox);
  gtk_widget_show(window);

  /*-- Start the GTK event loop --*/
  gtk_main();

  /*-- Return 0 if exit is successful --*/
  return 0;
}
  
Compile the Source Code
gcc -Wall -g checkbutton.c -o checkbutton `gtk-config --cflags` `gtk-config --libs`

Execute the Program
./checkbutton

What's Related


All Rights Reserved Linux Headquarters © 2000-2007
Linux is a registered trademark of Linus Torvalds
All logos are registered trademarks of their respective owners
Last modified: Wednesday, May 19, 2004