gschem: Make edit color dialog box non-modal.
gschem: Create a class for the integer combo box
gschem: Refactor to eliminate duplicate code
gschem: Remove unused variable from GschemToplevel
gschem/libgeda: Move varaiable from TOPLEVEL to GschemToplevel
gschem: Update class to naming convention
gschem: Add dispose to edit color dialog box
gschem: Create a class for the Gschem toplevel window
gschem: Create class for Gschem drawing area
gschem: Add page reference to GschemPageView

This property will be the replacement for toplevel->page_current in
Gschem.
gschem: Add scrollbar support to GschemPageView
gschem: Rename klasse -> klass (in keeping with all other GObject code)

This is for consistency with other GObject code in gEDA, and matches the
idioms in GTK and GLib. By convention, "class" is only misspelled "klass"
when used alone (to avoid clashing with the C++ reserved word).

Variables "object_class", "parent_class" etc.. are not usually misspelled.
gschem: Clean code introduced in 6a12031ed00900a472949c0cdf0d1eddfe9056c2

Fixup some broken whitespace, re-locate the function to avoid requiring a
forward declaration and rejig the parameters (to take coordinates) so we
can use a more descriptive name.
Only include x_multiattrib.h from x_multiattrib.c

This speeds up builds whilst I'm changing that header, and hides private
implementation details of the classes within.

The exported functions from x_multiattrib.c are defined in prototype.h,
so only x_multiattrib.c needs the header.
x_multiattrib.[ch]: Make multiattrib_update() static to x_multiattrib.c
Fix zooming (broken in commit fb958cc4f6aec2b2a3b13a72f78d3dff2ae6ada9)

Attach our x_event_scroll() handler to the drawing area, not the main
window, so we receive the event before the GtkScrolledWindow container.

Futhermore, x_event_scroll() now returns TRUE, which stops further
processing of the event after our handler. This avoids the built-in
GtkScrolledWindow signal handler also trying to act on the events.
gschem: Fix multi-attribute editor lockup when right-clicking during edit.

This fixes a lockup when right-clicking on the text-edit box for the
attribute value column during an edit. The context menu being popped
up would cause our cell to loose focus, and the editing to be cancelled.

In general, it feels nicer to leave the edit open until the user explicitly
cancels it anyway, and that fixes this issue - whilst departing from the
standard GTK behaviour. (Which is to cancel a cell edit if the edit box
looses focus, but, WITH special case code to handle the context menu case).

A followup patch will be required to add consistent focus / edit cancelling
behaviour on the name column, which uses the standard GTK widgets for editing.
Revert "Move selection monitoring out of the multi attrib widget."

This reverts commit 1aaf6613a7c6991d858c1143ed3917675a115a5a.

This is the first step in implementing attribute editing multiple for
multiple objects at once. The SELECTION object is actually a smart list
of OBJECTs, with list-change notification. Passing this to the dialog
is NOT a break of abstraction, no more than passing a GList of OBJECTs
would be.

Think of the "selection" property of the multi-attribute editor as a
variable list of objects for it to edit, and there is no reason for
separating out this code.
x_multiattrib.c: Pass the main multiattrib class to internal functions

This allows them to access the members they need internally, rather than
having to pass the relevant data in as parameters.
x_multiattrib.[ch]: Whitespace changes for better code consistency