gtk/docs
Alex Larsson 4632fb81c7 Integrate Erwann Chenede's multihead changes for the gtk/ directory.
Mon Apr 29 18:28:00 2002  Owen Taylor  <otaylor@redhat.com>

	Integrate Erwann Chenede's multihead changes for the gtk/ directory.

	* gtk/gtkclipboard.[ch]: Add gtk_clipboard_get_for_display(),
	make internals multihead aware.

	* gtk/gtkcolorsel.[ch]: Add
	gtk_color_selection_set_change_palette_with_screen_hook () [ugh!]
	make up for non-multihead safety of
	gtk_color_selection_set_change_palette_hook()

	* gtk/gtkinvisible.[ch] gtk/gtkmenu.[ch] gtkwindow.[ch]: Add
	gtk_{invisible,menu,window}_set_screen(); add "screen" properties
	for GtkWindow and GtkMenu.

	* gtk/gtkplug.[ch]: Add gtk_plug_construct_for_display(),
	gtk_plug_new_for_display(). Multihead fixes.

	* gtk/gtkselection.[ch]: Add gtk_selection_owner_set_for_display(),
	make internals multihead aware.

	* gtk/gtksettings.[ch]: Add gtk_settings_get_for_screen(), get
	rid of now-useless gtk_settings_constructor().

	* gtk/gtkstyle.[ch]: Add gtk_style_get_font_for_display(), fix
	check/radio button indicators bitmap handling to be multihead
	safe.

	* gtk/gtkwidget.[ch]: Add gtk_widget_get_screen(), gtk_widget_has_screen(),
	gtk_widget_get_display(), gtk_widget_get_clipboard(),
	gtk_widget_get_root_window().

	* gtk/gtkbindings.c gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkcombo.c
	gtk/gtkctree.c gtk/gtkdnd.c gtk/gtkfilesel.c gtk/gtkgamma.c
	gtk/gtkhandlebox.c gtk/gtkhsv.c gtk/gtkimcontext.c gtk/gtklabel.c
	gtk/gtklist.c gtk/gtkmain.c gtk/gtkmenuitem.c gtk/gtkmenushell.c
	gtk/gtknotebook.c gtk/gtkoldeditable.c gtk/gtkoptionmenu.c
	gtk/gtkpaned.c gtk/gtkpreview.c gtk/gtksocket.c gtk/gtktext.c
	gtk/gtktextbuffer.c gtk/gtktextview.c gtk/gtktipsquery.c
	gtk/gtktooltips.c gtk/gtktreeview.c gtk/gtktreeviewcolumn.c:
	misc mechanical multihead-safety fixes.

	* gtk/gtkclipboard.c: Use a GtkImage rather than a pixmap for
	the dropper, look up the color palette only at realization time,
	other multihead fixes.

	* gtk/gtkcombo.c (gtk_combo_unrealize): Popdown the list when
	unrealizing.

	* gtk/gtkentry.c: Only claim ownership of the primary selection
	when realized, misc multihead fixes.

	* gtk/gtkfontsel.c: Only fill in fonts when attached to a screen,
	fix gtk_font_selection_get_font() for multihead.

	* gtk/gtkgc.c: make the depth => drawable hash per-screen.

	* gtk/gtkinvisible.c: Add a constructor that realizes the
	widget, so we get a realized widget with g_object_new() as
	well gtk_invisible_new() as before.

	* gtk/gtkmain.c: Get rid of unused gtk_visual/gtk_colormap
	variables.

	* gtk/gtktextdisplay.c: Add warnings if stipple bitmaps
	are used on the wrong screen.

	* gtk/gtktoolbar.c: Make handling of GtkSettings-based layout
	read properties and connect to settings when the screen is changed,
	rather than on init/finalize.

	* gtk/gtkwindow.c: Fix icon handing to be multihead safe ...
	default icon pixmaps/mask are only shared between windows on the
	same screen. Misc multihead fixes.

Sat Apr 27 13:49:53 2002  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
	Update docs to reference GDK_SELECTION_CLIPBOARD rather GDK_NONE.

2002-04-29  Alex Larsson  <alexl@redhat.com>

	* gdk/linux-fb/gdkproperty-fb.c (gdk_property_get):
	Fix silly bug, noticed by Sven Neumann.

Sun Apr 28 22:43:55 2002  Jonathan Blandford  <jrb@gnome.org>

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
	so that you can set a new sort func.
2002-04-29 22:53:45 +00:00
..
faq GTK+-2.0.0 rc1 2002-03-06 03:59:22 +00:00
reference Integrate Erwann Chenede's multihead changes for the gtk/ directory. 2002-04-29 22:53:45 +00:00
tutorial GTK+-2.0.0 rc1 2002-03-06 03:59:22 +00:00
.cvsignore Removed mistakenly added generated sgml 2000-06-21 18:18:00 +00:00
defsformat.txt Add defs file format document (this document isn't 100% finalized, but 2000-03-23 20:20:19 +00:00
developers.txt backed out the section "Gnits to care about". new file, kinda developers 1998-02-11 00:40:20 +00:00
dnd_internals.txt Added a modular client-message-filter mechanism, that is used for the DND 1998-10-18 22:51:24 +00:00
generation.txt Adapt cast macros to standard. 1999-11-22 21:52:50 +00:00
gtk-config.txt Put in some information about 'gtk-config --libs gthread'. 1999-02-02 02:35:11 +00:00
gtkdocs_fix I just remembered this commit failed before because 1998-03-12 18:23:11 +00:00
make-todo Make parent_class static. 2000-11-12 03:35:09 +00:00
Makefile.am Remove some files whose content is either obsolete or has been moved 2002-04-19 23:05:49 +00:00
README.linux-fb move README.linux-fb in here 2002-01-01 23:51:00 +00:00
refcounting.txt Spelling/grammar fixes from Martin Buchholz <martin@xemacs.org> 2000-02-29 13:15:10 +00:00
sizing-test.txt fix a typo. 2001-08-10 03:46:08 +00:00
styles.txt Spelling/grammar fixes from Martin Buchholz <martin@xemacs.org> 2000-02-29 13:15:10 +00:00
text_widget.txt missed a couple of corrections 2000-02-29 13:29:59 +00:00
tree-column-sizing.txt update a little 2002-02-04 19:30:00 +00:00
widget_geometry.txt Patch from Bill Haneman (with many modifications) to make the focus color 2001-12-04 03:27:30 +00:00
widget_system.txt Add some docs for GTK_NEED_REQUEST GTK_NEED_ALLOCATION. 2002-02-18 22:08:41 +00:00




THIS FILE IS OBSOLETE - use docs/reference/gtk/framebuffer.sgml







About GtkFB:
------------
The linux-fb port of Gtk+, also known as GtkFB is an implementation of
gdk (and therefor gtk) that runs on the linux framebuffer. It runs in
a single process that doesn't need X. It should run most Gtk+ programs
without any changes to the source.

Build requirements:
-------------------
To run GtkFB programs you will need glib, pango and gtk from cvs
HEAD. Make sure you update these at the same time, since changes to
glib and pango often forces changes in gtk+. Pango optionally depends
on libfribidi, but for normal GtkFB usage that can be ignored.

You also need freetype 2, I recommend that you use freetype 2.0.1 or
later, as there was some problems with freetype-config in 2.0.
Make sure that you install freetype before pango, since pango also
needs it.
Freetype can be found at ftp://ftp.freetype.org

Hardware requirements:
----------------------
You need a graphics card with an availible framebuffer driver that can
run in 8, 16, 24 or 32 bpp. I use the matroxfb driver, but i.e. vesafb
should work too. You also need a supported mouse. Currently supported
is ps2 mouse, ms serial mouse and fidmour touchscreen.

Building and installing:
------------------------
First build and install glib and pango as usual, in that order.

Then configure Gtk by running configure (or autogen.sh if running from
cvs) with --with-gdktarget=linux-fb.

Then compile as ususal: make; make install

Fonts:
------
Since GtkFB uses freetype 2 to render fonts it can render truetype and
postscript type 1 antialiased fonts.

At startup it scans some directories looking for fonts. By default
it looks in $prefix/lib/ft2fonts, and if you want to change this you
must add something like:

[PangoFT2]
FontPath = /usr/share/fonts/default/Type1:/usr/share/fonts/default/TrueType

To your $prefix/etc/pango/pangorc or ~/.pangorc.

You must also set up font aliases for the fonts Sans, Serif and Monotype.
This is done by creating a $prefix/etc/pango/pangoft2.aliases or
~/.pangoft2_aliases file. You can also set the name of this file using the
key AliasFiles in the PangoFT2 section in pangorc.

An example of a font alias file for the urw fontset is:
sans normal normal normal normal "urw gothic l"
serif normal normal normal normal "urw palladio l"
monospace normal normal normal normal "nimbus mono l"

And one using the Windows truetype fonts is:
sans normal normal normal normal "arial"
serif normal normal normal normal "times new roman"
monospace normal normal normal normal "courier new"

A more detailed example can be found in examples/pangoft2.aliases in the
pango distribution.

Running:
--------
To run a program you should only need to start it, but there are some
things that can cause problems, and some things that can be controlled
by environment variables. Try testgtk distributed with gtk+ to test
if things work.

If you use a ps2 mouse, make sure that /dev/psaux is readable and
writable.

Make sure gpm is not running.

If you don't specify anything GtkFB will start up in the current
virtual console in the current resolution and bit-depth. This can be
changed by specifying environment variables:

GDK_VT:
 unset means open on the current VT.
 0-9: open on the specified VT. Make sure you have read/write rights
      there.
 new: Allocate a new VT after the last currently used one.

GDK_DISPLAY_MODE:
 Specifies the name of a mode in /etc/fb.modes that you want to use.

GDK_DISPLAY_DEPTH:
 Specify the desired bit depth of the framebuffer.
 
GDK_DISPLAY_WIDTH:
 Specify the desired width of the framebuffer.
 
GDK_DISPLAY_HEIGHT:
 Specify the desired height of the framebuffer.

GDK_DISPLAY:
 Specify the framebuffer device to use. Default is /dev/fb0

GDK_MOUSE_TYPE:
 Specify mouse type. Currently supported is:
  ps2 - PS/2 mouse
  imps2 - PS/2 intellimouse (wheelmouse)
  ms - Microsoft serial mouse
  fidmour - touch screen
 Default is ps2.

GDK_KEYBOARD_TYPE:
 Specify keyboard type. Currently suppored is
  xlate - normal tty mode keyboard.
    Quite limited, cannot detect key up/key down events. Doesn't
    handle ctrl/alt/shift for all keys. This is the default driver,
    but should not be used in "production" use.
  raw - read from the tty in RAW mode.
    Sets the keyboard in RAW mode and handles all the keycodes. This
    gives correct handling of modifiers and key up/down events. You
    must be root to use this. If you use this for development or
    debugging it is recommended to enable magic sysrq handling in the
    kernel. Then you can use ALT-SysRQ-r to turn the keyboard back to
    normal mode.
 Default is xlate.

HACKING:
--------

Pressing Ctrl-Alt-Return repaints the whole screen.
Unfortunately this cannot be pressed when using the xlate keyboard
driver, so instead you can use shift-F1 instead when using this
driver.

Pressing Ctrl-Alt-BackSpace kills the GtkFB program. (Can't be pressed
in the xlate driver.

More to be written.

   - Alexander Larsson <alexl@redhat.com>
     2000/12/06