This is an automated email from the git hooks/post-receive script. tmancill pushed a commit to branch master in repository java-gnome.
commit 6ab97980c946a94a908df37443425603d7755927 Merge: 6dd4496 a056229 Author: Manu Mahajan <[email protected]> Date: Mon Mar 24 01:01:11 2008 +0530 Imported Debian patch 4.0.6-1 .cdtproject | 69 + .classpath | 34 + .cproject | 79 + .project | 90 + .settings/org.eclipse.cdt.core.prefs | 3 + .settings/org.eclipse.jdt.core.prefs | 258 + .settings/org.eclipse.jdt.ui.prefs | 6 + AUTHORS | 19 + HACKING | 211 + LICENCE | 88 + Makefile | 169 + NEWS | 1150 ++++ README | 376 ++ build/faster | 549 ++ build/gcj.make | 42 + configure | 1872 ++++++ debian/changelog | 18 +- debian/compat | 2 +- debian/control | 80 +- debian/copyright | 101 +- debian/dirs | 2 + debian/docs | 2 + debian/rules | 69 +- doc/design/1a-Homework.txt | 257 + doc/design/1b-AllAboutJNI.txt | 104 + doc/design/2a-ObjectiveAndAudience.txt | 175 + doc/design/2b-DesignConstraints.txt | 284 + doc/design/3a-PackageNames.txt | 122 + doc/design/3b-VersionNumbers.txt | 70 + doc/design/4a-TreeViewAndTreeModel.txt | 103 + doc/design/4b-ObjectProperties.txt | 237 + doc/design/5a-Architecture.txt | 372 ++ doc/design/START | 119 + doc/design/TheGreatOwenThread.html | 1796 ++++++ doc/examples/START | 68 + doc/examples/button/ExamplePressMe.java | 143 + doc/examples/keyboard/ExampleSnooping.java | 88 + doc/examples/menu/ExampleSimpleMenu.java | 201 + doc/examples/menu/ExampleToolbar.java | 182 + doc/examples/treeview/ExampleTrailHeads.java | 221 + doc/style/CodeFormat.txt | 76 + doc/style/CommitMessages.txt | 136 + doc/style/Documentation.txt | 115 + doc/style/MARKUP | 112 + lib/README | 30 + lib/utilities/aspell/normalize.pl | 80 + lib/utilities/markdown/LICENCE | 34 + lib/utilities/markdown/markdown.php | 1624 +++++ lib/utilities/markdown/smartypants.php | 860 +++ src/bindings/java-gnome_Icon.png | Bin 0 -> 4017 bytes .../bindings/BlacklistedMethodError.java | 38 + .../org/freedesktop/bindings/Constant.java | 86 + src/bindings/org/freedesktop/bindings/Debug.java | 49 + .../org/freedesktop/bindings/Environment.c | 63 + .../org/freedesktop/bindings/Environment.java | 51 + src/bindings/org/freedesktop/bindings/FIXME.java | 35 + src/bindings/org/freedesktop/bindings/Flag.java | 72 + src/bindings/org/freedesktop/bindings/Plumbing.c | 68 + .../org/freedesktop/bindings/Plumbing.java | 377 ++ src/bindings/org/freedesktop/bindings/Proxy.java | 74 + src/bindings/org/freedesktop/bindings/Time.c | 144 + src/bindings/org/freedesktop/bindings/Time.java | 176 + src/bindings/org/gnome/atk/Action.java | 24 + src/bindings/org/gnome/atk/Component.java | 24 + src/bindings/org/gnome/atk/CoordType.java | 29 + src/bindings/org/gnome/atk/Document.java | 24 + src/bindings/org/gnome/atk/EditableText.java | 24 + src/bindings/org/gnome/atk/GObjectAccessible.java | 27 + src/bindings/org/gnome/atk/Hyperlink.java | 29 + .../org/gnome/atk/HyperlinkStateFlags.java | 29 + src/bindings/org/gnome/atk/Hypertext.java | 24 + src/bindings/org/gnome/atk/Image.java | 24 + src/bindings/org/gnome/atk/ImplementorIface.java | 24 + src/bindings/org/gnome/atk/KeyEventType.java | 29 + src/bindings/org/gnome/atk/Layer.java | 29 + src/bindings/org/gnome/atk/NoOpObject.java | 27 + src/bindings/org/gnome/atk/NoOpObjectFactory.java | 27 + src/bindings/org/gnome/atk/Object.java | 29 + src/bindings/org/gnome/atk/ObjectFactory.java | 29 + src/bindings/org/gnome/atk/Plumbing.java | 16 + src/bindings/org/gnome/atk/Rectangle.java | 37 + src/bindings/org/gnome/atk/Registry.java | 29 + src/bindings/org/gnome/atk/Relation.java | 29 + src/bindings/org/gnome/atk/RelationSet.java | 29 + src/bindings/org/gnome/atk/RelationType.java | 29 + src/bindings/org/gnome/atk/Role.java | 29 + src/bindings/org/gnome/atk/Selection.java | 24 + src/bindings/org/gnome/atk/StateSet.java | 29 + src/bindings/org/gnome/atk/StateType.java | 29 + src/bindings/org/gnome/atk/StreamableContent.java | 24 + src/bindings/org/gnome/atk/Table.java | 24 + src/bindings/org/gnome/atk/Text.java | 24 + src/bindings/org/gnome/atk/TextAttribute.java | 29 + src/bindings/org/gnome/atk/TextBoundary.java | 29 + src/bindings/org/gnome/atk/TextClipType.java | 29 + src/bindings/org/gnome/atk/TextRange.java | 37 + src/bindings/org/gnome/atk/TextRectangle.java | 37 + src/bindings/org/gnome/atk/Util.java | 29 + src/bindings/org/gnome/atk/Value.java | 24 + src/bindings/org/gnome/atk/package.html | 32 + src/bindings/org/gnome/gdk/AxisUse.java | 29 + src/bindings/org/gnome/gdk/Bitmap.java | 25 + src/bindings/org/gnome/gdk/ByteOrder.java | 29 + src/bindings/org/gnome/gdk/CapStyle.java | 29 + src/bindings/org/gnome/gdk/Color.java | 88 + src/bindings/org/gnome/gdk/Colormap.java | 29 + src/bindings/org/gnome/gdk/Colorspace.java | 29 + src/bindings/org/gnome/gdk/CrossingMode.java | 29 + src/bindings/org/gnome/gdk/Cursor.java | 86 + src/bindings/org/gnome/gdk/CursorType.java | 78 + src/bindings/org/gnome/gdk/Device.java | 29 + src/bindings/org/gnome/gdk/Display.java | 29 + src/bindings/org/gnome/gdk/DisplayManager.java | 29 + src/bindings/org/gnome/gdk/DragAction.java | 29 + src/bindings/org/gnome/gdk/DragContext.java | 29 + src/bindings/org/gnome/gdk/DragProtocol.java | 29 + src/bindings/org/gnome/gdk/Drawable.java | 29 + src/bindings/org/gnome/gdk/Event.java | 59 + src/bindings/org/gnome/gdk/EventAny.java | 32 + src/bindings/org/gnome/gdk/EventButton.java | 62 + src/bindings/org/gnome/gdk/EventConfigure.java | 27 + src/bindings/org/gnome/gdk/EventCrossing.java | 27 + src/bindings/org/gnome/gdk/EventDragAndDrop.java | 27 + src/bindings/org/gnome/gdk/EventExpose.java | 26 + src/bindings/org/gnome/gdk/EventFocus.java | 27 + src/bindings/org/gnome/gdk/EventKey.java | 65 + src/bindings/org/gnome/gdk/EventMask.java | 29 + src/bindings/org/gnome/gdk/EventMotion.java | 27 + src/bindings/org/gnome/gdk/EventProperty.java | 30 + src/bindings/org/gnome/gdk/EventProximity.java | 27 + src/bindings/org/gnome/gdk/EventScroll.java | 27 + src/bindings/org/gnome/gdk/EventSelection.java | 27 + src/bindings/org/gnome/gdk/EventType.java | 283 + src/bindings/org/gnome/gdk/EventVisibility.java | 38 + src/bindings/org/gnome/gdk/EventWindowState.java | 27 + src/bindings/org/gnome/gdk/ExtensionMode.java | 29 + src/bindings/org/gnome/gdk/Fill.java | 29 + src/bindings/org/gnome/gdk/FillRule.java | 29 + src/bindings/org/gnome/gdk/FilterReturn.java | 29 + src/bindings/org/gnome/gdk/Font.java | 37 + src/bindings/org/gnome/gdk/FontType.java | 29 + src/bindings/org/gnome/gdk/Function.java | 29 + src/bindings/org/gnome/gdk/GC.java | 29 + src/bindings/org/gnome/gdk/GCValues.java | 37 + src/bindings/org/gnome/gdk/GCValuesMask.java | 29 + src/bindings/org/gnome/gdk/Gdk.java | 115 + src/bindings/org/gnome/gdk/GdkColorOverride.c | 47 + src/bindings/org/gnome/gdk/GdkColorOverride.java | 28 + src/bindings/org/gnome/gdk/GdkKeyvalOverride.java | 54 + .../org/gnome/gdk/GdkMouseButtonOverride.java | 20 + src/bindings/org/gnome/gdk/Geometry.java | 37 + src/bindings/org/gnome/gdk/GrabStatus.java | 29 + src/bindings/org/gnome/gdk/Gravity.java | 102 + src/bindings/org/gnome/gdk/InputCondition.java | 29 + src/bindings/org/gnome/gdk/InputMode.java | 29 + src/bindings/org/gnome/gdk/InputSource.java | 29 + src/bindings/org/gnome/gdk/InterpType.java | 29 + src/bindings/org/gnome/gdk/JoinStyle.java | 29 + src/bindings/org/gnome/gdk/Keymap.java | 29 + src/bindings/org/gnome/gdk/KeymapKey.java | 37 + src/bindings/org/gnome/gdk/KeypadKeyval.java | 102 + src/bindings/org/gnome/gdk/Keyval.java | 438 ++ src/bindings/org/gnome/gdk/LineStyle.java | 29 + src/bindings/org/gnome/gdk/ModifierType.java | 192 + src/bindings/org/gnome/gdk/MouseButton.java | 58 + src/bindings/org/gnome/gdk/NotifyType.java | 29 + src/bindings/org/gnome/gdk/OverlapType.java | 29 + src/bindings/org/gnome/gdk/OwnerChange.java | 29 + src/bindings/org/gnome/gdk/PangoRenderer.java | 29 + src/bindings/org/gnome/gdk/Pixbuf.java | 145 + src/bindings/org/gnome/gdk/PixbufAlphaMode.java | 29 + src/bindings/org/gnome/gdk/PixbufAnimation.java | 29 + .../org/gnome/gdk/PixbufAnimationIter.java | 29 + src/bindings/org/gnome/gdk/PixbufError.java | 29 + src/bindings/org/gnome/gdk/PixbufFormat.java | 77 + src/bindings/org/gnome/gdk/PixbufLoader.java | 29 + src/bindings/org/gnome/gdk/PixbufRotation.java | 29 + src/bindings/org/gnome/gdk/PixbufSimpleAnim.java | 27 + .../org/gnome/gdk/PixbufSimpleAnimIter.java | 27 + src/bindings/org/gnome/gdk/Pixmap.java | 27 + src/bindings/org/gnome/gdk/PixmapObject.java | 27 + src/bindings/org/gnome/gdk/Plumbing.c | 44 + src/bindings/org/gnome/gdk/Plumbing.java | 154 + src/bindings/org/gnome/gdk/Point.java | 37 + src/bindings/org/gnome/gdk/PropMode.java | 29 + src/bindings/org/gnome/gdk/PropertyState.java | 29 + src/bindings/org/gnome/gdk/Rectangle.java | 37 + src/bindings/org/gnome/gdk/Region.java | 37 + src/bindings/org/gnome/gdk/RgbCmap.java | 37 + src/bindings/org/gnome/gdk/RgbDither.java | 29 + src/bindings/org/gnome/gdk/Screen.java | 69 + src/bindings/org/gnome/gdk/ScrollDirection.java | 29 + src/bindings/org/gnome/gdk/Segment.java | 37 + src/bindings/org/gnome/gdk/SettingAction.java | 29 + src/bindings/org/gnome/gdk/Status.java | 29 + src/bindings/org/gnome/gdk/SubwindowMode.java | 29 + src/bindings/org/gnome/gdk/Trapezoid.java | 37 + src/bindings/org/gnome/gdk/VisibilityState.java | 53 + src/bindings/org/gnome/gdk/Visual.java | 29 + src/bindings/org/gnome/gdk/VisualType.java | 29 + src/bindings/org/gnome/gdk/WMDecoration.java | 29 + src/bindings/org/gnome/gdk/WMFunction.java | 29 + src/bindings/org/gnome/gdk/Window.java | 150 + src/bindings/org/gnome/gdk/WindowAttr.java | 37 + .../org/gnome/gdk/WindowAttributesType.java | 29 + src/bindings/org/gnome/gdk/WindowClass.java | 29 + src/bindings/org/gnome/gdk/WindowEdge.java | 29 + src/bindings/org/gnome/gdk/WindowHints.java | 29 + src/bindings/org/gnome/gdk/WindowObject.java | 27 + src/bindings/org/gnome/gdk/WindowState.java | 51 + src/bindings/org/gnome/gdk/WindowType.java | 29 + src/bindings/org/gnome/gdk/WindowTypeHint.java | 29 + src/bindings/org/gnome/gdk/package.html | 29 + src/bindings/org/gnome/glade/Glade.java | 160 + src/bindings/org/gnome/glade/Plumbing.java | 16 + src/bindings/org/gnome/glade/XML.java | 63 + src/bindings/org/gnome/glade/package.html | 28 + src/bindings/org/gnome/glib/Boxed.java | 69 + src/bindings/org/gnome/glib/GBoxed.c | 28 + src/bindings/org/gnome/glib/GBoxed.java | 21 + src/bindings/org/gnome/glib/GObject.c | 282 + src/bindings/org/gnome/glib/GObject.java | 115 + src/bindings/org/gnome/glib/GValue.c | 572 ++ src/bindings/org/gnome/glib/GValue.java | 196 + src/bindings/org/gnome/glib/Glib.java | 127 + src/bindings/org/gnome/glib/GlibException.java | 62 + src/bindings/org/gnome/glib/Object.java | 222 + src/bindings/org/gnome/glib/Plumbing.java | 350 ++ src/bindings/org/gnome/glib/Primitive.java | 28 + src/bindings/org/gnome/glib/Signal.java | 39 + src/bindings/org/gnome/glib/Value.java | 165 + src/bindings/org/gnome/glib/package.html | 25 + src/bindings/org/gnome/gnome/Entry.java | 35 + src/bindings/org/gnome/gtk/AboutDialog.java | 127 + src/bindings/org/gnome/gtk/AccelFlags.java | 29 + src/bindings/org/gnome/gtk/AccelGroup.java | 29 + src/bindings/org/gnome/gtk/AccelKey.java | 37 + src/bindings/org/gnome/gtk/AccelLabel.java | 27 + src/bindings/org/gnome/gtk/AccelMap.java | 29 + src/bindings/org/gnome/gtk/Accessible.java | 29 + src/bindings/org/gnome/gtk/Action.java | 375 ++ src/bindings/org/gnome/gtk/ActionGroup.java | 108 + src/bindings/org/gnome/gtk/Adjustment.java | 172 + src/bindings/org/gnome/gtk/Alignment.java | 199 + src/bindings/org/gnome/gtk/Allocation.java | 100 + src/bindings/org/gnome/gtk/AnchorType.java | 29 + src/bindings/org/gnome/gtk/ArgFlags.java | 29 + src/bindings/org/gnome/gtk/Arrow.java | 27 + src/bindings/org/gnome/gtk/ArrowType.java | 29 + src/bindings/org/gnome/gtk/AspectFrame.java | 27 + src/bindings/org/gnome/gtk/Assistant.java | 27 + src/bindings/org/gnome/gtk/AssistantPageType.java | 29 + src/bindings/org/gnome/gtk/AttachOptions.java | 29 + src/bindings/org/gnome/gtk/Bin.java | 34 + src/bindings/org/gnome/gtk/Border.java | 37 + src/bindings/org/gnome/gtk/Box.java | 118 + src/bindings/org/gnome/gtk/Button.java | 281 + src/bindings/org/gnome/gtk/ButtonAction.java | 29 + src/bindings/org/gnome/gtk/ButtonBox.java | 117 + src/bindings/org/gnome/gtk/ButtonBoxStyle.java | 60 + src/bindings/org/gnome/gtk/ButtonsType.java | 85 + src/bindings/org/gnome/gtk/Calendar.java | 211 + .../org/gnome/gtk/CalendarDisplayOptions.java | 76 + src/bindings/org/gnome/gtk/CellEditable.java | 24 + src/bindings/org/gnome/gtk/CellLayout.java | 24 + src/bindings/org/gnome/gtk/CellRenderer.java | 140 + src/bindings/org/gnome/gtk/CellRendererAccel.java | 38 + .../org/gnome/gtk/CellRendererAccelMode.java | 29 + src/bindings/org/gnome/gtk/CellRendererCombo.java | 27 + src/bindings/org/gnome/gtk/CellRendererMode.java | 29 + src/bindings/org/gnome/gtk/CellRendererPixbuf.java | 36 + .../org/gnome/gtk/CellRendererProgress.java | 33 + src/bindings/org/gnome/gtk/CellRendererSpin.java | 27 + src/bindings/org/gnome/gtk/CellRendererState.java | 29 + src/bindings/org/gnome/gtk/CellRendererText.java | 91 + src/bindings/org/gnome/gtk/CellRendererToggle.java | 27 + src/bindings/org/gnome/gtk/CellType.java | 29 + src/bindings/org/gnome/gtk/CellView.java | 27 + src/bindings/org/gnome/gtk/CheckButton.java | 61 + src/bindings/org/gnome/gtk/CheckMenuItem.java | 158 + src/bindings/org/gnome/gtk/Clipboard.java | 29 + src/bindings/org/gnome/gtk/ColorButton.java | 27 + src/bindings/org/gnome/gtk/ColorSelection.java | 27 + .../org/gnome/gtk/ColorSelectionDialog.java | 27 + src/bindings/org/gnome/gtk/ComboBox.java | 187 + src/bindings/org/gnome/gtk/ComboBoxEntry.java | 72 + src/bindings/org/gnome/gtk/Container.java | 153 + src/bindings/org/gnome/gtk/CornerType.java | 29 + src/bindings/org/gnome/gtk/Curve.java | 27 + src/bindings/org/gnome/gtk/CurveType.java | 29 + src/bindings/org/gnome/gtk/DataColumn.java | 185 + src/bindings/org/gnome/gtk/DataColumnBoolean.java | 32 + src/bindings/org/gnome/gtk/DataColumnInteger.java | 44 + src/bindings/org/gnome/gtk/DataColumnLong.java | 31 + src/bindings/org/gnome/gtk/DataColumnPixbuf.java | 28 + .../org/gnome/gtk/DataColumnReference.java | 54 + src/bindings/org/gnome/gtk/DataColumnString.java | 39 + src/bindings/org/gnome/gtk/DebugFlag.java | 29 + src/bindings/org/gnome/gtk/DeleteType.java | 29 + src/bindings/org/gnome/gtk/DestDefaults.java | 29 + src/bindings/org/gnome/gtk/Dialog.java | 231 + src/bindings/org/gnome/gtk/DialogFlags.java | 36 + src/bindings/org/gnome/gtk/DirectionType.java | 29 + src/bindings/org/gnome/gtk/DrawingArea.java | 27 + src/bindings/org/gnome/gtk/Editable.java | 72 + src/bindings/org/gnome/gtk/Entry.java | 209 + src/bindings/org/gnome/gtk/EntryCompletion.java | 29 + src/bindings/org/gnome/gtk/ErrorMessageDialog.java | 36 + src/bindings/org/gnome/gtk/EventBox.java | 81 + src/bindings/org/gnome/gtk/Expander.java | 27 + src/bindings/org/gnome/gtk/ExpanderStyle.java | 29 + src/bindings/org/gnome/gtk/FileChooser.java | 146 + src/bindings/org/gnome/gtk/FileChooserAction.java | 58 + src/bindings/org/gnome/gtk/FileChooserButton.java | 123 + .../org/gnome/gtk/FileChooserConfirmation.java | 29 + src/bindings/org/gnome/gtk/FileChooserDialog.java | 129 + src/bindings/org/gnome/gtk/FileChooserError.java | 29 + src/bindings/org/gnome/gtk/FileChooserWidget.java | 63 + src/bindings/org/gnome/gtk/FileFilter.java | 27 + src/bindings/org/gnome/gtk/FileFilterFlags.java | 29 + src/bindings/org/gnome/gtk/FileFolder.java | 24 + src/bindings/org/gnome/gtk/FileInfo.java | 37 + src/bindings/org/gnome/gtk/FileInfoType.java | 29 + src/bindings/org/gnome/gtk/FilePath.java | 37 + src/bindings/org/gnome/gtk/FileSelection.java | 27 + src/bindings/org/gnome/gtk/FileSystem.java | 24 + src/bindings/org/gnome/gtk/FileSystemError.java | 29 + src/bindings/org/gnome/gtk/FileSystemHandle.java | 29 + src/bindings/org/gnome/gtk/Fixed.java | 120 + src/bindings/org/gnome/gtk/FontButton.java | 27 + src/bindings/org/gnome/gtk/FontSelection.java | 27 + .../org/gnome/gtk/FontSelectionDialog.java | 27 + src/bindings/org/gnome/gtk/Frame.java | 78 + src/bindings/org/gnome/gtk/GammaCurve.java | 27 + src/bindings/org/gnome/gtk/Gtk.c | 179 + src/bindings/org/gnome/gtk/Gtk.java | 212 + src/bindings/org/gnome/gtk/GtkMenuOverride.c | 67 + src/bindings/org/gnome/gtk/GtkMenuOverride.java | 43 + .../org/gnome/gtk/GtkResponseTypeOverride.java | 36 + src/bindings/org/gnome/gtk/GtkTreeIterOverride.c | 44 + .../org/gnome/gtk/GtkTreeIterOverride.java | 33 + .../org/gnome/gtk/GtkTreeModelFilterOverride.c | 101 + .../org/gnome/gtk/GtkTreeModelFilterOverride.java | 30 + src/bindings/org/gnome/gtk/GtkTreeModelOverride.c | 171 + .../org/gnome/gtk/GtkTreeModelOverride.java | 80 + src/bindings/org/gnome/gtk/GtkWidgetOverride.c | 147 + src/bindings/org/gnome/gtk/GtkWidgetOverride.java | 75 + src/bindings/org/gnome/gtk/GtkWindowOverride.c | 175 + src/bindings/org/gnome/gtk/GtkWindowOverride.java | 31 + src/bindings/org/gnome/gtk/HBox.java | 46 + src/bindings/org/gnome/gtk/HButtonBox.java | 36 + src/bindings/org/gnome/gtk/HPaned.java | 27 + src/bindings/org/gnome/gtk/HRuler.java | 27 + src/bindings/org/gnome/gtk/HScale.java | 47 + src/bindings/org/gnome/gtk/HScrollbar.java | 27 + src/bindings/org/gnome/gtk/HSeparator.java | 35 + src/bindings/org/gnome/gtk/HandleBox.java | 27 + src/bindings/org/gnome/gtk/IMContext.java | 27 + src/bindings/org/gnome/gtk/IMContextSimple.java | 27 + src/bindings/org/gnome/gtk/IMMulticontext.java | 27 + src/bindings/org/gnome/gtk/IMPreeditStyle.java | 29 + src/bindings/org/gnome/gtk/IMStatusStyle.java | 29 + src/bindings/org/gnome/gtk/IconFactory.java | 29 + src/bindings/org/gnome/gtk/IconInfo.java | 37 + src/bindings/org/gnome/gtk/IconLookupFlags.java | 29 + src/bindings/org/gnome/gtk/IconSet.java | 37 + src/bindings/org/gnome/gtk/IconSize.java | 70 + src/bindings/org/gnome/gtk/IconSource.java | 37 + src/bindings/org/gnome/gtk/IconTheme.java | 29 + src/bindings/org/gnome/gtk/IconThemeError.java | 29 + src/bindings/org/gnome/gtk/IconView.java | 27 + .../org/gnome/gtk/IconViewDropPosition.java | 29 + src/bindings/org/gnome/gtk/Image.java | 70 + src/bindings/org/gnome/gtk/ImageMenuItem.java | 111 + src/bindings/org/gnome/gtk/ImageType.java | 64 + src/bindings/org/gnome/gtk/InfoMessageDialog.java | 53 + src/bindings/org/gnome/gtk/InputDialog.java | 27 + src/bindings/org/gnome/gtk/Invisible.java | 25 + src/bindings/org/gnome/gtk/Item.java | 27 + src/bindings/org/gnome/gtk/Justification.java | 59 + src/bindings/org/gnome/gtk/Label.java | 283 + src/bindings/org/gnome/gtk/Layout.java | 27 + src/bindings/org/gnome/gtk/LinkButton.java | 27 + src/bindings/org/gnome/gtk/ListStore.java | 102 + src/bindings/org/gnome/gtk/MatchType.java | 29 + src/bindings/org/gnome/gtk/Menu.java | 95 + src/bindings/org/gnome/gtk/MenuBar.java | 46 + src/bindings/org/gnome/gtk/MenuDirectionType.java | 29 + src/bindings/org/gnome/gtk/MenuItem.java | 127 + src/bindings/org/gnome/gtk/MenuShell.java | 80 + src/bindings/org/gnome/gtk/MenuToolButton.java | 99 + src/bindings/org/gnome/gtk/MessageDialog.java | 187 + src/bindings/org/gnome/gtk/MessageType.java | 109 + src/bindings/org/gnome/gtk/MetricType.java | 29 + src/bindings/org/gnome/gtk/Misc.java | 115 + src/bindings/org/gnome/gtk/MovementStep.java | 29 + src/bindings/org/gnome/gtk/Notebook.java | 135 + src/bindings/org/gnome/gtk/NotebookTab.java | 29 + src/bindings/org/gnome/gtk/Object.java | 42 + src/bindings/org/gnome/gtk/ObjectFlags.java | 45 + src/bindings/org/gnome/gtk/Orientation.java | 39 + src/bindings/org/gnome/gtk/PackDirection.java | 29 + src/bindings/org/gnome/gtk/PackType.java | 29 + src/bindings/org/gnome/gtk/PageOrientation.java | 29 + src/bindings/org/gnome/gtk/PageSet.java | 29 + src/bindings/org/gnome/gtk/PageSetup.java | 29 + src/bindings/org/gnome/gtk/Paned.java | 27 + src/bindings/org/gnome/gtk/PaperSize.java | 37 + src/bindings/org/gnome/gtk/PathPriorityType.java | 29 + src/bindings/org/gnome/gtk/PathType.java | 29 + src/bindings/org/gnome/gtk/Plug.java | 27 + src/bindings/org/gnome/gtk/Plumbing.java | 16 + src/bindings/org/gnome/gtk/PolicyType.java | 47 + src/bindings/org/gnome/gtk/PositionType.java | 52 + src/bindings/org/gnome/gtk/PrintContext.java | 29 + src/bindings/org/gnome/gtk/PrintDuplex.java | 29 + src/bindings/org/gnome/gtk/PrintError.java | 29 + src/bindings/org/gnome/gtk/PrintOperation.java | 29 + .../org/gnome/gtk/PrintOperationAction.java | 29 + .../org/gnome/gtk/PrintOperationPreview.java | 24 + .../org/gnome/gtk/PrintOperationResult.java | 29 + src/bindings/org/gnome/gtk/PrintPages.java | 29 + src/bindings/org/gnome/gtk/PrintQuality.java | 29 + src/bindings/org/gnome/gtk/PrintSettings.java | 29 + src/bindings/org/gnome/gtk/PrintStatus.java | 29 + src/bindings/org/gnome/gtk/PrivateFlags.java | 29 + src/bindings/org/gnome/gtk/ProgressBar.java | 72 + .../org/gnome/gtk/ProgressBarOrientation.java | 29 + src/bindings/org/gnome/gtk/ProgressBarStyle.java | 29 + .../org/gnome/gtk/QuestionMessageDialog.java | 64 + src/bindings/org/gnome/gtk/RadioAction.java | 27 + src/bindings/org/gnome/gtk/RadioButton.java | 27 + src/bindings/org/gnome/gtk/RadioMenuItem.java | 27 + src/bindings/org/gnome/gtk/RadioToolButton.java | 27 + src/bindings/org/gnome/gtk/Range.java | 74 + src/bindings/org/gnome/gtk/RcFlags.java | 29 + src/bindings/org/gnome/gtk/RcStyle.java | 29 + src/bindings/org/gnome/gtk/RcTokenType.java | 29 + src/bindings/org/gnome/gtk/RecentChooser.java | 24 + .../org/gnome/gtk/RecentChooserDialog.java | 27 + src/bindings/org/gnome/gtk/RecentChooserError.java | 29 + src/bindings/org/gnome/gtk/RecentChooserMenu.java | 27 + .../org/gnome/gtk/RecentChooserWidget.java | 27 + src/bindings/org/gnome/gtk/RecentFilter.java | 27 + src/bindings/org/gnome/gtk/RecentFilterFlags.java | 29 + src/bindings/org/gnome/gtk/RecentInfo.java | 37 + src/bindings/org/gnome/gtk/RecentManager.java | 29 + src/bindings/org/gnome/gtk/RecentManagerError.java | 29 + src/bindings/org/gnome/gtk/RecentSortType.java | 29 + src/bindings/org/gnome/gtk/ReliefStyle.java | 56 + src/bindings/org/gnome/gtk/Requisition.java | 92 + src/bindings/org/gnome/gtk/ResizeMode.java | 29 + src/bindings/org/gnome/gtk/ResponseType.java | 187 + src/bindings/org/gnome/gtk/Ruler.java | 27 + src/bindings/org/gnome/gtk/Scale.java | 61 + src/bindings/org/gnome/gtk/ScrollStep.java | 29 + src/bindings/org/gnome/gtk/ScrollType.java | 29 + src/bindings/org/gnome/gtk/Scrollbar.java | 27 + src/bindings/org/gnome/gtk/ScrolledWindow.java | 64 + src/bindings/org/gnome/gtk/SelectionData.java | 37 + src/bindings/org/gnome/gtk/SelectionMode.java | 63 + src/bindings/org/gnome/gtk/SensitivityType.java | 29 + src/bindings/org/gnome/gtk/Separator.java | 25 + src/bindings/org/gnome/gtk/SeparatorMenuItem.java | 42 + src/bindings/org/gnome/gtk/SeparatorToolItem.java | 61 + src/bindings/org/gnome/gtk/Settings.java | 29 + src/bindings/org/gnome/gtk/ShadowType.java | 29 + src/bindings/org/gnome/gtk/SideType.java | 29 + src/bindings/org/gnome/gtk/SignalRunType.java | 29 + src/bindings/org/gnome/gtk/SizeGroup.java | 82 + src/bindings/org/gnome/gtk/SizeGroupMode.java | 51 + src/bindings/org/gnome/gtk/Socket.java | 27 + src/bindings/org/gnome/gtk/SortType.java | 29 + src/bindings/org/gnome/gtk/SpinButton.java | 27 + .../org/gnome/gtk/SpinButtonUpdatePolicy.java | 29 + src/bindings/org/gnome/gtk/SpinType.java | 29 + src/bindings/org/gnome/gtk/StateType.java | 66 + src/bindings/org/gnome/gtk/StatusIcon.java | 355 ++ src/bindings/org/gnome/gtk/Statusbar.java | 160 + src/bindings/org/gnome/gtk/Stock.java | 341 + src/bindings/org/gnome/gtk/Style.java | 29 + src/bindings/org/gnome/gtk/Table.java | 118 + src/bindings/org/gnome/gtk/TargetFlags.java | 29 + src/bindings/org/gnome/gtk/TearoffMenuItem.java | 27 + src/bindings/org/gnome/gtk/TextAppearance.java | 37 + src/bindings/org/gnome/gtk/TextAttributes.java | 37 + src/bindings/org/gnome/gtk/TextBuffer.java | 29 + .../org/gnome/gtk/TextBufferTargetInfo.java | 29 + src/bindings/org/gnome/gtk/TextChildAnchor.java | 29 + src/bindings/org/gnome/gtk/TextComboBox.java | 118 + src/bindings/org/gnome/gtk/TextComboBoxEntry.java | 99 + src/bindings/org/gnome/gtk/TextDirection.java | 29 + src/bindings/org/gnome/gtk/TextIter.java | 37 + src/bindings/org/gnome/gtk/TextMark.java | 29 + src/bindings/org/gnome/gtk/TextSearchFlags.java | 29 + src/bindings/org/gnome/gtk/TextTag.java | 29 + src/bindings/org/gnome/gtk/TextTagTable.java | 29 + src/bindings/org/gnome/gtk/TextView.java | 27 + src/bindings/org/gnome/gtk/TextWindowType.java | 29 + src/bindings/org/gnome/gtk/ToggleAction.java | 27 + src/bindings/org/gnome/gtk/ToggleButton.java | 75 + src/bindings/org/gnome/gtk/ToggleToolButton.java | 92 + src/bindings/org/gnome/gtk/ToolButton.java | 154 + src/bindings/org/gnome/gtk/ToolItem.java | 57 + src/bindings/org/gnome/gtk/Toolbar.java | 102 + src/bindings/org/gnome/gtk/ToolbarSpaceStyle.java | 29 + src/bindings/org/gnome/gtk/ToolbarStyle.java | 29 + src/bindings/org/gnome/gtk/Tooltips.java | 53 + src/bindings/org/gnome/gtk/TreeDragDest.java | 24 + src/bindings/org/gnome/gtk/TreeDragSource.java | 24 + src/bindings/org/gnome/gtk/TreeIter.java | 100 + src/bindings/org/gnome/gtk/TreeModel.java | 452 ++ src/bindings/org/gnome/gtk/TreeModelFilter.java | 188 + src/bindings/org/gnome/gtk/TreeModelFlags.java | 29 + src/bindings/org/gnome/gtk/TreeModelSort.java | 80 + src/bindings/org/gnome/gtk/TreePath.java | 108 + src/bindings/org/gnome/gtk/TreeRowReference.java | 78 + src/bindings/org/gnome/gtk/TreeSelection.java | 182 + src/bindings/org/gnome/gtk/TreeSortable.java | 24 + src/bindings/org/gnome/gtk/TreeStore.java | 27 + src/bindings/org/gnome/gtk/TreeView.java | 563 ++ src/bindings/org/gnome/gtk/TreeViewColumn.java | 208 + .../org/gnome/gtk/TreeViewColumnSizing.java | 53 + .../org/gnome/gtk/TreeViewDropPosition.java | 29 + src/bindings/org/gnome/gtk/TreeViewGridLines.java | 29 + src/bindings/org/gnome/gtk/TreeViewMode.java | 29 + src/bindings/org/gnome/gtk/UIManager.java | 29 + src/bindings/org/gnome/gtk/UIManagerItemType.java | 29 + src/bindings/org/gnome/gtk/Unit.java | 29 + src/bindings/org/gnome/gtk/UpdateType.java | 29 + src/bindings/org/gnome/gtk/VBox.java | 52 + src/bindings/org/gnome/gtk/VButtonBox.java | 30 + src/bindings/org/gnome/gtk/VPaned.java | 27 + src/bindings/org/gnome/gtk/VRuler.java | 27 + src/bindings/org/gnome/gtk/VScale.java | 36 + src/bindings/org/gnome/gtk/VScrollbar.java | 27 + src/bindings/org/gnome/gtk/VSeparator.java | 35 + src/bindings/org/gnome/gtk/Value.java | 86 + src/bindings/org/gnome/gtk/Version.java | 36 + src/bindings/org/gnome/gtk/Viewport.java | 27 + src/bindings/org/gnome/gtk/Visibility.java | 29 + .../org/gnome/gtk/WarningMessageDialog.java | 57 + src/bindings/org/gnome/gtk/Widget.java | 887 +++ src/bindings/org/gnome/gtk/WidgetFlags.java | 35 + src/bindings/org/gnome/gtk/WidgetHelpType.java | 29 + src/bindings/org/gnome/gtk/Window.java | 720 +++ src/bindings/org/gnome/gtk/WindowGroup.java | 29 + src/bindings/org/gnome/gtk/WindowPosition.java | 58 + src/bindings/org/gnome/gtk/WindowType.java | 54 + src/bindings/org/gnome/gtk/WrapMode.java | 29 + src/bindings/org/gnome/gtk/package.html | 42 + src/bindings/org/gnome/pango/Alignment.java | 29 + src/bindings/org/gnome/pango/Analysis.java | 37 + src/bindings/org/gnome/pango/AttrIterator.java | 37 + src/bindings/org/gnome/pango/AttrList.java | 37 + src/bindings/org/gnome/pango/AttrType.java | 29 + src/bindings/org/gnome/pango/Attribute.java | 37 + src/bindings/org/gnome/pango/Color.java | 37 + src/bindings/org/gnome/pango/Context.java | 29 + src/bindings/org/gnome/pango/CoverageLevel.java | 29 + src/bindings/org/gnome/pango/Direction.java | 29 + src/bindings/org/gnome/pango/EllipsizeMode.java | 29 + src/bindings/org/gnome/pango/Engine.java | 29 + src/bindings/org/gnome/pango/EngineLang.java | 27 + src/bindings/org/gnome/pango/EngineShape.java | 27 + src/bindings/org/gnome/pango/Font.java | 29 + src/bindings/org/gnome/pango/FontDescription.java | 37 + src/bindings/org/gnome/pango/FontFace.java | 29 + src/bindings/org/gnome/pango/FontFamily.java | 29 + src/bindings/org/gnome/pango/FontMap.java | 29 + src/bindings/org/gnome/pango/FontMask.java | 29 + src/bindings/org/gnome/pango/FontMetrics.java | 37 + src/bindings/org/gnome/pango/Fontset.java | 29 + src/bindings/org/gnome/pango/FontsetSimple.java | 27 + src/bindings/org/gnome/pango/GlyphGeometry.java | 37 + src/bindings/org/gnome/pango/GlyphInfo.java | 37 + src/bindings/org/gnome/pango/GlyphString.java | 37 + src/bindings/org/gnome/pango/GlyphUnit.java | 37 + src/bindings/org/gnome/pango/Item.java | 37 + src/bindings/org/gnome/pango/Language.java | 37 + src/bindings/org/gnome/pango/Layout.java | 29 + src/bindings/org/gnome/pango/LayoutIter.java | 37 + src/bindings/org/gnome/pango/LayoutLine.java | 37 + src/bindings/org/gnome/pango/Matrix.java | 37 + src/bindings/org/gnome/pango/Plumbing.java | 16 + src/bindings/org/gnome/pango/Rectangle.java | 37 + src/bindings/org/gnome/pango/RenderPart.java | 29 + src/bindings/org/gnome/pango/Renderer.java | 29 + src/bindings/org/gnome/pango/Script.java | 29 + src/bindings/org/gnome/pango/Stretch.java | 29 + src/bindings/org/gnome/pango/Style.java | 29 + src/bindings/org/gnome/pango/TabAlign.java | 29 + src/bindings/org/gnome/pango/TabArray.java | 37 + src/bindings/org/gnome/pango/Underline.java | 29 + src/bindings/org/gnome/pango/Variant.java | 29 + src/bindings/org/gnome/pango/Weight.java | 29 + src/bindings/org/gnome/pango/WrapMode.java | 29 + src/bindings/org/gnome/pango/package.html | 27 + src/bindings/org/gnome/screenshot/Capture.java | 15 + src/bindings/org/gnome/screenshot/Plumbing.java | 16 + src/bindings/org/gnome/screenshot/Screenshot.java | 73 + .../org/gnome/unixprint/PageSetupUnixDialog.java | 29 + src/bindings/org/gnome/unixprint/Plumbing.java | 16 + .../org/gnome/unixprint/PrintCapabilities.java | 29 + src/bindings/org/gnome/unixprint/PrintJob.java | 29 + .../org/gnome/unixprint/PrintUnixDialog.java | 29 + src/bindings/org/gnome/unixprint/Printer.java | 29 + src/bindings/overview.html | 88 + src/bindings/stylesheet.css | 50 + src/defs/AtkAction.defs | 121 + src/defs/AtkAttributeSet.defs | 6 + src/defs/AtkComponent.defs | 253 + src/defs/AtkCoordType.defs | 10 + src/defs/AtkDocument.defs | 28 + src/defs/AtkEditableText.defs | 139 + src/defs/AtkGObjectAccessible.defs | 13 + src/defs/AtkHyperlink.defs | 114 + src/defs/AtkHyperlinkStateFlags.defs | 9 + src/defs/AtkHypertext.defs | 59 + src/defs/AtkImage.defs | 74 + src/defs/AtkImplementor.defs | 5 + src/defs/AtkImplementorIface.defs | 12 + src/defs/AtkKeyEventType.defs | 11 + src/defs/AtkLayer.defs | 15 + src/defs/AtkNoOpObject.defs | 17 + src/defs/AtkNoOpObjectFactory.defs | 14 + src/defs/AtkObject.defs | 330 + src/defs/AtkObjectFactory.defs | 38 + src/defs/AtkRectangle.defs | 12 + src/defs/AtkRegistry.defs | 35 + src/defs/AtkRelation.defs | 31 + src/defs/AtkRelationSet.defs | 65 + src/defs/AtkRelationType.defs | 16 + src/defs/AtkRole.defs | 78 + src/defs/AtkSelection.defs | 112 + src/defs/AtkStateSet.defs | 100 + src/defs/AtkStateType.defs | 38 + src/defs/AtkStreamableContent.defs | 51 + src/defs/AtkTable.defs | 544 ++ src/defs/AtkText.defs | 402 ++ src/defs/AtkTextAttribute.defs | 35 + src/defs/AtkTextBoundary.defs | 15 + src/defs/AtkTextClipType.defs | 12 + src/defs/AtkTextRange.defs | 10 + src/defs/AtkTextRectangle.defs | 11 + src/defs/AtkUtil.defs | 33 + src/defs/AtkValue.defs | 74 + src/defs/GdkAtom.defs | 7 + src/defs/GdkAxisUse.defs | 16 + src/defs/GdkBitmap.defs | 5 + src/defs/GdkByteOrder.defs | 10 + src/defs/GdkCapStyle.defs | 12 + src/defs/GdkColor.defs | 41 + src/defs/GdkColormap.defs | 126 + src/defs/GdkColorspace.defs | 9 + src/defs/GdkCrossingMode.defs | 11 + src/defs/GdkCursor.defs | 84 + src/defs/GdkCursorType.defs | 16 + src/defs/GdkDevice.defs | 91 + src/defs/GdkDisplay.defs | 306 + src/defs/GdkDisplayManager.defs | 36 + src/defs/GdkDragAction.defs | 14 + src/defs/GdkDragContext.defs | 219 + src/defs/GdkDragProtocol.defs | 15 + src/defs/GdkDrawable.defs | 712 +++ src/defs/GdkEvent.defs | 111 + src/defs/GdkEventAny.defs | 10 + src/defs/GdkEventButton.defs | 19 + src/defs/GdkEventExpose.defs | 13 + src/defs/GdkEventFocus.defs | 12 + src/defs/GdkEventKey.defs | 18 + src/defs/GdkEventMask.defs | 30 + src/defs/GdkEventType.defs | 42 + src/defs/GdkEventVisibility.defs | 10 + src/defs/GdkExtensionMode.defs | 11 + src/defs/GdkFill.defs | 12 + src/defs/GdkFillRule.defs | 10 + src/defs/GdkFilterReturn.defs | 11 + src/defs/GdkFont.defs | 169 + src/defs/GdkFontType.defs | 10 + src/defs/GdkFunction.defs | 24 + src/defs/GdkGC.defs | 284 + src/defs/GdkGCValues.defs | 5 + src/defs/GdkGCValuesMask.defs | 26 + src/defs/GdkGeometry.defs | 18 + src/defs/GdkGrabStatus.defs | 13 + src/defs/GdkGravity.defs | 18 + src/defs/GdkInputCondition.defs | 11 + src/defs/GdkInputMode.defs | 11 + src/defs/GdkInputSource.defs | 12 + src/defs/GdkInterpType.defs | 12 + src/defs/GdkJoinStyle.defs | 11 + src/defs/GdkKeymap.defs | 70 + src/defs/GdkKeymapKey.defs | 10 + src/defs/GdkKeyval.defs | 87 + src/defs/GdkLineStyle.defs | 11 + src/defs/GdkModifierType.defs | 26 + src/defs/GdkNotifyType.defs | 14 + src/defs/GdkOverlapType.defs | 11 + src/defs/GdkOwnerChange.defs | 11 + src/defs/GdkPangoAttrEmbossed.defs | 10 + src/defs/GdkPangoAttrStipple.defs | 10 + src/defs/GdkPangoRenderer.defs | 55 + src/defs/GdkPixbuf.defs | 491 ++ src/defs/GdkPixbufAlphaMode.defs | 10 + src/defs/GdkPixbufAnimation.defs | 63 + src/defs/GdkPixbufAnimationIter.defs | 34 + src/defs/GdkPixbufError.defs | 17 + src/defs/GdkPixbufFormat.defs | 62 + src/defs/GdkPixbufLoader.defs | 96 + src/defs/GdkPixbufRotation.defs | 12 + src/defs/GdkPixbufSimpleAnim.defs | 28 + src/defs/GdkPixbufSimpleAnimIter.defs | 7 + src/defs/GdkPixdata.defs | 40 + src/defs/GdkPixmap.defs | 20 + src/defs/GdkPixmapObject.defs | 7 + src/defs/GdkPoint.defs | 9 + src/defs/GdkPropMode.defs | 11 + src/defs/GdkPropertyState.defs | 10 + src/defs/GdkRectangle.defs | 32 + src/defs/GdkRegion.defs | 156 + src/defs/GdkRgbCmap.defs | 11 + src/defs/GdkRgbDither.defs | 11 + src/defs/GdkScreen.defs | 237 + src/defs/GdkScrollDirection.defs | 12 + src/defs/GdkSegment.defs | 11 + src/defs/GdkSettingAction.defs | 11 + src/defs/GdkStatus.defs | 13 + src/defs/GdkSubwindowMode.defs | 10 + src/defs/GdkTrapezoid.defs | 13 + src/defs/GdkVisibilityState.defs | 11 + src/defs/GdkVisual.defs | 40 + src/defs/GdkVisualType.defs | 14 + src/defs/GdkWMDecoration.defs | 15 + src/defs/GdkWMFunction.defs | 14 + src/defs/GdkWindow.defs | 928 +++ src/defs/GdkWindowAttr.defs | 5 + src/defs/GdkWindowAttributesType.defs | 16 + src/defs/GdkWindowClass.defs | 10 + src/defs/GdkWindowEdge.defs | 16 + src/defs/GdkWindowHints.defs | 17 + src/defs/GdkWindowObject.defs | 7 + src/defs/GdkWindowState.defs | 15 + src/defs/GdkWindowType.defs | 14 + src/defs/GdkWindowTypeHint.defs | 16 + src/defs/GladeXML.defs | 107 + src/defs/GlibMisc.defs | 17 + src/defs/GtkAboutDialog.defs | 233 + src/defs/GtkAccelFlags.defs | 11 + src/defs/GtkAccelGroup.defs | 110 + src/defs/GtkAccelKey.defs | 62 + src/defs/GtkAccelLabel.defs | 60 + src/defs/GtkAccelMap.defs | 123 + src/defs/GtkAccessible.defs | 18 + src/defs/GtkAction.defs | 210 + src/defs/GtkActionGroup.defs | 206 + src/defs/GtkAdjustment.defs | 77 + src/defs/GtkAlignment.defs | 56 + src/defs/GtkAllocation.defs | 11 + src/defs/GtkAnchorType.defs | 25 + src/defs/GtkArgFlags.defs | 13 + src/defs/GtkArrow.defs | 28 + src/defs/GtkArrowType.defs | 12 + src/defs/GtkAspectFrame.defs | 33 + src/defs/GtkAssistant.defs | 225 + src/defs/GtkAssistantPageType.defs | 13 + src/defs/GtkAttachOptions.defs | 11 + src/defs/GtkBin.defs | 16 + src/defs/GtkBindingSet.defs | 42 + src/defs/GtkBorder.defs | 21 + src/defs/GtkBox.defs | 117 + src/defs/GtkButton.defs | 229 + src/defs/GtkButtonAction.defs | 12 + src/defs/GtkButtonBox.defs | 85 + src/defs/GtkButtonBoxStyle.defs | 13 + src/defs/GtkButtonsType.defs | 14 + src/defs/GtkCalendar.defs | 139 + src/defs/GtkCalendarDisplayOptions.defs | 13 + src/defs/GtkCellEditable.defs | 45 + src/defs/GtkCellLayout.defs | 145 + src/defs/GtkCellRenderer.defs | 164 + src/defs/GtkCellRendererAccel.defs | 33 + src/defs/GtkCellRendererAccelMode.defs | 10 + src/defs/GtkCellRendererCombo.defs | 14 + src/defs/GtkCellRendererMode.defs | 11 + src/defs/GtkCellRendererPixbuf.defs | 14 + src/defs/GtkCellRendererProgress.defs | 14 + src/defs/GtkCellRendererSpin.defs | 14 + src/defs/GtkCellRendererState.defs | 13 + src/defs/GtkCellRendererText.defs | 32 + src/defs/GtkCellRendererToggle.defs | 52 + src/defs/GtkCellType.defs | 13 + src/defs/GtkCellView.defs | 64 + src/defs/GtkCheckButton.defs | 42 + src/defs/GtkCheckMenuItem.defs | 121 + src/defs/GtkClipboard.defs | 221 + src/defs/GtkColorButton.defs | 92 + src/defs/GtkColorSelection.defs | 150 + src/defs/GtkColorSelectionDialog.defs | 23 + src/defs/GtkComboBox.defs | 261 + src/defs/GtkComboBoxEntry.defs | 49 + src/defs/GtkContainer.defs | 353 ++ src/defs/GtkCornerType.defs | 12 + src/defs/GtkCurve.defs | 75 + src/defs/GtkCurveType.defs | 11 + src/defs/GtkDebugFlag.defs | 15 + src/defs/GtkDeleteType.defs | 16 + src/defs/GtkDestDefaults.defs | 12 + src/defs/GtkDialog.defs | 153 + src/defs/GtkDialogFlags.defs | 11 + src/defs/GtkDirectionType.defs | 14 + src/defs/GtkDrawingArea.defs | 25 + src/defs/GtkEditable.defs | 196 + src/defs/GtkEntry.defs | 324 + src/defs/GtkEntryCompletion.defs | 203 + src/defs/GtkEventBox.defs | 44 + src/defs/GtkExpander.defs | 112 + src/defs/GtkExpanderStyle.defs | 12 + src/defs/GtkFileChooser.defs | 404 ++ src/defs/GtkFileChooserAction.defs | 12 + src/defs/GtkFileChooserButton.defs | 68 + src/defs/GtkFileChooserConfirmation.defs | 11 + src/defs/GtkFileChooserDialog.defs | 37 + src/defs/GtkFileChooserError.defs | 10 + src/defs/GtkFileChooserWidget.defs | 18 + src/defs/GtkFileFilter.defs | 80 + src/defs/GtkFileFilterFlags.defs | 12 + src/defs/GtkFilePath.defs | 6 + src/defs/GtkFileSelection.defs | 95 + src/defs/GtkFixed.defs | 51 + src/defs/GtkFontButton.defs | 109 + src/defs/GtkFontSelection.defs | 52 + src/defs/GtkFontSelectionDialog.defs | 63 + src/defs/GtkFrame.defs | 90 + src/defs/GtkGammaCurve.defs | 21 + src/defs/GtkHBox.defs | 18 + src/defs/GtkHButtonBox.defs | 14 + src/defs/GtkHPaned.defs | 14 + src/defs/GtkHRuler.defs | 14 + src/defs/GtkHScale.defs | 29 + src/defs/GtkHScrollbar.defs | 17 + src/defs/GtkHSeparator.defs | 14 + src/defs/GtkHandleBox.defs | 75 + src/defs/GtkIMContext.defs | 216 + src/defs/GtkIMContextSimple.defs | 25 + src/defs/GtkIMMulticontext.defs | 23 + src/defs/GtkIMPreeditStyle.defs | 11 + src/defs/GtkIMStatusStyle.defs | 10 + src/defs/GtkIconFactory.defs | 45 + src/defs/GtkIconInfo.defs | 82 + src/defs/GtkIconLookupFlags.defs | 11 + src/defs/GtkIconSet.defs | 68 + src/defs/GtkIconSize.defs | 15 + src/defs/GtkIconSource.defs | 163 + src/defs/GtkIconTheme.defs | 140 + src/defs/GtkIconThemeError.defs | 10 + src/defs/GtkIconView.defs | 471 ++ src/defs/GtkIconViewDropPosition.defs | 14 + src/defs/GtkImage.defs | 253 + src/defs/GtkImageMenuItem.defs | 60 + src/defs/GtkImageType.defs | 15 + src/defs/GtkInputDialog.defs | 30 + src/defs/GtkInvisible.defs | 39 + src/defs/GtkItem.defs | 40 + src/defs/GtkJustification.defs | 12 + src/defs/GtkLabel.defs | 382 ++ src/defs/GtkLayout.defs | 114 + src/defs/GtkLinkButton.defs | 33 + src/defs/GtkListStore.defs | 209 + src/defs/GtkMatchType.defs | 14 + src/defs/GtkMenu.defs | 172 + src/defs/GtkMenuBar.defs | 44 + src/defs/GtkMenuDirectionType.defs | 12 + src/defs/GtkMenuItem.defs | 148 + src/defs/GtkMenuShell.defs | 149 + src/defs/GtkMenuToolButton.defs | 59 + src/defs/GtkMessageDialog.defs | 79 + src/defs/GtkMessageType.defs | 13 + src/defs/GtkMetricType.defs | 11 + src/defs/GtkMisc.defs | 47 + src/defs/GtkMovementStep.defs | 18 + src/defs/GtkNotebook.defs | 491 ++ src/defs/GtkNotebookTab.defs | 10 + src/defs/GtkObject.defs | 250 + src/defs/GtkObjectFlags.defs | 12 + src/defs/GtkOrientation.defs | 10 + src/defs/GtkPackDirection.defs | 12 + src/defs/GtkPackType.defs | 10 + src/defs/GtkPageOrientation.defs | 12 + src/defs/GtkPageSet.defs | 11 + src/defs/GtkPageSetup.defs | 171 + src/defs/GtkPageSetupUnixDialog.defs | 49 + src/defs/GtkPaned.defs | 124 + src/defs/GtkPaperSize.defs | 126 + src/defs/GtkPathPriorityType.defs | 14 + src/defs/GtkPathType.defs | 11 + src/defs/GtkPlug.defs | 47 + src/defs/GtkPolicyType.defs | 11 + src/defs/GtkPositionType.defs | 12 + src/defs/GtkPrintCapabilities.defs | 17 + src/defs/GtkPrintContext.defs | 72 + src/defs/GtkPrintDuplex.defs | 11 + src/defs/GtkPrintError.defs | 11 + src/defs/GtkPrintJob.defs | 96 + src/defs/GtkPrintOperation.defs | 258 + src/defs/GtkPrintOperationAction.defs | 12 + src/defs/GtkPrintOperationPreview.defs | 68 + src/defs/GtkPrintOperationResult.defs | 12 + src/defs/GtkPrintPages.defs | 11 + src/defs/GtkPrintQuality.defs | 12 + src/defs/GtkPrintSettings.defs | 507 ++ src/defs/GtkPrintStatus.defs | 17 + src/defs/GtkPrintUnixDialog.defs | 89 + src/defs/GtkPrinter.defs | 109 + src/defs/GtkProgressBar.defs | 150 + src/defs/GtkProgressBarOrientation.defs | 12 + src/defs/GtkProgressBarStyle.defs | 10 + src/defs/GtkRCStyle.defs | 7 + src/defs/GtkRadioAction.defs | 59 + src/defs/GtkRadioButton.defs | 91 + src/defs/GtkRadioMenuItem.defs | 86 + src/defs/GtkRadioToolButton.defs | 64 + src/defs/GtkRange.defs | 155 + src/defs/GtkRcFlags.defs | 12 + src/defs/GtkRcScanner.defs | 7 + src/defs/GtkRcStyle.defs | 80 + src/defs/GtkRcTokenType.defs | 46 + src/defs/GtkRecentChooser.defs | 354 ++ src/defs/GtkRecentChooserDialog.defs | 21 + src/defs/GtkRecentChooserError.defs | 10 + src/defs/GtkRecentChooserMenu.defs | 33 + src/defs/GtkRecentChooserWidget.defs | 18 + src/defs/GtkRecentFilter.defs | 107 + src/defs/GtkRecentFilterFlags.defs | 14 + src/defs/GtkRecentInfo.defs | 172 + src/defs/GtkRecentManager.defs | 117 + src/defs/GtkRecentManagerError.defs | 15 + src/defs/GtkRecentSortType.defs | 12 + src/defs/GtkReliefStyle.defs | 11 + src/defs/GtkRequisition.defs | 23 + src/defs/GtkResizeMode.defs | 11 + src/defs/GtkResponseType.defs | 23 + src/defs/GtkRuler.defs | 68 + src/defs/GtkScale.defs | 91 + src/defs/GtkScrollStep.defs | 14 + src/defs/GtkScrollType.defs | 24 + src/defs/GtkScrollbar.defs | 7 + src/defs/GtkScrolledWindow.defs | 142 + src/defs/GtkSelectionData.defs | 147 + src/defs/GtkSelectionMode.defs | 13 + src/defs/GtkSensitivityType.defs | 11 + src/defs/GtkSeparator.defs | 7 + src/defs/GtkSeparatorMenuItem.defs | 14 + src/defs/GtkSeparatorToolItem.defs | 29 + src/defs/GtkSettings.defs | 50 + src/defs/GtkShadowType.defs | 13 + src/defs/GtkSideType.defs | 12 + src/defs/GtkSignalRunType.defs | 14 + src/defs/GtkSizeGroup.defs | 71 + src/defs/GtkSizeGroupMode.defs | 12 + src/defs/GtkSocket.defs | 48 + src/defs/GtkSortType.defs | 10 + src/defs/GtkSpinButton.defs | 242 + src/defs/GtkSpinButtonUpdatePolicy.defs | 10 + src/defs/GtkSpinType.defs | 15 + src/defs/GtkStateType.defs | 13 + src/defs/GtkStatusIcon.defs | 198 + src/defs/GtkStatusbar.defs | 85 + src/defs/GtkStockItem.defs | 13 + src/defs/GtkStyle.defs | 1266 ++++ src/defs/GtkTable.defs | 142 + src/defs/GtkTargetFlags.defs | 10 + src/defs/GtkTargetList.defs | 69 + src/defs/GtkTearoffMenuItem.defs | 14 + src/defs/GtkTextAppearance.defs | 17 + src/defs/GtkTextAttributes.defs | 61 + src/defs/GtkTextBuffer.defs | 801 +++ src/defs/GtkTextBufferTargetInfo.defs | 11 + src/defs/GtkTextChildAnchor.defs | 26 + src/defs/GtkTextDirection.defs | 11 + src/defs/GtkTextIter.defs | 698 +++ src/defs/GtkTextMark.defs | 46 + src/defs/GtkTextSearchFlags.defs | 10 + src/defs/GtkTextTag.defs | 53 + src/defs/GtkTextTagTable.defs | 82 + src/defs/GtkTextView.defs | 596 ++ src/defs/GtkTextWindowType.defs | 15 + src/defs/GtkToggleAction.defs | 61 + src/defs/GtkToggleButton.defs | 103 + src/defs/GtkToggleToolButton.defs | 44 + src/defs/GtkToolButton.defs | 123 + src/defs/GtkToolItem.defs | 190 + src/defs/GtkToolbar.defs | 172 + src/defs/GtkToolbarSpaceStyle.defs | 10 + src/defs/GtkToolbarStyle.defs | 12 + src/defs/GtkTooltips.defs | 62 + src/defs/GtkTreeDragDest.defs | 44 + src/defs/GtkTreeDragSource.defs | 59 + src/defs/GtkTreeIter.defs | 21 + src/defs/GtkTreeModel.defs | 416 ++ src/defs/GtkTreeModelFilter.defs | 116 + src/defs/GtkTreeModelFlags.defs | 10 + src/defs/GtkTreeModelSort.defs | 87 + src/defs/GtkTreePath.defs | 123 + src/defs/GtkTreeRowReference.defs | 62 + src/defs/GtkTreeSelection.defs | 171 + src/defs/GtkTreeSortable.defs | 110 + src/defs/GtkTreeStore.defs | 236 + src/defs/GtkTreeView.defs | 845 +++ src/defs/GtkTreeViewColumn.defs | 353 ++ src/defs/GtkTreeViewColumnSizing.defs | 11 + src/defs/GtkTreeViewDropPosition.defs | 12 + src/defs/GtkTreeViewGridLines.defs | 12 + src/defs/GtkTreeViewMode.defs | 10 + src/defs/GtkUIManager.defs | 213 + src/defs/GtkUIManagerItemType.defs | 18 + src/defs/GtkUnit.defs | 12 + src/defs/GtkUpdateType.defs | 11 + src/defs/GtkVBox.defs | 18 + src/defs/GtkVButtonBox.defs | 14 + src/defs/GtkVPaned.defs | 14 + src/defs/GtkVRuler.defs | 14 + src/defs/GtkVScale.defs | 29 + src/defs/GtkVScrollbar.defs | 17 + src/defs/GtkVSeparator.defs | 14 + src/defs/GtkViewport.defs | 72 + src/defs/GtkVisibility.defs | 11 + src/defs/GtkWidget.defs | 1805 ++++++ src/defs/GtkWidgetFlags.defs | 27 + src/defs/GtkWidgetHelpType.defs | 10 + src/defs/GtkWindow.defs | 821 +++ src/defs/GtkWindowGroup.defs | 32 + src/defs/GtkWindowPosition.defs | 13 + src/defs/GtkWindowType.defs | 10 + src/defs/GtkWrapMode.defs | 12 + src/defs/PangoAlignment.defs | 11 + src/defs/PangoAnalysis.defs | 5 + src/defs/PangoAttr.defs | 18 + src/defs/PangoAttrIterator.defs | 61 + src/defs/PangoAttrList.defs | 87 + src/defs/PangoAttrType.defs | 29 + src/defs/PangoAttribute.defs | 28 + src/defs/PangoColor.defs | 34 + src/defs/PangoContext.defs | 129 + src/defs/PangoCoverage.defs | 74 + src/defs/PangoCoverageLevel.defs | 12 + src/defs/PangoDirection.defs | 15 + src/defs/PangoEllipsizeMode.defs | 12 + src/defs/PangoEngine.defs | 7 + src/defs/PangoEngineLang.defs | 7 + src/defs/PangoEngineShape.defs | 7 + src/defs/PangoFont.defs | 103 + src/defs/PangoFontDescription.defs | 231 + src/defs/PangoFontFace.defs | 48 + src/defs/PangoFontFamily.defs | 48 + src/defs/PangoFontMap.defs | 72 + src/defs/PangoFontMask.defs | 14 + src/defs/PangoFontMetrics.defs | 68 + src/defs/PangoFontset.defs | 59 + src/defs/PangoFontsetSimple.defs | 33 + src/defs/PangoGlyphGeometry.defs | 5 + src/defs/PangoGlyphInfo.defs | 5 + src/defs/PangoGlyphItem.defs | 37 + src/defs/PangoGlyphString.defs | 105 + src/defs/PangoGlyphUnit.defs | 5 + src/defs/PangoItem.defs | 46 + src/defs/PangoLanguage.defs | 40 + src/defs/PangoLayout.defs | 377 ++ src/defs/PangoLayoutIter.defs | 126 + src/defs/PangoLayoutLine.defs | 79 + src/defs/PangoMatrix.defs | 56 + src/defs/PangoRectangle.defs | 11 + src/defs/PangoRenderPart.defs | 12 + src/defs/PangoRenderer.defs | 243 + src/defs/PangoScript.defs | 70 + src/defs/PangoScriptIter.defs | 34 + src/defs/PangoStretch.defs | 17 + src/defs/PangoStyle.defs | 11 + src/defs/PangoTabAlign.defs | 9 + src/defs/PangoTabArray.defs | 98 + src/defs/PangoUnderline.defs | 13 + src/defs/PangoVariant.defs | 10 + src/defs/PangoWeight.defs | 15 + src/defs/PangoWrapMode.defs | 11 + src/defs/ScreenshotCapture.defs | 20 + src/generator/BindingsGenerator.java | 221 + .../codegen/AccessorGenerator.java | 66 + .../operationaldynamics/codegen/ArrayThing.java | 51 + .../codegen/BlacklistedThing.java | 49 + .../codegen/BoxedGenerator.java | 80 + .../operationaldynamics/codegen/BoxedThing.java | 30 + .../codegen/ConstantArrayThing.java | 78 + .../codegen/ConstructorGenerator.java | 103 + .../operationaldynamics/codegen/EnumGenerator.java | 109 + .../com/operationaldynamics/codegen/EnumThing.java | 41 + .../operationaldynamics/codegen/FixmeThing.java | 28 + .../codegen/FlagsGenerator.java | 106 + .../operationaldynamics/codegen/FlagsThing.java | 33 + .../codegen/FunctionGenerator.java | 649 ++ .../codegen/FundamentalArrayThing.java | 84 + .../codegen/FundamentalThing.java | 71 + .../operationaldynamics/codegen/GErrorThing.java | 50 + .../operationaldynamics/codegen/GListThing.java | 63 + .../com/operationaldynamics/codegen/Generator.java | 117 + .../codegen/GetterGenerator.java | 44 + .../codegen/InterfaceGenerator.java | 46 + .../codegen/InterfaceThing.java | 29 + .../codegen/MethodGenerator.java | 45 + .../codegen/ObjectGenerator.java | 90 + .../operationaldynamics/codegen/ObjectThing.java | 26 + .../codegen/ProxiedArrayThing.java | 89 + .../operationaldynamics/codegen/ProxiedThing.java | 32 + .../codegen/SetterGenerator.java | 46 + .../codegen/StringArrayThing.java | 49 + .../operationaldynamics/codegen/StringThing.java | 70 + .../com/operationaldynamics/codegen/Thing.java | 644 ++ .../operationaldynamics/codegen/TypeGenerator.java | 184 + .../codegen/TypedefFundamentalThing.java | 33 + .../operationaldynamics/codegen/ValueThing.java | 34 + .../codegen/VirtualGenerator.java | 262 + .../defsparser/AccessorBlock.java | 50 + .../com/operationaldynamics/defsparser/Block.java | 261 + .../operationaldynamics/defsparser/BoxedBlock.java | 79 + .../defsparser/DefsLineNumberReader.java | 41 + .../defsparser/DefsParseException.java | 37 + .../operationaldynamics/defsparser/DefsParser.java | 369 ++ .../defsparser/DeprecatedException.java | 26 + .../operationaldynamics/defsparser/EnumBlock.java | 67 + .../operationaldynamics/defsparser/FlagsBlock.java | 59 + .../defsparser/FunctionBlock.java | 191 + .../defsparser/GetterBlock.java | 54 + .../defsparser/InterfaceBlock.java | 41 + .../defsparser/MethodBlock.java | 59 + .../defsparser/ObjectBlock.java | 85 + .../defsparser/SetterBlock.java | 40 + .../operationaldynamics/defsparser/TypeBlock.java | 89 + .../defsparser/VirtualBlock.java | 52 + .../com/operationaldynamics/driver/DefsFile.java | 264 + .../driver/ImproperDefsFileException.java | 42 + src/jni/bindings_java.h | 90 + src/jni/bindings_java_convert.c | 340 + src/jni/bindings_java_memory.c | 220 + src/jni/bindings_java_signal.c | 516 ++ src/jni/bindings_java_threads.c | 88 + src/jni/bindings_java_type.c | 138 + src/jni/bindings_java_util.c | 285 + src/jni/gnome_screenshot.h | 35 + src/jni/gnome_screenshot_capture.c | 82 + src/jni/gnome_screenshot_shadow.c | 212 + src/jni/gnome_screenshot_shadow.h | 9 + src/jni/gnome_screenshot_utils.c | 629 ++ src/util/demux/Makefile | 44 + src/util/demux/definitions.py | 590 ++ src/util/demux/defsparser.py | 170 + src/util/demux/demux.py | 34 + src/util/demux/java-gnome.fixes | 210 + src/util/demux/scmexpr.py | 138 + src/util/keyval/keysymsToKeyval.pl | 38 + src/util/missing.defs | 6606 ++++++++++++++++++++ tests/bindings/UnitTests.java | 127 + .../junit/VerboseResultPrinter.java | 174 + .../junit/VerboseTestRunner.java | 136 + .../bindings/com/operationaldynamics/ui/Align.java | 63 + .../bindings/com/operationaldynamics/ui/Text.java | 189 + .../com/operationaldynamics/ui/TextOutput.java | 85 + .../freedesktop/bindings/ValidateEnvironment.java | 40 + tests/bindings/org/gnome/gdk/ValidateBoxeds.java | 57 + .../org/gnome/gdk/ValidateImageHandling.java | 45 + .../org/gnome/gdk/ValidateKeyboardHandling.java | 58 + .../org/gnome/gdk/ValidateScreensAndDisplays.java | 42 + .../bindings/org/gnome/glib/ValidateConstants.java | 136 + .../org/gnome/glib/ValidateGListMethods.java | 94 + .../org/gnome/glib/ValidateMemoryManagement.java | 372 ++ .../org/gnome/glib/ValidateReferenceCounting.java | 54 + tests/bindings/org/gnome/gtk/TestCaseGtk.java | 112 + tests/bindings/org/gnome/gtk/ValidateComboBox.java | 169 + .../org/gnome/gtk/ValidateFileChoosing.java | 92 + .../org/gnome/gtk/ValidateOutParameters.java | 87 + tests/bindings/org/gnome/gtk/ValidatePacking.java | 72 + .../bindings/org/gnome/gtk/ValidateProperties.java | 224 + .../org/gnome/gtk/ValidateResponseType.java | 72 + .../org/gnome/gtk/ValidateSnapshotUtilities.java | 19 + .../bindings/org/gnome/gtk/ValidateStockItems.java | 37 + .../org/gnome/gtk/ValidateThreadStability.java | 99 + .../bindings/org/gnome/gtk/ValidateTreeModel.java | 454 ++ tests/bindings/org/gnome/gtk/ValidateTreeView.java | 33 + tests/defs/AtkCoordType.defs | 10 + tests/defs/AtkImage.defs | 74 + tests/defs/GdkWindowState.defs | 15 + tests/defs/GtkButton.defs | 205 + tests/defs/GtkReliefStyle.defs | 20 + tests/defs/GtkTreeIter.defs | 27 + tests/defs/GtkWidget.defs | 26 + tests/exploration/enums.c | 55 + tests/exploration/pixbuf_formats.c | 45 + .../codegen/ValidateThingUsage.java | 126 + .../codegen/ValidateUtilityMethods.java | 75 + .../defsparser/ValidateBlockUsage.java | 70 + .../defsparser/ValidateDefsParsing.java | 143 + tests/prototype/Designer.java | 78 + tests/prototype/Experiment.java | 122 + tests/prototype/Toggling.java | 150 + tests/prototype/WorkerThreads.java | 125 + tests/prototype/simple.glade | 18 + tests/screenshots/Harness.java | 206 + tests/screenshots/org/gnome/gtk/Snapshot.java | 131 + .../org/gnome/gtk/SnapshotAboutDialog.java | 43 + .../screenshots/org/gnome/gtk/SnapshotButton.java | 36 + .../org/gnome/gtk/SnapshotCalendar.java | 38 + .../org/gnome/gtk/SnapshotComboBox.java | 77 + .../screenshots/org/gnome/gtk/SnapshotDialog.java | 44 + .../org/gnome/gtk/SnapshotEntryRed.java | 44 + .../org/gnome/gtk/SnapshotFileChooserDialog.java | 46 + .../screenshots/org/gnome/gtk/SnapshotHScale.java | 38 + .../org/gnome/gtk/SnapshotInfoMessageDialog.java | 29 + .../gnome/gtk/SnapshotQuestionMessageDialog.java | 28 + .../org/gnome/gtk/SnapshotStatusbar.java | 56 + .../org/gnome/gtk/SnapshotTextComboBox.java | 47 + .../org/gnome/gtk/SnapshotTextComboBoxEntry.java | 44 + .../org/gnome/gtk/SnapshotTreeView.java | 113 + .../screenshots/org/gnome/gtk/SnapshotVScale.java | 39 + .../screenshots/org/gnome/gtk/SnapshotWindow.java | 31 + 1222 files changed, 104852 insertions(+), 82 deletions(-) diff --cc Makefile index 0000000,8781b8a..ada7a99 mode 000000,100644..100644 --- a/Makefile +++ b/Makefile @@@ -1,0 -1,169 +1,169 @@@ + # + # Makefile, part of Equivalence + # + # Copyright (c) 2006-2007 Operational Dynamics Consulting Pty Ltd + # + # The code in this file, and the library it is a part of, are 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 and + # redistribution. + # + + ifdef V + else + MAKEFLAGS=-s + REDIRECT=>/dev/null + endif + + -include .config + + ifdef GCJ + all: build-java build-native + else + all: build-java + endif + + .PHONY: test demo doc clean distlcean install + + + # -------------------------------------------------------------------- + # Source compilation + # -------------------------------------------------------------------- + + build-java: + build/faster + + build-native: .config tmp/gtk-$(APIVERSION).jar + make -f build/gcj.make + + # -------------------------------------------------------------------- + # Install (run as root, or specify DESTDIR on Make command line) + # -------------------------------------------------------------------- + + ifdef GCJ + install: build-java build-native install-dirs install-java install-native + else + install: build-java install-dirs install-java + endif + rm $(DESTDIR)$(PREFIX)/.java-gnome-install-dirs + + install-dirs: $(DESTDIR)$(PREFIX)/.java-gnome-install-dirs + $(DESTDIR)$(PREFIX)/.java-gnome-install-dirs: + @test -d $(DESTDIR)$(PREFIX)/share/java || echo -e "MKDIR\tinstallation directories" + -mkdir -p $(DESTDIR)$(PREFIX) + -touch $@ 2>/dev/null + test -w $@ || ( echo -e "\nYou don't seem to have write permissions to $(DESDIR)$(PREFIX)\nPerhaps you need to be root?\n" && exit 7 ) + mkdir -p $(DESTDIR)$(PREFIX)/share/java - mkdir -p $(DESTDIR)$(PREFIX)/lib ++ mkdir -p $(DESTDIR)$(PREFIX)/lib/jni + + install-java: build-java \ + $(DESTDIR)$(PREFIX)/share/java/gtk-$(APIVERSION).jar \ - $(DESTDIR)$(PREFIX)/lib/libgtkjni-$(APIVERSION).so ++ $(DESTDIR)$(PREFIX)/lib/jni/libgtkjni-$(APIVERSION).so + + install-native: build-native install-java \ + $(DESTDIR)$(PREFIX)/lib/libgtkjava-$(APIVERSION).so + + $(DESTDIR)$(PREFIX)/share/java/gtk-$(APIVERSION).jar: tmp/gtk-$(APIVERSION).jar + @echo -e "INSTALL\t$@" + cp -f $< $@ + @echo -e "SYMLINK\t$(@D)/gtk.jar -> gtk-$(APIVERSION).jar" + cd $(@D) && rm -f gtk.jar && ln -s gtk-$(APIVERSION).jar gtk.jar + -$(DESTDIR)$(PREFIX)/lib/libgtkjni-$(APIVERSION).so: tmp/libgtkjni-$(APIVERSION).so ++$(DESTDIR)$(PREFIX)/lib/jni/libgtkjni-$(APIVERSION).so: tmp/libgtkjni-$(APIVERSION).so + @echo -e "INSTALL\t$@" + cp -f $< $@ + + $(DESTDIR)$(PREFIX)/lib/libgtkjava-$(APIVERSION).so: tmp/libgtkjava-$(APIVERSION).so + @echo -e "INSTALL\t$@" + cp -f $< $@ + + + # -------------------------------------------------------------------- + # Tests + # -------------------------------------------------------------------- + + test: + build/faster test + + demo: + build/faster demo + + # -------------------------------------------------------------------- + # Documentation generation + # -------------------------------------------------------------------- + + ifdef V + else + JAVADOC:=$(JAVADOC) -quiet + endif + + doc: + @echo "$(JAVADOC_CMD) doc/api/*.html" + $(JAVADOC) \ + -d doc/api \ + -classpath tmp/bindings \ + -public \ + -nodeprecated \ + -source 1.4 \ + -notree \ + -noindex \ + -nohelp \ + -version \ + -author \ + -windowtitle "java-gnome $(APIVERSION) API Documentation" \ + -doctitle "<h1>java-gnome $(APIVERSION) API Documentation</h1>" \ + -header "java-gnome version $(VERSION)" \ + -footer "<img src=\"/images/java-gnome_JavaDocLogo.png\" style=\"padding-right:25px;\"><br> <span style=\"font-family: Arial; font-style: normal; font-size: large;\">java-gnome</span>" \ + -breakiterator \ + -stylesheetfile src/bindings/stylesheet.css \ + -overview src/bindings/overview.html \ + -sourcepath src/bindings \ + -subpackages org \ + -exclude "org.freedesktop.bindings" \ + $(REDIRECT) + + + # + # Remember that if you bump the version number you need to commit the change + # and re-./configure before being able to run this! On the other hand, we + # don't have to distclean before calling this. + # + dist: all + @echo -e "CHECK\tfully committed state" + bzr diff > /dev/null || ( echo -e "\nYou need to commit all changes before running make dist\n" ; exit 4 ) + @echo -e "EXPORT\ttmp/java-gnome-$(VERSION)" + -rm -rf tmp/java-gnome-$(VERSION) + bzr export --format=dir tmp/java-gnome-$(VERSION) + @echo -e "RM\tnon essential files" + rm -r tmp/java-gnome-$(VERSION)/web + rm tmp/java-gnome-$(VERSION)/.aspell.en.pws + @echo -e "TAR\tjava-gnome-$(VERSION).tar.bz2" + tar cjf java-gnome-$(VERSION).tar.bz2 -C tmp java-gnome-$(VERSION) + rm -r tmp/java-gnome-$(VERSION) + + clean: + @echo -e "RM\tgenerated code" + rm -rf generated/bindings/* + @echo -e "RM\tcompiled output" + rm -rf tmp/generator/* tmp/bindings/* tmp/tests/* + rm -rf tmp/include/* tmp/native/* tmp/objects/* + @echo -e "RM\ttemporary files" + rm -rf tmp/stamp/* + rm -f hs_err_* + @echo -e "RM\tbuilt .jar and .so" + rm -f tmp/gtk-*.jar \ + tmp/libgtkjni-*.so \ + tmp/libgtkjava-*.so + + distclean: clean + @echo -e "RM\tbuild configuration information" + -rm -f .config .config.tmp + @echo -e "RM\tgenerated documentation" + -rm -rf doc/api/* + -rm -f java-gnome-*.tar.bz2 + @echo -e "RM\ttemporary directories" + -rm -rf tmp generated + @echo -e "RM\tglade cruft" + find . -name '*.glade.bak' -o -name '*.gladep*' -type f | xargs rm -f + + # vim: set filetype=make textwidth=78 nowrap: diff --cc debian/changelog index dbfec36,0000000..0775bca mode 100644,000000..100644 --- a/debian/changelog +++ b/debian/changelog @@@ -1,11 -1,0 +1,11 @@@ - java-gnome (2.8.4) unstable; urgency=low ++java-gnome (4.0.6-1) unstable; urgency=low + - * Replaced java-gnome source package with libgtk-java, libgnome-java, - libglade-java and libgconf-java source packages to follow new upstream - packaging and release stategy. all-in-one java-gnome packages are no - longer available. - * Took the opportunity to fix binary package names and version to follow - upstream more closely. Replaced the old binary packages with dummy - packages to aid upgrades (from this source package) ++ [ Manu Mahajan ] ++ * Initial release, Closes: Bug#467442 ++ * Changed location of libgtkjni from usr/lib to usr/lib/jni ++ * Tweaked the MakeFile to build with java-gcj-compat-dev + - -- Mark Howard <[email protected]> Tue, 8 Mar 2005 21:43:58 +0000 ++ [ Thomas Girard ] ++ * Backport changeset 449: "Remove 15 warnings related to sentinels" ++ ++ -- Manu Mahajan <[email protected]> Mon, 24 Mar 2008 01:01:11 +0530 diff --cc debian/compat index b8626c4,0000000..7ed6ff8 mode 100644,000000..100644 --- a/debian/compat +++ b/debian/compat @@@ -1,1 -1,0 +1,1 @@@ - 4 ++5 diff --cc debian/control index b04947c,0000000..c1e6dd4 mode 100644,000000..100644 --- a/debian/control +++ b/debian/control @@@ -1,70 -1,0 +1,22 @@@ +Source: java-gnome - Section: libs +Priority: optional - Maintainer: Mark Howard <[email protected]> - Build-Depends: debhelper (>> 4), cdbs - Standards-Version: 3.6.1 - - Package: libgnome2-java - Section: libs - Architecture: all - Depends: libgnome-java - Description: Dummy package to aid upgrade - - Package: libgtk2-java - Section: libs - Architecture: all - Depends: libgnome-java - Description: Dummy package to aid upgrade - - Package: libglade2-java ++Maintainer: Debian Java maintainers <[email protected]> ++Uploaders: Manu Mahajan <[email protected]>, Thomas Girard <[email protected]> ++Build-Depends: debhelper (>= 5), libgtk2.0-dev, junit, libglade2-dev, libgnome2-0, java-gcj-compat-dev ++Standards-Version: 3.7.3 +Section: libs - Architecture: any - Depends: libglade-java - Description: Dummy package to aid upgrade + - Package: libgnome2-jni ++Package: libjava-gnome-java +Section: libs +Architecture: any - Depends: libgnome-jni - Description: Dummy package to aid upgrade - - Package: libgtk2-jni - Section: libs - Architecture: any - Depends: libgtk-jni - Description: Dummy package to aid upgrade - - Package: libjava-gnome-doc - Section: doc - Depends: libgtk-java, libgnome-java, libgconf-java, libglade-java - Architecture: all - Description: Dummy package to aid upgrade - - Package: libgnome0-java - Section: libs - Architecture: all - Description: Dummy package to aid upgrade - - Package: libgtk0-java - Section: libs - Architecture: all - Description: Dummy package to aid upgrade - - Package: libglade0-java - Section: libs - Architecture: all - Depends: libglade2-java - Description: Dummy package to aid upgrade - - Package: libgnome0-jni - Section: libs - Architecture: all - Depends: libgnome2-jni - Description: Dummy package to aid upgrade - - Package: libgtk0-jni - Section: libs - Architecture: all - Depends: libgtk2-jni - Description: Dummy package to aid upgrade ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Description: The java-gnome language bindings project ++ These are the Java bindings for GTK+ and GNOME! Featuring a robust ++ engineering design, completely generated internals, a lovingly crafted ++ layer presenting the public API, and steadily increasing coverage of ++ the underlying libraries. ++ . ++ You can use java-gnome to develop sophisticated user interfaces for ++ Linux applications so that they richly integrate with the GNOME Desktop ++ while leveraging the power of the Java language and your expertise with ++ it. diff --cc debian/copyright index 864175c,0000000..bd51900 mode 100644,000000..100644 --- a/debian/copyright +++ b/debian/copyright @@@ -1,12 -1,0 +1,99 @@@ - This package was debianized by Mark Howard <[email protected]> on - Fri, 13 Sep 2002 13:35:19 +0100. ++This package was debianized by Manu Mahajan <[email protected]> on ++Mon, 25 Feb 2008 00:43:11 +0530. + - It was downloaded from http://java-gnome.sf.net ++It was downloaded from http://ftp.gnome.org/pub/gnome/sources/java-gnome/4.0/ + - Upstream Authors: Java-Gnome Hackers [email protected] ++Upstream Authors: ++ Andrew Cowie <[email protected]> ++ Srichand Pendyala <[email protected]> ++ Vreixo Formoso Lopes <[email protected]> ++ Sebastian Mancke <[email protected]> + - Copyright: ++Copyright Holders: ++ Copyright (c) 2006-2008 Operational Dynamics Consulting Pty Ltd, and ++ Others. ++ Copyright (c) 2004-2008 Operational Dynamics Consulting Pty Ltd ++ Copyright (c) 1997-1998 Andrew Cowie ++ Copyright (c) 1998-2005 The java-gnome Team ++ Copyright (c) 2007 Vreixo Formoso Lopes ++ Copyright (C) 2006 Emmanuele Bassi ++ Copyright (C) 2001-2006 Jonathan Blandford ++ Copyright (c) 1998-2006 James Henstridge, John Finlay, and Others + - This is licensed under the terms of the GNU Lesser General public license, which - can be found on Debian systems in /usr/share/common-licenses/LGPL ++License: ++ java-gnome is Logiciel Libre and is Open Source; you can ++ redistribute it and/or modify it under the terms of the GNU General ++ Public License, version 2("GPL"). + ++ Linking this library statically or dynamically with other modules is ++ making a combined work based on this library. Thus, the terms and ++ conditions of the GPL cover the whole combination. ++ ++ As a special exception, the copyright holders of this library give ++ you permission to link this library with independent modules to ++ produce an executable, regardless of the license terms of these ++ independent modules, and to copy and distribute the resulting ++ executable under terms of your choice, provided that you also meet, ++ for each linked independent module, the terms and conditions of the ++ license of that module. An independent module is a module which is ++ not derived from or based on this library. If you modify this ++ library, you may extend this exception to your version of the ++ library, but you are not obligated to do so. If you do not wish to ++ do so, delete this exceptionstatement from your version. ++ ++ java-gnome is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GPL for ++ more details. In particular, note that if you use this and lose your ++ data, you're on your own. ++ ++ You should have received a copy of the GNU General Public License ++ with the Debian GNU/Linux distribution in file ++ /usr/share/common-licenses/GPL. If not, write to the Free Software ++ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, ++ USA. ++ ++On Debian systems, the complete text of the GNU General Public ++License, version 2, can be found in /usr/share/common-licenses/GPL-2. ++ ++ ++java-gnome sources include markdown (in lib/utilities/markdown): ++Authors: ++ John Gruber <http://daringfireball.net> ++ Michel Fortin <http://www.michelf.com/> ++ ++Copyright Holders: ++ Copyright (c) 2003-2006 John Gruber ++ Copyright (c) 2004-2006 Michel Fortin ++ ++License: ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are ++ met: ++ ++ * Redistributions of source code must retain the above copyright notice, ++ this list of conditions and the following disclaimer. ++ ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++ ++ * Neither the name "Markdown" nor the names of its contributors may ++ be used to endorse or promote products derived from this software ++ without specific prior written permission. ++ ++ This software is provided by the copyright holders and contributors "as ++ is" and any express or implied warranties, including, but not limited ++ to, the implied warranties of merchantability and fitness for a ++ particular purpose are disclaimed. In no event shall the copyright owner ++ or contributors be liable for any direct, indirect, incidental, special, ++ exemplary, or consequential damages (including, but not limited to, ++ procurement of substitute goods or services; loss of use, data, or ++ profits; or business interruption) however caused and on any theory of ++ liability, whether in contract, strict liability, or tort (including ++ negligence or otherwise) arising in any way out of the use of this ++ software, even if advised of the possibility of such damage. ++ ++ ++The Debian packaging is (C) 2008, Manu Mahajan <[email protected]> ++and is licensed under the GPL, see above. diff --cc debian/dirs index 0000000,0000000..956d28f new file mode 100644 --- /dev/null +++ b/debian/dirs @@@ -1,0 -1,0 +1,2 @@@ ++usr/lib/jni ++usr/share/java diff --cc debian/docs index 0000000,0000000..50bd824 new file mode 100644 --- /dev/null +++ b/debian/docs @@@ -1,0 -1,0 +1,2 @@@ ++NEWS ++README diff --cc debian/rules index e6192f6,0000000..c35a9a5 mode 100755,000000..100755 --- a/debian/rules +++ b/debian/rules @@@ -1,3 -1,0 +1,70 @@@ +#!/usr/bin/make -f ++# -*- makefile -*- ++# Sample debian/rules that uses debhelper. ++# This file was originally written by Joey Hess and Craig Small. ++# As a special exception, when this file is copied by dh-make into a ++# dh-make output file, you may use that output file without restriction. ++# This special exception was added by Craig Small in version 0.37 of dh-make. + - include /usr/share/cdbs/1/rules/debhelper.mk ++ ++#configure ++.config: ++ dh_testdir ++ # Add here commands to configure the package. ++ ./configure --prefix=/usr jdk=/usr/lib/jvm/java-gcj compiler=ecj ++ ++ ++build: build-stamp ++build-stamp: .config ++ dh_testdir ++ ++ # Add here commands to compile the package. ++ $(MAKE) ++ ++ touch $@ ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ ++ # Add here commands to clean up after the build process. ++ $(MAKE) distclean ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Add here commands to install the package into debian/tmp ++ $(MAKE) DESTDIR=debian/libjava-gnome-java install ++ # We don't install this one ++ -rm -f debian/libjava-gnome-java/usr/lib/libgtkjava-4.0.so ++ ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs ++ dh_installdocs ++ dh_install ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_makeshlibs ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install diff --cc src/generator/com/operationaldynamics/codegen/FunctionGenerator.java index 0000000,8d39f42..a6f2cc2 mode 000000,100644..100644 --- a/src/generator/com/operationaldynamics/codegen/FunctionGenerator.java +++ b/src/generator/com/operationaldynamics/codegen/FunctionGenerator.java @@@ -1,0 -1,624 +1,649 @@@ + /* + * FunctionGenerator.java + * - * Copyright (c) 2007 Operational Dynamics Consulting Pty Ltd - * Copyright (c) 2007 Vreixo Formoso ++ * Copyright (c) 2007-2008 Operational Dynamics Consulting Pty Ltd ++ * Copyright (c) 2007 Vreixo Formoso + * + * The code in this file, and the library it is a part of, are 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 and + * redistribution. + */ + package com.operationaldynamics.codegen; + + import java.io.PrintWriter; + + import com.operationaldynamics.driver.DefsFile; + + /** + * Generate Java and C code for constructors, methods and other kind of + * functions. + * <p> + * Subclasses can override the individual steps of the generation sequence if + * they wish, however adjusting input passing up to this classes's constructor + * has been thus far been enough for constructors blocks and methods blocks. + * + * @author Andrew Cowie + * @author Vreixo Formoso + */ + public class FunctionGenerator extends Generator + { + /** + * The Thing describing the object we are generating code relative to. + */ + protected final ProxiedThing proxyType; + + /** + * The name of the method that is exposed package visible to bindings + * hackers. Expected to be overridden by subclasses such as + * ConstuctorGenerator. + */ + protected String translationMethodName; + + /** + * Not final so that we can play with the return type variable in the JNI + * conversion code section. + */ + protected Thing returnType; + + protected final String nativeMethodName; + + /** + * These are ordered collections so that sublcasses like MethodGenerator + * can insert the reference-to-self as a first argument. + */ + protected final Thing[] parameterTypes; + + protected final String[] parameterNames; + + /** + * This is filled with true if the parameter can be null (indicated with a + * null-ok in .defs). + */ + protected final boolean[] parameterNullOk; + + /** + * If a blacklistedType type is detected in this block, set it here. + */ + private Thing blacklistedType; + ++ private final boolean addSentinal; ++ + /** + * @param data + * the information about the class to which the block we are + * generating code for pertains. + * @param blockName + * however the .defs data named this block. Usually it's a + * "short" name such as "set_label". Will be transformed into + * the translation method name. + * @param gReturnType + * the return type, as specified in the .defs data + * @param cFunctionName + * the C function name, as specified in the .defs data. This + * will be used to name the native method. + * @param gParameters + * an array of String[2] arrays, listing the type and name of + * each parameter. + */ + public FunctionGenerator(final DefsFile data, final String blockName, final String gReturnType, + final String cFunctionName, final String[][] gParameters) { + super(data); ++ final int len; + + this.proxyType = (ProxiedThing) data.getType(); + + this.translationMethodName = toCamel(blockName); + + this.returnType = Thing.lookup(gReturnType); + + this.nativeMethodName = cFunctionName; + - parameterTypes = new Thing[gParameters.length]; - parameterNames = new String[gParameters.length]; - parameterNullOk = new boolean[gParameters.length]; ++ /* ++ * If ... is passed through as the last parameter, it means that we ++ * have a varargs and will need to a) add a NULL sentinel to the arg ++ * list, and b) chop this pseudo-parameter off the end of the array. ++ * This is a bit ugly, but the alternative was adding a boolean to ++ * *every* Generator constructor. This is better: varargs *is* a ++ * parameter type, and one we may someday choose to deal with. ++ */ ++ ++ if ((gParameters.length > 0) && ("...".equals(gParameters[gParameters.length - 1][0]))) { ++ this.addSentinal = true; ++ len = gParameters.length - 1; ++ } else { ++ this.addSentinal = false; ++ len = gParameters.length; ++ } ++ ++ parameterTypes = new Thing[len]; ++ parameterNames = new String[len]; ++ parameterNullOk = new boolean[len]; + - for (int i = 0; i < gParameters.length; i++) { ++ for (int i = 0; i < len; i++) { + parameterTypes[i] = Thing.lookup(gParameters[i][0]); + parameterNames[i] = toCamel(gParameters[i][1]); + parameterNullOk[i] = "yes".equals(gParameters[i][2]); + } + + blacklistedType = null; + } + + protected void translationMethodDeclaration(PrintWriter out) { + boolean hasGError = false; + + out.print("\n"); + out.print(" "); + out.print("static final "); + out.print(returnType.javaTypeInContext(data)); + out.print(" "); + out.print(translationMethodName); + + out.print("("); + + for (int i = 0; i < parameterTypes.length; i++) { + if (parameterTypes[i] instanceof GErrorThing) { + hasGError = true; + continue; + } + + if (i > 0) { + out.print(", "); + } + + out.print(parameterTypes[i].javaTypeInContext(data)); + out.print(" "); + out.print(parameterNames[i]); + } + + out.print(")"); + + if (hasGError && !blockContainsBlacklistedThings()) { + out.print(" throws GlibException"); + } + + } + + protected void translationMethodThrowBlacklisted(PrintWriter out) { + out.print(" throws BlacklistedMethodError {\n"); + + out.print(" "); + out.print("throw new BlacklistedMethodError(\""); + out.print(blacklistedType.gType); + out.print("\");\n"); + + out.print(" "); + out.print("}\n"); + } + + protected void translationMethodConversionCode(PrintWriter out) { + int declarations = 0; + + out.print(" {\n"); + + /* + * Declare translation variables as necessary + */ + + if (!returnType.javaType.equals("void")) { + out.print(" "); + out.print(returnType.nativeType); + out.print(" result;\n"); + declarations++; + } + + for (int i = 0; i < parameterTypes.length; i++) { + if (parameterTypes[i] instanceof GErrorThing) { + continue; + } + if (parameterTypes[i].needExtraTranslation()) { + out.print(" "); + out.print(parameterTypes[i].nativeType); + out.print(" _" + parameterNames[i] + ";\n"); + declarations++; + } + } + + if (declarations > 0) { + out.print("\n"); + } + + /* + * Guard against null in parameters that can't be null + */ + for (int i = 0; i < parameterTypes.length; i++) { + if (parameterTypes[i] instanceof GErrorThing) { + continue; + } + if (!parameterNullOk[i] && !(parameterTypes[i] instanceof FundamentalThing)) { + out.print(" if (" + parameterNames[i] + " == null) {\n"); + out.print(" throw new IllegalArgumentException(\"" + parameterNames[i] + + " can't be null\");\n"); + out.print(" }\n\n"); + } + } + + /* + * convert (translate) variables from public Java to JNI boundary + * crossing (ie, out-parameters) + */ + + for (int i = 0; i < parameterTypes.length; i++) { + if (parameterTypes[i] instanceof GErrorThing) { + continue; + } + if (parameterTypes[i].needExtraTranslation()) { + out.print(" "); + out.print("_" + parameterNames[i] + " = "); + out.print(parameterTypes[i].extraTranslationToNative(parameterNames[i])); + out.print(";\n\n"); + } + } + + /* + * And now enter the GDK lock prior to making the native calls. FUTURE + * this might have to be conditional if we ever have an environment + * where there is strictly zero possibility of a library depending on + * GTK. At the moment we're not allowing that as a strict KISS + * measure, and besides, most of the GNOME libraries need to be thread + * safe via the global GDK lock regardless. + */ + + out.print(" "); + out.print("synchronized (lock) {\n"); + } + + protected void translationMethodNativeCall(PrintWriter out) { + out.print(" "); + if (!returnType.javaType.equals("void")) { + out.print("result = "); + } + out.print(nativeMethodName); + out.print("("); + + for (int i = 0; i < parameterTypes.length; i++) { + if (parameterTypes[i] instanceof GErrorThing) { + continue; + } + if (i > 0) { + out.print(", "); + } + + out.print(parameterTypes[i].translationToNative(parameterNames[i])); + } + + out.print(");\n"); + } + + protected void translationMethodParamConversion(PrintWriter out) { + for (int i = 0; i < parameterTypes.length; i++) { + if (parameterTypes[i] instanceof GErrorThing) { + continue; + } + if (parameterTypes[i].needExtraTranslation()) { + out.print(" "); + out.print(parameterTypes[i].extraTranslationToJava(parameterNames[i], data)); + out.print(";\n"); + } + } + } + + protected void translationMethodReturnCode(PrintWriter out) { + if (!returnType.nativeType.equals("void")) { + out.print("\n"); + out.print(" "); + out.print("return "); + out.print(returnType.translationToJava("result", data)); + out.print(";\n"); + } + out.print(" }\n"); + out.print(" }\n"); + } + + protected void nativeMethodDeclaration(PrintWriter out) { + boolean hasGError = false; + + out.print(" "); + out.print("private static native final "); + out.print(returnType.nativeType); + out.print(" "); + out.print(nativeMethodName); + out.print("("); + + for (int i = 0; i < parameterTypes.length; i++) { + if (parameterTypes[i] instanceof GErrorThing) { + hasGError = true; + continue; + } + if (i > 0) { + out.print(", "); + } + + out.print(parameterTypes[i].nativeType); + out.print(" "); + out.print(parameterNames[i]); + } + + if (hasGError) { + out.print(") throws GlibException;\n"); + } else { + out.print(");\n"); + } + } + + protected void jniFunctionDeclaration(PrintWriter out) { + out.print("\n"); + out.print("JNIEXPORT "); + out.print(returnType.jniType); + out.print(" JNICALL\n"); + + out.print("Java_"); + out.print(encodeJavaClassName(proxyType.bindingsPackage, proxyType.bindingsClass)); + out.print("_"); + out.print(encodeJavaMethodName(nativeMethodName)); + out.print("\n(\n"); + out.print("\tJNIEnv* env,\n"); + out.print("\tjclass cls"); + + for (int i = 0; i < parameterTypes.length; i++) { + if (parameterTypes[i] instanceof GErrorThing) { + continue; + } + out.print(",\n\t"); + + out.print(parameterTypes[i].jniType); + out.print(" _"); + out.print(parameterNames[i]); + } + + out.print("\n)\n{\n"); + } + + protected void jniFunctionConversionCode(PrintWriter out) { + /* + * Declare conversion variables as necessary + */ + if (!returnType.javaType.equals("void")) { + out.print("\t"); + out.print(returnType.cType); + out.print(" result;\n"); + } + + for (int i = 0; i < parameterTypes.length; i++) { + out.print("\t"); + + out.print(parameterTypes[i].cType); + out.print(" "); + out.print(parameterNames[i]); + if (parameterTypes[i] instanceof GErrorThing) { + out.print(" = NULL"); + } + out.print(";\n"); + } + + for (int i = 0; i < parameterTypes.length; i++) { + if (parameterTypes[i] instanceof GErrorThing) { + continue; + } + /* + * Comment + */ + out.print("\n\t// convert parameter "); + out.print(parameterNames[i]); + out.print("\n"); + + /* + * If a parameter can be null, we need an extra if to avoid the + * conversion if it is in fact NULL + */ + if (parameterNullOk[i] && !parameterTypes[i].jniConversionHandlesNull()) { + out.print("\tif (_" + parameterNames[i] + " == NULL) {\n"); + out.print("\t\t" + parameterNames[i] + " = NULL;\n"); + out.print("\t} else {\n"); + out.print("\t"); + } + + /* + * variable equals + */ + out.print("\t"); + out.print(parameterNames[i]); + + /* + * always a cast + */ + out.print(" = ("); + out.print(parameterTypes[i].cType); + out.print(") "); + + /* + * and now a type specific decode. For many types, the cast is + * enough, so it's just the plain name. + */ + + out.print(parameterTypes[i].jniConversionDecode(parameterNames[i])); + out.print(";\n"); + if (parameterTypes[i].jniConversionCanFail()) { + jniReturnIfExceptionThrown(out, i); + } + + if (parameterNullOk[i] && !parameterTypes[i].jniConversionHandlesNull()) { + /* close the "else" */ + out.print("\t}\n"); + } + } + } + + /** + * If a JNI access function hits a problem (ie, OutOfMemoryError) it needs + * to exit immediately. A Java Exception is already thown, so we just need + * to bail. This is tricky, however, since the return statement must + * return something of the return type of the function. + * + * @param i + * the index into the parameterNames array (you're calling this + * from inside a for loop iterating over the parameters). + */ + private void jniReturnIfExceptionThrown(PrintWriter out, int i) { + String extraTab; + + /* + * When the parameter can be null, we need an extra tab because of the + * if. + */ + extraTab = parameterNullOk[i] && !parameterTypes[i].jniConversionHandlesNull() ? "\t" : ""; + + out.print(extraTab + "\tif ("); + out.print(parameterNames[i]); + out.print(" == NULL) {\n"); + out.print(extraTab + "\t\treturn"); + + if (!("void".equals(returnType.jniType))) { + out.print(" "); + out.print(returnType.jniReturnErrorValue()); + } + + out.print("; // Java Exception already thrown\n"); + out.print(extraTab + "\t}\n"); + } + + protected void jniFunctionLibraryCall(PrintWriter out) { + out.print("\n"); + out.print("\t// call function\n"); + + out.print("\t"); + if (!returnType.jniType.equals("void")) { + out.print("result = "); + } + out.print(nativeMethodName); + out.print("("); + + for (int i = 0; i < parameterTypes.length; i++) { + if (i > 0) { + out.print(", "); + } + + if (parameterTypes[i] instanceof GErrorThing) { + /* + * We pass the GError address + */ + out.print("&" + parameterNames[i]); + } else { + out.print(parameterNames[i]); + } + + } ++ ++ if (addSentinal) { ++ out.print(", NULL"); ++ } ++ + out.print(");\n"); + } + + /** + * Cleanup and return the result if not a void function. + */ + protected void jniFunctionReturnCode(PrintWriter out) { + String cleanup; + String paramGError = null; + + /* + * type specific cleanup: + */ + + for (int i = 0; i < parameterTypes.length; i++) { + + if (parameterTypes[i] instanceof GErrorThing) { + paramGError = parameterNames[i]; + continue; + } + + out.print("\n"); + out.print("\t// cleanup parameter "); + out.print(parameterNames[i]); + out.print("\n"); + + cleanup = parameterTypes[i].jniConversionCleanup(parameterNames[i]); + + if (cleanup == null) { + continue; + } + + /* + * clean-up is not needed when the parameter is null + */ + if (parameterNullOk[i] && !parameterTypes[i].jniConversionHandlesNull()) { + out.print("\tif (" + parameterNames[i] + " != NULL) {\n"); + out.print("\t"); + } + out.print("\t"); + out.print(cleanup); + out.print(";\n"); + if (parameterNullOk[i] && !parameterTypes[i].jniConversionHandlesNull()) { + out.print("\t}\n"); + } + } + + /* + * When the function takes a GError** as a parameter, we need to check + * if the function has efectivelly thrown an error. After doing the + * needed clean-up, we check for that situation and throw an exception + * from JNI side. + */ + if (paramGError != null) { + out.print("\n"); + out.print("\t// check for error\n"); + + out.print("\tif (" + paramGError + ") {\n"); + + out.print("\t\tbindings_java_throw_gerror(env, "); + out.print(paramGError); + out.print(");\n"); + out.print("\t\treturn"); + if (!returnType.jniType.equals("void")) { + out.print(" " + returnType.jniReturnErrorValue()); + } + out.print(";\n"); + out.print("\t}\n"); + } + + /* + * return result if applicable. Specific code for certain types; most + * others, just a cast. + */ + + if (!returnType.jniType.equals("void")) { + out.print("\n"); + out.print("\t// and finally\n"); + + out.print("\treturn "); + + out.print("("); + out.print(returnType.jniType); + out.print(") "); + out.print(returnType.jniReturnEncode("result")); + out.print(";\n"); + } + out.print("}\n"); + } + + /** + * Quickly scan the type information to see if there is a blacklistedType + * type present. If so, we use that to output a throws declaration instead + * of a real method block. As this gets called twice, we could cache this, + * but whatever. + */ + private boolean blockContainsBlacklistedThings() { + if (returnType.blacklisted) { + blacklistedType = returnType; + return true; + } + for (int i = 0; i < parameterTypes.length; i++) { + if (parameterTypes[i].blacklisted) { + blacklistedType = parameterTypes[i]; + return true; + } + } + return false; + } + + /** + * See {@link DefsFile#generatePublicLayer(PrintWriter)} for a discussion + * of why this is not to be touched. I'm serious. Don't even think about + * it. + */ + public final void writePublicCode(final PrintWriter out) { + System.err.println("Not paying attention, are we? Abort."); + System.exit(2); + } + + public void writeTranslationCode(final PrintWriter out) { + translationMethodDeclaration(out); + + if (blockContainsBlacklistedThings()) { + translationMethodThrowBlacklisted(out); + return; + } + + translationMethodConversionCode(out); + translationMethodNativeCall(out); + translationMethodParamConversion(out); + translationMethodReturnCode(out); + + out.print("\n"); + + nativeMethodDeclaration(out); + } + + public void writeJniCode(final PrintWriter out) { + if (blockContainsBlacklistedThings()) { + return; + } + + jniFunctionDeclaration(out); + jniFunctionConversionCode(out); + jniFunctionLibraryCall(out); + jniFunctionReturnCode(out); + } + } diff --cc src/generator/com/operationaldynamics/defsparser/FunctionBlock.java index 0000000,bc22799..8849ed9 mode 000000,100644..100644 --- a/src/generator/com/operationaldynamics/defsparser/FunctionBlock.java +++ b/src/generator/com/operationaldynamics/defsparser/FunctionBlock.java @@@ -1,0 -1,157 +1,191 @@@ + /* + * FunctionBlock.java + * - * Copyright (c) 2007 Operational Dynamics Consulting Pty Ltd ++ * Copyright (c) 2007-2008 Operational Dynamics Consulting Pty Ltd + * + * The code in this file, and the library it is a part of, are 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 and + * redistribution. + */ + package com.operationaldynamics.defsparser; + + import java.util.ArrayList; + import java.util.List; + + import com.operationaldynamics.codegen.ConstructorGenerator; + import com.operationaldynamics.codegen.FunctionGenerator; + import com.operationaldynamics.codegen.Generator; + import com.operationaldynamics.codegen.InterfaceThing; + import com.operationaldynamics.codegen.Thing; + import com.operationaldynamics.driver.DefsFile; + + /** + * A .defs (define-function...) block, and the superclass for other entities + * that are represented in C with functions. This also includes functions with + * the "is-constructor-of" attributes, i.e. constructors. + * + * @author Andrew Cowie + * @author Vreixo Formoso + */ + public class FunctionBlock extends Block + { + /** + * Strictly speaking, this isn't here, but down in MethodBlock and + * VirtualBlock. But it needs to be figured out before FunctionGenerator + * can be used in a (define-function ...), and it's present for all the + * sub block types. + */ + protected String ofObject; + + protected String returnType; + + protected String cName; + + protected String[][] parameters; + + protected String callerOwnsReturn; + ++ protected String varargs; ++ + protected String isConstructorOf; + + FunctionBlock(final String blockName, final List characteristics, final List parameters) { + super(blockName, characteristics); + + processParameters(parameters); ++ ++ if (varargs != null) { ++ appendVarargsMark(); ++ } + } + + final void setOfObject(final String ofObject) { + this.ofObject = ofObject; + } + + private void processParameters(final List parameters) { + this.parameters = (String[][]) parameters.toArray(new String[parameters.size()][]); + } + + protected final void setCallerOwnsReturn(final String callerOwnsReturn) { + this.callerOwnsReturn = callerOwnsReturn; + } + + protected final void setIsConstructorOf(final String isConstructorOf) { + this.isConstructorOf = isConstructorOf; + } + + protected final void setCName(final String name) { + this.cName = name; + } + + protected final void setReturnType(final String returnType) { + this.returnType = returnType; + } + + /* - * Not modelled in java-gnome at this time ++ * We don't model variable length arguments in java-gnome, but we do need ++ * to pass this along so that we can stick a NULL as a last argument to ++ * avoid "warning: not enough variable arguments to fit a sentinel" from ++ * the C compiler. + */ - protected final void setVarargs(final String value) {} ++ protected final void setVarargs(final String value) { ++ this.varargs = value; ++ } + + /** + * Only the TypeBlock class hierarchy can create and return Things that + * match a given Block. + */ + public Thing createThing() { + throw new UnsupportedOperationException(); + } + + /* + * Special cases will probably be needed for at least VirtualBlock, but + * this is a good start. + */ + public List usesTypes() { + List types; + Thing t; + + types = new ArrayList(parameters.length + 1); + + /* + * For constructors, our translation layer method will return long and + * not the actual type, so we don't need to import it. + */ + if (isConstructorOf == null) { + t = Thing.lookup(returnType).getTypeToImport(); + if (t != null) { + types.add(t); + } + } + + for (int i = 0; i < parameters.length; i++) { + t = Thing.lookup(parameters[i][0]); + t = t.getTypeToImport(); + if (t == null) { + continue; + } + types.add(t); + + if (t instanceof InterfaceThing) { + types.add(Thing.lookup("GObject*")); + } + } + + return types; + } + + /** + * Load the reference-to-self that all "method" functions start with onto + * the beginning of the parameters List. Used by MethodBlock and + * AccessorBlock, in case you're wondering what this is doing here. + */ + protected void prependReferenceToSelf() { + String[][] target; + + target = new String[parameters.length + 1][3]; + System.arraycopy(parameters, 0, target, 1, parameters.length); + + target[0][0] = addPointerSymbol(ofObject); + target[0][1] = "self"; + target[0][2] = "no"; /* self can't never be null */ + + parameters = target; + } + ++ /** ++ * The varrags case is handled, essentially, an artificial last parameter. ++ * This utility method appends a marker to show that the function being ++ * described by this Block was declared as taking variable arguments. We ++ * do not actually present this with any kind of public API (and may never ++ * do so), but we do need to deal with this at the C library call layer ++ * because those functions require a NULL in the argument list to signal ++ * the end of the list. ++ * ++ * The FunctionGenerator constructor will strip it off the end of the ++ * parameters list (thus allowing us to avoid needing a SentinalThing). ++ */ ++ protected void appendVarargsMark() { ++ String[][] target; ++ ++ target = new String[parameters.length + 1][3]; ++ System.arraycopy(parameters, 0, target, 0, parameters.length); ++ ++ target[parameters.length][0] = "..."; ++ ++ parameters = target; ++ } ++ + public Generator createGenerator(final DefsFile data) { + if (isConstructorOf != null) { + return new ConstructorGenerator(data, returnType, cName, parameters); + } else { + return new FunctionGenerator(data, blockName, returnType, cName, parameters); + } + } + + } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/java-gnome.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

