EXAMPLES

These files are examples of specific parts of the java-gnome API worked up as
complete Java programs.

Source code, especially Java source code, doesn't always lend itself to being
_read_, certainly not from top to bottom. We have attempted, however, to create
some examples which are non-trivial but nonetheless are still readable.

1. Button in a Window

	* [`ExamplePressMe.java`](button/ExamplePressMe.html)  
	It doesn't get any simpler than this. A [Label][] and a [Button][] in a
	[Window][], showing how to connect a listener to handle a
	[`CLICKED`][CLICKED] signal from the Button and how to ensure your
	application terminates when the Window is [deleted][DELETE_EVENT].

[Button]: /4.0/doc/api/org/gnome/gtk/Button.html
[Label]: /4.0/doc/api/org/gnome/gtk/Label.html
[Window]: /4.0/doc/api/org/gnome/gtk/Window.html
[CLICKED]: /4.0/doc/api/org/gnome/gtk/Button.CLICKED.html
[DELETE_EVENT]: /4.0/doc/api/org/gnome/gtk/Window.DELETE_EVENT.html

2. Handling keystrokes

   	* [`ExampleSnooping.java`](keyboard/ExampleSnooping.html)  
	Handling keyboard input is more complicated than it reasonably ought to
	be. In most cases the existing GTK Widgets already do everything that
	needs doing (when you type text into an Entry, the text does indeed go
	into that Entry), focus handling, etc. However, if you need to
	intercept a keystroke so you can do something special, then you need to 
	work with the [Keyval][] and [ModifierType][] classes in response to the
	[`KEY_PRESS_EVENT`][KEY_PRESS_EVENT] signal. This is how.

[Keyval]: /4.0/doc/api/org/gnome/gdk/Keyval.html
[ModifierType]: /4.0/doc/api/org/gnome/gdk/ModifierType.html
[KEY_PRESS_EVENT]: /4.0/doc/api/org/gnome/gtk/Widget.KEY_PRESS_EVENT.html

3. TreeView and TreeModel

   	* [`ExampleTrailHeads.java`](treeview/ExampleTrailHeads.html)  
	While not a complete tutorial, we have an example of a small
	application which uses a TreeView backed by a ListStore called
	`ExampleTrailHeads`.  It is heavily commented and meant to serve as an
	introduction of the incredibly powerful yet very complex [TreeView][] /
	[TreeModel][] system. It should be read in conjunction with the API
	documentation for these types. You'll also want to read about how to
	setup a [ListStore][] and the explanation of available column types in
	[DataColumn][].

[TreeView]: /4.0/doc/api/org/gnome/gtk/TreeView.html
[TreeModel]: /4.0/doc/api/org/gnome/gtk/TreeModel.html
[ListStore]: /4.0/doc/api/org/gnome/gtk/ListStore.html
[DataColumn]: /4.0/doc/api/org/gnome/gtk/DataColumn.html


<!--

  Copyright (c) 2008 Operational Dynamics Consulting Pty Ltd 

  As project documentation, this file forms an integral part of the source
  code of the library it accompanies, and thus is made available to you by the
  authors under the terms of the "GNU General Public Licence, version 2". See
  the LICENCE file for the terms governing usage, copying and redistribution.

  vim: set textwidth=78 nowrap:

-->
