diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/gi/Scintilla-0.1.gir.good | 219 | ||||
-rw-r--r-- | test/gi/filter-scintilla-h.py | 19 | ||||
-rw-r--r-- | test/gi/gi-test.py | 9 | ||||
-rw-r--r-- | test/gi/makefile | 20 |
4 files changed, 254 insertions, 13 deletions
diff --git a/test/gi/Scintilla-0.1.gir.good b/test/gi/Scintilla-0.1.gir.good index b3919a725..771edae6e 100644 --- a/test/gi/Scintilla-0.1.gir.good +++ b/test/gi/Scintilla-0.1.gir.good @@ -14,6 +14,24 @@ and/or use gtk-doc annotations. --> shared-library="libscintilla.so" c:identifier-prefixes="Scintilla" c:symbol-prefixes="scintilla"> + <alias name="Sci_Position" c:type="Sci_Position"> + <type name="gint" c:type="int"/> + </alias> + <alias name="Sci_PositionCR" c:type="Sci_PositionCR"> + <type name="glong" c:type="long"/> + </alias> + <alias name="Sci_PositionU" c:type="Sci_PositionU"> + <type name="guint" c:type="unsigned int"/> + </alias> + <alias name="Sci_SurfaceID" c:type="Sci_SurfaceID"> + <type name="gpointer" c:type="gpointer"/> + </alias> + <alias name="sptr_t" c:type="sptr_t"> + <type name="glong" c:type="long"/> + </alias> + <alias name="uptr_t" c:type="uptr_t"> + <type name="gulong" c:type="unsigned long"/> + </alias> <constant name="NOTIFY" value="sci-notify" c:type="SCINTILLA_NOTIFY"> <type name="utf8" c:type="gchar*"/> </constant> @@ -36,9 +54,15 @@ and/or use gtk-doc annotations. --> <type name="none" c:type="void"/> </return-value> <parameters> - <instance-parameter name="ttt" transfer-ownership="none"> + <instance-parameter name="sci" transfer-ownership="none"> <type name="Object" c:type="ScintillaObject*"/> </instance-parameter> + <parameter name="cmd" transfer-ownership="none"> + <type name="gint" c:type="int"/> + </parameter> + <parameter name="window" transfer-ownership="none"> + <type name="Gtk.Widget" c:type="GtkWidget*"/> + </parameter> </parameters> </virtual-method> <virtual-method name="notify"> @@ -46,9 +70,15 @@ and/or use gtk-doc annotations. --> <type name="none" c:type="void"/> </return-value> <parameters> - <instance-parameter name="ttt" transfer-ownership="none"> + <instance-parameter name="sci" transfer-ownership="none"> <type name="Object" c:type="ScintillaObject*"/> </instance-parameter> + <parameter name="id" transfer-ownership="none"> + <type name="gint" c:type="int"/> + </parameter> + <parameter name="scn" transfer-ownership="none"> + <type name="SCNotification" c:type="SCNotification*"/> + </parameter> </parameters> </virtual-method> <method name="send_message" c:identifier="scintilla_object_send_message"> @@ -85,7 +115,7 @@ and/or use gtk-doc annotations. --> <type name="gint" c:type="gint"/> </parameter> <parameter name="p0" transfer-ownership="none"> - <type name="gpointer" c:type="gpointer"/> + <type name="Gtk.Widget"/> </parameter> </parameters> </glib:signal> @@ -98,7 +128,7 @@ and/or use gtk-doc annotations. --> <type name="gint" c:type="gint"/> </parameter> <parameter name="p0" transfer-ownership="none"> - <type name="gpointer" c:type="gpointer"/> + <type name="SCNotification"/> </parameter> </parameters> </glib:signal> @@ -115,9 +145,15 @@ and/or use gtk-doc annotations. --> <type name="none" c:type="void"/> </return-value> <parameters> - <parameter name="ttt" transfer-ownership="none"> + <parameter name="sci" transfer-ownership="none"> <type name="Object" c:type="ScintillaObject*"/> </parameter> + <parameter name="cmd" transfer-ownership="none"> + <type name="gint" c:type="int"/> + </parameter> + <parameter name="window" transfer-ownership="none"> + <type name="Gtk.Widget" c:type="GtkWidget*"/> + </parameter> </parameters> </callback> </field> @@ -127,12 +163,183 @@ and/or use gtk-doc annotations. --> <type name="none" c:type="void"/> </return-value> <parameters> - <parameter name="ttt" transfer-ownership="none"> + <parameter name="sci" transfer-ownership="none"> <type name="Object" c:type="ScintillaObject*"/> </parameter> + <parameter name="id" transfer-ownership="none"> + <type name="gint" c:type="int"/> + </parameter> + <parameter name="scn" transfer-ownership="none"> + <type name="SCNotification" c:type="SCNotification*"/> + </parameter> </parameters> </callback> </field> </record> + <record name="SCNotification" + c:type="SCNotification" + glib:type-name="SCNotification" + glib:get-type="scnotification_get_type" + c:symbol-prefix="scnotification"> + <field name="nmhdr" writable="1"> + <type name="Sci_NotifyHeader" c:type="Sci_NotifyHeader"/> + </field> + <field name="position" writable="1"> + <type name="Sci_Position" c:type="Sci_Position"/> + </field> + <field name="ch" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="modifiers" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="modificationType" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="text" writable="1"> + <type name="utf8" c:type="const char*"/> + </field> + <field name="length" writable="1"> + <type name="Sci_Position" c:type="Sci_Position"/> + </field> + <field name="linesAdded" writable="1"> + <type name="Sci_Position" c:type="Sci_Position"/> + </field> + <field name="message" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="wParam" writable="1"> + <type name="uptr_t" c:type="uptr_t"/> + </field> + <field name="lParam" writable="1"> + <type name="sptr_t" c:type="sptr_t"/> + </field> + <field name="line" writable="1"> + <type name="Sci_Position" c:type="Sci_Position"/> + </field> + <field name="foldLevelNow" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="foldLevelPrev" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="margin" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="listType" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="x" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="y" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="token" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="annotationLinesAdded" writable="1"> + <type name="Sci_Position" c:type="Sci_Position"/> + </field> + <field name="updated" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="listCompletionMethod" writable="1"> + <type name="gint" c:type="int"/> + </field> + </record> + <callback name="SciFnDirect"> + <return-value transfer-ownership="none"> + <type name="sptr_t" c:type="sptr_t"/> + </return-value> + <parameters> + <parameter name="ptr" transfer-ownership="none"> + <type name="sptr_t" c:type="sptr_t"/> + </parameter> + <parameter name="iMessage" transfer-ownership="none"> + <type name="guint" c:type="unsigned int"/> + </parameter> + <parameter name="wParam" transfer-ownership="none"> + <type name="uptr_t" c:type="uptr_t"/> + </parameter> + <parameter name="lParam" transfer-ownership="none"> + <type name="sptr_t" c:type="sptr_t"/> + </parameter> + </parameters> + </callback> + <record name="Sci_CharacterRange" c:type="Sci_CharacterRange"> + <field name="cpMin" writable="1"> + <type name="Sci_PositionCR" c:type="Sci_PositionCR"/> + </field> + <field name="cpMax" writable="1"> + <type name="Sci_PositionCR" c:type="Sci_PositionCR"/> + </field> + </record> + <record name="Sci_NotifyHeader" c:type="Sci_NotifyHeader"> + <field name="hwndFrom" writable="1"> + <type name="gpointer" c:type="void*"/> + </field> + <field name="idFrom" writable="1"> + <type name="uptr_t" c:type="uptr_t"/> + </field> + <field name="code" writable="1"> + <type name="guint" c:type="unsigned"/> + </field> + </record> + <record name="Sci_RangeToFormat" c:type="Sci_RangeToFormat"> + <field name="hdc" writable="1"> + <type name="Sci_SurfaceID" c:type="Sci_SurfaceID"/> + </field> + <field name="hdcTarget" writable="1"> + <type name="Sci_SurfaceID" c:type="Sci_SurfaceID"/> + </field> + <field name="rc" writable="1"> + <type name="gpointer" c:type="Sci_Rectangle"/> + </field> + <field name="rcPage" writable="1"> + <type name="gpointer" c:type="Sci_Rectangle"/> + </field> + <field name="chrg" writable="1"> + <type name="gpointer" c:type="Sci_CharacterRange"/> + </field> + </record> + <record name="Sci_Rectangle" c:type="Sci_Rectangle"> + <field name="left" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="top" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="right" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="bottom" writable="1"> + <type name="gint" c:type="int"/> + </field> + </record> + <record name="Sci_TextRange" c:type="Sci_TextRange"> + <field name="chrg" writable="1"> + <type name="gpointer" c:type="Sci_CharacterRange"/> + </field> + <field name="lpstrText" writable="1"> + <type name="utf8" c:type="char*"/> + </field> + </record> + <record name="Sci_TextToFind" c:type="Sci_TextToFind"> + <field name="chrg" writable="1"> + <type name="gpointer" c:type="Sci_CharacterRange"/> + </field> + <field name="lpstrText" writable="1"> + <type name="utf8" c:type="const char*"/> + </field> + <field name="chrgText" writable="1"> + <type name="gpointer" c:type="Sci_CharacterRange"/> + </field> + </record> + <function name="Scintilla_LinkLexers" c:identifier="Scintilla_LinkLexers"> + <return-value transfer-ownership="none"> + <type name="gint" c:type="int"/> + </return-value> + </function> </namespace> </repository> diff --git a/test/gi/filter-scintilla-h.py b/test/gi/filter-scintilla-h.py new file mode 100644 index 000000000..0743f9ef2 --- /dev/null +++ b/test/gi/filter-scintilla-h.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python +# Filters Scintilla.h to not contain generated stuff or deprecated defines + +import sys +import fileinput + +def main(): + inhibit = 0 + for line in fileinput.input(): + if line.startswith("/* ++Autogenerated") or line.startswith("#ifdef INCLUDE_DEPRECATED_FEATURES"): + inhibit += 1 + if inhibit == 0: + sys.stdout.write(line) + if line.startswith("/* --Autogenerated") or line.startswith("#endif"): + if (inhibit > 0): + inhibit -= 1 + +if __name__ == "__main__": + main() diff --git a/test/gi/gi-test.py b/test/gi/gi-test.py index 6c775ea0c..b047ecec9 100644 --- a/test/gi/gi-test.py +++ b/test/gi/gi-test.py @@ -8,9 +8,18 @@ gi.require_version('Scintilla', '0.1') from gi.repository import Scintilla from gi.repository import Gtk +def on_notify(sci, id, scn): + if (scn.nmhdr.code == 2001): # SCN_CHARADDED + print ("sci-notify: id: %d, char added: %d" % (id, scn.ch)) + elif (scn.nmhdr.code == 2008): # SCN_MODIFIED + print ("sci-notify: id: %d, pos: %d, mod type: %d" % (id, scn.position, scn.modificationType)) + else: + print ("sci-notify: id: %d, scn.nmhdr.code: %d" % (id, scn.nmhdr.code)) + win = Gtk.Window() win.connect("delete-event", Gtk.main_quit) sci = Scintilla.Object() +sci.connect("sci-notify", on_notify) win.add(sci) win.show_all() win.resize(400,300) diff --git a/test/gi/makefile b/test/gi/makefile index cf7522303..8b01de341 100644 --- a/test/gi/makefile +++ b/test/gi/makefile @@ -12,20 +12,26 @@ GTK_LIBS = $(shell pkg-config --libs gtk+-$(GTKVERSION)) GTK_CFLAGS = $(shell pkg-config --cflags gtk+-$(GTKVERSION)) PWD = $(shell pwd) -FORCE: +.PHONY: test clean FORCE ../../bin/scintilla.a: FORCE $(MAKE) -C ../../gtk all +Scintilla-filtered.h: ../../include/Scintilla.h + python filter-scintilla-h.py $< > $@ + libscintilla.so: ../../bin/scintilla.a $(CXX) -shared -o $@ -Wl,--whole-archive $^ -Wl,--no-whole-archive $(GTK_LIBS) -Scintilla-0.1.gir: libscintilla.so +Scintilla-0.1.gir: libscintilla.so Scintilla-filtered.h LDFLAGS=-Wl,-rpath=$(shell pwd) \ - $(GI_SCANNER) --warn-all -i Gtk-$(GTKVERSION) -DG_IR_SCANNING -DGTK \ - --cflags-begin $(GTK_CFLAGS) -include gtk/gtk.h --cflags-end \ + $(GI_SCANNER) --no-libtool --warn-all -i Gtk-$(GTKVERSION) -DG_IR_SCANNING -DGTK \ + --cflags-begin $(GTK_CFLAGS) -include gtk/gtk.h \ + -include Scintilla-filtered.h -I../../include --cflags-end \ + --accept-unprefixed \ --c-include Scintilla.h --c-include ScintillaWidget.h \ - -n Scintilla --nsversion 0.1 --library scintilla -L$(PWD) ../../include/ScintillaWidget.h \ + -n Scintilla --nsversion 0.1 --library scintilla -L$(PWD) \ + ../../include/Sci_Position.h ../../include/ScintillaWidget.h Scintilla-filtered.h \ -o $@ Scintilla-0.1.typelib: Scintilla-0.1.gir @@ -35,9 +41,9 @@ clean: rm -f libscintilla.so Scintilla-0.1.gir Scintilla-0.1.typelib $(MAKE) -C ../../gtk clean -test: Scintilla-0.1.gir +test: Scintilla-0.1.gir Scintilla-0.1.typelib @echo Verifying Scintilla-0.1.gir file - @diff $^.good $^ || (echo "GIR FILE MISMATCH!"; exit 1) + @diff $<.good $< || (echo "GIR FILE MISMATCH!"; exit 1) @echo Launching gi-test.py python program GI_TYPELIB_PATH=$(PWD) LD_LIBRARY_PATH=$(PWD) \ python $(PWD)/gi-test.py |