This is an automated email from the git hooks/post-receive script. glondu pushed a commit to branch master in repository lablgtk2.
commit 7d76371c19e285c387eaac217c374b9e4ed6cf68 Author: Stephane Glondu <st...@glondu.net> Date: Wed Jun 17 14:32:27 2015 +0200 Imported Upstream version 2.18.2+dfsg --- .gitignore | 10 -- CHANGES | 22 +++ Makefile.pre | 4 +- README | 4 +- README.win32 | 1 + config.make.mingw | 0 examples/seppala.ml | 19 +++ src/.depend | 24 ++-- src/Makefile | 27 ++-- src/absvalue/caml/callback.h | 59 -------- src/absvalue/caml/mlvalues.h | 325 ------------------------------------------- src/build.ml.in | 13 +- src/gData.ml | 21 ++- src/gData.mli | 12 ++ src/gObj.ml | 6 +- src/gObj.mli | 4 +- src/gTree.mli | 2 +- src/gtkBase.props | 8 +- src/gtkData.ml | 21 --- src/gtkSignal.ml4 | 4 +- src/gtkTree.props | 2 +- src/ml_gtk.c | 6 +- src/wrappers.h | 3 +- 23 files changed, 128 insertions(+), 469 deletions(-) diff --git a/.gitignore b/.gitignore deleted file mode 100644 index dfee34b..0000000 --- a/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -config.make -config.cache -config.status -config.log -configure.lineno -aclocal.m4 -autom4te.cache -test_dynlink.* -*~ -*.sw[po] diff --git a/CHANGES b/CHANGES index edcd907..4715934 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,27 @@ LablGTK changes log +In Lablgtk-2.18.2: + +2014.09.17 [Jacques] + * Revert old commit which broke notify signals + * Quote $(FLINSTALLDIR) in Makefile (cf PR#1342) + * Update applications/browser for 4.02 + +2014.08.22 [Jacques] + * Make Float_val an alias for Double_val, since it was used + wrongly anyway (Felix Ruess) + * Make GObj.misc_ops#add_accelerator polymorphic in the widget of + the signal (Erkki Seppala) + * Use properties in GtkAdjustment, rather than direct accessors + +2013.12.31 [Jacques] + * fix GtkTree.IconView.get_path_at_pos (Thomas Leonard) + +In Lablgtk-2.18.1: + +2013.12.6 [Jacques] + * add gtksourceview2 to windows binaries + In Lablgtk-2.18.0: 2013.10.01 [Jacques] diff --git a/Makefile.pre b/Makefile.pre index 8d0bee2..c4093a2 100644 --- a/Makefile.pre +++ b/Makefile.pre @@ -6,6 +6,6 @@ all: cp README $(ROOT)/Lablgtk.txt cp README.win32 $(ROOT)/Lablgtk-install.txt cp CHANGES $(ROOT)/Lablgtk-changes.txt - mkdir -p $(SAMPLES)/{glade,rsvg,text,canvas} - for i in . glade rsvg text canvas; do \ + for i in . glade rsvg text canvas sourceview; do \ + mkdir -p $(SAMPLES)/$$i; \ (cd examples/$$i; cp * $(SAMPLES)/$$i); done diff --git a/README b/README old mode 100644 new mode 100755 index bc6dbe7..1078304 --- a/README +++ b/README @@ -1,8 +1,8 @@ - LablGTK2 2.18.0 : an interface to the GIMP Tool Kit + LablGTK2 2.18.2 : an interface to the GIMP Tool Kit Needed: - ocaml-3.11 or more (4.01 is preferred) + ocaml-3.11 or more (4.02 is preferred) gtk+-2.x (gtk+-2.16.x for full functionality) findlib 1.2.1 or more (for default install) GNU make (there is no standard for conditionals) diff --git a/README.win32 b/README.win32 old mode 100644 new mode 100755 index 3d6649e..5dd7fa1 --- a/README.win32 +++ b/README.win32 @@ -22,6 +22,7 @@ Binary installation libglade-2.6.4 (requires libxml2) libgnomecanvas-2.30.1 (requires libart_lgpl) librsvg-2.32.1 (requires libcroco and libgsf) + gtksourceview-2.10 If you want to do custom linking, you need also the dev packages. All of these are available in the above win32 and win32/dependencies directories. diff --git a/config.make.mingw b/config.make.mingw old mode 100644 new mode 100755 diff --git a/examples/seppala.ml b/examples/seppala.ml new file mode 100644 index 0000000..930bab1 --- /dev/null +++ b/examples/seppala.ml @@ -0,0 +1,19 @@ +open Gtk + +let destroy () = GMain.Main.quit () + +let main () = + ignore (GMain.init ()); + let main_window = GWindow.window () in + let accel_group = GtkData.AccelGroup.create () in + main_window#add_accel_group accel_group; + let quit_button = GButton.button ~label:"Quit" ~packing:main_window#add () in + quit_button#misc#add_accelerator + ~sgn:GtkButtonProps.Button.S.activate + ~group:accel_group + ~modi:[`CONTROL] GdkKeysyms._q; + ignore (quit_button#connect#clicked ~callback:destroy); + main_window#show (); + GMain.main () + +let () = main () diff --git a/src/.depend b/src/.depend index c775024..717dcf0 100644 --- a/src/.depend +++ b/src/.depend @@ -90,10 +90,8 @@ gtkAssistantProps.cmo : gtkSignal.cmi gtkObject.cmo gtkEnums.cmo gtk.cmo \ gobject.cmi gdkPixbuf.cmi gtkAssistantProps.cmx : gtkSignal.cmx gtkObject.cmx gtkEnums.cmx gtk.cmx \ gobject.cmx gdkPixbuf.cmx -gtkData.cmo : gtkSignal.cmi gtkBaseProps.cmo gtk.cmo gobject.cmi gdk.cmi \ - gaux.cmo -gtkData.cmx : gtkSignal.cmx gtkBaseProps.cmx gtk.cmx gobject.cmx gdk.cmx \ - gaux.cmx +gtkData.cmo : gtkBaseProps.cmo gtk.cmo gobject.cmi gdk.cmi gaux.cmo +gtkData.cmx : gtkBaseProps.cmx gtk.cmx gobject.cmx gdk.cmx gaux.cmx gtkBase.cmo : pango.cmo gtkStock.cmo gtkSignal.cmi gtkObject.cmo \ gtkEnums.cmo gtkBaseProps.cmo gtk.cmo gpointer.cmi gobject.cmi \ gdkPixbuf.cmi gdkEvent.cmo gdk.cmi gaux.cmo @@ -158,14 +156,12 @@ gObj.cmo : pango.cmo gtkStock.cmo gtkSignal.cmi gtkData.cmo gtkBase.cmo \ gObj.cmx : pango.cmx gtkStock.cmx gtkSignal.cmx gtkData.cmx gtkBase.cmx \ gtk.cmx gpointer.cmx gobject.cmx gdk.cmx gaux.cmx gPango.cmx gDraw.cmx \ gObj.cmi -gData.cmo : gtkData.cmo gtkBin.cmo gtkBase.cmo gtk.cmo gpointer.cmi \ - gobject.cmi gaux.cmo gObj.cmi gData.cmi -gData.cmx : gtkData.cmx gtkBin.cmx gtkBase.cmx gtk.cmx gpointer.cmx \ - gobject.cmx gaux.cmx gObj.cmx gData.cmi -gMain.cmo : gtkMain.cmo gtk.cmo glib.cmi gdk.cmi gObj.cmi gData.cmi \ - gMain.cmi -gMain.cmx : gtkMain.cmx gtk.cmx glib.cmx gdk.cmx gObj.cmx gData.cmx \ - gMain.cmi +ogtkBaseProps.cmo : gtkSignal.cmi gtkBaseProps.cmo gobject.cmi gObj.cmi +ogtkBaseProps.cmx : gtkSignal.cmx gtkBaseProps.cmx gobject.cmx gObj.cmx +gData.cmo : ogtkBaseProps.cmo gtkData.cmo gtkBin.cmo gtkBase.cmo gtk.cmo \ + gpointer.cmi gobject.cmi gaux.cmo gObj.cmi gData.cmi +gData.cmx : ogtkBaseProps.cmx gtkData.cmx gtkBin.cmx gtkBase.cmx gtk.cmx \ + gpointer.cmx gobject.cmx gaux.cmx gObj.cmx gData.cmi ogtkBaseProps.cmo : gtkSignal.cmi gtkBaseProps.cmo gobject.cmi gObj.cmi ogtkBaseProps.cmx : gtkSignal.cmx gtkBaseProps.cmx gobject.cmx gObj.cmx ogtkBinProps.cmo : gtkSignal.cmi gtkPackProps.cmo gtkBinProps.cmo \ @@ -202,6 +198,10 @@ ogtkBrokenProps.cmo : gtkSignal.cmi gtkBrokenProps.cmo gobject.cmi gData.cmi ogtkBrokenProps.cmx : gtkSignal.cmx gtkBrokenProps.cmx gobject.cmx gData.cmx ogtkAssistantProps.cmo : gtkSignal.cmi gtkAssistantProps.cmo gobject.cmi ogtkAssistantProps.cmx : gtkSignal.cmx gtkAssistantProps.cmx gobject.cmx +gMain.cmo : gtkMain.cmo gtk.cmo glib.cmi gdk.cmi gObj.cmi gData.cmi \ + gMain.cmi +gMain.cmx : gtkMain.cmx gtk.cmx glib.cmx gdk.cmx gObj.cmx gData.cmx \ + gMain.cmi gContainer.cmo : ogtkBaseProps.cmo gtkBase.cmo gtk.cmo gpointer.cmi \ gobject.cmi gaux.cmo gObj.cmi gData.cmi gContainer.cmi gContainer.cmx : ogtkBaseProps.cmx gtkBase.cmx gtk.cmx gpointer.cmx \ diff --git a/src/Makefile b/src/Makefile index c4d1b75..c06dd3d 100755 --- a/src/Makefile +++ b/src/Makefile @@ -163,12 +163,15 @@ GTKSOURCEVIEW2COBJS = ml_gtksourceview2$(XO) GTKSOURCEVIEW2MLOBJSENUM = sourceView2Enums.cmo GTKSOURCEVIEW2PROPS = gtkSourceView2.props BEFORE_DEPEND += $(GTKSOURCEVIEW2PROPS:%.props=%Props.ml) $(GTKSOURCEVIEW2PROPS:%.props= o%Props.ml) $(GTKSOURCEVIEWMLOBJSENUM:%.cmo=%.ml) - EXTRA_OBJS += $(GTKSOURCEVIEW2MLOBJSENUM) +GTKSOURCEVIEW2ALLMLOBJS = $(GTKSOURCEVIEW2MLOBJSENUM) \ + $(GTKSOURCEVIEW2PROPS:%.props=%Props.cmo) \ + $(GTKSOURCEVIEW2PROPS:%.props=o%Props.cmo) $(GTKSOURCEVIEW2MLOBJS) lablgtksourceview2.cma liblablgtksourceview2$(XA): \ - $(GTKSOURCEVIEW2COBJS) $(GTKSOURCEVIEW2MLOBJSENUM) $(GTKSOURCEVIEW2PROPS:%.props=%Props.cmo) $(GTKSOURCEVIEW2PROPS:%.props=o%Props.cmo) $(GTKSOURCEVIEW2MLOBJS) + $(GTKSOURCEVIEW2COBJS) $(GTKSOURCEVIEW2ALLMLOBJS) $(LIBRARIAN) -o lablgtksourceview2 $^ $(GTKSOURCEVIEW2LIBS) -lablgtksourceview2.cmxa: $(GTKSOURCEVIEW2COBJS) $(GTKSOURCEVIEW2MLOBJSENUM:.cmo=.cmx) $(GTKSOURCEVIEW2PROPS:%.props=%Props.cmx) $(GTKSOURCEVIEW2PROPS:%.props=o%Props.cmx) $(GTKSOURCEVIEW2MLOBJS:.cmo=.cmx) +lablgtksourceview2.cmxa: \ + $(GTKSOURCEVIEW2COBJS) $(GTKSOURCEVIEW2ALLMLOBJS:.cmo=.cmx) $(LIBRARIAN) -o lablgtksourceview2 $^ $(GTKSOURCEVIEW2LIBS) lablgtksourceview2.cmxs: DYNLINKLIBS=$(GTKSOURCEVIEW2_LIBS) endif @@ -185,7 +188,7 @@ endif .c.d$(XO): $(CAMLC) -c -ccopt '-MT -DCAML_DLL -Fo$@ $(CFLAGS)' $< .ml.cmo: - $(COMPILER) $< + $(COMPILER) $(PRINCIPAL) $< .mli.cmi: $(COMPILER) $< .ml.cmx: @@ -228,8 +231,8 @@ MLOBJS3 = gtkData.cmo gtkBase.cmo gtkPack.cmo gtkButton.cmo \ gtkMenu.cmo gtkMisc.cmo gtkWindow.cmo gtkList.cmo \ gtkBin.cmo gtkEdit.cmo gtkRange.cmo gtkText.cmo gtkTree.cmo \ gtkFile.cmo gtkMain.cmo gtkBroken.cmo \ - gPango.cmo gDraw.cmo gObj.cmo gData.cmo gMain.cmo -MLOBJS4 = gContainer.cmo gPack.cmo gButton.cmo gText.cmo \ + gPango.cmo gDraw.cmo gObj.cmo ogtkBaseProps.cmo gData.cmo +MLOBJS4 = gMain.cmo gContainer.cmo gPack.cmo gButton.cmo gText.cmo \ gMenu.cmo gMisc.cmo gTree.cmo gList.cmo gFile.cmo gWindow.cmo \ gAssistant.cmo \ gBin.cmo gEdit.cmo gRange.cmo gAction.cmo gBroken.cmo \ @@ -299,6 +302,8 @@ build.ml: Makefile $(CONFIG) build.ml.in -e "s|@RSVG_LIBS@|$(RSVGLIBS)|" \ -e "s|@CANVAS_MLS@|$(GNOMECANVASMLOBJS:.cmo=)|" \ -e "s|@CANVAS_LIBS@|$(GNOMECANVASLIBS)|" \ + -e "s|@SOURCEVIEW2_MLS@|$(GTKSOURCEVIEW2ALLMLOBJS:.cmo=)|" \ + -e "s|@SOURCEVIEW2_LIBS@|$(GTKSOURCEVIEW2LIBS)|" \ -e "s|@TOOLCHAIN@|$(TOOLCHAIN)|" \ < build.ml.in > $@ @@ -325,12 +330,12 @@ testcc$(XE): lablgladecc$(XE) lablgtktop rm -f testcc.ml PREOBJS= $(MLOBJS) $(EXTRAOBJS) $(GLADEMLOBJS) $(RSVGMLOBJS) \ - $(GNOMECANVASMLOBJS) + $(GNOMECANVASMLOBJS) $(GTKSOURCEVIEW2ALLMLOBJS) # Install ml sources and C binaries, can then rebuild using build.ml preinstall: mkdir -p "$(INSTALLDIR)" "$(BINDIR)" "$(DLLDIR)" - cp $(PREOBJS:.cmo=.ml) "$(INSTALLDIR)" + cp $(PREOBJS:.cmo=.ml) gtkSourceView2_types.mli "$(INSTALLDIR)" for f in $(PREOBJS:.cmo=.mli); do \ if test -f $$f; then cp $$f "$(INSTALLDIR)"; fi; done cp build.ml "$(INSTALLDIR)" @@ -442,11 +447,11 @@ findlib-install: cp lablgladecc$(XE) "$(BINDIR)/lablgladecc2$(XE)"; \ fi cp gdk_pixbuf_mlsource$(XE) "$(BINDIR)" - $(RANLIB) $(CLIBS:%=$(FLINSTALLDIR)/%) + $(RANLIB) $(CLIBS:%="$(FLINSTALLDIR)"/%) @if test -f lablgtk.cmxa; then \ echo "Execute $(RANLIB) in $(FLINSTALLDIR)"; \ - $(RANLIB) $(MLLIBS:%.cma=$(FLINSTALLDIR)/%$(XA)) \ - $(EXTRA_MLLIBS:%.cma=$(FLINSTALLDIR)/%$(XA)) ; \ + $(RANLIB) $(MLLIBS:%.cma="$(FLINSTALLDIR)"/%$(XA)) \ + $(EXTRA_MLLIBS:%.cma="$(FLINSTALLDIR)"/%$(XA)) ; \ fi findlib-uninstall: diff --git a/src/absvalue/caml/callback.h b/src/absvalue/caml/callback.h deleted file mode 100644 index 6877f3f..0000000 --- a/src/absvalue/caml/callback.h +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************/ -/* Lablgtk */ -/* */ -/* This program is free software; you can redistribute it */ -/* and/or modify it under the terms of the GNU Library General */ -/* Public License as published by the Free Software Foundation */ -/* version 2, with the exception described in file COPYING which */ -/* comes with the library. */ -/* */ -/* This program 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 */ -/* GNU Library General Public License for more details. */ -/* */ -/* You should have received a copy of the GNU Library General */ -/* Public License along with this program; if not, write to the */ -/* Free Software Foundation, Inc., 59 Temple Place, Suite 330, */ -/* Boston, MA 02111-1307 USA */ -/* */ -/* */ -/**************************************************************************/ - -/* $Id$ */ - -/* Callbacks from C to Caml */ - -#ifndef CAML_GTK_CALLBACK_H -#define CAML_CALLBACK_H -#define CAML_GTK_CALLBACK_H - -#ifndef CAML_NAME_SPACE -#include <caml/compatibility.h> -#endif -#include "mlvalues.h" - -CAMLextern value caml_callback (value closure, value arg); -CAMLextern value caml_callback2 (value closure, value arg1, value arg2); -CAMLextern value caml_callback3 (value closure, value arg1, value arg2, - value arg3); -CAMLextern value caml_callbackN (value closure, int narg, value args[]); - -CAMLextern value caml_callback_exn (value closure, value arg); -CAMLextern value caml_callback2_exn (value closure, value arg1, value arg2); -CAMLextern value caml_callback3_exn (value closure, - value arg1, value arg2, value arg3); -CAMLextern value caml_callbackN_exn (value closure, int narg, value args[]); - -#define Make_exception_result(v) ((intnat)(v) | 2) -#define Is_exception_result(v) (((intnat)(v) & 3) == 2) -#define Extract_exception(v) ((value)((intnat)(v) & ~3)) - -CAMLextern value * caml_named_value (char * name); - -CAMLextern void caml_main (char ** argv); -CAMLextern void caml_startup (char ** argv); - -CAMLextern int caml_callback_depth; - -#endif diff --git a/src/absvalue/caml/mlvalues.h b/src/absvalue/caml/mlvalues.h deleted file mode 100644 index ea1c286..0000000 --- a/src/absvalue/caml/mlvalues.h +++ /dev/null @@ -1,325 +0,0 @@ -/**************************************************************************/ -/* Lablgtk */ -/* */ -/* This program is free software; you can redistribute it */ -/* and/or modify it under the terms of the GNU Library General */ -/* Public License as published by the Free Software Foundation */ -/* version 2, with the exception described in file COPYING which */ -/* comes with the library. */ -/* */ -/* This program 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 */ -/* GNU Library General Public License for more details. */ -/* */ -/* You should have received a copy of the GNU Library General */ -/* Public License along with this program; if not, write to the */ -/* Free Software Foundation, Inc., 59 Temple Place, Suite 330, */ -/* Boston, MA 02111-1307 USA */ -/* */ -/* */ -/**************************************************************************/ - -/* $Id$ */ - -#ifndef CAML_GTK_MLVALUES_H -#define CAML_MLVALUES_H -#define CAML_GTK_MLVALUES_H - -#ifndef CAML_NAME_SPACE -#include <caml/compatibility.h> -#endif -#include <caml/config.h> -#include <caml/misc.h> - -/* Definitions - - word: Four bytes on 32 and 16 bit architectures, - eight bytes on 64 bit architectures. - long: A C integer having the same number of bytes as a word. - val: The ML representation of something. A long or a block or a pointer - outside the heap. If it is a block, it is the (encoded) address - of an object. If it is a long, it is encoded as well. - block: Something allocated. It always has a header and some - fields or some number of bytes (a multiple of the word size). - field: A word-sized val which is part of a block. - bp: Pointer to the first byte of a block. (a char *) - op: Pointer to the first field of a block. (a value *) - hp: Pointer to the header of a block. (a char *) - int32: Four bytes on all architectures. - int64: Eight bytes on all architectures. - - Remark: A block size is always a multiple of the word size, and at least - one word plus the header. - - bosize: Size (in bytes) of the "bytes" part. - wosize: Size (in words) of the "fields" part. - bhsize: Size (in bytes) of the block with its header. - whsize: Size (in words) of the block with its header. - - hd: A header. - tag: The value of the tag field of the header. - color: The value of the color field of the header. - This is for use only by the GC. -*/ - -typedef struct {} *value; -typedef uintnat header_t; -typedef uintnat mlsize_t; -typedef unsigned int tag_t; /* Actually, an unsigned char */ -typedef uintnat color_t; -typedef uintnat mark_t; - -/* Longs vs blocks. */ -/* -#define Is_long(x) (((intnat)(x) & 1) != 0) -#define Is_block(x) (((intnat)(x) & 1) == 0) -*/ -CAMLextern int Is_long(value); -CAMLextern int Is_block(value); - -/* Conversion macro names are always of the form "to_from". */ -/* Example: Val_long as in "Val from long" or "Val of long". */ -/* -#define Val_long(x) ((value)(((intnat)(x) << 1) + 1)) -#define Long_val(x) ((intnat)(x) >> 1) -*/ -CAMLextern intnat Long_val(value); -CAMLextern value Val_long(intnat); -#define Max_long ((1L << (8 * sizeof(value) - 2)) - 1) -#define Min_long (-(1L << (8 * sizeof(value) - 2))) -#define Val_int(x) Val_long(x) -#define Int_val(x) ((int) Long_val(x)) -#define Unsigned_long_val(x) ((uintnat)(x) >> 1) -#define Unsigned_int_val(x) ((int) Unsigned_long_val(x)) - -/* Structure of the header: - -For 16-bit and 32-bit architectures: - +--------+-------+-----+ - | wosize | color | tag | - +--------+-------+-----+ -bits 31 10 9 8 7 0 - -For 64-bit architectures: - - +--------+-------+-----+ - | wosize | color | tag | - +--------+-------+-----+ -bits 63 10 9 8 7 0 - -*/ - -#define Tag_hd(hd) ((tag_t) ((hd) & 0xFF)) -#define Wosize_hd(hd) ((mlsize_t) ((hd) >> 10)) - -#define Hd_val(val) (((header_t *) (val)) [-1]) /* Also an l-value. */ -#define Hd_op(op) (Hd_val (op)) /* Also an l-value. */ -#define Hd_bp(bp) (Hd_val (bp)) /* Also an l-value. */ -#define Hd_hp(hp) (* ((header_t *) (hp))) /* Also an l-value. */ -#define Hp_val(val) ((char *) (((header_t *) (val)) - 1)) -#define Hp_op(op) (Hp_val (op)) -#define Hp_bp(bp) (Hp_val (bp)) -#define Val_op(op) ((value) (op)) -#define Val_hp(hp) ((value) (((header_t *) (hp)) + 1)) -#define Op_hp(hp) ((value *) Val_hp (hp)) -#define Bp_hp(hp) ((char *) Val_hp (hp)) - -#define Num_tags (1 << 8) -#ifdef ARCH_SIXTYFOUR -#define Max_wosize ((1L << 54) - 1) -#else -#define Max_wosize ((1 << 22) - 1) -#endif - -#define Wosize_val(val) (Wosize_hd (Hd_val (val))) -#define Wosize_op(op) (Wosize_val (op)) -#define Wosize_bp(bp) (Wosize_val (bp)) -#define Wosize_hp(hp) (Wosize_hd (Hd_hp (hp))) -#define Whsize_wosize(sz) ((sz) + 1) -#define Wosize_whsize(sz) ((sz) - 1) -#define Wosize_bhsize(sz) ((sz) / sizeof (value) - 1) -#define Bsize_wsize(sz) ((sz) * sizeof (value)) -#define Wsize_bsize(sz) ((sz) / sizeof (value)) -#define Bhsize_wosize(sz) (Bsize_wsize (Whsize_wosize (sz))) -#define Bhsize_bosize(sz) ((sz) + sizeof (header_t)) -#define Bosize_val(val) (Bsize_wsize (Wosize_val (val))) -#define Bosize_op(op) (Bosize_val (Val_op (op))) -#define Bosize_bp(bp) (Bosize_val (Val_bp (bp))) -#define Bosize_hd(hd) (Bsize_wsize (Wosize_hd (hd))) -#define Whsize_hp(hp) (Whsize_wosize (Wosize_hp (hp))) -#define Whsize_val(val) (Whsize_hp (Hp_val (val))) -#define Whsize_bp(bp) (Whsize_val (Val_bp (bp))) -#define Whsize_hd(hd) (Whsize_wosize (Wosize_hd (hd))) -#define Bhsize_hp(hp) (Bsize_wsize (Whsize_hp (hp))) -#define Bhsize_hd(hd) (Bsize_wsize (Whsize_hd (hd))) - -#ifdef ARCH_BIG_ENDIAN -#define Tag_val(val) (((unsigned char *) (val)) [-1]) - /* Also an l-value. */ -#define Tag_hp(hp) (((unsigned char *) (hp)) [sizeof(value)-1]) - /* Also an l-value. */ -#else -#define Tag_val(val) (((unsigned char *) (val)) [-sizeof(value)]) - /* Also an l-value. */ -#define Tag_hp(hp) (((unsigned char *) (hp)) [0]) - /* Also an l-value. */ -#endif - -/* The lowest tag for blocks containing no value. */ -#define No_scan_tag 251 - - -/* 1- If tag < No_scan_tag : a tuple of fields. */ - -/* Pointer to the first field. */ -#define Op_val(x) ((value *) (x)) -/* Fields are numbered from 0. */ -#define Field(x, i) (((value *)(x)) [i]) /* Also an l-value. */ - -typedef int32 opcode_t; -typedef opcode_t * code_t; - -/* NOTE: [Forward_tag] and [Infix_tag] must be just under - [No_scan_tag], with [Infix_tag] the lower one. - See [caml_oldify_one] in minor_gc.c for more details. - - NOTE: Update stdlib/obj.ml whenever you change the tags. - */ - -/* Forward_tag: forwarding pointer that the GC may silently shortcut. - See stdlib/lazy.ml. */ -#define Forward_tag 250 -#define Forward_val(v) Field(v, 0) - -/* If tag == Infix_tag : an infix header inside a closure */ -/* Infix_tag must be odd so that the infix header is scanned as an integer */ -/* Infix_tag must be 1 modulo 4 and infix headers can only occur in blocks - with tag Closure_tag (see compact.c). */ - -#define Infix_tag 249 -#define Infix_offset_hd(hd) (Bosize_hd(hd)) -#define Infix_offset_val(v) Infix_offset_hd(Hd_val(v)) - -/* Another special case: objects */ -#define Object_tag 248 -#define Class_val(val) Field((val), 0) -#define Oid_val(val) Long_val(Field((val), 1)) -CAMLextern value caml_get_public_method (value obj, value tag); -/* called as: callback(caml_get_public_method(obj, hash_variant(name)), obj) */ - -/* Special case of tuples of fields: closures */ -#define Closure_tag 247 -#define Code_val(val) (((code_t *) (val)) [0]) /* Also an l-value. */ - -/* This tag is used (with Forward_tag) to implement lazy values. - See major_gc.c and stdlib/lazy.ml. */ -#define Lazy_tag 246 - -/* Another special case: variants */ -CAMLextern value caml_hash_variant(char * tag); - -/* 2- If tag >= No_scan_tag : a sequence of bytes. */ - -/* Pointer to the first byte */ -#define Bp_val(v) ((char *) (v)) -#define Val_bp(p) ((value) (p)) -/* Bytes are numbered from 0. */ -#define Byte(x, i) (((char *) (x)) [i]) /* Also an l-value. */ -#define Byte_u(x, i) (((unsigned char *) (x)) [i]) /* Also an l-value. */ - -/* Abstract things. Their contents is not traced by the GC; therefore they - must not contain any [value]. -*/ -#define Abstract_tag 251 - -/* Strings. */ -#define String_tag 252 -#define String_val(x) ((char *) Bp_val(x)) -CAMLextern mlsize_t caml_string_length (value); /* size in bytes */ - -/* Floating-point numbers. */ -#define Double_tag 253 -#define Double_wosize ((sizeof(double) / sizeof(value))) -#ifndef ARCH_ALIGN_DOUBLE -#define Double_val(v) (* (double *)(v)) -#define Store_double_val(v,d) (* (double *)(v) = (d)) -#else -CAMLextern double caml_Double_val (value); -CAMLextern void caml_Store_double_val (value,double); -#define Double_val(v) caml_Double_val(v) -#define Store_double_val(v,d) caml_Store_double_val(v,d) -#endif - -/* Arrays of floating-point numbers. */ -#define Double_array_tag 254 -#define Double_field(v,i) Double_val((value)((double *)(v) + (i))) -#define Store_double_field(v,i,d) do{ \ - mlsize_t caml__temp_i = (i); \ - double caml__temp_d = (d); \ - Store_double_val((value)((double *) v + caml__temp_i), caml__temp_d); \ -}while(0) - -/* Custom blocks. They contain a pointer to a "method suite" - of functions (for finalization, comparison, hashing, etc) - followed by raw data. The contents of custom blocks is not traced by - the GC; therefore, they must not contain any [value]. - See [custom.h] for operations on method suites. */ -#define Custom_tag 255 -#define Data_custom_val(v) ((void *) &Field((v), 1)) -struct custom_operations; /* defined in [custom.h] */ - -/* Int32.t, Int64.t and Nativeint.t are represented as custom blocks. */ - -#define Int32_val(v) (*((int32 *) Data_custom_val(v))) -#define Nativeint_val(v) (*((intnat *) Data_custom_val(v))) -#ifndef ARCH_ALIGN_INT64 -#define Int64_val(v) (*((int64 *) Data_custom_val(v))) -#else -CAMLextern int64 caml_Int64_val(value v); -#define Int64_val(v) caml_Int64_val(v) -#endif - -/* 3- Atoms are 0-tuples. They are statically allocated once and for all. */ - -CAMLextern header_t caml_atom_table[]; -#define Atom(tag) (Val_hp (&(caml_atom_table [(tag)]))) - -/* Is_atom tests whether a well-formed block is statically allocated - outside the heap. For the bytecode system, only zero-sized block (Atoms) - fall in this class. For the native-code generator, data - emitted by the code generator (as described in the table - caml_data_segments) are also atoms. */ - -#ifndef NATIVE_CODE -#define Is_atom(v) ((v) >= Atom(0) && (v) <= Atom(255)) -#else -CAMLextern char * caml_static_data_start, * caml_static_data_end; -#define Is_atom(v) \ - ((((char *)(v) >= caml_static_data_start \ - && (char *)(v) < caml_static_data_end) \ - || ((v) >= Atom(0) && (v) <= Atom(255)))) -#endif - -/* Booleans are integers 0 or 1 */ - -#define Val_bool(x) Val_int((x) != 0) -#define Bool_val(x) Int_val(x) -#define Val_false Val_int(0) -#define Val_true Val_int(1) -#define Val_not(x) ((value)((int)Val_false + (int)Val_true - (int)(x))) - -/* The unit value is 0 (tagged) */ - -#define Val_unit Val_int(0) - -/* List constructors */ -#define Val_emptylist Val_int(0) -#define Tag_cons 0 - -/* The table of global identifiers */ - -extern value caml_global_data; - - -#endif /* CAML_MLVALUES_H */ diff --git a/src/build.ml.in b/src/build.ml.in index 89f3e84..562849c 100755 --- a/src/build.ml.in +++ b/src/build.ml.in @@ -31,6 +31,8 @@ let rsvg_mls = split "@RSVG_MLS@" let rsvg_libs = "@RSVG_LIBS@" let canvas_mls = split "@CANVAS_MLS@" let canvas_libs = "@CANVAS_LIBS@" +let sourceview2_mls = split "@SOURCEVIEW2_MLS@" +let sourceview2_libs = "@SOURCEVIEW2_LIBS@" (* Hack to check for mingw *) let () = @@ -75,18 +77,20 @@ let may_remove f = if Sys.file_exists f then Sys.remove f type descr = - { mls: string list; extra: string list; libs: string; + { mlis: string list; mls: string list; extra: string list; libs: string; name: string; cname: string } let libs = - let lib ~mls ~libs ~name ?(extra=[]) ?(cname=name) () = - {mls=mls; extra=extra; libs=rename_libs libs; name=name; cname=cname} in + let lib ~mls ~libs ~name ?(extra=[]) ?(mlis=[]) ?(cname=name) () = + {mlis; mls; extra; libs=rename_libs libs; name; cname} in [ lib ~mls:lablgtk_mls ~extra:extra_mls ~libs:gtk_libs ~name:"lablgtk" ~cname:"lablgtk2" (); lib ~mls:glade_mls ~libs:glade_libs ~name:"lablglade" ~cname:"lablglade2" (); lib ~mls:rsvg_mls ~libs:rsvg_libs ~name:"lablrsvg" (); - lib ~mls:canvas_mls ~libs:canvas_libs ~name:"lablgnomecanvas" ()] + lib ~mls:canvas_mls ~libs:canvas_libs ~name:"lablgnomecanvas" (); + lib ~mls:sourceview2_mls ~libs:sourceview2_libs + ~name:"lablgtksourceview2" ~mlis:["gtkSourceView2_types"] ()] let compopts = [] (*["gtkSignal", @@ -98,6 +102,7 @@ let compile ~comp file = let byte d = if d.mls <> [] then begin + List.iter d.mlis ~f:(fun file -> exe !ocamlc ["-c"; file^".mli"]); List.iter (d.mls @ d.extra) ~f: begin fun file -> if Sys.file_exists (file ^ ".mli") then exe !ocamlc ["-c"; file^".mli"]; diff --git a/src/gData.ml b/src/gData.ml index c6b831e..a4073bf 100644 --- a/src/gData.ml +++ b/src/gData.ml @@ -28,26 +28,25 @@ open Gtk open GtkBase open GtkData open GObj +open OgtkBaseProps class adjustment_signals obj = object (self) inherit gtkobj_signals_impl obj - method changed = self#connect Adjustment.S.changed - method value_changed = self#connect Adjustment.S.value_changed + inherit adjustment_sigs end -class adjustment obj = object +class adjustment obj = object (self) inherit gtkobj obj + inherit adjustment_props method as_adjustment : Gtk.adjustment obj = obj method connect = new adjustment_signals obj - method set_value = Adjustment.set_value obj method clamp_page = Adjustment.clamp_page obj - method lower = Adjustment.get_lower obj - method upper = Adjustment.get_upper obj - method value = Adjustment.get_value obj - method step_increment = Adjustment.get_step_increment obj - method page_increment = Adjustment.get_page_increment obj - method page_size = Adjustment.get_page_size obj - method set_bounds = Adjustment.set_bounds obj + method set_bounds ?lower ?upper ?step_incr ?page_incr ?page_size () = + may self#set_lower lower; + may self#set_upper upper; + may self#set_step_increment step_incr; + may self#set_page_increment page_incr; + may self#set_page_size page_size end let adjustment ?(value=0.) ?(lower=0.) ?(upper=100.) diff --git a/src/gData.mli b/src/gData.mli index ce7e260..de06839 100644 --- a/src/gData.mli +++ b/src/gData.mli @@ -34,6 +34,12 @@ class adjustment_signals : [> adjustment] obj -> inherit GObj.gtkobj_signals method changed : callback:(unit -> unit) -> GtkSignal.id method value_changed : callback:(unit -> unit) -> GtkSignal.id + method notify_lower : callback:(float -> unit) -> GtkSignal.id + method notify_page_increment : callback:(float -> unit) -> GtkSignal.id + method notify_page_size : callback:(float -> unit) -> GtkSignal.id + method notify_step_increment : callback:(float -> unit) -> GtkSignal.id + method notify_upper : callback:(float -> unit) -> GtkSignal.id + method notify_value : callback:(float -> unit) -> GtkSignal.id end (** A GtkObject representing an adjustable bounded value @@ -55,6 +61,12 @@ class adjustment : Gtk.adjustment obj -> method set_bounds : ?lower:float -> ?upper:float -> ?step_incr:float -> ?page_incr:float -> ?page_size:float -> unit -> unit + method set_lower : float -> unit + method set_page_increment : float -> unit + method set_page_size : float -> unit + method set_step_increment : float -> unit + method set_upper : float -> unit + method set_value : float -> unit end (** @gtkdoc gtk GtkAdjustment diff --git a/src/gObj.ml b/src/gObj.ml index 5f787e8..20b2163 100644 --- a/src/gObj.ml +++ b/src/gObj.ml @@ -278,8 +278,10 @@ and misc_ops obj = object (self) method grab_focus () = set P.has_focus obj true method grab_default () = set P.has_default obj true method is_ancestor (w : widget) = Widget.is_ancestor obj w#as_widget - method add_accelerator ~sgn:sg ~group ?modi ?flags key = - Widget.add_accelerator obj ~sgn:sg group ~key ?modi ?flags + method add_accelerator : 'a. sgn:('a, unit -> unit) GtkSignal.t -> _ = + fun ~sgn:sg ~group ?modi ?flags key -> + let sg = {sg with GtkSignal.classe = `widget} in + Widget.add_accelerator obj ~sgn:sg group ~key ?modi ?flags method remove_accelerator ~group ?modi key = Widget.remove_accelerator obj group ~key ?modi (* method lock_accelerators () = lock_accelerators obj *) diff --git a/src/gObj.mli b/src/gObj.mli index 6cd17df..55292d3 100644 --- a/src/gObj.mli +++ b/src/gObj.mli @@ -209,8 +209,8 @@ and misc_ops : Gtk.widget obj -> inherit gobject_ops val obj : Gtk.widget obj method activate : unit -> bool - method add_accelerator : - sgn:(Gtk.widget, unit -> unit) GtkSignal.t -> + method add_accelerator : 'a. + sgn:('a, unit -> unit) GtkSignal.t -> group:accel_group -> ?modi:Gdk.Tags.modifier list -> ?flags:Tags.accel_flag list -> Gdk.keysym -> unit method add_selection_target : diff --git a/src/gTree.mli b/src/gTree.mli index 4654d3c..9fe0b72 100644 --- a/src/gTree.mli +++ b/src/gTree.mli @@ -735,7 +735,7 @@ class icon_view : method spacing : int method set_spacing : int -> unit - method get_path_at_pos : int -> int -> Gtk.tree_path + method get_path_at_pos : int -> int -> Gtk.tree_path option method selected_foreach : (Gtk.tree_path -> unit) -> unit method get_selected_items : Gtk.tree_path list method path_is_selected : Gtk.tree_path -> bool diff --git a/src/gtkBase.props b/src/gtkBase.props index c2350ce..030416c 100644 --- a/src/gtkBase.props +++ b/src/gtkBase.props @@ -155,7 +155,13 @@ class Item abstract wrapsig : Bin { signal toggle } -class Adjustment : Object { +class Adjustment set wrap wrapsig : Object { + "lower" gdouble : Read / Write + "page-increment" gdouble : Read / Write + "page-size" gdouble : Read / Write + "step-increment" gdouble : Read / Write + "upper" gdouble : Read / Write + "value" gdouble : Read / Write signal changed signal value_changed } diff --git a/src/gtkData.ml b/src/gtkData.ml index cb10d67..962290b 100644 --- a/src/gtkData.ml +++ b/src/gtkData.ml @@ -143,30 +143,9 @@ module Adjustment = struct value:float -> lower:float -> upper:float -> step_incr:float -> page_incr:float -> page_size:float -> adjustment obj = "ml_gtk_adjustment_new_bc" "ml_gtk_adjustment_new" - external set_value : [>`adjustment] obj -> float -> unit - = "ml_gtk_adjustment_set_value" external clamp_page : [>`adjustment] obj -> lower:float -> upper:float -> unit = "ml_gtk_adjustment_clamp_page" - external get_lower : [>`adjustment] obj -> float - = "ml_gtk_adjustment_get_lower" - external get_upper : [>`adjustment] obj -> float - = "ml_gtk_adjustment_get_upper" - external get_value : [>`adjustment] obj -> float - = "ml_gtk_adjustment_get_value" - external get_step_increment : [>`adjustment] obj -> float - = "ml_gtk_adjustment_get_step_increment" - external get_page_increment : [>`adjustment] obj -> float - = "ml_gtk_adjustment_get_page_increment" - external get_page_size : [>`adjustment] obj -> float - = "ml_gtk_adjustment_get_page_size" - external set : ?lower:float -> ?upper:float -> ?step_incr:float -> - ?page_incr:float -> ?page_size:float -> [>`adjustment] obj -> unit - = "ml_gtk_adjustment_set_bc" "ml_gtk_adjustment_set" - let set_bounds adj ?lower ?upper ?step_incr ?page_incr ?page_size () = - set adj ?lower ?upper ?step_incr ?page_incr ?page_size; - GtkSignal.emit_unit adj ~sgn:S.changed; - set_value adj (get_value adj) end module Tooltips = struct diff --git a/src/gtkSignal.ml4 b/src/gtkSignal.ml4 index 4ab9f65..91c8d2c 100644 --- a/src/gtkSignal.ml4 +++ b/src/gtkSignal.ml4 @@ -200,6 +200,6 @@ let connect ~sgn: ((sgn:('a, _) t)) ~callback ?after (obj : 'a obj) = let connect_property ~(prop:('a, _) property) ~callback (obj : 'a obj) = let name = "notify::" ^ prop.Gobject.name in - let marshaller = marshal1 prop.conv name in - connect_aux ~name ~marshaller ~callback obj + let callback = fun () -> callback (get prop obj) in + connect_aux ~name ~marshaller:marshal_unit ~callback obj diff --git a/src/gtkTree.props b/src/gtkTree.props index f972125..bdbd25a 100644 --- a/src/gtkTree.props +++ b/src/gtkTree.props @@ -252,7 +252,7 @@ class IconView set wrap wrapsig : Container { signal selection_changed (* signal set_scroll_adjustments : GtkAdjustment GtkAdjustment *) - method get_path_at_pos : "int -> int -> Gtk.tree_path" + method get_path_at_pos : "int -> int -> Gtk.tree_path option" method selected_foreach : "(Gtk.tree_path -> unit) -> unit" method select_path : "Gtk.tree_path -> unit" method unselect_path : "Gtk.tree_path -> unit" diff --git a/src/ml_gtk.c b/src/ml_gtk.c index c86ae02..3bc8589 100644 --- a/src/ml_gtk.c +++ b/src/ml_gtk.c @@ -231,9 +231,10 @@ ML_1 (gtk_object_sink, GtkObject_val, Unit) ML_6 (gtk_adjustment_new, Float_val, Float_val, Float_val, Float_val, Float_val, Float_val, Val_GtkObject_sink) ML_bc6 (ml_gtk_adjustment_new) -ML_2 (gtk_adjustment_set_value, GtkAdjustment_val, Float_val, Unit) ML_3 (gtk_adjustment_clamp_page, GtkAdjustment_val, Float_val, Float_val, Unit) +/* +ML_2 (gtk_adjustment_set_value, GtkAdjustment_val, Float_val, Unit) Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, lower, copy_double) Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, upper, copy_double) Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, value, copy_double) @@ -247,7 +248,7 @@ CAMLprim value ml_gtk_adjustment_set(value lower, value upper, value page_size, value adjustment) { GtkAdjustment *adj = GtkAdjustment_val(adjustment); -#define Update_field(name) adj->name = Option_val(name,Double_val,adj->name) +#define Update_field(name) (adj->name = Option_val(name,Double_val,adj->name) Update_field(lower); Update_field(upper); Update_field(step_increment); @@ -257,6 +258,7 @@ CAMLprim value ml_gtk_adjustment_set(value lower, value upper, return Val_unit; } ML_bc6(ml_gtk_adjustment_set) +*/ /* gtktooltips.h */ diff --git a/src/wrappers.h b/src/wrappers.h index fa11dd7..7a87c83 100644 --- a/src/wrappers.h +++ b/src/wrappers.h @@ -254,7 +254,8 @@ CAMLprim value cname##_bc (value *argv, int argn) \ /* parameter conversion */ #define Bool_ptr(x) ((long) x - 1) #define Char_val Int_val -#define Float_val(x) ((float)Double_val(x)) +#define Float_val Double_val +/* #define Float_val(x) ((float)Double_val(x)) */ #define SizedString_val(x) String_val(x), string_length(x) #define Option_val(val,unwrap,default) \ -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ocaml-maint/packages/lablgtk2.git _______________________________________________ Pkg-ocaml-maint-commits mailing list Pkg-ocaml-maint-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-ocaml-maint-commits