From eee11205456555dec423fca2a849c9ceb2585ac3 Mon Sep 17 00:00:00 2001 From: Stefano Zacchiroli Date: Tue, 16 Dec 2003 17:16:01 +0000 Subject: [PATCH] removed ancient lablgtk, lablgtk_gtkmathview --- .../lablgtk/lablgtk_20000829-0.1.0-1.i386.rpm | Bin 1476108 -> 0 bytes .../lablgtk/lablgtk_20000829-0.1.0-1.spec | 25 - .../lablgtk/lablgtk_20000829-0.1.0-1.src.rpm | Bin 421518 -> 0 bytes .../lablgtk/lablgtk_20000829-0.1.0.tar.gz | Bin 419688 -> 0 bytes .../lablgtk/lablgtk_20000829-0.1.0/.cvsignore | 11 - .../lablgtk/lablgtk_20000829-0.1.0/CHANGES | 358 --- .../lablgtk/lablgtk_20000829-0.1.0/COPYING | 28 - .../lablgtk/lablgtk_20000829-0.1.0/Makefile | 190 -- .../lablgtk_20000829-0.1.0/Makefile.nt | 147 -- .../lablgtk/lablgtk_20000829-0.1.0/README | 238 -- .../applications/browser/.cvsignore | 3 - .../applications/browser/Makefile | 41 - .../applications/browser/README | 18 - .../applications/browser/TODO | 4 - .../applications/browser/editor.ml | 101 - .../applications/browser/file.ml | 13 - .../applications/browser/lexical.ml | 155 -- .../applications/browser/list2.ml | 25 - .../applications/browser/shell.ml | 255 -- .../applications/browser/text.ml | 16 - .../applications/browser/useunix.ml | 36 - .../applications/browser/widgets.ml | 34 - .../applications/radtest/.cvsignore | 3 - .../applications/radtest/CHANGES | 16 - .../applications/radtest/Makefile | 86 - .../applications/radtest/README | 24 - .../applications/radtest/aspectframe.xpm | 33 - .../applications/radtest/button.xpm | 33 - .../applications/radtest/checkbutton.xpm | 33 - .../applications/radtest/clist.xpm | 30 - .../applications/radtest/colorselection.xpm | 35 - .../applications/radtest/combo.xpm | 34 - .../applications/radtest/common.mli | 27 - .../applications/radtest/entry.xpm | 33 - .../applications/radtest/eventbox.xpm | 34 - .../applications/radtest/fixed.xpm | 31 - .../applications/radtest/frame.xpm | 33 - .../applications/radtest/gToolbar2.ml | 65 - .../applications/radtest/gTree2.ml | 78 - .../applications/radtest/gTree2.mli | 73 - .../applications/radtest/gtkTree2.ml | 82 - .../applications/radtest/gtktree2.c | 1385 ----------- .../applications/radtest/gtktree2.h | 139 -- .../applications/radtest/gtktreeitem2.c | 1110 --------- .../applications/radtest/gtktreeitem2.h | 91 - .../applications/radtest/handlebox.xpm | 34 - .../applications/radtest/hbox.xpm | 31 - .../applications/radtest/hbuttonbox.xpm | 33 - .../applications/radtest/hseparator.xpm | 31 - .../applications/radtest/label.xpm | 30 - .../applications/radtest/load_lexer.mll | 46 - .../applications/radtest/load_parser.mly | 56 - .../applications/radtest/main.ml | 393 --- .../applications/radtest/ml_gtk2.c | 124 - .../applications/radtest/notebook.xpm | 33 - .../applications/radtest/pixmap.xpm | 39 - .../applications/radtest/property.ml | 175 -- .../applications/radtest/property.mli | 96 - .../applications/radtest/propwin.ml | 180 -- .../applications/radtest/propwin.mli | 10 - .../applications/radtest/radiobutton.xpm | 33 - .../applications/radtest/scrolledwindow.xpm | 30 - .../applications/radtest/spinbutton.xpm | 33 - .../applications/radtest/statusbar.xpm | 34 - .../applications/radtest/tiBase.ml | 671 ----- .../applications/radtest/tiBin.ml | 185 -- .../applications/radtest/tiButton.ml | 372 --- .../applications/radtest/tiContainer.ml | 92 - .../applications/radtest/tiEdit.ml | 153 -- .../applications/radtest/tiList.ml | 66 - .../applications/radtest/tiMisc.ml | 176 -- .../applications/radtest/tiPack.ml | 300 --- .../applications/radtest/tiWidget.ml | 43 - .../applications/radtest/tiWindow.ml | 117 - .../applications/radtest/togglebutton.xpm | 33 - .../applications/radtest/toolbar.xpm | 33 - .../applications/radtest/tree_minus.xpm | 18 - .../applications/radtest/tree_plus.xpm | 18 - .../applications/radtest/utils.ml | 353 --- .../applications/radtest/vbox.xpm | 31 - .../applications/radtest/vbuttonbox.xpm | 33 - .../applications/radtest/viewport.xpm | 34 - .../applications/radtest/vseparator.xpm | 31 - .../applications/radtest/window.xpm | 38 - .../applications/unison/.cvsignore | 1 - .../applications/unison/README | 19 - .../applications/unison/uigtk.ml | 1434 ----------- .../lablgtk_20000829-0.1.0/config.make.nt | 6 - .../lablgtk_20000829-0.1.0/configure.mk | 50 - .../lablgtk_20000829-0.1.0/doc/formula.eps | 409 ---- .../lablgtk_20000829-0.1.0/doc/lablgtk.mgp | 558 ----- .../examples/GL/morph3d.ml | 607 ----- .../examples/GL/planet.ml | 125 - .../examples/GL/simple.ml | 33 - .../lablgtk_20000829-0.1.0/examples/README | 17 - .../examples/buttons.ml | 26 - .../lablgtk_20000829-0.1.0/examples/calc.ml | 114 - .../examples/calendar.ml | 21 - .../lablgtk_20000829-0.1.0/examples/clist.ml | 51 - .../lablgtk_20000829-0.1.0/examples/combo.ml | 23 - .../lablgtk_20000829-0.1.0/examples/csview.ml | 155 -- .../examples/dcalendar.ml | 247 -- .../examples/drawing.ml | 19 - .../lablgtk_20000829-0.1.0/examples/editor.ml | 101 - .../lablgtk_20000829-0.1.0/examples/entry.ml | 48 - .../lablgtk_20000829-0.1.0/examples/events.ml | 25 - .../examples/fifteen.ml | 97 - .../examples/fixed_editor.ml | 279 --- .../examples/fixpoint.ml | 30 - .../lablgtk_20000829-0.1.0/examples/hello.ml | 18 - .../lablgtk_20000829-0.1.0/examples/image.ml | 67 - .../examples/image256x256.rgb | 19 - .../examples/kaimono.ml | 130 - .../lablgtk_20000829-0.1.0/examples/label.ml | 48 - .../examples/lissajous.ml | 48 - .../examples/nihongo.ml | 31 - .../examples/old/fixpoint.ml | 39 - .../examples/old/hello.ml | 23 - .../examples/old/progressbar.ml | 60 - .../lablgtk_20000829-0.1.0/examples/pousse.ml | 199 -- .../examples/progressbar.ml | 51 - .../examples/radiobuttons.ml | 39 - .../lablgtk_20000829-0.1.0/examples/rpn.ml | 129 - .../examples/scrolledwin.ml | 35 - .../lablgtk_20000829-0.1.0/examples/socket.ml | 16 - .../lablgtk_20000829-0.1.0/examples/test.xpm | 92 - .../examples/testdnd.ml | 510 ---- .../examples/testgtk.ml | 1140 --------- .../examples/testinput.ml | 43 - .../examples/tictactoe.ml | 113 - .../lablgtk_20000829-0.1.0/examples/tron.ml | 204 -- .../examples/xmhtml/test.ml | 38 - .../lablgtk/lablgtk_20000829-0.1.0/gBin.ml | 153 -- .../lablgtk/lablgtk_20000829-0.1.0/gBin.mli | 163 -- .../lablgtk/lablgtk_20000829-0.1.0/gButton.ml | 124 - .../lablgtk_20000829-0.1.0/gButton.mli | 144 -- .../lablgtk_20000829-0.1.0/gContainer.ml | 75 - .../lablgtk_20000829-0.1.0/gContainer.mli | 79 - .../lablgtk/lablgtk_20000829-0.1.0/gData.ml | 60 - .../lablgtk/lablgtk_20000829-0.1.0/gData.mli | 60 - .../lablgtk/lablgtk_20000829-0.1.0/gDraw.ml | 163 -- .../lablgtk/lablgtk_20000829-0.1.0/gDraw.mli | 107 - .../lablgtk/lablgtk_20000829-0.1.0/gEdit.ml | 147 -- .../lablgtk/lablgtk_20000829-0.1.0/gEdit.mli | 146 -- .../lablgtk/lablgtk_20000829-0.1.0/gHtml.ml | 33 - .../lablgtk/lablgtk_20000829-0.1.0/gList.ml | 162 -- .../lablgtk/lablgtk_20000829-0.1.0/gList.mli | 158 -- .../lablgtk/lablgtk_20000829-0.1.0/gMain.ml | 26 - .../lablgtk/lablgtk_20000829-0.1.0/gMenu.ml | 199 -- .../lablgtk/lablgtk_20000829-0.1.0/gMenu.mli | 196 -- .../lablgtk/lablgtk_20000829-0.1.0/gMisc.ml | 217 -- .../lablgtk/lablgtk_20000829-0.1.0/gMisc.mli | 263 -- .../lablgtk/lablgtk_20000829-0.1.0/gObj.ml | 292 --- .../lablgtk/lablgtk_20000829-0.1.0/gObj.mli | 267 -- .../lablgtk/lablgtk_20000829-0.1.0/gPack.ml | 217 -- .../lablgtk/lablgtk_20000829-0.1.0/gPack.mli | 267 -- .../lablgtk/lablgtk_20000829-0.1.0/gRange.ml | 83 - .../lablgtk/lablgtk_20000829-0.1.0/gRange.mli | 87 - .../lablgtk/lablgtk_20000829-0.1.0/gTree.ml | 76 - .../lablgtk/lablgtk_20000829-0.1.0/gTree.mli | 72 - .../lablgtk/lablgtk_20000829-0.1.0/gUtil.ml | 80 - .../lablgtk/lablgtk_20000829-0.1.0/gUtil.mli | 109 - .../lablgtk/lablgtk_20000829-0.1.0/gWindow.ml | 151 -- .../lablgtk_20000829-0.1.0/gWindow.mli | 156 -- .../lablgtk/lablgtk_20000829-0.1.0/gaux.ml | 17 - .../lablgtk/lablgtk_20000829-0.1.0/gdk.ml | 535 ---- .../lablgtk/lablgtk_20000829-0.1.0/gdk.mli | 447 ---- .../lablgtk_20000829-0.1.0/gdkEvent.ml | 159 -- .../lablgtk_20000829-0.1.0/gdkKeysyms.ml | 1320 ---------- .../lablgtk_20000829-0.1.0/gdk_tags.var | 165 -- .../lablgtk/lablgtk_20000829-0.1.0/glGtk.ml | 86 - .../lablgtk/lablgtk_20000829-0.1.0/glGtk.mli | 63 - .../lablgtk/lablgtk_20000829-0.1.0/glib.ml | 21 - .../lablgtk_20000829-0.1.0/gpointer.ml | 41 - .../lablgtk/lablgtk_20000829-0.1.0/gtk.ml | 158 -- .../lablgtk/lablgtk_20000829-0.1.0/gtkArgv.ml | 106 - .../lablgtk/lablgtk_20000829-0.1.0/gtkBase.ml | 414 ---- .../lablgtk/lablgtk_20000829-0.1.0/gtkBin.ml | 170 -- .../lablgtk_20000829-0.1.0/gtkButton.ml | 148 -- .../lablgtk/lablgtk_20000829-0.1.0/gtkData.ml | 148 -- .../lablgtk/lablgtk_20000829-0.1.0/gtkEdit.ml | 223 -- .../lablgtk/lablgtk_20000829-0.1.0/gtkInit.ml | 5 - .../lablgtk/lablgtk_20000829-0.1.0/gtkList.ml | 294 --- .../lablgtk/lablgtk_20000829-0.1.0/gtkMain.ml | 50 - .../lablgtk/lablgtk_20000829-0.1.0/gtkMenu.ml | 144 -- .../lablgtk/lablgtk_20000829-0.1.0/gtkMisc.ml | 323 --- .../lablgtk/lablgtk_20000829-0.1.0/gtkNew.ml | 56 - .../lablgtk/lablgtk_20000829-0.1.0/gtkPack.ml | 318 --- .../lablgtk_20000829-0.1.0/gtkRange.ml | 147 -- .../lablgtk_20000829-0.1.0/gtkSignal.ml | 65 - .../lablgtk_20000829-0.1.0/gtkSignal.mli | 45 - .../lablgtk_20000829-0.1.0/gtkThInit.ml | 5 - .../lablgtk_20000829-0.1.0/gtkThread.ml | 33 - .../lablgtk/lablgtk_20000829-0.1.0/gtkTree.ml | 122 - .../lablgtk_20000829-0.1.0/gtkWindow.ml | 189 -- .../lablgtk_20000829-0.1.0/gtkXmHTML.ml | 109 - .../lablgtk_20000829-0.1.0/gtk_tags.var | 171 -- .../lablgtk_20000829-0.1.0/gtkgl_tags.var | 19 - .../lablgtk_20000829-0.1.0/gtkxmhtml_tags.var | 30 - .../lablgtk_20000829-0.1.0/lablgl.patch | 112 - .../lablgtk/lablgtk_20000829-0.1.0/lablgtk.in | 24 - .../lablgtk/lablgtk_20000829-0.1.0/ml_gdk.c | 522 ---- .../lablgtk/lablgtk_20000829-0.1.0/ml_gdk.h | 53 - .../lablgtk/lablgtk_20000829-0.1.0/ml_glib.c | 135 - .../lablgtk/lablgtk_20000829-0.1.0/ml_glib.h | 10 - .../lablgtk/lablgtk_20000829-0.1.0/ml_gtk.c | 2170 ----------------- .../lablgtk/lablgtk_20000829-0.1.0/ml_gtk.h | 15 - .../lablgtk/lablgtk_20000829-0.1.0/ml_gtkgl.c | 54 - .../lablgtk_20000829-0.1.0/ml_gtkxmhtml.c | 76 - .../lablgtk_20000829-0.1.0/var2conv.ml | 99 - .../lablgtk/lablgtk_20000829-0.1.0/var2def.ml | 44 - .../lablgtk/lablgtk_20000829-0.1.0/wrappers.c | 76 - .../lablgtk/lablgtk_20000829-0.1.0/wrappers.h | 222 -- .../lablgtk/lablgtk_20001129-0.1.0-1.spec | 143 -- .../lablgtk/lablgtk_20001129-0.1.0.tar.gz | Bin 407998 -> 0 bytes .../lablgtk/lablgtk_20001129-0.1.0/.cvsignore | 10 - .../lablgtk/lablgtk_20001129-0.1.0/CHANGES | 365 --- .../lablgtk/lablgtk_20001129-0.1.0/COPYING | 28 - .../lablgtk/lablgtk_20001129-0.1.0/Makefile | 187 -- .../lablgtk_20001129-0.1.0/Makefile.nt | 147 -- .../lablgtk/lablgtk_20001129-0.1.0/README | 239 -- .../applications/browser/.cvsignore | 3 - .../applications/browser/Makefile | 41 - .../applications/browser/README | 18 - .../applications/browser/TODO | 4 - .../applications/browser/editor.ml | 101 - .../applications/browser/file.ml | 13 - .../applications/browser/lexical.ml | 155 -- .../applications/browser/list2.ml | 25 - .../applications/browser/shell.ml | 255 -- .../applications/browser/text.ml | 16 - .../applications/browser/useunix.ml | 36 - .../applications/browser/widgets.ml | 34 - .../applications/radtest/.cvsignore | 3 - .../applications/radtest/CHANGES | 16 - .../applications/radtest/Makefile | 86 - .../applications/radtest/README | 24 - .../applications/radtest/aspectframe.xpm | 33 - .../applications/radtest/button.xpm | 33 - .../applications/radtest/checkbutton.xpm | 33 - .../applications/radtest/clist.xpm | 30 - .../applications/radtest/colorselection.xpm | 35 - .../applications/radtest/combo.xpm | 34 - .../applications/radtest/common.mli | 27 - .../applications/radtest/entry.xpm | 33 - .../applications/radtest/eventbox.xpm | 34 - .../applications/radtest/fixed.xpm | 31 - .../applications/radtest/frame.xpm | 33 - .../applications/radtest/gToolbar2.ml | 65 - .../applications/radtest/gTree2.ml | 78 - .../applications/radtest/gTree2.mli | 73 - .../applications/radtest/gtkTree2.ml | 82 - .../applications/radtest/gtktree2.c | 1385 ----------- .../applications/radtest/gtktree2.h | 139 -- .../applications/radtest/gtktreeitem2.c | 1110 --------- .../applications/radtest/gtktreeitem2.h | 91 - .../applications/radtest/handlebox.xpm | 34 - .../applications/radtest/hbox.xpm | 31 - .../applications/radtest/hbuttonbox.xpm | 33 - .../applications/radtest/hseparator.xpm | 31 - .../applications/radtest/label.xpm | 30 - .../applications/radtest/load_lexer.mll | 46 - .../applications/radtest/load_parser.mly | 56 - .../applications/radtest/main.ml | 393 --- .../applications/radtest/ml_gtk2.c | 124 - .../applications/radtest/notebook.xpm | 33 - .../applications/radtest/pixmap.xpm | 39 - .../applications/radtest/property.ml | 175 -- .../applications/radtest/property.mli | 96 - .../applications/radtest/propwin.ml | 180 -- .../applications/radtest/propwin.mli | 10 - .../applications/radtest/radiobutton.xpm | 33 - .../applications/radtest/scrolledwindow.xpm | 30 - .../applications/radtest/spinbutton.xpm | 33 - .../applications/radtest/statusbar.xpm | 34 - .../applications/radtest/tiBase.ml | 671 ----- .../applications/radtest/tiBin.ml | 185 -- .../applications/radtest/tiButton.ml | 372 --- .../applications/radtest/tiContainer.ml | 92 - .../applications/radtest/tiEdit.ml | 153 -- .../applications/radtest/tiList.ml | 66 - .../applications/radtest/tiMisc.ml | 176 -- .../applications/radtest/tiPack.ml | 300 --- .../applications/radtest/tiWidget.ml | 43 - .../applications/radtest/tiWindow.ml | 117 - .../applications/radtest/togglebutton.xpm | 33 - .../applications/radtest/toolbar.xpm | 33 - .../applications/radtest/tree_minus.xpm | 18 - .../applications/radtest/tree_plus.xpm | 18 - .../applications/radtest/utils.ml | 353 --- .../applications/radtest/vbox.xpm | 31 - .../applications/radtest/vbuttonbox.xpm | 33 - .../applications/radtest/viewport.xpm | 34 - .../applications/radtest/vseparator.xpm | 31 - .../applications/radtest/window.xpm | 38 - .../applications/unison/.cvsignore | 1 - .../applications/unison/README | 10 - .../lablgtk_20001129-0.1.0/config.make.nt | 6 - .../lablgtk_20001129-0.1.0/configure.mk | 50 - .../lablgtk_20001129-0.1.0/doc/formula.eps | 409 ---- .../lablgtk_20001129-0.1.0/doc/lablgtk.mgp | 558 ----- .../examples/GL/morph3d.ml | 607 ----- .../examples/GL/planet.ml | 125 - .../examples/GL/simple.ml | 33 - .../lablgtk_20001129-0.1.0/examples/README | 17 - .../examples/buttons.ml | 26 - .../lablgtk_20001129-0.1.0/examples/calc.ml | 114 - .../examples/calendar.ml | 21 - .../lablgtk_20001129-0.1.0/examples/clist.ml | 51 - .../lablgtk_20001129-0.1.0/examples/combo.ml | 23 - .../lablgtk_20001129-0.1.0/examples/csview.ml | 155 -- .../examples/dcalendar.ml | 247 -- .../examples/drawing.ml | 19 - .../lablgtk_20001129-0.1.0/examples/editor.ml | 101 - .../lablgtk_20001129-0.1.0/examples/entry.ml | 48 - .../lablgtk_20001129-0.1.0/examples/events.ml | 25 - .../examples/fifteen.ml | 97 - .../examples/fixed_editor.ml | 279 --- .../examples/fixpoint.ml | 30 - .../lablgtk_20001129-0.1.0/examples/hello.ml | 18 - .../lablgtk_20001129-0.1.0/examples/image.ml | 67 - .../examples/image256x256.rgb | 19 - .../examples/kaimono.ml | 130 - .../lablgtk_20001129-0.1.0/examples/label.ml | 48 - .../examples/lissajous.ml | 48 - .../examples/nihongo.ml | 31 - .../lablgtk_20001129-0.1.0/examples/pousse.ml | 199 -- .../examples/progressbar.ml | 51 - .../examples/radiobuttons.ml | 39 - .../lablgtk_20001129-0.1.0/examples/rpn.ml | 129 - .../examples/scrolledwin.ml | 35 - .../lablgtk_20001129-0.1.0/examples/socket.ml | 16 - .../lablgtk_20001129-0.1.0/examples/test.xpm | 92 - .../examples/testdnd.ml | 510 ---- .../examples/testgtk.ml | 1140 --------- .../examples/testinput.ml | 43 - .../examples/tictactoe.ml | 113 - .../lablgtk_20001129-0.1.0/examples/tron.ml | 204 -- .../examples/xmhtml/test.ml | 38 - .../lablgtk/lablgtk_20001129-0.1.0/gBin.ml | 153 -- .../lablgtk/lablgtk_20001129-0.1.0/gBin.mli | 163 -- .../lablgtk/lablgtk_20001129-0.1.0/gButton.ml | 124 - .../lablgtk_20001129-0.1.0/gButton.mli | 144 -- .../lablgtk_20001129-0.1.0/gContainer.ml | 75 - .../lablgtk_20001129-0.1.0/gContainer.mli | 79 - .../lablgtk/lablgtk_20001129-0.1.0/gData.ml | 60 - .../lablgtk/lablgtk_20001129-0.1.0/gData.mli | 60 - .../lablgtk/lablgtk_20001129-0.1.0/gDraw.ml | 163 -- .../lablgtk/lablgtk_20001129-0.1.0/gDraw.mli | 107 - .../lablgtk/lablgtk_20001129-0.1.0/gEdit.ml | 147 -- .../lablgtk/lablgtk_20001129-0.1.0/gEdit.mli | 146 -- .../lablgtk/lablgtk_20001129-0.1.0/gHtml.ml | 33 - .../lablgtk/lablgtk_20001129-0.1.0/gList.ml | 162 -- .../lablgtk/lablgtk_20001129-0.1.0/gList.mli | 158 -- .../lablgtk/lablgtk_20001129-0.1.0/gMain.ml | 26 - .../lablgtk/lablgtk_20001129-0.1.0/gMenu.ml | 199 -- .../lablgtk/lablgtk_20001129-0.1.0/gMenu.mli | 196 -- .../lablgtk/lablgtk_20001129-0.1.0/gMisc.ml | 217 -- .../lablgtk/lablgtk_20001129-0.1.0/gMisc.mli | 263 -- .../lablgtk/lablgtk_20001129-0.1.0/gObj.ml | 292 --- .../lablgtk/lablgtk_20001129-0.1.0/gObj.mli | 267 -- .../lablgtk/lablgtk_20001129-0.1.0/gPack.ml | 217 -- .../lablgtk/lablgtk_20001129-0.1.0/gPack.mli | 267 -- .../lablgtk/lablgtk_20001129-0.1.0/gRange.ml | 83 - .../lablgtk/lablgtk_20001129-0.1.0/gRange.mli | 87 - .../lablgtk/lablgtk_20001129-0.1.0/gTree.ml | 76 - .../lablgtk/lablgtk_20001129-0.1.0/gTree.mli | 72 - .../lablgtk/lablgtk_20001129-0.1.0/gUtil.ml | 80 - .../lablgtk/lablgtk_20001129-0.1.0/gUtil.mli | 109 - .../lablgtk/lablgtk_20001129-0.1.0/gWindow.ml | 151 -- .../lablgtk_20001129-0.1.0/gWindow.mli | 156 -- .../lablgtk/lablgtk_20001129-0.1.0/gaux.ml | 17 - .../lablgtk/lablgtk_20001129-0.1.0/gdk.ml | 535 ---- .../lablgtk/lablgtk_20001129-0.1.0/gdk.mli | 447 ---- .../lablgtk_20001129-0.1.0/gdkEvent.ml | 159 -- .../lablgtk_20001129-0.1.0/gdkKeysyms.ml | 1320 ---------- .../lablgtk_20001129-0.1.0/gdk_tags.var | 163 -- .../lablgtk/lablgtk_20001129-0.1.0/glGtk.ml | 86 - .../lablgtk/lablgtk_20001129-0.1.0/glGtk.mli | 63 - .../lablgtk/lablgtk_20001129-0.1.0/glib.ml | 21 - .../lablgtk_20001129-0.1.0/gpointer.ml | 41 - .../lablgtk/lablgtk_20001129-0.1.0/gtk.ml | 158 -- .../lablgtk/lablgtk_20001129-0.1.0/gtkArgv.ml | 106 - .../lablgtk/lablgtk_20001129-0.1.0/gtkBase.ml | 414 ---- .../lablgtk/lablgtk_20001129-0.1.0/gtkBin.ml | 170 -- .../lablgtk_20001129-0.1.0/gtkButton.ml | 148 -- .../lablgtk/lablgtk_20001129-0.1.0/gtkData.ml | 148 -- .../lablgtk/lablgtk_20001129-0.1.0/gtkEdit.ml | 223 -- .../lablgtk/lablgtk_20001129-0.1.0/gtkInit.ml | 5 - .../lablgtk/lablgtk_20001129-0.1.0/gtkList.ml | 294 --- .../lablgtk/lablgtk_20001129-0.1.0/gtkMain.ml | 49 - .../lablgtk/lablgtk_20001129-0.1.0/gtkMenu.ml | 144 -- .../lablgtk/lablgtk_20001129-0.1.0/gtkMisc.ml | 323 --- .../lablgtk/lablgtk_20001129-0.1.0/gtkNew.ml | 56 - .../lablgtk/lablgtk_20001129-0.1.0/gtkPack.ml | 318 --- .../lablgtk_20001129-0.1.0/gtkRange.ml | 147 -- .../lablgtk_20001129-0.1.0/gtkSignal.ml | 65 - .../lablgtk_20001129-0.1.0/gtkSignal.mli | 45 - .../lablgtk_20001129-0.1.0/gtkThInit.ml | 5 - .../lablgtk_20001129-0.1.0/gtkThread.ml | 33 - .../lablgtk/lablgtk_20001129-0.1.0/gtkTree.ml | 122 - .../lablgtk_20001129-0.1.0/gtkWindow.ml | 189 -- .../lablgtk_20001129-0.1.0/gtkXmHTML.ml | 109 - .../lablgtk_20001129-0.1.0/gtk_tags.var | 169 -- .../lablgtk_20001129-0.1.0/gtkgl_tags.var | 19 - .../lablgtk_20001129-0.1.0/gtkxmhtml_tags.var | 30 - .../lablgtk_20001129-0.1.0/lablgl.patch | 112 - .../lablgtk/lablgtk_20001129-0.1.0/lablgtk.in | 24 - .../lablgtk/lablgtk_20001129-0.1.0/ml_gdk.c | 522 ---- .../lablgtk/lablgtk_20001129-0.1.0/ml_gdk.h | 53 - .../lablgtk/lablgtk_20001129-0.1.0/ml_glib.c | 143 -- .../lablgtk/lablgtk_20001129-0.1.0/ml_glib.h | 10 - .../lablgtk/lablgtk_20001129-0.1.0/ml_gtk.c | 1013 -------- .../lablgtk/lablgtk_20001129-0.1.0/ml_gtk.h | 24 - .../lablgtk_20001129-0.1.0/ml_gtkbin.c | 118 - .../lablgtk_20001129-0.1.0/ml_gtkbutton.c | 75 - .../lablgtk_20001129-0.1.0/ml_gtkedit.c | 126 - .../lablgtk/lablgtk_20001129-0.1.0/ml_gtkgl.c | 54 - .../lablgtk_20001129-0.1.0/ml_gtklist.c | 168 -- .../lablgtk_20001129-0.1.0/ml_gtkmenu.c | 97 - .../lablgtk_20001129-0.1.0/ml_gtkmisc.c | 139 -- .../lablgtk_20001129-0.1.0/ml_gtknew.c | 180 -- .../lablgtk_20001129-0.1.0/ml_gtkpack.c | 229 -- .../lablgtk_20001129-0.1.0/ml_gtkrange.c | 88 - .../lablgtk_20001129-0.1.0/ml_gtktree.c | 53 - .../lablgtk_20001129-0.1.0/ml_gtkxmhtml.c | 76 - .../lablgtk/lablgtk_20001129-0.1.0/varcc.ml | 157 -- .../lablgtk/lablgtk_20001129-0.1.0/wrappers.c | 90 - .../lablgtk/lablgtk_20001129-0.1.0/wrappers.h | 225 -- helm/DEVEL/lablgtk_gtkmathview/.cvsignore | 1 - helm/DEVEL/lablgtk_gtkmathview/.depend | 4 - ...lgtk-20000829_gtkmathview-0.1.0-1.i386.rpm | Bin 16862 -> 0 bytes .../lablgtk-20000829_gtkmathview-0.1.0-1.spec | 25 - ...blgtk-20000829_gtkmathview-0.1.0-1.src.rpm | Bin 7616 -> 0 bytes .../lablgtk-20000829_gtkmathview-0.1.0.tar.gz | Bin 5777 -> 0 bytes .../.depend | 4 - .../COPYING | 11 - .../Makefile | 98 - .../config.make | 15 - .../configure.mk | 53 - .../gMathView.ml | 50 - .../gtkMathView.ml | 61 - .../gtk_mathview.ml | 1 - .../ml_gtk_mathview.c | 55 - .../test/Makefile | 36 - .../test/test.ml | 141 -- .../test/test.xml | 123 - .../lablgtk-20000829_gtkmathview-0.2.0-1.spec | 25 - .../lablgtk-20000829_gtkmathview-0.2.0.tar.gz | Bin 14050 -> 0 bytes .../.cvsignore | 1 - .../.depend | 4 - .../COPYING | 11 - .../Makefile | 107 - .../configure.mk | 53 - .../gMathView.ml | 64 - .../gtkMathView.ml | 93 - .../gtk_mathview.ml | 1 - .../minidom/.cvsignore | 1 - .../minidom/Makefile | 43 - .../minidom/minidom.ml | 61 - .../minidom/minidom.mli | 50 - .../minidom/ml_minidom.c | 288 --- .../minidom/ml_minidom.h | 10 - .../minidom/test.ml | 84 - .../minidom/test.xml | 505 ---- .../ml_gtk_mathview.c | 120 - .../test/.cvsignore | 1 - .../test/Makefile | 43 - .../test/t1.config | 3 - .../test/test.ml | 278 --- .../test/test.xml | 123 - .../lablgtk-20000829_gtkmathview-0.2.1-1.spec | 25 - .../.cvsignore | 1 - .../.depend | 4 - .../COPYING | 11 - .../Makefile | 109 - .../configure.mk | 59 - .../gMathView.ml | 79 - .../gtkMathView.ml | 118 - .../gtk_mathview.ml | 1 - .../minidom/.cvsignore | 1 - .../minidom/Makefile | 51 - .../minidom/minidom.ml | 61 - .../minidom/minidom.mli | 50 - .../minidom/ml_minidom.c | 288 --- .../minidom/ml_minidom.h | 18 - .../minidom/ominidom.ml | 156 -- .../minidom/test.ml | 84 - .../minidom/test.xml | 505 ---- .../ml_gtk_mathview.c | 159 -- .../test/.cvsignore | 1 - .../test/Makefile | 45 - .../test/t1.config | 3 - .../test/test.ml | 297 --- .../test/test.xml | 123 - .../lablgtk-20001129_gtkmathview-0.2.1-1.spec | 25 - .../.cvsignore | 1 - .../.depend | 4 - .../COPYING | 11 - .../Makefile | 108 - .../configure.mk | 62 - .../gMathView.ml | 80 - .../gtkMathView.ml | 118 - .../gtk_mathview.ml | 1 - .../minidom/.cvsignore | 1 - .../minidom/Makefile | 52 - .../minidom/minidom.ml | 61 - .../minidom/minidom.mli | 50 - .../minidom/ml_minidom.c | 288 --- .../minidom/ml_minidom.h | 18 - .../minidom/ominidom.ml | 156 -- .../minidom/ominidom.mli | 64 - .../minidom/test.ml | 84 - .../minidom/test.xml | 505 ---- .../ml_gtk_mathview.c | 159 -- .../test/.cvsignore | 1 - .../test/Makefile | 45 - .../test/t1.config | 3 - .../test/test.ml | 297 --- .../test/test.xml | 123 - .../lablgtk-20001129_gtkmathview-0.2.2-1.spec | 26 - .../lablgtk-20001129_gtkmathview-0.2.2.tar.gz | Bin 15150 -> 0 bytes .../.cvsignore | 1 - .../.depend | 4 - .../COPYING | 11 - .../Makefile | 109 - .../configure.mk | 59 - .../gMathView.ml | 80 - .../gtkMathView.ml | 118 - .../gtk_mathview.ml | 1 - .../minidom/.cvsignore | 1 - .../minidom/Makefile | 51 - .../minidom/minidom.ml | 61 - .../minidom/minidom.mli | 50 - .../minidom/ml_minidom.c | 288 --- .../minidom/ml_minidom.h | 18 - .../minidom/ominidom.ml | 156 -- .../minidom/ominidom.mli | 64 - .../minidom/test.ml | 84 - .../minidom/test.xml | 505 ---- .../ml_gtk_mathview.c | 159 -- .../test/.cvsignore | 1 - .../test/Makefile | 45 - .../test/t1.config | 3 - .../test/test.ml | 297 --- .../test/test.xml | 123 - 546 files changed, 71286 deletions(-) delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.i386.rpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.spec delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.src.rpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0.tar.gz delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/.cvsignore delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/CHANGES delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/COPYING delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile.nt delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/README delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/.cvsignore delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/Makefile delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/README delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/TODO delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/editor.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/file.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/lexical.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/list2.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/shell.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/text.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/useunix.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/widgets.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/.cvsignore delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/CHANGES delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/Makefile delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/README delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/aspectframe.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/button.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/checkbutton.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/clist.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/colorselection.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/combo.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/common.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/entry.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/eventbox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/fixed.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/frame.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gToolbar2.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtkTree2.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/handlebox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbuttonbox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hseparator.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/label.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_lexer.mll delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_parser.mly delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/main.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/ml_gtk2.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/notebook.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/pixmap.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/radiobutton.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/scrolledwindow.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/spinbutton.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/statusbar.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBase.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBin.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiButton.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiContainer.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiEdit.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiList.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiMisc.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiPack.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWidget.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWindow.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/togglebutton.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/toolbar.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_minus.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_plus.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/utils.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbuttonbox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/viewport.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vseparator.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/window.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/.cvsignore delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/README delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/uigtk.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/config.make.nt delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/configure.mk delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/formula.eps delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/lablgtk.mgp delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/morph3d.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/planet.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/simple.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/README delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/buttons.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calc.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calendar.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/clist.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/combo.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/csview.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/dcalendar.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/drawing.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/editor.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/entry.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/events.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fifteen.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixed_editor.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixpoint.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/hello.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image256x256.rgb delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/kaimono.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/label.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/lissajous.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/nihongo.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/fixpoint.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/hello.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/progressbar.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/pousse.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/progressbar.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/radiobuttons.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/rpn.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/scrolledwin.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/socket.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/test.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testdnd.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testgtk.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testinput.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tictactoe.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tron.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/xmhtml/test.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gHtml.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMain.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gaux.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkEvent.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkKeysyms.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk_tags.var delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glib.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gpointer.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkArgv.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBase.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBin.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkButton.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkData.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkEdit.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkInit.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkList.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMain.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMenu.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMisc.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkNew.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkPack.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkRange.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThInit.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThread.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkTree.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkWindow.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkXmHTML.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk_tags.var delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkgl_tags.var delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkxmhtml_tags.var delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgl.patch delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgtk.in delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkgl.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkxmhtml.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2conv.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2def.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0-1.spec delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0.tar.gz delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/.cvsignore delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/CHANGES delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/COPYING delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/Makefile delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/Makefile.nt delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/README delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/.cvsignore delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/Makefile delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/README delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/TODO delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/editor.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/file.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/lexical.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/list2.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/shell.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/text.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/useunix.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/widgets.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/.cvsignore delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/CHANGES delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/Makefile delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/README delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/aspectframe.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/button.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/checkbutton.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/clist.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/colorselection.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/combo.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/common.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/entry.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/eventbox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/fixed.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/frame.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gToolbar2.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gTree2.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gTree2.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtkTree2.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktree2.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktree2.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktreeitem2.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktreeitem2.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/handlebox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hbox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hbuttonbox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hseparator.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/label.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/load_lexer.mll delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/load_parser.mly delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/main.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/ml_gtk2.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/notebook.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/pixmap.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/property.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/property.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/propwin.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/propwin.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/radiobutton.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/scrolledwindow.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/spinbutton.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/statusbar.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiBase.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiBin.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiButton.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiContainer.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiEdit.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiList.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiMisc.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiPack.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiWidget.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiWindow.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/togglebutton.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/toolbar.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tree_minus.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tree_plus.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/utils.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vbox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vbuttonbox.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/viewport.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vseparator.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/window.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/unison/.cvsignore delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/unison/README delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/config.make.nt delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/configure.mk delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/doc/formula.eps delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/doc/lablgtk.mgp delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/morph3d.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/planet.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/simple.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/README delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/buttons.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/calc.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/calendar.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/clist.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/combo.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/csview.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/dcalendar.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/drawing.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/editor.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/entry.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/events.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fifteen.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fixed_editor.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fixpoint.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/hello.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/image.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/image256x256.rgb delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/kaimono.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/label.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/lissajous.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/nihongo.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/pousse.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/progressbar.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/radiobuttons.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/rpn.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/scrolledwin.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/socket.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/test.xpm delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testdnd.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testgtk.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testinput.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/tictactoe.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/tron.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/xmhtml/test.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gBin.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gBin.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gButton.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gButton.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gContainer.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gContainer.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gData.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gData.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gDraw.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gDraw.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gEdit.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gEdit.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gHtml.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gList.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gList.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMain.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMenu.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMenu.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMisc.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMisc.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gObj.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gObj.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gPack.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gPack.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gRange.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gRange.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gTree.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gTree.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gUtil.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gUtil.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gWindow.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gWindow.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gaux.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdkEvent.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdkKeysyms.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk_tags.var delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glGtk.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glGtk.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glib.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gpointer.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtk.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkArgv.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkBase.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkBin.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkButton.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkData.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkEdit.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkInit.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkList.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMain.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMenu.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMisc.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkNew.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkPack.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkRange.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkSignal.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkSignal.mli delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkThInit.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkThread.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkTree.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkWindow.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkXmHTML.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtk_tags.var delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkgl_tags.var delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkxmhtml_tags.var delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/lablgl.patch delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/lablgtk.in delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gdk.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gdk.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_glib.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_glib.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtk.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtk.h delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkbin.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkbutton.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkedit.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkgl.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtklist.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkmenu.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkmisc.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtknew.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkpack.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkrange.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtktree.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkxmhtml.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/varcc.ml delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/wrappers.c delete mode 100644 helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/wrappers.h delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/.depend delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.i386.rpm delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.spec delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.src.rpm delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0.tar.gz delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/.depend delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/COPYING delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/config.make delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/configure.mk delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gMathView.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtkMathView.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtk_mathview.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/ml_gtk_mathview.c delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.xml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0-1.spec delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0.tar.gz delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/.depend delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/COPYING delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/configure.mk delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gMathView.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtkMathView.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtk_mathview.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.mli delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.c delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.h delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.xml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/ml_gtk_mathview.c delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/t1.config delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.xml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1-1.spec delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/.depend delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/COPYING delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/configure.mk delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gMathView.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gtkMathView.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gtk_mathview.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/minidom.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/minidom.mli delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ml_minidom.c delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ml_minidom.h delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ominidom.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/test.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/test.xml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/ml_gtk_mathview.c delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/t1.config delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/test.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/test.xml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1-1.spec delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/.depend delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/COPYING delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/configure.mk delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gMathView.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gtkMathView.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gtk_mathview.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/minidom.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/minidom.mli delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ml_minidom.c delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ml_minidom.h delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ominidom.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ominidom.mli delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/test.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/test.xml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/ml_gtk_mathview.c delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/t1.config delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/test.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/test.xml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2-1.spec delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2.tar.gz delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/.depend delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/COPYING delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/configure.mk delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gMathView.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gtkMathView.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gtk_mathview.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/minidom.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/minidom.mli delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ml_minidom.c delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ml_minidom.h delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ominidom.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ominidom.mli delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/test.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/test.xml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/ml_gtk_mathview.c delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/.cvsignore delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/Makefile delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/t1.config delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/test.ml delete mode 100644 helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/test.xml diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.i386.rpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.i386.rpm deleted file mode 100644 index 78f0a3b12657315d93184d7ff4aed060628d20e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1476108 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%0A}R8(xj)i$`fl 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μ+-ft+!us5XVV*8ugVSkN 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 !q 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 r^%EZ#1|RvE`5(n9 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⁅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�+guoeG=$-TeAzfG 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

`U!)LZ*FW*8ZwP%k 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

YjJxrUwa#7vyggCo#jNt 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

uI2#>#jgq*BU?2KA-v|`4ckr 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�sMK%)Xh-1bV*n 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½<^z%FL!0X)qt( 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

2!!Iq%&7gO^^4(B6$yi-N7^QWdS14`XU$ zZcEaz9e1^+(gA-gniM%hLiYf0TvthpDes@0zxP|MuJ$8dZ4}oh)inxfGL;>Cd{wfJ@vCkwE4F|yj)j&N0`x~?12tj^^aVQiQ&njiJMPzyn*Jct6Y3g# z2$7+96R~i*ctfZqDG0scakjFfP!p;eg#MscYgOFG0!jN_#z; zr1xS)0rdVFDpX14d2Ll`D=v8LG zTd9UMFJGIO(6C9CS;m8MRfd4sFP*q3r^tztX4zwMsLINaiPm!e??e^O;88`|YQ)fs zNw7G{9-(8^Ft^_m*e7zd7@nQ??++noHHLY#R-$~#SdI>sMf^X#{qJ_xr;9R62wA+b z6`$gdFQuqJ&>jK2qj#+$MkWMnrgcQet?Zk^+r57NjwJ7!CU9 zy9j<3(V!TuTm%#3pc>5LxE1A;%OD;~Fw-i`!?>Rd60E3}&@)hpar802bOSX#aflcX z${1N2-gu7_DgArZ7%vP8=0YtpIT#6tcnWP#3WgbZ9|?tqE_4oJ&kIHxhL-4e*c`ku zde{L`DUl!CAS@Ds^B@^5UIXTy7z{QHJ<@Y96NE_mA(36Z$S)Xi6>wriW72g@5l|6c zZjeD~Bq&j?5!eb3>|VegJdC9<7w#Z8k^<0)BJ4(p3vJK~#vVxlbx)5a5AWBY4|0Ss z7hsSGdFFz|&Sek>Ml{a}K8!6a07(JE7$R&P$%gomWzdENWN;qILWm1X1TyRhX+>lX zXf+qx4qD+h^_C&8H^{uA%I0o2o+$z-W|G>J&lRN^g+SXfoTe>9CU46j?aN_h9G;-W zRNzMa5t}Fn+mSz1Kv(1>HRP5&oViSna^swLCzA9`+J_P(bqP=7)gwNs?W|&Tzpl<% zkW5EZJ`!Heipmv{sUr|ktZJBQ%UIM-2guzT?!KdIRIOS2 zCzJNe7v?H+|73sWZ&ylL?G4%C)JDg6Pfjr`_kBn4VYQhXEVC)iaIVUN`E(i`HF2p; zc$HsgREK~&TY0quJ9~cDuV1>8QxmK7J=cF6e7Vxg$dxD+@N!no74bg~6!K10$`rC9 z==7?LR;uX-J`uI4E!JU_@yK=!S6SIk3HmS-_G+qb(a+BoNgruWxR;Kaf5ASc3Efo| z`k>4Z@;;K%RYRY;9(v!yj+kSK1e_`DElkv@RbzIf_kyfqP9UDLKf1qH7r#O7B4RcW zdR9$q6;_7-&`RUui}p#5%_D+&1;{d>&H;ztNM8dD1$9BkXLkd6dr}-qJm+=Kt{!=O z_Pd9@oK_^UDj8HHV-4LVeiYkiTGixa-*pim8LfPNOiM0r#0nwMuu^=RWA4hB5&l zC-i2Nc|vvNJJ3@{2w#BGspMydH}2e*t5S|WBF2~t+1nq{&{_%pI$F$Cb+@w6O>s{* zYkbTPqJk8`lpoSSl7CCqu3Pdn`=4}qR?c`L0WyX~jEk#8ZJO4Cw<;gBQy1qxnWDN^ z!yK?%3`N=n@zVn1KA_k){l9Y8tSC9~O`vge!HETeo*yRO0dMTNg2aR=h!fDIoL`XM zv!ZvHA-Lv$&ZORTjIw&D%)V3plBm$0f=Ll#Xe|Jt`Yl2Yi4&%8`{af(Cg{0jMkmg* zgD)_U9hpnpM7optgbN~UOTYtTdSUOz#C=fmq$IKNR8P%(kn(J-y|OwHl;;>H5+)2M zcE$yttB-1+YJJcALtX;N_o$qEP``JG9S7bl!QSzETmcp^DFc>iW3WP9x_3SD+hmSj zhi%3FT8SgKf$*TSab~B`_ zI;#MYZv_OkyRW@KuGi6jt-E#MZ^)Cb;A?$hU%Vbky#(ezF6F=zZlB;Zfn}MRW|g>G z!@`QtW>qWR+!&c_ZVi0^q~c%x-upvOwmAm1#}n$cHo9+*+q$C$h)-`5I|(k(@A+T+ z7~SR~z4YxaP69CjlEc7(ZkK=SC>)B&E`0ohrYEzDaZI)#IqpQ3L8}F!7cRF&2`cqa zp`@U!gd!XZS0pVMhk2p=5c)7p@vO!Og$axEGe!|^czP*owEcm2-?I?$fhp!P37$*t z;8VSY3D2qWfMcF_E?f)Ziw61uJE}Nv0sJLExg%?#@X8RG8HJpNZBYpi9?pRf2WZ4l z)EqZ~up*J|oARXtRhYEXN5*1FQI?+Yjd>r5>e|~QmKDnn39vC^T{X6WDsRfr*iq!b zFHQagc)R$f@{asN-50+zskm$I$Fg^6O<l?&i{%I z5V1WCcBAP?yDa=@6fN9S2px50(jHTYn3yMKy5lLBDzg+N?gId>>^gH1%roj`wHX6I z-2y8_R?~nEj)6J~H^eW=;OhzNi0dE$gm1{3f3Azb-~8=}@Wr4PCC_L$3VMbx?jbLg zzU_Mv{bRqi-i0N@Jk(JZJa!|&i_qiOrY#b4IfZIDEPaJch&B%*0ryxTJ^_DCG!0r5PAKv#1^7eBs|ALhwB{@9f>+NXoyqgfTHZ~w z2V#=D@f1MMdFM9ab}%#?#N}~g6%5}gnA!7*G6XN3?bg5}SwHGPsr_4$N))I#P^*lx zl>7mgdGNc_Of-7(4ts4lGmode)!~1v*Uv`u zFzp+!f)3gS2VXF2oLvD>bSKm7FK(YGWJMG|$BH7a z)O~2Be+SEI`rw|kOl`+{$5-S1!zWc5=)EwPik8}I-r0rk7*^@cU8f0HiVhgIL$9m5 zft2fvpsa1jh%z3G&h}7g0V6+yXKVDAQSoe#DBJ;5{&-G=ceZcD_$SH!JOUMcK$LFz zIn4zBDpKf|hkr|35m=`Iw(Q$S3g3K&(6?9JmM}LK+^Ju<#bJ)89<1UqpQKK?)o!}c ztY`t?sVDAg>DA5FgSVcR$xbd~fGsGszL6aa6lgWUl6PutRfp-VxtfLp zlwPRo*MI=-seYe1{$f0W1HqG<2aN#Ob0V8}*>4%oJ^Aoa;G7K2UN?}JcR@sJrlm;L zJMTe^VDkhoZ3Dd3Eisz2G3#?z>1M7h^gV(C^tUF=*yuMqr`slwl>s4_+dBF4ZbYOkix*1z^3ranHKmHtvh%0H^%30S!m(7U=8%5lEQe;2$4(v zM6O(oAoPFg4$-<~NBYtXOL!NkswbfcftG9sNT7qJmy4 za!Ya)9AS?CCg9tsjNl1-j?spu3)hiR=#KETRD;VR9uct?yt5%u(OFBh!17&B#RPR? zDv?lQb9GAbyty3=FG^`ihx7HW5=EAfG_)||rH1T6J#7@-4!*SDdM!K!RGC@Qt+}zb zLKp~>hxy9p2z?a~nCMy^t3iM6*}bdl)jtw~_8|_u`O;QgR)1`|fRXi|xouTCL1|O} zjo@voNq`w<0QAl0;mf?a2IqPHSsNUY9;526`l6}O{FAJUw6R&1bMl^573abN)*(n) z!HDmz{9YIGS}%EA0;-=CQ3GS|dik2?U-wVk)<2%mWv);(LV)jZL%3+*0=kc*-FtWV zTk}cKtl-O7qNU=8w%YCFMQicm&OqYp>H~UVv_ALR{r7Gi9nVr3mw(^Yk^WXmTP*I7 zWkf?Nzd}h`uaTFvH||%N75(87@LaT{=4}09C;+U*4XJs0C4K=8<@-ovtN4jIA&=7~ zo@QMvs{s1q45X#=O}JyHH9&v6Mf_7lpEB}O5w^MXAhwIwXBcwm7AeiFdqUzZ-R(>e1K9Z1z6M$p zNnuyg8Za+2*qO z<^sT2u2CcgGEGBx`1}4QV+~?0!&Cp-WN!!y{!O6Bs;!PEpW@d9Y}hq-?2pYXk&EY8 z0KVz##p90Q6+pkq63g2JapO5yriX>9{;Fu(Oh+T<)gd6Zu;uFIUDH^i_K+6ndGm=TT zGc3ky9%9<*uOYb+bt_xFB~58)frKEpoa^M?Y4B$CMwJr<;NL0u`=#S}J<-Ez+BKZik<^995^nHB>wQa zmBI*`E?NbXS(Ele`HOXdT3}tl-T7+aL zxL$CluZkX&UC}*?)P$fYzWvSi;BwOu^E@1gGW!WkZ{Gw)cLwiZu@9)H^pA>%vxlth zG01L#`Q&4BUq<_GxK*Z(jRKG4Joy#t3hf!BZ`5QGAGa@OPVYQjS^hB`b2uL0xDtfs zvTNUk>v%jFxgrW77Zo5o1q5RXpc$C5-;R$vhj@`&!?SyMnQIb7(aYIKy=SPN+=SAKM5;IJ56IJJ0sq8+n4)+?sy{;F zI+3)1)j>1jnl$Z_CgME`e-fXNfC*ufF`bM6rR&+rrT06XKjM8KGMWCkL?dGGahFmc zsdWhdkdMf@|2=3C8(gOlIV`?lvFuw5(VHksw0dLT;_4d5IAL4N@R~z?PT<^CEa+Iv zBcT1q66-uNS%BmwDX?k8j^it{8x&`2_U3TYJ5$k2aNo0`4(r$ri8m8pI-|jM!j2(WUFXtQEgi z2Vvt*Vu6$ONgwK}?HSFxYvox+KZT;DWxb>5Rh|Uyo8C46Pt^)_2f#MD2Ck*r%y}ls zunReND@wyT6$^n)IIk+~5wq6b5}Z5LCu>>%Lc|Yd)w;+z?%OPwBa;B)e+_p2;1%ct zs+Z9qeW~^iVtd@Q&e9luO*AILs}1$02XGfmNNWHu6bDL28%oa}8wTO`N^ibeQH46# z!8ZeCPpMpZo1ZXL2DXb_jidRK{+;&AK-c5A(0rli!1oM^f)I-O+{W=usDkij1W5mY zymUs@flgW4G33@oEX;%$`ht8x=Zq>Ak1g~y0QxV>>q6rAKJV7S{Et+$w`X^-MO1&aHVAf!X|iMEDR)7xY-oI;a70ZVXneiVu=e5G(`dFYGcQ)z~9k+Jc2J(v~L|icRf_$Fp?g@+~W(aqc ztkWJEzdKg0$`1r`E+SZgJ0`)s0g3!!KKtaZfyjI4RB6k6fb5+qN6>f= zD|F}(NQ3FIknpexW;?XLq`z_tMu>L;wT1J<-ld$*Wu^ z*uN``cwZgn_FyCMtg)OIOb(W5m2_CG5U%aPt<7yg-dPQx7ZA`F7W=)4y%TFeqkHGZ z#6dPfyT<}SpI-3`v!OF%`fXN(48NG`EDQR3WI>KM?*NCC*Fz_|YL`UnEZDt0%lk!d$Upo%^ixgX#QvMafFcCJ^5x9^ z(1#`d8;gqq^u{iJ!Q!EWSRh+Nm9D_{6pKeAbqI?G`J7xn0I?SK_{}ont>{a+h0qeF zBS}xZ4|=X^dX2Ht{0wQJ^2$soi7VvXF2aKzf_@Xl}JUWaSviFJxFISXMW`TBP0wm(H7gQfMd} zTHCc=(Z3U8{40Mj5b8-V@+)`WVzk$e=_3fi7`i^8=tg8*w_kZAAGntGC^}b+bAEu| z??=udcs$N^EA4WK!~yJ)o+U$m#?TUu$Acmr-@Bway+}OA*BSZsnq&v53uum6b6AP1 zBcdh#!P6CvzTE*Yy|%z5ZjBAOkmP7kU8}mZ^T61I$HN5sB#B67FfADf5eVtsrM%?u z;MJYI0eRJhckhAnqe*Q9=c;~%dgkztJy(KG&%c5_;xYZ_6b4f$=#erFsB%t0BIgddOZE;YX+wk0KRnWMg=SYUzSv=TMG%0 zWH4&EwBgC-pSeM*IjgvI^5NQ&i1C98jM^S@3~$Vv2>`gb94dbP+qy^69sWrO80b6P zA%<*?^8@CO`aGn4ntUrpzkMae7l*C|`$72PUVpO0AKjwx=Nk^9?mq0AkxFi($A3q; z@yjn_WEW{~$Z*c#O)rAcFT}Z_+M^<_E0$NxjRj*|AW{N&v-G6+6?5x~6k)g(c^*df zkuCuA@k05;g?-3;W?_Og<%pezM8)4oF7)CwacP=#z~=mEl?NR__wu7PGwrYPRi(K3 z-1a;6t6Qn|DMutBWZHxsxYvSVZ>)a7k~Q0}aDtg93sg?cDt(<>1QegLaJJ!MIX=|N zy%!sS^d@NHWg*vm?+QIVK|C(A#5vX1Jv8?YWh=LK@Kro3&c#@C z*wkn??*4JEibe|LX!`jaOYml~Da3;wqPlH0mu;%{4<+gZst%xPm8IeAC~=MdT&z!` zW7(??4S0H7dg0uM>utJ6)TZP1lNVFqNL(qf_2^gZL(0V z{SPXc7K&+RceIzyC2WMPHZO3)liyq2wISGy=u#lVsUl$329%h0MAXMmaUj^kDU^3- zLhuMT>42ZRR)9sf8WAXxDgd_hZZO~`7=_kT6YB03rGU=lZqnY4W%tekGZ;cBazGl) zy1QP`r*QbsR+=zh_b_FQ)~A@=L<(pEXD199hzPs_iqt{4|MCB40adhMhj$zfJ;vwPJSr{*pN1(1~L;NDgId#y4sZnN$@eKrIHqM*iOyCy_5EtUr5%vZ>=Um z>{fc1ORN!4c=6IuP7eCpjirggOxD5E?rbvgkp$Slar>0)-3`wMMtqKsoe^~5 z`#zi;kF+P-7RS;+-K_e{U7I&YfzaBhh0Z6o@m;ioqAkbLjMPJ@ekB6 z)X;XpuQv?*cTOw1@DvfTio0_0r%UlayaEasy^4k#Nnkr>3yBG;FYx{w2c*y+0a>2A z;VAN(fd9Jq^?xn~ghqH(I=Ed<7vx}y!he6zpADl@rg!7hSlQ0q;r}nn3@9whr^dWv6}OA2+`LT;{SCf#%}L*YC+j&K9ftQ>RLl8HtfcY$BO&|#b)f&nukQci zw@Nw0Pw+p1Iglag{k&$Unr1a1RQgXH3GTxE&szy@C!7+1|5t30jD67XG7qtkzB|QzS=E!la2oYtQ5prjF&-<{!+!S~Z{Q4cAPZXk z1rA%tHtW^%-|A$j^ZZ|w!+%g=eAoYn5>15v$IthF`6c`hzsDcb2>AUXGSGkJIXsaE zad@JVZP_hQ8qx}dpRo#z6#`p0zk-IoPc&7oh5ulpw&ON1s6!BD`TKCNUtP27jO->? zVSjpn;6Zp$l^KyUc97o;_i|ibw4GY@kCmU^($B#k!0mfx^yG!91d)P{DIv3&4cFbk z=a?zfH#6M1d=?K9;Zez`wgI7fgXFR{^nNM32NV01)L;##EuS@}0-ZI-lKeW4morPm z(@$k1n0MNpe`Rc!uqZp8A-)G9fKnjyXHH3zfjHnFFN54z{{7r1^-)6Ngvus_VQJe- z1yaHPV!Vd?1xmKA;NyO~ zZ+3}&^1F`ZJJvPL8S_0hv}b5saVQG$STLXYcJ}q(hgVaT|6pihP2oSN-o=hT?QmOX zMg<&ZHm`hyayCB3`1!~ls&!vSv z|Bt6{jLsz3qK)w-E4FRhoY=N)+csumTNB&1ZG15%wv(58-@ETmcXh2=yHBZCSDmwK zPb8M@Y0GGYe|s+MdM!Y^sVLyI3!eQTS#4AV7Cc`aVzWHXDInTVcQa zP$P|xDl4vT_DnCV{%dB_f6Z(P>7Glh*mLn?@>+8=mdv89bD@`Uz0avE&wbj1S?cvk zT`dc3DhoB6LO&@}orvQnFK@xVW7D-co46rVz~)nU&A0zYP5NBs%Z0sp^q-dW;MTzQ zDCmU0kbg$igSvKwI~H`ue$f-4s=r%S?ffa$Imdlo8EbH=Ylc^Ap@QEz*MOV$H2{+S z-8R=}a2kR_Yk-oN7jDlwbJrm^eB&*!UAm9+_q&z4R_Z-)6EB-Dm#MsqqkejK{aEvX zW8UW61Fi*|#qEm`E4fC1S9mlBZIELSr?hgdU3LHPWJe#_yY) z)mTNQjehhn`)W>(^KMgWw$u{bB8GNEwyn!J-F}Qqr++Ee+oUMc3KGdjU)L4*nIQ*ud4DW=TbTd7`V2{39+<;8aUSW8= z1F;${>m#kbVm7dC!&Ek&$L89nU_?$8ULGlBsq9N4qmN2clMo8J=+`29>1y0CyP~SX z@7GfL+e=VxD|yobH3B$&4H^6h{FN1oZ%9{g1-i%>T{$vt(o<;f{AN2|c1uw`ZS{Y# zfu^T{kA!7TM$lM`+M_v@BWI*FhK+RTf)vytP0NZI9!O>5gq*H@ZwUa}MCxj{rS^_B z1@t)BMc=PA)%_CZJ%;LW?v$}zktTPnQm8GD#(Hmqxgo~~Htk7=@xrRk8RQpfv2 zkMFnNU&XQTMBwPIf4vh1W^e^%qw?&5Y4GIl$glMwd!_*_!DEORyJ;SWCujrvx&$v; z+mQdx2~%ziN(_sn*ei%ll6PK)ajH29n*Uh`g!HZG5QYSszv=z+%_^^ikNBNlg zX4U=3+*0g6JO3@-J2Ua<_3xj?UtP1$)gb@lO{gzUq^dF^PzO<@1oHKz(kYX;RwCQ8 zueN79m{X>Y@Eti0JhLv??ZMK*ee%a)K~?#Ibw#*~NS%gD+7tB~TAS^mcH zt{QWTOPa)qz&%hN5sOZZ6xQc_$zX25vBzeV6jPD0X&k*aoJzrPZA@&D4IMp-@^_YH zR*dGGT-qU&p&%yKN0Wr;&)}3p)r;poN?q_U!UiJE53H{F20 z8qAa5zdYr%_Ke7bUr$7Dy%D1Ju&PYbp!RSEMYl0>$^mWOG2?`8m~<8{a%efmC-E`i z7E&I*WLhb;oEt+Z@pU@r%Nrq7YsOQnmhCU5ZzKFnWbzrd0XrU7P>=rJ2^Zdr2^Sn) z5BEPDC2fYfT~7jw`BmPBgY5JuogzB(Y%U4-whEge?gW6X!9nb;Yc?fE>Kd?l(JP+R zz4A}J(@Z4SP967Dt@Q9HE@|6g1CV5+V7`0li$0ObgaS zTI2`JlHjpN1-Vsnuz~qeNc|*acx0Y@N3gC`4GEAGh{;tepaE@7oxpsE)1_EgY*oH; z8!_-)@PKlpGV#FxNG22fXa8oNhTD@+Q3QMz#@E2h)_>v4G3>u?dVu59DG{x{;AEB{G-!v?XYS$<>rmS zd=~Zd`3m{|^K6%#!pb5ysF7o*gA`Q*C6rQK$r4dY_IV3T0y3$S_%$9LnKNb?LksTu z4A;~#8GQ?|Y1!dxW5p00n#Xd`Q&~wP*@b1Uhn+2(?3XH`@)?sTZfK%aHaGKZ~Q&m>vS)MyXt{`iqBWuAFI;~Ckv zrIX+v1}egj3W%K9_ojQ_M8aMv)02Cs<<~A@_U(7oyx;me39-GPL5VeYULg~W#c9so zNZ6wULNaa%8vJe))k2f=%$Ov#A>#^rwof1n0CBF**iFiD!mIQR`Q}ZlcIa^>)^{t}ZREmD1Q(Gk|KV?16L{HBY)^6!lPQ%q(sBfb>x% zo`5%nKmmLh)wp$*;XF!#_x|e5v;RlfvO(86`LVE3P-x=M?1O>wTv}L_2A&q9JB^GW zVT0Lklujl6CU-Br(TfxH<3@_9Ge{r;ql(Qt;3Fa`~GcMe_4}`g@{Li!3m#khk z3jgg^=;^+1ggb>k`XXr2=s6l`OK`hF9ZTdg_{3m){dvl>N(i@dFl&)UK5+0WFZhzD zGRy{&_H@@W$~{J*KC-H)8SoxRQ^;WjTyZ0o9uz~&MxF5!(}I`vzW{&c_8haDX70o% z@P%J#iz%*5ekfP3+F#(lToTtPs5R0&n9l7vTfz(=Ytn5Aqtw=2@K=sVeo;iBbNUZn zJn#?S)UKeD1-d(d9n?2R4-hboL!;atF$T}SJ^<+=JFj9<)>S1xS&IqX$AE!90z5dsn2bJ;yJS&)_auhoiw=1n))S2l=r_ zpec%ul#M6pHlUrMj8td`LIB0I0Kv^QxJ^CAg>mj1X3PpFN2Dw|+Z_Cptu5;}(It0> z+DG`QW1_O$Dwr$Q+$=OhRW&e4Fi}t>4iE4!39^#2L+j6rCdk_s&!PO$-NnHHUE@dX zZ(9qPD1@bgnqT(CmIIrW$_Fxa2p)PujA_a<8cV?7&*`fVHizei_r8dq)CmhEWcDJk zct?IHom22+(?{Tl=F-gJO&~EP1QmPt_v+qU7-|UT4q6KSUX**8OmQXJTFmJ~G?Tk3 zV-%A22)?8T&lHCN7dqMYh4w>wi3rISwaj?opCTx{`j$kD$i52ogn2o?b;I4wfUGXT z^aEVn0t5huz2pM7s|h_azz}a;P!ynvL4A-=H<kEy?%tvShrd(%4pv1+Jd-M-pq}$9}U60|>q$gtC!_nVnc+j__#6_kNtQ{Aq zsv0n&MF_v&vLSfpU}OxYQ-z{y#{OUx=7U1L{)vkaRLkq|n1tqmdQ9%j8Pnl|{Ih0_ z`F!4u-n(y!bb%W>Ln5v?g2KuDJiC0+HDIuxLGP-GazyN*HQ+Xy;Llxn`;Dg{EsRSG zJl?Q_4})_E<~P!rCbhyHgi8w)1acOGw_y*|{vczKy9?Y+wdjg6%zgZTY8!STbHLkeQ>r`~PfaNvTl9e7 z7sVM9aXq7D?5cPNqh&MB)vo0ms1Jg)8J1-Tk3M{b8=7FS4^dN%hGu{_{M@ec)spS0IglnXi;bs^aFkOQ&3XkRFfyZkl`_ZShfKF>uVE3sgO04o(`2q zJkTG1tQ>0M$`?QR&Txn5!44wV&kEb2Fb2|$y(!f#f08GV5UyDn@&WK5gcJS%sI$l* z1f8b5O%HVHz+Fgs`PI(~n0PUa&z#+5RmB#aMR?r)g?Mm(M(Im@2t+)!xH(evS$uKK zAN?@DF)47<=wD+Au|Le>@_$K*Tmdsfc=?IbD1HH~P(QGYS)dq9*CPA<*1QPTccjon zm7U9Hz{&r{2RljcQxmb_PAa?P5K>PWq*Vn zvF^nV^XS}Xpec9=Moc?XQxgUA&Lra1${<%b3U2;z&NNPcX{HxI+8I)FmuCI|K3q4U z*nk-?rtb0yWJB%2y3Vqy{_DqQA~X+htU%S71Oy^R@MgfCgt>A(_>lI^qzcu@6kzHi za3dh|KUnYTNDx{W^hI{Tms2`^%v}KH|K?e6ff2xw;zamHfX52S5ANxU?z3+4=Qrbl zT^b?jP1RrT&uK%6P}3uk^N7T1lL{Zt3-#*Gc|h;@@AnvY^D{&zT4vq%iFO zB9t?syZ{l*g~0F8oh%SZXI;p`jBV~ef8Bs9dVZ=N+kP_zxw*L)SKMq1vF63xrdDkK zDrzRK806g4DjKZ4wIi54`$y8vLha~uU?}N2zYO~TF_<47?Sdb(^(~m1sfe9;Hk$TK zRUYjXeiFY-P1T=d6%u?w{#H%JdOCGSdfx7Lx1rn&uRI!aI+NJb`@n|i>~ce5DG1wg zDpTv(Jh=q~Yaik#pQ}D=?dPOM8Ps)SP<;YmdLjIH_oHutfOLJEt04W8lQR{NbedE$ zf?rc;Bh^O~*7O*T{oqS*Mzh~oyWSAGS7BdQ>X!6Kz1-mBw@iAR1LWu^bmR8HAKd2 zUW1GkIewGu89)%?J;4Uu#vMPqk^;6Y<%Jz0{O041DLZd{1_B@yZNoZ=M^`~gT!5h6 zHkkg8O?k@OcE;CH4=c;;Hd_mie_y!|&ZiMQzMF%v6g>9&&Vg7(eZMKEYyT1a>u5Yb zm}6W+dV1~%=zR|W(fekcfk&#$40;8zI4KiI+Zpl%p^3G*qx2*4MS^Y`7~Er^%h-!VJn6E|}PA`am$IaUaV zL76|zF*_;37>8aEA*PU+Vs=)+&_^Q~TQ?<#VLH)s-@_Pf1y_aSq9FOPlgq5V5ir(Uq(YNY7swUX{41oA*~NBDVH4m~^$Ouu1aUZd=XULjI2-u0K9 zDQ%R$xIEy@dH0_uw~b)@wVNl0lwYs6Jq^#@6npvmBpis^FU@x)Kjt@iWs3_sr&}wO zz509;ClCWZ=Wr>fARMpUc}vK!4ns-j7MnNAK%4BR&gu3#2%Q7w z4mSd1ml;zhk|<6d(Hs}u->pt_6n@T3huYwLV(eF5pK<_D9hKCib$)D-x*701r!P8Q znfYeFyZf-Vk7oM2I47{jeI5o!{tz}&*utHhd5o?C-49bN1wprV7}M;w(`VeabJ&hH zUr!(9|F!GBiYd(=Ph4w0A59>hn^zvSYW;gvK4g=met~@AOj3Tx?n%k2-P#JJzPjs* z+Biz1*Elt~cY9E`@40hE9X?Q88Pt`kxLUZBJW0kq0hp5PB^^N>AH)A{-_M&uf7YJA zgxNN&;W^4B(s(&Z&SDz2+CnwZ&ik_B$r#q)4ufM>DfvUja#Z^`cV#tU+_P5wQA?8a_yjXm1rYzvA@U`n=64ZvdiK*zD_L=${3iL)4^XR(plygI~EFSuO)g zdqz}OjZAy~{HEu`)`n}}>~cM0T{8HlmdHp{KkR@XQm=7s6IMhtskGrh(djOEs!aZK zY;JkvymnXXB5Uii_Rpycdrd#Lp{VZi!%h}ofbbaabWL1Ef(v>T>hzuBUYXmouge$V z5PpZNW>k%q>?od~^i=FO>L8b)exoq2BMk`_1!!pr=y2&Uox=GXWhf)uqGveT~1u%&pd4h5wwH;)Ju9wT4|Ii}r z&4Pc-+nll)ngQsyV--*2%aUp^2$+sc>#HGzn4ff)eTN=OxHbPE+gXS( zu@B7~^0Rr-`>Xq@yxyjpv2$Bz-~Km+-0tV{-bbXaRH=QN7D#XC{?X55?45TsUA3uqh4Aut&Oi2t0<=5tuGMSruF{8TemkYr z8Y4Y2)+>}S8nN58zl(Qe->8JzI5U=<(T4!f5a;yb#-mnxmF_j;YbT(qo4=y25EWI^ z(}+vkP`5_WZgb0+Lm|~XTCJQxM$BksdEaRWRk~|MY|W-;R4R-O!jN=Qj{J|_3Hm4_ zFP$cES8bKgBTmMjMI>f9DwHy-?~sSo_lJAPTUz>J{36&{w4#NlLu?>qn7Mu^Wk7#? zx70%U)qZ6*OAXJ~u?V9HITw$HYQHPI&O@^J@dZ-URYs2Vvz_b98mhg%t5iI0?|P;2c32wii)46$2cFTUd1ce*p|az*Ks@TK zI|3s;4ioMSv%LHj)KtF@y+9w;t;Px0xr^lKTt)YG+;AHhGs4Ls7d*`kCz$iNV*Hh5 ztaI8lchfwo68!D!kp+28YEdaf;-}02cXF zwISLedMvU_Eot%NO*+7uKX!h)G#4)<99 z?Mf+Xoyr$$z!{UZw`R=ie-teNAip7o?BPF+?n* z3GZ;y9IqR;nGru^!Fu-c+J5I6AGvU} z(eBHGCqRRL2(s76|FIYpO#gBBqrzVPt~ytAs&z+J8Z26>U?oufdbX=j7F=EG95-H( zpI~^NAPwm^#{Kv> zn;i7eP9bZR)&f16AX@4=2R}0jp~53Z{n`#wiq;(Mc>wH}>5#6vjN#3kl;5($z?t^6 zW7dzvw4tSyZ}xK1XkLje%2J_+)a_}n^_a!&Zs&Y+etrDyU9gv0DKm(E61+H8tJ(p7 z|CHB1%6OG-a_tm7YE_k78CI&Y;nKAp2y!cpZ5Sp!#?Ikn+q(Up}Iv z2E^U1lxR3mEZL_MHXS|^DN=;c1+mEp#WmhaZ8 zQOmpS`thsX)L_t*5pN8GdHQ1TF|6QN+${eUfY#qt`*nSv%lYeA`+%-kU7v2R@gGQ= zF1@-oxyA3;N%^8J-McQ?c5VAqxRkpXc@ylpax{HiTG1x-vLD`Oi?Ss~nx2sB@J}?l zv>e+HF)-SNz*x(Q9S#oN0=-KkXBlo+UB`2Wnq!q{d}BWbNvHZs)j&k&z|2uB*b%4p z=VtIr{gaxi4AZ`S2s+Jwb+a z+)lIPxTWWkH6x98`)PXt7w$BY&h`a`vu=PBu&K|^fE57r?^NRWs`*U2>~#>d;e$Kw zwf+Wg(}*?TREJ;n94^NR*#4@20%A8Fe}jder(ZJ*+J9*r;Kl)M0yaKe?mad=eva~I zUV5Y);oWoY>?t`{(d(UOU*}){?6{r0BsfRh>^1LRd|7HSu>2lrA#_mCzxP}9J!sCe zsx^3zxl}NC&)e)>_-Z-VkMgP~jQbpYnr#K1zCJ!Vv;-7=0)=G1MONh~MxHuHELWvy z>n{y8T35j_HCUSgiUZ37DQI=}o@ z7FRD=znkoEfWDuUwE>_H5kXru9~%JEcIe1M3L=p% z`}~BqEu$@KT|%dAdtLA$r@VT(m&>lJsJ5%PHjDzTDO?4t(b&(Cq!A~RGr+wclWFgQ z?n{3zZ-g3&y81ppFyEZmHg6J!K`t?)TMy2TFLY1?-+gl8VWiN2%6$frwZaZ~!1ckM2m}L&V^jE}lrT1*K@YaSsXCboZ2E+q(xn2UwT>LS`GHF9f#pZQ4! zLT?!a=k=8}kZv@o$z7N4;CU&|7zbZ^k2c8~2!I(~CY zSCL0Be15B=$q8}RBQSe+T*J=N#V%O65v`6n!F37B8wm?;lD_`ON`M8g*Bac{wk>i& zmypuxumIJqkIn^OkMQzey0pj|FCHbHgdKm+g&>OW0bdBVdv}BO^dF7LX8P}oO_$M?3-PCozF+x3g4I+R0PxB{H)H)SU-+m0}?|VQobjFx`E#kuWd^X zdH>qEa&Vx{+B&J6n-d^@dxQtLY@DeZNBwz1u#HZ5T_6x>ojI|HQqc2LxIg;v zvwHm~fEg24K3ySeH-wL{axR=HQ^ z9|(m`a9c_$P^~x~I3BpqBAKVW*3uN#!6eow6rj{*mIGFteD@oeE1b`pPARW?@qu=% zS1eGwQ7X2xi!P8vIjf6~mrR}n9MC<^$g3@paDE4&aLRC{u7HW#OGibiML-ut*kZ%~>hn;Zo!wjwig`00YhL#2%EG}}v5 zn*AN|-6&R}OfPdWLw(fvuEl~R4NRtMuy42ID$vVZv<966BPfEx<-lF8~#ZwBdI|S`8+ie2l)R? zPD^9SrO-(#Il0N0!C35%AsLamVo|bq--P*xmM-6Cr;t2Psh=0anDEo=KkNAsQUbbo zYYp2cniO#MTx%|Pq!u5rya&?rVSQo|r3}WGu}Q2A znSXjhc26Vv+5Nz}Mh`i0hPDZ5zU^)jv9tN6jFbVtY$TjPsaHG{k>8hee?$AKHC5+3 zGd9pwzhF8}NAqw$Vq5#A95#(e9k2by=#dYLEC_(|)0yeV2tG`?sL7H8B)K`1Efepx*zgRHaS1tJZ#?g!O~YXabzk zco96qRr2Pf^G)FCe+?Jh>xbl?*Rgb5h|sGv_=N%;Z$XO+jS>MqvK;y?{h~*`V-WpQ ziEy0^uA4!9y%)ysYw6pb4%oDrn*?R8n?qQWAqsqykJp->gi-kacFzKFKhOl}iP^1U z`X1lE2>J{Af0%>+A5(*KZvp#@DrH#dpq#0m8wU2vR|7bz6_RHW*9Zvy4`5DM-4_}3 zAmINFnlmJPXjg6iT%GWk4$h2(#2?k#jMxc+NIP-`2pHD z=@w#m3x(_KHvI1pPeQn@XZRCi(v{EPuEYK_Y(w*8XE#wqJl@&pIC!WI=wCU38R-ip;?k>cd#BzNk?38hlEpQuyGD zz6BjCN#u*KBBZ&FJ}mI|Y}S9L89C0q><)?9&hQV6NO8PEdH7eQoa_xosN}ftA$IhX0cwx0>myPCo`65uWO;%#K z-_OAfdG+^U(vumC-1hZKrPY=EsG6c6pc8gznT65e=MdH4mcwz^XXB0CFzJQtqbn|E zLJkVERGaF6<-5WI4p0%ma0Vlt;f(2~qp8>P;Tp{ZkAj`}{MSvrv5TCIsjbJP%(6)1 zavzB}?_3CxJHlnBMW3HjF2}40c0TqU-DI{*Lg3F&FlscfrJH4ZzF5$NySxl7Kgo%A z{nY$r0gDJ8jW>AV7>UdQ z7g{IzE9&(DGEgWgXt@kAT0qkn8;rR+E>VlLju~Awg&0k%k@;GPSj5=!aGy*>#HL$G zpPF;>jAr=Vj$IAzMJqoU}AQY zEnIS9sX;}y079%*RAo5$T=p4WJ|%nD3Wl2dm8~q+-&w_VAt+E*HYji)XQ^o{EQUm` z8UbL6oWYPe5v|zIWl*hFPb*Ty6(a1)2t#dxZyX_kp;f}&z_4VE{wEG5gddE&m9ijF z2Cuf7i$7|V84?5m|KJ`RDxn#J=ExX0{?^yCVeN*r6?FS7c!n17#2pi+Uc&7ftpFi8 zv;22Be9=`oLVc(nQdHt4Cuh(Y4F;hR5-}!{QhbCVwn1-FA(uENMH>{X4csqE#DF1# z$_%wc)z_;1m?I)|TAwg{VgQwis`oV|+RJab>ucDpa6jT)#tvuVyBp2wHlo!Mcb)QTwZJzf?Rq8^p}{o5tkr29Rbi!7R4bKL4S@r>++yQ zNEvO{U1g^0%xLH`m-Lulp;l-6m|o?WK4ESBfZnp(>%qOCCb%6U)UY*RtLrm@NpqGA z%lSfU?y-&#E#2H@{mTj0|E7%!v7v6b9s#hGCJWnW_beyx?N>JY!=HTL0a@wUMto!o zTxK0}Bbk7Zvdo9H?IP4R2qr5Jl3uq%2v&r++cb>RwgPBUB}4!E9q8i=pT|q#ETPz! zWk8oq+lT8cp+n?sOxd7pQx%8z7fglExhETJPP1|Zn)EFTflq@b6;J((ZuPw7^6g8Kyhc7IC&#C1 z5foZ%`JNGlqH~f{tQvk%@Mybhc%0~~(u>9AqRM3R{URkvcRQK}C>KGG2H*tGQS=Ey zEl>_0OT#AYZ(p1VtR<{aAnQ4|u$ufM--7B{s1^@zJt1A;`R~|;9C4yj#3n_%4%Lk< zP^4ADF-(n#^A(Q!QXr?pn+Sk^(TQGCKH4?r&wieN!s`QcqHEq6Yu-5NFsAA*ld8vFZ__ND)9j|+WxE4mr}Ya-z~A~EZy3N=cer#?0^ec( z7$u-4&5+J*SVCLqvjzYTF+6A&ojF*}^$c8<|_ zYhixiuv)D%y@B1RK2s)Bos!bbML7OPztx@-HJ2r-apeEnrKK3$Kj&D%4&&LJUjW@v%n%8U`H z1l=7X+*hRoz||Gv^hEdyFyhIFEMmXQ zey@jCiq#2FST@uwRHi@kS?t_@DDrX2@ez85{~`vjkCi7KdCEXbm!K->@znMJsk}~Y zQV=y{dUzUbG<9DmxXy}x9)T_eY3(_CQ61n1&?7nW2~I2AEH}*}H4OemOMe~3&S1`< zAV^^QC3V6CY1BL`gy{A*rP$RHiG3P_SUS!{WxHUs?L8*jwTb6#n2r*kAeT412I}@J zm4~}-*r$=3KEa)DFyl-j@05juKMen{$~8d zM}r<#{Q%)i~FcSUN)2KyDWa6H&{Amo#xyWjydcwctc- z8deO{IKrt$_6`?UI6GdQ)@G@QF%{Qd#Up_c^Ja=wKAZ=*W=Rx!E+inGhR|T&z3uzX zneOmCXHT4Lm;hghzCdCmo(?a}Poe?pU#O(T>TBTDq-I_N2+6r3;ZQzqmq>Kih zDKeZC83Ayg$_7$(NfvFSnlELW9-qc7+zt zWmzy71h+3V05YI*r`!6{X1iTTZ&<%uVdbifou?!ok#t*c>Pmo}^Gn^Ce615OF*3Y_N`PVIa2U0$D{;D}(YsRH9>d~m2C2lU5OY*=|QX(tfaCH7J zDrMMe|KcYHx;bZfL9BsM-`W~HD?;@TXZME}91s(?5nad*ql!jjVf!c493C>*xk8*i z++^q}d{AO}WdbZ;Q3sy*2!RAKoWnctHCEwRI|;=uF}wma4$^*9Nq;u-G`Mz+O#-38 zM*fLP>2c2jJCj$H%_r;z6))E-E{`F_vKd3K)xx+!CSrj*`9_=44(Kue&#+w=3?H|v zbiJ}FT;^?BpFw+~%<{FK?G@eDP;?ee!`73OPGpBX%Cj8P=fMET01eQ5?5D;{2AIek zKVHR);y4nP+w*Z7)ha-MgRb^5dDLckd_$``hF`Hnyb;~SQ{dwMIWbwufm)$*g3K3X zSI4jjqDtMH7^o;}i~_^YS$EX8Ou?0OrWcrK+$qmtOv_fDN-Z3q##2!Fr7*@qinb7v zuNTB&ojm1ioG^}6*O_1=im4NIksfQ?YwW9meGnUa3ll}H6SY5Xh$j1?5w$WX>v5Fg zJ={MJV2%Y;HL1F=aR}pytoBoyP?Gbw_^WjB*xsCB@=N$UGRNcHNoBjfU*ZVapzy|{ z$rJRC3%&x)74 z%4eU3pT?yYnkXnQ>0;0hCSu^pf^$;(6$wMJgpoZV(c89>`p?qp&;2sGMat8dThOAV zJTl5sr!0CcK#HU%T*o-bx~P|_e>*;t0j#{Q%|cbAg$iIVb0+LtCtOO@ zi?#ca(aQ@{&wX9^uF{Af=!RXmZi6g_DcXT`&m!@yWeU-(^6a;q-S#C@e!1<}J}cEt zuQ$N-q-*_Fmg5=&7LU*4$Y_^ws~Ju>nSI0Gv)7lC2~|3S#}^J6jR9Tuap|ngF2^%& zHcQ!=Ol22tHd9;gRqY<@yf$5fm9<_YvA3}nXt9{f<7634D7GLW5!2&@Oq2nx+nH<< z3K>Okn8eZ4tlg8c*SH#7bS*UK6zOg@8(rUBUf-*+G!m;;DA+H_N{+)*`=&&g@L6Sh zHm$uIx-%vfh6PAe`~)}Ckj<=`2z&}B7`RVjogU?_y{!RY+yy9P*4~9BdkQTcZJYqSscW-=i0Oo3J{Uhv*%NapCn!_&YIY8`ki40-SOiY zq-iw8c(BM@=T+%H?!*9s)FVfw>&g`{*)6I2!ItPk7PKPa9ti-QhNBh*{?^PzgS_xn z6DES~@0taxid`N`2_^n)oqQ4H(N;@0>O$vK9nz&%%2#+uI@OdG!zBYcrq`x<(Mlqx zW>wRX7`~*bu37NhqrI5G&7`{{ogRXSR&gr8j-+3WH zFq=nn?XJKOA$Z`Y&dbXI;!t=biWe7QTY8m`T$c+DB+-i-Ei|#eA%IX2Ie|RVH?T%? zOSS)(g6K5bVQNrZH!LF;hCM36#sI1uW;u6UVbMlDN_P-+T9)*1`chOzX4yjK0XN%< zHW+0?6zdr3RgL37RwUDkLeSwp!3xUOixyyO90rL=}}E7DiP*1B7ZXB1vkp9$^)r7^iR zx1_qJLmG@I3k_}OU}Knab{X2i3n=IU_)O9l-Zm5a_T~(MwK#R_ZFyZsUOWRWNBkfr z$#=eBp$LtSt-Vs_6*airxMty!lW8R`)n`B0T8Z__(Kx|+AR{*lms7>sur`F^xM(xW z9;!qlL0EYqlo^?yqLca9wbn(DCyW z#O>2*Yb^uN099`Tp&c6SbcBRly3Y!D^M`uTDb<=+}d zp4URIeWuvI?K{o)np_>4uH&4Jfqr%n8$!brBqw=c0YT8yM86;TS!@B3@VOuF&R5{f zs|-ifCGm(0LWYt5I4BWL@s>ya@jM?v=_#&gWX~0IHS6`R_+ns2O?`tnK~P?OfgK-h za^3P|fbN4kN?8GnAZ9Ch9GMpqM}U`X1uk)flTZH(yqq}j#SOYy~eP(p$0EZ>{m?$}}wUq9wRA2$1y*FP!6n$B5X1`cLIeGEw0`bd0N zK3Z{nW6*A~D3$;hfoLAAqWKnr({*W!EP!_N{dAE~gi*TuQSzX7dQCS@s9XB$LaZ}U z&68wdNQUm5i=ul}&l)5R8Gf8#216}5Wj~MPUaeeFU6?%%f&1tCAPLJQ;o@{(aXaR1 zYm(g5?zlP&t!*%uIHxh^sBoiaqFa!CXt+@uilq;4*SpfNa}EbRZM8(KPgG=!gr9nj zdYt6nMJfe(tM&eF6&3~`YUM=v5`0TJaxuU<4G(UXo1R;(Oo>5!VlrsmC6ht40!~Ut zZco&kvI&$NC4ijSl=(o*FGYvRV9D=QE`h0_U>}7c8#dlU=%fMIb^Sj5?r-`M`Y)i| z1Tc+0YWK#J@;zp0gB{9KQ)_=CX5Bub!>-=^>nDz%4@U)0nSf06x zO8HfUjJt|a$?Q7IcX0GLb96DLZO$|^pJ-89s6w`HUozk&UFawc#4Y)aWp{~}Yy zkE{!a-7LJcrT_8=%W3;UDmbj;_PdPHFWD}qH|@Rcfz?J6@ak%6QK27l2@W_ypkHfv z&8!@ys6;s%viucPVz@x6RG&zi3iz!V2#E+1x)K|g>yO>nRD)2Kj8bM0-|H)0Gl)Xl zAztR>Bh;m(8Lh(CwMKI&EhAD~8B0{AenI4_>Dsuklh-`_r`EH9bNGBE2kz(?;#GQq zMo~XJX#kQHB3T)AG-%tHkypq_@gY=+B~hMdcpAd*nHHGeIronfp?@-Je`88dnT+p3 zq>_Q*#4;KV2Z*#u{oZzgG>L#JKuCyOpB?q+1TU6prHYzXv^Yj6lFo)}V?^kb!u|V< zh4JowuP{{i1QIY-dHkp8NCEtr-DaQlkB=BKVE$KC{JA6m2cPXtp6d!GSuq%qfeR@u zsg!4&eo5LUYJlYClUd21>M@ix_>VO7jH*XN%MJHfYLBy3q6H*M->Yt!gJa$GQQCWf z+*3~x=VI2m+%v)ffa+t#+@N|s0Q4$ar$0rZ?S>kTO^UY92~H?A*Amha$a@DK2FVFb z8-G5!^E>keItq;9LfxU4bu8%;ptq0Pf4&%he!d!imOFYcz5i4(%-Ts( zAf;*IC&?{IqxuOCdMQDM_z`b}qN7IbgKBSr&SLj{)W|9M5~*0aZozod&`$YMe*GY~ zt_63C>>wn;M{T!LqXX`I`a381@cm$Xd-u_(EB13dby4o#^}F2#TOVG zl?3~QFCQn=uiv4Z1gQ&Jpfbno+cx)op=>N1dC|&`Q>toXf5zvJ$EsOp9vs(>PIUI zPYSmW4y(KP85>nc$)x@p zbp8h!q3_;pfAxlC>h+Ec3t@)4uNMg8D89{t_}T2`S!*#HNcoj|A%CQHL9)00JP+74 zIag13-IBU*2ZR1bz%%Qbr~4|_`d~{pXapiYcerJ7zoO8yv~6#FCAW9C*>4-k%VwfN z>*x7x6QF==*G~WO@Z9GwK^dax&#E~wJN|$N1%#;b7}yBa;sHc>`_vL;czOaTIM7@% zxu^--eByugO?oGHuCG=L-{Ks8}iab zeI8)@T5#<&L0tTIlHU>2d8$54nV&OkZjX&ww>U)zlgZW%QV&0jkQgn}xeQ9cjB_Xf zKJa}PetVJIKaQ)~_Lr=K}4u zkpKb6@k7(Y+cdQ2!RPUev&}Z2&I}?W{^|~EF7uOlab-gyfX81J=>?4(c zjLJxo(oFHpygu`x&kl=tl#7aLhNI%w> zm4E`&gN3HaDBpoT23aJ70)?Ir@u`;PFiter8v788n=YYJ_anH9pFPJu2z4sM5=~+e2yUS z0vR7iBS;lsJj%ufe`p;-kr6)+4wU_xjiHGIU!&ZCE{$CR8L=~bZ66w!2s%ebfJ@oFq%BM3z%%fl?p~ ze)1j5fh=!F3zP&|p2kviULf=9Hl{?GU^^9Yg{8vRsj7fik%cN~Nx00BMYuqYK%C(w z$->_=AY({~l>g3zVL(66f!rZszNC1%6AFHxMWW|Ul@oaba32;B85HQ*x+M&E8Gb9k zM+MwZ?Atn_;Qyo4B5DiIgOK#1gDIuSMg)&R^6cm|8T3&qM+B8!lw9XAQeP}$sTPsA z%?`S-po=cIQ>?xV)Hj0f41uAt5qwt&4AqX{yF*|g00h4+1O`$-@I7JQHH!P*aFSI5 z-)CbAXqjpt^!||N3k-fB1cnBM;0HUvj z-*6V^N5SESz8S_M;4(%ovk@-iLHDpIA(k!Y(})0@ zhk*>qLzxCj8}FZ4x2`kq|8w*HzfY{9I5JqJbIoGefK0sMJSj`Y335lJE_2GvR1zeC zr1`89OiZB#a!MNCd=5&M*FDXX_mL%qBrn3IEQ~Z-RUKb9C&KXJzO)}Gi^_}?|FZ~} z7O8gllRY3Dp`J1b+6U+!yV)HFbZIuhMGDJl6mfBf@UqkQA_jPQaG3R-$qrXFJpZuo zw9qP7#7Q`yxYe~NQDt!0Wir0LJygSDA5iLd&D5XcKA`kXX8K-8c4o(M+#^z6%s=TA zDoC;*bAke5hmNHP9a<4QDZ@VkqvNoPz)2Vz9-*NQ&Iq2lkzd3)5wY<)vY?HZbH0xI3jJ+Hq~c7#iSiIxFCHWd*!sWl+fZ`LwV&Rb?!$ zmQrXeE|cWVJI8bs}iu29|$eYXlan~;;jE4o00f*JI3*{zqhIt&C%z|V? zhYBDSXCQ`(IK(EiP$|m;ZNi#aK;uhG=}(P*BF?f3F=S*#Mk}Pe9W=F!iQ&9bWgfNN ziqpvQ2{hoPTy?V8qJhY(MTkgpuoS+D@Cec@EM7_xnM0X zuFZ49DmlX#6}!xr3e7@trL-N73#z8kz-5uHI2S}-Cvfl)m{1)E+%4j;8UQl{1ZDva zSuz79odZkS_np@QLM;w!Ry_SCtD*o3&iQeGjbjG`_#M~Ga`(=#4uhyibUVh)SS(gr z?(&##l))!NV$FHb-wKU2l7}6zDWNG`XbOsIIfX!Ow*d^zFb~x&eK?q8h+g#={ymJ(l}B;_Ri|^ zc`hKs=K_L$E}#nJ0xCl;pjYGq%117sp$sdLh)Xrgc2T08BGFi<2$c_tTlt_^=DSkC z`mQ`hqleAvAt!}U8&S5S9Zn-U1j{s~B-EsoUQYta!CwuCYKyx zs7OdfKvGrb1p$(VbkQkS*qDLrRL2Au&C*x|t}2XfSwg{mS;Xpl1)mb=2ZAsXsDfwe zAnG=xhZhAd0~Q@ zm*}(>gb5{iVOnriVJ$_>qz2|#hn0(H4}xZRUQ2W#Ocp@+3#~;ED?7jU z;M*}m;c-cMTnc$y5+1XydI^OrT2_`}X@tzSZSR-`No2{X=CLJWRa9v42x_kn1j5mX z_ycPG03MzVOMl2?UI5yn?7v|yP|qwSM7oA z9fB)Is|mWZ0RU9t9OJ4B+3ZI#msyE=z^?d`ur39yl37XDfVG1J8N2}@Muky`Z$SEU zqBte}aU5a#WN3&=XZ4^eop2kN(}T*EFc(}oKwcswI@tUG)JZ4r2TRmVRESIrn-4d-Yz%NlE1t)jjk&%hk1pKyP$kKun{Q3V z#MDzVR_T73Wu1w0jtko|NF6izk{A+`i!o(RTK zDjX=_CN_&W1Wd(fT^zUyqX`Eiz?`LE;H`xR^p}&drAA=^*965-#lp3mhuKp`0vb+n zAWJFK78jxPq`yQthxn?MO1YT6Zi$u*j!egB@KEd=i0NyYFv>B4Q0rD;j8m>lqMDSJ zQF76jEse&)3z;%8UNM51$O&_K5p5&NhC_w`7>^+t6q~xI9U++TIwA7H>-iFeVLCF9 z3LHs>6D#6wzj(sMd#7pQux^d5}S9N}PWiC;8L2sV7>M5*$sNNH<0i*c+$S_OlP z<8VFDtM>N&(C%>XAkUi&c#QH@+unn1%5``zSbnxp0x@{0T%70QpzK)RlX74Vr~myu z3ZlAb2Wp1*@rd1KYL6tksgYJW$`Q-*f{yqijm_e=I;Yrb^2+)K2-xKnC(dJ7xU1** z+6oFE<(F{@3^pM`bl~{YM`mNG6SaB;GFpktp%D?A+{RXvN7Ck0JUAE|Pod6_yvR)_ z+<2}YpQZ|^{pCf-UVMJOSg*8Pyn8rT@xHmf_)9(g4m8cho-qN$jph(8ncCg6r%Bty z78#aID?XP(*B$;D-bFN?K7$7@_6)|c(tF0^@ucrRJ`#Urch3}^{+#B87<3+r7A_g5 zQ=qdwBM_23%3u*WctxTe&#OY!pP0*>lPzWhLV=1ulw&0hq*p!YQh#ObRK=HUb zNW>XS(>qQpMB_AOjQd=QEnrG3q58eb^mpqi0dG84rs|;O!Ldhq(e23efpUe82HyI~ zz_DI|C%UcTs+TwlgqG!5#tGNUy3G;_faZ%UH5(+h5)=%W3s6BoYKVGYzL=C`2j;|6 zB%2`@r7RO^fDF5v%3 zE>(6Z`cB82rMbg^Mr5ew@&-;Ppj!hcHw-@{3k4ivqh&1ccuuI(aT*)Ntu!syiRW-Q z4)_2NW^Tn@0%)mK?_X&YW1r}I3Do$8Q|iD3)2i1s>9)~9IeQEM?i!J zq6!C8*~HLk3X2&n^?~>Nh2HoMWEf>6DE{YaxZ|O=k;8>F6omst15Q~;1t|bp0S1WS z>g8NBe&pEk6Ht=zAuz;;I2^^P;?e_NxO~71D&WA$Y8e9H6&sW|#dC)gk^JCiWiswZ)7Bc-;>Fh@+|_MY>*dtT~^ z2Ru{KNrgldprC&7M4n=kDicW%&u7 z`ncTuQ*YEj=vv9zQK$9*Z#yga+*#fMs~_)(V`022GoL#&d^ApzUU>d`pE#)5K4a(Y zfqcDQ!_6i&u>qxCFSAMQM~RId#mrDTb(G3$c(4HN(mEg70toyPXXM;|=wEx|6UUTq zWSxXSk9L^nq}U2WU!SNeFs3=wT*gC%-1x3JUYVOe+G^r3Lup>5fyZnQ@=gOhWjRk9 zClZA{d<+_b5_AUH;8eXpIj{tqReO~u=brkGjRIlm&IO<(=R6qxP4`4 zioPTw0`sY961IJ+)p-&bBnB;HI?LM=&Qfaq@WOk7&Wna>$~@?8U`a-Z3uyy*v4Q?ACev%7gON`F3|=Ob15K=N38im<>#stR#ZW=et0@Y8*` z;D6EI0F<60-3q8^IzOc}I<%6@jtMjdXKeE`ph)82BU^EgL4h8Fj4@^&HyQE%qQ&0% ze!w}yr9)BjIpw|r?YoVSW!WsIz}SN9K=|RIGUY!hKM51-J?K>HvL=pzfRH?zO71^( zES2A1sg&y=DA=PQYnI9iH;-Rxq5V-iRo(4}$1#A2_DZ{q#!xn`)#`a%0l?Er5ujK? za;>8z*r13whpkJHH3}ekJ0Fkdsb6AY769pdjkgq(o0_q&Ki=2jwXeT-M}(jSF5~v; z937FZ&MCI@8Fk#TosVVtg9>tMo7yjlyL+H41imQdLu?PrL-;yeLI}nBpz&gSJk=gA zwdlhpSgtMFag2U;(X4-5&iZ$HiYKus5hjj;t5x@=Amp@t`ee0OXe})_eZnP~Fpqgk z$z5A#hJ{JyJ$NAPM#qCk9bW4*$U)ltmLHZCee4)P@|On}R3fu(x|91ovJg@iE1aS$5{E11{?`THkTJh6-j zBaY!?hjcah^LaU7PJ=pM}N%s{?j$g)yvc?3ZF~+I z^fc+&MbBTxBRh2?E;SFtmTUZx9P)=)5aNW*9hOC`v+OK z!}}bq^g?+F;o}N^pjK?Tp(y4WH4>=_JgUHtIUMPPg3Pv>O@V+9JW^9w?NY!~Ww*Ql zI({=8#r_Mpz>t786h%`MMFvezapN0Cv)Hvo{zd>W1A0_mtnq8+eE@b~!)(o;f&$7{ zo6Gig0MO|WmAstzhsw3nrLqfhbrrk{i39I*Jf$ma_7DU-)O1#2XqYVkqI10W9!QrX zbXAOtSdv-rr@TzbKu?uROAh3faxDDEMnkUQ_)3k!60c8yHtm4;Q;KCb9Ryrs{g?N> z8XMR|l;fN7HMS{Vqp`lr_^N>vy9qzjm-d3B#4bZ62Lznj+JL)UTOGh*-~N?CJ<+Pd za|qYPfxbR~Ws$~*s75lD_6>2Fd_6N;27pT9nP69~KApF<@HM@CQd^}H}2?1(2bR-D_$2opn35l!y z2$p43*pd?^Bb*#+ifkD^=d9@ojG{dd`xu{ar$;_Uc?*Dsi<0lKJx|38txq_!6*^0{ zr=U*Ql%e`z^Y*&nX@RJ>yOINfcPxp{b%tNhD$5ss;l0d4F-@m|ro*)18G|3d zQ)-Ee&DJgq;=6Vs!?Q?)g-uFh8dI#*Dhq`M^3*2_rE-m#{4lv-zSxejvuTLP#3>~O zd6b6m*u8T|tt5OAQ4DdJl*Vg~vOL3Iwx}F8Bgu0Sha*n4HCt#531e2gk1snQc7f$6 zX<-N&k!Yd?Sv3OYaKcmqG9oaVlekn1KX#Fm2KsEO#4cTOBpk}q82zA0ea!)2=&HMo zBQnPwTmS~51QmDr0+4Eq@P-a0e*zTzCt6Npt)se`K7f&@F7KBL&naPQ%2Sf66a-T= z99n^DOHx2Y$Gr-(1^K%7|X-kDhY*6|EUAWnDv6927HbE((3`!rP z)S-dwqY41a|6pNdr7+iOoOg0Uvf|3iVEB2Qjf84lfnr;hF4+>z-*f&S)-Cg;S_@Yz z6V;@Fn9k2r$aEFsB4di6YtYD31VmGY#$V@Oz;a3B3^g0`tHktW@d^v8OpJQ;W0ls@ zj&Qy1D;FxYC8}K?_mCJQPK1r8>%} z&o2Y>coBuG%CLZ(2W-m4LWS7gaopk2M1nm|u1-nR4?s?poz;4+LA3n{t=|X!7Z=k0 zZ|w>jKEIblN>We{;K^XbLeYScksJr%FA-cBFu|D$6fzF5y7lJd)c*-kAQ<7;^K_g zUuYD)1Tj1>wN&K6b=OOjkrR6ZxC+8ckRIy_;jF+?t?H$42m^9jaXk9=2JXi}jk#L# zhS3gmUZ-tA;5X0A18nSJ9PJn@QcR-^G9IKRz7cGDNkRm$^!k>HUhk@HnS%@ECIALj z3hp`UT5FrtZ9QZ?VBKfkYTZo0LC#lH#Edv)0`n;|Ad<_TFS{)wo_cdxr5r-o&#RKF zSD?EY&*<|)tG?OBta^{{8{@~oZUFV27bT&|ZYxbxg2 zc!T^|15c_49_j!~-XQiC<&sC3+g^Wd;dv-n&+754Yauerwk%K68@;6b(utQ7`+|6L zk2fr>tttWhxcI;+m9Q-V?A{7KL{WJiW#!4jvOU=%Fh&+tFg)HIT|Y3>1W8swxOJO# zhjp(tWM!;AD{eh#-QQoRu4Q$dA|KQyQc8v&x6YoaZTE6isz;SS)lNkrr{)#g;kTv z;vzVyd8Wxi1({j~(j`-pS1wg(?}O98rB<1;J6{lIt&AeE>8ZE_IE*~VYU_{~W`ovV zZ`H@dIH~3vqD-Lu+R8W{K`Ejv?X)zMn zP@5Jepw1+!<(M5N)}$O*PPVFyNUBv8+++whWC9|C%!~p&NidltloG{58oko?HKkp$ zrl3~utMWWBFo>s7y33U1auFK_F;3skTqNh#TEIkv3N^qc4+o$D<(Ve&2c(wNa(QXF zf{SO7R@f;hsK6?WZ0$N1=k}aZBd-~4tRX2!5psb6gaI687{ujU)g@NU z2D#-534Z1?NMe9AX5v{N@vIL4^ZO>x`j?*djh^*BuzbB|y+^SwtF@^=R)uG+M*O+d zA=))hqT*RE!5{iLS*4!!iq`2_U#0);kexyMH~QOJDyJj=K7;kFviARZ&-yvf0u|l* z70>$5p7mnjFUsp>{)4BF`F}sfzo5Pb{QXbQ`d<2ffy|%qh+sYI`~5!`*}wJwl72nw zlb8AnOnylGxqLnAQ=$JBy2Nc}AKblxkk(C}^ zRb;axmqQR04q5r5je$W&&$?ax0qyOcwU6X#c+Pp&ED6}NBtfH?Z4o|ElPQ?e$C&>!WCper<(m4Fjl4K6gdCz)|#P#P$Zhwwq#y>H0>jEWtf!I7?vt5#v zMkjuaZ$L4k{sV+_DLM#{)TZfo`XG(f)^VH_LyiT>BJ4aGbl!8Y9&irR)DROSQkLH; z!-R%(=Bpe#sKi()x;aucf+D`jMy@+2YZV~(2el)i5dr8v+q%!Qj(OHm&wAXmj*vbD z&%>Vem}foeS%*C95orH5YFSp&v(9+dvywt~C_3@1r#$PFXPxw{6G&n+8mRtjcxTV?#&e3J~&oIzNWb5*_5R92Sjh6^ZFc$nJ*oMfL^=zIp)7?hfKP z5HC6zjk^pkJ17bcAo=#!TOHho&|*JfMnwGxwT^-2a$z;2IVBj36%eeU&f3XxZ$!es zt5*!ERM;l)F*eA-`8AeVYT-vdsNgcJ6O)-x)Z9dFl)FATkztNWX4!hO^6U%hoOyDI zPrs?QcrywedV@pI=p)BpW?f*X)KaZk3StYF6+2M$A*q4qeW zTx0^~iBR=oN-ilu6fYT2;UYrfu}h^pywcXFcmPp0z^H3O&zp(*)A~Jy#SA^+O5{>rod(zE`z7Lu&i|B|BXtMt4`&k7k<=n1{}MHCrtf*VA`7wEOk1o`dv z>9x(g9_}8vV{l&w_qA|e!?M5nV+?V)AAreRqZ6;90Px9-h zBLB91vFn#Ie{$o+u0Qy}vtM_y>xSZuf3cZdu?MtoJq^fr(B2U;Ic20glngC<(1t$OLZ>8TH3-l2vup;6szL!TZH zP$X(9?>v9%v7YY9X;x3ovu-TPXkGMfda?k=UH>j6000`}He$>|2#6nd+th>JX z<^&67;JC0ga8g&mvI2(PjWZ$V94HFmL&m|RMO{}Q3gWcd+;d*`URq})tT@!*4^L5_ zC$%&X5lh$WLXI%wiKP82#Q-MXo1@sp7pK7Ilda7J{f+5cnWiz z*U0rXWJlJw*u+!MZ6Iase#M^{c_&==tDZ zxvqr%pb2#K{ngayF+v1e^F~dC5hg zw+Q8JlYC5DP|$%D^YRdKLJJgVNo8 zi{PM!suk;`Oos=qJ*kDFlA$T=dpv)xKqG8YL4x_k(TJTYTXMaw+giZ-2UUSi9zYSb zyto!%z?~)F3sFJ^X311UC0UWiqO&}aL^@fC%4>m&>^ahS;-uxAQsXStJs@Aa!-m51 z3rOePN*V7^Gd-c6dvZ}w2d@UgvQB8M;(f#|-b)OFS>TEFR8zu{TmPMj6Ersr87^{j6rZjLPb z$4F%R_geDNPORMQ#)&3bLhf%8mUI3ZkB2ebjn`x=%V(noP8K$a~Lk;NZ$F?yW|AP_>4$M+sUqIe^P0 z{n}3PNx+p_BjrjHHK7`g?lsp)n-Zt6)oW0|YmyiU8=j07bJ8?F&0P zb<`Z$O#-og9XZ>V4nRbGuPr*^Sv@lBjnQGR=#95~*8A~~QK5MH0Wb=PaV^GNj<)sN zk^QdqhU$J%9>Txvcaq-@ud~{4*%?pJqKd=%F7#f5yBg?`kuvBnfv6Mvf9MiN)G~3Y zFXk158DB_0V);~OrEJ8tDVvz+iqr{%JT=cfY6bKiNNbgOEZg1XM!9;96{125kELWl zr_MB@jpP$!@~G*r)Jlblm*wGVmrh3F*m!X>9gEC9o8=~GTErRXRCXL#!Igjtog%*6Y@Xtq)r7 zw_dfr$@)g?8?3L#p35im3@=rLF3u?ooL{J2;59q0n2^ERMsmn3JC(W|-*YvGF=?qu zXE#g7$H}3-A})2S2%DN>ubmSRe?6Y2w){+RXzM3P(*7|V^R|9OC{?IPeM%cg`($tg zZ5`L=08{9gG#M6Zo8N`77Wdyg>%Ypevd&Sm(45VuJ?lS$+-@VK>0L#K(&DG0^*q+! z1ZHXcX_=rB1_~G}UzVfy8ohzpm0q=056hI&fsLhTuNcF=2m16F4(CLV~XVX0s6;)*fmF|4LIPr{LZ#x~zwV zHo4R8>`*?TG(DP_VTBK9Xd}IkCS*!TdaMOqB9xW5tZ_rd)N zaK9JsuZR0RILLsnZRWe-{yMn77Vdum_q*W!8o0k2?svldRdBxp?pJ71XPfyF+%M9+ zk3L_t&1~T+Y92Yfg3-`TXbhJh>FgM>+}bJ+vCb&14_nGkM2<~TU$TkmCDup%!9TWl zjQD}_$|3qJQ*8N=y{phTa4bhI0LqF1F@j};R)H3uuZ_7%BS1!ry)sD!BrBsP?B}gw5AD*G-=?+!mB~76y(Gz>KkJH@6qL{(x zqyjHY2E@55Jc<3&9rM6HOZt)iM?siWC;oq$G%5A}Po!IYiT;~gt@>$A3M zNwiw{8LjzhgXQI5)L*Y}#0K!wP zNa(_i#ypqF!=)sR)hmS}Z3rNj^Xziz3c=&rl1SOd@e;u*9*qIyXq~Z6OY$RjS6gt_ zSa752Y~W%SW(Aor`wZK)>I(BOoht=rbeLn}mfq0Lp@iFX3YDP?JSHGFt%zM(G`@Bp zJ-?R*AU>|mhkne{QT68;!$=e5roAw(NY*;OcC_*@`D0)tz?K6t)AUEP9njx>K1+(c zj3lJhAMI!_KvF=@`_ zJLvyw_9b<8>+6*2ZoMaO=8uGng7))BFv-5*ZU zcesa{eacT$GJJh=yx{)B^@7`Uv_z6>oHZwfPTmWyjbf2daI|x~rK=LNXZbHWl}Y|1v;X^?{31)&9MIC^};-HwWU@aj{0|gMV4MyM{Wm+ z@XJAx6!HImIQuFqIw{iAMCMT=J;T+JBMDtnkodO?y#I2ULColwkuf7;hQ$nx=`RXv z%r!Ar$MlKm71K55yqF|^hhr0KS|U^Nf8T$fG5D6jx;cLMm|+7)3La3lEoc#K!Lwye zZotsd|GL0tr^&);DkH3Vqq7DNZxG>%oF+?*998Qd{@izxf5C_!E7?6dYC^rt!J{LV z?*O^EDS8q&a*$QN>lr!U-%7Wr%MKoOitIlZ!#2EF83|>?%fa%^$I;oo9ja3SkztBe zgyRZIBAFlQA;L$I%eLx&U(MH@^Mn8OXjPbR9QIQramt=*aL$P~4ww2Sf3LlmLT>d; zDZ7zH8WndMJhEYPmA^Mrc4bC(Tcw1p=6{$vo?B)DIo##VaXP-);lE~Nq=c=Vwf{I* z{6KWZIC>&A9QH_O5HXZr53`L9Q?tYWKj@#tT^BZc#`-<(_{je${%rE0u#t2qJm>L! zc;%qP?-}&}6K%*Tv(7my(p4y$E&mG&cN*$A_g|*D7wG@tWzdDu|1rg#s`o$Mtg^aH zrCt56mCtEZk8gcP4!X)Q)D+q4Vzzd48;ieP&WRC&p8^ z=rUWlUdycq;YGOP#zMbb7pcAx7DtP7xI{c_={MGnAz;nU>PQnqJX)v7$l>@cuB={ZuPeShp)dF{r5=78QEr$I~GPo2DYstttVqgsiYB^ zvb(lvjXTA3aN5~(qkHiq=WDHrqKEW*v=;u5Au0T~`QH}+Pq?5MIS(0Gwd)Z6+g>Lf zeZ`R($PQt-4q*iy{Ns@w!&?8gSeWw9gNc-XT;7YETb~!%G4!uZQkvT^rKCi@%+*MY z?(mfd+QG?@)pN$zbzJ;T(Yeti+EF$$H~AJoOa-YGe|MA{W*WVTQwG;60@HeH5TZ6DU)L^yv zjW`h1g}?8#T*_e3Y;(p{d;3IPQeB@Wr(Mhq(GijE z&4-m0kvr8#$=BKwA|DKkF!pSobpqW9!{q+{2v@J>qswv%XOKHaKB^SHpu+;&r}>z& ztYe0ckxvSQ^(Bab6XCq7`Pj0Yg9c|v0K@l0%crNppSyq%5$M}|{PEItME0P8qspYN zZkk9SQ^U7w4<4P6n$XD21=W<%xK6Wim6|2=7?BXUw>!LFSw!Tbak*DGeBF4Yv6f69 zIC^x$W|2=BRwAoqM+ba23eFzYf7As3QhNCU2R7vB#?9oeC3%ClvXIXY z$;=zxguR4!_=t$x#R-iv24c?3N6IrAN513HUq06ozU;bT_&YnJhPO@VGkRdSpo|Ge zF-%PmT0`Zm)G9e+@FI5!azc@ZmVmTa9!l<12{HCAIy=lm_j?UvGso zHzLu15anQ&P)SsuWg~=zil2w)?|u9kh8$Emtls?0W~v z5ztD6I&|EaQm+GMaq1ZLyF+HUZbP3E!IA94ld~hCja=CbeZtO&x=3VV%1KZgb?l$r zU%r1r?A}Oe-vR!PgXOL$Vz)cY-^l+$8v(pmMCx`LJ{IoxgxDZ_%QBuIdD(@Es^}4hlOsZ5}6b^5f$klVHt`T5U@`?6}5V26HcG{zGmZV<#LfANAA7`SCshq zH&uhXMKUpR{RMcZ@Y}_$xC~DT7fg|fiV0E};Gur8umLhOEax61#GVFA&MN%IV<(>|YXy!$B#fk-$f;Da0*g zA&q2dgxh*47U9uf6T)Q$EKr!C=tUaH^bp{7-cl-5hbUtKL%u4kl>T`C`%0bUu7c3Rk2 zNG(_KmoRg^wEhz(K&%nrO&d5~^1A%X;lc}&t6T%!!%~!y+l^VD?l84rpNr**``a={(pD&Kve z6br9>xL`(duUy|q9J_0K^pMaR_lSOgwp_X1BrIX8E44DvEuy;4@Q`yLby$iI1C&wRsIzUiMXI6 zFh8QSNzcf4HYfl@=T1@FH0+eAnH*eYs!1@?Yr#&_9jW&H!^OWRItKQa%-t8Mmi4a~ zGjPnn)W8r5Kb0Y41oXfMVW0K0bKxj?<-!SBx7Wbz)Ih&*BJ~@{K( z#7=(O8~z|pYG6>f>FTAQ8>D)NOIqDt5}!&RMcS-hk$?pzhl9~8Y_g;VQX-9duQ4}; zQ*3P{TK+d73DdLTWbQSAG^I$RuiVQi?Zd5T-Ch$$rv}W$Sff+Xr9+7%! zxXtU_?!Z&I5U12dA2|F1=>wgX%AZ`JB%UN0Ef|NJ)U-b#O49$&1bPfr>% zdQ@{d@#bMWx4GQ)aZC14|5xs+&X%1)Q#z$}E?2Hx^us9S0~Nww*IB(f=(Xl|=ZuPB z_tt@gKrqlKa8}?9eg*U7#(45<;awi#jNz%kb5tH^@<>{oth93aM80|wXW(=h>g z!ah}x&{M!ET`GC_E+fT`SHAp0dHj`Po6_^M_V95kI~0Ni8nRIlSjS= zli<+8$T410Ra_;W{(IJafQy}E|2OOHO97WS_qM*rSQfk3^AfB%roeO~0Z2MQh| z0NvoZFQi{^Q3VfGi2Sa?{S@Rct7P)s!Rx_2@pu?G5uRUgyN>r+xMhGp@r=I_ynWGk zi{eWw80~BL>Jf&Y_}vwer{MgPONpTlpTpwR~K-Vpj~N9INRZm#%a&9^lwGZOi_ zr1S8Q@n505ttGw7|K0DeL;sq-U7fJMsP8Wz`#XAqJinu39dd>ICKHwh&@SPb&HE+r zzb)JONZWy0d8*(Zg79+^X!Q+Kk|?r;>39xylwF33V1R#e0jJfX}-LLTY=EQ zKR97+g?mTvQgpooe+Iv+)SqF{UU1UzLv{ZPw^N+Bx6v|s1lf`BbV1)F{AtTG8{Ui1 zI|iNv;?^0RKl3bx_ABny`7O_LzoYL9=oNV$<{9ji|FK@A4qt`a7~X5)Plh#Zf%i46 zN6`C~$~{~DU-K#+xpsv0X^qeI%KMo9-jANk`8`w9?wT@X?>9}qS%fbRJu7)C;#LoR zzw?a1&yQmM)!#+9*TawNoO(5b=S}dHj@zf`y&1mqc(NV8+wuMbZYM*(27Id0{vZlQ z@Y@0RnVR=^^E(v(X7jriz8i7-+zHEHWx_X0NCby84)<%>xJ_{Zd=-#yraDeT=3*xfFYvwz-YL*;C#KWdOhZoN~DaTp8IelJ5MzhQHV0*W*&3o$z)<=MivE_~-GPA^E9wc(9h! zqtJ$UJ89x)Zf>@tNeBr{vyJ<2De+FSK#>yx53K0PyKBHz8Ai$d1~Y~eX@q9nWn`|@Nj)!DeV}zBl5TNdlt`Cgc%zw@GCss z(fKrf_Qw58;{P*lxzNXgw~8K~vo)Np&~XQ}m&*OU?DvA_ah}r&(^VS3rN}&u+gVt;;K%B7BokcZ zElGJ4`e^XS5r>XjS`Bj2WA9u~aMW0dg^*W0d-tK-X;J5dhfx|O%cv9pdzo+&kuX~+ zjL4dWgn;ZY|7QEo4Mo=3KJB(^e=~49VO%qtQ&>(6&S--jf#)Y9 zR4fCoSg8b?k^DPagT}Z-^hfr33Wel|IggSIxY~=#TU44}zouvhAB{P2q zE0TQSF&r=QO3{9}hL~TPn4sk&Z>aM!Gk0Y;myLfL>s&uDn??!Hh+nVg=G30FhuNU$#ot$Ai^EF0SZ-aiv=NmKbn?Xc1)wmvkIfo> z(r~Q}%ue6k@R~Qq5Vv9Ve!I{mwt9b*rpa_Ro;Jb+b0(gT8wJvbBzJ}YonJGbNpZFc zlAs}kMzl5~=3C8C>=ooR692lhAnS$7iNM=mCfegJ1>PY)8=Lgy-%=Zmf$Po+nhO!< zY6tR!8LF&thUeUG=B~X(E!gWbkgJ01?Re)}y2ahEium0;aE9!fP_cw?CFR+hs#CRp zQs@>#gM%vsR8iTPDaH{*;mE6R^t;aOxR%zylS<1QoH)9`@qln zvfg1TK5L0P|wS**k48!b=EGGzou-zH=E(MW-_A~qsY)ZHPXs z%4FrnEu&a{SeF@3hnZ)4qU($hQeSrLM42wZN;&U@X=XChU)cax!N?~?q*TFX=Ttrp zJ8bRVF&A7g^-TfkI%#=j{PC}=auFc33@P#0qkTKTR(X)AnQekKrx177wFxu76N{ai{@PHY^y zmH2PxI*vxY_4|lv;$?hTV)BQSM!}z%gQ4@Q(u75e-=gCbKS86j?i(0rR{NmH{&;9J zP<~(c($kuZm4uN_Bhxv-w*1D=RJuTyXTV3GOB&yM?j?2S$s0w4#axioI<=YKGk%CG znXZl*y_bEE za&YQE$z`O~3ZP=W1+V3gGkls6kT7uP;mGYK!sYIMFBi(mtO}EVu*-P~Z!Km)S$O%e zOzR6tQ3iKw|2ymHw8teGnZYxQ0+ z-XP|nJ#nnlNal_h9h>~Tvt#X*o@=-MhHl#>+K2U0=GYaVqD3Z-$cu+>0jYhX+bBy% zztXdPVqzI&H7$#}MvI(IQ)2;PO|(^29f9<*In=jq!9hvGH9TR8h=c>(Y;g z;{u&6_)Bd}m;cn`L2>JQkZT{J_Ra!x61j=`N8Y{fYzI4wvfuJy z_J2&MvE8fky8iN7z{Zx*3t8`Qg~u zF#76$s0`s}%k1vFgvE~cRVheIq1F^Hg3rtPLgp~8-qIO5t6OS>S$toa-V~G3{mzJn z$?CvqhX?G}%L5BJ=^L(J>l9khA;h=E*He7YK^oq{j{zyUZU5<7{mS5$mYnFG?(wdHya?!N;ojTEq`-48Q!9)F5oB zH|EuArU?@>!;9kkt<30@!i1b!B<4pCsI25r#_GQ%e}s;*ve)KI9}yVc{S`XS{} z)U8xgJs_R7UfQGm6@LOpPYo^#v~U8ftOO?RK<+fuVK%K4s`|IlCIrL~HCmeqP1C-# zT0ZeP!QmzuxQYj@DJ=fVam)HgmQPdgEsi|0$#;`N;M?38<NRY)TxU_3Dkm%uViuD)q$BnRAOTdXzqy z4R>-b7~NI?Hp$dxb*D-b(gwp~9OrlOPaU-`5d=Y{6W=lkYyP_K^Sb=W1Tmd|ebbL) zeo8s$=~AyR*0CozMt4HAIbOHcNV{?!2TxuU9;1j>xCc(IMU82EfLCDOQcwD+IrHL; zfR|qKaKbyJTUrZG6 z>a`%Pk^(pRCutpi+O@imOL#f%;39;UAh{4olG<#`z-+y#snX=}ClyLZ zAuodTab70-)de+b1Q<D`wNQ`1~XVnd__7(?KMKQ?XD>P3<~d> zI}0CR>*Y|_`##Xxck8k0<5P>7+10xT?*BMEu7Sn)r)gqWJG`Cu=w>`U>rC?cD?7*l zlJz9!HQWb7*%nBzNCroSypI~x?CX^R`d5RbDiT{s zqi>s>6xSweCR7>0FN~Tr%5I>?pPRn5bo)oh1p1>`d>EW+l{U^cs&(5NndSLWNPl;hXS8AncnIDO^31OvD7qF zAid!-yK707cC||_ zkaK~s4=*F~rh_I|d<6gqLz$CR;zXV5EkFlAS6;o}SdUIe<+>cO+KW0WMlx#~eWd^y z^*yZFc+tEbY3%}MxnU1>5j^HwLd)2oB>yqxX@bLKZdU)9c2>j_vAM1=ZH6DQgNyC! zzde7ZKsL)awi7g*!0)7ayB$Lv?xJPpo8zMP z%WibDBSR^KQx2l8C{|fCW|+E>j``^?C?IY10;9|&14=5DCjO$3SSkMekc?{I2@M^d znM*;L$GUViuVrv=qcc3MRC)t>$x*bQbT%umAJuiGuC+y6PG zWuj(W{*tG<%QL`p{}4hk0k$VBKN&jfToKtg|`NnjZJ8sX7g; zn~5#Z{-e{t%JyYKrZ~v9?YeTHGZ3^d89nHVGHHtEb^VC92ZcQ7LcB~UeXew=h|)bFEOJ`QHI_(Kej0IdWCt` zemjYGxVU{q`r`dl{-f@X(y-Nl?=Z5R_MxRke&+YP+ME9&60HA33>>98rf-`gIIQb) zCOnRn4}TbK(%Fgv3}*#SUPvx1!z|(Lew3Yww3#_Xm<$ z_eWjl7?uu??~Q7*7#=BU-E5xf(3&~RS!@yVbZLPB{ULOT82DWGSCdWt#*-Jri@%>z zVeYyw`WEXvr}H_`+kMi2J$@-ri^2MBG*|fLeGCHnLVO+-kq@VAmUtr7tprhVJSG1> z@_3OBuh_*}w*_61hMJ^dyZDp0mXEhy)=&H`#xN;JMx0YmJ$SFgW4X z!HSXA9cm{i=>6IKN&-E0aP-9Xi4sd8?~292lLqfgJOID2 znA^h^L$bTL_OB52!&IVUc72y|!Bvlx7n8}-=L6|iKrNLTbvhe>^2~?g`Y(qdc>(pw zg?Y>E@1l0Sp*u@`AF;0?Tr)ZMx@6_aEWL+W`Dg38UIJzmz;533X^i8rc^2=?%Uof# z*FvRWvZFFH^k~u^H@4S>$H4&XzAJN=mo;t!?MO)QG0I<5|xQ_{WMP|nu!I(39J;~n^`GqJC_T(WKU?)&F@ zRtGXA;3%wLwi@NBGDDugvN`VlW1qJ4eKY^%l+TX!O~z&}GZT2X+8ZmA1sa4Onb`)k z&g)_&uKd1U=ur8NRhE_XamMA)wasozI$vj#o7L#6WxYJyZE zuY+REV0C#uV4G6{4h*{Y=9PNCppqpvUB4i|UvjFY-XE7CL~6JZX685Dc&L9HFh7mN zZ_^S<^c8E$pa>HB0VHte(c?m0u@}wTwIV zeiy}vi+yfFqC0GNJ*8qSADFL|)UQg81ZYo5G;H*Ce4q>7WFtsO(JA`k+1SkdCqByz z%R@C0IrTq1dQWxO?rZfDSL_IJ@7h}h>;clw@v{6U?p%qQ(+?Lj%T#N$W`;dE(8AAT9P1$6GDEo&AKuLM$Uz(@cjw$&E77(@X4H&PfnzaMg>T+g zwf=F-r*=z&;p!dcDb)8y%-h>S3^HO=WWL!EOKeO=rC#5c%a$|iNy!aX(OAp5$9Y1; zx4isB*jWX^O zg(BR9^T7buzq0&yhW^b)w-z0X&lOzAkvwDen+;$G*?PO`EY)0JWok)QimD-$1fJa} zL4~z*wB?nwbl~EYuL|kfD9<3EZ4QTSGq~Q{J2QN_D_IlYyGSMdQpzh)o5Fbv1}eou zbxLH94g3{>iw8uyq-%i7o;sDjnw9Tvjp{GTi!AXs0XmVl-&M)NX#rjLA?y_+TwHcA zAaJ%Py=}^6wuFP4`r+AZ?BpNL_t_+|RgsmQ;JuwzlSaSnyFa-XF+S)0F}ch-Y_Z+V zZv9->yj+&k2a9b_2;Uc=4!vWCc&9^3UP|Ua)9tyt4@LeLpzIn6*!-Oed?j*b09`NJ zQx?fadn1Z?kM=^FIeBeU`gK9)dqoMXX2ge)Xd}g`#*{B>)gM2g@%%VN3IB4>{!#M(^N6gZ2RnbJ+7#L#6QUxx+OHG;oKa2VXdIJ8SpAD z`V~YTX1j0I0R~;2yRPy#wGIzv8^oNmZWq|tgYzQ0zn3K-E*M*a_vUdv)4_0n3mulNc3c&pD8 zIO-3d*D2i0&H4r$=YCdl@YO6%m)Eo1&2_ns+nQ%l`Oe*7KXozQs;TTH;WgoiG^nZi zV>0eym+Vk2-yXaV;_1{yBrFXP$c5Ob!E~56O`Dkehd`T~UHF&5L){x4f0q*Lm4#8U zsr2j!D&XFx?R7zR;9tb@VPrlw1rG!Ig1(6x!P!>N?R`yJB~4{Z9%8>e|I?aS&IYwn z`vz;2S|UA_5!FeoscUC(MkIGel56j?ofaO$dsB(o8=(CaxcZjHh?`QK&~;)4?|j`> z+v8e2u{y7lFAaabvL6AQWAX3xdC><;)rdcT6kZ@o%<%qcPZr>KcqY~YC%8JCJDFr%3tls z4(W+S!fWh1qMklVRTiIVPl@UxsCdU7*?9`>y8d3Y8~1bJ5L|!7$pIO^aiNhOW5?Q7 zocac(Cb|8FkYubm;kXi@fo>@b73@Oh40gmzKMxo+C4$_%6JqUtl?Z3# zoCccuf&$^Qh9B)iKTK0&UY%OJu;g%5quy_F=&KRsTgb@ExQr>!RSWH9e5uP6XZy86q=n@73~Rstzrw-GOqxb?HY2 z!XCv-opzpv!boL>9_vjzi)8Xcge}p+%whcUW|p|Ai{(li9`ojPU{Go$g5;hSjMa+#$8z2zz_H zdSDRPEKW^L@cp>jUH7@l?t=_b$XcGiupr+wz5o)h5)!$tDL~q4x8=k613@Hzrm>PZ zWqL209-n<&Hw}+MC*jt?xaCZJMen>d^rPKf?B|=-gimGv_9JLuG&CdJ)%N z5TMZezV*MAWrr9_rg!+i9~eAGrVOy2BSTZF>97PZLcpB+u+lvxrACiA*_~!l;t*+j zvORI{1NFahbT|CWPBZy-Ea%f4WUu#CVCC&}2yLX&-uE38)zm2axo)8y`|#~Trt#mE zB>H1#S!o{`5h9_V2yMKB$}aR+9yre@^O+#?sGr587B=jukQYodMOZttYMaKVWsVPE zIQ3rZduyJ<8iRf03oRUZ?*7&G^z@#XVk>Fq#PwtRpgEbm^tYQ0>&9GmUB-UKpZA7K zfl)N!2@p9&9MduYQO>(D)SN9xSxwI3Ej8r=su#Pv&Dq1P!?rgI5j~dxFq1T!_ChYy zWDPhb4yyTx;2+@k4Sw*2#qsh2m>fM?k@_B=-n^Y^HS040j6m1DKL4up_dS+W=QW&E zM1PZZ|5vCm;T(2qTW4$TN#rR7!vEHoS3(!I9E9Ph(k=l=Poi`V9MwPDo`^+hy!rs- zq`%P7_$&5%y;;&^f->t-2lF4gmBGMqseo#f$}aMkyRSj_n9uWOt}0+|c`E=tuDfLt z+T+ky(~u@(RK@Bo$s?}be>TS=&mJv;eOV0JW;k=VwF@E=mZ;zUU5rpnixgrH)9wHtfvgTjd5LFC*go@^#A{xWhhOV({oDWkVM<1E>DS)4bn=$EvM-czSc37qGXk_osLYc}CnDe~V z;jy?%LE2-#>_xEcs87iRg|qDS;d%4a!)(wAm5WTY`w`^J4=A+vVV+VBVnx38{mOSL zq5C&%p=8*0NRDn&u{tTd;|Vp3@&32_rOqSf^?h7th_>t&t(@DA*6-a!jy^tHedA<+ zWacg4G3Sps681HV@R&d7s}hxMAiEiQQsU=M0N#nbrZ8Vupqp%TV(N<_(&s2e$*!Tu zhCYb$#U+l*&SD4Hk0&{@w+%qc5+xoadl&IGr!UgL=bwJZW|*5y_Y$;`S}q$=^X0u< zLx*FpQ?6A)=3H81*>xvmb)S{iI!Wn;Mz;GG$=T;J*?s6s=$U zcT){ZrVSO}rouLrc(bCy)eHXTnP_lc=Jidso8bleL|9$I^jJ6$ToyuC zT*!)BYCHckujHi8qnR^xhtHTAGphe`vqW>##PXf)j(RrQ{~=;bYv-eU&mvC|J*~>| zYnw3>eshRTweZ~0NDEp~LwTduwvdRlH|?|E0}e?cpQjo?(F4{?fbM3q=;5xS2~OrV z*|E9ohOmJqkUmmgid6cJV`|CrxrX;}nT9L3q^v^T!~==*^Cd^n>UcVEirrO+G8@Lo z-iv##YLm_;`Fh-wxW=&aT+4CAiRsLZLSS8|JxxjQt%nfgf7lML0ygld(k!Zb5&>Vb z1~!a+W}_riFO`Ap!H@3FEEP>tRm!O0*l=Aj=7j8Y+xXGQsD7aVZ)whf#o&=?a_qf# zbWc#5_y-MV->}=YXxjp;ud5)Qvjdh;)^(U48%LqVAXQn{T;apmS+(MOj0!1VCwf(X z7?_kZY(?_g%fd+kj$i(?J10|)_qKVd5`*&u+v|YxoznI!Xzy^ln(CtX-hrQT(&k6E zQ7pOiNa0L&lkqdJsF5wc((@flG@d$b5#uF0!n@U0B)c#Kj>I2PGZtO^H|?zGKEUtN zITlE}a0O=H>I{0o@d>{abqroN?Po-cLXXNj|3pV5=OBFNE{ge+%Xf3edlMT(~FUiC#5QgsUmd%WAxghb#EvKyV<)EXRY%MK1D z=#@({M0!pcgbB3ly|K9EJE87l(kmU8m_i}M9zVa;bx!Y(cTzC5dn z8?|`H=$i~zAw8$@h6=7X5Ehgegb10N(rC_gga-t|a~)Vw2WH<~7ut0N^oCZl#_XtR zvhMdti`A&Uphw8HBz$WQAy3T)6n(3hDrXqV9m-x;iH)b~o&(EKndz5i@3}AgQ*ER6 zMW5ly0k(Uii-L&{1s>aMNBV@_g!{HCQe>Cx#A>li6o2b}t3zMceGmNHEig^@idn^d zF7X55ziIsuQXS!%xUmX%o|6!@|J8?*BHE!6{OyA?H$IFCn-*xMz#ZxEmXcH3N+r5l z<}Z^EpxCGWvL%P+yqe1vMz=>B!M_fWz9xvbrb3-Ug80ZJjE+7Ill?gC|8Xn}0= z7QT8OX;!krrfIAg3$94_bLQ{v4Zh3HYDJ4 zIm|zf(*zYUH;adWik03u+C+<~uJ%cxHvGB_wuNQ!c!o&)<(q)NE{#>udvO~#SvITlYUBh?1VDVe|en5KE)L`nnEgeL{~UqtY1iH zOq?*meNGqe#DLTrg*#GNTWGTc`~KCxFNHpq1L>{@`gEgR1Mr-S?CGl{D=L=U53=f7 zt%M<#C-ToGp6E}T%xel9E{58AEUQFEoc8El9OchNg@%{@ zF_Uful*Oz^(aXyDB6JkY>^XIPglN}@w*o!=^)1o?6 zc+gx%uhQ==A)7!~t5#3nW=pR=Hy1ycr5n0O^D*2u_Q0*q9sAQ?&hT*f*9>s4l!{I)sZB6#bF1Uf^3xM&Na}%rN4^ zGBoudbSq^J1JztP#D2VnIa3R-S|eu{f!ix&V|L)Z!E?+<41KCnk-%gt?pMXyrA(rL zn~nsct@yO=57H%~4`4i@Bq>gl7Scu@mti!CD>Nn&A*c5sSMt+&fakWP{v&%up6hsp zYA_XLy;FxpNsql#BfxISQ~-ITt9tB*6n{owtF=8;nUFOOSg5`51?~`nH(}L z?{N@RV+zVC$-+XSI=gG6GdmRx1++ye@)*C8R3$M+5UcZ~RR_geMr(Y}?u;gTzs?y(nGw}omyV~pS5##>Uoays!6!WshU#xK>#=`KlipV_dH4{AXO4jN3T})7Qk=HV?m2**2 z|I2l}2n~zqmMt}H8M3GBghFbeLAj*7%@psU#TFf!{6-NY9NB3iL2oL2@R8Z(3co>b2vG_{=cWWZIRuC)X82MB9hTx9W@a!@Im@PI?k*Ry>U0 zey1v7Kf2!u4sHk<6}8B}))6x16Khk-m>h(bxTrzVR}BOgkcjCAo81)KJ?L z&W^{}Q?jJ7@>eVT5-B!FpbO2fr~%OerAN}%+O4We#Ey#CVX<#Ie%3e`$JVI*qdAPi z%e#$vc)_ARuD(^%rH^NeI~AY>LdttS{*mNQyJxuCpLGs0=P1==6?c_D_%c2Jx|%ET zoF<>xdCE27G6q*+O5JJpPP%C7?<>r01yrTsEZs>G~4s08o;(dRb&=pw$_SiI-tLj zvG}Gk8h_=slq#>6h82Xus`7}{>sV8GMJ0Mh7BrbPzkot{A2pD%A7-F{>Ms2ALddcMJs-iewKG-0>k2$Kd8{7rtU3oU|n%!QfFeRbBQV zpmAM4^!Bc9su?jV4MEw^FVDIM38Ct}+AxlC42|V(HtYW|YLC1PNa#Xn+@uw!xeK#d zD}g7PQJN*k`b!X5XOd*j-I#zW@IDv^aO~4`S^YFq8d<3209;y7A|9pfC&&^Btc`jV zALVGx1UEi9YyQl> kZ+=8xdfda2pugbx^XQSqxN(HXmcGsVh`l!C8U7m=*b1ix1 z#IXkRP$NDPXjG8e2S}&n#IA`*>^v!oU6P1)lU{1?Fyr?iDck-vcFxP5#gomKE=^{T z^8U9b+VljL`-TcAfsw!42-qgHF|iF2qwGpiSW-{$>yP|9pRFAyvYcb8?FGC1T>Ic+ zA32O3Bs%sYsd*LQyvFB|d*RSX@FUE8VrsqwY`hg3uZhksz*;jkW^wK;SpWE}yJ)HT?9yESI0_Av?L{?T@8TFWH3NF5|zfK~c1Y;XIrMe2Mh{oVFj# z>lu^2VHJyAtAzF2q6e%Fvi=)JAJFk!-AJ{MAj2(K{xi9i1$6ao(Qg|rd{bDAAEded zU0*-L9|Tpg|81ck$!P=>@*2jL6HPldvLyeT=Rx~K_@LEly*`38kl7NYIg30SL;yS3 zY6@6qaqj0ptj|32P+TP_Y&RTTDGOLos9S0kmOZ7}{LzPf)WsG+0zQ>1Im^?Xs|4@b zr>Fy+9MmeAa1?RuqmAfv?Iv-;wAQhX*tpS5k^?x2(uYkiXcs@6lBrAxol=3&L%|PT z{!yPuK-@UnzepPG6Ajl0!#&o=t>)IWPF(3c?*$1~0ovSdqZ<;_Lw>H)Oq$&-`-P%y zj4dXO5BYj=kw0p0GzLBr0^+<7=y;zAnEP+GCO6RuM7FB`(u(X}>ND3&W zDMhX@FYIi!5=Cedi^FPs8&R*`ZI!`+Mv$gROV^a>77LR) z(${b=%!0b@3(2!`h)fQ^w?MW;$9^nX-?LtvS5iMT??*oec_pzSVgQ=MEbj(@dx>xM z3I@m*85jOS3CQvU-`S){RW7nu&uv0#(G3S?;sqNc+5xZv!v=H>cK$EImRU~4*;s&Hj-Ds zD@+cUJyKWF%Anh&lPcC{EJN?50n+%|_)KE^P1)I5O;xdk8y26Xf!|{Q%D)e}mNwUZ zks(l5Dq^lI(cWK5xGwU8z$c>((3glqJjz3=LH)@Gd>Cp-%`u)0c_%hTU~7Lt*_sk<%BPbhfYpKPFF_%%Bx`Gc5Mil z!~%<90%5CRN5yK4&_5h?d}qEZHBJl3)xs3ec5t{O=Ud24f17TH&xb%18+Qtwq)7i}EvwEk4r|tdv{W8@j0l2su0z%o z^<2W|AvEf5`1EEbRng8hnc~IcbUojmn73-J8vXGw^zy|ouD_&G%2RDK-9)MrS4waH9shBJ^FC94MiH zwF)4=NCEl~fIucG{%p3cDZlkKV&EVkL$J!=M+ML#ybi%$c zvQl_W!IwEgHt0tij|#E(7^823fysk)O^Z5}CA#qtlCtZ>&1u=4)AiH}wOW>4C8>sp zhK#NQ*m(TVsQO36AGh|uuF-0k0{{1Trkq85PV>-#P!wbZ!rf?Pngd#)Xiij9`it^# z$+$Z3VQL<`tNlqTQAr{xV{4%viwL@k7-ZjSjB%|{bAz<7xwYPMM*uGI9L$257(fV-R_AAG75g$|xx4_&coVW;orW1rw;r6&Od=J+? zz{bxM9#Q&S77{veC|BmA^p8B8I_Age(}J|N(OvCGveD)SRotp_fJ_bkG-8Pbq8;5K zD7r&IE9oU-R>|$eK$@2cMEkM;eUBNYHcVwxZW3a*G_``u`aC)B9rT&?B z^4;8S$?@^(cQJc(^p#(S*8ZCHD)Ba9 z3A2~4;oThw_Da-rkEYyLfn5rH=9LRwJjkyoAYT;t7i>odNg@G;@riN%y+gIIPk;0b zH^WZ+6eRhKIKAwE6bjt6?8AS|wO^oBdFP@V_T{M=uC-?~f@VCWwq_1(R8wC-#haxX zgn@iKIJ37~hHg?Wv#*z>ttch?Ed+e9ecI#+JbxnjPiW)T>vu;+-i4FIXN*B!Us8rX z_))F|Rc>VO3L=Fll-$Hh?CRL`S>aOM-wUC>KmNFwcfYC^9F!JOdak?y7WJA)AKa(u3x_D zvgdb@Zr65N4Xw`X5!b1Hhje91s@%#Om(_sjn+D)BmHmX4#hLAlPB&)k19`?9!*!gz zRIJ85+fLZsH%O|M7OB=2Mc6)5OM1eO2@*Y%=PoLJ$5XaZcuAw_qclFaT=L)Mf0A53 zbZ4~S=D4g*QrlE&(>vy*tT5dScs2F^W zl1oEBSnr>s{SF+~B`N5+a@u(#wzRYC11cL_GBvqrUcV|Cl`iKNX2%(e1rY8j2&v7gfoK4!l0-ui z+pRc>B|Rz%kJ|3Q?`(Y35GGVBw6UfJQfFrVth|_fUJTBEK;K1=_bVBPa}0?tK#UsG zLHxu^T_+7M5B7|y--MeSRd0~<=H@?-)LA1?`!XUKPpVmk+2-Q(Y3TG5ZP;=gieKLe z+LR6%a*Kf&hHk^nc`res7i~S8OIGy;&peIo?sC-({b-DAP?#91la(peuI;DD4;{r2NFT*w2b_^{`^c`GCPc10<^KAiKG)qqfxc^q!RmN7`_=fKZ~OKRwyl8hRPNY{KpYYB~4;N=D_<)jdG z*TsLN;_X7t1CJP;Pj@kb8h~K$ePCC#bej`3x-WgGisM7J1OIndbjdId&r&U8A$E62 z@V9|W37Vi^E7B*S{gqtVBPv*-YOKa`$tvW?CBhhax#*J@S4c){4iO zP^P@|(vPM2tYUP8;Sa{(%Dac4UPgK}S_v8Bo?*}e`pO88<|_9m zM>iv_SWk`M4H44dU8@3@XtP8lqvYBXTaH{P@rswa#Pgq9j{h3gn7d8L@e;4WxVw6P ziCm)Xp!B@9GgWD$`v|Gy{V##=v)fjTYRia3Kp*rj!R zb32*$N%WF(*!n`{GJaI0`zv9?>7W;{x(5tiC3_Kzy%PEb8^@fzpiyKViuMN>fmeax zZhEdP^kHC*Ca8WU4us-_VUjnRW_pDb}4d`)c5~kt}l%=HC!+Roqy|Ovk zSy}jx%%yH>WPr70CM5;$?J*dU*~ey(l@-IMOuY0EIzx0{jBQTsz=W+g;8fS&l@r8r z`+>j9DQOI+yx;|kO?lSi^D&Xvt_?g8O(`qP+q)`ZR++oFr;tWFeLx2|@>cn)NF{Mj zB@@}_!O(`(tk-Xf?tL7ju5Cx19&yrA{jq02xLvDuXWq}ruJMQL>!b}Eu_7X>GT0_S zgZrabz%ikjyy@|s+|~;V=0spN7_WQGsSq}Q_dzE3Cum>Cf7G#b%n@sqWihLyPxZmL z;4QR}zFaMNP%^0~%Y6WO-wZV$A6DHU9T$31yp;_%03{KUwp`+jl;fWZyv$==mo}9d zj7x4Agk(xy?xv%nQ)IKg+3O0B!G{4@wUk9iN(T^ z^gq>-!_XG$*XmKo282MW7JWm;`_6s`)SmmECa;Tz3T74=c`z$=+)?WA|0%laxF)|Z z{8dzR_yH9G5di@uBt}U{Oh7_HL>h$ANSD-L%mSpPn@LMaH*C_~oufyO0b`7f?Z@xW z_mB5}?tR~T&Uwx~&v|Y~c`{LWEA3K_mB7h^{IG&DAMPJ88;wBElWWrr-kv){IcPG@ zQ-{FsOrH~DOQA+h>IjULU(~km^a%S+c1QcOUZ)lBVTi`HaE%NS`3a;~w%W4s2@lSHH1f>rm^n-0$*u1( zQ2Vok5AH=`WMpk~fB?{N(&K)gGNMiVtI4h_MtoU?-O+LP0XS*H zI0D0dU=%1MCHYzD7@rsSHL~n?CLU%;jBH&&84#Yo+VI0aGnfP+Xr&!zkk$Qd9bR|l zE-zJAw*+r|uwPbjNw?Q#x-1!R>U|VBqSOS+B3;A#Og9JpC;7^b*sAzBZ^yj1`NKi3 zZoc)B%gN29FzqIKxPUviUwJ_f^N}HJ{MerD^vO2eIo@6|=D_;Q86dTnf<@gJ_UJy* z{YT8eVHT7T1xvn2#+JUfl;mK_74XKd!IowBVnCrmD_+$g^Y2-pk>L~aHK7!H^n&~? zreU#wVn^Lwj4aDY<~5-#d;Gu?1-sgE;dVe|*mi; zl1F&2trD+)d(p-OQ*Z6_4)?KR!l|4mC1j`&!$5ggf9ijWC=5d^#auKW_4tjQi8Z8= z=4{S1=-PGvL!#j$p$JS+bx&Mdm;F2;hyNc-=9w%NL2+Y5hhW;Kd{Tx)nxAK4dvCjs zs1CB3z1Y(|0+(!h_-3uwPku7RTwF_x{+06GWs!M(? zxc&2>cQAs4)JP-d(#w6AdKk}pnBRK7e3%;_{LRQd$nwi41C*+|ahnDnmzxm?zky!-$-q+<*JE3_}}a*%R2W zZJ_KqHH>tf1v$_YLf>Y1aWb&7anpzWIG`6u=H74_C1XsFhB0M`BqTd=O|5qr^M$Ug z7MIYytzl}hry7+FM7a=IUMXmUEzl!tHk8xr)f5?}pTOHH1J+>6MGJ!1t-y-W`B3GR z-CAdg8p5J5FgibQOQ3>q7@Ex!>BF zR=ac%SkYNdcTBwQ1IFEUkMkn?K9(x1jiNUAVrp1Hq&cKw*Qg>4d?W!okz%!hvV0c{ zbEK{p+sZWih*-n6E}BvpqAJ+a5`)+}mcEC!Ni0a~v`h_y0bgJT58!fQ^eCnIUfmY)b>m==}u^T}$S1S5N+V3IFGp!+-u7aDsVtbQp6$-t)L} z(Ii7{(!ggD%jn1HQD@k;)wwmTNx(}0WLdEpxG%q5f;^k~UTK((Rsvrk2;ioFwj2D$ zbzlc*SsF>;lPYXtGDDh#2CgbLBQeVE_s`kN%Bfc|&BGfSZT?LDV_45^h28I7?A<#n zDZXWh+W*{q&XQ}Xn3h4f%om1lAhx7@rBDJ2!rXHE47bcY&5 zgR0Rp(*y2H^){N9pyCejKqK(LYr8UHUw#<$54-Ytvz(4{mSlcPj-24#4jZL^2@(o1 zpKTv6p>IIx$i(QG4o3)9k^fvfc8J)Q?Myr>lsbFc{Hz(=tn%CODHQ}qkO&G=I2q3KliamFKx?d=I%W+6MG;Dfdjwek%F}&}Qzpipu3>hJB60lIUjjzX z%NyZD22x*#E5Iju8`%Mn9ZplQ^j&DTwgl?Ki;EEdG-M=xHO9;thwN9XVRtb9EbAfK zP#^}@q5C*c1a@ibD;r`f{%O&YTTWE+gty|Z^0HE5S?c=oWaoH^Xvp|+ zZriqhG}{kJm&&OtArm09^1!~4Iiqp*u&^wGw2K-Fauf`iX}_X|IB}DtkAS*lAy4)Z zt8{kEUDzR&5Bz}j2o0>mm0TP3Wvjp%3rY3OY1iETh!G9>c;bJK3cHF+dp9ai;v!{^Eauq-<{CD$NmUNOeZ3YX0y#g?%?Vn1+k zaaD@t|Ao&W6nI`2duuw9m zS6FRK$?qP+ij(_Ju_MM-C+q3|{51qxXa2!485ro@3|vhap5a@3=E)Z3YeXhd2=xX` ze&B>b1|!f9(@}RB@4-*@15#?+{6ov+XQ)TqFUkknSTix#esX;HLe|iy_?{cyCbuKq zR1a1EvnSxoIKaF6JhH5Wwdd1Wnv53_b|V?>uPbcAqIe#+g8|Fy82ex(o_|^%&WC3a zcu9VD)B~&~{0%(Un4TqsI%V?+)n4*i|Ldc@ItTB@m&z^bJ|)h$kVKiTxHo%_{tZkS zh{^d-w^h_h-B1i!=y>?zO&Q=wX78;w7rb%uj2d$tEl^8TxjGUv@YNpS8e{)%I8sgg zjR*m`6)h#t&|eG_l^~Q`*qc1kmmb`HBdTrNq(1Q@dHYN2mwxLkc5WfPBQL3x%;5k> z)a#LXOyJ1tv+wIL#FqAd9d#B(o0t<88%hkc+&i>a=76%$%Oq4wj68GuMMg!`@l1^x z)=X}h27NK#*ynM&-s)F$U=M>IB?-JFX3L#^aL)m;(?y%v5vNMz6)(NptJxs3rz+&j z!Ie&1AMmcb`>`ldUX5xa8Dz7GS9A{-gCB8UNx)@b6kcNjAZjD9?wj0Sd|%-M7OCa0 zILa-z{*r5=v_VSX3sKXUc>r|4E}d?Hdif%vwg=P(zeCw12QG6R%h9l43^$+Kr!IvC z%;!!5(d3r86~SThq*ELAikBou-?AW$nSKcMA1H;U)3#3YNPuep%ZUF(biv$oqjXG9 zG;zX_gTsa(+E%z294EY){~yG)>-MF}IZd+k83V~>S(3QI?>=O^g%UX$6LTg7HDx55 z*&XzJI%NP>U-I~`#9ghU&%avc5hr&3GA#X9PN$m{L_2UGeX_X_!m+HQl$*t!hd-AB&gq zt7tuUbj~#scO3m0iz-H*$l(#b7$|1A;OHwR%inFeC19i#odv^xtOnUqPw>+{_QyfV zgYN>9nrUd$@pwi0EP4nl?JU7{_xavY*5(I#AH(<$Ub%1 zK6B(p*sBw*cnSy(xQvpC1W{g=x+RvPTYq5S71N=%n(*_lV-y3i*20ci^vwDNS`qpc zr&Z8X8u<0rMCiNEh4mqXDnGJfZu#XM;Q^t1>#V6Z^1thN~|98Z_)}PSF+lH_DTpBaWGNb!i+F7c@m-)zUmYR-Fc@wVimHJC=(Tk z>cX=Jjdo6e22PK1?Z}ig47hn>0}M+qXNOMqHoNqeFFBl+gO738hzSUE6}Qh3)Dv2E z`Arj3xke9M3Dcihn%wraY`@|5jmSGBg` zwfDtwV&PYB2D#BpQ2V5vW4Xy>06)c=f1-67B0r30Uv@ZCT56k_Fp!_k)nq4E#)iT- zh%r~fVkAV{Og+f?{N!yZTxN(wdJYD8`}!up@G=F3Wf#38sGjwnaJ+o~2z<$57c8{3 z#{(B#$3FtYeOc-a!AMW`H4YV&Us^eEV-EwsF(VNFiY3nk7(Z&bi4oskM+B{M3t_}#>C@rd>rd{n+Sd0YC_l)PG7 zpNb>#f>D;4lE)7xLggLTeB}hx3=bvtthpFb6evO-`zOrp^D3!iK~whh0RnO8&yAqi zYqF=>Z($$>EKZuF;+UNYhH9|?j~y&~3NCV({qO{SaE?Z~1 zd4%ljXg{WCp$k)xBO=G^bSd&P;W6gjm&Q#)ujoR{@j+vyhLXaqoyV%BXyQ!E$mz(Q z2*p(lJA7pbD?gdbl{Cu(lwM`dpcxRMJBivU=ePg@QA6G}bL8ixQav-_vkVHh7TKpd z*K<0^uNi1Zgf5@a&|`0EQggzqi}#L zlToS$@7fh4FWH_pnl^&CUBz&=)qzmbeKEL7s=33a^fWczAkSBhtvSjZLB*+>vRy{}<_dU9#z8da()>`oPk&6nl zDQ2eGT9bWx2GoX!*JL3>;F3;LC<;x1FR6R5P)k!%fI>1gGB10PMv8@@(L>92yFdv7 zSwFde3%dFLebJ1qk2+Ls861ourm#V?jYrt+Adtqea!s+;m9Cxbz*8?m7t^xq)}Gie zZB01sC37Hj^T4jvr0>+E0L5|`Y6V$8=!OSH!jb8?=I`^%aLbErjpkfGg%AvI$#p+{ z^N%64S=vpag9=v00DindtUtj~cU+cfYA?Eyc#5>EWnbByNiKEI;IEzs&__6(lI0!t zpvP!4W(w(~0*3bygBz>_@q>1wG~FslCwr-XgGx+iLghj)QnN0LVrSr+Ax{ujqCr0n zs1fp%nduF`T-|$r~S>G&WZd4 zBL6A=M6;Y#@~j``NpZ8eU>BDgoY7cUK`r)-$hgj-RN30(3J}Y_N5m!Wpi8a-NqO6i z=T8KCP;UFlbSEeEk?EJ_?A8!s!`uid5CJRFA33nq#6Xc_blwMH%$~K10!g@%HjzCuGG{4x zD8mFxDXCxo>f@mUaH6gMibu|c3hK%BhBctP+fdlzEEoO=x9b~;+_o&B3oPfKM`B;f zf?PKCt}~uiuXnT8o_^Txkw6p8x=s}fw11pEgHe9JL@wy~9d)UY5kGcnr^zT;7;J~t zF37BF#=bcc`Ml$^MJB}^IM9>m`v~S9Ukr`s?xpn&qjFN|IDI}1UlY;z*ks`=a zzdf0A@|?^dd2Jyz%eSx+WZs3BEIo+<+P`umjIdwL{P+^E1e3(#l;EO-2et*;&cYY{ zb_Io{m%w_F)^i21pffVdaIcmsQH~t7;|~(X5TzyxkxQ&o8l)!_^0>?pL5|XPs$L)? zeu>g7x4mFI01|~@uvUG{sr(_b3!mprkxdR7m?;z_Zr_E$)-&y(5Dsn9cqTWj$UdA% z2~|Ow_0QBVI;>p-uI@QFQE&uJ$>ogbGY#}WVEiRI37rE#Ngd4_nC}ElU7c8k;0^`%{>~7D7g-Nf?G0>N96#IPRt$Gn1O2{ zLahTEa3Ffm8YqGLCKSrGJU-)U0U4n;(~*VV!@EgdT-=^05e!(B(`2vQ)y1@9kiDHf z@*SrkBg~ZZbxlmwRtHS1b@Kr|CLnDmmo5aWR7cIWNjT$CLHaXK&<{j{yl&RJZJMc2 zj59%|7frX8febi~wm`!-_0l*Qd%}1*xJ~b7-E{HGnDR|khia^M#*B0+IDJCN z+Bxt|CAA?pt}r2COeRI%f#AiqM&v2QV1gdLHS1btv1`dIRZ#!2=OQ3^8kk~!q`uDH z9I|7Zgk0ghg0Xk1m*odf&+h2Daa@^FP}{Z}hLY3gmOes>zFN?f_F^d7^yKmx$jz#K zl80~|3{vZ+T-*ht#4NW4A`Gy8>B2aDQM9mmE*JTW2LGpnJ(Lq9_wQF7*cb7u$T(XnR z3Sg#?m+a&q3=`Cc6345pq)X#0P&N|Jr3nvmsdpWbu3O*L9XL{(=Rmf*h>upncWHM5K@lW#NMyN zh)+BpkoP~cZXpLvXBf7m?3lZPjp%&%Civm@8v|D!A(2Ena}N}4J!2CCv0cF-Iqu~X z6LL_fzV?;w$yMw-ImN?=fQU`DYS8|srW>+nlB(fCB*V~Zze`f273&yJA(-#iH}(u- z0D(|!&^oM4j(gKA2TOj}GUAcTPG+5;DTRRJH8B-ybg+I*bmq&72Ek9KW7fFCE**S+%gUc<7EhOeSa(keKEQopM8@dOYsD_JQT;2vzQgHI@ z78e^=1K>2=k@@T&BTlpqMF_&|n?&@I(=by@0){SVo?!}oE(-?xmHU(FHG!=&8I-f< z(|E&Wr|I=Q0+B`#wrHBd2DTzyG8Dw1*!w9=W5N?VKGo!Xi;LfhFq}sL4|!>O52ZvR znXkkAQp(HMar}!wyi36htVu@h$u!;qLew6F5FVKK`WT@lTS9iCD7MpuIL&0lRYst@ zxEy6bq(UIJ*DYJ&O#k;w7MYl!Yr`FgnNAJ(2$lCh>sDa#yMlU@)0M`=WvcLkfYpb?>(S<3Y}0`frDuVCk@e3t*$Hv6 zl5SUlc+si*1bPHtV%hC^gW1~aDaAKO?Zo5LNLLBX$uy}1%e3_G)W->=5VoT@gmRmm8(#9y)JK#h~mmDLU4WP5)_v zwWee#q(1(<70i6;BZwS1duz@9o?A@Vh|hjE%DF7I?|sp%`1%8EvlRm=>b?rA!**4XVXV?UrVg`Z(B zO7rgrN7|&lROf1)A|_NeBDvg_dPAn`2~x3EN;ajeKUgLIgX6;z@5Wwm+2roA|9hZb zb*%tWrQqYN06R89G7X1t7Swf_rXoTKJL$QFtG8rJ&4;!CsoQ{yw5VH@&tO}lze!bG zi3N}Ym9qD}D!3+dD6?vI4^hLUIqpKMYQ z`rjqRQdqlvSsW8K(`vJ&Rn)3K7H>!t(e^O~Ta&Ew6>}|`Y}LHK$(UDliTeG^eIoa( zytgnBVcMv%C_{|sAl2!({h47EE-y(d+KPHPyd=Mg0-~!e;U^RQP5$Awt|zeybe8Ka(}$ugT#TbfgX@nzDUQ1e+D z|J{h)?4KIqxyJf;`v&g*J^63wq{*Npvh!lnB&t7ACA<8?TwcoHhvtL>{)D*XbN`oj z(T+afK9(-WkZ$MqQvsJN?z@pGK#4jV8BjdKGa_UVJa;-xd&VVY5QLp1qBp1?2!e6+qbG;X8p(?^qv9x+NzL&+F$-# z+p?e1IxOG#X2pj&mE%`*^>e z@w&lIf7M5E+`6n|$}Uu6SYn{@)32=;-=PeI24i5w$3OZKCqD&UhNCCB!eZ~JcX=wr zR9`XyT-H8fXEN!Vf`GfEH{a*(y<=XbCHi3Km=QCCJA*O_znSc)OdG3uh+@ywIwC z@{ro^H{A_@hBsqtvDEv?`R{CT`Yp($=LD-dJ?5Y03Kw5DMPs~Qwsl^w%&Xe{E}-Fy zOF9lZR*-54jXN`(v|nr|uf47|s0jWt4s=XKs4=st57GsAGsbt>hTF=B&-T7A(>GD6 zyDy^8*D>tHW&1{4Nb8xnNG?n|;{8B=hrR{p(6j8wY(N*;YFMDjWPwiRUCF76>pW*e zDSJtR#_9YxqZ2&#=;?gmwdQO?f+oUKEn!KqHTUY9I#>k(fvF|{?Gg?g*2C!qH?#qHSx!f9HX75xwSHb z6&jxaa@*Z2E%}}%3A>9&Z5s}b;IX_nNWPqVKsH0P1+-!9sGzAG)-IfHs}K<>n* zda$#W{5=nrB7-E(wQa%T^|Jhzo`7cpZ>I=4F}&EF%z4XDRW78#N?0G))U;PFg1L0V zdrzy7KkjDS_(J?Z%F$nAAw;XOyYd%iFK>-1M`Dk`^rXf5az(2^(ih=ep_*$0-sX=5 zqa>M*c!igrl|(3o9c%~o>zg=K%{@zlbujhSza-Lu_+@0w1lb#X2+6#iC@*Pd*tP1%=u5MLNRDN2zZxKm&Fvn|=m%;vfW zH_cxN>ZC4sFmJYet0M;NWKpWfaJ0>xVo#JM;zPj*ZxG`|fpQ$Z#g#WR8) zAlyymY7Ch3L-~tbM=VNQw9wyr@t=IUZ1gq&-cw$3iDp?1{jm3gOl#(PJ^ByQnx`MT z7^vkwG@4HunRpQJ%`GRS|NGbq=eqqv3GY;t{-{;Q5;}GU>oM!nRzSThil14%#62o;+tM_n>4X@RDOt|SswbHw6=5c(i$@Jx}=w5 zvf~q=*5>shmH4EUe}(;@{N~x12sWTOA3PXdk*N<-DSyGQ3gRziIHZ-lvGvZD*>@iB z2&>tB!(4VFwM;#@%^p6w(W6qH61m@XIl4NLYt*346nic8z5C|(_w>3NEmM}>+M!)f zdJokPLq3Z$(cw57l3`oJ&*(n0KDe(ZbE^@-uQ5oi75NW095 z$e#BCI4?JZQtJnB<$W-i(@D1bBBh-FL*x+aSg9U%=j$i`p*@bTjgf{kij%y9Yj(C_ zdi=+wfS3CzEYG_+H2eXLCC*`v6Lrtq@7uEoR!ypxDmaPDo;-=-R__tU8eHmZJgvi( zHQaezUtj93(ZbUnw9*IWO%QZ?E}<(RascR*w{1+l@}ev6lr=&lx2#0Z&1=B_1Rjb+ zjcJW<$CT&BMn6uDc*N1=3G327v&}JWbMAQ{8c{~y97$+iK~`^Bo?h>pH4}eLU0vUu zFw5aaT8@mPy>DoRg-;f0OER9>{WP zf0J{u+C8*;l$7A@IE15&HCqTi!^V@wTsdApZ?r}iE@+b?J<#8R31eJR?V>dX-4xZWlq|q zkD-1R^8>=U7Ip9bJfH{!HHcV6B)jkLy$!ViG(v`K5$AZW`3Vfh5Ctg>{6th+IOS3L( z2dH0#{oN!!tNzI&ICUI1eCXc0LGJ*4V1YwaP9Rl!#MR+}AkzWDgIA7;pWdmsl!UI{ zk@=4a|LUf)->?d)7~pADJ2W9`kYSX!cX^eMrt&i7nB`sf2XgEIFAij}7x>+{p_{Zw2jRHj@b56ud zK!2ajIC2z{_4v6RZ=Ky%$8A@nX8Y{7_4)5%;y0Z*qU;|e`F~(Irt14xV^i?gR-lqW z+UTXnJ4uDbcb{G&8P8&D#EhsWnLYevs4LCK>h#U{%;)0d@^VQ4!y*uYgJ`LxU~fSFP_Sn8~F7LODIHO6m}b`SC41;xVA&lkMH9 zjo-nYHP-eB&6 zbJa{WhmM>RN8LCc>r_6QuhkB5(CvStsKG@wzi;qXxqBvka$!j2c05$l=+hg%`6|ax zQ?my$GGf5w(d%ZW!&R0C?nq;c(YLSGKXne7+DoM8&mBwAn$A7@+Kg#?<{`;a`Q-4| zS9RvK`w5?U=h;^LRP+Oz0=SlJJ7MRa8T+5f=@(c2mp0y5>)a=^|Fz0a zHLEO}q0Cuj|BceswYkfYOW0$VPGgAryiJFhsiz9qr2pKtwO%Gu#5 zg|Ilo{_M`W7lCGSa~QeU#sSgJv#d8HpVrmb=X~+A(acUxqkWUr=}$~mJ|6V=B)o>| z^=nA5JH2)8?^%oL54}GD)RYg4KYNH5mnI~Y22C~g#tVhas75W#C)^H)j!DxI zn_AsxOdWb!JgusI>NyeSx`PNcCVjYR8(rp}rTC2)#a+CI@$gOlilS%3i%$7{eSAU0hMdR&j{D|TFuVRESi5%j@7LKHD|Ghx6W63}OXdbw`GerH z>74WHGWTG=o3sB3EMv`r?ia2}MCUd-;FbQ=OYfQqq_JwV;rK>tKk_rVPwqURmwcQ) z?xFY`HFx--XujEOFfm0Xbuv6|qBBpu_R*KwHI4^&s{Uq07EfAd3+4Sb5ZrrN^|{^S zTOJCMa$fKG*x+?*jH>DTcth=EF+i5K9C%?YlO=VujD+- zHC-)fI+&}gVUTMctnS#VSJU^6;z)hSg%j3U^8CF)6D{Ogc%aN2FcuX3>-a$Rc;Byb zN!A2MlWZ7p%PCpwvs34267yJC>st@-=fJkQ9GTdbur;nTDQt05KP7#zD*VBE?a0!H z&S&(l?{@B0m&-LG!_EzCc!m-QvF^V+L#!wNtF2MRo+Ux;HT4&QCf|uxANHKN{`m|W zNL=W@i?@lNL*Nls&QQa&>iaTdhe7nh2~YJn7z+jxtGe1|KWv!Dw^#R0N?L!MyLZKD zTL>S_+RUp*i))8?9Nub(H~XPK9m2Z%UoHJtMD zaI86cOP2EF@G?Ic<(&CgyYEb|UcwOaz%;ANNN=2lLHXE6Iku%1_+}5ZYIU#MqWz0D zCzc2Kmj6@nHdQIpP6#4g!kfUM&hYb=fcC#8pOXQ{(nuZSz0iXg{>w|w!d&g$x(D~| zu9{e`pUAz<9I-eMg-?A?dvxQDThj;XxH4go1==SRGbRuUo)`hPn0?mUjtN$rLU7g> z%NGR${|esOn`(tVy7LY*6_{PzJUc&WU0%0Jy{e({5t#0E@uDhFkQF&scq{E>b5(ta zY_8QAGI8^81UqjwwR)8~_s4{;_BcHrF%i3gWv19iy-n0kElbSL)qAf6Gb#IuT(u|F z2HpWT-G;gHu8qv}!UeJc9;?A)sPDT#bLo(hPPg$Gx`Eld@Bgfidpf#nTkE=f&o?sT z6~Mke6kN>Ijj?#qqa?%hv|Tm5x=SVTrb)<6)O&=V2uz4Yh9>G7S#P-s4m?hNoY?ZX zzjWh0y^wi7?gYvp(Nbyg@UehoqiWVfzO5TqEb85NfO^I>(rH`!Z_l46 zF;hogexEWc+H8L$@2!3^)eSMc!>a>rNPKRYJ1*I-b-@3}J~8wUh{?V1b};pnhiPoB zg8RgUsbrqb;}4IvW&~$P7?jJNW{#J?%GGg7@)|upvJ)VBDr|AK$Tr2oihj=g#dbL( zeh|{!41hT*@7#)b#YZPiu62lkOR>SPBF5wq0rU>Fp6~OYy>(;Mck@IhzS#U~N?oD{ zwDim|DAk5%*{W2RW9{!2K!-(Q&v26T)4&SMv?huI>*IlD#sU{ z`V&cwwDgk>UH}JaQc2fi?UEq5e-dqThDv!36($dL)w?u}zxUCXxU97njja@rtzb8; zYwz7;OXyIIJM{ee`8u87VW|4KA|%l2x2jni$tfKD$vyt=M$_ZNZIQbZp0t;=Hnfrh z?fRe9bHADXFgBW}S^T0N1)TDl^F%&YACFSkD2}q3mK9f+>g=e1mKCrYEQ#k@?R%LtY6!^zE=f};oir-G%0TyirStO%{|$-w|=A{ z>Z@8gtTpBJawC$B$uVos!*s~ASvX-g1?y;|EEWw~1@js{8-KCH59P-s^qrP86MBw= z<4Td+Y~lh`x;H!py@qhIgp<;6iRZl_-laaJl$*Ii{T$MQq{xaKx(gGJ+84Ru0iuS* zNA(0bqSvO%9k@iWwf9hEn^r?gpI;~sA_6^=?(MOmpmG%ceEPqjI)gqw--2D99b?zJ zEdFWsHB}4TlYUL^32MVMn~VPCGzD|7%t3&N1FjJJAHTe7YfCz8r znm=-S9c26Y!8px5qt$XhakW&*wNo8F?u%g~####T-DrkBJr-nv*j=FS$~_%8-mrN2 z`MtlP`^gkR%dmaK%SAbhU!V5(^X$xUnN^w^O&VX=cv&o`rOezb#)lT=d$hDLoae#K z``?pSoGkxxXvo<7FpbiHaen_$&6mAjb6Ea_lzw%kXk2e;t*_=#3z2k%N#A?M_FAKOXB}LwKaHHuzF?AA)0YdUa1XQy(4fg>bO*8 zu*!FG6-nCKI)m@i!u0Zr8EkLaCFC$w8I_4#DsQq`dkc4bP{U7WBw;MbaTWI7^-5qJ z{)(5?%SMmxxY0X2D`&9~sdsJ4F({hJPBEP*G#<~qAN@>{L#>WcW!%~oA1Fl=$LyHn zWDqNU(DJT9`CX5ljd=KL;nHYB&&luXZ3&`QB_h|pyS^_D?s#{^ZIg$J-2%{zi2p3s z{87Gz8Y>QM<`c^Yxr>E61zSw`{c2tZ$f7#PICmiG)Nf3y+hsO0~k}jq>92s2pQQwEAd>-8C@@ zLw*AmyC!1Xe;vt33{1D1Ul+YvRgzt3I{oLtf*H#E6&El+8LBcWe)&sHKL&{GTcUp3 zm_uc)^WAhxY|ZfJSy2S`!MoQy!PmaSa4ceyV6Ua!J-1=!_iC}n!OG9es~O`5U}mxkN=*Tysr*voviZsGaT{xTGlNa*B>Q~y77Xf$#YRIYJbn) zeHU39Z9mb|ycdtm!p~||O`IFp&0+TjCh2MykN89Y&UtMm5$4V;45`(k@tibSApapx z-ew)@KF6YfTMR+Fhb3?Nyg6ws-YGqOL*ElMUyS`JaP4ibj*tk{spVVDs0lha*t#>7 zEAxTF5l6@3@pb2CcONYYyf_v8=xx|PP{wKTK4$FMO9pRuVbTt71;Ye=P9WP}wxsg4 zdzoO485r>>LJUcY9nC%j9`HH0OkxmN#y<<6PR5tEo?FA#_tgHJ28h975SX1 zCn+=znKvz?6JGO}zPl~mwz@sskP|y^(2iLABgbh1QO<{1aLlGz(y!SmM}#>YyBUkV z77Mm`;G`Zhej#Z$jdI^iOm&(D`@3v)OM+=R&z|WQ@C(5@x_Rkh1uNDaR--vB4c?gv zbc`h}L7r`8H)T9~{8w)|P}%d_ZkeAgRE}9+Ow;#80#Q(E={Cqs>>BXe@J7AweaD+B zH}{QR(9WBjIUW}Cf8NS`!0G*9nqNbbNqpchtJ93i@rzayrpS<#^~tIIYR=p0YK#L) ziCQ=Hs`?p@3kD0hq8osfi($||q|C!X+zi~8`aWBZ0FQ@S^WLw_tbW6%|Lr$@veU9{ z6*5tK`myGp`nh1<1$)fAf?wEC&=BK;mnEMoXCFMipg%RC*Zv-VJanO)QWo84EgGL~ z{!~d>c`NT=9>dJ1TbkaM+Fo2zd>fz&Mb_OYjxwRK7OLb?ZjAVydr_+4%<%ct2PN zy2NI2?V7~^Zl-_qcI&lD=MKhO21b6yEL@TwVV4(!O#`kC$4$6ZNfYke(71u2@QFKl zcUaywTbXK$#~W(~U2hcwJ0%Pp-?DT&)k??JFWqodK%R5r&Gh)- z3hNJTvmOFAe?(h*`)z37uEOO3$Gp;h7{AEF`zw!YC|3jPCOf?@w~o|{4pis=j;kO} zXeB77VcNN%lZ}sM)5g!(rRl;MQulk_vJDF#yM;zhe$rtRM(+M(=zV3=cWH!m>;SrK zgyPXrci3qw2Ku=~O>ulQ^0w+Xot|Ivcf4@dg(RZB!G=mtypjgJpZ|17k=In*?6tT0 z$`RIv-7m9%0yi#)R~vHg)fhi6V08$*@WrTvcG%3cAGcC_Rsr0Ykv%6K?zp)(rSs3o4=XPtPs~g)9)+2 z^|vyr*&-X*G)trck1xw^3^#nA9S+T~7M#ht!Rj+H*IJfWq~AP@HAuPsyc-WRewr@} zJT^(1cg$q@RBrm!2VtH0c)_Gg9g=Lt#+EtokjXpjap*L!nPJIYChFDGh?WCKtq1S) zYhTk~5Mw4u`?aI-J3nKVPLdN;I7aSIM@Xz@p5WfR*>Jw;+kTTDG~t$<&5VsJMOPkKIF-rVcroTn?gb=HMr*Q}uR{*g?VVwkT=&zb z$7F3ZFVADo;4__zR=sFwZg=B?@Y>pF;s|-Xyf68E{sh6R_MaCG*R|EsjCmPMq$I`s zaVnit1TLg{C4|;x{mz|z5f_==Sj{7yJIYsoO*{Y^F_wKm z=t#6%Me6_IW7G3C{2?vYJGlr9o^vN1LbKGGOovK?SM6v=?^YLx4p+Nfs5pmabMKaM#-K%Z=(b znuf55%{Ncv8gar|T)BJv#o{GKYYA)ZzZo8456h>-cpGb_r1=eNj{W^)dj!KjpI5nR zMm?SRqBW0L6?*=X%;7!vfN#?!rYf^?QlM7->~>G1S(I?&=th<8jEiiKf+MywHnv#D zQlvE@KN4{LA;XKh%&;Zc-GQ`=B06ued7Ka=o)Z0mwnWGa%>lp6nz3}4= z9UjGCNRL`d)Pt?#1p~4<9u$L3`@lx2n$e~A82 zYF=O0cP7=P5z|Ma z2)=jRcUaG7p}rMiK`Ze|BeJ>%VN=f%)k+=)?npF;yA-OQ99+#Dr8=IMwfkAw^Otb( z7dR>MJe5?^Jur*L`n%r47Ozo0x+)gH_1moGS>wS>S>CZ{7eoI*4T;7|2IpXlRZJig zM^ye$`aseKT)<)8;&WUqPEkAfDARmhXOB<+*=w@+)_y3?MIn0en78Ad@-ksf!S&vw zV*l_H59F4V@yZjy{uP#NbanQFxO{X2gUd0`R}R{>B6Y2l-xl+J{k*fgWmUf2s{>QF z$p55Ms7Cf@BEb<~ig^3DeA-#W2Ie3rLzibtR0ng8A0M;#JFliRGZiM*>wDfXpu=il z^4zgQ&3;9%fuD1TK7)8N_ti-{SrXc$U)iF%QA};j)vf@W4VN!NrU1!6IC|{)FAnn2 zf>?ne>#or6h&U`+wZ{#P_tNqir?@6_5YBFk~Rug5WEp~oWW10#-p!HR;@aJWpe^A9dA{aTcH{Ee$9$+ zJcX?`+9M6-l`)5xDn7qPgub{x46h?`e^x9J?nEh>!1O)M(;sGUQ!Og0^XdVqT>+)v z80q%oqzX&vY4Lr`U-v47KQeBawi^yu^|FvL^a&2C$~V5W;r{(Rdw1uTgI2tPV|=#c znp*sydx0J4x_|2Ew=-bO4=Y=rxBht2@J^OO(U#4#p89#J<%?+I)6`g%u7<{V7EPMt z447gTjMj#mtmf6qyWM%4L^i!7s~+8hwr6ZP4_t-*B&rP@(o1LX>>TGFyFR00)SEcx z!uFP)s(sD$g;RJ%c#8BhA@7wO#j!-4RL_8k!V}nNa%ncReTz=+{a2jT&ZI9^eRL&# z>--vDT|KcV_{niEHeYd+zIyaTg04oN>*rm;RwD!BJ+f(wdh&=-y{4tm#w@xWkU1#edchw611Jlf|pExtDWBv0E*0-fzS5!6}Ag^5cxjD!O!>N2c&_|Q4()??Z%DLx(;Ok=6xovE*-{4p8 zYCm7GyjN#CU(z|MZU`-`WpCV@(8n5LRM3eDC>yVMI6P?3Fl+T5zn{#J@CSVbe^t@C zZ@XAxHTBo8MFD{cGW@!Uo(_TA#=@M;=$6(-KC#GjOM*h_0#8MqcBXcwh>MEvjQ{H5 zlL#^<#gfG1hIF?o=^S)ZMwFFw?G$Y0&K&KwrqXa{?NXfy31h-u#eC23k16>acKyc* zd?^Gw@5|<5j(k|ihwo^e*S&6CZejSA>DD?AWpYDJ$W-YqvwFq2+OR(}M_?X(x0h${ z7+J}x)4jIch!KDMeU__C|HT)(MuRDAcDLKFR4N{(5vy6UjsJZa(fzG!C344lii6`< zakzREJ%)XF$ch9R@-tJ+=Z{T!ej%#uBXRw&V+3wupU&dw=1j9M?AR zWBw(Xsp!tEW8r8ib`Yz7>b(D3Um}*8(qnM^ho-=`O#i0s42=rYT4!a;M{>!FdqtV? zjFqyBt)~1^W`dG`jFh|<^EikZC-q(s+gf!ae+O0iB$rgCQN7SpJ}BqY`t-V6|Fye` zf_8JN_X$JVP;#_zPQo0?d>c}RGmLiJ@X?`*VBjws*tf*rC4L3*FWRj3`$$ydp21RV zhb98v4h4^F+IMqZ^zp@Z2<{Rbb6~B#qrYSCY2hUA_|?zcP3-Bv@RL>JqIMgFznPc| zTQN1o??a>uuNPrryg5o&Oa-+1SHs984KP`1_Z`-9wO*WN~x=dUN%bs9;mqP7>z z(G`^vnvx|eoe!H>-TdcF@&-S#v3xdWr?dzzBX7S*lv{N=ajnB*zDvgcjZ8M?;<7w% z)%~8ltt>C~4W`k$yuoKDx-PF1XQ>mM zZxG`v^JgYGVZmJF2Y8lFm!95*MOGXyPs{NnCY9CnjE0hYGAkQK@!o_^=HL%P4*oHM zE-@=`Qfju7pE~-(l%Dq67EOWwI z=QTBz##e-4jQsxlB;%5ooek|tlh~x}^u_{jR z8RjH_4OvACBdL@7rQmD1jw}T4`mH^%Y8LyLu>~7kjgKOn=D%FHzaalKZ_cJZ`KsQo z?Cg2h>N6(#?gF#wNAKgyyDVqgWUgE~N7hn8Qm<0PBCGYD;2*2lSEOL@=dnyDgs9Gv zpNp0+*2cGF?nI56X}*7Yu}Z~!&qu35m?ig3v9)yd={NB>i|>TiQ7lQ?CZQW4-Okd6 z&+jxoXL5b#T07BW_{RV1@=j)Qn8dfO=6lX>^t5%{H1ySW%SLV9gum<+GIt-N>H85w z+3Q+9Ra}y)VNm@iFO~Mu&cuAvS z$w)?ARf6d|i_-VG>aaBA{x@-I#pUt-}ZmdsI{v^hUR`i^*LLA)a zmMqUIlrD_2X8APMqF1vYII8?*W5P|uo7^>R;OWSJ6532HzduE`rOY}R!KSw5=x=^? zWbo7KHKDOs_!9|Zl81GepR}KnP3b*jC2g@dp&rxM@+rHZPyWFzQ?15*1E0Y!t5^bK=tfx$bgR zr%*3GJzcjbDSY~sa*~}X{L%3(OS#?wbi;uc(lxP~k1|ZW3{}T?;_q)(h{!)xDKYwO z;P#y>?1PGY{jI4c&tJ#fqPVr|Xc#_RxaF`^q{4a$=msKJ5SO-6YXZQbV)(!#jMZ^Rnd=LGv;0A1S&kuLk+j zKKtVDG?C<&UZTtQDF*yVlZ)S{s76}69R0l!skKVo82PYzM`))njlyZt^-(UzxTDJa zy(nA>VoQd_De$`Gch_=3^|wONRz)ddi;5ZShp)48GMCL~dOD(qMHI^Ua!T*fI-bT- zDyuV4-X$~$gHM+CXdB5@;YS}|GTuI9$^DzFJkNM80g%WzhrKcn;n4c<)xZTyQ zjws?BMMxN#8xx*VYUw2nT_i-9pA9dm8P}ITnY=su=cIRpj;QcdO-x_OF^ptUI$qC< z#`l0j?OTh}8s=$fbYhxCp@P)&9&@g2hDryHpM8Q}1a4@;nqmRo{Y>xdE5voV<^>*3 zp{MX`iGH~4Srk%aQ`Iu1`>UVJ{T_)z!|nX9qs!+KB&sm#7a8hIRVwx~voxh!q>|?< zc4TEWrA*~Tww&blk)%_$fpqk58V zhHQuGFW2}fME%^hecMQylDYe><=$l5ewxrdxEJvbqI97g)A0}0fnR+Ot_N6R2=h!xZC%-4d&Sn zmJQk2^qS|}QjAN>zt-RYw#2S>{3(k?$kGi?Cs~@B=AT-i%dUL!{vjc$I{$s>#fJxFS9!KAG?OMvPE5?B zd-cgIqly1&b-#rjQaw^ zP*3PABQz1_=>c1+$DY~?!sS@ril zUD6v)f|j5A1wT>+Y0sa9HBP<|;OzdSaPoll`&iVuZeDsa_kfzpZo0q&D>mmDd-ppp z2OI1YG3@CXwj+}YuBTH$&OC^MmrOh+jyao9FyvQIE67O zPUm&>O~!k^bn(FlSTtJI(C1`gU;fyr$3~WH={ku#G29#3E9(g{4oDH2LeJDX?x%XM z1mqB3DY`vg+Bq?XtyHnBWiKvE>krc@STMRBc7)t~=k{_!py zQS|M<-_|)bLU;7_L~8onM9GclY^H)v=zM*!V^4wIrovcNbTk_ufoi8t1Y#fCo*%nqFsYU1Z#ZxwgWp>h)kW#i;t650Y zJDz@`POMNS&zdppW>vl;^^^f4|L5CjR@FiFtc>A@PrhH!q_B0+Yvigw)z@l$Cbf+p zt8e>Mf=&FrxT?*w4Vc0d&4Fx^65M;X{-pFM=^ae}<;mP64`vgr`q$A~V{?2CWodCO zACqiH(mjDyS+rgmsmZ6laa+vG=nw7}zRdcvW~gv`tiGH|GDkyqrk0@kO-7@~N_Vhi zYR5f8{YvXU4L!1%-KDo@JG~vcKUF#qNNXhxPJO>m&Ahw#m!Ww>{aSr}v*j5bsWP^P zl)@g-QyKGsCL=w{VLh$eKT+Lu(FIM|(uNukidM zYn*nlg%c7Y40^kWf1K~eusT`S{=QnxeZ-HO{cSsib%2V9C4{DuS@=cJoL|FK^Umir zGJ108(uLPg;;;gIXy>tXM#v$=c2E`j}0 z(^qTz-tl`gyKTX~A;@u&?TmiYn2xH8o>eJMU(GTTl@p~lr3I0HOW&2w7YEl;E}}}Y za&)reZg1fDE=7@aAhvZ>-bXzR!A!IzHC$nq`PA2i>De(CT1w$e#(3;FRi*WZT4uL? zcjwG~!9>mQw5a?-JJNO8t!!wENX6y*(&wk;Haa!L`PVyd7aU|oC*x(?4R_je_IB>` zzqrbOo9FsFMfaqbjCNy{+VStHrmx})xAF@st?zT=m1OsZ)x6g9z7ITn7ae^j-6$1h zswuw2q&fUgk;`}EQLXHXbh=x?{q7g$&xG=>>X?!cw%^C=DwM>t6ma4XC!P{Su5Pqx zy3L*z8TC1-3^Fd2tNKoB9e|&sRQ|2UscNiJka@zUWd6M?R!_jEvPN!^{7vS@g$MrW zt5OP*Zc*fH8+WnzRIfxj^Y3+x@9*^W2 z)ktDF?rA>c*6Q@LUk+to0*a-yrDa%+VWCnac@^PpM;-e1gwaD)yp7^toZa6Vm8;vB z8qSdj4y}xKd1hDn z*VMj{`s^an$fbq5#-ho0-TwO=CA%|krh1^W@I^_uTG{}Qn{}cjhWzUUDG@vtMRotD zg>8)wzK@z;lJs?OupMLPL{p^*yQVGJC*@J3JAeOmzajChyK?BN--wY+PodEkmjtfD zwzk{u#c@n?;fG8{_A2XfKcV9F)E%VgLQ_&j%7H;|0PVYSR~3`1`6iyYQ$hQ?L`Koc zPos3jN}UUh4CGcDW?#$1POT(K8J+&*l1P8}DeLu>%1O$wDq_|`*|9b$^WZ|`7jurq ztn+soB6|0e(VrVnGxYazlRx`D8<@P8G;-I!F4*Ek-%aGqpK_IYVATgU_&lvFa{X{A z>a63u`=vfd!q+;+qyaF!EI*a2kKI(8Al*UZVWGk0VNORg zc_f72mTF7sf<5YlD17uPh%@p8L!WpD(?kP&894SRIwI+j4!rCwAx4WV5qi~KiCdTM zd3K2CM@m7?cO_u{w4?lHZ#KoMQ#P^qRE01HNwcsh-fE!ZzSY2VW|6?0e^9ig*JbyK z!6rBuh#&*U_razBj``PRUDAOa4LBA98)Ux(Y;J-69@s2_4d{J(`IAz&Yn^(OuMOxv|=7qAAd)8%He=Fvof`Lc+Yq)6Bs2f7v zu^z+6owfq2y)ar2-PtaG65iA}N`si2wdJm^ik?Epowb$bv(1OWwP_u(2phF{tLGJc z5p#3*(WYigu*#dX$i*fUVF<}tTdFfr$9n9uMG+e8_NwScjHM;TxuCf@TgiP)MZNQi*I9E3qX!h)#9=Z;@5zMNy z9p|i^tO8p`Qeiu2Sb5YBaY^QgCL^mr8_cVw#p@#X?f|}|sfA{onn$u9tMe55TKOFf zJf+x{$|vAmBU(z4E!o*8GDmEa4|$Go{bE~57sGcwL6pU|xcl*B(U|%Lwisvs$kZ`- zHAi_6`DA*%fr)wAvoGeJtM*qAz9Ub-^>V zgnCy&_T>|Hi`lzd!hyq*CYxZ>Xb!`t4gU6%nhzIX9Fhj|*(37==2TqJsBSM@bL{?~*ZO z69J)!ifzUBnc0od+n5zNgHHiSryyEH5Lh63IcC?Gr=UlH_U@d>KNW0Y06ahvpCHh4 z9Wsh_18lOvJ_Z1C55RI4fXNAZbI_N89zuT_z`+c9Eig6*dO*JYR?wdUc%bu0a6IT!!m7@P~EH*c5&uT<-b}ZIH z6nV|U=w22(!rdetarNfxZq3*h)5CMUXmFjJitz#O>`2b0cj^hwvVq~{oYySoW3TV4gOP<0IJS>~PMWNM>Q}f?zVfxWhzYoQe#L^$Z8mBmr=~1v)nfBFqM0 z)V_ZSjx+x3x@xgus=ppT72K$hHl7hY%j6wQK33>?H zY0yJD43Il}wk}(pAF3Gq^6^V-nX=GE^x@whciBlP)2InH3l&5ycpBCip9gaK{^dO%6&6o$9ghy=os zzMesBQI0mq+har#kwrg2&{h_D0FNYu1$lcv!S~U`)eS!NdV(qTQ?3hsAz@3f59ysO z#6$qm;xHfs9Bh4nc_HUS^B^Vd0+o~n1POr1AqBzZ!UV^VsL!4UBp zM)>}^Y!w*opA+;jd3Oth;cHp-6h6vq6`0p{Y!$ebn*}iVwC9*2Vq3D5viVcO0i08U z9j$V=fW$?eO*eSjOB>VYIU5YKYOjDBPAg$Y=Ht%hh`l(bJQw7=U9baR)S$tnkhH_y z-^mgpq}wXMN4T)5V<<`3QSQ@c)zhB+(3r*a*Js9|g)C%*x%oD>!HCCffcMPdY~B@4Qg>_UFyp`|8g$Wy5h2}n9yy%Ib5sSf^SmDBqeNMO6Hp&Dg|@ey*8sn0wWW8_q^!V|8Bw4O zBJvtlL@e@bVPC6Kt_9}+3dlksr3K3yDm@@M8vx5&A1rSqNOc{cHqn4E0{Fy2oB>!N zQ$VcEK?eE;96|cK#0PjmsSs@7Cv+LlguuoLE(Eks3=r`eVDoaj$j3{V5ks}~0aj;I$0Z+MPVBUD?#s!>{aBzY&NwGWSPLq0R74l`@acoQ7%G>h?PuSmDj{Q}@;C%b>O;DL4) z?39iX(40Yt;k;e+5dPOm;#M2rKpW7bwg|9+SYJZ*c`N|s3T(YVyl}y$3BZ7ebOC_E z97JXr;DQ|}vHZ7qgbICYa17NO5Fo-}-xX|lU>{0e&_x|V|KFNp51vS3+2 zO9Lt!WuXcmFf$vlH3w|N;Cu%dV+Y~TPk$54`*@rJ5j8FZGfpk402QGf?f#_QEMePy zbxU~Ecs*vbl==!>bxa7||9LuVFy}a^i4D`eFnKk{84%=lvjoOjMX%vtn6a5v9T!xD zcCfP^A$qJz_3^t1PdkZQ{yOPJ!J>t~@%EF2=&{?m)q8_p+W|@y{>G~QP(*F^p(p{a zoeo|~jeF1-XpB>vv8dO}2+x$31vlo~2Wu$)*;C zgF?@ac%RwM=+=B(5exjU5I6Q>Qjsn8j@d~GZ>jzqzjKNwi9;IOrJty zd^~Q1U>mO|Jgc%ZBD#E<`#|!sz%4#48Dq z1%!YS5PRr_6;$KN0+vCs4g^Xk1F0EMJ%8}Z>d$8G7x)i`S=>KcxmWOA z1_?BOFCumHjpGqHg!?NXIKI+Aa6%Z;aoS5FV$e+IA1VbC_-#_{vq*y%R~OQNSYr(7 z=sa7w32@mzxjJy!-Q00_%IOF-BAy`~+hpdUhh&d0ktZ6mK4J_$eKI12*!BZ2q>rTm zv1%EN(AwG}C@}O-N0<=0(ja+x5`pAZ6OoJoOa%}P()D!Bl@WSqOA`+{gGG-1^xe{vh(O(!D~W`RT%xP(U|IEV`AdSZj!Tobdxhy%DE5jH%Rfdjqi=n46m zzVrlIdtJnv;CyND;%b)x{11UAkt6oCI*}u0dq+egX45Gse?q0fLduWm36^|ii{bN% zNFAg1l`Z8y2oJ2SEaC(WTDTAsE+BS*{=W=CLI^;z1Tg?w`P5*=qy48sj|1rgNSF+i zVxW>w6P)}1Rp%=ohNX|zPp=R?)L8b;zNh)8SFVy@HUx3AyPoE|7oAAtok~k5v?SWD zr^%|1UMxvm%;X=ns!p|6v0b&MRIDIZ96DZ6Gu5MC`yZU`o#mw5)uu(vCXCB7ThQJS zx?D{hc{`6o@L-RehIk$=cb$zbT=AZ$0fwKN?IVv+>yJv|idLcq=$|=+nA$oyM!v{1 zkI|N+f6=ggHZ|25JbOqtJa_8 z6=E9b41jF-aCIOXJ3>O`i*Utn;;E2LpS#Ob$Y!L|6|#ARD+t-d5o$m-RuW>&J4o0j z^H-!uz3FED*T9i+c}CLf&}@=_&HIc;Cb^n;NI6ZIH1j2{H0zP_vh1c-t|mTGPCs0R z`x1A7^N1P@dCCvNkaAUEN_%FQo7VEo7z{@tCSXd-a%g^Ff^TmoxB^YE?j!MCB1LEp z+6*rfpgH*Ru|m^5G&6=CbF;Gmn)O)d0`!<#L?z0m`jNLYxQB9@ z0F&3%XkeDaokSGD*<>_vmuC2z{JF%VM9IMnP$CR00AdklO^N&P(E#0S^3gn+T9{2_u#ujK$e;=e(CGCj`_P(KAuJzz!xR;js&5^YjP(7%(+jGEMc;}wBi}U1 zjr&cEVxpBl*7k!c62GTsM1E-_&%%)(De=FkgM;>wIdGu7$q!buj^+ULKK?~G1FFrw z0fGz~S!6-s_Y8$!ED8t{6n?L7@C%3VBf^9510;b^M7hb_L*ZwDax(%gvT!hPIgky& zuLW*smm3QhrHTLA7(7YU2wNEPBU^Yj@pUKz>AwQ7tV%|T!BCle4#jooF8ROrU`Qg@ z20Sm&l);o6#$mE z(gZu30oANVuo56xl}S;O@;=?H3L2flx_~h1Voi+)Bvs2me1Jyhu^`ID`I6Elfzex; z2-FpRVL_S_7e|^2*$!qR-q#~31(0$&l+Xh43=slTjH@9X#Fb_d67UYe{s_2qE8C2C zQ#m)TpOgz-npH@^F9fBaFEpz$JalcX&ahC7Q_C@f0eN9wVKcz>OB#XnX&`Ko;}ZAF z<4s3!a2USGbBU`i4+Ri>?>LAm#3ol%i;rrRQSEaSKCLKxPEq*mk)r@*Ljh`vVpb3e z&_q-#hjM#}a*IH@6@&J=*y@@9**Y4K8w*&kN$^??Af~dp0-oemxXfLkk?cnhJgFmW z03M}q8J0`j=j8wD_ZdB^Mr;6x)A-Vy;Newltz@uiAMldWP(P95-BgfgCgs3;Fbue$ zB}Xm|gBIuyyG5GWP&Wx{$OXhJzs6Cr3mnKePsJjH$mjn;9@ zKvGGq*O>^78evC3q*~!X<$}R7LCJd#NY0o=hBf7b9%jD%4 z3&842h%lIJ^!q9^`b}MVC|bOveq|suOu0<}t6@sN)_q1Hd}-E8+}B&h0!UPddr>V| z|6nzN0D{&V#iBh56jsbAtn^VV%0ZzNfI)g4HmYW!_U~jGNswnw;6;@zR!7(a z4`N}_gYBpk*SAlg7raYOlNQiPGqN3~*kf8vc*K#b1R{`v|3w!BEpB8EL}-KH%kwj$ z^e_fcBgh;xg9HR6EYof=h}2;2=t0|`5hnEENm*nRJBy^+gF2L4Gq>wL#!52d ztMH)8JN{C+NuhwP(8M869!6GO@y>|6L1pw)xrVy;PNft})Z^<@e;d}cG&Sv$bLs6s zSr@%6e_Aj`E~da!WCmgxu6BNg+2@wvYg`+P+o42f*-!o7M=DeqGi) zAq$wOs{c@IhNW_eh_fy8@fkX~`G(O3^@k*I-Z2K3$(*P9+5op2?I$N8L`$${(|^=V zlFB6|PPq&-t36tMar*=Rpa2Y)CD>hshA#2XIZ@-^Yjo(ah$u@t; zy)Ju3^e=cD9ymhOhI5H~1wTf}ZsMBYUWW!CP`itG&@K*u7SkC6DJSc~3^_CfBR?{V z-GWXnKn_mW;M6_?WCfi>TK~0mQXVW;0)xsB7j!*l7 z;a1cG+${6%Xoop2XdsS-T>6+G?iR^q*dXrW1CzlZsvp<3pzx2mZA0CJ8w^6hp+ym( zK+$MS1-Wrg!+_hbWCu*(<~z_33f$mp5|I5bHzoi=lyN04Ftp~O#J*ZGyCxNZ-2)EV zDRsn7n56ifGqn0U;EUH9go%({mPc@aSfIPW&NOH6+h{J?USd>YBk@oDqtA(;@Jc{2 ztwM()FAYV08j8FRYF9J_>^7rAsAWI^&ZD4mgzz8?g{(v&hi9D-wz!ZLbP5SOWW4mg zeFfhEHy1$=f}2w{lLC~`{LwDijET4a1P;Nioq=D`5e(oY%f1|Fv0cb6+5Vu*U|f@W zp(m^fisrc7| z2AVJbfoAA`geLg^2AU=CrtCEl)4$+35Pe5DJphQ$h3!nU8T||mv}mf(t+qTx+3$xNvC94MIKOTS*8)jV-MY)=YnV_A{u<%XUBm5jPwbhGeRG<16I0 z)1n8tof^|ZZm%loAvc+6d|*$KLkeNI>Mji#9=6=yT#7i?oDoU|ma4CB^z7tD&vxB! z^epE_&o2L?XTvvoCVQi2m;ceTjT=3a{U7yA{QpSLz@L-$1Mx7ywD69xn`P+dwsUm2G}d`gT2Tr7RL zX0%kPyJ9ibq^VL&%_?76%?{opl1X;$dZ7zk!B^QkCjli6QW5qboW2?^o*$!t_AVk|y{*=Cii2tOyN3=i&!ed^&>5pI`iD|o-y_{DGypDh=OFWK3J>j z@CL9-v%#CIkPsQ8G7HE}qoDF6fwaFC>y(OifCN+f4@ zK#L&;yCywBV+2px8q|Lno}t-%J5|c883vN%Dt?!1SQdPhxJ#Er1U6w&UGo)wP;*g$&L8N&P@YSS8kw(f(3@QSAcU@4V35`IJCR++cn$^)R z6lrXTP^6La7lVp`gQH~>X?ltNN78^lr9(0Oe_jM&LZlJ7bzk*4H^G*53xqkBUdjvLaD-;k#JhBUu!NaKnkP4x|F3~oph zbwiqNKpOClXqdV$iZre_r0KpPP1Fr(jQ>NLUpJ)TxgkyKe@N4PLmJ8((zO4Nqye9l z_&*`do&_Kc^V|O&X`*jPgZK|=dT&SrzN;7_4IM-phX0br?S?esH>9DvAx+E;X?kx+ z(|bdjl^fEyqDbR)LmJ5&($L?KCiaFjy(rQg+>pi>kftLPkj8^<6mZBdGunlg&-ah3 z##eK*gZY&MJW;d+Tt@u|%?znh=gs_}!0FGA<-A9S#yTuh`PPMn&-cug=PNmU^>^>k zoj>TTv9doN&S294nWx0i4+iyfkOPo;4a6i+a#9y=ARrr#U~vOYx+%wCDE^@2iV%{k zZPYF?v@puPNX|KBWH-Jj}plx*)k~%ZDEXa*t97;(_tkY0QE|?G% za!mo&L6LtRI43MlyDVaMFteH&)&*Z}>0cvuLSrS;s0?zE=JR!Pv&5UmNKj(ae=LTk zmYroxysTn&u)k^?#u?N=llNnJ>AO@tJ2dfeT;Da^|UQlGg%Ye+YB8)%| z&=mYXk~4Kk&dC0Ea@Ot!e=s3vBQkx}Jk(Rs!a6SEz+*F;VNH7a znlXyLeDbpDJ@VOp8#U#NIkon@x1oD5-}1{5yITZB26IOLh`9vLKhsEFrZsL=i$-L? zZRWlaNm|q-2P8%>8U{E}E)9J5b7^nHns{1^Y3p`}|2<{@!jr+e2LbmTo@8;j*cCN^`xZC%Xa{F=f$N-JZ3Cx3?MZ z*gO6l`bw@xv2q1|z@B{=FWI`sB6+PR(eUY2YTvkq@4Hy(;lB-c_exolM^~+>)sb2k zF!q7g)8eYAV@;RR$<>B#jtZu%CKBuOmy=(>uY(q!rm4B?8QK17E*5Yk5c~$?oA2LC zr%ks%e!FWC(%8auj{Lh*I#4x|XzEn9*!$g-gjY7jA?dql|C(sZo1(e{q+Zy8s=@)X z>$b#>(v`u)gwAxvqlo7o)qe6B8inU&A9R`tCl^Gu9{#9M5D-^4{nR%)&40IrFyqX> zB62-e{zs_x`AWkYk>y%%RK?^$#RIC+>MAc{%O&`Qc1`RW>2Imu#Llr=s(9m92}*-c z`DR%X=PYHwkC98LS!s@Iu8+-B=>5%o%+-?|%XL5?r0_59RkgBc@-JWH54*$m6ZC@@ zs=jq+CZ0~<&AJRkW1Yr3?%H$F;_KkXrur4M$N5&?|05Jqbp^H}85-xOy6Y|9esbH;rgK=1m$iFFHJ|HfZs8bR zGx|D?qv1XSM(9hDPyvTHm@3bf1wp%*yaw<3-o)V@{vKr+Wg{XZ`AGcwBg0!RnsG0J zkS9$CSf3W+0;KV%l90tuETnByzVC@E>0I}cJ|%tI^JV85&1puGD{pK{N=K56&i6Uq5B1RbQH6Iqpwj8mU zjDRo9r+2m|P!aZ;qKeM)IR0Z)QEKDS8)!___-YE%s}!!F9elS;^?t*fqJ_1Cw-2$7 z#kxNCtZPU`M6H<-P!AB->W|CQ89NQ_9}^5UC~$o>F8k1_NxMu^WbiY`?kgGXh2X=b z;_~Q_0UC!pfqtW2(SA8L%kuDnuS4c3@z$1i@#>9vXA~ZV&mPqd zG6hUB6CsYvemNGmJe#MFDz$xNv?SSY&gh>i)@O{;2@I%CRi&lNVxz8}sel9Am5)P2F zxUMECSW}wgGm1<<-Lx&JXA#MLuWoN6Az{&EpwKRuZ757B<1QY$(0Ene&ytcR{94Ji z#ckdvv{_2rsYK4Wo$ho`HDLv|+I)rMn!nb}s+;-vRGi^&HgdFbZX>`+iV#P1yK6Mf zVAX)qBZrV^R894C?{GGh zRDF@FljJ_l7JapgZE5p~`%9&`TkX$3HWJ${x_(Z4cz=yVypX#-Em^BwnlIl}Zq+JZ zo>!TSreyQ9P%FMB@*XK?#p0m0>!R#?t7tMu#z)qdJA$RRMwVWId$l{!U7u*I?6)pHu4#Xr!u0x`>+8P}>^-mE9SgE4 z{9}*qS#H`BAT*uGB6BL1%V8t>_mbua^KH%;eE9LLZSD*qcXgA!Ih~1)pC1|0MMcs@ z)41LzRVH4ZPFLf@K8WOAkDWc1VYX^dx3AJ3@U|Mx8yZLsFX~$V`SN+8?9;J=X<@q= zfo`UUyCrP=f4SA}Y0aLVc?(VbnKU;gbW?a!cfwn*h2y&UJU)!&M~CVc3Z2HGK+)Zd zz&4B9yZI+kOKs*Oy}f}fQCLI^Nqx*Y==YZMRw|oQ+4Q_h!YNCo(}fRD8Mn6{@8(=K zUF>${y=9GdV?DoE8>0?QKWM6oUcJx0knzbQa4B1Wp0YV>)Z0oSL}qy1>R&;?XRnlb z%@y#+r)$`btjNGu@Tr^ni(%JiYi+bVn!lz`uH1~?llGi2GgwF`QTkIeTjoa68~ivY zm(2Y`rjmEp0Uu^YnR7RhE)tVVc;r$%=gb=1|ixw;K1( zs4$tu2_oW;$jt{_tIBc=tBAy>E{9dmv)B(*ZBoDU|7v%8J@ebbuF1_QY1l~UvfN_D zPUwPG4V_0K~CVU zq?)tcCu!geevx}FG)zKd=J}i(&^JR4dkwp&8;jrw%IN2@imzk7`NN{vYmg=&#i%jM1sT$pBjI; zCsHtY%gSZ=P;qCZ>iKbGgKC`S3CrZp#FlmZmfocOt8HXe&H1u&dX2b3e8<@P;rP86 zbAP>m9xI16Kiz^JIghr!ey>TlT06PHi)pgZFy}MKHUHwH?47J|J~P(0oDtXeUwJq=6n<}R6(>-j4$CIe zn({8e+*#yZ2G}l}0aLP3q{-y1ME32UixK{(DKC!G%lovlMES+-$H&6xl9~h+#1H;0 zd}e7NL>@W%{T$ZVK5z(3U=?L{*th(2(Qf7~$G*lG?rOY9&GCB`*A|!m%+z8-_4BzN z(e#-jt5qZ>Z%qs>IpZC9-w2}@uUNa&Hs7asEUPdg+H1^}^N73x6S-cMdb-)CccYEuye*E6qh?@A_uRN(q zTTIErMS~vzK}8L!zggB6p69%kRr#CN|95=#jH=s)rMI=<>}MYGxEaA(`r~8AlIq33 zrlr1vHy)<`%N~O`J*1pVF~ZvAKFW*yjR6lm7?d{)cM5;)7aSc>iCw<&^FT&?7Do2Y zzSf|Y_4JsEpAxpae7|VnK@q&WO=5U@y#CGVOR7@L+{bs84ZXVmSTz0^&4|amel$p4 zw-C9w8Rxe*cv^DmCY^_L7&B&gzjS=nF|9-itCA|C=s))Op>-6v!Ft;1FTQIR+KlZ+ zmqSKrY-B#hm}F(>d?hKA&2X(Eoc&8`uF=3##w6!k-I-y+RG*RV>^%MN@oTN5#@(H# z8)Jt}R8=}@wC}sBjEhq&Q@+U8e_3Q7S9I9vkWDP^{`@1Xyv>fFu+>zV&1jU(yY#SP z;m$_u-8jux4344_HtTIk7V4hy>OCO}kpU$Owqk7YN4SC_w3F`BhwMkz|J*aFx?2!w zyt?&CJBfB>SK3M$wW8S#qUUXS->&RZf_JU=aUP22O$+yC>X~+1QRaC1i^VgimQekF z0AE0$zu{Ts%tq}b4?(o^;LGxlFTY5{V=LXPBr&(k8jEdTXzt`lqPkB`MBV;7109Mu zVKeyug{qJK`G&&(FO2!$x!Z^@w?AXdm)Xx5hyUtX!+wiZy2J{-iU*&bQ>a^Y*8>@2&q!>b-gQ4kI0wv}V-YoEX!q_ZY4NMtbQFcEg8m^QxGE{mHnSH1;RCEx0~^DNl2K{_s%w zdj6_UwDv7x?Q=9no>SeUgHL}HBl}c*Kv;$NX*^8iS}EV6m}+df+ht}f(4LJXUBPMV z4CdGDW`(ymCXJzIQmmWjZ%;9{yy7`YZC)y#oD{Z9bnH{jN3NaLu(}&%MeYx;$W40q zs7gmD(Qxu>NqP{c9F?~vNoPuRO%s2*K_50l{O$(B@mTd?>ap7XR&rd5bNYY=qr1Ug z*OlgU`X&~i(MP;BMZCtoXKiX4yq_4YEd$?&6h2TY+AiB`C8zs#U0VIWLj8^x`qXb9 zX)v7k3N#LCuTRYT2mhM>j5KGXR=>2j3A(D!bTUXKm0P4LxBI<5&TtWpUJB{1Wx?i=S%s_m{sfSKV}J(t2^zvvOS7 zbw+nCm%V2+thBacV`9G1F<(KTQu;-yyeo&=9jho3DRGH^$YM-r}fN<;;8koy3O@liGUGgoB z+O;y+?PP2(kuC(Ki=L4CAp5UJ$#Ewn=sYOhr#dCo*{-0!$Kau!AhjY4#4J zb0Nay{HW)aghk>323WxrVPkinTs(_e>Q zO}=ke$3ORi{`^$*JguYGeyE%kTbl{bjpOLMgr_T5tyB_EuVX^wPGP#0&uE!q#qKc$ zANr!(y4iGBcYCYxU0re?v~4qx7nFW}>WS2I`;k2<@18ccrm;VMEOlJ&^Rhvm_KaIe z=YgeHC-`yXtt5VkOP{3v8uo$e{w!`%lqHyG9@&K{)>W>GuxJi;nqf_pBTcXYWDhaL z>e%e6pcrb(b?@k8I126Ww5INtJ0D9Ow|KolpZT0J`Tx^sc&~O(DtUXF*z&%9kC-FA z5)Ts}ggzppElG~v8kRd+p^Y^{)yzrvYxtn0;maL;&b`yMvbcEq!?2luUvtL!jCHo8 zXF73=%08|3DN1|k`>J!z&#m$%SMQ|K#FoLyeNKgE5;UsBv(hxPNe^J&OG z?`h?q=l-JDh`g8L99;8^k?g%Qy?xzc%|0#eg&yk6_f&oJfpUP$e=mj3<;ygC_gN1c zoC#liAcf9lMvC)`Xn%v+_2+k0?RvCcZdcX2YMzl^rr-E*q<^iXn3?i~Do18fbHnGv~rq#=sA5PZGD2wvb>*T`7Cp^(ck91|{5nrvB>j>}B$#F(|mf+%& z!vgdQzxbV(dOXxUntB~veXr42nf|2Q+z;MK(!;EJL5_P>6{pds6kVBEKRaGZsaM5X zYgeVM*xJWg>4KKjCDeQ0lY#e^( z(`o11kjB)sWW8i$e|Mj8J)DgLRuc}cvZ7^8I{{{ z?=iG*L*Hrs7)ryVa~ice0_lE>?s3xHZ|Sr}>^$@StEtD_)h|jsCls`>pF1@u0gBAzJc5Z@^Y=p zHk;r-={q6@ey6onq0W((xa4lgyH|HlTbQ`BZgF==Dw1}|a+!A<-C<|o4!eUd=?;~& z^CdkY_g;27Ycpu{YD|q>GAQM?QKR3tvA*%QnY<%nzBcj1b7em*t7HV1uutRN9YOzI zlXqCmw^zJeNw$BUNwy)7(zL@K@mVwM5#1ephTv`|`$Osey-g_J6Sq?n%JKzwfzl^= zahH#nFE_c1%3d>&4+^vyYt_D2OahME%UdL)Up2eUNit{p^poq7b(=}!aL+x`I26x$ zOLNzd3&RmTHiJtkY|@C#};;9wo^Jm?x08dVkpK#omnf5W=IY3zO?&A4%FGP3uH!dHGyLXMjMMymVidp4#W|37HY0EG%9 zYoD=GnF}ggygIpG>l9VlUfn*OE^Xe*)beP@T6qd?X^PM1)HZ-$Y&>>*!LJ`b79MqM zG#X>4D&l)nI7uG9JS4|G9Zqo`i>8sk?T;JP_w5VDnyrI zb$c$^V8};xM{c;+Pk<9NGt#{suh{v2d))tj3gIWV>tt+=QBS-hX(fLD5ko&IP2co?$Y@Q0%}b>xv8Gs8_i;8G z@^Wg~a>=8q;~ra^I?j=%Ov|$dXQY2TY25E;rwBj4THYy>*V?P^NnQ7aik$HBHjN6s z;=jRb_g|^5`%~Dvoco&Lnyj49tK_OK+@@a-WnCUk$!niWSBChKT!tlG8BacvVl7qA z{qt(Ib6@qg#YxiJ79;uI*jZcyy>3x>Y1;QpMAK>-&+lzj>7CgM;m;R*1wsiszMQU7 zsAdUMt&T0OOFTjU7_)bPP&P)$pzs{hry}ZNs9Ce*dkiUThKEcVvxH1l*mMt>G4>a- zD6Bv3I}kpNNy2&J7+Il%yOLpSUd7JjqD0KqCDICu>>of40=N z^~v!X%j&v^l4QL9fER<}ycj5#|9{Dkx}Q_<Cxa9LY1$OwFZ|&V__Bqgpo>KA8k7KqTYQgITwnNSI*EdepajbWy&Oona zNxen^(^=Nv)Zj40wu1E(=gwbm_MJf)2S^!nBzc^rzC@q>VwOGp*JJnRnvl5j6WgD` zyEKi;K2@`faPJnQwQ<|V)Urq6N@Lmg6nd5m9eGn-D)}{$=Jgj-++j=-EnD<=7%uUL z&Dthq&yeR(D&ae*Nm{3kw|gcjHJ6v z3Z670Au|*P(%aPZyrjLmsegpV&GuJ~#?74Ny1vrslb~h4V56)Ixcyc2T_!m-(uKPF zbSd!|>EV>o;zzRmmrzzPTWppA9c!D8n&&pf%=46L%Ir`9z*FIHFqLm&y7i+{V<(q< z?wE57I>JC*nzP~5XVToCu1+2I&Z9>1AKqW9oUV)`JkxfS48@`cFliE&STkbcj z^=qEA+Lh-?iYS%jUn-tEOs_DUE1o(`Z{j{r92^hp&qvk!87qgix`%X;ue+sY%2Vcw zT59YVwm!Wgo5laW51m#?Ogp#W7Ar~DrDE++r3KlnrCGJ|dk}NQB}4Vi)$Fkc?oZld zmA*#jTHPvtojX$AnSd|t(^U7wF~5{J45Wn)$IL<@wP5TxvT3 z&(s9n>+Vg-vm)y2(WkY1 z`D6p5u*GcZ`#rGC2UGZ1!G1hCDX~W9-`B@pG4mGv-Ef(m&XWU#Db~27X2xg#kSb>} zUgvDiLtD~)ljI|EVn_G-z0N8v?Q?ji0O`PpRDc zgsckv@H#+SU(mg0Y?!Tyqq4M& z$V^<<4iqwp&ba(b+JrnIOZ{G2mioQ4px;g=kZjIo=-!$d`J|yfMnn7Xpw5O+EpJq- zUur!7@;7MnuPsXG0p7gLNDp9FjcQ^MNuI(G+4SJdrE;yKo>8xl zc6#YzfW%h$y*HL~wpcnu^9DrK14(bhoVZ+GaQ8fI;6t|fe&hXV+&xBX5NwRX=Oosk zgAetw2JNa%-ls`NH1eFdJ|cWC?mwT_+F#y&Q;PRa{+wVj)1_nrDAi+;X{#qrEff4J} zwtsHr8cKS6Kwbnb?1%zIb(Ua}@gz1dezivDub=4qA;a};bBVtnZY)c@@?g@wr&^lr zf+@cF(PI3WOMaq&+UHO`j*u6!>(7ycN|Wk=f2Fy#&?xpxjR2Ad5ji{ zH?NJ`kXK6jzqPveLhn}Y*Vh`@o6-TW^{m9a-?*kPd8sP(UVp;lY5a@sH(GZZsQwwM z`fpg2O8>D)=?8y(3Oj*{<%T{YkO>c*nW!WBKp!+NxhXXr`|e74-y2ZXv8gf@9Sdud z<%_fbXgsb4-Y(PJ^_L`F_DMI(aqlL_T^p3+UP_MpT+xp|^q1uE&`SG2<9OA02pQQJ zCS9HXZ{KF2y>!I&+LtlZa>5Md{f|S*a)R=1NXQ^gc{k)1gE-}_jj}^Y{e9_;#(cQ; z4|*L#?)5a+W-B)F;~=x;Q6hvFftn6FVB-VUbn?ro7QR?NC* zvTft{O)PKp52+R0+h~mE{+Z9Mo63Tg{UhYw<_WnQJz@wlh6-gl7NVf{K2?rAR0i*s ziy6sEiA|_utqNJ|JYwS~NQL75#)D9bx~4&6$A(*n-`%X0BgG>0<%ee|c2r}6`uzm? z{&|&=6`=B-!wRD_>iH>jNO#|@=kKP4@K0VN^9$;$z^71O3UEG}ZBuEm23XaY9b5+3 zH35nqE7(0+`DB8m4lDdrW=Th4BqTpt29B0>@MYb6k>Kty@0-fcXB$*5?_o2x1Mf+S z?|IB77T02;m$B#v+Z)*bq<#-w)26y-p@l4D3N&?QSlqU_{Gfd=9PMNy;yjf_FCR5F zJvT^7@~j>C_xQr3TJ|N5>e6d;vHeY+h5{1o## zN*9{NYd&T@)Jzt{nLK)pbf|5K^O*eB6c$ZVzFGwfJ!v7o7k}aD(m-gTsD8o~bb8n) zWJ=u`b$ACBN4+_mYbfc=*&ZLdka~E@&8&BCU}3ewTpK-NX|BnLTp>)iHT`7f^CGiY zs4&&aXGAV!ValreSze^57I=Ri>mJ$OV6KhC%n^cxr5?fe$~YThCkx7K$%uD@>Rl=t zAqvZX3Px>9hO-9kWeTGHT>S&<|DjTUaoecn4?mowvngXELn$KaSi(f-fs5Hc{k>U{ z{=w)_U#4(5J1W<5reWk?`mp@$$9=!jyj3+%azdu>J17G5Kp0JgCOGBywm*@`8OeGk zGKBBt4~-8Wd5xI(uNMz}z`rxIRLtHheaNY$bnZN{h>19SRH0PuOBDAHQu%no!+n6% zIJ)~>Xp$^|xlLJFwuPp-;km*ST`D<*X~Foi`;x|>bN0y8khIjy-9hb ziy|N0(TdBo_wBmxt`ySQSo&7fSov&BJNSk7ru+8FKOa=tMa#W{@30h9p;uJr7_93T z1-1JDJL|@NTS*TGd^gjqoDa^U0Fy6=L&S58eJuM^1oZ1W$~@(dvd~liu^iQB-kwV=kBG__s?83 z*Zwh6`u-UO()Z8sw@`fl6O$?F9!d30Cf72S_x97$e3MCc|I~IH*-D(&=lv5o6iTJ% zp9a_I>UO<8?@iaRb=$h8rj6Hb+t zRa+NJ(Z?$>$H_5r_I>jpq4B$__p#Y<5pnPIqts@N{jZ$&|^N zOg_~o=Nh5^7E^j(mU~voZx()aRDI4fO3m74Qao~>)#<|Z2|tysB*lMRqdBX_6J*{h z>#?3blBhS>Z6{S$sQh3l{I|VGv(R2Djy#F_ttYvSv@VF0{=OeFd6*Q`epy>i2+?zE9!U;mSxGuXIQ1_)KlQ zJoj(-ox%EjbwOg%cjRKycfYNf^dGb+>-XJ8-&oVHebA>|m&ShP>E(t#8(&Q`-za*xTAon9jp^TLiB;OfEghQgYiPckaQ(`}cN1c*repkWLUK7L-;^k4%Q2Tj zOVxZoBWc|U@>11*o=i&43GugroXJmz)7L?==<6W;*m+`#)f2pp1!RUM+alIlVX{?g z-1Y3$@<*dKAFtMZ>I%zhlim?uJ}3D+ulk^$_QJa)oY zrT;!(!D6HD|BX_8|4%C4qb>ipO8J2m>C3Ob!RY&cqg3DjlgjUD(Ukx3Zj&kHcR5MF znpEZxRhg&fq0BYfGFRx!O!KDRbvMhK*)*NaX0CKMh$}+*G!nW_PJ4qYE$kb0uB{kQ znKYo-_`&yPjGn;q+2w(8%B56pzDEon)s7hhdqqB`-os9(<0Nh!Qu;IdIwi%5&Y#)W z!TY*HzINW%6Z7TLwcaoxBSA)g>5fmbw(nx17pYv?)U80gWA;|H%cc;9p8 zajN${P29obFqA*otr^Ojo8;;D(iQ2xUu#r;WQ6AZ&^aSf{w><_=Qio&O%h;EnJurH z8x!N4!Ure{{s)cT0o`$j;k~_Mdl(a~c0rP#l$7sJSEbDtot+}zWml%n=e%5>kM^%Z z&PE%=yb-$l*JJr!K%&1l-E7d`cjRgKxjP^IZQiBn?{9acmhbCHRvh)ubn^Ygn^Vd6 zqU#nq=Pius-l%llLHdt8^(id4%UUWn-7Z^A6~#2~(kgn8t7P%JRGg;>;+M{n<>-D& z7FGK3@${!D>7TelPXF=Ii2hin^%bnFHQM9sQ5RwepYDwM*by! ze}&=qjMV2keS4l&@?JTs&-YhToIj|T3ZEKYuz1hw@~vMLsXR=BWE6<`*#E1pLEw&rac|Zt!(hcc&G@GM?7$pAyN%5smIoTUKDH&1CRif7~vM>M5W$-ht2VmQt=#E1zL__r>ZDc~td# z=u2>Pmp{d-oxcm?tr#33gY;lH$0OdDldK2U)1zD#rRsk+TDW@p9<8f?Qr{$W*z%|1 z4Eq*?PJHQuG&*T%c#5G9`fjh}TrB?KgH-zZSmo*T717D*>zhCpm!m#7mi{S9+dqyS zu1V?i;ju~=7pDF*<)rJsX=(cJ67p%hr7bNzbI6OLr0rPfvG>7muq&f2b^n4_U%j8U zJz&xs?;i_4!LIw?PhB5)bxXSX6ebzR9UFftZ2wRE`QW|2`SZei$G{&*|4b;+eOu|6 z=bPYirlYs-`JOMHn3a|myIAzC=6zvZd=Y0OVakz}vi)q*pR}wNBqD(;+<*l zV4im&}&m!H>1eE$Da``F?j&6mP{>E=tW;T_=mSw{E&*5v#DLh1hhMeY6n z^RjAV#cZvI*J3IC%j#ztT zGh!pFPK*A5){?z^$w8>Zmu*D-*Y>)>}b=Qc>EbQ_*{Z7d)ZWmo8d@@?Hi=)7`^bb1>ZGVy4 zq(0BHF<&M%oAIrm_$paq&$p`WvFPno@o^Ro|4)xN_qjwrvABMXZLBudU(cy^cqQ~v zjOy_6{>7K65w5BC8zYwKUxs$<iELz{Xm*)LQ(G|HP1W1i!QC`xDG< zjQ7QpnwRD9O_6Wq?^n+^NA?v@`ofnfO#8wbadKZ%q1XOZd4D$kP)~witeq{cJQHkx z*(6>*OKv~sJdKWS3rBMuG*-Vp#~lAI7q!ZsX30sgMSO*NY?rbSwDhwDvTc&ujc%i= z9-wN^I|#kH945>4<=?+fx1`{YKK={DqcPqbMDkPfB3Ug{(IHZU=12C+ zOD$7D0&Ph&>1*DTCq4V^#5<98Hk&d%;=UK8MB?keHkkrf7yLUgv%pH@yInc&q9cWJ z=Uj2BR0#h$ll_)ji+3*1;cUZMw?EIy;G(QuvpsWZCnXkT!O1E&7(MD8cISX#^k?sg z$ng??gVC7R9vLL%z2XJ=LW9j|OVYc=QoZlItE+baH-hq>^@4PM*Hyjx%y`vVRF@-? zE2aNoBhnjGr={}>xxOZ)#L-jqnF}Xfz9Tu$B1&?Lx?nR~W z3T?Rbo%`{<0!@aJGKv+%pxue9$w%Z!*Lh@PQOGFEG;$C_n>xx{yysd?JNSg(tdE|Bde4pxU9RU=M= z@p(bQ_+0vsIsZF*;HvyX?7toCzb{)RW9?~~j0FmBW3oiS+pH$vdBI|ncgVtm*m!Zg zbQ#SW!&@Sbg#}{U`KXJ^Gqcd(M3bZH*;8pW<+e<=7NE9VVI*JP&X?~NO7<3)h>j{U zPj*yYN6FmcDpQU7K+G-T!Tte`&F%w2dD|*$9t$N94EF}3iySNedNN#vsz$IL$M@50 zu41?7Ef7kay-hY>-mI8U#7EEn1>0wP6(jwQlhF{t%=Yf`_OZM8_O2&rRKnkbMXX@d zv6a|S^^a3brlzZ`W;x*2EY^1VL7p3nt+BJjVvi&VTBt``SnA?t?MjCU7?fMdLnh5cNF7Y?=G8fXerSvUYwxy-jkAOT|?WUhR#eKo!K&- zd~cl6%Pvz!$G^cF|>A`tcR;ANZBG0_9}*1~N3xJDdG`f%lTgUF`1y zNA*%PZf|ip8@2x)5HGJ&U0$b9!pgI;(15>loHvL4dx4{RBFnj|ytAhKfMdJ+b(Ec9 zH`lmdcWmE@ItcBQXGHZJIwUfx9992fe60G=QMJ-6O&tqeUA2#G;#--lJ8`Pjarbl7 zCycMK60Ey<;OgYn{RC5d@UjJ2Np-()PclvoQJ7V0Jz zEIKy3j3t%x1XMfaJ%)%U9yqEO6r>uB8zudL zwkMt_=wm!~U99Z|Z^17$9x(tc)B_6#i&qwa+~6(?+n~CZoIpgfjjB~%NU@6k1?NdE zecMmygT8DXeGi`S-(N_7r!1ryU6<$6O8A;d*>H#1lG%4sd=$(3p^CmQj_-rMu@`CS z+jRVYmwzXz`KM#h6Upo0@qM-bx*6K`9~|`y@u#dkMkR}ZqAPv<8?5p7RU0fd8FH|N zZ7xE&NZPKx_Vcqx^|_zld7)}QA28|{+|LW9lGKNbR2$^zz#T`ej_SMmK?3b!_}z-)ttfI;wn93eE0LlOk5!PD<*s?g&JQRV4>%?9QW1rjTQ&jZ79|hCqms zg^mN#e#vS**PF}!E%y$T@_I9wAd>0ZK*css8`F&>j%qqVD_y(MLT23EJBpZ4jR)%Z zrX%Z3KR)Ala92%vBgLH0V$^|KC~%rCa5Dv7tP6aV0zJCGO%ym+7x)SVF3<(OOo4yU z1-?XqoG!3|0&mg<{*?l~y1*AH@OGj#OGoPq3ay%6sOm9E{X+%4Mlo`DyBxki7ao?w zJ-YDqrbIuh!)xVmYSU|3O1O8KLQx{Ems9#f6*fod4po>->0wpa=?Z^TVR;H8Rqd&6 z$uq@=VKFdr)aEr;CCr3J^ z$Z1Q>Y|0Ns>}G?kW=C}tqxV&V$P7pIK16OZDwoyz24Y{)$6gzpwAAES{TIZ(Y?POk zyaKT=nY_7jtUVs<^8G2`Z(#FGj_I#7$m+W^;Qy;pmIB{|fd56K7_;xVfd2)Pw@{85 z6OVCv^ZCO~-&=xTpTHjqew!s3m;Li2Huu|Y*5fW*K~Hv?9QUkbM{%~9ns$S+X6GQthDJzPG<4+W0m_rShP4cx3N_v_?1+?Qo6)f zUk;{1mt}ZgMOdst>RjdSR9ev4bsHm}7AQ6z4&wz9I>0-s zYy{XIa9hmeJ>Ic-axAdS95eZbuy!7u8T0mcY@W)3EG+i#qy}OM%uRerd)He-<$Z)5 z0cmIK3JRfR*4g_e3%D_Z1uPpPr(i>+nbzy;hs4+GYlD6#8zX3xu{eM95lTTAqoq^0;Q7%g+G>>Ug(g=b{8O=;UVgK;pA zP0owCw+Zee6WvkYIH5cmvX(>Hi+5H$jE&;n3#6@D(%W3c>T0?sYGzr4vV$y{Knj%H zaU=NryC}>@VWHe=20R>?jE$Oq^y#(Pn@5I^}$>lmB!3lK;=w z$^W?!Os1#>lm9EJ|0+cw={I#%$+nvQQ=2U&5=~;{sT)@5(jZ#ymd`$2*Qtin31s%_ zKVtIb9cnU}GT4D=01Ih!Qo5EQbUvWQI;y@h>E&z}r0i#t&WbcP)AmrydD(ZW zK@6e(VWk~v3r(}ILvu-Z*1`dzI9NIoQ%9V@hWDXeQeWgcmA=?ISeYNOk|Xg^#>O|* zG+xNhF#pJUIJhjs%9>*FW>_!fePMiGNaln-PqDBd!*2eGBz|v(ax7hOR2r@=j0cuw z88$x3_{#q{=Cc}`PGYV%Ded7uRm;ss2lb)vyJ(V1YW|d^E^d*!KC0^asIKdyx~`8V zcYQSVFpbO2nN#_HvQfIqy=_cujiu|Jfi%8)-Gize)sGC6S2VV%J~1#!;kVWlU*ELn zgn@n0`@4xMdcSl25{L22RVso|9P%j|LOSeElYnO<(RwOqFH>pejI3$^+jyu$#7IXZD%yJ zs<);G?AU#zlMr1-N%GnqxcTD~AdK z{LTuHSSo~3B(m`3>x7bZz0+oyZQhdVm_K8DER?&05{8y}+T=6G1V`2V1Ct9Mq&=}P z`W&0f4jkG^<$E_Uq2P2!_3NgD@JXC=RLvOppEUEvcr&H`lbbp>=&v{Vvsl+iy<8v4 zeGHAB=3(5cm-Xs}j;hZG^nD!>Z*x6L9Y7s^r^ytt*7E-P>ew>R3O@qwyl|qw{>~{< z&y#3Ky5s<^R3y>q#sSBmoA!H0U>Gpotz+^`V-E3d{s8FPpaLI>+W@vd3T1)4yPRwk zWZ*!}m$Xs?9n}$2D!tu{Nn28vUAraO(%P zZd#O-&GqKx*)8t%xln7eA2~@KU~#Wcp}!UTAA|n(H)reU@BiPVpBk&y-_9fHs~^Z5 zz2m9tVBg!yLw|W-iH(8dyXn0hioy@3~*&=f09KU zveCT1`|T`AIk7ahz)|%a16_1Jk@}wowQ7-<1gi=v`BSydAD`35es|pj)hd4|`xm^= z8{YLsChqh86M8Pq?t`93&r;EI+Am2@Uf19Ifu1BuL`#BT(~>YyCPA@JRw#M@Ocf>N zw*NjQWeO!Dx=!vFm!JBiXKU86(Gwf5q9>H~3(|93SE=>b>4{_>8$G{K(?dh~7o%rn zSI~0o^o%@4dVXK1qKAg^FGf#(*DD#vPS4DK$41Y+zfsXM>X)P^r|TQ@vC~6)?6J_Z z;|vu&CDvb%p8j1!)bz03%H^mY!-7_o9|-Jft10hvY~D4|z0I-m84G<|$9E*=i;^BE zzaKWus<5N_-zHP?*2VT$EcWY@I^|kRpXZam{#w-^=UM){!dC`*WWLfPSyNY)bh4u< ziCY(ENJr6K8II~3zL4+vwbD5X_Y38F9GfknX?f;}?snfzfr&Bib+~}|mG`PZ(Usl> zlKq8uNT6teZ)9Mpd7Sqm_U{GWsgVIlH_lreD7wHq0n#)(5?L4vm{{$VV(;*d?E0rk zzSCe*_TNaayVQJ#q&rU8_ZyS?{(G~w?*}LYa@q=;JRe{G#;Mmo(|><{&4XbK8zt>EBPPT8Z_iPSVh7Xx8I2@XO&-gk zJ?)cSx1xQTMbqq|vtXjeI$+!g{&!@(e?en^lKYFuUX-+-kuw?x(4W&}`-aHzxZjBk zXBdVL0~_s%{eudIr4Op#-c{astI4UEVs47sYNljpd_3?a452KyW<ucep(-7>06v7wm>ndjdB3bJ;^Cmf3xS!04`qguctMdCF18<{ZA{NX$~) zx}09W-9Urg_i;ra9EI;B{xlEC-N&WA&vjtr6I~|*?MG*`8-4wM5zC3d?A_q`p z2}RO-Vp6Qdo#)tW<4dC2?77JP5#M%7l(l~BPQGmi?sA$w`i^vyQCm~Zz^SbMTlw+f z&^6u3{wi#wUF4+a(fu~z9N{vX`Ja4=*z7)FZgzje27Nbw&A}FTw4cg^v#fi3nEzC< zP$iCCly3`Mm4CGBtqjr^PV|YsQ&@41%@^jcDmjqdI@%ogQ~pugh51x0X=lrh2=0Tz z1V&lr^k6jKv2u9^?k?8nXWQ6*Ue7B;w%)>-#qiSwyr#>oThIq zD}Ex4?wwA-&mt$9r%HHvkFJ*Q68mww%08ooo>jIeOD>Npd!8;Z_cg*|m(dfLWHI}c z#whiD-&Jjv$A_Ghl6kXq&HBFUN))Ec-NX8<_d>hNm)$%$$JBK$8Ss_ZdMD?b9aX<( zplhBP^g6arH#c?K%)3I~voaW2_YSA)(enp-`v=a?byR1YiGS1e32EJPRCP-?G>mh_ z-r6IM>JCZO-nG}HEjrko5we~&(Jd~%mL;E97WKKV@8=0*+bqTI=#puIKN_fd3nl_hME%3f#zK_QSDxn9{193|4>W8y9Ro!lKPxGf4y5Y>ga8`mE-R$Y62N zaOM4cHcCx`Ph`W`QGGeRX+-2#pZYUtHwp$d&8xlI@2S(;UE-{M%bORd$p3d>Mt%m* z_O4v|_<}o+pJIz3Tza;?Wr}3{JOy`Vi8r2DkL1UEd2GogS3Z17nJv54M4Di?6RtG* zLU{qr;@h0UMY(JdVl`Vz@_2eZ^Q`J#$LhyPP(#M~5(xqda^k+5hISdy0;PN~+<*RT>{J1h%8|j}- z^iKo*vyuL(r+?PaKkMnA2kD<$`W}m;>UO%b^KW9mD)FmsUk zp76d-OIa@4w8tLi%Q|RKE~opE;`01E2cnF8-q$YpJ6U2TzLw`RX=v<^bQkLH;Qf1< zs9Id!=BU1mY^Z!4#lCh&6>(Hrn;)fTEn!%~WoP|i7$s)qTBuIl#p@iwal_;e zZWOFr1z$aH-Of4|zt^ze=)LmY#a}M^yvsC9TAxwlJXRa%vlky-sUBH-4Si?+ zXDyz{XTi*3iB-Juc5ubDE@L*Iq4Z&i-BRN0dJgu(61#$vw$cLT+Z3F%ogVq| z7YOsL!iB83?iOnuO@wTq{P?apZG`{1Yc^U1Be`Z(Wkbm_4>9;)ss| zscyzD-ug0%wIORBxk8t3nmFl|B?F4>uP|;~Ul|*XIBQvrtQms!2|1&mWqdv6?k09v zCc1auYGHj>?Cy5lH3gG(H@ICe@tnn{$>+xcq0}l&Wy6Oxy+LaF%aGJq%86$!`a&pc zA6J$y3TdxX+D*ppjATpvA4fB@TX1)GJ(7$5Ve@LUg)NqCkVVfM0$DVFRQ&rFJ{EsG zU*64%Z^OZ}MDXt|_P6_vm)p}pldFmzdJ}xPY?SlmdyBvDekb_b9h-;KtpiGDbE94G zwH8^=bW|T8W1W(2-{#2VTDh1#(wHL9KV69w4n4OA+@@>WK zj+LLXote?&V~g6|PWGS8HPOB8)*rfd{6w+~Y8grNO7;9MxgJS~{1u4IW3{n0=RV4rtvo|9?jTZ5fhI3xsKrP|D_ddKFh z(6lTw?`{jcL1B!9Uu#IP4#ItCa{D7rw4e90Q$!ZqW0+JC#JXVd6)=fy&)kr^$0LrG zY+7n|vP6Ne*(MY`V#^AmVm4^j_gWvYFedoe%zZfK%@M2*M}|q`&D|ccOYOr146;3r zw>~U~ur-#gmlJ~Y+s_)d(khMb!045Sl##q`g&$IZqq>a_PvzmR)(o^*Rr3fe6|Cld zRP%7Ebg;61N>y({)f=@{Z%R}>dgV{lQRQLpSXS|>VMpKg7C1KVWKq4=l~$jVVJBg# zFlhDmRDI~n)ru>T9O?Y`Icu`SJt?z|9qyO^+|N-xh??z&w#vQ75zNS-ZIE~Ouw@XI zK<=LZkG%JfkE*yDhxfKZq8izaO;V(4TNEfn<$b}DE(}8 z3XoWq9-7O^XWvq3G$-hk%DXbV>}Nu66R@HYJ`=VNJmb2DIulySuM|ed9w=X z@X9U1G*H#dmwM{!wuD!IpV{9p&(fvTcFINg+WX)rJUY~2>fJq{-H)bneLc!=Krc}A zB&<}vhi(wa;!nU!1-=wLDc3d#Eh-BqFaOrUq9<0R%MsM0q$gHdUNurUamsNnO>gx8 z0y8<(O!h~cNvag=@Qvr6m7FK!s=D4rLtNg0)>9W=ohO>;IB zw68JC&OVZI=i??g5W=I>HdNyFIJ=npE`j0@d;kE2GjTZ9HYnwN!o&Jb0uOB6Y4kTJ zwRHux3hE(4sK3s49DWaP|G;uhjJm zks}>7yV_2lBaHqD1y!BC6jGnZf?_le-tHq zHcdY{CH8s;=G>8?(F>Hts!l&BahY{jr2EG7{!RdaNhtU~8DbK`6~g{wP*BbgD4|wO zdU7))qr}Vv1nu>IIfhGmSl$G0hMc_{kKu^v&|5HYw6&R#S-#nLtA+8lHetN2rGq9g z-nxe!Z~i(DTX7a2Z~kK-W$Kq$lE&NXe7vpY;|j*ZdUcdkHUFON z?ORGs2u+=w{Hd4ZRUJ^Z%Enp6G;Oq~4LwN9JMq3t7yMHD~kj z)M%1U78zG%1a_E1rTAgRCxsQe?e%CHsJk4mg%IN@^cbb2*@I2|!I#mv%+&A*VjfOy zBeJIpyg(rL!_;W>XEqY2&RK53)ka6#{8Ntbwb0LvrDo|ARJ*Y59y4fl&Gs!jp~odq z$L0{An#qmyuT#rR7M>(jGjrf`V{n%rbc>F*1*aS!=J8N(-Muk~&(>BJvxRSp`~Q|7 zgJ0nYoViXsNb5MOKxfX>k`#XvXfW~D+F#1jui^!yUo9%62G{&8iNc}PGfkkA_kOP* z&(;dhqAL?vRNG$$PQ4+4Q?EfK!w;PL)v%meTUW_S$8t_ZtEj#HTw@ZauIHS31LstK zbGZ2bEPJ*~O?<4M_TKyE(8vV3JCQ(QeoPw4t7d-9D86t^d=&dqkS^hLZX@2Df{Wo{ zM)QCF-yO|oAlKMW#bCb41iWTeM|1GtnhO{6QQcV8*KjVZUvb}WzL5{}-h-dS=i@$@ z+}{3#z_iUb8QSKX3cd4B#OZq)aNjuy8sXk#QURNLGfqK~m8efiy{kV-(x>$HeyHDg z7{&ic^C;-y06QDRfPh|V?7jFC5nn2CvL5$|ezLZFA|~tllYL0wqo4`c>p#P1XXnB~ zC-YlDEwFD-3FpG1e-SM87Z&UQRiT#Iw=al=Gx++v)4shdR!6%kMiM<8il3p*VTF3^ z+f&2YRM6S!PXlEGGlx@f8M!?rUPx$l_TUPrymzu$C>dk9-ea#H3n^iT*xx2B3X}(N zAHZb_X*u@#k7>!G;?Aqj(c!LPkV+WLPr|#Fq0Wf+y4ts!)%XD_?tX>^(4Gb*Q-{Hw z&L+JWMoN-Sr4moqenGhuqMBKS5u9lf3Lc|&R5gGR_5j{j*M-%-x+bjeAC78b{|HQZ z{~)#tv~~u^K={fi1C=--;=D&BplWoRTBTg7$@s!LDusHzkdVb2HjYm z6W1;N?792eons{Z=DAg@rB&9v7~h>^VF7J_;kX`(bh?z@U%bx3CW1I74U)dR%u z{WeB7uYDRsbT2(U2+Y0p6hg_+?*~0|JB8xES$~f-u1OsjYcD;}Vv@_F1;_1yFh9D~ zXedgt*T0D9kG2P26LX6*8pl51jDmh`Z+MXxs9T+VYLwp!D&WjqNftC24ris+-U{1QTu&aKoQ(+?bq&$2fBFhvQBha@jGN^w4k%*3XZQY+v6rE z1u7K(r2OXa6nQ{xheK`04kArOw4f@wVn_TUj>NmsG5n)LNtLlA(l!vuS#?=#a#+A))l;&J6UG7ueVy^Q43yH7Au~eK6+TFe-=d-$nId!hsY>Xo&?wQ^667ahe zv_XpAZz)h{@TJFQvWn5P*V1n0p$GL52m|+mw9kmuIM@u4sf@PS>b{>d7`Qi+uEok^ znWOPqtW1OEK$IA-b6wxBDTr&8wLOUA=nfQ13vUJr(5oxtY@!QT*wy_*q&c>-HSjfX zGUgvsZSYFxrde6-bm5N?+l*zf2s?Ei5BC}LLJAK+7rX;MhVWN}p(9n6BGCnX;wcou z0&-|I{8G@_eH9qhQ=G%a`z;9~ItUQFjUv$J`XBJC43gvNQY_DFIk{PLrMT;yEuq#} z1Cf|N!|lz$R=hk-e{q;v9=m9aL2Tp4{G+^MF>mY!vS+*4^||qQpA?JLpQT>3tH$&7 zkxNv_`JgN0Z$i#z#T3v6djCNWk@kIwlyZU(G`$dO$OCMe1S{54AjNol-0YnbLn=mq z{xmEQx%f2no8os?BW`Y%{h7Yi`BZ{xJ%#a0?)Y7dNsVje7Z zMV@NE)5YG6%{Jf#v?s3B$JpidKZ`z5h8A49@$ixg0gN$w!$(8>o{YV2gCQOl8wqgj zbRM>`&Esarju8)d*sqpSqT71|BJs*pXmdQ~Y?TAc<%n|aZZ<|dwz?}ltb-8)R5G`K z!4~lckN3L>>~;XAuYcdPc>R-4iu%W^^?R{Mfv8{1AyqhsVA01!(RL*Z2_jcSJuJx6 zHey1ho9(5+V69|-rSPkgAl=LS3REeXii(OlE`o|i?4MhY3hDdjr&!{Ni<0{%p}c-< zs9=6NS{u>G9V-z`&J4{Zo?LEJi}^C^c3WN5K-qa(n%@DSY7vy}BJMAc ze3zLXmQ4@q=pez07!uHGL|Dxi8is>oRN=g-mGO-nFn3?5%BvCJ ztk%JqJVbDAOGM`n2q*u-Gs`1Z-vd1aCB{LCH%Jyw(bhi+gKzl$J)Y3NZz6#0Q_j%8 z>-r2Zsd{5}oDmBBcn{9`sp=i(b^!5r1aa>anh(?*E|(^cn9mZQ5a`{W`2GW9!h4`^ zI!(qr#Jd*o9V5FK{_QaDpg;We8a13NhPHoMed~ zTP13wb*}1MW;r^76l|=H^_(egb(DoBh<|s2|WR+iY@}WE<+>uv|98eSl|-*e~tQj<4w+Y1r-w zm3PSH5$L4cCHhWE(K<;fvuz~YY8>9WpQl>cx0Z;I{k+GvUY*oqfqSh+e;QXq(O=$7 zH=zpCb-Uy3l4x0A0Ck!_4AlpVF105!JsAx1ZhK z7+o)C3ay7R9fLd;8rp5nn1SXnH`~UQC;)eb3a*^MJ&EAfM~4I#5KblT>XJ}Zvzt8{ zqwYsIZg%`?6bsuDb&|XV{Qwr+sO6G|0II6W znHirB>7@}vKEqh2pfQj}J8isnf5TJzhZ4qc9gDx8#$QuU=bNtz$Q`~u3Vl~;URejqE1WRT0S0xi{ zu{C~2pjElS7AK#L2985g7#ouhoVn_VVp)Agfzhx?mv*T~s%Ho{(TTbBKT*GPiAIqh= zNY|)p_W|~`b{o2C(Wtn^CRZHm`pL0_RmT)3JVa$@KY3W)bV_B*(LjqFphfjrEOZXi zbG&v(;5UTzn|&%QoUbq7u;v0RAnIE~+8ut^(xt5J&KEcfKCk1@O`-BlDu-_4pSNpK1di%b8s~MZ~~6H9v741V;Feo^uo;t6GWX0 z3s0rOz)tN6<5_3VU|Hq->I%M|k0rpk9$_3kJ8>}~&g{{#yh9)8Z6P;f_RUGzhgm;d zcqC!{@B=Ki=Ik@9A8^c6Sb^90Lh;si=NCppu(>uBI%BXCqn{k3gC5QZuPG3*tXdnJ z9P|O?Cdl1yGK6o!eGjTLZQICcl*594=*lfk~*{ zKxZsx+)4*a1SFg8EoB)y@CB6*J6Ii+I7_v#t2DhGTicYKbWgg2cjO&)Y1SlS-Tg%Z zPdtdlmuBmhY037fyWZ0G$-|icyzFmcpHj&yQd%fCPV%;i09_Atyja$7qdIyK+{ z61H?ux8@jwUge1XlL+o%iouA@Gq$=Z^V9DR>DT9!>-O<{eXeQ}y1P(x_B8KmVV2A* zQ_Yh5k7>Z50Z${W-0?&(RUUAA+RevQ5o>dMe~;OYpGE$|(d6|n$Su+)PIV{P(_X|f ze?5yDY+`qmkQl>*P}<~G9@R}=c;`j@ey0lSGWPQysdkwP+cFjqZ>^zulT0p_d!?}V zRAOEa>)-~%HtDirH|7t`yA0UlRh}A>Cbi8=F&aGVs{I;{Sy<4!1+koTmbSi6xcXaN zFXjUBZed~Wc>_fGBls(>6AQ98R15P_@f51C$&d8CfoqsdkR0ny8UVl=%WL?@mVgf9 zhGl#+EaO!+emJHsgz6V^OCeJ5b;K=@rO%GNikF$NoD!jMPGR z%s&;^3D2I7H!)?nn62cr>*3<|2tJF%Z4z!))y9$B5ja7-vxDScrkbNoGQm{775W91 zTA!&%#P6kbv#WRN$IjbW{F%(tSlw@>dyV9PUywf9z{Kz;?U zAfX`CbV@dG+~}J~`!PnKDBgBu3G_^||3UhNa+L%h{U70gQuq5Nlf_afykC1Q6{@(e z#mpj}dMCh@4*-1oM(I)e!_D>0zVm2A+*B-X0@rOkfMN?Hq2kcuyW8Ve+a01Kjp|zX zO(Q>RMw@I(ZDxDWHKg+2)!NfS@g$h`7ChfZzxSBd{j}d45N`1%BW-bqVfWLRAc758}b)={6sMDX?-I;$dytb+9 z^&4?99>m{GHaU1L{CE8ke-A!VM9=(t5mj1(@D5Bym7&|x1APoy!^i;Ex)I3) z7`9hUyqXfJ3ii61h(x5-^p6Tj5OQjp6i#W}Y9ca&+8*yF(D0s_F_dUm`rnsF+hJ<( zK2GyQHZvBBc_K+b-AVJ614#2>SzJIdB+UnoVFlEcoo5tKd|wdT(H^}0jRa=B;|kit zdqcN}r?tojPwItIq1BWTOUt3U;adls{)X6be6JLl9ABa5oA6I-bw<(ftyV~2Wkah! zDdnxk`S%lSb)TJ&?_pZ*+|SK>o3SoY6?0j{W+kG_$A3Zct|PUCb{*f)?>ffmg)Kr+ zl-V+5TsOp+hra=u*#gZufM#s-gK>&!IRDq> z$vDq?Pwf`Z+&D9yM4T%yY^H{Cy+Bzz3x4|b^fQw7bai%=@{R<3#*_>2zZ#XeKgbsD zOI)|>%7+FL%BNxZ&7+c3cuoHY{q|YXZ+T(Y-h{P=0}J0ZYFPbW>}A|mJJc+%** zNcCSb^R|@mb&Q9NKTLp?8!(%{N2fRbNAn!r&+1_>wg?-EnB3NVXXMGPEO7G5HE)kJ zzoD&H?P_IKa1+oZR8{9jCDuVV=vtZWO42!K?(wh-dsN+N;gxZ2I2#GJz@}wn=a3&y zWQcP_d>?=W`uT^ou0rF)6fB&M5myK3^N}IdKEcblIYzK9;}adb=L$44+xmut{dxNp z9Fw!yum1*Vb0kvlXCT;@GE^mH{c6E`LZ@M~pcE}MXC5LzY}FOR`3ofM2Ljvd)Yt}I znsKrFWqehH_K`xYw=jeDGlto}BKwlWzC9b-o2`piBVw(T)f5a170BU<4u(jfk z2HH$`dV6MgrhI}TMz@&^rFco{AOJFfQl=R2Snga&SmJJ#7hr*QvxBtrKAq1I*}m;B z<2hendLUx*mG{y$3uRE-wArd<@f$HSUGdsJQ!_D!m&*falI&D1HJx7zrW3&!VF1(# zFrBjLR;A38Xrq)=<`3h1Ld5zmyU$AZ3vny@Fzc(Y@AlQ7lPp(dMj3Ydyfm=@`|R7_ zXaUCSYj;LzKgk(&@v23gols4+QI%0ql2MszeM_*ueR#O7A`-u}TH6CsDjZ}Fi}KB% z5ny`vCBVE6Vb)m_>;Zwk>7K7QK%aiyGikXMhvbUBP(`O)(I2YVCs!OhST;u(-tN3c zy{!6RS&2xiQqwvQmMs)%S6!pqA+xbZ^Z9F=GEQx^oT9jG+RJV=Gzo^X1tU`ac9ThG8K1D{4HB?=f>Z1lpCgNa&~?$^6vb}$a?dq zqA`5_bj=vvPj_8vcCzK%jpbRF8x+&O@6{Uyet?8e#h|P3ncYwOaZjuCPbfFPQ!6*t z?Y#=iy_2G?r>Xb?wYXX@w^!k}WdPxq?Ls^tR z%>B@s{jD#-{^m!pvr|rAZ*qT-*KF(3tbta8^@cX2AD$Nx{z51ECxxd{-0yx(fh+#9eGK1o!&J1Wp+J=XjeR zM;pysL$Po=e?Ha1r=ynq=ItH#rCIs6q+Fv)K5D+-s-)m;$*F1Sy%r2;vvaWHJX7xpe!rYXDy%@6Df=T@!CI>_ z9=IxR$6XT&zNkG5%fVE0K}v@73ppix7N+fAB~s=QX-gi}$w*5+iVd z{wn*U`OW!zL$-hL)7H_#SCCl#1%cX#!IuiZM*oGe7m>c4>X$V`4~&V;`bRuz-%*VZ zFBA2%=Y@TsG;m_f$_jC;C~)^U9UU6(!+y}{zme$Qr_$d|HE8?GpCl-a4`4-QP*L@T zY~CfRa}`TFg_ocw#EavI%AEw|uYDSnF)F&JOsfB--@zn4ABw7l7{4W;0jS@RFrEp( zHq)^FL`mk{104wp_&Jum&!kCz{hh}y_P4DG`t^FuToKQ#gAeH49*C1^*85s5h~G0< zFh`G{Dr-d9yL4r<-%r5sk65gp*OIm! zdcwzJT-uDsujn8oBJxoOVwbyVSr0$r3xpHdNDW|kt)NkW=#?Jt_nKhrQr|cu9F1oJDk1zk0VB^uE7V}5lH`f>iIo_|2q=ObV`BN zh*L|*M*AOG=(v{r2wKUwp(j5U9I!w10A_jwZ6@*~oe1hn)v`i%F1HfI5@=ab==(CZ z{Y`FJIs7gB%oEjNU%FXsTBc}P4*PUFu2eI8CSa@B+6mCq8?dQnXsYpuk<4~^hl2xa zg9%o>T48G0{l1s$tDgNBAAf5JXiVtMGS zo1!h@^pLb(BB!hKrl?MNH5rQZDEGu$@m0I@7;Sa#)WC@SB$&--KLrST@y8R}j~0-d zq=GMf+0}+vjU!f*UCAnl0UXK-knU%J;wVgS2A{QZ13tt$)J-9Ej~N(u40E0@B#E4b zkT*PyJ#Lyj6lgYYq~{K~M3PIa8-Dp)cqz4Qc#!@b8-7jynH%cpKYK$1{pZLX?IpRy z8YPqY-&FoLo&U|?f3x`C9R63t|4K+YGpKbVV%%=QN5dN#vc2k8tN3b-e>Jg9{HxdXRw}GP{;2H)@i?jOuN5m+E>^~{-{tb& zX;sAt?;mr#f4sQW#oj%iPe40lShn4VNphJZ)QFn`^5RUnEL$$i2{oe0S6-amejh%N zOm$~-zebQ#^oWy3S$2DgjlSZOgU;QRWk>Oi3bmK<{w?GETgLmhjQ4LD@82@szh%6C z%Xt5m@%}|NQ%bCInUx;pGRX?Bfo50=-N6sUxamWn+3I39ore)pm8wJfc$o2+m8u`u zhtQwhmO2>j2g=dsOSN?|zSk5ezU6*c3al9?Dlh5XlcL1~;e7uJ**jEQM;mdp3Kx1E zEpzlvZ@6QkzO@H&uZ{!cO2PcbErI^rL zD+Si(TI>(uA<}^bxmMosiLkL~VkU%f9soKCpWlv%@k20wi&Z5V>e`oX>dV_i=8`(Uc%{| z%9yW^sB91Z65jI-v2hBdi)eX=qCQ?eqX>S>F)Ba?rQFOeKqY0t`>WPKH3Sy z-y^SQ(=-2`O}l~!JM_px{TAca^Y|9yNMH`GKMG8#B<~MP-JSU{<^wIJa-_{g`%8Rt zF*pZ4v-PMky^fDDd+=r4p8Dy_Lovk>H~|aj-_gDIX+UF*s{xK2%teGZBU~UevG!RC zCAv5VyV!+k)L+Eb4v(7Z&{A`KGeikw<`SOnK{lS1mdwWI^Az5*{!lw1j!g-tg9OjM zn?xpWgTej~@`g45?GN?ia^GJk4-lG8F~W8PKA6At7HZXErE)SVNP7bBPl61b%=V48rvD6JE)U7v9-OCbh?i(jMTwi} z*V4Z3wed~#8?~IvwN3PS#9FuLHlKe$&wM}IOV4v?mmGUwOA6m9+aW(PFaAj!ur-t}P2VSRk_$`4GMqerIJb#iSbQOhTX;L_bxZ_yFH=mc$sGoWc zWlW@Dyy0T3J8-Ov?*Ca9{6WUK`q6oy7f0v3x??5wp!o#iMnb?I95{|IocZf};lIz&Z{s!(87?Nr-)6bkz45m>F7}fN+Jq@jByKFTZN$k* zDRXRmkp43_{+j-?H`dXA&c+7%2PM{~ZnpFJQA~R_Z!@CzXezEB#W$J>h04V`BAV|Z zO?WVjE%-0-8QN9C{scLI`zbZbCq)P8GwqhlV4C&zR#4I`26!?W673fZ&y|SEa#5nQ z??>W$Q5X`qlCRZ4mwJlUz@xdvv0lXERvYo7gsGR77`Xi;@8Odo2)p>a7dV;bOA4GE z;~N{ETuuIJD8|C05uW-6%L5W?bN&SC8IHJc7TJeHlPAl|bJ^BG+;XFnF*nEk*sIgn zm72dVzK>zw(%!X&8A({uEflj{I+%k}cc+I+vkOXXzH`G~01>!1*X%oA1%#J!y93QIpdS~dZvP6yTSR8!4w}44ol##`!Uz7;cT8+N%A%AAKoHWWu0v}D1J3%`L z%?k31mTdNoMWgw&ehFELrk^#kQvqgwsc5uP?uex!Ojvb0tr+|Hi3CT3j)XfmXdi3c zNowl1)cvfKZJPD^9M<(mG>WA8$H-kEDCGm7z$i|e{STQ6@%=2-{{r1E#(RXr#pB#p zLAY7;3MnLbC&~VHZPqujzg?O&qWx`L*8dCp8}3%`&HQ)lZ(_wiHa43~1i0Kc{xxB_ z51%Cd$;kfoX2M$E9-D3DpG@p+_;mXD1?awD^J?n_menv%`Xd;eSHqTs&WJm{#bDB?_%Z`AQ=`%pkF&3 zvLhson}Qy$^fj*&t*x3xSKU7$S2|^^YDdUIog;J~rjpvRZU-3?vQYIPy@Qkv7|k0W zM`d7QJ^Z$W(_20?xxIDJj%q9WVn}xn5Ly#SjhTqh@>*L?nhL4V3JaS8I*;)njvcGZ zyMY(pOj|TIgvY)bBV478Un*HxH?7k1I`A@<$x+v`O7@Ev1XZyL_CDn23;7+>vS{Jn zmA6NJOQz>(mdANYi#!US3J%odD8MJ92xg1Cli#|6gK|f~ffYw(f+-W)>)MD2v&lG6 zjF=?Y)R2x`f65|YJLHa*h{=LhlY-V7libQ%>>DeZ+RU5!7H((Jml6E$^P69N>bGkA za9O&qq?oR0`6@2^oYqEb<8ou8%iQ2-beS4l#)gIFhUKRCJfn_r7>WIEX674Q)eeuF z?cXEBg?()*g}Dn~=wZL5(JxioyoL*)=J_DBfA-oC9wNo_5*CUulyDCcw@Fu7V>8)` zpHg>WUd0?X$>wUbcm9>17ibF%#eBD65H7#7+7xmQxjd|5k1*zfq*-hCu)jV9Dj8u? zA`jHn4qf1%P*)o}&!6dG&*3KuZ!|@X2a0}U=Wt;qw}J{U$^Bught)w&xlRso|T7WrdSggjKeP*9(=VhGzYh+<%tCN@MlKs(;%8huPODRik^! zG6W`dy4VG;Ql-IW-LkVI1D44jkUPVR)p%(|n+n&X9XT^Li=NzU z^AoDC+*r4_2g}}YQj6C`F6yt~k(e+3G`Pq3_I#+(?6eiMuGoxqvw5TA4p5vg%dMoN z1n!m$K5vtfxvuW=OZ+!CE;H7hxWhN5?!-!eVY}s7km1Fs>0FtA5ac&ul(QZGW3!&{ z&YKKK{AoL(RTe0E!r<=(nH~b^+!UL&&btslzkGt)R}v^%XYfCkIG;%kTo za(i!_OlRHMZeUvAydV3`Ef=K2LpeTV!ovc5IG1*0Xb=1QSiz-Fij5p#!vFH#iAm?g zlYF;?uS0%mG)phqw>OssA{VV%7@HidgM8jiXoJcpe)4X`=PBN8_;;>6;BCf-EbsI9 zHyYkwzz2&L3F2l~aK^7IH28n3JI|O2{m+JGfkc1t379S|eYmnh?RyCZy^7%qsLw^0 z%gl}P5HD@Pf!b=)?wdHUT-zuV{+ zsl#4aiENx5n~n5f^N$mf?C=S4MmDgo)^jy`whS8ZHmC-`uj9yV-2Ggd6^8ZRt(3*v z!oPl>e}xabI2ztI{$UaS;9)I=n#;kGD!wDz^joC*QT_qrANa}ID0%TiY&QO~QWHnz zFXQOaBBIl!w^25jv2Sk_0ay^L*z6AYWpmaGy^tb&nf%iNA4KJ>XP?785S&l&soKKw z)uQ;$E;yUV)A(VJI+nzsr?_s+FcZ4_W)PL}-v35)Ug+1;`S2j8^UC9b&Y{OSsuL0M zN;jL!iCS&&un&kvR-zHn!^JK$a#H+mEM26!lwIhhCRB=sU-@`q!_(ysn9$k6?D!ET zuKTbl{2T(PW8c3OZ2)?IWfJQfcB5s-vJ)*k7WN$Ufro8N6CD^ReiLcn8y%aC59|u@ zVd9YBvAECy}DttW&d&wlDT^fm)+eq-i(?1pUk#fdy51yKiZv0LJ>_Yv%j*lc`Y z-%mr+%{~IyiE8^Ogdl><8ap>S;BDj6&*29I8p`A!IyTzyEpbk@@+oVu3I(J+h}XCl z&PH7AfmC`%{O$Lj#Cc?X6lUBp3SLAd8+$*|?%&>F-?Dez3B146e}UY}bu_$NO772t zndT8R#+KWRXZOCw{gc+6Ku4vOb6QwBOc~2yE=obuHOzQb(Hf9Hiu8mmJ&Bh9t~k~{ zpRRY3ufRGB!mF`9tz1|f7-*-DN{W^_P#ZNuPuGIf=sh2*uXHgx7h~j%3bVvQP?vI) z^5|7`@7R+r5b>;!dn!Z45tv^wy1q@B^+fOcLxjJaulFg^@q)en7r0=s9IEHGscM6_ zX9|VDa37;#&fdV7@6=y~)L%7c$7U+#*bH_LuQAXn@eeCLQnH9oI;L5$f)-{nS~Bm4 zge-jBfFL$v#tK>&Lv0`M+Wz?^)y5GaQC#+Dq8(sj1V=7mVhlXf5Xf=Tz@av{d1f=nuGx>HFRg&B-Hm0~`e zDA5Qj7(&uP8DFG+k+TqG-Py=^d>if$8g*4WKnZlQKYS76>!&e+9S-^W2nIbY?Uy^k z<|bS^MdH4kcl5LOULT5S^4CvN!&Yc9`~gSlL$vRsOw56|ypwM4Q@o}7Kj$rF*Z)Qw zYqZxtg;`tkPRb_=v#@Z@SQ@`=(gZ^(Pgw!WAN()OLU1)%%BX&5PotFHAWbOci7P(e zfH}+-{NiGTuXFulBEHJS_(|?J&yNs>nBRW?ZwN#A{BB+=Xp|he@f1+roH%>;_D1lT5}^wIu~RR($+w6jC?f4{-MAg8rKHkSnT`ph)~eo*$LJO_>WV znE-1g$aMHq=0}W{sW7$@;!x7bjS{?Ji{10OSazBz8wfU+*KiT8{Mq<^p(1P-$Kz1v z%fhG-{QKZ%utK?n%U@sz)54aXbc+FR$1%Irb9Q)?HB=^rL7(^~EUgfW#Cv5y9$|xg zcPeEOWfY=-3)7AG5NxisShV5u9bV~upAk|-iUMBL2J+ejlqgsp^$#dzQQ3qiIc?!| zm5PQ^xzk*xQZZK3&#Zup{tQKN_8&<5=MP5zSfEd##fF`kx)p;`qcuTWq#G1s=9>NNsX7XEgz&OPcraCet~RQE(oWux&j5>t1l zii7ObLFl&JbrEjU9+-`Nd5B7Ad&w5IH(mIO2)83SgEPX4^1_M8xHV4dMC!u2B9p;4 zd!WVWpHVmpC#RaJg`-d@Sed(lL|%5lg8ve|6rVMZLS5e#ed5okhSl?B)MY|H@jJP0Qd7+Jl9jUuT8(~3;Y3OVZpOq_0td)itt!iJ z2H8{GE(OR4S=Pp2xRA7&f^Q)aAKl8$3T!rRvb74M#m&0?q%+~y zJgDNQjM5NW?pDkC|+@Y zV#N!v;@MO&=|3<>qLhnbr6!&f*dc|_@kaTEhnsbscT z*`%RWK0fvBh8zb5hv`q?1H3F8hHCtZUmIKgGkz$L{pcZek3-DCgK;B-{Py6xi`^_U zCYH5sPbK^Q<1oEM5^W|^v1l>ZnhtSyvrbZ2Bg5}?n37K85U7b0I{JoN*Iri&3cmh;=f(&wUZixy~)8R zbm#M6-5UWbl8Wvw7GM-HEtdE+k`Z%{esxx??lh3tz-FdHl5EW8TrhnD1Kc9`a~mrBr)m zQ~p5VDr@a@V9l2IO}PH3#28LW`7xy;qDbkXoEH${O&sEU$h-POev3!pHPY%G%9X*G z|9NF1;vYQd8!r!t#l$6FsM{$pBZj?^eb8OKGIv2KCO=1?jZ(?~5uG)e#+%;GpIi0! z^%9HgEDo{v$cRFlY_lJvWF&)!%`kzPfU!UX!LLYG==)EV+Dsii!^J|sQ|Va|ZTY|ivufxXbOy&T{pCQM7xiD(oF6qBvPpYCRomHQ7=8)LIEk^Ss}p_sa^p7)JhF!A2N z_|9N+sJvOtyOZaAljq$gm+z*1u&YmqalHypPFiJC%)gD{<>23>Ui~hkjdmITt=diO z@5hsBS1Pu_L;xcS(ZG9il5jZFDlxhCie@!$LhTjXd7f#PG-a}IAEs)ZjPRsGYwn9fqry@&i$c)?sYYbXi6#2y>s zutb7`Id~rNp2-Xe@7b*Xl>U7(>*4S1mVU$qW-CWTPP^4f}eCaeoK zM3GFEs95JidIk#D90T`^KzAALG$X#6VjWsc0uk30##jh%b=&6teu&bw!HVNxRufxrr?9(V{7{%}!V~3)Ft6b_TZTu!S?S9J4Ac)`oM$*R zEgL+c74Bh_*8}>oaY(dA`TmU4hQ|`E=n9e=9@CWH9KMwYv%Q($e^iW&VDNvZ zx`a6f2+T%I$=}Pz6Y)vA)PzM!11GLr^Qjk8*tHRUVYSm1n?ZR((hDwjm<&GFtq*>b ziVlP*%GT3wa5)7fxcE8ZP@yV?f;)$JOoI>BYCZ_)Z21Qsu2-S&#R$xwLlSesSLjvv zH2F$lrAp>sWJmZM^n0*zYI0W|{!CtRTnD1}&@;atNWv8JYxmq*NJmNm`$0BwG_151J7W0Z05LaCH_Kw1O6$b z>?=omdoDs1;h%hfiQ+l0z>>{3ogahreh4`fDz}ua<2&r))x-XX{?5|?UfsRXsDDEB z`5ty32L-*~#Gk6q51X5+Z}u=Re_xP<GAdy|#hapocsb+KN6=mF&`= z#W&N=u8hZSYQl})aGI)bG>4vfO63ZnSK@p$Pi$+oy1j;}nxDm@fLMEt;fxH@uo8yr zY4PE-C1b&mz1|Gto-cWQV+PyFG+%!q9t3_69z{YBFOgq2gu3)<>$)K{1FV@L*2h-9 zK3@k5Tz~g~g&gZD*{SCD!WMVy*5-T&w#t0p1Ct z9D&a4Rn+s~_AN`I_AQmsf<5*iG0D%Z$VVqq?GKE>iA7>Qo@ny(6^E!HW)BW@LdkfyO2kNx* z=-twL-O_$hgYOAFxCRt)1#hi56u#Cwc`C+XfK{jWa(r4jsNG-ZkudV)0*urV_R0fF zN~K3Bf!RXHQ+{rXP)RR%*Owx9=5>VU!Q6`X{}h3Ke_8B1Y`<90p^@~$#ep^{(2j0X zt3FV^qg>g$^OQKl7`Dj+_AO)WTa4%%qV8CzaeI+VA3BARx@*&kNa1YY-(d4v8!s&U z8RP2!QRaFo<4QL$4c9c>69|VKclhKC~dcIZw^Ghv+4reIEQ`&`m`Gzbm+g`h%?VmO)>@|lUAPV zt;SkH$7tg=9nB7ZdxXNPgj|;J0yJ~GJnVXf$CvcYjM=xJTZtYb9_HkU#-WCD+vXbz zujbO7aMrpj3_g2PV~W&Kl(zB@^WoM1Mc~AwHKRhM81JbMjR!D(oSBJtYRwZ0Evz6a zwk-?!dpzFz^SFP-WFn12ZpY)Qo=TSUoVYV(=BGkf7uIg`rBpI|UyPi2UeMs;j#Y(C zStu!`QbCK)0qjd1C<6OyHfioksjZuxWag}L;Bw(#pslu>(Z1E5LcwB^?eFZyQnc7_ zm2^5R*)oiH2-|x*s!gBVi|)FTW{2SQ3U<2KJDOiM^0(6l$>vhY#a=!=U0EifKyb1D ziRt2mVEalW`=7DUeesy{HpL}@m`P>le~J7id`0&>HhA2{ZqSt%`7G?j7o=FKxt6in zlq>FkP4!%W)tqyB{TY~UK0SRVrib-$O}LLXe0sOX#r6y()}eiixX8C}*l)~5Yq;b% z3BjcNB@&Gaq0`yU6mQ!_XQ;JU3f6-qYA}O&Rzv(8;V?X^2p+AA3LcHsNWh|Z|4y)I zQ#g@DZ|~K!s21~nGg-%gRL!S!wmFS?ms`>IaGABB#V^6^a(2OiwJCmE!A?~kr8jB( ztdBVn=V^XlodaFu7h0DtV?W79rna8$V}A5X3mKr$KcsmyHVOm7%3k`6HEFt0`KXgM(nG9NmnA3Mo;Kjv^d^7lg47f&UR+sCl~PwC~uNaHphAmT_Z zj$5T70z(&y-M(_8Nt*BF-WSF;K@3 z7l9;b_IQ6LB*DsvkOYbwZz@>248%e8Mw(J9*}9KZaqv2pM2T?yKS?4ybBEr366njR zOjIgP4sfNSJ$}laR)1weKXpbPlbuK93Z^*w2Y+~!215BU`=85?8vm|TfTB^sjPEJV zK9S2@b#$Dc$yNQb|JZ^`c4|P_<@!Lyd#Ub9gKsofKW>33mEV`yuT&i)9VB(IEAXyi z@SuAs`v4s}@qES2Iy(Qm^KGRz;nq4}#K3Ytb-K6$ay_b$bT<%vcdd%)|&v z7^lh+&SCFf&V$ieWk)#M`xM|Gwu$lV?ZMWpC^8smp4QLbVxE2+Wt!9Xe`%h!uzSJ@ z^RJ6lCCtCte7-E4G@mbHGf%JQ|8Mj3Gwx%?4kouf*i$;QHFNIsSL4| z8gfb9K#b*5e2ucM&nIk3wbt!7;Tf=#I9P9JYBZz1y()(*@or{qB#C3eJO%x0X3K5i z{4(_aeJ`Ac&t(;rZ7Jt-wv*(V_JZqA_O-mp2}Ee~+LD z+5$1gY^9ssM=swEH+$>@VVMjCu~b2;FU8I7fD&?l=$X1iy9+vuBJKWB&5eP)L*Lfz zJD-s!cvz=6ePp)Ni@sTh1`wtm^s4 zVZO}}-;SQr-RF_XQTe!YSNEQ-XxFaJ_q+NJUgEeo&3d?{>r{7FcU51^-yie$u|MkO z(KvmEZdIH^bw|If+b!KHJEK4xfbx?eUe)#20paBGNVoHtsN0)RH&>-9Y~99gQ`fGp z$dR5W?m4cnvjBqu{qU&HAO32cFX1=XA!~PT{hF;RleSeAD&H!XcZ8gqTzvS(X0Xk7 z>iOdj!dJq%wc5m%90AVa8(LfWhF19|eaO#=>e;Rr;_VfxQk-R=*$FhhDoR(@t1<)# z{0Y$Ib5Z}aXd?gg>Au;cao)Z5KcZ2)bJN$5%A8E9@=bF2zL4|zIKh7KxSnA5oKy)G z^S==DKhJJc6E*<_ZHJR7=-iY*xo35BI3Yk@bTZz~T$;tZ3jB(lW*n@}=q8)&R24QD zuYOe6x<2jxKs_+;&x*T6`O|>-UA-6!qPx@MJ~DkWhSt~4*8AsncXlzkGp*lmMf+eE z3*R0bsI?Cs47_I;Jlw?&e-Q@0MZ>hz)pB^3{rNAA7}pRA_-4RR+8O?!+mZ`I3Hs@+ zuFntF_8k0452PmywHew_<1Ji%J!nL7MSr)mPc(Vf38C@m`(BJN@|V)iR`5^FUGH}_ zAFS<59Mn*Q+p_)m)rsAod@G5s=E)YNbl}Ccu5J*&pKN=j~{M1 zc!>*f-F0|Z98-*R)UDlQ)_5FOJn=aZkco*;KRtdLo=GyNNh1V*?))69tfMO9;v^!M z>nc3^xLzg+xL-hDX(MVd60bK$(5JJdyP_Y6)PrO?dODe!Pbbq`fZ1DJJqIu8KzwwE z&sP9v9K7TyNIiJT3yAfO!zV^2&}|V;ApLz@h)Z+lPT;2ZyH0d{IZ{(EjcB@rLv4pz zXxGTa1_u*m22-=L?!g4w3E2erpeX(_PQlHCahWun+_!!cxqru?Za(5Lx=ryY7XH*% zxe4}F+DMDrN0ahmJR0BEFuG(U`K2i)a(y-FuJp}y7E{C%D*i zoq~tdSP(5IjdzXm(AofIqk`5I8Qzbv(B~kUo9tVpnE+US9xbWdBCTAy_bV*-%3)kk zU@+|lX{K<^kt*r8N^vR9~@-{oI@RUhU4i`)FYtha)AC_mf^cs0q;CkoosBF9{-INuaIY>h6jT`9>{sF%Pb_GmyXG z2m01uy-U4Kn3`Fa}Lv;F1ne~`l^jJuGtk8mchW7jJ!-x*#4_|W+21(HE zJ67v_d_BzFz%t>_N`wdyp%y5Wc^Tq`l1x$*~uYzhyoqJBD@kefV!;TTJhV zIUIp)yd^sh^7XL;BvsCyggCb%IwO&5^s=Qc_5rSFY(y`3ds=_Do|Tgps_2$FM(nEF zc7L<3imxZ??t#kb(g*3jaH?w=dq}kfh(7Y$KyAVH<-8~ty%>^S}hTN!{?H z1Xt_b_v^c1vFL^}(F%pbxmxS`;KdR8VD#=0`oQTBG&&=#(~-IpkT+OTgTbKl48s>Q@ zG0%9q_H`RM47a`$_s2!YzazW&0zmi5~WNM)kM_TRG zHmgMvR(rMEst);pmtz6XUc>koo{mEi99Ksntf-bTN-*quYDb&u791+wWleL9Ou6 zWr1woO=|Spvw;6F`fVQT{}I2ZWj_yrYYPk+*Q8Q_pYWTQ1M8ZMb#*44e-Xa_$|_r+ zjpYgj2iD|!LY3K|Q7?;KMtjgymGNe&;LF-^bZRs-Z&J2PfedT{%+Pr^+d>Pn3l`Yy zzigfoBU#d);4kQAzle$RKfW(@{@&`|6OV7qPk1=Ixg_iVq4{T&0jaDj(%f`*9i7O^ zZ0IMG-Qb9o+2UVkBz$!weI1+d)vEuR;%3Ki3k5!X-e86F;m+XJk~P)oD2AMC*JjAA zn*I4TfV@^&U{kKa<5}g=g16V&-7rZTZXb#nZ??&u;cJ!h=+b4eRW{c5W9~$Cvo+Al z@=m%#*JR^0G(hIDL*g8L!C|0rXI?+h_%fg|UQ)9KN*Py4$^vU%zr4UEFMyRvRDXv| z{QORpBY1GlINVB~%lpmPme(3Qxb~BTK3DZi54(XoMZx?M`wsiGR*iIlyb`$xc;zNZ zub1*rTxORou!HIKYz%ShK3jI%>|4sR)$zw2wLENdROP7A-dm8P z?s%8W`~2qonB3a(p;ei0E1d6GG1kLm&K$(M#?EjCe6eqVr`UYkfp_kDf zB8BBJRzeHMXG2#Pytl?AzvsaWRQmT&8d(Dwq5pKeR2~?QJW#IE&1V&S&>K7$AEd{U z;s*HXj_tWDuTybL^8UPbIa1KJ+FtM;@OwvIKXCVA8^+T^ugD$ua$e~tUfGSotZSqY z#u;|VID$0T#4|Q!p#vlEC?!%}hkoC=#@19=<5=$!nLY;x5|>wcIdDdhR(=rRG=QhYy&DlmTx#FQ z(L=7F1!RK>#Pb;-e+pdniivgnpu`yfsj@#eL5Ds4yo98km%#YCubYU9o)aO%+_dt*WozJzQq}%d!-}sv*9B${@M}8Qqt7`qVMRuA+2y^jAJ+4 z5=ly0B8AEwa`~}Pc_wHIXJ~A>qvg0!F7M=g#wRMP+|KQDZ_s1~+D{6I(t^RYlPY61 zFuXeH=Fi37=bnG}+QL5)`U>cSIUZe>sUk~_O&$!F$^-g|x_?lezuYi?jl_$C>_Zt%)&1WaDwi+dp7ifa^Kmn8SML`?a62WMkus!5SL3N4i3d==m^wOYuD zhaIIoJV(t(R6;K5kbNBzg?(91TIuQ?xL?B5d463nmL5!ng>YJcDmT<-#b#q!wsZ$Z zAvzk=pS|%Ka$!Ao4t&`-8Hv+`?{e03jM*`jBJRvsubvR%{Sqj~6odcV3c2`&up^tQ z_bJrxns#yhZUcf-W+Mzx6(%A;Pz6AKSqoZW6bu*-7PPK8;f~G5e5|cSAYg2jDX+0j zrm~6iT@|QnW(%elS}@m2n4EsZwMI9EWyDWx6f6>r6Y()V&uzfhK(k4dORYAsOVQaa zi?TVb3MTc@)=+8;P#q>+y`sEXD{p3>4hmBqk8D^00_AU5ZsL&4n!gL3+v2b!3YNrv zqrpM|*?MRWfR+H;Bw(94Y)KDW#nYm}wy^ml;hCKP8R|)FgIUxg@p>%rGrpVyFp3j( z-tjl62lV`~0%HUEt?bcuab7UcHzOg2QvGUN-hYWx-N`Fg)w1zub=%3W<>7=*s}_w>b3N46#SGS&((@El9;&m>_l!UJ}A|7LHk zMDdl9?4$+a49MBy49FM?AEOj=E8rZ1Kbs#Su|J6SN%4au_Mg2B&&o|vxsz0R+1W22 zY56Q&uI=!b1S0lT)03O^8mxvIo&8dsQcSc>6)o!pIPPjI`4ILVqWk0m#YISDdk`&N z>uURt6V+ZogAdWUxzIv#!oqGk2{itq<%9`c0CmzuZi&m6s-^D5;!?&)g^jr;c2xH_t|aelyVd46`mvy ztUF0OknXNdV>x&n-RiDRX9H37?9*;2ykQn(E(zT$wR~nWw#&u%x?v8c1zN2wVY6Jd zPd?J?L@%F#u^P?pKgqF5Ww&sw z_%0B}wDHjSRe_$gd}ACjW9LTv@7)hbi8!v+W7s6&i$S5n{sb?*FT;25Bp_n%vqpZO zVTzKS+y;IQT5ZEv-Uj)AykCD-VX2!v#m`GCDYElus5V-OE|DIk_NcPf5!+8#g5*?c zBY}2vG9~FlG|-;f@|hVw5b_i7WL<5)ebp6#+K$v!bCU7eB-Rt7FrCIjgY#gcv!l63 zGC2=67)38TkrMBZ57=TR}tE~Q{2nAZz zvEnm~Qnof8AG44m->vX&!1#Y=3%(Sz)m#@SE}_|Nl(%F$o+aTBV7*E?T-6Tt3r;L} z8Z!pfi0>cA6L?L_K#KnoA9K0AY#B)2W_)*u^V24Tx1GEj-qh()UWR&$-^Si~U7TGC zd|;HbaPS9uOdCsR4p!&%0F5q#-_9->#JRjjJI9Lyjf}#?nfz&vc=B%l?IZQ7Ud)BL z1BLSsPn;&VUj?vy=BD{GuN5N;(>z?(=VC=1L~J&ep!kvWhBdNW^$KfcV~=ZBLuxig zGzb0mW7QmF_tqgnz6%pS$!GS{L7Xx$L^C@oP9RQ1Oz;@%lYJrz)>v5E-sE-H$jT*0!Oa$Oqs{5-z}dQWRp)7Y#q8OESPU>eZ%9O%akKMZ70Rkmc0BC% zN)aZRrq5TmlGk2*&sW>fC5?z*4-%l9gah-E%u(EOi2P?Pn@<8Lb#xi4rv0HnW&P{=Skxw>UpW0XzYq&n8@j4S`FjEE#^itzo33N!z zVWAw-l0b_!umixYeM!#ZNcG3Jh)A!zTGcBTBHcG^7ACA4)nt5NjcW3>lsqan8z0!0 ze+FSYTFLU_)bImjmr^Yz3fgBj%!4%hmN_vCJ_KS{+V98xvp{UE{r)GB3daNQ+tCDY zvL!49K1>Q8^xI(y9GVrPt^*THX~PxF2)Z6t6fjrRL*rtqKErNUM$Ev9>VPa0Q!+&hoQEs=); z|GKg_Q#;Qah)uHJPxl{xG)b;yN)>|+ZwZ?;9KQj2I>am(Ee6Dbw4OL(hnX@2c1SWk zw9k8j!pSUbXt}tYHP~h-z4`v^2|62UwZ>wzYfI4+8_9lgv#FQb(cW> zME>nFj05v|5ASLy<@25U(iP-vG8;yYo3Y#|F$C9@~>?BmeNx#Jq}|V zJPft;Sm_~VYy+sh>3EIIW)N`RW}I14UjvcE`#hW1$O(~mfJmXtYU=GYCu6W>`B2M; zgn_X&{7y0sTdt3`e5m2js^ZW}IJAbJREPqB7D*n(^Dm9Id;t09QvMzAK>6_@1_FJL zeakLnxOYL(>k6IH(6!3tOwee`khcGpjLV{E%ljHGEh;W8gi8xR=k z=0=yL!DVW6NeV7=!$J$Jk{1Ag6}x)t#r@>}et*$D3jY?zRXdi2%KPQ=o~7*UYq%>i z(bU0Krr=TG9=Uxhp30V6qR$$>{H@Q<9tD-pYlPv*@LY|2*i2e*?>oaW*cq$F;N!Gz z02uzh-iIixHI`%cx%^CYdoTui>J+Rn7b{%#vS4uD?{%=I?x#+}i)WMtnV?#=23pN{ zCxa=p+$aR-3Q6D9w8}Qg_ehDojrR(%*YN(YTd<~4P*W3$=)`+kL@c)8UVHtY$?G7- zJyGU`q(@?QgMsemaIqD?=h0elRslsdh5d62z!S5~ozL@+h|UH~;Ruv8QFuKUoAPI& z#mh7iDW%bkG#9n3d!NDp(jW`$hzhZ4xmMHGmy4(1L0_g2!!CB;pJK6%$p7K=cFT<- zhZbvC%zy=;rG;R!SDRoas0B2FYsPRw=HV3>82(f?iI%+ktnU1Wx?P)cB(9(LAT3)q z3;o=~F62i}ig7jJb9hac!sp*?R^=0v6-QFqJ?!NB;d&RYnsN1y{kH*HKHZ+R9kX_Xm!aTt= zG`7GgQLAQhr+)GF@r`cD+noyC7g$G9p>!k_N=E{82NQ=~EQ-}Nsr77|BfHa?=q-|# zAT;UTSDjkGE>G5^azC;xzxJn~{6GLk)hcx@MHf6@IH&5AJGgmDsukHV5x&>SqSNYE z@^;ra^I15~d={zs41cIq)(U*NLHAv>n)>7qEpz&nAM%&x0<){Qz_qd(?@XlY z18UPQ-vVrOzk7!CJI`w_qnJM<`962@hpPQ9KHl3{r_a}$Y(i&-Y16Rkb3JdeX_%nj zVwfyi(wyh8dn8l1UyU;yzI|+`w~s$$mxSfo5i{;j7B~mupaOguaId+)AL?P@qaJ`}Vj2$j3uZH#BmJE&ykcKt9|Nfs{KjtqN*N=*Ah3Ed3PS>O+!w}5v*`VgEG$qUuL;e^w zkbt^YP}2EfdYL>%Tk($+;fo?m!t5hAOEEGPyE>hZ6vRb3 z(DP=V9sZjz^MEwmzfQ6DWUwK%*kD6y7PBE$aR0aPJqfZSRggeqQF>ca1>4#HR`Beq zkz^NbsSoECJUExO)VtS1<7Ek1m-_DS$b|9x-LDsHyPNHA2goY_{$x>g!LziTgn)`$ z<8SpZ!8Edv()+(~viB!Oq0iUo<(0UlJ@*V6&Od_zT{jVf(c()S=D~VSW|bX|9A!Ga zDhTzRs#6_!67mEVk+o=*xs+KV~@b5ctdo=fY;c-2%We?`wQyt@Hs z8s6RecUz3^?tPN`XzJD__%2;yA!?{jNOi%Sc01Wek`Cizit&rqrpmsrOhyKx%znPX zlykB&O*b8#sq2sOd0%qF7519c3Qux7OH%E=b-0NZ-v$HQ|%k%Tj|>< z@n~1+`t_Q|V|>Ee)DLkz&DFbf`^bvE*za%9-xIy5+_@ z6?^M=#01ux%d>`J3$d}&h`ZK*M`JrVgZO_ zM`6-ESe?3Z3Ny9p9?EtPp2*n>)usBi#lnU2qW$6>5_~}ms?z3KSlqjZZ*Y%jcDiP8 zZF++h@nfS|{XI@9KF6f0LEl3-6}n+JZw1H5vhUC?)PFyYcX*G{!+Y# zzpD7Nw~D>+^#RkV{3Rq+DmK{_qPru^vTykad#(tEgH2tB(fVB1TWEN0t#9XSdgf&I zBeX=sD;J-7oUO3=Q%G0x{4?Xh^LF4nMX8nFRURoCiM)m865orudL7@xvc~%uL(&qY z=7%_gO5g3nXY5ip{FAaSW^YI;X9Z-^JXtwNuWm{`b6=DlUzZ$TTbB4B=UzNdk}8Vv zdPqe{Z$&A4KdDfvm?pGr)BQ)N^L)NU{a0c*r{KZGv}4+RXf{?(vO^=^JrBA(#XLG* zEGv>b2Mc~()ZYDKLH9RtN^)aSSLp7nk;Tj4C< zyPzj+mpTXK+ZU6*+KAj)#IHA9h88L*PN(eHF0Cj|e{SG1z8_gzg!URcVJvqr9L!r+ zlvJl~VC6%hN+_j{cKP;VVm*{BvO|Yf+Wq2|5(+v4@?Cb|z5;pW9H6T%J5sO;&9YM9 zQtQAoAn-IX@Fi+skmSl)Aerj^`{)FE#CBh`AQHK1P?N&~xpPF5(cY+Gr43H2_(5# zO!6d1a#PphYMVW_R9=DFfn^5^9w>*{ZyoqKm+uO^+*z>gS^)Nf;L%v;IebQr`7v|% zW~ZxI=}@Mn+QCYBMIkYZ+^nk#wHY#v55f2Uj^>A%@+)5~ip}wzbZd#c!a+BjZuv)6 z(rcaaic&zyYhCh+Y2fLv#jR(|Zy^?pu_a3o6`MA& z3Z~7ey!gbldvKtV*~eyY3Qc65toU^+iA0W{O2+2crTD3VPo>?%95%vWBjt&b4obDG6-3!qkxt3G##LD7kj75?y^hEisbld z3RR5RQ@={o>awg9^Qa=G$?;+BYla*j(!OTN@j>ltjy!*sF7kP3(Ds-*uY%z>OWXHa zetx!6#{1?$cIveq+`0*qEj@vRuVfiyTf0xrXX35OC|=DX%5!|a05MERweO&pYVvXQ z%!A{5PFZrk^C=w!-;f^qp%@3G2VVf!04_OykB*{H&flh^C{phfyXgTV-TiogDf41_ z{A;>xB%NN8MxEQ7=WI@F3O1X)H3yHE?b>~mCAdLp5h_0l>nbkD;B$^Vxhz?CF+fgy7PXnv2#im zS1!!1+&8|GP78OLQ+>&FI(6$RSSifD+Gf+qI<*&ZpGDk-fJ;4zpQZSjt&t+#BZ$aF zL>B%xf2xWVbz<%+!S!J|+i6eE>t-hlDDZWuwG2vmn=SJrgu>PQP9VZbCNS|?oqCh4 zu1NlJZSm^Ve{lc`d2Q;$+i9uFUmXLf>||1D?qaX0|21!|?<51QVW9MUWaTTJL%^j9 z5ZU>bGT=1~xJxaVjSPNam-bkf$-YLpWB1lwz+)TGriwmIOO9&aR$Sjrpry7GZQ*yn zf@)$C((JsPXm;;>5<<;^R_S{L!TvSu5y*KDDB!Omcr^zvP{IFz;6)s~SOq_d;AtFO z{s3;OA<`DZCFpEMvjb^trl9|b;QkshC?+l)o0eEIk9d44v19>xE>yU}sDhNXxRb5b zFW*kj9Nh2<-ibUZH1;f|ty3GEg5r{wxfU&RMkcIIc@Cx1y9iY6dg!urxl1ux!S)_% zopWEu*X3bS(RqdR3M^=RCqM6W;$t_MwA8x`Xk`V9jxBGQ?r(8Y{`Ax2U6^$BKI<+_ ze|74a1^WF6L!4JroOFLti5Df2`cj5?3iE*qeEo4(VY2fF>rx{&b%zDGX2+dq3!0t| zc5Nz5eevt+nO%zJjK`GqAbY2yklD>+b`!gwz*i8JbFOOboD0{Ssjst$m??(tGxx4c z{_+R!;0k{18{6>Zc-Bo;uah4|Mypd35A*xa_?k-UdoVAmSx2n45G&WrKX#wF@7IvZ zz5l>diP)OdboTPGa-uew^Ha{%jwPSm@eVhZr}WdkHv84?W?0%wPyL^Fddr>Xjz7Pn zx7^jb=K8|k@F;o{=M*;^~0TS``Eqyvc$a@%ICMk5%TZ(&!5?k=ubo4T7t#2%cV zjEQ&(?{qC2rdRdK87WM?r4`k%){$1MNv2ltMuX4zBcuQWsr0YQY6Px}Z9h*CN<&n9Ac!aSO=G69K`+=SVx%L;N zBXf^k**6yo7t8lKq|RacaB}aQwLj}k^&EEDUy=Ie9=URG?h!&eVR8!S$BJJMmrme}emB;4x5!wYaen3Cs{Oj+2+0)Z=vHevs*82*j&eMSYM&XYOw*1{3cahYY zqPVX){NPG++{IGoDT@1|6?1-IjvH2%Cn;|Gqboi#$6YFQ9;djE?bzx!$30EzJVtT< z`0R4o9QO>V^JR+rnLE>IbKJ9}&OVC!SAW&0q|PH0_t)>) z@sT<11ybiBiu)^-9p5*{y_h1t(z*8*7BO-joO>+WjS<#Qzx+(kfgFesIUbvPB-?!o zA}arB`Tm~66ConxbYyN{w!04^xZ{g=f4b-3WQYJ$-#2$K+dTrjf7ttMe@{=5$U6nR z?<)N4D+b;#1Mixm$m>T8&?`w9|G2|2u{J_@`a zzU`W%${T?wkY!~bq)WrtCGez*FudiT zuF$a@0+!yjPak3|2ha9Rj-k#nzQ^B+4n%&$QW)_S^2lJPSNk=z5 zLwYGpP=+2#r{}&{_8M+bv&X>7UW*I~?`e`PWmOUBe^S9`Jsou3$de0c@jb+>CjF-D z)#wGXdmrk{6+J8!JycQlYUCYN35m`#6wA!QyG&$Ps}^@*YW%a zqW_Atsz0X+MyvmuN_>sDSjd@&`iEN|5byai1Kx7HFtKDSEu?Z%FCa6=<2cQnnS+NQ zSWh~OmHbVi(-Oy5B*(*0UADYKrzgFR9kB;ceSC+5s^Ib+OnHxN$S?nnEBWPYX^9Ug zq^V)}UrEuAFVQA{>Kq$SSD^cJk5t1l2j7=YtNU7H7rwSog3il5ELA(IH)SEkJkbuC zi_yqcMUs1n84gXlhpIPaBW0e#i`!d#IIUd9Voxz%Aobx>jJdL=kJ!iQ3we+zx6q^n znaqN`{4l!@tVjlR7M(r*^|@8258ZzD&(iOE`m>UbTau10=~djQQ*0}!Z}Zipexy8p$Y%D+;bWp_ z(jBR{6Ur;j$(685y>kVv&as4YlP-Ev`}v&@V0E}aTIrA$U$8E<mpvQm1Nu%GH1A0bc@@bI|(lFU(4_poXLFrHNA|FPRP7C^pHNMv| zUG+umkhr%yU9c?=_0(UN-baJCJG~; zj_7p{R8>g%D3AW{s_(bqaqt)H13zVq@HqVE$maP%zJCt*iqChyc;8vhKg+f*^~7~- zujtg1B<1*=b*Zk;ol{=fio4eN{u?v#??Kd`j=1Dyh3PpyBu;HAWeOqOnEo%WA+z>P zJx82PyD`nZIhZ_*J9RZayO{Gb@11txyUM#C`#w{;QN|y~CI|Kl*i71=)r?fNOQbES z+QA1R7ZI)6tDNz6o!&{E7d}laJ-QJeLbN5j8|hKazhA9XzN?atB1j@K9GP6J$)MKN zy)cMOq498&!{?k!dS zd%SQiU032g?F*CmYAFVR-d>`7>fOyNtyyPg$cRsxWfV>eT0cs#z3E?C%@6P$ejM76IvH&eL0FrOlFl+?-D}Lbt*6KT;atoB5bUT>r+2Tr+1?$ z`#Z9@KH(-?YX1ClP+L>8%g?3z(|CDAsYzz(UcAR7-Ops%luX_B6J^hg-8+z%5QE-+ zdaIPxFD3s9sk{lp-i*o2Wcjy!Q?>fidvmw0wSaQpQE^~Sw_^~NHsQAbu z+4qbgJ^93-N6N>B-+%Erb{_*tzow9;W8ZU;CZRsP_dKJf*O8vLqyHZj`=K0vhk{r1 zM+Ua=_jys4={W-}dVbs{fpj?CI?{j7M`{VhRXF>8e-G!o_1=+lu?5D~lJ_G+Yq4Q# znfF~To>f>8E(h)>9Dh7<*RV14(SJ3BwnOMmPI}3RF$j`;UHvCUl=~SxUH^x_4}N$p zryK@A|4&EMj6AInu(G)kPe@^&(cg`nggGSNFNb+`W!HyvjV9lB^Yy@BcY^A#5BDr< zQY{^1xEj0evSYZ$xu53FWyc~zyN=_$FH4$2zkS;Ikov$qGLIRIDX+memL}-BWUu4f zq~?CkUa;+3bfzs&kQ}0Qb$wKM%WYKlIqt6ui1ODji7#0wHedJ2ckNYejdR1!%VL@# z?*bNWcNf1;lvw;VTP%+)pz-}s!*itDRo%|XXL_;=x_^WPna>LKpUBTtq`!$%@fY+e z(pbeHUYaM{V;4vA@cAllVmLd#8Nkwn0T0^CsNnj>(r;%TOxBE?sT|3U=gJqJ$;yts zFK6|nvKD_3&y%wh`w9rkOF9xRyEGy3yDaIR5$VWGysL)G(fq&QA~$Pb67gqf%@#Z! zIbJ8&3g1Oa75ih8d&^1Z0*VIa81E8z_XbU;j^+xxHjuiRTsUUtNB!#^ zBl5B#IWmk26rq<$Q;78U2wpvmhCu<``Ujc71KILwApo?$ci=1ODzqPzzBnWuG22Aj zWb^r;#5NVCo@rz!zoenwosM~Ez44*Ea@anMN_)N0n_;~=39qvLuII0L?511S`=|f{ zs}x+L=f8*Y$sV{wdbj7zJlTDmMr08F!~=;JvZafX8-D6QUA^b!`$oFc@!h@!UZ*ql z?Jevo7=5@Vup=X$h=OfcBc#q@Efocc?W7?$EMIWu04vJ_P?n@Yk__ANH;XnVx;{W- zI`LU}Bco`K^!vmc*@^eFV}-b&lHq@7R^rKTT!1wg zQ&A{aolGu&$bl+kP_pj9g8P4ZPA%F;!JC>sqDeotp6=^wvX7QS`?&bb;q3TKy6l}S zdE7yx<0Y&JYt~k$)?dWz`TcQVGSj!GY8!jNu_!(gIl$V*Q*+PEeO-;^%EWy`cu9KQ z5S69sp^!<DXaQPz<$a-)l{ny7 zo!T;;wO2~Xi|HKHQi3jJ3+qzu-iWh_qoPd;SJx8Mc38Tsz}6N?klz-o+cihRac+of zsr{*C=tRy#*W)WWuiiECs(WM?(i!mE3D1?VvUJE}Z~pN&+SBCmywrcrf+eQ&L;YKF z>iIbBh2)=pfNcKFJ+o;3Dey*XsQ+DZ5;r)OpLLum|0p|tqwG2>Z#e5n=Of83{7+uf z>yRD2lH;tj1`)^x7MjRxSaS7A8~Pl#uV5@A&rpcnDI}SXBv9(nOEB z(=-CF!0PZ9{T|9L3Xn61X=?--?}YsO&`etD?A=Udgd#n_N#;=fBF@R8J~>NX?MUY! z#p>$R2dA0BAtiIs6r_**C$K!JvV7uhbx(~Q$f{!blstuaI^L~L&wDrh2TCo=-hc5- z&8GyE(f)DC-`TR2g}F=$!xFZk*inP|R@hKVeyiUTr1`@< z(yx#PI3Xi{HrZGKIiI2=q0FNfTq%6|23xT_lt9qw_U9IEV)N|M!uShYw-xV#? z-|dQ*7^asl--H`b$EF?c!4UIBR89r=V~>@f3TTVZ@S(4Un7pL`B|N?d>NyFaeP{%mOH<%xS8(2bEAYTE_AG~J(H7N&b}Hw?_+ zfD-|3mr1&TZN;YUYhfniQaAaC_L%Noknch)f?u@Kng+jT;P+GNH{DHgrd|uO2MTry zVXBuoq$xuWnC@nRc!${T=H=3vwQ_cPPU_urA1V8ra<+MYQw%$07{k68D^lj8Wno9G z1{!boi}80i6{pq(`HHhQ+X`uvqK@85=TOk;?5%Xs!lAOz5yCIhU4b-zT1oS;m}X=C z>2>vs*!C=Y!gT`wpf{@DKgYXH+DjW`Z}*b^?d82W`=Mr!P?bFLLw4bk>E!OeOkKc? zu(kcQ`E;uyc^l4{rqX8I$4_6J*DOi~?;farsPu&cWV`04_kr;&RFH zJ@_^iqx|@KQVMtIrJN+_El!=RX*{PIA(!h#qi`wIaZ%DsJfs5as4NJaV-dKLF$qq)MNsil#>K&3N_q>s1|C_>1s&mNHAW-jmrBjnEv&Vho?b5#?w!f0y56J}% zQm)kIU^0|eIpxPG^y`&Uor{;o9Enn)HMIUU1>7D^fxOOvEDEG`4ynzlq`@Vmp^)W9 zo+~9aF4SX8F2EKE9H4F^lPi!3RP#2MlA1yxHAPmb!EKTL!;_Ws4tcVaEaq~$yywqZ z_76cgGk+^RUWg$dMbzip3uM=~&qZyv8jQ<_cUmsBSAUYt&{1dE~`xJ>?>T<739qODt&k3_Fa-*mo! zN&|_5=a`^Ca5Mij_r*nz;z#Gjybdnk4g>qQmNDp-x0OccU~$P5(oV&tRMA$Od@=aS z9!21mNi*rU|6MF6N^J!zELO&_d?KqxkE3Zcx^OV_nD}bg(nRmDzTrSsmuL`3T?(Uu zoXgwzDxRW5FGvuX&74Zt7pBnv-BdmH(*p7X+TW4$>5Z};Wh7v{zu-UtAaV3!sxK7t zZQGs87&P*B;_wjf+iqZ7lZzh&c`MP&b-0ZxJ#LWq1gV=>(C+>BPSSM-#Y_rx)Bf@D z^OwR!b(y44ZYhOwK?Vdy!*;v}#kTXF^hF1xQ;|bwG4vOLBph54P!(9x7k^L5B(%cC zN-LBeSMvKh%day25eX0Kx)s`~lw3d)1n%H4}e>7jCzIzSW~UL9cyLKVSOt?NKrmlAmuIsBQ6jVH92_a0lmIwIw& z#PovZqDPT`=Ys9hOFe&{)O8SdGB{h@MUh?KWPLjHielJhEZmmg@bu05uGNqMX~mKhVg9D#p+_AGAt83aaZMVvT~*jUv+H^O!dY|FCIx<6~H? z!rcm(Rnr#vwgwoKKq5H#qL}MZYjw`UchX6^t)^$l{C8LpXUV zO(oj%Mt0&i(4)=zIKArO^_hCrS(d#j^<(F(Dk|mogq@|}#GSgTda0ay0wx1UccSF? zLS_AnMPBMkvJ;MDCmx@s z4AF-7O&5+bMu*l}kI_mUB_Z`@tIwgTP2@!PG_}2-_<}>|tXND*G;NIqMup!CHHHAt zU6rcCtV~4GrOJ`pw}c}%G&CSTig?|5YMXLoc)=zZp-O4F{=Exm(~{NKGd=eB>P2)l zH2V2P`E;Uyj^JTOU`>hNh|39qd;80U*m{-EiW(KG-FU( z_fCBX$8cQtvi{b|Ru?FzRW4}>VzuePE?YMp(*kIOG)tg!+f5|Bg`D{={9KfSS}Bpd zO^(zhuQ4?w;zU|6*LLHUR#|W4O1ZmQ*^o--FxkP;z^tysFOS-QrNK34{oh1M(!3e!^yj)j?- z7Fjbb5~j%7v_zQU(kz>zx`IcAjhuDccR)F;lXp-QFBzqq%L`vwzX&B}>QWdW+X%=p z0&+EgX@)Lr@Chpe6KDPUMTo~x{vzvKVGG!}ABnqDhC%+hEbIP8zQRty(x#4gCPC8O z`kuXq^_$dl7yOuIQjJXt3jO~j&}9Rl`^EUhrkauZF05=7PApBo|MuDURYpqTkILhV z);!d)iu1_5QcW9|78`G`nE1Fc$8#yiTj_thmSv`Y$A&r_j$V3FFBleFB=}bYA2Y=- zEh%u*(osf?Ma6ar4_U3O}f< zc0*ld^HKZjtXS>E`o%DBPE-i?9`=(Kt2CR>=Cbjs=YztYx3gp?`M{3XrtFB4?H&gXkl!M=~Jl{q< zQrx-}x{SMiP?Kuw;nxF>QWy+bllo>4GpFH0)4HkZ1N>n{x{46HuIH~=Yg6lZRG3bB zq5WdgKbEH;hlh(EeyGTfkF>unGEU{usp?McysztYA#`l)#IedXcYpHH!H;NutY~g7 zNx=X2{;jur|2bBLdb{^1KKCH|In91{vY$s7RV=O0hgDxd_4!m^qv~6u`fgTz%T-^w z>YJhZrm4O{)#p-u!)l6$RNtWLJFWVTtG-jJ?`73@NcA02eLGa&cGdTY>U&7_ZBu<= z)fZ5GYgC_4^_8o>#j3AR^(|0+?fitJw>x!C@f}rteX8#<)wh-Vdit}Z_mU2|>|nGd zIqxg-q^|d|h+8M$;oFH7Gj|DFA5Fp2++BE(D;GUH^MG^_G>*jk>*5#7+0p@+$@ioR z?FW(@zU~;fipJ0PXT>MU*~tnC=fDMY9*Y%8c07br`GaNeMZTGQGW8L*AkF?wl}n7p z_3+FdX_8_)&+x91eCr6RedZ-s+RF|^uYxp8D4RMNIHJW47EyqqFqYX67rE!zM%WX*k#GP?W{jsMvAS2 z(K*uZ5flHbls^NgeqMs4Q}F*q6f8C!g24FA=_7fo@2H`-CkG~DNJbPtX*l!m&Dr>U zW;j|vu4(n0Cgku*ii>nv}562hDog;WCH9`u57nd!W z#!CQyd;0V2Jw0#a0V@$My3N z7rRV4vh~!+)}vWaeh{~`NV;62Vjq|wO~v%1S|&H+ujnE#qH<|1*o8lmlXP)x1M{Cp zaqYtYV2zi*z3fQTDIJirVC6I<*`>TiQ>ZpgUX<^8YNE4kf|QTny8Dwgq+-^+zcV|r z|Gu8#+_D@Wz7Ux}rSo0r?MdZU`%d0K7Aym0Oo?`?j|@$n;QBX>IP;n{LRuhFPxo)) zmu#~6O6O6KG6=E@2?i>qGg3bKh;6c{OPW%MR4f!w$T%<(d$*mDz|o!rjDXGJ+tRb#YfrkSpc9i zu}c*ryD$>mt-)UheJ#qtR7G+$`}>f?rSsT$yMTm}`d&5O@uKY`s?Fi=i}hT4pTf5R z!S@6Kma9(q8L|%jj_EwHahr519+v05_bO%}L9A5lE z!Gj6S=3QCmP_#{s4`F3?{R~BMHy6cPE{fXcNR-Uf3)ugWH|-vh|{Kp9Vw(EUn0#eAKr}#8VCsX`{Gl1?vB2quAm~q3#lq&g9DQ-hF zh*hHLb+g@yPN%KltN6+*VnWvl zqHWSac~Ww1n))Z{m6?Z=%M%XDh;)PsAvTejLYzIYcdQd+ssW2_XHq;t>;;oLJ!u%zvPTTi=8 zg6)UQq_+$9{}ZQ66eEl|sS42flTAL!eX7@;VtTWuPUIY$hf1|4?mEq_>s2)B2#!~s zer-N>hd?1!iHOeACu&b0pIQq1RlVDZCvxx`Xw&mCE?da4O$7_MZYx$IeoD}7C z7v?juU!TuEzORqq^}8^Fg!@z@Mv}UnT?2z2?)SiBV4li!)KHInq=b426PcA-Dkc(3 z<+T@iso2RMRP8mVJ*D)T{LZ`@{6VZ+%8eeJYTuW7f>k&6G3lcW>=iqQ z%qn0skBrX>dYCr4?iFQ&0+YdA~5Ztgt%OcRgis zH@gcHFZ9{wqusLWwfD{tlQ>W)k%xv_Y1y#U*IUjkA*0QQK?2+Rc4IFJJ+w5%M#k}6 zyGx$JH;<}QU2lHG?VL|$F%)0V?k8TGgQU9$X^Dg}K=6S)>f#SOvh2%t6){d_2O@7% z4<%C$VD0<)o;UNl4$$vRjKNb^gEbFojoSG_jUg!hL&^p$({Qom=|>pCpwF4ozu?3^vzv} z6sP2P(b+#j_iMjhil^k-Q*u>`ah5wz%lJ6iJ{cl)pM(JqW;bPJXIov;yJycz?nC{* zq3->(Ek23VLg&5+;9hBve%^EzFGat+I@+4uaIi@ z$1hqG-`AE?)_F4WM{eX~Al&OdUP{+&_Rp+3F1z==bW-ZvCs!SRsb!yByKiD2@CDpU zf05$H2zm^^-hwDGw?sB6z7JslI4KIswa3oJ4?!TQcHh~*NQb3AEb83XmK%32il1!F zPFEe`*YjkMUR9rr&n&zw$NS{Ym(fyl>{4kErFBF)rwZ$+96us=9+d{A50c)!R`zKU zr`KTlu{&b5xIB_-pO&ij=*w@9t#bwtQTe%_=4G^@4KqlwOAwt{VQ@IF%QQK=SWcZ7VveZu|988Vg(AR>ImHk#{CNS(^y|-#-En{_L3J$@MTEBOR0(OKKy=}Wb+(?TAl;I zUm!0G--|DA0mV@X+SPMs<9(3PvtGz05brH}0jkIai`++BU2^Ah*ScT+RA(Qs!IZ@2 zu@ufc@F~2dxmP-Z{7wR^w^`-v-22iyQYX*8+<8p8L|WxYbPm~K)7eu(QV*8iKB@2Q zF=(cCXr}woz;4xkCM!mi^gh9=7S5M`u|Prt7WjWU=9071eK1c>EK0{Udqc`vyM_k5 zJG&0n3_!Q_A6e(pL}JVMhx0uxB*h&QMPjrm)=p?J(l3WTlRNYoz+s_6nyAk^Rqc#T1Yh{Z%jk(P1t1mfPhHh*Kx zr$;tMJZ%iCz$2buGYjNt+!T+-T7;yABcbMq7qVXOiI6-jsA~x|dMzoUzEB%Wz7@796lw7QQ7qyQHlJtyl=7$F zSVzG7F~c|dqY4pk%v)Cv&1ZA;yu+(9h{n9(j}gBbp2x3iX@*KVj{Iri;^9UQWGfsB z_!~MDw2!rHq5EnzK^TC^rr95hTEI;mgN9?hNjMZ0qKt$B0i{>aqP2oX;sLJ?;xj=Q z0HdP3>cLp+TRiR1O@GM(1F7=Igice##KTb6&EP<&%?PGm-U~IhL4h}fTIxe$3K;+i z{V{KgQoVIZD9uQR9t0K9Qx8I<3IQdj_T$icSoiJ^LN^`pgmoB9rVr|f3D{}`Qi~4x zg~3H3wT1?~!DekpAaGN}>-~~GWig+pO$YD?quz)%%!K{Hy83u5777Y|YUcVY(pz_7 zA_e-b;H>T|7!r1!2Z}h@sOyXvA{_B%z+eIt=*rk;HvuV=df9jz{V^)Ls5gMKhlsaX zsAVdaNk$)!f@_43&{{2VG!*zek*EpN5XY&CKU^R3L>kA{|7k%(;SMpZ5g+zIhb9o1 z!UsJ57M@|N%<>FnCV(74^KG<{p}C>zM3E7RA(f9Y^RFfh+NUQ%T+d5>T6nBGLVu@H z_&iaI>{A^wPmfG^HZj7!%uv^eAnJ`-)K}_%{ZW6tKL8_&8E57uHX4gWjom(3cMmyj z3WPkd^9vsxyM3DnAp=&O!(_ngN5S(?UohU{75aK3n!4lB!bhQR#widi62{d&P2q!{ za9u0}vw2~1KwXfy1W~$oO`1^?t}PU4)CwPL*a`TfF(H0!?21RBTqBWC8?1u@ZJv(k zXe1WlSTD`cjGTj5*Hc<9s{q3^2?wHx{qGyc4q zM~3kHQymh{H#{{jZ=*JiY>IeVbhBY^E3Uwl{BWQr;BO9MwvmY$C{QwfG=1~bdjpI} zk8DhrzfU7>fo58%<|KbV%kFWUYJMt{DH=dBoSPlk8}NM z3e07a5wDkuT0KpJnUNqmM*WUj*KZx(Ld3@Qr>0|+{$=dJX^j3sTT5kTHCq4l3BptQ z1D*!2D5M7L@^vdB1;F~Em_HWqM)gRlC^(XspiQBMcocDFltlq*$kt3q{VImR#AS@e zq9GKBw**;w$5%e4ux)U4cu@J3Pjp0M#n7_pn5O`=)Hb#Nlfw7Pt1|q8S zN7)Q8;I&ARHxSTORthD~B{gW+-`*n37xawSri)b>W$uGrWl?6VK=EKEOhdryiHudg+5*5IYzkRM=?MffL}|iA+h8Cv*MH2Bg%m>C z0^8Wsv<%ShLsSRnu_HnUSJP#}aJa66*9S492x1(Q^-M+aiJOOnrd<NGIo#A(Yi9Wd!5%$K&7P|AgT^?N;*xe!Svs zj)daDMvK<#Y1o_zH`+L@8{XH#6opL)^>bi$M(S|99q_4rDTmznP zltQdrb8Fq2)oyp)EohVmV{{gyhHvl$VN_5UD5QSfHuD%V zvJOP+CjbRuxja7kn!}GnIHQKwXYTyN`@Dg$K{WngI35!#4~Od^D`T6N^YUTbJQ1%) zk7%tAwJU*z6}ui1RTiNZ@J4TwCmzuDH_a$^7HNTxMLfYMDlcG1ZNTHUou>iChMjcS zW(?0e7m>ukfS)4rgxfNqGo&Bo-qylYS?K>!@Km?V+0!393*p%0%op(oH(Ox?0rcUT z%&LBvC@mS0cxh&2l`egkFQA~m%ecpET|Y^`0bwDfibl^XJT3}8N%*MPzOB0$-fvhV zS=GiZ%dt8L>+rNo5b@HOFuImX=J<8tl_7;@+sf`LwAX3|&}QKpti==EtSLQ(qjmSh zz5I;L3}uIX%&NPm37Hgm-lI{})FJGuTA57XpOw?6Tt zMYnBB0D%JaGW@}2>gRObq6pW`WIa%I8udCDDvZyZTA;*ynUIa14il=y6WMHuhzB#G z*t`zWW7K~&M58|%4tP3ft4v%UDtMHqs05%Q47+~{Slj@FN)n4l^?Gb36x%llGM$G; zGd>)T`YfQKuo-CB=?Vox5mN)sfE@P(Dnod_k_bg?A1{3KCk#LC3E1f2$DU)19$uVd ze608p9Mu|cv!|uSgZg`|y7i6-M#<6lnB_CBGwe~qhr*r)K_8&SA8lZ}B+7x64kH}8 z7{TpkFm>QCTM;yzG%kQJ^ALcni!*hF#%&b}$~F@^%m|Zil!gj>Vli(dXw};*U2ZgE z|IIsVJbw?5tA1OC_XqhNigg+?4=SVbk6Mo}eCX8a+IhpCh$j}(Yt~spEyi~Q*~Y+s z-1!5azd!*ATV+rs<8=njK!O>+p)-Z4TTlmUR&*-87GQBgZJj7d5VUj`O*8P{y+pt*(FBIp;3LgtKHwQE=vlvV>LQPEq zfw4}B+dQHqOf=g54w0GgCJJ&2r4~$v`p5X=*0!<7)2DmX@Yef3M)?@er!DXzm-Ci? z^b?k!rbJE!nW>tMd;Vh)&_YULEsthw5@WRwI)d@Tnj+F+?6wSjNz}U2ijLK3S&R>% zP(YcT@)MefH{ka+=>;HYm~qx>coefv16MzE>F|cu#i3zTa5q6A8D5VW+yIlB%_b;J zN;Ji54ujxYIs~0X6U1uUQN+@&Eh|&gk0|6f$P2r7Kdo0j8Edw0_lUJuGR#>M`pv%Mt z{W#sq7~a&r@I1tjXauQY#F&Din72Lz>mL37j0)!R3F8b|9AH!eKK_LHts)~@cmK%K z?6o9-mAy5Rq6)@aEK=K^fgf(;WR5B3sn^#s6&uxI$EyE2rqoIDa8_&uyjgm5`mEPp z(A3CjV+EH@+OkGN!Wzqn410p!M%=ZXYl2*_hfsubEno&ZuBa&P)<-71b2(I z7A64s?yj)D;Yi8`I{^a#?h2X0TS`a>ZjykCQDPN%20R^j7g4v=BS<(NGeE?x5DvLp-XGh(BohK-IIR=-umf#OC{lfNB`N?bk>K*$sWhoL~w4MI*5AWwIe3gen3{?7RGIshP2wT4Ds-F%&TIEDMLhFRpkP4&CT_Y!7s3p|w z3VK7@`HiamtCxMNLCe=CYB7%`-*JxLhVo_MQ3rslvV83DW9bl#r+hzd`Z0W6$H&h< zg>TQ0#LNmLsx}a<1U0O#AT7Z{A0T$KVyC0iFA@+sjSJRc3+m|lPFq1X$8jS{hiqk7 zF{vg98+S|qzPlhytgHsF=%}NY1=gaqXd^tXTcF{Injr=xzr<)c8e7f^l+jyyjTw$@I1trU^x!6c(65~% z5Qv{_cuc@(C?09>8aA8=>w{_>5UVml<3VdU-CS)51+~e!CLcWk-)qz=p&o4*E>xs) zGLA%gB+G$O2pTwJ5S`@s&H-*R>Odf4Gf=;=fG0X0e^9w$OnP5>1xA%XFsz^fjYl~O zTsejx`+P%;pQ*l&HMEWu{(SBaS%tTlKCzksQV)9~X0WIbD}bPJSb_y*Xbu)NW(AN1 zrJ$3krpXM8cs&83+f^y8;V?gmGwT;!CUEP&fd{fCUNek*; zbIY>Z+y>~)6*YA$R#n#47<&rVePpcPo^TjwpjwGDIwgGpG&W?>%%Yj=Z&a(l<7!_@ z-B8(`XZuvbXO1&-_~uU-f3rD$gYe@~UnW5j&N@^moG}of^kKLuE1XzHLLEADRr-;G zKsqfyfye^U6c09fa5kXDMR4qG^n{U6i>_~Hwz32OPotteP73AN>Fe~##oj&RQrmL= z!Y1Da{di$c2ID_FhsB5+{SkgDZFL=4wX>yae!vvmtSWB6$2<{XE^b7MI`euIvy3!$ z{KmC_DS0t*HQ4BPqy)351NuwgZ)!kK!dS_8G|A)P2_s{sL_*=jK3poX=Cb<0Bm zX)?oO!09aa7;vJ2D{Bfg+62?1hKP48154K7X`lR)h8L%kG!W{{9}obowdf&i{jZ1V z^$Hlw`mzU2L4Bm(pj*7P)wLRcj0+tnHd}CRHq$ktl3%k016pZXVvK#7h9Tt>Q?w#f zI3U$2M+#u$3|hcNM?)HfEMoMc7BM(lTfy0sAX5mvMJQbwbesDkM!(h+r$bQj{f*Z3 zPoNS9Nm%0Q6=}t`&a~SsQH|b!rq0PP{-8;BcpT%)(u-{566RUoJl)Wd|~)r{6gS2Hdg3Bkai-5Rtc zig;m3udI$N_?vS@JfQ}JS}YM6L#Rtx1yiZ02eFNBGq}SVtj=Z3C~db|!L6YE8^2C` zm61?1iWNH=uQwN|ip37j9}rQudd>Mm*k*4>tH(sCS-n%B%ec;nfdvP*TfjOjV5D5a zwW^FPV*WtPicJQ%sZ2OryK7_&V5-X;p;lyzMAbz?Ao!!>ymQ-GlHzaI4f=Whw}4zB6m-ny=(E3in^ZH=KkG%nA2+t?n zI!5i`mQNbKPL+LggE)(5Zm_zMt|1I76fuNWWfV|6s4ck#us;wmfS^C}8bDE)xrR;9 zSQPcPn*BzeX#R2(j5=X9z;PeJ6Kpm`!;#JA#Oual0q(_a2WnQ-0B4%%F{qKy|Ld^o zN|Al4%V4b$Q~YA#aEPHxVbG}I@IXMsgF-$OAYFI&n2Fo@4zv~>1!wAq5fk^iP*an# zd7%M?yPg`*+Y*j-7-9E_{Skvv?^EYDq?qD1Lz}&dVbyj8!#X*>vlrI7577{pt{)T- z!hV|`p)UOj^uig&%H_A#tzNZiOlNjARQ)%INj8shQ3ni3@Aq(QEqAhLR8Xiq=>gs_g&AofmA?q#On&`AkfWtRY9uP zgm~|0g6jdzTD@Tayen?OkXyJif(p$*DE4~5@Kmm4P_-gxpomvnNNZ5ap#>a8q3cG_ z7`ZoS7@!zT6M77F1%OFasL|i#_tJXbR2YI>*rhPqv)6;5UPg6Ap-0yTJPMojpf;aB zW~{MF2QJ*sWsS`fiFi8d%|lHYQ+$Mu5?sW zV|p-5cpIz=&4QdE%mJu0E$9huCKsoO^3PLvo9#Gh;~xLV0f2E(W&B8(Yi=H7}NvriSxN0`xILSnZ|_y7a+>S2r5&|57}z* z#2S1I0eutdC_&w5LmScvYY4T3@eVsw1sL22R1dX+qULuI5QZBQ+E>J@+8AUv1BGZ! z(ZM8xVvG4;ZqkT%a}^&Bv;wmx#gFC5y?nz0&rchC-o`le>M)MBvna^N zxN=}atLDQg8vDXsAI%pFDgId0&*8C#rU1-ER6o{7{sGMjguy>Bd_BaySp&pyR-$}1 zi=ViX@J3qeJID;J9z2#X zSV)86JM8sFbR3XC;NXkL=-wfHp=l&9_bc0!^il6u#EhG+3VUYGIPCF9#Bc6rH9FJ; zRh1obb0YND<1JPj(#4e;AQQQ2`=D?@D#UfrV0usa(w7U`)qCz{N5NneA9$h22{?R zvA;PQkA}6{?{8K*LiIZmYM|km0Mxpb7&kX5c?zgSjLj~9Q&NWMXwg1eHaGd3c+(2| z!#oKJfl$=jsFZ!gizBG;>Crwylr;X);G-=JC5H-ajS5@~+@gA0HfsUNt^&nchx6ig z7=x6Ou>v#tV2E$RtE75JV?2DlRz2425P?<02ZxA}1u-JkWKX%Ew4<1)2!nvW?T9uMz zAA(+CaroDc&M{Ljl1A zF&@((I2FLGs1(pyz!2XNRm^EL`J3r8f+10f6V?v+O|2L`Y<+>#h!!-TrUdmwnp>3* z6f*Z>OF=JdD8!gmG3KT7GxU;K9dA42Ez0Og^ys51gC4-fY_I@nC4~iC3c#F+reJhN zj@u7P*IXa)tFIdIJ{|RfX;I3*bss2Y?nTM-Jr!*So#Xh^3jQF-6(iFfoY`nD5A_Oq zb+0W{ze#Ha_<6*#g2JYzl4mqV=iMI6RAS|PCX-|Ia1k?|r76anOr0|KGdK!z6LQ6c< zFYtu*eq{=*gQ=|fx5k^zt2D1ZIIXInnMU~YS_DKf1ktbs77>F`C(hwE1&@1+5q}s@ zwpiRyi$$P%awtqFG#J-D(Eza!X5)tI_2G;lpkl9p=%|b!#>>QMEd4Bvo)%dAdVD;H ztpNH6OSB0Z@HUCScD*FT5A0jCFC410uSS2Xh>Hirc;fXUmqsyM(Ax~HCwAjJLFnw8 z3!Hs`fV6{MmEH(ai$tXmKh>g8vEnB$0x=~2u#~L{rGt=6835(UnJONXBlDpQnGfa1 zVIVus3*^Q_G%9plUN>B?mlu3%@`4XBuZ&jw)bh%3+DE3m>QOp~l2-umydqP@!}AJ0 zo>%bkydsR{6?w6|Vu(hC4)e;N!{aFwGTj1QyN~yVtm(6EiaoJHd+(}vRJhIOfi4AR z4|pp#0uz7Q9Bv8o!yfo*f(1M*pEp4U;7jxPgUo}&65B#%VdJzDOckn`*WG8sN;8(l~A>}nK0q@hi3bRnur+K*#!uT{V_k~f1 zOo84LQBn#erPLQ#5Y3&V`4wNIw>`}LFc@ln)R^JkKq#cJ)(D{Fl{n%`hN0w@j5R8u zJ@rvlSj`$oPfVz-TBTMoyuf*#VMsp0uxb&*YyM45Ff%ZMc~B8-Yo<9zgiTBMM-0c@ z0NQdODEbJb&SlvDRH^Xr%d^?b_T88lCrUQ94+qW5)5Pxe7y*hDj9^;)>Y&ZW(9MR> z8vCdjBQn%D8Cf)|%Wh_Kt1;fv(qUth73R0CX+(z!&EF8i!#k3P}qT3@l1*XVX zNxz^DHEJGA<j!8#Nv0DjTLXvB+%Q&Zhv-@4ym5za=Vw)J<9b zhbX?yy08@1GTvrSpcILs0T@S0u@CSD8#3R~s0vc7kl~r7p-Ab5nKsCEJm86xLaI@h z1S9~$36<9SE$yRv~2C5h@m>WW$#?bPD;~@MYm+24!}J0J#$(ciycsLK#9@pd%*v zt%<;T2$QGER*Mo=1~589#U`EmQd+2L=?MgA8($;SQg6=b?V(au3p@cd0?O7#DOlX5oeDR<|=!_;Xg}I=5~7-*!$xVc~V@~@?7W5T#hFf|G$kJ-5iL!6x`OkbDj6Y?}}Bq z&U*mv-N=58uDWh)r_hGK$bQT3)bl&J!J79caXY^-HqD;9*l*$gLi~N}_22tz0Cq>N zv)2bQY07ohH^bNmzdr!C$H!cG6T^#cM>BKpakoQoh<||7`~ZHZz;Ai8nMZ94#2wCc ze)AqE&j@o9qPfoJz-@1Z`9d3%dwZ@k0q*bj=Q@vVVeVu{uJb1V+Y0{HFGKwBTXb)( zv+_QWFSwK7CL|yV;GXD$d_mYbTXUT$aN8fubzWs~?>@kO+a6?i(S6#2UUcRBw_AW2 zdGK=-zUgdrC_-m0Y_pGTFtgofzJJbk^^`*z+!CXmY_>(qH*NVoF5jx=8`-)oaKj$C zc_-a!)17vWwQXv?HK`rEs0T9Q@e|Ek!~+Wcw{_d>3h`8mAAo4bA_ARu1f%`&@ElI3 z9JJTYkFsp+w8LgAeJs~G1Kf?^%E3jzZ3V}6)Y&luKj)zRblNLb4ld}>gKv4$cC~s~ z!na`Ai3LASQPV|-mg;#W9aZvEN`5TG51!ORIPug*IMERfd-xHXO*ncJ4*i7lKw8$a z0|s{Dpq%Jv2bA`Fej!ijEVFzt=oS__Wu(N|P{*wRwZ#&N(-gDC$I!;&! z6I>`wtpEJ)?MHT&ec`5=E7;fIufI)y|FTpmS7W%+#yGavQZ#;xQz088n9a`D7nWkJ zgxM53y#O8tG=o##c`?Imj?-XJ69XNt!4t%g_yGhUDo-?~P)?6#m|v2FOQBvs;sdyq zy|8q8AilX2_pPIOwv~|(8d>KAunZ89Hd`e=cdg-xftf1vU!|udFt@C%Z2g=$H(KFW zcw&$`su61bNJLS#t}LZvip+6P_&Oe53A1r}^fRUYC@!qK-BoB%<51QHLAaon0%ur|P^yut7 z+Y%^*=?b=0l@(RDt**Vjx?*)jl}+~nYvSMMI;a0HyR&^TR`+S&HUXDwpgkqfT>=g! z{Ca`mL#e18);K#aQ~5N(Xvv7Dk5T(f<>OVtVf8>>9xZwt@Zwb1M3iT%T(#V7t6qIe zm2G*&nhI0^+53v(G^w zscrgbR&I3h<4_uJ_Qjy8DWf9RVA_vdSn8>dk`8hy+uGz%<)jk0DEERl{uSo5+^qoD z`rj~*2lsby;lFBoPxv=yFxOdjo^HlCXiCS)>whzT{b_@C46(43`Dx!K5W-_uTbhlQ(067fLM4R~H_}{cic3WjCLn z7*pZ#ZkZsZ$_a6%KPLY%gR_Hpi@z#%Mm1YKc34=-e$_5?bis%wbNNs>U5q2R|>G5;Ed@z57AoG zZ{9G3CZTUX7TMPk&^W8x?$)8>e3H`;kH%nJpoMCwzY#_v(icCU_NQnhm0#m@t_2qc z_kD2x2JRTRA#ii9b2_J8>vT4P+Y0Vk?pDrX4)IOk-T-&iY^QU~_$|e&qo{|OB`ak; zTv=wRSfyU7XQ#TbHe34wr*k8?K5!*vkhjl4xq~Z&?|%Zfu+*ko$Kk@uR$Z~?<_zOM zQ(P&<=u8uU$Wo{CC2%JzKn9gg=L&FxdgtBTS2@-2^wx zAApL+c-0z3Da-9R7Z?-^p8PT{=M`35AAMXNYIr<`{siGoGK8r;2uow%ZbpjX^)l2) zzs9|~$`5;<-43w*9&0}T$ZbdLYNvJ{uH>U!QaZi zOUIeV?FPDU!S_0^XR|WWk{`!W@-S1Em0U%FPnl=WhN*C4DCpJCh=-Scx#&kL-}utD zrP}&DK*u_yS?Q0mqZ(zHiOwFg{Vaz#XftF~CMz3ebDTHBYud)HU99sVa6{lqCOVy`!IkDYowtG8 z32r~Q@Fb`65pa9KZODhd7}mwb@8micfLjl)9o!CZ&w=~KG~hGc>GXj+H3G1Ya-GM( z+0MZ_6WjuD)!+i)9s>6Sxc%UU!7Wb1nj73K8^i;y9o#p-HQJrdE#P8VkPdJq*-qy? zaF2j{8r)(B;J`f!?g+R+aPx9tP6zH0aQncW23I%%^5BL%foop@ajbMYZ@$^-Tn{b= z?lEwCZUovnKzF^zoH}1GpHtN5DM+Za=u= z;D*7uhH{-H;BE%D5!`d&w*5WVxf9$GaD(9HoPqG*_JTVO&T$s<4{klUZQ%BRI|S}! zaE@W%2W}3ya&T+FHG(^e{tt4UK5$#XJqB(sxZ~g)A3_*#^T6E(&IfKAxSinkf;$9m z5S$arsu<13e4ZZEe5w8+{@r*T?{e=S9}S~J-`(f!~7rIL*QNp z=ei8!3N8R{&svx_+zNbd1G<~w7u?O@PJ$Z*Hv+D23e*>H!{A)CPUj483&6#|6+`%H zm@~&xP(Ppyw}X2Q+#tAFkn|Y1?cnx-0}>}JH=OMYq3(b?4sHls$s$R(!X)6nn(OR)7W_X0*?%2m4{qz@Ab)WCAIo)~{3+BE zpeg5U5@cXJaYhcbQjP;JafQ3{R2qHzW`5gVMtfuH-UZ! zz`+WGI|A`O0l04fZabuL@H^1H!9DRU@I!pze}=fAP)>q>4)_bd2617Y9|Z^S6#S;( zcPH>U3i0;=ul-L!{vLub0IP=d?Sypfgs>ZdXBfiHc^c|2xFYcH{|BH27yAbEJ>Z-` zGYj1DXCNIvfpP)Y2W|x10!ZTq;Nt{$^w3~;6M;2Ydy z;I@F<2yQXB8Q@Oc0Cfl4sksmy+^j-K7r6c4c7oduE(~rXxI@z+{AYkKxKp2oycYxi zsUT~BZ_E55L9m8-w4|lOgT`hzHyr;IkE6HMnwcPXlbj1&}YGD*<;3 z{7-}125u0-?*Z2bZacUwK)bI9c!ApjZX-AsxI+;4R&f89y>|hts>&a~4@ZPeY2qct zTM}7mk;36}0G;BhPzZFuOOtir04l}J19(X*A}uSMl$^5CB(k!}%E;0tD>_+OSvh27 zWfPIzoyo`=oosqPYp=b}Uf}URzu)t`@AJIR^Owhu`}D~9M8IxX2Rk1M(bhmc z^n+EKLbOFN3noJ}?0P&z+YGCq9%jL0u)*HVA=*|*B|rV(Fm4Cnn;jwACRhWFPzkf) zn+M3-3zQYsJ{_XPwBqlv5bc=A7tbdB;Sot2^t*4ZzN?rM)@{=jS7lkGK_*?I7of$fi2J|>V~?? zgm{RcPurmVN5aD*mS7jz6aTTd7!R-)Y9Ru4Ks)~8 z@e=_@-lIRj9ti%Kx;sqVPzjL`4Bz}jSz!~bg=qYZf+F$}0lQ!o`Ln@f@;w`NBX5O` z5NTt+huyeG(w~E&lKhQ@y|3f8i~a^lG zM?Q?b9@Y})GN^~mP>fryh#wB3?|`-BVHwoIY)FF55Kj3HbQ3oe)7}NJA9liKSObe- zGXB=#rxD5^6)JHX#j_vGW1Y$tbNb)OI|RetPid2n>0huFW^IUClA zCt?c<4=c%Y1Z*a+ z%V09BrL2w6PTrQnX7aWMwvxZKB9AZ@g5ev+^6q~S4{U~9*dgYq*Qj&IhC{T)u9s;u zurcqCf=c9L?ZgMsuoF6AHXLBh$b5-@0LNe>{ue3qmqofI&U^0Zmfg|Wp3p-&l1j9G~A`GNL41~k6UvP)r zupQRHGN^=Xh=B;O!9K>}R;Y&p7$?#pj#aP-vdPaZ(qD;tKjgK)l2@1qMUV<(Asmij zUk9rw&nBo9Wuu%0!R)`_7(_5%#luqMMxLvLF5F>7ANH3}0LP#c#)1YL?bx9bQeiXm zK|JgVVt)s-!G`+*o||9=bYkBL?YNJHA#f0O5#Ls5C+&@lv;86L7em?SA{X<_h8VE* z=X?amU@K(ym*2x!IwVZ1fnq3tDd2>2VKjum&x6CX&tMm9gU6v2?u9jQ8#KWps025- zU=oalVGs)c9u%hi1HOQd;9YnXo`1dkPE4h2VK2M^?eHu-4jbVv`Fc+?b0!Rl3oCBx9vG6eMpYR2I1nY_O+)nD!EEhI`;9r~?n=K{A{JgCPhG z_9M^m4!i)5!#!|2Tn}FGKp|wqB$x;zU;qTeucy*Zupi!r?a%_Zz*49M4@`$?kO7lm z0-On_z|m8P13KY-*ah2RGqk{+a1&e$^>7vZ5%M7uQeYyCg<%j3zlISf?1#7E1$YeZ zgPY(Qm=E*d3dnBneQ*cd017YK8tQov;P&hTC8irV;sXicnY3`yWx760|k%_=fEKN{dZ0K3iiT_@EF_<*T7u39I_z+&V(>H{2xv0 zgg4+RxDQsqe3%MZFabtGKREoGrggy{cnO|_HE=D=h3Sw1aWERf;Fn{X_6h8S$DkRc zy=PQYLEAQpqLjb_q$2_XA|0fIlt@QVs({o;liopUh)8czq_;>{>Ae%ANR{4uC-fFt z5|WeWea|`T`|qJKY@*-zK$;DJp?}#!yLqb~&UD4O(NN33 zG{v+14CuI(@C&wGXKuQ;qagRJTj~YR7H=xeF>PqOjkYF zk!LOZ{qV&T(VIO`<`s9_y~Q>8CZ>uoT{WDAALPI&1ZD7e^O!3>i_#O~ubqxgJ!&J3 z?{augYS`7AKxEZPfFjeoK7Fx7VBSPJ@j-?(6cm)7v&J+>fO}@BqWIVy=Ej^&0Q7cT z2=b+24*B?=)I}{U@e~!GjBoyhaGf@ty!XXJ%QaFs306jlc^!b`D!BCn!&E1qT9}$7 zBBa>6v$l%aCDbngz}`s!y8E_CE_2W4x9;gH+Smwrw?mejkmWIg>rRh!@>&a?Z1V2! zzeWAf5ZL>XUhOzwQ;gDcK$caRjUgvu@`5 zNc{J*o9u8fn_9?)1qJ#5_v%6$DZe&p;@E9{v2$3!_easJRQVQMb9ooMU9Z>+zW^3s zQ+3kcnFT^bCFzje>-d>hkJ^aH71&MhlhFgPm@jSJCRH@Y!75xK+&H7YVv(FvmhB{| zdSuXjzv+GrE_^~?z%iziav^4?)JxVh#^ei_>D1*4GgbR6 z@|39KCKMU2qV_Or45$*Jj&mLqnjuy!2@<|^xe==CE=>d#pJSdTWLez-9 zjI`ebm!IO{*wkgck4snyJQc3%ypNk6`GB!)A{dY=FC=O4z|QT)H8etE-Tpm!oHnUF z1@Y?PcpdDw#@Kz&r!)$A7iLS}>2+BtgCK-HzRbqoAARgrrr>sR-6V_CCi-SU8ru1L zIrECSPLY={!ZI>M=lk!(M$sd@Iz@Ks?p_LVoev>~tIq&j;W!_?TR&yYyz=qI{YVRO zW1Q-yNw}9d)*Rywi2q;1fm9>jRsE)`6f$2ovcnlD;=WqATGemqN?n+npeZ?Xf5-!R zz}?zxPUaO;8=;(CurXKY1A6?sbvSS4l^Bj&WD=x_~JKfHiIOL|8WqS zkq3-k4OFzoAEe&>-cG<5aw7`ZEQEG-AGYy-J zk@1h=x%7u#e4s$1{I1w=>lhKEg&5ywU{@H$LvcGS@7?47*b2&S&K0h91D19$dW^uQo02Qce(iJKhlmmJKhNr3F*L0yNK$=SUo3%Z z;P$fzaR~r%yHy2AyHMQ1E%YH|gp+}8jA(M5oPyZm^o}Z)Y3}~@@3${la2jwL!$`X0 zY@+zg%jFLM$9D@$H((*}p-ZS`(*w(OFE}q6{Sdbc^->Uv!~K)1#)xhy2)myWy_B#B zF|Z4LM^6fq>3U2cs7NBJAXKOTy1`iNIQc%tkj{3QrW2gKxPLfyOR*h+d!C>TA@pE< zG!hy#)}B~TVICgm#>p2foKE2W;>n>KTz-dR?xC}r1YfXj6Scq>wVUFU8hKpUzJ-%( zZx+(I^eFx)TP?!>WJ|)E9?aDtugs~jY){$FqI)xe7g{yFdPoV;W zE_mo^SKH2VIbA{orTfwU5QQ5951HcC9pX`pYZ0=T5lD^ zC&sUt--=C29CcmIg^bSrIs+lzoceS@pch-vG9!o;g71+)`GHI0>GjPYtwANEEyloX zQk8ob%{a6A91X@*i#$F#?-{BPInaP(-)H&OR>970+wrIT1IHRqK?2m#YU@%X*WhQOM4y=kyii z1!AN%6w_O-nBUtDLL*#&@uQx)dDNGGw-R?q!pocjSxF8n7Q5y0f7X&05Z}j#r01+ z!PTpgZr-j=l_v#=p~i~Fz0143d}aUJ+CY}QyPt@2fF}|WZFqy-05ZgN1)(@g4GFm~ zYsxW0lVMm@^NjXa&RVrA0kap=B_J93{>C0bO`QXysgNoO8Bdcix7NTw#kUE%0^`6# z6)chP;HorKfn_phfo+RJD+u-Fbk@h;t#HA-a+t^;)D+JxdkF~mj4YKdxWZpQnerwl z*EzC$^7EFdgKvx00%YcKdEk#Vk*k9lkFXHR0o6_f*-Zd%uP2oues$;_JwJ0Gc%DfC zDvCi7_Iz$Gf3fjXUIqq6EtEu@${a+YR;WSwn8lgklgOY+PI!JLVT_kR`S>C`w!T|D zacvwD@h~jPmkyB5gPgyBG&}rxHBLV30_7gOxDj2nVFQA9WZeCL>)1_2n>>|fC5+}M zs%b+sm)Hkp#*1A3W++Mb;|MbltPh=wb?4kb*_mz{fs?N?MC;KnTQ?wEeIhKhR~W(3 zfYFN3tWQG)*hfJfPi~Es5_GjbqE|Z*-WmHr$C2NYo^~$}YuSBvKLelE?JC5cS&USI z!U(+9Wlc^sJnO>&Uzili`X?*cMOH?`VkPmr|Su{ z6xsQI+A%5?~MYh_5R0J;YOI+@$x zl9^YgA-7}%yMVWIsUOy1$BPv)Q{Er<+m9rO0uH5ZF=mLgSY7~U^o`tYA&1_LMu6@5 zllq{)?z(AbA0gh^<+-98AO*oFq_P*uq6v9#+QH^}f!5Bii~XAvt)oZ&`bMZq`9J<_ z=LZdb82Ylpi$+yBbZM2~t=~e{KKg~X{c8*DN^hl5Y3%s4NvP~G|L(zW^)@K~6IuPg zSfgI@5$f}0lWSC85!baO-0)F;@9C2;3+x^1g0*69+Y2RL;jNI_FuM(jv*+x)E7bW> zt2L1-D`2h2REHaedKsl5(JgO@2)pL+woOe2+j}0c%L!P5YNA0fD@&VdF~`>5*`XWn z+X{-eXn{=lA!=3)dl8D2(xnZXUw+yR@H>~`Cc&nttbB~ABL$`?m{aEeRj5!k_fw1% zUrg{kC~7^ewfaih`lir3&5O=`XC~CHcjLtSsVayupI>+@1(I~hzO_81ACqw$PT?H0 z-hn-)C?8MooHfBntXfPD{C>G7AkHv8JMfY^=&OD|n&fuPxh6LZTclx)36r^{Rj#Po zS{~xVrkGCvgg3Gsr!O%6y;^a@A-OCCK}tsXr3#|e8FSoQDXa?=k2G=RQ+cti?FM%^ zyB6s;ODdI$ZNi3t5%t{8Fs*ttA)y=10L;{rAE;JKq)2s^3tMK(4#X zh|4g$PjOT=PVQNm1pZjYWf;b>JJPu2&1h{FC9_qL>_=rY&_0ud5;Hpg?U#y8ndP=f zdw;&A;>gEh>N?PBXml=AfbAh_HvU@at{{%g6{sW{??F=lQ1&E3T9N)y9jbrWmkcpd zN-^R~hDjAtf>9uD@XntI7wUt3XA@Zn<-tW7E>p7DmtAuA-BrPz3oW@UPwWYr4|w^7 zaFpV}rB`Y+miEA*U%IsieTk+@J7FHVxJ1}Pqa$6798e|cedoX-q<$Hlswbn9Wf$1v zyj8qfQ?Nr2s8)7ez#Ae~t>r6V=MSj{(g)fhe1%pa%!ktuF~^+_+sljJ+t;&Nk9n>* zs5D#c=toID$t4TyjM{!__!x70w$oJN(IaQ&cg~&ml^WG_57ev@bvO1~6BvZEPB+}Kx{$rhgE z?BIURvH$W;VWSnecX`oiqc1yRrqX2S`XumI72$TEY2nNwO>dUm*tNT~c`o;181`{x z+QIY}mee0-M363w!Qa~a#l_re=XB>k?8x<#G||dO4@n2Nqw?Z?lU{+&3QIzxIhod{ z4}Wwcj=V}hlpC-XOLGf!RQdD76O_Vvg)5&a9(~){ew>|kOo>_$ zq%z3m+`srUlVWN9OJlzM+)`+CD-aw3e-&?wxziL<703--(-Z=B$XHxH7SiI!@L@*{ zqx^p&H%2$e^|#+hc~qvWKCWq8;@nwlVFb2li4Iqtv5T8>Bdx5r2;%2X1n4inXdo_X zSOuf}9B&qf7PFN6M?fGm-jQ#59xD`{hcu1k5WV4RD?qAuBvAb7V%xTz^Bl6OyxIX& zOdh(}l5_8+H1tDIxu4!#{S}e!ZSfk2jvaASYJmixHQZkSMGiA7dyt=;e>YVs_Zsj+ zu!PkHE9j$RQ0jT$3ECE-K?jSvoyCVm`5m=0c{=Y#BGL_eUm^z=1s7asF5r2PgA3Go zMcs#L+N*N)13Hck=o2aJ;gD~drBu_u;$5ppG+}lZ2`OE7cZf4f=k#05&RKrW%1xgi zm2v=jvt)N8NlC7uE#2!Iy=xkv*)4-!l@Zw9&x%C#N4^u1hmGhRGOXq%q zA03&buV(U-^~ghI62Xjz3V2n4;4m#&ZM?yh5Xd&c$#_2AQQy{daI5i04p2VoMnyl-9$ z-yiDs_4_GL86{ASFUR$o3e*#Fq5 zE72O)qI1F@5?eAK{`~i!i+7t0`E~9r1&auw1R?OYNFglhJ!KSR7G4*l!o=wVq{_OMb^~s1mwwz zC@CDjHdWI)M%^&VTWV4=N(n_oktkM&M*&^9cMv=U&ONK!bdEiNo90ioWusWCU5bmz z6Rd6`gXeXyAPlk4zR7_Yc^Jcy_0_;V73oWn1-k?ttYU1#qa)ESyGEMLZByw&>33PA z^V;ORfNR+Z#rjjIV!ciRAaD2ewT-G`{og7kGA01v#wW-{4)`WZR!Q2Wg8Zcp_$t%! z4!D4AHaBJ_n#3K;`^mj4lBEM=BbQjfz)+8D+ps&k+Wg+4pvf*)O3SA-fbaAbR}RKU zfv>6RUP*g>0hl~1R1gyFa+tecDbI<%&$u7SV)^@_cNM|HI>p?66n^Fh@*W90<41fU z&J=Z@Z!9nhZ?me^CWFk%>t2rq2NDsm^>rTf*ZP?Q-d0hFcdg>irje8V9^)u% zeK%G>9N6l1)ehxozNbE03rQ+e+%v7>4Z337Aepxtw6(O1Y&EHIMGF=N=(XNrK zZ5GqW2ZYp}flXAo!2)M}^e(>%YQGbU%i|9^Sv^#x~(y}vray{W*RP8fDM;4 z%+z?NMA$8VfKufHzHqs{dfC*8Z*KSHqg|NzsXU>Vyu{otC3Ak~y}h;jtc5+d3pcRCXYqPP=M~ca<&@$fnHnLTZzsvyG1Bre0y+3+ z0XP9lKQ!XM5~zGGqZEuk@%th3sREU#B5z$V`OEJlEx*lQ|ARpEes#TkDatkJG8+-6~4B)&LLI(fhQYFat-wAi5|ATn6{&xZ>;eT*C^beh` zD*Z#`kN*JT{RgM33jY8y_yEoXR#SP&~LH3)SE_jGRuEzS9}{ZQ?4x!BuQeVYeNpi?#RGP zfZs@_PZQZ4nN7Bfb-eGXeC*<3{3lagajha3E|Mr(zgbfmF(P6?Ip49*2U$uT|bmM z%Nt~n*Dt|yF0PD`PwWNPatrEikg<|Vy{-|S)jf<_I)BbPmSzcQUoF4*IlLahn%ON@+Jv}b9ieZ1iFsd{ZPtB zNbTnf(&%`Tc%r){8~udRasZ;e<*yth*)uqL5iaAB^!KV_WA}@8kqgbOrWrE|Sn&;8 zj(+oFSj#{3Z^LQ=u!E}~)QIwpc6G<45b-dbTW@J?tB#xA7TI3CnAzrYc{+N(i-n_!7B5{!q>*xZ%`Yso72@3jOr2-x;}c}wXPmkt@V znEo6(uQwg?_WOm-?GPA(S;EZHJiTts%tj`+lQv(cwm?S9WG1o zHbaezw^5L?^*4c8`1xoHA4qEIJ+bnAs^DU4t8uZOGNmMgVi51xj=lMk2G)6pnK{4zPu51*%xt-8vua-O){!c-Dj z0F4U=-EO7);Q;Cy^q^YTt0Anga?tC^q>@sPvZ*6)prY%W-9v%wB|>UnB_ zXt_=z*40FDmb76e3`KLRtQ@4A2$a|wM$Na9Hf+3R&YwzQtJL4(q`oy#X7+F4DB<;J zW~ z9&;1WC&JccT)^~b<}uhkRLquE^}SV~MW|SXq4N7pWFnDcTo5;I{95__#cm$%PR^z& zWw$om#1X;rpG)le%wsd@rA*h8CobjV@qoq|xZ!{LIlIfnkR`amW!F$KL#PN20{a4Y zv5l?TIsNq?Vv{(q4oGOd3Q*!d__0+p@Zap^VlVv*#dde&>So|lxH}{=aprORr^0#x z8LLW9Nyu8(cX$I0VrX6#mRW0=6?dKK(TTz|yZ zh8ep)JIA;Y7U%MD2iPxq=gXo4RTJ=D#kc{;->I(NyiI0d-;m{N19F3< zMhXhA!5r8$G>Mc2d7LpAK)9s39aej7-ycnv4NYzt2Zm469<>~%`i>JX68Yd5XzvtFli6ELOwh+4$;x@4>~_z7nI4XJe}uw#m#oo8VY6L$qod%QsZ88Y?hwh|25s^{oK8*$P`>ho$Qvri^Vs*N~6rP<4BFe_yTgKmqtiE2j&g9K)^1l>0Wj?WAHVXa3sp8SV>`Q#l6 zqCa(NFfoXwZ&`cM(fk07EBMFO-D5cYj!0j$pd=>NigxAI{L8) zhz7}MdZ(535%CiA-T7$|+jYGD)qb>TS$`wXxq&jqG%a@tNL z&*tckq1CmRkw-UeSFPO(uB35P=U#ph6t+jQ6JCDBOC)>eeDmbqxA7i_2j|;0a^AP< z^T5qA?~8g#UM#HF2o)WA(|HS%G!KL!^1klrtS3R(j^;|`#N zR&xq%;)?%O+n#bC)C+blAd5Fv{O$v>LQB0!-W^$}&`Cy6PxkX2UZ^nWHd$)0B=&mc zEJg@}O{+dUkPV{ht^*!yUcYXo_whi><;AXY`p2%yw2B3ROe^ih&x-4aiyEQ;-YZew zD-%(wY66w<6NmiA`dN{dSqx)H5)#lITzYucQ?yls2Z7-ag! z>+lBXd)Zf*POln^CFGyk!)93X<``~F-$@rj2r-aY4hslg zM8x2ZdmxDDO2Q{6UkbQ&VcFc`m!2Env$DE>_a@q%0I9S2Qb1yaYWw-s1NZ5_rDrp! z5YBjz1yHt&D)9}|_g@!Q>jgKW}SY;wL-y3!GgTmiG zt`Zn9G1tw=4~Qvdk$SHGE@fB@AsOL@J4H7yob_V7KW$I>?W)tGl0^B*QFjKh{oIno z$%kSzHWNy+LlMqhp;0u`MJWKAZK_LFgT|&oJv}1{ixmh%Xl{7)U=0b+MiQmqkFp;w z??tQYiv2Zlr8+KS6ODh0G9B;+w5qv!4r=T(wrzXMnjO&2zUAZRg<44(>QALyxlLZE z22y1J1Sqs*MOMyh{5UREatC))XA)Pp=7^)B4B9Sjdd7GQ#ELjlwkO^Wrs{EUm?Y?m z3K&4m_BXx_4rRkk*n9WAy0!TVF7)N?jv_Azs;0n|C`pxmB9 zuv&DPYV-0~$LvJF`P6^82J_a+BcJryo9*eMn1GBuOqaR7-Vs?cH&Q2-R50+tu)b4G zcWj=|pC?~^8JZf3D-_yJmifbR{{{SRTiz1rGH}*V_>4g}+2Lzr;gp$yP-A|FfK9dz z)f=L3_nSG_HT{n#Uiy?bw$-(jExE>M^ce8g9A9YzHp04!x#i5s4Vbvzf5A8L?)(rX zq~gGKFlAy^znb(6|MHVhw9Fe_)ZctOralkP)*^UC>9u(BOpF|L$#q_n(xj4#djU2% zz4ov$^mP}vrWbeauz1XVtX&VPR4>1`i6-UXQ`(GR1;0-Kf{W6c?#-3NPy33>pJhhx zkEdlh)U~SBH;q>wJ2>904DaMvr^pX$&!vNV*a!N}%j7~{@C^+*9y}L+XUIo6_$A5% z-CWW#ZNILxB7+EyVxzNsA4B(MsE1P7Y_F8N+0KnoB*5v*`fyK0>w!j;sHB%-jaS-* zP=&h#pJi(D$XSc$7q8q^ZQUJlG$)*(J^Nvc@Icu(TJsh-V#Hm!Rhm58fdbSK3vATUx3{MC6SAw(i4`fv!htE7G6X+|+VZ!xM8yjV&saG%H+ccBZsmN#^ zNb?3|8G4o<@eb)IDljgbEc}N*M0Z2V=J;1qODRAxNzC%aR7%#pSjs-V&X=i$QhY+p zU}L(k)ed_bT)DBY-&hHe8TFJ7(Pc&TNtfL>m`eTimX5_Xj%-k8aKX}eqx^|R%(VI$ zu{!VHp9eHAboL^Pb%;x^uBE&^d3dI)Udwi=7f^~D5o@eA@)0|nlnn9E7NDfP^x9j$ zMm6@V_7IbmCSM+hoBxq4b*4Y6zf9#=DbuM|in?tGV$PbZd5QHhiA_La%;2 zYMJnR0_)K&(Kue9bbX!j9-g%Ialq};V9J+wpRSbA^6`q=kZeg|g*oEYqY(yY()bpC z@i62|X4}xtxVxz1>RpuumPaIzpB*Zamqni=OjU9`7>@QvO;enU9bdN_IckCdYl(Jz zGdA0o97PvOse{wP!{S3`CVECXElsKoZ(__@YjB5^SDf18c2e}%Tjj(cz6)d%Of(|gB%Ggu^)0gcFRfA@= zRV_=4wGiWJS>!CL3LU?^!He5}PjC#(dYrD%oeY zlf>DZk`+7~_pyI^(zR)#=0g)a*zT=jY%u?|pcR23R39OA(ljfpbnq{WQ^zG+fRbCY2Ho`ft%y*A<{d|Ixy~e!a1?vBMT4 z)g-;X>9xDEo1@rCpNwR<8<8d}V(g*YHAa!T7rPYVNL= z(d2!ix~5z~Q(1ndcd+G~6d@+ams#?j>L+VVRE{!+Kl^;h#;JOpMuDszxwH~aRO-%` z`(!Is>YR6-vhF%5%z!K8FDn0uNy)rvBG5rOH-BYm>6tL)!JHg*++-sXS2pFNV0|yo zkcNNVl#|JFTeQ^W;g2@im$hCTMJ-5X{FDnfMVodLQ}L^8TW{O=Z3kv3&adAkr(7S_ zeM?41PwS2f#Jx9P8yxND;T!g8_T(~De^a+X5wGZkaLU?#mylwZECM!;W=Bd&Jkj0A z=bUfb_MFd4nHqSUCy~6n-D+l}M-n9+$0_tNIwB-eB$R?KM}YZk+&*Ihq<|>WRqN5P z`1;~yfykw;u9v3y#~D6*&9AwcDQVm4Ln%C{f%yjRhsXKo`;EDpPNK#Z1}Z`3#a?bo zS_6Nzc!k^g)@Au;NuRLfWQn}(KaO3h>+0gmrsRsVbMlGuso;Ct))CEDW?`>q(v&GY zd+A`6{maq6?&O)tAB6p+=VY|UN9*QE(`Uv&P3Bd^vi{o0AB0=iSFQ%h;8@PX4sVjS zGtSt!O+@x%*Azefq9veEi+?MR&j(rXb;p@7z_XMw^4D*6(mpfipPYQ<1$2rUXHBRmq+2+6%fF&&utZ(}tPv*BWr zlm&77wy|?%7TI>p;>uz-yYW4C1sxeGPMCS_@t5+#wSVg^zlxEl`Bd*@DoJ?`O7#`L z5sSho7APj0MRBgYbmx*1<$U{`&7^!|k?Z+I+*^0C=z%8|r3dbl&a}zGGIMf&QyvBI)<&Nl&<=+s1{pmG91Qu<< z9}tCM5LfXLr)yO5{PK1p=kG(l@obQlx2-4Mv%vu|m8)FlYEG2lG=We2%_cg=Hl$S* z;ErL^##$vj!DU5#}5qGnysMrCF9tJ+%1@(W+Csc=-ic5>MtvDz$ZWgGkA7{ zD+jacqnnSDkeR=tb!7v{u!K)HiylFW<*EDgppUlDrGi3a;H+iO9hxJ@zpeRtQ`4zw zH5@+A21%Nb4~Gwm_T|XZ9EJv#hKxu;*hg0L?C`NIYmp))l&KMT^|ehEzY3>J*v0+! zW3%C)@r}!j{ItLHUc(CwxwY>3rtqyYr;F5gY18ip$VZ}k$i(D<_Y z^wLvvvwFFW33%K11iN#-jmjI_*%v?N^)y-=9GIPcKN%1dZVpHk=4Z<;-rD*|vx64m zl`T;N>SzgT2vpE6g)!jHH_^6fZ;5b9=*?Ocxg@2KbUW`oi9O#CQ-H zq>G3N@*6I35ZUTj8)}Z*^v@e*Oxid6JU5otBEnWE=rH;JR&us!J-;|Fq1&(D(zg1p zF6=!k$zHX$=$f#d!M4=O--o59F-b~=vNmq85zxB$Xj^NX__>>tl75C$O zQtShX|)!QN6h9Qvb$*;X!`&Z?v^JZtAUXDi!wx7#$ai45*~D zi@z~P99xUek^VAI9 zvl995A^0Zw&7EELo@H_7KMN~iaNtQe!YwU`xGwlW??P-zzm0^#mA!WF2 zZa&U1lG3YBr9T2Fppv^Z%KKR5tQOrob+mR7K`eEm8WkdP_u`AcK& zi9@C+OED61_`1~%VG*Tz^~R65@4Lsw?fc5c@&{~zIx zMwfcE(ZwxG0*&w+VcObzRn)`p_%)4sme4c6%Gi>!{Z#o~5Rw9gRf2Wpm5kFiw}{=a5>- zr29c40lwe&06Vp&B{uGsX`Yahbal>=?MCWjaP;-aYD9o1ZC^W1|1a#a+I;_ouqv1V$$owfriEF)@5>g$EH@Y(Q%1J zBPgp>jl<~SaRWHZ$Li`o4i4KRbIjDn^D$y5O^b%1eo$HUDV(f@C1ZV0UFM@}#<8G& zS=q*(zffV!@P!x0$J*Mh?dbM2uWy&J8Uk4a%L8){*F?+5+@k95@4Tjq*eiKas@Bqz zA%HOG9ynyKogkrFl4^eV#QLJ-O_b+{q?DD(gj{yHh}ZA%w`tw}^d_sJ7)|iHnMMuh z>rq=D-@YAcBJJB^z8hYeu0GQ3`wXeI)oiSGqC`vUpAn}>7ih0q)xOOs43rUWY%@Q; zyoKc#8{fAxPM@hNMm73MSfXZT}?#ks-w~ElPqnXUqhFSPCC?ga8o&U zAg7*BRFpuIsA`&J0YKhs>5CJ0pE9FDpqG4JGG#tMUes2;IJuY8yCs3z>{-|rJdoX7 zs7Ww~ZF>&xr0AhUm+{qoJS_ZKi+(XHr_!i!VGo>5(L)84$;vUlUJHFRe?pgIK`SixvYYF%tavw9(u%T3Z2lOpNNm>_KqPhpo+BuGO=%=6G|nLG zfHY9~ll-Mjqv$y$&2Fo`eIZ+e!)=C<<)+l@mE#O(@}E7!^zAO5hO3O*NjnNNtD8x- zmLCxRpN-KKw1v&l9upqkEbbGkDg;ODMQHnn%|^9eR$mypypkVrs2ng%0xW&h7Js%w z<@6@BjRY%RqE~4m4Oz(mxTC)f)cn*5=rHlRZ%#94Nhkh9+=$)d&GXNv_$z)1o}HFm5AMq7{rXWM zcs;Z5{N3zSnwFZzX!G|D>k8+twxkxn24b6-QerOXrTJoL^E7~pHaXyc$Kh81my45A z7w2&K&$KTk6`FwhluNcK0A{uqd9I8G64D)tZOm>)nPFjpxi=!4`r8e}MVDgcU(yC5 zm^m4^e*WUBABa4N%}@44n5N9U(@!y+9b%iqlmOY|UQ$+8N-oitF^R7*tz5LPiQhT< zp=J94U>=~M4U5jMRwKP)zqpP)c;@1lj$JCt71}&Uj&bmxRotBgXCPm9D zj}pc~PU@}g7BVQfAQQ=?lLgp$lYj}d;*%`L3sRbyHF#kPd7A)~8)v!7bY}oQ)B!t_ z_pz*=0FP)^1x1hxa*`Lm5D>$rAq2W?WwCIq40e80!hGWTq0)Rt@i_X9gSNAST z&Qd!X7G|9r#`B@`7<{vTX>C9j2c{$$hup8DG*>3k6J! zhUs+E$~kr({)~XP&|`Je#5{*9hnU&_)J}D8wO*l-+~-UY+rZEz~A}eL1|39)0IOE(u=Q(6+{;kNsV z0aKnVo3g2?%;Op?$0riHEaO9RHED9c(&SoHr3n{<(CyH(T&K+=FIh{9s~>onYc5Q$ zNr*@s5|H0vnSvzBm+NUsET0q9=~^TPxgR|K7poh0I^B4Xnx2XsX!>U{mjRe10hs*Z;1sbq`%KeAo?LqM<@Am$+*+C zrGdfw*zZZ0alETT!ZPGBqgPw|t7>RC*wH4P)@f_k3vmSBBn8X(bNUzNl|Z+qx zggucZkR2F17~9o1T6a|j70sQfuIk(La;`wH-=@r)uQ!;nVH|kTCGgE({3uq$lml-d zOL4NLay-S!PrWW^M8|7lX!J_O4K#S=C)_ZG``4er6Jf+NWf)<5!=Gp@H=biX`i%^WlF!>kG0$9{lU+W@-;1A(H!;fEqw(BRLUpkb>E0tC^ z>(8ZG?uh(@^HxK1&1`Q$@p6?TgQFU7$AdBi@X^_<(b-*iht_yRBuC-OIfU6iG~YJA zZ^{H?n?I_1crm^!OP>!A`-79gEV@H8bk%N8tDsT`0m~Eg@0ozTS}lS1Dcv};8W-n5 z|4=sGg;6-i=0W2+9Bm`TC&o6%C1AAqDUAM)kqNWqHv+1Hn5RmNHt-bqI55oa4gk)p zDu6n`hsGTb%FiI2$lpPE3m>|Jfd1?kd%vDaK^wv!q-$xC90@@WO|5&c)BAxfw9hWn z#;^GrkgF&-|LpstJ9dARm_a~jbq}Oqu3)U5W5)N5ik6vWy&*HQj3X5*1&^Ty6C)Qm z4A8veiz%n%1t)swlUKm}8!V&$mhKRyUX7)FW-LC>Rp&6|M~19MIr^*WY(@PkG#3Lv^{JORLS)>DHxkr>ug%nSdX7a9;UaAN+63QiB8JXO{AEpx(5 z%ocn2<1s46NMA%w0Uub{AEu@Od(f^st})j5wHEObF+#5a<3GH?P#;$zC!y6R%`5v_ zS!0fy3U_xXKSX;pSOO`~i?RQFbKPTd1_=Q}DKQav7)C07ESBt>f9N9!k;&lQtjUoS z1-RT2h<{f_iG6@zhu;ljVwnA)^RVy*;qe$6@B(+=F6YOj6zJYu2xIw8rKIx0K^&rV z+$3`JW9;g|7-}6jc?w}flA%}KDi9EIWZr}}e>V}94slbXjSakz@#nc(56AEz0SHOO z)sPNG>@pftme-h z-QC~Ps*ZSArCL^Zh>t&KMU9HYyPA)d<@pRwu>=A?gJG8O!RDJ*F0^vFtKjS$qG695!?gl=zQi zqbGuw&N~?4&)AJteyk5cmFv61gZtZ{YTy)TpD`AZOSFa^lU0Yn1uyBlu_kbvxEX)6 z`R7xiYom1_*@sH~LnvWYBiGf*{d%b73E8_9??DWHKzY(CrsN^L>j6Kugs`fF=St-M z93u^C{@!5(b%5wqQQSC-p_Z`Qx>whrK{PEFg#7(geaY+PrB$bwZ!a^j?j7<+-w|ECRSzN{B^txhV7m#`z`t}>JjeT-0n;v` zhzE#r^+2P08;dtTCZPA{uDPxl?j0sVst=3q9UjFST`k~UrTrIE6;D@f>h0F^?S(0 zNdwGBf~rcL!{h%ksXiVmp?vU${6oCXVcgs-U+oB|&x2DCI#xIrf6kEmitzqiH?;mR ztE&i;KaK^x0%;&K6ETay`;J*Om^-|yKS!zUy#H}dEc@r>t85!!bi4A;_zrvqNHnvY zHqwXTHeLZ(dR6fZ91o#c4yoWqvLU`mDAp^mcTB?{Nh{o4+g#^y=3zON_T%&7 zmuY_WW?gXKnq7wLLfK@H)QS-N_8Y)~4Due5uM7484vM(}5l^eoBL(3pmG4o+&J>$> zG>+Jpq~MDYZRdtORdPU8P@DanMo?x1F!YS*#^w?>~dViKP_K1UzGu=56^%b zre6oc8OK>(oJfqaz=I&y%>ujaw6#ujP7_mM#puEHn4@tEuP2iv`Hez*@kk|qRyYSz58WAOeQJ52!K zs$Cr!GakWp=l&44Q?14@SHQKtU+W>5?oIHn*cM&$Tn)x6)^G3Jx#M9ULK@K!>dqBR za}7&x(5nF~5dVf8_~91IfMT@?BCa!U479lg+7NAnn2TvLpfFt06G)IP?meQ&slO};2mqT}p4jhu7jlJTF2PJzKq?O0<0XXa%@5RvTPv639-?{{ChQBb_AFBAtC zz4LR80*y#5eLQS$<~EG=v+SklP!QnC3U2uLw)IiF&G+KBA}1l^w&dgJ%Vsk0tcN2O z@eBz#{0MHRc-nsT$iTnS;^f`=YH-l2aiFvr66(}58z-mEQ2EpieEN4Ir5%RCgA5~&0sc?l0?IXjPWz;7tgitL0g_fY0l}Op%Dqv)X;yCmb z@Jmos9+pPdv#!|81ulo6MKp(F$XY&y@4%qAOyCObrTPb}^sCnZbo1el*+W`tvh#ynGQ9LH*Dz}!eDWtdrE z3C>9_sPEhn!pab4u=L)g*cEwYo-NN6ERT+>#SUr|jrrMMnGcCrk&~aiqQAw`A%8_> zVgo(Zl|J9S%GbvP&pD>tj3`waBHkm^m7$?Q38%0Bpwk(iVm7Rcf~r~a!G9hfc`_i` zI65Zq*1HAkx@JobN5wRY(EFO*=9@~Ag&CDoY=F{Cf`GN46 zydq@fQ>dtDC1P}^V+~bK1PlRKjc(gVFS0KJM_dk2t=C04*PbJuxfj_$=*4Z|2(*NG zBqSjHw&LsH1*M-k`#SiK1{N#WcJu#GbmdV=t#3CoGqDv-W@budWo1ceCOJ{JTizzU zO_~!lYG%nPuU8xZXPUV-XeLT!W#zz6%Opi`NUcmrGsr{+Csb6BQO5J}{mEJ^&N{4j z*w23Uem1``^YVCJiogp%yBYjxlr~APVk>`+rf#-q`YU1G_|+3>)Q4isL^5=N^xAg$ z`0+fL9>&YSVGD=Br}tW{56_-;%7!-twUDO9Op*a zp^jkDPADt*$F*bQ=a>0n`Gbxl$(}aon3qi18Sk`=ycpS`a(YRYwf`o1_#=U3v`Mu` z&>%bGW^lpYXmb>rzy&^vxO;SBoNZe8Y)2QIS{D?iX36zt>9>0Bh0B z|7F8)H#*DjA}y!wZBi5pakHi9ycZg3e_9Jau2~k)@~!M&8NJdw!gyPz3eg7TdWZYj z@z2d{rL_%eWg)lilVtR9J2{+!`SJTVr|{MzDa^eg)s}^L;}4Ph6b(y0ctq%o2J? zOn)G*Tw8uG%x|tUV&8D{O2pZm;LP#`(y9^t*0zvYf8h6En@kzjEQB0D=0pfFUd-NU zoXM7Qt-cV>rw++H*BfxO-GfQWix*Syr9H&DIKK7X|)>koL}+ z93=MrBIXL#>XpExP1|OKc=D-dz-9&nRozt!TOOPfDA5d{#{+?on@Cy^5*%M$M?jSg zF<U^Dz#kx zK3cI6J7lWzuNVX&-r#cC?-+Z?Mm9Bs-H^7E%r+*C>%m3P6hRc_RSRfgzZicT4{lnW z1@Dc7V1B5pZy{Gytu;6};o;;AHpj3$(i-_D*)Eb|-#Z?o=WN+XZ(y-k&@6&3nVd?d zp()0*@Kw6>QcD!Rp%oJK!dS8ZuHE}pe-5!PdG!nJ7Q|7|Yb0VJChZ7zJ^c#mdmOS< zv{9Z=&jJ@>`vsYN#dKB#dKkp{a(_=|80oe}r1?R>&d!-o`S9m>9o($w_=d=>n|b7kCb>jvNA|q z!x|pKSNKIT0+8fSxlD9U!c9u|jCV`&#rvipY{~=VW9krW?;qNW$H5r&KdQ6K@Bwt) zUW?^5bbwSkE#n%A?9mL+MY=X;Y1Oxkty z$FkPM*)rLu;wr-FnP`OcVl0f%l;|fNbsG>nWe$E+Ey*kBXi|kFE3+Jhj$UXR?`G?9 zb=3S0{E}qx4w~GF5jK>V-}dwo<~nv+Gfq&T)^8%)seBdt zx0r6rzJmur!^six-`&;>qU4gG?}-L+Pn{h9Jr0Z#Mz`M%z7sGv#%Wq7wWC-;P5Xuw zFFQU;B95eR%axzmOQQYEbD}p7iKhVebn}^CbSU|-VS^7yYDqq}nR0;Ey-I*2>Z2Tc zM~bKP;r;|dxA%vZYRU_wH0MmGYvb)i{Jq?`*DysuS(6nDC&wrPcd6Kia4H@&0D&zwS{P7PNu-W8Z|9<2j-&mgcYp% zKB|N*PPH=wj;Q!yfBMv);~3^^!!%%Qz2*Dt^ayXOeDH6CJ^pXS8=#CbVua`Z00^EX z%|oVbQ*rZnynV{*SipIF;LVSSd0fBgq)A&l(`sH4`>8W@B~xf98Ziopw(5czwWImm z4#J*irfV2_aSsEPC-+%V<+xHgd=-soHwKUC;W@%DXY|6DJM9 zmf_A9_0dhG8XN3X;$|K$_$KHP*{Y}?Q_HN#AH&)U&?imt`6m9z`bj~V*`<--N1vMK z5X{O*pycUR&MoW490h4%S0Df0tp2i1M)SJQ|AVGDc%RP{Zk;T}9o4p~hQ$|)DeR!@ z+=j<9@2sYoQNINg;GP#Fak@({eJFOa^>$t_e-0<(j|{8U&@#kPFDUkz#PIPA!kXHp zp!*}!P=>JZiMS;$j}mjqI37T|{76Z)7j5hz>?;G;^3vY@3T8G{&u0!H|7mw!IKHAh z;JPRT`=W|zE3B-<2ZIiCy+;ovzY=DnmA9`=;3va88SD_l$IoRQK_R%v-x>+P9oP>O z%!z?4OIBLb4fZ!-PlvocoC(i9I`WKXlW?_z=Y^}M37^%}F8=ajqcOoajo8}7EzaKVZ3fixM)6KGl~l$ISW z+zDAF0HGg3!U2efGRXnCD60U!aVQ3f@I0bqcM5%IbqvBLUa{%I#QF7+$Ztw}3dX~4 zQS!z1QmyQk*Ks67rXv~dF^|vKm(dhwUoi<#4RiC#D-$oK*3vSR0uN(h=H;|s(h4M? zv*i6bi+dFytP&j5JI{wQjwxTRq6zZTT`AEms(e%3f<^c8P4eM4)4JeN0)0->b9zdg zY4&6i?%6o9NEj_oc*6>IOg2>bPWkb;rH*cjrvPH|-@^3Bn&c?VE<~*%^0P zB>DS~H4086st@S;vw$g|SZSwd^we`fqYWm)O&)K_lm1oR@uB&nA9(gWQj^GK7R|U? zPpio9JMe(>Oo3!JOO!UdtZTpQ``sS?ThY~!WD?P~SHDWX(E0tL_9CKi>qI}DU>WKA zO~u?|g0H@P(_dl7`@U|71Z~9(ihKBrGU}LOjZzvQ>#4-Y;BJ({T8pI*b)=Se;V+H+ zXM?b1y+(L{s4Z7!sMKjm%}2{_;EYdF_>toRN{hoF^YUcdkBi7R6HH`l;*KQb6NtdL z@V9H)>v*VjlV#0-YE6)y*qZNuEr7Qttrq-KHGYm}Q$qbwG>6NAV5RTo#BcOFT*jQs zl58B}uAyswH zzwfv{ljLO4Aq;!M{@bx_dKpf*l=do8sUWoMX5J3)TgY0BFI)t(g6mJU>urFjkDu#4 z0=SQ#iDjaS+&uus2~2(j>nw?|B(*vt(TWt>v&i8Y>O`_+g9*R<&mT8E_^RVpiki=z zw}nCdZ6ysMZLW<>2f|X`LfFer%zFBTtX}q?cKG~ROEGz*s>4%06hO<-Q+vn#t?TkT zu?lDMsSNt}@w%p{p}kRzJM0S=1`y+v0U;UEjbxh>lo<>9ne3(KCgUsSXkrKQ&L52?XXHreui!>Rhf>Qaz4-gSJS!@cX1WH_kNwGX@L1q zEt|L6g*kK=2ZjC~t3sX-VVb?{o(phR)KRVHUFK5OV*V*E7r)TpwhbJ~1Dr(q3E2-( zid$p3aQ^HOPgK)U*&ki!Sl6LufCx{esLf11N$%Nh)3`L1msi;=Ddwgnx^|Y=!8wu^;FG>DiNcAJi zQQ+0F9>Igmw^JJx&;e05^_H<8>OOly*HH@$D2^jX0LVC;Gaj5}?R5~uuVQ`LFCbVh zlCDsG)#DzaB9$XjA&)vRb0WvBHBGV)A57`WAR4yFE4=->pI~-7p?)8Ei4HWxJJ=4C&!;`@la9MF z-vEPDZ$;Lo_HDAdXu2|)wfMD9`)!9TA|EVHRyAqA20Hc1J^D4v$p>!)Xdt{xKe-V= z)E|?r!RD2L>=)%`&k}2nU3s$9!(_hHT>lj49C`N_<3teJwc__gNFsP_kg^I&#UE<1 zZ?3eN2@SB|Qt!*S!U~ZGv(|!-|M&Yl0^?)T05V!h6=?H3BisAkH&t0~#SN{*8hzKn zSQ!y&NXpQU5kTYpspL-cKD@$Ld<>xu@LP`S9An$gr|C=YnDmQzUwR1W^kveUjj}Iu zlE4SC!4X29s3#z)DYBxU-S#;hKrk;L#nyXxdjYYdDY&RN$GS!1dx(Hi(#h6<#rl4AqY#tRb|-x`z+?I z#s{_})3M3w+ro<-^Bcv`46bpL`plBZz?6fyyOM*3a2Xp%>~bS=Z_{BmNv4DRr1@k` z%%0!Ncs@KjiCwqa`GVG0kWto=$$ISpTve@P9;a>CFg3M{25RtB#;fMq zj!vv{PGraIrS>0U(Kh&DEz=gtTg#hU7d|cxYW;HPFk!&F8A2U#3s^@Zbe3fB;~neJ zrsQnF+g2A~;DiO6@AS-UW=-}K&7BSPq@?78V}><4urrh3xo2l+Fl$VlrX&I~p82l0!p(1X_CRl=XkExX7Vi^rbHpCuHu zKw`TC(b+{p@wYSwa_YnP0_jOZ`Zua^KKHb)C18_#mU_AN+D_h;M`&l>Ie%$5t)P~% z$wu>QqsrfoW&8{4K*s^!B`|nXnSxXR+3BpeV(Cao+K+D_YNSN4*h9ULEP0@v zKmj2y--8LFaj4cmb}5Q$_^GHE>m`j&BV8D7JlUGR&i2^Uh0( z6SfCDXW|KuYS44T(Jb}UNp0mrRgQJ!(ZY~JdgM|TvFNTJ(N=iFoze^_z8nWP)9}na zvVXfCh@RovC}GyrU!l6z2eNka8s%r4e?egLe=~BH-CbIOgN!$B&~;YJE-P=w-DO&{ zYDdL#(UU`A!CuR!kw@f?Id$Rk)VY2-{2NN&7Gsw=W&nRGrT7Bw%Vq3$c2B^rsG$8+}a_*hAjbFW>A6o`l1K63I1LLN1pmEEe4`q z-U;;->JH76A?JEGbzDZ-c!y0*4K-gjg-=#Xg%=0*Gr!b_Xo;Un%z-k~?uzc1%~d<) z-^C59<1;#snnWS0fN;TItyyT>u^IP%?^S$S-vC(*g#}!;*3Abfq@0%6p1ip zmhz;o=`Kh2EacRV{Ki^X?taUe;9hCMLUOFynz>UwhdvC6rFb_Vb-B=Za%p@nwSS+U zD9m5tfz-_7)jjx3IRy-mdYGJYv%}RGN=wYH2p#`KvSZ#bURzK0I?mCMZ8h&Wl1OXu zot@eZgnc}PKFCA8mh5|+L;04gIB*E(H&0A@Xqs6VsV|!?Lpu(Zgq9C~$s2QlwOYCC zFTrG;cWDzaTysCsR?i^+%_`ao%HDX>#LZW~ldZV`_|H4OW&FTeDSAQ7fkVbc%w~Vs zaF{u|DK^eujG)E8_}maq!@u}7)G3@#J4s~DgJSm#_m^#9hG-2CZ_;vo62S*GeZ1TC zUZ!o@UTWiTi(}cmVufin!G-5>d~$p*FncN%ZG#=0UI&ggRenMq?JurW&$ldcxV=wu_uM7$s>4&bkqtlb?+DR2_U#zYd_+>DiARZ_rTu?QkD=i7^Rkk9Ix{=;w4#>TbQAXi{|@uq zKU|lbM9bCNOXSFdIiWX^qCc=>-5F<2*AX2>J}unGS~$&__0!KLKHdAV>a^^Bmj@pS zwWn`ZsjPS>H<*}C0LhqD;$Q3SR8}ZU`UeZ8Syk;&kYxXr?JtRh)P;OWJGGMaR&A}9 zXd3K-4BT(XX#I+o&R15&idSTn2M|A#zfn7e2XM zO+aOP{`7FJI5vKD87L3I-uTH^xBgvGp0CX}Pp;t@5|A`fEk9`i@A6&PHLP)DZ!o$t zv#3%9w-u&Ha3$&btIM=Tcix^^iH{+I_A>bUZdi*0LAX(ZQ~!~Nsmj;>Y87SRvQRkk z+`5yu2_qiZu!Up z7)0E|_w2@%*e72o)!gg1dQ;q!`PXFk3r3Rd%Yis!+U7{v%drQgqN#1`D6q`X(-Mo2 z=G~k zj2Ewi)n~^_Q*RiiDLZ8HD6N^@!6A78_wG`hI*I0tZ=OBB?kjAK?m`kRLpJo!?6D<@sO(|T zk0#xi3_b(E6*JJ2tw&2=fJZWjtJfJXy7R8oa*3k+V;+S1rHjDBI)%OLL&u-ahWT~( z?$6*UOZjDS-#ZDUr5Znv2ZCiHvZli5F6)V37o6MT&-zbg8B3eCbU=@`SXQWJ*-c?} zpB3oP@mBjH75rAE>Z7lSbES|v9eK#n75^xY08A~hz<|QSTa~7S9jnv+8ttcMNdEl` zv}rD_R6X_DV!GzRe4Js1S?}uo;n^|%q9m67+ORFT&t3PoCvO~Dh&EcVm}dNr+63uT zL&mhcD}p6J^t&;nYqP)RKRKIdOJla(p#YOB!U)?}O)H;#OFEhpS0UbZd^}>rxPCP& zPy6JQY=yGU@os>XSvo{WPmpJY!#dSd=@QHm!j+JR>cqFH0k=FUb1*L%F^^SDpmkdf zLvo#V(-f!U9=%m*SVSa->oub-{c)BlChz_vBpLkQua4l>uDTnB2urxWt^(9U?uF^j zs=FR?{bFH(P1|^cyea`+_Vj2Ex+;gba5+v+0VL+1J-d)TWfmHiwS;+@gdML4E&g+t znpTrfxX6c`5OwX71erE~s1Q#17^SDMjbXu*DM|KO-`5Xn`Ab;TJRQQJD)p1}%TNXY zb{I=cJC>t#uivwm^RzDGly{=cRn=1Gtn*$TFs)&`Ce3e%o$SO);e}IexQoGPPk}Y` z1E*l#_TeJFm%^rxab85H{3&2%d3x1=6Nl^sDU?k-WBnPRY6fgc^zvY^(F-Eb*?SjWRXtz zCA^z@wwHP_@6haFAN*!=V)Cx44qBE%tKpmGg4wOm;s7LNQ{1|6HJT*7im z`yYy}w~CCejX_&Ywbg@jXu=Q&>UH7Dv>Plztn35a{LYDIb5aAyqPQ(QMNyZo_ZiSt z*(1PYqy}t~_>R62C*`SDbPB&!_P|iN5+S$>49iJHz3E0WGbJ|6U@^uu^51$TvFh4{ zG-QV9Y(`EwZA(~(}pB9ez?5vfha%XrT>6!9e<1Qssnx0 zzndA_99E~za{H!B5}(=G9g4rzAl?_UGSz2qpthBSTg?*O}MMm`50U3KJ+6L_;v_{B7V6E zA4&18d9Kw@OQ>JePL^z4Q3ZRdvIYLY1h~_G^-!tlaq$mkwk<3p6{r$VwLbd39Cvva zxmtb#DrSsoIKGT|(7tuLJ|Zx1wZ@dXjCZNhdcYzHqfV7SPq@Dmvn*9Ik7mK@QJ+U0 zpQ?VS`8c1iD-^^DW?nqOJk%COh&H-0lUloED?HIJdysoL1pi0>un&8w8kbHR-j6xL zHvUXGoku}7_Xk6;dU3;xOX!%tK)TiDv?^i=utj4gml;kv5%yU<3$AJNOKEa|2 z7p@#A61BN@Vv#FYBc`kMjcoJ&knBX-id*Z(bZL(6w5Z{kP+7apIl&d;`Rszn+NMKa zrKoXAN2{0qrg6udAgQ}5IR_#(5&zNcpmn5t0kMdEG;|qrUR6WXFx&Idv}W!%!>2eYa4;V@7 zf=TIhl`Hh}BeaGMaB5~kTvl`cKlpusZtDyja>DRJpk>@jz%L+shPO+TWwgdN1{UIc z-_7)iD;iM^2G9QCPtsF3D$O#oclgA4*unxs_aMc0k$ZYXmkywz|DH%X^C*>HV-|(A z`ZJd%M}@qcba(^q07$8GQ;bm`r13PB?PiLr@Ds(tpFp0{2S55v+B_uC%OVCF+VbHycE{dUw=sF zXzl@OGC5*Xc2Qtw%FWdar3cEH#fxIp3sU52DbRW8T|l?EVS0roE#4Eqq8Y+5J_6ik zz*qg!PZ7Pz?BlR^m}|_?v+bp+BC_wFr~q3rf9=%8%0nQt2S&(HO#f#rOzmC6WZBI3 zexj-Y7%IApFq7|rCoh8jPu($E4h%v$^2(>}{?uM27r2|sc-IYk0I)XZ!OjbteY4A2 zt9>sR*^Op)zb**ejYuFW#ZXZY^A_`(Wn|2wj(=&UMehRo#lFkiF8${v;Mu!h`p@Jy z8=^^t9dL%^I8OhkEjtGMa5^VFl2x$lvuUzJ6kVQ%&WxxqROLiS7aQZ3k-ZMIBsJ|m z|0nXdWYQSFI4pt8#dxnhe1GBvu>*Y$B z?@DNe>VJ*GSJL&&g4TURtIP-}M*#tD+cB53oZQsyo7$+IMo-aO%dBugU;zIatM%cG z>LMa|Bv=40@)K^0MMenII`Mi-=S#)lBd=VY@u0HPQl#RfeLe`7PR}sOmY6y@VMC<4 z;UQ)TohOeu+49k`QgKR{`{Si)w6!>3x$%q@{bD^`P!2SoE|h}DtGz(Oz{*5tMz5Fx zbe%55Ozz4TGhHMjtQ^ntBZjItQGK-s`}ZRQELg>kGJ~bKsq1`~c1wUj1;EM) z>xED5K4)JLzAb%$hh^7o)uhU?8|d-KLP|KK?v5RyH5xk-G{Xev)ZMd79&31D@?gOX zD8*Wtx_B_yX9a7mA;}Y&TBdKzXLluA1MZ^0@tGkXL>A+U^1&YnlI$Ua37Nipx8s4x zU`Ape7rUnuixgDhFGLtyvCB{B#?%Bvh)kT63HPDR$U*Ro(uvmhgtBU`c>YC(_gszk zRD0Qyp#dqyfiSodaU%eI&QJ?PlRryd0^GVTEu@cOE>97g1#Hn&)I|c9H1ty|tHH02 zn>(U?q|_`E<`29CQS-zBTh*q;wDH~Tgi3*Zt2WiT(KuTwyg8v?+VFA27oX`9?3`R7 z5u>o@OTQs^Hi-f+;wFm#G({=Jh*T2q|OxKs&6II%vSkRunf8c!%|p8=d;5B|VH(!0^pj;7?KTln49Ear(( zLP4{Y`9seFYV9bA(`t0K8Pnp-nUqc8lqddS#e_{mienE3q_-XPZ@hUw!UfkH=)Zj^ zt~S)wQzd~@@1eBOplWV@6Ry&jN^L6iy~q?dJa~lLFrsoJPp?;S8-mvoq=%DN+i(YB zwcbLV?@J@vWB<7LIAfoX47-TGx{~)#*=#8$qe%MDIPzn;_f6zPEGZ?&%@=P%#L>sV82Nc!&}NdGur{A*q&Os& z+^OiGdzEsEzMAw702_J{Y{vm&@o+M`*$THGPcJ+shIeY830~`&1-bzn?=+W@q|Z^) zTDEIk@-;vD=&z@Bc*zw6f&O083^ZeBr1`BoW=|vptmcWA^uc7C{9c^mWL0Ly-5}g! z2|9p!%A~!1-2Er>W!l^m1JccpjUNVtDdml$%?>^NU1Y9R68_Zh7%$%WtVzw2xzrD8 zrvDsn*hu3lzAm9j5yL1i33XFEb6jrLRp>oeNBhCOri$+Iwxd|SyXT=UPjyUKQ|r|F zC`-27N~L>wMSv7#Le`-%xmj+85~KhA>Jet7-_c^C^LH_(n;{~f&*Y~(_kQ(8iu;=U z4$RVri(v)}?s<5yr+)vdAN)|AKbQu^@?2}2U7@HM;xBV+R&JZ6Gwh!9u9e9S^bsQc zqKd6I8AZFW=aOca16HA7660tyj%2S_<&94#x5En+$6u8z3XIMAL@m?8+qhYce)knA z>KIcw3XX)He~rYJ-eYzQJcOpzs$G@o1*auZL0MVJ9w^j{LCi9vC>)WL`7mY`t7wgh zpDHxiY((}#BIgLsb6j~-c){my(4Eb36>7$!dq@9M>}BQ@;I_zp(nVpOdxy`4Vqd<5 zJ5jOh^l9jwP=NHahYt~5-MgE*780}Zb6OC@@B4289!Y;uFjmfPNyN1wH4_Up`mh7e z4C~P1rQe74f51Grh1@&bf!TuW_-Yd1qI*mmKb!JUKv!T5fAV?Zgx>Et@?k4v*#*X# zx%759@f)!y!5k5^os18eCOGhat@9~Sat`~XWZ4LgkR7_zlsyi6cL^5w z)%4aylwmnyU@a5oChbT2ImXwjQ+e~e^T3F^Mstg3aq8LmeoyyKNRF9Ty43+@&X4iN z%q*Xesz!_H`GuPn{q-a;CTgyg)8D1Dk}ux`Phj#VFpL{zinISMGrOc371F>)~d8+YB%1G z-^jF`^!DGFe*3CAWviob>tW_5VtL7Zt=d;KSAOD>`fzhrK!FB5uVdp^LxfADrQnRg zI)Nt*He=Ln0JNMrE56S-C2(zujl++w!;)XZ_KOydGvAK<+=Oi-os)KDHALu!AlRnO zgX{>;&~aCxYD%Wj$H1Yp(_bkQ!zUjO=-k zQ;OadTnxP%P^myKfP;Vk4utqUoZ;OeEfdiX$_;IRY5fd5z}ma&p`P2^1+Fkzxj$a7 zm?~bPtYm*q$v7bl2pg0#=Ao`smeDNST?|{_Ia}R3dS9E_4d|kh`DqC8_RRvK=*dA3 zXZnJejbC(mbwU(wKNy=U+4v>-6tm?h#}HGXeP3{}hA*9mO|NB6$+gp(kfVCoT<;@G zjb<*lW+HAbJ;gf~4sGpvaKZTdmUaulgDKlW*5}N^xm}@>ygvi3WRyin9FtxvE42!L z$x0H-4mZ3V`^HOfeFg8_&!hmJf;osWS(~d<@Z0Pnb`2}FaBj@ee7!V>8)h`xVP$#G z;b|2;bxI@b|79QT%3#_L!bKdPzd$!-b~c%#*Dv>h+}D7_ulWx%nO63&*^%^UMz(0B zs=FUX346-0U#}i-1nO^p{t+XLlxzND3Bubr`1evF{mb!y2A99&uD6kNS3k1?$IZUU zl8~prEy@k7RJ01oG5ei^a^5YR_skk>Er+xSHH??C6q>hy1joucFAJ>qGg&0z4@|gPaTlA?ccYiE>O+)$ zAAxfXpTN3Xm_7xpNm8kmN_&k_BXm7dI1-|T(I3xRA4=6ak_)#E&HRlWDtK;&AoX8r zC`o>i$S`$XSB~Sx+X1Sryq#f_9}m!yYsheg4Ucxxa8%H2B-jzU8JZsE4MLqWJEh6; zo;jp?q(Xe`iZ&FU%RNhdtXjowjSBtC6xdw(ppD{d!+Nq#zt=fE;nio&7F13k=Dtp_ zP#m-b7emqaYNJd->uA3W-w5$OqZ6xkvf~eIbt3BMswyyuuR*nOG!`Y9iiA%fV-k{Ixt!+R==Y78n=Aw0fPm!2GrbVabeE zw>ItDMo?YCj{h4=uzln*9vn*nKcb77YfZ}FpNd8Ka_zFJqIKfZ(XDIEzGGJ;DeGPS zZPWG5k->(ieQ;YU6RoUX&P#hd34gKx{%%;im6o9=^=gn1@1uD$Cgc{zMH1Zxni8q( zPTYbU6uj;qN_oVDy~JJ3NeI0KZr>9aU${T9j)dsZ80OfXgXY!-G8Qmd-tBbL6 zC9CT%!x8{>fOFz#hN4oI16UaDt2+W99Ug>0nwlsEE(0y2>| zb(SwJ+9TWHZz^6u)uMC~txQdsTjGCh16{SZF!*MRHtCC@yI59HTf-0q(1h-N1ogVr z4TqIrors*m z@n!ILGQc^R$ITLw-@NksA6v+X+s|~cf&03fNuvwc%0$!X37Nc@qkXHoj1O1V9lgA+ zrKZ5wKi8ys`MIHWx%Du;BmkH`nMXCBJC(*yZGg`jJ?uEZb$r3(L&Vnz#m;7O-K*oK zUzGB(5B&Hj6qW6Y-)Phhb@XcQagtAMX`H(5EDs<(pbVaodA?&fP7|ujLCxO+Laz6} zdE#OS)p(M{WXwff)-n%?9;@ibfUc8aFdv)g_xp!`rXf5}v20V9pbWKzP?ni$;4TSh zoh-Rs*dkcQd7{X*Q@AddW}Oe=n~SY{Xm&EFTU+pvGC zu5IE0w;po4W#6yXz}`T~-bdR@6(U1y4Q%iLjro%DspO%ewqaJS+8|<`_=IQJxj){h zw|mvHx>QnHEut?#MXY&zSq=t1#QmeG&-1*Yk515s$D(_quq=<0Lqo3Vvc12oPWkaeL$DLb}zdGv3UBj*6p4di5T6W zEQy=$`x->YA-Md#4;$59dKo(&yiOo)k}#_|%;v1E`r%WEr21cFu;zCaQc~?}aj<=A zmEw9kG|nFgriqB@Nqo^4+5N56a2BzEvSuW~(l4$^(9g`vR+JqkJeg;Iq(J3nEBf`% zZjw6LTr50?H@;jQbHb8u;H1!UXFczx5j}sj!5CuCU**ux+SOG<6Snok{7Bs-wEgu6M#X)>U;Z#WWPdi!HXcEF+j(2*+s`>wh_V0g`{hs0hdD z_g$Bf0B4}bgw9P6u5u#ylT+&+YM{V(x%ZTI>jOzwd2T**Oj zX|d@6U}<* zsSSoV7dl)I;QQb!J|ds8`}a^X^rwfUyB;xv4JFJA7*txLm!R7grOq8IC~H2vE<;$G zI;P!b6YKH0%_`5WxDz=Mf|%mh({;n(AGEW%WVG@dp%)8V4*KwR?lZVi zHh5a+8St`PBJ{^1VFTrumR;#fgT zvgb(ZnsQMX^sxSFu0Fz)brmojaR4)(%gav{L`K=2$y|ddX}B#7=073Um4jDKB+k+dt&|4gd`S4 zf0a%ws| zBIZl-yW66Qz8cdD3s&Jaow8^`t2S97l0J~pGp=Osh~ZT60lxHFArk3am9k$4?gva) z!Z7~JQJPzy8zO|6ea{Kz#$>SV#Eg~E3Z<>^0xh@^iY0NPUsq-*rup1&`Kl`Yj>X&v z_0TaO`hyA=j_CA(8IIG|_`YT%yVPd<)|IdDSh~eul6+p2+vkC%FPM(0)SNc^yV@1r zqE~%2V65lr_Z-3$xJ4wm<>$95zGRzNqssAQA2Ke?jfg%BZq2B3Ux1ZNEtRd3_zhRf z!sGBsyLdhktcJA6mzu2if;v&fZaQ@ls5|8auGO{gLJ(#Bcj?KH^+yRylQdi7IuBuAiKkCWKupRwu5TC(*H+fJ9%jmlf z>oAZY=tJ#WU*XkjeUwOBE`Gz1<~p{11BIXMOL3Fz2*^nd*F)54#qxKIm}`saqnl^A zO0y8hPMc?)R6Dwlnt49q1tDAXto#Cfm9?hE0QE$N#!bFVbIy%3KWmgJnvQ$f$gqOy zQn#<<2wV;GSo%Ll%fYf9!pWZg`7xt6(kA}w=%Yn(D64HSyHR}c5v(vy-bl3-Zj3{k zzI*p-`Z7zv?W)|Ak_w_T)hGJHul`z@@ZE4~m1;t3<}Y3!ps~}s#r#ak=;!1bbW1J! zAmO*ueh+pyq1!Tk<+`b7-t^(q2QhPahC4i1hV8!(wA1~kX5aOc*te=ejQ-YCLhyw2 zJgtK-_aDDIp-mX3KXn3rtnQ|&W7pwm2Z^xxb*INQIT4i#H9RxMxYjtHg1D+3+6REI zE9@O!O;cRN+xX8~*o#thhvu`MxS0(|PkIfHl_YOb_rL`|!5r$in_{!CaN63cQTj|T z_!HIj$n<;UXf3l7#*1c^Whq9#V!al#h^~)~5TH47h62qhcrNg|oJv?vpT3dqjRd?` z7sYA!iJp9vt&X$Lu4&&^LfX8bw3Xk*&2l^-(Qq^s!dD+h^&0{NmVj9B0?+?j z#7X-ejWq^5htK05D2Xr!&7>EJ59xgz_}4#FbaZBAnW^eDTH6*X1Y1~Zy0Y4@*M|_j zgsw{LCOQg3B*}5Yif{r@=FY|lLd5L9j90P}F7F5X;vl*&q#6`B2ir718RW8pnM!ff1nfqQgYHMa-gh0H?#tf2?IPeI988Z2ZD4aWs`XLaVt{f|h6RGlz zjgTr`5xGo5Ou_FNE!W_QO8nyFK3f!W|75`l(Ub5#LE>8S8*><_6;PFkk64Y`wO?7j zh1R!1UYisIVPCTHFo zl)S;l`CMh00pffa$Cd~+mk6BXJ4WF(jJDCZhTFQW_8jSj@Kf0!{A&}0qHi>=g0}3- zT8E}&M8vhhRJzp5U~L*(dKh8NzcgCF?Lk+X22SkmS+rEE_eKbQOCum+)&omO*u@UxF%)sAz z2+-;;_kSS*mPM9xZ+}Y>8ED#NLsUhz_Uhy zi$0N*U7mj^b+^-WoJ!Cv3t>*iY|c(SE%>p@Dyf!X?E{T(4CG|_JsXS=JV-WkL~s*X zgFGhL_JYC8O&Gn+yh@5zMwlnu+W;h&3jsrsh$KdZHw+St{EKD%_V0Vk52G6(Rp2LS z7lnOd#`8H9IS2Z`$sAW+GM1svsfak_OB}^rfeUPwID0FI zeGC&|s(vnrwBo9k5TbXJz0pci#3_T;1N2$u{unOkOqqMHtH5~rEo0Rw{0z zeEb^r(w@nJP&?`aRdkV1Wv+UQcYQ}y?ICF5%&t4*ycv=cR8wuRvOHz*alqILj}()s zfE!s+GlseC{W;|W%K+}6{q%v)BtByN6dt$l)F&j9Ym3eo207 z6!H$_5x7mYNSlI|qlt3=t{pPYsT$LjMf4OUDkyCOCcmYUW0;1}`cgn|VZPa0*0qJ; z`W36VUC#{SkdpLE%@~DnZ5_FGPmeE*6}H9*e?A-B4cpjM-P(qfrJs|esa=IUs~Wt< z4uQ$2K+n!$q1VWb-gaPYcZVkM7@E$Le(6{y%CwUEzp@qnnwu|nop#^ z%!3zC5_|P2xZr2u=ixz?KJfwEv_R~?ui)kdGT-tCJkGK=yKkbsT_4oz2eN&~Dz@6s zIdIw8@_ng`;k5?@J^k@|xNeOlFX7e&G9NJ;&RQt)_8~Z9eSc~t+-IlESA7I;*(B$c zY=LtYTKmD_)z*1i-8U0IAm=e11LqR|Tdgmh4lkp9nD;vmj#>7}5P045@_pjr@KD~* zoc~%1=j|`@WxQh2-$S?0`{DeB(m!5=3l_?J&u4Ha>->Zk^?bq)H|r@3BRFpG54%6X1f2WxeMqaNR=b-xt9>SBU?0=oaTV7q7j?;7;pBKdgegTjzUC zg=bmw4-dliR{8%MZdfS$-QIy)Kb8BN;iiT1eTbjnnj!N2Sl`#Mbzbv9aJ?nJ`oKN< z27&?OUxQnp68-)XxY^3jO>oOX*>9ax@h$yemg0r79_C>w5}azoq?rB;(VmaO`vI z`_U@gdjA{Y9*>&yeGc@+;0Eh^?suyD7s-5SEnKrmzDM;GoLOY;H-^{E4hG-X`TYQ{ zv!3?~ywTdv-l+wh%d&?Lf%`o#`OSl8S^m30aQ!0r{#AwI*QC9Thu6L)^5$W1o zz|Gct>sWY&b$-ucc-;e%{&R5FV$lcQfwx40!K9wg`b_1gi+oRPGn}(nzK`Kkijn@G z(h2s1$64#G4u|lPYCV(aw|Q`8vDgQ`Xhk$# z!au!>eWk_4rxq5+%M;O9B;4Bx;c9U*ok~}hl<+gr`&3_H;ef$cUR{`f$u)xu3w^RJy`!Ni6@IAh3R-aoea=oZBosL%&7R9RyQ|aoMbw@awYYaCnS=Q5z$EdVo63~ z(MU=AS5HP#(NSbS9=0x~qNNqoS+cTyfuxF)@mQ?=#Yjw-Ub|GvLg8I1Cq;2Y+Fz?I zDvwlDN;T{nl!%3jBm7EBP&yuu6@`-RUnrf7SC+OfxXMI$*T;^CrlLjBSTtQN*G5Jw zRGxP&QytJQZv#si}2z}>M%uJRqy(M zL^57VV@nlwP-ktzI_xyzND7G)DG61^(pIABP_i_Vc3#oCS`x2FcibVJkPa@DL}O{I zPa^-QzKhetu5_ed2bU%8K^S)0ua}eY!5?KK@h5hbpRl{BcFU z6F?fpu@DucB)`x4iKKAy6dvYEX}3(l3rA3igWHsJL|sC7riQhNd7ak^uTiq0P1q$B ziOTdf@k+*+HrFpm##7Wl>E&&@00CFT5!lsjpUdToqOsW3m9e%LuN)Cc#zKi*BUe_m zYu!49HW#j`EOLu+mptT0D3O@p*#(tJD?WTMTL>)obgUm6sxYJcDP z(RBMuZmeB9g^AozhPV@6P4Cjh7qr8U?sHmgn=7i&F5oGVD(8A>EL!BY z^pT-t1ud|!EL0JWxpieOjZB6T3HK5T3^}yoxED+e{WoPan=^c=bP{E*NL?vWl0F$J zjZ`Ik?jNLT$`?}7z+5j5rIZMZh28q}xvB|)DN+hCIypZP&F&B9E|Lz%D+VM!<&t7Np$(cCw#sAO=Z z>{Rh5d_~3O2?okgMJlEwN+_1@FdE61Bmd$ZC!$8rgwn6ok5tP0QAmZAM-e|tU33a5 z6b>ijCETdu#6rn({ua?Mlx|*zQsew(w08c+M^-q0lkvEtyvO3Hi21AI#w#k6&P_E{ zCft8dRSKkHgcD4CP#I2(i4>18eMjP* z;*nwZ2i?Z}sx-g6OQr7nsk(KGp1zW-c0<6F8>=jyN_+8WW`(MBd`{HDvO=_k(sY>) zRZ%4oMHQ${ZZffWX|%%qnTSM^5|A+2Nyx8cJRSF*>5wFw7%3qPTO-2~l#Z51;w9lw zwVMnrafBCFK@{!Fi=2uV50hNz(kWL-c=x2s8Hl-{%Bivbl&pd9I8y7w@*iIfj3iI%8Wt{{*6i6@*C)E`F~ z($N*WHzcA76_3%BX2g$VBox+v+z9HI&QLO<-!mCeBb*K|cmKM|zG^~Ym2qYHm4s7~ zw9on1MHN8Aig40xpfp!IS1Hq`_>nR{+yYINRi?vki#0#nm4IuSsJ0f46f^QFTSYxS zQehK+Xa>bf*C;G55BpNFNJMoERf&9i5=yx2{3JdvSv5ua)q<(Q2oEL0w&%>$uw?sf(l_nD=|j?63ZRG$*hHXdao zmBQd)Us08jDnkpiu2I0g@<@3+S?!F>36&p}cekUcC#lA&1`*dm=C);}+$cd#D~*>F zy7yyqEBWM8PKhe*n^CP^wV^7Nl4^IwWuc_=!|hCtniWbqea-#l*m2yV9_f~ZN~tj9 zG|E&&UkgV|y;6+DNyq(JqD+Cby8SfQ0ZD?I%0j6!{gYy$1F6DtIUH$o<&3`et&q8u zpY0>sw^oEyb5d%vxm~U}NeFgylbuvaEFMa`JtOIkxFM=4no?b`_nCctp=8q02BL9C zNiKBcmHOfIZ^tN5Esw&c>%@Heuj(Ypkn8Vo#h{6R*g|*F{Z9!O)I@#J2xupMn@cvB zw&yhXHnE%@^VdlgDQ&{n5yVvgG>}Lq+eAVWR;fh7?VjnT5HGr!I;d2#%N6DBW#^|F zpZdwqQ_gUIpLVKT~s|M6-yG5)okbW|x%S2yl1N8H- z()TL7m(o8|N$;ofXn9#uwzdH$CmztF8A}|&q1rmHq5c#yDv!`LDeP2@%a|&a`j^sB zs+~4pohtM+#FQiZR0WJcOr=9wDp1tUJVRk|I;jMaD{UDOQ$DJryfC4fo&JgFb$_Wy z(F%q}hY+Stqjhx^M@yy8hLlCcA0H*J)H*dbRjAR}{h_2~QDsR9Bmb#=oqpx3s4RB` zc*;wukUBwFhfh}$vgl^jfg@FJj?KVn{VY^Xt}W?-nrha=r#IdzjW_Hz7+uv);kg%7 zAR1UvWofCSnS_f<3tgSj)ws36rp7>ZxiB18W$XS{dZDsiF2Ihs5 z)x50wlM0nYR6Ny6-3C1}5*lXYx}%CmT`MCIceM&fP&-%DnBoroICgF-u)Ph_)se->PY1rH)oPBI5K#)HD>Naz|fNKa`6?$G0xn$vBx*I?2tIC>ZLJ zs`3)YTnb0D-$Us|j$u%djw(S~5_4uX)ZbW$j$`tw`<=Rm4iPGKrwBqf%W!TC)=;%7 zKIJvgzg*EO0j|n{d5=8N&XeNmV#lYF99EWa{uHKS7+gNL<2g!+PfsnVN-;HnUNjPW z!;4&`=IzK#A+l$bDg|F@7=1x1WxQLat zrF_@UZE8M1>FdtbvQSt}T$$Mt6&?#!E0scpI&bZ|YzvDW*PoMzk|b4?a6NZQP$W@3 zMwo#-USiY=Em>1;Zi^lD73o!3UZE!U(s3tsr!0yodfJkT7N%mHXGdw}<{>&~j#VWy zNMyyir7RUu8d}=TopVXeiln0nXRLN5X3DMJ>OzXlZ3jA0*V~{9((&85g{HK6HNTLk zL}jqbn%s^2i`+PK3tVypfXRb1f1wJ}ot;rH?AS=IS!+_#i7OYptr9s7Jk=|-JuhCz z%j3=?6KWpBX@OLNBO06s+jEyB>(-~2>$s!(m|UaS$Ks_*a)IDcJ z|Na-}UvmBhg{SuJ^MBM3`n`ItTSQt5LTIF2Y3saFB!r2s^y!MqLU*pjyq}X7b-B$I zU0?`@BGU&=222yso=b9~I$B|o62p{-@*ujirJ{2nNhP#+$qc$ z$v8fg8a|+EV3e%XJmhQ~aQrvnLNX2p|j@@>uU2R3xPOCbxAsD7+ltoLB zhSAb8)saUa+wH|glvwKHHNwm~;nNs}i?{ei<%E&GKGFtRX zXDN;+syz|zE9_PDE*@C2;7R!D>q;pk~dD|D>1om2HPPB$bV z<<7>s3Y^MO?fVqBou!M(Kq!rYk%*5}&JI;sj@K+&?AZIxE4!^l$zV0<-cDet|Jn?F zR=c+r7hKnF#>%qzT+fx$LPj`KWlow!YBqUfG+l;3O_%*;{d(dc<(P?1CS4Uw@}lLO z=~;=9RIApSl>el<(AAjidU0~#whwnrhFcJ!a5Vl`!l0dmPesg>b^C!#q*eHI({Oa- zi&Ttoryry)PjQt8x8_Wbl`_^+KuLNYK|!TS2DRLkvG&k#S)|%L%^CciB$O3oM>3PP zmY}D1>2_hHha)tdan5apq?(S03te+46tml5LdgnO^f~#iOpb`Otv7o>s;qD{1gD#Y zqh?isS{ha8P40CN<`udpm#sA2l}1{lO-9mfhRX|_zRpmt3(uWvOSkE$?FRrYYF!V! z{jSE-V6->8;FbH&tw^_>wr@PTc^DPbvHK8ouEzpn#p_({x`37tZHLzm~A=NJQDuO7c@2(UR)IqH5QRU?ym&O=p1Dw20|ERQ?C(S95i-N{PObx*fd0d;?CTR-+YdfKuYbIshaGD<3?s%(ki z$(Xi%+ofHN1IOiNm9JaN$zn%MGsCI+4- z-nIH}i~jZ{DwatJwz#U_im;@ZzrG`K^uj6?P!Uf@isJEMp4`ToEJAKbk!x>% zC1ydP>q~Jx8RcqSQnjo>bIcs=xH4Bo@_1_~+jTAFLa1<7PdM$!ZStj|^74=#!i^&0 ztZ397NZp9$fm&DGL2q>|nO$2`bq7)DTWvH--NY?9;gp7bp`AoGz7&&6JM*|Yjbf(N z?R4Ceth;Dcu2SF#G-K}SxsP~Bp;s5~EVEk)Bjd?%s%48Nry- z%RM`69BL(%tKLLYZuj&C0k6lX5cMuqiMEQVt~t;3Qtqt+(#uuM8eo`a6 znr^v#5z*H6k>}V;GkonmPi;!o8Y`WmEHh>4`a!~R zXPzx(xj8H?+!h}l3KSi7aoe@m&a>aKn^qS}#|qkAF=UStj(ku{_$V&N~CSPbRX7Rk{?o1-DfrR%JM!Xq|GNWMI9{hMhO3SH1TEp zjEE0Y+gL)yRCI}1Yu}L}r59he8GR`aCFdNEbK6#kY>kByDa)mA8mH^(bA@L~ta2BF z>HnN<(=VnT?7B78vbT2Hqh&F+cMw>^V4Jqu#x{2>2dXjY=n6Df=XYDX!5#3NwG{2^ z&V8I`1chAFR0>yir*{^+sNCDPi_)*Xq%tKa+Nd)ud%k98MUbx}i`rPZTC>vvJBQyq&;ElgE& z1Z_%k7e|!mB2uNHEHSl?-fi7ZQ*hTpI&aXn23*_vFK6ELTH~T>HDzmO!Rx2q)Va5= zNEViAYgg<}+3jK${vR%8C)Z{lp%O{%q^_!QRTRZ-2kH*o^U;!YThEJh zq&EH0vA4B_^>Rf-E~iW zt$j-E3RHIqth2aYZPPI8@!HO6K4W!2TwQy4vAyPsLGNoDbW;3 zcH)E#{3)*k6xvrxDYSiUA9RL7TPVZpKuafvLTO)1p#=(*Ql>D547T;oK6|ZmetVs@ z&plUm;QhbvC7-_IbM85N-fOS%wNS9 zHJH3_=)`;~quNpQ5BWsu7pHpW7>GY1p~{*+(_xr7dUT%H6<%+`6zc>IV$7vEHX-5G zF>rc;iPoGMJUTl#exD|w`=+zRmI0-W+h9n$WBAmIqY=!|k$IvYw6aF62sbnB^tY&l zc5WcdpK3c5?Wb{L#)szk!1m8IZ#0CgL5lQT4mF~-q-=;;MC){Y%(G~u)0Rj-!Q;)b zEyLEyHz?isakWw@o(TV%hCFnlkdE=Dg9i@^-gwPTdtZErzwkU?6bb?ytEFBM92sVTiR8z5+?i>tQ86lzeA_ z7({HQD?%+1cs#~LClwmG%pHghy~B|eHI!G;OpeY|Q0JvRetzOKPe z#PnDah;=itWt_dj($|QlW|tB1(#~Wl36;|?#&SR$Ko%EkgRR8eS(UA|%^l7}=lZ+L zd1kxV2YI4}oV1AIkBM!}=Yj2q#(HLzk)Qxgg!kC0X^pI;(p#{-8;X{19PXWA)e}uR zkkt9{Ip#}zlI%s%OS0&^1><7Ij<{tx#q(x^c_QY?9iirE%tYg8dH#v%Y?2CXJ`%b{ zoI9rCA(FAC#k#AMt3uU&!Z}I%DD*yNl&ynhKuH|ZmBrktFN{ZvgWQXSg~j>>#b%Ur zkVi&iTX04=rUm9Nan!n4^;#Uez=sM)n)#DG?@e~v2fL%ZrRVmTvl+(z?2a`+D|?+Y z)zhs;|2F%q!|>oW9tCjxR)EFWFE&F^X=xw2nM zv}Q&}r!!(SPqUL(k}VOm*GV(h_|SaTMM1HNr3_}g5F&P$7|CNttnTW5jhoLWbDFi+ zIYbIuhHfT~X_M2LP`P>1Xj-2iQeqRk>vaOxa-!)vHa#Alb(8UV7ve!c3Fe$4Vjji@ zx5RrnIuZ6bdEvNazkzp(jR2{oHf}|{^(YPd}_$*8e-$RTMAQb6t zK+*+*JMAeKgGCHH;Nqf*G$z=r!SZ?sxan_^MA_fjw zo{wdYTL@`_`SsMRmDd0{S0%VE9;|@EXW38Gr zy&Oo0n$E1llv>3ykex3x!jlHhUOu%_5CVK)3}K2Lt)pfKm)?ZQV*;sl2Y%?5D$l9Aq6m~~K8*T;$ z9>s{P!+iYM_v&+U;obz-i?PCT?bq{GooW}Cwj_l9Z=O#mipgMRc;!N5D?%P z;b$iCS+Z3Mz{Nyn1(?CCA3ji7lHu$+aWFxem|_czG2M)FbaoUyj-g@Z%n>Ux#~^Vy zHXX-BS~v{B4_IU?R(zlVDA{HlcN!bTr-n`(N%UAw*Om(AVeF6e9L)Go7D;oOnOqxA17;$S1=2%_StmM|BMNt4)}|9T)gk(X z)FvL8LXpAx=8TatfV4zoqo|!GcsS&P998uI%@WJS)aX#`I+w=59Gf6Ol%z;cF`BAh z$Z!Lp0I}j2jIbD$B|f8dn_*t1b5~-=h*7~NMxB?dB?u0bDKmf}Jj;6aOg2lnwZT4q zo=(FF#(*&D9rMfyu{9c4{e*TX?zMpqW(QzuX2klL*ubdinL!4Y6lB4PXHgr3^9l1n zo;zh4VvvMd@F|#zFGSlip86@TI1fRBsRcOEZ!+2+l0u+1BcsXJF{!@ZVo-U`U7o%%r70YpjTvi!dPC= zLB#DL#wvQ7cqou+kiTaEe{4ibNKjR>H|Tsyx^WKx*rpOlyOV;kruXW@vtme zwA$Nf8D|Nw3~?XJn7Wb~wQ-Er(a-atnH)X35KiIcNSlTrEy%>{9E%ZYZ`iYa-vpRp zROj{y_Ki*0x@5SVShPFPyI4RHv^+Izg7iUHt68a6IBaA{;w8eStbm~e=L!pRepuTW zoeCX}y+xODalpREk>4i9pqO5m8B(TSS`(beHN^f!41S4UX1aP=g3dIj#ZSkZemZ(# zbYx5mpwFQ83!5J?qB*D%3fm9}4@tOq65Sjfw^EH~NcDEEXZdy^X=p3ZW+7G{$H*f7 z;g{Npgv}scvd;SM#bts_QZN8EtJ8@?W{8^busP@MW+ zpk^|nce8^>PI%4_VvW#kGKlE*d+9a~H;C;ei3-Lu$tBy?UrR$(JJ&$62DZ0@9@7@voT`HPiEv_@ItX7@MlW>ZXrbl#$Wz9gW=J^$4f)`W7dNr5@RjR}K`k4=U`3L#84-d{s=!^VYvglBi&p%Ia5P=M5DiDn{6pO_^> z?s%#`$lwCajgiLQs!KU3(2~P6dWU$!~lQ}9vVkGmg;>avj)awL^xA=4kfe-4id7uX8hr^KvNmt z@~L}LB5#qWkIknl&twzE5dA6ljg|_}B&A7!me04iA}j&A)nYNbjz^S}wLdDjk=$2t z=ukpihMmWK&^=kQO;#y8N^*Y=mIuR&+Mpqp zqrhwYRjeIx<2z>;o*Jkh{X;N?o-=Y53dNdy%s8^C5-JqkU* zilocRaf}nwG4~+cl_o(+opOALb&!rv>_=q>C`LJDBW;EOgHSNdqkE1H0aBaHn@Q`Z z6w~L}3KNwzH3NP}qf_>n_fVyThuW1!+2C;;gB1Ne2_29QJtxbgbW8TPC3Gy#yJh#R zI~p?ZLb2ijU#NU zVFyX>AlH-J1d0BD&dyk#bcg&LI4b0Xg9z(gx>7wJ@ z9PHwgsM%s(5`k=DjGlQ-s}CU28mQc0GXnp6`Xz7{DG#F=iD9t<)v!qk zf^JGSOvRHSy!v^A#}UN3n4>e7KuJ$MM{z?9J^swJckl z1cc|GB4^pY<7}!nyy8f-{9-eqhN<9znT85MKIn}MU3Lh|*@6K?61K^)Bj}gvd;b7W zn+n$?8oA|58Vp4bhq7qui($PrK_5MmxMQUb1StgBWJD(;YGg?o0Q!!miqB*m66>^& zeVIUmI!;8mHU$ARGo;$4o|xrBF;`cn`9$70XCpi%LP&~J5^D=c)i^VEkD*jd5y{{x z1KtW*X9JNY!XhI2zCfK6HvDC#k%*=|w*Cf}|tj#ss?U;^xO1`A*vwB%gB?28H%E!5o}1CU@-cB{20b&LvN#o#qIk1b zH%G{UjCw0j0$SLf+h;Q@e#|2-U7Y$Pws6W=awg65Qo_4$%Cnot!bqHAF>$iu2x&8& zz*y;?5Dq*+iF)^pl^L^zOS+=_EeMhXV4E}d3IZ(k^yrwPll6t~&431VL#o4JXG)FnG4 z9Eo}!go(=e=#b4ld?F*@hv3Bmc&lD8d}#EM3vZojQ^530Vyz@jjR|=m>?Q?RxX$HM8%dNWo`x|=Mn|^WZnW9&0Cp|QR!ltX>P&l zb`E>lBkQPgvM{bBg7}7G{^|aR3LIjBKS(LT1hNpXY3rrrmlE4C2M6!BN3sewn9z5Z zWiM7!WluEE$0A^e3P2cm&df3NL>#GW^FjNkqVPwz&VToeo;dC^wB!~L=iU&J_|a?e ziX%5Omi^r-Ovz%(5?X>AyAft$T@r;Oy1xZLH{(s{G;#Mk=NiuNCyT9PsX&24a|g>P zpI9%#(`WfpKNv5^!0f_O^`a9+UNXXS?9c_;z@+m>Gge^`BC`RCu2Z?OI&!xQ25)F~ zHX5O5%pGaWak0#J!sGl-zal|913dM|59EQc1&;}3%Vf;xMz7Dz!AIG|1rr|3 zZk%7&*j;PQ6Y!xLzv;HlkdSfx6gNkuJ~09HlY*=*#Oft88l;dlAY%%QuhPj;LlDm) zgvf(N48ZZ&;x(F@kK7@fDllRnEP%ruN~3JSDB^{q`g@UmdNTmDX%L8|rC9*`)E6}| za6d4rx^j4Gp`bL0@RY}6T?t7%wzHnIX&MIMv~8&lA{)_!6g9`!Is>)oS=L+!5~(s) zOz@F-bkfoauk&t>B5Bl`n$z!&=j0twOxZK{h=dLvM@GSWy5F_)69hW2FyTjL!6Ba# z3>c0q)J;P2DEDqGyHCd{)^v72XE4)FrO^l;H!YoVw4tWr5ZD1l_2D@@Ff6Ahl19^$1S)72?7Li@|Sr=pL0i{IPCrn8i z9F3rG8Y*tRggjQE7wfE)`A>D|oHcOd*woaCtVzdOG3OZ{dHNpBApz3u|Z)Svjjh#x>ZNsc?R+72IXaI3Xb{5%o6*0pRS}th6o;3S-Z*G1`7mAZIo7!*SL8ER+RoQq2OEp)!}n79D5#<4o{r9#h2(sQZ`K zmo3x$3sPz04w3uDtsdPW1v}Jer>$_=V?A4?$3lBZh)&}NXHo13tmwUyU|GvI>5QL7 z%97Y$>314VfRe(BLWqEb3QWNQVqZX~Z$B}W9A_HGmv|Cod_U6E5Lw=z{J1kt3LctZ z_}I?abyW981$X*>He%eQiNJ)k6*KW}ZDFi+Dr=Z{e=VSBm5F`BG-ugRFYC)`PYd5g zP=(IVB=pPdgLt|5=T;`Ym4eOTV&RG)IIxDmp4;iEQs2XFaKzNhF(z?c7zWbEQQ|oB zICQ{)I?L^=#E@zZ`th2!YTJxpGi^sP3Ssb)*=0|yR8^}wC(Tdb8IT28^kD{%0J4`5 z++uOd5136icbpkPs&PCN<8(8-Lo?#JCP$5y(#9S8(h?-F!PB($HkM>6Kx+iRab_vU zL8rdB8uB9y${f=(u_LfYkfnqWj+hFi?s0)|WD~u{eFvWF9z!#4G$`vjPN52Lp^#8_Fj-{zY;aKmnwV-I9JEIU&nCr^nI-=rb5s+DbqB4?N=i;B6KB<6ye%i$sLxfSy-#GDiq|>8oTn}$DF~SCJkm=qZZhCho5>lLu|v6y z3a;T<6c7JcyG+4kCDb{5?UEd2Pa00-4l0B(m63Mi6V}Fg!W89A!zucTs`J9W8d5wR z#E@-I%Xd5*+~+4_$;lT8eyKowJUtHQ@b)9OQ^l6GwZwHs?HdGMmnCP$4j_I;%gd6D zuyO2mf)JH(BHoHy5KDOXP9Wj-nr@X8p{)*)aM9j3kanOk&_7rUJ(; z+IK!gd29%?7HC4iQ*s{ZLr&?Z$AzAmG*T&~;oPX3Ja-@;iqoIQYMBHbH$7#YGc+5i zCZ@GGc1rvseAQACK0#hsOs%ciY;aJ4o0K#n0}4dKc^o;J9$kRmIy^Janpjf(L%f3t zPvX$=p@~Tc!Zl}YKM@}^Z*mj&##PDVWXD0Sd$R#v(D4^BstX4_dE|X2o7cT;L0MIIpBc5^{5|oIL|s$5Ox>Mz>tH&5>%+s3-O`h z4tVw!iG#XiD>WQ7$8kR}I%iL@Cl1x^1 z*Csqd;vqz*_yT28Cf`!Kz91}#GgeP4B95>?Ohr3vTp??|qX4K8;*I9W>(r=SC;kbG zz9L1uGqbkl`pd{6D-oeTg_B)}WqCB|dls7YC#G-M@rh~ZUa_xvL z5ZRR2iZO%~voUm`nCpnQeW@c;zVMP_{^VkZB-zqtkD>2@-E|8yDaWCEs?L+AY6cfR zbx2N~mDuY=njjo<@SN4dM`!uOC}A#nk=4jfcn)%`fS8jFd#) zPfUzX#wm5;g?=Ns#gfN#RdWmH%=U%|7<$wSz^AH0XMaDd?A!>@SNk30kCIV^fG)tPYj>#OR3$l&R2~|f>kW8{huOo3*+LT4fk7Ufv zw=Q_gj5RIeGk-*Ns!WuiGRaCoKf%28w5riOW5l$oyM-A_t(N%s%}!+O1a?ghI~ngd zz~yQ46-;=i=Q(rnjYaUfHFrxtQYEZ4bD?*n<3*KqibqRZ%g-p}3gMhuF(-bM%;_@m zX5y6Wot7RKIWjsqq}UU@JW7n(rLm;69y0DIa`_0c%;pAS#&AQi zBKIi69|abY)Nzk^1jgze5ZPO|AAnz~4t1WWb|pHTO?f3!%xC?((|lb?)~PfCF2xhp zrEZs0D+kKi`U_c8vpbzEJ3C|5bW_&cKa}Fj@MI^r?kS0N4!O}$f!S`!k%_Yz3e69* z`8(0fXY!uU3H7}%K+` zG3jyou!Y(CqS;c%P)AJ>s%g6#t+v85X$$9fR5fIvumP7p&Pwek@k}ri9OQE_n9y_N z(9^xw3EIs|Kb{s%yf)pO?6q{jzNIAi~}-+QNRV4Wb^PiX*#2E_GBseC6rc!5<$yz#yL~PhkQ1p zPTc?!Zn}P@r?!W%v z3$M9;@Zi3EH}5?(c<7oJUcYzHA|H;bNc6~@#TGhMkw@C81dO~+(jedQA|Z71B5hT) z#*eCKuzUjv*AdG|X6KAmB9r8{FyS=tmTX&Kx&)9+66bl2o{A?c&Zeqnz0QFeWC!aU zof0uEmnLSgECgGwD-KlQ5qZz8MUia5aGF7<@)I=%7^u|BCmKioddD(YNU?!3V|_}9 zpRD7?|W7$tJzqA2%K zhs>1$lVBm#51@%X^^)kr<01iw7kQf+0`&D0)_OXq%NTp~{)xmhCr$LEgBd1}!q(f) zDCYA3HW{jbh&$k7@}kLNh`a6!a7uu2S>>}WtVQJ0W_ z3!s7Q1!~>v)i7|t*7kh)Fq4deM-xX>`c4R01upp%5fM;OBDxwj)Ibx4_?nHoh3pmnY$AD93>30eaYx6`+CBNLrk zwiU&j=vNxFP4Z((7jqQ8`XTOIDcD&eF5V~+FyQb|z(|wHNik&M&jHA4!Xm^($J@xn zr6R{>$`z#ULKteAk^9nUg*ZSkAB#481_Bcbv| z*W5g~@8IrRZcaG$Ai_x&(Nh>#5-ex;*;M7bywsEbvdv$*=yc`li;Qn~ zmKMs|MR|Xt+fh+@^4BQgf_+kbNHVrE>aCWDv0gMKljxmCJOw0r{4y$?HO|^PLWwtF z$2I5Pa(}IZbjT=cMPvJm&shdrMX;>KdlxKTVmw*3~7eoAVUSN==8 ze5i4e{vP+}usiQHL#nY7|8u_YWOh&Q+c5`L?w7GCsfH6h0A`vB-q+XW8*6c9pEa4} zk^Bk5ih%NNvKF7<1l?b5#gZ={1ree#VL@`TiXf2UdO8SS|5YF zl-iLIR;}6BSUDv}NM&3}+K4)5IR1Ti!js(hx42Zj=Icq5%af<=XTIZmZD5|M_KGr! z){KwyPuJ42rZD52?0n(V{K=;!-swq91D(f*u+(f9-Ta@WBj@2)kF<*JOZL(t>4^T0 z?SV?!XTmJ0w+rK~#kpR)w=XH`bsxWc0`_B`W< z%()b=7D<<$PSnWkUDLF#u7}5W2aZ5-#W#19v8nAWW3@^l4pf`sSgw6|KP94DQ-4zVZ{O)3+g^7WbB?Ik zc$=H|p3B_oMyM5+%^FU7y_%0h_-}T1$0VWt#1HIy2l^O6%?8y3&ZvcAO z4~&H9@3k_;gg*IN@DTEDwoQs3qaHWo%+&0{0kscr++AwA@N! z7ieOUBOy2VAuf03pB?}ftdiE;c$~4hd5!{l!V_-(jF}F4C1(-J z_6rqU09iF@7LnY&DPLectv0{rA7h;MEt{`P^WIKwj%|exH1Hq36g}Ni{V&k3DO)zp z)ke63iYqtjFCT7{)9I)s{#iPWauM6a+Z*XfkJp0%cV3FME0^HL0dma@C+JZEow(mP zs{6-XV?gez+)aVrr+Nb-M+d098<%(g(f0*Xof=2RFfN1EKFwkNsja=Z^>(5&FSp|% zO)3lJ7fSr|M8Ao^y@aj)1=)cdmUr1hK41S!9cUk|008LoKd1k06_+mRMGrn!;x-_m z-(THdZ;AQE|4vgnm{h0m zM{U3d%dU=86oKlTlKr=v9{8&Hb%+z(B@f{}Q?@yWZKZIfDMS+r$h(3`CI?KlS(d^- zhGboV-B0J3NSd0t3Z?MEc=EL?!UHT+0v{=bi#|o)_~%-fqzO%!f;N$rfB9y^Jd5Rl zDdbF}d_F=`#%d34UK;ov(~=@`YV(2+8Vl?Ayl7PtfbT}6yo9PyAJ`VmkoDcPcs;8% zp;GTNN%-fDm2VDIQik_SV2ux;Ft4(ZB^0r(1U_dN8Z4}S(0G;-i<6$|s0^jg7&#!@ z{S%s-nNU;G^WQ0r+nX<{pj)WUlt-^2i&tm!LPknfO|p$VZ5jiP9)SPU!4BXPW!JfH zP^BYhw3PuS(P*i~8n<$Ax}^VO?s*GC;qHa_`$KfGE(GTm6pc=G&9IKC4u8QGf=oJM z$Rg4E?_IB@U--ZgT|8mcA6j&q43$1|nVuVns!s?LwVb9){|1(pWeGP+o{r|!)gEOwLOy(Del3s#bwM$ekQo6# zn+u+O&2ck5053CNAmxb$d@V$jDg}z>l?uh){2Lqn$dfI)F(hnJMH`{3k(2gTKc^~l z{I(_(`uZ&6hc0ApwmET;=@(X0b>u%`5B8MlP)6#Nx+^7nPT&7-?G)cen5-d;&t>qH zX{&Pjc%{E4Fk6jHzr6mitEP7x{XaYvr8iX>11IHxyJ#*y$O3*<-(MVHr4NQF5OP1& zx!EUX8MX!I0g^lwju;ObxPzA8M65PXEoL;pVuqVHCD=$EX{+FsTb zeiBLiNF6!NrX!C4fF=O4zFVOyr#9w!OvO@wU;%1}x%_(Nq;8qx3%9xM$iK~ZGp_q@ zXT3i)8sEKqOKj zUI-~J3Zy$z>?RH>Dx91NT|qT2}m3}oY7y}WbuRbg%A?lFBr$^HTg!rm~EJfYL4 zAXXCCx}Hzpr+|znGW%T#XJc~<11@jP6w#gISB`+f$iJ@eWlTW;I%(-R*!#-xn9QSv z=Q}5HZIGH@;+b8_NuiLx<0i-Z<0$joAlx3x{9gLmuNi&Dro^3y?e^jsuS@wpJp2wA zxJLZ_^ZGOl{Sfqc(pv_V-?8KZ$w@cStnK$*s_Yv2%Mc(psxAoZ6*3G(BZ)wO!R8)Hh9w&udkQ5QjZFeNXPG% zll%$C|G#CupA9}esNW@U{=isIDd^hPRy4=f*@*2Cyb1XO&2OB!4@-#!IQ+l#79J*i za{@8a0PWCLP?g)eoKL$s@$m==;{rs1Px04y zc^A_ea%K}!&I233Uvx-XU*x+InrQtVTOlaU$|DIsc6U;*i=GJ=2FDuZEEQEU6*NXB9-h#Lw;6aJNthO zeFXmpxuRZ3n&PhmP38YnG$Bn&TTa;K2ee831g$D9;?-F)H5Y`v0&(zM+4P-4(xlq$NXV;P z%kNs?;pNP}d4Q07`NxoGu-A9ous4uWh2o%D@rt^D`c&msWq3f>Jx^v_a)_@@G#2~- z5>yf%tsG{MyN1pzW|y`<7dK({b`AEyGy zkbmZfSrr(yN%%TOsl`KBi?tEj9Wl8f3yHzF0U4T z0}|Gj8R2kDiGO2i|6wQl=;mSP!orP%tqa*7gAy&PHDKmv z3fFlJFu03C+2tZVrcTUWW`9EM*FczVbe$*dP>suP$B?p&k;}V<(9!CQDE(uon7oC! z+L^DlDeeB9o(MRQxrzFlk>aZE%x8i5n*pzR7f*Sf_xk`csd3Z%AqIrFMs=0R{-Fc= z(9Ks}Gx`*yfwKnTnu1|f>fsNj!mL(Cw#KvRO$7}S>rKYRp2ky6&*sC>joT8R-6v*c zv$Vx591}G{n_f8yJAvQ7n%%h1npkDq3iZ<7&ks{0E@zdjX8|rViy6-T4^#M7xEIZHbLRYPfsY9DE!lTAE z@Mvn1dMF7qHE(i*k!hoLwGHLxyNpi~hj_-rht*s*TaJYGskn8Q1lm(ttQor$M4pe2 z6+sWEAl?rM;tbL(d8HN%jDJzegy`(tbt*-*>NUD&HRTii++LA#gPXozKN;AXs*%6* zqox)(RZ1&XKDzlfXD|6MFviu2GrKJ5JlJ}aa4n1KZ+?m~V|HkJ4>_*Q^L8R04@B8c zSZcFIPJHiE;MyR=qZr5CKTQnZ^uFRLza)nCkrMhylHONIY2Afymak5RDuB~sO6$Zt zPA0@@0;@8H7+mX`; zXtp9e8GC<;#PF=pbN2Vp$ByvX<;5oF{*Nn9g5u7?>l^rSj0HlYyedyN2;7ucFBOSR zGYj8_D3`Pa2H=ep2o|^ce$yHfjX%|V^vB}Or{OE6n}$tY%E+d(&Upsp`Ae3mF^@1a z$waOd8oy$t7~qcqXFH{v9?ij*uchW`PWr#!ZYoQfjKQjj-rk)%8Lom9d>ea2R!vP??#45`fEC_JX5JL3x zVK|ok-;^Py5y6!OpJ1L9M{b4!S0>3>Xr#$|$%z*pp!g?H698lp_#3fKr zEM4(-@huCeOnTzQkNSGG0?*)Zd4s$@!mRY97W)7%+IeZ`UC_T5G(?halbw0Euhy{Q zB4otU;Y$|xt-lM5{+UH7FMa`8Q7#j-)jZR~RgM>0C1FL&u=#lCit$qH+wBhr3E%nN}P_*8VXGSo+@ zS!nw?K?!Z_1o~_HMY*G*V&yT?-lZ^rQt3ymv}d@~&tLP>|0y?+aIVu#Zn%s)i~(Nx zjU9^4o?`c|4sReB0{R8bbVg{_?Ots=5!V5*X@<0H|1q@tF>$dlx!+a1R3SK8jTO1lX7 z>t)0>G1E)J#1bbGhys1!gLLSXhc~pcg@*;t7*DjlgU2Xu+uxb(zPz?F-Wqvn6-FW^ zpOe#DRFHo1FyMV$EC&k4;n=kr(R!YtPCJ1aQh{JNi%XH%)H9XbB%bQvaP7^HjX|x* z$+LH@UNRwyTmz(oJEqCyOAePUaMG(3d|Nn7iN}M6_3g#PBYC1&f8RQQorgB8mVrC0 zCCSny`2agXvkJ9pw=G5*#NtOzuX!JOHO0p|GIwIat~}vw{BN&3!*OKuH4+rifKLm@ zLHNr%&`Bw|VFyaK=TED?A+7lngc|Z^Z$re6V`isAvu^CAZhPLttS|*(-lg^7f||7@ zKD|mz2KY&x=1i<>r)|tjtp4NL$dyRjU|!Y1C}!;=?`o-Wbz$+=YWxhzZqU7)KbPBLiuoK4Tu|8h{? z?f}jOBLBB4#(18v@&L?E7iK=geTxRnqs5=wf6*6Kq5yy!DWtN*Mx6y$-`l)%)r1Pi#qrfP}EY2R}3-RcY^@59<2fgHF zU4%;fN$xr6P7>Y7SyKlhWs&&qsMJau;~5bWq8lIjpH$<4q030b$@rraBO!}^zoJCe z$Yh#1z)YtN;X5mAfey6ARpg)!`ji_tZpR_(rFW913D;7t=UkKG5d7U1jtTaRsuFn% zNmcSSN=B@`F~d^-&4f&zi6`gbxHp41?>J`*m%D)!TiboIZEXZ+RiHDB*HsIs-r8@@JE{rCKLsU}`5vfTirz)rx0yaFem3WJq6!$H5+%7!PsV%9nLK_id?q!Dt77lOVtOZ~Tg0MgP?@egi z$=|B0l}$m|hK)H;&iRgtJ^=v|Z>{bk3DL~1o^6ow1&rEXZGa$7xl_wk$^h*4RQnEZ=9q>DgfpeifIZerQq75QlmbC|Jz*p$ zi>Ij3{fd-D8CqXPO3^y_FsiRi|Ad>+;m7~Mqa<32FrAOY;MNtumN8 z({5E(o5ReUdACARst{%9Kor5V6_QYe_=a}yBi*!y>(5nBo&Am~3`sgF8+cLoD$n3u z%qQ}vOHXt2+#hMqoUh|HThhjB;zq~Tau+QIoUIp&RkWJ0O8iM}`=vxc zFMT~?+?v1drP`8oGu&VuF?{`JplBE8rx>AGcMTc=K}oL&_@VlFc!nHFh+3qF>`K;L zdTI5t;Oc95Q&vV(U_z6xC9q;muAnVzvT1)qmrpb+R*qQQkgTez}0P*x^{oitCe-zL*+2DLZeq=A-VUAUHK;1JPeOMRa zZ1zJj7;?s{2v^@;U-*P2Vkg%A{6onrFFBj=qR(?=e-jGAecdR=e+JZep9wj?Hzd=7 zf0)wrf23HnE|!W~8fz(&l|FO1Ju*V84Lnm%vtM5Y)Op`SHOe}35rdRe!J(PQ*gWGz z9;5i62uyi>i3L)4kD26oDy(jqE`qiQntg-qBvpiuKL9J?|H?_lP@~JHr0Qurcp0BH zwSKJ0-%xzCgJM47fJlk%Y;$`{H-?Eg-`E#w5+mNX&B4%htP1p!6#7Ut8!^G$yE8#x z@d*=V#f3Q<1L;RT!B)SvPJ-T{m=PNC-8SnyQ=TA2N(C=`-W%VBA{)3=4CeP!y=rJhFn{cH5<$99~%P(2U}d?x2qag$6p;u3OmF+8Z& zMd!=;`HM1=6=EbYWx<5L0qxYSUps)h_{zWp{zJXLshcoW^+%yxFGf2>PIy?Hzi$_K zQ^CrG^UrM?Wa2ils77xS=rca4KjiPey&!Q(-+AdwJinbJ2v?wnl{x+3ahO|N11IjL zO~^b$I9%F370Bw{S$VT5SZm5I;}*4}rO@N`LcZzqU#G{>?^4W+=3-@e;&O*C?hbD# zzALkLqAZ83{g^bHyTyT}n(= zN!c`I!851zLHe8@R4tc(?_lx}(!5X`D=1Ug2ZR6kfN<)l zoCw48gx@5+ob4oUyf_nc9I&zj-L44?&;J63uD&6+Uyk2jH!|*IjNUzC_}rH@1FwD@ zd~|1u(UV;DEzoSoX*K=gJ-K7(+&jaieka(ha?sG=X>Cv~SB_&%Ig0Say0A#-3i73@ z92N4lDj`14mtT67YfWcZ?n8Bn8NUJqd1q>#(PvlL46AE|%YDw1cxlZ6g+MJ(^oU2} z6vA0c;%S>QMv=gfA68>A(ZO*XVPc!@Yn#J7gs;~6t-9Rqs~m|55m<7W%W7cQKJ$Zn zi5Y7rRc|kQf(<|k_7yTcAzPQ_IO?;I=}I+FvV?lm!)v)9p2IaiitrE|G16I@OmF>4 z=;+SD^Ht;Q7`wC$z>#8|)scEDLZ>y~YZ{Xt#h5-iwsZ~N3lvs2K~S!<7z{q=IggFN zm;!m+{VrGsDDJAy2C6m={{LkioC5B&R1H{mpKjMx>O>p|)=jLOazp2+aiuoLUI3go zzz_eTmeGCEmUjmL1v0~%6A()oQV!}zkBEIFEKSk@GahkY*|m@vUw8)(^|!$12ns$A zjM0{$&YTId)dbhN6IF8kR)Nj2#^};x)c4~x;@xEowe?To>ec2@H0T;}g%dO@V({LK z3odx-iBJA2Q~?JaZx)2;|MJMov@j^jSfD|3i~){l){D0H<2tSfjcJLHN5?y+_dLyY z;I)-Ok=nkK$MQ%bc#U`L)I+3wDHAI?GfTI*8D4cCS7^84Dm@9uNJF@vT@aNv@RnVL zzY7;XN#j<;898(x=nP*nB2jxX>sIe|2iTXGw_mYmJ;GQPRgb6z{#rLLv2jx9lmAZz z7s(mr*;V_2jF(Zx)C0ES5btL(bn{xjKOA7_+9M&;Z0I;;09!c_dCAAbWeIQxQxK#m z+~cmSKS7&&;O-liqjr7IbI%5-Rb%9MR%(v1kL*P2ybPVi(hVa5mR0?m<3cRgVQ(BF zuiIYYgUK(CgD2ejCk}dj`cg!{EA!Bz77pSQ$Ila)36+dEg6yb_1Ky8K<*+VgamB8# z<wfH zRApCs+rO&Ht~fA9GyFr1ok-<$Bx?(t&V$NyUUW8WJe>SDGBm*8U=&Z*ix};^>JPTq ztLJ+D@zvnSOaiR>;!&R%4=GZpe_#(q6*^yjZaeK3eG%^WyI+iN88xeev%|Z z?BL6c*ZYKnWSZO$V}i}p@QR0{)&5jhHH9wA3~BcNX>(UBoJ-7*zQs6^cKhWa_rOKv zJJ5+5{U{t2x?$g3{Mq?mh9j^>dxzI2{^k3z3d21=+h|-&wa=er=qZnz)E^& zTexrJGi?qC9Ntm>6dcSfs@&5!24fXQdq_aYrL>Pe0*DF9qVvcvb;?eKI&xTiWD$^8 z&cWmncMI#P%KJ6a-LsqnWUd-3glc?Lzea^o_0puAZ4TlD#Ly_0+}Lc>J-0Td=};N@9P9&ru{Y;`^rOM3D2|84;|=@Ln$;==mW#Ww~_L0lu%B&=w(>lk%3nG_OCj9ODb5c=7#jIw-d5?m|~bopQ2x!@*D^L z;G2T=vyKOHI>;_An(Y$Sx%Huty(7mLUwMWc9>JqQ-eM?c4aq@SlxSH;CG+f~*_p3K z2KP|ne@2hC`3nt0Rh6>lstdsaIpTudYVI zCX!;Nugs6QzKEqghZ&tq*z>pzUo45D2qv}g`GG1MT}!~eoUF1gZ!VQn^LDz3#9uxU z2D>9*RjJIcu+dt|t%-m~LfRf=jh8WtYOrhVVOEijqCm^U^Nw$)OeFUc9(Z0q)$yT* zdpVE}eE62o-I^Lu#^dAp4?UnlBTjr_t8?n4Y&an1%UZ$Mj%=K^P(_9Zi*C!Ua?V$e z*^l|QQ;#5n#(mibg+#X%`p508710CLFCdAB<9w)19+QpKwa*49eX?6qPNxpS zw8I(gQdi?=-unk!@dbtc@qrJN<}~jm@+`92y!0Ih2dQx_F44jk7SGwI3g78NhwTqd z=GH%j`t$>;i@n=~oR@D>Z}yXd&5k~$+_IVNtbcGhM4H7xyOiaZNL|Ve2~C5t5g$Jr z!$myc7*o(sc#!;9apH6TgEY}9icMOa(1Z>4TWLqf1~Elt*WS8@tRk1cQDDaoHV_dF zpb$&hR=oQ89NB9rNH*Fiw$uIFYvda07>vWqs9RgBiXG*{%B@##i_G3baFpXiUP4!e zd`gx@e4Li`H*2gw_#cCeJ{HT>cQ0fMcn^U^AfDLJx}-hz{j_pst9CWR*}PcF;O3Jt zp*|U)?Dp)y6_0nHEbFb!c!}is?N<{tC!nJg1ZBXt%9r)QV+FjRckolv->V4Me&a1) z7uOzxCKT+J(-9@=CJ{>Kab^7h52Ve73d|FiI%iXS_PzRIEbC`@_!nn%5#k>;nD?Q? zBACf%TC5+9aZ%gdfr4tbk=hp@5O!R@nsBXp(gc&K9rqeJ`OEu*^C8S2L zmnA9)tw*yjwN2#^*Sa?z2Cg%n7YO~tIrX|~>@&b0!MG4jh^*{?l)KhnEx8o!W11#tGZi7+N$CKUp;Mm%E>c=|XBe0-NBC6A-}hAUw)|L#pP<1+%^MWEIv8VERScVps`L`XmJQuW8lQW! zZ2^S6^4W2JE^ezc<$fBgqTRE|{I&R?d0Ohd%waRbr*W6oTR*9TbO$wfjQ#Fn1cLwY z`%xCgZLLc`lCtF-$~)Lt&@uS4Tz9^&_Qlz~Ci-pWRn2E7OMN09-Al6ZR`HkbYmi^^ z!7xmcJZa2V$@pA*MU2wVkt{9O)oP=0x7En(YJ2*M)Rm)L2?%Jz%Sa{W;7#971j1ja zA0g|0?8NV9zJuhSPqBlS3&Dz8UYkg( z{+kUDx3ZW>PL5uj4Fj1Uk~myc?AZ^aI>N3u z6uw_?GpRK=N6bA7{kZH{E4B~IxwX&nGmZSE<;tNJ2(jGHH5Cksm=h(m4inP@y;v}u z*1Bh_E#>mm^1R>Xe5x~Cs#o;TJK>priM9{s=2)s@M895*#B%ezFxTZ3NzNEx-8FLm z0QaQkR$U~NA?%o4oQ(9XN1>0&Vp&6yigSX*#9)-^)auJ%N7dzOrt6)!;1q4&7CU8` z-i! zPc;`@-+|~CY(_QW1HOt*8cGB#=^t12&aS;UHV(J_o)qljQI9dK) zEFV{M2LHsd2kuj#_;Q@xZjy0UlY$rt2*cb1B{Y-s3Ud+ifZuw)W=*bvB%|i3nP;8p z%kx}We{h7_2QwFyNA%Wwm9MgkzGJ9z!A_`r=2ya)_XggDgua>x4U_JO`%h{r@N+Gm zhfj{9a0&PwC70=&iyGnEfaG^R6pTZ_-_klCP;ZbKdr8&tMAP`tT!A&8y3{pnWciE) z^2Jrmlq@*@GV>Xwl4W3WWeoUBO#%H7@(qDsyRgg`KzLqUJ%&OzvZ32b-r>g*Ps%V)mK?HeUtP{g*JvGcJLT%+YH$9QH3$*=8_Kue_pyj>Mt$zD zef(Lu*d!zQCU)1}R=kRu`0vTqi+%(3h}w36Z8mwq)>Negggy}t-D;?wBNuMm zCc1{dSfoel{TvT&;PhC!ON{rOQhc-7mUYwP3+^m~Kk4VHYP$i?Xmvj#sYhYdxvs$b z#r_CnbCU_H0DcQpIKWN@-gL1HrbD;~zZj82xF8vK=AT*wCVb{#bG}pi*3hQ2qcLu) zyfK_G`_4QT5xeQn?{Cu_B|jH?vJ^!gyD_ZzG9=H^6;Nro*#4R=snR~tX$kWrq(A6e z1*QqKE|iY-mK)rEoi^LU-haBIRwI=>rEng~?&m735Iy_GXxvQE@)+!hfd5p@CHM^A zZuI{Zj@NeTn|q8?2yZ>bfda0 zH&)t5c!s)rRb<2~G8p`Fe$1j5tE0Bc@GqwJ)Zw%}RelN8W>@ME?iqPv#scEC^KF=J z#%?UdPkQ?-)pCYH34RvIOrb|tyo3|2PJ!DTT-fHDcs6&gUwE+}tI}nwrlPery(;wo zh@0hL-8Ai!(*9aY8g%1JguAb}x|9D_JJvqPIdT89PqGHWMi^#oX0Py@W-<8WJs~;6 z0P=jm*((f3F~0EoL3X`pDbn#vsQ7(Egv4ltKn=po;~e^k4D+}=*E}5Y*&ImS1dj9q zHG{q>+LRX({%Z=(uOBM?zyW=$_-0C;W8JW3l;?iR2?8>x2*CXjbQT`JnG)e7nxU0? zus8U#)R6nrW*!!|_>}@W{a{VR!Z#=ZFsW{S_3k`=mJ?P20BKGU)D<;Z+hr(DuRQ(F z;yWbE&~BkE#I z^6WZ|I)Y2_pb)K+>RW{uLJ|zf6yyG4<>gTRh2*xue;kms}rs+yh!zRd{fuLyxa8U zJw5(B=t~0qy1YAJUNS}#^jCgSNapMF0fA}N**I^H0OnJN%Y588zZnAaFn>e(2%7mP zkidN9Vs+0W*KTR0Sx{>~%q4|nxJMQ*NZ52S=NU4~y!ZIyck1zRN*CU%Rg)t;q}bHM zIOxpVuCz<)58&MSFO6SMy@@7c=Vp9x?1O(!bseF448Y>!volyIzh73cf731NTS)$| zhC#@XlTM1Gtpfm1%qhHVHqbiqOq=^N8uTaDw_B2tNw1ap(y#YKx+Obids9 zw2pzt7DN0s$yD{--HEOpWR9XG7LO*ljIJ8TR96dvNED|u zBlQk}`V1*oMu4OE4mm}L4e6?&2Llg?JJW%vRFj)o)=0rCl~KWN#=`@_A zhtr-J+`%=^$63;(q@#$?ozRIVgU$Aj3#dXt9Z!)OZ{$V*>DUUY19O|Ayaf7mBaye` z*q3tE<^G+=CswOYPo!$Z9`{SFFRmTKlM7UA)1g1#DOV>I7Kd2qeI2;9U8h|$#G4Z4 zzC~G7*m6h?rBtTyw^gtM;KIcQr9ZFB!kCH8S~)Qm;lcCFvMB)~>x!+`<{ZUxBHN?8 z`82a;fAmA=o3YL`dag0Y)&QhqLBTi$v=f_z97PwZVW4sm4^Q|)exA~NjuoGm__mo{P z{@`6^jD+1&Aoh=S_?gj7o}$M{JE?shMaDTHLO%)& z{q@xj4+#QDvTRJST16I1b284~ZUNw9$qm#bFz?X~%eBj2raLPoqqCh5porOOlw?Y< zZ=!s5BmYw_vgb8DDq_q(?v><1Q(wE?*R$tEaoi9W6$S7srgf6n4_Rt`Mt^Ub*VFs`>DZXaB&z&a z);r}QdnY0j)(N+g=AMkHs0?r_Bzm`V?$nizg9atie5X98+Yj~nQ!cg;Zu}~%na3%i zUCMm{4cuuv57#&cWep_tA4YL3(YF7_5oOyWPic4W6$pw<&Q)vJhIZPHlX2|ll`?l^ zdNyl##$OyFs#FnQ*A=+0KDJcnT%ON>!x37&e}>OrJ582ZeE@-I6Ac%{E~~SVo5(~F zN%eM42YLiO>ErDkaQ}dW%RRqJfFI4t<)9^yxSrpBoFidA`s>wzTTXVl30sOuSrtdr zN;=-IgZzH)6nQg9pgK=-lp3oMynP}Q?5^Fv;T<}xp7M(<~J6Y}?0g@9Kz9a{{=k*;ND&mZrtUzd?Dqm6gRzu!GSkYxBA%@nOHnybe$ z!iwOEK2hieH?Ng?i9?d{?(2v-wIy}(%VMm91LcDi9e=&8JRaUo-*uY<;1Nh-I5@&V zQuk!CdTVmdyH?qP8ZG=@iz!4!7zNe|$DQ_s0RDNaqkiEdVf-nx(z(Jm8fnK42ZlE_ zl>kka!=w9}<^b3~FwhP{9rQ+1wMzSuN4vhAZjm zKuhg`h=4SqUQ*cxS#E>;*c%FKLEH%VC3)GV(=H&vYTB)|nO&-M9~`K&m1QC&XhLx{ zjy0m$wwjGiVuY?AMZ%+WMu@E#HLm(m^=NMFV{B|-3V-$b2VyaVB@{$qZ!UGCUShJcrq(^wdz_o|EtBc2En+U z$GlQAyV%tPk08L498&}AwA@OsLy$j?3ic=;|C5Ki9^d0z%aTWf3g`HR+wKhu5ysvv z&fE-0xLc9x>J9VDD^uPf@%zq>oOOXK)D?c)SFf0aLCioI{9UX?mz<%NVW-3NE-9^dwZacUl9#z`kZXn9_AH}w7W5kxnWZ$ zjB=nGpO&5sZHUM(raB3gntaz_x^^Lm*rkQl6o_~vtj!I7xVLnd%`~pGtgm7{$S;og zr7lxLKDxtx)Xe6ohPmF`%xI%zbdVEQa2@~YL&=+WocL^FEWA>_{Af1%*_>_^9jy)1 zLDh}$C%{)l&P6kSTU<}vXBkdUC@w8`sLb8;8I?KUV*gFTo*iC=OxXd+zmA$eEbT1a z&|h?a2}^O90s{_HK7&J!frwMZ3gjz847WG*(-+fU*1cHe;KczKB4a$JvP%YTU{-Lx z0#(V!&_@InvrfTCrD=y8Ic*j@VfNg7%8c-BajV)2Sz3%XoF}xGgi90cPa^>!ddD(r zp}_@qa>!U8Taw>m%=TnKT={iI#O1y{6S4i$Rc4|haviUXPY+EQpxBgOy?QS{9ve9D zr*`)1b1(7>11F>_SrAU*-5^gIK{)V=+to261t$`OapOHyv9p=Jlu}O}jQA}y+MT3h z@X^=z3Y)fYqI~Yy)E+op|Ke!>?0S-^sGvV#(pjHdcsgK*Nh8ZzsUh;HCx#8aXE$B$ zBMJv+@d5_tPVmUp1&Rp>jt*K4Q(qQ~CE9sI&6atB9(!UWr~e%j7N0KGTY;9yQD_BX z^GP6-2u{sJf%TU0v7!C%TfQEqirUgmw5B`rZJRfrBrbty6gLBGX(n0@Cc>SU$qDQ1`1L%I^LxF9C*j?eqp6a!L`{(I;hFSm1on;_QnJu!iL+hYI zq^yCZ=!e!ZDET*Y-oFN_#_|zZ*RdELECzu$TTE66-yzL92r4V85X%OZ|5!)97$)Ky zQ_AL#PMWn)3N`~v>&>Ys84xV-eCmejj)WG+1Wm|^dd*Lt&}a5g_~)w7u*?lJOc^@K zuOqH1M%4h8xX-bOIf1;jN}2SJs?ypGVYGIpniKTSFGG*?oiVk-BC1rLRjH`W#ZY13 zU#hC_9&|)jsoX^k+!>vcJOY3ztplge9(ZRS2h|G)7Ok~h=VN=mNu2ATfy1dc3~Hbb zC6{fx@`A%za}ItTDOCcf|NDYiOgZsf{A0x(d60VNzN>GLJQs$gjM=Th7Ur6ay0LPt zS}A`DD1yG}`@7EBUfJbnm%B^sleUSqCKnxTssjt^+b~Vko~PixB|M+d4X#K2v)lz+ z&SHclAl5}X^_VO9#`S-9fHAGpBg`vL&^v5d`JO+O)C)b~B!D3~WRkIN^@vkKWw{Aa zG1FwR)`s|n<=Trh)yShjekOR<$l;zk%zIq6|C@U%FVo+!1dtyD^uC-wIV@e4Uz88N zzetScZ)W|Y=sBj##xs+DHrFikheYt0M0nq3Kwl?Z`-IYa7rU(ubjlOL<>d+bZuA)H z9owv5_0AmXmPTKBmkz>{gH&*Lcp6h(O7rmsonJdaNoI3%Yx#7OyK4%zZ--McAi)19 zx(;Zz-Z$JDMf?s`yH-olnzdt7MTb#c_GnR6d(R}bs;yPE3DMGOYenrDp+=3w-UKNz zLX1cdk$?X8T9H`BN#d@!$E(5l z4tfcNbjs|i_dI}kzBi~VH&nP_P>Heac|+dW%tABUvMpDM46r(8z&As?C$&B%S{$j``n80}*_GS2*>*~^4eMl9X>v&c|YQf>BBbnf3@2bS4*UrHJSP{TuX1B-# zzGzZ$zX&!u?hC#Rwy7=8@+5SaLmP1{-tsx)v+;!Akjn$s&hgM7N0*FQ3vg?0*d?E_ zYGBruubw3k^ux#$qyj_A-uD=8xR}S{u9-r37W`^%e{mu6XjJ>=>f^Z|?F3b@u-xgL zuLwHR?_{C+sqd%c@?o@WN{|q=zR?i$!?_Ds3+Q?trdh}z=%gxIR*zKAysHcOF%iVP z(N-6_WZ~+W3F^k4DZsnES)$rWyRAK~A_J}Ef4~#R&hs#R21rdn#`=7Bvo`0krSNsm%kygXs>NkRc~`qp-|)-faK6YT-_pi%^ri9~QE-{hh4$9H+bPspo{#ol-k%KM)ib^7Set>19+p0Q zU;7sw+8ObZys7x1*1hcSs!;K6ysLe#w7Zz#l;6|NMh=jSye@@>yVp|2sBK#DW3B)Z zn@&(gMuRMeF#7K)X+gjM1GM7ih%Ku~@SCr^X1sqoiC3C;qmo-LKovivj9t+P!-(Di#KNM9(l% z$)G-P$UmdnLnked=3UK|C+>Y%*j>u5>aFvLbPr)nj}0FklKA&OhjEDj79Tp;u44lL zC}dOBS4=q73sdpM&p$15S)|BSm=ckzLODZ=MH#~6=|ww%b=^+1oo#}hYjt(_4lEmg zge0hH%x~*2{e~|(At?Px`K!S741^e>(REmRdUpF~>$|E{B^3A^5;C`)7L5n+&uxpH zPfz(qfoA&%9}$#q=#Id=b|(k$cn|4x5EkKG(B46A>4UjeH_B-{)=sxh?<7-n_Bzu1 z-tXLTKK@gSC1_Cpej}X{3!E4Is_V%hMFnz?^BnJVBY9O`Xy<6d3%m`80xcoMS_hoO zK!Z85q&eE`${;>ug@o=wBgjh$O$&XOL{qkD6m8B-EGZdOC%sfo0k1X(=)&~WU8<{3 zx@2J<)jN~2tCWKClb?K1j_2rY>zVCl$jQ4VeZ{55#z`mi$wJ>M>3kS-cAiB#O+ZtP zb@UJ|B|E}Vi|R+iN2Jp+Q%q=4dk3k{&dH_PuPEARfd&XAxJ{n_#=(#*0634 zJN7nQX=-f5h85BX@%EVMU!Ryb7>co#Jouj7F9zoypyD?tz>92XFaEmce7q zj+jP0=o08{H z$a{@H&E^08Z2GYN!LGF3rin*@uFSCDfM6~y&krT0& zNO9Wx(2dc*-eIbvB$^g?Cr!uqv3COi-q$3&j+`>|zFfVz2DfQ;P! zDMsSjvfn2gVqN)^+U7|gwZ z(1KC#LmEb|IZOxB3;af+ESv~t}`Rb#r+l_5tTc_Du z$I2aqn3GMe!+xC+O3v8eHSn!fC$R^o%8FZ zSjbKF*QkUz?7$jS;@^*TEw49%!y)fITs7NscGE4r64a*#llnC!MH4XO4?&(KqXEsT z&=PelR#GrQk@ZFYKG;p~-h7&IuW#l4(KzpNdE_4_?9u4w?kD^ChJuLxruF@W_xGRC zr(aONJ7SRy_Z6?`s_@?hnE!<-9YVA2wIG)vvTx)Pm(BbTPLyeBH@>n}8+&OZJ@Z*{%iXfF|w{|<&)Ur>FeS32s+B&*zCtLu2H-LMKc2`tvzFlSZyjzE#k_Ky(~e z+9yaVg;r|1*N@s16CmmPXCB6ci5ypt!EMe}8<(hZ1N*BrwepFzA0hxnjVYZ*SFgK@ zcPLla=X9R|x`8Pyr>zwRkUVK{-9@2QYhz5VUJ%8aE$``;YpWsuAIdA<`WNYL!&1v= z4uCz!ya(kyUuXs>;Q5zD_k>V#42OBiJg7^*{r(77<)V2kVjA^#L~vlHOxnPDf+0$u zU?#*@cW-?9X}k{YuhywLqw6?_&nvBXQj>C>AAsnU^C^hqX5=rhO{4kkFdOSp<@8hu z!c6A4lY_@Xwk;fid5B&;#%>G)bX%=Qc_j#ccXHLiPTq0_xR!#szL25LR)TlQoCR6mSiOSA?+#FiEbRr1{}-G`#D+Ki0O{JOXPo2@v%_cBn6Xa7rg&~e;G3`p;EBh&WUiIqiI5<^J zpWp4U5&D3Va9WvY*<7=cNbOfzttDE=>RHA*lYQYm!LsfcuuRg$!-Xfldj5XiU&*1d z^0}@isdq$<&E45B(KNRjzk{=L&0Q#N-$;7#_{%Wf`l8o6Do(TGT*v0HM4AdxRR~tN zGX9Rd|2@MK3f$$V%s;VgC3(k?&L+oiq2d}EnsgOGT1i0%?3O3N-ewC3{Li}Td)A>> zE5K0X#+luFKu_sQ9gZg27hwDpBwNd^S` zyze>?mdoSpt@)QF)R&eJ(&~5%L%RJZss@IvO`yiF?OW!ZYMNpR8?%bP`h;tU&Ku7eVQxquUUx_T(Qd`p?4kAQ^S|f7w zcuNs`lV)!LDF`}^iYP|FJc|(pUl5fKAof}3B-I&blt#PY8NYtPI4)a~coOswA5<`g zYp9*TS^O$bIz1z3f_#TJ4|yhZ??-z60SJF>m!Kez;mHM&dG~8PnjnoaevjA&ZeO$? z*%O?JRc)#L@1=2F2YGUnzA1(Ot1b|hys2;$9}3okspyl)ivP|O2E7J1$AgSv>L2wA zS-^ZVFb;P|(t5>1r$pV`xXPDu0?ybZ0I^cH%#Z(lhps&_CE!#$>wG_G*7SpWgkb#( zm3{RFDs9w&qJ8x>ZOVYs%CJL_nK^$p0Zv8I9y9I`Dr!9Vojz_Pfk#8m`U05f+W@At=shUS1 z2`rElBbnSY8B=rohS4-cbXuoxo(ZN+PjBs&7>6gcsSDU? zL($6sV4Nh%uf&V6tsh_CDC4mMa{bUoHI7wqmfJXJ2JCISf0Lt2o|foOT>zo5vx=JAiG2#pZd?J#51DHU~Pn$TcC z>zFs7smmFv%d@P5j8S$prx;CVwxA`C$2wVs7hA0)g3gaQU!Zc= zSSoNqe@JayVdFA|eNIVxvh!?xM=8(pPKJFR%x1u$;!2Q`{Q6g(+$5!qpoejw&mpK= zAq`Ah75|PK)HEL9Vjp{W6{D(zokw&Q@g*@qTfvOD3A2lf-apQBn75q0i_fW#Aop0T z?^Y)s&3ApAf>ixoADVZL&t;y*F)$D$9ohok`$aMl8BGnV-9Z#Np zY^pySb}1D2m)xLUD3T8b7dCJD85E5M|E#myOIh_Vq3y|7=+VJyGE^X(5QUm|{nw^1k#q2II@1H6;9zi0Zh2Po( zzDJR6j6U+U_GAm{Z~o0?bb(r4bPYC@XwE0$(d8C28LW00@kr64?9Jnf&Rr?7!vI&t zHf4Q%`vBe@cwc_tlRnz#Yc3%Yu%a`@Qej1H*4m0qs!*46SQPH;cITp<7_vuDxo4C1G} zUq3D{c#AmI=7oeLV{l-Akpn|DP3c$0yu&YSkR3AwuBiBmYC-c?I+`~^EI9Lp`<_LI zD{WWz&t$JjHD+52ij-ZdvE4!FyKVJpu4sFwg*zN8LD=S6*ynm|;&|UoV`34cM052^ ziHBJdMN6h;0<_rq<533cvG!Ww^Nb!Q2gdEULH5_BmgR}bSaYt2aNB5W6|HQS`oE*U z_>8OV63CjCVdft^ZGFeWD`Y00#OyEIjCtBw>tq|R+I27l*oyS_(F8Sat#{`&AhV_C z_xy_i0*WGC0e_B1E~mQ6d*JuAHJ9ACybAWQ#UE2Q8~JLFaRMIF``2KXfsSIAJ^rM? zasG-<5~OwaRWSR>4z~7uW0qsN1eo@5u~oM&>>B{RHuU>84Lv46AW^bQWb-_|?$ zC?zHq;r?V!W2mMpS5($a9W8bmyYJ^?AU!b9vgq>IZ20hn>gxu%Ag{2n zFe>= zce$Q2F&T3hGwI(oNWDQB9(=lgUfs}w8^+5O!%nDDew1hJyIWiI5B)IuS)_2PVVGwu z;1%s0q5C>p>6ru3;;ou_P8?#VWC)Y`{!B!61604CK_OT?BVkZh>x5AHx$xZl)UTFp zRdVjw@#*W257-CyKNN`u&6@}fHXOPvRxg(HwTPo#rMU^sX%$L__`~iV%B4?gXGNRo z`^LI6jeEF%zAw^{x#eM*%c6Diy-EeXwzS*6Cd3bhNS1Zn4R-xz0`6`>fL!j)HKz+v z9Pcyg&p`QXC{I^0WEeAdhdvXgCN)9H_~o;)kNf$zFSU`#o&d;q1`)fn{*Vz)b(`1s z3?XB?WA+kwA!TQLl9_#PysP70n3v~p0JJz^+6r&2H_MLVnBR&PS!=Y9KWq8bk0u25 zS@-*WwAK?6kwi?fo|vcP!Ybu85j_0?v)Q;<^s8?K&ah}_|2-kfn8{j{yoKap+hZY% z@~?oBz39`yKSB214sAIX*P@;$-^%XRbRW)Sh{_5@a8&4 zBLu1m2pPIFKUFUO>X~7g1ICX)&nPc5cl<2A|gGOw0v$;MMf2YX^Pt}^ISfMa^V4R{?qV9J{=OvN((CO(e#MzdF6|O zS$X^J5X#%Pid=im3`;UEr!{;;PzB5n9Iqma`c)4#?GaAwS$>a8y=tiJ2%(3VotL*{ z4Nuj<-8v4cUFQc`@-IXk4Qj655aTn&OFR@Or8`QH(ieZ>CA5=H&3HCp^j7uya$`d3 zIcuEc4?T2RdtbBg%5fM%zyfmGvjTce286gT?Yuxf1T4wdFH15JBE|PC##-dWD+eXU zT0HLBMR^t1TmFs8XWM;xbhtwvI7FK-J4c58IidopLuq4^s)UmhJZ}uDomb1+xHM>u zbrWiNg6EDwP2UW*NV$jWkSNWd4E%bpoaSn|=Y*dW-@Uh$;G%fJm1lPKliBT+aK7=) zW=37=(fMN_Z0teXKAD$v7)!|n?7x8=e9>8mcMT2@s%U8Q3z`u>YnYurSOjO2%gumG zOI&rA7Fi+V?GKHhy%C3O0gxdhqZfG*EGNMh%7)&0OCH8^fW6_AJATc+Hy55;txEr$ zk$m_S<8@0gj?gS6tY#4v@rcA`O+cmsaBxQ#=I`OW?O!3J= zW*g@%1=9Vxw!X*tSkJy|`d|w#a6Jeh?+xh-oX%YaGqh0#)+Oq*N$t8f3$XC@&P)9| zLxL2?*K9E=j2lU|1E_9#nAabx2Df+>2}H-&U|w{AnZm!j@$HF`&6`98tvH1$u{?V2 z$nQ2!d%eCgVC=pi_Rc%)4wP=cIu^OmpJVuqASjbaeRXQkyFR=pKs76==C2Oe=<#-* z3{N6WYZ#menP1MCtgU;-N3uYvu23KaozB~4pTls^UQ^_tYe=2npCA)wBVjj;2$o!H z{*cJR4Ue)Bjbm^z1E;i=*a6OumZmcyaWSf_a5-qf@NmtI`;Q;${Ymf_HrPc+OZR=j zR>M7s-qsvxBidT%)^n1OtAWaCyK*(IQ?r?n6P|TJETfbSBe{dK@)21BR)6i;qW9){n%Hj z^1ka`qx=C%l{lm8wZ8P}xuw?3RtF9kr?XMu(362~kdwThCH^NZnKUtqxt~EvxkmQE zjn@%AuWDCmj5YDODJ;qM5rFHD3w|WgcCPb@_4K`a*C$2Y%>HuSjOJA8%(Gcz-@Tb9 z-hQ`~Q|6nkUxpV!F^SkC4uan!D2x?~Q%9y&j_g_15Y{t0Xui#ohB?BWv|rY5lx+G6 zt`#ZuX0O>?%`gZ0ZU%=ds2M`PKR=zHelne26#3e_N$kvShI_4c1$39Ly9k#xJGO|6 z71vLi=sQtJs90v97mxxmic-`!05~Ehv_@5@bp_h5dUIL@sXLn-cXICx05=^X+djDJ z6G^!H#d+?yn-WL8Q`W1cVW3@c2^5_m2XGpos?IhvCc{13R~^JvM}<+JkO4TEtNqVTi=fXrGc1S2aDf zH8HZoNJcE+KS|{7h+&)0<2gwWK_T<6sPSSH-g?-7KD_^FZkpYn=n0>$u*TK=cbMw; zO{CRU{bNxj7&$Q_rkeN+-j}D^O_2N-AwaLrRI%E5bqvZ3D8V34fU`H0?{-Hj?y23q zdgV{h5GU2?;MK7%0?*#-VZyRj@yL(Yp_M*M3 zs@x0vs{>&P{r0IEZL;qO&+3K?a??u7c}WBy3cr$CFI^`mM%O>W_|@XrbSa-JSF|s6NC(^6%YoN9i&h3c zrACxm`(jJl_B!6vc3-`*nb$O1hbxf0ZL-m22J=O~FD9UsxCF2QYYMo8(Rzv5$e)pq>!(}LRlPj&7o zes7byjF0Z2RXr9g*(djEtzoA(Q@)<_hfmVI$46PhmFm?N#A8U%ne;SBN0DrYD000* z2wBm#3)NVOdX+sIWEn{s%?L?u-)!d8C4a+#i8^nKSVl7l_y2|b(TWs(6-(i^e+`2}W=)BvybZ3TyT>YOC@5-c@8`dmlRiy&@1^-L;*}Oa>K!!7WL>M--8@ z=;Duo=Y6$}N(Aj4x!$s}I&S)nBvASP;l6Rr-C5Gyf{+dS!h|z=`zW8r6z=~>bFc@n z+Tw5;?+&n(+tE(W&tK5KFdksTGA^LSlJw($JN+I_svp<=(@1>{eO=@AiZcOJ22sG1 zaN1K^O(ZYLrQ^fDiJp3Sce?1pjqYk~ZY;OP7WA@C@8}PQ==tfbG9Mj`i}7xzeITwm zg+t6peQEY?A7Vl~y4c-fVCV50VsjeSTByY6G4}aapfk%`!EnybXS`c`n}CoJ)TfaA zJy3^;R1?-_H)Zg!Qn>6ZnkhggyI@auE*w>6Kn>E{6y9+w5Q^8eNww7y#6MEGMQ|1W zx9Az$T3hnZQFW!Yy;^BSdtps)->OSNO!8H4V~^uzKV)6-RD}m=c^PzN>`!Ax47x0D zg?!9$8KuMlH8S_FuET`sF@l;$nF8+nL-KbTV7v#ZYpZIn!lQxHO`?`NYI*Au-0_4R zw&fD!riyW-L8&Fz=D6{xTsk;TTnr*lQmt0}rg4S-CKX|Ur#gR~fwf$JCD6-KAa_8E z`BXS)_&hKgj!v)8`NQ6ejTXQ@M*nMCVcV(|Q!&KDfJZBA#Kkvu-Fs&(AN?QcU8{&$ z3aC(vmo&t9tE_0xnr=r8C-yQT>J^sRb}KzwA`;nFao@j~5l@zFLWGh<{Zg@V@RS|@ zSdGuneAdWIgYO~f$u8PXF}-$OP1q7Ibsf&FF{8C)#*?Z=FNDL!CRjv|Ep&SFE^Va? zHAq?gm&&cx*P?>2UWu5Lgjc{q>wqV3K_B79m=pVw4nk9R5Xj0$CyUb>?Q)oA2dV0&1B?S@*Q}-)1>=g zz4;;H@}h75lVob{qv)?Md3!IwM8=}0B4E>rkR|phjLF72zVR@Dl|)Z11g<x5L z#!D^wYg_|#{)lgRL-+zvO$2hR2*5qLJhh+JvmEz!yAF04Lj@DvN3ioQDLLFx#R8bS z2X937WiGXpU=WCxf201J;07(urX^4r0vURh|2#9*dq{lJk3gqGoU=|i4bIv2Xp^TV zS3AU9yTaVz=zan2)DoU=h-edH&JSWBjXbU|;S}(nX?7golc^+aJF3fZEjWmLa zS$=aGDz;${s`tANr4A(7&QjuFQ=XqJ_1A(b;}C3iNjt`E>wcrSPax!N0&gaHy6swO z9#Qf^cVzT8o08u?dj>XsZYv_>jJ20L1K@;YTns25BRJT|C~-WM1DlR`QGmt1ln+b0 zhq=>&oGxFmzN^bXoyC^w@3kDVKNw2e7Ev$rdvEg{L+rx+3VO+@z|!(J*bd8QKo-0b zpiw0EE$P!a_qU`}klxgj{2r$$A>F>b<>UsPILB*?8}?7DlXx}X?fZ@w^B)48zaMv# zV~eI)fQwyHWS=C9530g|!=cn=?(Rtc3^vrP-{WXN0Wwtr1pcOw;*rz#KFWHy*tx&S zGlCl$GCB~j6BgkQ9(;oTuyajfU(~Ly`KWV=J?*C{5(P`p{OgxSU@efDr_ETzo@;q< zCQw6)o<|>IWc_!Gl|FH|Sv;bPq8)V~O@RfX{!TZ3c9tD1^@~74ui@0EOb^}`#Aqt8 zZ%ZSne(?S`BoLv~15iTin;3C8`c*ugx(Iya6QinxCq zaMn3aL9H2u+6(m!pI@(EQL2GM92S_ujQd^y{&?hHec@yYa6b9lm7Q^2X941_dx31n zf_yHAW_k4!@!w;|(|EtZVW(#B2S5a|OVlKhZTG$#tt}Mp7xF&(ED-#USqsUta)>F< z%(EJJ7@K_W)9#GNJ4{X&W#!V;w|4luwTR98zjcXm{}C=z-%Z==le&~+2lFHbko(%b zOt`Bj_@_BPToq?5)14c`k&)MwVxz(02m5_UOI>QJ-~w8J2{Ty%r+Eg67ya}<>NEVh z?J+@E9qCY7cE8kn9}xZaMD)kS+^8t|wLJkNdzpjv=UW+VIW=Y*4URWV{fh+Zhy>Vp zhqD77uz%ds;2EomMheg0-d>*d=~P)@(U6L^{G3K%e;qc31#dF%#40a`#%zzJa1IC+FI<8Ds$IIE69I~E91{E}PQM?nP371b4tj``eU@*2ZRS(u^Eq6|Up-tux zYy!yREDUiJtM+4xA0916Q}6>iT?~Glxx@X!&rR_7T7SKn*~t8hzeeD0>=nv1;Roh> zd__YcZTBs8t2L|Tgh1Hu^7-^A`c`yXRQn1g|2G7?K;zj+*?_I$j-nJtoc;)gb;(JHuYnm3CK1g=0rOlz*4`_@teUl#tXV ztM)dN!6vY}8jJMr1*rZLQMszIe3kD;Fozh-2wb zi8DD7pwr^A?Ye5W_EoN}qstYNb&;9Bmd#Is>3xUC|S zkZ5oE=)sGVqQL&w3RpMp4)mVE7I)M4kq+&j@BAz(Rti#hJJQvsd5(95?*TVj58wQ0 zECiGj$(IH(63DQ%l1W)W%fu!2RQ)N@{ovNT?E-!4li^}`y+n#GT(Qjz-#n2Iv&Nkz zOCm0sg0DhS%fFnx88D8dA+jRcn8RG-m6a^!A@dvh%B6&&JMZg19EG4Tj0p zHt5kW_a)L%CSB0$Jyv3Z&4LT7b+tQS;5;==UmdjC=)%WO>2* z3PTkgb?%)Loe8PGJ(UEof2^*kBEhR?O@9zNn@~IJuI;iNyE#?=d+856x+(f10 zAVu+oZYyghd+7IF*pRnr@HIE*uJ#A^QLxuv0!k80*7vpEwhs7SnD>rD`)x{3Q>N80)6p{G_D%dugRO3PIuAvOi8LvgNsH;Uk61|e4 zHb%}p%>zk5sWgaRNWVXE}NReG{aqyRL zSyjjfSu~{VMEavhP+ecKxoD9Y6=E;<&PLF0UL>Z*Kbg|YwR@sr>`+#8cTM_j_Pd$A z)=MV8QK9>>u2Pa;&P)>cJ9Nx@y0+)v4A%aonjp*5Cra41(w}cxaps>a-1QULL|s^% zwffpxHW1>J#*h+`dV=wJPC| zwDv;&`J<_q^`|vZn{QN3Lh1CG$+^f*#L*{O{RA)i%0Xo9n)}@0(3GL{gC`jGDF1~o zWo>r&cUEqVIxr{8f*O5r(!hD7T9ACN-@&0*)hEpBQ>aIIsV+cwe)r@<3KUnJSt)p; zY_jk7M&!%z68#*-_xiV@OVuPMST(IPbE zd2gzo@|RRlsmRut(nrvZG9s54;o_WZg{h;~7lrwh$Bs9K6&A0MeWe(DGJY*6BAb{7 zd4$5`!Qbx9|FeNtkGqeGl@B}D`lMx|ZW-Vvv_?PtcC#~^CPdE=b43+BOe)Txg6uEZ zYf|6tS6q2^tZA~+Be&c`D(OrT5pK)%S?Lj8?OBkCQ2MN?s&c1UA>=#Mc)F@itVJT3 zQ26q6aa+6ZD@DP2%&Tc3;*oDy3I%QzT=e}ax&QGqsK*u;<%$*hf@x1Rv)>I+P=)e( z#-uJQda(cL(Yi%iVX!pFYEqhw2T9^LSPvmf` z+|`Nt>|cG2#cwj=ghm^J+&Gs{;iF~q)~uXzZ(mN~ohqmb2}CLTt;3!GNN>TYF8S9HX06M*{)@#B?7hmVx!WXKN0cj!1V?f49d?iQziW0a4DqnFle=}t7W?O$Ifxxr7eg@x z&sOBRU&DmX6)m^8=Ler7*0`wo<&)Ch?gzTBADa7POurotAITKpZt(-^8@T$)ekRf) zdjCt4c1}Bc8A3$=E?g144_0?}n=ss}$30Ify82BdT+vT|W^f)c(BAfjget8N{0q+6 zuIRi6y5^&lWsR^S*#azt92mWJKf z?n1}$$1Zwe&eutGm7zO2G`r#YO;!0 zF(wZFs8{p?KRVizwUL@r{e^pZC)0+c%&vjt$O@pceO(K2wZstm-ftkJC`wUL{re>dKzkfacA@FxQdIxv}22B$hyZpM)!l>%+d)VHF_n~0O&+@fTqI=a^0k}uuw zs;jQWd||-*hgUjX5V#`tNdgI1f+fRb2ojQ`H1R z-!V4u1j|meUn#A2F!SlhWkt`bzt+q^g1-of;9@PGy5M2{pBZGY;N1rER-SAO?frZP z74&_)6`UWpJ}#n)m@+&RP z2+RiHu-GD8F)f-s#qY*d#UBUJz%((m5_oA>K!Q$$w?3uINihrdV_h>!cKNmDcFj{e zNUzw@OLuglym)mUat)h}8*}6@tru_Z@Z~E==P&D3;+62HRs)>TLaaceEV! zO$}I1NS*FwWM-w?CO>oT#ywaX0FM~$EUJ7&tWXteQfLwR5BnH6mi!c_)yJeB^K8of z8^7i4Zs)}4{~h<()LUEZ-0+*cqY@z;FJ^TLnuNvufFysb$2p9ANRy*h?c*MG{k1wd z+xb4`_k+ke-RzxFzy_KvJ2Z+#2|k5PFxM>Q*seQ?kzO!|e*Gy-Ku_P-zryZzWm={D z`02iFZQ4hbuX57*eC!>4?RRzbhnsTxVu{!K$J6Y$UXMRirNt)0B?2K^m$w;2nzo=Wh~DlIR*FmsZQxJRMYpbQ_GEk_&Q2(X){yZ>4b>n$sRbd*NMH(H~_-iOy}K z-B@i5Okp@8oaGE=eCnIt@vPME@@Dl%VwO1dVmi3|9!zqq?;{Z@zNk2s^uRMaL!JmV z4_d0RPkd+NTxd=W>>F!kSXrfbM_AURV3f0ZLvpDk!Iwp&Ajg(+`3PQ z-lZO&ivUEk5fuxxfUa(Jo0Kk3@JkwXlu19cC~+i6QrCJUNFx$ef6IGD2)mJy z-V&_+w{ND(i{k_S*dtWT9=L3b!ktCten_y4CEuEhgP8})++UN-^n-yq{_}d|lEx+X zvlDCzH(?HyKt2ZG%bC0aM<@zi_hm7NJQqP`(xq5>Wo@-26na2?8N0?ib0e0QC)X7I zl_84QtXyF`qAK$GRBfdW=wy$Qy*OoBiO5$rXI`cl9NkR)nfYRJ3ojx02 zu78Wj3H~ndPz1=_Wm~-GzOkw7{Ut6{pBtqxKqhl}r!%zXxg_z<@Uu1C&D3TbXpi>~ z4Otep1h#7WKj%X2azG>EYZDpEQv9>E{NJ71_HG6&pMCJp*7Wz4fUa>s{jQ*jIH0nu zWz#W1Tr0#|JHb-OQxWR6L6_~9VIkSyvl;& zXY+9WmYjCkJBy+9tqVo-Ko9Cq3R}iM0J7Y4#~Z*Id2Q$|5CZ>EyYvTuEZY8Hb6~j$ zaGDE6zxG>v?Nm(A#TDVz&e?mwZQOVFknZ~Eg8!wyLYdhY*-3-o;rzZPb(3?iyhd<$&c^X^zYx0ob zKH~|%v&9xFyxwBS?=S{dhb*^c`J?=oh0TH0LCg62!0NDNv+Gb55nw=<=3va>A8vOj zeKy0mQ9{Dl9ZGyqY8S?m3-7>8x)@t1eXw*9r{AUNd~&W6+in#jVh(5LvC&7Wd;TtT z;g^9kAeTxzi@*rZ^66SNTJLP5=e#TEA3f8ztv@Gqdqgm7PAOqL)$A!a#O5 zoE8g8pzEZC5eI`PU>yjZ%^Ch3E1k{R{vDg0C)ZY@2V;UbR-)%)f|ypK`(kRL{vF$$ zc@{topnpCqE{X#xEqV*Pu+iBZ=ifoUxX9o43J`k{=Nf;=XbRCO@CV=Y?|lS;nxREp z5cLHe&CMVEio%=DhSUCNXcn*G;tyR}+O4@!@(g9%{tD7i7%P;cGlFI1Y{F`4n+@l| z0WD$0J!e5J#UBQ-SZJ&)d>>+b!b)P#Nh$OP|D2r>lj-&i%cN;^on)0HYqQ}vO!er? zqL2eR$cmeOMue4Y6kvcG_78xFN^uN5c+8Q&n2O3_&n%YzUBo@_YMxI=^RwbaS^SnP zfn==%P5KR2Z^D>b(fib@_#ngq)ghLOG;}TUKi{~CB|v1bI?H2USaFsN9#CcerF%`B zS_5sd{-Rfa8Chp2@r6VYqKFYN4d_q00oB*u$iD-G1pHHZ=Pw$vtV1>s#8p3N)x87n zs|&e?JpW$F$VzHrpy(ir9=Q-CXE3}oQnA!(hIs?Hbp4SM@_c0($q|2;c|ZlmQlG^5 zP+bK{bq&sjaF04FAXc}$vr1wHAxw0707Ps0TS!82S;|w~cxL7XX{6Ir7gx51*-=Fp z)kx4Ish2y}=b4KJm-oFGN5k8Qw=dN1#YO<|!LdC&GuN4tWZ~dgNuC*BCOTlubJGDs zimSpZW{oxbv5Vq@C72U{w`6)K3!i7pwsOHp*gTH`eRk1gZusC5!5n%O2`Fl}thxdH zdO*DrtESz7N%gnOBycl%J#$H0GCc?2U&Yqnf}^i^S1?3LBYSVbxmnenV%p!iaP!Q_ z#n#Kh)nh|$!iN#k5N2i)f2>bgr?2G9UFJ|-q*Me+jf`XS_{~VSrtxnnj+SbDk)<errELb)zrk-_} z(%~Z5(GbWk3?xWE6HBlf)`m0&p&K(^JTnhscgj1z(=p9%832G4loB z&4A>1;_}XAn|Fp0AxXQyOk$4}q5ri7TtcnmGXAEy6c_&W|3Nu*A5SS@XT{m9Q9PN1 z{G(|I#C6047E~A;4#UbsZoh6{-B0z#Tbh_pEAnbdA@9t8|A&M6%XkLn zZ1EW>=7uAV1KCF|5Q&)ro|!@>Ivh~+kV{`Hjaf<0nMt=|9ZNfx4F3-YbRR;8gM1f$ zS-4(odpF(fv*8K{$jq^hUptGayeIrO;fbsyUmvoLw+=$P zA`pzY8(k-FANNMaQq$C@uizguH_(0mQh!%f)5kND!xq}i&+=fmo1L3>E6){FuJL@q_th;xpED zN1VuxU!8h}@N(XnZ%nNw8SYH2&tnRW;MMdeXA3P!st8DMfrxYn3J6Ml0V&b~0)kW(l_oV*Y0_H~ z1d(1ux|9eAsPx_wdZb7YlolZLA|=#R5`Mn*U!0qnv(8#)E@t+AW8W-CFBLQoKFr_eMF!Ey6ld-KZAs4o;i!Y64B&10f7K1~S2+KaOqdX-X87Qwdb zO^-K=S}5uE7Mbaqvr4x|POshW*`J)tvL{H?va;>6&duxBg2Zc;*mp1g5A9N)@PV&} zKaCX7sf~RQeyImIwedJg{mOsfs1PB3_|4TNPGe=D7VlV)pW1uQ?o~mGP_1!5CzIn{ z$x__)b;1M!SGCT4IiEICwQd2(M^t1y27MM>;O!T%w~`gLkSNeTMqAnlNWf2t#zJx1 z53tu$EBX)H8l1p_+M662E>YaFBily5Z36~fB92^P5~L(*))|0iKxv^ZenhgaU?!oe zwLX~R>3)Rw?oK&kY-=Y3VY0FF1hK!e!%n;4tsS)2TWC{S{_=>gT{HP;EL#il`T+F< z1Uu8%BgiB71f{4z8ET;|PI4wLlYmP&#>F12W)$k2oj3ps*86fs8FLS)8Wp#HLA^4WRyw{KE1OKc zGR&|19fx*K?NP!lm00cH31+CDl06dLoGF^E7 zPNlTS#7f}vR_C)AMD~Nh_`yD-w>2x$I)W&pl@PZl?ET9gQGU6iRcF8-C5dRg@lfTI zs`XxHggs;>UL?D{UkNat(ur;UH0OD_Q7dWe+daljqu_O5;7P7V7vpB3)(dOsib6m@BEbi;M8 z8{6wb3sMtQp{`VYE}gJkeVJR^uhM|R6Fg~S2>~WwkA=D(eI?x7F3<^c{a>ZaUni_u zA9rt}OQ`F;{)M{otG-e~fWiL?VL$Y7_b1G5@3jm}J1(CD3QbfFu^H~78xHw$# zHvu6?^bVly{|YeKD+oy0F;JO4d&bL7&z>I{JT!jgXK2Q=97a@^w*yALGtsQgSGEPb z_*|4i#fQZOzA;jU;VvCu6hWq6gRGyl8wmG=0F{%rK0j#%BzR9Soj!EpE2#6LwE@=3 zM?h=zC^A9QbVdg(tnC`mre=I@#p+SRq(jj8#Al_N^uPwN_nu|0$xr;0vif6-U|EV4 ziWmVn97t55Fo!N{`_bCmwPQVJr*T*8t<;guuVFe!x{C{&z9Ue_(#AIB zz<=7J^*JvrGca7W=T&cu><^zj&ff1%Ed}7H*7#|}e-BQ6P2k>1X={5Jf2q8CDuv*18`Qd|t}7;3zO@GU!g#dU_l^m5X_|(QV?m@Ro=W}UU@1N0)qzWXUXqqw z6n^rq`tA-##nYN6Sz!vjWbeZIS4-tGAnz0aGF)?50fDS#MyykwCOtAwJEA@7?^L~z zu{T!M)TVwlCfahws}{UvjE1e(hn95hqu91mnaSZ7#{=Q#LHgeFdDak{_86KA=6$p< z>(l9_8Hy}>|LS6pZJmf2U^h@*`POdW;e7CoU%uw3DEw}5eN75|yCfnpvMLWd5MORH zya=B+^$@XyF%KOH-a2Wb$Ch*lCwXcswEGCIp1X^Ia1|)&skd`l@5s9zc^?sI8g-?EmbHMfm>r#2S z-_I{1Q!^=ETI1uIkb@n6_;bPRPLUem5TWhuqA{CeDIX?W=`v zj*c{SZE3PsYR+W4D&E_{G+2{9Zo+^O2_IwgTgd#!Q}2aG(KUpPPr#T^ja#zl_%$*1 zz+HkFMniIt_9G6AZTVt+TXh%m$rmxUhuS^{XOIrl&q5S2E7~8CpCW80K%fmc`w{vs zQDYqeuf@?3JAJ0_|DJeB-m@U@ZSO?a9pt>$dH@m{ToacSJ><*sji^3IR%9R)`J6lQ zyszlz9*vXTYT4ZH#!&fJYdd; z=(h;y!Cu&~aWPJ;;`Qngr7O;~IgC~@95%O6$Q3gj-1+j;xy(m+Zj}JMLLOT>MuS`> z-PCn;%_TjGZnGV3<*NATYnA7f(p^HoRO6k;C}Ly%}Ea{`qmC3v)T3>>5#8M42lqEg>v9Ov@42}-3#YjWexzgCTiR_RsI8#2v`#NTYjxm5@1ERO!GdzANSE!aJ}K3XHDi&lI2m7S>F0pySC;b_k&H{Vro&_S9*eSE%#16j*M2NNdEdE;OE6&3mhL7c|QEWOA|Che*0BywL)V zK64TvVanq`lB%z%X4UYZ6513uE8*AT&zP&K7 zrfJ*8hqaymntq;;I0E_tAgz#pRkz`VB5lu-A;WRBTD2$$xkCuPAwhLU1E{6*wg3!K zEygn&k)&GaHUgLnlWbfjYcRddqIx|NwA6t{QRb`r!5dI%;9@LVla%fN+htq?u}~e` zKGMr>mFR18x-F3s-G8F`T-%>(_Fc%~11$^}KZqY^d3=Z6L!oQ7ezKyT$q>P^=%+Pl zwYe`x-I?RFT<$30Ykww-{*+*y!!9OVk{hWsucRrsb|>z#Ww?>BdG z*S+D@wyIyx76FE#GB1WuB%Kk99@N5*HDN-sFF-Ju9l|g3ugUtVhKc`yZ`9JNcU0=hOL?OK^nQNsWiGmz z{do4%wd36Lh5k5f(d(9~7GUh@ls8LWVk(9EX9h<~;K0|olUYx5)!s1h^tGUJn=Pe> zkN9SZ|1py%s@c2>VKyC)pPK&(^-}4-C2J~^@I_mV_gSn3|C3m^d4@a#uYHOaG7<6w zX8gb;nGr$nv264u8SyJiVdmzCLEWf912XD$QN*s~Nvb<16Q}q8nn#;N1Ql#CIb~+uv&zCBi#%lWhOQ~fVp&?q*{br*=0&V2D zY!}&aZ>N86Ajg*5*QkL7s5_lw?2Nm;F+_U#k5~1XMgxZp7%{G}5!V(0yJ}N1S>!Rw z(LM+%^4Q(FccB3?{>O`97f@vajwM!lh&2D6Ga|{bH6sP?ofoV+V6bY=NLXQx>&D+! z{NAfMUt9V-hg;$2XBP{!amJZ*+#vvymX(FqCDjbF$Q6XtX*TZ6|J<89`J^_JOZ4L| zm{v|5yJPFUeE#Uexxd5=5O|BS({arf-8AFX&^;+2JmbanR})jBnU}S>!h1CT`VRW; z%Z-Ov$8fk7X-|9*``Yuk@Dr;O|iY_;~hO&{Oyz2b+6R zdusdiwPXLPhQ^1^k2C!Z7!Lz{e(RMz-WSgGBAcrI4Hi6V0Tm$HG9Vde6g54YI`A9pT~VucMpLemt+&D{6ZzQm}(ZwBsuP$7o`?>SAq&~*{GRn)b{uWX!4 z$C{FZE=hr`&7eX*oNBwnKl+a?q?~e(FlXbq%sn z&-`NJP851o60-5|(Nrj;KQxB&yl~h?Y}hMtCfhUc1T|Iki0~%)OE~r3qX^&3(42b> z4&j>BZD?@q!;4X0J^ApMUf>Q&C5# zcR)rY*tGEd{YSHU31o$M^6C5Q#26vEi8RlNWreTdt0T^Y}9 zu6i7h{~j31`3bz;$QKUzbbY-qB;T(7@#~E))15<2kMIwO(!ZzC;t0YaV@3C7(9D(_ zBTdu{;>B9{o~{L?8S5tUTxb<-iX+F%D3{{QM`ctaw^5|rc-|#+c8K6 zsP4i(5_6pCyYeZODk6N*BxdOcLMpxbX-e6M0$|@>=Zuh=ck10F21Df_Dd%F*$InMY z(qL8kHEi1jx?xHBpcaLEg!$KqW(9sQh1q)K(0|6Y5X=m5^H83`W16$3)AKb-GNd)h zGgWj*rilVyz94v4+SH zcQz7j0#`KQvy6<1DZD5gs3|>YY&ub0A{7PQtDxFP)S#d@u449U9t?*lO4I3PN%AmWO58R zP(2U*%H;Ue;dRw3UM`7uz!Xc7>2jm;Bn8=#tFqbu#aOWH#?s#fHAfuf7m7lroO#Bu z!ix+)m{FH?HCV(?1~^E4b?uh>&hLV`SFi5HU?5dcDNI}mjd3)Bo1~wi1flYtSDo}2}4N&&l zUR_Z~Yco0zpOrjST#TnMz0#4YM;+=hBu!0JUjrbJ}v5ck1Jf7N#ka%H-{v;|FZQJ zIkibi7WE~+dz><qd)k(IPh|IUG#+i7iy~Hc6F-@`6%n?Gm|e&@~tAf3FnC>&+0^Tb8Qz~ z6U}1b(fASC_o-Czdw|fIXy6>2rgX*5ZBHAL3+1TVo$nf)al6jZ7T@-~PP1rW>;%FF85L z7!$0zNC~KxU2gT|VNR~^n)riFa!YMwS|Rc*F(JSj0ZfQMrnW@CCs_+c83Ja*hwDqK zl73GmxYmn6VqNk;Z`Jsbpi#p&lB-ugCw}d6$}T!kz9`MeaBcgrWUg!WM1vQl>7mik zLaHxGnm3!(D&T6?rkQ6(#ATa@gt$2@smhEkOXGt7)gbTdj`TtK8!$@3(6cPUxX%y+VKhkB`m9Lrf)(S z=I9-~USL@V-_v49>qa*kBF3*1oKZB{M5iguOycwGtdmq>UXW9fEZqa|t6er(nYWx3 zEKZ0cw-7GhZ8fkUewpd2YxpdNBBchC2H7ix@J+oH=huG**s>|-daKJJ(~}N`N9P5S z0r7pYyXGQF{HTjuDTmGP*qLvBT_skl8?OE;(!4JKXUeV|h8-n8pc$52E-0`f7yIsj{9-eiJ#x+)PuVchYJp1_j>>lNyxI z#=7rFCMC)xhD7MnFA{oNT{}h{Cj)F4xqH1@7HJTICF2O zH2+#0Rb1xjl_@hH|9BD6THU?#S*?*B)fW6Wa{bb9sq?s9Clt*RK1ZjBp!VK5^8MKj+e<*a1Lyc!jA=Y^CWW!r_^y3! z#YV4g=;dO=B!0phKXN@`pO>op?5Uk|5r!xBL8+oB)!@v|@<5#(0eAi2T&N2xp5J?? z-Wn49@ayk8o24ne)W+wa(DoSEgec@zHdAgAc91^^n!oA)HP-kG*~he_iS_1I-D#&oN4%ljW}Tet zxYSNncU*{wbrhcWJwBjDuIKdy^?(iBO_w?mC(@#eHd-Me+Il>$b{Bj1}0i=4-e2UHzHPH`CgLRkv|2{_h7AI{g z#X|qK({~M2MFJQ|H!#nE9##c{*qdXk+14>Ft~*(8+w5j;Zk(4|_d-|Br1}US!*qaR zUQBKS;p1Ngt)8h_a{%4Lwf%d<3^Br=r3)LjE(|+1<8Y*hc51;zn~q`o258^}MKtP{ zyZCH=wMgD%5MUpgX~Ij0jiR=(j>!|9f!mpwkc4q?aAZUH^VsD3DwT}>&jpEqb^EG@ z*E9NSi=(#=e1G)M(m#q5f4-aTK4inmg`lz-r@J+ zV%5J|6KiEAK11lBpfTn_Q>~;A8V4TvLUWlE%Mz}G%G>z$TESCI!4Rzz9?L8|l*O}n z@4qr|#-{LpWxk_HT&vesmpcZf$!5lpwEJG9s$TD2xv%$}u2FKK=DW^y3&Hd=TCEWZ z*GNkk{OSW4A3f3m@Mbd`TKCNRDY08LE{nww2-#HM8Gkl1WHs!d;Y)t~Zxa4v$zz(i zQ~!z#S!nn@(}R{dn0p<5(06nXd2`NY_>Z~{Xe_c)XR($gaCu5IdxMt6m{)t|lDCgg zs0AD=xvv}pW+b>@tbLl7-zieCxlI0+;d6h6Ih9+>w~h z0g;_4AE(30-A}Erh1Ctk<$q**JW82=T<}Qoj!EfJsalfmiPCKHQ5v59Pu|A6#Xpzo zXG@g^B({uwWjCwLA;fXlEL^qT!gsyhha|6acW2y7^1x{D0nhsFLV4o}rF%Z)Xp?M? z&KAkp~piiEpi`^YB$2UoG(cU}C-qNa@^6>||Fsx?OtkMQd3rqw{k{=O+VO z#nA2`L4IL=JEsJ0SJ@Gbn6eto*x_k>Q}Q2o@l1K$Q5iQ-V{!-VP<!D6P3E=+q3H&VBY`s+;#0cRsFuAis%mAs!6Fqo z5}~k<0S*yX-j=IV^%~V>0E|RqQS;^m!_E)sJLw;NT37+olW)Biig)eSbb-_2p_1%0 zQKJj@-=C@>=Ele$n<3Rsm~AM%r|KRjCZ#4DGPuI-l5S??|LA8${sbD#Hdr)TlLe`* zmIGO9$jYm+utx0UE8yRXILlQFhJm*5W8r`c(?Wc;wG5hu^hQH4LR*8hg1W zwJH8w$Oi^zcMh2FFJ^KCHNQ(5mDm*3Fl^qDFTxTv_V0g;;8~_DuIH3nOhHnnkpC~U z9B4&IZ~Axh8NUVQjA)X^j^9h9YKZ%wRM^t^d_FNI}u5fPU> z^dPAoVHXcC1pYxm8iDTqJn<^Fk}k`?`{;_ITNJl{XH5(aWxdE%L>2AT$m`#!?G)sb z#Wu%VzzD_XVr=AyhRGse>pIV?*QtQv z@Irst=D~>PVNcH%9)X|ifNjnPYT~e0VA7bW#sCIxth%YJ>r+Ok4zcli6zGXU<6m~H zAUn1pDU(kMhx7@JNMEP2O5!5iE~0tYFJLz=!tTATr^uzez7CJfRF<4m+a#>hscduQN&Tv+ew_@m7Pd@W|OsL-$y`F}At- zO_9H`l#@pg3Am?^F4&$mM$<2ai$IftieLxqR^?5hVM&7|(YTU6N{@#=Ix)U0B!%@3 z`o)8HrZ+Ky{}q;Wirr-)zfd4K7Fr>^IL0KG+RL7wjWyLq3~M|puy5!gs_*rmixB_T zB~$LP_nSH7u};$wbo{cQHLpfsZb|pr)peVtAz5%=_u?P%e#zsI%2mi_|4PGJaKwo>+Z}`j&^d z;vY_k@2M(g~N;2U4{gBA_ykALT@D#n?jdukacbns_FecEA zuC3Zjg~<~44tVTM>pBjB7u@_Jp?9K6xs-pR_YA@|m!IJA=*6>SQlZ%eoLTDE)K^vK| zYNyPge`Z8QTlbp$k}8WVj&4_%wiQ)}#5&g}j=&vr45|Ay2}4aeaS4PWh6B<$mKzt=N+fkZ0@|B39?rEz0f+ z1i}90_^`EylJPuaP*Lg{c77_69<8N8q zgH8SidS0xZVoJJ54S6;14bd6QlfU}rB?tH8hx?l2)RLHh-p?To9?R?cb6DMQ)|nTr zEQjY}RQt3g=NDu@jxE0XHnLVIeZgVH&#bkqwYHr``CcDkynCYje2svUZL6a>RK4wk zN3SS5|A7=|nqXMTJ11E%zAjCWeqW&&0fdiORiCh(+1%wgwpyI<{^T;|QObnc{vkqP z)NENkzSe3xHRkUT_~uriRnY-(=T?&jB}%H;CZlKPPom_`(G{ZQuuqB^Vi^I7Ts#%u zv7Hy*M4-c`CFs%QTNtU3-W-ZkL*G~P`8Jtjr5pNk63h2y z7iVms&MV-RSyAs(Q(Qi{)B3);@satDv4GNBg8j;kTog;AXJbo7Ib$@8}}A+xR)i#roK6rGT1@)cg>!cur2LZRV% zr)$gAV}nAn&Z7f)a8!7$(|lL4P_X6Vh<|{x9{Ai5+NeowXM#LG9-n6Z514pcFHdXn zKlmZUp8Xe2%0AKKa_H2Rc8)=zpW@-^YK4IQic--ylG2D@mJa!Rq|0e^GEmH>Dzr6Z zH~C6xo+Jfv|3gH*@x+1C`RIK|96|L9^ZIQ;PjnKutL|O+h$P9W=zMMtkBu+40@XBm z*Jb+}x%9VcccmjI|7lF93<^)BIYWR`$FG&L;_q&`cj zeSgd_HQb^DfRdHiZnELtbxK_UVu~PVb~>#! zb>_d>sXh@rtmNEI?byBU`Ng?5wj^Qs!V@6=B8j3T3LJ5L-LJy}?%zcm!${9ytaUx| z{5!jm?|faKsfu!hCWZK4levs@dHV2v&PW8f7nb9R+?HEb=9#d~Wgw-l`$7_u`efJw z1J#h-vc=)X_J%&uazUc)%7X(AUshdjsWmeZU9Zami#JdMvNuCt4<8qBH&`WV4^gu) zANQ^lJS}f!a_n0vxC9Z@$@-Va*6cjRK4+{9i#@^Vzc|3fN$lWFK5T-EOy&?TVjZy- zGG`x5Vl)<+X~w%sL$1Ei&u6MhDse8&TCnH~t0DFoQ*bY~Pg7ME8w%*WvOy^L36lSZ zxQmiNbUjitvcA3=R0pptnAM$Y5asXd7BxLc3CMU^Slbc&w1BEYB4p=3CwKAelA$ae z;kI=}icv_`#qGV}8rerMftPF92_NlTIY`bzYpDAF-W0aQg(|*Cb2aN%OMkhRo08*N zQiomEh$ja>8ufp_)OXLzxHD$^(mD5uoeZEONcc}OY0zuJJu3V%QmK zqB&UaolV~*#TaG{JZZi%3gE|l=Lu-an6djC(B$-iT7P9|`$;qieUce5EaK{Yh-GyzXyb<#X7b^aN3U_{h4_2g;f6@9ai}ybS-)M4$xp>4OEWLEYun z^j7n}z{l3m%lL9n*Rq*14mttH?$%YhJ5pdKAIaU|+W>Bf;+ufMtB2#xXQy5EK0hlC zs%2L?Vy@v{z0fC^>l0q;>$NFm?yuv_h`eXm+j^o_Mi_2dp( zb_!)S8$8$-EUdssHJKi8@;B1XBc2qShBD6dc&Sq)f9jT4vgp53&kac(qcIpMG-?M)>=twrk*) zS_*XKzM5_xB%Iz_VC2+JbvIn&OzE)J=X#4N&6&vO#VGc^O2F&;mfhQmR#$pxkPCY% zsz?0?#QPW>z{-TN!C`ncfG8SMG8pmzF2btdnAGSO9fQJ z6=FBbf53!|Fj#^*`9I7m=nubm!Og$hG(J3~TfN|IUbm01NAG5ckNDwfsfG{&>wSFC z8c9&&NQp=J(n7ou$GJsC>~I0z_O=tg^O~X}sv$Db5ZPgXJn`4o?#P0bYnUUDv4q~{ za%wuepCY5Pi7Ux55qv&Tq`n9r{44cE!}fC1({u;#wL*Ilsa z-2RnMzRG1$#$k8X(ZPgH5ynE9<2Oo6o9@FMUE2aEi&^%g92(?fFju#=zL-NU66e3J z#vK#P=j-{wq?ixmf9SuAhaTFkL$Z2p_ZPc2Ggi)%eckYiec-3fIkzA4qpTVRk{b`< ztJQya%|D#Ba72yKjUI$3&@MXrfcogb6SdK+gxRK#-s_-LP8{P_X#N*mQ$MEd3usRl zABlZF`i?cy>&fEw6kq+cLRUbHBmeTRVyLez9r09UCK^}NM_GJZAdYibJ0hlJDHgF} z5PY?3MSFF82WIhCHal`%;~MxD{wu8J*tB{uZ*U;}OmWdi9LjLhfX|_0nVQ3ZZ)pC7 z8|KMZtnF9{Zr~>c>Yj~p5*$~b{&(K>RsQ+w*MGcVclP%?BHzl{vv0r_G^u3if75o> zH#guxK7W)CMr|_B})22oyL;hU5!6;Sxp^?p4LBh!k zaB3fd(|#+lcp+`69g~C$GX+p=UlVoDQt*ak;`-gki-QL59L4ZcF6;a{F`!(x#1v2NR z8X&?LWoaiE@2-lzHT;0dh6Or5Wj-!eYu0!fo33h_Bo=d=GiMu#A)6+S&rS;c0(lGW zYxD0oEBt)XX|B4nBuxHNT%*ZJ{<617-`VF_nPYYUG)$3?BJeJCaEQh|i$=6{X_~i; z8!~*@d%n0mLfM;%u`H#IH8j!>?r(&{+KeDRM#_&b4~i(K4qIpkEh!$LP|7MHEdp4t zDf^R#Q?n1}uCaZ#7XN8MM1H}4yU08!JAy{+!Ub#UBzH@EWosOadhZ*+y($m+Ftf6= z*{T_cq~K&k;^5IO_IU|h53q<0`|2Ooox9{n<21+&8~!@@65L97<5SZ3^lwgFdta0B zSL@M(4s)--p@goDH~Ws6es(F#YA4KlD42vF&g`GwJ+!kY{2rlxMZ>R@V&T8U+Nw^f zCCf&@mTNBVTqzD{dsCTKnI^`4!##%3X-4;yZk7)O{?}^mO>UP7yZAOGTzxE&Wj#deFZ?1R? zxWG18*C{VvMdb0dmM#esQdjz%hF!K2L4+1#1NtnP_N4y?SqU%LEbqUtE_^gIV5GeiQf=DK$5DERc&*?R?daT*b;r(3t^)IgPu#8%OPHWpiJ5_zUW zKPxB!>R}sO-d#Q$R1*x`ZQpyb|9ZlQ>r)paYU@hcqUG1kxD&}w!DiipdDI50i_gq6 z)ykwC`;C6`=G@NLSBejKe}%9UQUivR8Yydx8Pv)w&mJ-?pGV1EMk373XMY4gcJAJ)v}4#{PT{8&mvp&rfsC!*fT%U2o``hGE|7RqhHN z?uylT)Xo;B@140a;;>Q>Y3E*-yRX@JBqKF(rkX*F-ZXvY{SpJ8?59NaDW=~%igx$D zOIy8|eP|)}1)k>Gd${0O>%H$+nYWsd3bt)rRR*V0h8vM3C;k8Xli+(p>t7GV`e61F zO3o)U(Q^x2ZstAhBZ|8(=H4p&Zo3lj!R3J9+}?()xjgqg3*l9f?o#qY4`i?2E#J2q z=|+f|2^lzA{_jAlY3Q#nCw%+&{tiFpRczbd9MgyFGLhs(^1(YA|lD-1@^3x z?{>9qj`fLBT<)|xIF)ZQLGO?ru}A50RqSL(t8Pp9XVcDO666DYEUrFJd-H7++xTCX6xV8Yu0_pM*ZW| zJ$8?7RMhcIA^G9?#Kqo17aAZAqkb-&dmgK3`qEAKzCSVFbIg%lsTNc@`%Nr?+IpIB zmWcpbT?epEDXcma6ma0=Zc7~4*mn94r9S?qL`hUg3}8Xn(YYqb+3Wqxd25u@xuk@; zF_hl7Sc?jgXpXNjyR8lDS0Z8NJJ3 ze)5M@myy)dc9+^G3QRVud_p*x>_Vbp;)8Ri#ktpKY`r_|?Xh2%-$%t5x~VP6RCPA| z^|?GW|GjoG_ZkfCr(Uux^V#-2?U|c!u4i3Z<2AncuRTFPMhxP6Z{dp)Calspvm7I( z@dRyQ3}z>3WCtja3=;zka$WCYLy^~yeS~wD$fXjE9)KgCuPVOR-SXeF_hU31rcps~ zQ|iYE_p}YcfA-Ydd2X*B~i7<%&u8~KVicHY2mTzuL~^) zEjFH?4~>)Sc|1p;oEnBUvC~yYh3b1Lef~YoqkA*=j!+?7FbeYNC(J~O#^hGrXj9kE zt|g<_K+kA1BjWXY!2$sN042ZXGkUP>-<@NU z*u+uuB*ZQm10)dSA7OiQ)@`~O5iMQ%UPS(1T?}*gh6$cBS)`>!-Lyf;J~2Svw&%)e zZh}u(IuB4)bKlxEGnl6?TRm~GjScrOW$DsPrTTKsL#wIbCzD{_ zTNtw&8n+qF`dqZ&YC5AkvWyWM0GOmwABC)QAfN@uYC8b+nJ^3l(-eo$>8a(-Kqt_z zhh+EIFX^~pmvC^!7K(mGX%$ubzQ}90 z-}t9qp{2)t3*V-^i>vw2rkAC9q09(6?CiKg+mA&)tp2!B(!hO|@?Q*KhqvGns5|5X zH^nfoVNE?*b_79|TOZBZGeSS?Rl4OBW7-qqMIYfyr?K71m;y#jKW8C4qGT*m$z~D)rZS@|kIoerJu4G&cV_3+Q-d=ms zHgX?Vo1d|2b654@2(pt2TT?dBGyDkI4GYL~40o}dm3UiY{??Zzl&{;e1^6!Xo8_pU zq?n3sn?%1_pKL)}KDfVN#c&JuwmGrBQkiSY^!~?Z9^KM~kqzpr4#vnU5aZT-{)Ip^ z(Q@m(P3^{7J^l)|Y0vnri*m{M%$;Fda1?PXC!*ooh)VCTO9cdPz+~>ze{+}C9n|`- zSLXSB5iX&19~(_Y`tsTmwQ$TutWrXz8%vDM>AQEY)<;ymki~;HEMb&+M0I> z{iVErmR+NKtU0Kx{8uCvK=ecb^~lqcjr)dIeraH7^|RITjhEq{dwk02@lQQ>-u%jb zdOWKZhfw`_sEr)gy5Ot)7~eKOmdhxdPVK-lLhtgwEO~r~X`7u+-DYY@;5zm2K&dsm zZ1y;>yZpb3T_4ekKcPef>j|a4X@G6mCsKcPA+zB2d6T01%`m_818ASWq~EXV*%-e^ zgfvQMXPJrWnDKfK!#gjz7<|xEw8VHv@qw(sQ?gRatmFZ+&E@b+-6P*zhUVsbdz^v% zdm^yO%wRf4Py4*}%%&QCu@I9o9+(_Hm~+tRGVG>|O(Y}J0ed}Zr++}>jn-F*?K=pg z#Tym7xCRE;v2IxMf!HdE0}UVsGi2)=+#uWMGb1?S5|xbzR}xwEI6b#AA)63l?;2;Sny9$MrQw)__XWVxvdjtwu*X`}ui{785|v!~h-P+SA0`Ya#06gqxR zYbmsGMP}kN8xm4&*^c(g@$pQyLomgyOtb`%65m4hxCK9K2WM_Vda_Z`qhyQi`2S%8nS`YFoUIP+I_<}$xY#Jf zbY|gE_NztGx~)0AU5Fje2;xVSTFX!%a@UaK9Pw@4RwwNFR4X`r*T}g*+xd{BU~TDV zlrQpc`iV-?PIj3bYt5&Y`_J%*;@$162F0W6V+>{wT@0CjE5qGhvlR)5_>?ih{{(@B zNb8OTe)eWbE0m2R1$q2`hcnPbeGU0_|{1+KJ zYi5CS>6;qq@{!V+ig;BI6^;n>w{ZM-ar~}XNvkXT5)>qLLTzM%vu~)ZcO!B*@M{`| z6vb;QqG?iaOq(6?%h%{Vb#RobY*U9#DSE+)J!L4PDL?y3j|R=9e)B;B^vnw{=`08` zD~Fy9)gt-`dv9r8jri?Z77>C4uf5t(NA6sYor)zL%?;P%IwWYZ-y_y_L?u^nN7&8d3ts@X`fg%!1aYbV6c)28@m+g^I2-2 zl@j*=V56ro3$GOzJddjCLq*7+OfuB+%|hPY>}75EMs%Lrn7Or$ntoiny+WpFIvdke z)<>5Q*Zf9?jD#|gAM%7k=2Fw z5)Z)d>gia`A#pVg)bL7fW{@Z!G4*>F%#%bqb3X~dtSF=W5liTXM=)5~|1%ISU0c|@ ztxl}tbal)a=4t`#^-GeW1Wq&!z;ZZv$!$7qk&Zn?=P?uL9)Vz3yHhxD>~8pmw8l;|#K5`ENvm zfZD0tOphg3w#UJvRHk^vjDD^kb}Mm$Q&;kn>Ue8meh{C=T`)?@-!C!8 zM;X+dTfdlbBh0KbV->#e^2M!Um6bfEAgZjGoiAw>a2gG z7VtpA4LQ#L1BXC(zh8T~$BHrw?~2Sj^imv;M<{o*p`E7%bk9PBJh#OGr#yMg?gg~A zDz+Tv;h`eEUTJ?nmeK*#PANE}h3B=Jkdu}-p|GHXoekrI|3;0?v zUK_OMWbhB`2RWwcBO4WaP0@s77v`$W1Le*$Aj^^7vCxK(n;_zPyfEr7jlESK$8EZ;Vo z;jt$;P7K;LFuqcwapx`L2D2_!5Vmx_4`3>Mv&Mw)gk#&(2E~5L`z_0%?PXjBrZum; zueFW_Y(#jTS>DNqu@E>tRoH|vR>Aoo z#UFxk*x%K5x224sg!h!NkB}E(k4tOkeltAwe+F!J*q$4evBh_v^@@EG+Ze+!!DaHi z=gY}II^?7=;n*{1kCe8%H5K{+*In{;Q0QbBpJu&sR~VmRkiIkpGdzAl4Av}c7ezjH z!1)*SH)OuE-=W4^86VKI%%9l^`wNpya9<$W*|R2yMyG_)hz zc4H2oUB9iCC^$IR&lY^sP~UwA)Z5%w@U>8Xuhc}{`v3gb9Udp%KZDqS%;jM@4|bK)yKJS8MX(Rdg(sJNGvyRUV4W=o9{p#`ncxfXY=nn%Y^Sc?DWFv@s2XH)K8-L{4Jusp!xOfY=W4B z61F|9=h|Q&u0{A4w3^{}3fTN5(GHo0I&eIoLIpqKW)s9b;k$-f!47|$;O9?8`bQ#t zlStnn(%%y4uZ#3GLcZDVj+{pQZw~Q$ff*jt^5Y`?5$Q_`<6P=4avh9!dK5)IZxQKD zB7L4npDog_6Y0|wpPDsv1}zqWH|<2P-$!>Nx!SADFPPp%q`O6WN3ougvV4Y^gESw< z2CxduB0Sf<*m7?_XR3=a&w2*OzbTmTeLE>wn>364guDr2#$i9`cJu=;V&DBg_TB_O zuB*Bqzcce@G@5-R%d#a!wyb!`9@_~{Ac}!CuP1y^D zhAlv$DTTHyErmiMK-d~~C}k)iuK6r)}?pHD1zhcUl`a9VI$HkLWH<-%mRE z`jHMV@>r5nzE9`hrt|CR{Ht{SC8`tpEeK}7DA#MC<7<-5zv5YctME=4+RFH@0LF2M z>ic#&e+!+zk6Df8ejb3X| zXVK-?pss_S_e#p%K;or}96Ukx(zv}!(dd4eh`*|uc;8p_w-sKSbMG}wG|q(d{q>-q zYnm|5nzl!uBOj#-V45bN-;&xo=-E#Nq(`iKu9r=J9N2){n;g(trd`j_ur1~$KW z(&@^x0r*tJK#;Oi`#}~LhIGynEl5bbj z-)OnTv|M9xdUshf#$ik^P-1+GZEpd_-?nMmvsSR4yaN2bZghWqiGhgvNzN@M{q4)` zoj1vOUvO@m=$@TWY|vG>hH-7CjUIbf+i&CfG}H;p)9i?oAd8ljHBRntSLRHW=7>hK zNjB@n+Nql{M-{LIZ2yyUv5WJPP~TCg|&?X)J_J{uq3iu^f#KW?=00 zlJ9d9bT}DUI}QbG3g((`n`j>Q68U&BhH?|oI$}Q$_N>zd*T)5;=R!w1945NuTwiEI z)%r#D+F2@hbtc^R;#@wM=6B0P^9ySI7?9pRLzq^SW3)P=%rFD<4(rTux|n`uffxSL z^yd*m|Gl=yhYEe7RybXB#-m4?hW(;O3t}%uTk#G@M|SLg5@Y{e>NhK%Z)Qj@{SKqg zE2Lrj+?!lof0|HN-Tz>T}m1^T4f`Tk!q^F0gv6ze-q^_9N$ z_2E|7I|(h-NQRf|%S?YhJeFCP!@Hb!>cQxvpC$CsHlybi0_wJkIBOq)3xTjpP35iKo&ld9@jRa){<9RG#c@*d zF@0aA{kQa4++L5@sO2WiL*0P6;~NXEyHV_4xd*Avn5$8ER7T;Mxfq@N0@X?Kvq_HP z3D94~>3#zRXM*`0XGrFgbCIhm^p5N&DkP`oLBAWP=ShQgW1V`7>LGeM!EguQH-I)7 z%%7Cx@3)fHucKW1r<8My@rAl&j8`Lh3b!hBvXXG-`2K)Wf7F@V>z`5PwZw^-aBWzt z*nIezDe#?|hq<+&=qT9!*fjmVy(Pdx#Ko*YpR!MO+oI(|ohP4*0Qz3mXU^xz?~j2_ zZ-Lg~1-Os8M9w#=#YiX;wkB`-{pNiBrdbdDHBG<2X&%}-Lm2)vex?}{=2(?}9QD|* zFkj$|f|<`MJbBuc-v;|0`yKCfZDU*k`hr{v`+)&RgQCxv1sNi1qH(>`@bN+LlaT%T ztim79R_txaGqrd_+sq$U%%QyE!-Hi{srcc{eX-YaCd@B4>>MS-=e7B;!YuC=7 zC-`^FxOugK#(`z{G-HIi%Yq60)kNPiK(sNaU<1ZLFCp}u1^V`_w^C+Fp*P%zoag#w z!nI{eS(hgPPe*fqp6Z!}b0xvhPU&eaee4xKwsH?^}ZPFJX zRD7z7^seR)jI=24tWmBHgYHtkd5Nc{p01p{et_$zG6zre#3jN_4 zRw5oyG+{orQ4`IzE9WcW-ATan7ERO_z7FlIxprazzl?7TywR>^#^y1dh3sbJ6Pe{3rK57x`Xgy{f9f9Ay#6R=2 zehNMsF=5rt;@8nH{4cDdZ-`k(*VEonaR1Axk0#)EFZgOmU(JJla~v?^acfLmZ2c0@ zu*f;$tDGgCA-;j*r0Xe}XnyS7Zu}(IYLUiE=mX{23tbz=flmwp?pfB_J;1Mn6!^}( zvMxyMp)@>*=V%bacldeHv9B=Em^2)3x#HSiCAlBt{1ku&_5cdh68gY5_ElvZi-bX* z0ABNaSMJFm!}0p8q~LnYd9Z|vh&x`u!?D8t>e2K6JQs#c@x~PIGtj_ zXt)Tn9qQg!gHOY5@KGuP4oP^Z0T~0a+CJG&;tSLOGcJ1!X;TAas0MwjZNj{d z8oe`bkaiYg+BqL%KOdxbCrIaJ^r~P>83$Y-$JdwzIT)X<#ylIR)7EhO-yxZ2 zJ^27+P3WUOYN9y@S2;SA7=C523gg-<>+uB8by8m!68H)0%yTjIlo&Y^ZeFeeo5TVg zW3V4D1Kpw>c7|+y2HGpJu?I+2Uqf}!#!2F22Ebdsm5a)T@;$VviBHfa%3e1c!|ymZ zsn4FsYvN&!e&i_8`C%Yaw}JLr(54*8^}{9_zo!9uf)6Wv*Td{1R=lE5NoZd#3H4zWN7;+m@q5=W;NQsE}>osUk+&619 z4h2Pyi~H_k+JyL+F;CxXWo2S?!oIS!*l~*~H*Fb)=qjmCeEx>0|Cpe4@%bjq!@Nb2 zhh+Yr0PFdSoQ@zv{BxGpaI_^J=gzZkP4sGU z*U)%2XgmkO_E1%5VhZ>_lodQ^K7bhr-Wlrg|`i7Xe8ZRK08uP0Js-c|w4 zloT4(Vn7O!K2T&G-v9DiuEhY-uu3xtI41kO=Ox%dXJhyp`aM+uqdBFF54N)kFQkc|2$#ewPykaAHQIdb6d*Zf51fZ(!25IDe^1svnOKq{t~b9mtdE~ zIPFEnXP^nRtjRGMT0;?2%5r~|%H=WSIH*ln_t5tBH3d^?`*kzvHCg{A{`El&?oo6+ zuU5VhSN5<+KkO?*o*7kiX?dt0)53%abF};F5G2$guY6zl$c%y^!+1txiVw+{$9H76 zt7kxKOw+?(7mK$ahk5?P6nJ}l{>v%w_5tDT^HkOpJuB@SQO4BA*DHiKABh={Y>cin zu5U$0mWO&ThDK0ln+6-3Nhmw((IvA^ZJuzydqJN&0y?fSvK?dzZ|-X|x5+m~gG!sQ z&f2(0469wPE;$qRu@xOv(>-%4$g>#3X%KW-bra29xB~3+q7$fl?EG3BucX+58TjUq z>5p4j^XP#}iVlX$HZkuslsam04+T%tbYoCA(HLR4uV-vJ`@RNlU(y6Tkrt0eE1%1< zYwWLbJ)PV@jPCSsn7_~J@}n&25O6OjN8RW#({L@uwS9)ktKI;yL0fRkk!gwNleV*zjvgvk`i+)XULDnkvl3YxE4sp-o zQBtn$cH<)XQqfL2Lvs}49Z8+j_;I0~0@rcd&KnbO-D3%UL0W9HDxGJDpKo(>c&)3O zt;cU->cRT4?}L6!>wEDf#-pTMGay4_U4EO;CrQ3iT7L8qI^ScGeYBGL?53D{E+>1g zrR#rp{Wks}_1n!Ub=o=5kx2aHl_nbJ5%X}>le&jB{K&MfN*q z5${)F-NN;H0xSSxe`%SV{@ERL9y?T!7F$9={e2RJ?7H^1jz5E`3+rYd0 zY!%w)E6-Oh#zG%+*W34lUeeHzrSn@Bxt>4Vt>>JhN{$+|YryFKsB^$Cs-{10i|EF9 ztrR=*uSxf@*2KrE(|FsMhqp1$6Mj{Vv9E1a=vA;>83hj?EKx`$RW`I@_`$ zgZ#qv*PJ_F6QkSLc&Yg1;!#qrA>LeMk6RPgpSG)))vMYZeNTrr*y|T3=w~#n2!;`|Kis`u1)O*h?!BdZuV$h#?B$;I+pC-YnBj8&Da!pa+_!!R3I$sv_mAt|Z&JDU z#!hg&_NrVM*Gps!d8Xnp%0r;jzjsgR`am!za{aagy*>~f-wFqM?dIoxiy5BaGZ)NMxeLkd_hq>Pt@Q)AO*-xkMb=TIr=TCyZe8Qdmv~p}$5JcI8ZOudO z`5|XRIvjNRZ@RWuKl%2X?&yu5oWJ~z=)Aq)jwlb>aYvNbJoJtzuUT;t0TJlp+V?0%o_+9WPXV-N)r+m57dBs;dog2ExabN3nuKD+HT%|wGhxT4^ zYe-Kb%VF-eLx>j7biWr7?|H}dolcJ0u#?8~VtVJ!>!WmvykjS||LH^vXM7{dOHR2p z%1f%Z_U8UF_x_PU_xAT0Kr>&vCG3MS7<-|0ndA7rZ+!N+->16YOI^K1FL}PL_qRKp zi@V3CyT`HL?Q{b7>=882q~D(DelLMFs(4Fu3Sv4sLzzqV_et(o{34zY^|SQx(QbX- z@`Fxi_&++GbGygGei)9c=m?$%^z+G^d-L3OB(GalT4Uw?r+^(A`|71I#+C+e`(bpx zqns-13(lppJ>@O{-4D5azkJXBzS_0N@{`xx6w1RgUseO3!1B+f@?TE%Z~drOe_mtO zEU~_?a`m+3T=SbwN0YG*A-;14edBzffBXAvs`Gn)+%J>uy|L4|5cu_ZChEI+F!ZOq zbLx$u?2hyA7~siB6MNn71;Ag1oL?5sfoHql%Ur$1pYMY|?Q}l(^KRXL(UY<2AlISn zB;~!v{r)Met+)NUH>c#=e+=z;rMq_sm2(Nqg;U)#Pb0an{fplExP|)uHMB0B;hr0U zHlqyuu>X$oylMBnhf&|W!2SLi$zR{6_kVFik7qWaowxrgDuZ49D_tIc%P;%o@k4&q zFOUD=m%TccJmdNdn$zdd+`5SL*h3^Ml!@0gO*GHw1g*#GiPs8U9P55hB-u`6?T5qK zk38or51*Zfxsryyr5~Qwe$wen04buW`SB=YBupe*eM!e$@Sb-2MKu`~8&r{fztlH~0H__xnZnd!76J zlKcIt`~AB6{f_(np8NfQ`~9K&{gM0qiQBWB3i^RJIe9A+^w#U*aK9cG{U*dmT=ctk zJhz)GaY~vSR!> ztuT(~S`)@_M_g^i_+xuE;9Xnx`?|+x9esbD@B@q`5L%LW{|4+;V%I5>-FTCN-NonH zi+FB~F!x&DBJ9dE_A^vJPz{W_x|1GgJR+}&f6Xy?4 z$|o*#*$DjhbdGakRAXC+?a( z-fH)o@IJ=$DuTT=&LxqI`~2jLiN zeN>KlcUg*er5zVI`jR>dgPnXN=-tP*Nh~;fe|f?fN;#tm<*Z0ij^GMJ=D@OKZMJ2t z48m9=EZ+~3EQ@ghnI=k}aTotb9&f~p`DBoiTNgN|CE5Z%2eI(R!1pCbaxL4r`5i64 zt9I=Y6OG098nRjnll#ty`;~af!|?q{zdKlW-x8l~+un6SIL;dXtI~4=WJ!h-8C;7uh5nIcx5il-*`UbL>&S0W%YP*~&c|SVKO|wj zM7_a!sCyaO+=TV{&>;NIIIPQurCi?+_q=~Z!uz&gjtt_l+tT-&-C82@)Jq+v4*l?6_tuLOKO|I0>(+r~D&DI~t}?;+HQ`+u&!dCT_P})> zaPMkyW3ncUN09~J3K@Tq?<($_cf&U~dUVSo!(cv1`~0RLoa-B5j5jBglY|i;HvSlh zY4Yd_ZaYiZb_$n@ZQ9_`3y2PKx#`azg>uoiJ+YPXna?Pgb;O*v!B0T?OruZa3TMXX zH&26m+Fogm<2i>q`>E)}AL?u#4+pxL1V5Cfn}2J_52xs8L1d|8g3xxR(J}jmZlUwd zbbb__A4ccv>3o{bSJC-6osSZ)6glr0*t^+#&vh8xvTNtDDfU;Ew>`w8yJR|-{Q$?5 z;W#h0%q>9_|9)K1KYvgkcaG`zZL7T&fIWPlTuwN-KtbG*ot6greVLNhV?J9~e25js`j8HgjnoMoI7Pk4J4 zbo8RP-0E4w2Rw2g#)7Dl&cK%U@RaMFFZZCPix0rIwwTx(I8Wz6-+(%K+|zKZGSQ#l zeg=K%Fcz1AJ+GEWQ}%RP%n$5S%!P$}XpFJpixDyo^K@E~cdI5E&uEfx?jKa*f#9CJ zrqoT|eRGOfA}dJ;@}f>}zl7M}b2}j}vjO`odB)QHiO!!w>xUs&S1>k1&CzEohKES3 zXYMz)1(aMp>VT8Ny}b3=*bKUfHGp*yp56{Zd<@s42x~(M^k+ll6Y#6b?i1%=FK*@G?IxO=VLjMC>mGfA ztVL1=+Y<`#?zbS0mwonF6U`khb64_i@^y@#ir>@XsAf&*yU%fyP)=gK(wL${!uBo$ ze@5+@Ghy$I&&`tW+YYiXmlgXm#s;))9f36p_b<|x37DUkDLhg3kNDjAN<3DH!G>6q z39!}9LEmPVu%6=c%MFk;VGxNz3*NV=1aEMAC>SumdA0 zMA>7P-bOZSpI!QBt3QIHMCWp_U3x6REUa*l~jFH?+GQf@mo{<3_S_K?qo%Axctepy-NgGO_ zTR4H%wq9EX?#t<*>4mW04>w`X&zy=u7_|ct92G!Mi{&eWoHuu8Gh>um2>*#b(E2PIo>q8R(}fj9n4-Ksy{}-}h|6 zJ)47ZN6h@?E`~;#_F}f&=fspdKy^6Zg!w!rX3Its<_4N@RY1vE~ak2Z)08x!FSdjPub*T@WB|} z#V)Y9p)TaCMaoH8w}x1o#eKdW&i+ycoRuy6Y!6Q=#NZN-^I!&dIll@6bM;J`r;k_m zY8bD!?)G`OMqtdIG4Sar0$yOq^v9F6?R!Fuj(ZSv+*uem%y}jBagahE%jnup!1=VO z-fg4DzrmPf%olBcJu!%nWwXnz`^KX)uEt=hea{L`Rqz-byR&MdvGJr$gJd6Pdk)6a z&}==jRs_meFkVn{Ey+52ChWC#yS)hJpF}?ZU#v{T!R>+aaIdHK|k{%)xExQWJ! zx8J%V7mXE!aq=sm1F*d4$sS%C0PV}Z_7zl*m(ckO==@ST|06noCh?bx>HK^;e=1?< zm^RkCJ>XGJPT1o75NF&wC%b-$9hLbbA_h;&?hgmd-cQ`4Mz}2%WE` z^C>z%h|X8i`N)GLEAt%k%}t)ewm;4Z^mz3syUZGydZR0!$KV7yKaS3iq4T5Z z{BSzo;J!1Tq8-hYj0=UK7)?h3*f54^`LJ2^`FV%XK`EU8#llRl+-;@5tJbZ}N${2qh zXbO9k1+3*IWN(&O>+8UFGX~e~7+#Qo`R9G{0`2K8OxO=2kGsgN6S79^1f2LBjDzI7 zp99;Ewy(~nu=nHqn=)Y>M$Psww4XE4{8&?PjqMDW*Hz2=GOk=7O|VS_VAGlcxlF$O z2%`VAx_FEw@fP6u%Lo@xBHYx)go}S#5bpIwry@L6FivP6k@ZIG5>Jn@T@RA&`u|Vk zJn#B*o8p`B3>t%H1|inAs*HiGQwpX3pB1CSAN1((lk9xY_SpHJlhV#7`h_u&Q&46p zn=r=oM1rkQ_{|>yzxfF0XMz;?*a47jY=8eT_5X8&aK2QbFPV4Y7+ykUTpEP-m<1TK zHJ~FES>m!K;GApZP9&O!#rOO`)FIvi-YK#9|c+{ z0hZ<^F|j+upXP~9Pa^(5FA93sJ__>pya{73jhSfdar@58VsJg09KmgxB|X5)7l~UJ z?C&d_t&8)@Gk*MJn2(sVx(4;AL497CAj9}{{9_7#kz7nZ9>vd&rF?cF;n@-JFA?n0 zKqifU#UK(b(zi z+o1U>2@X2v@!!GubqUbNo)|w*e1?7Nd9NToNZU+*j0*H|_zK8i!=^umLE1e}ld##^ zQBr(si(v1-yfz~#a9BwgD<8%V_YSX)p;1G0CFM!ZdI~=`Nq9Dy3tAqbCebzG(|ox^ zw<~+nvz?xN49d6+z9IFrG5en4biK#9`7QLd*IkBWt;M1zUAp zCmOHxicT13Po6o)U6W_dq<2p4L}Nhm_vE=lI#D0-0Xn|{;;f6`8^#LUaAP!X;NQ9! z?-)1mod?1gsu-_aVz}eAR~_iJ1KWCO_u5`h{dXKt;!yvl)4}sc{-#&Qs_DmI|mbUIgbkKoo$XYAHqJYA{Vngh{T@WThf7~4Z8 z>i2$Ne{}r*bALGIXp6)+`&ieN?pN@5)2_~9Kl)C$ZtuLU)48^L{Ksv*xUKT7kMEDh z(!Oec7|&9!owq+6LyS*<;{Gu9|1ew+Tp7bq#y`2Z_XnA1+{Lvf8td}9+j>|Sj+@MF zm2xERro?NM_>IRxxwh_C{w^9bb`|=dy1I=(efR7O=~H4%t}%Mtb&08ZoV#{!jM{rb zT5eFA*O_Qc1bKF&mA zMW5;PvMWF@`*24Of8zF%Z^=aWJ%6fT^F*G{$KbVPOm6h#g4A>^%V=)=%H;-WoBmiG zwr+oxVh@xBdBnbRrDq+Mm|%Y%6K4y{d2K>DuZtA00lz#+Ur2`{tWH-;_T2inK znAk0jbF{h~^lfiRfst*)y9&TX;Wb;JD+JJA@(=RoWN zU)gU_l}g$y))%=?@IaHyHh^*o|MmB9rGOO zqr^A0>VC^k2T}yQo#_AG8$@#+w?Wre2R{divn0BPhXNj~r0ByCH^_Fqnx~wiQceYQ z#2L4TSx@wM8_lEtr1MYE`Sk~)>+{nNMCB*Rry0N+mv?L2``jA$xNJOLf6^VhU3&xQ zN73C3g3VzQ?ZLAqK9_G+*-vLY`d?X7Cjg@$b)5noXb!$r1?=<;l+E}M%tt(HqA@Wf zUg$L7uP|32=49pgo>^GauQOWw=MW437}tJ_FZ)|N-q0qYL#apE^yidh`@6(U6Flr% z)1ULO1z4~g=u>ddF7o15SAU-mI+p9Rg9m_N&k~+Te3xXdVp~Nglc9DG+|NF$1Ao9A zu0q=*uB=Vqvm||0_4HK{`buQsjo>Fc>*|bkD|p6l7xh`g?K`9n6{QYM_&(=`;y$hc zKeX*#PVL3M5AJ8*FXq__G4h%4rU^&WIH$yxE8~#1rvoR0;3FiW~L*@*|9!LM0O<=cc5%2N&FMQJU`+Z|sW#U1r9B%Y< zhXJ;7?o}q5PZeW#A{J=^*0vMfxXPGvJZ~K9JoW7$_|p_X785a#!+o-&kQ{KyfZ9vx9JoroSgQ4 zC#M~j)iE*1PsO$`bX0eJJ#M10fW)tN4s`t@v+V%PL7dFCgJia0Wv;Pq!_v`T2O;gD zZsbdfzkJcNFVNa9-{rQCDQ!2INv*;kHK6$-ec$Hy%74tNsOf&?2D4(-+dUcnVj<*eXU0T zizVyqEMTv+>w6R0r1cYiLn}XR*=gI|P}(hVB*#EE`(34f^Tr?htgYZ|K4wB(Q_c9} z6%|0ti>ibW zKP(61_T%@H4(q2BGyRX~d@G$FejsYM{pJ32cCL!kKMa73HQ;2dYn+Vr zsevdj-0gUP&_U7Tt17>nfez45RbouDJTU~AU(qFAoeSei)D@Y0lH{GUO_-yB%O3{5 zcYnVjzj1MS#LpJ>68J5#3T_7cVV25h01mqfJb4oA!M@x&Sf7jC`NbxhtEUC;OPn<< zgJsJ))lcGnpl{ma=={+p8b6hNeu_%p$hk4m_^_)1Q?SbQjqubtD0`0lm5MMYhsefr zwd2*($~%aEMg14nrF`ESo4YTbT?+7-cy9m>;Tc8p^U1*Vm2S?>C^VN0bPotv- zj3?_l3gPfE7CDzCHtMX2#;j?8-U!D};yfcJ*7C%^jq!!kVy$e2ZrK_?`3$R}o84pq=k zNqmlsqT|B&7cVz@T&QuvOUl0R$)E#lP#v;hS3r41`ub?sCr7(Ac*=w^qGW9-)4apE zo*`K^%{y6mXV~+O?_HEpW&GrQ;U}Xe%s+wHtR|ESD9?s^g z{i(&;be})3d;E2#-``oDpEY5Ohf|#`YX`_5GS_f#5EwmX4C00`PY~*M*#|||p8~B% zSz6-;fxlE^?oUGW{WKS%zI-`Y)e-%01E)A?z1zCEF>b<-bvAKyQo$~$(6Z7(LYeHwJX zKDsDS-G-=cH99ZRc_Bq#44Y{F0et^Av`sWF{4~_x*LMR{*U!@Vr|A5jOuD`rb-2Ne^!^9v{JnJkE;|1!6UH-2OIMqh zFrQvd=PzDFJI9sz@eDe@h|c%Y`MGrd6tlGXRC*BR(@Bf$3(jY8B%L2h=j-Tv3Y|~V z`PdTsW-ujPYydpthf?e#B>xHSO{!!cnl@oGrGU{Qr;0g{jlkeF^O{P z)!<|Nty~yiLetleDQi&`)}k8d#|z{mnzRmKU8|tW)#|Fn!kmY?<~(&x!t9KY&G1qa z=2FFc;o{Fc;4lN@gejD=UIco&4A}}9(}cNV{!_`NFi+Uw z`_5^mKX(OVDQ5s@!5E38_cBX-FT2F|a!Y(KSmJy6CB9eiyoWNuZufpb_|(Bg;LGzK z`)87zJP3N=I`BQqd$XXw(_-Qbz#OV7I?I#5*5u)ooyjbt`)6c1;lK zqBR?})JgONTL~w*m^uu=9!Ko9Ii;;ls9Too_i5^vU1I$Tvvr@Newa=y;_?tjWtevU8!uO*xRg$L5x z_%)wx@l_oVJ^G!U&SSdAjoqVicc*hg_c(4}r*ql9oqbhz^e44`~@ z_6PezpL1#77x(w_vdFpQ3Lk=N@7W)1^T+o^eS6-rFZA%nbZ75)hKa^pya0UAWM3j!NAzp+<>NS8d0+M(6SQt~ znfwmsib70Rkm6nR#Tf^hdK2K;N{W9$K1JCrD)TZWmaMG#Y0AQW8K8G8kNQ_7AE)TW zK9i6S8*|1k2OY;s1xL9F)-sGA6z9tzej*EsY-8*9Sx?=4dKbiaY5AK6-H|2V4$O@{ ztjviPtdAom%yWe?(J&@V1F%9EFHzzxiY;|D;0UFj6tn|!Lqw%?`NB?$p1Mi zL-GZn&yjuBWcu@NAwQaN<%ln!c8r3KR>NER@`&XX+h-2!Eok2!^w=Y{zRkfmGcdiAHaT zWt$<}E&iXS{=z(LqCd5DKg!8NEK_2RBH1@*pe>T~p#tqKD0c2C#ReWn1B2kpQ=xBF zVLp_pPcUw_)<0#SmkE-qSAy;WbIAF4htP7}=<%?VXkGMA%tvI5n3ojEmxgo5j6*qP z;{AfN!n{M68%EBj0MntZ3B!Q1&4A3J#mZv*d0Cm0!wH9PPVOOJGbva0GbPyDXh#m} zCF@Ip_(s~Ykp8eNtXEP_@0BLZ2Z;4rsXe0fDaMd$xS=O3l>kI?zw()kCV zpD@2>7VsE|>y489I^9y-;gd%!5BWDw-k!WiZzFoI(;W`!`xa|v`?p)* z+Dvp@4x#h4w1)8>If{P@?!#_OxPCBTFaBIiENug}?_*6EpVYqh`IPU?!XCiBcWsLI z>~mj8`P>(S9&QD(1Yb&s=Z)(%$0nHo8rEP!CClFG2}e}!_D>~b_Cb9tKZXKC_6FNeMq-=iAHRQ9`HO_4vGd5~aR zzD8p!{rdG3{mOeGX;Yo*EOoHu{<|lKp2X6UdR_0yZB-ep8tb-%9a*+kLkP>+Lb%i*|xG`Su;<_5vmMJmQumZ_rqb9+l&DRX}bPp8ca3?Da6n z2ZL_ERtH~1``*VgAx?rZEI)QKvF~}b*`o?#f$X!IZOW%_#PuHao(jMd2{xb0UGRJ> z0R5ZT1;3%#1(#a37Mlibkk`Vu(BG~CG$1iOE>^J6dDy>UTt3v@T3YytV$aiZ)QL?K z^ERSnaweKHU2;}82?MwTY#c&s^B_yM6n(x%>k8QSiGB5_z_XF|5TlNJCW#di zC--i2^V9ajd4T775$wN_mmC5(R`j_1<|~Ag0E}Dv~j@b zc`tvajJFoAN3ifeUqtRR%^r?<)PAAtN6^-pGf^LQq`?penY%BZM~?QLSGXKAV&mBD z=1u{0_hT@ZTF^&`N3~^rDHn~w%DKA!JBaF|&vttw@l#kAV;7(F=zKYz*sqoRhB%+A ziY=o`wnDy-G1Sr5_dA_loc{%o`Q(3JE@CUCOt?95e~*k2VCuMEj9`0jwCQRF#8fF-HGJVJk)H46Sj<6FN>xzFUB-GS@38St~hv7ZDvudZN* z3NhnfBmXElN{Zi9i*Pi*x}Re{0XA()n$4{<|O=FL*8JU$KpsA4uQE zCmcxbv#CXtchmk($F}?SAX+BU!N1dd*k+>nKO}D87So?ob{MdFcJ26U*Ee@SK1pMu zK7Z(ocPinjSq2+$e0Ubxe--$Gp#RJp_Urx91UXUO6FE_^p<2v7kv$QoYR^w|ISvs| z-X?s=6s)~f(4*PzI1=hvG0}Lpqo6NF-`TkRf8gFjJ<{0<-Q2oQ*A>peKCA%yFp=q{ z?)E!h+ShA)3-(ab|F7ED-!8UyqJFgrW!t)5K<}@2?_2u4GeJKrv^=S_``CT{`GQzv z%m-TA*FO*OJJ{zL`XBW|IgnNNK-(=nJ;{XeqBC@VT)A)i;jWai4l&Pp73Qd%*G%ZI zDE)uE$8T74$>O^-2zK|!n=m%v6J0rH!u}*nYq`{SnF-@giaf9k`mf^rsI2|uza4)c zhPKrc>QhTmpUeYPA7lD`8a3U?zQtD0w1D^#xk~Psh(-r0W zhy&H0!F<&s)88G0ykt9l(-(KWtdzUcgmIBuo@aKM{@mK=r%{RVBl5|O2RZqlj}o1u zeMjS)T<3#;&vIRCzumLQ*rlHYyJIVboM`9vk#0;r;P!TZN3!bs==|MuewFE$6KjC8 zsX6NxW#Rg8SttFvSaahb zV!}MG5r895-I(MH9-|2zXD_ zY3+qI!Pe&|2m06KL1_Cf@Ox@eyFUr<4l9_?Js!Hy_EGy3{aE0cBZn)td5m#W0X^?7 zz>if;G_GEp-_0z%qw$&o`L9VlwyNj33D~PFkghhV4waNPUC~AFA^gWK(;u&c`O1-w zkCfc6cB}whNtI+`u3rjtHUpp|se_Ejes{Rn^7#hUpsj_!0X|-9YN=Z(D_V>uZCQF$IQfB@^oC8boAHnlc zIv-A9r$Al$6!b02))~^dNi+eC`B2xaw6q({+weKaiHIPe(ZKX2}iSr*1D@YtPN32UKd$9 z6urxYKDTQf?)zz`m%H;_phsZ3%aRTUV_h)TUd9Jwl}sx#To&Ykv}IxpgdnDD#Fy1T zhHjevJl!)2pRJoP*Ck#T+w}gJ{jIMG_}c=!8sZ>)Z4s<+S?Q~q;-4aYh5JFoE{g98 z##)(HXnd*TJ`mF$+kXcV_C2Um!Pr+46L1^Ur{Tet`D~XZu)9@b_84)vm-i}i=G*_@ zUSr973S;7ZMprpnT5rO<5$MOM6S%=di4z6)u0r3vHk1SXpM5p#&lIoSc@ibdUoYTtnlK zPuT18ygJJD^HH!z5c*l;#^fl)?ri|0om2dHilFyyDf|KZy+*nsrV92S?Z@_ob89x? zh{FtW-)wN-l0&dt%Us>2-E{*z9><{Vxh8Aryy=hi7Q~dt*X9*nS~ov&r$~O{PCS%VDmM4l`k#O6|xj633+JN_;pc!3I|7{E2QKv%&Po z&Ea+SAjh-Tx<19+C-TiJ>HG>hzuf4#MmH#H)q@fL0{Q8=4(lUFiO%I3EJRWr^=vfD4G7e*OJ2{M?6mUMRt-fk7FML z$yYCN2@nsSGtr!cye|?=XV&QPfbWe%k&os@|1kOEWb^&8)3yGK>xVMPfVjUEJWv38 z1N+TfKG~Pbz_?jk;E|xmvFFQ3mI{5`iuc9km7_%Ga^wi#@GXa3S_hbcz%zy-OMJ5v zjn(^Mif8-^ikG}V_jfrOj>D`?gRV|!v-Yc=TrcGwPvss(ag?icez(h=+<<+~kGj{I zQ0ChmhOB0y`5y&mRdcb85tCLXJ(x`zV?dvaaT6sDx#R_~eg1`gy?Ubl^Ga975MhC~ z+|%6O(bn4Is`EC>1^6R^z?_76B^!yvQhcTENL`TbD-5mlRW!rP~ z@A}*GGS{ApYkO1aL#$^5@bN>0Ewy#}$8LF2&vS3-)e~vuGdFZPMOV(@fFb&E_xd+) z?A1la{1LbGaEk}QwHt4a()jf^hcUT_+_4IOoyNTu&5xyib z?uP+i6^Ae2@xVOeKA!*_^HR*18^E<-93Ee}qWeJ_I2f=!jL*XLFhk$wydkv|xDV`y zF~ZP|5{^yA`XSU#3fCubn-5iNQ!7Y!(4u;eD`UMtc8mpO+;@PE2jAQ4c{WSeG&{*? z48Cuv{D5UY)PswDhVf6F6DQ-z0Z{>+j_5N)j`z{)*?*vQnkPJ&FTO%lKT*6d&hR&^ z=wY#o-Q%_0hP|zOOmzqKIXS)TJjt$Sm@xm9)dxMs^-bB)a0@Vem_Ph1*dP1!Knl9@>I&b+|ow*B;Taw@fr|j@Xzv2fD23+d;<2nrIFeU)!cqjzK+P3|3M*>j`a? zF)J$cWeCfIIeg~;OSZ{G86_n{28qyIl&ng{*QP<1O)5S|653|NVZ&H*0}pt2&Hf zmim7R`dZ>L4nceEb4OEuuUNu5F=V3oPvZJM1Nvu{rDT6N0ei$Y^g+#p{+3#-e0xaV zT4_Twh7K`bOv6K0`53y|?Q}tspSP*dG1A&Lkgtv;ogV5+SWlwGded-kSl(5+FmHhP ztL!mh90;8EJB;6-8fCG#XL3M87sSljC%b+-+40c^%r#&61LOl$r~QciRxxIM7P=mA zV_}~kRGydlD|W{W;ZI7WW10fJsL*a%p@9XWIqZ9mi8L0|cQS`(Of(-^nt8W_bce_b zImTGq0Gc|Fg(_(s+f?l%(dH)HOzJ+i0c zDBs&Y!TcQV`sxwjH)U<@uWNdA@^rRO~z&&iBV)MLZ1VcQ@{xW%=Yh>X^&0 z>M3U=pDs_leRla0>N%QEm+zh5Taoad?5nPDxxsL+^+FfpR{R#F?BynmnL7Z_U!aun z#FS-V|Ex^WKlZt?l+TUFJjXFv#}s{r=!wzyRBQ^!1B)h%OD@-@;F{=WB}Qf7Xe*7b zGLx`om1A_3K0W0qVYMt@{GJk5mgn;pw@$Opd&2#1Z=G+VdCsQY{T8hAzV{0FDao4j zEoY1N*+Nqb-Plrm?(k9;o84CzKa-%t2$B4gIqta)5A{i z^@nw$*aOU0Ew*?&zSrH=>AZJ;6w@*8=BtJZr~`K4h67p5UO&B)?^#Kad4|5+15Pn$r$P|?!^N!yS=zZi}noa}Pjk7#?-7|`g zlWh|V5}v^?7^;%bHLZF?!VyLi5M!8 zQ|A;cPR*5Hqw?_?#_4P4^MrpH1|8X)2ZMI0iRL!a@Z)n}$IOAfOB;(u0!<2?Z6Mrl zh4gRuzUZ+BfX>ivAh=fH`%I^U9=sUV^UO@t&MLY&mP-)3v;g`p=Bo=Nr#3+UH|Xem zE7*p#*b>O|>aHG|j&F)|vW(FcU*6l^XTrQDLVGeM+IqOcM017W znpiPWzuPsWCuqU^EIJ`C7klXEF;J(<3^PV2zGWldhsf5H5j za{$X+Sqrv3%I|f>pXBN563|)NZ?tG!j7=NX zs7Hc-0q2csu!cX z7P;5Tsy5d5SGvb{yT`5ez3#)iy2mBm$N34} z8{Oj*K`-C*_HL#Byn8I`GQ3v~^wY~lU_TIgLETM@^hARu>K~5#_#wixv?Dml;NJ5B zly#WE!e4}pq<0`R^ zF#!EG-bWn*;=M(NPcwH-LLcHU^3qASHfVb5OiI1AV1|zYePac5Ds5QbYtYB6Q)v;t zS<|g(GOze29OK4ueF{Ac);R!sO&N4-ZNkL*bfmsLxh4Y+y7iy}>vszD+cM{lanGza zVXkhOv({HT1N;64)LHHuva_&`v%W|jXNBxhs{pIs2K~F}{t6y`QS`K}rnD^wbktDv zZ-ta&k=Dj@<$ow63HEO(dU$NxPS-YkrslC9vM#;>JVxj< zPT%g+vp0#}XI)uwI#kq~YIVc>-l!)>S}Oui6y5qY`+K;SvO*g}^bYFvU%bB;w?TBM zdGa5T7^q@nk?&6v2B%5(x&YoQ#@L!9=F<@Ljc?5yg#A%Pv9XqvzAr2K8qF51*(et) zcVeE+MvAp7PVPj1L&+U`kn8t6d>{EB(qTD<|NSBN#RBjXt-Ml-@)pyV2G&Da!;!`t zump)JC zzQaBfyZb8A3*i2}3i1*6cZFmJ#+uYYuBv(ZcT3EeRbfpkf?Sa_&PB3$HDc<(vc@qc zn&YQUa}Q;8O*W`|#%oK=_~0Dp@oB?#q@}n%(CXDlsF(57tF6@QxR`f@CTjFf71mPU zyRxR&Of)XoK~RS5m8EXjFN>iHlufrO7|SB~!ic|c9PP0GvCOS!n`j)zT~1eRNJp2U zy>L}om$m0)Ef_OlUh^U73)}t^0PBx)Rqz2#Ixl;$S%~k?dNAXL_FuDrbFD05eKCrU zScPZ`_p^bk<1&(UG<$a$`2S!`nH;y~iJ*gf46RAN@hO>TUag109<2)fj=4v9ov(sE zOZaUqMyEBEpwk*5ofhk{kAnHM)r2wDii;RO)@|Y#RbtkgvN8rG*r#Bw6x_qatu0IC zxoLU+P{MwY_x?P-kIsa0IP2+FWggtafGrYrXa!^X;@WPZ`EUoF-%97drSlt{tkHmd z0_Jg8P;l=uZVz$$_B_amXh+D<9&y;C5BogOKKtIbOf;4T#{WX!Tc12#g?7yloiOG>zM!S( zsL?)HNMXClf=o6GzDH^G)wtJY`$c1k_O4n=ow*j<2;;D;$;p5hg0kC~1J-bxfPGga_odv+`qTbWC@vu8X zok*216(g=awoZrU^)V>A`-ds_g|D0idjMbi>^Gmf1ifD?hITnW0s5t<(F!n@!*fD`I>g zu&zfc`%8%rB)M3s#>D1qL435Oha>V~`!P`R=pbz&QzI=K~ zn8qfIqr_c8->@;_|FeLB!C3T1=0m*DhfNp*+O9`0%!GV?7p$XNJY>!>wZepPb+oo^ zb9I*WYp)4owMgEXCd?tkrEr^MJTS&H?wQ!ej6Mo%cbhf3f0>q}QRcM)JgL-0@HIW0-%jUqbiS3&Po(qX>HJta=Nvl!8#$IaZxEgjns|RdEvKmEfp2tv1ts_EJ8XX( z<>A#Y_t=DxH|;dhyz{~%pXshQTpzE2{cVx#(oL8zc7DC=K+oSycvvL{(^Ub!RRO-m z`t|^1C-JQkyqx$;VqP!7DOLeLTL#(lhX;D`A*@VzbUs?gDy`2F*Wn%Rok_=|r@(JQ zd>YrfHVgoEYhymlC5`q4O$KP2D5hWtY+f4AU5LRbHEBPQNtoxx=>C#Zz(a+fuQXv? zPQfRl&ppO9*4E%^f?t8pPoFWl5)<5(`8xN1OQAK^n@hiA9Z`oQGU1aGWWpWL_Iyg2 zO!RRj(9LNF#`6?8R>rdgSV6W4Y55v_by?>2MkV*_J2D`T6=4s^I9G`YF$dV2Nx)u? zdG?`kzWWu}N90X^9t(*Hcy_0kE2T*G0OnaWk8CF~#85|s{l^%sW58diZ2I$92Tm6J z7{rA_U&xizo^cp6Z9bvz+9#Lu`Z;f+n03P@e+sGlK-{CXaB^w7Q&A& z1-W@1_`6_?p5o$j3J*b_a+a~5U_!eN%Q(9L>nnSJBI$_BgqtmrU)Gp{Ym(Sp4}o)y z|CE9L>>B+M6UL;nYxpL&2I0L5*bXX6oivPjljtW8>(`}SdPVG91IA-3VSew86Xfc) zIYu{NdFo5t?<(L?7|;KzTxc^9oqgFv^MW$pN~`nT;pUo8w{wsQV|F)``iTCt40hDv zCDtd7hqXy3%k(+u>RIyKufw>NV#fIH1K}7;?3B3okjLET>knmAOc;-M&iLb5w`0cO z_!v2080L+A|CoHguL|~$*s+ey>pm^ZNjA}NT}Z>2&xrF(|M`LFe5t`N##B#=w><}X zP}C(AK{twPR7t5P$^m7-3ZTqepyz6&gRVgNbrX#vR#eu)f|GO6j+AlNcbRBD4vimI zi5}AMRNfm3fX)u*V;v5WgJk`#7(I6(&fl$YeGX_dV?zI8tqffM|A+FBbNtOL`G#p2 zVU)$ihiIky6`2Qf_}O+oe19}w-A34lO@i-R-SfWb(skaWw|M`9e5An^yuhs~uONDO zvFXooYuBfT!2Xx_zs{+Qo!vYF&_Et%weuT{|5TiLW|!Z=6bS3V3jwKnYIXB3^E$h#Hln+HQz zQt;?8c9Fhc>RSbWf+64&VwaqUu}bqi%Fnw2FONAv78@Tc2Y3~Ur81acL#Vm;x0)zU zi08Dm!TXMtG4~d87}|sWUyO?-c;FoHT^h@A?eg7mu)oKB z_dGXW7ECmE_lHb0#|+!4eDP6mz1DnVv)SHUv3hnJ!`+_a@qjLaq20gm)^I;rjfnMzQXJYzdf%aWFsvG7N5kJoLu5PSf*L2K2Sy1GI6B2aHM-$F0 zNfwm2XeHy1nYJ9}+pL>MjOQMp_3u0r=2?n+4*MicE~=VGH*kpS&tZ?PKzP@biTW1$ z@Es!w{VW*C*#s;Mwq+IQ>58D|Y>#w&6zC3YJ-6ngu{|=t z?=|^8L$rwg%^8}9xc5LGZh0Tui24dGo~7pRso?}FCXCydw^% z1llU>`aG1d-UsyFo|NSq6U}2jPCRT9u&eTn zpXjh(2X(E(T#;DI68rEuN}I6XF%OXRNd@$a^1a6><>ctOdvk4f`eXKHO*97!=180+ zKQ7xJEyCZ4d~ENv^U+vHw%_LRVZNj@VNQ;~96-5J@;WUetSjwQ?}(pc}B}k zW$Siw${b_%*++m~@WUjhY){A`X6y6Fm^@Loj8hWwp`Ds=|FnerkBYfJV)Xo8kB-Uj zCG~#HBJ;H6yDP|~d*(>llQ><9efJ!F(pMKKG`2p0E-zdnJztdY9`BbVc7xEOFL!1c_BFn|nPZ^48T9NQC6@Mp zXOB1)kg!@>^NYx1N#kEt$j5 zq%j}$j5&VOc)t0pl;3>z626)9eDgUe`t&K(r<;sFwmyGfY&w6G_v>Q?|0g!0KTdcy z@1A>Z%yahsB{6L)xVD|MNO}o8{dj4Letb54YuxiK#zWfjFH30a^Af%<`k$x4_i84L zIW4}65{D7vdNbZY<7K?RwYcYNj6W`=Mmro!^6dvgOd0C-2jLgQ}_REOt9Bx4agA9etf84h8BrtANKD0z0m(MWT5_@0z3gZ|^On$sBdM_-qNInyc zpDmN0)F9|b-_Ysz>o1Yc7;{x(oVAlc_bHea^r7I`_?ZOy5ZU;0$S=vhr$`qI(AP*4 zl^B|keyAz9-C2(z+qj+62%t#u(A!X=hUK)fUmpJRsB75Qzr{;!&TA95}JQX>YtA~c*+>a-W?QB&Tn16C!j`~f$HHM*|Fm0zpi z)O^^}s##q8A;zA{J~9b^%C@u?>;Dvc9QGyVg32m#RxKsgW!mwoxT8dLDYQJO?91g| z0d%Tq@Tr3)jK8zOjmek?7sLHv$LEFlXv}c2r>!6#gK6RlMwv6dSS>i0k8-p#Wuo!Y zOU55Fy+XR%A@C`wfDh95mDu&d4~9TTfbkZG=vQQkk00pwv8bD9-i{UEzsG$(LiRe8 z1H`7L*_@XHo}ZI`#X|+vHQ|Z8S_vn)!O9 zv%kqvqH{Tn(Q_3t4ie+j34Udi)@;VFFy0_(Zi_AUMKQRrEsp<+-Sx%!et!VQZjS+m zysfMowS@H_$AG{866O2H!85YYTS)khX7Am(uV)9Tk*-0ow$f%hA3w4$+9#Lo>wOPn-ATD?_w~2^zkbr`;Q5Px z+UtvD(1s7((~BQ4WTNqZ4*9R%vlzD&bth-J`=e0S`n$va;5{z(tJGiCurc>L;eIFG z?`roeKGX-h-*v7o5|d%z=bg^ix(n4$Z|-!ycT1=9)muBAU;M7qnY+Ey`N-`(9go!U zrn|y;2~sDapHJRJGJ!rmHMOs_fImRFY~Z#zx6AA zdA`S^|Fn=SH*@YYyB0he)&kBQw#!{dY$?Xt^yPw>fqG_u$F>yzqq-tHe^rs4H6IAn zaSDTMh`4#g`C(k`wjxL3vn|?}3=*!p40dgd-=M`~vpn+^`7ke#F=5;|d+(JA7^2G; zjrAG0Z+%(iWX7Z1I$+nRQ(T?*IvMDd?mMrF!N}NmZ4Nw%Bl+qCT-9q5@Hkf_-2aml zcpY1hKTTzy z4A|~C9RtSoAA_~&?H=qX^5!z|?Y*E+z;V#{bVcFOoNvcx=N~6Kec)Mp%21aq;aExu z{4^jMIR)$iWz!$iwhn8Xwl|f!ycPCHCFmPXKb1xg#XitU@pp5y_e_)Tb(=wd$=rQD zXF0&GXlt3|zZ8r@P5ItZ@gRGFhJ@DEDD%cgLx>4s8rSe2h_RP<=Rij*bKyL&F|=dm zps#$k+o0Tm7=EEMpX{~Nat!HkOw2cMExE;`hfInqtc|ZxY(nECQ`Mkt6Gr#p_KiKp z^0Dps7lqH|6x+i46x)sXm{$mw5{L0eI&P3X>i)FjQl%Yvr5$@b?T|gn7?inH@iWN4 zvlX!IYwb1)Z!HpU%Njk#{t+gOQ7-u|B;FAErw*BD&L;Hl+6tJsvw$zj{k+k07X)Ct z6@Tw`iZyj!u|Z;d54QJ+y;f{ISA$=Q&!@#uKfOWGyT{>`U+C}-a+K&?4z^WEY)6dA zhWQV3ux~DT_F)R;n)LfICYt-AN@I{j zzr1$L`ilN}trY9<9N9o+ZVW+RuY~fD&;3y0hcY(W^I!5jk2zY5qMOj#!f`O9EgYND z0Ip_Ck)3%R->Tp?(buyDw)r{G#h1Z`CHNNK*sq{+wwW+qX5efl8)&?>`mgce4q6Jf zWGU@14`4f3w&6Y58n8Rzo^pKxulMDSL0uQp&Y>jd%y@J~I6q6UhrzPe6Ap}R$_t9T zjd*s{g@4>52Vfp>ZJwS8^Yj8}_XJ_1%D|TgP3X5Ow$A4&a}#w%+I~{vAK7~C0hz@| zFB#JBXPobmmLJ@Zp6;0Y(YCtMHmxqd^VoZ3y~UV{KZ9q7Vg5)=9>nPge+v|TR|8tc zy*b7xZz=NK|5Y8%13C9m&eP`FZYP5jOf+8+kNfwOxwlw-P;C+VAlC7mN;;l~(Q|v& zOf>Jy!`;1IU`J<}+E*u$`wJ!-^K6Fp?_w*doBmvy9G7H80=-noJ|85=NZfDyi@AAF zuXemL-?e>G!LzS_qHFJln7uz^1b9yn7o$8WR=L=D8%B>`u@3ex8$j3oda~!Do$#4= z^?d2=-&aUa{pn86#>aX@`^_hl{!r%3L?^U|Ho#^%dLUZ%6Zc1LzOUcc%RM0HXY7l& z+g8Y?XZH#py(jvOM>u;Y+Jj5(8rq}3es`}fh|Red$8>kJytm)gtCQIHsvg^?;#*?uj!pEP3b0miPAy;jT*i86{aOHg9m>`C zzppK#hbbF>&K}gQkD30M5E!o}2fT>O!}dG^_|cr{&!;#-dc)mhjxdm zLK~k}Xrrk37-;>){ojbu+n}%DR_YThOY)P+^*MNN6WO0@KqpzU1;5b~$3&A?q<`Ch z)yz_vOmBj(HcA;Nd-9&2=PiD-?&Q<5GEU#{jFZS=8$3D)EWhBH2XQk6X=r zU>V$N)0({2=)BIyGcwd~6)I~Av>9=fUyb2;`Ix%J)rIMw`4#(d$hX_3-#0dZ{bmaA z6uo}T-&;p3!@b7p-n++_K^_!&^BC~s7zF)c4s^Cn)1Nn3^0gJ64o~b;Ww7HR?R_?e zN1(sPEcw(FjGm{WVxn;<>o7ksCNj&}C?i_Fax~ynC5CpB`hISSSoNj}b4H1+Ax*Aa zu>(t)IiO+IMTp$uqoamGN7JT19(Dord8Z!0qH;YN>}hqk=! zG4`{n@yBCdZo<4%N$&_x*b4m6mjfwlqPenBzp>k+E0)~5Y{w{*Y>0hSgSj$e`r}-- zV|b2?S(PxE6_4DUCp&#f!6*p!)Y96U^Pz2lV-Al&8?-qmIutFZImUbB_cA7$OXxU< z%`GHg1w@}EeK!hqld;Wtbdi8O!VHt<`% z-vE89=3BUxFiaXvtN=ZJ+A)wEyII()EC+jmj6(*-LGEv(Iq2K3l$HL{e4l*#S(A7fNACS#CjbibZp)M8-^h9*Zcspc=ybaMQp>nGVGm7ot6lzo+yfqhvf*|!P0%SrG(sDK~J*)jVq z-(G3~|G(bsa0 zWPMyeMBY0hK~_aQuIFb|mymwV<$l0HWGXI;_9EOidZxYlUzTPLjS%kyEZEE(UU62^C0;jzmTcl+6>`o@~V7k5KBjR#04nFXC>Go?dNTAeV|bsW>>CQOH_6}7@|OuY>|bu8IqYjDK8Jn7{Qh&; zqhCu>4*Qz<-^*cN^xUsFI!YQ>S%U`XxeD-F?fnv5D;Yf&L)v`y$Hk1t5nz+z*o;Fa z^nZU_LN5EFd+zO?T=pFM68A@C!hCbA)-?I)wY>Btz#M2X@+3!eL7}H1D7OmdSdQeD z&l^2|V&I|O63hj}Bh-L*R!r3Po5bHnU0p^0GZAA`s?nPKoCE!Mu8JZvFm4vHN~_#> zBL>OR!(Zif3>)U-;vBeI{@aX6&VQRBKcS__17nIjP>#{*|6j5X=Ku>7+J_7G*2|8~ zm%7J4b{lk0_jr2NZ!0dtoJV_cW04q`tVd^&#%7H5O0peGt_+C&`h8_UUsC~on^7)kU7ZHm+OlyEgk-lpgfHo^SR_P;(^7-LY%oW(e_cE9r8d^pG0CS|}*iZ+?8 zz=LXpH9)K>(#%#xcc$5MTc$r2y!>t=K2bN(TmkpuzV~%HTa-O)-F;^z*d-bun1&SoEaIj#Iu8_F7wW?X2~V{;AI1ua zTOYOgzd9f4*R=A`H(4+YYZBf^o`N|L=M)^CoJ(xkNzfGETmjjyLb9d&FEI#_KVUu*Eq7nj(TdleFIal(9^dF5|J6PATRzb(XqC&&d|LN7qkB9f(~~=GeLfl!S5h^g@LSwnryxse;n7<@V(-J4@Qi+~fcfB$nJN|QE6$6|6_ zf960)JIHtbH6QLD?D=Q%;kt{uoX@7nHJc{4_rImg?fo)}r|{eZ>0=5rcGowaiygxz zwMlX{d@di|L-IIQOn>ay_qjaDT1@EAr^rFP`amyMgV4j5_xExNa1Lg~@73WO*QOXx zY^&J1zK~*Gv2NJD-voa3#e^~hBQXHD46#=Uo}@~$J^Dm4rilF+#6~Rdj+@ZmpY^3> z1<&zaC3e&Q$KG|o*-=&f`^vuec3<1w^z5eWh7>y40HJTf?k0p@LMVYy7RV+>sv@B` z5fM;PQ4tYAQBkl9B6hGKAVpBIe5iN2n%pz*eu_ zPkm~l?OhW2e=F&$>9}>$SrX-wegW`1nP*%v$$ZJE?+BIS>u=QrdH@_Z$>npe7*pp7 zmbQ(fG0ejpW;>dh#_m&G$8buFyk`vPFpr36M;Z8(b77s0HpzYe*=%Q;BXqwf$JBi! z$QaSz&laF#sBw^+hEZRIIg6gVYhEN7YqT-dey>{QajVE8_4hWQTXk+U5dXM!2yA0@??vCkqaCzR2J)7m@0cE1W&-X?Tu?gus z+@p4fadGXDNqq?7UGtVT^>Yr=k@aZZ(KKD7^FK8=i-Pvhaa+7I$P z!n&y*N1H=8uif%~i{(tvbz$>o?(%JeXGhfpzS~^q#zu~F!WPW%*rRQT9)~a?ZAB_1LrsEbUq~Z zh3MBveJ?dT@~iEwp0h0^%iw${f9AOJw)jQtzq!+deJ69wK$kDFq<+FjgPaQI3;GaR zU*Ftn4S zLGPUD;W-nIss3rob3ft5zlLL#pJn;Z{J#dV8TJ?q%d;m825}6O{?$I~T3dToh5XN~ zsr`mA7j9b<)*-lQP52w{S`);tZ;sF@+{^^A^9H;+ANb_p;Gdoh>b_!4vN#gDH#HBF zA3p}}xvrSW6)RvF#_Dz@J*~ z|R=6oDW!4AIoCys+wE}W8Ke`-*Ap}tg4M| zGyG;&h3CV5F9dxt-Gu$&pe$KqoBFiF1EMeUsiOU!Py(4|JIE5p!+DxFasF$wuj+mI z{`U5<(0|P)u&va6xk`6po{vh?W=*t>VhYY=wQGy=(`}&5vrJ&uoTB}+7wiE#;f{y8 zLVi0YgPaWgzM!wwva$Pi$dO%|%}1-!{;DUBXIT;K116fVznynlVn8%eTQ%-;5oB2? zZ&W$~W%THS!1f&H)f}la-vbKhr|Z1)$N0g9untKB)h`eA%Q?P3+;-$*+R-qCcKpK9 z4&$KP*)E#PddO0i&DTnl4oFJY%hFW69z(HiJvXkKNB$nNm#M|8`-rc5>!0cV+)CAa zbsDmF`%ps=`?TU%D-&S;#;p?@PpClaMeSM&z*E%u{{=^UsVdahfb7dwpOS?)dbyN) zaH_VBr<<_NH}*`uXHXN}`#&rKBH#duiqxnm-YP|UPe3UuO+=)Fh!8r`TZ%M6X(}c3 zP^9->lL#oGhbA3D5ke0TNFWgM=R3c7W}caSu{%4vv**RR&YtVjv>z3KMA)i9BUfqd zXMfL!A#pd;fK#3cD$DEmavnTp^6LBAde3dT!D~Xy3e2us{2^e}K=9dCp{oWcDW`n< zr%5>ZowKr$?^tmxRed>3W>{ba_y=kgsB6v=GiP`qom)`n9DW~^PYJ@mR>FIKAV_6( zC7p25-swu)0(d+(w`W}PCT19`gj|;$N1-eA{^QfT)18wH%+1lV965tJ*Txi4S-x4{ zs|Mv@I|@V3HZGmi-^1Kt+Zl>bG3jhMz!(OYf+Y4!?cCCD z2yk5+HD6|WtEb?eeP;%^BKvV`Ep>NBQu35}=UFU!a3U!3^p0iwmOVFl`K07$KvuP>1*9R8d{^MP`@IxC77 z(a-nR%c0I!I-5>zQlUVN!Pbjg*bPqgnF`5`Dfw--)ZMedXCk{gf6fN{!d2sDa;kH+ z67Qp!nA*CBX-a0ALidboOnUw7d#oA23=17tLPj;-aO{AX)7gg5CmAw*{DxeBm7-u`S`4H&OVy^ueOIq*3;|Ach}eX z*5(uC{A?VH4;Og0zE#Ax-pbJa<4ZJ1sE2;X)sjbqVf-kB-|mQ)1Zq?VeveNBinxu* zMhtd~EEPIojCD~4O$wk_n%V34DXt+YIixVE0C=-}fEcwOPZPpK|&SEP})&AoyGY`1xExa?`@6tZ`@WsX(IkJMtWTlF{ zR9wr7AT9OlI_?F3HfU6mmKwW`vsSXH-*IB+%)9J8@b_~v+t}xu++?S*1xIb+L)Ce< zJ`sUJ(XXEYFYy%hIcZ56QfG*6-z02@GQG1mo8E3fUL zpIC!?qzYw_`)EEf7kY?o8I2*}vlMier9={v#4*jYJI5nREpPMKRi?|w`0seNjb7gy z)Qj`yvm?vwkPcji2z}#MFgS{!7JXYG#=qeHnzseL7$9#_=4}CS`HN7uY3`;!rQ&bs zOg{%U*rf3t)A-_@VtzUt1z#!iuUn+7w+fXQNbId2n4OE$jjT)iM4C8piNJZC9TW8Y zpt43Jj$i_r*1>bBez(y&;_y7i9{qhnb3P4;L4 z+dm11U9EzO19<5?%fey4Y^VN0g6~m(k(~g!PoPK;M{OnjI!UO@QO$-;4h28pSvX-E z31H#FskvRKdByp61$O0BRIiX)B+yNuRp>GkptZ#lbl|KG{)Y#-ThRSy*)S-fl85|d z0TE06z*2b8+H%D7_nE(t$K`{(J$^&r-6{RR5>_lqB4nFspZxL(a&*X~2&2@+B$xN- zv5|G$wCnNVnNAqWz~cE^B|S10_DyqfuC1pD`e8Tl7v!f1H@T-fs7&*lkq@K9m;;6% zI(}m!v%F*?+^KG*@jB$$9*f{v@9VMTh7`H$cGKT-YWwn$d*RPOoynBSxHdVf*ayP< zQuv>DN%lYM0)@?RRvp5mnFjfK?4f+G`E)jsb{5b*O!2g@X9RV6%;5PpXswRcC~n)c zLeb-d@#Ez6K&MT!cfY9upQg zbdrjXhZn+JV*)Cfh%~#)#H2+O+gb7!1g zjVyoNqDW@<3810(1!*-{N*p+AlP$vNJ3^9lnLYdNam@@mA5Qc3Q%BCcx6B3xJV*?2 zd3mg2)~7geK?N{2`qx{WkzjdqjaCyuENU}yolw3EirD2AZF@VGV~9UdTv9w<{+Qh_ zztfod1ok%tnC`GHJ!a?VzZ+PMeAQsZteB=Jo)ke~j)WOW+RkA+XvUl6hp*9WR2AgY z(}L@hDj!6B{#@ohk^n0U9iG@No1FOcDWtkkt&$&p$jATHXZC$=+3@H&&n9Ks7GRRe z4Hqq)w=S)5J#e9yzsW{cK=Y`Ta={?PEZ6bIz%Ni~N&tUT-B7Qd$Sz|Z?JWbJ>H1Y3 zwlWy{yMM~R8K+4d%b<&a50wq5(q=~vVaw_K`xdk~k0Y6bQMN^C6Q@6*D2aQ2;A&@j zpgRpb_Cq-o3?}ik2n}`fQf3)zwNXQ}MZ0v8F9_I;-Ncx0^Np9!5m;Cxf^9$U-jq1r zhJBun^?QU5%5iAz0B*z4B30Uk)9cm}L_6!3sUK(YzBR!$f`RXSWBr^OX1}-sOR#GE zr=EuxX^+1P3)0pv!vxA7fe#!$+RUsbwYRIHd=?(pw@khF@Mu+1dCOQCzO7PaqpikU zv|PpB-+XmH%Y(FAHmL$pq8g{XnYPLMsY^pDA3bh&ML2SBC;Me^jnUIe=Bsut<(9hE$GySMOIQa8;EFu3au& zCcF_&cihIrJhz?6Gq>>C{Nhl1n(!;98N;!+0)4|zN&Y?74TuZ^dY~FWT<4RRTg$gV z9dP3>{UUfD*IY6x?Y=Cb_dEjoa(hx%=ta^R$wA5B^;H7v^reFJE4Fi?;&$-~DHv zJf-HPvPC-O^0i`rc1xHB6<-t3Monl+2|_Rr+ZAk8qo4KL)T|wTSQi{?Tn}v(O&*|G z>%WRu+|Me9TkfsoQcL)9@L_K5`lgLHbn!JJ`R-W14qq1Yk7?Kv^I5G0`7s zR6W=5{qx9I$8T0)mx3x|7HEGCqus0)gUu0t;#&IiAi-U`ciiwPFHiOQM;jTaQ{;iT z%jw~ZW24E1^0{ISw7?=4l^&|+Up8OxH}Y?knDhLBMxFno$?s2)DQ+VG8;e%J4fXgM ztj391Jc&@J&pF!Bc|fW0YwoP`_>?HOsK7Sqaf`Bge5n=boxk$(CQWxN|KE|mSqQzaKnQ>Dbh7=Q3fCNI)eK_eTCKDtVYj{!1mFjl3m&-zIOwH-JAj$&H?vr$ZR%da zWznV$M!|4neucOny%DE1HqMt%8ER%Rcb>vZ2~&7Md{v*h3;McWGRiB$ z^TeX4yJe1P6={P<2rq5kYO*Pjc=$Iu;QnH85O{?0_CWv+*C?Vs3jpD#qXO=QqspdEJA^VOJ$8gT}8|8cU?iWB5!&+K2{k9B!Mu+(BpA6;%ZWJJ;b zid05k>a2^jHujVC*A3SXV))mYv1Pj@)9YDR996CxQU#T7WI(6KAB)et@aa?) z#6Ee6t^jrs6!+otBNHlF5fh#&{1de{hY%y$PZ8}o@0+a;ckC?Ss<(!1f|5P%+P~+s zJr;YBc8_4Jwbr|rt=#7(WxIuX7lIx>^xNzrtLjk*}ygEr%0GS`03PK zVXvcjPU)-@r{cxT260$HQh%lYeUnPU)I(B_+^UklM{U^yOq+8Ds!EYU&79~aAnykH zNy!49m(Vvz5g6gqFwoJdJ6+kDLCku3UZ*v9{XYpSQAtJ%uRUtDW?vJD9>mo+0 zlq0q@#^Cm)%a*;VztA>)LHv_I-_(x+yT0frcD*C54D&f@ZBh@;Mdugn8x_VEx-)13 z6TVTw)gvv_ELaImJW86#V*j@#P+8Gq zXpP9vU}f!Hzj1uA(doT-YF2GINaTJ1&+!9$$M~+Sc9bbpTz`<6DhQna&VHbrmID;P zU7j!i4+>5gQXDL1nlc_ry8S+eAEmv+FQ}foKq6WVe_M(US-M^{-K-odmD8ZaKU@f$_&%`8C6w(Af7IVQwz}tV)hC<|A*B#3eyiZ6R*&CG;=o-h z#IJ$C$E(NVlDNh%foQjW($x7`bRZhqPZE5eMZ86V6s8cAu`2lctAYOgBt=Oap-TlX zyBcWFPnu65K+muLs2~9(NMj0t{rmwT5+pu_5WMQ?EfrG$G ztack5qI>+{w+cvd_4tJ(&LA!j_OhSU_(ugE+)pyH%fbk+9y>|mOq8;gd2=?aMO%8D z4O%64IcYWeku_ciTQN~!u$GGQ`7R4R#5^za0|rM{#!9!WNF6- z;8l@3tvo|e%F`xd@=t+(cVfAk)zeua-MWa@)8vlFdwqe0iM7=WJm>5~Y2aCfC6{*> zR$`D@5)3(=3ytSK{bBh|duy54!z_t`oR0k8?L0qg{cVUu{U~vQ@~3;jwSmi-XA46= zyKMg3&t~A0-t6UUr;6^sy#etm+KP4bQ$|S~Xf0rn{Bc>`#!jXCBj~z1W~ErbE|A`P ztEF3`AIC}Ppe_LJoaTMX;|K+4tFM$9yi$pa?Ed_(^(T+#jTJbLD*nThAsaRR1nqYH zoD1Yzu%Pw)_V)O;Ym;`_n5$zpO)pm$v(~G2MpTyL<`hQ4?P}jymSk$$s2OoDrd{dj zm#;q^cRF?xIBn>DuOp}a!DRbmLy5sA!<77^gVur7SA8xrw&~|f`&i&!wI#~hnD2wl zq{l2cT2tQo{0-51D5OqZ@h*Yr{-!eU>TzSTQob0iXnXeUw6CxDkX3XIK!B6X=qx

F$>0UNuNM@}ub)fxL9_*1dROTdekdWoyA(avpFs58Euu zglFDTcG9(e#)!!7S<-=yeS7lynfmq=`+p`MDgD#iq8qSh?=o%~2mk4+6Pf-g6%;u_ zpBFjx3XaGr^|{)sy_mUxGMgq|rIkXiZl9k=zIsFg<__*?BCAt*wc6Hj- zf?vX+f4X{~texHY%Vn<+ygg9{{qN;q z^LFGKH>(b>{hBe^R8im&>XJ5nWE=U$L&`WwjrgO-_(43WE0GSSz5K@Ve~~Vr1J|HF zqt>?x`SP7amd>wu)n-bR+h4jm+wY;n+6 z>I?>|l^xIn+RVxy1`pEcuzF3?T5I;DbV9i9Fgv~(Jf!}EpSGj2Iw|EB9mw>6b9V<$ zd(GkI&>9N*#HoTOP9tKSr5`SIVTi{{|LLCZMNCpXYVb6@;>#<=;yjmG&8 zzEr}f`doCJA%K>rL{}Up&W&Nh1Be(kaHf);gs!hR@pCTQzibFbT z>V3BTyrBlXuN|~5tETK*jFEpria{KR8^_$&1pSAB*zBtU-f|j%(S~YUHc26b@4d3c zPep7ODB?qFHC72?LW8jUwN}&9qCQgq8A=jIoCE`fu_pH_e>Jr&_7}kbc%nbp=Yg{X zLjJ*fVbaZ5#O60z2a?O?hwRS)|6g6!mU_%#b?|>veT_D-^zeqTRXg~}Z11Wd3T2j*KPfOKWdCqzd+orQ?eQL@(S*f0(O&3ggFC z5TdgfTD!aIdM-~aKeq!|5Uk!`VNcos0DjQo3Y0d13vXBm*o_N(m?v_3ehYlkMb5KL z*~bsludXXI3eeSqevP~L714ZlxFql0oIaZ-+8h)(e*h|7q{UPVkiCgEFoUnU zXm78MTUtsRYxuOv7ZSSOgC@@QVdRqwJ- z6Zgq;G@+V3;1VwM6@rsh%hDN}XHvCEVpNPmX?=J8v0{%_BsiEtWg5Rm3N$pPJ4Ee2 zWAh4kX^KtRDI`A&^rlpjLb%y9v8lYwZv@fV|o!KO`bt~RNFdWpm9Yb}!MRq7<&eNC3&qiLGzsCx;2N$5b>`zY^B{cLkc~b=Eh}vmVNZLTWa5G zv8P{eHR%W*my!ck#S}5GWQ-nO2H*pPvbyR_GSbal<2xlFI`SjBX+h=i&@)jRe!yCc zPEA2M`jLRJR!N;J8oCy!3&6?^L}~9hny(eAMZLL zPb^#8x<54=6~~ZuE0n+vrRO}&xd>_sN_9$cXE$A?M;H||_sOn^Wl{9fY+fX3SV(I! zpjbPZN>*VMoxwM5NI4n!>CMTl+r&j{Sp8ncHuD@x?m(E$>PL2fUSBmwhSZox-#>|# z_s8vR(V$@5qNxfn3V-0X>P)XyIl1darXsgn%0U1ToLGV+7Ol& zlh{CNRs6LnDo+Ze$1ZZ}0CPZ$zv)JHNGHMrqi!z{kT_&z74DxU`Al#GsJE&JWOUT)+FmRS?CaJ>;SSK?SBy%DI3-M1uh_lJVf#p}r z$b~onj7KIDhkc*N$oSPx3g%e&FiI>pASb?1AlJ78RfIn)33bXqYbSvx^Ju8_zb6i5 zK*J(rH?i4(v}F4tTAo!&laZt@xp=W?bn`q$4rKXU1x)}oFP}@4;wG_-LqlYYVk~w9 zQ0%;gAu-^I$p9e)H=`+{XQQA*vqpIgYSD&0mo;w-L!%8;Ipfq7ky`sT8;5 z7qMe4I)Gaubc|s84$>#J4Ep{D`9N3(1d6N1YdCV;$ zzwdrbQ!RuNz`vcD}&G)$=*gdvt zwwFAZ%P}wkR%kE#1iL=I&9=?8e*UVDo!hYk;87s~-pM*j4=~Rz;eRZA`Z2Iktwv+BaQ+r5@DiYbsmdRYiI)^Z~N zwHm8dvxa^ZYi^@PUiUTDy@m&xzTpC8KB8B4dtAP2aE57QjX3Rk)1bi_rl0lQ!@gF7 zb4(w*)+dCsOgn3PI9e_azrBfr!UJgAIK(>A_lLO2Ii{Pr&LXYmlFi&6S2j7146?z< z!@zmOy(`gbat7&S{&N?tCg+fjSDy36b#@(lJlfo_XL#(5So4(yF&Me-D6Qse8;9RW z&J`EgMcQ`(8df`-7bBkx&J>w1s+ujUjvh#IZ!|bp^yBn4?)5USHJmf@co4gkv@E8G zQ^9@lrMGCbmRvL*o@E!J>q4wJ5H78)RTsd6SaTrU2=%Sjx(DHbY`7pUz$+KPgLrMt zw^T@74B2_IjghH&fGyk>XRZQRXVW>3~_m|>h=dVQX3*g)PAmArDWcq5U#b|3~`qnv>i zE4Al?*iuQ(8H=d@RC0M{k9)n0P|ype9N+YtW7w$Yo#sEhe|*< zE$9#QoJk3M%O&}Kd}346PnxOgDb@>lWC-(9#hAMTy_=fZ`v8E_}POhzpiX2Wl17|>?G6H#Bs z1$pg*g!?S^0Y8X;x-MM9hdUPkG+el*4;LDOmJfC&{u#P(Nub&b@o(D&Z2N$rflxa` zH8%oHZP@%4YGq^DAF3eSijOML8;w>ujj))5|b>o#^SrE=< zvTXsbDY_1A&K*MIK;NaWbwB=^oJmkI+mNaeNaj)zq%_S$_ zL*OimM{d5&E?#k)O@8squQ>p2zRez9aho;V;Dkx@m6Pw`w;AHd%eT3~jo6qpZBF>; zX4_owli&W91K{S{p_pOWN5t#L58Me>$L+JT=8150~K2HT8$7;xMP|j(9mMgYK0&} zvc8psAVYoK4grS5Ua}ahJS6>+r4VSS$CG6TGSuwEWyMg76PFW<*0;pv!w`(ifkkUv z;&NeVl}lU(3~_1V@?K~KOI+3qu3?GGd%@v!xh_1CF2@B2F`yUyl4OH4ILQ*5<4#At zOED>W=VIJLgWp~(1P`%6+tHWeUSQPPj&6RLo&P=Ei93Sg(D=1iib)7{TH9F~3%jCi zv*OkuPTXa#z3zj!D@ogB!h%-2Y&f>vE=!iQL_KDo3X-^2|H(atO4{wY|MN%ubmB(m ze0W)3UKF2K%dcN7R+cJ@FV9e?dw zhR?>z^2YyJ+*n#)URhlhIRbudV|C^KM2ip5zOkPX`u|1$Cx>^pTiLJ(?jq@QAA_Dp z{>*=wVQtQ=jhvo zxw+(~nUJ4tw^JX)X`a*twz;|CZ9f6LwX38zJcA!^qNjU1@9R(JqUclf+u_mKyZytx z=yUYjPVJy}R-C$auigE_{nK}~9c=BvzCc{B{V4v0-#_l3?!VnX*w;-YEQd#RIrzUyHUjs2IFiUO z9VS9J(S5QtNBcMehC(}~E*S328d?KM2}@qevX`MTtd>IDI8me z+hR^1ozTdhoP8vO`-i)=lYL4SoqDi;CiFgdN=KKPDUM9 zG{cD1k9KzICm#>6H-6eb+<{i%Z$|nNyo40@IqgS3)=mz#js=Tvp9y|E&|OPBCpij6 zizC`qw_9yOwvUc~p|%RFSny|i44?r{nbV_#edLI<{R3i+)3g2KWBL8)cuR=Lx=v!a zPDhRFwAae6`G6`y4)%}hZ()w@AMBhEZ|om#AAH=Y)zv_pa%2Z-FF76Fny!T*@kkW2 z<7juczO!}u4h81X$G4)x@F!=qxNo7_7Ts$W(fYv_Nqmqz@b~2C zeV8xuH|Oun)}3}mr>gqlJFO2wyw)tzcLwqKmNlWaNEeVrcWS#^9}muGm}rW9IHDz9 z@acPEp8X%UNGTJ2Yq29b^IIBS^hvJVA3xOh4t_a)C-s4!>m)YiVsdhF^phNCAy#+l zm{8vlQpr#Kcr4S7w$ze+w0CqWHbd5N;s?O z-#^z+kM~cMz}%*V`S?sC*xo-8N|*c&T&`5O-Cdzke)za2f5Q^Mz6wbwgqK?EG3njb zzQnn+zxCnhaHq}+?HrxyFM=fX9VG+nL7{u?!rVVmN&zLD3eG;z3CE&4HICZPT!+{_ zsC|?~>>a%o$kmUJAKuC?7SKCO=IgTjDpnRr;r_PLg7!~9B{hw}VbMK@zf8yDPu=bC zi>9*teNe}BL;gD9zdme9pbz^yI|nsh3|DTc=hP0j_hl!*c%G^B1Er^;mJIWObtrL+ zrkQ>kqUpD$8h`ToPtFeN2ZBSThPJhTU^w^mEiyT;O(eam`=ct7v3Kkws@qQccP^dcZbpLN+DUjcfMZ?tg;aEtnZPl}&y-NuNyd_(3#>VzcX!S0UI*rdbNc86+ zq?&GpU%FGzPHJ*eeYBWBu%ytK54PklizR;AI@^9HrHz=bAH>&R|CqLxKjNpz{?pkT zURJuD2dQI>{bzM!aox55EDEr%_Mb=iX#0;GaI*a@OWV)-%f*doaizNSs=B-svi-mX z+GsBx-NnwQb7I`N@JN zSb+j)wzok;3fD}Teob2S`v2K`_r5lcWN-ZW*Sv~}vnP=VCR}{k$Z~)wk;E?&|76H=SfD6y|T2 zdH*zXw53}^iFdZa4j8~Pk#Jj|; zr9oaylLtQ}a2_^m{rZCfO+e7 zo>>H7>$l};#FtPgrT8VVwyoc8`gHta7f^ag2BB*YTp zI1CEJdA1<_3n$HTwAnzg9#68#1cJHX zVaog4pdcRn)IQjQ>Ez;KD-mo4{bV?rVr3+%K%Xw$6OAsD@cC%8qTG*{h zh82m^b*alHs>>GH;3U#tlLjPhac$N#1)LU2&syCX+a@nrYOJHN)9vj#aCM4FSD@bb zADBdotiKY~w7f;yye(*!@smx!6=|a>=%BoRBT z2$7MH=PCH7(woa%biu>Xxsc^b)EV$j<|HWnuu$Qu&Q1uhY%(Mzi8;M&CLdKPeuPrI#dN2_{?G5i#;maa*H_@1 zZU3*We%}B6B!8~`pW_7J$$a*|u=?qTXtQPZfAZP>znT4iGxHxtYBBO)!H4btyO;q) z=KvPl`jddlX@G@We;!ah6Ck4^G#6+kU#AjKq#^@@22*KU*wX-IK#AE`3eoYt#!6G7 zeUP>Hj;3HD6J(5hZOYV{K(w^^)M`LEsq(^MQ1re-WV@XAIk7U_Zb(d)x@sl{f^22T zl^~bquzZT4x@MYXcU2UrQ$}v%vrMyAqAfE1Q5gtPYGtsstV-u8oL0t*ktfp@T`Q?5 zCX34M8V)!X9uxrOVIkIK#RoFHT9}Yta4F!~7DSn1SgBwY^EyQHtOdPCy@r1Q`}5-J z|DwOB{g)r#)$(tZ{kOXI&|Uw1_+;hDXZ!C{{2BWXD_mNCtKWV1-M6bN-wLB|^-=5L zcdbWHLe?LeC70=BD3l1sC#Mxhn3pI8wqPs(p&V7(vs6s`F^FBmPLHaGBl0D@ZU90% zBMFpgEg2|fxdaBy<8P7Q*Y?&c2#v+oTT!Us!fT>*>Qv*N3u0w6>GZkySB3mnB>1mI zrBhk7!Wi#U&(nv*D0PBXlN>Mf#5!9tYQhh)o1vt>pbo6xHZDP9YP} z`s^RwOaAx%#q_^g6}gKspi2KgdbH}!{~xcdeAfS;;!o>;Q{l7)C|3X;eY^G;RsbHY zM^*p?0EX}GClaB6*Qox!#x=pT-=EMbp?r{29da2LecvR*#Xoh=g`9b)MLk@~PEYe* zvVvbe$n`(_+Z75lOoQ?WE~M+(hyb&;;cPHqs!}IY3P~opkC_k?ZX$SQXd6wPK}p$C zW01)vgN^4>p;u;+mMXn0;%k%zf2pid>Sqk4v9hF@sgay2f*@3Wh%#7X60}a08DV(F zwQ zyYq8z$uFyN4gZ3I1j0kl60L>Kt{@3SLr;CV4iTGD%n0O7uwfx!bwB4c}7Jjs-o$4@(3 z+Z~aH{_Spx+(V||A4W48}BGR?r2qD1X`@?U0;Oxsuiab(LA{R=2mLB5$ zWV|_|OZW%oU9QtkvO%7mbPMUruN~V(b+&h3e4vvyEHx}mcF*Z-!>@P*L)6&^@P&QT z5f%CBRcC7lJiavvt%SmKkID05=ipE_4;23;FoM$_Zw?Lx4EdSkyO;a>KeEy*dXteD z770n33i3SA2iP%rZ8`)#nI7>PeD|G4o%U~UUcF{avVrVtCZlj3XIJoeez5-&i1_Nw z?$OR`c!Ot@wmPg?6lZDQ(gq~nj>yse8)!pEqPcH%;aUEK11*LePApl}R3T6*Zw1cl zgU&A1J{`~NYytKm9F&3ta5hIF&5qBr;jF8bhu4A_SDAJ^5QEq`c`3-=L+y)HiQ7x2 zVs3w&PIv#?)j z{)N}Wg+2tvnaML=AMk{iNld49x^`b93Z)9sJ6t_>so#14mg2!(ND#EWyT2`1@4tS- z+u3L`<%-}?Aj1hM$cp-HQVRpQpF+i?R{O_8QE%J3J6j)=xG&oWQ1JV^&@M!|zQO3<^wimCnw#Xt6?l>_RsZ?ePG< z%fpcxLnMO2-Rzo#`_JJ75uE-|!(XqL3c4qQ^ptXr$MT>r5p`ET!vP6iqsO!9RCG%* zNb?3K52ADrkA6WA(LrD&>Ig0TA*i>rt8qH)v!eg`!*9PBMZ`58i~?dfu}13GB3E5C zT*DCA{aOC|3)g%7%x(-yQO9h8Vef3j2QJm@ME^&*eu9BPWJo9r@p$+X^nWqfbU=r8 ztbtbc8X9WsQD)~wS2mWzz4q(w(SBEqI9$Vuni()5I@vrmR)_K76_VQx~iYY@PVD)&8Zs*M0>?gBT=U z2`%ta9$l3Qe(H37?22~$T-Xw-ZQ?s@4?rOxSZ$4S(X2@N8l~qD+TF2w7}6iDK}m`E za{pCFDnp@f4!WXw@9c?QAgo)oMEO8JIu%25(RDPit0WIPd_=aWEbB_;fX>$JEBi>E zTG_YFC}=v+sPXW{e%CcZVC}Wr&rZ_WU@H3xop=@*6nJt3gVWt;L$WaFSpU1jNn*z%(g`Rbm*iu$)4{VVUq^4s7*RZ{_3hvmUKvdk`JbqjR|MY zsJ28(SZqdD7MLk0x9cg{lI98bvgKFOho@q29LqOYnR>#4U(9@kI*3l0PG<#F<+-TS z^fYr{_k_gR)l??$jo=p9XURW>EhnaI*r1*Y23a=LPsf8mixuF3X8x* zXC;3Y_#xd~(mu>^lof+tKKy20%2Z&xO!INU(x_K5h1}CN-ZJl0DT+Rm5Apn}air02 zl@tSE`)VP)R3Cmj&WA!QmFgW2QvfShWmK3-B$7lY6JZ*Z5?~4?STPp$*R4q;M8x!x zn6|Ad1*Bv~!hDG4*r1%DPNk@(*?BpENFdWf1L@Wx`0yK~Wu$2N)+B|rj1(^r>)r%F ze80opkqbE{$C8z`urIt|Tq>S~4-z++eC0xNcKnm?w5L!@TtjJ7eYJmZXpilrX z;?yk)8%Ml%OJqEl)gy+4@AQU1ltlM$W15$w75_05r|J253La4xah-rPm@wQpN_nX! zp-In=M->Dj#XDyJEv3+@tWt=Q;8#8RoSuRntw90f5+t@%#5{yj54_WRSh%<$v_cg* zC54o#5YbgELWLi7yQl4<|#;>Ypq$Oqoeq;t*NfpS?Y}AXU6yH<>m(x)@seGx174n#lx>74kuAlo^ zQ7=^*X#@KS#4q@!iqA|?%TkMy6bWrTBaHtD34Bt`IWKxvDtMvHMcCZ%J_@rC-m4K4 zf~5q~;CtQEkF!A_3cgp;3gf%`k6Gpv3QH)&7HKevYPtEiI@o4S;sfJx1@u>SLh$qbktDpUUKFJ^3|CJSvd%$c9_&ap}`EK3-05r8n z#|v1M#UHS`3QJ+Vvvh(lV4)jc$U_<*lAXOHek2B$y7l52d2!%EH`^|jD=P3!E>??g z=*z>_Ti~l)?S{{K*O)v?tVNlxQ`jn-3Z^K%+(@7UI$VAV7-Yo9AUL-4xOgvLtYaK2 zSipxD!*rToWUvx~p-$Yl3o<|t&%8POWS7TpkpjVhKYMRpN&W=b-agdwEU1`Av^*Iu z5(=ABRdATf6u!08m6$V0qJepv@0N>fah9KGC(`k#PzM#XYp76E>EyJF=`43rSZYE% zNvziF972`MrB!5dJ<1`mQiBihB%2OKJw;?1jN{0vq}3Fj$mU*lBz8*ImtDCOxj3dh zNhI^a2hra!qJmHWhv`W+xW;lwhr(hwo#DdQViP~Rys+_0Hu&4;0Ixk6v6BS6iWwce z_UKry!uiREep{d}BgyE&C&c$2srKNbgK$=#@-gVU2O`g)bMI!>C43l44=}RSRizYA zDYAXhCd2dW5>ELf)3dxt#Q)$h_w)>AhPeNkK@Sv=OS&QpQLB9kL8qGF7*8_293}l6 zP8~sIU#8cEu*s8Ik%1ByU3EFs0E$oph&Ow$Arzs85U2MVMBz7xIJMg_it?Tk2Vy%kidcJ#g9I8}QK?Dda3PIScnVmbevH9b?H7-%p*bL$k+QQdyV{LwD)%s` z>9y3yr=l(WJnsrFcEUadO4lQfj7&{9YN*vM>&pk=^1P(?-M*GmSY(Kyky zV`5~emW2g|)rIGdA#w?lG%P7wElks-DsG7Xh{A>n8B*$B-^nkg5j{v&nQW^6Iz^;j zhf9fRGl$N6a3~jqK3CMJyd6S(7vYA=+DVV^BIyHi1te0bNqai!>1BjM>Pm-1zKzhB zHqB{N$e6NLW{T^X83w(!&eH4RdS-^bvh=FBp6OApEVW(r&z!-njM5bJGd6~mQLuu3 z#>cEO8s4CvSwmDA6|0_Sd>pc9$n{tXRwzn0%a_vZ4CzkBZXM*c|fn;O-k% zaPZIKyKAV3vUbn*v#H(At*qLqj8DaI*$}F)auF(_9Fi zN{-HWqzw9aGC$!>QS>}wX~6$S-WSD^Pi>;vun;qSIs?NgzdjDqL7u0RYf68~b1iIE z%(Hxnb}I+JGzP4U?8c7YP{{zHDYDDv5|vO>@mS6Cs4_|JNUs%bBW83ozOev_A3y zoK`5~3MmqM`VMjR>SI81kG?yc8v{suoD|QW&V`c>>@}Y=QCf3gKyr_MPB|2bg#-JP z^&v!Rr*`L~$MhD03FuT8LsB?$%#WjKoQMzEEbGFy`5aJ&D1b#rl;%bwGCRCPOsehv z`{e`W0J}V8hnj-{$Rr<6UU<2$R zJ4saCOLP0&A|HH-0T0!6(MnVY3i_d zX#DN}(Rd&}h0Q!;f0y+q1>s?*!=9LEj3z;BK1Z&{N5T1v3E=e{vlF5CRDv>emBvG- zz>!gG`do%gDN4K;d|>D|i+Wi!f*aa|gt=^4sn2J2FtmWegu{1Xg$ZA3=}M8%cN6KA zU{^sZV%wY>7PCoqLsU*2@OmgMgtFT60Vi0{nHoxOC~pwO)2(>^E+el=rFt5SQCdJ` zADx-gVXN_Vx&(Y5{6O*kOte}VCKdkJu|A-CpIx`0kH{;%VPD~V)X!U5rJbuw5luK& z_}ie+xGzb)t? zI5Xbca|mEK^C9yA#lfIi^G=OC42y?!*^jAj`fP#gWh&|JZ^5Y}eYM2gKKfCf-Bkzt z?Io79sF)+f&|bC=yLi8Gcwzn~BY9{^42pL=7N5jGla}SWj%v1$>}D_!^_E7>SAFs} z+5|McKMJdB8q}JNg-nE^u8B~GL%>vk*GiYO+{`Px3lZg^^D>|0Hn}%Y26CVR2i7&v zN^@`;$^qw4ZKjpvU_2|%Zd&*jt&e(x;%0R2dQGT&E0$&=vWX8~IaVPVndyAjC=MhB`UA=28JgbH^G&ti`#8U1GgK-O_lOqmn>@Ad5d2tBgI^n9Phg# zKzxomV$jBp5rl5vp*U^gQ_~@$*o!7TJnAI#3JNm%f|Cgu5nVZ`kGafdCkh+-^!+kn z&{|vbj^*o5($m!n`9f9fNGZAwAgRC)H?MjUC@kmN9CE@5hG~ATYZvZ8s}?)?2sF17 zel0BgdV)TV7jwverG8w;awHu-0kcNlu9A<}GKcrj#ZS3V+AfI~NrO&^h*!6)$aPZ| za(9nSabkO;xUpBYF-o9vi>(GI?yl7XCFNZM6I6CRNVSPp1C;j9>cN^Fu^PZ?E36*0 z+=zUurVs@X0(dDy=I(ZD8#%-$|oObE@$-1pTrjK!;(c9sW z3QMcc!569LLWiSfqG^ifntI2jnv2^YOE2c(gXzmSthpS{M{?R*mjw}&@mTlDY%;2; z{dMyB@S${1%iFEpYr~dE#1^q${X?545Ed(DnA9=0C|$zS{evvtEs>w)Llu8Q3=4@$ z`w^Jx2Qp=DHe#4kGebv7+dYkT^I&C6vR;;7%%evGhHY)r(61nkklaaCk?qJpYu1}p zZFf>%s$gqXnob<8IV6^I<&L~3m(7&xcbi|Gih8F@7ZC7HYkl{!@@^cBuSId^L#tfN zZSuwmT-038Od@91l$xYThu2QKbT?ShT=3j%sPW!2B~AV{rQL!!%0NwHjD_K|CP|-T zqUAU{j?$f%_e3;HQ8>5eE^+Gfr}3gY6#txr%AMH18c~;tvbSLBa}SQx$*&N&xO3Eb zSEG^%VIGd!{ncf8cyzG;OFf>5QJ<;2c0N|R@`Cx2mW&DN^Lw9NSG49Iv+ELmntnc( zRgJis>D_@+ux!ds)% zXNoW>1zz9}v_G&Ui z`ugm~!h+8x)9b31`&yUOV^6gHNmK@AuSJD$ux=v6B>TrKE8?wdJ~1TP zO$4c^lKJGAw^BrHUghVxsLqnk{aPg|Zx$NpChW^P`h5Irc6d0&;-6>PWI>I?M_NqS z2+dJeLQJ3 zyb8W-KE>4e3AxlJ-~S*`AXbM2rDr&)CIyx=F5{kiDetgWS6B0bIT=l|v=?nhC;D1z z@!|oy+_j>BB&;f--dR5APqLxTJDO91a*~}uSO+=nRKi?hQNZeL4|oca)-&;|)k?k? z$kN!&i|O)2%w)e9*tyZ}Gk#v28>C{6L_8DHF}|^gH`QhRyv_?UY<rnv zy~VN$z~Ir{9SVLQwsJ5sewl#-)KS|8gXL>G#6U$YngK;@a!H-TittT_fp+h}o(DlC zw=gJ1cufRKd_xMOWo;-{(F#2hv*xC5Rv%cGKs{((HkH7#U}~QtS8Z`?xRrzg8sG&w zxB+U$3dc+%$8h_m9ou)DZcr&&){QIaWFl-Y^xMXpmW)d_F4xQ3o48kYvS5!tw5%@$ z^zLLAnWc@}nueu8Lqa>0L_W-mGhGJmZV2wG&w9PAC|b((wx0_0Z`kE1J$Hp*#Kd=@ zgh-y{N0D4vha>x-cH`G+b-Gof3gV_{%FsKTFFgIhSx+4j@30ou|v4oxGT zrf_`Z=SN~RevC$uL!IxE`u91Vjiz0F%nu&QkNP2?!!az4j5J;*jdCDuIc~9xM55q{ zh_rZ*DUb81e0MA13EDdB5lRrwopFl^WvmAG*s)jTObm&1;l&EdE+U!uE(?lFV~a{% zq+I9LJF{~~dN+~@EoVf0yP*9%+`5g{ku6%jHyIr`>3z6i-5GJ@rBs1X1p-!u6aAy( zWc_dbD~bP>5AWy-_=@}AAFn=o=*EA8e?G^5`viYH{u@>}hJSmcqra^_!W-b%TC4L% ze^akuZfJtQvy1h@b2xMLUfD!W~bO9)S| z>95^kcBxkiiT6h1>ef-&2)v z`CiDo62rpLO^RiLA$@ewfG%g$(>jJ0SvJsFGJ!)ZDw!dCr`nfglF?l}0p=BvNC;6Q zgmI~&L+G*2REHO#`bY2CZR?@@u+P8Ux=YBt4wHoK?wVn=mdB03Pj>gm0m0HmIcpW3Swg|493v9=TTHuC- zykU`T@VevMMntOii|C1M6j_kp|3D|pK72?laP^+;9C_t+3Hs3%@VdoOo@$Y}s7f$P z{HCQ&+IXXCxl*xiX)PVb3|QGfhJv?D|E4T?>ipVyolM{`aZ6uJFgnhzX#+;Dvbd7^ zik~G24tFTqv-|gPphE%l_-CHfnAJdu#Nf9A35-0?L@{Q80Z}#=S%n{E1New2qGf9O z*dPf59NmB`d!w=p+>*LM(S^rJUR>@p4|*3@LbhlLF)xQS5FYaN?UAp;$W+|70Y(H5 z*A!|HJh;i}K^qWjS6lab`7h;RgRxX-5x0z2qdTOpOnan6+V#!YUUeGjDAD_Y&vpW%eGsX1YxGX`ph8 z&qGr!!F&jsNuF_GuC*>PFsMxgSd^I<@J%MQyaBtA}ZkP21g;Hh& zMEwk+A2@4Ik*bfOL7n?PY;dm(cYto_I}ij{x(0#KHbdVTT++<*RSH=iL;06*YzOnWhG6kH=2M?<^1)l zaQVs`$?&z%S~8a#7xD*RfK#s|A8$(KSCgDsNz`VH&@W|4cwq?5IOvMFVTy{)a8)uk zf4y*CIm>CP5H5WlX6!S()X2xUJL4XNG>n_c1${0Z<}gWgC7uwBrNIHK*5cJ<(T>!rO{agTu zQB=oKfPhjRM+i{`M+jyanFH2UZ8nkAYch6$I}i{t8EtBF*6h_7B+no*c#PPcIT50s zCY`6#-kID+10ou`!2*)=Co(HOBp5;C%6#GSU2*a80KE!W?3A4|eDTl`nR`wOPsGmy zqe$$+6b8ooxnLxP6DeIsq_2gMc>(BE$fUXm6f)^%E2pLg8irjo9G5Koy0Ptawba1Y zHBt}U)Kv;>RZaDvRRz`nrn;*K%L8Fmz?R0qiry@DghvS~R2-c*=+@A594@Nw2u`=p z5PC%ISxLK|67-Nf3T6YiiZKKqQi!6sVDiFcsyiWU&?p%qefDE0k{4+u2q)e&G0?x$o$9 z@PuToVoUG}j8vHq`*{!VYv9Y)YGRFu{UGh7M3BrxVhBnRY&RA^3hFr}5y&%CK+U;rXrvBnC$9{N6R9QJ5E#J< zUWp1o-^)jTOcQP*qe(7C^i*x{W0cgEMD6OUix`_gAEdzHtoi#F-(vFcSk5a=c5GTNJ=sb{ZdFLzy#@oRVkYD{iFCC5Kgu+ zwjJim_+F^i)~~-ke{*!SzxUy{qy6pe-Hv)XXm9Q8)5AM zN_tNb(ruN_Ny$K~^!AeMHs!ZIzm?6~`^;fV);6T1mv#e)RXwZp%dgd5gaaf#R93Au zig3Lb)H04@G=5KBP8~SkoxxmO<}&dVZ3Ua~6>+Goy5=TImkX<|GHi_!V-U~BugPzn zSFewL`S9EB&R!>ZSD#%lL$U&kFf(p1moQKue*7rCZj@&yVHWhQcC}cD-gf7_{K9-Z zBx?r1Tk8hFY?umFs+HH{hA!j^TR=W*;IL|Dz~5O8EC{PzSMbUDZd$2MWL^bQ+IZ|8 zPpfmG66zN`m7PN!XUfiZbN+dQ701O^DYDb?mnMvhqb?jETPtWN>-EAtgJyj&F<}@J z=OzKw{BCiT0MA$CLV*DP>Zsim$N$d7wTm=*0|Mh+Cz{M3z3=j8`HS!WVG!~=IRIR- z|F^#O0H2DkC(hTYo?qU%Bt=*h z@~DTyXm(K;QNjn9coq@D2@-T`RD!TK+eTsr=3!PM0htrW=7vZ_=*c9be|)+|WtjQ_ zM(;=nWm3kjCYIk}(%Le$T77eJjpo$vTdNVyw_w=QV5a5E`ODwQRHeiwS}Hg5axic1 zvhw9U&j=ljz$5Uw5YI)%_zCc!s|w3ACRv4m?NjrIG^44buI1#%IJu!U<}E+NJsmA` zsd|_SQiau+CN#Gl$6?AemoqnXC{rAo`R`NPV@FbM%E89+Sm`!>2dr$YFe|eeaVsurH{wR; z$oUc?lOleWyKLRhbpga0?as}_BD;ZGpj_LoWl-ytaNGS@z4nw(HcXHC1`i~PxvOdr zBC^fAyto07qzX)22I+MKt7;z-fi;M~&6JPb-BJ#3zPJ%Uovr!`+Gu2NswEOXJbBQR zDQbwc0T)HkxbNDH8^$CEnUwW}BSEYRCaMO;m~%>|(}1fPkxYdVgTHiiCWgVzkukK$ zQ8HOPf>%t8M$?Y0t*;N_9R}^xsa^IeSu2?;Ll2@i`$nw3YY4Bj)Q`3o8-{$H7mKKz zHZhQA;O9ef1B;x1fvg1*ou&$b2m&(<2#1}>**diKDj*%yn$p2VBCkZ7n521;CEB}U zI2#Q7OGI=(AZ2zvwt{Mth-w=gcd1!p_|(NuX$?ITKcF&pKo==_;SJU6TPkM zLvna@u(P+Fbm5XRxUXy=ibDK+y)Pa*2MYAK7WLH(Tw*4SmY;wAIXODZ#9U;0Il|rH zqR0xtEKBn9F}by)|Js9oCJGrwdYY%GKb#&@^@u^Hn?n1;IZe`_u0;5#VLcQ=SM`%u79ThZ-7S%C7OQP@@7hK7zK*P^%`nNf4<`S#5rO zlHL_L>4qv3DiC|Is!bTj12uO7$3`I8M@Vp+;vjiUaoA=}t>WMYOQbktu0tz&9rO%| z+OYVw)PVJzJS^)Kz8ce&q16gtV9_YG1@B7Fg`KBYUD3)<@qS)8!f7O53MxF8*gcQM zV4Xu)>`Qet1JDrko~`&X=L2WQc>GBSxt%2+ ziQZPaF^o5%z8YSatqkBrH z2IH#0kc`=BoEdIiU|~fWm8lLlO9WN6sT^Ps-XV1}K%0qT?tsZvqqV-|6u&PK9dp>j zc4?SjCf_V4@>+$M2SQA?+S&Jaz6;!F@59)uqCc9h9coU$wReAN|8n@@x1AT=x9#1X zt#`G#TYNkzhO_f*lJ}xHEggYeRuar+BGN?B5un`7kFyZJy$oDV((&C$4@my8KQ|6@ zC>J#%F}uvl0^no#`01!S&3o_T9dNF^S&+7)H#Uzbmr8V^w?lETp+ahr3hGZAR%4X7 z8>$L!U|m{Kr#I}fxT#gaBr-pJ(?JSL{{##W%me<{|7dq->&Z{7axDM#6JSZefBa9p zc-ZeiLaXSkC)=X}Os;5f1^8GRS;4hx_55l62-%96*Wl3f`V+;%z8p>ZO!I(vHAC4z zMl1xc_oL75t*|vhspVn@9E-)q*=Umg58OXLD6y+Vuf517qAkTzRd`w`Q3|1N9(ZB5 zEjcR;9ps=;0+z>JKwr4fg<9_lfR_5{sNz84!0L7!G9XqMgima;E>bZ1f(Mdj zDR?mHz-z|~h+m&zb=brfLG{qYR*mLNxRFaaEHO!KkLk_P`SB<^O!V+;**JmpXI(V^7$LPe9|GQIAqdr8Okn)6u-t}H zzCyNr^+Y;C^qO5kwhaHtmV1K?Ldu9t6-fj6BTZ9o1hiIYE1=bQuqt~v66dgwqHsko zmj!m5or-xGga{}=CEml3p1CMT&U8mGTlNEW;hxMrd9zb-Ho6p)PZ#cOf({a<$7C4} zSz00va>*7niYWxs1|c|pLj@oFZLjmTbMWD}tOOI&1qt$_2M#|UA$QOT`3Vo4pTRC4DvyO7ito8SJ& zG7uT?Y}!kv)JqDZVVUjHx0)R&_j_-NLUGAGx5>Ew-_G#U`2WGv6W9Om;mXQq|G!W1 z$Nc|fg`@wUa{pWZc4aMD`D<%+y|wx%0w`{YvQFW&972Ld*XEQb4W0ql@GJxxaY-$Kmu7^#Ap>wTEk7|6g7I z-2XqtAM5|J!m0nSnCl-N!}Sj24f;xjHNR(1yepbbFtL$sNc_d znS+Jr3c42R?{%d^Ni14F3N0Gpr6pbNX1(i97=tD3-v5K;;1;a(KElFd^Ik~HXHD>I z&77*jR#KrGa3^9VO+7@x4$uXQ8RO#3GcfVs?f1zFUEC~Qis6b1Zh4Yjzzb=VrLE*!CH&

s_rTVte{LMV= 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 z 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

KvXrZ9*vT0+pdYBYf{lZi2F8l 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

<^UE#a!m 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

CrnX& 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 diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.spec b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.spec deleted file mode 100644 index 4b579e852..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.spec +++ /dev/null @@ -1,25 +0,0 @@ -Summary: LablGTK : an interface to the GIMP Tool Kit for OCaml -Name: lablgtk_20000829 -Version: 0.1.0 -Release: 1 -Copyright: LGPL -Group: Development/Libraries -Source: ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/lablgtk-20000829.tar.gz -%description -LablGTK is an interface to the GIMP Tool Kit for OCaml. - -%prep -%setup - -%build -make configure -make -make opt - -%install -make install - -%files -%doc CHANGES COPYING README doc - -/usr/lib/ocaml/lablgtk/ diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.src.rpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.src.rpm deleted file mode 100644 index 7ebeed110136907efb8c313187c03fcd156f73d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421518 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

vgDWcWjdj%~(93w$@@KygSm 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�u2jl4vX&rG7mh9`UE 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

2^D2 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 S_b27?C1@oHbb_=^g!F%x#RHZA diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/.cvsignore deleted file mode 100644 index da3c3c514..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/.cvsignore +++ /dev/null @@ -1,11 +0,0 @@ -.depend -config.make -var2conv -var2def -lablgtk -lablgtktop -lablgtktop_t -lablgtkrun -*_tags.c -*_tags.h - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/CHANGES b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/CHANGES deleted file mode 100644 index f5afeefe0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/CHANGES +++ /dev/null @@ -1,358 +0,0 @@ -$Id$ - -2000.8.29 - * bugs in color selection reported by Nicolas George - * changed the license - -2000.8.21 - * correct GtkStyle.set_font bug reported by Patrick Doane - -2000.7.27 - * changed GUtil.signal and GUtil.variable for better usability - * suppressed obsolete color settings in tooltips - -2000.6.19 - * patch by Michael Welsh for Gdk regions - -2000.6.15 - * add CList.set_cell_style/set_row_style - * change set_usize/set_uposition into set_geometry - * return an option rather than raise an exception for null pointers - * map empty strings to NULL when meaningful - * Gdk.Font.get_type/ascent/descent - -2000.6.14 - * add GDraw.optcolor for functions with a default (Jerome suggested) - -2000.6.8 - * apply Jerome Vouillon's patch - * changes in GtkSignal and GtkArgv.ml - -2000.6.7 - * create #misc#connect for widget generic signals - -2000.6.6 - * move notebook from GMisc to GPack - * #connect#event, #add_event, #misc#event, #misc#set_events_extension - transferred to #event su-bobject. - * #connect#drag -> #drag#connect. - * #get_type, #connect#disconnect, #connect#stop_emit transferred to #misc. - -2000.5.25 - * split misc.ml into gaux.ml and gpointer.ml - -2000.5.23 - * add GMisc.notebook#get_{tab,menu}_label. Rename nth_page to get_nth_page. - * modified ML signals in GUtil, to allow signals without widget. - -2000.5.22 - * Incompatible!: Change default for ~expand in Box.pack, - Pack.build_options, Table.build_options. Now defaults to false/`NONE. - This means that all options default to false/`NONE, except ~show - (true for all widgets except windows) and ~fill (always true but - effect controlled by ~expand). - * add GtkArgv.get_nativeint and GtkArgv.set_nativeint. - * make offset and length optional in GtkArgv.string_at_pointer. - -2000.5.10 - * rename GtkFrame to GtkBin and GFrame to GBin - * move socket to GBin - -2000.5.9 - * add arrow and image classes to GMisc - * add list and set_item_string methods to GEdit.combo - * add socket and plug classes to GContainer and GWindow - * two new examples: combo.ml and socket.ml - -2000.4.28 - * add GUtil.variable - -2000.4.27 - * add GtkXmHTML widget - -2000.4.26 - * release 1.00 - -2000.4.24 - * merge in changes for ocaml 3.00: label and syntax changes, autolink - * added better visual and colormap handling to Gdk - * GdkObj renamed to GDraw, GtkPixmap moved to GMisc - * Initialize Gtk in gtkInit.cmo/cmx, start a thread in gtkInitThread.cmo. - These are only included in toplevels, link them explicitely or call - GMain.Main.init and GtkThread.start otherwise. - * install to caml standard library - * many other forgotten changes... - -2000.3.02 - * move locale setting inside GtkMain.init, since it requires an - X display - -2000.2.24 - * add checks in add methods, to avoid critical errors - -2000.2.23 - * add dcalendar.ml (submitted by Ken Wakita) and csview.ml - * correct bug in GdkObj.pixmap#line - -1999.12.19 - * release lablGTK beta2 - -1999.12.16 - * upgraded unison to version 1.169 - * radio groups are of type {radio_menu_item,radio_button} obj option, - otherwise you could not use them several times - -1999.12.13 - * added GtkEdit::{insert_text,delete_text} signals - * better syntax highlighting and ergonomy in the browser's shell - -1999.11... - * switched to Objective Caml 3 - * constructors are no longer classes, but simple functions - -1999.10.29 - * changed GtkArgv.get_{string,pointer,object} to return option types - -1999.10.27 - * added radtest/CHANGES for cooperative editing on radtest - -1999.10.21 - * added a UI for unison - (ask bcpierce@saul.cis.upenn.edu about how to get unison) - -1999.10.20 - * corrected CList signals - * moved initialization out of the library, in gtkInit.cmo - -1999.10.15 - * release lablGTK beta1 - -1999.10.13 - * improved gtkThread.ml (no timer) - * modify Sys.argv in place (gtkMain.ml) - * add set_row_data and get_row_data for GtkCList - -1999.10.11 - * bugfixes in Makefile, radtest and lv - -1999.10.6 - * added Gdk.X.flush and Gdk.X.beep - * Gdk.X.flush is exported in GtkMain.Main - -1999.9.9 - * added font selection dialog - -1999.8.25 - * re-added connect#draw - -1999.8.10 - * reduced the number of methods in widget - * moved disconnect and stop_emit to object_signals - * moved ?:after to each signal - * more functions in applications/browser - -1999.8.9 - * Major change: created one set_param method by parameter, - rather than grouping them and using options. - You can get previous versions with tag "changing_set" - * corrected examples, radtest and browser for these changes - * a bit of clean-up in radtest (treew.ml and Makefile) - -1999.8.5 - * corrected a bad bug with indirected pointers in caml heap - -1999.7.15 - * add GdkKeysyms for exotic keysyms - -1999.7.14 - * moved Truecolor inside Gdk - * added COPYING - * prepared for release - -1999.7.12 - * clean up drag-and-drop - -1999.7.9 - * corrected bug in Container.children - * added ML signal support in GUtil - -1999.7.6 - * added DnD, improved radtest (Hubert) - * small corrections (Jacques) - -1999.7.1 - * added some gdk functions related window and ximage - * also added applications/lv, "labl image viewer" with - the camlimage library. - (JPF) - -1999.7.1 - * added applications/lablglade (Koji) - -1999.6.28 - * added applications/radtest (Hubert) - -1999.6.23 - * improved variant conversions for space. - -1999.6.22 - * updated olabl.patch. With this new version you can access fields - of records without opening modules. You can also use several times - the same label in one module. - * examples/GL/morph3d.ml uses it. - -1999.6.21 - * moved event functions to GdkEvent - -1999.6.20 - * new example: radtest.ml (Hubert) - -1999.6.18 - * added GL extension - -1999.6.15 - * grouped set methods into set_ - * added width and height option to all classes - * windows not shown are automatically destroyed by the GC - -1999.6.14 - * added GPack.layout, GPack.packer, GPack.paned, GMisc.notebook, - GRange.scale, GMisc.calendar - * added 3 examples - * #add_events only available on windowed widgets - -1999.6.11 - * added CList widget in GList module, and examples/clist.ml - * improved pixmap abstraction in GdkObj / GPix - -1999.6.10 - * suppressed almost all raw pointers from the code. Pointers are now - either boxed (second field of an abstract block) or marked (lowest - bit set to 1). - -1999.6.9 - * added GtkBase.Object.get_id and GObj.gtkobj#get_id to get an - unique identifier to gtk objects. Nice for hash-tables, etc... - * GUtil.memo is such an hash-table, allowing you to recover an - object's wrapper. - * added a show option to all classes, commanding whether the widget - should be shown immediately. It is by default true on all widgets - except in module GWindow. - * moved non-OO examples to examples/old. Do "cvs update -d old" to - get them. - * changes in Gdk/GtkData/GObj about styles. - -1999.6.8 - * updated olabl.patch - -1999.6.7 - * split gtk.ml into gtk*.ml - -1999.6.5 - * grouped Container focus operations in a "focus" subwidget - -1999.6.4 - * slightly reorganized widget grouping - -1999.6.3 - * disabled gtk_caller - * subtle hack to have GTree get the right interface - * switched completely to the new widget scheme (including examples) - * added olabl.patch to apply to olabl-2.02 to compile new sources - -1999.6.2 - * integrated changes from Hubert in Gtk, GtkObj and testgtk.ml - * added G* modules to replace GtkObj. "make lablgtk2" for it - -1999.6.1 - * added experimental GtkMenu for a cleaner approach to OO (Jacques) - -1999.5.31 - * GtkObj: list, tree and menu_shell inherit from item_container (Jacques) - * Argv.get_{string,pointer,object} may raise Null_pointer (Jacques) - * Support for creating new widgets (Hubert) - -1999.5.28 - * a few stylistic corrections - * added Packer in gtk.ml - -1999.5.27 - * new Gtk.Main.main Gtk.Main.quit and GtkThread.main (for modal windows) - * added x: and y: to Window.setter - * new methods: object#get_type widget#misc#lock_accelerators - widget#misc#visible widget#misc#parent container#set_focus#vadjustment - container#set_focus#hadjustment (could be container#set_focus#adjustment with a dir param) - window#set_modal window#set_position window#set_default_size - window#set_transient_for - menu#set_accel_group - * new classes: handle_box_skel handle_box_signals handle_box - bbox color_selection color_selection_dialog toolbar - and the corresponding modules in gtk.ml - new class type: is_window and method as_window - * new param tearoff: in new_menu_item - new param x: and y: modal: in Window.setter - * Widget.event and Widget.activate return bool - * new example: examples/testgtk.ml and test.xpm - (Hubert) - -1999.5.25 - * upgraded to gtk+-1.2.3 (all examples work) - * suppressed deprecated function calls and corrected examples - * added a patch to use toplevel threads in olabl-2.02 - -1998.12.13 - * upgraded to olabl-2.01 - -1998.12.9 - * replicated Main, Timeout and Grab to GtkObj (no need to open Gtk anymore) - * moved some non standard classes to GtkExt - -1998.12.8 - * added the first application, xxaplay, Playstation audio track - player for linux. (How architecture specific!) (Furuse) - -1998.12.8 - * more widgets in GtkObj - * refined memory management - * all variants in upper case - -1998.12.7 - * after deeper thought, re-introduced the connect sub-object - * simplified GtkObj: use simple inheritance and allow easy subtyping - * updated olabl.diffs for bugs in class functions parsing and printing - * add ThreadObj for concurrent object programming - (Jacques) - -1998.12.3 - * pousse.ml is now a reversi game (idea for strategy ?) - * solved startup bug (a value checker for ocaml is now available) - (Jacques) - -1998.12.2 - * added GdkObj for high level drawing primitives (Jacques) - -1998.11.30 - * removed cast checking for NULL valued widgets (ml_gtk.[ch]) - * module Arg is renamed as GtkArg because of the name corrision with - the module Arg in the standard library - * Makefile : native code compilation added - (Furuse) - -1998.11.29 - * renamed widget_ops sub-object to misc - * various improvements of set functions - (Jacques) - -1998.11.28 - * switched to object-oriented model. GtkObj is now the standard way - to access the library, but not all objects are ready (see README) - * removed inheritance in gtk.ml - (Jacques) - -1998.11.24 - * added inheritance in gtk.ml - -1998.11.22 - * added gtkObj.ml and examples/*_obj.ml - * various modifications in gtk.ml - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/COPYING b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/COPYING deleted file mode 100644 index d417b8b7e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/COPYING +++ /dev/null @@ -1,28 +0,0 @@ -This library is made available under the LGPL. -You should have got a copy of the LGPL with Objective Caml. -The LGPL applies to all the files in this directory, but not in -subdirectories. - -For the examples subdirectory, there is no specific licensing policy, -but you may freely take inspiration from the code, and copy parts of -it in your application. - -For the applications subdirectory, stricter rules apply: - -* You are free to do anything you want with this code as long as it is - for personal use. - -* Redistribution can only be "as is". Binary distribution and bug - fixes are allowed, but you cannot extensively modify the code - without asking the authors. - -The authors may choose to remove any of the above restrictions on a -per request basis. - -Authors: - Jacques Garrigue - Hubert Fauque - Jun Furuse - Koji Kagawa - -$Id$ \ No newline at end of file diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile deleted file mode 100644 index 23157f267..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile +++ /dev/null @@ -1,190 +0,0 @@ -# $Id$ -# Makefile for lablgtk. - -TARGETS = var2conv var2def lablgtktop lablgtktop_t lablgtkrun lablgtk - -all: $(TARGETS) - -opt: lablgtkopt - -configure: - @rm -f config.make - @$(MAKE) --no-print-directory -f configure.mk - -depend: - @rm -f .depend - @$(MAKE) --no-print-directory -f configure.mk .depend - -.depend config.make: - @$(MAKE) --no-print-directory -f configure.mk - -COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) -TOPLEVEL = ocamlmktop $(MLFLAGS) - -include config.make - -INSTALLDIR = $(LIBDIR)/lablgtk -LABLGLDIR = $(LIBDIR)/lablGL - -MLLIBS = lablgtk.cma -CLIBS = liblablgtk.a -MLLINK = unix.cma str.cma - -ifdef DEBUG -CFLAGS = -g $(GTKCFLAGS) -MLLINK += -cclib -lcamlrund -MLFLAGS = -g -else -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -endif - -THFLAGS = -thread -THLINK = unix.cma threads.cma - -ifdef USE_CC -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -endif - -ifdef USE_GL -MLFLAGS += -I $(LABLGLDIR) -MLLINK += lablgl.cma -MLLIBS += lablgtkgl.cma -CLIBS += liblablgtkgl.a -GLLINK = -cclib -llablgtkgl -cclib -lgtkgl -GLMLOBJS = glGtk.cmo -GLCOBJS = ml_gtkgl.o - -endif - -ifdef USE_GNOME -MLLIBS += lablgnome.cma -CLIBS += liblablgnome.a -GNOMEMLOBJS = gtkXmHTML.cmo gHtml.cmo -GNOMECOBJS = ml_gtkxmhtml.o -endif - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.c.o: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< -.var.h: - ./var2def < $< > $@ -.var.c: - ./var2conv < $< > $@ - -# Targets -COBJS = ml_gtk.o ml_gdk.o ml_glib.o wrappers.o -MLOBJS = gaux.cmo gpointer.cmo glib.cmo gdk.cmo gdkEvent.cmo gdkKeysyms.cmo \ - gtk.cmo gtkArgv.cmo gtkSignal.cmo \ - gtkData.cmo gtkBase.cmo gtkPack.cmo gtkButton.cmo \ - gtkMenu.cmo gtkMisc.cmo gtkWindow.cmo gtkTree.cmo gtkList.cmo \ - gtkBin.cmo gtkEdit.cmo gtkRange.cmo gtkMain.cmo gtkNew.cmo \ - gDraw.cmo \ - gObj.cmo gMain.cmo gData.cmo gContainer.cmo gPack.cmo gButton.cmo \ - gMenu.cmo gMisc.cmo gWindow.cmo gTree.cmo gList.cmo gBin.cmo \ - gEdit.cmo gRange.cmo gUtil.cmo -THOBJS = gtkThread.cmo -INITOBJS = gtkInit.cmo -THINITOBJS = gtkThInit.cmo -ALLOBJS = $(MLOBJS) $(GLMLOBJS) $(GNOMEMLOBJS) $(THOBJS) \ - $(INITOBJS) $(THINITOBJS) - -lablgtktop: $(CLIBS) $(MLLIBS) $(INITOBJS) - $(TOPLEVEL) -o $@ $(MLLINK) -ccopt -L. $(MLLIBS) $(INITOBJS) - -lablgtktop_t: $(CLIBS) $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS) - $(TOPLEVEL) $(THFLAGS) -o $@ $(THLINK) $(MLLINK) \ - -ccopt -L. $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS) - -lablgtk: Makefile config.make lablgtk.in - sed -e "s|@INSTALLDIR@|$(INSTALLDIR)|g" \ - -e "s|@LABLGLDIR@|$(LABLGLDIR)|g" \ - -e "s|@LIBDIR@|$(LIBDIR)|g" \ - < lablgtk.in > $@ - chmod 755 $@ - -lablgtkrun: $(CLIBS) $(MLLIBS) - $(LINKER) -o $@ -make-runtime $(MLLINK) -ccopt -L. $(MLLIBS) - -lablgtkopt: $(CLIBS) $(MLLIBS:.cma=.cmxa) $(INITOBJS:.cmo=.cmx) \ - $(THOBJS:.cmo=.cmx) - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR) - cp *.mli $(INSTALLDIR) - cp *.h $(INSTALLDIR) - cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR) - cp $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS) $(INSTALLDIR) - cp $(CLIBS) $(INSTALLDIR) - cp lablgtktop lablgtktop_t $(INSTALLDIR) - cp lablgtk lablgtkrun $(BINDIR) - if test -f lablgtk.cmxa; then \ - cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \ - $(INITOBJS:.cmo=.cmx) $(INITOBJS:.cmo=.o) $(INSTALLDIR); fi - if test -f gtkThread.cmx; then \ - cp $(THOBJS:.cmo=.cmx) $(THOBJS:.cmo=.o) $(INSTALLDIR); fi - -liblablgtk.a: $(COBJS) - ar rc $@ $(COBJS) - $(RANLIB) $@ -lablgtk.cma: $(MLOBJS) - $(LINKER) -a -custom -o $@ $(MLOBJS) \ - -cclib -llablgtk $(GTKLIBS) -lablgtk.cmxa: $(MLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) \ - -cclib -llablgtk $(GTKLIBS) - -liblablgtkgl.a: $(GLCOBJS) - ar rc $@ $(GLCOBJS) - $(RANLIB) $@ -lablgtkgl.cma: $(GLMLOBJS) - $(LINKER) -a -custom -o $@ $(GLLINK) $(GLMLOBJS) -lablgtkgl.cmxa: $(GLMLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(GLLINK) $(GLMLOBJS:.cmo=.cmx) - -liblablgnome.a: $(GNOMECOBJS) - ar rc $@ $(GNOMECOBJS) - $(RANLIB) $@ -lablgnome.cma: $(GNOMEMLOBJS) - $(LINKER) -a -custom -o $@ $(GNOMEMLOBJS) \ - -cclib -llablgnome $(GNOMELIBS) -lablgnome.cmxa: $(GNOMEMLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(GNOMEMLOBJS:.cmo=.cmx) \ - -cclib -llablgnome $(GNOMELIBS) - -gtkThread.cmo: gtkThread.ml - $(COMPILER) $(THFLAGS) gtkThread.ml - -gtkThread.cmx: gtkThread.ml - if test -f $(LIBDIR)/libthreadsnat.a; then \ - $(COMPOPT) $(THFLAGS) gtkThread.ml; fi - -var2conv: var2conv.cmo - $(LINKER) -o $@ var2conv.cmo - rm -f *_tags.c - -var2def: var2def.cmo - $(LINKER) -o $@ var2def.cmo - rm -f *_tags.h - -clean: - rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS) - -ml_gtk.o: gtk_tags.c gtk_tags.h ml_gtk.h ml_gdk.h wrappers.h -ml_gdk.o: gdk_tags.c gdk_tags.h ml_gdk.h wrappers.h -ml_gtkgl.o: gtkgl_tags.c gtkgl_tags.h ml_gtk.h ml_gdk.h wrappers.h -ml_gtkxmhtml.o: gtkxmhtml_tags.c gtkxmhtml_tags.h ml_gtk.h ml_gdk.h wrappers.h - -include .depend diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile.nt b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile.nt deleted file mode 100644 index bdf5b6cfd..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile.nt +++ /dev/null @@ -1,147 +0,0 @@ -# $Id$ -# Makefile for lablgtk. - -EXE = .exe -TARGETS = var2conv var2def lablgtk$(EXE) lablgtk_t$(EXE) \ - lablgtkrun$(EXE) config.make - -all: $(TARGETS) - -opt: lablgtkopt - -CAMLC = ocamlc -CAMLOPT = ocamlopt -COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -TOPLEVEL = ocamlmktop $(MLFLAGS) -### How to invoke the librarian -MKLIB=lib /nologo /debugtype:CV /out: - -!include config.make.nt - -INSTALLDIR = $(LIBDIR:/=\)\lablgtk -BINDIR = $(LIBDIR:/=\)\..\bin -LABLGLDIR = $(LIBDIR)/lablGL - -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -LDFLAGS = $(GTKLIBS) - -THFLAGS = -thread -THLIBS = unix.cma threads.cma - -!if $(USE_CC) == 1 -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -!else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -!endif - -!if $(USE_GL) == 1 -MLFLAGS = $(MLFLAGS) -I $(LIBDIR)/lablGL -GLLINK = -I $(LABLGLDIR) lablgl.cma -cclib -lgtkgl -GLMLOBJS = glGtk.cmo -GLCOBJS = ml_gtkgl.o -!endif - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .obj .var .h .opt .def -.c.obj: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< -.var.h: - ocamlrun ./var2def < $< > $@ -.var.c: - ocamlrun ./var2conv < $< > $@ - -# Targets -COBJS = ml_gtk.obj ml_gdk.obj ml_glib.obj wrappers.obj $(GLCOBJS) -OLDMLOBJS = misc.cmo glib.cmo gdk.cmo gtk.cmo gdkObj.cmo gtkObj.cmo gtkExt.cmo -MLOBJS = misc.cmo glib.cmo gdk.cmo gdkEvent.cmo gdkKeysyms.cmo \ - gtk.cmo gtkArgv.cmo gtkSignal.cmo \ - gtkData.cmo gtkBase.cmo gtkPack.cmo gtkButton.cmo \ - gtkMenu.cmo gtkMisc.cmo gtkWindow.cmo gtkTree.cmo gtkList.cmo \ - gtkFrame.cmo gtkEdit.cmo gtkRange.cmo gtkMain.cmo gtkNew.cmo \ - gDraw.cmo \ - gObj.cmo gMain.cmo gData.cmo gContainer.cmo gPack.cmo gButton.cmo \ - gMenu.cmo gMisc.cmo gWindow.cmo gTree.cmo gList.cmo gFrame.cmo \ - gEdit.cmo gRange.cmo gUtil.cmo $(GLMLOBJS) -THOBJS = gtkThread.cmo threadObj.cmo -INITOBJS = gtkInit.cmo -THINITOBJS = gtkThInit.cmo -ALLOBJS = $(MLOBJS) $(THOBJS) $(INITOBJS) $(THINITOBJS) - -lablgtk$(EXE): liblablgtk.lib lablgtk.cma $(INITOBJS) - $(TOPLEVEL) -custom -o $@ unix.cma str.cma $(GLLINK) \ - lablgtk.cma $(INITOBJS) - -lablgtk_t$(EXE): liblablgtk.lib lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS) - $(TOPLEVEL) -custom $(THFLAGS) -o $@ $(THLIBS) str.cma $(GLLINK) \ - lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS) - -lablgtkrun$(EXE): liblablgtk.lib lablgtk.cma - $(LINKER) -o $@ -make-runtime $(GLLINK) lablgtk.cma - -lablgtkopt: liblablgtk.lib lablgtk.cmxa gtkInit.cmx - -install: - if not exist $(INSTALLDIR) mkdir $(INSTALLDIR) - cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR) - cp *.mli $(INSTALLDIR) - cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR) - cp lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS) $(INSTALLDIR) - cp liblablgtk.lib $(INSTALLDIR) - cp lablgtk$(EXE) lablgtk_t$(EXE) lablgtkrun$(EXE) $(BINDIR) - if exist lablgtk.cmxa cp lablgtk.cmxa lablgtk.lib gtkInit.cmx gtkInit.obj $(INSTALLDIR) - -liblablgtk.lib: $(COBJS) - $(MKLIB)$@ $(COBJS) - -lablgtk.cma: $(MLOBJS) - $(LINKER) -a -custom -o $@ $(MLOBJS) \ - -cclib -llablgtk $(GTKLIBS) - -lablgtk.cmxa: $(MLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) \ - -cclib -llablgtk $(GTKLIBS) - -gtkThread.cmo: gtkThread.ml - $(COMPILER) $(THFLAGS) gtkThread.ml - -threadObj.cmo: threadObj.ml - $(COMPILER) $(THFLAGS) threadObj.ml - -gtkThread.cmx: gtkThread.ml - $(COMPOPT) $(THFLAGS) gtkThread.ml - -threadObj.cmx: threadObj.ml - $(COMPOPT) $(THFLAGS) threadObj.ml - -var2conv: var2conv.cmo - $(LINKER) -o $@ var2conv.cmo - rm -f *_tags.c - -var2def: var2def.cmo - $(LINKER) -o $@ var2def.cmo - rm -f *_tags.h - -clean: - rm -f *.cm* *.obj *.lib *_tags.[ch] $(TARGETS) - -config.make: config.make.nt - cp config.make.nt config.make - -depend .depend: - ocamldep *.ml *.mli > .depend - -ml_gtk.obj: gtk_tags.c gtk_tags.h ml_gtk.h ml_gdk.h wrappers.h -ml_gdk.obj: gdk_tags.c gdk_tags.h ml_gdk.h wrappers.h -ml_gtkgl.obj: gtkgl_tags.c gtkgl_tags.h ml_gtk.h ml_gdk.h wrappers.h - -!include .depend diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/README b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/README deleted file mode 100644 index eabc247ec..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/README +++ /dev/null @@ -1,238 +0,0 @@ - - LablGTK : an interface to the GIMP Tool Kit - - -Needed: - ocaml-3.00 - gtk-1.2.x - gmake (there is no standard for conditionals) - -How to compile: - - You should normally not need to modify Makefiles. - First type "make configure ". - Options are - USE_CC=1 to use $(CC) rather than gcc - USE_GL=1 to compile with OpenGL support (see lower) - - Then just type "make" to build the library and toplevels. - - On FreeBSD, you need to link with libxpg4.so for Japanese - output. - -Contents: - - gdk.ml low-level interface to the General Drawing Kit - gtk.ml low-level interface to the GIMP Tool Kit - gtkThread.ml main loop for threaded version - g[A-Z]*.ml object-oriented interface to GTK - gdkObj.ml object-oriented interface to GDK - - lablgtk toplevel - - examples/*.ml various examples - applications/* applications using the library - radtest a very experimental RAD for lablgtk - (by Hubert Fauque) - browser the begin of a port of OCamlBrowser - (by Jacques Garrigue) - unison a frontend for the Unison file synchronizer - see the README for details. - -Upgrading from lablgtk-1.00: - There are a few incompatibilities between this version and the - previous release. We do not describe them all, since usually a type - error message will inform you. - * all signals are no longer under #connect. #connect#event changed - to #event#connect, and some signals are under #misc#connect or - #grab#connect. See lower for a description of the new widget - structure. - * some defaults changed. In particular GPack.box#pack have now all - its parameter defaulting to false rather than true. See lower for - the new default policy. Beware that this does not cause type - errors, just changes in the aspect. - -How to run the examples: - In the examples directory just type: - lablgtk -labels examples/???.ml - - Before installing lablgtk you have to be more explicit: - ../lablgtktop -labels -w s -I .. ???.ml - -How to link them: - lablgtktop contains an extra module GtkInit, whose only contents is: - let locale = GtkMain.Main.init () - You must either add this line, or add this module to your link, - before calling any Gtk function. - ocamlc -I CAMLLIB/lablgtk -labels -w s lablgtk.cma gtkInit.cmo ???.ml -o ??? - -How to use the threaded toplevel: - - % lablgtk -thread (or lablgtktop_t before installing) - Objective Caml version 3.00 - - # let w = GWindow.window ~show:true ();; - - You should at once see a window appear. - The GTK main loop is running in a separate thread. Any command - is immediately reflected by the system. - Beware that you cannot switch threads within a callback, that is the - only thread related command you may use in a callback is - Thread.create. On the other hand, all newly created threads will be - run directly by the caml main loop, so they can use all thread - operations. - -Structure of the (raw) Gtk* modules: - - These modules are composed of one submodule for each class. - Signals specific to a widget are in a Signals inner module. - A setter function is defined to give access to set_param functions. - -Structure of the G[A-Z]* modules: - - These modules provide classes to wrap the raw function calls. - Here are the widget classes contained in each module: - - GDraw Gdk pixmaps, etc... - GObj gtkobj, widget, style - GData data, adjustment, tooltips - GContainer container, item_container - GWindow window, dialog, color_selection_dialog, file_selection, plug - GPack box, button_box, table, fixed, layout, packer, paned, notebook - GBin scrolled_window, event_box, handle_box, frame, - aspect_frame, viewport, socket - GButton button, toggle_button, check_button, radio_button, toolbar - GMenu menu_item, tearoff_item, check_menu_item, radio_menu_item, - menu_shell, menu, option_menu, menu_bar, factory - GMisc separator, statusbar, calendar, drawing_area, - misc, arrow, image, pixmap, label, tips_query, - color_selection, font_selection - GTree tree_item, tree - GList list_item, liste, clist - GEdit editable, entry, spin_button, combo, text - GRange progress, progress_bar, range, scale, scrollbar - - While subtyping follows the Gtk widget hierarchy, you cannot always - use width subtyping (i.e. #super is not unifiable with all the - subclasses of super). Still, it works for some classes, like - #widget and #container, and allows subtyping without coercion towards - these classes (cf. #container in pousse.ml for instance). - - Practically, each widget class is composed of: - * a coerce method, returning the object coerced to the type widget. - * an as_widget method, returning the raw Gtk widget used for packing, etc... - * a connect sub-object, allowing one to widget specific - signals (this is what prevents width subtyping in subclasses.) - * a misc sub-object, giving access to miscellanous functionality of - the basic gtkwidget class, and a misc#connect sub-object. - * an event sub-object, for Xevent related functions (only if the widget - has an Xwindow), and an event#connect sub-object. - * a grab sub-object, containing drag and drop functions, - and a grab#connect sub-object. - * widget specific methods. - - Here is a diagram of the structure (- for methods, + for sub-objects) - - coerce : widget - - as_widget : Gtk.widget obj - - destroy : unit -> unit - - ... - + connect : mywidget_signals - | - after - | - signal_name : callback:(... -> ...) -> GtkSignal.id - + misc : misc_ops - | - show, hide, disconnect, ... - | + connect : misc_signals - + event : event_ops - | - add, ... - | + connect : event_signals - + grab : grab_ops - | - ... - | + connect : grab_signals - - You create a widget by [. options ... ()]. - Many optional arguments are admitted. The last two of them, packing: - and show:, allow you respectively to call a function on your newly - created widget, and to decide wether to show it immediately or not. - By default all widgets except toplevel windows (GWindow module) are - shown immediately. - -Default arguments: - For many constructor or method arguments, default values are provided. - Generally, this default value is defined by GTK, and you must refer - to GTK's documentation. - For ML defined defaults, usually default values are either false, 0, None - or `NONE, according to the expected type. - Important exceptions are ~show, which default to true in all widgets - except those in GWindow, and ~fill, which defaults to true or `BOTH. - -Note about unit as method argument: - - O'Caml introduces no distinction between methods having side-effects - and methods simply returning a value. In practice, this is - confusing, and awkward when used as callbacks. For this reason all - methods having noticeable side-effects should take arguments, and - unit if they have no argument. - -Memory management: - - Important efforts have been dedicated to cooperate with Gtk's - reference counting mechanism. As a result you should generally be - able to use Gdk/Gtk data structures without caring about memory - management. They will be freed when nobody points to them any more. - This also means that you do not need to pay too much attention to - whether a data structure is still alive or not. If it is not, you - should get an error rather than a core dump. - The case of Gtk objects deserves special care. Since they are - interactive, we cannot just destroy them when they are no longer - referenced. They have to be explicitely destroyed. If a widget was - added to a container widget, it will automatically be destroyed when - its last container is destroyed. For this reason you need only - destroy toplevel widgets. - -GL extension - - You can use lablgtk in combination with LablGL - - * get and install lablGL 0.94 from - http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgl.html - * get and install gtkglarea-1.2.x.tar.gz from - http://www.student.oulu.fi/~jlof/gtkglarea/index.html - * reconfigure: "make configure USE_GL=1" - - You can then use the widget GlGtk.gl_area as an OpenGL window. - Some examples are in examples/GL, but basically any LablGL example - can be easily ported. - -Windows port - - A Win32 port is provided. In order to compile it, you will need to - get and unpack glib-dev-????.zip and gtk+-dev-????.zip from - http://www.gimp.org/~tml/gimp/win32/ - Do not forget to get also extralibs-dev-????.zip, since you will - need some of the DLLs. - - Edit config.make.nt, then, using Visual C++, - nmake -f Makefile.nt - nmake -f Makefile.nt opt (if you have an MS Assembler) - Then install with - nmake -f Makefile.nt install - - Since the link is dynamic you will also need to have in your path: - gnu-intl.dll (extralibs), glib-1.3.dll, module-1.3.dll and - gthread-1.3.dll (glib), gdk-1.3.dll and gtk-1.3.dll (gtk+). - - I checked with the 2000-02-02 version of these libraries. - Currently threads do not seem to work, but otherwise everything - seems OK. In particular, you can run all examples, and build - applications\unison as usual. - -Authors: - Jacques Garrigue - Hubert Fauque - Jun Furuse - Koji Kagawa - -Bug reports: - Jacques Garrigue - -$Id$ diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/.cvsignore deleted file mode 100644 index bc09d7470..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -olabl-src -browser -.depend \ No newline at end of file diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/Makefile b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/Makefile deleted file mode 100644 index 8822e4738..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -# $Id$ -# Makefile for lablgtk. - -all: browser - -CAMLC = ocamlc -CAMLOPT = ocamlopt -COMPILER = $(CAMLC) $(MLFLAGS) -labels -w s -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -labels -w s -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -RANLIB = ranlib - -include ../../config.make - -MLFLAGS = -I ../.. -I ocaml-src/utils -I ocaml-src/parsing - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< - -# Targets -MLOBJS = text.cmo file.cmo lexical.cmo shell.cmo editor.cmo - -browser: $(MLOBJS) - $(LINKER) -o $@ toplevellib.cma str.cma unix.cma \ - lablgtk.cma $(MLOBJS) - -clean: - rm -f *.cm* browser - -.depend: - ocamldep *.ml *.mli > .depend - -include .depend diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/README b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/README deleted file mode 100644 index a6f01cee8..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/README +++ /dev/null @@ -1,18 +0,0 @@ - Browser: the beginning of a port of the LablBrowser - -Installation: - -* make a link from a directory where the O'Labl distribution is - compiled to olabl-src - ln -s /path/to/olabl/ocaml-2.02 olabl-src - (actually only the directory parsing needs to be compiled) - -* just type "make" - -Use: - -When you run browser, you just get a customized editor with lexical -coloring. Nothing very fancy. -In the file menu you can open a shell, running olabl as subprocess. - -Jacques Garrigue \ No newline at end of file diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/TODO b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/TODO deleted file mode 100644 index 0c8bb5357..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/TODO +++ /dev/null @@ -1,4 +0,0 @@ -* lexical coloring (done) -* hyperlinks (call signal with position) -* keyboard popup -* protection diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/editor.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/editor.ml deleted file mode 100644 index d4adbfbc7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/editor.ml +++ /dev/null @@ -1,101 +0,0 @@ -(* $Id$ *) - -open GMain - -class editor ?packing ?show () = - let text = GEdit.text ~editable:true ?packing ?show () in -object (self) - inherit GObj.widget text#as_widget - - val mutable filename = None - - method text = text - - method load_file name = - try - let ic = open_in name in - filename <- Some name; - text#freeze (); - text#delete_text ~start:0 ~stop:text#length; - let buf = String.create 1024 and len = ref 0 in - while len := input ic ~buf ~pos:0 ~len:1024; !len > 0 do - if !len = 1024 then text#insert buf - else text#insert (String.sub buf ~pos:0 ~len:!len) - done; - text#set_point 0; - text#thaw (); - close_in ic - with _ -> () - - method open_file () = File.dialog ~title:"Open" ~callback:self#load_file () - - method save_file () = - File.dialog ~title:"Save" ?filename () ~callback: - begin fun name -> - try - if Sys.file_exists name then Sys.rename ~src:name ~dst:(name ^ "~"); - let oc = open_out name in - output_string oc (text#get_chars ~start:0 ~stop:text#length); - close_out oc - with _ -> prerr_endline "Save failed" - end -end - -open GdkKeysyms - -class editor_window ?(show=false) () = - let window = GWindow.window ~width:500 ~height:300 - ~title:"Program Editor" () in - let vbox = GPack.vbox ~packing:window#add () in - - let menubar = GMenu.menu_bar ~packing:vbox#pack () in - let factory = new GMenu.factory menubar in - let accel_group = factory#accel_group - and file_menu = factory#add_submenu "File" - and edit_menu = factory#add_submenu "Edit" - and comp_menu = factory#add_submenu "Compiler" in - - let hbox = GPack.hbox ~packing:vbox#add () in - let scrollbar = - GRange.scrollbar `VERTICAL ~packing:(hbox#pack ~from:`END) () - and editor = new editor ~packing:hbox#add () in -object (self) - inherit GObj.widget window#as_widget - - method window = window - method editor = editor - method show = window#show - - initializer - window#connect#destroy ~callback:Main.quit; - let factory = new GMenu.factory file_menu ~accel_group in - factory#add_item "Open..." ~key:_O ~callback:editor#open_file; - factory#add_item "Save..." ~key:_S ~callback:editor#save_file; - factory#add_item "Shell" - ~callback:(fun () -> Shell.f ~prog:"ocaml" ~title:"Objective Caml Shell"); - factory#add_separator (); - factory#add_item "Quit" ~key:_Q ~callback:window#destroy; - let factory = new GMenu.factory edit_menu ~accel_group in - factory#add_item "Copy" ~key:_C ~callback:editor#text#copy_clipboard; - factory#add_item "Cut" ~key:_X ~callback:editor#text#cut_clipboard; - factory#add_item "Paste" ~key:_V ~callback:editor#text#paste_clipboard; - factory#add_separator (); - factory#add_check_item "Word wrap" ~active:false - ~callback:editor#text#set_word_wrap; - factory#add_check_item "Read only" ~active:false - ~callback:(fun b -> editor#text#set_editable (not b)); - let factory = new GMenu.factory comp_menu ~accel_group in - factory#add_item "Lex" ~key:_L - ~callback:(fun () -> Lexical.tag editor#text); - window#add_accel_group accel_group; - editor#text#set_vadjustment scrollbar#adjustment; - if show then self#show () -end - -let _ = - Main.init (); - if Array.length Sys.argv >= 2 && Sys.argv.(1) = "-shell" then - Shell.f ~prog:"ocaml" ~title:"Objective Caml Shell" - else - ignore (new editor_window ~show:true ()); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/file.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/file.ml deleted file mode 100644 index e9c0cf34f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/file.ml +++ /dev/null @@ -1,13 +0,0 @@ -(* $Id$ *) - -let dialog ~title ~callback ?filename () = - let sel = - GWindow.file_selection ~title ~modal:true ?filename () in - sel#cancel_button#connect#clicked ~callback:sel#destroy; - sel#ok_button#connect#clicked ~callback: - begin fun () -> - let name = sel#get_filename in - sel#destroy (); - callback name - end; - sel#show () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/lexical.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/lexical.ml deleted file mode 100644 index 9acb9c060..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/lexical.ml +++ /dev/null @@ -1,155 +0,0 @@ -(* $Id$ *) - -open Parser - -type tags = [`none|`control|`define|`structure|`char|`infix|`label|`uident] - -let colors : (tags * GDraw.color) list Lazy.t = - lazy - (List.map ~f:(fun (tag,col) -> tag, `COLOR (GDraw.color (`NAME col))) - [ `control, "blue"; - `define, "forestgreen"; - `structure, "purple"; - `char, "gray40"; - `infix, "indianred4"; - `label, "brown"; - `uident, "midnightblue"; - `none, "black" ]) - -let tag ?(start=0) ?stop:pend (tw : GEdit.text) = - let pend = Gaux.default tw#length ~opt:pend in - let colors = Lazy.force colors in - tw#freeze (); - let position = tw#position - and text = tw#get_chars ~start ~stop:pend in - let replace ~start:pstart ~stop:pend ~tag = - if pend > pstart then begin - tw#delete_text ~start:(start+pstart) ~stop:(start+pend); - tw#set_point (start+pstart); - tw#insert ~foreground:(List.assoc tag colors) - (String.sub text ~pos:pstart ~len:(pend-pstart)); - end - and next_lf = ref (-1) in - let colorize ~start:rstart ~stop:rend ~tag = - let rstart = ref rstart in - while !rstart < rend do - if !next_lf < !rstart then begin - try next_lf := String.index_from text !rstart '\n' - with Not_found -> next_lf := pend-start - end; - replace ~start:!rstart ~stop:(min !next_lf rend) ~tag; - rstart := !next_lf + 1 - done - in - let buffer = Lexing.from_string text - and last = ref (EOF, 0, 0) - and last_pos = ref 0 in - try - while true do - let token = Lexer.token buffer - and start = Lexing.lexeme_start buffer - and stop = Lexing.lexeme_end buffer in - let tag = - match token with - AMPERAMPER - | AMPERSAND - | BARBAR - | DO | DONE - | DOWNTO - | ELSE - | FOR - | IF - | LAZY - | MATCH - | OR - | THEN - | TO - | TRY - | WHEN - | WHILE - | WITH - -> `control - | AND - | AS - | BAR - | CLASS - | CONSTRAINT - | EXCEPTION - | EXTERNAL - | FUN - | FUNCTION - | FUNCTOR - | IN - | INHERIT - | INITIALIZER - | LET - | METHOD - | MODULE - | MUTABLE - | NEW - | OF - | PARSER - | PRIVATE - | REC - | TYPE - | VAL - | VIRTUAL - -> `define - | BEGIN - | END - | INCLUDE - | OBJECT - | OPEN - | SIG - | STRUCT - -> `structure - | CHAR _ - | STRING _ - -> `char - | BACKQUOTE - | INFIXOP1 _ - | INFIXOP2 _ - | INFIXOP3 _ - | INFIXOP4 _ - | PREFIXOP _ - | QUESTION2 - | SHARP - -> `infix - | LABEL _ - | OPTLABEL _ - | QUESTION - | TILDE - -> `label - | UIDENT _ -> `uident - | LIDENT _ -> - begin match !last with - (QUESTION | TILDE), _, _ -> `label - | _ -> `none - end - | COLON -> - begin match !last with - LIDENT _, lstart, lstop when lstop = start -> - colorize ~tag:`none ~start:!last_pos ~stop:lstart; - colorize ~tag:`label ~start:lstart ~stop; - last_pos := stop; - `none - | _ -> `none - end - | EOF -> raise End_of_file - | _ -> `none - in - if tag <> `none then begin - colorize ~tag:`none ~start:!last_pos ~stop:start; - colorize ~tag ~start ~stop; - last_pos := stop - end; - last := (token, start, stop) - done - with exn -> - colorize ~tag:`none ~start:!last_pos ~stop:(pend-start); - tw#thaw (); - tw#set_position position; - tw#set_point position; - match exn with - End_of_file | Lexer.Error _ -> () - | _ -> raise exn diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/list2.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/list2.ml deleted file mode 100644 index 0d7798a6a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/list2.ml +++ /dev/null @@ -1,25 +0,0 @@ -(* $Id$ *) - -let rec cut l ~len = - if len <= 0 then [], l else - match l with - a::l -> - let l1, l2 = cut l ~len:(len-1) in - a::l1, l2 - | [] -> - invalid_arg "cut_list" - -let rec chop l ~len = - if l = [] then [] else - let l1, l2 = - try cut_list l ~len - with Invalid_argument _ -> l, [] - in - l1 :: chop l2 ~len - - -let rec iteri_aux ~f:f ~i = function - [] -> () - | a::l -> f ~i a; iteri_aux ~f:f ~i:(i+1) l - -let iteri = iteri_aux ~i:0 diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/shell.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/shell.ml deleted file mode 100644 index fbe0f92a0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/shell.ml +++ /dev/null @@ -1,255 +0,0 @@ -(* $Id$ *) - -open GdkKeysyms -open Printf - -(* Nice history class. May reuse *) - -class ['a] history () = object - val mutable history = ([] : 'a list) - val mutable count = 0 - method empty = history = [] - method add s = count <- 0; history <- s :: history - method previous = - let s = List.nth history count in - count <- (count + 1) mod List.length history; - s - method next = - let l = List.length history in - count <- (l + count - 1) mod l; - List.nth history ((l + count - 1) mod l) -end - -(* The shell class. Now encapsulated *) - -let protect f x = try f x with _ -> () - -class shell ~prog ~args ~env ?packing ?show () = - let (in2,out1) = Unix.pipe () - and (in1,out2) = Unix.pipe () - and (err1,err2) = Unix.pipe () in - let _ = List.iter ~f:Unix.set_nonblock [out1;in1;err1] in -object (self) - val textw = GEdit.text ~editable:true ?packing ?show () - val pid = Unix.create_process_env - ~prog ~args ~env ~stdin:in2 ~stdout:out2 ~stderr:err2 - val out = Unix.out_channel_of_descr out1 - val h = new history () - val mutable alive = true - val mutable reading = false - val mutable input_start = 0 - method text = textw - method alive = alive - method kill () = - textw#set_editable false; - if alive then begin - alive <- false; - protect close_out out; - List.iter ~f:(protect Unix.close) [in1; err1; in2; out2; err2]; - try - Unix.kill ~pid ~signal:Sys.sigkill; - Unix.waitpid pid ~mode:[]; () - with _ -> () - end - method interrupt () = - if alive then try - reading <- false; - Unix.kill ~pid ~signal:Sys.sigint - with Unix.Unix_error _ -> () - method send s = - if alive then try - output_string out s; - flush out - with Sys_error _ -> () - method private read ~fd ~len = - try - let buf = String.create len in - let len = Unix.read fd ~buf ~pos:0 ~len in - if len > 0 then begin - textw#set_position textw#length; - self#insert (String.sub buf ~pos:0 ~len); - input_start <- textw#position; - end; - len - with Unix.Unix_error _ -> 0 - method history (dir : [`next|`previous]) = - if not h#empty then begin - if reading then begin - textw#delete_text ~start:input_start ~stop:textw#position; - end else begin - reading <- true; - input_start <- textw#position - end; - self#insert (if dir = `previous then h#previous else h#next); - end - val mutable lexing = false - method private lex ~start ~stop:e = - if not lexing && start < e then begin - lexing <- true; - Lexical.tag textw ~start ~stop:e; - lexing <- false - end - method insert ?(lex=true) text = - let start = Text.line_start textw in - textw#insert text; - if lex then self#lex ~start ~stop:(Text.line_end textw) - method private keypress c = - if not reading & c > " " then begin - reading <- true; - input_start <- textw#position - end - method private return () = - if reading then reading <- false - else input_start <- textw#position; - textw#set_position (Text.line_end textw); - let s = textw#get_chars ~start:input_start ~stop:textw#position in - h#add s; - self#send s; - self#send "\n" - method private paste () = - if not reading then begin - reading <- true; - input_start <- textw#position; - end - initializer - textw#event#connect#key_press ~callback: - begin fun ev -> - if GdkEvent.Key.keyval ev = _Return && GdkEvent.Key.state ev = [] - then self#return () - else self#keypress (GdkEvent.Key.string ev); - false - end; - textw#connect#after#insert_text ~callback: - begin fun s ~pos -> - if not lexing then - self#lex ~start:(Text.line_start textw ~pos:(pos - String.length s)) - ~stop:(Text.line_end textw ~pos) - end; - textw#connect#after#delete_text ~callback: - begin fun ~start:pos ~stop -> - if not lexing then - self#lex ~start:(Text.line_start textw ~pos) - ~stop:(Text.line_end textw ~pos) - end; - textw#event#connect#button_press ~callback: - begin fun ev -> - if GdkEvent.Button.button ev = 2 then self#paste (); - false - end; - textw#connect#destroy ~callback:self#kill; - GMain.Timeout.add ~ms:100 ~callback: - begin fun () -> - if alive then begin - List.iter [err1;in1] - ~f:(fun fd -> while self#read ~fd ~len:1024 = 1024 do () done); - true - end else false - end; - () -end - -(* Specific use of shell, for LablBrowser *) - -let shells : (string * shell) list ref = ref [] - -(* Called before exiting *) -let kill_all () = - List.iter !shells ~f:(fun (_,sh) -> if sh#alive then sh#kill ()); - shells := [] -let _ = at_exit kill_all - -let get_all () = - let all = List.filter !shells ~f:(fun (_,sh) -> sh#alive) in - shells := all; - all - -let may_exec prog = - try Unix.access prog ~perm:[Unix.X_OK]; true - with Unix.Unix_error _ -> false - -let f ~prog ~title = - let progargs = - List.filter ~f:((<>) "") (Str.split ~sep:(Str.regexp " ") prog) in - if progargs = [] then () else - let prog = List.hd progargs in - let path = try Sys.getenv "PATH" with Not_found -> "/bin:/usr/bin" in - let exec_path = Str.split ~sep:(Str.regexp":") path in - let prog = - if not (Filename.is_implicit prog) then - if may_exec prog then prog else "" - else - List.fold_left exec_path ~init:"" ~f: - begin fun acc dir -> - if acc <> "" then acc else - let prog = Filename.concat dir prog in - if may_exec prog then prog else acc - end - in - if prog = "" then () else - let reg = Str.regexp "TERM=" in - let env = Array.map (Unix.environment ()) ~f: - begin fun s -> - if Str.string_match ~pat:reg s ~pos:0 then "TERM=dumb" else s - end in - let load_path = - List.flatten (List.map !Config.load_path ~f:(fun dir -> ["-I"; dir])) in - let args = Array.of_list (progargs @ load_path) in - let current_dir = ref (Unix.getcwd ()) in - - let tl = GWindow.window ~title ~width:500 ~height:300 () in - let vbox = GPack.vbox ~packing:tl#add () in - let menus = GMenu.menu_bar ~packing:vbox#pack () in - let f = new GMenu.factory menus in - let accel_group = f#accel_group in - let file_menu = f#add_submenu "File" - and history_menu = f#add_submenu "History" - and signal_menu = f#add_submenu "Signal" in - - let hbox = GPack.hbox ~packing:vbox#add () in - let sh = new shell ~prog ~env ~args ~packing:hbox#add () in - let sb = - GRange.scrollbar `VERTICAL ~adjustment:sh#text#vadjustment - ~packing:hbox#pack () - in - - let f = new GMenu.factory file_menu ~accel_group in - f#add_item "Use..." ~callback: - begin fun () -> - File.dialog ~title:"Use File" ~filename:(!current_dir ^ "/") () ~callback: - begin fun name -> - current_dir := Filename.dirname name; - if Filename.check_suffix name ".ml" then - let cmd = "#use \"" ^ name ^ "\";;\n" in - sh#insert cmd; - sh#send cmd - end - end; - f#add_item "Load..." ~callback: - begin fun () -> - File.dialog ~title:"Load File" ~filename:(!current_dir ^ "/") () ~callback: - begin fun name -> - current_dir := Filename.dirname name; - if Filename.check_suffix name ".cmo" or - Filename.check_suffix name ".cma" - then - let cmd = Printf.sprintf "#load \"%s\";;\n" name in - sh#insert cmd; - sh#send cmd - end - end; - f#add_item "Import path" ~callback: - begin fun () -> - List.iter (List.rev !Config.load_path) - ~f:(fun dir -> sh#send (sprintf "#directory \"%s\";;\n" dir)) - end; - f#add_item "Close" ~key:_W ~callback:tl#destroy; - - let h = new GMenu.factory history_menu ~accel_group ~accel_modi:[`MOD1] in - h#add_item "Previous" ~key:_P ~callback:(fun () -> sh#history `previous); - h#add_item "Next" ~key:_N ~callback:(fun () -> sh#history `next); - let s = new GMenu.factory signal_menu ~accel_group in - s#add_item "Interrupt" ~key:_G ~callback:sh#interrupt; - s#add_item "Kill" ~callback:sh#kill; - shells := (title, sh) :: !shells; - tl#add_accel_group accel_group; - tl#show () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/text.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/text.ml deleted file mode 100644 index 729f3105a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/text.ml +++ /dev/null @@ -1,16 +0,0 @@ -(* $Id$ *) - -open GEdit - -let line_start ?pos (text : GEdit.text) = - let pos = Gaux.default text#position ~opt:pos in - if pos = 0 then 0 else - let start = max 0 (pos-256) in - let buffer = text#get_chars ~start ~stop:pos in - try start + String.rindex buffer '\n' with Not_found -> 0 - -let line_end ?pos (text : GEdit.text) = - let pos = Gaux.default text#position ~opt:pos in - if pos = text#length then text#length else - let buffer = text#get_chars ~start:pos ~stop:(min text#length (pos+256)) in - try pos + String.index buffer '\n' with Not_found -> text#length diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/useunix.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/useunix.ml deleted file mode 100644 index c4860a8ca..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/useunix.ml +++ /dev/null @@ -1,36 +0,0 @@ -(* $Id$ *) - -open Unix - -let get_files_in_directory dir = - try - let dirh = opendir dir in - let rec get_them () = - try - let x = readdir dirh in - x :: get_them () - with - _ -> closedir dirh; [] - in - Sort.list ~order:(<) (get_them ()) - with Unix_error _ -> [] - -let is_directory name = - try - (stat name).st_kind = S_DIR - with _ -> false - -let get_directories_in_files ~path = - List.filter ~pred:(fun x -> is_directory (path ^ "/" ^ x)) - -(************************************************** Subshell call *) -let subshell ~cmd = - let rc = open_process_in ~cmd in - let rec it () = - try - let x = input_line rc in x :: it () - with _ -> [] - in - let answer = it () in - close_process_in rc; - answer diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/widgets.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/widgets.ml deleted file mode 100644 index c27ca9fbb..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/widgets.ml +++ /dev/null @@ -1,34 +0,0 @@ -(* $Id$ *) - -open GObj - -class multibox ~rows ~columns ?(row_view = rows) ?(col_view = columns) - ?packing ?show () = - let sw = - GBin.scrolled_window ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC - ?show ?packing () in - let vp = GBin.viewport ~shadow_type:`NONE ~packing:sw#add in - let table = - GPack.table ~columns ~rows ~homogeneous:true ~packing:vp#add () in - let buttons = - Array.init ~len:columns - ~f:(fun left -> Array.init ~len:rows - ~f:(fun top -> GButton.button - ~packing:(table#attach ~top ~left ~expand:`BOTH))) - in - object (self) - inherit widget sw#as_widget - method cell ~col ~row = buttons.(col).(row) - initializer - let id = ref None in - id := Some - (sw#event#connect#expose ~after:true ~callback: - begin fun _ -> - may !id ~f:sw#connect#disconnect; - let height = table#misc#allocation.height * row_view / rows - and width = table#misc#allocation.width * col_view / columns in - vp#misc#set_size ~height ~width; - false - end); - table#focus#set_vadjustment vp#vadjustment - end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/.cvsignore deleted file mode 100644 index a2d75da3e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.depend radtest -*_parser.ml *_parser.mli -*_lexer.ml diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/CHANGES b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/CHANGES deleted file mode 100644 index e87fc0a9a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/CHANGES +++ /dev/null @@ -1,16 +0,0 @@ -$Id$ - -2000.05.15 - * suppressed treew.ml; replaced by ti*.ml - * new widgets - * less known bugs (Hubert) -1999.10.28 - * re-objectified property.ml - * split it into common.mli/property.ml/propwin.ml - * undo is back - * restructure menu code in main.ml - -1999.10.27 - * simplified property.ml, and corrected treew.ml accordingly. - undo is temporarily disabled. - (Jacques) \ No newline at end of file diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/Makefile b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/Makefile deleted file mode 100644 index 175eca980..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/Makefile +++ /dev/null @@ -1,86 +0,0 @@ -# $Id$ -# Makefile for lablgtk. - -all: radtest - -CAMLC = ocamlc -CAMLOPT = ocamlopt -COMPILER = $(CAMLC) $(MLFLAGS) -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -RANLIB = ranlib - -include ../../config.make - -MLFLAGS = -I ../.. -w s -labels - -ifdef DEBUG -CFLAGS = -g $(GTKCFLAGS) -MLFLAGS += -g -else -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -endif - -ifdef USE_CC -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -endif - - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.c.o: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< - -# Targets -MLOBJS = utils.cmo property.cmo propwin.cmo \ - load_parser.cmo load_lexer.cmo tiBase.cmo tiContainer.cmo tiBin.cmo \ - tiButton.cmo tiEdit.cmo tiList.cmo tiMisc.cmo tiPack.cmo tiWindow.cmo \ - tiWidget.cmo main.cmo - -MLSRC = common.mli utils.ml property.mli property.ml propwin.mli \ - propwin.ml \ - load_parser.ml load_lexer.ml tiBase.ml tiContainer.ml tiBin.ml \ - tiButton.ml tiEdit.ml tiList.ml tiMisc.ml tiPack.ml tiWindow.ml \ - tiWidget.ml main.ml - -radtest: $(MLOBJS) libgtk2.a gtk2.cma - $(LINKER) -o $@ lablgtk.cma gtkInit.cmo -I . gtk2.cma \ - $(MLOBJS) - -radtestopt: $(MLOBJS:.cmo=.cmx) libgtk2.a gtk2.cmxa - $(LINKOPT) -o $@ lablgtk.cmxa gtkInit.cmx -I . gtk2.cmxa \ - $(MLOBJS:.cmo=.cmx) - -%.mli %.ml: %.mly - ocamlyacc $< - -%.ml: %.mll - ocamllex $< - -libgtk2.a: gtktree2.o gtktreeitem2.o ml_gtk2.o - ar rc $@ gtktree2.o gtktreeitem2.o ml_gtk2.o - $(RANLIB) $@ - -gtk2.cma: gtkTree2.cmo gTree2.cmo gToolbar2.cmo libgtk2.a - $(LINKER) -a -o $@ gtkTree2.cmo gTree2.cmo gToolbar2.cmo -cclib -lgtk2 - -gtk2.cmxa: gtkTree2.cmx gTree2.cmx gToolbar2.cmx libgtk2.a - $(LINKOPT) -a -o $@ gtkTree2.cmx gTree2.cmx gToolbar2.cmx -cclib -lgtk2 - -clean: - rm -f *.cm* *.o *.a radtest *_parser.ml *_parser.mli *_lexer.ml - -.depend: $(MLSRC) load_parser.ml load_lexer.ml - ocamldep $(MLSRC) load_parser.ml* load_lexer.ml* > .depend - -include .depend diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/README b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/README deleted file mode 100644 index aedd81fff..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/README +++ /dev/null @@ -1,24 +0,0 @@ - Lablgtk RADTEST - -Author: Hubert Fauque, hubert.fauque@inria.fr - -This is an experimental R.A.D. for Lablgtk. -You can compile it simply by make. - - -When radtest starts a new empty project is open; -you can add new windows to this project by clicking on -the window icon at the top of the icons window; - -by clicking on an item in the tree window with the third button -you can add or remove widgets; -you can also drag widgets from the icons window and drop them -on the tree; - -when a widget is selected (click on it in the tree) you can -move it up or down (if its parent is a box) with CTRL-up_arrow -or CTRL-down_arrow; with up_arrow and down_arrow you select -the widget which is above or below the currently selected widget; - -Save the project by Project->Save, and load an already existing -project by Project->Open. diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/aspectframe.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/aspectframe.xpm deleted file mode 100644 index 66b9ca14d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/aspectframe.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *aspectframe_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++ + +++++++++++", -"+...X X X X......O+", -"+.OOX X X XOOOOO.O+", -"+.OXX X X XXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXX.XXXXXXX.O+", -"+.OXXXXXX...XXXXXX.O+", -"+.OXXXXX.X.X.XXXXX.O+", -"+.OXXXXXXX.XXXXXXX.O+", -"+.OXX.XXXX.XXXX.XX.O+", -"+.OX.XXXXX.XXXXX.X.O+", -"+.O................O+", -"+.OX.XXXXX.XXXXX.X.O+", -"+.OXX.XXXX.XXXX.XX.O+", -"+.OXXXXX.X.X.XXXXX.O+", -"+.OXXXXXX...XXXXXX.O+", -"+.OXXXXXXX.XXXXXXX.O+", -"+..................O+", -"+OOOOOOOOOOOOOOOOOOO+", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/button.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/button.xpm deleted file mode 100644 index 62ebc3074..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/button.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *button_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+OOOOOOOOOOOOOOOOOO +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXX XXX XXX XX. +", -"+OXX XXX XX XX XXX. +", -"+OXX XXX XX X XXXX. +", -"+OXX XXX XX XXXXX. +", -"+OXX XXX XX X XXXX. +", -"+OXX XXX XX XX XXX. +", -"+OXXX XXX XXX XX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+O................. +", -"+ +", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/checkbutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/checkbutton.xpm deleted file mode 100644 index 314ba97ce..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/checkbutton.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *checkbutton_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++OOOOOOOOOOO+++++", -"+++++OXXXXXXXXX +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OX........ +++++", -"+++++O +++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/clist.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/clist.xpm deleted file mode 100644 index 2dd61e709..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/clist.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char *clist_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 3 1", -" c Gray0", -". c Gray87", -"X c Gray100", -/* pixels */ -" ", -" ...... ...... ..... ", -" ...... ...... ..... ", -" ...... ...... ..... ", -" ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" " -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/colorselection.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/colorselection.xpm deleted file mode 100644 index 0bb0914d0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/colorselection.xpm +++ /dev/null @@ -1,35 +0,0 @@ -/* XPM */ -static char *colorselection_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 8 1", -" c Gray0", -". c #7b7b7b", -"X c Blue", -"o c Green", -"O c Red", -"+ c #b3cece", -"@ c Gray100", -"# c None", -/* pixels */ -"#####################", -"#####################", -"#####################", -"#####################", -"#####################", -"##................###", -"##.@@@@@@@@@@@@@@. ##", -"##.@@@@@@@@@@@@@@. ##", -"##.@@@@@@@@@@@@@@. ##", -"##.@@OOOoooXXX@@@. ##", -"##.@@OOOoooXXX@@@. ##", -"##.@@OOOoooXXX@@@. ##", -"##.@@OOOoooXXX@@@. ##", -"##.@@@@@@@@@@@@@@. ##", -"##.@@@@@@@@@@@@@@. ##", -"##.@@@@@@@@@@@@@@. ##", -"##................ ##", -"### ##", -"#####################", -"#####################", -"#####################" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/combo.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/combo.xpm deleted file mode 100644 index 3b4055b6d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/combo.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char *combo_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 7 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray87", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@@@@@@@@@@", -" ", -" +++++++++++++ OOOOO ", -" +++++++++++++ OOO ", -" +++++++++++++ O ", -" ", -" +++++++++++++ ++++++", -" +++++++++++++ XXXXX ", -" +.........+++ XX XX ", -" +++++++++++++ X X ", -" +++++++++++++ XXXXX ", -" +...........+ ", -" +++++++++++++ +++++ ", -" +++++++++++++ +XXXX ", -" +..........++ ..... ", -" +++++++++++++ +++++ ", -" +++++++++++++ XXXXX ", -" +...........+ X X ", -" +++++++++++++ XX XX ", -" +++++++++++++ XXXXX ", -" " -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/common.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/common.mli deleted file mode 100644 index 7050f9f94..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/common.mli +++ /dev/null @@ -1,27 +0,0 @@ -(* $Id$ *) - -type range = - | String - | Int - | Float of float * float - | Enum of string list - | Enum_string of string list - | Adjust - | CList_titles - | File - -class type prop = - object - method name : string (* name of the property *) - method range : range (* range of its values *) - method get : string (* current value *) - method set : string -> unit (* change value *) - method modified : bool (* value differs from default *) - method code : string (* encoded value for the ml code *) - method save_code : string (* encoded value for saving *) - end - -class type tiwidget_base = object - method name : string - method proplist : (string * prop) list -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/entry.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/entry.xpm deleted file mode 100644 index cb9004135..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/entry.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *entry_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"....................O", -". XO", -". OOOOOOOOOOOOOOOOOXO", -". OOOOOOOOOOOOOOO OXO", -". OOOOOOOO OOOOOO OXO", -". OOOOOOOO OOOOOO OXO", -". OOO OO X OOO OXO", -". OO XOX O O. OO OXO", -". OOOOOO O OOO OO OXO", -". OOO O OOO OO OXO", -". OO XOO O OOO OO OXO", -". OO XOO O OO. OO OXO", -". OOO O OOO OXO", -". OOOOOOOOOOOOOOO OXO", -". OOOOOOOOOOOOOOOOOXO", -".XXXXXXXXXXXXXXXXXXXO", -"OOOOOOOOOOOOOOOOOOOOO", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/eventbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/eventbox.xpm deleted file mode 100644 index 73da445d2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/eventbox.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char *eventbox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 7 1", -" c Gray0", -". c #7b7b7b", -"X c Blue", -"o c #d6d6d6", -"O c #b3cece", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@X+@@@@@@@@@", -"@@@@@@@@@XX+@@@@@@@@@", -"@@@@@@@@XX+@@@@@@@@@@", -"@@@@@@@XX+@@@@@@@@@@@", -"@@@@@@@@XX+@@@@@@@@@@", -"@@@@@@@@@XX+@@@@@@@@@", -"@@@@@@@@@@XX+@@@@@@@@", -"@@@++++++XX++++++ @@@", -"@@@+ooooXX+ooooo. @@@", -"@@@+oooXX+oooooo. @@@", -"@@@+ooooXX+ooooo. @@@", -"@@@+oooooXX+oooo. @@@", -"@@@+ooooooXX+ooo. @@@", -"@@@+oooooooooooo. @@@", -"@@@+oooooooooooo. @@@", -"@@@+oooooooooooo. @@@", -"@@@+............. @@@", -"@@@ @@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/fixed.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/fixed.xpm deleted file mode 100644 index 2e0481572..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/fixed.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *fixed_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 4 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c Gray100", -/* pixels */ -"oooooooooooooooooooo ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXooooo XXXXXXXXXXX. ", -"oXoXXX. XXXXXXXXXXX. ", -"oXoXXX. XXXXooooo X. ", -"oXo.... XXXXoXXX. X. ", -"oX XXXXoXXX. X. ", -"oXXXXXXXXXXXo.... X. ", -"oXXXXXXXXXXX X. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXooooo XXXXXXXX. ", -"oXXXXoXXX. XXXXXXXX. ", -"oXXXXoXXX. XXXXXXXX. ", -"oXXXXo.... XXXXXXXX. ", -"oXXXX XXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"o................... ", -" " -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/frame.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/frame.xpm deleted file mode 100644 index c8c8b5782..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/frame.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *frame_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++ + +++++++++++", -"+...X X X X......O+", -"+.OOX X X XOOOOO.O+", -"+.OXX X X XXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+..................O+", -"+OOOOOOOOOOOOOOOOOOO+", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gToolbar2.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gToolbar2.ml deleted file mode 100644 index c2ad0a854..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gToolbar2.ml +++ /dev/null @@ -1,65 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkButton -open GObj -open GContainer -open GButton - -module Toolbar2 = struct - external set_text : [>`toolbar] obj -> string -> int -> unit = - "ml_gtk_toolbar2_set_text" - external set_icon : [>`toolbar] obj -> [>`widget] obj -> int -> unit = - "ml_gtk_toolbar2_set_icon" -end - -class toolbar2 obj = object - inherit container_full (obj : Gtk.toolbar obj) - method insert_widget ?tooltip ?tooltip_private ?pos w = - Toolbar.insert_widget obj (as_widget w) ?tooltip ?tooltip_private ?pos - - method insert_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new button - (Toolbar.insert_button obj ~kind:`BUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ()) - - method insert_toggle_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new toggle_button - (ToggleButton.cast - (Toolbar.insert_button obj ~kind:`TOGGLEBUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ())) - - method insert_radio_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new radio_button - (RadioButton.cast - (Toolbar.insert_button obj ~kind:`RADIOBUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ())) - - method insert_space = Toolbar.insert_space obj - - method set_orientation = Toolbar.set_orientation obj - method set_style = Toolbar.set_style obj - method set_space_size = Toolbar.set_space_size obj - method set_space_style = Toolbar.set_space_style obj - method set_tooltips = Toolbar.set_tooltips obj - method set_button_relief = Toolbar.set_button_relief obj - method button_relief = Toolbar.get_button_relief obj - method set_text = Toolbar2.set_text obj - method set_icon (icon : widget) = Toolbar2.set_icon obj icon#as_widget -end - -let toolbar2 ?(orientation=`HORIZONTAL) ?style - ?space_size ?space_style ?tooltips ?button_relief - ?border_width ?width ?height ?packing ?show () = - let w = Toolbar.create orientation ?style () in - Toolbar.set w ?space_size ?space_style ?tooltips ?button_relief; - Container.set w ?border_width ?width ?height; - pack_return (new toolbar2 w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.ml deleted file mode 100644 index 62c38ac57..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.ml +++ /dev/null @@ -1,78 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkTree2 -open GObj -open GContainer - -class tree_item_signals obj = object - inherit item_signals obj - method expand = GtkSignal.connect obj ~sgn:TreeItem.Signals.expand ~after - method collapse = GtkSignal.connect obj ~sgn:TreeItem.Signals.collapse ~after -end - -class tree_item obj = object - inherit container obj - method event = new GObj.event_ops obj - method as_item : Gtk.tree_item obj = obj - method connect = new tree_item_signals obj - method set_subtree (w : tree) = TreeItem.set_subtree obj w#as_tree - method remove_subtree () = TreeItem.remove_subtree obj - method expand () = TreeItem.expand obj - method collapse () = TreeItem.collapse obj - method subtree = - try Some(new tree (TreeItem.subtree obj)) with Gpointer.Null -> None -end - -and tree_signals obj = object - inherit container_signals obj - method selection_changed = - GtkSignal.connect obj ~sgn:Tree.Signals.selection_changed ~after - method select_child ~callback = - GtkSignal.connect obj ~sgn:Tree.Signals.select_child ~after - ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) - method unselect_child ~callback = - GtkSignal.connect obj ~sgn:Tree.Signals.unselect_child ~after - ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) -end - -and tree obj = object (self) - inherit [tree_item] item_container obj - method event = new GObj.event_ops obj - method as_tree = Tree.coerce obj - method insert w ~pos = Tree.insert obj w#as_item ~pos - method connect = new tree_signals obj - method clear_items = Tree.clear_items obj - method select_item = Tree.select_item obj - method unselect_item = Tree.unselect_item obj - method child_position (w : tree_item) = Tree.child_position obj w#as_item - method remove_items items = - Tree.remove_items obj - (List.map ~f:(fun (t : tree_item) -> t#as_item) items) -(* method set_selection_mode = Tree.set_selection_mode obj - method set_view_mode = Tree.set_view_mode obj *) - method set_view_lines = Tree.set_view_lines obj - method selection = - List.map ~f:(fun w -> self#wrap (Widget.coerce w)) (Tree.selection obj) - method item_up ~pos = - Tree.item_up obj pos - method private wrap w = - new tree_item (TreeItem.cast w) -end - -let tree_item ?label ?border_width ?width ?height ?packing ?show () = - let w = TreeItem.create ?label () in - Container.set w ?border_width ?width ?height; - let self = new tree_item w in - may packing ~f:(fun f -> (f self : unit)); - if show <> Some false then self#misc#show (); - self - -let tree ?selection_mode ?view_mode ?view_lines - ?border_width ?width ?height ?packing ?show () = - let w = Tree.create () in - Tree.set w ?selection_mode ?view_mode ?view_lines; - Container.set w ?border_width ?width ?height; - pack_return (new tree w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.mli deleted file mode 100644 index c288e157e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.mli +++ /dev/null @@ -1,73 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class tree_item_signals : 'a obj -> - object - inherit item_signals - constraint 'a = [>`treeitem|`container|`item|`widget] - val obj : 'a obj - method collapse : callback:(unit -> unit) -> GtkSignal.id - method expand : callback:(unit -> unit) -> GtkSignal.id - end - -class tree_item : Gtk.tree_item obj -> - object - inherit GContainer.container - val obj : Gtk.tree_item obj - method event : event_ops - method as_item : Gtk.tree_item obj - method collapse : unit -> unit - method connect : tree_item_signals - method expand : unit -> unit - method remove_subtree : unit -> unit - method set_subtree : tree -> unit - method subtree : tree option - end - -and tree_signals : Gtk.tree obj -> - object - inherit container_signals - val obj : Gtk.tree obj - method select_child : callback:(tree_item -> unit) -> GtkSignal.id - method selection_changed : callback:(unit -> unit) -> GtkSignal.id - method unselect_child : callback:(tree_item -> unit) -> GtkSignal.id - end - -and tree : Gtk.tree obj -> - object - inherit [tree_item] item_container - val obj : Gtk.tree obj - method event : event_ops - method as_tree : Gtk.tree obj - method child_position : tree_item -> int - method clear_items : start:int -> stop:int -> unit - method connect : tree_signals - method insert : tree_item -> pos:int -> unit - method item_up : pos:int -> unit - method remove_items : tree_item list -> unit - method select_item : pos:int -> unit - method selection : tree_item list -(* method set_selection_mode : Tags.selection_mode -> unit *) - method set_view_lines : bool -> unit -(* method set_view_mode : [`LINE|`ITEM] -> unit *) - method unselect_item : pos:int -> unit - method private wrap : Gtk.widget obj -> tree_item - end - -val tree_item : - ?label:string -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(tree_item -> unit) -> ?show:bool -> unit -> tree_item - -val tree : - ?selection_mode:Tags.selection_mode -> - ?view_mode:[`LINE|`ITEM] -> - ?view_lines:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> tree diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtkTree2.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtkTree2.ml deleted file mode 100644 index 46d1e0220..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtkTree2.ml +++ /dev/null @@ -1,82 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module TreeItem = struct - let cast w : tree_item obj = - if Object.is_a w "GtkTreeItem" then Obj.magic w - else invalid_arg "Gtk.TreeItem.cast" - external create : unit -> tree_item obj = "ml_gtk_tree_item2_new" - external create_with_label : string -> tree_item obj - = "ml_gtk_tree_item2_new_with_label" - let create ?label () = - match label with None -> create () - | Some label -> create_with_label label - external set_subtree : [>`treeitem] obj -> [>`widget] obj -> unit - = "ml_gtk_tree_item2_set_subtree" - external remove_subtree : [>`treeitem] obj -> unit - = "ml_gtk_tree_item2_remove_subtree" - external expand : [>`treeitem] obj -> unit - = "ml_gtk_tree_item2_expand" - external collapse : [>`treeitem] obj -> unit - = "ml_gtk_tree_item2_collapse" - external subtree : [>`treeitem] obj -> tree obj - = "ml_GTK_TREE_ITEM2_SUBTREE" - let subtree t = try subtree t with Gpointer.Null -> raise Not_found - module Signals = struct - open GtkSignal - let expand : ([>`treeitem],_) t = - { name = "expand"; marshaller = marshal_unit } - let collapse : ([>`treeitem],_) t = - { name = "collapse"; marshaller = marshal_unit } - end -end - -module Tree = struct - let cast w : tree obj = - if Object.is_a w "GtkTree" then Obj.magic w - else invalid_arg "Gtk.Tree.cast" - external coerce : [>`tree] obj -> tree obj = "%identity" - external create : unit -> tree obj = "ml_gtk_tree2_new" - external insert : [>`tree] obj -> [>`treeitem] obj -> pos:int -> unit - = "ml_gtk_tree2_insert" - external remove_items : [>`tree] obj -> [>`treeitem] obj list -> unit - = "ml_gtk_tree2_remove_items" - external clear_items : [>`tree] obj -> start:int -> stop:int -> unit - = "ml_gtk_tree2_clear_items" - external select_item : [>`tree] obj -> pos:int -> unit - = "ml_gtk_tree2_select_item" - external unselect_item : [>`tree] obj -> pos:int -> unit - = "ml_gtk_tree2_unselect_item" - external child_position : [>`tree] obj -> [>`treeitem] obj -> int - = "ml_gtk_tree2_child_position" -(* external set_selection_mode : [>`tree] obj -> selection_mode -> unit - = "ml_gtk_tree2_set_selection_mode" - external set_view_mode : [>`tree] obj -> [`LINE|`ITEM] -> unit - = "ml_gtk_tree2_set_view_mode" -*) - external set_view_lines : [>`tree] obj -> bool -> unit - = "ml_gtk_tree2_set_view_lines" - external selection : [>`tree] obj -> tree_item obj list = - "ml_gtk_tree2_selection" - external item_up : [>`tree] obj -> int -> unit = - "ml_gtk_tree2_item_up" - - let set ?selection_mode ?view_mode ?view_lines w = - let may_set f = may ~f:(f w) in -(* may_set set_selection_mode selection_mode; - may_set set_view_mode view_mode; *) - may_set set_view_lines view_lines - module Signals = struct - open GtkSignal - let selection_changed : ([>`tree],_) t = - { name = "selection_changed"; marshaller = marshal_unit } - let select_child : ([>`tree],_) t = - { name = "select_child"; marshaller = Widget.Signals.marshal } - let unselect_child : ([>`tree],_) t = - { name = "unselect_child"; marshaller = Widget.Signals.marshal } - end -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.c deleted file mode 100644 index db37a1f9d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.c +++ /dev/null @@ -1,1385 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "gtktree2.h" -#include "gtktreeitem2.h" - -#include -#include -#include - -enum { - SELECTION_CHANGED, - SELECT_CHILD, - UNSELECT_CHILD, - LAST_SIGNAL -}; - -static void gtk_tree2_class_init (GtkTree2Class *klass); -static void gtk_tree2_init (GtkTree2 *tree); -static void gtk_tree2_destroy (GtkObject *object); -static void gtk_tree2_map (GtkWidget *widget); -static void gtk_tree2_unmap (GtkWidget *widget); -static void gtk_tree2_realize (GtkWidget *widget); -static void gtk_tree2_draw (GtkWidget *widget, - GdkRectangle *area); -static gint gtk_tree2_expose (GtkWidget *widget, - GdkEventExpose *event); -static gint gtk_tree2_motion_notify (GtkWidget *widget, - GdkEventMotion *event); -static gint gtk_tree2_button_press (GtkWidget *widget, - GdkEventButton *event); -static gint gtk_tree2_button_release (GtkWidget *widget, - GdkEventButton *event); -static void gtk_tree2_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void gtk_tree2_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void gtk_tree2_add (GtkContainer *container, - GtkWidget *widget); -static void gtk_tree2_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data); - -static void gtk_real_tree2_select_child (GtkTree2 *tree, - GtkWidget *child); -static void gtk_real_tree2_unselect_child (GtkTree2 *tree, - GtkWidget *child); - -static GtkType gtk_tree2_child_type (GtkContainer *container); - -static GtkContainerClass *parent_class = NULL; -static guint tree_signals[LAST_SIGNAL] = { 0 }; - -GtkType -gtk_tree2_get_type (void) -{ - static GtkType tree_type = 0; - - if (!tree_type) - { - static const GtkTypeInfo tree_info = - { - "GtkTree2", - sizeof (GtkTree2), - sizeof (GtkTree2Class), - (GtkClassInitFunc) gtk_tree2_class_init, - (GtkObjectInitFunc) gtk_tree2_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - tree_type = gtk_type_unique (gtk_container_get_type (), &tree_info); - } - - return tree_type; -} - -static void -gtk_tree2_class_init (GtkTree2Class *class) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - - object_class = (GtkObjectClass*) class; - widget_class = (GtkWidgetClass*) class; - container_class = (GtkContainerClass*) class; - - parent_class = gtk_type_class (gtk_container_get_type ()); - - tree_signals[SELECTION_CHANGED] = - gtk_signal_new ("selection_changed", - GTK_RUN_FIRST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkTree2Class, selection_changed), - gtk_marshal_NONE__NONE, - GTK_TYPE_NONE, 0); - tree_signals[SELECT_CHILD] = - gtk_signal_new ("select_child", - GTK_RUN_FIRST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkTree2Class, select_child), - gtk_marshal_NONE__POINTER, - GTK_TYPE_NONE, 1, - GTK_TYPE_WIDGET); - tree_signals[UNSELECT_CHILD] = - gtk_signal_new ("unselect_child", - GTK_RUN_FIRST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkTree2Class, unselect_child), - gtk_marshal_NONE__POINTER, - GTK_TYPE_NONE, 1, - GTK_TYPE_WIDGET); - - gtk_object_class_add_signals (object_class, tree_signals, LAST_SIGNAL); - - object_class->destroy = gtk_tree2_destroy; - - widget_class->map = gtk_tree2_map; - widget_class->unmap = gtk_tree2_unmap; - widget_class->realize = gtk_tree2_realize; - widget_class->draw = gtk_tree2_draw; - widget_class->expose_event = gtk_tree2_expose; - widget_class->motion_notify_event = gtk_tree2_motion_notify; - widget_class->button_press_event = gtk_tree2_button_press; - widget_class->button_release_event = gtk_tree2_button_release; - widget_class->size_request = gtk_tree2_size_request; - widget_class->size_allocate = gtk_tree2_size_allocate; - - container_class->add = gtk_tree2_add; - container_class->remove = - (void (*)(GtkContainer *, GtkWidget *)) gtk_tree2_remove_item; - container_class->forall = gtk_tree2_forall; - container_class->child_type = gtk_tree2_child_type; - - class->selection_changed = NULL; - class->select_child = gtk_real_tree2_select_child; - class->unselect_child = gtk_real_tree2_unselect_child; -} - -static GtkType -gtk_tree2_child_type (GtkContainer *container) -{ - return GTK_TYPE_TREE_ITEM2; -} - -static void -gtk_tree2_init (GtkTree2 *tree) -{ - tree->children = NULL; - tree->root_tree = NULL; - tree->selection = NULL; - tree->tree_owner = NULL; - tree->selection_mode = GTK_SELECTION_SINGLE; - tree->indent_value = 9; - tree->current_indent = 0; - tree->level = 0; - tree->view_mode = GTK_TREE2_VIEW_LINE; - tree->view_line = 1; -} - -GtkWidget* -gtk_tree2_new (void) -{ - return GTK_WIDGET (gtk_type_new (gtk_tree2_get_type ())); -} - -void -gtk_tree2_append (GtkTree2 *tree, - GtkWidget *tree_item) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_tree2_insert (tree, tree_item, -1); -} - -void -gtk_tree2_prepend (GtkTree2 *tree, - GtkWidget *tree_item) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_tree2_insert (tree, tree_item, 0); -} - -void -gtk_tree2_insert (GtkTree2 *tree, - GtkWidget *tree_item, - gint position) -{ - gint nchildren; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - nchildren = g_list_length (tree->children); - - if ((position < 0) || (position > nchildren)) - position = nchildren; - - if (position == nchildren) - tree->children = g_list_append (tree->children, tree_item); - else - tree->children = g_list_insert (tree->children, tree_item, position); - - gtk_widget_set_parent (tree_item, GTK_WIDGET (tree)); - - if (GTK_WIDGET_REALIZED (tree_item->parent)) - gtk_widget_realize (tree_item); - - if (GTK_WIDGET_VISIBLE (tree_item->parent) && GTK_WIDGET_VISIBLE (tree_item)) - { - if (GTK_WIDGET_MAPPED (tree_item->parent)) - gtk_widget_map (tree_item); - - gtk_widget_queue_resize (tree_item); - } -} - -/* moves the pos child up in the tree */ -void -gtk_tree2_item_up (GtkTree2 *tree, - gint position) -{ - gint nchildren, i; - GList *children, *tmp; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - children = (tree->children); - nchildren = g_list_length (tree->children); - - if ((position < 1) || (position >= nchildren)) - return; - - for (i=1; i < position; i++) - children = (children->next); - - tmp = children->next; - if (position == 1) - { - tree->children = children->next; - children->next->prev = NULL; - } - else - { - children->prev->next = children->next; - children->next->prev = children->prev; - } - children->next = tmp->next; - children->prev = tmp; - if (tmp->next) - tmp->next->prev = children; - tmp->next = children; - - if (GTK_WIDGET_VISIBLE (tree)) - { -/* if (GTK_WIDGET_VISIBLE (GTK_WIDGET(children->data))) - gtk_widget_queue_resize (GTK_WIDGET(children->data)); - if (GTK_WIDGET_VISIBLE (GTK_WIDGET(tmp->data))) - gtk_widget_queue_resize (GTK_WIDGET(tmp->data)); -*/ - gtk_widget_queue_resize (GTK_WIDGET(tree)); - } -} - -static void -gtk_tree2_add (GtkContainer *container, - GtkWidget *child) -{ - GtkTree2 *tree; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_TREE2 (container)); - g_return_if_fail (GTK_IS_TREE_ITEM2 (child)); - - tree = GTK_TREE2 (container); - - tree->children = g_list_append (tree->children, child); - - gtk_widget_set_parent (child, GTK_WIDGET (container)); - - if (GTK_WIDGET_REALIZED (child->parent)) - gtk_widget_realize (child); - - if (GTK_WIDGET_VISIBLE (child->parent) && GTK_WIDGET_VISIBLE (child)) - { - if (GTK_WIDGET_MAPPED (child->parent)) - gtk_widget_map (child); - - gtk_widget_queue_resize (child); - } - - if (!tree->selection && (tree->selection_mode == GTK_SELECTION_BROWSE)) - gtk_tree2_select_child (tree, child); -} - -static gint -gtk_tree2_button_press (GtkWidget *widget, - GdkEventButton *event) -{ - GtkTree2 *tree; - GtkWidget *item; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - tree = GTK_TREE2 (widget); - item = gtk_get_event_widget ((GdkEvent*) event); - - while (item && !GTK_IS_TREE_ITEM2 (item)) - item = item->parent; - - if (!item || (item->parent != widget)) - return FALSE; - - switch(event->button) - { - case 1: - gtk_tree2_select_child (tree, item); - break; - case 2: - if(GTK_TREE_ITEM2(item)->subtree) gtk_tree_item2_expand(GTK_TREE_ITEM2(item)); - break; - case 3: - if(GTK_TREE_ITEM2(item)->subtree) gtk_tree_item2_collapse(GTK_TREE_ITEM2(item)); - break; - } - - return TRUE; -} - -static gint -gtk_tree2_button_release (GtkWidget *widget, - GdkEventButton *event) -{ - GtkTree2 *tree; - GtkWidget *item; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - tree = GTK_TREE2 (widget); - item = gtk_get_event_widget ((GdkEvent*) event); - - return TRUE; -} - -gint -gtk_tree2_child_position (GtkTree2 *tree, - GtkWidget *child) -{ - GList *children; - gint pos; - - - g_return_val_if_fail (tree != NULL, -1); - g_return_val_if_fail (GTK_IS_TREE2 (tree), -1); - g_return_val_if_fail (child != NULL, -1); - - pos = 0; - children = tree->children; - - while (children) - { - if (child == GTK_WIDGET (children->data)) - return pos; - - pos += 1; - children = children->next; - } - - - return -1; -} - -void -gtk_tree2_clear_items (GtkTree2 *tree, - gint start, - gint end) -{ - GtkWidget *widget; - GList *clear_list; - GList *tmp_list; - guint nchildren; - guint index; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - nchildren = g_list_length (tree->children); - - if (nchildren > 0) - { - if ((end < 0) || (end > nchildren)) - end = nchildren; - - if (start >= end) - return; - - tmp_list = g_list_nth (tree->children, start); - clear_list = NULL; - index = start; - while (tmp_list && index <= end) - { - widget = tmp_list->data; - tmp_list = tmp_list->next; - index++; - - clear_list = g_list_prepend (clear_list, widget); - } - - gtk_tree2_remove_items (tree, clear_list); - } -} - -static void -gtk_tree2_destroy (GtkObject *object) -{ - GtkTree2 *tree; - GtkWidget *child; - GList *children; - - g_return_if_fail (object != NULL); - g_return_if_fail (GTK_IS_TREE2 (object)); - - tree = GTK_TREE2 (object); - - children = tree->children; - while (children) - { - child = children->data; - children = children->next; - - gtk_widget_ref (child); - gtk_widget_unparent (child); - gtk_widget_destroy (child); - gtk_widget_unref (child); - } - - g_list_free (tree->children); - tree->children = NULL; - - if (tree->root_tree == tree) - { - GList *node; - for (node = tree->selection; node; node = node->next) - gtk_widget_unref ((GtkWidget *)node->data); - g_list_free (tree->selection); - tree->selection = NULL; - } - - if (GTK_OBJECT_CLASS (parent_class)->destroy) - (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); -} - -static void -gtk_tree2_draw (GtkWidget *widget, - GdkRectangle *area) -{ - GtkTree2 *tree; - GtkWidget *subtree; - GtkWidget *child; - GdkRectangle child_area; - GList *children; - - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - g_return_if_fail (area != NULL); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - tree = GTK_TREE2 (widget); - - children = tree->children; - while (children) - { - child = children->data; - children = children->next; - - if (gtk_widget_intersect (child, area, &child_area)) - gtk_widget_draw (child, &child_area); - - if((subtree = GTK_TREE_ITEM2(child)->subtree) && - GTK_WIDGET_VISIBLE(subtree) && - gtk_widget_intersect (subtree, area, &child_area)) - gtk_widget_draw (subtree, &child_area); - } - } - -} - -static gint -gtk_tree2_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - GtkTree2 *tree; - GtkWidget *child; - GdkEventExpose child_event; - GList *children; - - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - tree = GTK_TREE2 (widget); - - child_event = *event; - - children = tree->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_NO_WINDOW (child) && - gtk_widget_intersect (child, &event->area, &child_event.area)) - gtk_widget_event (child, (GdkEvent*) &child_event); - } - } - - - return FALSE; -} - -static void -gtk_tree2_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - GtkTree2 *tree; - GtkWidget *child; - GList *children; - - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_TREE2 (container)); - g_return_if_fail (callback != NULL); - - tree = GTK_TREE2 (container); - children = tree->children; - - while (children) - { - child = children->data; - children = children->next; - - (* callback) (child, callback_data); - - if (include_internals && GTK_TREE_ITEM2(child)->subtree) - (* callback) (GTK_TREE_ITEM2(child)->subtree, callback_data); - } -} - -static void -gtk_tree2_map (GtkWidget *widget) -{ - GtkTree2 *tree; - GtkWidget *child; - GList *children; - - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - - GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED); - tree = GTK_TREE2 (widget); - - if(GTK_IS_TREE2(widget->parent)) - { - /* set root tree for this tree */ - tree->root_tree = GTK_TREE2(widget->parent)->root_tree; - - tree->level = GTK_TREE2(GTK_WIDGET(tree)->parent)->level+1; - tree->indent_value = GTK_TREE2(GTK_WIDGET(tree)->parent)->indent_value; - tree->current_indent = GTK_TREE2(GTK_WIDGET(tree)->parent)->current_indent + - tree->indent_value; - tree->view_mode = GTK_TREE2(GTK_WIDGET(tree)->parent)->view_mode; - tree->view_line = GTK_TREE2(GTK_WIDGET(tree)->parent)->view_line; - } - else - tree->root_tree = tree; - - children = tree->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_VISIBLE (child) && - !GTK_WIDGET_MAPPED (child)) - gtk_widget_map (child); - - if (GTK_TREE_ITEM2 (child)->subtree) - { - child = GTK_WIDGET (GTK_TREE_ITEM2 (child)->subtree); - - if (GTK_WIDGET_VISIBLE (child) && !GTK_WIDGET_MAPPED (child)) - gtk_widget_map (child); - } - } - - gdk_window_show (widget->window); -} - -static gint -gtk_tree2_motion_notify (GtkWidget *widget, - GdkEventMotion *event) -{ - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - -#ifdef TREE_DEBUG - g_message("gtk_tree2_motion_notify\n"); -#endif /* TREE_DEBUG */ - - return FALSE; -} - -static void -gtk_tree2_realize (GtkWidget *widget) -{ - GdkWindowAttr attributes; - gint attributes_mask; - - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - - GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); - - attributes.window_type = GDK_WINDOW_CHILD; - attributes.x = widget->allocation.x; - attributes.y = widget->allocation.y; - attributes.width = widget->allocation.width; - attributes.height = widget->allocation.height; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gtk_widget_get_visual (widget); - attributes.colormap = gtk_widget_get_colormap (widget); - attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK; - - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - - widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); - gdk_window_set_user_data (widget->window, widget); - - widget->style = gtk_style_attach (widget->style, widget->window); - gdk_window_set_background (widget->window, - &widget->style->base[GTK_STATE_NORMAL]); -} - -void -gtk_tree2_remove_item (GtkTree2 *container, - GtkWidget *widget) -{ - GList *item_list; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_TREE2 (container)); - g_return_if_fail (widget != NULL); - g_return_if_fail (container == GTK_TREE2 (widget->parent)); - - item_list = g_list_append (NULL, widget); - - gtk_tree2_remove_items (GTK_TREE2 (container), item_list); - - g_list_free (item_list); -} - -/* used by gtk_tree2_remove_items to make the function independant of - order in list of items to remove. - Sort item bu depth in tree */ -static gint -gtk_tree2_sort_item_by_depth(GtkWidget* a, GtkWidget* b) -{ - if((GTK_TREE2(a->parent)->level) < (GTK_TREE2(b->parent)->level)) - return 1; - if((GTK_TREE2(a->parent)->level) > (GTK_TREE2(b->parent)->level)) - return -1; - - return 0; -} - -void -gtk_tree2_remove_items (GtkTree2 *tree, - GList *items) -{ - GtkWidget *widget; - GList *selected_widgets; - GList *tmp_list; - GList *sorted_list; - GtkTree2 *real_tree; - GtkTree2 *root_tree; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - -#ifdef TREE_DEBUG - g_message("+ gtk_tree2_remove_items [ tree %#x items list %#x ]\n", (int)tree, (int)items); -#endif /* TREE_DEBUG */ - - /* We may not yet be mapped, so we actively have to find our - * root tree - */ - if (tree->root_tree) - root_tree = tree->root_tree; - else - { - GtkWidget *tmp = GTK_WIDGET (tree); - while (tmp->parent && GTK_IS_TREE2 (tmp->parent)) - tmp = tmp->parent; - - root_tree = GTK_TREE2 (tmp); - } - - tmp_list = items; - selected_widgets = NULL; - sorted_list = NULL; - widget = NULL; - -#ifdef TREE_DEBUG - g_message("* sort list by depth\n"); -#endif /* TREE_DEBUG */ - - while (tmp_list) - { - -#ifdef TREE_DEBUG - g_message ("* item [%#x] depth [%d]\n", - (int)tmp_list->data, - (int)GTK_TREE2(GTK_WIDGET(tmp_list->data)->parent)->level); -#endif /* TREE_DEBUG */ - - sorted_list = g_list_insert_sorted(sorted_list, - tmp_list->data, - (GCompareFunc)gtk_tree2_sort_item_by_depth); - tmp_list = g_list_next(tmp_list); - } - -#ifdef TREE_DEBUG - /* print sorted list */ - g_message("* sorted list result\n"); - tmp_list = sorted_list; - while(tmp_list) - { - g_message("* item [%#x] depth [%d]\n", - (int)tmp_list->data, - (int)GTK_TREE2(GTK_WIDGET(tmp_list->data)->parent)->level); - tmp_list = g_list_next(tmp_list); - } -#endif /* TREE_DEBUG */ - -#ifdef TREE_DEBUG - g_message("* scan sorted list\n"); -#endif /* TREE_DEBUG */ - - tmp_list = sorted_list; - while (tmp_list) - { - widget = tmp_list->data; - tmp_list = tmp_list->next; - -#ifdef TREE_DEBUG - g_message("* item [%#x] subtree [%#x]\n", - (int)widget, (int)GTK_TREE_ITEM2_SUBTREE(widget)); -#endif /* TREE_DEBUG */ - - /* get real owner of this widget */ - real_tree = GTK_TREE2(widget->parent); -#ifdef TREE_DEBUG - g_message("* subtree having this widget [%#x]\n", (int)real_tree); -#endif /* TREE_DEBUG */ - - - if (widget->state == GTK_STATE_SELECTED) - { - selected_widgets = g_list_prepend (selected_widgets, widget); -#ifdef TREE_DEBUG - g_message("* selected widget - adding it in selected list [%#x]\n", - (int)selected_widgets); -#endif /* TREE_DEBUG */ - } - - /* remove this item from its real parent */ -#ifdef TREE_DEBUG - g_message("* remove widget from its owner tree\n"); -#endif /* TREE_DEBUG */ - real_tree->children = g_list_remove (real_tree->children, widget); - - /* remove subtree associate at this item if it exist */ - if(GTK_TREE_ITEM2(widget)->subtree) - { -#ifdef TREE_DEBUG - g_message("* remove subtree associate at this item [%#x]\n", - (int) GTK_TREE_ITEM2(widget)->subtree); -#endif /* TREE_DEBUG */ - if (GTK_WIDGET_MAPPED (GTK_TREE_ITEM2(widget)->subtree)) - gtk_widget_unmap (GTK_TREE_ITEM2(widget)->subtree); - - gtk_widget_unparent (GTK_TREE_ITEM2(widget)->subtree); - GTK_TREE_ITEM2(widget)->subtree = NULL; - } - - /* really remove widget for this item */ -#ifdef TREE_DEBUG - g_message("* unmap and unparent widget [%#x]\n", (int)widget); -#endif /* TREE_DEBUG */ - if (GTK_WIDGET_MAPPED (widget)) - gtk_widget_unmap (widget); - - gtk_widget_unparent (widget); - - /* delete subtree if there is no children in it */ -/* HF supprime */ -/* if(real_tree->children == NULL && - real_tree != root_tree) - { -*/ -#ifdef TREE_DEBUG - g_message("* owner tree don't have children ... destroy it\n"); -#endif /* TREE_DEBUG */ -/* - gtk_tree_item2_remove_subtree(GTK_TREE_ITEM2(real_tree->tree_owner)); - } -*/ -#ifdef TREE_DEBUG - g_message("* next item in list\n"); -#endif /* TREE_DEBUG */ - } - - if (selected_widgets) - { -#ifdef TREE_DEBUG - g_message("* scan selected item list\n"); -#endif /* TREE_DEBUG */ - tmp_list = selected_widgets; - while (tmp_list) - { - widget = tmp_list->data; - tmp_list = tmp_list->next; - -#ifdef TREE_DEBUG - g_message("* widget [%#x] subtree [%#x]\n", - (int)widget, (int)GTK_TREE_ITEM2_SUBTREE(widget)); -#endif /* TREE_DEBUG */ - - /* remove widget of selection */ - root_tree->selection = g_list_remove (root_tree->selection, widget); - - /* unref it to authorize is destruction */ - gtk_widget_unref (widget); - } - - /* emit only one selection_changed signal */ - gtk_signal_emit (GTK_OBJECT (root_tree), - tree_signals[SELECTION_CHANGED]); - } - -#ifdef TREE_DEBUG - g_message("* free selected_widgets list\n"); -#endif /* TREE_DEBUG */ - g_list_free (selected_widgets); - g_list_free (sorted_list); - - if (root_tree->children && !root_tree->selection && - (root_tree->selection_mode == GTK_SELECTION_BROWSE)) - { -#ifdef TREE_DEBUG - g_message("* BROWSE mode, select another item\n"); -#endif /* TREE_DEBUG */ - widget = root_tree->children->data; - gtk_tree2_select_child (root_tree, widget); - } - - if (GTK_WIDGET_VISIBLE (root_tree)) - { -#ifdef TREE_DEBUG - g_message("* query queue resizing for root_tree\n"); -#endif /* TREE_DEBUG */ - gtk_widget_queue_resize (GTK_WIDGET (root_tree)); - } -} - -void -gtk_tree2_select_child (GtkTree2 *tree, - GtkWidget *tree_item) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_signal_emit (GTK_OBJECT (tree), tree_signals[SELECT_CHILD], tree_item); -} - -void -gtk_tree2_select_next_child (GtkTree2 *tree, - GtkWidget *tree_item, gboolean descend) -{ - GList *children; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - if (descend && GTK_TREE2(GTK_TREE_ITEM2(tree_item)->subtree)->children) - { - gtk_signal_emit (GTK_OBJECT (GTK_TREE_ITEM2(tree_item)->subtree), tree_signals[SELECT_CHILD], GTK_TREE2(GTK_TREE_ITEM2(tree_item)->subtree)->children->data); - return; - } - - children = tree->children; - while (children) - { - if (tree_item == GTK_WIDGET (children->data)) - break; - - children = children->next; - } - if (!children) return; - - if (children->next) - gtk_signal_emit (GTK_OBJECT (tree), tree_signals[SELECT_CHILD], children->next->data); - else if (tree != tree->root_tree) - { - children = GTK_TREE2(GTK_WIDGET(tree)->parent)->children; - gtk_tree2_select_next_child (GTK_TREE2(GTK_WIDGET(tree)->parent), tree->tree_owner, FALSE); - } - -} - -/* we know that tree is not the roor_tree and that - tree_items always have subtrees */ -void -gtk_tree2_select_prev_child (GtkTree2 *tree, - GtkWidget *tree_item) -{ - GList *children; - GtkTreeItem2 *tree_item2; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - - children = tree->children; - while (children) - { - if (tree_item == GTK_WIDGET (children->data)) - break; - - children = children->next; - } - if (!children) return; - - if (children = children->prev) - { - tree_item2 = GTK_TREE_ITEM2(children->data); - while (GTK_TREE2(tree_item2->subtree)->children) - { - children = GTK_TREE2(tree_item2->subtree)->children; - while (children->next) - children = children->next; - tree_item2 = GTK_TREE_ITEM2(children->data); - } - gtk_signal_emit (GTK_OBJECT (GTK_WIDGET(tree_item2)->parent), tree_signals[SELECT_CHILD], tree_item2); - } - else - { - gtk_signal_emit (GTK_OBJECT (GTK_WIDGET(tree)->parent), tree_signals[SELECT_CHILD], tree->tree_owner); - } - -} - -void -gtk_tree2_select_item (GtkTree2 *tree, - gint item) -{ - GList *tmp_list; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tmp_list = g_list_nth (tree->children, item); - if (tmp_list) - gtk_tree2_select_child (tree, GTK_WIDGET (tmp_list->data)); - -} - -static void -gtk_tree2_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkTree2 *tree; - GtkWidget *child, *subtree; - GtkAllocation child_allocation; - GList *children; - - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - g_return_if_fail (allocation != NULL); - - tree = GTK_TREE2 (widget); - - widget->allocation = *allocation; - if (GTK_WIDGET_REALIZED (widget)) - gdk_window_move_resize (widget->window, - allocation->x, allocation->y, - allocation->width, allocation->height); - - if (tree->children) - { - child_allocation.x = GTK_CONTAINER (tree)->border_width; - child_allocation.y = GTK_CONTAINER (tree)->border_width; - child_allocation.width = MAX (1, (gint)allocation->width - child_allocation.x * 2); - - children = tree->children; - - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_VISIBLE (child)) - { - GtkRequisition child_requisition; - gtk_widget_get_child_requisition (child, &child_requisition); - - child_allocation.height = child_requisition.height; - - gtk_widget_size_allocate (child, &child_allocation); - - child_allocation.y += child_allocation.height; - - if((subtree = GTK_TREE_ITEM2(child)->subtree)) - if(GTK_WIDGET_VISIBLE (subtree)) - { - child_allocation.height = subtree->requisition.height; - gtk_widget_size_allocate (subtree, &child_allocation); - child_allocation.y += child_allocation.height; - } - } - } - } - -} - -static void -gtk_tree2_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GtkTree2 *tree; - GtkWidget *child, *subtree; - GList *children; - GtkRequisition child_requisition; - - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - g_return_if_fail (requisition != NULL); - - tree = GTK_TREE2 (widget); - requisition->width = 0; - requisition->height = 0; - - children = tree->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_VISIBLE (child)) - { - gtk_widget_size_request (child, &child_requisition); - - requisition->width = MAX (requisition->width, child_requisition.width); - requisition->height += child_requisition.height; - - if((subtree = GTK_TREE_ITEM2(child)->subtree) && - GTK_WIDGET_VISIBLE (subtree)) - { - gtk_widget_size_request (subtree, &child_requisition); - - requisition->width = MAX (requisition->width, - child_requisition.width); - - requisition->height += child_requisition.height; - } - } - } - - requisition->width += GTK_CONTAINER (tree)->border_width * 2; - requisition->height += GTK_CONTAINER (tree)->border_width * 2; - - requisition->width = MAX (requisition->width, 1); - requisition->height = MAX (requisition->height, 1); - -} - -static void -gtk_tree2_unmap (GtkWidget *widget) -{ - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - - GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED); - gdk_window_hide (widget->window); - -} - -void -gtk_tree2_unselect_child (GtkTree2 *tree, - GtkWidget *tree_item) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_signal_emit (GTK_OBJECT (tree), tree_signals[UNSELECT_CHILD], tree_item); -} - -void -gtk_tree2_unselect_item (GtkTree2 *tree, - gint item) -{ - GList *tmp_list; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tmp_list = g_list_nth (tree->children, item); - if (tmp_list) - gtk_tree2_unselect_child (tree, GTK_WIDGET (tmp_list->data)); - -} - -static void -gtk_real_tree2_select_child (GtkTree2 *tree, - GtkWidget *child) -{ - GList *selection, *root_selection; - GList *tmp_list; - GtkWidget *tmp_item; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (child != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (child)); - - root_selection = tree->root_tree->selection; - - switch (tree->root_tree->selection_mode) - { - case GTK_SELECTION_SINGLE: - - selection = root_selection; - - /* remove old selection list */ - while (selection) - { - tmp_item = selection->data; - - if (tmp_item != child) - { - gtk_tree_item2_deselect (GTK_TREE_ITEM2 (tmp_item)); - - tmp_list = selection; - selection = selection->next; - - root_selection = g_list_remove_link (root_selection, tmp_list); - gtk_widget_unref (tmp_item); - - g_list_free (tmp_list); - } - else - selection = selection->next; - } - - if (child->state == GTK_STATE_NORMAL) - { - gtk_tree_item2_select (GTK_TREE_ITEM2 (child)); - root_selection = g_list_prepend (root_selection, child); - gtk_widget_ref (child); - } - else if (child->state == GTK_STATE_SELECTED) - { - gtk_tree_item2_deselect (GTK_TREE_ITEM2 (child)); - root_selection = g_list_remove (root_selection, child); - gtk_widget_unref (child); - } - - tree->root_tree->selection = root_selection; - - gtk_signal_emit (GTK_OBJECT (tree->root_tree), - tree_signals[SELECTION_CHANGED]); - break; - - - case GTK_SELECTION_BROWSE: - selection = root_selection; - - while (selection) - { - tmp_item = selection->data; - - if (tmp_item != child) - { - gtk_tree_item2_deselect (GTK_TREE_ITEM2 (tmp_item)); - - tmp_list = selection; - selection = selection->next; - - root_selection = g_list_remove_link (root_selection, tmp_list); - gtk_widget_unref (tmp_item); - - g_list_free (tmp_list); - } - else - selection = selection->next; - } - - tree->root_tree->selection = root_selection; - - if (child->state == GTK_STATE_NORMAL) - { - gtk_tree_item2_select (GTK_TREE_ITEM2 (child)); - root_selection = g_list_prepend (root_selection, child); - gtk_widget_ref (child); - tree->root_tree->selection = root_selection; - gtk_signal_emit (GTK_OBJECT (tree->root_tree), - tree_signals[SELECTION_CHANGED]); - } - break; - - case GTK_SELECTION_MULTIPLE: - if (child->state == GTK_STATE_NORMAL) - { - gtk_tree_item2_select (GTK_TREE_ITEM2 (child)); - root_selection = g_list_prepend (root_selection, child); - gtk_widget_ref (child); - tree->root_tree->selection = root_selection; - gtk_signal_emit (GTK_OBJECT (tree->root_tree), - tree_signals[SELECTION_CHANGED]); - } - else if (child->state == GTK_STATE_SELECTED) - { - gtk_tree_item2_deselect (GTK_TREE_ITEM2 (child)); - root_selection = g_list_remove (root_selection, child); - gtk_widget_unref (child); - tree->root_tree->selection = root_selection; - gtk_signal_emit (GTK_OBJECT (tree->root_tree), - tree_signals[SELECTION_CHANGED]); - } - break; - - case GTK_SELECTION_EXTENDED: - break; - } -} - -static void -gtk_real_tree2_unselect_child (GtkTree2 *tree, - GtkWidget *child) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (child != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (child)); - - switch (tree->selection_mode) - { - case GTK_SELECTION_SINGLE: - case GTK_SELECTION_MULTIPLE: - case GTK_SELECTION_BROWSE: - if (child->state == GTK_STATE_SELECTED) - { - GtkTree2* root_tree = GTK_TREE2_ROOT_TREE(tree); - gtk_tree_item2_deselect (GTK_TREE_ITEM2 (child)); - root_tree->selection = g_list_remove (root_tree->selection, child); - gtk_widget_unref (child); - gtk_signal_emit (GTK_OBJECT (tree->root_tree), - tree_signals[SELECTION_CHANGED]); - } - break; - - case GTK_SELECTION_EXTENDED: - break; - } -} - -void -gtk_tree2_set_selection_mode (GtkTree2 *tree, - GtkSelectionMode mode) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tree->selection_mode = mode; -} - -void -gtk_tree2_set_view_mode (GtkTree2 *tree, - GtkTree2ViewMode mode) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tree->view_mode = mode; -} - -void -gtk_tree2_set_view_lines (GtkTree2 *tree, - guint flag) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tree->view_line = flag; -} - -void -gtk_tree2_item_up_1 (GtkTree2 *tree, - guint pos) -{ - GList *tmp; - guint length; - gpointer data; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tmp = tree->children; - length = g_list_length (tmp); - if (pos <= 0 || pos >= length) { return; } - data = g_list_nth_data (tree->children, pos); - g_list_remove (tree->children, data); - tree->children = g_list_insert (tree->children, data, pos-1); -} diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.h deleted file mode 100644 index 291a1d1b3..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.h +++ /dev/null @@ -1,139 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __GTK_TREE2_H__ -#define __GTK_TREE2_H__ - -/* set this flag to enable tree debugging output */ -/* #define TREE_DEBUG */ - -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -#define GTK_TYPE_TREE2 (gtk_tree2_get_type ()) -#define GTK_TREE2(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_TREE2, GtkTree2)) -#define GTK_TREE2_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE2, GtkTree2Class)) -#define GTK_IS_TREE2(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_TREE2)) -#define GTK_IS_TREE2_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE2)) - -#define GTK_IS_ROOT_TREE2(obj) ((GtkObject*) GTK_TREE2(obj)->root_tree == (GtkObject*)obj) -#define GTK_TREE2_ROOT_TREE(obj) (GTK_TREE2(obj)->root_tree ? GTK_TREE2(obj)->root_tree : GTK_TREE2(obj)) -#define GTK_TREE2_SELECTION(obj) (GTK_TREE2_ROOT_TREE(obj)->selection) - -typedef enum -{ - GTK_TREE2_VIEW_LINE, /* default view mode */ - GTK_TREE2_VIEW_ITEM -} GtkTree2ViewMode; - -typedef struct _GtkTree2 GtkTree2; -typedef struct _GtkTree2Class GtkTree2Class; - -struct _GtkTree2 -{ - GtkContainer container; - - GList *children; - - GtkTree2* root_tree; /* owner of selection list */ - GtkWidget* tree_owner; - GList *selection; - guint level; - guint indent_value; - guint current_indent; - guint selection_mode : 2; - guint view_mode : 1; - guint view_line : 1; -}; - -struct _GtkTree2Class -{ - GtkContainerClass parent_class; - - void (* selection_changed) (GtkTree2 *tree); - void (* select_child) (GtkTree2 *tree, - GtkWidget *child); - void (* unselect_child) (GtkTree2 *tree, - GtkWidget *child); -}; - - -GtkType gtk_tree2_get_type (void); -GtkWidget* gtk_tree2_new (void); -void gtk_tree2_append (GtkTree2 *tree, - GtkWidget *tree_item); -void gtk_tree2_prepend (GtkTree2 *tree, - GtkWidget *tree_item); -void gtk_tree2_insert (GtkTree2 *tree, - GtkWidget *tree_item, - gint position); -void gtk_tree2_remove_items (GtkTree2 *tree, - GList *items); -void gtk_tree2_clear_items (GtkTree2 *tree, - gint start, - gint end); -void gtk_tree2_select_item (GtkTree2 *tree, - gint item); -void gtk_tree2_unselect_item (GtkTree2 *tree, - gint item); -void gtk_tree2_select_child (GtkTree2 *tree, - GtkWidget *tree_item); -void gtk_tree2_unselect_child (GtkTree2 *tree, - GtkWidget *tree_item); -gint gtk_tree2_child_position (GtkTree2 *tree, - GtkWidget *child); -void gtk_tree2_set_selection_mode (GtkTree2 *tree, - GtkSelectionMode mode); -void gtk_tree2_set_view_mode (GtkTree2 *tree, - GtkTree2ViewMode mode); -void gtk_tree2_set_view_lines (GtkTree2 *tree, - guint flag); - -/* deprecated function, use gtk_container_remove instead. - */ -void gtk_tree2_remove_item (GtkTree2 *tree, - GtkWidget *child); -void gtk_tree2_item_up (GtkTree2 *tree, - gint position); - -void gtk_tree2_select_next_child (GtkTree2 *tree, - GtkWidget *tree_item, gboolean descend); - -void gtk_tree2_select_prev_child (GtkTree2 *tree, - GtkWidget *tree_item); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif /* __GTK_TREE2_H__ */ diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.c deleted file mode 100644 index 7e6f8116b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.c +++ /dev/null @@ -1,1110 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include -#include "gtktree2.h" -#include "gtktreeitem2.h" -#include -#include -#include -#include - -#include "tree_plus.xpm" -#include "tree_minus.xpm" - -#define DEFAULT_DELTA 9 - -enum { - COLLAPSE_TREE, - EXPAND_TREE, - LAST_SIGNAL -}; - -typedef struct _GtkTree2Pixmaps GtkTree2Pixmaps; - -struct _GtkTree2Pixmaps { - gint refcount; - GdkColormap *colormap; - - GdkPixmap *pixmap_plus; - GdkPixmap *pixmap_minus; - GdkBitmap *mask_plus; - GdkBitmap *mask_minus; -}; - -static GList *pixmaps = NULL; - -static void gtk_tree_item2_class_init (GtkTreeItem2Class *klass); -static void gtk_tree_item2_init (GtkTreeItem2 *tree_item); -static void gtk_tree_item2_realize (GtkWidget *widget); -static void gtk_tree_item2_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void gtk_tree_item2_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void gtk_tree_item2_draw (GtkWidget *widget, - GdkRectangle *area); -static void gtk_tree_item2_draw_focus (GtkWidget *widget); -static void gtk_tree_item2_paint (GtkWidget *widget, - GdkRectangle *area); -static gint gtk_tree_item2_button_press (GtkWidget *widget, - GdkEventButton *event); -static gint gtk_tree_item2_expose (GtkWidget *widget, - GdkEventExpose *event); -static gint gtk_tree_item2_focus_in (GtkWidget *widget, - GdkEventFocus *event); -static gint gtk_tree_item2_focus_out (GtkWidget *widget, - GdkEventFocus *event); -static void gtk_tree_item2_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data); - -static void gtk_real_tree_item2_select (GtkItem *item); -static void gtk_real_tree_item2_deselect (GtkItem *item); -static void gtk_real_tree_item2_toggle (GtkItem *item); -static void gtk_real_tree_item2_expand (GtkTreeItem2 *item); -static void gtk_real_tree_item2_collapse (GtkTreeItem2 *item); -static void gtk_real_tree_item2_expand (GtkTreeItem2 *item); -static void gtk_real_tree_item2_collapse (GtkTreeItem2 *item); -static void gtk_tree_item2_destroy (GtkObject *object); -static void gtk_tree_item2_subtree_button_click (GtkWidget *widget); -static void gtk_tree_item2_subtree_button_changed_state (GtkWidget *widget); - -static void gtk_tree_item2_map(GtkWidget*); -static void gtk_tree_item2_unmap(GtkWidget*); - -static void gtk_tree_item2_add_pixmaps (GtkTreeItem2 *tree_item); -static void gtk_tree_item2_remove_pixmaps (GtkTreeItem2 *tree_item); - -static GtkItemClass *parent_class = NULL; -static guint tree_item_signals[LAST_SIGNAL] = { 0 }; - -GtkType -gtk_tree_item2_get_type (void) -{ - static GtkType tree_item_type = 0; - - if (!tree_item_type) - { - static const GtkTypeInfo tree_item_info = - { - "GtkTreeItem", - sizeof (GtkTreeItem2), - sizeof (GtkTreeItem2Class), - (GtkClassInitFunc) gtk_tree_item2_class_init, - (GtkObjectInitFunc) gtk_tree_item2_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - tree_item_type = gtk_type_unique (gtk_item_get_type (), &tree_item_info); - } - - return tree_item_type; -} - -static void -gtk_tree_item2_class_init (GtkTreeItem2Class *class) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - GtkItemClass *item_class; - - object_class = (GtkObjectClass*) class; - widget_class = (GtkWidgetClass*) class; - item_class = (GtkItemClass*) class; - container_class = (GtkContainerClass*) class; - - parent_class = gtk_type_class (gtk_item_get_type ()); - - tree_item_signals[EXPAND_TREE] = - gtk_signal_new ("expand", - GTK_RUN_FIRST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkTreeItem2Class, expand), - gtk_marshal_NONE__NONE, - GTK_TYPE_NONE, 0); - tree_item_signals[COLLAPSE_TREE] = - gtk_signal_new ("collapse", - GTK_RUN_FIRST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkTreeItem2Class, collapse), - gtk_marshal_NONE__NONE, - GTK_TYPE_NONE, 0); - - gtk_object_class_add_signals (object_class, tree_item_signals, LAST_SIGNAL); - - object_class->destroy = gtk_tree_item2_destroy; - - widget_class->realize = gtk_tree_item2_realize; - widget_class->size_request = gtk_tree_item2_size_request; - widget_class->size_allocate = gtk_tree_item2_size_allocate; - widget_class->draw = gtk_tree_item2_draw; - widget_class->draw_focus = gtk_tree_item2_draw_focus; - widget_class->button_press_event = gtk_tree_item2_button_press; - widget_class->expose_event = gtk_tree_item2_expose; - widget_class->focus_in_event = gtk_tree_item2_focus_in; - widget_class->focus_out_event = gtk_tree_item2_focus_out; - widget_class->map = gtk_tree_item2_map; - widget_class->unmap = gtk_tree_item2_unmap; - - container_class->forall = gtk_tree_item2_forall; - - item_class->select = gtk_real_tree_item2_select; - item_class->deselect = gtk_real_tree_item2_deselect; - item_class->toggle = gtk_real_tree_item2_toggle; - - class->expand = gtk_real_tree_item2_expand; - class->collapse = gtk_real_tree_item2_collapse; -} - -/* callback for event box mouse event */ -static void -gtk_tree_item2_subtree_button_click (GtkWidget *widget) -{ - GtkTreeItem2* item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_EVENT_BOX (widget)); - - item = (GtkTreeItem2*) gtk_object_get_user_data (GTK_OBJECT (widget)); - if (!GTK_WIDGET_IS_SENSITIVE (item)) - return; - - if (item->expanded) - gtk_tree_item2_collapse (item); - else - gtk_tree_item2_expand (item); -} - -/* callback for event box state changed */ -static void -gtk_tree_item2_subtree_button_changed_state (GtkWidget *widget) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_EVENT_BOX (widget)); - - if (GTK_WIDGET_VISIBLE (widget)) - { - - if (widget->state == GTK_STATE_NORMAL) - gdk_window_set_background (widget->window, &widget->style->base[widget->state]); - else - gdk_window_set_background (widget->window, &widget->style->bg[widget->state]); - - if (GTK_WIDGET_DRAWABLE (widget)) - gdk_window_clear_area (widget->window, 0, 0, - widget->allocation.width, widget->allocation.height); - } -} - -static void -gtk_tree_item2_init (GtkTreeItem2 *tree_item) -{ - GtkWidget *eventbox, *pixmapwid; - - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - tree_item->expanded = FALSE; - tree_item->subtree = NULL; - GTK_WIDGET_SET_FLAGS (tree_item, GTK_CAN_FOCUS); - - /* create an event box containing one pixmaps */ - eventbox = gtk_event_box_new(); - gtk_widget_set_events (eventbox, GDK_BUTTON_PRESS_MASK); - gtk_signal_connect(GTK_OBJECT(eventbox), "state_changed", - (GtkSignalFunc)gtk_tree_item2_subtree_button_changed_state, - (gpointer)NULL); - gtk_signal_connect(GTK_OBJECT(eventbox), "realize", - (GtkSignalFunc)gtk_tree_item2_subtree_button_changed_state, - (gpointer)NULL); -/* HF inutile - gtk_signal_connect(GTK_OBJECT(eventbox), "button_press_event", - (GtkSignalFunc)gtk_tree_item2_subtree_button_click, - (gpointer)NULL); -*/ - gtk_object_set_user_data(GTK_OBJECT(eventbox), tree_item); - tree_item->pixmaps_box = eventbox; - - /* create pixmap for button '+' */ - pixmapwid = gtk_type_new (gtk_pixmap_get_type ()); - if (!tree_item->expanded) - gtk_container_add (GTK_CONTAINER (eventbox), pixmapwid); - gtk_widget_show (pixmapwid); - tree_item->plus_pix_widget = pixmapwid; - gtk_widget_ref (tree_item->plus_pix_widget); - gtk_object_sink (GTK_OBJECT (tree_item->plus_pix_widget)); - - /* create pixmap for button '-' */ - pixmapwid = gtk_type_new (gtk_pixmap_get_type ()); - if (tree_item->expanded) - gtk_container_add (GTK_CONTAINER (eventbox), pixmapwid); - gtk_widget_show (pixmapwid); - tree_item->minus_pix_widget = pixmapwid; - gtk_widget_ref (tree_item->minus_pix_widget); - gtk_object_sink (GTK_OBJECT (tree_item->minus_pix_widget)); - - gtk_widget_set_parent (eventbox, GTK_WIDGET (tree_item)); -} - - -GtkWidget* -gtk_tree_item2_new (void) -{ - GtkWidget *tree_item; - - tree_item = GTK_WIDGET (gtk_type_new (gtk_tree_item2_get_type ())); - - return tree_item; -} - -GtkWidget* -gtk_tree_item2_new_with_label (gchar *label) -{ - GtkWidget *tree_item; - GtkWidget *label_widget; - - tree_item = gtk_tree_item2_new (); - label_widget = gtk_label_new (label); - gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5); - - gtk_container_add (GTK_CONTAINER (tree_item), label_widget); - gtk_widget_show (label_widget); - - - return tree_item; -} - -void -gtk_tree_item2_set_subtree (GtkTreeItem2 *tree_item, - GtkWidget *subtree) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - g_return_if_fail (subtree != NULL); - g_return_if_fail (GTK_IS_TREE2 (subtree)); - - if (tree_item->subtree) - { - g_warning("there is already a subtree for this tree item\n"); - return; - } - - tree_item->subtree = subtree; - GTK_TREE2 (subtree)->tree_owner = GTK_WIDGET (tree_item); - - /* show subtree button */ - if (tree_item->pixmaps_box) - gtk_widget_show (tree_item->pixmaps_box); - - if (tree_item->expanded) - gtk_widget_show (subtree); - else - gtk_widget_hide (subtree); - - gtk_widget_set_parent (subtree, GTK_WIDGET (tree_item)->parent); - - if (GTK_WIDGET_REALIZED (subtree->parent)) - gtk_widget_realize (subtree); - - if (GTK_WIDGET_VISIBLE (subtree->parent) && GTK_WIDGET_VISIBLE (subtree)) - { - if (GTK_WIDGET_MAPPED (subtree->parent)) - gtk_widget_map (subtree); - - gtk_widget_queue_resize (subtree); - } -} - -void -gtk_tree_item2_select (GtkTreeItem2 *tree_item) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_item_select (GTK_ITEM (tree_item)); -} - -void -gtk_tree_item2_deselect (GtkTreeItem2 *tree_item) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_item_deselect (GTK_ITEM (tree_item)); -} - -void -gtk_tree_item2_expand (GtkTreeItem2 *tree_item) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_signal_emit (GTK_OBJECT (tree_item), tree_item_signals[EXPAND_TREE], NULL); -} - -void -gtk_tree_item2_collapse (GtkTreeItem2 *tree_item) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_signal_emit (GTK_OBJECT (tree_item), tree_item_signals[COLLAPSE_TREE], NULL); -} - -static void -gtk_tree_item2_add_pixmaps (GtkTreeItem2 *tree_item) -{ - GList *tmp_list; - GdkColormap *colormap; - GtkTree2Pixmaps *pixmap_node = NULL; - - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - if (tree_item->pixmaps) - return; - - colormap = gtk_widget_get_colormap (GTK_WIDGET (tree_item)); - - tmp_list = pixmaps; - while (tmp_list) - { - pixmap_node = (GtkTree2Pixmaps *)tmp_list->data; - - if (pixmap_node->colormap == colormap) - break; - - tmp_list = tmp_list->next; - } - - if (tmp_list) - { - pixmap_node->refcount++; - tree_item->pixmaps = tmp_list; - } - else - { - pixmap_node = g_new (GtkTree2Pixmaps, 1); - - pixmap_node->colormap = colormap; - gdk_colormap_ref (colormap); - - pixmap_node->refcount = 1; - - /* create pixmaps for plus icon */ - pixmap_node->pixmap_plus = - gdk_pixmap_create_from_xpm_d (GTK_WIDGET (tree_item)->window, - &pixmap_node->mask_plus, - NULL, - tree_plus); - - /* create pixmaps for minus icon */ - pixmap_node->pixmap_minus = - gdk_pixmap_create_from_xpm_d (GTK_WIDGET (tree_item)->window, - &pixmap_node->mask_minus, - NULL, - tree_minus); - - tree_item->pixmaps = pixmaps = g_list_prepend (pixmaps, pixmap_node); - } - - gtk_pixmap_set (GTK_PIXMAP (tree_item->plus_pix_widget), - pixmap_node->pixmap_plus, pixmap_node->mask_plus); - gtk_pixmap_set (GTK_PIXMAP (tree_item->minus_pix_widget), - pixmap_node->pixmap_minus, pixmap_node->mask_minus); -} - -static void -gtk_tree_item2_remove_pixmaps (GtkTreeItem2 *tree_item) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - if (tree_item->pixmaps) - { - GtkTree2Pixmaps *pixmap_node = (GtkTree2Pixmaps *)tree_item->pixmaps->data; - - g_assert (pixmap_node->refcount > 0); - - if (--pixmap_node->refcount == 0) - { - gdk_colormap_unref (pixmap_node->colormap); - gdk_pixmap_unref (pixmap_node->pixmap_plus); - gdk_bitmap_unref (pixmap_node->mask_plus); - gdk_pixmap_unref (pixmap_node->pixmap_minus); - gdk_bitmap_unref (pixmap_node->mask_minus); - - pixmaps = g_list_remove_link (pixmaps, tree_item->pixmaps); - g_list_free_1 (tree_item->pixmaps); - g_free (pixmap_node); - } - - tree_item->pixmaps = NULL; - } -} - -static void -gtk_tree_item2_realize (GtkWidget *widget) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - - if (GTK_WIDGET_CLASS (parent_class)->realize) - (* GTK_WIDGET_CLASS (parent_class)->realize) (widget); - - gdk_window_set_background (widget->window, - &widget->style->base[GTK_STATE_NORMAL]); - - gtk_tree_item2_add_pixmaps (GTK_TREE_ITEM2 (widget)); -} - -static void -gtk_tree_item2_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GtkBin *bin; - GtkTreeItem2* item; - GtkRequisition child_requisition; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - g_return_if_fail (requisition != NULL); - - bin = GTK_BIN (widget); - item = GTK_TREE_ITEM2(widget); - - requisition->width = (GTK_CONTAINER (widget)->border_width + - widget->style->klass->xthickness) * 2; - requisition->height = GTK_CONTAINER (widget)->border_width * 2; - - if (bin->child && GTK_WIDGET_VISIBLE (bin->child)) - { - GtkRequisition pix_requisition; - - gtk_widget_size_request (bin->child, &child_requisition); - - requisition->width += child_requisition.width; - - gtk_widget_size_request (item->pixmaps_box, - &pix_requisition); - requisition->width += pix_requisition.width + DEFAULT_DELTA + - GTK_TREE2 (widget->parent)->current_indent; - - requisition->height += MAX (child_requisition.height, - pix_requisition.height); - } -} - -static void -gtk_tree_item2_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkBin *bin; - GtkTreeItem2* item; - GtkAllocation child_allocation; - guint border_width; - int temp; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - g_return_if_fail (allocation != NULL); - - widget->allocation = *allocation; - if (GTK_WIDGET_REALIZED (widget)) - gdk_window_move_resize (widget->window, - allocation->x, allocation->y, - allocation->width, allocation->height); - - bin = GTK_BIN (widget); - item = GTK_TREE_ITEM2(widget); - - if (bin->child) - { - border_width = (GTK_CONTAINER (widget)->border_width + - widget->style->klass->xthickness); - - child_allocation.x = border_width + GTK_TREE2(widget->parent)->current_indent; - child_allocation.y = GTK_CONTAINER (widget)->border_width; - - child_allocation.width = item->pixmaps_box->requisition.width; - child_allocation.height = item->pixmaps_box->requisition.height; - - temp = allocation->height - child_allocation.height; - child_allocation.y += ( temp / 2 ) + ( temp % 2 ); - - gtk_widget_size_allocate (item->pixmaps_box, &child_allocation); - - child_allocation.y = GTK_CONTAINER (widget)->border_width; - child_allocation.height = MAX (1, (gint)allocation->height - child_allocation.y * 2); - child_allocation.x += item->pixmaps_box->requisition.width+DEFAULT_DELTA; - - child_allocation.width = - MAX (1, (gint)allocation->width - ((gint)child_allocation.x + border_width)); - - gtk_widget_size_allocate (bin->child, &child_allocation); - } -} - -static void -gtk_tree_item2_draw_lines (GtkWidget *widget) -{ - GtkTreeItem2* item; - GtkTree2* tree; - guint lx1, ly1, lx2, ly2; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - - item = GTK_TREE_ITEM2(widget); - tree = GTK_TREE2(widget->parent); - - /* draw vertical line */ - lx1 = item->pixmaps_box->allocation.width; - lx1 = lx2 = ((lx1 / 2) + (lx1 % 2) + - GTK_CONTAINER (widget)->border_width + 1 + tree->current_indent); - ly1 = 0; - ly2 = widget->allocation.height; - - if (g_list_last (tree->children)->data == widget) - ly2 = (ly2 / 2) + (ly2 % 2); - - if (tree != tree->root_tree) - gdk_draw_line (widget->window, widget->style->black_gc, lx1, ly1, lx2, ly2); - - /* draw vertical line for subtree connecting */ - if(g_list_last(tree->children)->data != (gpointer)widget) - ly2 = (ly2 / 2) + (ly2 % 2); - - lx2 += DEFAULT_DELTA; - - if (item->subtree && item->expanded) - gdk_draw_line (widget->window, widget->style->black_gc, - lx2, ly2, lx2, widget->allocation.height); - - /* draw horizontal line */ - ly1 = ly2; - lx2 += 2; - - gdk_draw_line (widget->window, widget->style->black_gc, - lx1, ly1, lx2, ly2); - - lx2 -= DEFAULT_DELTA+2; - ly1 = 0; - ly2 = widget->allocation.height; - - if (tree != tree->root_tree) - { - item = GTK_TREE_ITEM2 (tree->tree_owner); - tree = GTK_TREE2 (GTK_WIDGET (tree)->parent); - while (tree != tree->root_tree) - { - lx1 = lx2 -= tree->indent_value; - - if (g_list_last (tree->children)->data != item) - gdk_draw_line (widget->window, widget->style->black_gc, lx1, ly1, lx2, ly2); - item = GTK_TREE_ITEM2 (tree->tree_owner); - tree = GTK_TREE2 (GTK_WIDGET (tree)->parent); - } - } -} - -static void -gtk_tree_item2_paint (GtkWidget *widget, - GdkRectangle *area) -{ - GtkBin *bin; - GdkRectangle child_area, item_area; - GtkTreeItem2* tree_item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - g_return_if_fail (area != NULL); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - bin = GTK_BIN (widget); - tree_item = GTK_TREE_ITEM2(widget); - - if (widget->state == GTK_STATE_NORMAL) - { - gdk_window_set_back_pixmap (widget->window, NULL, TRUE); - gdk_window_clear_area (widget->window, area->x, area->y, area->width, area->height); - } - else - { - if (!GTK_WIDGET_IS_SENSITIVE (widget)) - gtk_paint_flat_box(widget->style, widget->window, - widget->state, GTK_STATE_INSENSITIVE, - area, widget, "treeitem", - 0, 0, -1, -1); - else - gtk_paint_flat_box(widget->style, widget->window, - widget->state, GTK_SHADOW_ETCHED_OUT, - area, widget, "treeitem", - 0, 0, -1, -1); - } - - /* draw left size of tree item */ - item_area.x = 0; - item_area.y = 0; - item_area.width = (tree_item->pixmaps_box->allocation.width + DEFAULT_DELTA + - GTK_TREE2 (widget->parent)->current_indent + 2); - item_area.height = widget->allocation.height; - - - if (gdk_rectangle_intersect(&item_area, area, &child_area)) - { - - gtk_tree_item2_draw_lines(widget); - - if (tree_item->pixmaps_box && - GTK_WIDGET_VISIBLE(tree_item->pixmaps_box) && - gtk_widget_intersect (tree_item->pixmaps_box, area, &child_area)) - gtk_widget_draw (tree_item->pixmaps_box, &child_area); - } - - if (GTK_WIDGET_HAS_FOCUS (widget)) - gtk_paint_focus (widget->style, widget->window, - NULL, widget, "treeitem", - 0, 0, - widget->allocation.width - 1, - widget->allocation.height - 1); - - } -} - -static void -gtk_tree_item2_draw (GtkWidget *widget, - GdkRectangle *area) -{ - GtkBin *bin; - GdkRectangle child_area; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - g_return_if_fail (area != NULL); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - bin = GTK_BIN (widget); - - gtk_tree_item2_paint (widget, area); - - if (bin->child && - gtk_widget_intersect (bin->child, area, &child_area)) - gtk_widget_draw (bin->child, &child_area); - - } -} - -static void -gtk_tree_item2_draw_focus (GtkWidget *widget) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - - gtk_widget_draw(widget, NULL); -} - -static gint -gtk_tree_item2_button_press (GtkWidget *widget, - GdkEventButton *event) -{ -/* HF - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (event->type == GDK_BUTTON_PRESS - && GTK_WIDGET_IS_SENSITIVE(widget) - && !GTK_WIDGET_HAS_FOCUS (widget)) - gtk_widget_grab_focus (widget); - - return FALSE; - -*/ -} - -static gint -gtk_tree_item2_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - GdkEventExpose child_event; - GtkBin *bin; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - bin = GTK_BIN (widget); - - gtk_tree_item2_paint (widget, &event->area); - - child_event = *event; - if (bin->child && GTK_WIDGET_NO_WINDOW (bin->child) && - gtk_widget_intersect (bin->child, &event->area, &child_event.area)) - gtk_widget_event (bin->child, (GdkEvent*) &child_event); - } - - return FALSE; -} - -static gint -gtk_tree_item2_focus_in (GtkWidget *widget, - GdkEventFocus *event) -{ - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS); - gtk_widget_draw_focus (widget); - - - return FALSE; -} - -static gint -gtk_tree_item2_focus_out (GtkWidget *widget, - GdkEventFocus *event) -{ - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS); - gtk_widget_draw_focus (widget); - - - return FALSE; -} - -static void -gtk_real_tree_item2_select (GtkItem *item) -{ - GtkTreeItem2 *tree_item; - GtkWidget *widget; - - g_return_if_fail (item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (item)); - - tree_item = GTK_TREE_ITEM2 (item); - widget = GTK_WIDGET (item); - - gtk_widget_set_state (GTK_WIDGET (item), GTK_STATE_SELECTED); - - if (!widget->parent || GTK_TREE2 (widget->parent)->view_mode == GTK_TREE2_VIEW_LINE) - gtk_widget_set_state (GTK_TREE_ITEM2 (item)->pixmaps_box, GTK_STATE_SELECTED); -} - -static void -gtk_real_tree_item2_deselect (GtkItem *item) -{ - GtkTreeItem2 *tree_item; - GtkWidget *widget; - - g_return_if_fail (item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (item)); - - tree_item = GTK_TREE_ITEM2 (item); - widget = GTK_WIDGET (item); - - gtk_widget_set_state (widget, GTK_STATE_NORMAL); - - if (!widget->parent || GTK_TREE2 (widget->parent)->view_mode == GTK_TREE2_VIEW_LINE) - gtk_widget_set_state (tree_item->pixmaps_box, GTK_STATE_NORMAL); -} - -static void -gtk_real_tree_item2_toggle (GtkItem *item) -{ - g_return_if_fail (item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (item)); - - if(!GTK_WIDGET_IS_SENSITIVE(item)) - return; - - if (GTK_WIDGET (item)->parent && GTK_IS_TREE2 (GTK_WIDGET (item)->parent)) - gtk_tree2_select_child (GTK_TREE2 (GTK_WIDGET (item)->parent), - GTK_WIDGET (item)); - else - { - /* Should we really bother with this bit? A listitem not in a list? - * -Johannes Keukelaar - * yes, always be on the safe side! - * -timj - */ - if (GTK_WIDGET (item)->state == GTK_STATE_SELECTED) - gtk_widget_set_state (GTK_WIDGET (item), GTK_STATE_NORMAL); - else - gtk_widget_set_state (GTK_WIDGET (item), GTK_STATE_SELECTED); - } -} - -static void -gtk_real_tree_item2_expand (GtkTreeItem2 *tree_item) -{ - GtkTree2* tree; - - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - if (tree_item->subtree && !tree_item->expanded) - { - tree = GTK_TREE2 (GTK_WIDGET (tree_item)->parent); - - /* hide subtree widget */ - gtk_widget_show (tree_item->subtree); - - /* hide button '+' and show button '-' */ - if (tree_item->pixmaps_box) - { - gtk_container_remove (GTK_CONTAINER (tree_item->pixmaps_box), - tree_item->plus_pix_widget); - gtk_container_add (GTK_CONTAINER (tree_item->pixmaps_box), - tree_item->minus_pix_widget); - } - if (tree->root_tree) - gtk_widget_queue_resize (GTK_WIDGET (tree->root_tree)); - tree_item->expanded = TRUE; - } -} - -static void -gtk_real_tree_item2_collapse (GtkTreeItem2 *tree_item) -{ - GtkTree2* tree; - - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - if (tree_item->subtree && tree_item->expanded) - { - tree = GTK_TREE2 (GTK_WIDGET (tree_item)->parent); - - /* hide subtree widget */ - gtk_widget_hide (tree_item->subtree); - - /* hide button '-' and show button '+' */ - if (tree_item->pixmaps_box) - { - gtk_container_remove (GTK_CONTAINER (tree_item->pixmaps_box), - tree_item->minus_pix_widget); - gtk_container_add (GTK_CONTAINER (tree_item->pixmaps_box), - tree_item->plus_pix_widget); - } - if (tree->root_tree) - gtk_widget_queue_resize (GTK_WIDGET (tree->root_tree)); - tree_item->expanded = FALSE; - } -} - -static void -gtk_tree_item2_destroy (GtkObject *object) -{ - GtkTreeItem2* item; - GtkWidget* child; - - g_return_if_fail (object != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (object)); - -#ifdef TREE_DEBUG - g_message("+ gtk_tree_item2_destroy [object %#x]\n", (int)object); -#endif /* TREE_DEBUG */ - - item = GTK_TREE_ITEM2(object); - - /* free sub tree if it exist */ - child = item->subtree; - if (child) - { - gtk_widget_ref (child); - gtk_widget_unparent (child); - gtk_widget_destroy (child); - gtk_widget_unref (child); - item->subtree = NULL; - } - - /* free pixmaps box */ - child = item->pixmaps_box; - if (child) - { - gtk_widget_ref (child); - gtk_widget_unparent (child); - gtk_widget_destroy (child); - gtk_widget_unref (child); - item->pixmaps_box = NULL; - } - - - /* destroy plus pixmap */ - if (item->plus_pix_widget) - { - gtk_widget_destroy (item->plus_pix_widget); - gtk_widget_unref (item->plus_pix_widget); - item->plus_pix_widget = NULL; - } - - /* destroy minus pixmap */ - if (item->minus_pix_widget) - { - gtk_widget_destroy (item->minus_pix_widget); - gtk_widget_unref (item->minus_pix_widget); - item->minus_pix_widget = NULL; - } - - /* By removing the pixmaps here, and not in unrealize, we depend on - * the fact that a widget can never change colormap or visual. - */ - gtk_tree_item2_remove_pixmaps (item); - - GTK_OBJECT_CLASS (parent_class)->destroy (object); - -#ifdef TREE_DEBUG - g_message("- gtk_tree_item2_destroy\n"); -#endif /* TREE_DEBUG */ -} - -void -gtk_tree_item2_remove_subtree (GtkTreeItem2* item) -{ - g_return_if_fail (item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2(item)); - g_return_if_fail (item->subtree != NULL); - - if (GTK_TREE2 (item->subtree)->children) - { - /* The following call will remove the children and call - * gtk_tree_item2_remove_subtree() again. So we are done. - */ - gtk_tree2_remove_items (GTK_TREE2 (item->subtree), - GTK_TREE2 (item->subtree)->children); - return; - } - - if (GTK_WIDGET_MAPPED (item->subtree)) - gtk_widget_unmap (item->subtree); - - gtk_widget_unparent (item->subtree); - - if (item->pixmaps_box) - gtk_widget_hide (item->pixmaps_box); - - item->subtree = NULL; - - if (item->expanded) - { - item->expanded = FALSE; - if (item->pixmaps_box) - { - gtk_container_remove (GTK_CONTAINER (item->pixmaps_box), - item->minus_pix_widget); - gtk_container_add (GTK_CONTAINER (item->pixmaps_box), - item->plus_pix_widget); - } - } -} - -static void -gtk_tree_item2_map (GtkWidget *widget) -{ - GtkBin *bin; - GtkTreeItem2* item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - - bin = GTK_BIN (widget); - item = GTK_TREE_ITEM2(widget); - - GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED); - - if(item->pixmaps_box && - GTK_WIDGET_VISIBLE (item->pixmaps_box) && - !GTK_WIDGET_MAPPED (item->pixmaps_box)) - gtk_widget_map (item->pixmaps_box); - - if (bin->child && - GTK_WIDGET_VISIBLE (bin->child) && - !GTK_WIDGET_MAPPED (bin->child)) - gtk_widget_map (bin->child); - - gdk_window_show (widget->window); -} - -static void -gtk_tree_item2_unmap (GtkWidget *widget) -{ - GtkBin *bin; - GtkTreeItem2* item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - - GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED); - bin = GTK_BIN (widget); - item = GTK_TREE_ITEM2(widget); - - gdk_window_hide (widget->window); - - if(item->pixmaps_box && - GTK_WIDGET_VISIBLE (item->pixmaps_box) && - GTK_WIDGET_MAPPED (item->pixmaps_box)) - gtk_widget_unmap (bin->child); - - if (bin->child && - GTK_WIDGET_VISIBLE (bin->child) && - GTK_WIDGET_MAPPED (bin->child)) - gtk_widget_unmap (bin->child); -} - -static void -gtk_tree_item2_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - GtkBin *bin; - GtkTreeItem2 *tree_item; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (container)); - g_return_if_fail (callback != NULL); - - bin = GTK_BIN (container); - tree_item = GTK_TREE_ITEM2 (container); - - if (bin->child) - (* callback) (bin->child, callback_data); -/* if (include_internals && tree_item->subtree) - (* callback) (tree_item->subtree, callback_data); */ -} diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.h deleted file mode 100644 index bbbb364ad..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.h +++ /dev/null @@ -1,91 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __GTK_TREE_ITEM2_H__ -#define __GTK_TREE_ITEM2_H__ - - -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -#define GTK_TYPE_TREE_ITEM2 (gtk_tree_item2_get_type ()) -#define GTK_TREE_ITEM2(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_TREE_ITEM2, GtkTreeItem2)) -#define GTK_TREE_ITEM2_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_ITEM2, GtkTreeItem2Class)) -#define GTK_IS_TREE_ITEM2(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_TREE_ITEM2)) -#define GTK_IS_TREE_ITEM2_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_ITEM2)) - -#define GTK_TREE_ITEM2_SUBTREE(obj) (GTK_TREE_ITEM2(obj)->subtree) - - -typedef struct _GtkTreeItem2 GtkTreeItem2; -typedef struct _GtkTreeItem2Class GtkTreeItem2Class; - -struct _GtkTreeItem2 -{ - GtkItem item; - - GtkWidget *subtree; - GtkWidget *pixmaps_box; - GtkWidget *plus_pix_widget, *minus_pix_widget; - - GList *pixmaps; /* pixmap node for this items color depth */ - - guint expanded : 1; -}; - -struct _GtkTreeItem2Class -{ - GtkItemClass parent_class; - - void (* expand) (GtkTreeItem2 *tree_item); - void (* collapse) (GtkTreeItem2 *tree_item); -}; - - -GtkType gtk_tree_item2_get_type (void); -GtkWidget* gtk_tree_item2_new (void); -GtkWidget* gtk_tree_item2_new_with_label (gchar *label); -void gtk_tree_item2_set_subtree (GtkTreeItem2 *tree_item, - GtkWidget *subtree); -void gtk_tree_item2_remove_subtree (GtkTreeItem2 *tree_item); -void gtk_tree_item2_select (GtkTreeItem2 *tree_item); -void gtk_tree_item2_deselect (GtkTreeItem2 *tree_item); -void gtk_tree_item2_expand (GtkTreeItem2 *tree_item); -void gtk_tree_item2_collapse (GtkTreeItem2 *tree_item); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif /* __GTK_TREE_ITEM2_H__ */ diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/handlebox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/handlebox.xpm deleted file mode 100644 index e4d792cbb..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/handlebox.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char *handlebox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 7 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray87", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@++++++++++++++++++ @", -"@+OOOO.XXXXXXXXXXX. @", -"@++OOO.XXXXXXXXXXX. @", -"@+O.+O.XXXXXXXXXXX. @", -"@+OOO..XXXXXXXXXXX. @", -"@++OOO.XXXXXXXXXXX. @", -"@+O.+O.XXXXXXXXXXX. @", -"@+OOO..XXXXXXXXXXX. @", -"@++OOO.XXXXXXXXXXX. @", -"@+O.+O.XXXXXXXXXXX. @", -"@+OOO..XXXXXXXXXXX. @", -"@+................. @", -"@ @", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbox.xpm deleted file mode 100644 index 7363317b6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbox.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *hbox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 4 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c Gray100", -/* pixels */ -"oooooo oooooo oooooo ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"o..... o..... o..... ", -" " -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbuttonbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbuttonbox.xpm deleted file mode 100644 index 77d73dc46..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbuttonbox.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *hbuttonbox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+OOOOO +OOOOO +OOOOO ", -"+OXXX. +OXXX. +OXXX. ", -"+OXXX. +OXXX. +OXXX. ", -"+O.... +O.... +O.... ", -"+ + + ", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hseparator.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hseparator.xpm deleted file mode 100644 index 41ad8aafc..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hseparator.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *hseparator_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 4 1", -" c #7b7b7b", -". c #b3cece", -"X c Gray100", -"o c None", -/* pixels */ -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"o o", -"oXXXXXXXXXXXXXXXXXXXo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/label.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/label.xpm deleted file mode 100644 index 013e13a96..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/label.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char *label_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 3 1", -" c Gray0", -". c #b3cece", -"X c None", -/* pixels */ -"XXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXX XXXXXXXXX", -"XXXXXXXXX XXXXXXXXX", -"XXXXXXXXX XXXXXXXXX", -"XXXXXXXX XXXXXXXX", -"XXXXXXXX XXXXXXXX", -"XXXXXXXX XXXXXXX", -"XXXXXXX X XXXXXXX", -"XXXXXXX X XXXXXX", -"XXXXXX XX XXXXXX", -"XXXXXX XXXXX", -"XXXXX XXXXX", -"XXXXX XXXXX XXXXX", -"XXXX XXXXX XXXX", -"XXX XXXXX XXX", -"XXX XXX XXX", -"XXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXXXXXXX" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_lexer.mll b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_lexer.mll deleted file mode 100644 index 46aa5acc2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_lexer.mll +++ /dev/null @@ -1,46 +0,0 @@ -{ -open Load_parser -} - -rule token = parse - [ ' ' '\t' '\n']+ { token lexbuf } -| "" { WINDOW_END } -| "name" { NAME } -| '=' { EQUAL } -| '>' { SUP } - -| "<" ['A'-'Z' 'a'-'z' '0'-'9' '_']+ - { - let l = Lexing.lexeme lexbuf in - let s = String.sub l ~pos:1 ~len:(String.length l - 1) in - WIDGET_START s - } - -| "' - { - let l = Lexing.lexeme lexbuf in - let s = String.sub l ~pos:2 ~len:(String.length l - 3) in - WIDGET_END s - } - -| '"' [^ '"']* '"' - { - let l = Lexing.lexeme lexbuf in - let s = String.sub l ~pos:1 ~len:(String.length l - 2) in - IDENT s - } - -| '\'' [^ '\'']* '\'' - { - let l = Lexing.lexeme lexbuf in - let s = String.sub l ~pos:1 ~len:(String.length l - 2) in - IDENT s - } - -| ['A'-'Z' 'a'-'z' '0'-'9' '_' '.']+ - { - let s = Lexing.lexeme lexbuf in IDENT s - } - -| eof { EOF } diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_parser.mly b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_parser.mly deleted file mode 100644 index 09c7b7bf7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_parser.mly +++ /dev/null @@ -1,56 +0,0 @@ -%{ -open Utils -%} - -%token EOF NAME EQUAL SUP WINDOW_START WINDOW_END -%token WIDGET_START WIDGET_END IDENT - -%type window_start -%type property widget_start -%type <(string * string) list> property_list -%type widget window -%type children window_list project - -%start project -%start window -%start widget - -%% - -project : window_list EOF { List.rev $1 } - -window_list : { [] } - | window_list window { $2 :: $1 } -; - -window : window_start property_list children WINDOW_END - { - Node (("window", $1, List.rev $2), $3) - } -; - -window_start : WINDOW_START NAME EQUAL IDENT SUP { $4 } -; - -children : { [] } - | children widget { $2 :: $1 } -; - -widget : widget_start property_list children WIDGET_END - { - let classe, name = $1 in - if classe <> $4 then raise Parsing.Parse_error; - Node ((classe, name, List.rev $2), $3) - } -; - -widget_start : WIDGET_START NAME EQUAL IDENT SUP { $1, $4 } -; - -property_list : { [] } - | property_list property { $2 :: $1 } -; - -property : IDENT EQUAL IDENT { $1, $3 } -; - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/main.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/main.ml deleted file mode 100644 index cb150e086..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/main.ml +++ /dev/null @@ -1,393 +0,0 @@ -(* $Id$ *) - -open GdkKeysyms -open Gtk -open GObj - -open Utils -open TiBase - -let main_project_modify = ref false - -let main_window = GWindow.window ~title:"ZOOM" ~x:10 ~y:10 () -let main_vbox = GPack.vbox ~packing:main_window#add () -let main_menu = GMenu.menu_bar ~packing:(main_vbox#pack ~expand:false) () - -let can_copy = ref (fun _ -> assert false) -let can_paste = ref (fun _ -> assert false) - -class project () = - let project_box = GPack.vbox ~packing:main_vbox#pack () in - let project_tree = GTree2.tree ~packing:project_box#pack () in - object(self) - val mutable window_list = [] - -(* the selected window *) - val mutable selected = (None : window_and_tree option) - - method change_selected sel = - match selected with - | None -> - selected <- Some sel; - sel#project_tree_item#misc#set_state `SELECTED; - !can_copy true - | Some old_sel -> - if sel = old_sel then begin - selected <- None; - sel#project_tree_item#misc#set_state `NORMAL; - !can_copy false - end else begin - old_sel#project_tree_item#misc#set_state `NORMAL; - selected <- Some sel; - sel#project_tree_item#misc#set_state `SELECTED; - !can_copy true - end - - val mutable filename = "" - val mutable dirname = "" - - method set_filename f = - let dir, file = split_filename f ~ext:".rad" in - filename <- file; - dirname <- dir - - method get_filename () = - get_filename ~callback:self#set_filename ~dir:dirname () - - method dirname = dirname - -(* method set_dirname f = dirname <- f *) - - method add_window ~name ?tree:wt () = - let wt = match wt with - | None -> new window_and_tree ~name - | Some wt -> wt in - let tiwin = wt#tiwin and tw=wt#tree_window in - let project_tree_item = wt#project_tree_item in - project_tree#append project_tree_item; - let show = ref true in - project_tree_item#event#connect#button_press ~callback: - (fun ev -> - match GdkEvent.get_type ev with - | `BUTTON_PRESS -> - if GdkEvent.Button.button ev = 1 then begin - self#change_selected wt - end else - if GdkEvent.Button.button ev = 3 then begin - let menu = GMenu.menu () in - let name = wt#tiwin#name in - let mi_remove = GMenu.menu_item ~label:("delete " ^ name) - ~packing:menu#append () - and mi_copy = GMenu.menu_item ~label:("copy " ^ name) - ~packing:menu#append () - and mi_cut = GMenu.menu_item ~label:("cut " ^ name) - ~packing:menu#append () in - mi_remove#connect#activate - ~callback:(fun () -> self#delete_window wt); - mi_copy#connect#activate - ~callback:(fun () -> self#copy_wt wt); - mi_cut#connect#activate - ~callback:(fun () -> self#cut_wt wt); - menu#popup ~button:3 ~time:(GdkEvent.Button.time ev) - end; - GtkSignal.stop_emit (); - true - | `TWO_BUTTON_PRESS -> - if GdkEvent.Button.button ev = 1 then begin - if !show then begin - show := false; - tiwin#widget#misc#hide (); - tw#misc#hide () - end - else begin - show := true; - tiwin#widget#misc#show (); - tw#misc#show () - end - end; - true - | _ -> false); - tiwin#connect_event#delete ~callback: - (fun _ -> show := false; tiwin#widget#misc#hide (); true); - tw#event#connect#delete ~callback: - (fun _ -> show := false; tw#misc#hide (); true); - window_list <- wt :: window_list; - add_undo (Remove_window name); - main_window#misc#set_can_focus false; - main_window#misc#grab_focus () - - - method add_window_by_node - (Node ((classe, name, proplist), children)) = - if classe <> "window" - then failwith "add_window_by_node: class <> \"window\""; - let name = change_name name in (* for paste *) - let wt = new window_and_tree ~name in - let tiwin = wt#tiwin in - List.iter proplist ~f:(fun (n,v) -> tiwin#set_property n v); - begin match children with - | [] -> () - | [ ch ] -> tiwin#add_children_wo_undo ch; () - | _ -> failwith "add_window_by_node: more than one child" - end; - self#add_window ~name ~tree:wt () - - method delete_window (wt : window_and_tree) = - let tiwin = wt#tiwin in - project_tree#remove wt#project_tree_item; - tiwin#remove_me (); - wt#tree_window#destroy (); - window_list <- list_remove ~f:(fun w -> w = wt) window_list - - method delete_window_by_name ~name = - let wt = List.find window_list ~f:(fun wt -> wt#tiwin#name = name) in - self#delete_window wt - - method delete () = - List.iter window_list - ~f:(fun wt -> self#delete_window wt); - main_vbox#remove project_box#coerce; -(* remove after test *) - if !name_list <> [] then failwith "name_list not empty" - - method save_as () = if self#get_filename () then self#save () - - method save () = - if filename = "" then self#save_as () - else begin - let outch = open_out (dirname ^ filename ^ ".rad") in - let f = Format.formatter_of_out_channel outch in - List.iter window_list ~f:(fun wt -> wt#tiwin#save f); - close_out outch; - main_project_modify := false - end - - method copy_wt (wt : window_and_tree) = - wt#tiwin#copy (); - !can_paste true - - method cut_wt (wt : window_and_tree) = - self#copy_wt wt; - self#delete_window wt - - method copy () = - match selected with - | None -> failwith "main_project copy" - | Some sel -> self#copy_wt sel - - method cut () = - match selected with - | None -> failwith "main_project cut" - | Some sel -> self#cut_wt sel - - method paste () = - let lexbuf = Lexing.from_string !window_selection in - let node = Load_parser.window Load_lexer.token lexbuf in - self#add_window_by_node node - - method emit () = - let outc = open_out (dirname ^ filename ^ ".ml") in - let f = Format.formatter_of_out_channel outc in - List.iter window_list ~f:(fun wt -> wt#emit f); - Format.fprintf f "let main () =@\n"; -(* this is just for demo *) - List.iter window_list ~f: - begin fun wt -> - let name = wt#tiwin#name in - Format.fprintf f " let %s = new %s () in %s#show ();@\n" - name name name - end; - Format.fprintf f - " GMain.Main.main ()@\n@\nlet _ = main ()@\n"; - close_out outc - - end - - -let main_project = ref (new project ()) - -let load () = - let filename = ref "" in - get_filename ~callback:(fun f -> filename := f) ~dir:!main_project#dirname (); - if !filename <> "" then begin - !main_project#delete (); - main_project := new project (); - let inch = open_in !filename in - let lexbuf = Lexing.from_channel inch in - let project_list = Load_parser.project Load_lexer.token lexbuf in - close_in inch; - List.iter project_list - ~f:(fun node -> !main_project#add_window_by_node node); - !main_project#set_filename !filename - end - - -let interpret_undo = function - | Add (parent_name, node, pos) -> - let parent = Hashtbl.find widget_map parent_name in - parent#add_children node ~pos - | Remove child_name -> - let child = Hashtbl.find widget_map child_name in - child#remove_me () - | Property (property, value_string) -> - property#set value_string - | Add_window node -> !main_project#add_window_by_node node - | Remove_window name -> !main_project#delete_window_by_name ~name - -let undo () = - if !last_action_was_undo then begin - match !next_undo_info with - | hd :: tl -> interpret_undo hd; next_undo_info := tl - | [] -> message "no more undo info" - end - else begin - match !undo_info with - | hd :: tl -> interpret_undo hd; next_undo_info := tl - | [] -> message "no undo info" - end; - last_action_was_undo := true - - -let targets = [ { target = "STRING"; flags = []; info = 0} ] - -let xpm_window () = - let source_drag_data_get classe _ (data : selection_data) ~info ~time = - data#set ~typ:data#target ~format:0 ~data:classe in - let window = GWindow.window ~title:"icons" ~x:250 ~y:10 () in - window#misc#realize (); - let vbox = GPack.vbox ~packing:window#add () in - let table = GPack.table ~rows:1 ~columns:5 ~border_width:20 - ~packing:vbox#pack () in - let tooltips = GData.tooltips () in - let add_xpm ~file ~left ~top ~tip = - let gdk_pix = GDraw.pixmap_from_xpm ~file ~window () in - let ev = GBin.event_box ~packing:(table#attach ~left ~top) () in - let pix = GMisc.pixmap gdk_pix ~packing:ev#add () in - ev#event#connect#button_press ~callback: - (fun ev -> match GdkEvent.get_type ev with - | `BUTTON_PRESS -> - if GdkEvent.Button.button ev = 1 then begin - !main_project#add_window ~name:(make_new_name "window") () - end; - true - | _ -> false); - tooltips#set_tip ev#coerce ~text:tip - in - add_xpm ~file:"window.xpm" ~left:0 ~top:0 ~tip:"window"; - GMisc.separator `HORIZONTAL ~packing:vbox#pack (); - let table = GPack.table ~rows:6 ~columns:6 ~packing:vbox#pack - ~row_spacings:20 ~col_spacings:20 ~border_width:20 () in - let add_xpm file ~left ~top ~classe = - let gdk_pix = GDraw.pixmap_from_xpm ~file ~window () in - let ev = GBin.event_box ~packing:(table#attach ~left ~top) () in - let pix = GMisc.pixmap gdk_pix ~packing:ev#add () in - ev#drag#source_set ~modi:[`BUTTON1] targets ~actions:[`COPY]; - ev#drag#source_set_icon ~colormap:window#misc#style#colormap - gdk_pix; - ev#drag#connect#data_get ~callback:(source_drag_data_get classe); - tooltips#set_tip ev#coerce ~text:classe - in - - add_xpm "button.xpm" ~left:0 ~top:0 ~classe:"button"; - add_xpm "togglebutton.xpm" ~left:1 ~top:0 ~classe:"toggle_button"; - add_xpm "checkbutton.xpm" ~left:2 ~top:0 ~classe:"check_button"; - add_xpm "radiobutton.xpm" ~left:3 ~top:0 ~classe:"radio_button"; - add_xpm "toolbar.xpm" ~left:4 ~top:0 ~classe:"toolbar"; - add_xpm "hbox.xpm" ~left:0 ~top:1 ~classe:"hbox"; - add_xpm "vbox.xpm" ~left:1 ~top:1 ~classe:"vbox"; - add_xpm "hbuttonbox.xpm" ~left:2 ~top:1 ~classe:"hbutton_box"; - add_xpm "vbuttonbox.xpm" ~left:3 ~top:1 ~classe:"vbutton_box"; - add_xpm "fixed.xpm" ~left:4 ~top:1 ~classe:"fixed"; - add_xpm "frame.xpm" ~left:0 ~top:2 ~classe:"frame"; - add_xpm "aspectframe.xpm" ~left:1 ~top:2 ~classe:"aspect_frame"; - add_xpm "scrolledwindow.xpm" ~left:2 ~top:2 ~classe:"scrolled_window"; - add_xpm "eventbox.xpm" ~left:3 ~top:2 ~classe:"event_box"; - add_xpm "handlebox.xpm" ~left:4 ~top:2 ~classe:"handle_box"; - add_xpm "viewport.xpm" ~left:5 ~top:2 ~classe:"viewport"; - add_xpm "hseparator.xpm" ~left:0 ~top:3 ~classe:"hseparator"; - add_xpm "vseparator.xpm" ~left:1 ~top:3 ~classe:"vseparator"; - add_xpm "clist.xpm" ~left:2 ~top:3 ~classe:"clist"; - add_xpm "label.xpm" ~left:0 ~top:4 ~classe:"label"; - add_xpm "statusbar.xpm" ~left:1 ~top:4 ~classe:"statusbar"; - add_xpm "notebook.xpm" ~left:2 ~top:4 ~classe:"notebook"; - add_xpm "colorselection.xpm" ~left:3 ~top:4 ~classe:"color_selection"; - add_xpm "pixmap.xpm" ~left:4 ~top:4 ~classe:"pixmap"; - add_xpm "entry.xpm" ~left:0 ~top:5 ~classe:"entry"; - add_xpm "spinbutton.xpm" ~left:1 ~top:5 ~classe:"spin_button"; - add_xpm "combo.xpm" ~left:2 ~top:5 ~classe:"combo"; - - window#show (); - window - - -let main () = - let _ = GMain.Main.init () in - let prop_win = Propwin.init () in - let palette = xpm_window () in - main_window#show (); - main_window#connect#destroy ~callback:GMain.Main.quit; - - let mp = main_project in - let f = new GMenu.factory main_menu in - let accel_group = f#accel_group in - main_window#add_accel_group accel_group; - prop_win#add_accel_group accel_group; - palette#add_accel_group accel_group; - - let file_menu = new GMenu.factory (f#add_submenu "File") ~accel_group - and edit_menu = new GMenu.factory (f#add_submenu "Edit") ~accel_group - and view_menu = new GMenu.factory (f#add_submenu "View") ~accel_group - and project_menu = new GMenu.factory (f#add_submenu "Project") ~accel_group - in - - file_menu#add_item "Quit" ~key:_Q ~callback:GMain.Main.quit; - - project_menu#add_item "New" ~key:_N - ~callback:(fun () -> !mp#delete (); mp := new project ()); - project_menu#add_item "Open..." ~key:_O ~callback:load; - project_menu#add_item "Save" ~key:_S ~callback:(fun () -> !mp#save ()); - project_menu#add_item "Save as..." ~callback:(fun () -> !mp#save_as ()); - project_menu#add_separator (); - project_menu#add_item "Emit code" ~callback:(fun () -> !mp#emit ()); - - let copy_item = - edit_menu#add_item "Copy" ~key:_C ~callback:(fun () -> !mp#copy ()) - and cut_item = - edit_menu#add_item "Cut" ~key:_X ~callback:(fun () -> !mp#cut ()) - and paste_item = - edit_menu#add_item "Paste" ~key:_V ~callback:(fun () -> !mp#paste ()) - in - can_copy := - (fun b -> copy_item#misc#set_sensitive b; cut_item#misc#set_sensitive b); - can_paste := paste_item#misc#set_sensitive; - !can_copy false; !can_paste false; - edit_menu#add_item "Undo" ~key:_Z ~callback:undo; - - let palette_visible = ref true in - palette#event#connect#delete ~callback: - (fun _ -> palette_visible := false; palette#misc#hide (); true); - view_menu#add_item "Palette" - ~callback:(fun () -> - if !palette_visible then begin - palette#misc#hide (); - palette_visible := false - end else begin - palette#misc#show (); - palette_visible := true - end); - let prop_win_visible = ref true in - prop_win#event#connect#delete ~callback: - (fun _ -> prop_win_visible := false; prop_win#misc#hide (); true); - view_menu#add_item "Properties window" - ~callback:(fun () -> - if !prop_win_visible then begin - prop_win#misc#hide (); - prop_win_visible := false - end else begin - prop_win#misc#show (); - prop_win_visible := true - end); - - GMain.Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/ml_gtk2.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/ml_gtk2.c deleted file mode 100644 index 49ce27bbe..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/ml_gtk2.c +++ /dev/null @@ -1,124 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include - -#include "../../wrappers.h" -#include "../../ml_glib.h" -#include "../../ml_gdk.h" -#include "../../ml_gtk.h" -#include "../../gtk_tags.h" - -#include "gtktree2.h" -#include "gtktreeitem2.h" - -#include - -value Val_GtkObject_sink (GtkObject *); - -#define Val_GtkAny(w) Val_GtkObject((GtkObject*)w) -#define Val_GtkAny_sink(w) Val_GtkObject_sink((GtkObject*)w) - -#define GtkWidget_val(val) check_cast(GTK_WIDGET,val) - -/* gtkwidget.h */ - - -#define Val_GtkWidget Val_GtkAny -#define Val_GtkWidget_sink Val_GtkAny_sink - - -/* gtktreeitem2.h */ - -#define GtkTreeItem2_val(val) check_cast(GTK_TREE_ITEM2,val) -ML_0 (gtk_tree_item2_new, Val_GtkWidget_sink) -ML_1 (gtk_tree_item2_new_with_label, String_val, Val_GtkWidget_sink) -ML_2 (gtk_tree_item2_set_subtree, GtkTreeItem2_val, GtkWidget_val, Unit) -ML_1 (gtk_tree_item2_remove_subtree, GtkTreeItem2_val, Unit) -ML_1 (gtk_tree_item2_expand, GtkTreeItem2_val, Unit) -ML_1 (gtk_tree_item2_collapse, GtkTreeItem2_val, Unit) -ML_1 (GTK_TREE_ITEM2_SUBTREE, GtkTreeItem2_val, Val_GtkWidget) - -/* gtktree2.h */ - -#define GtkTree2_val(val) check_cast(GTK_TREE2,val) -ML_0 (gtk_tree2_new, Val_GtkWidget_sink) -ML_3 (gtk_tree2_insert, GtkTree2_val, GtkWidget_val, Int_val, Unit) -ML_3 (gtk_tree2_clear_items, GtkTree2_val, Int_val, Int_val, Unit) -ML_2 (gtk_tree2_select_item, GtkTree2_val, Int_val, Unit) -ML_2 (gtk_tree2_unselect_item, GtkTree2_val, Int_val, Unit) -ML_2 (gtk_tree2_select_child, GtkTree2_val, GtkWidget_val, Unit) -ML_2 (gtk_tree2_unselect_child, GtkTree2_val, GtkWidget_val, Unit) -ML_2 (gtk_tree2_child_position, GtkTree2_val, GtkWidget_val, Val_int) - -/* -ML_2 (gtk_tree2_set_selection_mode, GtkTree2_val, Selection_mode_val, Unit) -ML_2 (gtk_tree2_set_view_mode, GtkTree2_val, Tree_view_mode_val, Unit) -*/ - -ML_2 (gtk_tree2_set_view_lines, GtkTree2_val, Bool_val, Unit) -ML_2 (gtk_tree2_item_up, GtkTree2_val, Int_val, Unit) -ML_3 (gtk_tree2_select_next_child, GtkTree2_val, GtkWidget_val, Bool_val, Unit) -ML_2 (gtk_tree2_select_prev_child, GtkTree2_val, GtkWidget_val, Unit) - -static value val_gtkany (gpointer p) { return Val_GtkAny(p); } -value ml_gtk_tree2_selection (value tree) -{ - GList *selection = GTK_TREE2_SELECTION(GtkTree2_val(tree)); - return Val_GList(selection, val_gtkany); -} -static gpointer gtkobject_val (value val) { return GtkObject_val(val); } -value ml_gtk_tree2_remove_items (value tree, value items) -{ - GList *items_list = GList_val (items, gtkobject_val); - gtk_tree2_remove_items (GtkTree2_val(tree), items_list); - return Val_unit; -} - -value ml_gtk_tree2_children (value tree) -{ - GList *children = (GtkTree2_val(tree))->children; - return Val_GList(children, val_gtkany); -} - - - -#define GtkToolbar_val(val) check_cast(GTK_TOOLBAR,val) -/* sets the text of the label of a button; creates the label - if necessary */ -value ml_gtk_toolbar2_set_text (value toolbar, value text, value pos) -{ - GtkToolbar *t = GtkToolbar_val(toolbar); - GtkToolbarChild *ch = (GtkToolbarChild *)g_list_nth_data (t->children, Int_val(pos)); - GtkWidget *label = ch->label; - - if (label) - gtk_label_set_text (GTK_LABEL(label), String_val(text)); - else { - label = ch->label = gtk_label_new (String_val(text)); - gtk_box_pack_end (GTK_BOX (GTK_BIN(ch->widget)->child), label, FALSE, FALSE, 0); - if (t->style != GTK_TOOLBAR_ICONS) - gtk_widget_show (label); - } - - return Val_unit; -} - -value ml_gtk_toolbar2_set_icon (value toolbar, value icon, value pos) -{ - GtkToolbar *t = GtkToolbar_val(toolbar); - GtkToolbarChild * ch = - (GtkToolbarChild *)g_list_nth_data (t->children, Int_val(pos)); - GtkWidget *vbox = GTK_BIN(ch->widget)->child; - gtk_container_remove (GTK_CONTAINER(vbox), ch->icon); - ch->icon = GtkWidget_val(icon); - gtk_box_pack_end (GTK_BOX (vbox), ch->icon, FALSE, FALSE, 0); - if (t->style != GTK_TOOLBAR_TEXT) - gtk_widget_show (ch->icon); - - return Val_unit; -} diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/notebook.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/notebook.xpm deleted file mode 100644 index 77ac20d6c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/notebook.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *notebook_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+OOOOOO.OOOO.OOOO.+++", -"+OXXXXX.X.X..X.X..+++", -"+OXXXXX..X.X..X.X.+++", -"+OXXXXX.X.X..X.X..+++", -"+OXXXXX.OOOOOOOOOOO +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+O................. +", -"+ +", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/pixmap.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/pixmap.xpm deleted file mode 100644 index d76a5ec81..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/pixmap.xpm +++ /dev/null @@ -1,39 +0,0 @@ -/* XPM */ -static char *pixmap_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 12 1", -" c Gray0", -". c #007b00", -"X c #7b7b7b", -"o c Blue", -"O c Green", -"+ c Cyan", -"@ c Yellow", -"# c #d6d6d6", -"$ c #b3cece", -"% c Gray87", -"& c Gray100", -"* c None", -/* pixels */ -"*********************", -"*********************", -"*********************", -"* ", -"* +++++%%%&+++++++++ ", -"* +&&&++%%++&+++XX++ ", -"* +++++++%+++++X@@X+ ", -"* ++&&++++XX+++X@@X+ ", -"* +++++++ XXX&++XX++ ", -"* &+++++XXXXXX++++&+ ", -"* +++++ +++++ ", -"* +++++ ###### +++++ ", -"* +++++ #o##o# +++++ ", -"* ..... ###### ..... ", -"* OOOOO ##oo## OOOOO ", -"* OOOOO ##oo## OOOOO ", -"* OOOOO OOOOO ", -"* OOOOOOOOOOOOOOOOOO ", -"* ", -"*********************", -"*********************" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.ml deleted file mode 100644 index 829e40b7c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.ml +++ /dev/null @@ -1,175 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GEdit -open GData -open GPack -open GMisc -open GWindow - -open Common -open Utils - -(* external id : 'a -> 'a = "%identity" *) - -class virtual vprop ~name ~init ~set = - object (self) - val mutable s : string = init - val name : string = name - method private virtual parse : string -> 'a - method get = s - method set s' = - if s' <> s then begin - let v = self#parse s' in - if (set v) then begin - add_undo (Property ((self :> prop), s)); - s <- s' - end - end - method modified = s <> init - method name = name - method code = s - method virtual range : range - method save_code = self#code - end - -let invalid_prop kind name s = - invalid_arg (Printf.sprintf "Property.%s(%s) <- %s" kind name s) - -class prop_enum ~values ~name ~init ~set = - object (self) - inherit vprop ~name ~init ~set - method private parse s = - try List.assoc s values - with Not_found -> invalid_prop "enum" name s - method range = Enum (List.map ~f:fst values) - end - -(* used for radio_button groups; there is nothing to do - in radtest when setting a radio_button group, only when writing - code or saving *) -class prop_enum_dyn ~values ~name ~init ~set = - object (self) - inherit vprop ~name ~init ~set - method private parse s = () - method range = Enum (values ()) - end - -let bool_values = - [ "true", true; "false", false ] - -let shadow_type_values : (string * Tags.shadow_type) list = - [ "NONE", `NONE; "IN", `IN; "OUT", `OUT; - "ETCHED_IN", `ETCHED_IN; "ETCHED_OUT", `ETCHED_OUT ] - -let policy_type_values : (string * Tags.policy_type) list = - [ "ALWAYS", `ALWAYS; "AUTOMATIC", `AUTOMATIC ] - -let orientation_values : (string * Tags.orientation) list = - [ "HORIZONTAL", `HORIZONTAL; "VERTICAL", `VERTICAL ] - -let toolbar_style_values : (string * Tags.toolbar_style) list = - [ "ICONS", `ICONS; "TEXT", `TEXT; "BOTH", `BOTH ] - -let toolbar_space_style_values : (string * [`EMPTY | `LINE]) list = - [ "EMPTY", `EMPTY; "LINE", `LINE ] - -let relief_style_values : (string * Tags.relief_style) list = - [ "NORMAL", `NORMAL; "HALF", `HALF; "NONE", `NONE ] - -let position_values : (string * Tags.position) list = - [ "LEFT", `LEFT; "RIGHT", `RIGHT; "TOP", `TOP; "BOTTOM", `BOTTOM ] - -let combo_use_arrows_values : (string * [ `NEVER | `DEFAULT | `ALWAYS ]) list = -[ "NEVER", `NEVER; "DEFAULT", `DEFAULT; "ALWAYS", `ALWAYS ] - -let spin_button_update_policy_values : - (string * Tags. spin_button_update_policy) list = - [ "ALWAYS", `ALWAYS; "IF_VALID", `IF_VALID ] - -let button_box_style_values : (string * Tags.button_box_style) list = - [ "DEFAULT_STYLE", `DEFAULT_STYLE; "SPREAD", `SPREAD; "EDGE", `EDGE; - "START", `START; "END", `END ] - -let update_type_values : (string * Tags.update_type) list = - [ "CONTINUOUS", `CONTINUOUS; "DISCONTINUOUS", `DISCONTINUOUS; - "DELAYED", `DELAYED ] - - -class prop_bool = prop_enum ~values:bool_values - -(* -class prop_variant ~values ~name ~init ~set : prop = - object - inherit prop_enum ~values ~name ~init ~set - method code = "`" ^ s - end -*) - -class prop_shadow = prop_enum ~values:shadow_type_values -class prop_policy = prop_enum ~values:policy_type_values -class prop_orientation = prop_enum ~values:orientation_values -class prop_toolbar_style = prop_enum ~values:toolbar_style_values -class prop_toolbar_space_style = prop_enum ~values:toolbar_space_style_values -class prop_relief_style = prop_enum ~values:relief_style_values -class prop_position = prop_enum ~values:position_values -class prop_combo_use_arrows = prop_enum ~values:combo_use_arrows_values -class prop_spin_button_update_policy = prop_enum - ~values:spin_button_update_policy_values -class prop_button_box_style = prop_enum ~values:button_box_style_values -class prop_update_type = prop_enum ~values:update_type_values - -class prop_int ~name ~init ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse s = - try int_of_string s with _ -> invalid_prop "int" name s - method range = Int - end - -(* NB: float_of_string doesn't raise an exception in case of error *) -class prop_float ~name ~init ~min ~max ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse s = - try float_of_string s with _ -> invalid_prop "float" name s - method code = - if String.contains s '.' || String.contains s 'e' then s - else s ^ ".0" - method range = Float(min,max) - end - -class prop_string ~name ~init ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse s = s - method range = String - method code = "\"" ^ String.escaped s ^ "\"" - end - -class prop_adjustment ~name ~init ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse = get5floats_from_string - method range = Adjust - end - -class prop_clist_titles ~name ~init ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse = split_string ~sep:' ' - method range = CList_titles - method code = "[ \"" ^ - String.concat ~sep:"\"; \"" (split_string ~sep:' ' s) ^ "\" ]" - method save_code = "\"" ^ s ^ "\"" - end - -class prop_file ~name ~init ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse s = s - method range = File - method code = "\"" ^ String.escaped s ^ "\"" - end - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.mli deleted file mode 100644 index ccf265077..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.mli +++ /dev/null @@ -1,96 +0,0 @@ -(* $Id$ *) - -open Gtk.Tags -open Common - -class virtual vprop : - name:string -> (* property's name *) - init:string -> (* default value *) - set:('a -> bool) -> - object - val name : string - val mutable s : string - method code : string (* encoded value *) - method get : string - method modified : bool - method name : string - method private virtual parse : string -> 'a - method virtual range : range - method save_code : string - method set : string -> unit - end - -class prop_int : - name:string -> init:string -> set:(int -> bool) -> prop - -class prop_float : - name:string -> - init:string -> min:float -> max:float -> set:(float -> bool) -> prop - -class prop_string : - name:string -> init:string -> set:(string -> bool) -> prop - -class prop_bool : - name:string -> init:string -> set:(bool -> bool) -> prop -(* -class prop_variant : - values:(string * 'a) list -> - name:string -> init:string -> set:('a -> bool) -> prop -*) -class prop_shadow : - name:string -> init:string -> set:(shadow_type -> bool) -> prop - -class prop_policy : - name:string -> init:string -> set:(policy_type -> bool) -> prop - -class prop_orientation : - name:string -> - init:string -> set:(Gtk.Tags.orientation -> bool) -> prop - -class prop_toolbar_style : - name:string -> - init:string -> set:(Gtk.Tags.toolbar_style -> bool) -> prop - -class prop_toolbar_space_style : - name:string -> init:string -> set:([ `EMPTY | `LINE] -> bool) -> prop - -class prop_relief_style : - name:string -> - init:string -> set:(Gtk.Tags.relief_style -> bool) -> prop - -class prop_position : - name:string -> - init:string -> set:(Gtk.Tags.position -> bool) -> prop - -class prop_combo_use_arrows : - name:string -> - init:string -> set:([ `NEVER | `DEFAULT | `ALWAYS] -> bool) -> prop - -class prop_spin_button_update_policy : - name:string -> - init:string -> set:(Gtk.Tags.spin_button_update_policy -> bool) -> prop - -class prop_button_box_style : - name:string -> - init:string -> set:(Gtk.Tags.button_box_style -> bool) -> prop - -class prop_update_type : - name:string -> - init:string -> set:(Gtk.Tags.update_type -> bool) -> prop - -class prop_enum_dyn : - values:(unit -> string list) -> name:string -> - init:string -> set:(unit -> bool) -> prop - -class prop_adjustment : - name:string -> init:string -> - set:(float * float * float * float * float -> bool) -> prop - -class prop_clist_titles : - name:string -> init:string -> - set:(string list -> bool) -> prop - -class prop_file : - name:string -> init:string -> set:(string -> bool) -> prop - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.ml deleted file mode 100644 index 2f8b29151..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.ml +++ /dev/null @@ -1,180 +0,0 @@ -(* $Id$ *) - -open GObj - -open Common -open Utils - -class type tiwidget_base = object - method name : string - method proplist : (string * prop) list -end - -let prop_widget (prop : prop) = - match prop#range with - Enum l -> - let w = GEdit.combo ~popdown_strings:l ~use_arrows:`ALWAYS () in - w#entry#connect#changed ~callback:(fun () -> prop#set w#entry#text); - w#entry#set_editable false; - w#entry#set_text prop#get; - w#coerce - | String -> - let w = GEdit.entry ~text:prop#get () in - w#connect#activate ~callback:(fun () -> prop#set w#text); - w#coerce - | File -> - let w = GPack.hbox () in - let e = GEdit.entry ~text:prop#get ~editable:false ~packing:w#pack () in - let b = GButton.button ~label:"..." ~packing:w#pack () in - b#connect#clicked - ~callback:(fun () -> get_filename - ~callback:(fun name -> e#set_text name; prop#set name) (); ()); - w#coerce - | Int -> - let adjustment = - GData.adjustment ~value:(float_of_string prop#get) - ~lower:(-2.) ~upper:5000. ~step_incr:1. ~page_incr:10. ~page_size:0. () - in - let w = GEdit.spin_button ~rate:0.5 ~digits:0 ~adjustment () in - w#connect#activate - ~callback:(fun () -> prop#set (string_of_int w#value_as_int)); - w#coerce - | Float (lower, upper) -> -(* let adjustment = - GData.adjustment ~value:(float_of_string prop#get) - ~lower ~upper ~step_incr:((upper-.lower)/.100.) - ~page_incr:((upper-.lower)/.10.) ~page_size:0. () - in - let w = GEdit.spin_button ~rate:0.5 ~digits:2 ~adjustment () in - w#connect#activate - ~callback:(fun () -> prop#set (string_of_float w#value)); - w#coerce -*) - let w = entry_float ~init:(float_of_string prop#get) () in - w#connect#activate - ~callback:(fun () -> prop#set (string_of_float w#value)); - w#coerce -(* | Adjust -> - let wpop = GWindow.window ~title:"Adjustment values" () in - let vb = GPack.vbox ~packing:wpop#add() in - let hb1 = GPack.hbox ~packing:vb#pack () in - let l1 = GMisc.label ~text:"lower" ~packing:hb1#pack () in - let e1 = entry_float ~packing:hb1#pack - ~init:(float_of_string prop#get) ~set:prop#set in -*) - | CList_titles -> - let wpop = GWindow.window ~title:"titles of the columns" () in - let vb = GPack.vbox ~packing:wpop#add () in - let titles = split_string prop#get ~sep:' ' in - let n = List.length titles in - let rtitles = ref titles in - let rget = ref [] and rset = ref [] in - for i = 1 to n do - match !rtitles with - | hd::tl -> - let hb = GPack.hbox ~packing:vb#pack () in - let _ = GMisc.label ~text:("column" ^ (string_of_int i)) - ~packing:hb#pack () in - let e = GEdit.entry ~text:hd ~packing:hb#pack () in - rtitles := tl; - rget := (fun () -> e#text) :: !rget; - rset := e#set_text :: !rset; - | _ -> failwith "CList_titles: this cannot happen!!" - done; - rtitles := titles; - rget := List.rev !rget; - rset := List.rev !rset; - let hb = GPack.hbox ~packing:vb#pack () in - let ok = GButton.button ~label:"OK" ~packing:hb#pack () in - let cancel = GButton.button ~label:"Cancel" ~packing:hb#pack () in - ok#connect#pressed - ~callback:(fun () -> - let tit = List.map ~f:(fun f -> f ()) !rget in - prop#set (String.concat ~sep:" " tit); - rtitles := tit; - wpop#misc#hide ()); - cancel#connect#pressed - ~callback:(fun () -> - wpop#misc#hide (); - List.iter2 ~f:(fun f v -> f v) !rset !rtitles); - let e = GEdit.entry ~text:"double click here" ~editable:false () in - e#event#connect#button_press ~callback: - (fun ev -> - GdkEvent.get_type ev = `TWO_BUTTON_PRESS && - GdkEvent.Button.button ev = 1 && - begin - wpop#misc#show (); - GtkSignal.stop_emit (); - true - end); - e#coerce - -let prop_box list = - let vbox = GPack.vbox () in - List.iter list ~f: - begin fun (name, prop) -> - let hbox = - GPack.hbox ~homogeneous:true ~packing:(vbox#pack ~expand:false) () in - GMisc.label ~text:name ~packing:hbox#pack (); - hbox#pack ~fill:true (prop_widget prop); - GMisc.separator `HORIZONTAL ~packing:(vbox#pack ~expand:false) (); - () - end; - vbox - -class ['a] frozen lz = object - method get : 'a = Lazy.force lz -end - -let vbox = - new frozen (lazy (GWindow.window ~show:true ~title:"Properties" ())) - -let init () = vbox#get - -let widget_pool = Hashtbl.create 7 - -let boxref = ref None -let shown_widget = ref "" - -let show_prop_box vb = - Gaux.may !boxref ~f:vbox#get#remove; - vbox#get#add vb#coerce; - boxref := Some vb#coerce - -let show (w : #tiwidget_base) = - let name = w#name in - let vb = - try - Hashtbl.find widget_pool name - with Not_found -> - let vb = prop_box w#proplist in - Hashtbl.add widget_pool ~key:name ~data:vb; - vb - in - show_prop_box vb; - shown_widget := name - -let add (w : #tiwidget_base) = - let vb = prop_box w#proplist in - Hashtbl.add widget_pool ~key:w#name ~data:vb - - -let remove name = - Hashtbl.remove widget_pool name; - if !shown_widget = name then begin - shown_widget := ""; - show_prop_box (GMisc.label ~text:"No widget selected" ()) - end - -(* -let change_name oldname newname = - let vb = Hashtbl.find widget_pool oldname in - Hashtbl.remove widget_pool oldname; - Hashtbl.add widget_pool ~key:newname ~data:vb -*) - -let update (w : #tiwidget_base) show_modif = - let vb = prop_box w#proplist in - Hashtbl.remove widget_pool w#name; - Hashtbl.add widget_pool ~key:w#name ~data:vb; - if show_modif && !shown_widget = w#name then show_prop_box vb diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.mli deleted file mode 100644 index 6636a4f6f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.mli +++ /dev/null @@ -1,10 +0,0 @@ -(* $Id$ *) - -open Common - -val init : unit -> GWindow.window -val show : #tiwidget_base -> unit -val add : #tiwidget_base -> unit -val remove : string -> unit -(* val change_name : string -> string -> unit *) -val update : #tiwidget_base -> bool -> unit diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/radiobutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/radiobutton.xpm deleted file mode 100644 index 0f5fbbd45..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/radiobutton.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *radiobutton_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"++++++++++.++++++++++", -"+++++++++...+++++++++", -"++++++++.. ..++++++++", -"+++++++.. X ..+++++++", -"++++++.. XXX ..++++++", -"+++++.. XXXXX ..+++++", -"++++++OOXXXXXOO++++++", -"+++++++OOXXXOO+++++++", -"++++++++OOXOO++++++++", -"+++++++++OOO+++++++++", -"++++++++++O++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/scrolledwindow.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/scrolledwindow.xpm deleted file mode 100644 index 44e59f610..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/scrolledwindow.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char *scrolledwindow_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 3 1", -" c Gray0", -". c #d6d6d6", -"X c Gray100", -/* pixels */ -"XXXXXXXXXXXXXXXXXXXXX", -"X.............X..... ", -"X.............X.. .. ", -"X.............X. . ", -"X.............X..... ", -"X.............X ", -"X.............XXXXXX ", -"X.............XX.... ", -"X.............XX.... ", -"X.............XXXXXX ", -"X.............X..... ", -"X.............X. . ", -"X.............X.. .. ", -"X.............X..... ", -"XXXXXXXXXXXXXXX ", -"X.... XXX .... ......", -"X.. . X.. . .. ......", -"X. . X.. . . ......", -"X.. . X.. . .. ......", -"X.... X.. .... ......", -"X ......" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/spinbutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/spinbutton.xpm deleted file mode 100644 index f3a313b19..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/spinbutton.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *spinbutton_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+ +", -"+ OOOOOOOOOOO OOOOO +", -"+ OOOOOOOOOOO OX X. +", -"+ OOOOOOOOOOO O . +", -"+ OOOOOOOOOOO OOOOO +", -"+ OOOOOOOOOOO O . +", -"+ OOOOOOOOOOO OX X. +", -"+ OOOOOOOOOOO ..... +", -"+ +", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/statusbar.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/statusbar.xpm deleted file mode 100644 index 8576d88c6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/statusbar.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char *statusbar_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 7 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray87", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@+XX.@@@@@@@@@@@@@@", -"@@@+XX.@@@@@@@@@@@@@@", -"@@@+XX.@@@@@@@@@@@@@@", -"@@@+XX.@@@@@@@@@@@@@@", -"@@@+XX++++++++++++@@@", -"@@@+XXXXXXXXXXXXXX@@@", -"@@@+XXXXXXXXXXXXXX@@@", -"@@@+XX............@@@", -"@@@+XX.OOOOOOOOOOO@@@", -"@@@+XX.OOOOOOOOOOO@@@", -"@@@+XX.OOOOOOOOOOO@@@", -"@@@+XX++++++++++++@@@", -"@@@+XXXXXXXXXXXXXX@@@", -"@@@+XXXXXXXXXXXXXX@@@", -"@@@ @@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBase.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBase.ml deleted file mode 100644 index 390749337..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBase.ml +++ /dev/null @@ -1,671 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GObj -open GContainer - -open Utils -open Common -open Property - -(* possible children; used to make the menus *) -let widget_add_list = - [ "vbox"; "hbox"; "vbutton_box"; "hbutton_box"; "fixed"; - "frame"; "aspect_frame"; "handle_box"; "event_box"; - "hseparator"; "vseparator"; "statusbar"; "label"; "notebook"; - "color_selection"; - "button"; - "toggle_button"; "check_button"; "radio_button"; "scrolled_window"; - - "entry"; "spin_button"; "combo"; "clist"; "toolbar"] - - -(*********** selection ***********) - -let selection = ref "" -let window_selection = ref "" - - -(**************** signals class ***************) - -class tiwidget_signals ~signals = - let name_changed : string signal = signals in - object - val after = false - method after = {< after = true >} - method name_changed = name_changed#connect ~after - end - - -(************* class type ***************) -(* the ti classes encapsulate the corresponding gtk - widget which will be in the gtk-window and a tree item - labelled with the name of the widget which will be in the - tree-window. - all these classes have the same following interface *) - -class virtual tiwidget0 = object - method virtual widget : GObj.widget - method virtual connect_event : GObj.event_signals - method virtual parent : tiwidget0 option - method virtual set_parent : tiwidget0 -> unit - method virtual base : GObj.widget - method virtual tree_item : GTree2.tree_item - method virtual tree : GTree2.tree - method virtual children : (tiwidget0 * Gtk.Tags.pack_type) list - method virtual name : string - method virtual proplist : (string * prop) list - method virtual add_to_proplist : (string * prop) list -> unit - method virtual change_name_in_proplist : string -> string -> unit - method virtual set_property : string -> string -> unit - method virtual forall : callback:(tiwidget0 -> unit) -> unit - method virtual remove : tiwidget0 -> unit -(* method virtual add_child_with_name : string -> string -> pos:int -> tiwidget0 *) - method virtual add_children : ?pos:int -> yywidget_tree -> unit - method virtual add_children_wo_undo : ?pos:int -> yywidget_tree -> string - method virtual remove_me : unit -> unit - method virtual remove_me_without_undo : unit -> unit - method virtual emit_code : Format.formatter -> char list -> unit - method virtual emit_init_code : Format.formatter -> packing:string -> unit - method virtual emit_method_code : Format.formatter -> unit - method virtual emit_initializer_code : Format.formatter -> unit - method virtual save : Format.formatter -> unit - method virtual copy : unit -> unit - method virtual connect : tiwidget_signals - method virtual disconnect : GtkSignal.id -> bool - method virtual child_up : tiwidget0 -> unit - method virtual up : unit -> unit - method virtual child_down : tiwidget0 -> unit - method virtual down : unit -> unit - method virtual next : tiwidget0 - method virtual next_child : tiwidget0 -> tiwidget0 - method virtual last : tiwidget0 - method virtual prev : tiwidget0 - method virtual set_full_menu : bool -> unit -end - -class virtual window_and_tree0 = object - method virtual tiwin : tiwidget0 -(* method virtual tree_window : window *) - method virtual change_selected : tiwidget0 -> unit - method virtual remove_sel : tiwidget0 -> unit - method virtual add_param : char - method virtual remove_param : char -> unit -(* method virtual emit : unit -> unit *) -end - -(* forward declaration of function new_widget *) -let new_tiwidget : - (classe:string -> ?pos:int -> name:string ->parent_tree:GTree2.tree -> - ?insert_evbox:bool -> ?listprop:(string * string) list -> window_and_tree0 -> tiwidget0) ref = - ref (fun ~classe ?pos ~name ~parent_tree ?insert_evbox ?listprop w -> failwith "new_tiwidget") - - -let widget_map = Hashtbl.create 17 - -(* list of names of radio_buttons (for groups) *) -let radio_button_pool = ref [] - - -(************* window creation class *************) -(* an instance of this class is created for each window opened - in radtest. It contains the tree window and the gtk window (tiwin) *) - -class window_and_tree ~name = - let tree_window = GWindow.window ~show:true ~title:(name ^ "-Tree") () in - let vbox = GPack.vbox ~spacing:2 ~packing:tree_window#add () in - let root_tree = GTree2.tree ~packing:vbox#pack ~selection_mode:`EXTENDED () in - let project_tree_item = GTree2.tree_item () in - let label = GMisc.label ~text:name ~xalign:0. ~yalign:0.5 - ~packing:project_tree_item#add () in - - object(self) - - inherit window_and_tree0 - -(* the params of the window class; because the class clist needs a param - I suppose there will be no more than 26 clists in a single window *) - val param_list = Array.create 26 false - - method add_param = - let i = ref 0 in - while param_list.(!i) do incr i done; - param_list.(!i) <- true; - char_of_int (97 + !i) - - method remove_param c = - param_list.(int_of_char c - 97) <- false - - method private param_list = - let r = ref [] in - for i = 25 downto 0 do - if Array.unsafe_get param_list i then r := (char_of_int (i+97)) :: !r - done; - !r - -(* I use magic here because the real initialization is done - below in the initializer part. It can't be done here because - of the call to self *) - val mutable tiwin = (Obj.magic 0 : tiwidget0) - - method tiwin = tiwin - method tree_window = tree_window - - method project_tree_item = project_tree_item - -(* the selected item in this window *) - val mutable selected = (None : tiwidget0 option) - -(* what to do when a new item is selected. - this method is passed to all the tiwidgets (by the select_fun - parameter) and they will call it when they are clicked on; - she is also called when changing the selection the arrow keys - (see in the initializer part) *) - method change_selected sel = - match selected with - | None -> - selected <- Some sel; - sel#tree_item#misc#set_state `SELECTED; - sel#base#misc#set_state `SELECTED; - Propwin.show sel - | Some old_sel -> - if sel = old_sel then begin - selected <- None; - sel#base#misc#set_state `NORMAL; - sel#tree_item#misc#set_state `NORMAL - end else begin - old_sel#tree_item#misc#set_state `NORMAL; - old_sel#base#misc#set_state `NORMAL; - selected <- Some sel; - sel#tree_item#misc#set_state `SELECTED; - sel#base#misc#set_state `SELECTED; - Propwin.show sel - end - -(* the tiwidget tiw is being removed; if it was selected, - put the selection to None *) - method remove_sel tiw = - match selected with - | Some sel when sel = tiw -> selected <- None - | _ -> () - -(* emits the code corresponding to this window *) - method emit c = tiwin#emit_code c self#param_list; - - method delete () = - tiwin#remove_me_without_undo (); - tree_window#destroy (); - - initializer - tiwin <- !new_tiwidget ~classe:"window" ~name ~parent_tree:root_tree - (self : #window_and_tree0 :> window_and_tree0); - - tiwin#connect#name_changed ~callback: - (fun n -> label#set_text n; tree_window#set_title (n ^ "-Tree")); - - Propwin.show tiwin; - - tree_window#event#connect#key_press ~callback: - begin fun ev -> - let state = GdkEvent.Key.state ev in - let keyval = GdkEvent.Key.keyval ev in - if keyval = GdkKeysyms._Up then begin - match selected with - | None -> () - | Some t -> - if List.mem `CONTROL state then t#up () - else try - self#change_selected t#prev - with Not_found -> () - end - else if keyval = GdkKeysyms._Down then begin - match selected with - | None -> () - | Some t -> - if List.mem `CONTROL state then t#down () - else try - self#change_selected t#next - with Not_found -> () - end; - GtkSignal.stop_emit (); - true - end; - () - end - - - -(***************** class implementation *****************) -(* this is the base class of the ti hierarchy. - all these classes will inherit from tiwidget, but without - adding new methods. In this way all the classes have the - same interface and we can use them in lists, pass them to - functions without caring on the type. - All methods needed by any of the classes are defined in - tiwidget but if a method is not pertinent in tiwidget - it has for implementation: - failwith "" - the real implementation of the method is done in the - class (or classes) in which it is needed (or sometimes - in tiwidget anyway). - Additionally, to workaround some problem with recursive types - the type of the (public) methods of tiwidget is defined in - tiwidget0 of which tiwidget inherits. - The parent_tree parameter is the tree in which the - tiwidget#tree_item will be inserted at position :pos. -*) - -class virtual tiwidget ~name ~parent_tree:(parent_tree : GTree2.tree) ~pos - ~widget ?(insert_evbox=true) (parent_window : window_and_tree0) = -object(self) - - inherit tiwidget0 - inherit has_ml_signals - - val evbox = - if insert_evbox then - let ev = GBin.event_box () in ev#add widget#coerce; Some ev - else None - -(* used only for windows delete_event *) - method connect_event = failwith "tiwidget::connect_event" - - val widget = widget#coerce - method widget = widget - - val mutable parent = None - method set_parent p = parent <- Some p - method parent = parent - method private sure_parent = - match parent with - | None -> failwith "sure_parent" - | Some p -> p - - method base = - match evbox with - | None -> widget#coerce - | Some ev -> ev#coerce - -(* this is the name used in new_tiwidget for the creation - of an object of this class *) - val mutable classe = "" - - val tree_item = GTree2.tree_item () - method tree_item = tree_item - - val mutable stree = GTree2.tree () - method tree = stree - - val label = GMisc.label ~text:name ~xalign:0. ~yalign:0.5 () - - val mutable name : string = name - method name = name - -(* this is the complete name for the creation of the widget - in lablgtk e.g. GPack.vbox; used in emit_init_code *) - method private class_name = "" - - val mutable proplist : (string * prop) list = [] - method proplist = proplist - method private get_mandatory_props = [] - - method add_to_proplist plist = proplist <- proplist @ plist - -(* for children of a box *) - method change_name_in_proplist : string -> string -> unit = - fun _ _ -> () - method set_property name value_string = try - (List.assoc name proplist)#set value_string - with Not_found -> Printf.printf "Property not_found %s, %s\n" name value_string; - flush stdout - - method private get_property name = - (List.assoc name proplist)#get - - -(* the proplist with some items removed e.g. the expand... in a box - used for saving and emitting code *) - method private emit_clean_proplist = - List.fold_left ~f:(fun l p -> List.remove_assoc p l) - ~init:proplist - ([ "name"; "expand"; "fill"; "padding" ] @ self#get_mandatory_props) -(* method private emit_clean_proplist plist = - List.fold_left ~init:plist ~f: - (fun pl propname -> List.remove_assoc propname pl) - [ "name"; "expand"; "fill"; "padding" ] -*) - - method private save_clean_proplist = - List.fold_left ~f:(fun l p -> List.remove_assoc p l) - ~init:proplist ("name" :: self#get_mandatory_props) -(* method private save_clean_proplist = - List.remove_assoc "name" proplist *) - - val mutable children : (tiwidget0 * Gtk.Tags.pack_type) list = [] - method children = children - method forall = - fun ~callback -> List.iter (List.map children ~f:fst) ~f:callback - -(* encapsulate container#add and container#remove - they are here because they depend on the type of the widget: - e.g.: gtkbin->add scrolled_window->add_with_viewport box->pack *) - method private add = failwith (name ^ "::add") - method remove = failwith (name ^ "::remove") - - -(* removes self from his parent; - will be different for a window *) - method remove_me () = - let sref = ref "" in - self#save_to_string sref; - let pos = list_pos ~item:(self : #tiwidget0 :> tiwidget0) - (List.map self#sure_parent#children ~f:fst) in - let lexbuf = Lexing.from_string !sref in - let node = Load_parser.widget Load_lexer.token lexbuf in - add_undo (Add (self#sure_parent#name, node, pos)); - self#remove_me_without_undo () - - method remove_me_without_undo () = -(* it should be enough to only recursively remove the children from the - name_list and do the tip#remove and tip#tree#remove - only for self *) - self#forall ~callback:(fun tiw -> tiw#remove_me_without_undo ()); - parent_window#remove_sel (self : #tiwidget0 :> tiwidget0); - match parent with - | None -> failwith "remove without parent" - | Some (tip : #tiwidget0) -> - tip#tree#remove tree_item; - tip#remove (self : #tiwidget0 :> tiwidget0); - name_list := list_remove !name_list ~f:(fun n -> n=name); - Hashtbl.remove widget_map name; - Propwin.remove name - -(* used for undo *) - method private remove_child_by_name name () = - let child = fst (List.find children - ~f:(fun (ch, _) -> ch#name = name)) in - child#remove_me () - -(* for most widgets we make a child with new_tiwidget and then add it - to self; for toolbars we use toolbar#insert_button... *) - method private make_child = !new_tiwidget - -(* adds a child and shows his properties; - used when adding a child by the menu or DnD *) - method private add_child classe ?name ?(undo = true) ?(affich = true) ?(pos = -1) ?(listprop = []) () = - let name = match name with - | None -> make_new_name classe - | Some n -> n in - let child = self#make_child ~classe ~name ~parent_tree:stree parent_window ~pos ~listprop in - child#set_parent (self : #tiwidget0 :> tiwidget0); - self#add child ~pos; - if affich then Propwin.show child; - if undo then add_undo (Remove name); - child - - -(* adds the subtree saved in the Node *) - method add_children ?(pos = -1) node = - let child_name = self#add_children_wo_undo node ~pos in - add_undo (Remove child_name) - - method add_children_wo_undo ?(pos = -1) (Node (child, children)) = - let classe, name, property_list = child in - let rname = change_name name in - let tc = self#add_child classe ~name:rname ~undo:false ~affich:false ~pos ~listprop:property_list () in - List.iter (List.rev children) - ~f:(fun c -> tc#add_children_wo_undo c; ()); - List.iter property_list ~f:(fun (n,v) -> tc#set_property n v); - rname - -(* only a tiwindow can emit code *) - method emit_code = failwith "emit_code" - -(* some methods for emitting code *) -(* this one calculates the expand, fill and padding parameters - of a box child *) - method private get_packing packing = - let aux name = - let prop = List.assoc name proplist in - if prop#modified then " ~" ^ name ^ ":" ^ prop#code else "" - in - let efp = try - (aux "expand") ^ (aux "fill") ^ (aux "padding") - with Not_found -> "" in - if efp = "" then ("~packing:" ^ packing) - else ("~packing:(" ^ packing ^ efp ^ ")") - -(* this one emits the declaration code of the widget *) - method emit_init_code formatter ~packing = - Format.fprintf formatter "@ @[let %s =@ @[%s" - name self#class_name; - List.iter self#get_mandatory_props - ~f:begin fun name -> - Format.fprintf formatter "@ ~%s:%s" name - (List.assoc name proplist)#code - end; - let packing = self#get_packing packing in - if packing <> "" then Format.fprintf formatter "@ %s" packing; - self#emit_prop_code formatter; - Format.fprintf formatter "@ ()@ in@]@]" - -(* this one emits the properties which do not have their - default value; used by emit_init_code *) - method private emit_prop_code formatter = - let mandatory = self#get_mandatory_props in - List.iter self#emit_clean_proplist ~f: - begin fun (name, prop) -> - if List.mem name mandatory then () else - if prop#modified then - Format.fprintf formatter "@ ~%s:%s" prop#name prop#code - end - -(* this one emits the method returning this widget *) - method emit_method_code formatter = - Format.fprintf formatter "@ method %s = %s" name name; - -(* emits the code in the initializer part for this widget *) - method emit_initializer_code _ = () - -(* for saving the project to a file. Used also by copy and cut *) - method private save_start formatter = - Format.fprintf formatter "@\n@[<2><%s name=%s>" classe name; - List.iter - ~f:(fun p -> Format.fprintf formatter - "@\n%s=\"%s\"" p (List.assoc p proplist)#get) - self#get_mandatory_props - - - method private save_end formatter = - Format.fprintf formatter "@]@\n" classe - - method save formatter = - self#save_start formatter; - List.iter self#save_clean_proplist ~f: - (fun (name, prop) -> - if prop#modified then - Format.fprintf formatter "@\n%s=%s" name prop#save_code); - self#forall ~callback:(fun w -> w#save formatter); - self#save_end formatter - - - method private save_to_string string_ref = - let b = Buffer.create 80 in - let f = Format.formatter_of_buffer b in - self#save f; - Format.pp_print_flush f (); - string_ref := Buffer.contents b - - method private copy_to_sel selection = self#save_to_string selection - - method copy () = self#copy_to_sel selection - - method private cut () = - self#copy (); - self#remove_me () - - method private paste () = - let lexbuf = Lexing.from_string !selection in - let node = Load_parser.widget Load_lexer.token lexbuf in - self#add_children node - - -(* ML signal used when the name of the widget is changed *) - val name_changed : string signal = new signal - method connect = new tiwidget_signals ~signals:name_changed - method private call_name_changed = name_changed#call - - -(* this is necessary because gtk_tree#remove deletes the tree - when removing the last item *) -(* suppressed this in gtktree2 - method new_tree () = - stree <- GTree2.tree; - tree_item#set_subtree stree; - tree_item#expand () -*) - -(* when full_menu is true we use the menu else the restricted menu *) - val mutable full_menu = true - method set_full_menu b = full_menu <- b - -(* the menu for this widget - This menu is recalculated when one clicks on the 3rd button. - There is nothing to do e.g. when the name of the widget changes, - it will change in the menu the next time. *) - method private menu ~time = self#restricted_menu ~time - -(* the restricted menu for this widget - used for containers when they are full *) - method private restricted_menu ~time = - let menu = GMenu.menu () in - let mi_remove = GMenu.menu_item ~packing:menu#append ~label:"remove" () - and mi_cut = GMenu.menu_item ~packing:menu#append ~label:"Cut" () - and mi_copy = GMenu.menu_item ~packing:menu#append ~label:"Copy" () in - mi_remove#connect#activate ~callback:self#remove_me; - mi_copy#connect#activate ~callback:self#copy; - mi_cut#connect#activate ~callback:self#cut; - menu#popup ~button:3 ~time - -(* changes all that depends on the name *) - method private set_new_name new_name = - if test_unique new_name then begin - Hashtbl.remove widget_map name; - Hashtbl.add widget_map ~key:new_name - ~data:(self : #tiwidget0 :> tiwidget0); - if (classe = "radio_button") then begin - radio_button_pool := new_name :: - (list_remove !radio_button_pool ~f:(fun x -> x = name)); - List.iter - ~f:(fun x -> Propwin.update (Hashtbl.find widget_map x) false) - !radio_button_pool - end; - label#set_text new_name; - let old_name = name in - name <- new_name; -(* Propwin.change_name old_name new_name; *) - name_list := - new_name :: (list_remove !name_list ~f:(fun n -> n=old_name)); - begin match self#parent with - | None -> () - | Some p -> p#change_name_in_proplist old_name new_name - end; - self#call_name_changed new_name; - true - end - else begin - message_name (); - Propwin.update self true; - false - end - - -(* moves the present tiw up in his parents' children list *) -(* does something only when the parent is a box *) - method child_up = fun _ -> () - - method up () = match parent with - | None -> () - | Some t -> t#child_up (self : #tiwidget0 :> tiwidget0) - - method child_down = fun _ -> () - - method down () = match parent with - | None -> () - | Some t -> t#child_down (self : #tiwidget0 :> tiwidget0) - - -(* get the next tiwidget in the tree (used with Down arrow) *) - method next = - if children <> [] then fst (List.hd children) - else begin - match parent with - | None -> raise Not_found - | Some p -> p#next_child (self : #tiwidget0 :> tiwidget0) - end - - method next_child child = - let _, tl = cut_list ~item:child (List.map ~f:fst children) in - match tl with - | ch :: next :: _ -> next - | ch :: [] -> begin - match parent with - | None -> raise Not_found - | Some p -> p#next_child (self : #tiwidget0 :> tiwidget0) - end - | _ -> failwith "next_child" - -(* get the last child of the last child ... of our last child. - Used by prev. *) - method last = - if children = [] then (self : #tiwidget0 :> tiwidget0) - else (fst (List.hd (List.rev children)))#last - -(* get the previous tiwidget in the tree (used with Up arrow) *) - method prev = - match parent with - | None -> raise Not_found - | Some p -> - let hd, _ = cut_list ~item:(self : #tiwidget0 :> tiwidget0) - (List.map ~f:fst p#children) in - match hd with - | [] -> p - | h :: _ -> h#last - - initializer - Hashtbl.add widget_map ~key:name ~data:(self : #tiwidget0 :> tiwidget0); - name_list := name :: !name_list; - parent_tree#insert tree_item ~pos; - tree_item#set_subtree stree; - tree_item#add label#coerce; - tree_item#expand (); - - proplist <- proplist @ - [ "name", - new prop_string ~name:"name" ~init:name ~set:self#set_new_name; - "width", new prop_int ~name:"width" ~init:"-2" - ~set:(fun v -> widget#misc#set_geometry ~width:v (); true); - "height", new prop_int ~name:"height" ~init:"-2" - ~set:(fun v -> widget#misc#set_geometry ~height:v (); true) ]; - - self#add_signal name_changed; - - tree_item#event#connect#button_press ~callback: - (fun ev -> match GdkEvent.get_type ev with - | `BUTTON_PRESS -> - if GdkEvent.Button.button ev = 1 then begin - parent_window#change_selected - (self : #tiwidget0 :> tiwidget0); - end - else if GdkEvent.Button.button ev = 3 then begin - if full_menu - then self#menu ~time:(GdkEvent.Button.time ev) - else self#restricted_menu ~time:(GdkEvent.Button.time ev); - end; - GtkSignal.stop_emit (); - true - | _ -> false); - () -end - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBin.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBin.ml deleted file mode 100644 index 5ebcb3e2e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBin.ml +++ /dev/null @@ -1,185 +0,0 @@ -open Gtk - -open Utils -open Property - -open TiContainer - -class tiframe ~(widget : GBin.frame) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val frame = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window as container - - method private class_name = "GBin.frame" - - method private get_mandatory_props = [ "label" ] - - initializer - classe <- "frame"; - frame#set_label name; - proplist <- proplist @ - [ "label", - new prop_string ~name:"label" ~init:name ~set:(ftrue frame#set_label); - "label_xalign", - new prop_float ~name:"label_xalign" ~init:"0.0" ~min:0. ~max:1. - ~set:(fun x -> frame#set_label_align ~x (); true); - "shadow_type", - new prop_shadow ~name:"shadow_type" ~init:"ETCHED_IN" - ~set:(ftrue frame#set_shadow_type) ] -end - -let new_tiframe ~name ?(listprop = []) = - new tiframe ~widget:(GBin.frame ()) ~name - - - - -class tiaspect_frame ~(widget : GBin.aspect_frame) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val aspect_frame = widget - inherit tiframe ~name ~widget:(widget :> GBin.frame) ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GBin.aspect_frame" - - initializer - classe <- "aspect_frame"; - frame#set_label name; - proplist <- proplist @ - [ "obey_child", - new prop_bool ~name:"obey_child" ~init:"true" - ~set:(ftrue aspect_frame#set_obey_child); - "ratio", - new prop_float ~name:"ratio" ~init:"1.0" ~min:0. ~max:1. - ~set:(ftrue aspect_frame#set_ratio) - ] -end - -let new_tiaspect_frame ~name ?(listprop = []) = - new tiaspect_frame ~widget:(GBin.aspect_frame ()) ~name - - - - -class tievent_box ~(widget : GBin.event_box) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val event_box = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GBin.event_box" - initializer - classe <- "event_box" -end - -let new_event_box ~name ?(listprop = []) = - new tievent_box ~widget:(GBin.event_box ()) ~name - - - - -class tihandle_box ~(widget : GBin.handle_box) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val handle_box = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GBin.handle_box" - - initializer - classe <- "handle_box"; - proplist <- proplist @ - [ "shadow_type", - new prop_shadow ~name:"shadow_type" ~init:"OUT" - ~set:(ftrue handle_box#set_shadow_type); - "handle_position", - new prop_position ~name:"handle_position" ~init:"LEFT" - ~set:(ftrue handle_box#set_handle_position); - "snap_edge", - new prop_position ~name:"snap_edge" ~init:"TOP" - ~set:(ftrue handle_box#set_snap_edge) - ] -end - -let new_handle_box ~name ?(listprop = []) = - new tihandle_box ~widget:(GBin.handle_box ()) ~name - - - - - -class tiviewport ~(widget : GBin.handle_box) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val viewport = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GBin.viewport" - - initializer - classe <- "viewport"; - proplist <- proplist @ - [ "shadow_type", - new prop_shadow ~name:"shadow_type" ~init:"OUT" - ~set:(ftrue viewport#set_shadow_type) - ] -end - -let new_viewport ~name ?(listprop = []) = - new tiviewport ~widget:(GBin.handle_box ()) ~name - - - - - -class tiscrolled_window ~(widget : GBin.scrolled_window) - ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = - object(self) - val scrolled_window = widget - inherit ticontainer ~name ~insert_evbox - ~parent_tree ~pos ~widget parent_window - - method private class_name = "GBin.scrolled_window" - method private name_of_add_method = "#add_with_viewport" - - method private add rw ~pos = - scrolled_window#add_with_viewport (rw#base); - children <- [ rw, `START]; - self#set_full_menu false; - tree_item#drag#dest_unset () - -(* we must remove the child from the viewport, - not from the scrolled_window; - it is not mandatory to remove the viewport - from the scrolled_window *) - method remove child = - let viewport = (new GContainer.container (GtkBase.Container.cast (List.hd scrolled_window#children)#as_widget)) in - viewport#remove child#base; -(* scrolled_window#remove (List.hd scrolled_window#children); *) - children <- [ ]; - self#set_full_menu true; - tree_item#drag#dest_set ~actions:[`COPY] - [ { target = "STRING"; flags = []; info = 0} ] - - - initializer - classe <- "scrolled_window"; - proplist <- proplist @ - [ "hscrollbar_policy", - new prop_policy ~name:"hscrollbar_policy" ~init:"ALWAYS" - ~set:(ftrue scrolled_window#set_hpolicy); - "vscrollbar_policy", - new prop_policy ~name:"vscrollbar_policy" ~init:"ALWAYS" - ~set:(ftrue scrolled_window#set_vpolicy) ] -end - -let new_tiscrolled_window ~name ?(listprop = []) = - new tiscrolled_window ~widget:(GBin.scrolled_window ()) ~name - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiButton.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiButton.ml deleted file mode 100644 index 174c6ebff..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiButton.ml +++ /dev/null @@ -1,372 +0,0 @@ -open Utils -open Property - -open TiBase -open TiContainer - -(* the button inherits from widget because it can't accept - a child; - needs to add the border_width property *) -class tibutton ~(widget : #GButton.button) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val button = widget - inherit tiwidget ~name ~widget ~parent_tree ~pos ~insert_evbox - parent_window as widget - - method private class_name = "GButton.button" - - method private get_mandatory_props = [ "label" ] - - initializer - classe <- "button"; - proplist <- proplist @ - [ "border_width", new prop_int ~name:"border_width" ~init:"0" - ~set:(ftrue button#set_border_width); - "label", - new prop_string ~name:"label" ~init:name ~set: - begin fun v -> - button#remove (List.hd button#children)#coerce; - GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add (); - true - end ] -end - -let new_tibutton ~name ?(listprop = []) = - let b = GButton.button ~label:name () in - b#event#connect#enter_notify - ~callback:(fun _ -> GtkSignal.stop_emit (); true); - b#event#connect#leave_notify - ~callback:(fun _ -> GtkSignal.stop_emit (); true); - new tibutton ~widget:b ~name - - -class ticheck_button ~(widget : #GButton.toggle_button) ~name - ~parent_tree ~pos ?(insert_evbox=true) parent_window = -object(self) - val button = widget - inherit tiwidget ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - - method private class_name = "GButton.check_button" - - method private get_mandatory_props = [ "label" ] - - initializer - classe <- "check_button"; - proplist <- proplist @ - [ "border_width", new prop_int ~name:"border_width" ~init:"0" - ~set:(ftrue button#set_border_width); - "label", - new prop_string ~name:"label" ~init:name ~set: - begin fun v -> - button#remove (List.hd button#children)#coerce; - GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add (); - true - end - ] -end - -let new_ticheck_button ~name ?(listprop = []) = - new ticheck_button ~widget:(GButton.check_button ~label:name ()) ~name - - - -class titoggle_button ~(widget : #GButton.toggle_button) ~name - ~parent_tree ~pos ?(insert_evbox=true) parent_window = -object(self) - val button = widget - inherit tiwidget ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GButton.toggle_button" - - method private get_mandatory_props = [ "label" ] - - initializer - classe <- "toggle_button"; - proplist <- proplist @ - [ "border width", new prop_int ~name:"border_width" ~init:"0" - ~set:(ftrue button#set_border_width); - "label", - new prop_string ~name:"label" ~init:name ~set: - begin fun v -> - button#remove (List.hd button#children)#coerce; - GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add (); - true - end ] -end - -let new_titoggle_button ~name ?(listprop = []) = - let b = GButton.toggle_button ~label:name () in -(* b#connect#event#enter_notify - ~callback:(fun _ -> GtkSignal.stop_emit ()); - b#connect#event#leave_notify - ~callback:(fun _ -> GtkSignal.stop_emit ()); -*) - new titoggle_button ~name ~widget:b - - -class tiradio_button ~(widget : #GButton.radio_button) ~name:nname - ~parent_tree ~pos ?(insert_evbox=true) parent_window = -object(self) - val button = widget - inherit tiwidget ~name:nname ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - val group_prop = - new prop_enum_dyn ~values:(fun () -> !radio_button_pool) ~name:"group" - ~set:(fun () -> true) ~init:nname - - - method private class_name = "GButton.radio_button" - - method remove_me_without_undo () = - radio_button_pool := list_remove !radio_button_pool - ~f:(fun x -> x = name); - widget#remove_me_without_undo () - - method private get_mandatory_props = [ "label" ] - - method private emit_clean_proplist = - List.remove_assoc "group" widget#emit_clean_proplist - - method emit_initializer_code formatter = - let groupname = group_prop#get in - if name <> groupname then - Format.fprintf formatter "@ %s#set_group %s#group;" name groupname - - initializer - classe <- "radio_button"; - radio_button_pool := name :: !radio_button_pool; - List.iter - ~f:(fun x -> Propwin.update (Hashtbl.find widget_map x) true) - (List.tl !radio_button_pool); - - proplist <- proplist @ - [ "border_width", new prop_int ~name:"border_width" ~init:"0" - ~set:(ftrue button#set_border_width); - "label", - new prop_string ~name:"label" ~init:name ~set: - begin fun v -> - button#remove (List.hd button#children)#coerce; - GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add (); - true - end ; - "group", group_prop - ] -end - -let new_tiradio_button ~name ?(listprop = []) = - let b = GButton.radio_button ~label:name () in - (* - b#event#connect#enter_notify - ~callback:(fun _ -> b#misc#stop_emit ~name:"enter_notify_event"; true); - b#event#connect#leave_notify - ~callback:(fun _ -> b#misc#stop_emit ~name:"leave_notify_event"; true); - *) - new tiradio_button ~name ~widget:b - - - - -class tibutton_toolbar ~(widget : #GButton.button) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window ~toolbar = -object(self) - val button = widget - inherit tibutton ~name ~widget ~parent_tree ~pos ~insert_evbox - parent_window as button - - method private get_mandatory_props = - [ "text"; "tooltip"; "tooltip_private" ] - - method emit_init_code formatter ~packing = - Format.fprintf formatter "@ @[let %s =@ @[%s#insert_button" - name toolbar#name; - List.iter self#get_mandatory_props ~f: - begin fun name -> - Format.fprintf formatter "@ ~%s:%s" name - (List.assoc name proplist)#code - end; - Format.fprintf formatter "@ ()@ in@]@]" - - initializer - proplist <- List.remove_assoc "label" proplist -end - - -class titoggle_button_toolbar ~(widget : #GButton.toggle_button) ~name - ~parent_tree ~pos ?(insert_evbox=true) parent_window ~toolbar = -object(self) - val button = widget - inherit titoggle_button ~name ~widget ~parent_tree ~pos ~insert_evbox - parent_window as button - - method private get_mandatory_props = - [ "text"; "tooltip"; "tooltip_private" ] - - method emit_init_code formatter ~packing = - Format.fprintf formatter - "@ @[let %s =@ @[%s#insert_toggle_button" - name toolbar#name; - List.iter self#get_mandatory_props ~f: - begin fun name -> - Format.fprintf formatter "@ ~%s:%s" name - (List.assoc name proplist)#code - end; - Format.fprintf formatter "@ ()@ in@]@]" - - initializer - proplist <- List.remove_assoc "label" proplist -end - - -class tiradio_button_toolbar ~(widget : #GButton.radio_button) ~name - ~parent_tree ~pos ?(insert_evbox=true) parent_window ~toolbar = -object(self) - val button = widget - inherit tiradio_button ~name ~widget ~parent_tree ~pos ~insert_evbox - parent_window as button - - method private get_mandatory_props = - [ "text"; "tooltip"; "tooltip_private" ] - - method emit_init_code formatter ~packing = - Format.fprintf formatter - "@ @[let %s =@ @[%s#insert_radio_button" - name toolbar#name; - List.iter self#get_mandatory_props ~f: - begin fun name -> - Format.fprintf formatter "@ ~%s:%s" name - (List.assoc name proplist)#code - end; - Format.fprintf formatter "@ ()@ in@]@]" - - initializer - proplist <- List.remove_assoc "label" proplist -end - - - - -class titoolbar ~(widget : GToolbar2.toolbar2) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val toolbar = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GButton.toolbar" - - method private add child ~pos = - children <- children @ [child, `START] - - method private get_pos child = - let rec aux n = function - | [] -> failwith "toolbar::get_pos" - | (hd, _)::tl -> if hd = child then n else aux (n+1) tl in - aux 0 children - - method private make_child ~classe ?(pos = -1) ~name ~parent_tree - ?(insert_evbox = true) ?(listprop = []) parent_window = - match classe with - | "button" -> - let t = try List.assoc "text" listprop with Not_found -> "" in - let tt = try List.assoc "tooltip" listprop with Not_found -> "" in - let ptt = try List.assoc "tooltip_private" listprop - with Not_found -> "" in - let listp = List.fold_left ~f:(fun l p -> List.remove_assoc p l) - ~init:listprop - [ "text"; "tooltip"; "tooltip_private" ] in - let b = toolbar#insert_button ~text:t ~tooltip:tt - ~tooltip_private:ptt () in - let child = new tibutton_toolbar ~name ~widget:b ~pos:(-1) - ~insert_evbox:false ~parent_tree:stree parent_window ~toolbar:self in - let tp = new prop_string ~name:"text" ~init:t - ~set:(fun v -> - toolbar#set_text v (self#get_pos child); true) - and ttp = new prop_string ~name:"tooltip" ~init:tt - ~set:(fun _ -> true) - and pttp = new prop_string ~name:"tooltip_private" ~init:ptt - ~set:(fun _ -> true) in - child#add_to_proplist - [ "text", tp; "tooltip", ttp; "tooltip_private", pttp ]; - child - | "toggle_button" -> - let t = try List.assoc "text" listprop with Not_found -> "" in - let tt = try List.assoc "tooltip" listprop with Not_found -> "" in - let ptt = try List.assoc "tooltip_private" listprop - with Not_found -> "" in - let listp = List.fold_left ~f:(fun l p -> List.remove_assoc p l) - ~init:listprop - [ "text"; "tooltip"; "tooltip_private" ] in - let b = toolbar#insert_toggle_button ~text:t ~tooltip:tt - ~tooltip_private:ptt () in - let child = new titoggle_button_toolbar ~name ~widget:b ~pos:(-1) - ~insert_evbox:false ~parent_tree:stree parent_window ~toolbar:self in - let tp = new prop_string ~name:"text" ~init:t - ~set:(fun v -> toolbar#set_text v (self#get_pos child); true) - and ttp = new prop_string ~name:"tooltip" ~init:tt - ~set:(fun _ -> true) - and pttp = new prop_string ~name:"tooltip_private" ~init:ptt - ~set:(fun _ -> true) in - child#add_to_proplist - [ "text", tp; "tooltip", ttp; "tooltip_private", pttp ]; - child - | "radio_button" -> - let t = try List.assoc "text" listprop with Not_found -> "" in - let tt = try List.assoc "tooltip" listprop with Not_found -> "" in - let ptt = try List.assoc "tooltip_private" listprop - with Not_found -> "" in - let listp = List.fold_left ~f:(fun l p -> List.remove_assoc p l) - ~init:listprop - [ "text"; "tooltip"; "tooltip_private" ] in - let b = toolbar#insert_radio_button ~text:t ~tooltip:tt - ~tooltip_private:ptt () in - let child = new tiradio_button_toolbar ~name ~widget:b ~pos:(-1) - ~insert_evbox:false ~parent_tree:stree parent_window ~toolbar:self in - let tp = new prop_string ~name:"text" ~init:t - ~set:(fun v -> toolbar#set_text v (self#get_pos child); true) - and ttp = new prop_string ~name:"tooltip" ~init:tt - ~set:(fun _ -> true) - and pttp = new prop_string ~name:"tooltip_private" ~init:ptt - ~set:(fun _ -> true) in - child#add_to_proplist - [ "text", tp; "tooltip", ttp; "tooltip_private", pttp ]; - child - | _ -> failwith "toolbar" - - - - method remove child = - toolbar#remove (child#base); - children <- list_remove ~f:(fun (ch, _) -> ch = child) children; - - initializer - classe <- "toolbar"; - proplist <- proplist @ - [ "orientation", - new prop_orientation ~name:"orientation" ~init:"HORIZONTAL" - ~set:(ftrue toolbar#set_orientation); - "style", - new prop_toolbar_style ~name:"style" ~init:"BOTH" - ~set:(ftrue toolbar#set_style); - "space_size", - new prop_int ~name:"space_size" ~init:"5" - ~set:(ftrue toolbar#set_space_size); - "space_style", - new prop_toolbar_space_style ~name:"space_style" ~init:"EMPTY" - ~set:(ftrue toolbar#set_space_style); - "tooltips", - new prop_bool ~name:"tooltips" ~init:"true" - ~set:(ftrue toolbar#set_tooltips); - "button_relief", - new prop_relief_style ~name:"button_relief" ~init:"NORMAL" - ~set:(ftrue toolbar#set_button_relief) - ] -end - -let new_toolbar ~name ?(listprop = []) = - new titoolbar ~name ~widget:(GToolbar2.toolbar2 ()) - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiContainer.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiContainer.ml deleted file mode 100644 index ddf04d31f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiContainer.ml +++ /dev/null @@ -1,92 +0,0 @@ - -open Gtk -open GObj -open GContainer - -open Utils -open Property - -open TiBase - -(* for containers being able to have at least one child; - not for buttons (can't have children) *) - -class virtual ticontainer ~widget ~name - ?(insert_evbox=true) ~parent_tree ~pos parent_window = -object(self) - - val container = (widget : #container :> container) - - inherit tiwidget ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - -(* name of the add method: add for most bin widgets, - pack for boxes, add_with_viewport for scrolled windows... *) - method private name_of_add_method = "#add" - - method private add child ~pos = - container#add child#base; - children <- [child, `START]; - self#set_full_menu false; - tree_item#drag#dest_unset () - - method remove child = - container#remove child#base; - children <- []; - self#set_full_menu true; - tree_item#drag#dest_set ~actions:[`COPY] - [ { target = "STRING"; flags = []; info = 0} ] - - method private menu ~time = - let menu = GMenu.menu () and menu_add = GMenu.menu () in - List.iter - ~f:(fun n -> - let mi = GMenu.menu_item ~packing:menu_add#append ~label:n () - in mi#connect#activate - ~callback:(fun () -> self#add_child n ();()); ()) - widget_add_list; - let mi_add = GMenu.menu_item ~packing:menu#append - ~label:("add to " ^ name) () - and mi_remove = GMenu.menu_item ~packing:menu#append - ~label:("remove " ^ name) () - and mi_cut = GMenu.menu_item ~packing:menu#append ~label:"Cut" () - and mi_copy = GMenu.menu_item ~packing:menu#append ~label:"Copy" () - and mi_paste = GMenu.menu_item ~packing:menu#append ~label:"Paste" () in - mi_remove#connect#activate ~callback:self#remove_me; - mi_add#set_submenu menu_add; - mi_copy#connect#activate ~callback:self#copy; - mi_cut#connect#activate ~callback:self#cut; - if !selection <> "" - then begin mi_paste#connect#activate ~callback:self#paste; () end - else mi_paste#misc#set_sensitive false; - menu#popup ~button:3 ~time - - method emit_init_code c ~packing = - widget#emit_init_code c ~packing; - self#forall ~callback:(fun child -> child#emit_init_code c - ~packing:(name ^ self#name_of_add_method)) - - method emit_method_code c = - widget#emit_method_code c; - self#forall ~callback:(fun child -> child#emit_method_code c) - - method emit_initializer_code c = - widget#emit_initializer_code c; - self#forall ~callback:(fun child -> child#emit_initializer_code c) - - - initializer - proplist <- proplist @ - [ "border_width", new prop_int ~name:"border_width" ~init:"0" - ~set:(ftrue container#set_border_width) ]; - - tree_item#drag#dest_set ~actions:[`COPY] - [ { target = "STRING"; flags = []; info = 0} ]; - tree_item#drag#connect#data_received ~callback: - begin fun (context : drag_context) ~x ~y - (data : selection_data) ~info ~time -> - self#add_child data#data (); - context#finish ~success:true ~del:false ~time - end;() -end - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiEdit.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiEdit.ml deleted file mode 100644 index 4b0977bb6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiEdit.ml +++ /dev/null @@ -1,153 +0,0 @@ -open Utils -open Property - -open TiBase - - - -class tientry ~(widget : GEdit.entry) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val entry = widget - inherit tiwidget ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GEdit.entry" - initializer - classe <- "entry"; - proplist <- proplist @ - [ "visibility", - new prop_bool ~name:"visibility" ~init:"true" - ~set:(ftrue entry#set_visibility); - "editable", - new prop_bool ~name:"editable" ~init:"true" - ~set:(ftrue entry#set_editable) - ] -end - -let new_tientry ~name ?(listprop = []) = - new tientry ~name ~widget:(GEdit.entry ()) - - -class tispin_button ~(widget : GEdit.spin_button) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val spin_button = widget - inherit tientry ~widget:(widget :> GEdit.entry) ~name ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GEdit.spin_button" - initializer - classe <- "spin_button"; - proplist <- proplist @ - [ "digits", - new prop_int ~name:"digits" ~init:"0" - ~set:(ftrue spin_button#set_digits); - "update_policy", - new prop_spin_button_update_policy ~name:"update_policy" - ~init:"ALWAYS" - ~set:(ftrue spin_button#set_update_policy); - "numeric", - new prop_bool ~name:"numeric" ~init:"false" - ~set:(ftrue spin_button#set_numeric); - "wrap", - new prop_bool ~name:"wrap" ~init:"false" - ~set:(ftrue spin_button#set_wrap); - "shadow_type", - new prop_shadow ~name:"shadow_type" ~init:"NONE" - ~set:(ftrue spin_button#set_shadow_type); - "snap_to_ticks", - new prop_bool ~name:"snap_to_ticks" ~init:"false" - ~set:(ftrue spin_button#set_snap_to_ticks) - ] - -end - - -let get_adjustment () = - let rv = ref 0. and rl = ref 0. and ru = ref 100. and rsi = ref 1. - and rpi = ref 10. and rps = ref 10. in - let w = GWindow.window ~modal:true () in - let v = GPack.vbox ~packing:w#add () in - let l = GMisc.label ~text:"adjustment properties" ~packing:v#pack () in - let h1 = GPack.hbox ~packing:v#pack () in - let l1 = GMisc.label ~text:"value" ~packing:h1#pack () in - let e1 = GEdit.entry ~text:"0." ~packing:h1#pack () in - let h2 = GPack.hbox ~packing:v#pack () in - let l2 = GMisc.label ~text:"lower" ~packing:h2#pack () in - let e2 = GEdit.entry ~text:"0." ~packing:h2#pack () in - let h3 = GPack.hbox ~packing:v#pack () in - let l3 = GMisc.label ~text:"upper" ~packing:h3#pack () in - let e3 = GEdit.entry ~text:"100." ~packing:h3#pack () in - let h4 = GPack.hbox ~packing:v#pack () in - let l4 = GMisc.label ~text:"step_incr" ~packing:h4#pack () in - let e4 = GEdit.entry ~text:"1." ~packing:h4#pack () in - let h5 = GPack.hbox ~packing:v#pack () in - let l5 = GMisc.label ~text:"page_incr" ~packing:h5#pack () in - let e5 = GEdit.entry ~text:"10." ~packing:h5#pack () in - let h6 = GPack.hbox ~packing:v#pack () in - let l6 = GMisc.label ~text:"page_size" ~packing:h6#pack () in - let e6 = GEdit.entry ~text:"10." ~packing:h6#pack () in - let h7 = GPack.hbox ~packing:v#pack () in - let b1 = GButton.button ~label:"OK" ~packing:h7#pack () in - let b2 = GButton.button ~label:"Cancel" ~packing:h7#pack () in - w#show (); - b1#connect#clicked - ~callback:(fun () -> - begin - try rv := float_of_string e1#text with _ -> - try rv := float_of_int (int_of_string e1#text) with _ -> () end; - begin - try rl := float_of_string e2#text with _ -> - try rl := float_of_int (int_of_string e2#text) with _ -> () end; - begin - try ru := float_of_string e3#text with _ -> - try ru := float_of_int (int_of_string e3#text) with _ -> () end; - begin - try rsi := float_of_string e4#text with _ -> - try rsi := float_of_int (int_of_string e4#text) with _ -> () end; - begin - try rpi := float_of_string e5#text with _ -> - try rpi := float_of_int (int_of_string e5#text) with _ -> () end; - begin - try rps := float_of_string e6#text with _ -> - try rps := float_of_int (int_of_string e6#text) with _ -> () end; - w#destroy ()); - b2#connect#clicked ~callback:w#destroy; - w#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main (); - !rv, !rl, !ru, !rsi, !rpi, !rps - -let new_tispin_button ~name ?(listprop = []) = - let v, l, u, si, pi, ps = get_adjustment () in - new tispin_button ~name - ~widget:(GEdit.spin_button ~adjustment: - (GData.adjustment ~value:v ~lower:l ~upper:u - ~step_incr:si ~page_incr:pi ~page_size:ps ()) ()) - - - -class ticombo ~(widget : GEdit.combo) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val combo = widget - inherit tiwidget ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GEdit.combo" - initializer - classe <- "combo"; - proplist <- proplist @ - [ "use_arrows", - new prop_combo_use_arrows ~name:"use_arrows" ~init:"true" - ~set:(ftrue combo#set_use_arrows); - "case_sensitive", - new prop_bool ~name:"case_sensitive" ~init:"false" - ~set:(ftrue combo#set_case_sensitive) - ] -end - -let new_ticombo ~name ?(listprop = []) = - new ticombo ~name ~widget:(GEdit.combo ()) - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiList.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiList.ml deleted file mode 100644 index 770e19b73..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiList.ml +++ /dev/null @@ -1,66 +0,0 @@ - -open Utils -open Property - -open TiBase - -class ticlist ~(widget : 'a GList.clist) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window ~columns ~titles = - object(self) - val clist = widget - inherit tiwidget ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window as widget - - val param = parent_window#add_param - - method private class_name = "GList.clist" - - method private get_mandatory_props = [ "columns" ] - - method remove_me_without_undo () = - parent_window#remove_param param; - widget#remove_me_without_undo () - - method emit_init_code formatter ~packing = - Format.fprintf formatter - "@ @[let (%s : '%c GList.clist) =@ @[GList.clist" - name param; - List.iter self#get_mandatory_props ~f: - begin fun name -> - Format.fprintf formatter "@ ~%s:%s" name - (List.assoc name proplist)#code - end; - let packing = self#get_packing packing in - if packing <> "" then Format.fprintf formatter "@ %s" packing; - self#emit_prop_code formatter; - Format.fprintf formatter "@ ()@ in@]@]" - - - initializer - classe <- "clist"; - proplist <- proplist @ - [ "columns", - new prop_int ~name:"columns" ~init:(string_of_int columns) - ~set:(fun _ -> true); - "titles", - new prop_clist_titles ~name:"titles" ~init:(String.concat ~sep:" " titles) - ~set:(fun v -> - let v = Array.of_list v in - for i = 0 to Array.length v - 1 do - clist#set_column i ~title:v.(i) - done; - true) - ] -end - -let new_clist ~name ?(listprop = []) = - let c, lp = match listprop with - | [] -> (get_a_number "number of columns" 3), [] - | ("columns", n)::tl -> (int_of_string n), tl - | _ -> failwith "new_clist" - in - let rtitles = ref [] in - for i = c downto 1 do rtitles := ("column" ^(string_of_int i)):: !rtitles done; - new ticlist ~name ~widget:(GList.clist ~columns:c ~titles: !rtitles ()) ~columns:c ~titles: !rtitles - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiMisc.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiMisc.ml deleted file mode 100644 index f4f435a54..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiMisc.ml +++ /dev/null @@ -1,176 +0,0 @@ - -open Utils -open Property - -open TiBase -open TiContainer - - -class tiseparator ~(dir : Gtk.Tags.orientation) ~(widget : GObj.widget_full) - ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = -object - val separator = widget - inherit tiwidget ~name ~widget ~parent_tree ~pos parent_window ~insert_evbox - - method private class_name = - match dir with `VERTICAL -> "GMisc.separator `VERTICAL" - | `HORIZONTAL -> "GMisc.separator `HORIZONTAL" - initializer - classe <- - (match dir with `VERTICAL -> "vseparator" | `HORIZONTAL -> "hseparator") - -end - -let new_tihseparator ~name ?(listprop = []) = - new tiseparator ~dir: `HORIZONTAL ~name - ~widget:(GMisc.separator `HORIZONTAL ()) -let new_tivseparator ~name ?(listprop = []) = - new tiseparator ~dir: `VERTICAL ~name - ~widget:(GMisc.separator `VERTICAL ()) - - - - -class tistatusbar ~(widget : GMisc.statusbar) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val statusbar = widget - inherit ticontainer ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GMisc.statusbar" - - initializer - classe <- "statusbar" -end - -let new_tistatusbar ~name ?(listprop = []) = - new tistatusbar ~widget:(GMisc.statusbar ()) ~name - - - -class timisc ~(widget : GMisc.misc) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val misc = widget - inherit tiwidget ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = failwith "timisc::class_name" - - initializer - proplist <- proplist @ - [ "x_alignment", - new prop_float ~name:"x alignment" ~init:"0.5" ~min:0. ~max:1. - ~set:(fun v -> misc#set_alignment ~x:v (); true); - "y_alignment", - new prop_float ~name:"y alignment" ~init:"0.5" ~min:0. ~max:1. - ~set:(fun v -> misc#set_alignment ~y:v (); true); - "x_padding", - new prop_int ~name:"x padding" ~init:"0.5" - ~set:(fun v -> misc#set_padding ~x:v (); true); - "y_padding", - new prop_int ~name:"y padding" ~init:"0.5" - ~set:(fun v -> misc#set_padding ~y:v (); true) - - ] -end - - -class tiarrow ~(widget : GMisc.arrow) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val arrow = widget - inherit timisc ~name ~widget:(widget :> GMisc.misc) ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GMisc.arrow" - initializer - classe <- "arrow"; -end - - -(* TODO fenetre demandant kind et shadow -let new_tiarrow ~name = new tiarrow ~widget:(GMisc.arrow ()) ~name -*) - - -class tilabel ~(widget : GMisc.label) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val labelw = widget - inherit timisc ~name ~widget:(widget :> GMisc.misc) ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GMisc.label" - - method private get_mandatory_props = [ "text" ] - - initializer - classe <- "label"; - proplist <- proplist @ - [ "text", - new prop_string ~name:"text" ~init:name ~set:(ftrue labelw#set_text); - "line_wrap", - new prop_bool ~name:"line_wrap" ~init:"true" - ~set:(ftrue labelw#set_line_wrap) - ] -end - -let new_tilabel ~name ?(listprop = []) = - new tilabel ~widget:(GMisc.label ~text:name ()) ~name - - - - - -class ticolor_selection ~(widget : GMisc.color_selection) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val color_selection = widget - inherit tiwidget ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GMisc.color_selection" - - initializer - classe <- "color_selection"; - proplist <- proplist @ - [ "use_opacity", - new prop_bool ~name:"use_opacity" ~init:"false" - ~set:(ftrue color_selection#set_opacity); - "update_policy", - new prop_update_type ~name:"update_policy" ~init:"CONTINUOUS" - ~set:(ftrue color_selection#set_update_policy) - ] -end - -let new_ticolor_selection ~name ?(listprop = []) = - new ticolor_selection ~widget:(GMisc.color_selection ()) ~name - - -class tipixmap ~(widget : GMisc.pixmap) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val pixmap = widget - inherit timisc ~name ~widget:(widget :> GMisc.misc) ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GMisc.pixmap" - initializer - classe <- "pixmap"; - proplist <- proplist @ - [ "file", - new prop_file ~name:"file" ~init:"" - ~set:(fun v -> - pixmap#set_pixmap - (GDraw.pixmap_from_xpm ~window:parent_window#tiwin#widget - ~file:v ()); - true) - ] -end - -let new_tipixmap ~name ?(listprop = []) ~parent_tree ~pos ?(insert_evbox=true) (parent_window : window_and_tree0) = - new tipixmap ~widget:(GMisc.pixmap (GDraw.pixmap_from_xpm - ~window:parent_window#tiwin#widget ~file:"pixmap.xpm" ()) ()) ~name - ~parent_tree ~pos ~insert_evbox parent_window diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiPack.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiPack.ml deleted file mode 100644 index 291eec9d9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiPack.ml +++ /dev/null @@ -1,300 +0,0 @@ - -open Utils -open Property - -open TiContainer - -class tibox ~(dir : Gtk.Tags.orientation) ~(widget : GPack.box) - ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = - let class_name = - match dir with `VERTICAL -> "GPack.vbox" | _ -> "GPack.hbox" in -object(self) - val box = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos ~insert_evbox - parent_window as container - - method private class_name = class_name - - method private name_of_add_method = "#pack" - -(* removes the ::expand ::fill ::padding in the proplist of a box - assumes that these are the only properties with a :: in the name *) - method private save_clean_proplist = - List.filter container#save_clean_proplist - ~f:(fun (n,p) -> - try - let i = String.index n ':' in - i = String.length n || n.[i+1] <> ':' - with Not_found -> true) - - method private emit_clean_proplist = - List.filter container#emit_clean_proplist - ~f:(fun (n,p) -> - try - let i = String.index n ':' in - i = String.length n || n.[i+1] <> ':' - with Not_found -> true) - - method change_name_in_proplist oldn newn = - proplist <- List.fold_left ~init:proplist ~f: - (fun pl propname -> - change_property_name (oldn ^ propname) (newn ^ propname) pl) - [ "::expand"; "::fill"; "::padding" ]; - Propwin.update self false - - method child_up child = - let pos = list_pos ~item:child (List.map ~f:fst children) in - if pos > 0 then begin - box#reorder_child child#base ~pos:(pos-1); - children <- list_reorder_up children ~pos; - stree#item_up ~pos - end - - method child_down child = - let pos = list_pos ~item:child (List.map ~f:fst children) in - if pos < (List.length children - 1) then begin - box#reorder_child child#base ~pos:(pos+1); - children <- list_reorder_down children ~pos; - stree#item_up ~pos:(pos+1) - end - - method private add child ~pos = - box#pack child#base; - if pos < 0 then begin - children <- children @ [(child, `START)] - end - else begin - children <- list_insert ~item:(child, `START) children ~pos; - box#reorder_child child#base ~pos - end; - let n = child#name in - let expand = - new prop_bool ~name:"expand" ~init:"false" ~set: - begin fun v -> - box#set_child_packing (child#base) ~expand:v; - Propwin.update child false; - Propwin.update self false; true - end - and fill = - new prop_bool ~name:"fill" ~init:"true" ~set: - begin fun v -> - box#set_child_packing (child#base) ~fill:v; - Propwin.update child false; - Propwin.update self false; true - end - and padding = - new prop_int ~name:"padding" ~init:"0" ~set: - begin fun v -> - box#set_child_packing (child#base) ~padding:v; - Propwin.update child false; - Propwin.update self false; true - end - in - proplist <- proplist @ - [ (n ^ "::expand"), expand; - (n ^ "::fill"), fill; - (n ^ "::padding"), padding ]; - child#add_to_proplist - [ "expand", expand; "fill", fill; "padding", padding ]; - Propwin.update self true - - - method remove child = - box#remove (child#base); - children <- list_remove ~f:(fun (ch, _) -> ch = child) children; - let n = child#name in - proplist <- List.fold_left ~init:proplist - ~f:(fun acc n -> List.remove_assoc n acc) - [ (n ^ "::expand"); (n ^ "::fill"); (n ^ "::padding") ]; - Propwin.update self true - - initializer - classe <- (match dir with `VERTICAL -> "vbox" | _ -> "hbox"); - proplist <- proplist @ - [ "homogeneous", - new prop_bool ~name:"homogeneous" ~init:"false" - ~set:(ftrue box#set_homogeneous); - "spacing", - new prop_int ~name:"spacing" ~init:"0" - ~set:(ftrue box#set_spacing) - ] -end - -class tihbox = tibox ~dir:`HORIZONTAL -class tivbox = tibox ~dir:`VERTICAL - -let new_tihbox ~name ?(listprop = []) = new tihbox ~widget:(GPack.hbox ()) ~name -let new_tivbox ~name ?(listprop = []) = new tivbox ~widget:(GPack.vbox ()) ~name - - - - -class tibbox ~(dir : Gtk.Tags.orientation) ~(widget : GPack.button_box) - ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = - let class_name = - match dir with `VERTICAL -> "GPack.button_box `VERTICAL" - | _ -> "GPack.button_box `HORIZONTAL" in -object(self) - val bbox = widget - inherit tibox ~dir ~widget:(widget :> GPack.box) - ~name ~parent_tree ~pos ~insert_evbox parent_window - - method private class_name = class_name - -initializer - classe <- (match dir with `VERTICAL -> "vbutton_box" | _ -> "hbutton_box"); - proplist <- proplist @ - [ "layout", - new prop_button_box_style ~name:"layout" ~init:"DEFAULT_STYLE" - ~set:(ftrue bbox#set_layout); - "spacing", - new prop_int ~name:"spacing" - ~init:(match dir with `VERTICAL -> "10" | _ -> "30") -(* donne -1 (defaut) -(GtkPack.BBox.get_spacing bbox#as_button_box) *) - ~set:(fun v -> bbox#set_spacing v; - GtkBase.Widget.queue_resize bbox#as_widget; true); - "child_width", - new prop_int ~name:"child_width" ~init:"85" - ~set:(fun v -> - bbox#set_child_size ~width:v - ~height:(int_of_string (self#get_property "child_height")) (); - GtkBase.Widget.queue_resize bbox#as_widget; true); - "child_height", - new prop_int ~name:"child_height" ~init:"27" - ~set:(fun v -> - bbox#set_child_size ~height:v - ~width:(int_of_string (self#get_property "child_width")) (); - GtkBase.Widget.queue_resize bbox#as_widget; true); - "child_ipad_x", - new prop_int ~name:"child_ipad_x" ~init:"7" - ~set:(fun v -> - bbox#set_child_ipadding ~x:v - ~y:(int_of_string (self#get_property "child_ipad_y")) (); - GtkBase.Widget.queue_resize bbox#as_widget; true); - "child_ipad_y", - new prop_int ~name:"child_ipad_y" ~init:"0" - ~set:(fun v -> - bbox#set_child_ipadding ~y:v - ~x:(int_of_string (self#get_property "child_ipad_x")) (); - GtkBase.Widget.queue_resize bbox#as_widget; true); - ] -end - - -(* TODO: pour proplist/spacing il faudrait implementer - les fonctions get_spacing ... (voir dans gtkPack) *) - -class tihbutton_box = tibbox ~dir:`HORIZONTAL -class tivbutton_box = tibbox ~dir:`VERTICAL - -let new_tihbutton_box ~name ?(listprop = []) = - new tihbutton_box ~widget:(GPack.button_box `HORIZONTAL ()) ~name - -let new_tivbutton_box ~name ?(listprop = []) = - new tivbutton_box ~widget:(GPack.button_box `VERTICAL ()) ~name - - - - -let get_fixed_pos () = - let rx = ref 0 and ry = ref 0 in - let w = GWindow.window ~modal:true () in - let v = GPack.vbox ~packing:w#add () in - let l = GMisc.label ~text:"Enter position for child" ~packing:v#pack () in - let h1 = GPack.hbox ~packing:v#pack () in - let l1 = GMisc.label ~text:"x:" ~packing:h1#pack () in - let e1 = GEdit.entry ~text:"0" ~packing:h1#pack () in - let h2 = GPack.hbox ~packing:v#pack () in - let l2 = GMisc.label ~text:"y" ~packing:h2#pack () in - let e2 = GEdit.entry ~text:"0" ~packing:h2#pack () in - let h7 = GPack.hbox ~packing:v#pack () in - let b1 = GButton.button ~label:"OK" ~packing:h7#pack () in - let b2 = GButton.button ~label:"Cancel" ~packing:h7#pack () in - w#show (); - b1#connect#clicked - ~callback:(fun () -> - begin - try rx := int_of_string e1#text with _ -> () end; - begin - try ry := int_of_string e2#text with _ -> () end; - w#destroy ()); - b2#connect#clicked ~callback:w#destroy; - w#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main (); - !rx, !ry - - -class tifixed ~(widget : GPack.fixed) - ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = -object(self) - val fixed = widget - inherit ticontainer ~widget - ~name ~parent_tree ~pos ~insert_evbox parent_window - - method private class_name = "GPack.fixed" - - method private add child ~pos = - let x, y = get_fixed_pos () in - fixed#put child#base ~x ~y; - children <- children @ [(child, `START)] - initializer - classe <- "fixed" -end - -let new_tifixed ~name ?(listprop = []) = - new tifixed ~widget:(GPack.fixed ()) ~name - - - - - -class tinotebook ~(widget : GPack.notebook) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val notebook = widget - inherit ticontainer ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GPack.notebook" - - method private add child ~pos = - children <- children @ [child, `START]; - notebook#insert_page child#base ~pos; - child#add_to_proplist - [ "tab_label", - new prop_string ~name:"tab_label" ~init:"" - ~set:(fun v -> notebook#set_page - ~tab_label:((GMisc.label ~text:v())#coerce) child#base; true) - ] - - - initializer - classe <- "notebook"; - proplist <- proplist @ - [ "tab_pos", - new prop_position ~name:"tab_ pos" ~init:"TOP" - ~set:(ftrue notebook#set_tab_pos); - "show_tabs", - new prop_bool ~name:"show_tabs" ~init:"true" - ~set:(ftrue notebook#set_show_tabs); - "homogeneous_tabs", - new prop_bool ~name:"homogeneous_tabs" ~init:"true" - ~set:(ftrue notebook#set_homogeneous_tabs); - "show_border", - new prop_bool ~name:"show_border" ~init:"true" - ~set:(ftrue notebook#set_show_border); - "scrollable", - new prop_bool ~name:"scrollable" ~init:"false" - ~set:(ftrue notebook#set_scrollable); - "tab_border", - new prop_int ~name:"tab_border" ~init:"2" - ~set:(ftrue notebook#set_tab_border); - "popup_enable", - new prop_bool ~name:"popup_enable" ~init:"false" - ~set:(ftrue notebook#set_popup) - ] -end - -let new_tinotebook ~name ?(listprop = []) = - new tinotebook ~widget:(GPack.notebook ()) ~name diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWidget.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWidget.ml deleted file mode 100644 index 5a6e3ac01..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWidget.ml +++ /dev/null @@ -1,43 +0,0 @@ - -let new_class_list (* : - (string * - (name:string -> ?listprop:string list -> - parent_tree:GTree2.tree -> pos:int -> - ?insert_evbox:bool -> - - TiBase.window_and_tree0 -> TiBase.tiwidget0)) list *) -= [ - "window", TiWindow.new_tiwindow; - "hbox", TiPack.new_tihbox; - "vbox", TiPack.new_tivbox; - "hbutton_box", TiPack.new_tihbutton_box; - "vbutton_box", TiPack.new_tivbutton_box; - "fixed", TiPack.new_tifixed; - "notebook", TiPack.new_tinotebook; - "button", TiButton.new_tibutton; - "check_button", TiButton.new_ticheck_button; - "toggle_button", TiButton.new_titoggle_button; - "radio_button", TiButton.new_tiradio_button; - "toolbar", TiButton.new_toolbar; - "hseparator", TiMisc.new_tihseparator; - "vseparator", TiMisc.new_tivseparator; - "statusbar", TiMisc.new_tistatusbar; - "label", TiMisc.new_tilabel; - "color_selection", TiMisc.new_ticolor_selection; - "pixmap", TiMisc.new_tipixmap; - "frame", TiBin.new_tiframe; - "aspect_frame", TiBin.new_tiaspect_frame; - "handle_box", TiBin.new_handle_box; - "viewport", TiBin.new_viewport; - "event_box", TiBin.new_event_box; - "scrolled_window", TiBin.new_tiscrolled_window; - "entry", TiEdit.new_tientry; - "spin_button", TiEdit.new_tispin_button; - "combo", TiEdit.new_ticombo; - "clist", TiList.new_clist -] - -let _ = - TiBase.new_tiwidget := - (fun ~classe ?(pos = -1) ~name ~parent_tree ?insert_evbox ?(listprop = []) -> (List.assoc classe new_class_list) ~pos ~name ~parent_tree ?insert_evbox ~listprop) - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWindow.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWindow.ml deleted file mode 100644 index b44b4d479..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWindow.ml +++ /dev/null @@ -1,117 +0,0 @@ - -open Utils -open Property - -open TiBase -open TiContainer - - -class tiwindow ~widget ~name ~parent_tree ~pos ?(insert_evbox=true) - parent_window = -object(self) - val window = widget - inherit ticontainer ~name ~widget - ~insert_evbox:false ~parent_tree ~pos parent_window as container - - method connect_event = window#event#connect - - method private class_name = "GWindow.window" - - method private get_mandatory_props = [ "title" ] - -(* method private save_clean_proplist = - List.remove_assoc "title" container#save_clean_proplist - - method private emit_clean_proplist plist = - List.remove_assoc "title" (container#emit_clean_proplist plist) -*) - method remove_me () = - let sref = ref "" in - self#save_to_string sref; - let lexbuf = Lexing.from_string !sref in - let node = Load_parser.window Load_lexer.token lexbuf in - add_undo (Add_window node); - self#remove_me_without_undo () - - method copy () = self#copy_to_sel window_selection - - method remove_me_without_undo () = - self#forall ~callback:(fun tiw -> tiw#remove_me_without_undo ()); - parent_window#remove_sel (self : #tiwidget0 :> tiwidget0); - name_list := list_remove !name_list ~f:(fun n -> n=name); - Hashtbl.remove widget_map name; - Propwin.remove name; - widget#destroy () - - method private get_packing packing = "" - - method emit_code f param_list = - let param_string = - match param_list with - | [] -> "" - | _ -> "['" ^ - (String.concat ~sep:", '" - (List.map ~f:(fun c -> (String.make 1 c)) param_list)) ^ - "] " in - Format.fprintf f "(* Code for %s *)@\n@\n@[class %s%s () =" - name param_string name; - self#emit_init_code f ~packing:""; - Format.fprintf f "@]@\n@[object (self)"; - self#emit_method_code f; - Format.fprintf f "@ method show () = %s#show ()" name; - Format.fprintf f "@ @[initializer"; - self#emit_initializer_code f; - Format.fprintf f "@ ()@]@]@ end@\n@\n" - -(* method private save_start formatter = - Format.fprintf formatter "@[<0>@\n@[<2>" name; - Format.fprintf formatter "@\ntitle=\"%s\"" - (List.assoc "title" proplist)#get -*) - method private save_end formatter = - Format.fprintf formatter "@]@\n@\n@]" - - method private menu ~time = - let menu = GMenu.menu () and menu_add = GMenu.menu () in - List.iter - ~f:(fun n -> - let mi = GMenu.menu_item ~packing:menu_add#append ~label:n () - in mi#connect#activate - ~callback:(fun () -> self#add_child n (); ()); ()) - widget_add_list; - let mi_add = GMenu.menu_item ~packing:menu#append ~label:("add to "^ name) () - and mi_paste = GMenu.menu_item ~packing:menu#append ~label:"Paste" () - in - mi_add#set_submenu menu_add; - if !selection <> "" - then begin mi_paste#connect#activate ~callback:self#paste; () end - else mi_paste#misc#set_sensitive false; - menu#popup ~button:3 ~time - - - initializer - classe <- "window"; - window#set_title name; - proplist <- proplist @ - [ "title", - new prop_string ~name:"title" ~init:name ~set:(ftrue window#set_title); - "allow_shrink", new prop_bool ~name:"allow_shrink" ~init:"false" - ~set:(ftrue window#set_allow_shrink); - "allow_grow", new prop_bool ~name:"allow_grow" ~init:"true" - ~set:(ftrue window#set_allow_grow); - "auto_shrink", new prop_bool ~name:"auto_shrink" ~init:"false" - ~set:(ftrue window#set_auto_shrink); - "x position", new prop_int ~name:"x" ~init:"-2" - ~set:(fun x -> window#misc#set_geometry ~x (); true); - "y position", new prop_int ~name:"y" ~init:"-2" - ~set:(fun y -> window#misc#set_geometry ~y (); true) ] -end - -let new_tiwindow ~name ?(listprop = []) = - let w = GWindow.window ~show:true () in - w#misc#set_can_focus false; - w#misc#set_can_default false; - new tiwindow ~widget:w ~name - - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/togglebutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/togglebutton.xpm deleted file mode 100644 index f29d76972..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/togglebutton.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *togglebutton_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+..................O+", -"+. O+", -"+. XXXXXXXXXXXXXXXXO+", -"+. XXXXXXXXXXXXXXXXO+", -"+. XXX XXX XXX XXO+", -"+. XX XXX XX XX XXO+", -"+. XX XXX XX XX XXO+", -"+. XX XXX XX X X XXO+", -"+. XX XXX XX XX XXO+", -"+. XX XXX XX XX XXO+", -"+. XXX XXX XXX XXO+", -"+. XXXXXXXXXXXXXXXXO+", -"+. XXXXXXXXXXXXXXXXO+", -"+. XXXXXXXXXXXXXXXXO+", -"+OOOOOOOOOOOOOOOOOOO+", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/toolbar.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/toolbar.xpm deleted file mode 100644 index d9a521716..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/toolbar.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *toolbar_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+OOOOOOOOOOOOOOOOOOO ", -"+OXXXXXXXXXXXXXXXXX. ", -"+OXOOOO OOOO OOOO X. ", -"+OXOXXX OXXX OXXX X. ", -"+OXOXXX OXXX OXXX X. ", -"+OXO O O X. ", -"+OXXXXXXXXXXXXXXXXX. ", -"+O.................. ", -"+ ", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_minus.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_minus.xpm deleted file mode 100644 index cce067910..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_minus.xpm +++ /dev/null @@ -1,18 +0,0 @@ -/* XPM */ -static char *tree_minus[] = { -/* width height num_colors chars_per_pixel */ -" 9 9 2 1", -/* colors */ -". c #000000", -"# c #f8fcf8", -/* pixels */ -".........", -".#######.", -".#######.", -".#######.", -".#.....#.", -".#######.", -".#######.", -".#######.", -"........." -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_plus.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_plus.xpm deleted file mode 100644 index d0ba80ca2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_plus.xpm +++ /dev/null @@ -1,18 +0,0 @@ -/* XPM */ -static char *tree_plus[] = { -/* width height num_colors chars_per_pixel */ -" 9 9 2 1", -/* colors */ -". c #000000", -"# c #f8fcf8", -/* pixels */ -".........", -".#######.", -".###.###.", -".###.###.", -".#.....#.", -".###.###.", -".###.###.", -".#######.", -"........." -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/utils.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/utils.ml deleted file mode 100644 index 0b37975c7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/utils.ml +++ /dev/null @@ -1,353 +0,0 @@ -(* $Id$ *) - -open GObj - -open Common - -external test_modifier : Gdk.Tags.modifier -> int -> bool - = "ml_test_GdkModifier_val" - - -(************* types *************) -(* used in the load_parser and for the selection *) - -(* widget: class * name * property list - where property = name * value_string *) -type yywidget = string * string * (string * string) list -type yywidget_tree = Node of yywidget * yywidget_tree list - - -(*********** some utility functions **************) -let rec list_remove ~f = function - | [] -> [] - | hd :: tl -> if f hd then tl else hd :: (list_remove ~f tl) - - -(* cut the list at the element elt; elt stays in tail; - hd stays in reverse order *) -let cut_list ~item l = - let rec aux h t = match t with - | hd :: tl -> if hd = item then h, t - else aux (hd :: h) tl - | [] -> failwith "cut_list" - in aux [] l - -let list_pos ~item l = - let rec aux pos = function - | [] -> raise Not_found - | hd :: tl -> if hd = item then pos else aux (pos+1) tl - in aux 0 l - -(* moves the pos element up; pos is >= 1; - the first element is numbered 0 *) -let rec list_reorder_up ~pos = function - | hd1 :: hd2 :: tl when pos = 1 -> hd2 :: hd1 :: tl - | hd :: tl when pos > 1 -> hd :: (list_reorder_up ~pos:(pos-1) tl) - | _ -> failwith "list_reorder" - -(* moves the pos element down; pos is < length of l - 1; - the first element is numbered 0 *) -let rec list_reorder_down ~pos = - list_reorder_up ~pos:(pos+1) - - -let rec list_insert ~item l ~pos = - if pos=0 then item :: l - else - match l with - | [] -> failwith "list_insert" - | hd :: tl -> hd :: (list_insert ~item tl ~pos:(pos-1)) - - -let rec change_property_name oldname newname = function - | (n, p) :: tl when oldname = n -> (newname, p) :: tl - | (n, p) :: tl -> (n, p) :: change_property_name oldname newname tl - | [] -> failwith "change_property_name: name not found" - - - -(* contains the list of names of widgets in the current project; - used to test if a name is already used; - a name is added to the list when a tiwrapper is created (in - the initilizer part of tiwrapper, - it is removed when the widget is removed from his parent, - in method remove_me of tiwrapper *) -let name_list = ref ([] : string list) - -let split name = - let l = String.length name in - let i = ref (l-1) in - while !i >= 0 && name.[!i] >= '0' && name.[!i] <= '9' do decr i done; - if !i = l-1 then - name, (-1) - else - (String.sub name ~pos:0 ~len:(!i+1)), - int_of_string (String.sub name ~pos:(!i+1) ~len:(l- !i-1)) - -let test_unique name = not (List.mem name !name_list) - -let make_new_name ?(index=1) base = - let index, name = - if index = -1 then ref 1, ref base - else ref index, ref (base ^ (string_of_int index)) in - while not (test_unique !name) do - incr index; - name := base ^ (string_of_int !index) - done; - !name - -let change_name name = - let base, index = split name in make_new_name base ~index - -let message s = - let w = GWindow.window ~show:true ~modal:true () in - let v = GPack.vbox ~packing:w#add () in - let l = GMisc.label ~text:s ~packing:v#add () in - let b = GButton. button ~label:"OK" ~packing:v#add () in - b#connect#clicked ~callback:w#destroy; - w#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main () - -let message_name () = message "name already in use\npick a new name" - -(* better: use a spin button *) -let get_a_number s default= - let res = ref default in - let w = GWindow.window ~show:true ~modal:true () in - let v = GPack.vbox ~packing:w#add () in - let l = GMisc.label ~text:s ~packing:v#add () in - let e = GEdit.entry ~text:(string_of_int default) ~packing:v#add () in - let b = GButton. button ~label:"OK" ~packing:v#add () in - b#connect#clicked ~callback:(fun () -> - begin try res := int_of_string e#text with Failure _ -> () end; - w#destroy ()); - w#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main (); - !res - - -(*************** file selection *****************) - -let get_filename ~callback:set_filename ?(dir="") () = - let res = ref false in - let file_selection = GWindow.file_selection ~modal:true () in - if dir <> "" then file_selection#set_filename dir; - file_selection#show (); - file_selection#ok_button#connect#clicked - ~callback:(fun () -> set_filename file_selection#get_filename; - res := true; - file_selection#destroy ()); - file_selection#cancel_button#connect#clicked - ~callback:file_selection#destroy; - file_selection#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main (); - !res - -(* returns the directory and the file name (without the extension) *) -let split_filename filename ~ext = - let lext = String.length ext in - let l = String.length filename in - let filename, l = - if (l > lext) && (String.sub filename ~pos:(l - lext) ~len:lext = ext) - then (String.sub filename ~pos:0 ~len:(l-lext)), l-lext - else filename, l in - let i = 1 + (String.rindex filename '/') in - String.sub filename ~pos:0 ~len:i, - String.sub filename ~pos:i ~len:(l-i) - - -(****************** ML signals *****************) -let signal_id = ref 0 - -let next_callback_id () : GtkSignal.id = - decr signal_id; Obj.magic (!signal_id : int) - -class ['a] signal = object - val mutable callbacks : (GtkSignal.id * ('a -> unit)) list = [] - method connect ~callback ~after = - let id = next_callback_id () in - callbacks <- - if after then callbacks @ [id,callback] else (id,callback)::callbacks; - id - method call arg = - List.iter callbacks ~f:(fun (_,f) -> f arg) - method disconnect id = - List.mem_assoc id callbacks && - (callbacks <- List.remove_assoc id callbacks; true) - method reset () = callbacks <- [] -end - -class type disconnector = - object - method disconnect : GtkSignal.id -> bool - method reset : unit -> unit - end - -class has_ml_signals = object - val mutable disconnectors = [] - method private add_signal (sgn : 'a signal) = - disconnectors <- (sgn :> disconnector) :: disconnectors - - method disconnect id = - List.exists disconnectors ~f:(fun d -> d#disconnect id) -end - - -(****************** undo information ********************) - -type undo_action = - | Add of string * yywidget_tree * int - | Remove of string - | Property of prop * string - | Add_window of yywidget_tree - | Remove_window of string - -let undo_info = ref ([] : undo_action list) -let next_undo_info = ref ([] : undo_action list) -let last_action_was_undo = ref false - -let add_undo f = - undo_info := f :: !undo_info; - last_action_was_undo := false - - -(**********************************************************) -let ftrue f = fun x -> f x; true - - -(**********************************************************) - -let toolbar_child_prop kind = - let rt = ref "" and rtt = ref "" and rptt = ref "" and ok = ref false in - let w = GWindow.window ~modal:true () in - let v = GPack.vbox ~packing:w#add () in - let h1 = GPack.hbox ~packing:v#pack () in - let h2 = GPack.hbox ~packing:v#pack () in - let h3 = GPack.hbox ~packing:v#pack () in - let h4 = GPack.hbox ~packing:v#pack () in - let l1 = GMisc.label ~text:"text" ~packing:h1#pack () in - let e1 = GEdit.entry ~packing:h1#pack () in - let l2 = GMisc.label ~text:"tooltip_text" ~packing:h2#pack () in - let e2 = GEdit.entry ~packing:h2#pack () in - let l3 = GMisc.label ~text:"private_text" ~packing:h3#pack () in - let e3 = GEdit.entry ~packing:h3#pack () in - let b1 = GButton.button ~label:"OK" ~packing:h4#pack () in - let b2 = GButton.button ~label:"Cancel" ~packing:h4#pack () in - w#show (); - b1#connect#clicked - ~callback:(fun () -> rt := e1#text; rtt := e2#text; - rptt := e3#text; ok := true; - w#destroy ()); - b2#connect#clicked ~callback:w#destroy; - w#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main (); - !ok, !rt, !rtt, !rptt - - - -(**********************************************************) - -let get5floats_from_string s = - try - let n1 = String.index s ' ' in - let f1 = float_of_string (String.sub s ~pos:0 ~len:(n1-1)) in - let n2 = String.index_from s (n1+1) ' ' in - let f2 = float_of_string (String.sub s ~pos:(n1+1) ~len:(n2-1)) in - let n3 = String.index_from s (n2+1) ' ' in - let f3 = float_of_string (String.sub s ~pos:(n2+1) ~len:(n3-1)) in - let n4 = String.index_from s (n3+1) ' ' in - let f4 = float_of_string (String.sub s ~pos:(n3+1) ~len:(n4-1)) in - let f5 = float_of_string (String.sub s ~pos:(n4+1) ~len: - ((String.length s) -1)) in - f1, f2, f3, f4, f5 - with _ -> failwith "get5floats_of_string" - - - -(**********************************************************) - -exception Float_of_string -let my_float_of_string s = - let l = String.length s in - if l=0 then raise Float_of_string; - let sign, d = match s.[0] with - | '+' -> 1, 1 - | '-' -> -1, 1 - | _ -> 1, 0 in - let m, p = - let p = - try - String.index s '.' - with Not_found -> l in - if p=d then 0, p - else - try int_of_string (String.sub s ~pos:d ~len:(p-d)), p - with Failure "int_of_string" -> raise Float_of_string - in - if p=l then float_of_int m - else begin - let f = ref 0. and r = ref 0.1 in - for i = p+1 to l-1 do - let k = (int_of_char s.[i]) - 48 in - if k > 9 || k < 0 then raise Float_of_string; - f := !f +. (float_of_int k) *. !r; - r := !r *. 0.1 - done; - !f +. (float_of_int m) - end - - - - -class entry_float obj ~init = let rv = ref init in -object - inherit GEdit.entry obj as entry - method value = - try - let v = my_float_of_string entry#text in - rv := v; - v - with Float_of_string -> - let pop = GWindow.window ~title:"error" ~modal:true () in - let vb = GPack.vbox ~packing:pop#add () in - let l = GMisc.label ~text:"value must be a float" ~packing:vb#pack () in - let b = GButton.button ~label:"OK" ~packing:vb#pack () in - b#connect#clicked ~callback:pop#destroy; - pop#event#connect#delete ~callback:(fun _ -> pop#destroy (); true); - pop#connect#destroy ~callback:GtkMain.Main.quit; - pop#show (); - GtkMain.Main.main (); - entry#set_text (string_of_float !rv); - !rv -end - - -let set_editable ?editable ?(width = -2) ?(height = -2) w = - Gaux.may editable ~f:(GtkEdit.Editable.set_editable w); - if width <> -2 || height <> -2 then GtkBase.Widget.set_usize w ~width ~height - - -let entry_float ~init ?max_length ?visibility ?editable - ?width ?height ?packing ?show () = - let w = GtkEdit.Entry.create ?max_length () in - GtkEdit.Entry.set w ~text:(string_of_float init) ?visibility; - set_editable w ?editable ?width ?height; - pack_return (new entry_float w ~init) ~packing ~show - - -(*************************************************************) - - -let split_string s ~sep = - let l = String.length s in - let r = ref [] in - let j = ref 0 in - for i = 0 to l-1 do - if String.unsafe_get s i = sep then begin - r := (String.sub s ~pos:!j ~len:(i - !j)) :: !r; - j := i + 1 - end - done; - List.rev ((String.sub s ~pos:!j ~len:(l - !j)) :: !r) - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbox.xpm deleted file mode 100644 index 1c557b021..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbox.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *vbox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 4 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c Gray100", -/* pixels */ -"oooooooooooooooooooo ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"o................... ", -" ", -"oooooooooooooooooooo ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"o................... ", -" ", -"oooooooooooooooooooo ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"o................... ", -" " -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbuttonbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbuttonbox.xpm deleted file mode 100644 index 0c2bc9598..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbuttonbox.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *vbuttonbox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"++++++++OOOOO +++++++", -"++++++++OXXX. +++++++", -"++++++++OXXX. +++++++", -"++++++++O.... +++++++", -"++++++++ +++++++", -"+++++++++++++++++++++", -"++++++++OOOOO +++++++", -"++++++++OXXX. +++++++", -"++++++++OXXX. +++++++", -"++++++++O.... +++++++", -"++++++++ +++++++", -"+++++++++++++++++++++", -"++++++++OOOOO +++++++", -"++++++++OXXX. +++++++", -"++++++++OXXX. +++++++", -"++++++++O.... +++++++", -"++++++++ +++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/viewport.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/viewport.xpm deleted file mode 100644 index 71e5e80cf..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/viewport.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char *viewport_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 7 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray87", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@@@@@@@@@@", -"@...................@", -"@. +O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@.+++++++++++++++++O@", -"@.OOOOOOOOOOOOOOOOOO@", -"@@@@@@@@@@@@@@@@@@@@@" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vseparator.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vseparator.xpm deleted file mode 100644 index 3455f74d9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vseparator.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *vseparator_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 4 1", -" c #7b7b7b", -". c #b3cece", -"X c Gray100", -"o c None", -/* pixels */ -"ooooooooooooooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"ooooooooooooooooooooo" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/window.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/window.xpm deleted file mode 100644 index 8407e2836..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/window.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -static char *window_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 11 1", -" c Gray0", -". c #00007b", -"X c #7b7b7b", -"o c Green", -"O c Cyan", -"+ c Red", -"@ c Yellow", -"# c #d6d6d6", -"$ c #b3cece", -"% c Gray100", -"& c None", -/* pixels */ -"&&&&&&&&&&&&&&&&&&&&&", -"&&&&&&&&&&&&&&&&&&&&&", -"&&&&&&&&&&&&&&&&&&&&&", -"XXXXXXXXXXXXXXXXXXXX&", -"X.+@...............X ", -"X.Oo.%%%.%%.....# #X ", -"XXXXXXXXXXXXXXXXXXXX ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"XXXXXXXXXXXXXXXXXXXX ", -"& ", -"&&&&&&&&&&&&&&&&&&&&&", -"&&&&&&&&&&&&&&&&&&&&&" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/.cvsignore deleted file mode 100644 index 31706abd2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -unison-* diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/README b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/README deleted file mode 100644 index 73bcc2511..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/README +++ /dev/null @@ -1,19 +0,0 @@ - A GUI for Unison - -Here is a lablGTK port of Unison's GUI. -Or rather was, since this is now the standard GUI for unison. - -Unison is a file synchronization software developped by Benjamin -Pierce, Trevor Jim, and others. - -As of version 2.3.12, unison is based on LablGTK 1.00. -To use it with the current version, you must: - * get unison-2.3.12/src.tar.gz from http://www.cis.upenn.edu/~bcpierce/unison/ - * untar it in this directory - * copy or make links for uigtk.ml here inside unison-2.3.12 - ln -fs ../uigtk.ml . - * make and follow instructions in INSTALL.txt - -Jacques Garrigue - -$Id$ diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/uigtk.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/uigtk.ml deleted file mode 100644 index 6efacd630..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/uigtk.ml +++ /dev/null @@ -1,1434 +0,0 @@ -(* $Id$ *) - -open Util -open Os -open Common -open Uicommon -open Printf -open Trace - -(**********************************************************************) -(* GRAPHICAL INTERFACE *) -(**********************************************************************) - -module Private : Uicommon.UI = struct - -open GMain -open GdkKeysyms - -let debugprogress = Trace.debug "progress" - -(**********************************************************************) -(* UI preferences *) -(**********************************************************************) - -let fontMonospaceMedium = - if Sys.os_type = "Win32" then - lazy (Gdk.Font.load "-*-Courier New-Medium-R-Normal--*-110-*-*-*-*-*-*") - else - lazy (Gdk.Font.load "-*-Clean-Medium-R-Normal--*-130-*-*-*-*-*-*") -let fontMonospaceBold = - if Sys.os_type = "Win32" then - lazy (Gdk.Font.load "-*-Courier New-Bold-R-Normal--*-110-*-*-*-*-*-*") - else - lazy (Gdk.Font.load "-*-Courier-Bold-R-Normal--*-120-*-*-*-*-*-*") - -(**********************************************************************) -(* UI state variables *) -(**********************************************************************) - -type stateItem = { ri : reconItem; - mutable bytesTransferred : int; - mutable whatHappened : unit confirmation option } -let theState = ref [||] - -let current = ref None - -let currentWindow = ref None -let grabFocus t = - match !currentWindow with - Some w -> t#set_transient_for w; - w#misc#set_sensitive false - | None -> () -let releaseFocus () = - begin match !currentWindow with - Some w -> w#misc#set_sensitive true - | None -> () - end - -(**********************************************************************) -(* Lock management *) -(**********************************************************************) - -let busy = ref false - -let getLock f = - if !busy then - Trace.message "Synchronizer is busy, please wait..\n" - else begin - busy := true; f (); busy := false - end - -(**********************************************************************) -(* Some widgets *) -(**********************************************************************) - -class scrolled_text ?editable ?word_wrap ?width ?height ?packing ?show - () = - let sw = - GBin.scrolled_window ?width ?height ?packing ~show:false - ~hpolicy:`NEVER ~vpolicy:`AUTOMATIC () - in - let text = GEdit.text ?editable ?word_wrap ~packing:sw#add () in - object - inherit GObj.widget_full sw#as_widget - method text = text - method insert ?(font=fontMonospaceMedium) s = - text#freeze (); - text#delete_text ~start:0 ~stop:text#length; - text#insert ~font:(Lazy.force font) s; - text#thaw () - method show () = sw#misc#show () - initializer - if show <> Some false then sw#misc#show () - end - -let gtk_sync () = while Glib.Main.iteration false do () done - -(**********************************************************************) -(* YES OR NO FUNCTION *) -(**********************************************************************) -(* val yesOrNo : string -> string -> (unit -> unit) -> (unit -> unit) *) -(* -> unit *) -(* Displays a window with two buttons : YES and NO *) -(* yesOrNo title message yesFunction noFunction open the title *) -(* window in which is displayed message. yesFunction and noFunctions *) -(* are the functions associated two the two buttons *) -(**********************************************************************) -let yesOrNo ~title ~message ~yes:yesFunction ~no:noFunction = - let t = GWindow.dialog ~title ~wm_name:title ~modal:true ~position:`CENTER () in - grabFocus t; - let theLabel = GMisc.label ~text:message - ~packing:(t#vbox#pack ~padding:4) () in - let yes = GButton.button ~label:"Yes" ~packing:t#action_area#add () - and no = GButton.button ~label:"No" ~packing:t#action_area#add () in - no#grab_default (); - ignore - (yes#connect#clicked ~callback:(fun () -> t#destroy (); yesFunction ())); - ignore - (no#connect#clicked ~callback:(fun () -> t#destroy (); noFunction ())); - t#show (); - ignore (t#connect#destroy ~callback:Main.quit); - Main.main (); - releaseFocus () - -(**********************************************************************) -(* SAFE EXIT FUNCTION *) -(**********************************************************************) - -(* Avoid recursive invocations of the function below - (a window receives delete events even when it is not sensitive) *) -let inExit = ref false - -let safeExit () = - if not !inExit then begin - inExit := true; - if not !busy then exit 0 else - yesOrNo ~title:"Premature exit" - ~message:"Unison is working, exit anyway ?" - ~yes:(fun () -> exit 0) ~no:(fun () -> ()); - inExit := false - end - -(**********************************************************************) -(* okBox: Display a message in a window and wait for the user *) -(* to hit the "OK" button. *) -(**********************************************************************) -let okBox ~title ~message = - let t = GWindow.dialog ~title ~wm_name:title ~modal:true ~position:`CENTER () in - grabFocus t; - let theLabel = GMisc.label ~text:message - ~packing:(t#vbox#pack ~padding:4) () in - let ok = GButton.button ~label:"OK" ~packing:t#action_area#add () in - ok#grab_default (); - ignore (ok#connect#clicked ~callback:(fun () -> t#destroy())); - t#show (); - (* Do nothing until user destroys window *) - ignore (t#connect#destroy ~callback:Main.quit); - Main.main (); - releaseFocus () - -(**********************************************************************) -(* warnBox: Display a warning message in a window and wait for the *) -(* user to hit "OK" or "Exit". *) -(**********************************************************************) -let warnBox ~title ~message = - inExit := true; - let t = GWindow.dialog ~title ~wm_name:title ~modal:true ~position:`CENTER () in - grabFocus t; - let theLabel = - GMisc.label ~text:message - ~packing:(t#vbox#pack ~padding:4) () in - let ok = GButton.button ~label:"OK" ~packing:t#action_area#add () in - ok#grab_default (); - ignore (ok#connect#clicked ~callback:(fun () -> t#destroy())); - let exi = GButton.button ~label:"Exit" ~packing:t#action_area#add () in - ignore (exi#connect#clicked ~callback:(fun () -> exit 0)); - t#show (); - (* Do nothing until user destroys window *) - ignore (t#connect#destroy ~callback:Main.quit); - Main.main (); - releaseFocus (); - inExit := false - -(**********************************************************************) -(* Standard file dialog *) -(**********************************************************************) -let file_dialog ~title ~callback ?filename () = - let sel = GWindow.file_selection ~title ~modal:true ?filename () in - grabFocus sel; - ignore (sel#cancel_button#connect#clicked ~callback:sel#destroy); - ignore (sel#ok_button#connect#clicked ~callback: - (fun () -> - let name = sel#get_filename in - sel#destroy (); - callback name)); - sel#show (); - Main.main (); - releaseFocus () - -(**********************************************************************) -(* The root selection dialog *) -(**********************************************************************) -let rootSelect cont = - let t = GWindow.dialog ~title:"Root selection" ~wm_name:"Root selection" - ~modal:true ~allow_grow:true () in - t#misc#grab_focus (); - - let makeGetRoot title = - let fr = - GBin.frame ~label:title ~border_width:2 ~packing:(t#vbox#add) () in - - let vb = GPack.vbox ~border_width:4 ~packing:fr#add () in - - let f = GPack.vbox ~packing:(vb#add) () in - let f0 = GPack.hbox ~spacing:4 ~packing:f#add () in - ignore (GMisc.label ~text:"Host:" ~packing:f0#pack ()); - let localB = GButton.radio_button ~packing:f0#pack - ~label:"Local" () in - let remoteB = GButton.radio_button ~group:localB#group - ~packing:f0#pack ~label:"Remote" () in - let hostE = GEdit.entry ~packing:f0#add () in - let f1 = GPack.hbox ~spacing:4 ~packing:f#add () in - ignore (GMisc.label ~text:"File:" ~packing:f1#pack ()); - let fileE = GEdit.entry ~packing:f1#add () in - let browseCommand() = - file_dialog ~title:"Select a local file" - ~callback:(fun file -> fileE#set_text file) ~filename:fileE#text () - in - let b = GButton.button ~label:"Browse" - ~packing:f1#pack () in - ignore (b#connect#clicked ~callback:browseCommand); - let varLocalRemote = ref (`Local : [`Local|`Remote]) in - let localState() = - varLocalRemote := `Local; - hostE#misc#set_sensitive false; - b#misc#set_sensitive true - in - let remoteState() = - varLocalRemote := `Remote; - hostE#misc#set_sensitive true; - b#misc#set_sensitive false - in - ignore (localB#connect#clicked ~callback:localState); - ignore (remoteB#connect#clicked ~callback:remoteState); - localState(); - let getRoot() = - let filePart = fileE#text in - let remoteHost = hostE#text in - (* FIX: should do sanity checking here *) - match !varLocalRemote with - `Local -> filePart - | `Remote -> "//"^remoteHost^"/"^filePart in - getRoot - in - - let getRoot1 = makeGetRoot "Root 1" in - let getRoot2 = makeGetRoot "Root 2" in - - let f3 = t#action_area in - let okCommand() = - let root1 = getRoot1() in - let root2 = getRoot2() in - Prefs.setPref Uicommon.roots Prefs.TempSetting [root1;root2]; - t#destroy (); - cont () - in - let okButton = GButton.button ~label:"OK" ~packing:f3#add () in - ignore (okButton#connect#clicked ~callback:okCommand); - okButton#grab_default (); - let cancelButton = GButton.button ~label:"Cancel" ~packing:f3#add () in - ignore (cancelButton#connect#clicked ~callback:safeExit); - - (* The profile editing dialog has been installed into the Gtk - main interaction loop; wait until it completes. *) - t#show (); - ignore (t#connect#destroy ~callback:Main.quit); - Main.main () - -(**********************************************************************) -(* The root selection dialog *) -(**********************************************************************) -let editProfile prof = - (* FIX: - Scan the profile (if it is defined) - Extract the roots - Modifications - Save with new roots *) - let t = GWindow.dialog ~title:"Edit profile" ~wm_name:"Edit profile" - ~modal:true ~allow_grow:true () in - t#misc#grab_focus (); - - let vb = GPack.vbox ~border_width:4 ~packing:t#vbox#add () in - - let makeGetRoot() = - let f = GPack.vbox ~packing:(vb#pack ~expand:true ~padding:4) () in - let f0 = GPack.hbox ~spacing:4 ~packing:f#add () in - ignore (GMisc.label ~text:"Host:" ~packing:f0#pack ()); - let localB = GButton.radio_button ~packing:f0#pack ~label:"Local" () in - let remoteB = GButton.radio_button ~group:localB#group - ~packing:f0#pack ~label:"Remote" () in - let hostE = GEdit.entry ~packing:f0#add () in - let f1 = GPack.hbox ~spacing:4 ~packing:f#add () in - ignore (GMisc.label ~text:"File:" ~packing:f1#pack ()); - let fileE = GEdit.entry ~packing:f1#add () in - let browseCommand() = - file_dialog ~title:"Select a local file" - ~callback:(fun file -> fileE#set_text file) () - in - let b = GButton.button ~label:"Browse" ~packing:f1#pack () in - ignore (b#connect#clicked ~callback:browseCommand); - let varLocalRemote = ref (`Local : [`Local|`Remote]) in - let localState() = - varLocalRemote := `Local; - hostE#set_editable false; - b#misc#set_state `NORMAL - in - let remoteState() = - varLocalRemote := `Remote; - hostE#set_editable true; - b#misc#set_state `INSENSITIVE - in - ignore (localB#connect#clicked ~callback:localState); - ignore (remoteB#connect#clicked ~callback:remoteState); - localState(); - let getRoot() = - let filePart = fileE#text in - let remoteHost = hostE#text in - (* FIX: should do sanity checking here *) - match !varLocalRemote with - `Local -> filePart - | `Remote -> "//"^remoteHost^"/"^filePart in - getRoot - in - - - ignore (GMisc.label ~text:"Root 1:" ~xalign:0. - ~packing:(vb#pack ~expand:true ~padding:4) ()); - let getRoot1 = makeGetRoot() in - - ignore (GMisc.label ~text:"Root 2:" ~xalign:0. - ~packing:(vb#pack ~expand:true ~padding:4) ()); - let getRoot2 = makeGetRoot() in - - let f3 = t#action_area in - let okCommand() = - let root1 = getRoot1() in - let root2 = getRoot2() in - Prefs.setPref Uicommon.roots Prefs.PermanentSetting [root1;root2]; - Globals.savePrefs(); - t#destroy () in - let okButton = GButton.button ~label:"OK" ~packing:f3#add () in - ignore (okButton#connect#clicked ~callback:okCommand); - let cancelCommand() = - t#destroy () - in - let cancelButton = GButton.button ~label:"Cancel" ~packing:f3#add () in - ignore (cancelButton#connect#clicked ~callback:cancelCommand); - - (* The profile editing dialog has been installed into the Gtk - main interaction loop; wait until it completes. *) - t#show (); - ignore (t#connect#destroy ~callback:Main.quit); - Main.main () - -(**********************************************************************) -(* Documentation window *) -(**********************************************************************) -let documentation sect = - let title = "Documentation" in - let t = GWindow.dialog ~title ~wm_name:title () in - let t_dismiss = - GButton.button ~label:"dismiss" ~packing:t#action_area#add () in - t_dismiss#grab_default (); - let dismiss () = t#destroy () in - ignore (t_dismiss#connect#clicked ~callback:dismiss); - ignore (t#event#connect#delete ~callback:(fun _ -> dismiss (); true)); - - let (name, docstr) = List.assoc sect Strings.docs in - let hb = GPack.hbox ~packing:(t#vbox#pack ~expand:false ~padding:2) () in - let optionmenu = - GMenu.option_menu ~packing:(hb#pack ~fill:false) () in - - let charW = Gdk.Font.char_width (Lazy.force fontMonospaceMedium) 'M' in - let charH = 16 in - let t_text = - new scrolled_text ~editable:false - ~width:(charW * 80) ~height:(charH * 20) ~packing:t#vbox#add () - in - t_text#insert docstr; - - let sect_idx = ref 0 in - let idx = ref 0 in - let menu = GMenu.menu () in - let addDocSection (shortname, (name, docstr)) = - if shortname <> "" && name <> "" then begin - if shortname = sect then sect_idx := !idx; - incr idx; - let item = GMenu.menu_item ~label:name ~packing:menu#append () in - ignore - (item#connect#activate ~callback:(fun () -> t_text#insert docstr)) - end - in - Safelist.iter addDocSection Strings.docs; - optionmenu#set_menu menu; - optionmenu#set_history !sect_idx; - - t#show () - -(**********************************************************************) -(* The profile selection dialog *) -(**********************************************************************) -let profileSelect cont = -(* FIX: - - Choix du profil par defaut -*) - let profilesAndRoots = - ref - (Safelist.map - (fun f -> - let filename = fspath2string (Os.fileInUnisonDir f) in - let roots = - Safelist.map snd - (Safelist.filter (fun (n, v) -> n = "root") - (Prefs.scanPreferencesFile filename)) - in - (Filename.chop_suffix f ".prf", roots)) - (Files.ls (fspath2string Os.synchronizerFspath) "*.prf")) in - - (* The selected profile *) - let selection = ref None in - - (* Build the dialog *) - let t = GWindow.dialog ~title:"Profiles" ~wm_name:"Profiles" () in - - let okCommand() = - match !selection with - Some profile -> - Globals.prefsFileName := profile ^ ".prf"; - currentWindow := None; - t#destroy (); - cont () - | _ -> - () - in - let okButton = GButton.button ~label:"OK" ~packing:t#action_area#add () in - ignore (okButton#connect#clicked ~callback:okCommand); - okButton#misc#set_sensitive false; - okButton#grab_default (); - let cancelCommand() = t#destroy (); Main.quit () in - let cancelButton = GButton.button ~label:"Cancel" - ~packing:t#action_area#add () in - ignore (cancelButton#connect#clicked ~callback:cancelCommand); - cancelButton#misc#set_can_default true; - - let vb = t#vbox in - - ignore (GMisc.label - ~text:"Select an existing profile or create a new one" - ~xpad:2 ~ypad:2 ~packing:vb#pack ()); - - let sw = - GBin.scrolled_window ~packing:vb#add ~height:100 - ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC () - in - let lst = GList.clist ~selection_mode:`BROWSE ~packing:(sw#add) () in - let fillLst default = - lst#freeze (); - lst#clear (); - let selRow = ref 0 in - let i = ref 0 in (* FIX: Work around a lablgtk bug *) - Safelist.iter - (fun (profile, roots) -> - ignore (lst#append [profile]); - if profile = default then selRow := !i; - lst#set_row_data !i (profile, roots); - incr i) - (List.sort (fun (p, _) (p', _) -> compare p p') !profilesAndRoots); - let r = lst#rows in - let p = if r < 2 then 0. else float !selRow /. float (r - 1) in - lst#scroll_vertical `JUMP p; - lst#thaw () - in - let tbl = - GPack.table ~rows:2 ~columns:2 ~packing:vb#pack () - in - tbl#misc#set_sensitive false; - ignore (GMisc.label ~text:"Root 1:" ~xpad:2 - ~packing:(tbl#attach ~left:0 ~top:0 ~expand:`NONE) ()); - ignore (GMisc.label ~text:"Root 2:" ~xpad:2 - ~packing:(tbl#attach ~left:0 ~top:1 ~expand:`NONE) ()); - let root1 = - GEdit.entry ~packing:(tbl#attach ~left:1 ~top:0) ~editable:false () in - let root2 = - GEdit.entry ~packing:(tbl#attach ~left:1 ~top:1) ~editable:false () in - root1#misc#set_can_focus false; - root2#misc#set_can_focus false; - let hb = - GPack.hbox ~border_width:2 ~spacing:2 ~packing:(vb#pack ~expand:false) () - in - let nw = - GButton.button ~label:"Create new profile" - ~packing:hb#pack () in - ignore (nw#connect#clicked ~callback:(fun () -> - let t = - GWindow.dialog ~title:"New profile" ~wm_name:"New profile" ~modal:true () - in - let vb = GPack.vbox ~border_width:4 ~packing:t#vbox#add () in - let f = GPack.vbox ~packing:(vb#pack ~expand:true ~padding:4) () in - let f0 = GPack.hbox ~spacing:4 ~packing:f#add () in - ignore (GMisc.label ~text:"Profile name:" - ~packing:f0#pack ()); - let prof = GEdit.entry ~packing:f0#add () in - prof#misc#grab_focus (); - - let exit () = t#destroy (); Main.quit () in - ignore (t#event#connect#delete ~callback:(fun _ -> exit (); true)); - - let f3 = t#action_area in - let okCommand () = - let profile = prof#text in - if profile <> "" then - let file = profile ^ ".prf" in - let fspath = Os.fileInUnisonDir file in - let filename = fspath2string fspath in - if Sys.file_exists filename then - okBox (myName ^ " error") - ("Profile \"" - ^ profile - ^ "\" already exists!\nPlease select another name.") - else - (* Make an empty file *) - let ch = - open_out_gen - [Open_wronly; Open_creat; Open_trunc] 0o600 filename in - close_out ch; - profilesAndRoots := (profile, [])::!profilesAndRoots; - fillLst profile; - exit () - in - let okButton = GButton.button ~label:"OK" ~packing:f3#add () in - ignore (okButton#connect#clicked ~callback:okCommand); - okButton#grab_default (); - let cancelButton = GButton.button ~label:"Cancel" ~packing:f3#add () in - ignore (cancelButton#connect#clicked ~callback:exit); - - t#show (); - grabFocus t; - Main.main (); - releaseFocus ())); - let ed = - GButton.button ~label:"Edit" (*~packing:(hb#pack ~expand:false)*) () in - let sd = - GButton.button ~label:"Set default" (*~packing:(hb#pack ~expand:false)*) () - in - let hlp = - GButton.button ~label:"Help" - ~packing:(hb#pack ~expand:false ~from:`END) () in - ignore (hlp#connect#clicked ~callback:(fun () -> documentation "tutorial")); - - ignore (lst#connect#unselect_row ~callback:(fun _ _ _ -> - root1#set_text ""; root2#set_text ""; - selection := None; - tbl#misc#set_sensitive false; - okButton#misc#set_sensitive false; - ed#misc#set_sensitive false; - sd#misc#set_sensitive false)); - ignore (lst#connect#select_row ~callback:(fun i _ _ -> - (* Inserting the first row trigger the signal, even before the row - data is set. So, we need to catch the corresponding exception *) - try - let (profile, roots) = lst#get_row_data i in - selection := Some profile; - begin match roots with - [r1; r2] -> root1#set_text r1; root2#set_text r2; - tbl#misc#set_sensitive true - | _ -> root1#set_text ""; root2#set_text ""; - tbl#misc#set_sensitive false - end; - okButton#misc#set_sensitive true; - ed#misc#set_sensitive true; - sd#misc#set_sensitive true - with Gpointer.Null -> ())); - ignore (lst#event#connect#button_press ~callback:(fun ev -> - match GdkEvent.get_type ev with - `TWO_BUTTON_PRESS -> - okCommand (); - true - | _ -> - false)); - fillLst "default"; - lst#misc#grab_focus (); - currentWindow := Some (t :> GWindow.window); - ignore (t#event#connect#delete ~callback:(fun _ -> Main.quit (); true)); - t#show () - -(**********************************************************************) -(* Function to display a message in a new window *) -(**********************************************************************) -let messageBox ~title ?(label = "Dismiss") ?(action = fun t -> t#destroy) - ?(modal = false) message = - let t = GWindow.dialog ~title ~wm_name:title ~modal ~position:`CENTER () in - let t_dismiss = GButton.button ~label ~packing:t#action_area#add () in - t_dismiss#grab_default (); - ignore (t_dismiss#connect#clicked ~callback:(action t)); - let charW = Gdk.Font.char_width (Lazy.force fontMonospaceMedium) 'M' in - let charH = 16 in - let t_text = - new scrolled_text ~editable:false - ~width:(charW * 80) ~height:(charH * 20) ~packing:t#vbox#add () - in - t_text#insert message; - ignore (t#event#connect#delete ~callback:(fun _ -> action t (); true)); - t#show (); - if modal then begin - grabFocus t; - Main.main (); - releaseFocus () - end - -(**********************************************************************) -(* Fatal error handling *) -(**********************************************************************) -let fatalError = - messageBox ~title:"Fatal Error" ~label:"Exit" ~modal:true - ~action:(fun t () -> exit 1) - - -(**********************************************************************) -(* Toplevel window *) -(**********************************************************************) -let createToplevelWindow () = - let toplevelWindow = GWindow.window ~wm_name:myName () in - let toplevelVBox = GPack.vbox ~packing:toplevelWindow#add () in - - (**********************************************************************) - (* Groups of same sensitivity *) - (**********************************************************************) - let grAction = ref [] in - let grDiff = ref [] in - let grProceed = ref [] in - let grRestart = ref [] in - let grAdd gr w = gr := w#misc::!gr in - let grSet gr st = List.iter (fun x -> x#set_sensitive st) !gr in - - (**********************************************************************) - (* Create the menu bar *) - (**********************************************************************) - let menuBar = - GMenu.menu_bar ~border_width:2 ~packing:toplevelVBox#pack () - in - let menus = new GMenu.factory ~accel_modi:[] menuBar in - let accel_group = menus#accel_group in - toplevelWindow#add_accel_group accel_group; - let add_submenu ?(modi=[]) ~label () = - new GMenu.factory ~accel_group ~accel_modi:modi (menus#add_submenu label) - in - - (**********************************************************************) - (* Create the menus *) - (**********************************************************************) - let fileMenu = add_submenu ~label:"Synchronization" () - and actionsMenu = add_submenu ~label:"Actions" () - and ignoreMenu = add_submenu ~modi:[`SHIFT] ~label:"Ignore" () - and helpMenu = add_submenu ~label:"Help" () in - - (**********************************************************************) - (* Create the main window *) - (**********************************************************************) - let mainWindow = - let sw = - GBin.scrolled_window ~packing:(toplevelVBox#add) - ~height:(Prefs.readPref mainWindowHeight * 12) - ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC () - in - GList.clist - ~columns:5 ~titles_show:true ~selection_mode:`BROWSE ~packing:sw#add () - in - mainWindow#misc#grab_focus (); - (* FIX: roots2string should return a pair *) - let s = roots2string () in - Array.iteri - (fun i data -> - mainWindow#set_column - ~title_active:false ~auto_resize:true ~title:data i) - [| " " ^ String.sub s ~pos:0 ~len:12 ^ " "; " Action "; - " " ^ String.sub s ~pos:15 ~len:12 ^ " "; " Status "; " Path" |]; - let status_width = - let font = mainWindow#misc#style#font in - 4 + max (Gdk.Font.string_width font "working") - (Gdk.Font.string_width font "skipped") - in - mainWindow#set_column ~justification:`CENTER 1; - mainWindow#set_column - ~justification:`CENTER ~auto_resize:false ~width:status_width 3; - - (**********************************************************************) - (* Create the details window *) - (**********************************************************************) - - let charW = Gdk.Font.char_width (Lazy.force fontMonospaceMedium) 'M' in - let charH = if Sys.os_type = "Win32" then 20 else 16 in - - let detailsWindow = - let sw = - GBin.scrolled_window ~packing:(toplevelVBox#pack ~expand:false) - ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC () - in - GEdit.text ~editable:false ~height:(3 * charH) ~width: (96 * charW) - ~line_wrap:false ~packing:sw#add () in - detailsWindow#misc#set_can_focus false; - let style = detailsWindow#misc#style#copy in - style#set_font (Lazy.force fontMonospaceMedium); - detailsWindow#misc#set_style style; - let updateButtons () = - match !current with - None -> - grSet grAction false; - grSet grDiff false - | Some row -> - let (activate1, activate2) = - match !theState.(row).whatHappened, !theState.(row).ri.replicas with - Some _, _ -> (false, false) - | None, Different((FILE,_, _),(FILE,_, _),_) -> (true, true) - | None, _ -> (true, false) - in - grSet grAction activate1; - grSet grDiff activate2 - in - - let makeRowVisible row = - if mainWindow#row_is_visible row <> `FULL then begin - let adj = mainWindow#vadjustment in - let current = adj#value - and upper = adj#upper and lower = adj#lower in - let v = - float row /. float (mainWindow#rows + 1) *. (upper-.lower) +. lower - in - adj#set_value (min v (upper -. adj#page_size)) - end - in - - let updateDetails () = - detailsWindow#freeze (); - detailsWindow#delete_text ~start:0 ~stop:detailsWindow#length; - begin match !current with - None -> - () - | Some row -> - makeRowVisible row; - let details = - match !theState.(row).whatHappened with - None -> details2string !theState.(row).ri " " - | Some(Succeeded(_)) -> details2string !theState.(row).ri " " - | Some(Failed(s)) -> s in - detailsWindow#insert (path2string !theState.(row).ri.path); - detailsWindow#insert "\n"; - detailsWindow#insert details - end; - (* Display text *) - detailsWindow#thaw (); - updateButtons () - in - - (**********************************************************************) - (* CREATE THE STATUS WINDOW *) - (**********************************************************************) - - let statusWindow = - GMisc.statusbar ~packing:toplevelVBox#pack () in - let statusContext = statusWindow#new_context ~name:"status" in - ignore (statusContext#push ""); - - let displayStatus s1 s2 = - Threads.do_on_main_thread (fun () -> - (* Concatenate the new message *) - let m = - s1 ^ (String.make (max 2 (30 - String.length s1)) ' ') ^ s2 in - statusContext#pop (); - ignore (statusContext#push m); - (* Force message to be displayed immediately *) - gtk_sync ()) - in - - (* Tell the Trace module about the status printer *) - Trace.statusPrinter := Some displayStatus; - - (**********************************************************************) - (* FUNCTIONS USED TO PRINT IN THE MAIN WINDOW *) - (**********************************************************************) - - let select i = - let r = mainWindow#rows in - let p = if r < 2 then 0. else (float i +. 0.5) /. float (r - 1) in - mainWindow#scroll_vertical `JUMP (min p 1.) - in - - ignore (mainWindow#connect#unselect_row ~callback: - (fun ~row ~column ~event -> current := None; updateDetails ())); - ignore (mainWindow#connect#select_row ~callback: - (fun ~row ~column ~event -> current := Some row; updateDetails ())); - - let nextInteresting () = - let l = Array.length !theState in - let start = match !current with Some i -> i + 1 | None -> 0 in - let rec loop i = - if i < l then - match !theState.(i).ri.replicas with - Different (_, _, dir) - when not (Prefs.readPref auto) || !dir = Conflict -> - select i - | _ -> - loop (i + 1) - in - loop start - in - let selectSomethingIfPossible () = - if !current=None then nextInteresting () - in - - let columnsOf i = - let oldPath = if i = 0 then emptypath else !theState.(i-1).ri.path in - let status = - match !theState.(i).whatHappened with - None -> " " - | Some conf -> - match !theState.(i).ri.replicas with - Different(_,_,{contents=Conflict}) | Problem _ -> - " " - | _ -> - match conf with - Succeeded _ -> "done " - | Failed _ -> "failed" - in - let s = reconItem2string oldPath !theState.(i).ri status in - (* FIX: This is ugly *) - (String.sub s ~pos:0 ~len:8, - String.sub s ~pos:9 ~len:5, - String.sub s ~pos:15 ~len:8, - String.sub s ~pos:25 ~len:6, - String.sub s ~pos:32 ~len:(String.length s - 32)) - in - - let rightArrow = - GDraw.pixmap_from_xpm_d ~window:toplevelWindow ~data:Pixmaps.copyAB () in - let leftArrow = - GDraw.pixmap_from_xpm_d ~window:toplevelWindow ~data:Pixmaps.copyBA () in - let rightArrowBlack = - GDraw.pixmap_from_xpm_d - ~window:toplevelWindow ~data:Pixmaps.copyABblack () in - let leftArrowBlack = - GDraw.pixmap_from_xpm_d - ~window:toplevelWindow ~data:Pixmaps.copyBAblack () in - let ignoreAct = - GDraw.pixmap_from_xpm_d ~window:toplevelWindow ~data:Pixmaps.ignore () in - let doneIcon = - GDraw.pixmap_from_xpm_d ~window:toplevelWindow ~data:Pixmaps.success () in - let failedIcon = - GDraw.pixmap_from_xpm_d ~window:toplevelWindow ~data:Pixmaps.failure () in - - let displayArrow i action = - match action with - "<-?->" -> mainWindow#set_cell ~pixmap:ignoreAct i 1 - | "---->" -> mainWindow#set_cell ~pixmap:rightArrow i 1 - | "<----" -> mainWindow#set_cell ~pixmap:leftArrow i 1 - | "error" -> mainWindow#set_cell ~pixmap:failedIcon i 1 - | _ -> assert false - in - - let displayStatusIcon i status = - match status with - | "failed" -> mainWindow#set_cell ~pixmap:failedIcon i 3 - | "done " -> mainWindow#set_cell ~pixmap:doneIcon i 3 - | _ -> mainWindow#set_cell ~text:status i 3 - in - - let displayMain() = - mainWindow#freeze (); - mainWindow#clear (); - for i = 0 to Array.length !theState - 1 do - let (r1, action, r2, status, path) = columnsOf i in - ignore (mainWindow#append [ r1; ""; r2; status; path ]); - displayArrow i action - done; - selectSomethingIfPossible (); - begin match !current with Some idx -> select idx | None -> () end; - mainWindow#thaw (); - updateDetails () - in - - let redisplay i = - let (r1, action, r2, status, path) = columnsOf i in - mainWindow#freeze (); - mainWindow#set_cell ~text:r1 i 0; - displayArrow i action; - mainWindow#set_cell ~text:r2 i 2; - displayStatusIcon i status; - mainWindow#set_cell ~text:path i 4; - if status = " failed " then mainWindow#set_row ~foreground:(`NAME"red") i; - mainWindow#thaw (); - if !current = Some i then updateDetails (); - updateButtons () - in - - let showProgress i bytes = - !theState.(i).bytesTransferred <- !theState.(i).bytesTransferred + bytes; - let b = !theState.(i).bytesTransferred in - let len = Common.riLength !theState.(i).ri in - let newstatus = - if b=0 || len = 0 then "working " - else if len = 0 then sprintf "%8d" b - else - let percentage = (int_of_float ((float b) *. 100.0 /. (float len))) in - if percentage > 100 then - debugprogress (fun() -> errmsg "Progress amount miscalculated for %s\n" - (path2string (!theState.(i).ri.path))); - sprintf " %3d%% " (max 100 percentage) in - Threads.do_on_main_thread (fun () -> - mainWindow#set_cell ~text:newstatus i 3; - gtk_sync ()) - in - - (* Install showProgress so that we get called back by low-level - file transfer stuff *) - Util.progressPrinter := Some(showProgress); - - (* Apply new ignore patterns to the current state, expecting that the - number of reconitems will grow smaller. Adjust the display, being - careful to keep the cursor as near as possible to its position - before the new ignore patterns take effect. *) - let ignoreAndRedisplay () = - let lst = Array.to_list !theState in - (* FIX: we should actually test whether any prefix is now ignored *) - let keep sI = not (Pred.test Globals.ignore (path2string sI.ri.path)) in - begin match !current with - None -> - theState := Array.of_list (Safelist.filter keep lst) - | Some index -> - let i = ref index in - let l = ref [] in - Array.iteri - (fun j sI -> if keep sI then l := sI::!l - else if j < !i then decr i) - !theState; - current := if !l = [] then None else Some !i; - theState := Array.of_list (Safelist.rev !l) - end; - displayMain(); - in - - (**********************************************************************) - (* FUNCTION DETECT UPDATES *) - (**********************************************************************) - - let detectUpdatesAndReconcile () = - grSet grAction false; - grSet grDiff false; - grSet grProceed false; - grSet grRestart false; - - let (r1,r2) = Globals.getReplicaRoots () in - let t = Trace.startTimer "Checking for updates" in - let findUpdates () = - let updates = Update.findUpdates () in - Trace.showTimer t; - updates - in - let reconcile updates = - let t = Trace.startTimer "Reconciling" in - Recon.reconcileAll updates - in - let reconItemList = reconcile (findUpdates ()) in - Trace.showTimer t; - if reconItemList = [] then - Trace.status "Everything is up to date" - else - Trace.status ("Check and/or adjust selected actions; " - ^ "then press Proceed"); - theState := - Array.of_list - (Safelist.map - (fun ri -> { ri = ri; bytesTransferred = 0; whatHappened = None }) - reconItemList); - current := None; - displayMain(); - grSet grProceed (Array.length !theState > 0); - grSet grRestart true - in - - (**********************************************************************) - (* The ignore dialog *) - (**********************************************************************) - - let ignoreDialog () = - let t = GWindow.dialog ~title: "Ignore" ~wm_name: "Ignore" () in - let hbox = GPack.hbox ~packing:t#vbox#add () in - let sb = GRange.scrollbar `VERTICAL - ~packing:(hbox#pack ~from:`END) () in - let regExpWindow = - GList.clist ~columns:1 ~titles_show:false ~packing:hbox#add - ~vadjustment:sb#adjustment ~width:400 ~height:150 () in - - (* Local copy of the regular expressions; the global copy will - not be changed until the Apply button is pressed *) - let theRegexps = Pred.extern Globals.ignore in - Safelist.iter (fun r -> ignore (regExpWindow#append [r])) theRegexps; - let maybeGettingBigger = ref false in - let maybeGettingSmaller = ref false in - let selectedRow = ref None in - ignore - (regExpWindow#connect#select_row ~callback: - (fun ~row ~column ~event -> selectedRow := Some row)); - ignore - (regExpWindow#connect#unselect_row ~callback: - (fun ~row ~column ~event -> selectedRow := None)); - - (* Configure the add frame *) - let hbox = GPack.hbox ~spacing:4 ~packing:t#vbox#pack () in - ignore (GMisc.label ~text: "Regular expression:" - ~packing:(hbox#pack ~padding:2) ()); - let entry = GEdit.entry ~packing:hbox#add () in - let add () = - let theRegExp = entry#text in - if theRegExp<>"" then begin - entry#set_text ""; - regExpWindow#unselect_all (); - ignore (regExpWindow#append [theRegExp]); - maybeGettingSmaller := true - end - in - let addButton = GButton.button ~label:"Add" - ~packing:hbox#pack () in - ignore (addButton#connect#clicked ~callback:add); - ignore (entry#connect#activate ~callback:add); - entry#misc#grab_focus (); - - (* Configure the delete button *) - let delete () = - match !selectedRow with - Some x -> - (* After a deletion, updates must be detected again *) - maybeGettingBigger := true; - (* Delete xth regexp *) - regExpWindow#unselect_all (); - regExpWindow#remove ~row:x - | None -> - () - in - let deleteButton = GButton.button ~label:"Delete" - ~packing:hbox#pack () in - ignore (deleteButton#connect#clicked ~callback:delete); - - ignore - (regExpWindow#event#connect#after#key_press ~callback: - begin fun ev -> - let key = GdkEvent.Key.keyval ev in - if key = _Up || key = _Down || key = _Prior || key = _Next || - key = _Page_Up || key = _Page_Down then begin - regExpWindow#select (regExpWindow#focus_row) 0; - true - end else if key = _Delete then begin - delete (); true - end else - false - end); - - (* A function to refresh the state and ignore list *) - let refresh () = - let theRegexps = ref [] in - for i = regExpWindow#rows - 1 downto 0 do - theRegexps := regExpWindow#cell_text i 0 :: !theRegexps - done; - Pred.intern Globals.ignore (!theRegexps); - if !maybeGettingBigger || !maybeGettingSmaller then begin - Globals.savePrefs(); - Globals.propagatePrefs() - end; - if !maybeGettingBigger then detectUpdatesAndReconcile () - else if !maybeGettingSmaller then ignoreAndRedisplay(); - maybeGettingBigger := false; - maybeGettingSmaller := false; - in - - (* Install the main buttons *) - let applyButton = - GButton.button ~label:"Apply" ~packing:t#action_area#add () in - ignore (applyButton#connect#clicked ~callback:refresh); - let cancelButton = - GButton.button ~label:"Cancel" ~packing:t#action_area#add () in - ignore (cancelButton#connect#clicked ~callback:(t#destroy)); - let okButton = - GButton.button ~label:"OK" ~packing:t#action_area#add () in - ignore - (okButton#connect#clicked - ~callback:(fun () -> refresh (); t#destroy ())); - ignore (t#connect#destroy ~callback:Main.quit); - grabFocus t; - t#show (); - Main.main (); - releaseFocus () - in - - (**********************************************************************) - (* Add entries to the Help menu *) - (**********************************************************************) - let addDocSection (shortname, (name, docstr)) = - if shortname <> "" && name <> "" then - ignore (helpMenu#add_item - ~callback:(fun () -> documentation shortname) - name) - in - Safelist.iter addDocSection Strings.docs; - - (**********************************************************************) - (* Add entries to the Ignore menu *) - (**********************************************************************) - let addRegExpByPath pathfunc = - match !current with - Some i -> - addIgnorePattern (pathfunc !theState.(i).ri.path); - ignoreAndRedisplay () - | None -> - () - in - grAdd grAction - (ignoreMenu#add_item ~key:_i - ~callback:(fun () -> getLock (fun () -> addRegExpByPath ignorePath)) - "Ignore this file permanently"); - grAdd grAction - (ignoreMenu#add_item ~key:_E - ~callback:(fun () -> getLock (fun () -> addRegExpByPath ignoreExt)) - "Ignore files with this extension"); - grAdd grAction - (ignoreMenu#add_item ~key:_N - ~callback:(fun () -> getLock (fun () -> addRegExpByPath ignoreName)) - "Ignore files with this name"); - -(* - grAdd grRestart - (ignoreMenu#add_item ~callback: - (fun () -> getLock ignoreDialog) "Edit ignore patterns"); -*) - - (**********************************************************************) - (* MAIN FUNCTION : SYNCHRONIZE *) - (**********************************************************************) - let synchronize () = - if Array.length !theState = 0 then - Trace.status "Nothing to synchronize" - else begin - grSet grAction false; - grSet grDiff false; - grSet grProceed false; - grSet grRestart false; - - Trace.status "Propagating changes"; - let t = Trace.startTimer "Propagating changes" in - let (start, wait) = Threads.thread_maker () in - let background = let i = 55000 in `RGB (i, i, i) in - let finish i = - redisplay i; - mainWindow#set_row ~background:`WHITE i; - gtk_sync () - in - for i = 0 to Array.length !theState - 1 do - let theSI = !theState.(i) in - assert (theSI.whatHappened = None); - start - (fun () -> - Threads.do_on_main_thread (fun () -> - mainWindow#set_row ~background i; - makeRowVisible i); - theSI.whatHappened <- Some (Transport.transportItem theSI.ri i); - i) - finish - done; - wait finish; - - Trace.showTimer t; - Trace.status "Updating synchronizer state"; - let t = Trace.startTimer "Updating synchronizer state" in - Update.commitUpdates(); - Trace.showTimer t; - Trace.status "Synchronization complete"; - - grSet grRestart true - end - in - - (**********************************************************************) - (* CREATE THE ACTION BAR *) - (**********************************************************************) - let actionBar = - GButton.toolbar - ~orientation:`HORIZONTAL ~tooltips:true ~space_size:10 - ~packing:toplevelVBox#pack () in - - (**********************************************************************) - (* CREATE AND CONFIGURE THE QUIT BUTTON *) - (**********************************************************************) - actionBar#insert_space (); - ignore (actionBar#insert_button ~text:"Quit" ~callback:safeExit ()); - - (**********************************************************************) - (* CREATE AND CONFIGURE THE PROCEED BUTTON *) - (**********************************************************************) - actionBar#insert_space (); - grAdd grProceed - (actionBar#insert_button ~text:"Proceed" - (* tooltip:"Proceed with displayed actions" *) - ~callback:(fun () -> - getLock synchronize) ()); - - (**********************************************************************) - (* CREATE AND CONFIGURE THE RESCAN BUTTON *) - (**********************************************************************) - let detectCmdName = "Restart" in - let detectCmd () = - getLock detectUpdatesAndReconcile; - if Prefs.readPref batch then begin - Prefs.setPref batch Prefs.TempSetting false; synchronize() - end - in - actionBar#insert_space (); - grAdd grRestart - (actionBar#insert_button ~text:detectCmdName ~callback:detectCmd ()); - - (**********************************************************************) - (* Buttons for <--, -->, Skip *) - (**********************************************************************) - let doAction f = - match !current with - Some i -> - let theSI = !theState.(i) in - begin match theSI.whatHappened, theSI.ri.replicas with - None, Different(_, _, dir) -> - f dir; - redisplay i; - nextInteresting () - | _ -> - () - end - | None -> - () - in - let leftAction _ = doAction (fun dir -> dir := Replica2ToReplica1) in - let rightAction _ = doAction (fun dir -> dir := Replica1ToReplica2) in - let questionAction _ = doAction (fun dir -> dir := Conflict) in - - (**********************************************************************) - (* CREATE AND CONFIGURE THE DIFF BUTTON and KEY *) - (**********************************************************************) - let diffCmd () = - match !current with - Some i -> - getLock (fun () -> - showDiffs !theState.(i).ri - (fun title text -> messageBox ~title text) - Trace.status i) - | None -> - () - in - - actionBar#insert_space (); - grAdd grAction - (actionBar#insert_button - ~icon:((GMisc.pixmap leftArrowBlack ())#coerce) - ~callback:leftAction ()); - actionBar#insert_space (); - grAdd grAction - (actionBar#insert_button - ~icon:((GMisc.pixmap rightArrowBlack ())#coerce) - ~callback:rightAction ()); - actionBar#insert_space (); - grAdd grAction - (actionBar#insert_button ~text:"Skip" ~callback:questionAction ()); - actionBar#insert_space (); - grAdd grDiff (actionBar#insert_button ~text:"Diff" ~callback:diffCmd ()); - - (**********************************************************************) - (* Configure keyboard commands *) - (**********************************************************************) - ignore - (mainWindow#event#connect#key_press ~callback: - begin fun ev -> - let key = GdkEvent.Key.keyval ev in - if key = _Left then begin - leftAction (); GtkSignal.stop_emit (); true - end else if key = _Right then begin - rightAction (); GtkSignal.stop_emit (); true - end else - false - end); - - (**********************************************************************) - (* Add entries to the Action menu *) - (**********************************************************************) - let (root1,root2) = Globals.getReplicaRoots () in - let loc1 = root2hostname root1 in - let loc2 = root2hostname root2 in - let descr = - if loc1 = loc2 then "left to right" else - Printf.sprintf "from %s to %s" loc1 loc2 - in - let left = - actionsMenu#add_item ~key:_greater ~callback:rightAction - ("Propagate " ^ descr) in - grAdd grAction left; - left#add_accelerator ~group:accel_group ~modi:[`SHIFT] _greater; - - let descl = - if loc1 = loc2 then "right to left" else - Printf.sprintf "from %s to %s" loc2 loc1 - in - let right = - actionsMenu#add_item ~key:_less ~callback:leftAction - ("Propagate " ^ descl) in - grAdd grAction right; - right#add_accelerator ~group:accel_group ~modi:[`SHIFT] _less; - - grAdd grAction - (actionsMenu#add_item ~key:_slash ~callback:questionAction - "Do not propagate changes"); - - ignore (actionsMenu#add_separator ()); - grAdd grDiff (actionsMenu#add_item ~key:_d ~callback:diffCmd "Show diffs"); - - (**********************************************************************) - (* Add commands to the Synchronization menu *) - (**********************************************************************) - grAdd grProceed - (fileMenu#add_item ~key:_g - ~callback:(fun () -> - getLock synchronize) - "Proceed"); - grAdd grRestart (fileMenu#add_item ~key:_r ~callback:detectCmd detectCmdName); - grAdd grRestart - (fileMenu#add_item ~key:_a - ~callback:(fun () -> - getLock detectUpdatesAndReconcile; - getLock synchronize) - "Atomically detect updates and proceed"); - ignore (fileMenu#add_separator ()); - let cm = - fileMenu#add_check_item ~active:(Prefs.readPref Transport.backups) - ~callback:(fun b -> Prefs.setPref Transport.backups Prefs.TempSetting b) - "Make backups" - in - cm#set_show_toggle true; - grAdd grRestart cm; - ignore (fileMenu#add_separator ()); - ignore (fileMenu#add_item ~key:_q ~callback:safeExit "Quit"); - - grSet grAction false; - grSet grDiff false; - grSet grProceed false; - grSet grRestart false; - - ignore (toplevelWindow#event#connect#delete ~callback: - (fun _ -> safeExit (); true)); - toplevelWindow#show (); - currentWindow := Some toplevelWindow; - detectCmd () - -(**********************************************************************) -(* Starting up... *) -(**********************************************************************) -let start _ = - begin try - (* Initialize the library *) - ignore (Main.init ()); - - Util.warnPrinter := Some (warnBox "Warning"); - (* Ask the Remote module to call us back at regular intervals during - long network operations. *) - Threads.tickProc := Some gtk_sync; - - (**********************************************************************) - (* Set things up to initialize the client/server connection and *) - (* detect updates after the ui is displayed. *) - (* This makes a difference when the replicas are large and it takes *) - (* a lot of time to detect updates. *) - (**********************************************************************) - let msg = ref None in - Uicommon.uiInit - profileSelect - rootSelect - (fun () -> - let w = - GWindow.window ~kind:`TOPLEVEL ~position:`CENTER - ~wm_name:"Unison" ~border_width:16 () in - ignore (GMisc.label ~text: "Contacting server..." - ~packing:(w#add) ()); - w#show (); - ignore (w#event#connect#delete ~callback:(fun _ -> exit 0)); - msg := Some w) - (fun () -> - begin match !msg with - None -> () - | Some w -> w#destroy () - end; - createToplevelWindow ()); - - (**********************************************************************) - (* Display the ui *) - (**********************************************************************) - ignore (Timeout.add 500 (fun _ -> true)); - (* Hack: this allows signals such as SIGINT to be - handled even when Gtk is waiting for events *) - Main.main () - with exn -> - fatalError (exn2string exn) - end - -end (* module Private *) - -(**********************************************************************) -(* MODULE MAIN *) -(**********************************************************************) - -module Body : Uicommon.UI = struct - -let start = function - Text -> Uitext.Body.start Text - | Graphic -> Private.start Graphic - -end (* module Body *) - -(* -FIX: -- Édition (minimale) et création des profiles -- Profile par défaut -- Sanity checks pour "Root selection" -- Edition du filtrage -*) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/config.make.nt b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/config.make.nt deleted file mode 100644 index 3fe6b56ac..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/config.make.nt +++ /dev/null @@ -1,6 +0,0 @@ -LIBDIR=c:/Home/garrigue/ocaml/lib -GTKCFLAGS=-I../glib -I../gtk+ -GTKSRC=c:\Home\garrigue -GTKLIBS=$(GTKSRC)/glib/gmodule-1.3.lib $(GTKSRC)/glib/glib-1.3.lib $(GTKSRC)/gtk+/gdk/gdk-1.3.lib $(GTKSRC)/gtk+/gtk/gtk-1.3.lib -USE_GL=0 -USE_CC=0 diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/configure.mk b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/configure.mk deleted file mode 100644 index 49b3d7015..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/configure.mk +++ /dev/null @@ -1,50 +0,0 @@ -# makefile for configuring lablGTK - -# Default compilers -CAMLC = ocamlc -CAMLOPT = ocamlopt - -# Default installation directories -BINDIR = `$(GETBINDIR)` -INSTALLDIR = $(LIBDIR)/lablgtk - -# Autoconf -GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//' -LIBDIR = `$(GETLIBDIR)` -GETBINDIR = $(GETLIBDIR) | sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|' -GETRANLIB = which ranlib 2>/dev/null | sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/' - -ifdef USE_GNOME -GTKGETCFLAGS = gtk-config --cflags`" -I"`gnome-config --includedir -GNOMELIBS = `gnome-config --libs gtkxmhtml` -else -GTKGETCFLAGS = gtk-config --cflags -endif - -GTKGETLIBS = gtk-config --libs - -configure: .depend config.make - -.depend: - ocamldep *.ml *.mli > .depend - -config.make: - @echo CAMLC=$(CAMLC) > config.make - @echo CAMLOPT=$(CAMLOPT) >> config.make - @echo USE_GL=$(USE_GL) >> config.make - @echo USE_GNOME=$(USE_GNOME) >> config.make - @echo USE_CC=$(USE_CC) >> config.make - @echo DEBUG=$(DEBUG) >> config.make - @echo CC=$(CC) >> config.make - @echo RANLIB=`$(GETRANLIB)` >> config.make - @echo LIBDIR=$(LIBDIR) >> config.make - @echo BINDIR=`$(GETBINDIR)` >> config.make - @echo INSTALLDIR=$(INSTALLDIR) >> config.make - @echo GTKCFLAGS=`$(GTKGETCFLAGS)` >> config.make - @echo GTKLIBS=`$(GTKGETLIBS)` | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - @echo GNOMELIBS=$(GNOMELIBS) | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - cat config.make diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/formula.eps b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/formula.eps deleted file mode 100644 index 31ddafc6f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/formula.eps +++ /dev/null @@ -1,409 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: dvipsk 5.78 p1.4c Copyright 1996-99 ASCII Corp.(www-ptex@ascii.co.jp) -%%dvipsk 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com) -%%Title: formula.dvi -%%BoundingBox: 71 318 395 524 -%%DocumentFonts: Symbol Times-Italic Times-Roman Helvetica -%%EndComments -%DVIPSCommandLine: dvips -E -o formula.eps formula -%DVIPSParameters: dpi=300, compressed -%DVIPSSource: TeX output 1999.08.19:0906 -%%BeginProcSet: texc.pro -%! -/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N -/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 -mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} -ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale -isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div -hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul -TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} -forall round exch round exch]setmatrix}N /@landscape{/isls true N}B -/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B -/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ -/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N -string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N -end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ -/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] -N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup -length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ -128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub -get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data -dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N -/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup -/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx -0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff -setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff -.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N -/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id -gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp -add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add -/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ -dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 -adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 -idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string -putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval -adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} -{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ -adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 -chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] -}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup -length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ -cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin -0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul -add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict -/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook -known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X -/IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn -put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /dir 0 def -/dyy{/dir 0 def}B /dyt{/dir 1 def}B /dty{/dir 2 def}B /dtt{/dir 3 def}B -/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90 -rotate}{show}ifelse}ifelse}B /RMat[1 0 0 -1 0 0]N /BDot 260 string N -/rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V{}B /RV statusdict -begin /product where{pop false[(Display)(NeXT)(LaserWriter 16/600)]{dup -length product length le{dup length product exch 0 exch getinterval eq{ -pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 -TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR --.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}} -ifelse B /QV{gsave newpath transform round exch round exch itransform -moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill -grestore}B /a{moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p -delta add tail}B /b{S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B -/g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B -/m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{ -p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS -restore}B end - -%%EndProcSet -%%BeginProcSet: 8r.enc -% @@psencodingfile@{ -% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", -% version = "0.6", -% date = "22 June 1996", -% filename = "8r.enc", -% email = "kb@@mail.tug.org", -% address = "135 Center Hill Rd. // Plymouth, MA 02360", -% codetable = "ISO/ASCII", -% checksum = "119 662 4424", -% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." -% @} -% -% Idea is to have all the characters normally included in Type 1 fonts -% available for typesetting. This is effectively the characters in Adobe -% Standard Encoding + ISO Latin 1 + extra characters from Lucida. -% -% Character code assignments were made as follows: -% -% (1) the Windows ANSI characters are almost all in their Windows ANSI -% positions, because some Windows users cannot easily reencode the -% fonts, and it makes no difference on other systems. The only Windows -% ANSI characters not available are those that make no sense for -% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen -% (173). quotesingle and grave are moved just because it's such an -% irritation not having them in TeX positions. -% -% (2) Remaining characters are assigned arbitrarily to the lower part -% of the range, avoiding 0, 10 and 13 in case we meet dumb software. -% -% (3) Y&Y Lucida Bright includes some extra text characters; in the -% hopes that other PostScript fonts, perhaps created for public -% consumption, will include them, they are included starting at 0x12. -% -% (4) Remaining positions left undefined are for use in (hopefully) -% upward-compatible revisions, if someday more characters are generally -% available. -% -% (5) hyphen appears twice for compatibility with both ASCII and Windows. -% -/TeXBase1Encoding [ -% 0x00 (encoded characters from Adobe Standard not in Windows 3.1) - /.notdef /dotaccent /fi /fl - /fraction /hungarumlaut /Lslash /lslash - /ogonek /ring /.notdef - /breve /minus /.notdef -% These are the only two remaining unencoded characters, so may as -% well include them. - /Zcaron /zcaron -% 0x10 - /caron /dotlessi -% (unusual TeX characters available in, e.g., Lucida Bright) - /dotlessj /ff /ffi /ffl - /.notdef /.notdef /.notdef /.notdef - /.notdef /.notdef /.notdef /.notdef - % very contentious; it's so painful not having quoteleft and quoteright - % at 96 and 145 that we move the things normally found there down to here. - /grave /quotesingle -% 0x20 (ASCII begins) - /space /exclam /quotedbl /numbersign - /dollar /percent /ampersand /quoteright - /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash -% 0x30 - /zero /one /two /three /four /five /six /seven - /eight /nine /colon /semicolon /less /equal /greater /question -% 0x40 - /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O -% 0x50 - /P /Q /R /S /T /U /V /W - /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore -% 0x60 - /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o -% 0x70 - /p /q /r /s /t /u /v /w - /x /y /z /braceleft /bar /braceright /asciitilde - /.notdef % rubout; ASCII ends -% 0x80 - /.notdef /.notdef /quotesinglbase /florin - /quotedblbase /ellipsis /dagger /daggerdbl - /circumflex /perthousand /Scaron /guilsinglleft - /OE /.notdef /.notdef /.notdef -% 0x90 - /.notdef /.notdef /.notdef /quotedblleft - /quotedblright /bullet /endash /emdash - /tilde /trademark /scaron /guilsinglright - /oe /.notdef /.notdef /Ydieresis -% 0xA0 - /.notdef % nobreakspace - /exclamdown /cent /sterling - /currency /yen /brokenbar /section - /dieresis /copyright /ordfeminine /guillemotleft - /logicalnot - /hyphen % Y&Y (also at 45); Windows' softhyphen - /registered - /macron -% 0xD0 - /degree /plusminus /twosuperior /threesuperior - /acute /mu /paragraph /periodcentered - /cedilla /onesuperior /ordmasculine /guillemotright - /onequarter /onehalf /threequarters /questiondown -% 0xC0 - /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla - /Egrave /Eacute /Ecircumflex /Edieresis - /Igrave /Iacute /Icircumflex /Idieresis -% 0xD0 - /Eth /Ntilde /Ograve /Oacute - /Ocircumflex /Otilde /Odieresis /multiply - /Oslash /Ugrave /Uacute /Ucircumflex - /Udieresis /Yacute /Thorn /germandbls -% 0xE0 - /agrave /aacute /acircumflex /atilde - /adieresis /aring /ae /ccedilla - /egrave /eacute /ecircumflex /edieresis - /igrave /iacute /icircumflex /idieresis -% 0xF0 - /eth /ntilde /ograve /oacute - /ocircumflex /otilde /odieresis /divide - /oslash /ugrave /uacute /ucircumflex - /udieresis /yacute /thorn /ydieresis -] def - -%%EndProcSet -%%BeginProcSet: texps.pro -%! -TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 -index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll -exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics -exch def dict begin 0 1 255{exch dup type /integertype ne{pop pop 1 sub -dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} -ifelse}for Metrics /Metrics currentdict end def[2 index currentdict end -definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant{ -dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1 -roll mul exch}def /ReEncodeFont{/Encoding exch def}def end - -%%EndProcSet -%%BeginProcSet: special.pro -%! -TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N -/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen -false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B -/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit -div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ -/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ -10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B -/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale -true def end /@MacSetUp{userdict /md known{userdict /md get type -/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup -length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} -N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath -clippath mark{transform{itransform moveto}}{transform{itransform lineto} -}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ -itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ -closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 -0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N -/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 -scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get -ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip -not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 -TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR -pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 --1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg -TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg -sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr -0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add -2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp -{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 -div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} -N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict -maxlength dict begin /magscale true def normalscale currentpoint TR -/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts -/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx -psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy -scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR -/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ -psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 -roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath -moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict -begin /SpecialSave save N gsave normalscale currentpoint TR -@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial -{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto -closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx -sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR -}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse -CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury -lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath -}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ -end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} -N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ -/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX -SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X -/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad -yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end - -%%EndProcSet -%%BeginProcSet: color.pro -%! -TeXDict begin /setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop -setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll -}repeat setrgbcolor pop}ifelse}B}ifelse /TeXcolorcmyk{setcmykcolor}def -/TeXcolorrgb{setrgbcolor}def /TeXcolorgrey{setgray}def /TeXcolorgray{ -setgray}def /TeXcolorhsb{sethsbcolor}def /currentcmykcolor where{pop}{ -/currentcmykcolor{currentrgbcolor 10}B}ifelse /DC{exch dup userdict exch -known{pop pop}{X}ifelse}B /GreenYellow{0.15 0 0.69 0 setcmykcolor}DC -/Yellow{0 0 1 0 setcmykcolor}DC /Goldenrod{0 0.10 0.84 0 setcmykcolor} -DC /Dandelion{0 0.29 0.84 0 setcmykcolor}DC /Apricot{0 0.32 0.52 0 -setcmykcolor}DC /Peach{0 0.50 0.70 0 setcmykcolor}DC /Melon{0 0.46 0.50 -0 setcmykcolor}DC /YellowOrange{0 0.42 1 0 setcmykcolor}DC /Orange{0 -0.61 0.87 0 setcmykcolor}DC /BurntOrange{0 0.51 1 0 setcmykcolor}DC -/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC /RedOrange{0 0.77 0.87 0 -setcmykcolor}DC /Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC /Maroon{0 -0.87 0.68 0.32 setcmykcolor}DC /BrickRed{0 0.89 0.94 0.28 setcmykcolor} -DC /Red{0 1 1 0 setcmykcolor}DC /OrangeRed{0 1 0.50 0 setcmykcolor}DC -/RubineRed{0 1 0.13 0 setcmykcolor}DC /WildStrawberry{0 0.96 0.39 0 -setcmykcolor}DC /Salmon{0 0.53 0.38 0 setcmykcolor}DC /CarnationPink{0 -0.63 0 0 setcmykcolor}DC /Magenta{0 1 0 0 setcmykcolor}DC /VioletRed{0 -0.81 0 0 setcmykcolor}DC /Rhodamine{0 0.82 0 0 setcmykcolor}DC /Mulberry -{0.34 0.90 0 0.02 setcmykcolor}DC /RedViolet{0.07 0.90 0 0.34 -setcmykcolor}DC /Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC /Lavender{0 -0.48 0 0 setcmykcolor}DC /Thistle{0.12 0.59 0 0 setcmykcolor}DC /Orchid{ -0.32 0.64 0 0 setcmykcolor}DC /DarkOrchid{0.40 0.80 0.20 0 setcmykcolor} -DC /Purple{0.45 0.86 0 0 setcmykcolor}DC /Plum{0.50 1 0 0 setcmykcolor} -DC /Violet{0.79 0.88 0 0 setcmykcolor}DC /RoyalPurple{0.75 0.90 0 0 -setcmykcolor}DC /BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC /Periwinkle -{0.57 0.55 0 0 setcmykcolor}DC /CadetBlue{0.62 0.57 0.23 0 setcmykcolor} -DC /CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC /MidnightBlue{0.98 0.13 -0 0.43 setcmykcolor}DC /NavyBlue{0.94 0.54 0 0 setcmykcolor}DC -/RoyalBlue{1 0.50 0 0 setcmykcolor}DC /Blue{1 1 0 0 setcmykcolor}DC -/Cerulean{0.94 0.11 0 0 setcmykcolor}DC /Cyan{1 0 0 0 setcmykcolor}DC -/ProcessBlue{0.96 0 0 0 setcmykcolor}DC /SkyBlue{0.62 0 0.12 0 -setcmykcolor}DC /Turquoise{0.85 0 0.20 0 setcmykcolor}DC /TealBlue{0.86 -0 0.34 0.02 setcmykcolor}DC /Aquamarine{0.82 0 0.30 0 setcmykcolor}DC -/BlueGreen{0.85 0 0.33 0 setcmykcolor}DC /Emerald{1 0 0.50 0 -setcmykcolor}DC /JungleGreen{0.99 0 0.52 0 setcmykcolor}DC /SeaGreen{ -0.69 0 0.50 0 setcmykcolor}DC /Green{1 0 1 0 setcmykcolor}DC -/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC /PineGreen{0.92 0 0.59 -0.25 setcmykcolor}DC /LimeGreen{0.50 0 1 0 setcmykcolor}DC /YellowGreen{ -0.44 0 0.74 0 setcmykcolor}DC /SpringGreen{0.26 0 0.76 0 setcmykcolor} -DC /OliveGreen{0.64 0 0.95 0.40 setcmykcolor}DC /RawSienna{0 0.72 1 0.45 -setcmykcolor}DC /Sepia{0 0.83 1 0.70 setcmykcolor}DC /Brown{0 0.81 1 -0.60 setcmykcolor}DC /Tan{0.14 0.42 0.56 0 setcmykcolor}DC /Gray{0 0 0 -0.50 setcmykcolor}DC /Black{0 0 0 1 setcmykcolor}DC /White{0 0 0 0 -setcmykcolor}DC end - -%%EndProcSet -TeXDict begin 40258437 52099154 1000 300 300 (formula.dvi) -@start /Fa 134[ 41 5[ 41 3[ 46 46 1[ 18 6[ 46 15[ 60 -4[ 55 14[ 55 23[ 28 28 40[{ TeXBase1Encoding ReEncodeFont } 11 -82.6359 /Helvetica rf /Fb 205[ 34 34 49[{ - TeXBase1Encoding ReEncodeFont } 2 68.8667 /Times-Roman -rf /Fc 154[ 30 101[{ } 1 68.8667 /Symbol rf -%DVIPSBitmapFont: Fd cmr10 19.907 4 -/Fd 4 94 df<146014E0EB01C0EB0380EB0700130E5B133C13385B13F05B1201485AA248 -5AA348C7FCA25A121EA2123EA2123CA2127CA5127812F8B01278127CA5123CA2123EA212 -1EA2121F7EA26C7EA36C7EA26C7E12007F13707F133C131C7F7FEB0380EB01C0EB00E014 -60135278BD20> 40 D<7E7E7E12707E7E7E120F7E6C7E7F12017F6C7EA21378A37FA213 -3E131EA2131FA27FA21480A5130714C0B01480130FA51400A25BA2131EA2133E133CA25B -A35BA2485A5B12035B48C7FC5A120E5A5A5A5A5A5A12527BBD20> I 91 D 93 D E -%EndDVIPSBitmapFont -/Fe 197[ 23 58[{ TeXBase1Encoding ReEncodeFont } 1 82.6359 -/Times-Roman rf -%DVIPSBitmapFont: Ff cmsy10 19.907 4 -/Ff 4 106 df<0060161800F0163CA26C167C00781678007C16F8003C16F0A2003E1501 -001E16E0A2001F15036C16C06D140700071680A26D140F000316006D5C6CB612FEA36C5D -01F8C7127C01781478A2017C14F8013C5CA2013E1301011E5C011F13036D5CA2EC800701 -075CECC00F010391C7FCA26E5A0101131EECF03E0100133CA2ECF87CEC7878A2EC7CF8EC -3CF0143F6E5AA36E5AA26E5AA26EC8FC2E3A80B82F> 56 D<126012F0B3A7B8FC1780A3 -00F0CAFCB3A8126029397CB832> 96 D<14C0EB01E0A2130314C013071480A2130F1400 -A25B131E133E133CA2137C137813F85BA212015BA212035B12075BA2120F90C7FC5A121E -A2123E123CA2127C127812F85AA27E1278127C123CA2123E121EA2121F7E7F1207A27F12 -037F1201A27F1200A27F1378137C133CA2133E131E131F7FA214801307A214C0130314E0 -1301A2EB00C0135278BD20> 104 D<126012F0A27E1278127C123CA2123E121EA2121F7E -7F1207A27F12037F1201A27F1200A27F1378137C133CA2133E131E131F7FA214801307A2 -14C0130314E01301A2130314C013071480A2130F1400A25B131E133E133CA2137C137813 -F85BA212015BA212035B12075BA2120F90C7FC5A121EA2123E123CA2127C127812F85AA2 -126013527CBD20> I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fg cmmi10 19.907 1 -/Fg 1 59 df<121C123E127FEAFF80A3EA7F00123E121C0909798817> 58 -D E -%EndDVIPSBitmapFont -/Fh 158[ 41 31[ 50 65[{ TeXBase1Encoding ReEncodeFont } 2 -82.6359 /Times-Italic rf /Fi 139[ 36 50 13[ 36 101[{ } 3 -82.6359 /Symbol rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 300dpi -TeXDict begin - -%%EndSetup -0 0 bop Black Black 0 0.7 0 TeXcolorrgb Fh 567 883 a(A) p -Ff 636 883 a(`) p Fh 705 883 a(a) p Fe 765 883 a(:) p -0 0 1 TeXcolorrgb Fi 806 883 a(t) p Fb 842 900 a(1) p -0 0.7 0 TeXcolorrgb Fd 948 883 a(\() p 0 0 1 TeXcolorrgb -Fi(t) p Fb 1016 900 a(1) p 0 0.7 0 TeXcolorrgb Fe 1071 -883 a(:) p 0 0 1 TeXcolorrgb Fi 1112 883 a(t) p 0 0.7 0 -TeXcolorrgb Fe 1167 883 a(:) p 0 0 1 TeXcolorrgb Fi 1208 -883 a(t) p Fb 1244 900 a(2) p 0 0.7 0 TeXcolorrgb Fd -1281 883 a(\)) p 567 920 746 4 v Fh 704 995 a(A) p Ff -773 995 a(`) p Fd 842 995 a(\() p Fh(a) p Fe 934 995 -a(:) p 0 0 1 TeXcolorrgb Fi 975 995 a(t) p 0 0.7 0 TeXcolorrgb -Fd(\)) p Fe 1062 995 a(:) p 0 0 1 TeXcolorrgb Fi 1103 -995 a(t) p Fb 1139 1012 a(2) p 0 0.7 0 TeXcolorrgb Black -Fa 2 939 a(\(Ann\)) p 0 0.7 0 TeXcolorrgb Black 0 0.7 0 -TeXcolorrgb Fh 540 1208 a(A) p Ff 609 1208 a(`) p Fh -678 1208 a(a) p Fe 738 1208 a(:) p 0 0 1 TeXcolorrgb -Fi 779 1208 a(s) p Fb 829 1225 a(1) p 0 0.7 0 TeXcolorrgb -Fd 934 1208 a(\() p 0 0 1 TeXcolorrgb Fi(s) p Fb 1016 -1225 a(1) p 0 0.7 0 TeXcolorrgb Fe 1071 1208 a(:) p 0 0 1 -TeXcolorrgb Fi 1112 1208 a(s) p 0 0.7 0 TeXcolorrgb Fe -1180 1208 a(:) p 0 0 1 TeXcolorrgb Fi 1222 1208 a(s) p -Fb 1272 1225 a(2) p 0 0.7 0 TeXcolorrgb Fd 1308 1208 -a(\)) p 540 1245 801 4 v Fh 661 1321 a(A) p Ff 730 1321 -a(`) p Fd 799 1321 a([) p Fh(a) p Fe 881 1321 a(:) p -0 0 1 TeXcolorrgb Fi 923 1321 a(s) p 0 0.7 0 TeXcolorrgb -Fd 972 1321 a(]) p Fe 1014 1321 a(:) p 0 0 1 TeXcolorrgb -Fd 1055 1321 a([) p Fi(s) p Fb 1128 1338 a(2) p Fd 1164 -1321 a(]) p Fc 1187 1297 a(e) p 0 0.7 0 TeXcolorrgb Black -Fa 2 1264 a(\(P) l(oly\)) p 0 0.7 0 TeXcolorrgb Black -0 0.7 0 TeXcolorrgb Fh 704 1537 a(A) p Ff 773 1537 a(`) p -Fh 842 1537 a(a) p Fe 902 1537 a(:) p 0 0 1 TeXcolorrgb -Ff 943 1537 a(8) p Fi(e) p Fg(:) p Fd([) p Fi(s) p Fd(]) p -Fc 1145 1507 a(e) p 0 0.7 0 TeXcolorrgb 704 1573 472 -4 v Fh 764 1649 a(A) p Ff 833 1649 a(`) p 902 1649 a(h) p -Fh(a) p Ff(i) p Fe 1025 1649 a(:) p 0 0 1 TeXcolorrgb -Fi 1067 1649 a(s) p 0 0.7 0 TeXcolorrgb Black Fa 2 1592 -a(\(Use\)) p 0 0.7 0 TeXcolorrgb Black Black Black 90 rotate -dyy eop -%%Trailer -end -userdict /end-hook known{end-hook}if -%%EOF diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/lablgtk.mgp b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/lablgtk.mgp deleted file mode 100644 index 3eac79341..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/lablgtk.mgp +++ /dev/null @@ -1,558 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%deffont "code" xfont "itc avant garde gothic-demi-r", tfont "verdana.ttf" -%deffont "code-bold" xfont "terminal-bold-r", tfont "verdanab.ttf" -%deffont "sans" xfont "helvetica-medium-r", tfont "comic.ttf" -%deffont "sans-bold" xfont "helvetica-bold-r", tfont "comicbd.ttf" -%deffont "sansit" xfont "helvetica-medium-i", tfont "marlett.ttf" -%deffont "title" xfont "times-medium-r", tfont "times.ttf" -%deffont "title-bold" xfont "times-bold-r", tfont "timesbd.ttf" -%default 1 right, size 2, fore "white", bgrad -%default 1 vfont "goth", font "sans-bold", vgap 100 -%default 2 leftfill, size 8, vgap 60, prefix " ", font "sans" -%default 3 size 4, bar "beige", vgap 10 -%default 4 size 5, fore "white", vgap 20, prefix " " -%tab 1 size 5, vgap 40, prefix " ", icon box "green" 50 -%tab 2 size 5, vgap 40, prefix " ", icon arc "yellow" 50 -%tab 3 size 5, vgap 40, prefix " ", icon arc "white" 40 -%tab com1 size 4, prefix " " -%tab com2 size 4, prefix " " -%tab com3 size 4, prefix " " -%tab txt font "sans", size 5, fore "white", prefix " " -%tab vspace size 2 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -%nodefault -%size 9, font "title-bold" -%fore "beige", back "navyblue", vgap 20 -%center - - -A Type System in Action: - -the LablGTK Interface - - -%size 7, font "title" -Jacques Garrigue -Kyoto University -%size 6, font "code" -garrigue@kurims.kyoto-u.ac.jp - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -2 -Synopsis - - Objective Label introduction -%size 2 - - Why GTK+? - GTK+/LablGTK structure -%size 2 - - Low Level - Type encoding with variants - Labeled parameters -%size 2 - - High Level - Object-orientation - Optional arguments - Polymorphic methods -%size 2 - - Conclusion - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -3 -Objective Label - - Based on Objective Caml - ML syntax and type inference - Class-based object system - - Several extensions - Labeled and optional parameters - Polymorphic variants - Polymorphic methods - - Tools - Type-based browser - GUI and 3D graphics - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -4 -Labels and optionals - -%font "code", size 4, prefix " ", fore "yellow" -let rec map fun:f = function - [] -> [] - | x :: l -> f x :: map fun:f l -%fore "lightpink" -val map : fun:('a -> 'b) -> 'a list -> 'b list - -%pause, fore "yellow", font "code" -let f = map [1;2;3] -%fore "lightpink" -val f : fun:(int -> 'a) -> 'a list -%fore "yellow" -f fun:(fun x -> 2*x) -%fore "lightpink" -- : int list = [2; 3; 4] - -%pause, fore "yellow", font "code" -let f x ?incr:y [< 1 >] = x + y -%fore "lightpink" -val f : int -> ?incr:int -> int -%fore "yellow" -f 1 -%fore "lightpink" -- : int = 2 - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -5 -Polymorphic variants - - -%font "code", size 4, prefix " ", fore "yellow" -[`on; `off] -%fore "lightpink" -- : [> off on] list = [`on; `off] - -%pause, fore "yellow", font "code" -`number 1;; -%fore "lightpink" -- : [> number(int)] = `number 1 - -%pause, fore "yellow", font "code" -let f = function `on -> 1 | `off -> 0 | `number n -> n -%fore "lightpink" -val f : [< number(int) off on] -> int - -%pause, fore "yellow", font "code" -type t = [on off number(int)] - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -6 -Polymorphic methods - -Not allowed in Objective Caml -%size 2 - -%font "code", size 4, prefix " ", fore "yellow" -class c = object method m x = x end -%fore "red" -Some type variables are unbound in this type: - class c : object method m : 'a -> 'a end -The method m has type 'a -> 'a where 'a is unbound - -%pause, font "sans", size 5, prefix " ", fore "white" -Need explicit annotation in O'Labl -%size 2 - -%font "code", size 4, prefix " ", fore "yellow" -class c = object - method m : 'a. 'a -> 'a = fun x -> x -end -%fore "lightpink" -class c : object method m : 'a -> 'a end -%fore "yellow" -let o = new c -%fore "lightpink" -val o : c = -%fore "yellow" -o#m 1, o#m true -%fore "lightpink" -- : int * bool = 1, true - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -7 -Why GTK+ ? - -Why use the GIMP Tool Kit? -%size 3 - - Widely used in free software - - Easy to interface - Written in C (QT uses C++) - Memory management - -Drawbacks -%size 3 - - Design lacks uniformity - Extensive use of dynamic typing - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -8 -GTK+ Structure - -Class hierarchy based on GtkObject -%size 2 - - Single inheritance -&com1 New widgets may redefine methods -%size 2 - - Dynamically checked -&com1 Casting necessay both up and down -%size 2 - - Developper-side hierarchy -&com1 Inheritance is not always meaningful to the user -%size 2 - -%size 5 -Signal-based callback mechanism -%size 2 - - May use multiple callbacks -%size 2 - - Signals are polymorphic - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -9 -LablGTK structure - -Typed at all levels - - Low-level interface -%size 2 - - C stub functions -- typechecked by C - - ML type declarations -- ML abstract types - - High-level interface -%size 2 - - ML class wrappers -- ML concrete types - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -10 -Low Level Interface - -Goals - - Strongly typed interface -&com1 heavy use of advanced typing techniques - - Very little ML code -&com1 C-stubs and external declarations - - Safe memory management -&com1 have the library cooperate with the GC - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -11 -Low level encoding (I) - - -How to represent widget subtyping in ML? - - Example: buttons' hierarchy -%size 2 - -%font "code", size 5, prefix " ", fore "yellow" -GtkObject - GtkWidget - GtkContainer - GtkButton - GtkToggleButton - GtkRadioButton - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -12 -Variants as set constraints - - -Variants can be seen as sets of possible values: - - [tag1 ... tagn] = {tag1,...,tagn} - - -Polymorphic variants introduce constraints - - $B&A(B[> tag1 ... tagn] $B"N(B $B&A(B $B"?(B {tag1,...,tagn} - $B&A(B[< tag1 ... tagn] $B"N(B $B&A(B $B">(B {tag1,...,tagn} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -13 -Encoding hierarchies - -Define an abstract type -&vspace -%font "code", fore "yellow", size 5 - type 'a obj - -&txt Use tags to represent properties -&vspace -%font "code", fore "yellow", size 5 - type t = [class1 ... classn] obj - -&txt Functions check properties -&vspace -%font "code", fore "yellow", size 5 - val f : [> class1 ... classn] obj -> ... -&txt - Subsumes Haskell type classes -&vspace - Allows multiple inheritance - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -14 -Low level encoding (II) - -Example: buttons' hierarchy -%size 2 - -%font "code", size 4, prefix " ", fore "yellow" -type 'a obj -type widget = [widget] obj -type container = [widget container] obj -type button = [widget container button] obj -type toggle_button = [widget ... togglebutton] obj -type radio_button = [widget ... radiobutton] obj -type state_type = [ NORMAL - ACTIVE PRELIGHT SELECTED INSENSITIVE ] -val set_state : [> widget] obj -> state_type -> unit -val children : [> container] obj -> [widget] obj list -val clicked : [> button] obj -> unit -val set_group : [> radiobutton] obj -> group -> unit - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -15 -Alternate encoding - -Use only standard ML features -%size 2 - -%font "code", size 4, prefix " ", fore "yellow", vgap 50 -type 'a obj -type 'a widget -... -type 'a radio -type state_type = NORMAL | ACTIVE | ... | INSENSITIVE -val set_state : 'a widget obj -> state_type -> unit -val children : - 'a container widget obj -> unit widget obj list -val clicked : 'a button container widget obj -> unit - -&txt Weaknesses - No multiple inheritance - Not very intuitive for the user - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -16 -Low level encoding (III) - -Use of labeled parameters -%size 2 - -%font "code", size 4, prefix " ", fore "yellow", vgap 50 -val adjustment_new : - value:float -> lower:float -> upper:float -> - step_incr:float -> page_incr:float -> - page_size:float -> adjustment obj - -&txt Signals -%size 2 - -%font "code", size 4, prefix " ", fore "yellow", vgap 50 -type ('a,'b) signal = - { name: string; marshaller: 'b -> GtkArgv.t -> unit } -val connect : 'a obj -> sig:('a,'b) signal -> - callback:'b -> ?after:bool -> id -val button_clicked : ([> button], unit -> unit) signal - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -17 -High-Level Interface - -Problems with GTK+ -%size 2 - - Name space is scattered -&com1 One has to know in which superclass a function is defined - Developper oriented design -&com1 There is no clear distinction between public and private definitions - -&txt LablGTK design -%size 2 - - OCaml classes to reunify name space - Omit developper-oriented methods - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -18 -High-level classes - -%font "code", size 4, prefix " ", fore "yellow" -class button : -%fore "lightgreen" - ?label:string -> -%fore "lightpink" - ?border_width:int -> - ?width:int -> - ?height:int -> -%fore "lightgray" - ?packing:(GButton.button -> unit) -> - ?show:bool -> -%fore "yellow" - object -%fore "lightgray" - method destroy : unit -> unit - method as_widget : Gtk.widget obj - method misc : GObj.widget_misc -%fore "lightpink" - method add : #is_widget -> unit - method set_border_width : int -> unit -%fore "lightgreen" - method clicked : unit -> unit - method connect : GButton.button_signals - method grab_default : unit -> unit -%fore "yellow" - end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -19 -High-level features - - Objective Caml classes -&com1 allow collecting methods from different modules - - Use optionals in class constructors -&com1 makes widget creation much easier - - Polymorphic methods -&com1 needed for container widgets -%size 2 - -%font "code", size 4, fore "yellow", vgap 50 - method add : 'a. (#is_widget as 'a) -> unit - -%fore "white", font "sans" - Polymorphic variants -&com1 for C-style enumeration types, avoid name-space dependancies - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -20 -Polymorphic methods (I) - - Instance of first-class polymorphism -%size 2 - - first-class polytypes cannot be inferred - they are propagated by the definition flow - - Technically -%size 2 - - use polymorphism to track available information - type system excludes derivations based on "guessed" information - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -21 -First class polymorphism - -%prefix " " -%image "formula.eps" 512x384 -%size 2 - -%prefix " ", size 5, fore "lightblue" - ($B&R(B1 : $B&R(B : $B&R(B2) $B"N(B $B&R(B1 = $B&H(B($B&Q(B1($B&R(B)) $B"J(B $B&R(B2 = $B&H(B($B&Q(B2($B&R(B)) -%fore "white" -where $B&H(B instantiates free variables, and $B&Q(B1,$B&Q(B2 rename free labels of $B&R(B. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -22 -Polymorphic methods (II) - -Definitions -%size 2 - -%font "code", size 4, prefix " ", fore "yellow", vgap 50 -type is_widget = < as_widget : widget obj > -type #is_widget = < as_widget : widget obj; .. > -type container = - < ... ; add : 'a. (#as_widget as 'a) -> unit; ... > - -%pause -&txt Propagation -%size 2 - -%font "code", size 4, prefix " ", fore "lightgreen", vgap 50 -fun (cont : container) -> cont#add widget - -%pause -let button = new button in button#add widget - -%pause, fore "red" -fun cont -> cont#add widget - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -23 -Programming example - -Hello World -%size 2 - -%font "code", size 4, prefix " ", fore "yellow" -open GMain - -let window = - new GWindow.window border_width: 10 - -let button = - new GButton.button - label: "Hello World" packing: window#add - -let _ = - window#connect#destroy callback: Main.quit; - button#connect#clicked callback: window#destroy; - window#show (); - Main.main () - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -24 -Conclusion - - Results -%size 2 - - Could build a strongly typed interface - - It is easier to use than the C API - - Makes effective use of extensions to the type system - - Comments -%size 2 - - Still difficulties with the Caml object system -&com2 class recursion, method type refinement, etc... diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/morph3d.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/morph3d.ml deleted file mode 100644 index a08726e05..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/morph3d.ml +++ /dev/null @@ -1,607 +0,0 @@ -(* $Id$ *) - -(*- - * morph3d.c - Shows 3D morphing objects (TK Version) - * - * This program was inspired on a WindowsNT(R)'s screen saver. It was written - * from scratch and it was not based on any other source code. - * - * Porting it to xlock (the final objective of this code since the moment I - * decided to create it) was possible by comparing the original Mesa's gear - * demo with it's ported version, so thanks for Danny Sung for his indirect - * help (look at gear.c in xlock source tree). NOTE: At the moment this code - * was sent to Brian Paul for package inclusion, the XLock Version was not - * available. In fact, I'll wait it to appear on the next Mesa release (If you - * are reading this, it means THIS release) to send it for xlock package - * inclusion). It will probably there be a GLUT version too. - * - * Thanks goes also to Brian Paul for making it possible and inexpensive - * to use OpenGL at home. - * - * Since I'm not a native english speaker, my apologies for any gramatical - * mistake. - * - * My e-mail addresses are - * - * vianna@cat.cbpf.br - * and - * marcelo@venus.rdc.puc-rio.br - * - * Marcelo F. Vianna (Feb-13-1997) - *) - -(* -This document is VERY incomplete, but tries to describe the mathematics used -in the program. At this moment it just describes how the polyhedra are -generated. On futhurer versions, this document will be probabbly improved. - -Since I'm not a native english speaker, my apologies for any gramatical -mistake. - -Marcelo Fernandes Vianna -- Undergraduate in Computer Engeneering at Catholic Pontifical University -- of Rio de Janeiro (PUC-Rio) Brasil. -- e-mail: vianna@cat.cbpf.br or marcelo@venus.rdc.puc-rio.br -- Feb-13-1997 - -POLYHEDRA GENERATION - -For the purpose of this program it's not sufficient to know the polyhedra -vertexes coordinates. Since the morphing algorithm applies a nonlinear -transformation over the surfaces (faces) of the polyhedron, each face has -to be divided into smaller ones. The morphing algorithm needs to transform -each vertex of these smaller faces individually. It's a very time consoming -task. - -In order to reduce calculation overload, and since all the macro faces of -the polyhedron are transformed by the same way, the generation is made by -creating only one face of the polyhedron, morphing it and then rotating it -around the polyhedron center. - -What we need to know is the face radius of the polyhedron (the radius of -the inscribed sphere) and the angle between the center of two adjacent -faces using the center of the sphere as the angle's vertex. - -The face radius of the regular polyhedra are known values which I decided -to not waste my time calculating. Following is a table of face radius for -the regular polyhedra with edge length = 1: - - TETRAHEDRON : 1/(2*sqrt(2))/sqrt(3) - CUBE : 1/2 - OCTAHEDRON : 1/sqrt(6) - DODECAHEDRON : T^2 * sqrt((T+2)/5) / 2 -> where T=(sqrt(5)+1)/2 - ICOSAHEDRON : (3*sqrt(3)+sqrt(15))/12 - -I've not found any reference about the mentioned angles, so I needed to -calculate them, not a trivial task until I figured out how :) -Curiously these angles are the same for the tetrahedron and octahedron. -A way to obtain this value is inscribing the tetrahedron inside the cube -by matching their vertexes. So you'll notice that the remaining unmatched -vertexes are in the same straight line starting in the cube/tetrahedron -center and crossing the center of each tetrahedron's face. At this point -it's easy to obtain the bigger angle of the isosceles triangle formed by -the center of the cube and two opposite vertexes on the same cube face. -The edges of this triangle have the following lenghts: sqrt(2) for the base -and sqrt(3)/2 for the other two other edges. So the angle we want is: - +-----------------------------------------------------------+ - | 2*ARCSIN(sqrt(2)/sqrt(3)) = 109.47122063449069174 degrees | - +-----------------------------------------------------------+ -For the cube this angle is obvious, but just for formality it can be -easily obtained because we also know it's isosceles edge lenghts: -sqrt(2)/2 for the base and 1/2 for the other two edges. So the angle we -want is: - +-----------------------------------------------------------+ - | 2*ARCSIN((sqrt(2)/2)/1) = 90.000000000000000000 degrees | - +-----------------------------------------------------------+ -For the octahedron we use the same idea used for the tetrahedron, but now -we inscribe the cube inside the octahedron so that all cubes's vertexes -matches excatly the center of each octahedron's face. It's now clear that -this angle is the same of the thetrahedron one: - +-----------------------------------------------------------+ - | 2*ARCSIN(sqrt(2)/sqrt(3)) = 109.47122063449069174 degrees | - +-----------------------------------------------------------+ -For the dodecahedron it's a little bit harder because it's only relationship -with the cube is useless to us. So we need to solve the problem by another -way. The concept of Face radius also exists on 2D polygons with the name -Edge radius: - Edge Radius For Pentagon (ERp) - ERp = (1/2)/TAN(36 degrees) * VRp = 0.6881909602355867905 - (VRp is the pentagon's vertex radio). - Face Radius For Dodecahedron - FRd = T^2 * sqrt((T+2)/5) / 2 = 1.1135163644116068404 -Why we need ERp? Well, ERp and FRd segments forms a 90 degrees angle, -completing this triangle, the lesser angle is a half of the angle we are -looking for, so this angle is: - +-----------------------------------------------------------+ - | 2*ARCTAN(ERp/FRd) = 63.434948822922009981 degrees | - +-----------------------------------------------------------+ -For the icosahedron we can use the same method used for dodecahedron (well -the method used for dodecahedron may be used for all regular polyhedra) - Edge Radius For Triangle (this one is well known: 1/3 of the triangle height) - ERt = sin(60)/3 = sqrt(3)/6 = 0.2886751345948128655 - Face Radius For Icosahedron - FRi= (3*sqrt(3)+sqrt(15))/12 = 0.7557613140761707538 -So the angle is: - +-----------------------------------------------------------+ - | 2*ARCTAN(ERt/FRi) = 41.810314895778596167 degrees | - +-----------------------------------------------------------+ - -*) - - -let scale = 0.3 - -let vect_mul (x1,y1,z1) (x2,y2,z2) = - (y1 *. z2 -. z1 *. y2, z1 *. x2 -. x1 *. z2, x1 *. y2 -. y1 *. x2) - -let sqr a = a *. a - -(* Increasing this values produces better image quality, the price is speed. *) -(* Very low values produces erroneous/incorrect plotting *) -let tetradivisions = 23 -let cubedivisions = 20 -let octadivisions = 21 -let dodecadivisions = 10 -let icodivisions = 15 - -let tetraangle = 109.47122063449069174 -let cubeangle = 90.000000000000000000 -let octaangle = 109.47122063449069174 -let dodecaangle = 63.434948822922009981 -let icoangle = 41.810314895778596167 - -let pi = acos (-1.) -let sqrt2 = sqrt 2. -let sqrt3 = sqrt 3. -let sqrt5 = sqrt 5. -let sqrt6 = sqrt 6. -let sqrt15 = sqrt 15. -let cossec36_2 = 0.8506508083520399322 -let cosd x = cos (float x /. 180. *. pi) -let sind x = sin (float x /. 180. *. pi) -let cos72 = cosd 72 -let sin72 = sind 72 -let cos36 = cosd 36 -let sin36 = sind 36 - -(*************************************************************************) - -let front_shininess = 60.0 -let front_specular = 0.7, 0.7, 0.7, 1.0 -let ambient = 0.0, 0.0, 0.0, 1.0 -let diffuse = 1.0, 1.0, 1.0, 1.0 -let position0 = 1.0, 1.0, 1.0, 0.0 -let position1 = -1.0,-1.0, 1.0, 0.0 -let lmodel_ambient = 0.5, 0.5, 0.5, 1.0 -let lmodel_twoside = true - -let materialRed = 0.7, 0.0, 0.0, 1.0 -let materialGreen = 0.1, 0.5, 0.2, 1.0 -let materialBlue = 0.0, 0.0, 0.7, 1.0 -let materialCyan = 0.2, 0.5, 0.7, 1.0 -let materialYellow = 0.7, 0.7, 0.0, 1.0 -let materialMagenta = 0.6, 0.2, 0.5, 1.0 -let materialWhite = 0.7, 0.7, 0.7, 1.0 -let materialGray = 0.2, 0.2, 0.2, 1.0 -let all_gray = Array.create 20 materialGray - -let vertex ~xf ~yf ~zf ~ampvr2 = - let xa = xf +. 0.01 and yb = yf +. 0.01 in - let xf2 = sqr xf and yf2 = sqr yf in - let factor = 1. -. (xf2 +. yf2) *. ampvr2 - and factor1 = 1. -. (sqr xa +. yf2) *. ampvr2 - and factor2 = 1. -. (xf2 +. sqr yb) *. ampvr2 in - let vertx = factor *. xf and verty = factor *. yf - and vertz = factor *. zf in - let neiax = factor1 *. xa -. vertx and neiay = factor1 *. yf -. verty - and neiaz = factor1 *. zf -. vertz and neibx = factor2 *. xf -. vertx - and neiby = factor2 *. yb -. verty and neibz = factor2 *. zf -. vertz in - GlDraw.normal3 (vect_mul (neiax, neiay, neiaz) (neibx, neiby, neibz)); - GlDraw.vertex3 (vertx, verty, vertz) - -let triangle ~edge ~amp ~divisions ~z = - let divi = float divisions in - let vr = edge *. sqrt3 /. 3. in - let ampvr2 = amp /. sqr vr - and zf = edge *. z in - let ax = edge *. (0.5 /. divi) - and ay = edge *. (-0.5 *. sqrt3 /. divi) - and bx = edge *. (-0.5 /. divi) in - for ri = 1 to divisions do - GlDraw.begins `triangle_strip; - for ti = 0 to ri - 1 do - vertex ~zf ~ampvr2 - ~xf:(float (ri-ti) *. ax +. float ti *. bx) - ~yf:(vr +. float (ri-ti) *. ay +. float ti *. ay); - vertex ~zf ~ampvr2 - ~xf:(float (ri-ti-1) *. ax +. float ti *. bx) - ~yf:(vr +. float (ri-ti-1) *. ay +. float ti *. ay) - done; - vertex ~xf:(float ri *. bx) ~yf:(vr +. float ri *. ay) ~zf ~ampvr2; - GlDraw.ends () - done - -let square ~edge ~amp ~divisions ~z = - let divi = float divisions in - let zf = edge *. z - and ampvr2 = amp /. sqr (edge *. sqrt2 /. 2.) in - for yi = 0 to divisions - 1 do - let yf = edge *. (-0.5 +. float yi /. divi) in - let yf2 = sqr yf in - let y = yf +. 1.0 /. divi *. edge in - let y2 = sqr y in - GlDraw.begins `quad_strip; - for xi = 0 to divisions do - let xf = edge *. (-0.5 +. float xi /. divi) in - vertex ~xf ~yf:y ~zf ~ampvr2; - vertex ~xf ~yf ~zf ~ampvr2 - done; - GlDraw.ends () - done - -let pentagon ~edge ~amp ~divisions ~z = - let divi = float divisions in - let zf = edge *. z - and ampvr2 = amp /. sqr(edge *. cossec36_2) in - let x = - Array.init 6 - ~f:(fun fi -> -. cos (float fi *. 2. *. pi /. 5. +. pi /. 10.) - /. divi *. cossec36_2 *. edge) - and y = - Array.init 6 - ~f:(fun fi -> sin (float fi *. 2. *. pi /. 5. +. pi /. 10.) - /. divi *. cossec36_2 *. edge) - in - for ri = 1 to divisions do - for fi = 0 to 4 do - GlDraw.begins `triangle_strip; - for ti = 0 to ri-1 do - vertex ~zf ~ampvr2 - ~xf:(float(ri-ti) *. x.(fi) +. float ti *. x.(fi+1)) - ~yf:(float(ri-ti) *. y.(fi) +. float ti *. y.(fi+1)); - vertex ~zf ~ampvr2 - ~xf:(float(ri-ti-1) *. x.(fi) +. float ti *. x.(fi+1)) - ~yf:(float(ri-ti-1) *. y.(fi) +. float ti *. y.(fi+1)) - done; - vertex ~xf:(float ri *. x.(fi+1)) ~yf:(float ri *. y.(fi+1)) ~zf ~ampvr2; - GlDraw.ends () - done - done - -let call_list list color = - GlLight.material ~face:`both (`diffuse color); - GlList.call list - -let draw_tetra ~amp ~divisions ~color = - let list = GlList.create `compile in - triangle ~edge:2.0 ~amp ~divisions ~z:(0.5 /. sqrt6); - GlList.ends(); - - call_list list color.(0); - GlMat.push(); - GlMat.rotate ~angle:180.0 ~z:1.0 (); - GlMat.rotate ~angle:(-.tetraangle) ~x:1.0 (); - call_list list color.(1); - GlMat.pop(); - GlMat.push(); - GlMat.rotate ~angle:180.0 ~y:1.0 (); - GlMat.rotate ~angle:(-180.0 +. tetraangle) ~x:0.5 ~y:(sqrt3 /. 2.) (); - call_list list color.(2); - GlMat.pop(); - GlMat.rotate ~angle:180.0 ~y:1.0 (); - GlMat.rotate ~angle:(-180.0 +. tetraangle) ~x:0.5 ~y:(-.sqrt3 /. 2.) (); - call_list list color.(3); - - GlList.delete list - -let draw_cube ~amp ~divisions ~color = - let list = GlList.create `compile in - square ~edge:2.0 ~amp ~divisions ~z:0.5; - GlList.ends (); - - call_list list color.(0); - for i = 1 to 3 do - GlMat.rotate ~angle:cubeangle ~x:1.0 (); - call_list list color.(i) - done; - GlMat.rotate ~angle:cubeangle ~y:1.0 (); - call_list list color.(4); - GlMat.rotate ~angle:(2.0 *. cubeangle) ~y:1.0 (); - call_list list color.(5); - - GlList.delete list - -let draw_octa ~amp ~divisions ~color = - let list = GlList.create `compile in - triangle ~edge:2.0 ~amp ~divisions ~z:(1.0 /. sqrt6); - GlList.ends (); - - let do_list (i,y) = - GlMat.push(); - GlMat.rotate ~angle:180.0 ~y:1.0 (); - GlMat.rotate ~angle:(-.octaangle) ~x:0.5 ~y (); - call_list list color.(i); - GlMat.pop() - in - call_list list color.(0); - GlMat.push(); - GlMat.rotate ~angle:180.0 ~z:1.0 (); - GlMat.rotate ~angle:(-180.0 +. octaangle) ~x:1.0 (); - call_list list color.(1); - GlMat.pop(); - List.iter [2, sqrt3 /. 2.0; 3, -.sqrt3 /. 2.0] ~f:do_list; - GlMat.rotate ~angle:180.0 ~x:1.0 (); - GlLight.material ~face:`both (`diffuse color.(4)); - GlList.call list; - GlMat.push(); - GlMat.rotate ~angle:180.0 ~z:1.0 (); - GlMat.rotate ~angle:(-180.0 +. octaangle) ~x:1.0 (); - GlLight.material ~face:`both (`diffuse color.(5)); - GlList.call list; - GlMat.pop(); - List.iter [6, sqrt3 /. 2.0; 7, -.sqrt3 /. 2.0] ~f:do_list; - - GlList.delete list - -let draw_dodeca ~amp ~divisions ~color = - let tau = (sqrt5 +. 1.0) /. 2.0 in - let list = GlList.create `compile in - pentagon ~edge:2.0 ~amp ~divisions - ~z:(sqr(tau) *. sqrt ((tau+.2.0)/.5.0) /. 2.0); - GlList.ends (); - - let do_list (i,angle,x,y) = - GlMat.push(); - GlMat.rotate ~angle:angle ~x ~y (); - call_list list color.(i); - GlMat.pop(); - in - GlMat.push (); - call_list list color.(0); - GlMat.rotate ~angle:180.0 ~z:1.0 (); - List.iter ~f:do_list - [ 1, -.dodecaangle, 1.0, 0.0; - 2, -.dodecaangle, cos72, sin72; - 3, -.dodecaangle, cos72, -.sin72; - 4, dodecaangle, cos36, -.sin36; - 5, dodecaangle, cos36, sin36 ]; - GlMat.pop (); - GlMat.rotate ~angle:180.0 ~x:1.0 (); - call_list list color.(6); - GlMat.rotate ~angle:180.0 ~z:1.0 (); - List.iter ~f:do_list - [ 7, -.dodecaangle, 1.0, 0.0; - 8, -.dodecaangle, cos72, sin72; - 9, -.dodecaangle, cos72, -.sin72; - 10, dodecaangle, cos36, -.sin36 ]; - GlMat.rotate ~angle:dodecaangle ~x:cos36 ~y:sin36 (); - call_list list color.(11); - - GlList.delete list - -let draw_ico ~amp ~divisions ~color = - let list = GlList.create `compile in - triangle ~edge:1.5 ~amp ~divisions - ~z:((3.0 *. sqrt3 +. sqrt15) /. 12.0); - GlList.ends (); - - let do_list1 i = - GlMat.rotate ~angle:180.0 ~y:1.0 (); - GlMat.rotate ~angle:(-180.0 +. icoangle) ~x:0.5 ~y:(sqrt3/.2.0) (); - call_list list color.(i) - and do_list2 i = - GlMat.rotate ~angle:180.0 ~y:1.0 (); - GlMat.rotate ~angle:(-180.0 +. icoangle) ~x:0.5 ~y:(-.sqrt3/.2.0) (); - call_list list color.(i) - and do_list3 i = - GlMat.rotate ~angle:180.0 ~z:1.0 (); - GlMat.rotate ~angle:(-.icoangle) ~x:1.0 (); - call_list list color.(i) - in - GlMat.push (); - call_list list color.(0); - GlMat.push (); - do_list3 1; - GlMat.push (); - do_list1 2; - GlMat.pop (); - do_list2 3; - GlMat.pop (); - GlMat.push (); - do_list1 4; - GlMat.push (); - do_list1 5; - GlMat.pop(); - do_list3 6; - GlMat.pop (); - do_list2 7; - GlMat.push (); - do_list2 8; - GlMat.pop (); - do_list3 9; - GlMat.pop (); - GlMat.rotate ~angle:180.0 ~x:1.0 (); - call_list list color.(10); - GlMat.push (); - do_list3 11; - GlMat.push (); - do_list1 12; - GlMat.pop (); - do_list2 13; - GlMat.pop (); - GlMat.push (); - do_list1 14; - GlMat.push (); - do_list1 15; - GlMat.pop (); - do_list3 16; - GlMat.pop (); - do_list2 17; - GlMat.push (); - do_list2 18; - GlMat.pop (); - do_list3 19; - - GlList.delete list - -class view area = object (self) - val area : GlGtk.area = area - val mutable smooth = true - val mutable step = 0. - val mutable obj = 1 - val mutable draw_object = fun ~amp -> () - val mutable magnitude = 0. - - method width = area#misc#allocation.Gtk.width - method height = area#misc#allocation.Gtk.height - - method draw () = - let ratio = float self#height /. float self#width in - GlClear.clear [`color;`depth]; - GlMat.push(); - GlMat.translate ~z:(-10.0) (); - GlMat.scale ~x:(scale *. ratio) ~y:scale ~z:scale (); - GlMat.translate () - ~x:(2.5 *. ratio *. sin (step *. 1.11)) - ~y:(2.5 *. cos (step *. 1.25 *. 1.11)); - GlMat.rotate ~angle:(step *. 100.) ~x:1.0 (); - GlMat.rotate ~angle:(step *. 95.) ~y:1.0 (); - GlMat.rotate ~angle:(step *. 90.) ~z:1.0 (); - draw_object ~amp:((sin step +. 1.0/.3.0) *. (4.0/.5.0) *. magnitude); - GlMat.pop(); - Gl.flush(); - area#swap_buffers (); - step <- step +. 0.05 - - method reshape ~width ~height = - GlDraw.viewport ~x:0 ~y:0 ~w:width ~h:height; - GlMat.mode `projection; - GlMat.load_identity(); - GlMat.frustum ~x:(-1.0, 1.0) ~y:(-1.0, 1.0) ~z:(5.0, 15.0); - GlMat.mode `modelview - - method key sym = - begin match sym with - "1" -> obj <- 1 - | "2" -> obj <- 2 - | "3" -> obj <- 3 - | "4" -> obj <- 4 - | "5" -> obj <- 5 - | "\r" -> smooth <- not smooth - | "\027" -> area#misc#toplevel#destroy (); exit 0 - | _ -> () - end; - self#pinit - - method pinit = - begin match obj with - 1 -> - draw_object <- draw_tetra - ~divisions:tetradivisions - ~color:[|materialRed; materialGreen; - materialBlue; materialWhite|]; - magnitude <- 2.5 - | 2 -> - draw_object <- draw_cube - ~divisions:cubedivisions - ~color:[|materialRed; materialGreen; materialCyan; - materialMagenta; materialYellow; materialBlue|]; - magnitude <- 2.0 - | 3 -> - draw_object <- draw_octa - ~divisions:octadivisions - ~color:[|materialRed; materialGreen; materialBlue; - materialWhite; materialCyan; materialMagenta; - materialGray; materialYellow|]; - magnitude <- 2.5 - | 4 -> - draw_object <- draw_dodeca - ~divisions:dodecadivisions - ~color:[|materialRed; materialGreen; materialCyan; - materialBlue; materialMagenta; materialYellow; - materialGreen; materialCyan; materialRed; - materialMagenta; materialBlue; materialYellow|]; - magnitude <- 2.0 - | 5 -> - draw_object <- draw_ico - ~divisions:icodivisions - ~color:[|materialRed; materialGreen; materialBlue; - materialCyan; materialYellow; materialMagenta; - materialRed; materialGreen; materialBlue; - materialWhite; materialCyan; materialYellow; - materialMagenta; materialRed; materialGreen; - materialBlue; materialCyan; materialYellow; - materialMagenta; materialGray|]; - magnitude <- 3.5 - | _ -> () - end; - GlDraw.shade_model (if smooth then `smooth else `flat) - initializer - area#connect#display ~callback:self#draw; - area#connect#reshape ~callback:self#reshape; - () -end - -open GMain - -let main () = - List.iter ~f:print_string - [ "Morph 3D - Shows morphing platonic polyhedra\n"; - "Author: Marcelo Fernandes Vianna (vianna@cat.cbpf.br)\n"; - "Ported to LablGL by Jacques Garrigue\n\n"; - " [1] - Tetrahedron\n"; - " [2] - Hexahedron (Cube)\n"; - " [3] - Octahedron\n"; - " [4] - Dodecahedron\n"; - " [5] - Icosahedron\n"; - "[RETURN] - Toggle smooth/flat shading\n"; - " [ESC] - Quit\n" ]; - flush stdout; - - let window = - GWindow.window ~title:"Morph 3D - Shows morphing platonic polyhedra" () - in - window#connect#destroy ~callback:Main.quit; - window#set_resize_mode `IMMEDIATE; - - let area = GlGtk.area [`DEPTH_SIZE 1;`RGBA;`DOUBLEBUFFER] - ~width:640 ~height:480 ~packing:window#add () in - - let view = new view area in - - area#connect#realize ~callback: - begin fun () -> - view#pinit; - GlClear.depth 1.0; - GlClear.color (0.0, 0.0, 0.0); - GlDraw.color (1.0, 1.0, 1.0); - - GlClear.clear [`color;`depth]; - Gl.flush(); - - List.iter ~f:(GlLight.light ~num:0) - [`ambient ambient; `diffuse diffuse; `position position0]; - List.iter ~f:(GlLight.light ~num:1) - [`ambient ambient; `diffuse diffuse; `position position1]; - GlLight.light_model (`ambient lmodel_ambient); - GlLight.light_model (`two_side lmodel_twoside); - List.iter ~f:Gl.enable - [`lighting;`light0;`light1;`depth_test;`normalize]; - - GlLight.material ~face:`both (`shininess front_shininess); - GlLight.material ~face:`both (`specular front_specular); - - GlMisc.hint `fog `fastest; - GlMisc.hint `perspective_correction `fastest; - GlMisc.hint `polygon_smooth `fastest - end; - - window#event#connect#key_press - ~callback:(fun ev -> view#key (GdkEvent.Key.string ev); true); - - Timeout.add ~ms:20 - ~callback:(fun _ -> if area#misc#visible then view#draw (); true); - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/planet.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/planet.ml deleted file mode 100644 index 51f947c48..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/planet.ml +++ /dev/null @@ -1,125 +0,0 @@ -(* $Id$ *) - -class planet area = object (self) - val area : GlGtk.area = area - val mutable year = 0.0 - val mutable day = 0.0 - val mutable eye = 0.0 - val mutable time = 0.0 - - method tick new_time = - if time = 0. then time <- new_time else - let diff = new_time -. time in - time <- new_time; - day <- mod_float (day +. diff *. 200.) 360.0; - year <- mod_float (year +. diff *. 20.) 360.0 - method day_add () = - day <- mod_float (day +. 10.0) 360.0 - method day_subtract () = - day <- mod_float (day -. 10.0) 360.0 - method year_add () = - year <- mod_float (year +. 5.0) 360.0 - method year_subtract () = - year <- mod_float (year -. 5.0) 360.0 - method eye x = - eye <- x; self#display () - - method display () = - GlClear.clear [`color;`depth]; - - GlDraw.color (1.0, 1.0, 1.0); - GlMat.push(); - GlMat.rotate ~angle:eye ~x:1. (); -(* draw sun *) - GlLight.material ~face:`front (`specular (1.0,1.0,0.0,1.0)); - GlLight.material ~face:`front (`shininess 5.0); - GluQuadric.sphere ~radius:1.0 ~slices:32 ~stacks:32 (); -(* draw smaller planet *) - GlMat.rotate ~angle:year ~y:1.0 (); - GlMat.translate ~x:3.0 (); - GlMat.rotate ~angle:day ~y:1.0 (); - GlDraw.color (0.0, 1.0, 1.0); - GlDraw.shade_model `flat; - GlLight.material ~face:`front(`shininess 128.0); - GluQuadric.sphere ~radius:0.2 ~slices:10 ~stacks:10 (); - GlDraw.shade_model `smooth; - GlMat.pop (); - Gl.flush (); - area#swap_buffers () -end - -let myinit () = - let light_ambient = 0.5, 0.5, 0.5, 1.0 - and light_diffuse = 1.0, 0.8, 0.2, 1.0 - and light_specular = 1.0, 1.0, 1.0, 1.0 - (* light_position is NOT default value *) - and light_position = 1.0, 1.0, 1.0, 0.0 - in - List.iter ~f:(GlLight.light ~num:0) - [ `ambient light_ambient; `diffuse light_diffuse; - `specular light_specular; `position light_position ]; - GlFunc.depth_func `less; - List.iter ~f:Gl.enable [`lighting; `light0; `depth_test]; - GlDraw.shade_model `smooth - - -let my_reshape ~width:w ~height:h = - GlDraw.viewport ~x:0 ~y:0 ~w ~h; - GlMat.mode `projection; - GlMat.load_identity(); - GluMat.perspective ~fovy:60.0 ~aspect:(float w /. float h) ~z:(1.0,20.0); - GlMat.mode `modelview; - GlMat.load_identity(); - GlMat.translate ~z:(-5.0) () - -(* Main Loop - * Open window with initial window size, title bar, - * RGBA display mode, and handle input events. - *) -open GMain -open GdkKeysyms - -let main () = - let w = GWindow.window ~title:"Planet" () in - w#connect#destroy ~callback:(fun () -> Main.quit (); exit 0); - w#set_resize_mode `IMMEDIATE; - let hb = GPack.hbox ~packing:w#add () in - let area = GlGtk.area [`DOUBLEBUFFER;`RGBA;`DEPTH_SIZE 1] - ~width:700 ~height:500 ~packing:hb#add () in - area#event#add [`KEY_PRESS]; - - let planet = new planet area in - let adjustment = GData.adjustment ~value:0. ~lower:(-90.) ~upper:90. - ~step_incr:1. ~page_incr:5. ~page_size:5. () in - let scale = GRange.scale `VERTICAL ~adjustment ~draw_value:false - ~packing:hb#pack () in - adjustment#connect#value_changed - ~callback:(fun () -> planet#eye adjustment#value); - w#event#connect#key_press ~callback: - begin fun ev -> - let key = GdkEvent.Key.keyval ev in - if key = _Left then planet#year_subtract () else - if key = _Right then planet#year_add () else - if key = _Up then planet#day_add () else - if key = _Down then planet#day_subtract () else - if key = _Escape then w#destroy (); - planet#display (); - true - end; - - Timeout.add ~ms:20 ~callback: - begin fun () -> - planet#tick (Sys.time ()); planet#display (); true - end; - area#connect#display ~callback:planet#display; - area#connect#reshape ~callback:my_reshape; - - area#connect#realize ~callback: - begin fun () -> - myinit (); - my_reshape ~width:700 ~height:500 - end; - w#show (); - Main.main () - -let _ = Printexc.print main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/simple.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/simple.ml deleted file mode 100644 index ea6ebde96..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/simple.ml +++ /dev/null @@ -1,33 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let w = GWindow.window ~title:"LablGL/Gtk" () in - w#connect#destroy ~callback:Main.quit; - let area = - GlGtk.area [`RGBA;`DEPTH_SIZE 1] ~width:500 ~height:500 ~packing:w#add () in - area#connect#realize ~callback: - begin fun () -> - GlMat.mode `projection; - GlMat.load_identity (); - GlMat.ortho ~x:(-1.0,1.0) ~y:(-1.0,1.0) ~z:(-1.0,1.0); - end; - area#connect#display ~callback: - begin fun () -> - GlClear.color (0.0, 0.0, 0.0); - GlClear.clear [`color]; - GlDraw.color (1.0, 1.0, 1.0); - GlDraw.begins `polygon; - GlDraw.vertex ~x:(-0.5) ~y:(-0.5) (); - GlDraw.vertex ~x:(-0.5) ~y:(0.5) (); - GlDraw.vertex ~x:(0.5) ~y:(0.5) (); - GlDraw.vertex ~x:(0.5) ~y:(-0.5) (); - GlDraw.ends (); - Gl.flush () - end; - Timeout.add ~ms:10000 ~callback:(fun () -> w#destroy ();false); - w#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/README b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/README deleted file mode 100644 index 6cbb5b6e9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/README +++ /dev/null @@ -1,17 +0,0 @@ -Since this library was written in commuting label mode, examples were -also written in this mode. -Still, the following examples also compile in classic mode without -any modification. - -* calendar.ml -* clist.ml -* drawing.ml -* entry.ml -* events.ml -* fifteen.ml -* hello.ml -* image.ml -* radiobuttons.ml -* rpn.ml -* scrolledwin.ml -* testinput.ml \ No newline at end of file diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/buttons.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/buttons.ml deleted file mode 100644 index 78eebb038..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/buttons.ml +++ /dev/null @@ -1,26 +0,0 @@ -(* $Id$ *) - -open GMain - -let xpm_label_box ~(window : #GContainer.container) - ~file ~text ?packing ?(show=true) () = - if not (Sys.file_exists file) then failwith (file ^ " does not exist"); - let box = GPack.hbox ~border_width: 2 ?packing ~show:false () in - let pixmap = GDraw.pixmap_from_xpm ~file ~window () in - GMisc.pixmap pixmap ~packing:(box#pack ~padding:3) (); - GMisc.label ~text ~packing:(box#pack ~padding:3) (); - if show then box#misc#show (); - new GObj.widget_full box#as_widget - -let main () = - let window = GWindow.window ~title:"Pixmap'd Buttons!" ~border_width:10 () in - window#connect#destroy ~callback:Main.quit; - let button = GButton.button ~packing:window#add () in - button#connect#clicked ~callback: - (fun () -> prerr_endline "Hello again - cool button was pressed"); - xpm_label_box ~window ~file:"test.xpm" ~text:"cool button" - ~packing:button#add (); - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calc.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calc.ml deleted file mode 100644 index 405d1bf87..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calc.ml +++ /dev/null @@ -1,114 +0,0 @@ -(* $Id$ *) - -(* A simple calculator ported from LablTk to LablGtk *) - -let mem_string ~char s = - try - for i = 0 to String.length s -1 do - if s.[i] = char then raise Exit - done; false - with Exit -> true - -let ops = ['+',(+.); '-',(-.); '*',( *.); '/',(/.)] - -(* The abstract calculator class. Does not use Gtk *) - -class virtual calc = object (calc) - val mutable x = 0.0 - val mutable op = None - val mutable displaying = true - - method virtual set : string -> unit - method virtual get : string - method virtual quit : unit -> unit - method insert s = calc#set (calc#get ^ s) - method get_float = float_of_string (calc#get) - - initializer calc#set "0" - - method command s = - if s <> "" then match s.[0] with - '0'..'9' -> - if displaying then (calc#set ""; displaying <- false); - calc#insert s - | '.' -> - if displaying then - (calc#set "0."; displaying <- false) - else - if not (mem_string ~char:'.' calc#get) then calc#insert s - | '+'|'-'|'*'|'/' as c -> - displaying <- true; - begin match op with - None -> - x <- calc#get_float; - op <- Some (List.assoc c ops) - | Some f -> - x <- f x (calc#get_float); - op <- Some (List.assoc c ops); - calc#set (string_of_float x) - end - | '='|'\n'|'\r' -> - displaying <- true; - begin match op with - None -> () - | Some f -> - x <- f x (calc#get_float); - op <- None; - calc#set (string_of_float x) - end - | 'q' -> calc#quit () - | _ -> () -end - -(* Buttons for the calculator *) - -let m = - [|[|"7";"8";"9";"+"|]; - [|"4";"5";"6";"-"|]; - [|"1";"2";"3";"*"|]; - [|"0";".";"=";"/"|]|] - -(* The physical calculator. Inherits from the abstract one *) - -open GMain - -class calculator ?packing ?show () = - let table = GPack.table ~rows:5 ~columns:4 ~homogeneous:true ~show:false () in - object (calc) - inherit calc - - val label = - let frame = GBin.frame ~shadow_type:`IN () - ~packing:(table#attach ~left:0 ~top:0 ~right:4 ~expand:`BOTH) in - let evbox = GBin.event_box ~packing:frame#add () in - evbox#misc#set_style evbox#misc#style#copy; - evbox#misc#style#set_bg [`NORMAL,`WHITE]; - GMisc.label ~justify:`RIGHT ~xalign:0.95 ~packing:evbox#add () - val table = table - - method set = label#set_text - method get = label#text - method quit = Main.quit - - initializer - for i = 0 to 3 do for j = 0 to 3 do - let button = - GButton.button ~label:(" " ^ m.(i).(j) ^ " ") - ~packing:(table#attach ~top:(i+1) ~left:j ~expand:`BOTH) () in - button#connect#clicked ~callback:(fun () -> calc#command m.(i).(j)); - done done; - ignore (GObj.pack_return table ~packing ~show) - end - -(* Finally start everything *) - -let w = GWindow.window ~auto_shrink:true () - -let applet = new calculator ~packing: w#add () - -let _ = - w#connect#destroy ~callback: Main.quit; - w#event#connect#key_press - ~callback:(fun ev -> applet#command (GdkEvent.Key.string ev); true); - w#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calendar.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calendar.ml deleted file mode 100644 index 233c7449f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calendar.ml +++ /dev/null @@ -1,21 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let window = GWindow.window () in - window#connect#destroy ~callback:Main.quit; - - let calendar = GMisc.calendar ~packing:window#add () in - calendar#connect#day_selected ~callback: - begin fun () -> - let (year,month,day) = calendar#date in - Printf.printf "You selected %d/%d/%02d.\n" - day (month+1) (year mod 100); - flush stdout - end; - - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/clist.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/clist.ml deleted file mode 100644 index f900f1781..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/clist.ml +++ /dev/null @@ -1,51 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let window = GWindow.window ~title:"CList example" ~width:300 ~height:150 () in - window#connect#destroy ~callback:Main.quit; - - let vbox = GPack.vbox ~border_width:5 ~packing:window#add () in - - let hbox = GPack.hbox ~packing:vbox#add () in - let sb = - GRange.scrollbar `VERTICAL ~packing:(hbox#pack ~from:`END) () in - let clist = - GList.clist ~titles:["Ingredients";"Amount"] ~shadow_type:`OUT - ~packing:hbox#add ~vadjustment:sb#adjustment () in - clist#connect#select_row ~callback: - begin fun ~row ~column ~event -> - let text = clist#cell_text row column in - Printf.printf "You selected row %d. More specifically you clicked in column %d, and the text in this cell is %s\n\n" row column text; - flush stdout - end; - - let hbox = GPack.hbox ~packing:vbox#pack () in - - let button_add = GButton.button ~label:"Add List" ~packing:hbox#add () in - button_add#connect#clicked ~callback: - begin fun () -> - List.iter ~f:(fun t -> ignore (clist#append t)) - [ ["Milk"; "3 Oz"]; - ["Water"; "6 l"]; - ["Carrots"; "2"]; - ["Snakes"; "55"] ] - end; - - let button_clear = GButton.button ~label:"Clear List" ~packing:hbox#add () in - button_clear#connect#clicked ~callback:clist#clear; - - let button_hide_show = - GButton.button ~label:"Hide/Show titles" ~packing:hbox#add () in - let flag = ref false in - button_hide_show#connect#clicked ~callback: - begin fun () -> - clist#set_titles_show !flag; - flag := not !flag - end; - - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/combo.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/combo.ml deleted file mode 100644 index 9aff1b320..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/combo.ml +++ /dev/null @@ -1,23 +0,0 @@ -(* $Id$ *) - -open GMain - -let make_arrow_label combo ~label ~string = - let item = GList.list_item () in (* no packing here, it blocks GTK *) - let hbox = GPack.hbox ~spacing:3 ~packing:item#add () in - GMisc.arrow ~kind:`RIGHT ~shadow:`OUT ~packing:hbox#pack (); - GMisc.label ~text:label ~packing:hbox#pack (); - combo#set_item_string item string; - combo#list#add item; - item - -let main () = - let window = GWindow.window ~border_width:10 () in - window#connect#destroy ~callback:Main.quit; - let combo = GEdit.combo ~packing:window#add () in - make_arrow_label combo ~label:"First item" ~string:"1st item"; - make_arrow_label combo ~label:"Second item" ~string:"2nd item"; - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/csview.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/csview.ml deleted file mode 100644 index eaf8de18b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/csview.ml +++ /dev/null @@ -1,155 +0,0 @@ -(* $Id$ *) - -(* A simple CSV data viewer *) - -type data = - { fields : string list; - titles : string list; - data : string list list } - -let mem_string ~char s = - try - for i = 0 to String.length s - 1 do - if s.[i] = char then raise Exit - done; - false - with Exit -> true - -let rec until ~chars ?(escapes="") ?(buf = Buffer.create 80) s = - match Stream.peek s with - Some c -> - if mem_string ~char:c escapes then begin - Stream.junk s; - Buffer.add_char buf (Stream.next s); - until ~chars ~escapes ~buf s - end else if mem_string ~char:c chars then - Buffer.contents buf - else begin - Buffer.add_char buf c; - Stream.junk s; - until ~chars ~escapes ~buf s - end - | None -> - if Buffer.length buf > 0 then raise (Stream.Error "until") - else raise Stream.Failure - -let rec ignores ?(chars = " \t") s = - match Stream.peek s with - Some c when mem_string ~char:c chars -> - Stream.junk s; ignores ~chars s - | _ -> () - -let parse_field = parser - [< ''"'; f = until ~chars:"\"" ~escapes:"\\"; ''"'; _ = ignores >] -> - for i = 0 to String.length f - 1 do - if f.[i] = '\031' then f.[i] <- '\n' - done; - f - | [< f = until ~chars:",\n\r" >] -> f - | [< >] -> "" - -let comma = parser [< '','; _ = ignores >] -> () - -let rec parse_list ~item ~sep = parser - [< i = item; s >] -> - begin match s with parser - [< _ = sep; l = parse_list ~item ~sep >] -> i :: l - | [< >] -> [i] - end - | [< >] -> [] - -let parse_one = parse_list ~item:parse_field ~sep:comma - -let lf = parser [< ''\n'|'\r'; _ = ignores ~chars:"\n\r"; _ = ignores >] -> () - -let parse_all = parse_list ~item:parse_one ~sep:lf - -let read_file file = - let ic = open_in file in - let s = Stream.of_channel ic in - let data = parse_all s in - close_in ic; - match data with - ("i"::fields) :: ("T"::titles) :: data -> - {fields=fields; titles=titles; data=List.map ~f:List.tl data} - | titles :: data -> - {fields=titles; titles=titles; data=data} - | _ -> failwith "Insufficient data" - -let print_string s = - Format.print_char '"'; - for i = 0 to String.length s - 1 do - match s.[i] with - '\'' -> Format.print_char '\'' - | '"' -> Format.print_string "\\\"" - | '\160'..'\255' as c -> Format.print_char c - | c -> Format.print_string (Char.escaped c) - done; - Format.print_char '"' - -(* -#install_printer print_string;; -*) - -open GMain - -let field_widths = - [ "i", 0; - "ATTR", 0; - "NAME", 17; - "NAPR", 8; - "TEL1", 14; - "ZIPC", 12; - "ADR1", 40; - "BRTH", 10; - "RMRK", 20; - "CHK1", 0; - "CHK2", 0; - "CHK3", 0; - "CHK4", 0; - "TIM1", 16; - "TIM2", 16; - "ALRM", 0; - "ATTM", 0; - ] - -let main argv = - if Array.length argv <> 2 then begin - prerr_endline "Usage: csview "; - exit 2 - end; - let data = read_file argv.(1) in - let w = GWindow.window () in - w#misc#realize (); - let style = w#misc#style in - let font = Gdk.Font.load_fontset "-schumacher-clean-medium-r-normal--13-*-*-*-c-60-*,-mnkaname-fixed-*--12-*" in - let w0 = Gdk.Font.char_width font '0' in - style#set_font font; - w#connect#destroy ~callback:Main.quit; - let sw = GBin.scrolled_window ~width:600 ~height:300 ~packing:w#add () in - let cl = GList.clist ~titles:data.titles ~packing:sw#add () in - List.fold_left data.fields ~init:0 ~f: - begin fun acc f -> - let width = try List.assoc f field_widths with Not_found -> -1 in - if width = 0 then - cl#set_column ~visibility:false acc - else begin - if width > 0 then cl#set_column ~width:(width * w0) acc - else cl#set_column ~auto_resize:true acc; - if f = "NAPR" || f = "TIM1" || f = "CLAS" then - cl#set_sort ~auto:true ~column:acc (); - try - let ali = GBin.alignment_cast (cl#column_widget acc) in - let lbl = GMisc.label_cast (List.hd ali#children) in - lbl#set_alignment ~x:0. () - with _ -> - prerr_endline ("No column widget for field " ^ f) - end; - succ acc - end; - List.iter data.data - ~f:(fun l -> if List.length l > 1 then ignore (cl#append l)); - w#show (); - Main.main () - -let _ = main Sys.argv diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/dcalendar.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/dcalendar.ml deleted file mode 100644 index 6128506b4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/dcalendar.ml +++ /dev/null @@ -1,247 +0,0 @@ -(* $Id$ *) - -(* A small calendar *) -(* Needs Unix module, so use with lablgtk_t *) - -open Printf - -type date = { mutable year: int; mutable mon: int; mutable mday: int } - - (* Load the schedule data *) -let calendar_file = Filename.concat (Sys.getenv "HOME") ".camlendar" - -let schedule = - try - let ichan = open_in calendar_file in - let (s : (int * int * int, string) Hashtbl.t) = - Marshal.from_channel ichan in - close_in ichan; - s - with Sys_error msg -> - prerr_endline msg; flush stderr; - Hashtbl.create 13;; - - (* Saves the schedule data when the application terminates *) -at_exit (fun () -> - let ochan = open_out calendar_file in - Marshal.to_channel ochan schedule ~mode: []; - close_out ochan);; - - (* date: Current date initialized to "today" *) -let date = - let tm = Unix.localtime (Unix.time ()) in - { year = 1900 + tm.Unix.tm_year; mon = tm.Unix.tm_mon; mday = 1 } - - - (* previous_month, next_month: change application status *) -let previous_month () = - date.mday <- 1; - if date.mon = 0 then - (date.year <- date.year - 1; date.mon <- 11) - else date.mon <- date.mon - 1 - -let next_month () = - date.mday <- 1; - if date.mon = 11 then (date.year <- date.year + 1; date.mon <- 0) - else date.mon <- date.mon + 1 - - (* leap, mon_name, wday_name: Calendar related function and data *) -let leap year = - (year mod 400 = 0) or - (year mod 4 = 0) & (year mod 100 <> 0) - -let mdays_in_month = [|31; 28; 31; 30; 31; 30; 31; 31; 30; 31; 30; 31|] - -let mon_name = - [|"Jan"; "Feb"; "Mar"; "Apr"; "May"; "Jun"; - "Jul"; "Aug"; "Sep"; "Oct"; "Nov"; "Dec"|] - -let wday_name = - [|"Sun"; "Mon"; "Tue"; "Wed"; "Thu"; "Fri"; "Sat"|] - -let s_normal = 0 and s_focused = 1 and s_planned = 2 -let styles = - let default = (Obj.magic () : GObj.style) in - [| default; default; default |] - - (* class date_button: one button for each day in the month *) -class date_button i (calendar : GPack.table) = - let mday = i + 1 in - - object (self) - val widget = GButton.button ~label: (string_of_int mday) ~show: false () - val mday = mday - val mutable show = false - val mutable have_plan = false - - method widget = widget - method focus_on = - date.mday <- mday; - widget#misc#set_style styles.(s_focused) - method focus_off = - widget#misc#set_style styles.(if have_plan then s_planned else s_normal) - method set_plan = - have_plan <- true; - widget#misc#set_style styles.(s_planned) - method unset_plan = - have_plan <- false; - widget#misc#set_style styles.(s_normal) - - method show wday0 = - if not show then - let top = (mday + wday0) / 7 + 1 - and left = (mday + wday0) mod 7 in - calendar#attach ~left ~top ~expand:`BOTH widget#coerce; - widget#misc#show (); - show <- true - - method hide = - if show then - (widget#misc#hide (); - calendar#remove widget#coerce; - show <- false) - end - -let update_calendar (calendar : GPack.table) (buttons : date_button array) = - let now = Unix.localtime (Unix.gettimeofday ()) in - let _, first = Unix.mktime { now with - Unix.tm_mday = 1; - Unix.tm_mon = date.mon; - Unix.tm_year = date.year - 1900 } in - - (* wday0: day of the week of the zero'th day in the month *) - let wday0 = (first.Unix.tm_wday - 1 + 7) mod 7 in - - let ndays = - if date.mon = 1 & leap date.year then mdays_in_month.(date.mon) + 1 - else mdays_in_month.(date.mon) in - - Array.iter ~f: (fun button -> button#hide) - buttons; - - for i = 0 to ndays - 1 do buttons.(i)#show wday0 done - -let create_GUI () = - - (* views part *) - - let win = - GWindow.window ~title: "Camlendar" ~show: true - ~allow_shrink: false ~allow_grow: false () in - win#event#connect#delete - ~callback: (fun _ -> GMain.Main.quit (); exit 0; false); - - let style = win#misc#style#copy in - styles.(s_normal) <- style; - - let style = style#copy in - style#set_bg [`NORMAL, `NAME "light green"; - `PRELIGHT, `NAME "light green"]; - styles.(s_focused) <- style; - - styles.(s_focused) <- style; - let style = style#copy in - style#set_bg [`NORMAL, `NAME "sky blue"; - `PRELIGHT, `NAME "sky blue"]; - styles.(s_planned) <- style; - - let vbox = GPack.vbox ~packing: win#add () in - let packing = vbox#add in - let toolbar = GButton.toolbar ~style: `TEXT ~packing () in - - let prev = - toolbar#insert_button ~text: "Prev" ~tooltip: "Show previous month" () in - let next = - toolbar#insert_button ~text: "Next" ~tooltip: "Show next month" () in - - let calendar = - GPack.table ~homogeneous: true ~rows: 7 ~columns: 7 - ~border_width: 10 ~row_spacings: 2 ~col_spacings: 2 ~packing () in - - Array.iteri - ~f: (fun i wday -> - ignore (GButton.button ~label: wday - ~packing:(calendar#attach ~top: 0 ~left: i ~expand:`BOTH) ())) - wday_name; - - let buttons = - Array.init 31 ~f: (fun i -> new date_button i calendar) in - - let date_view = GMisc.label ~justify: `CENTER ~packing () in - - let text = GEdit.text ~editable: true ~width: 70 ~height: 50 ~packing () in - - (* Controls part *) - - let save_text () = - let data = text#get_chars ~start: 0 ~stop: text#length in - let key = (date.year, date.mon, date.mday) in - Hashtbl.remove schedule key; - if data <> "" then - (Hashtbl.add schedule ~key ~data; - buttons.(date.mday - 1)#set_plan) - else buttons.(date.mday - 1)#unset_plan in - - let restore_text () = - text#delete_text ~start: 0 ~stop: text#length; - try - text#insert_text ~pos: 0 - (Hashtbl.find schedule (date.year, date.mon, date.mday)); - () - with Not_found -> () in - - let update_date_view () = - date_view#set_text (sprintf "%d %s, %d\n" - date.mday mon_name.(date.mon) date.year) in - - let update_view () = - update_calendar calendar buttons; - update_date_view (); - Array.iteri ~f: (fun i button -> - (try - Hashtbl.find schedule (date.year, date.mon, i + 1); - button#set_plan - with Not_found -> button#unset_plan); - button#focus_off) buttons; - win#set_title (sprintf "Camlendar: %s, %d" - mon_name.(date.mon) date.year) in - - prev#connect#clicked - ~callback: (fun () -> - save_text (); - previous_month (); - - update_view (); - restore_text (); - buttons.(0)#focus_on); - - next#connect#clicked - ~callback: (fun () -> - save_text (); - next_month (); - - update_view (); - restore_text (); - buttons.(0)#focus_on); - - Array.iteri - ~f: (fun i button -> - button#widget#connect#clicked - ~callback: (fun () -> - save_text (); - buttons.(date.mday - 1)#focus_off; - - button#focus_on; - restore_text (); - update_date_view ()); - ()) - buttons; - - update_view (); - buttons.(0)#focus_on;; - -GMain.Main.init (); -print_endline (GtkMain.Main.set_locale ()); -flush stdout; -create_GUI (); -GMain.Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/drawing.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/drawing.ml deleted file mode 100644 index a4623bae0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/drawing.ml +++ /dev/null @@ -1,19 +0,0 @@ -(* $Id$ *) - -open GMain - -let window = GWindow.window ~show:true () - -let w = window#misc#window -let drawing = new GDraw.drawable w - -let redraw _ = - drawing#polygon ~filled:true - [ 10,100; 35,35; 100,10; 165,35; 190,100; - 165,165; 100,190; 35,165; 10,100 ]; - false - -let _ = - window#connect#destroy ~callback:Main.quit; - window#event#connect#after#configure ~callback:redraw; - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/editor.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/editor.ml deleted file mode 100644 index 5e3da80cd..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/editor.ml +++ /dev/null @@ -1,101 +0,0 @@ -(* $Id$ *) - -open GMain - -let file_dialog ~title ~callback ?filename () = - let sel = - GWindow.file_selection ~title ~modal:true ?filename () in - sel#cancel_button#connect#clicked ~callback:sel#destroy; - sel#ok_button#connect#clicked ~callback: - begin fun () -> - let name = sel#get_filename in - sel#destroy (); - callback name - end; - sel#show () - -class editor ?packing ?show () = object (self) - val text = GEdit.text ~editable:true ?packing ?show () - val mutable filename = None - - method text = text - - method load_file name = - try - let ic = open_in name in - filename <- Some name; - text#freeze (); - text#delete_text ~start:0 ~stop:text#length; - let buf = String.create 1024 and len = ref 0 in - while len := input ic ~buf ~pos:0 ~len:1024; !len > 0 do - if !len = 1024 then text#insert buf - else text#insert (String.sub buf ~pos:0 ~len:!len) - done; - text#set_point 0; - text#thaw (); - close_in ic - with _ -> () - - method open_file () = file_dialog ~title:"Open" ~callback:self#load_file () - - method save_dialog () = - file_dialog ~title:"Save" ?filename - ~callback:(fun file -> self#output ~file) () - - method save_file () = - match filename with - Some file -> self#output ~file - | None -> self#save_dialog () - - method output ~file = - try - if Sys.file_exists file then Sys.rename ~src:file ~dst:(file ^ "~"); - let oc = open_out file in - output_string oc (text#get_chars ~start:0 ~stop:text#length); - close_out oc; - filename <- Some file - with _ -> prerr_endline "Save failed" -end - -let window = GWindow.window ~width:500 ~height:300 ~title:"editor" () -let vbox = GPack.vbox ~packing:window#add () - -let menubar = GMenu.menu_bar ~packing:vbox#pack () -let factory = new GMenu.factory menubar -let accel_group = factory#accel_group -let file_menu = factory#add_submenu "File" -let edit_menu = factory#add_submenu "Edit" - -let hbox = GPack.hbox ~packing:vbox#add () -let editor = new editor ~packing:hbox#add () -let scrollbar = GRange.scrollbar `VERTICAL ~packing:hbox#pack () - -open GdkKeysyms - -let _ = - window#connect#destroy ~callback:Main.quit; - let factory = new GMenu.factory file_menu ~accel_group in - factory#add_item "Open..." ~key:_O ~callback:editor#open_file; - factory#add_item "Save" ~key:_S ~callback:editor#save_file; - factory#add_item "Save as..." ~callback:editor#save_dialog; - factory#add_separator (); - factory#add_item "Quit" ~key:_Q ~callback:window#destroy; - let factory = new GMenu.factory edit_menu ~accel_group in - factory#add_item "Copy" ~key:_C ~callback:editor#text#copy_clipboard; - factory#add_item "Cut" ~key:_X ~callback:editor#text#cut_clipboard; - factory#add_item "Paste" ~key:_V ~callback:editor#text#paste_clipboard; - factory#add_separator (); - factory#add_check_item "Word wrap" ~active:false - ~callback:editor#text#set_word_wrap; - factory#add_check_item "Read only" ~active:false - ~callback:(fun b -> editor#text#set_editable (not b)); - window#add_accel_group accel_group; - editor#text#event#connect#button_press - ~callback:(fun ev -> - let button = GdkEvent.Button.button ev in - if button = 3 then begin - file_menu#popup ~button ~time:(GdkEvent.Button.time ev); true - end else false); - editor#text#set_vadjustment scrollbar#adjustment; - window#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/entry.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/entry.ml deleted file mode 100644 index 30f3c3dd8..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/entry.ml +++ /dev/null @@ -1,48 +0,0 @@ -(* $Id$ *) - -open Printf -open GMain - -let enter_callback entry = - printf "Entry contents: %s\n" entry#text; - flush stdout - -let entry_toggle_editable button entry = - entry#set_editable button#active - -let entry_toggle_visibility button entry = - entry#set_visibility button#active - -let main () = - - let window = GWindow.window ~title: "GTK Entry" ~width: 200 ~height: 100 () in - window#connect#destroy ~callback:Main.quit; - - let vbox = GPack.vbox ~packing: window#add () in - - let entry = GEdit.entry ~max_length: 50 ~packing: vbox#add () in - entry#connect#activate ~callback:(fun () -> enter_callback entry); - entry#set_text "Hello"; - entry#append_text " world"; - entry#select_region ~start:0 ~stop:entry#text_length; - - let hbox = GPack.hbox ~packing: vbox#add () in - - let check = GButton.check_button ~label: "Editable" ~active: true - ~packing: hbox#add () in - check#connect#toggled ~callback:(fun () -> entry_toggle_editable check entry); - - let check = - GButton.check_button ~label:"Visible" ~active:true ~packing:hbox#add () in - check#connect#toggled - ~callback:(fun () -> entry_toggle_visibility check entry); - - let button = GButton.button ~label: "Close" ~packing: vbox#add () in - button#connect#clicked ~callback:window#destroy; - button#grab_default (); - - window#show (); - - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/events.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/events.ml deleted file mode 100644 index 91a9872af..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/events.ml +++ /dev/null @@ -1,25 +0,0 @@ -(* $Id$ *) - -open GMain - -let _ = - let window = GWindow.window () in - window#connect#destroy ~callback:Main.quit; - - let text = GEdit.text ~editable:true ~packing:window#add () in - text#event#connect#button_press ~callback: - begin fun ev -> - GdkEvent.Button.button ev = 3 && - GdkEvent.get_type ev = `BUTTON_PRESS && - begin - let pos = text#position in - GdkEvent.Button.set_button ev 1; - text#event#send (GdkEvent.coerce ev); - Printf.printf "Position is %d.\n" text#position; - flush stdout; - text#set_position pos; - true - end - end; - window#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fifteen.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fifteen.ml deleted file mode 100644 index efdf51fc2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fifteen.ml +++ /dev/null @@ -1,97 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GObj -open GMain - -class position ~init_x ~init_y ~min_x ~min_y ~max_x ~max_y = object - val mutable x = init_x - val mutable y = init_y - method current = (x, y) - method up () = if y > min_y then y <- y-1 else (); (x, y) - method down () = if y < max_y then y <- y+1 else (); (x, y) - method left () = if x > min_x then x <- x-1 else (); (x, y) - method right () = if x < max_x then x <- x+1 else (); (x, y) -end - -let game_init () = (* generate initial puzzle state *) - let rec game_aux acc rest n_invert = - let len = List.length rest in - if len=0 then - if n_invert mod 2 = 0 then - acc (* to be solvable, n_invert must be even *) - else - (List.hd (List.tl acc))::(List.hd acc)::(List.tl (List.tl acc)) - else begin - let rec extract n xs = - if (n=0) then (List.hd xs, List.tl xs) - else - let (ans, ys) = extract (n-1) (List.tl xs) in - (ans, List.hd xs :: ys) in - let ran = Random.int len in - let (elm, rest1) = extract ran rest in - let rec count p xs = match xs with - [] -> 0 - | y :: ys -> let acc = count p ys in - if p y then 1+acc else acc - in - let new_n_invert = count (fun x -> elm > x) acc in - game_aux (elm :: acc) rest1 (n_invert+new_n_invert) - end in - let rec from n = if n=0 then [] else n :: from (n-1) in - game_aux [] (from 15) 0 - -let _ = Random.init (int_of_float (Sys.time () *. 1000.)) -let window = GWindow.window () -let _ = window#connect#destroy ~callback:GMain.Main.quit - -let tbl = GPack.table ~rows:4 ~columns:4 ~homogeneous:true ~packing:window#add () -let dummy = GMisc.label ~text:"" ~packing:(tbl#attach ~left:3 ~top:3) () -let arr = Array.create_matrix ~dimx:4 ~dimy:4 dummy -let init = game_init () -let _ = - for i = 0 to 15 do - let j = i mod 4 in - let k = i/4 in - let frame = - GBin.frame ~shadow_type:`OUT ~width:32 ~height:32 - ~packing:(tbl#attach ~left:j ~top:k) () in - if i < 15 then - arr.(j).(k) <- - GMisc.label ~text:(string_of_int (List.nth init i)) - ~packing:frame#add () - done -let pos = new position ~init_x:3 ~init_y:3 ~min_x:0 ~min_y:0 ~max_x:3 ~max_y:3 - -open GdkKeysyms - -let _ = - window#event#connect#key_press ~callback: - begin fun ev -> - let (x0, y0) = pos#current in - let wid0 = arr.(x0).(y0) in - let key = GdkEvent.Key.keyval ev in - if key = _q || key = _Escape then (Main.quit (); exit 0) else - let (x1, y1) = - if key = _h || key = _Left then - pos#right () - else if key = _j || key = _Down then - pos#up () - else if key = _k || key = _Up then - pos#down () - else if key = _l || key = _Right then - pos#left () - else (x0, y0) - in - let wid1 = arr.(x1).(y1) in - wid0#set_text (wid1#text); - wid1#set_text ""; - true - end - -let main () = - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixed_editor.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixed_editor.ml deleted file mode 100644 index 1cde124c7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixed_editor.ml +++ /dev/null @@ -1,279 +0,0 @@ -open Gdk -open Gtk -open GObj -open GMain - -let dnd_source_window () = - let window = GWindow.window ~position:`MOUSE () in - let vbx = GPack.vbox ~border_width:10 ~packing:window#add () - in - let evb = GBin.event_box ~border_width:0 ~packing:vbx#add () in - let frm = GBin.frame ~shadow_type:`OUT ~packing:evb#add () in - let lbl = GMisc.label ~text:"hello" ~packing:frm#add () in - let lbl2 = GMisc.label ~text:"drag from here!" ~packing:vbx#add () in - let targets = [ { target = "STRING"; flags = []; info = 0} ] in - begin - window#show (); - evb#drag#source_set targets ~modi:[`BUTTON1] ~actions:[`COPY]; - evb#drag#connect#data_get ~callback: begin - fun _ data ~info ~time:_ -> - data#set ~typ:data#target ~format:0 ~data:"hello! " - end - end - -let corner_width = 7 -let corner_height = 7 - -type drag_action_type = - GB_DRAG_NONE - | GB_MIDDLE - | GB_TOP - | GB_BOTTOM - | GB_LEFT - | GB_RIGHT - | GB_TOP_LEFT - | GB_TOP_RIGHT - | GB_BOTTOM_LEFT - | GB_BOTTOM_RIGHT - -let get_position_in_widget w ~x ~y ~width ~height = - if (x <= corner_width) then - if (y <= corner_height) then - GB_TOP_LEFT - else if (y >= height-corner_width) then - GB_BOTTOM_LEFT - else GB_LEFT - else if (x >= width-corner_width) then - if (y <= corner_height) then - GB_TOP_RIGHT - else if (y >= height-corner_width) then - GB_BOTTOM_RIGHT - else GB_RIGHT - else if (y <= corner_height) then - GB_TOP - else if (y >= height-corner_width) then - GB_BOTTOM - else GB_MIDDLE - -class drag_info = object - val mutable drag_action = GB_DRAG_NONE - val mutable drag_offset = (0, 0) - val mutable toimen = (0, 0) - val mutable drag_widget = None - method drag_action = drag_action - method drag_offset = drag_offset - method toimen = toimen (* coord. of opposite corner *) - method set_drag_widget (w : GObj.widget) = begin - match drag_widget with - None -> begin - GMain.Grab.add w; - drag_widget <- Some w; - () - end - | Some w -> () - end - method unset_drag_widget () = begin - match drag_widget with - Some w -> begin - GMain.Grab.remove w; - drag_widget <- None; - () - end - | None -> () - end - method set_drag_offset ~x ~y = drag_offset <- (x, y) - method set_drag_action (w : Gdk.window) ~x ~y = - begin - let (x0, y0) = Window.get_position w in - let (width, height) = Window.get_size w in - drag_action <- get_position_in_widget w ~x ~y ~width ~height; - let (x1, y1) = (x0+width, y0+height) in - toimen <- - match drag_action with - GB_TOP_LEFT -> (x1, y1) - | GB_BOTTOM_LEFT -> (x1, y0) - | GB_TOP_RIGHT -> (x0, y1) - | GB_BOTTOM_RIGHT -> (x0, y0) - | GB_TOP -> (x0, y1) - | GB_BOTTOM -> (x0, y0) - | GB_LEFT -> (x1, y0) - | GB_RIGHT -> (x0, y0) - | _ -> (-1, -1) - end - method unset_drag_action () = drag_action <- GB_DRAG_NONE -end - - -let to_grid g x = x - (x mod g) - -let to_grid2 g (x, y) = (to_grid g x, to_grid g y) - -class fix_editor ~width ~height ~packing = - let info = new drag_info in - let fix = GPack.fixed ~width ~height ~packing () in - let _ = fix#misc#realize () in - let fix_window = fix#misc#window in - let fix_drawing = new GDraw.drawable fix_window in - - object (self) - inherit GObj.widget fix#as_widget - val mutable grid = 1 - method set_grid g = - if (grid != g) then begin - let pix = - GDraw.pixmap ~window:fix ~width:g ~height:g ~mask:true () in - let c = fix#misc#style#bg `NORMAL in - pix#set_foreground (`COLOR c); - pix#rectangle ~filled:true ~x:0 ~y:0 ~width:g ~height:g (); - pix#set_foreground `BLACK; - pix#point ~x:0 ~y:0; - Gdk.Window.set_back_pixmap (fix#misc#window) (`PIXMAP pix#pixmap) - end; - grid <- g - - method new_child ~name ~x ~y ~width ~height ~callback = - let evb = GBin.event_box ~border_width:0 ~packing:fix#add () in - let lbl = GMisc.label ~text:name ~width ~height ~packing:evb#add () in - evb#misc#realize (); - evb#misc#set_geometry ~x ~y (); - self#connect_signals ~ebox:evb ~widget:lbl#coerce ~callback; - () - - method private connect_signals - ~ebox:(ebox : GBin.event_box) ~widget:(widget : widget) ~callback:cbfun = - let drawing = new GDraw.drawable (ebox#misc#window) in - let draw_id = ref None in - let exps_id = ref None in - let on_paint _ = - let (width, height) = Window.get_size (ebox#misc#window) in begin - drawing#set_foreground `BLACK; - drawing#rectangle ~filled:true ~x:0 ~y:0 - ~width:corner_width ~height:corner_height (); - drawing#rectangle ~filled:true ~x:(width-corner_width) ~y:0 - ~width:corner_width ~height:corner_height (); - drawing#rectangle ~filled:true - ~x:(width-corner_width) - ~y:(height-corner_height) - ~width:corner_width ~height:corner_height (); - drawing#rectangle ~filled:true - ~x:0 - ~y:(height-corner_height) - ~width:corner_width ~height:corner_height (); - drawing#rectangle ~filled:false - ~x:0 ~y:0 ~width:(width-1) ~height:(height-1) (); - end - in - ebox#event#connect#button_press ~callback: - begin fun ev -> - let bx = int_of_float (GdkEvent.Button.x ev) in - let by = int_of_float (GdkEvent.Button.y ev) in - info#set_drag_action (ebox#misc#window) ~x:bx ~y:by; - info#set_drag_offset ~x:bx ~y:by; - true - end; - ebox#event#connect#motion_notify ~callback: - begin fun ev -> - info#set_drag_widget ebox#coerce; - let action = info#drag_action in - let (mx, my) = fix#misc#pointer in - let (ox, oy) = info#drag_offset in - begin match action with - GB_MIDDLE -> - let (nx, ny) = to_grid2 grid (mx-ox, my-oy) in - ebox#misc#set_geometry ~x:nx ~y:ny (); - if cbfun ~x:nx ~y:ny ~width:(-2) ~height:(-2) then - () - else (* should we undo ? *) () - | GB_DRAG_NONE -> () (* do nothing *) - | GB_TOP_LEFT | GB_BOTTOM_LEFT - | GB_TOP_RIGHT | GB_BOTTOM_RIGHT -> - let (toi_x, toi_y) = info#toimen in - let (mx, my) = to_grid2 grid (mx, my) in - let (lx, rx) = - if mx - let (lx, toi_y) = info#toimen in - let my = to_grid grid my in - let (ty, by) = if my - let (toi_x, ty) = info#toimen in - let mx = to_grid grid mx in - let (lx, rx) = if mx - info#unset_drag_action (); - info#unset_drag_widget (); - true - end; - exps_id := Some (ebox#event#connect#after#expose - ~callback:(fun _ -> on_paint(); false)); - draw_id := Some (ebox#misc#connect#draw ~callback:on_paint); - () - initializer - fix#drag#dest_set ~actions:[`COPY] - [ { target = "STRING"; flags = []; info = 0} ]; - fix#drag#connect#data_received ~callback: begin - fun context ~x ~y data ~info ~time -> - let name = data#data in - let _ = self#new_child ~name ~x ~y ~width:32 ~height:32 - ~callback:(fun ~x ~y ~width ~height -> true) in -(* Printf.printf "%s %d %d\n" (data#data) x y; - flush stdout; *) - context#finish ~success:true ~del:false ~time; - end; - () - end - -(* the following is for test only *) -let window1 () = - let window = GWindow.window () in - let _ = window#connect#destroy ~callback: Main.quit in - let fix = new fix_editor ~width:640 ~height:480 ~packing:window#add in - fix#set_grid 5; - let setter = fix#new_child ~name:"hello" ~x:100 ~y:200 ~width:32 ~height:32 - ~callback:begin fun ~x ~y ~width ~height -> - (* Printf.printf "name=%s, x=%d, y=%d, width=%d, height=%d\n" - "hello" x y width height; - flush stdout; *) - true - end in - window#show (); - () - - - -let main () = - window1 (); - dnd_source_window (); - Main.main () - -let _ = main () - -(* Todo - - change mouse cursor - resize fixed itself - remove_child - (drag and) drop - -*) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixpoint.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixpoint.ml deleted file mode 100644 index c33b74d5d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixpoint.ml +++ /dev/null @@ -1,30 +0,0 @@ -(* $Id$ *) - -open GMain - -let rec fix ~f ~eq x = - let x' = f x in - if eq x x' then x - else fix ~f ~eq x' - -let eq_float x y = abs_float (x -. y) < 1e-13 - -let _ = - let top = GWindow.window () in - top#connect#destroy ~callback:Main.quit; - let vbox = GPack.vbox ~packing: top#add () in - let entry = GEdit.entry ~max_length: 20 ~packing: vbox#add () in - let tips = GData.tooltips () in - tips#set_tip entry#coerce ~text:"Initial value for fix-point"; - let result = - GEdit.entry ~max_length: 20 ~editable: false ~packing: vbox#add () in - - entry#connect#activate ~callback: - begin fun () -> - let x = try float_of_string entry#text with _ -> 0.0 in - entry#set_text (string_of_float (cos x)); - let res = fix ~f:cos ~eq:eq_float x in - result#set_text (string_of_float res) - end; - top#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/hello.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/hello.ml deleted file mode 100644 index 15ede9a49..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/hello.ml +++ /dev/null @@ -1,18 +0,0 @@ -(* $Id$ *) - -open GMain - -let window = GWindow.window ~border_width: 10 () - -let button = GButton.button ~label:"Hello World" ~packing: window#add () - -let main () = - window#event#connect#delete - ~callback:(fun _ -> prerr_endline "Delete event occured"; true); - window#connect#destroy ~callback:Main.quit; - button#connect#clicked ~callback:(fun () -> prerr_endline "Hello World"); - button#connect#clicked ~callback:window#destroy; - window#show (); - Main.main () - -let _ = Printexc.print main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image.ml deleted file mode 100644 index faf82cf44..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image.ml +++ /dev/null @@ -1,67 +0,0 @@ -(* $Id$ *) - -open GMain -open Gdk - -(* load image *) -let buf = String.create (256*256*3) -let ic = open_in_bin "image256x256.rgb" -let _ = - really_input ic ~buf:buf ~pos:0 ~len:(256*256*3); - close_in ic - -let rgb_at x y = - let offset = (y * 256 + x) * 3 in - (int_of_char buf.[offset ], - int_of_char buf.[offset+1], - int_of_char buf.[offset+2]) - -(* let id = Thread.create GtkThread.main () *) - -(* Choose a visual appropriate for RGB *) -let _ = - Gdk.Rgb.init (); - GtkBase.Widget.set_default_visual (Gdk.Rgb.get_visual ()); - GtkBase.Widget.set_default_colormap (Gdk.Rgb.get_cmap ()) - -(* We need show: true because of the need of visual *) -let window = GWindow.window ~show:true ~width: 256 ~height: 256 () - -let visual = window#misc#visual - -let color_create = Truecolor.color_creator visual - -let w = window#misc#window -let drawing = new GDraw.drawable w - -let _ = - window#connect#destroy ~callback:Main.quit; - - let image = - Image.create ~kind: `FASTEST ~visual: visual ~width: 256 ~height: 256 - in - - let draw () = - for x = 0 to 255 do - for y = 0 to 255 do - let r,g,b = rgb_at x y in - Image.put_pixel image ~x: x ~y: y - ~pixel: (color_create ~red: (r * 256) ~green: (g * 256) ~blue: (b * 256)) - done - done - in - - let display () = - drawing#image image ~xsrc:0 ~ysrc:0 ~xdest:0 ~ydest:0 ~width:256 ~height:256 - in - - draw (); - - window#event#connect#after#expose ~callback: - begin fun _ -> - display (); false - end; - (* Thread.join id *) - - window#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image256x256.rgb b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image256x256.rgb deleted file mode 100644 index 25d499594..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image256x256.rgb +++ /dev/null @@ -1,19 +0,0 @@ -”·â•ºÝ›±Ï“­ÐŸÒŸ¤ÃŸ¦Î¤¦Ûª¤ÎªªÚ¯ž×¤•Ð¡™Ô±¬â­©Þ®§çž®Ðš¶É”¸Ë¡¶¼¥®Å¢³Ó ´Îª½Æ¨¼Ó¬·Ó¶´ÏµÀÆ´°¼¬¾À·³ÄÄö¾½ÂÇÀ¼¿½·ÆĹÑÆÁÂÏ·ÃÌÅÍÉÙ¼ÍÓ¿ÊÁÆÏÇÄãÍÕßÏØÕÍÎÜÌÇãÑÑâÙÔ×ÚÈâÈÔÜÄÌØÈÒÒÇÍ×ÃÅÛÁÍáÇËàÊËêËÚð½×ïÅáíËÞõ¼ñø¿âã·Úæ¾ÜÙÈáâÅÜÙÃÖ×®Ö̳ÞȱØÉ·ÍÔ²ÑØ«ÑÑ¡Î͎ÒܗÔ،à͑ÖʏϼƒÉ¼ˆÎ¼ˆÝÁÔËzãÇwØɀÚÆ{âÎçӉÝׅáׂÖÜÓފÙԓØ،Ó؂Îá†ÎÒ|ÛàsÓÛzÞ×ráÙyàÔs×Üi×ØgäÆkåÑoÜÏ_áÍdàÈR߸C׸?Ö´GÙ°WÚ°Kç¸EÚ·YÜÊ]ÞÂOÕ¿;Ù½@ÞÃHâË9íÇ<éË@ðÇ8éÉAè´@æ·AòÌ9ÝÄ7é´@ܲ?Þ½Eä¯CÙ²RάLЯPÒ¡RЩ]̨RÀ¿UÀ²XÉ©FÌ´JϱPŹFËÁJÄ¿FÆÄQȼDÒ°OÔ­DدHÒ³PѵPɶYÐÄ^Ë¿WÙ¬PΞ[ѧWتOˬWͨY͘ZΝdØ£ZÌ·XÁ°EŹPε\Ï®N½»T½³Y´ÃY¶¸N¹¶D°³S±¨Y«¨Mª¬U¦¬[§®@ª®T ¯M¥¢M£žZ œG¬‘E£‘K¥Y¢ŒK·[¨…S¦—EžN§`¡–R˜XŸƒ[‘†Qš‚Sš‘R™‡U§€W©€Tœ‡J¢~Qœ~C–tO”iL•rS”tN©lPªoJ¢zT¯pB¥qIž[M lC«gC¤lD±cC³YTÁSI¸OQ´IBÀIE»ZK»OE¸QH°WU¬TK«QG¹VK®TGºV?¬MD¶Z[¾MGÂUK»ZK²QO½NX¸JZÁHP³KV½J[¼ESÀF]Ä@WÆ;VÆ;\·àš´Ù—«Ò”¬Õ™ Î£¥Ê¥±Ë¡­Ø¤«Ñª«Ù¬¤Ò¦›Ñ¯šÝ¬ ×«¦×¦§Û›«Êž¸Å—®Æ ²À§¾Èª¹Î±¾ÅªÀÆ£Æ˨Á͸¹Ç½¼½¾·¸®²¼½µ»½Â²¼È³ÄÄÀÍ·ÂÌ»ÀǽÀÂË¿ÁÀÃÁÃÑÌÐÍÅÐÉÈÞËËÞÀÓßËÐØÌÇäοáÔÄÕÖÒÚÑÍÐÎÑÓËËÑËÐÑÒÆÖÇÄØËÓÙÄÑÞÊÙèÉÛò½á÷ÃÛîÄãö½ëõ¶èé´ÚáÁåݸáá¾ÜØ»ÞׯÓ˳ÒƸÊɳÏÑ°ÍÈ£Ç͝Æ֙È׏ÎƖÙŌÔ•ÌŏÐʖϾÌȊÚσäÉ~ÝÆxÝÆzè׃ãÖ~ßà…Ù܁Ù߈ÑیÑˎÎבÏׅÎÕxÓØyÙÏÙÔzÞØnßÚmÔânÙØmÙÑfèÓpÚÕmÝÉjèÂ_ã¾Oç·Oä¹IزUÓ¯VÙºQâ»Kß½MÖÈVÓÁP×À@àÁ>ä¾=ðÀ;ñÌEîÒ8íÌ4êË@ïºDêÀCëÄ4íÄ9ÝÀ8ܹ?æ´BÝ«RݧPѲIË®SØ®QÔ¤\ϵQõUϯLÏ«PβDĵDƶ?ηHÒ±RɺKDZRÏ·K̼GЯHÒ¶HÌ®V׿\ÖÀRÛ±XѨUП[Æ OÀ¤YɬTҝS֟SÛ§PÕ®ZÔ´WƱIʺLβZÉ»bÅ´Z»¸^±¹U¹ªHº¬D±ªAª¨I±­U°®Q­©Q œG¨¡Q¦¤J¤—G˜N£‹O¦‹Q£ŽO ŠP°„W®ŒQ¬™Y¦•O¨’N¦”\š–Z›”P R™€SœY›ƒU¢€X¥‡R›zL zW¤x\¡PœqYšmR›oP›rS©oN©lIŸvG¦oLŸaW™]T¨fL©jD³n=¶bD²\C»^I´OR½HJ¸HH¿RFÆJG¼EV²SI«XH©TL´LO¾MBºU9ÀU@·VO¿MAÄUAÃVI·ML¼LV³H\³GZ·PTÂKZ¼IUÈMTÈ@Y½ARº9V“°Ù¤ºÙ‘«Õ‹©×™ÐŸ¤ÍŸ¦Ñ®´Õ²¦Î¨¤Ð´¤Ô£¥Ï«£Ø©«Ø±¢Û¯¨Ð¬¹Ô¢·É¢»Å«³Ã›ºÁ¡·Ð¦ÂÌ©ÄĨ½À©ÉÏ°Èɶ»¸³¼¸½º³³¼°¶Ã²¼Â¸¸Î»ËÇÿĺÏÅÄÃÎÁÂÀËÈÇÐÒÃÈÌÌÄÔ×¾ÇÑÀÓÛÌÊ×ÔÃÏÑ¿ÙÑÀàÓÊÙÎ×ÒÊÔÖÎÍÚÎÑÔÜÈÐÉÁÓÓÔÕÔ×èÈàæÍáêÉßô»ÚóÂÞî¶êõµçñ¸åëÅÚé´àáÀáݳÛÛ©äÙ«ÒÇ´Ôη×ĹÉ΢ÐŞÓєØΓÏѕàЌÔŠÒˆÓƂÔÀ‡ÙĂßÈzÞÉ|äÌnÛØwíàuèÚuÕêzÜâ†ß҆×уÑבÙӉÏΊÓ͇ÓփÜÔsåڀßÏzÚÞjàÐqæâ}êÛlèÏuéÊqÝÈ[áÅ^àÊLÞÄIÞÂLÕ¿Tà­RÔ»RæÉXØ¿X×ÄIãÀFåÃJåÁJíÈIíËD÷ÉHõÈ:ëÕ9ôÂ9ö¿Fä½7îÇ7á·2áÆ?ç¾FæªKàªWÞ TÒ­VÒ­LΞ]֝^Ò¨Pö^Á§O̳T϶KÏ´MʼBѼIÖ»Kʱ?̯JÕ¯?Ë­FÚ¨Kׯ?Ú¦BÜ´NݲSß°K΢IÏ¥NͪNÆ®OÒ¯JÕ¦LÙ¨IÍ­NѱRŶT·RÄ´O¾º^ǺSÁ²Zµ»Q¯²O·©@¿¡G¼¯9°¤?¨ª<²­F¯¥A² E«–B¢ E®•@¨šQ¨‰R‹N©•G¡‘K¥‡Q®’P°ŠD­N¨K¥X™ŒU —N›“Y—Š^ ‰`£_ Xœ†\ŸYœ‡Z£ƒM“zV™}UœwZ˜iM’jR¢lU dJ qV¡kP£]L“W_£`W iLª\M´YT³\O´PQ²RSÂJJ¹DEÂGD·MT·EI²FU¦[O¤GR­BN±MHºJCºZ<°_CÄ]<ÊNBÇKEÁTK¿O[¶N\ÃLMÂGOÃGPÃDWÇJLË:YÄ8Pº4\˜²Þ³Ý™²Ô’¢ÐšªÙ¡ Ûª¯Ý­±Øµ©Ì³£Ð·«Ñ®¦Ó¶¥Ù´©Ô±ºÈ±¹Ë®¸É±¶Å¨¯Í¦¹Ë¶ÏžÁÅ¡ºÆ¢»Ä¬ÂħÇÆ«Ì»¸¿¶½»¼½¾³º½³´Â³µÌ¹»ÈµÂÑÀ¿Ì¹ÍÀ·ÎĹϼÁÓÅÍ×ÅÍÔËÌÒÍÃÍÈÄËÃÔÂÌÖÄËÖÅÛ×ÌÙÏÎÝÑÐÙÌÉÑÏÍÚÛÁ××ÍÐËÈÒÍÍ×ÔÛçÍÖðÂÝéÃáîÁáñ·Úì·áëµìè¾ìè½ãæ¸ãÛ´ÞÔµáÛ¯ÝÔªÜϯØȵÖÆ°ÎÀ´ÒȨá̦ÞĒÝ΋×ʋÏϒÐˊÖŅÕÇÐÒsØÒpæØqä×tåÑtá×vßäuÙâuÕÚnßÕwÒځÔцÒ̋à̀äׂÜрåЁàÓwæÍ{âÕvâÝ|ìÚ{ïßyéÛoÞÜbâÔYêË\àÅWá¿TÛÀUݶSÞ»NÜÃHÞÆS×ÉVÚÁIáÂPê¹EåÆ@ëÆHõÈN÷ÅBíËHòÐCêÓ?íÆCéÊ=å¼9æ¹5ã»Bæ°IÞ®NÔ«\Ó¤YÚ \Ó§UÌ®YΣQÒ¡^ɪ]ά_ëXŲPÉ·Jз@кDÖ³HÒ¸DÌ­>̬AÍ®:׫AÓ­7ݦ;ÚµGÙ³JÜ®RØ­IϬRÇ­RÒ«JÕ²HÒ²SÔ¨NЫKÖ«MѸWÄ·P¼ÃV¼ÄY·ÇO¾¾PĽN¸µF³­<³¡?­©:·¦9·¡:±ž=µ˜Aº¢7µ“6¯’9´“B§ŠH¢ŠG ŒE§‡> ’E¦”Iª”@¦’=¬C¡”Qž”X’ŒW”“W•T™„_¤Ž]¤‘b£‹dž‹W£ˆO ‰OžŠS“zP–ƒP“zQ”sS—jJsS“lV›hWœ\Y—b\›WY•SY]R¨RT¯RU®PT´MM¶KN½DJ½GMÄFL¶MN®HF¥KOªMU¯DG§EI¤GG®NCµMI·Y=´S@¾QD¼QNÉTUÅNZÅSUÀTXÀCJÀ>IÉCPÊIYÊAQÁ4\¿.Xž·Û ¶à’³à—ªÎ¡¤Ö¥¦Ó¢²Ô±¦Ó¯©Õ©°Í¢­Ô©®Õ¥£Ó§¦Õ«±Ì¯¸Ã¯»Å°ÀǬ»Ä¥®¿¦¶½¬À¾¥´É¨º½¡½Â¬Éƶ¾½ÄË®¼º­ºÊ¶»Ã´µ¿²¾¸°¹Æ·¿Ê¬¼Ë¶ÄȮøÓü˾ÇÔÏÌÜÅÅÊÊÂÃÃÆÇÐÊÏÆÒËËÒÊÏØÂØÌËÖÒÐÛÒÀÛËÊÐÐÂÈÕÎÚÑÎÞÃÏÛÌÞâÌÏçÊÙèËØñ¿ãï®ãò³àë½äá¿Þí¿ßß·äÙ±ßÙµéβÝÒ³ê̲ÞÄ­ÒÍ­Ñ˟ÙÍ¥ØƟÙĒÞ•ÐҋÜӈÍАÖƉÑÊ}ÍÖÜàqÕßtÞÙsèà|àä|åÙtÝè}àár×âvÑÚ}Ú×~ÓԃàցÞÓ}ÜàˆÔÖ}â×qá×oßÓpíâ{èãzêáwïÛlçÓaÜÖaÚÓWÒÊdÞÃ`Ó¾_áÅRãºKÖ·Kæ·UÛµGéÇGæ´Hã¹Iä¿CãÂLîÃIéÊEçÉMíÑCéÂ@èÈJí½AÝÅDâÁ<ç±JåºBÚ©DÖ²OÚ­PÞ¬[Þ«OϦSɱQÌ°Z¿¨gÀ§UDzYDzRɲKʹPÑ¿?×·?ر7ϸ?Á¡@Í¥?Í«A՞@Ôª4Õ­Iß­HÖ·CÌ´LͦQÆ®[ȪVƪFМGʧIӞAͨHõM¿¸KÀ¶NɳMŶQ»ÄBÁ·?²µB¬­=ª¨<² ;µ£2°¤<¢:¼¥=¼A³œ;§—F°C³–N ‡L©•Dž‹E¡ŠF«–;´‘5©’G¦—O¥˜K—U””W—“R’`—ƒ[˜_ž‘b“]š™Mœ†WŸŠT‘ˆU‘yWtMyP¡rKœmN£aR¡^Q–fV `YšZW”Z]¤]Q©cL¨TU´QL·MW°QT³OF²OS³UK¿OX¼ET°JU¸HZ®JW´FY¬NÁ=FÍ:TÁBTÌ;ZÁ6[Ê4Y‘Âט¼Þ±ä˜¦Û—«ßš°Ö¢´Õ£©Û¡µÙ¢µÒ£´Ï¥¨Ë«³Ñ¡°Ó¬¸Ó·¼Ç¯·Ä¡¼Ì›²È´Ä©±¿¨¿¹°·º©³Æ³¼º«Æµ»Å­Ãȱ»Ê«¼Æ«½ºµ³¸¶¼Á²´½³Ä®ȿ¬¾Ê±ÄÆ·Áº¹É¾ÌÖÊÒ×ÐÆËØ¿ÉÎÄØÐÅÕÅÎÕÆØÌÌÑÍÐØÆÙÏÄÞÆÇÕÂÑÌÅÐÊÕÌ×ÎÃÜÀÔß¾ÔàÌÙëÏÒíÉÜî¹Úã±âç¸Ýíµåä´àã¸êá¬èß«ïÖªéÌ«àѧçÏ©äʨÙƛÚĘçË¡àÏ àɑãΒÙ͔ÓԛÏˑÏэÓ҃ÒáƒÕÞÛæ‡ÞÜØá€ÚázÞßpßìv×ëwÙ݅Üá‡ÓÕ~Õ׀ÒÕ{ÔۈÖç‡ÜîyÖç{åé‚æàxàäyàÞyçãyïÚqìÕnßÔlÔÈdѾcÕ¶hÔ»^Û»XÖ»SÙ¾XܱLä²Jë¿Lì´Eå¹HàºMâÌMäËQçÏIñÏPìÑHäÄMìÃAæÁ>ãÂAàÄMà¸Hå­LÙ­?à´RÕ¯XÓ®UÙ¬VÛ¦cÍ®_˹`Áµc̳`ѨKʪDиIÔ·DǵIʳIж:³C¢JÅ¡RÒ£IÕ¦Eʨ=ʬLÖ¯QѪCÆ®FÆ­DѧRÄ¥IğLęKš<̧CÆ­;êAɯ9ʨ7ƲF¾·MþEÀº?¶µ4º°3±§1±Ÿ7±œ.·‘/—2´Ÿ<¶:±š=°ŒF¯•J´•D¤š:¤<¦“?£Š?¦ˆ3®…6µ…Eª‘I©˜GŽN–”X™ŒU•„P›ˆZ“Y‘ƒSKŠ•OŽ”F›M–„L‘zY’yZyUžoWŸeW¤ZRŸ]MšiF”dI™TR™Q[›RZ¦XP®^LªXM§[TµTJ±MS²UR¯\XµYW±Mb½H\¸O^µMW°?\­?R´CM¹EG¸DD¸OH¾QW´JW±PO·KWÆHNÈLNÌHH¾FSÇJWÇ@OÁ1`¼/`Â6UÌ,P’Æá•È࠿ך¸Ù¡¸Ú™´ä¥²Ï¡©Ú©³Î¢¼Ò›³Íž¨Ï¡¯Ð¬´Ï¦½Ç®À˧ºÊ°¿£µ¹ µ¼¼½©¾½ª»Å³¯»°Æ²¬À¸À¿©»¿´Ã¿®¿À©¯¼±ªµ©³Ä¤¹Ã©¶»ªÈĢ¹¯¿½§Ì¿²Æ½¼ÖÉÊÜÐÅÏÓÆÎϹÏÅÃÞÎÃËÌÈÉÍÎÇÌÉÅÇÏÉÈÓÓÒ¿ÇØÌÒÐÍÒØÍÇÏÄÔÙÇÚÖÉÛãÀÙâÀÕÙÂØà½×è¾ßë½êݵÝÒ¹äÛ´ëà®éÓªäÄ°ìɱèȲáѧéÁ™àÈ£îǘå֞æ֎æדÓҐÐӓÉыÔˋÒ؏ä݊çڅÝׂêçƒçâyëç{äéäæuäã|ÙۂÞâ~ÍÞz×ã‰ÑáwÐ݄Õå}ÒæwÕçsÛêuãåxâàpÜæsÞÖnîÕjç×màÎfáÑ_˾cÔ¼eÙ·^ܳ`Ô³Qã¶QܶNæµTåÁRè½Uõ½FëÁJêÒLðÉKòÖTòÌAáËLãÈDèÄJéÆHãÄ@àÇKÞ´Kè²Hâ´CÖªIÝ°PصTß­V͵ZÉ©dͶ`Ĺ`̳^˦SħTβN³NÀ©JÊ®D̸EÁ¢HƟ>É«>É«Lϧ@¾ @ЫAÖ«DÔ·HϸOÊ­@Ò£KÍ¡D˨Eǖ9ě7Ǫ?­8Á¥>Dz1ǵ:Á´;º¼Cº¹>Á²@²¾,µµ5·´'·¤/Ý4¼›8 /µ—,´˜3°œA¶ˆEº”K¹š;µ—E¦”9¨‰B¥‡;¤ƒ>²„7¨;¯‘Qª‰E™P¥’W£ŠV™ƒT™‹V‡V”|Yˆ‘X‡ŽW‘Y’‰L—Y˜wbšt\’uS•jW§mW•eT¢dSXU™cA‘aF›SH¥VV¨JM£LM³WN¯XNµK\µJKªRU¨WN»_T±]O¸LY·GVµSK½JP±HD·AH¼?E·@H¯MV°JO»TR¿JYºFN·GYËKVÇ?WÂ:ZÇFNÊ@\Ì>ZÍ/ZÉ4TÑ4QÄސÂ㐻鞿ã«ÄÚ©¾à©¬Ö§ªÍ§¦Ô ²Öž©Ó£°Ó¤­Êª³Â­®Â¬´Ã¡µÄ¤±¶¨«¼©³»«¾Å¥ÁÀ©Å´­»´®½¹¸È­·Å§ºÄª±Ì¢²Êž´¼š²½§³Ä¡°¼¡ºÃŸÁ¾§¿½­Ç¿¦Æ½®Ð¾¸ÍdzÙʾÏÑÀÕϸÐËÁÖÉÈÙÒÅÎÉÉÑÈÕÒÃÐËÍÌÔÎÉÙÑËÒÏÏÍÑÅËÓÈÑÛÀØÜÃÞã¸Ùà½àØÀÚÖÁáâ¶ßÞºáÓ½éÒºìÓ±ìÑ®èÔ®ìǦöÊ®ðÒ®õΩíÉ¡öâð͒ö˙îיãϙØҎÎːÓՐÜؙÛݓìçíáçè‡ìâ€ðå|ôäƒèáéè~àézÝßyÕØ}Îà‡Çë‚Íå€Ïæ|Øëzæå}åàoâèqìãsíápáßoéÜgêÍiâËfãÄZßÏUÖÊ_ÜÂbÔ¿]Û½\ÞºXå»ZßÁRê·[ð·Xí¼Q÷¾QóÉNîÍWêÈTôÐQåÚAçÓBåÑDðÌLïÏLíÍHç¿?êÁDݹ<à¯?å²<æ°Dè·NÝ·Yà¶YÓ§`ʲcƬa̵R­QůLƲGÍ©DÊ©F¼²K»©D½¨9»¢;º­D§CÈ¥DÀ¨@Å¥AϱFг>Ò´FÑ·BÈ©Cë>Ǥ5ʦ8Ğ<º¦@¼®7©5Ç­7õ,¿®0¸¸5¸°6º¯.²¹-¶µ/¼°+¹ª/Ŝ,¾Ÿ'Û2¿ 6¸˜2°˜A·B¼•=¹’>¬”5¯Š;«6¨‹B©…Bµ†A´ŒE´H°G¨šR¢™R¥‘N¡HŸ‰N™‚R†Z„ŠSˆW•b™[Ÿ‘U™…Y”{\“zWŸnNhTi[•_T’`G—\I›]G™VF›SG§MR¬P\³K[¯EX¬I\¯DV¦HS°M`µZ[½RM³[J­NPµINµLD¾AF²@E³BOµ=O¬>Z¨L^²L[±DX½JQºNTÃHUÁ@P¼>ZÃE`ÆC`È=^Ï4ZÊ)`Î+[¹å”ÃВ¸Øž´â™¹ß«·Ð§­Í­¬Õ©­Íœ®Î™·Ú¦¬Ï«Î£¯Í¡²É´µÄ¬­º©¸½¥¬Ä©»µ ¿Àž¶²§²® »´±Ã±±Ä³³¼¦¼½«´Ä¤²Á™¨½¤«¿¦¨Á­²Á¡¿Ä£¼¾£º³¶Î·®Å»»Ò¾ÂÕ»»ÚÉÀÐȾÝЭÓÌÀÛÁÈÑÆ»ËÀÈÕÊÊÍпÊп×ÙÁÑÏÎÈ×ÎÒÊÉÁÙÄÅÙ¸Ñ߸Ëå½Ûà¸Ýá¼ÔàÈÕÖµÔî¶àÙµëÉ»äÍ·ïÌ«åÏ°îÍ«òѦ÷θëË®ñɟðƙ÷À˜éϙç܌ÞЎÖҍÞ͈ÑՇȪÞ܅ÞҋêހàÚwæè{äê†ñî†ææ|ÞلÛÙxåæˆÜ܂Íæ…×é‡Çâ†Ùè{Óò{Þéx×ãvÞâjîáiéånÙÛiÛØeßØoæËkßÊ]ÖÒ[ÚÅgÛÈcѶW×¼WÕ»`ã¶Ué¾Rì¾NéµTì¾UðÁMúÇ^ïÐ`öÆSïÑMìÆBóËKóÍ@îÎCôÉEë¿Gç¾Må¸EÞÃ@ܳ>ä°Háµ<Ù®EÙº\Ó±`Ô­YÔ«^È¥eÉ¡aÁ SƦQ»·C¬HǞG½«G°£<·¡D¿?¾¤9­C¾¬H»¤E»­<ŪJŬ>ų=Ê©KȬC¯A¸¢2¾ <Ǚ6¾¥5Ŷ5Á±:Ť8˧1È­2½¤:¯§9´«0³´*÷$¸¸&¹¤.š)É£1ʙ8»Ÿ=·–<¿œD¹šH­‹@ªŽC«‚>¯„H¢‚9«Š>«‰I¯}F®‘H³ŽL¤–F­›UšP¢‹N’U™„HR‹…\’Q†O“Y“‡\š€e“dœ}WœpUnb¨t_›o_œZX—[[˜`P›UI™PI¤KQ¦HZ¦U_¬Dd¨JY¦IS¦U`£UU¦W^©S[³YV°XH¯\F¨HJ¯CC¶@@°:H·?L±@PµJS­EO¯KYµH_³ATÄB]ºLZÀDZ³>VÄ:ZÀB\Ð1UÇ3SÑ(SÏ2Y¯Ò•¹Í’·ÝŸµÞ¥±àŸ¯Ñ¢¯Ø£´Ö¨«Øœ«Ô¦±Ð¥­Ñ¡³É¦»Ê¨·Ñ«´È¦½Á¡´È›²·¤¼·Ÿ·»¦°³¡½µ¤º¨«¶²¨²­¶»«½Ä¯½¾ž·¹ž³Áª§º¤©¼±µ¼²¶Ä¯²º­Á¾ºË°»Ï²ÈÒ½ÄÌǺӿ³ÛÁ«ÓɲÊǯҺ¼Ô¼ÊÇ»Ñ̳ØмÒÒÉÊÔÄÅÏËÎÔÈÌØÆÈÒºÏÔ¶Ìã»Èß®Ñ×®Ëá¹ÐÚ¾Ûç¶Øí¾ÛÚ·ßаÜÖ©èÕ­äͲäÒ§äØ©ôÔ´ïÕ¤ñÊ¥íÌ¢ðĝåēå҉âВâĉàńàׁâÖw×É}ãÊzâÖwäÜ|àÝzá߃âì}åÝ|äÚß߆ÛâŠÑà~Ðá{Îè…Ñð†àôˆÝê„ÞïzÚãréäxæäpÞäsâÓqáÔpÛÙjÝÞ\ÖÓ^ÐÍdÎË]ËÃ`×½WѵSؽ`á²]ïµ[ï­Xð²Mý·MøºOó½YðÁaðÉYãÌDçÔHñËBðÎCïÎHäÍKê»Páµ@æ¼=è·7ã½=Þ¸Dä¬CÙ­QÒ¯Uί^×¹_Ô³l˦hΪ`Ǥ^¸©O·®L¹¨H· N¸ C¯©C¶ H¾¡?´§Bº«E¹®B¼£B¿±DůE»°F·¤>³­<½¦IÀ®9·¦7¹«=Â¥A¸±7¿¬9½¤.Á«1¿ª8Ħ-½§6µ¨6º£2À¨5ʪ$ð"ɨ+¾§5»ž2Ő6͖2Ę=¸–9³’>¨‘5§‹;¦†E£‚D ‹F¦…?¯~C³…C±…N¨O¬•Z¥—S“Y‘•V—ƒS”~GŽT—ŒX—’V•–QŒ†[„[Žz[‡wa—pbžtaq`¡wa¨wfŸf^¦bW£gQ™V\šS[œQ^®SX¬Qe«Id©K_žS[¥][°ZW©a]¬Z[¬^U·XQ°ZF¦UE­HI¤FB¥=E²BL³;S²DL¹DK³LS±MX·BZ½FQ¿DT»4X¹5Rº?[Ç9`É.fÁ0\È-^É*Z–¼Í•·Ô¦ªÕ¡­Ù›¦Ó¡±Ë¤±ÓŸ²Ù£°Ñ”±ËŸ±Ïœ³¿£±Æ§¼Í¬³Ç¯ÂË­¾Ð§ÂÕ£³Ë£½·¦¹´¨±· µ±£¾³¥¼¥º¤®µ¤²·¤·Á¶¾©¶º§§Âš¬´¢½²¥¶°¶½¹³Áµ»Æ±¿É½Åʶ¿Ë²¶Ö¸°Ð¾°Î¸ѹ®Ó°ÃÚ¶³Ì»ÀÊÅÃÇƺÎÖ¿ÐÑÉÌßËÑâÍËÖÅÍáÂÑÛµÏá¼ÑÖ·ÌÜ®ÍÏ®ÞÓ¿Ùç±ÙêºãéµçܨâاÜÒ«àÙ­ëݯãÎ¥èزôÕ¤äΠçҟíΣéÁêƋèŁ澆ÝÉæËzÜËwÜÅtæÓ|ØØtÛÜxäÝsàààâ‚äà…äن×á‚ÑàwßáxÌéÓç×éwâå}æðˆêáæÜläâpêßjáãpÞÛlÖÓhÙàjÚÏdÒÑYÑÌhÉËZÖÏeØÁ[æ½Và±að»_ø½U÷´Rè»Uù»V÷ÃRù¼OïÆ[éÁTáÎ?åÌ<èÑ>éÎDáÐGçÄ>æ¿Bâ»FÛ¶BêºEܼ?ë´Dá®B׫DÙ«SÓ¹OØÄXϬ`ħjÍ«fÇ£bÀ¦Z³¢L´©Qª•W©§Dª¦L¬›A°¢D½©G¼«KÁ¨M¡<ű<Ç©7µ­G°§<À£I·¬O½§?®°6¸¨1´¦B´Ÿ2â4½¥.¾«2²§0±³-·±:°«:¯«:µŸ3¼¨1Ç£ Ä­&¿¤5ĕ1–?½CǍA¼’Bº‹=²‘A¡‘2¬ƒB©ŠE©‰I«‡G°‹?­‰?¨„G­’T¤—L›”QQŒNŽ‰V~G’ŠL‹‰WP•S”‹IŽMŒy[‘€[Št^£rd¥te¤w_§z`Ÿe^¨b\›^a¥W_­Sa²Nd­O^¥Wd¡Vh¦V] [_¥RVŸO^®Vb­[\±PL£RH°SO¢YD£G@¨GA²HG´QPµDF±GJ¯DQµAR¶JSÂ;V¶=QÁGPĸ¢G»ª=¸®5¹­Dµ¨F±¯@¶­E®¨9±®9º«?³›5¹£7¿©)¶©)·­.®°9®¹2°¶4µ³1¹«+µ¢1¹ 5Æ¥)¾ª-½3¿ž1ɒ=Ɨ<½‹9Á‰;¸‡=°6¬Ž:¨‹B§‰@¥‰H³ŠG­ˆL°‹C¨ˆE¦„Q§I˜ŽN–PŠ”F“Mˆ†S‘†NŽŒX—I‘˜JŒ”HŽ†N„‰SŠ~ZŒ}X›v`¤zdœ{c¥sZ©t^¢sf£eb£df®`d°Zh¯Ta¤Oj¢Wf¦^b£\aœWZS`¡QY©TW§HPžHO§JF¢PK¥IF¤KC¥UH¯OGªUO¢SN¤SR§E^¸He¼;aÅä·@æ¾Jí¼Bã¹=Þ¹JܱBÙ´EЬOÖµQɯU˲aÓ´bË·[¿´Z¼ªW±¥`¼¡_±©H¯¤=±ŸI¦–J¯”@¿•M¼–H®¤A·¦=½«;¯©5³¡7°¡A®±=¹¬@¹­E­¨9ºš-2Á®(º¨.·°2½¸&¬µ3±²/¯³-µ§+²£3¼¦0Ǥ)¿¢2ʓ4ʐ3Ȗ;Ñ<º‰9º€:»€:µ€<²ˆA°8§ŠG°B³€D¨I¡K§‰O£‹B™‡B”ŒG”M˜CŠ‡J‡…U„‘X’T™R™>”K‡EŒ‡I‘z^|\v\“„l—‚h¥|b¥{]£tc©i^¥ajž\o§Tc¯^g®Yc§[b¦[Y®^a \cœ]]©YP£[L¤RN£CL›AZ›D\ªNO¤OP¬XI HM¢FM™CSŸDX§EY¯HV«Ea¾GRÁ>c¿:S¾)U¹.S»(]¶3^³)S½-aÌ$YŸ¶ÕŸµÑ£¦Ñ §×¦¦Æ¥­Å¡²Ç™¿É¨À»§¼½§À¸ž½¾¤µÀ¦¼Èª·Ä©·Ç¥¿Ê­·Ð§¬Èž±Êž´È¨·»¨®´¦¯´¦ª·¤³¨¡»¬¦±¢¦³£¦­œ²¯”¶¹œ²·¦·¶­²­¶¼µ­²Âµ³½·¶¼¼»»²»±ºÄ­»Í²¶Ï¶³Ë½µÆĹĿÂͳ¾Èµ»Å½¹Ó¿¾ÐÈÄÌÒË×ÍÁÖÕÁÐÖ³ÍܶÕѹÚÛ³àÓ¤×Ö¦ÝÙ³ßé«åéªÚé¨ßÜ¥ëå§èܛòؤðÖ°íÍ¥àÒ¡æ֔ëϔîΐìדâ͍é˔ñΈ鿊繏뽅îÈtðÌtâ×zÞÛyÔã€ÚÝwàèpáèxÜë|èâ~ÙíÔéwÑîƒßåŠãè€åãÙìÛåˆÖñ‰Ùí{ÓêtÞètßÝc×ÓaÚàfÐÜ^ØÔ`ÕÐcÙÇ]âÉeëÏhâÅZâ¶Wé·TéÁSØÃRâÂZê»`åÂ_ÚÅ]àÂ[Ý¿Xá¾OæËFëÈ@ëÓAåÃGèµMê±Câ²Hç®CÞ¬@å¸Dè»JØ¿R׺LÒ¸IηQØ®UÖ­LÍ¥R̪YË·YǹR«_¾¥\¿ªT¿¤UÀ©F¹Bº¤N­ J¹ J·I°šK¬ >·Ÿ;³Ÿ9´œ,µ©0²¨<¶¦9¯°8±¨A½ž0¹£+Ƥ3Â¥.Á¨2¯0¸°+²²%²¯!¯«)¯ª)»¡9¸™8º˜1¾˜/Ȑ<˔BċAº…@½†4¸{:½}CÁyK¶D¸@©A¯‚<µ€<­C¡Gš{<ž„?–ˆ>™LŒ…G…ŠLƒ†QˆRŠ–EŽ“I—C‹”BœA‹•F••F˜…R™†\€`wn–~jœ~a yf¨vd©lg£gfš\j­\l±Xp±Xm§\f©YY¨`W¦cUª][°[O©VL«WS LU™?WA^žC`¨SWªYV¡PQ›C]ž@[EV­CZ¯>]«=V´AZ¾F`Á>d¿2X´9Yµ1Z´&V´)^³(a¼%e›¯Ú¡ªËœ²Ùš®Û¡µ×ž¨Ð¤½Ì©Ãɟ¸É¨´Á¤±¿¡ÁɟÃœÄÍ«±Ä °ÃŸ´Ì¢²É—¶Ï»Æœ·Ã ²¼ ²¶¤«¸ª·«¡¸¢½«ª±ž©³¢¨¶ª²¹¥·¼˜»«©²²¨¹¹ž»·¦¯´±º¸¼°¼²¾²°¸»¶Â¼±Á¿´¿¿ºÁ¼·Àº´Êijù°Ã´¶ÈǾÌɺÓÅÄÜƸÞ˵ÜÖ²ÝÔµÛ׶çß°ÜÖªåÙ ÝÎ¥àÕ¸ä×®îë¨àá¢èÜ«äážâ۔æß õØ ç׫ë՝çÓ¦ìߝúՖó۔ìȍùЅ뾃êŠïÄ~ü¼{ð¾ïÇ{ã×uïÚoæß|ÔÞu×ÞzÜèÛ܂çëxÚê}Ï݋àæˆáãŽÙê‹ÜáƒßâééŽÙç…ØãrÔè~ßãpÜâd×ÖYÏÓeÖÊiÜÓdãÊYæÏhçÇbÛÎcäÁ^Þ¼ZݾZßÃWÍÅOÔ¾Tæ¸^ØÀVÙÆeÖÆVÞ½SÖÄKÝÆRÝËPåÒPèÄCܬRܬFÚ²NׯCâªDÙºMæ¾Jç¾CÛÀAÒ¸TѼRÙºEß½HÒ©MÕ§TÔ±MƽXªQʯOȟIº«BĨ@½¤>·¢E¯¦Dº™;¯‹<»—5°ž<¹š3©£?µ™0ºž1´¢+²®4ºªA¸¥;°°:½ª3¶š$¶š(¿§.Ê£0¸£$»¥/±«)´©'³›6¼Ÿ4¹ >ś/Ô7ÀŽ<Ȏ3đB½Ž=¸ˆ8ƃ<µ|<À‰>­~F¹Œ>­„G¦Œ7²†9²†>¦†J›Œ<–„G—‘N‘ŽQ‡”S…WŠO„›N‚ŒKQ˜HŒG”’F†DŒ“N”ƒX’‰P `ž}k€h‘vd¤zd§vlœjsšfkXsœai [i£Qe¬]]¢][¢cR ]a«Ze¢X_©XH—XMœVVŸCV˜@h¢@ZŸJb¦N^¥DX£>Q¤;[Ÿ>Y¬I]±BU±?R¬B[­?b±?n¶9`­1Z²,Y­6k±0nµ/d»,m’©É˜«Õ¢«Òœ´Ý¥³Ú´×½Î©¿Ì£´Ê¡´¾¤¶Ã™¹Âž²¿Ÿ»É¡ÀП¶É”¯Ç–¸ÑžµÔ¼ËŸ»ÊŸ°Í¦«ÆŸµ¼¦¯®·«¢¼«£·¨£º²°°«·­¤»´¤°²™®¬®¶™³µ¤­°¦°¯²»·°¸³¹®¾À´º¸·¿¹½¾·Æ®ǾªÊIJ½½±ÃÁ¶ÃĺÈȲÕ´ÝÀ°ØͱØÚ­àÛ¬èÙ´éá®åÔ³ïÔ©èÙ±áÕ®ßקæáªãÜ­ßå¥íã¨ëëšõè‘îܗìޙêá£üàŸþáŸûá“þ҇ÿDŽÿÆÿÐ|úɃõ¾zýÄzóÄzïÃ}òÍqðÒtâÛxßÖxâàzÝáxãÝ}×â}ØéŒÖގÚê†ÛíŒÛê‰Ýì‹Üç’åêŠÛá†ÞÚxåáyÞßqåÛeÛÒ`âÉ]ØÉb×Ç]å¾[âÂ`âÄ\äÆgßÆbÖ¿[ÚÅ[ßÌNÒÂRÝÀWܼ[Ú»YÔÀbÚÃ`ÒÅWÒÌOÔÎWÖÁVáÄNá¶X×°PÙ°\á°Vé³Mß´Mâ²Iâ²Iä±JܹFÕ±EѺMÜ¿SÞ¾KܱQÙ²UÙ´M˺VʵWίPÇ©B½§?í7·¡>¶¥1¿2¹‘.³”;±;µ‘5²•7­ž4¼š(¹ ,°«3±«4®­8¶¯5·¡.º¤0¾ª1»Ÿ#¼£$¨"¨!½œ0¹œ/¶ ,½¥8µ›<´£<À<Ǖ?¾“5¿‘=ÀŒ5À|8¿}DÂH½@º€<µŠF¹‚<°„<¤„G©‰@Ÿˆ8¥ˆ?œ•@™E–P‘“MŒ™PŽ—Y‘¢P‚›S˜S‰”K†MŒF’ŠM‘”FO™‰Mš`Ÿ‰d›zo—vi’x_šwe¤taimž\n”_s—UrŸOn£Pr¦\d¬^]§[[¦VeªL^¡FSžPT LJ•NQAR”Caž@b›BašAb HW§F_©BV¬E`ªA]±7e¦>_£9g­El©>h¬>s³@t°8f¹;o´5q±.mº#lš¢ËŽ³ÌªÍ˜µÐš­Ü–»Ù¨±Ð¦­ÎŸ¸»›§¹Ÿ¸Á£¾»—µÆž®É£­Ã¢­Á¡ªÁ™¶ÉŸ°¾›¶Ë™¸È™¶Á™¯¸™´°§²»¢½±­¹¦¦º§³°§±®­¸¦²¹© º¶œ¬¬¨³±Ÿ²±³±±°«¦¹²§¬Ãµ¶»­µÀ®¼¸·±Ä¿²Éµ·¾½¯»Ã·Á®¶Á°ÁʳÖ̲àʹÚóÜÓ´âѱÛܬÙß­çаäÕ¯êÜ©öß«æͧàÖ¢íØ£ê؝èٟëܚçæœäâçНèà£ëè£íæœëۜ÷ېøЋòNJÿ¿~ø¼ƒù¿óʀöËöË{ûÆyèËwàÖxâËqçÐvãÖsßÖsâáxÜâ‹àéˆâìßé|äó€èòÜé€äé‡àåáäxäÙ{æÙkçÝfáÜgØÓcÖÍkÙÕlÜÌ[èÃUíÇZáÍUØÇT×ÉV×Á^Õ¿]Úº]Õ¸^ã¹\Ù¹XܾVÝÁdÐÅTÒÂZÜÀZ×ÌUÙÊKÜ¿UÙ¸Jå­RÞ¸Nè¬Nê¬Rì¹Ië²Mç»Iå·OÔÀMÒÃUÙ·YнOϵJÒ¬KÉ®YɧWдYɶVÅ®IÊ®C»¢E´¬D¼ž<²¤:¾(·“.²—C©šB·˜9­›8°š@³¤6«/®¥0¸¬)²§2°'²¤4¼¡3¶¬1¹º¤$¹¤"´ž,ºš2½ž6²Ÿ7¾ 9¿¢>Û4¼—FÁ”@º–8¶Š5µ8°ƒ>ą@´8³F½†H«„@·B¤5¢}@Ÿ„D¯;§…C¤•DˆC•“O•RŽ•[’ŽQ†–V†™J–M“—U‚‹H‹N‘T•ŽM•‰IˆO•‘[ž…Y–„VoZ”th–hcbm•gr—arŽOežYl—HlŸMu®fj«cf¤Rf¢Tf¬]g¢T[ªSV£T]O[“FašQg Jf™Ha¨DW CW¤BM¤HZ¨Cf©NW­?a®?[³ê±Dê²Lç¼NÛÁLؼVÞ¹_Ú¼VÒ·QÍ«GԞDÉ¢QÃ¥OȪXÆ¢UɨH·¬I´®B½ 8¶™9²˜0¶•+µ*©‘:°–7¯ž@µ¢8¯¢>ªž7¥œ2²¨3µ¨,±ª)·œ$ê,½«.¾¬*¸ &±—¸˜ ´¢*»¥*¸¢,½¢4·¡2¼™5Ž?Ð@·‡B·Œ9²†0®ƒ/º†,·”8·“9¶Œ=¬‡>°‡>¬ˆ5¦{6­5¥Š6¨ŽE¨‘FšŽD’Œ<Œ›O˜R’“L‘‘QšX‡›O•U‹ŒP…V‹ŽN”šI’—S†šU‡“LŒŽFŒP”sO“p\pX‘aa`]˜\gœ_k—PaœO`œMp¡]r¨`o¡_d£UiŸab£`bª[a¥TVŸTTšU[’Ud˜P[¢OS¢N[©PK¥LG£OPœNb¡KcŸIa£LV«E\¯>f«Hn²Cn¸>l·@`µ6dº=j¸2d½%dº!p¤É†¥Ë‰¬Ï†«Ã—¨¾ ­Áœ¯Àœ¢¾›«·¤ª³—¨Á¥¬º ¦Ä¤Ä­¿‘­»Ÿ±µ™¶¾£¨Ã ¬» «¿š¤¶¢¥«¢¡¤ž©®²¯´±¥¶°£¶¹±±Á¬»¶ ©½›¨¹«©µ¨¤³§¬´›®·¦¬¿£©Áž¶·ž°Ç£ºÆ¬´¹µ´Ê¹ÂÆ»Àƹ¼¼³¼µÈ·ÇɳÈƪ×ήæ̬ÛÔ³ÞÊ£èÖ²ßÍ´ìÚ²îџåÒ¦øޞéá¡õÐ¥é͜çޔí֒èؖ÷ܔúܝõݒðՑåӚçޛáҝãԍê΍ëƗòĔòÒÿÂúȇÿÀ~íÀë½‰óÃèÌèÓxéÅlëÏpêÔwÙÕkéÑtßހßÛ|êð|æéxâìsÞæzÜê|çé{âìsâçxÞífáÞjëâbâápÝëfÓÚdÜ×pÛÍ_áÊdãÐ]ãÀUßÂLÜÒWßÄFäÁHç·NæÂPݺTéÅQê¾Zå¹\æ½Wå®TØ®YÚ¬SÜ°Hà®KÞµEé¶Qì®?Þ±Eê©=î±;é¾JæºRä³QàÁQã´OسWÒ»KγKÒ¦RͦOƧT¹±R¯K¹©Rº¯L¸¦:º©0³˜-¶Ÿ.¯›+¨›%ªš0ªŸ=¢˜AŸœG¦¡H­¤7±•?¨¢3¨¤0´˜)¼ž*¸¢-²¦-½¦/±£!¶”-³š²¥·¬(®§'¾¦+¹Ÿ3½˜0´™<¹‘?¹B¯Ž3¯8µ…%©–.«—-¶™/­–=´†1ºŠ:¦…4¢„1£3«–,š—C¥ŠD•‘C’Š=ŽŽL––WŽ“GŽ¡H’¡H”O…‘N‹ŠT‰ŽK‘“N‰ŒK•ˆJˆ‰KŒ“Qƒ‡Yˆ†Z“v\‘eXˆaY™WY•ab ]j˜XešW\šJl Pl˜]j©ed©dp™Zj¤Vf£XZ¢MU®V]ªQP¡ZZžNZ”NhŸS^§I^¬KX«PK¡FM¨O\˜MfBm¨E]«HY°OZ©Fo¶Pf¾>e´?]·4j¿2b»7f»#l»&s~«Ê‚¢Ã|§Á…¡Ã–ŸÅ™¥¸¢«¶š¡ÀŸœ¹ ž¶¨žº£¬¾£¤Æ—«¾Œ¦È¯Á“®·¤¶·©®½¨¬¾¬«°¢ª«¦¢¨¤§­¤®µ¤§±®¢µ³¬´¾°¹·¥¶·±º›¬¾—®³ž¥·˜¯¸žª´œª¹²Ã¥´» »½ ·Ç¨³Î¥±Å®·¼³¹Áµ¾¸¾µ»¾²ÄͬÌͧÕΫÞÏ°ÜϯÞʦðÒ­ðÍ°ëџ÷ޟêä›ëܙëϓëЛèӕòә÷ޜøۚïՌõ܎ïݏïҔíΖáҔêΛêȔâ̌æĒéȚõ»”ù»ŽÿÈÿÇûÁ‡ûɂïÈyñËxãÌqÜÇuæÍuß×{ÛÙoæÜoäÔ}éÙrïäqìÞyêáwâۂàä|éÞtæàxÛìnáèoãéiåæcáíbÜédÖênÖÝfÞ×háØcâÕYåËXÝÖVßÏJÞÀKãÀHí¼?éÁGêÈVìÂUïºMê´Tæ»Vã°\ê¤Væ¥Xå¬WÙ¯L×°MÞ¬Kî«PìµEì¹Dä±@ê´K߸Eã¸EݽOá¿QÞ¹ZعTÛ¶NɧSƧJŤM´®L·¦I¶©M±«E¶¦6¶ +»˜,³£!¨#¢•-¨’/©ž6šŸA—š9¡ A¨™?­;§.§›1°£-°›+´˜!µ #¯¡)¯–&±˜"«—&©”*±¡#µ˜'²ž3®Ÿ2·–<¾Œ>µ7»-°‰4°Š)°Ž"¸“¯”#¹™%±•,¸4·Œ5²†7ª…7 †1¥’3 ˜9š“=œšB›L¥”EšLšD‘ŸM–ŸRŽ™K““U—UŽY‡”T…“R‹ˆRŒO‰‹T‹R…ƒZ{]ˆjbij^b—^f˜WkX`”Nd’[nŸWg agž`i—`s]mž^^¬M\­W`°RU³ZO±SXŸSfžTd S`ŸLU§QI¯WK¬ULªEY@gžAk¦Bg¥G_²D[²QbµIa½I]·C]½ÔºGÝÅIλJÞ²RÙ©TÍ´Jɱ>¿ªJ¾ªF±¤J­¯C¶§G¶žF·¢@±¥,­“.·–*¨/­.³’7¨—Cš˜GŸ¥:¥¥C ¡5«£:«ª;–©6œ™3®’)²œ(¯¤(²–)¦—+§—* +­š%°’!­Ÿ#¬ž3¯™7®›0¬˜.µ6ª†*ª‘$°Š+°‘-¸’0­Ž%ª–!ª•,·‹4²‚3©ˆ=©5£†4 “:©‹@ CŸ•;œ—DŸŒP¨–J¢ŸO –Q‹—T•‘JIŠ˜V‹˜Iˆ‘Q‚ŠWŒ‹RŒ\Ž‚LŽ‚S“uZu\ih•o`‹`o•\jQu˜Ww’]i‘Zm”]k’`e¦]mŸ^l¢OcžTi¨Od¬Q\­R^²PU¬Oa£QXžY^ Za¥QS¤]U©SI«RV±Q^£HcšDf¥Bh¬Fj¯Ie¹Fh´?fÄAbÁGcÀDl·.h±$mÁ%hÆ$dx¦Î}¡Ï€•¼˜¶„£·§¾†¢»“’µ›”µ’£Ã…£¿‰œÁŠ˜»”›´¬»”«½ ¦¿Ÿ¡¶£©½¤¡È›¢¾ž¤²¤¥¹¤¡·¨£´«ž«¦ µ°¯¶¤¢·¨ ´©¥´¸¯¼œ©À•§Ê“¢È˜§Î–ªÆ¸Ã¦³½¬½½³²Ê²·Æ¸»¹®¸Ê¶¯É·ª½Âº»½º¹¼»Å½¯Ï̸áÌ´áÁ¨ÝÇ¥ëϦôΰçÏ¥ëÓ¤éÒ æʝí՝îԖéɘêǎå׊ì֎÷ɑò̓ôȓëяåЍîуéƀóʋõÊ|é¿}ôÀó»‚ùÇ|÷ǀð¼…ùÂó¾wõ½råÌyÛÊ}ÚÔtÝÔ{çØríÖzáԀáÖzäÕxðÓyîÚvóêmíåfåÔnÝÒfÖÚfàßlØÕnÛÔhÔ×bÔØiÜã^åÖbáÖZ×Ö^ÙÍYäÊ^äÈYæÓ^áÌYÙËKßÄHá¼Fí·EçºVéµWæ±Mè½Tå¶WíµXí°SÞµRè´Mä¶Të¯SìµRâµTÝ¥Dã£CÙ«Hå¨Lã¯FÚ°LÓ¼TÒ¼SήKÉ´LÊ©Eɧ>¸£=²©H²¢B¬›E®£M½«A¨9¾‘(°‹#»‹%·Œ-¾“=´ <¦™9›A™–D ™5¡ž=¢¥9—«4•©0™2™,£ž)¢Ÿ1œ”/Ÿ™$œ™# 1œ”$¥(ª™2§’2žŒ/¦#²‡!ºŽ#¹•©‹"µ‚'µˆ-²†-¯Œ+¤'ª%±Œ%§ˆ+ž1¦ˆ> “?§A¥”E¡“>¤œD¦™D§‹C¡ŽM¥V£’Rš™PU†ŒXŠJ‰V‰ƒR‡‰P‡€]…zUƒzOƒsT‘rdil“of”dl’goŠau’Rs•Qx”_w—ar‹YdœdmŸ]g›R`›QfžQe \l›Qd§VY°OU®O[­\^ŸaZ£eX¨`X§WS®SO­ST¯Pa¦Ba¦Bc²Ea±Hg¯Ol´Fc¾>eº;nÂ9e¸;j²6v·)sµ'o d…œÆƒ½¦½•¤¾…šµ¡¼‡™¼ƒ›°–½Œ£Àƒ¡À€žµŽ—¶‘–Àš¤Â¦·•¡À¡¤¹ž ¿¦¬Ë•£Å¬®š®­œ­±¬¡¶¥Ÿ±­«¥ª°ž§¥œ—³¯”­±ž«¶—£»£¨¿§Êœ¦Í—®Î—¶Ë¢³»¥¶½¯¾Ã«±É§´Â¶´¾¬´Æ´®Ë¶®Á¾·¾¼¶ÄŹĮ̀ÞˬáТç̚áÇ õÔ¬ôË éÒ§é͗꾦àÑ£ðʟâɚôˌñЕéӓåñÒðЗãԌìʈòÑ}å̅ôΆùΈìÅñÂsùÄvó¹ÿÈtù¼€ù¼qè»z÷ÇzéÉ}ÝÐxÓҀÜÛxÚÚsï×nâÕpìØyêÏyíÜnôåvçßjìâsáÚjâÞ`ÒÚaÝÏkÕÜ^ÖÒjÚÎgÒÕ^ÞÜ]åÓVêÚ[äÏXäÐTäËNåÐ[çËLÝÌUæÆSÙ¼IåÀPàÃJîºLî°Tè¿Hò¼JçÀSðÁVï¹\ä¨Vâ®Kë¨LߪVã´Lì´Fæ§Jà¡Jß²P×·Uç³GÚ¯VоXÇ´XƯKƵAƪCÄ´=º´@®­J¸¬@®¤?¯ªR³§>Ç£3³“5º‹%ª—)ª‹6®˜=ª¡1¨š;¡™A ¢5¤ 4–§7”ª5’®2Ž¤5Žª.ž 0›£(¢£0Ÿ£$›™#˜’3¡‘,¢›3•%¬’.­”-¯(¢“®…'·Ž¬‹#³‰ ¦‹0§/²•(£—!«'®‰)¤Ž2¤…)¥‰-ªˆ6¢Š<£›5°šE¤š@¨™I©–L£”A§ŠM£ŠR¢„DšŒQŠN‡KŽƒPŠTˆTˆ{RŽ}ZŠ\ŽsOŠpb—qe“oa˜xc“mi“dl“_o‹Yz_yˆRlZn\hŠas•[g›R`•Xa›TgžYg¡So¬W[²X]°Id¦Z[¯`R¬aY§gP±QK«TQ³XP²RT«KU§DZ©I[©Yg³K_¸NlÀCp»Ae¸8m¿Gb»4i³)uµ%i¿!e‹šÀ…¢ºŒ ¶Š¡¹‚¦Â†¥À‹¦¶~—³‚¢¹½Š“¼„˜´“œº”¢À »šŸ¸¢¨¾¡ªµ™³·˜ªÀ•­¼”­º’¥¯ž©³¤›±¦œ´¦¢©¡¢¥¥—©Ÿš¨«Ÿ£¯˜­½ž«Ã¥¤Á§®Æž°À›±Ë›¬Ð£±Æ¤´¿§»Â©±Ä¶¸À±µÄº»Í±¸Å»±Íõν½Ìǵʼ®Ø½¦ÜÄ¡êÌ çÑ¥éȜêÅ çƙܾßÁžÝ¼œçàäȚììŕÞĒ꼉äëÀãʎ迆ëÃ~éÀ}éÁƒòÁ€ûËuÿÇrÿ¼oûºvý½xö¼pëÇqñÁwçÄ}ßĂÙÊuÕÛtÚÚwßÕiåØißÒfêÛiðßoèÚgèävêàtßßläÙnØÒoÛÐ`ÒÎX×Ô_ÛÚgÖÖcÔÍ^ÚÏ`äÚ^â×TÞÛSëÙVãÎTãÐMÞÑNàÎMÛËPÛÀQÙÈTâÅNí¾Rè»Jê¿Rñ»NíÂXç¼Xè¯_ìªYí©Tæ«Oã´Nå±Sé¨Qá¤Má¬MÙ­TÚ°YݵYÓ®UÓ¸ZηZɸIÄÀPÁ¶G»®A»³E¹ºM±³J¶´F»ªFÀ¦@À¤;.µ“/ª›8«”7´˜:¯ž5¡£2¡¡0 £5Ÿ9‘¥4‘¤2œ¤9•©7”­,¤,˜¦+ž£-˜¥*£Ÿ/ž2œš*˜›0¥•&¦’¨”)°†)­‰«$­Ž ¯‘*¬‘*­–#§‹'¬"Ÿ“(œ‡,¥‹)Ÿ&¨ˆ.¤“7¨•?¦š9­™9«‘?ªA°–F§ŽI¦†E©G¢Š>ƒC™‡F”„KŠ†H‰„JˆƒT‡OzI‹vS…qRŒt_˜t_•qgšqb‘qf…aiˆbj‡dlŒarbq…Vj^t‰Yr“\x—Yl™PeŸTb Na¢Xk®Tq«Qh¯T_±T\³aU°_SµdR¯]O®]Z©WT¤\N¥\X¯R\«U[¬ZY§X]¦S^´Gl±Fo¾dÂAeÄ;m½9w¿-rÁ.wˆ™Á€£¶ž·…¤º|›¼Œ”°…¢¸t›¾¡³zŸµ ¸‰”¯’¢¾™Á”ž¼’¡µ”¤¾§ŸÀ–ž³•©¿™¢ÃŽ´¾™´­¢­ª—¦¤œ ¨™¨©š œ›™«œœ§¥–§«˜¥­¤¥¹¨­¸—­É™­Ä©¨Ñ§Ç£´¿«½Ä¨µÌ³©Ç®¬Ç«¾Ä«¶¿¸»Ñ±´ÌůÌúÒƮϺ¨×½«ê¼¥êśí͘ðžìȒîÑ۾•æΏçœ巗컋쵄åǎã˒éÆïĀäĂçˆâÂzãÃuðÆrðÁqû¾xÿ¼vö¹{ÿ»zÿ¾tÿÀoðÆpïÉxæÀ{è¸xåÌyãÓzØØoãÓxÝÐhÞÎeáÖkÞÏvâÝoêÖqèÔuççmìÝtãÝcÞÊeáÉbØ×^×ËeáÍeÖÕ\áÏcÜÒ`ÝÏVãÓUâÍNêØYëÐWìÓSãÈVâÅUé¿VåÆUá·Jí¸MíÀVä²Gç¼Gò»Sé²RÞ°Rè¸Vê¤`ä¡Uä§KÞ¬Læ±IÛ±Hà¡FÞ­H̬XÛ«V߯Q͹QغVÕºTȶJÌ¿TÄ®N¸ª@µ°=º¹K«¬>²®@´£@¸”;º›A¶2­“6¬•;­›6³Ÿ2¶ž2£¤+¦ 7™•0˜ž0™¢;Ÿ /–¤7£6œš+‘¡1££.¨6¡š%®™+©Ÿ& –$©“"§•+£Œ-ª—0¤"¡'¥‹#³–«—.¯˜.¦,Ÿˆ# •(§—#¡‘)¦‹&§‹'Ÿ”+¥“<¢¢@£•9ª•@¯™Aªˆ@£†E¦’?®‡F£~Oš€@˜=™ŠN‘L—…P‹‹L€PŒ„Q„‡U‚{X…ubˆnZpjˆwXŠh^•c^ˆf`‡fm‘lr“_w‡dq]o’Um’Pg‘Tj˜Oo–Zlš`aœVm¥^gœ[g¬Ug¯_`¥T]§bZ²gT¨XV¢_Q£aQ°RZ§TW¦XN°^b \g©]dªVg­K`­Hf®Gkµ=p½Bd½9j¾6l¼9}¹/xÊ+mŠ“³šµyœ·¥¯~£ª…”¯’®y—¼~¬w˜ªu ±€™­š¹•·Žšµ“¢À¢»œ¼”¥¹“£¾ ´–©·”¦­²¦¥°§ž¬¡Ÿ©š£Ÿž©¥¥¨¨®°©¥«²¡´¶œ®³¤³Àžª¿©¦Å«³Å©´Â³¶Æ·¯Æ¶®Å²¸Ä©¼Â±À¹´Ã½¶Ó¹·ÝµªÛ¶«Ö¾ Ú´¢ßº§ëàçÁ•åÔàÀŒãÁ•íƍæˍïǃó¸‰ñ³‡è·|à»{æȅæÂzé¾wôÀyチâ¾ußÄrçÇné¼pò½|ÿ½xÿ¹wÿ¾sÿÂpþ¾i÷Ãpñ¹‚俁繁àÁ‚ÜÒvÝÖuÞÛpãÓgäÓháÒvâÑrëÔmêÕmîÖmëänòáríÛgÜÉkÚÇeÛÍ]ØÐ]ÖË[ãÏ^àÕ_çËfàÉXêÉQæÇPêÏKäÖFïÎRôÉRçÉOßÉUåÀWð·QîºLó«Wí«Qê¼Uê¾JíºHæ²Lå¤UÞ¥Vޞ\Þ¤X×­TØ®Nã¥Xà¦PÙ¢SЭR׫VϳYɺOÔ¸JÍ·N˼V¾²S¿¯G±®@°³E«®D®­C®›8»–3·Œ2²:­:¯™8¶2±‘9´—:­£1¡ /›6˜¡6£–1 5¢™5 ž5’œ:ž•:›—-§£)§Ÿ-¥-©•(©Š'¦(¢‘1£‰.¥“-¨Œ*¦’&¡‘'©•0°)®"­˜#¨˜&›‘*‡*Œ®”)­“*­‘/œ‘3›”.  4œ›1žž8¥–>§Š4¨“B©F©ŽD¡~MœŠC•ŠE•}S–~X‹~RŽJ“„O„TY‰M_„yf‰gŒ|ZŠwb”fX…`V‡jequ‰kshoŽ[o‘[fWe–Zc“Oo–Wdž^gž`f–R`šJdªRi§^f¤a]°fgµde´[f¢RY X]ª]Z¦]V¨VQ¨[b¦^c²[a²Tl¦Qg«Jh®LxºGwÂGuÂ8kÉ6hÅ2vÇ)xÃ*o„ž¹y›µ|¨·ˆž±|ž®°›³}”·x—·r›«{—¬†–£~•®•«†¢¹ˆ¤½šª´¢œ²›£±’¨­’¤­—£­˜§¥—°¤¡©¬¢£› ¤š¡œ›š¯ŸŸª¦ ¤¨¦®´Ÿª®™¦« ©²—®±œ­À¨®Â©²É°©Ç²¬Å³«Ë¯©Ë³®Ë¸°Ä¾«Ç´­Ï¸²Ñµ¬çº±Û­¨Ø¯æ¾›à´šßµà¾”ܾ“áŠßȏðÍ~㼅åµ{òµyñ±€ò´|ë¿tê¾qâÁxßÆtæÃwãÂjèÅjë½tá¼ö½sòºƒñ¾ÿÄw÷ÅpÿÃeøÇzïºx轀çÃz케çÄrÞÏxÔÞgØÐdÞÙdå×dÝÍfêÒlàÖfâÚoïðpéÚeçàgàÒsàÅfÞÇhØÔ`ßÖeâÊhÝÑcëÉaæÐbáÍOæÃNÜÈVìÇRðÅZñÄMïËOíÇKç¾WäµSòµRä²Jí©Nê°LéÄSæ´Nå±KߪSß²Và¦KážPÛªVâ¡UÞ£^à©XѱVÙ·QÏ®TÈ©S̯OƲIι[Ì®X͹QÁ¶FÀ«M¬µ:«­@¤¢8² ?±š0ª”2§’4¯’7®Ž5´›4¯›?´š;¯¡0¤¤3™¤=ž3¤Ÿ4ž™3š—5œ’=•–:˜”+—¢'¤•.¤˜0 “!¬‹+¢‰­"ª…2§.£0²Œ*¡“0¦‡#°•0´£(§¢ ¯–&žš$ ‹/¦"›‡”"§—"œ™.¢Ÿ*¢ž7˜¦0¢Ÿ;¤ž=¯‹9­†<§„?ªE¤ƒA‡Dž…Mž€Hš„M„Z•‚O’~RŠ}K‰…OŽŒO…ŠP…€^ƒZ€a‡|PŒoK lS˜q^†ug‚rmet‰fmŽYo‡aa’\lŒRj’[r–Qo—eq•\o•Qj£Rc¡SiªZk¦\g§ae§as X`¡QRš^T¡[\¡Xb§L[ž]`¬Tb²Qo¨HiªPl²Rl¾RiÁG}¿Mwº;zÇ;wÅ?‚Ì)tÅ!pƒ›Àšº…›¿ƒ¤µ™®s›ªn“³s–±}Žº}•²š¶‚”¨Š–¬…œ«†£¬ˆ©º˜©«—ª••§šœ¬¡œ¬—§®œ©´šªª¨§¯¤¦ªš££›˜¢—¬¥¡²­¢¶¯¡¯¯¯­£¬–¤§›ª³›ž²žµ­ Å¯¥Ì²¬Ä¹¦À¸¤Ç°±Ò¹ªÑ´¨Ñ¶¬Ñ³§Ø±¨á±¦Ù«¤áµÜ¸›Ú°•Ö¬â¶‹ßÁ‡äÀ‹ấêÆ}ðÅtåµzî¶~õ¶yï¾ué½jéÇhåÂnè»oÙ¾cÝÄkâËmàËwéÅ~ï»|ð´}쾆ö½~ùÂvùÄoíº{î¾zðÃwíÀ~éÉzéÃßÒ|×ØoØÓpÚÓdèÖ`åÍgâÏaßÞaçÞeèêeòÜcêÖjæËjèÏsêÉuãÓsâÐoåÑbèÕ]ã×_àÐSæÉWã»`Þ»Zá¼PêÂVíÈOåÂYâÅJì¹Jñ»Xä¶Uë¬Uâ®Oà¯Hß»KݶEݸJÛ¶Ié­IðžYêžXñ `ìŸZÛ¡dÚ«\Ý´[Ñ°[Ñ¥KΧL΢S¢W£TʱUùUÅ´L»«K¯©>²­3¥¢4¦š6§”2¤‘2¬•=°‹H¨ŽB¦“Eª¡@§Ÿ7¬¡9¥§< ¦<¦¨;8–•4–”5¡–.¢“-¢”0Ÿ-œ(¦”%¡ˆŸ‡&ªŽ+¬‰(®†$¨†,²Œ#«‡'°‡"¨Š-­’.§›(±ž$­™¦‘¢Œ#§)ª‰&­’%£›$¦ž(› "–˜-™Ÿ4šŽ-©Œ2²‹0¬6¥‘9£…<žˆG¤@‚9™€C£wO›zV—zV—Y‘‡N‡ƒO†P‡L•S‘‚Y‘}YlKpJhRjWŠpa‡h^†nelnYi\i†VgXgŠ\sWyŸZsž[s ]s¡Xg•\l”Uf¤Yk¯Ul¨Xo Ynœ^\¤TT Z[§W]¢Ra¥Ve¤Vd«Vi¯Ij¯RmµNj¹Kh¼Ot¾Ky´DºHzÆ>}Ì/‚Ó$u‰µ|˜¶™»€¬¸vœ³r¤¶wš´j’ªtµx•«z—¯‹­| „—¡}™¬Œ§»Šž­—§°‘¤ª”¥¥Š©ª˜ ¦’««“­­˜¨¦™¨¥–ª–˜Ÿš¥¡¦¨ –®«§®£œ°¦ž¢¦˜®¨• ¬¢¥¶Ÿ¡´£¤¼¦®Ä¨¥¸¶«½´¦Ç­¨Ñ±§Í´ Ô²¡Ù²¦Í³˜Ò­Ÿá®—蹞᳖⯐䰒鳁黄޶€åȀìÅ|ð¾~í¶wö±sòÁkñ·nå³rèÂvèÌgç¾eÖÃiáºaâÆqïÃfìÃuçµp嵂ò½zñÊkù½kð·n÷½mñÈvïÁwæÂ{ñÂpðÑsåÒkÞßnáØjâÑcéÕoïÒdãÕgÛÖfÚçdáðnêájàÙhæÏvíÐwêÌsåÒsñÍläÛcäÔg×Ó]åÔ_àÒLáÆRäµYãÁXñ¿LâÅLåºMà¼Zð¶Oêµ]â·T×»RÙ¬QÙ·PÔ»EáµUׯJà­Qà·Fá®OÞ¡Yã©]ߛSå¦_ФPܨZЮLѪTÎ¥MӜEǞPÒ«VÑ®RÌ¡VÏ¥G¼®9´°3­ ?­›:ª¡<­<¥›4¡’>ž‘F±‘C¡Š?¤‘=³ž7±£D²ª@ª›A¨§7˜7œ¡,˜—4œ,¯—.š‘+¢—"¦ ) “$›‰œ‡$«‡/§‹.¯‘*¦'¦Œµ‹&­ ¨Ž#­Ž*Ÿš(‘0¦™$›‘*›—%‹)®Š3¦˜-§Ÿ/š•#‘“ š0Ÿ”4¤Ž6£š1¥/¨›,¯’> }Cª„G§yE¦|<œwD‘vFœ}P’vWŽ‹L„}M…QŠ†I•ŠW†O‹„Z–€^‹sPŒpPžcS•hW—v\‘scŽgj‘mb•[lŽ[j]p…[x‘Vr“YyŸUpž[v¡Ms•\u‹^m–Wc™To\t¥Nh¡[o¨^]§XaŸQe¥P\ªLlœJ`¡JX®Nm«Di´Rd·Gs®RtÃJr²MqµAy½F€À;{Ê8‚Ï$|ƒ“¼}œ·„¦À†­¸‚¬´x¦´uª¯kž«i¢­o¢®j™ t’¡~¢ }¡¢†Ÿ«~œµ€«­“«©“¬¤†¬«…°¦”¨§«¥–« “ª ¥Ÿ–¡˜”“œ™œ›œ™š¦¡®¢›²« ¯¢—¨ª–«©’§¬”§¯£©™«´£§±¤ ½´¨½¬¤Ç¨©Ç² Ã¬›Äª Ð­ ËµžÑ·“Ú¯—峝ﭓꯆç°}ß©€Ø¸„ܵ†îăïÀñ·yù²|û´nöºiò°jæ²uõ·móÇpë¸hä¹eéÆpéÂiè¿hè¶fëµiå­zéµlñÆhó¼n÷¹fï¼pôÂiöËlîÆtëÈpêÒnÝÕrÖÕsÛØjÞÔiâÕpçÐeéËjàÔpâÙiÛèsÜçtßÚnäßuãØoäÞlìÚbëÔ`îÖ[êÖaÜÄcãÆTëÊMò¾Hè½KáºNæÀMêºTâÃKÛ¿Räº\ݱXÞ±Y߯TØ·`à·WתMÛ©QÞ§Qß©GÜ°NÛ°Uã«SצUÜ¡\Ö¡[՛UߖWàœMÚ¤JٛJ˙Q΢F͙SӚWӞEȚBÁ¨7º¥3³©,®4¥¤5¨™5¡›=Ž<£„;ª‹@­‡<§9®—5¯©>¯¬B±ž>®ž7®Ÿ/®£:¨3£”2¯•4§™%™™"Ÿ•™$¤”'š‘(ª’%¬‘.²‹#®&¨‰'³Š ¯Ž(¤‹!+ž˜1›’5¥Š+¡–"•˜*–*£‘1¥˜*Ÿ–- ’-–”-Ÿ›.˜—'  $¥™-²”6°˜1¬Œ3¦ƒ8¡ˆ=¥Dš‚G”xMœuNyS–wIˆ„JŽƒKŽ…U„ŠZ‹WŽzQ‘WŒw`ŽuZŒn_’gWŠmT“j\‘rbŒme‹cd‘gn”[rˆZr„\rNuXtž[|”S‚›Mz›IjŽPk‹Uq•_l¢Xg To¨_k£]a§[e¨J^¡Ae¥Fm¡H\¨O[¨Oc¤Pp­Wf©Ok´Li¼Mt¿No¼>zµ9~¿<€Á0tÇ!u–¼ˆ•·›·‚­¶€¥ªwž°n£¢p¢ªh¤žn¥£uœšnš¢ƒ˜‚¤°€š±‚£ ­¨†°©ƒ¨¨Œ¥ª™« •žŽ¬§—¨—Ÿ™£¡“—œŒ¦“¤ž›¥“¢«¡¥¬¦¢‘¯¨–¬¤š¤´¡¯´ž¤³˜ª¹§¦¹±œ·®¥·ªœÁµŸÀ¨¡Ê¨–Ó²¡Óµ–Ó«ŸÜ¸˜Úµ•è¯™äµ”见䳍à§|Þ¨{䰂丂öÆîµ~ö·rþºoú´nù½oò·kë¹gùºgô¾qð­gôÀmìÄfë½cé´oè²oé¶tôºjëÃgõ¹níÄo÷ÈhúÌiøÍcéÅkçÔtæØmëÕqàÌmßÔißÕfãÓkáÜqÛÒoÝÔg×ànÝëpÚ×j×àpßÓpá×hçÔeìÝ]àÍcîÒbÝÎVßÐ]ÜÉ]ãÍJá»Tî·Ræ¾QÝÄGßÇSÙ¿TÕ¹Tè¿YÙ»bÓ¼[Ó·aÒ¸_ض^Ó²SÓ²QÖ§YÚ«VرFÞ¡Pä¦[ۙ[æ›Và¤ZÒ¡YÚ£QؚRٝNۚWՑV͛KϚWؘWӗHŗKÁŸ4À3ºœ;¶˜6ª˜3®Š@Ÿ“9¢G£‹6§—9¬ŠE®‰G¤£<ªž>¦ 5¨Ÿ9¤¦)²ž/¦¡)«¨/·›4³˜/Ÿ•*¢Ÿ¥“#‹"›•,•˜.¡‹2¥“.¢2«‡+¤"©ˆ#¬Ž%£‡-“%¥•*¡0–Ž/œ“1“1™š&–ž(—“6Ÿ*”)–š'šš5 ˜1¢š* š%Ÿš8£˜=«”<©‹9¨‰8¥:™<•‚E“|SJ‹~R‘{Y—ƒZ‘…c–wVŽ{e‹‰U’}Qz\‹q[ŽyT’sTwO’mV›f]k`‘j]–qlˆia„\t…Sw‰Wx’K]•OsšUy™Uu—IsžYv—W{¡Uz¤Pi¢\i¦P`žRl§Da¡Ae¡En§Hc¬K[«La®Lp§Nt©Jg±DmÂF{ÅBr»=yÇ3~Ä6|Ð1zÃ.|‚š°ƒ‘²„“ºv£¸y«¯~¢¥r¡¥uœ£n¢¢m——q–¢všx¢œƒ¥©†£«…£¤§¡‚ž¢™…­ž¢¡•§“›£–¡¤¢™œ•œ’’Ÿ•ž—‰ª’Œ¥˜‰«¤—¥ ˜ŸªŽ¦¬‹¡­•ª¤±ªœ¨¬ ¥®§™¶¢•®¤”º®œ¾´”Ë­ŽÒ¯”Óµ“×·œà¼”Ü°æ³‹äº‹ñ»‚íªŠã¦‹ãª†Ú¢}Ý©wã±ë»zðµyùÀrø¹lô´jó½eó¾ló¶eôºjú®nô±oø¯gí¼jï½iíÂkç¶tì¸kî®iì²uñ¿wîÀlîÃcðÑdóÚkõÑfñÎkóÔtéÔmêÎpàÎtßÝpÙÛqÛÜnÓÖfÕÖm×ÞoßÞnåÖaÜÝdÚØ_ßÚaÚØaàØaàÑ\åÈXéÈRãÏSÜÏOãÃUêÀ[èÂRè¾SÞÁQàÁUÓ¸VϾ^ÜÄ]Ü»ZÙµUâ°`Ü·aâ¬[Û±Tã«^Ú¤WߟPߣOâ©Tã¤Rç–Nå—Yå [؟Qڛ^á ZÕ£V؜SۚNڌYГNϑNȌBŊDǐC¸”:–4º‰3´‡;©‹>§—G«•@¯˜=¦›?« B°”E¨¡E©A§ 7¤¨-¬ 3«§,µ«1¶©-¯¥)­ž(¦ ©™'¥—&š –ˆ,¡'˜”,œ—*¥•2 ‰0„)¨*­€$«ƒ,‰/œ„&ž‰/•”.-›’.‘Ÿ&˜›)œŸ(£—0—”,™Ž2žŒ7¡’+¦†1§‰+£. 7›‰*¢‡. ƒ;ˆ9¡{D¡{@“…A”ƒNš€UŽ|Y„[–{`ŽtgŽ~a˜ˆf˜‚[”]•v[—pW•uW t\œuR•pX—nW—hZ‹kZ†[hŽZm‰X~‡T}”M~‘S|G}‹Lv“Is—S{œT€O}žWršTn›WhžHm¨Hs£Gm©Ge¤;i¥>fžDg§@k¨:k´>l°Ct´@q¼Gy¼DzÀ«ˆ6¯ƒB¤Œ4´™B±šA¢¥>°¥=£žLª’Cž”FŸ™6›—.£ž*­™'­¥(©¥"«•$©¡%¤“"©”(©–-•Œ–…0ž‘+œ“ ™‹)¡(Ÿ/¬•+¦Ž,¢–)¯Ÿ’/™ˆ%¢#–›$œ‘2šž(œŽ4š4Ÿ—)ª–)¦’)™‰, (ž•(™—)ª•.ž˜/œ:’†7ž1‚1–…:˜{Bžx>Š|I‡‹R–~X‹t[™‚R yV„bŽ}b•tQšT˜oWŽkak]•r\p[¡sc’iV˜sRfV‡b^•hp—fxŒSmLs•W}‘YzŠV{…U€ŒMr’KuM‚•K™I{ Rx£Xj•Tp”Nu”Rj–LfŸCl§Gf¤QuNq¦Cy¦Ir®A€¦Mƒ·CºG{¹6¼AuÆ8ŠÉ4€Ñ6Šm‰«w¯xˆ¬}”µq‹³rª‚–ª€•«t’©m§x—šy£”} ™„©™ƒ¡ ‡¡‹¢¤‚§šƒ£˜ˆœ›£¥‡  †ª–¨Œ£ž’Ÿž‹ œ”’–ž•ž››ž¡£ª¦¢«¬¤¥§–ª¤¡±•ž¬¥³šš³›œ¸¤ ¬¤›±ª‘±¥˜Á¨¿­À³˜¿´ Î©¡Ì±šÛ´“Ö·‘Ôª†Ú±~Ù¨…Þ³ŒÝ®‚â¬~ì¶ró¾nô½uòÁjæ½bë¹Zù¹]ÿ»e÷¶jú½k÷½còÅgë½dàµb߶oá½sî¼eñµoó¹wïÂrâÀoÜÄqßÉcèÍ]ò¿_æÄgãÏ^ìÊhñÓdôÑgïÇtëÂ}ÛÎwÚÑ{ÑÙq×ÝgÜÛgØÚdÙárÔápÐÜhÚÎfÖÎXÖÆ_çÂ\êÀXßÅJß¿KìÆOîÈUíÇVë¹VؼNÕÆKÏÇIÓÆLϳZÔ¶aÌ´`Þ¼Sà²RÒ­Rз`Ô±bç²Tá¤PÝ£VߚLæžPä™Oà”Mà’IٙGۜGݧV× NߨEΪSΜO՗BЌAґ?ύCӘ@œF¶ŽJ´’?¼‘G»ŒH²‘C±‹5®‹5«—8¯–>ª FŸ£<Ÿ¥A¦ŸFŸ“9©-¢•,¥›(¨œ,¥š#­‘&³“!¯ )­¥*©™,¥Š0€+£5£Ž/žŽ)¢$¥%ž—"¨Ž#©–+¦(ª‘ ¥Ž,–“5¡‘.£—'œ(œ)—”-‘. ™4§›*™Ž$™’ ™!–’,•œ2 š1—“0˜”:•Ž:Ž„?“Š7™„9‘{D‹}B‡yH†‚U“xQ‘z[yWšyX’z\•{R}^xXŒr`kXšpZ¢qe£f_škfœu`‘rZ—kdjh•ip’cyUvˆRq”Yv•TzŒL{‰OzˆRŠNw‰PpQwžL€ŸNy™Ip—Uv”Op“Ug—DgDb¦Jh¡Ou£J{šHyžF¥L¡J‡«M„·K‚½9zÉ9†Ã>Ç=„Ò<ƒn|²|Œ¶xˆª´x˜²r–¬‚Š§w’¬u“£oˆ¦p•p¢”z¢—}©¡{¤›ˆ©¤§—‡¥š…—’Žœ–‹’ž’¢£ˆ¡–“«¥Ž¢•’ž›–¢”–’ž£¡“›™¥©£¬ œ§­£§¥šž«£¡®¨­ ©¬Ÿ¤³±¦±¦š´¸™¹¶ŠÂ±“ꊵ±’À±¢Ñ ›Æ¤”Ì¥™Ú³…Ö¦ˆÐ¢‹Ù°Œà¤~ܳ€Ý»~óÁzî½gø¿rö¶bæ½bôº^óÀZìÂ]ú½iô»kñ¸aï³föÄmà¼fÚ¿iéÁgé·oñÃrò°vé³oãÄiêÃeàÎbëÆgîÀhãÀlàÎZßÓhß×véÔmæËußÍxÚÊjØÕtÙÙv×ÓkÜÖoØåkÒåwÓÒsÐÛoÖÐjÓÑdÙËWÜÆXèÇUÞÃMæ»GéÀKã¼[èÄ`ãÇYÖ·SÒ½LËÂFÆÄNȶ^ɶ`Ô«a×»WÓ®ZÔ©QÙªbã°ZèŸQâœ^á¦Sé¦Tە[å–PæIߘBڞNè¤Nè®På›LӜ>Ԗ@̘NԖ@ڔ;ԎI̓C¾ŠDÁŠK¿Ž>»‰LÁ„?µ“EºF©>«…@¡ŠA¥¡BŸ >£ 7•š0–—4›’-œŸ/¬š4°¢0°–3º”+¶—1¹“-®˜4¬œ.µ$¢/ª},œƒ2Ÿ‰-¡5°Œ1©,¥›-¦›&´’$¯”%®žŸ’0£Ÿ:““4œŽ6œ6””.œ•&“œ-˜˜(¬'—‘"”'•'–&›0Ÿœ*›1••>•ˆ:Šx.š…=“=šC‡ƒDˆ‹HQ”…U’‚SyTvQ–yT˜yT‹uY‹y[•kT˜mZ˜mažu_•o`šrWŠkg“n]hf‚hjŠ`wŽexWtƒPyX~’\q‡U‚Vr„Xz”Hx–S{LƒŒNxKm’Mx“VhšTq[e›Uc˜UeŸKgKoŸU‚—HœS‚¢EŽ¬J…´D‹·Eµ<Å9ŒÁ<Ì=†Ï8~{„¯z‚®q‘°y—¯x·ƒ•²†²|…¥u…¦s˜z›¢wžœz•˜}˜—}—ž¤§€«¤€¢™‰Ÿ£Ž“œ‡’“Œœ˜Š›•’ª›Ÿªš ¤’Ÿ§‘žšž“—¢—–¨“¥ ¤¦Ÿ¢™¢¡œŸ¡ª£¥§ž«¯¦³¨¢®©®­ ¥®–§¹“®¼‰µ±‰½¹–¸²”»©”ƤŸÏ¢™ÊŸÇ©“ѯÛ­”Þ§‡å¥ß´‰è´ƒî¼që´ní±gî¹aô½\øÆXñÃYúÃXñ¸aõ±iù²gú¼kó¾læ²qå·tã½xä¿xë»m÷·sý¿yó·näµhàÂjÔ¾vÙ¼rÝ»jàÆgàÏuÙÍzØÔvàËzÞÎkÑÆmÔÐmÖÊt×ËrÊÛoÒÕuÒÜtÙÎuÙÐjØÉcÏÇbÑÊfß¿XÝÉKéÄJïÃNå»Rê¶Zç½\ì¹Nâ½MßÁLÍÁRйRϲY×·XϲXȱWÍ´ZÚ¯]تTקTå™Uà™Pè\éŸ_áZݤVä™Hî–@éšGߧAã£LÜ¡HїC̗GÑ @ӝFҌCÆCÁDÁ•FÀ‹?ňA‹KºŒG´‹@±@¥ˆ<ª‹J¦I­œN¥£E™š>™™0—“0Ÿš-§œ1§š7¯œ8º›>µ¤A¼:º‘;³.¶“*°‡"®‰,§ƒ+°3§ƒ3®‘5°/§™&­™+©ž%¯›©¢Ÿ!¥¤2¡ž1–¡7’5’›8—6ˆ˜,š'“—. +Ÿ‘2š”+‘&‘ž%’˜4—™1“6‰…2†„4’z*”…1›„6ž:“ŒAŒPŠ‚SŠ„O{M’zZŒqYrN•wRŒqSmZœnU›oY¡j]›mc˜jZ‘sYŒiaŒpa‡qc…hs_x‰cy†ZzŒVŽ]}•Tu•Vz‹VxŽR~‘Sƒ—[yU–Sw’Rpœ]r›\hŸbk˜XjWg—\t™Yt£Pt¥O|ŸW†©P‰£O‹«MºG¶F¾I´L‘»Aˆ·;À<Šv‰«~~³|Š®x†¦€—²{‘¨€…³€Š¨vsŽ ~¤{—›x¢˜¤…œ¢›¨†¦¥ƒ¤¡…›’“Ž•Žˆ£Œ¨”—¬””š–ž¢š’——¡Ÿ’£ ž£¢ž¯®¢¡›ž¢¨ž¥Ÿ§²°¢¦ª£µ©£® ¨¨˜£³Œµ¦“¸­†´«“º¬’¾¥œÄ›šÃ©Â¥•Òµ’Э‘Ôµ„屉筍ݰŒæ²yî½tã½uá­qí¾]ð±jé¾Zô½[ê¿_ë¹gö¸bó¨]æ³dç¼dî²të¾kçµtîÃqó¯oç´dó¾uô¿läÊiÛÄdåÀeÕ»nÞÌqÚËsâÆnÙÐs×Ó~àÖnØ×jÍÊt×ÌhÎÓoÑÖrÓØrÌÞlÓÜmÌØfÖËcÑÉjȼaØÆVÞ¾TÝÃIèºJâ¹UìµSÞ¸^ß³[â¯NØ·ZθNËÄIÌ·UѼP̲Y×®^Ú»]Ò¬PÕ­[ЮWÖ£XۗRêŸRôŸIèŸOâ¥Uê›NڍLè”CےHØ£H՚IϤNÒ£?ٝIË¢<ՓCɌFЅH½ƒF½„=¾‰;ÁBÁ‰L¹Œ>¾>¯„:³‘5 >ªŽB©›@žœ9©‘Dœ@­ ;¢“0ª =¯™?µ“;¼˜@¹—@¹™9·œ,«‹)².·‰*¨….³,²„-·‡:³Š(±‰!®™0©ž.ª%¨Ž ¥ž™ !–” ¡5œ—;Ž=š3”“3‘”7–¥',›—$›Œ–‹›'”¥–œ-—•+‘‡0Ž,•~+†x-ˆ+”Š8ŠxAŽ~@’uPŽ„QŽMƒzLŒxY—x[‘mX’zc‘yZ•wb‘t[–dc’r^Ÿhe™la›mh˜lY‹kcˆll†`l’fo‘ps”bu‘Zˆ—_s‹Pu‡boŠ_mŒX}˜\†PyŽX€‘Y|Ws—bj fc›_obu˜Xt¢Ypž^|œTt—]zŸT…¢Uˆ¯Oˆ¶L‹«J’ºI”»O—·A…°I‚µEÌBŽr‡§v„«v€¤w†¬xƒ±wˆ®t|±y~²{‚®~•¥˜«|‘¦z Ÿž›ˆ–­—­Šœ£„™§–›ˆœ‘ —¥‰¯˜‹§—˜™’š–™œ™’©“¢ž¢žŸ©¥¨££¨¥¥¢ªŸ›¢¦¡¡®ž¦£”®®š´ ˜¯ ”µŸˆ®¡µ¨¸£’¾¤šÁ£’ݙə–š“¼ª”Ê®ŠÓ¼ƒÜ·„Þ©ŠÞ¦‡ç±€ä©vá±oÚ½fä·lç¯hâ¯gëµeë¾QíÆZðÂbì³fè¬cí¶cçºeßÀmæ´në¶hì¸lð¶hã°féºuíÅ{ìÅ{äÇnÝÇmßÈjÕÁrÜÄxÕËtØÄwÝÉwãÚrÝáiÖ×oÔÖcÒ×hÏÖbÊÔhÍÝg×ÙqØÎcÈÔeÉÈ\Ò¹[ξVÔ¾WÝÀOí¿Hä¿Hã½Xç±Xâ³XÕ¸SÔ¯WͳKÌÁNÕÈCÑÀI×»YÔ¸\Óº_à¬WÚ®RÕ­Nß©NÚ¡Pá¦HîžGå—JåžNäŸDáŽHيGۖQ؜PНB˕K՞JÜ£CÑ IՓFȎI͎>dž@½‹@·•CÀ•@ƃJʃM¿A¾‹3¯6­‡<Ž<›ˆ>¤‘>­’F¬’C·‘3°™2§•:­•G¦ŽL­˜@·–@½ 3°’7´Š.«ƒ,­‰;ªŠ-±Ž)´Š-¹€2º0¾#²Œ+©•)¢+©’"¢‹› œ™#–’0›˜=–’8œ1–Ÿ9‘¥4˜ž&˜“(›™““!˜Ÿ%Žœˆš‹‘'Ž&Œy0‘~;‹…7—†2“4’|7Št>ƒp<‚tK~€Pˆ€O‰‚Tšvd—zf—sc{[’yY‘u\ihšgh£ma›qcžhf˜ad˜i^Šheejˆs{Žp}Šqz—g‹f{[t“_{‰aq–^€™X}‰\x†O{ˆSz†Ypaf˜_lbr—`ušTl¨VnªWxœW€–Y{ŸX…§Xƒ°Y¨L…©NŠ¯C—±H—°O•³E¾>†ÊB†p|¯j{²s…²pz³oz½zƒÀr|º||°…‡±‡–³z“¨}Œ¨xŸ|•˜‚–Ÿ‚œŸ‘‡’¨€œ›‹’˜’ž’”Œ–••œ˜¢–¥••£“ª£›ž  ©—Ÿ¥•®§§¬¤—¡¬œ­¤£¨§³¥—´¢—»¨—« —º Šµ£‡¹ª•¹¨‹²®”¯¤º¨•¼—“¼ ‘¸«šÀµŒÇ¶Ö¶Ó²~à¸yê­xä¶nà¾gã»så¯nÝ«låªdä¸Té¼XêºUò´_å¹Sâ¬\íºWâ»YèÂdâ¾rå¯hð°jâºké¼mç¹mæ»mê¼pçÃxßÐåÊpåÉ{ÚËrÞÎrÙ×uâÖráÙuÖÜnÖÐ}ÒÐxÐÜdÒÔcÊÏrÒÕiÊàeÖØnÔÕqÏÆ]ÑÄXÒ»TÚÃPãÀ[ïÄJÚ½KèµTä¬Lç¬Ná±UÕ³VײQѹSÔ¶UÍÃJÙ±MÔ±NÑ«[× L×°TÙ¢FÖ®RÞªSæ˜HçœEêžSݑM՚WۓV֟WәGِQɐ>ʞLÖ£OÙ¥LܚA˕JǍ;ÁŠBƎGÀ‡NƏ@ȋEÀ@ƄI¾@½‡:¶“9¦9Ÿ–1¨‘1£2©”8¯Œ>´™E¼œ=®Ž<¶ŽB°•B¸¡Bº–6¶¥1¾’/°˜;«Ž<¹”<¯6¸‘5½‘$¾…1°)µ‹$¸” ª“±#¤›œ–"˜—- Œ"š(“•8“’9;œ¢:—.“Ÿ0‹™‹––•‰š‹žˆ™!Ž#‚ƒ$†€/’z8ŠxA’‚=t6†:’u:s@uJ‹uLxK–yZ˜{fœ}\ ncra’wgžjj™po¥al¤cX¤ngbd¦md”j[˜^išgb–nzpyŽnƒ—q|Šgr^n•iŽm{˜a}c{PzŠ\z”YyŒVu‰Xq’X|•^lžax [w›V{N{¡N‚¨ZŠ¥Kˆ©S²\‘³O‹¥B®PŒ¸N”µ>±G¼I¾9hƒ°jy¿s{Ár}½wyÉ}yÃ}ˆÂ}†·~Ž±‚¯xŠ·vŠ´w‹¨†–¥–©†’¡„‘¢}›˜„˜„—“‘–“’‘•˜œ‘˜›™™¤–§ ¡ “£™Ÿ‘¡£“¡³’¥²š¨¶§¤·¢£®£ª±š©¹–Ÿ¹—˜´¢”³¥–»£™¹©Ž»ª‰²¦«¤–¬ªŒº­»¡Œ¹²†ÃµÌ¶ŽÉµЯ„Ô·|Û·uÝ´tݺlÛºlà³må³méªbë¯^ä¯Vî¿Zè·Lð·Oò°Yä¶Yà´Vç¿Uï»déºfî®cê²lé¼oß¹kêÀqïÁkè½sëÆ}îÆ{ãȅî҃éÌ|ÞØ}áÙoÔÜkÔÕwÕÛrÊÓ|ÖÒzÕÝqÓÙm×ÙjÓÝeÌÕiÊÛnÕÐoßÅcܾcØ¿]â»XèÀWà»UåµIÜ­Hå®KÞ²KݳMܾSܾTиTÚ²UÖ¹YÖ´XÒ±QÕ¥KÖ¤Ká®Iá¨Lå§WÝ¢PáœLà•EٙM܍TߙOՖTҗN͞LҙM̒Aԙ@̝EΚ=؝?Д6ț=ŞGĒJƏJĐNȕH½GÊ>¾ˆB¿‹7±“9¦.¢2œ‘9¢“5›‹5¥‡C­=¶ŽD»“L´B­–<´œG¼™<´ž<»š;²˜=µ˜>¹™9µ1¸Š1¯.³Œ±ŒºŽ °–%¯š ª’#§“¥›&™–()•”0‹.—Ž5™”8–˜,–+‡“-“+‰œŠ‘‰•‰‘‚”%‰‹+‹Œ-‰1ƒ3„v@Š|FŒz;•wEŽuBvOŒzN{KsSœwT›ta}k¡ug¢|_žtg ke¦ekªf[Ÿc\Ÿ^g¤ge¥[cž_ažiišgfŒsoˆqx‚ut†ww‚w€oyŠt~‘n{™mv‘^|“[q™Wl›]s[o‹ZwšS|—U}¢Yw—]†šTƒ Z¦SŠ¢J…¤M…±L®O‹§M“¦CŠ´J²F·K‡µC’¸9Â7Œe±iv®s…¶nŠ»}~½ƒ°zx²x{µ…‰ºˆ²~‹«t§r“ªš›y™ †Œ›‹— Œ–…–Ÿ‰¤˜™–’‘—¡›™¡ “Ÿ¤˜«™ŸŸ¤–™¡˜—œ®”Ÿ¬Œ¦³£¨²™Ÿ´˜¤¯ž¢¦›¢¬¢ ²¢¤š‘µ ´Ÿ~°¥’« •¨ ‰ª£‡¾›‡¹£¹¨Ä­Ì³„ïwÖ®Í¹t׸wâ´sÔ¬uå³lè®lã»eð½Zö°YêÀVí¶Pð´SçÀ]áÂRä³Uâ¼^çºeâÁeÜÁpà´fá¯cé±aÙ¶kè´ièÀgãÉvã¿zÞÄxݽ~×ÃzÜЃÛÓäÍyÑÌw××kÓÍ}ÆÈ{ÆÜl×änØàtÖÓmÎÙdØÙlÏÎeÒÙ_ÖÎbÖÂeãÆWåÆMÚÅUÙ½LÖ¾SØ®V׺Mß»C×ÂIݶVÌÁPDZLÕ¸[Ùµ]ͯPÒ·RÒ­FӛOҟD՞PߟMä›Mâ”EەOߜF֕NӜM֕_Η[Ë VƔAŔBЛ@ۜKס=ЗBٞLƞHǛDƒGĐM˓G¿‘L½I¾Ž<¸•:±‰:®–5ª=¨;¢ž0¨•< Ž:>©ŠF¨–>µH©ŒJ­˜D® ?·œA±š>©Ž6²Š@¨–A°“>©‹0¯†.·…%·“,­Œ#­%ª'«š«’³™§“# ”!£š-’Ž4—/–’)‹š4–˜/Ž $‰#™-ƒ•Ž%†‘ˆ¢%Žš%Œƒ%‡Ž*‚Ž/†v/‡9‘r4ŠzE“C‚EŽzL‡rG‰sM™€\•{X§yZ©oh wl {d¨yt¤oo du›gf¤uW¦a_ kn¢\g¤e`›nnŸinŠioxvz–rtŽu{ŒjkŒn~n{”b„”cy‹\užbseqgq–^s§Q‚¦aw¡Pq¥SwœUv£S®MŠ®X¤N«HºC†¥NŠ¤I‚³OŒ­Q•±BŽ¶F»D‘»1Šb~¤h~ªcƒ¯o‰¶n®xƒ­n}´o€½±„Œ§v’©r‰¡sŠœu™›z“¡~Ÿ†“§‹Ž£}ž¢Ÿ‡—ˆ——¨¢¬”¦­”¤œŸ£§˜¡šš¦§£¤¥²Ÿ£³Œ›«›± Ÿªœ›«—™¦–ž¤¦ ¦–˜¡–›Ž£—›žƒ£¥“©§Œ³˜ˆ¸žŽÃš”Ç¢†½¢{¾¦|ȲzιuÒ¶qÔ·{Öºwß®så¦aÝ®]á³bâ°Zó»[ôÁVæ¶Wíº[éÀcìÁbæ¼_é¾cçºiÞ¸uÞ½që»géµjè¿fÙ¼cÛ¸pé½rëÁæ½|ÛÇxÛÃÔΆÔ΀ÙÅzØÆwÐÒlÐØmÍ×qÓÌvÖÝsÇÝn×ÏhÙÎhÖÏrÖÜmØÔiÓÐWÏËUÐÄcÝÊ`ÜÃOÐÈKÕÂTÚ·RÞ¶R×ÂHßÀIÛÃJÜ»MËÀJ÷OȸUÕ³TÛ­U×­RάGԛJїH؛FߒCàšIޔLؓJÛ¤EÔ¦MΛS̖ZÉ¢ŢQàDțGבGٔJÒ¢G؞HםTїOďF¸“FÀ™Dȕ@ʙI»A¼7·›=²–>´ˆ3¶<¯š6§¡7Ÿœ1£’5£ŒH¦ŠI£–E­žA®–J¹£Nµ¢Aµ‘<­=¢ŠB§‹:¥A¦†@°~=ª-«ˆ'ª‘1²+±‘ ¹±’¯²™!«”«ž$£œ/˜‘)›Ž&‘.ˆ 0ž.–¡"——$Š“(ŠŒ)Ž.ˆ‘)š+‹™#‹’"‰Œ•1ŠŒ6†‰/„x5„s5’uB‘‚OŠˆP‰yOzG‘uG|Tªz_©wa¨{gœ|i§pq¥mq£ru¡sn™qhv[šw\—hižjk¨ccœmqœoq“mwŠpwŠt}•|~•pulnˆl{Šh~…mƒ‘f…ŒjŠ”d†\Še}e†¤^~¢Vv¡Wp¬Qt¥Rs±Pv«N±O‰³VŠ²Gˆ´E€·Oz©K€¤SŽ¨L‘®J–ÀG‹È<‹¾<f€ª`{±b€°c‚¨q~§w€«w…µs„°‚„µ…€¦ƒ” v›~‰œsŠ¦„ˆ¦|›}‹§‚›¢Œ˜•~¢˜‚›•“—”–›–¨ª˜™§– ™Ÿªš¥¤­—ª¨˜¯™œ²œ©‘•±ž•¬¢®š›¤–¤™œ ˜’ž›“¥š«“†¢š­Ÿƒžž°«³¡|Àœˆº£Š¾™„¿¡„È©wÒ²xˬrÕ±uܸqÕ·mÜ®kå®`ܧhá¶aêµ\ó´Vçµbð¶\ìÀ\æÀaá¹`ãÄVàÅeî·eæÁtÞ¼nç¶jß¼pؽlÓ´\ݵpê¸vèÄqßÅuéǂÔÄtÙÐÙÉrÖÒpÇÓqÓÍnØÔjÐÑiÚÛqÏÖxÐâkÓÕlÓ×_ÝÜcØÛaÖÍ`ãÍQÓÏUÍÀbÚÀTâËUá¾OÙ¹[׿QÛ´VÖ»IܺKоJ×¼QÔ®X̼NϪWשPѦ[ܯ^Ù¤WϖIӑFÔ AݓDזDޑSРFÚ£QТDÍ¢NȘ^ͤVˤPÒªUŚN˜HÚ¤DזPϝE՝I̐FƑA¿ DÞK»—D½ G´ž@·‘Eº”AµŠ6±ƒ5­@¨”@¤–6¦–<¤¡A©J¨œFž“JžR°ŸT§£R¶E·•K¯’?©ˆ:©Ž:®:±…C­<®ˆ1«‰)¬ž*²!¨›#µ˜'¯˜!²¢¹£ª$¡£$¥™&‘›&œ’3“›06”'’”3–˜&†Š$€‘2Œ‰'Œ‹!Œ–*—#‚“+‡“'‚“1ˆŒ2’A‡F—}:—E†E‡{FŒ€I™†V¡z]w\¤wc§uk›mp£yi§rtŸkr­nh¬wpžm[ xo¦lr£hn¦ej§sq’uq—mp“r{’pršnx“s{kn”hr’ky—g‹š`ˆ˜k‡”h‹Œl…›f}’\ˆ¬Uˆ¥W¡OsŸ^ož\{©Uv­S~¬O‚©I„­P}²CƒµF}·A~¬H†¬A–»<ŠÄ<Ç6Ç4‰[Ÿ\ˆ¬h‰©f‚ªl„©w…¬yˆ©t|°{{³‚‚¬€…›–›|Œ–‚ˆ¡…Š¦z¢~”¢š¢‚ž”†¢–™”“¡–“¦ ©•˜ž–¡¤Ÿœ«£¢¨¡¡¥š«™–®˜§’“©“›¦Ÿ ¥§›§¥¤™™™™ˆœŸ†ž”« ƒ©œ~£™‰§§ƒº«x»«{¨z¾›ˆ¼˜‘¾•ˆÎ ƒÎ£‚Ø«uÕ«wÎ¥zÕ¯qÕ£jקcÞª]ë­]è¨eñ³^í³Sî·Yé½\è²`êÁgÞÂ\à¼dä½hãÅjâ½tÛ¹sã½pä¾sÝ»fâ¾ué¿u踂ç»ÛÊ{ÚËtÒÐoÓÇrÔÊyÇÏqÍÖnÏÑwÇ×qÏÝmÆØjÍÖmÑÔfØÛ`ãÕYÜÒ^çÐXáÐXãÇ^Ù¿VáÅVßÂKصNÕ·RÒ¶NʲJÖ¸QÑÁUϲTÑ´RÍ·Xʱ^ΫRǬT΢_Ó¢^֖XҔR֓SܚLӒQ̔KƖKѝNͪDȪKÅ¢PÊ©XÊ©QצXÛªYÒ¨XЩTФMÇ S͗GГGƖIßNÁ¤F¸¡E´¥E´œN¸ŸI»›I¿”Fµ‡;³‰@±‹?¦•D§@¢š@¢¡E  >¤žJ ˜Fœ–O¤™R³’U·˜Pµ‘C§Œ<°<«‡9¥’3­7°Œ;¬Š3ª˜.®š0§›0«š%¨’¯›©§²¦!¤ª"›¦)•¡'˜¢0š¤-•˜3šŽ3–‘.Œ‹(Š‡-~‡'‚.ƒ”.„”"~š(ƒ“"…—‰'(„ˆ.’5ŽŒ<’F˜„B‹?Ž„@•EŒ‡Q’~X¡ƒTœ‚b§t_¤j]¥jj¨sežri¢w`ªvg±~l¦ulŸzi¤rt«kv¢op xr™pg™xmŸxr or£l}›rt”tx˜f”f‚œ`ˆ—\‰“aƒ’dŒ›`‡›g‡£`}£Z„¡\«Tt©Pv¥WŸZ{žSz¥EwªGy«@‚»I…¸A†·@Œ¾:Œ³E‰¶>ˆ¼8ˆÀ?Å=‡cŽ¯`¦gˆ¡lŒ¥e~ªh~·ey°p{µm«zŠ°sœv— r§€’©sž~œ~¨}™…™’‹®— Š ž™¤“—Ÿ—ž” °— ¡›˜›Ÿ« Ÿ©›–¦¡“²˜–¤Ÿ¡¦Ÿ¥­ž•Ÿ ˜››”§š‰¡”ˆ¨–…¦’Š™†¬©|®¤º«†¬‚³˜„¸š‡½œƒºš‡ÃžsǨ{ظnЬoÚ§vѤsà±`ã²aåµ^â·hàÁWéÀ[öÀVä²\í®fã´[á¼[àÃcÚ·nÚ¸yÞÀnæ´v×»m׸iسrçÀeçÃpâ»uä½åºzÒÇ}ÛÍnØÄqÖÊjÉÇpÑÒwÕÒjÚÔmÔ×kÑÒfÎÒvÓØ`ÐÐgÓÌ_ÞÆSÔÂRäÅVÖÉLÛÀN×½PÚ¾P̾TÉÄXÊÁNÑ»PÐÄOÊÉKÛºUݱ]Ƶ`Á¨WͬZÏ´]Ö§\͞c͕Q̛MܕJТMʤFӝRҜPÉ£WÓ¡XɧE̟UÇ¢MɬNÒ¬QÈ°WÖ¦^Ï¡WÁV͙JÓMÈ E¼™I˝Q¬AëOœP¿™L³ Mº J¬“I¶˜J¤‘>¬’;³–8®˜8¥ŠC¤’9£’?Ÿ•>˜‹?œ–A¡ŸHª˜H­¢F§—HŸ—C£…7¤‡6«“;¦‰3¤•6£’4®‡1¯0®‘2¯–/³"¯š¥ª"«®%¬§¨˜%¡—%• 0™¡;Žž/‡™3‰”,…Œ5ˆ™'{•*y)€™*„–z— }–‘(‘+‘—*Š”5‘“8‰Ž2‡@˜‡<™F†7‘ƒCŠ’T™Qª~O«wV¨tg§rl¯plªl^¢{`¡}f¤}m°to©liªugªzp¬ll¢w~œlm¨~r™~vœzt™wz•du™fm˜qu™tr›l}—aˆœf…’iŽ]žb†›`ž^y›WvžW~¯_u§Z€£Uƒ¤Oz¥R‚¤J®L}±J}´R´A†»>’¹?‚º@‰µB‡µ:ŽËB’Ê;†^ˆŸS€¥a¡f‰¥n‡¤ez²]}ªd‚³g”­e•¨h‘œp‘Ÿ|Œ§xŸuŒ y–¡t“œt”˜y¤Ž~«Š‚¬—¦•–œ˜–¡Ž•¨‰œª’£¤’›œŽš˜‘©£ž¦™ž¯˜˜ª¡ ™™›©Ž¤¬’¥¨“ª£‰±¦€©žzœ—xž”„§˜|¦¦‚­œ†§™€ª›ƒ´’}½›ƒ¹ª„Ųƨr˵mʶpЫtÜ­sݧpÚ¯hà¯eÝÀlâ¹`ßÂZâÅSôÃWïÆbá¹`ßÃfæ¿dÞÅiá¾påÀs߸vâ±wÖ¸qдzØ´tݼjâÈiâÅgáÅqØÀxØ¿uÚÀyÐÇlÖÆqÑÃtÜÍsÖÏlÞËhÚÊnÞØpÐØoÓÚnÌÕ_ÒÉQÏÃPÓ·]×¼XÕËTÜÈKßÉPлIÄ¿MÈÃXÄÆK̽LϾRÔÉPÙ¼]Ù¸`Ù®eȯZÙ¨YݪbژeؖdӓZԒQ֜TϚQƛOʦOÄ¢NȚ[͞WÔ¬LÓ¨GҟPÒ¬YʯPÄ´U˪bȤV¾™P¿›QŕFŝQÜLÉ£GĬF¼®D¾žIÀ O¼ EªŸK¦•Bœ•D ŽB¯–C¯•7¯‹:¡‹BA™@˜Œ?œŠBœ“;¥—<¬›F¦šH«žC¢’C¦“6¥„0¤’5¯’1­Ž+«Š+²Š/­ˆ&©Ž1¬,¤¨*¦¦ ¡©(§¬%§¤!ª—.© 7¡š/”2Œ’6ƒ›.„—+‡—(} 1y”5u™(p¢#w {œ‡‘Œ—Žž ŒŸ-‰˜+…‘.‰“5Š‹;„FŽ…>–<”D™‹Nœ}W¤zO®v^ªpf®q^¨m^›odšsdzr§vn¥zj¨og¢tp¤kž|u¤nz©|u­|~¥rt—wmŸhy—jv”snŒqk‰s€•k†Ÿg‰˜e‡Ÿ]™\†–Z_ƒ”j{œeu bt£Xk©Y~¤X‚šP‹Dƒ¦Gˆ¬K€¤Bƒ­J´C‡Á@Š»:Ä=Š½5†½:“Æ>”Ì7‹R‚ªZ‚§]Œ¨\‹ª\³a®[ˆ°k…±aŒ­eŒ¯m—«k–—o”f‰‘mš z•Ÿv”›‚¡“…œ†£‰‡¤ƒ—Ÿ‘˜¨‰›£‘ž¦Š—­˜œŽž ˆ«–£˜ ª•œ¥š•¡¡‘¬œ›œ˜¨«’¬¯…¡ƒª¨€Ÿ–xž“ƒ¡¨•…© Œ¢“{¦•}¤’†§Ž‚µ”€Àu¾ª|Æ£kÄ´hÁ°pÓ¹nݸtÜ®wÛ¸kÙ´nâºmÖ¾lÙÅcäÈ`ëÁ^ç¹Yß¼cá¸XïÂeÝÀcݵrØÀj×´oÙ°nѹmÞ¿hÙ¶mßÊjäÌcêÏhÝÃjÙ»tܺuÙÅf×ÍjÛÃyÙÇvÖÌiÞÓiØÇoâÎpÑÏjÜØlÕÒbÏÊVÑÃVÖ½QÖÂ[ÓÄPÔÅGâÍLÏÈF×ÄP×ÄJÓÆ\˽XÄÁRÓÄQÖÌPà·bܲcÚ±fÙ±_Ù¯_اiâŸc֜dڛ_̚]ϛWМX՚\Ô®QѦV֚OÛ¬PÖ¤ZÓªJљVؤ^˧YÈ®a΢`Áž[Á—XǤJºŸNƜHº¢T£SÁ£E¶¤B¿£KÁ£@¶™8¨“6¬9ž”D˜„=¤‡5¢’4©“<¢Š:˜Œ9¡…A£‘A¤Ž6”;©‘HžœC§‘G¨ŒH¨H?ªŽ-¤‰9§Š9«‹'§Œ1­ˆ0ª‹,§™#¤¡ ¬›*ª¨$žž#§¡)§¥%¬Ÿ$¬˜. ˜6˜™/‡Ž+“*¤3‚*w¥*|¡*t¡/‚¦„š„ ”%…‘–‘”†ž"‹˜'’š.•—/˜‡D ;——;œL¡‘R•„L~J¨|U©kb¦mažka i^”jfš~j¥|m¥qg©vo¡i¨~p¢~uªns¥tx«xt¨u}•ty•pu—fu•dz˜kt™ky—_ža‚–bŠ™b~¢hz›e„£\z›^~›\s©VoŸ^x¡P~ªRŸP†¥I¦M‹¦T€µF†¸>®I—¿D‹¿DŒ½H¼<…¾;ËG—Õ;ŒZªU«Q…¥R†¨^{³Y~°c„«c…¯^†²]…ªc’¤e˜œkœ˜e‘k’Œu™ž~‰ªƒ†ª‡«ˆŽ¥…¤¨Ž¥ªšž ”¡¤˜§¤©¦Œ©—™°Ÿ¨ž¬‰¨¤”¥¤’œ¥†¢¬ƒ¤¤} ¥x¢›€©˜| ‡£™Š¡‘… ‘ƒ¥”{ŸŽ‡ª˜ƒµ—y»Ÿuº¤m¹­j¾·fƵrógдjÔ¾hпvÒÀ~áÃuåÍrÞÈdâºoê¼hä½jíÁ\ê½]ê¾cÝ»mÜ·kÜ´dÛ´nÝ·jÛ´fß´kÛ¾qÜÅoèËmàÂyäÇsÝÅqÚ¿kÔÍsÒÊpϽpØÁtàÐx×Íj×ÊpÚ×dÕÙ\ÖÏ]ÕÌTÌÌNÚÄIÖÂPÜÇSÑËQÖÂOÖÀDÓ¼GÓÈJÉËGÏ¿OŵZʸ[ѵcØÁ[âÁcÛ¹[á·\Ú±aâ¤Zâ^ښdٛdДdӖYÒ cқ_͚aÌ¥bͯdÒ©TÓ¬XÞ­Yâ§[Ö¤WͤUÕ©cÈ«ZÆ£^əVɛS¾œM¾£S²¤U¶ªX®¬V³¥Lº˜C°›>±–8·š6³™:ªŽ:¥“0¡‰1¦Š-™†9’6£8¦†7ˆ8 ’.¡5 –<¡’B¥H¦‰HŸ‡Jž†Až†C¨†9¬z4°}3°9­‰.®Œ+¬‘)¥–%¬—$±˜'¦˜+®¤.¨¡%«§$§¢$¨•"¢”,˜‹$‘+†–0†Ÿ,{¥"{š'¥.z§(ƒ® „¥(‚ž%}œ!~˜ƒ—)$”™!’&Ž’)“”8›–7—–:ž“8•†@š‰M“ŽF—ƒO£€ZŸvfšms£un™|f›rh sj§}b±yo©{m®}j³xm®uv¯xz±x~¬qy wužxu’vy”ix•ho˜`sžet•b|”[ƒ˜_„ ]}d|•\u˜`xžVoœWtž[s¨Vv¥N}©GŠ¦?”­GŽ¯I“¬K‘¸MŽ³=´F—µL—ÁR“ÆJŒÉKÃLˆÄB‘ÎC“T†¶`Š¤[‰®Y…£Z}£^}±`~¬g€¬c‡¢d¤^›a–ž]——q–d“Œp›‹u¢z¡‰ˆ¡…‰ª‡¥˜£—› “¢¥—™¥•¤‰ ¨ ”Ž ™‘™ž—œ™‰¥›Ž©£„£Ÿ¢¥†§¢‡©¡†­Ÿ„¨”‹¡…œ™ˆ¦ƒ¤‰¦†„Žˆ­–‹¦œ…³œv²œwÁ›g¹©m»¥fÀ¯v¿³mÌ®pδyÕ¾rÕÆoÕÈmÕÌnàÆlݸoß»jßÁ\ôÅeå»^â¶lçÀmÒ·gÖ´`Ý®cÖ³hâºdÓ¼qÛÀuÞ¾ráÊrãÑfãÊrã»qؼjÍÇpÇÐtÌÁqáÁ}ÚÃláÔiÙÒqáÐ_ÐÍkÊÊ]ËÒSÎÉNÒÉVݾHÔÊMÐÓQÍÌIÔ¾=×ÆOǺRÏÁG˲SκXм_ι]ܳaرVÛ°Vá¬_à¸\Û²]Û¥]Ü©^ݬ_ښYݐfӞW͚SÕ Z̨`À VÒªHеQ߬SÖ¯Wͦ[מSʬXê]¹šg¼©aƤLÁ£M²¨\³ŸMº¢V¸X°ŸC·¦@²˜L´–>³›>¯“7¶“9 ‹5§‡/¨…/¤~: B£–=Ÿ‰1 Œ<¦†1 „1–ƒ?œ†HŒN«~N …KŸ†<›Š?¥ŠB¨}3¥ˆ-|,ª‚+¤‰6©2§.§œ, ˜0¢+¨”#²¡!©§¢Ÿ* ¤"« *”˜'Š›+„£"y¢*~ª0|¢"„Ÿ.~¦'x£+„Ÿ&uœ&~“&ŽŽ0•™-ž  Ÿ+‹‘8›œ>£5œ—=ž’<Ÿ˜=¡”LW¡‘M•ŠS›{j xm£sc•um kežzf§|k­i©sq¥zt²vs°wt¯v}°|q®tsyp®~o¢km“fw’fu¤e}’`yg‰›b…`}š^Ÿb…ž`–[v ]| Tv§U€´L}¨T¯JŠ±LŠµRƒ­L‰°@ˆ¶C‰·I•¼E¼D‹ÁO‡ÉX—ÄF„ÈF“ÑL•ÑESt°[{¨Yƒ£Vˆ¨V„£]¯`¤`„§^•°Y”¨Uˆ¢\‹aˆ’o“rŽŒešu›t›Œ„¤‘‡”¨Ž”§˜’«œ–¡™šž“™¤¡Š¦¥‰›¡’Ÿ—‘˜–•š”‘’‡˜”}£–v ¦}¢~«’}°‡¨†ª–©”„¨Ž‚¡‹{©„ˆ¤‹†¥‘Žª†­™‚°šr³ iĝjǝo»£j¬iͬtίvÚ¾xÓÌjÖÈhÔÅdØÂpÖ½dàµeæ¼]é½dë¼jݹhÖ½h׳`η^Ò¹gà¿jß¼hÞÃkÍÅmÈÏsÒÊpÓÅnäÌfßÀhá¼gÎÅ`ÉÐfËÍtÞÅvåÔxàÙqÖÖqÚÅh×ÐgÄÓbÇÊ^ÑÈLÛÆRÝÃKÕÄUÇÊMÇÄPÏÂCËÂ@˳MÊ»O̶MÔ³WÕ¯RÛ»RÓµ_Ù·_Ø°Z×±Yå²^ë°eß±`Ù¨cÙ°]Ó§ZٙhݝbÕ£TŨVÁ¡U¾«K±JDzJÒ¬L΢LɛW͝UȦQ¾œU·¢dÁ§YŨOº­V¶¡S¹™L¯¡O³£R¶œK°˜JªžM§—F®ŸG±žF±“:¢.£1ž†<£‚:Ž8¡–B©–7¡„/¤}1šƒ2™ƒB™‰I¦…I¦Qž„M¤zF ƒ:£…:—‚1›‡8Ÿ7˜ƒ.œƒ1˜“2žœ)žš*œ¡&ª—(«¡&¬¬¡ ¨Ÿ+žŸ#£§( °)“ª(Š®0y¬+‚§*‚©&¬&ƒž2›'|›&{›t•„˜ Š•(Žš(–™+˜ž.Šœ=‰–C™8—–E“—A•“D–—L˜’N“Q‰`Ÿ‰^˜z_•xc™mf›op¥zk¦ƒi£ti«se nk¦oy¨y{­xv¨}}ŸxzŸ‚|®msq›gw™sžo~škƒ—j„›c{ g{¦Z‚ Zˆžc}œ\y¤_{®b}«]…µS¸X«[Œ»]»Pƒ¶H’°D¶Q“²P‘´M•ÂB‹¾RÆU¾NÆMÄL‰ÍN•W}©X€ªN…­Z…­[‰¦\ƒ­[ƒ«b‡§^‘©]ŸW‘ž_‡œe¡q“ d“oŠ˜pŠ’s—‡{œ‘„‘‘¢Ž’¤œ©š’°š¡’¡Ÿ£š”ª’œŽ””Ž”–Ž•š‘Ž”›xš”|œ¦vœ£z¯š{«„©†²§—~­‘…¨Žyª•„§‡¥‘‰©ˆ‡°|§šiÀœn½¡ihº©h¼¦sÏ°zйwÔ·mߺhÖÂnÕºnè¼fݼdå´gå¹Yâ´eÖµ_Ú·jÙ¯]Ó«bÛ±bϵiÝÀbãÇ`ØÃaØÁgØÅ`ÑÊfÞ»`ÜÊYÛÌiϼgØÐ^ÈÌpËÄkÎÄvÛ×}ÞÜjÙÒhÍÏgÎÇ\¿ÍWÁ¾TÒºSÓÆTÔÂIÓÀDÏÄNŽCĹCϺLÉ«NÊ»K̯HÒ·XÉ«Wض[Õ²TέRѹYáµaÚ¬^׸aá´fÓ«e×°`Ú¤h՘cؘS×¢TœTÁ£O·«SÈ©D½¨F½ŸA½¢QɒGəPȞX¸£]¾›f¶¡SÆ©QǚL·™Q³™U¾›L¶—F¨žB¬§D±žJ¯ŸAº”J­ŠJ«‰C®‘3˜‹6”„3;”“?¡š9—‡7š‰6›ƒ<›Š4£‚;•~G¤€K|R˜vP †J“…9¤ˆ:~0“z.šz,‘}6ƒ0š‹4“š-š—$“+Ÿœ(«–) Ÿš.ž™#œ /›¢$‘¥4£&¡'y ){¢5Œ¨3Ž-ˆ™7ˆ§,{›"… €¢‚ ‰•3”-‘—/‰ŽB‹’C”<™ŽD—ŒA˜˜O››R›˜\¥žX•`©e£’_¥d•}^¤tbœxr¨zjž|e«rbª|iµqj¬x®€~¥w{«|œ„}­{°zr«q{›g…¥sz£pw™n~”v€™i…£j~¨\|¢g€^}ž`x¥e…¨fƒ³W„¯aƒ·T‚¸ZŽ°Wˆ³M‚·Hƒ´E“½G…¹IºK‰ËHƒÀIƒÄTŒ¿R”¾MÏS”ÏR”A†¦Jƒ¯Qˆ°Uˆ°T‹¡Q’£K¤UŒ¡RŒ¤\†–e}–`‚ _‡—kŠžr…˜gˆ”eŠ‡oŠ–•ˆ•‡˜ŽŸ™ˆž ­›˜¥™•Ž™—¤’¦‡Š™‹Ž“•–”•‘}š˜s ¡zœŸ|§’w«u²‘}´—t©”y©y«“³’‹ª—‡¨–‚ª‘«Œx¬•o½•tßoÇ£kÀŸsÉ£tÅ­uɬyÛ¬nå²dß»dà·aèµ^Þ¸Uà¹]׳^Þ·_ß¼dÖº]ݺ]Ô³b׺gÓ¶fÓ·]ÛÆcÔÀcÑÄ]ÔÃVÕ»_Ù½aÙ½]лZÎÊ_ÖÔlÓÎlÑÌsÍÌuÚ×rÙ×tÏÓbÊÇZϽZÃÃTǸQƽSÍÉPÐÇDÍÈCÌÇBýEľOɯZƱVɹK˹JÒ¯JʲSǪTÒ§QΦUØ´\ß²cݵbÞ²`Õ­gصh×´i̳aϦ[Ɨ]ɗX˒Y¿–M¾¥H½¨M´¬Qµ G¶£M”FĚMǔX¼ Y¸£[À¦_ŧYȦMšQÁ›M¼™Q°œR¦¦H žA¨¡?­—<µ“H­ƒM«„@¤‚H—„@•ƒ<‘Ž<‘”7ŽAIŸ@™<Ÿ‡7¨5¢}>¦ƒC¤|M¡wG’‚<y0”}5˜z2‹}3‘‰<“ƒ:—€8–†)žŠ$––*’’'™œ›˜ Ÿ”$”–.–£,’­0—ª/¤7„¬.Š 1¥3€ 0‹¡1„*ˆŸ+„ª(€¥€¦€¡"š'ƒ™6ƒ @‡™?…Ž=†Kœ‡O–ˆM˜–Jž˜P™¡[˜]žš]ª›g±™c¦“^ª˜b ‹] ƒg e£{m ~l¯rq°vo©{y¯y¤|l¦|p¥„x¡|¤€|«twžy¢r¦r{¨jŸr€ pv¦b|ªd³^y±c{¶^€«]~§iy±g·d‰³`ƒ´U´VŒÀX»K‹¾CŒÁI¹Iƒ·Qƒ·S~ÈK…ÅP‰ÈRŒ¾X“Ä]ŽÈZœÑU L˜L|Z}œXŒ UƒŸS˜£KŒ¤S‚ž]ƒ›X„›g‹–h…¢`‰ša‡”lŽaŠŽi’x†‹Š’šž†—•—›’Ž§ †ªœ”Ÿ’’ŽŸƒ™Š…—Œ‰›‰ƒ”Œ„›Ž‚–‹}’z¤y¢s¯™s©–s´ˆ±“¨Ž{¨ˆš’w­Š‚²ˆz§’­—t´›zª›g´•w¼qŬx¸£n¾¨qȸz̲uá­lß´dÓµ_Ú·hà©fã¿eعYÙ¿gÛ·]×±]Ô·S̬fÔ±_Æ»eÔ°fÕ¶]ÉÆ]ζQÅÁ]ϺPÏÆ\Ò·Q׶]ʽeÉÅdÇÃ]ÇÏjÏÔuÐÍrÒÑqÍÓ{ÕËgÐÖaÇÒ^¾Â[ÎÃQżSÐÊLËÎDÆÎGÕÏQÍÀI¼ÄPξWŹ^Ê¿WкTͱYÊ£ZŧLÐ¥Jϲ\Ò¯aЪcض\Я[Ù¯eØ­iÔ®bÒ¬Yͳ_ɜRŞZ̙]ßH¾¨N¼§IÄ¢Q±ŸP¶¤EÒDƏE¼‘T¿œU¬¥XÁRË P¡RãV¶T²§W²¢GŸŸF¨¤Cµ–C´›?¸˜O«‡C¯F¢’>•ŒKŸŒ9˜‰5šŽEŽGŒ‡?—‹B~<ŽG†:vA§AžyIvH”yBˆƒ:ˆ€B–}7‰‚;˜Œ6š‘DŽ‘.“*žˆ&œ/””.¤Ÿ!˜›¢™š'‘¤'Ÿ$’¡-Ž¦.„Ÿ-£&Š¤(z™8|›:†š4‰›4|¥&Œ¯%y§‚˜!ˆ™1ƒ 9‰8ƒ’B…L“N‹”@Ÿ’Dž”JœLœšU™_¥–f§›h¡“^²f¢Œ_œf ŽXž^¥{f¨wj¯v´‚x²zs«‡t¥€t³…s …sœt‚±|€¯h£kyŸ~‹¢~‚®v‰²p}¨n{¬qv°dz«pˆµk|¬i·`‚·aÂc|³^|½f‡¿g†Ãe†¶T²R‰ÅT”»E‰¿M…¶_ƒ¿RÃRˆÄU•ÎU•Î[’Í`—ÇW˜ÔSªOwŒZ|“Z‚”M‚œQƒœLO…¥[‰¢UŽŸ^‰b‹_‚œU}™Y‰[”d‹m‡—uŠ–~—’z›š‡š¥‹Ÿ—‰¥ž“¦˜‘™‰›¥–…¡œˆ›‘“Š‹œ’{ ’v–’‚›{¦šp¡Žk©’s°‹…¶ˆµ“‚§”z˜†~š‡xœŠ€¨‡~«…t«u­s´•k²¤t¸ªw´¯f¿¯eÉ©p̳wЧzÙ¨pÜ¥nЮhØ©fß®bà½fÛ¿a×ÆdÕ½^ÕµZÜ´ZÉ«`Ƴa͸[ðT¿­VǵRεXȱSÈÀVÃÁP÷XξWÔÅ^ÍÆ]ÐÁ]ÌÅlÐÌnÎÎqÍÊsËÖsÒÛ^ÕÕYÒËaÈÊaÅÅZǾVÁÈJÃÈLËÁSÐÆRÑÅOļLÁÄJÌÃTǽPƾOĪQÄ¥W»¬S¾¬Tî\̦bÖ¬[κd˵k̺bʸgÆ´hˬ]À´VÅ¥X¿š[Á¨RȬPÁ®UÁŸN·–J¹G·AŞ@¼œI¸‘J½¢H±¦IŸPœVŔPÀ›Y¶ŸW©§S±ŸS¨˜Dª”@°A¯D¬LªL£@¥L˜ŽJœF†7˜…AŒ|Gˆ‚;Ž{<”‡>ˆK•}Q–€J¤‡L¤Q“sJqAŠ|H‹~@Œ‚Eƒ=–A•B””6˜‹.Œ*ˆ-šˆ*“)©Ÿ(¨›š › (ž›$§#˜ #ž)†¦.‡ž.~š8uœ9|7ƒ˜:…›.‰©+ˆœ'uš&’&Šš/‚”7‹I‰G‹›@‘–Nš—K”—R’ŠVœ™Uš–V‘Yž‹\¦Œ\°˜h¨“g©“]¯W¥‘]²e¯zf¥nª€x­‹vª†s°…q·‡{©|‡£v‚ªsz²k‚¦sŠ¡~…¡­|ºx„¸g}»d†»o­x°u…¾j†¾n|¾o†Äa~Àa„Çi…Ã`ŠÉbŠ½Y¹MŽ·G–ÀR½[¯_†¾^‚»^ŒÉf™Éb—ÄgŽË]–ÊQ–ÑQ¥T~˜P”K{M‹—V‘˜K“”W„ŸZ•V}›U‡‰X‚Š^‘X’`‡_ƒ‘l……j“’u•—|œžr›’‚œ„¤š‚¥“ƒŸ•‡£—˜š””§—Ž¤‹€ …™…‰£”{¢“s‡v›’xœ“sª‘q¦„y­‹€®š…®‘Œ¦Ž…£‘{“’u›„wŸ“z¥Œt®ƒw¬‡n©Šh¸šv´ j·±m·±kË«kϦlÒ¤hÓ¨dÖ®kέb׬_Ù§eÖ±]à´Y×®TÛ¹_Ò°[ϯVΧdȪ]Ê®]È«TɺMýMűXÆ·M¾¼Y̳\¿»ZÁºRý^Æ·]˽hкfÏÂkÐÃnÉÍeÓÎrÇÕgÔÚ[ÑÍ\ÕÈXÇÃUÃÊ]È¿PÇÍQÊÄWȽNϽKøIÒ·]ѲS˲\ȺRȨOÁ¯YÀ§U¹£YÇ«SäaͦdÓ®jô\¼°fŹZ¾¼ZĺaÁ­T¸¤\Á¬fíTÀ¬UǨTƦW½–HµœK½£Iº¢H¼ D­ H¸ŸC¼¥S½™PĞN¸¢T¸ N®›V¥›V¦¤EªŽ=¨ŒA§’Fž‰OŸ”T§”Q—ŽP¢‹K¡ŒIŸF“‰;•„B“ƒ9“vC€<†G’„Hš„IœvP„K—ˆS’wI“qB—qD‡‚EŠ€<€>—†;™B™‡4 ‰5“‹0ž‚.©†1¬‹& ‹¤‘%œ‘%¡™#’˜+—.‘ %”%‰¥'Œ™*‚&x 4xœ9x”:„ž<„¤&zœ0€—)…¥4¤9‚›:ƒšI‰’G;‹šH ’Q›’R——_”™b“—] až“\±œeµ˜k±—i³˜]´`¬“f±•h¯g´nªŠx«‡{®‡{©w±|­€‡¤z†ª®p‚Ÿr†£~‡¡„‘°‹®‚’µx‹±t}Â}}¹}·tŒ¹s‹Àr|¹nˆÁf„Àd}ÃnvÇ`„ÏcŒ½a…¹M‰Æ]ˆÀS½_Ž¸_‰·dŠ»\†·`Åk”¿h•ÍZŽÈY¢ÏW›LŠ•S†•P€ŽS‡‘U‚–K‰V‘’O…•S“J{‡X|ŽT‚‡XŠ‚e€rƒr‰„q‚v˜|œy”–w—‘†œ‹Ÿ“Ž¡”Š˜™Œœš‹“›š’Œ…‰€ŸŠ€™Œw €yšƒs™~x…w ‡™…uª”€ª“†¯—‹­‹…ž‰„~¡–£“w¢’x ˆv«†t¤s¨u²£m³ t¾¬kË´cΪiÒ¦fË­cÔ¨hÒ¤_Ú£XÓ¤bܱ\à²Zصaá§VÒ¯YΨ`É¥aÓ®Yȱ_Å°Wù[ɵOÆ°Zº²TÁ±OǵXξSÄ¿^È·[ϳ_Å¿l˺nÙÂoÕ¿dÏÉhÎÍlÐØeÆÔhÉÐcÒÈ[ÔÌWÉÊXÂÅUÀËL¿ÆQ˾YƼUξW×·WÕ±\̨`É°\ǤPÀ©QÄ­P½©V»¤RÇ©WΩYȯfÁ¬i½±_ƹT¿µY´·W¹¨b´±g¾¬añ`¿ªYÄ¢SşN¼ TÀ”Q¼šR·šEµ—H°¢@¶§H¸›L¸šX¸˜R¼šO¶¥S¶ M¥Oš‘BŸ•F›•HŸ‹TœV –N¢’W˜—P ’VœLš‚E“‚A”‰=•~9˜…;‹~K–~K’yM–{C{I—…I~S–„PyJqOyMœ„L—‹GŒ;’Š?œ….–-›–2ž- ‡+ª‹/ª‘,£•$¢’&œ‹&‘‡(Ž’+„*š%}—£)|¦/|§*s«1v¡9~©1€«/…¬+¤6vCz§Eƒ›N‡˜EŒKˆ’G–”I–“PšO‘˜[™h™ŠdŸ‹l§še¦˜e®˜f³•a±œZ³šd»—cÀž`µ•l¸…s±ƒy«ˆ†²ˆ³Œ´ˆ‰º°‰€¬€ˆ¦vƒ¦v}¡z€«u‘®±|”±ƒ²‡‘¾y‹½uÊtÌs„Ây…Àg»e€º\ƒÉaxÇb‰ÍZŠÑ[ŠÆZ‰¾V‹¶X‹·`‰¸jŠÁ^…¼bÂf†ºmŽºn—Åc–Ô_Ñ_—T…›O—R‰‹G†šJ‹ŒG‰S‘RI{’NŒVO}ŒYˆ‹`ˆ—gˆ„~‘ƒp‰Œq‘‹~{—u›Ÿ†˜œ‹ž“•˜†œš—š‘•‘‘|‰Š•‹„ž‡€’‡y‘„r™Œv•}j™„o—‡o—•{˜‰u«–ƒœ†¨“©‹y—••†z¦†w’w‘x y£k®—j«œm®Ÿp³¬sŤdË°eÓ³bÏ´Vʪ_ΣSÕ«aÙ©bã¨Tå¨Ræ¨`à®Yϳ\ɪ[űZ͵Q¸X¼°Y̺KýUűUƸS¾®MÂÀV·¶TĺZÉÀ`ͲZÆ»hмcβjɳfÆÁiÓÈtÊÒaÈÕhÈÁbžeÆÄSÇÐZÉÐKÂÍIÁÄN½ÃVÄÊ[ȹZ˸QÔÀd̹Uʵ[Á¯UÀ¬\·¥\ĪW©XÇ¢UÁ²`ϧX»´VÁ²\Ä¥S¼¶Y¿°_¶¯Uº©`çZ³^Á®T»œPßK¹“A²ŽD¶œ?½F·ž=«¦;²£C»žJ­˜S¸ F»˜O¶˜FªšG¤£O£”G›–>§ŠD–’[ ‘X—M–’U¤’G •I›ŒG‘ŠF“|A~5•‚9”‡FŠˆBvB•@Œ‚M—zO‹rHš~S”tQIˆROŠ‚J”€H˜HŽ„I”Š@••=›’.˜™4žŽ2¢6“‰&–Š)”– š'•’(•—/Š+ƒ %Š¦0~¬0ƒ©0w£&€¥/r¤:|­.zª5tª-€¥/‚œ=z—C•=’I„ŸF„™I¤Gœ›Pž‘X”›U˜ŸX¡hž˜i©—\¤™]±›h° `¨¡b¼‘h½fµ‘d¬’l·‰y¬yt·…{©€­„°•†·‹Š´Œ~´}„¤~†¨€~¥~´{•±z’ª|Šº|°sŠ»u“Éq”Àj•ÀpÅ}–ÆsÀj€Çn‚ÃjËczÊd‹Ï\€Ð\‰È[ŒÀ`ƒ°fŒÁfŒÂf¼o„¹`‰¼mºb¿aŽÌ_–ÆZŽR„“H{”?‚›Gy”N‘R‡G†ŽDs”Av‘NuN|ŽSv—c˜jŒ’x“{„uŒ‹{˜†mˆn“–m“}•™Ž‘¡›„’…ŒŒŽ••}˜–‚š|—”s“‹u›h›ƒl¨yj£|qŒwž—o¥”x˜ƒ–‘}š”„¢yz¢‹n™…n”Œo—n›y “s¦”l¤¤eª˜b²j½ iȦcɲ^È®UÈ´OάLß³JߪVÝ®Tä¦ZÞ¨NÜ°SÊ®Pȱ[˵OƬHĹQĽXÊ¿MÁ¼M»µKÅ°WżX´¼T¼ÅQ»½U¶¶WÀ®]ʱWÅ´`Á¯`»µ_ȼkÊÁj¾¿lÂÅ_ËÆgŹ_ý[ÀÏUÉÌXÀÏNÂÈT»Í]¶¿^¸ÀYÁÁRǾ[¾_¾·_Á»gÅ·_¿¹Z¼©VºŸMÆ¡T˟OĬRƪ_¶¤\¶­[Áª\Æ¡XÀ¨SDz\¿®[©S¹¨U¼¤P¾›A¿‘?µ•G±™G³’9´™:²œ8±£<²¡O«™PµžJ¼žB¼˜G¾›B® E§N ’G£›MšQ Jš’TŸ”W¨˜O›“I’–L”KŸ„=¡:›†=”‡Cš‚C£xHœ{>—sK“ySQ›zI•†KŠƒUŒ}W‰yI‹~Mˆ{F‘€E›D˜ŒE@’œ=š™A˜‘@Œ’6”0—Ž)”“(‰œ1‹’<Š™5‡5†¢(Œ­%†¦0ˆ«(x /yž-u¦9m«8n¢0lª:xª6ƒ¨7€•A†”9†–<†¦D…¨M’¨S™ Oš¡V”›Y£”_§b£—dŸ‘Y¨’^±•fª’g­”q°Ÿn·š[¬–a°t±€g°wk®|n¬„w¨‹€°“€²‹¯‡µ†‰°|~¬|…²~‘®}œ¯s–²|Š²v†¶q¿t¹m”ºiÅu–¿v•ÇuŠÍpŠÊp‚ËcƒÂh{Çh~ÃdˆÊiƒÀa…¸j‚»sŒºk‰Éo‡Çj…Ìh‰Ê]†Ê]€¾\ˆÇVÄX–N~”MzIy”MsˆM|ŠIy‹L‘Fo†JJ|W{ˆKu™W€Œe‰r‡q‹‚|†wŠj›ˆrœ‘q•š{”†—•‡ŒŸ’„Ž‹‰—Ž…”œw’’{˜›v‹‹r™’mši•u§n¡e™ˆk¦Žp¤˜|›››€””ƒœ‰y¤•z”Šk˜s’šs¥p§—w©—k¦ž_²fµ¥cÁŸV̧UÁ¥R¼¬QÒ¦QÙªMÒ¡Nå¤Tß¡Nç­Lè¦KÙ¸GÍ°GÒªXƳGË»QαFÀ¼MÇÁVÇ»PÀ¶\ı_·¯[³¹Yµ°T°¶O¶µa²¨[´¬g¸ºb´²i±Ã`¿Ãiк[ÀËVÈÁa˺dǹaÁÃV»ÈZÂÐS¿ÔM·Ð[ÀÆ\¼ÃY¶ÊV»¹`úZÀºi¹¼eÀ¶Y¸±_»±e¶Ÿe¾£cĞRŬW»®P·®L«¥X±žU¼£R³ŸR¶šP¿›T»£Z¶¬O²£UÀ¥P¸™G¹™B·’B¹Ž8®5´™<¶ŸH¥™;¥—O¯¢Fµ˜K´•@µ¡A¯šK¬ŸJª’NžŒQš‘IªŸV ’J¨”Q«ŽQ§šU™”H”I‘‰@Œ8œ|>š‰C—‚?™„;™ƒA™xE„IŸ|HšrN¦xP‘€L•ƒG•N‡{B‰G†y@Œ‡A›ˆB’IŠ‰A…’J”L‰‘Gˆ•@†‰>’,‹/’œA—0€™0‚ž3„­)‡¤0…¢6}Ÿ&~£0}¬.}³,w¢,o %v¡)z¡0}œ-v;{<„¥>„ŸBŠ§H‹°J‘£SžªX’ TŸšW¤ Zž¦dž—`¥›e¬‘hªjŸ’i«—c³’h§–e©h²†t²tt²uk§‚u±}®˜ƒ®Š{´Š‡´‚ƒ±~‹©~Œ©t‡µŽ­y—«z…´x½m„¹gˆÄuˆ¶o”Âx“Æl”ÁtŒÆu’Íj~Ðl„Îk‹ÂcˆÇ`„Ée…¾i}Âg€»n†ºm¾eŽÔhŠÉkŽÏY“Â[‰Ç\„Ë]”ÀSš?}ŠFt@|‡Hx†NyƒEu~@u|CvE‚~E„L‚“T~•d„f„r™Šv’ƒuŽ†n•‚p™r–{™“r’“u†ƒˆ‘…„‘‡„“|Ž”€žƒ‹™w’™i‘–h’k“—m’‹hœˆg¢†jšˆf›˜m¤›x™¢w™—z ”v›‹wžŠyž”wœŸm˜št•¤ržm¢£b«Ÿe³—^´žT¾ªUÀ¨W¤KÀ©O¢OÓ£LۜGß Dá£Bà®Fé­Eà¶?Þ°<ϱHűIżIÑ¿LÌ»L͵Y¿¾YÆÄ`ǾYð\¼³`½©W®­T³§Tª­]¶­e±·e¸¿g³À_À¿dŽZ»¹]ÂÅSÇÉZ½aÆÃ]ÇÃYÂÁPÀÐV¼É^¸Ä_ºÈbªÃX­Äg¶¶g¼Àc»g½³k³·a³¨`¹£e¸Ÿ[µ£aµ¬]¶¦L´©N±¤G¨¤N¯˜W­T»•VÁ¥V¾¥W· T»PÀ›D¿ŸH·—B»›;¸™:·Š8¸†=¨F£ŸC§œB«›C¯“A«š@±œH§’K£–W©•V¢–R®šP«˜K² R§–I§ŸQ¡˜NšG–’D”’8—‰8œ†:•€9Žw>Š|=‘9”~B•€J|B˜L {JžsI‘wAŽv@‘€I‡†M‰A“}N•…M‹ŠC…ŠEŽ“AŠ’E‹Ž>ƒ“FŒ˜@’<”ŽF‘AŠ“7„–7€¢0ƒ¨*{¢'y§.t§2|¨)|¤'}¯0oª&qœ$f›$kž-u¥)y«3…°=Ž¤CŽ¯P—³PŒ¬U®_Ž²_œ©Q¢¯X¢©UžŸd¥£f®•q§pŸ–ešŒh˜›gŸ˜g¡‘iª‹i¬„m²l·yl±~l¬Œz²Ž|­‹ˆ®Ž…°²ˆ·ƒª{´v…®tŠ·qŽ¾sƒ¶p½gµm‹ºt‘Âh‹»m‘Èd•ÆjŒ¿kƒÈv‚Ìk~ÌmŠÌqˆÂd‡ÂiÀl‡Ät‚Ä|†ÐnŒÓd†Õg‘Ï^ŽÍ_ŒÐdÈi”½^ByKsŒHj†BsŒFp‰;iƒLjvMqvK~~UxVu•[u›V‰k‡ˆi„ƒx“fˆ…o”„k”y”~qˆvŽ€ˆ’„„ˆ‚ŠŽ‰‘“‹Ž{‹”xŽšm’ŠvŽ_˜o—•e†k”‚^—ˆm“–j”“w©{£¡’˜z’“w‡}–‘s“•u˜“u™Ÿn™”f©`³¥^²¢X¶¤a¬™K· Tº˜ZæVɞLíMëGɱQÒ¯OÞ¬BØ­JÖ·HײOÕ»LÇ·VıK±NDZB¿OÎÃJÈÀUÆÁ^½­Uí`µ²b±¶a«·]®±V§¸R§«^®¶`¯³_»¸\¼ÂQº¾_þOÀÁWÁÂVĹ[¾ÀZË¿YÉÆ]ÂÈ\¿¼\µ½c´Ád¨¾`¦¿^·Â^µ­W¸¬]®«Y¸±f°£a»ŸV¹ŸUªœ\±§O­¡G°§P¬ A´žGµ•S¼–]µ›V´¦[Ã¥ZÀ¥U¸—S¹›M· E±ŸD²”D½ˆ;¸‰FµŒ8³ŠD®—:¢›;±–K©•G²šJ­›B¤›J™FžF¤•Rª’F®ŽK§™I›N¢™FŸ?–A”‘H£–@¡ƒA“Š;™9 }>–€7‘€:‘…8˜„D“z9•yG¤sDyIwL‡€L’vH…{?‚y?’~Lš}U„~Q…†M~}H‘C†‰C“HŒŠIƒ‹;…ˆ:Š=ƒ™:‚›6€›1‡,}«9x¥>wª0§$u¬4p¦8o¢5k¬$i¨.a©6sž0u¬6©B‚žAŠ¥R•³\–¶`ˆ¹c­_–§Yž£PŸ«R¥¡_ª¡b¨“c››o›f œf ‘c d¯_¬c¹„`»~d´‚h±sµ‡n½Šs«ˆs¶’ƒ­|·z…¶€Šªz{¨w€²q“­n}´lx¬c‡±b‡¹sÂn„¿nŠ¹o™Ëk™ÂlˆÍk’Å|€ÂkÐw|Ìj‡Ám}¸o‹¶o‹Æu”½u–Îs…ÊkŽÌkŒËg‹Êa”ÅbÌe„À[“QtGq‹EbBa†D[{;c|GntMuyPu‰Tv[y‘Qw—bœc‡”j‡s„~gŽ†eŠj…yy„}rƒt‚zŠƒ~……‹ƒ‘‡„‡…ŠŠt‘Št‹Šhˆˆeˆ‘i™b•Š_›~_˜Žk—nž“p¢œx™‚“zŒ•r“…yœ”x™˜gž–t¢›t§™t®¡d¯Ÿ]µŸ\¯¢M­•LºžKÁ–XŤYÇ RĤJîOÆ©F˲MÒ¸I̹?Ç·CνPʶSͲSÍ»RÄ´MÀ²QÄ»HʶJȽRÊ®OÀ¬Z»£Y¶ª^¯©_¯¯d¦«a¤´W£»`­¸e¸ÃX¸¾X»¼V½¯S¿³T·¸VÀ¿a¼¹dÀÅm¿ÉeÁ»Y¾¾T³Ã]¯¶^±¹R«½W©ÅXª¼Q©¼P¯«_®ªf³¦^ª©\¯žV¶œO­™Q« G£¤G§¤E±£F¶¨J®Z¬©Qµ£O²¥[¶žX¹›L»¢DèA»§@­›L«™L´†L³D´„>µŒ;­•?®D±™DªŸE¬™AªšC¤œ@ –=©‘> ›G¢ŒL¨ŒPª•HM •F““?•ŽF¡–@¥Ž:œ‰B¨ˆ7£‰8šƒ5›„5—…6–|6˜{1–‰8¢x8£sI›{O•~K‡tJƒoDlP…uL‡rM”R‡V~wR|{G„ƒ?ˆƒB„M‡‹E‡†?†…9€Œ8~‡A~‘=u›>|™8k¬8g®=j®-w¤.pž+r©/h°0o²3qª7g«žšC§œEŸœI¢—JŸ™O¦“Pœ‘P‘’T”‰L˜‰G Dš7„6¦6Ÿˆ6¡;œz6žˆ?§ˆ>£„=œˆ4•ƒ6¥‚DzD—~C˜{?•{>|h;‹pHŒsO„R‡‚Hˆ€MŠsT‡pJ€‚<~~F‹N{M‰~:ˆ€HŒ‰Aˆ’5|Œ8tš6m˜Ctž8`§Ij¤Cv¨6k¦d¦0b©>w¬=m­1q©>}ªDƒ£TŠ«_ˆ¨WŽ·T›»P›°\—£Z©_—œa¡˜f¨ d™˜oš k¥›gž‘h±–g¬•a©‹m·‘m¬q´kª–fµ‰d·…c¯iµ|l­€y·…‹´ˆ§x°‚Š°{¡pƒ¢{~±p‡§b…­q‰¾u¹e—Çq ¼k“ÌršÈp“ÇuŒÁvˆÁtÁt‡Ç|À„‘ÁyÇyˆÅv”ÈoŠÈt”Èl‡Án‡ÅmŒ½qŽ¿eÀ^…FWA^”Ac”;]„6gˆAe‚GhHf‚Lm}Jo}Hj~Ok‡To€Pu†`|c„‰lŒzd‚{n…|uyr†~†v{…€x‡~„~w|‰~ƒ‰‚v€…wŽ‚r‘Šk”Šk‡ŠdŒŠ^‘ˆ_‡‹n—m‡ŽpŒ”h‡Ž`˜f’™q“”o‹pžgž™l¦”j¨”W°“S±ŽO­P®Z´žSƙUșLÌ¡> AÇ¡GŨJƨIÅ©>Ì´<ʼGκE͹NÁµR¿·UŹOþIÊÁKƹM¼B¿³EÇ°Q¾¬Lº«Z¹°X¯µU«³`©¼a«¸U¨¹[¨­\£¶Z©´S¶¹R·±[¯¬Y¬¯d¦¯]¯¿b³Ã_´¹e´¹]©Á[¦²[›±Zš­R®R§´Z¥¨Yœ­_¤¯_¨°dž¥_›Q¡šS§›O¦RžžW›šK¤šK©T¨•R©’O®‘J¥žQ¦›DªžG±’L¦–O¯›K¨J£F¨P§„D®‹C«‹F¯ŒH®‡I­Ž>§…D™…:œŽA™=¡ D¡žD››FŸ>œ¢Eœ™J™‘K–“I•–H˜AŸŒ4 ‰3¬Ž.¬†7§}?¦6£…9§}A¢‡=«‡>Ÿ‹>¢‹:—…A™~AŽy@“z6Žs2…r;Œz;ˆpHwD€zMŠ|Q„oT}nTwrJ†sMˆwHŽy=†ƒB|JŠ…F•F~–=m“FjŸAeœEj£CiªJfŸDgš5c¥7d8_¦9m©4m¯9m´4y¬;v¥Gw©Q|¯R¨[‚´V”´Y—®Uš±[Ž²N¢Q¤]Ÿža§Ÿf¡¡b¥˜`ž™fžj«Œ]´‰\­k«—l©l§d´™h·•p«Žh¸‰e´€i°ˆu¬|µ~v¯…}°…‡ª|„¥~x¤y{¢v~¯l†±r‘¶o•ÃbÅf”Êi™Àq•Ât‘ÌtŽÏmˆÂtÊƒ†ÁŒÄ~ŽÀ†‰¾z‡ÍxŽÇÉzƒÌyŒ¿kˆÅp~Êg„Ïf‚Â_„¨’Fª‘9¬Ž?—H ˜=£›8¨Ÿ= Ÿ@§–H™˜8¥˜:•™BE›JA™‰<—Ž=›Œ=¥|0§ƒ4¦x-©u8§{1ž~6ŸC‡F”<¢‘>Ÿ†Fš}>’‚?œt=}0‰x7‹o>‘{A€rFsMvyL}nIt}J{|L‰tBy>Ž~?ˆŽFƒ@‡“F|’GŒ:s›A{¥8lŸBj¢Fg¥Lp§Pe£Af©s©Hk¬O|ªU‚³Z†´T¿J“¬S–¬]®PŽ¯T˜«_“«cœ`”¡gž£e›žc›aœ”]š`¡—f¥sŸ›d§t© r£Ž`¦’^ª’b³v¯€w¨t§~‚¬µ|~µ}‡³…‰¤|}¥z…¬r“©n–¯w’¼l—½s˜¾w·uˆ¼lŽÒoŒ¾j„Âxƒ¹r…¸~†»z‡Â‚…Ì~‰Ê€ŠÁwˆÁk‡Æh‡¶o¸b‹ÅiƒÇ[‚Ãe†>Y”@`;c‰Dd’>]“I`‡Lc…SozSa‚Mc}M]xKf{Pr†WŒe‚‘a“hˆ„cxvbsqf{f|‚kswo}xqx…u~zƒ}x‹n‚Šq‚|wx‰„nˆlˆ‚aŠ”e”™e‘˜bƒ›^…ŒW†‰^˜•e”i—ˆg „p—‡o¡…t¢ƒl›‰g™Žm›™h­”^«›`¦˜\´£Q²¡VºŸL·©F³¥O¸¦S»±GȪKÍ¥K¦NÀªOê>ʲF˹RƹK¾³SľR¹·FÁ¹L½¹N»»T½·YÅ©ZÁ¤WÄ¥\ºµY¼©b¯§_¨¢a­¦Z³©d­³c³°`§®T©¹J°´PµµR¨°`«À\´Àe­½V²·V©±O¤·W§¯H›°Jš«Tž·W¦·_ ­Zœ¨[šªU±^œ§W˜§K¥ EŸ¨P¢¥K™¡KžB˜>™™K—šN˜–J›šB›AªŽ5­›5¥¥2¥Ÿ;ŸœI¤¤J¦ŸN¤—P®‰F´ƒ=ª€:±ŒB´ŠB«A¡—D™I¨¡K©œD¨˜L™’Iž›@¤”@œ™E™˜@˜ Q—Vœ–NŽGŸƒ;–€6—‚0¡6£|:¦y/v1ž}6•~:€B:–…>˜„6‘…>’x:˜y<˜r3”|7GŠvJ}sAqyHnuMt|J|yE|„C€}:†;‘M’‰M•‡KŒ‘<„—8{‘?v7‚™<¨Hy©Jn¥Jh©Lf¤;]©:c¤E[­>_¸Gcµ>`ºFm·=h¯Mn³Q¿XºQƒ»H”¸I˜¯KŒ°T‰«VŽ¯Q‘¨Z–¬[“©bŸd“œ]¡^‘žP•‹R—Z›d“£j˜m•¡i£›m¬–n¬’`­—p¤Žw›v¢vv©‚~¬†y¨Š|°†‡¨†Ž­~‹Ÿv¢p‘©|·x–µ–»yŠµx‘µrŠ¹p†Ék‹Àn…¼p‚¼sˆ·~½s…Ät‹À€‹Å{¾y}·e€¸m·k²mŠ´j‰¸d~º_|Ha¡=o’Hl“QjKdŠOp„OoyWfxYjwT_vQl…SnˆMk}crb~“\ˆ‹_„‚fu}ns€es|d{t`sqpq€t{|u‚s|ˆp}ƒw~‹qŒ~oˆ†s„„o†ˆg“m˜f„•d——aŠš\•Y’bdš”kŒƒc—…k˜ŽkžŠržˆi“ŠeŽz¤ˆc¥›]§•g¨b¯œ\º¦Y¼©W¹§E¯«Mº¬OşVˤJÁ¨Q½žU̬LÁ§GéI˾Sº¯M¾¶UÇ´WÅ·IÆ´J¼¬KÇ®T»µZ½¦]¼¡[À©^³°S³¦S°ªX¯¡W·°a±¥f­³`§³YŸ¶^£­X¨±W®­Q²¦_±¶^¶Ád«¿W´®Wª³\§»N™¾PŸµH›³R¡µT—¼M ¶Pž­Y«Y¥§T¢¤W§¦Rª£>¨žF£H˜¢> GœŸM˜¡=–•A”=¡<œ“3›7ª 8¬•?Ÿ D –DšœK©—H¦Tª‘Qª~E³B²ŒJ¨I£‘K¥œ@š¡B¢™I©¡J£@”–Kš“F£Jœ•I“ŸB–”HšˆU–‡S™F—Š=—~C—Š8¤„:¥ƒ@ž~8•„,—†3–†1z=•€CŠ…:˜‡@‹A‡>ŠI™„C˜‹B’F‘vJ}vMw†@yyO†J€F†Š<†‹H‰‘F”‡I“”MšLŒLŠ—J„”E†•;¦I€¦?q£Os¢Ik ?c¨Df¢:f®7_¨C^¶BX«C^¾?b´>g¸Go·L}·Dƒ®R|¹M…±I’°U´SªNˆ·Y•«b“§\Š§V†ªc–gŽ£_˜£R–”U“Uš_˜¢h‘—d•™dššgœc¦”b§i¬’~«ˆmzmžm¡~¤‡¨…}®†¦†Ž±„‰¨y°…’¶„·ƒ–±z‰·{‹¿y–Æp“¼r‰´x‹¹rzµtˆ¹|}»yŠºq‚Àyµs‡Âu‹½hÁm‘¶b½^Œ¹e¾c„·_ƒ8l£BxžQ–Rx–TxŒYoˆYh‚Wl~crz]jy\hwTjƒSqŒ^r[r‹hƒ‰j…kt€n}ybxrhpwfomsny}zztƒz{‚mx‚bƒhŠ€qˆ|j‰|i†…h‚“^…“e‡–f‘”^ŒŠc‘dŠše‘—a—li‘’c”ˆn‹…rŠˆhƒo“…uŸŠn ‘f²“h´“e¹™^²¢S´­Y´¦U¹žX¸¢LÀ«J¿¢SÀ£TțQϟJÄ©B¸¶J¼³JÀ¶KÁ°OÁ¬QδXгQÈ°PÉ®VÄ®MÀªSº®W±¨X®®U­´\¢ª^¡¢T¯«Y¦¶b«²^«¶`¥´a©©U¥©P¨¦L¬¤T«­T¶±U¨®K¨¶M§¹K¬µT›³R™ÀOŸ½Lš¾O¥¾W¡¸O °S¥£[ŸYž§T¢£R ›D >ž§; ¬D G ¥:“Ÿ<Ÿ8–—>¤”;¦3¤˜2¢”8K L¨™T¡™L²˜V³ŠPµ‚S±…K¬„A´A·‚@ªŽG£™L£šJ«ž<­>¦”GšŽIŸ—E™’D™›@—˜F““D™ŠPœ…Aš‰>¡„Gš‡> Až…Dž|Dœ‚9‰~;†ˆ1ˆ=…€7‰|E‰„E‰Ž<”Ž?”ŒIŠ•LŠˆMŠFƒ|P‡~O{„AtƒDy‚>ƒ‹HˆŽ=“B‰˜?L‰‹D’–GŽJ•ŽQ‡—VŠ›K—Bx£E|£AuœNnšHn•>k—=j¡C[¤@Z²>^¸H]°Ba½=`º7m³5p½?l³Ey³AyµF†¸L²O‡²SŒ»[²_•³]Œ§]’®\‡¥^©`”£Y¤P‘›UŒ’]Ž”TŒ¢_–ž_˜l k™i£œj–k¥…v«„y¥p¡|}§x¤…±‚´­€Œ£‹‰ªˆµ‘¶ƒ”¯†‘·‰·†•¿‰š·•·v’±m‚µt‚Áo‡Àu†½~‚´z†®~°w„»o’»n‘´f”·\³^“´]†´Z€´d~Ih£JlŸOlœWo”\m“\i†ZfˆUmSo\j‚Tn†]kYp‚ao‰iy…c‡‚p{‹erzg€[ylhykozrwwv}psƒ{s}eˆ}oŠa€kne‹{bt[Œ}aŠ“a‡‹gˆ•b†c”˜d—^™™dŽ“r‰p…s‹Žzˆ‡sˆ‹f‚d’‡s”…oŸ‡s©˜sµd¶—X¶œYª¥N²žK²œF¶ŸI½¤E¹¥EÀ¦DÏ¡PÉ®AÊ«FÆ«CÊ©KħGÍ£SЮRÇ­MƨIÄ­RÌ­S©Q¢R¿¯Z¶®U´³T¥¯S—°V«­S³¯^¤µUª·X­«^¢²f¤¥[®¢P­­L³X®§Q­´P±°Y¥¹L«±XŸ­\¢¯S¡·G˜ÀL›µM¢·U­±F¢©V§£M¤¢O˜£Nž?§«E¡›E¤ª@™£J ¦C›ž?“£4—”C˜C¢“5˜6—›9—9¦•:°†K›’M œN¡ŽD¬‚K¯†G´ŠJ­Š<³„5¬‡7­;¦”E¨–J¦¦C¬›@¦•<¡I¡“Nš›Q–žI ”O™™A™‡KŸK ‘=‘„C‘…>‰E¤KŠ=Œv;†6“>Š‰AŒ„B„}D…J„…?ŒŽL‚‘H‹ˆA‡E‘‡KŠ>‚GwŠHv€Fy†LŒ‹IŠ’E˜H‡’B„@…“J‹’Lˆ”B‘S‹ŸK|¤Cw›H€A‚©@§Cs˜JkŸ;r¥Aj¨@`§FT 2X¦?g±:]­@nµ2h°;p¶8r¸:o°Eu½>ƒÂG~½F‰¶L}±S€¹_‡¯[ŸQªaŒ­_Œ£a„ªW„£V„™T—¢K¡P‹£_Ž–[”šj• gš¡k™¨l¦œjžo™Šs™†l‚nž†y£†¶Ž‰¥‡Š®Ž~¢„‰©–‘ª’«ŽµŠ¹†‘Á…š¾ƒÂz™Ár¹v‰µƒÆ|’Äp‚ÁŽ²zŠ²€‰¹y€¹l‡¶]†¬b‡³^‡¶`„¶\Œ¯V~£i‰¹’B® A® ;¥¡B©•G­–Hž’C˜O“Iœ•P¦–Mž•?“›?–‘C™’I“ŽB•L˜M‘~AŠ{8ŠˆB…F‡ŽMŠŒKŠ‡M‡†Bˆ•LŒ’I}”P~†Fƒ‡@‚‘F}‚=„„@{Bw„Bƒ†A‰ˆM†‹?Ž–@‡:…Ž@ŽŸEŠžE†šL‘™KN|¦IƒHx£G€©<‚¢>z¥=i¤A_Hd¤@^¥9^œ7]¨Da©Ca¥Ek¨5p«:u¹4m»Au®C}±NÁG‡»D…½Qw½Mz¹Pz²Wx¨Qz¨Q…«VŠ£Y…«Y Q…¡R”›L—¢Q— VŒ›d™–h›—Z a›¦\œœe ™c˜œkžu¥Œr †z©–z¯˜…°‹‡ŸŽ|¬Œ†¶”¯‘ªŒ„¸‘–À…˜¾z“¼|¾w†¿z‰¼ŽÂ‚”ǃšÂyŽ¸¯}~°‚†´}‹²eŽ°]Œ³`Ž«e‹´T«R‰žX‡¢bƒ?nŸKnTužV}žVuQy’Vp…Ln‡Qq~Qk~]k€Wqˆ`rŽWy_z‚]‚‚c€‚hv‹rzƒs~o|t{pyzylvvku}iqt{osutwxuqs‚qcƒn^{€\ˆ‡a…]‹b‰‹aŽ›c‘—m—˜hšv“†t‹“wŒ’s—‹q’{i„q•†n—ˆt••p£—p«–p²ž[­™]©¦Y¯§Cµ­B¿µK°§M©²F±³@Á´JÅ­L̪FǨAҞLЧR̜PÙ¨KÖ¤MÊ P̱OÇ¥YÀ©O¸¡P¼±Z°¶Y¯¯O¢¹O—´Q¤±Mœ³W—­V—ªNŸ£O—§S¢¨Z®®V¤¥W­¥J§­M¬°`³ºX§½M¤´R¬¿d§±`£·O¢«Mž§I˜¯M˜¢Sž°@£ IœªI¥§= ©9§©2§°8™¢;¨¤KœA¥›9Ÿ›5”’>Ÿ5¡¤@˜ 5œ›@›Œ7¥–:¨D­3£“<¨D¯…K·†L¼‡>´<½ŽA¶’Cº•?¹7©¥>« F§¢L­›Bª˜J§ŒPŸHŸ™S©’Mœ›L¡ˆBœ‹<”‘H’„?˜ˆAŠF–’MŠ€@ˆ}9ŒD‘„@ŽMƒ‰I‰‹IŠ‘K€˜BœHx•H}„C‹B€F{ŒB{‹?†;€€E|N††K‡‹<‡“:‡™:ˆš>‚™@„¦B‰§FŒ§E{©J°Dƒ›C¡Az¢?‰¤A}¦:f¦>l˜Hr¡:c 6]¡0e 6c¯EY¬:_£:k¬:hµ7jª=i§Iq¶?uÀNxÂFp½Do²Hp²En»Jl»Ft²L¯T‰±V²Q†¯M~ŸVŒ«L’¯L‹¬S£`š_˜™[ Vœ«b•™g¤Žh•‹qžŒs›ŽqŸ…}©ˆ…§”‡¨ž…¬š‚«œ…»•Ž°•Š«‹º†‘ºƒ¾€•¹Œ³~ŒÃ‰‘¸ˆ“¼†”º|‘¾{³‚Š±zx²‚­oŒ°eˆ­j…®[¨aŒ¢U„§Yˆ¨]ˆ¡d‹A|‘Eu”Jv—H˜T{Ts—Jr—Q{†X|“SsU|†^sˆUuX}Š^~gu€e‚}i~…ku}u{€n„{k€mlzlrunwfishjypjtmwug{xdrƒom}ph~uc~ye‰ƒl‚d•ˆk—‹fœŒqš”nœ‹m™ˆo™•pŠ‘nŽh’‚hŽ~b“ƒmk˜™c™™Z§bªœ\°¤\¸¡Y°©I¶ªN¹µB½°H±²D¨°;°­C¤JÃ¥FßFӞJџGќQ˝[Ó¤WÖ¬XÈ©N´QÆ­N¿¨D°¤J¤¥M ¶V¤¹P µV˜´N•¨Hž¤E˜¥O”°_˜«]š¢[§ªW±ªL¬±Q¤²X©¸X¡Ä\ ¿V¦º_¨Á[§²P–°V–±F—ªB‘Ÿ?—¢I¡£DŸ§A¤¢?ž¤8¤5¨¨8¬¥7¨©5§°?Ÿ¨GšŸCšž:–¥<—¤>¡¥<œŸ5ž–9¥A¦‘5¤ˆ5¨‰8¨Š5­–:¯“=®–DºŽ>†GĎHŘE¾™>¼›D´¦?¬­J°¢D¢“R¡‘O©—J¡ŽJ¢˜G©“P£E¥ŒB¨A ŠFC‡K•‰@ŒŽC“PŠKŒˆB…Dˆ–IP„˜Vƒ•N†šP|˜AxOs‰Kw†G}‰MuCyC€’P†KK…=~ˆ@„‰=Œ’?ˆ›:ž8Ÿ?¦>¨C~­I¨>ƒ™G‡šDš?~šAy–Dt?y•FržAs£:i®6c©.Zª6d¯8aª=jª5l°>c®Ab°E`±Gm¼Md¸Jj¹Hg¸Lq·Hj½Cn¼DyµA}­N}±N…©W±SˆªR—¯M”«W“¢^•¤_“£b›¦UšªR¥_•™i”h¢wŽtŸ~¦‚ž„•«ž~©ž|«’€°–ˆ³‹}ºˆµ‘„¸ˆ®…³‘®†Š·‹ŽÀ‡¾†…¾Œ‚¸ˆ„º|‰µ|ƒµ|§o¢l~®f†¬d‰©]„¡]‚™`›\‹T‹I}Mz–Ow‹Mx‰M”PtŽH{‘MqŒQ{ˆU~ŒTr‰Uw€cx^{~[~ƒfw†`}ˆi~„jx†mwyt{z}mmrmprdnqbybdmjuwlrnessnr„rk„yhyrf~{a}tc{{a‡€bv–‹m•tŽv–n‰†n…”t’Šn‹‰g”zm”~hžŠg—ˆb¨—b©œd­\§§Z©›E©©?®¡J·²B¾°O²§K¸¦H¸©G·±OÉ¥>ȦJ͝KҗOÑ¢HÉ£FϯNТMÇ°VÍ«KɬP¸¨L°­C­°N§¯]±Z£·S£¨Pž©Jš¡K ¢O¦[¡«V¢±_§®]©¨U§§Xª¶Z¬ÀRª½W¨µO¥¾V ¶T ¸Q£²Rž­O¥¯C¢¦A¢©H¨¤G£¢K£¢;šœ:©°D¤­D ®6§¤>¡;œ›J¢ D•C•£E¦«5ž›C™C›ŸD¬˜A¢B§0©„2«7¦Š=®š>»‹3ºš@¾CĉB¾˜:ÀŸ:¢A½›<ºªH¸ª9¥¢N©I›”D§I­C¤›M¢D£…8¡?˜‡D’ŒBš…C”’A>ˆP}O’ˆK‰‹E{•?w„>z=‡‘>„C‚–Ez’>~ŠKw’Sx„I|“Dv‹=“M}Š@ƒ…A=vƒ@{A„—BŒ‘?‡š7Œ©>«8~ª<„¯?€°4yœ=x“Eu›>r8w™2už5q 6n¡B^ª2d£8W§Agª:\²8`¶6]³Gd·Gf¶@m³Al¸@n³Ej¾@k¼Bo¯Jm·Mq¸Qt²EoªKt¯Bx¨J‹ªQ«W}§MŠ±Y™³R—­Yœ§W‘¤]¤X•©_‘ k•£g”o–wš”u¤}£…„š‰z¦“‚ •}©¢{£ž}µŸy¸±†x°……ºŽ’³‡„²Š~²“„²‰º†~¸‚ˆ«†‡³|¬‡…©xˆ¬s{¤q}¥f«r‚¨^‹¨\—V{™Xy¥^Š¢R‰Ly‹L{ŒT…M}}BpzDo„FkPx†Rq‹UwXqxRtoSxucw{atz_z}a…ˆe€„ay‚ewpykm{p{yrsppblvmnlkuvwstr{qq|ne}pj€th€ug‚xkˆscƒyl}sŽytŽxp›…n’„xˆƒpŒ‰ehƒe‚gŽx`—xj“€]•ˆ_¦›`¬ X¤£O¢¡I¯D«¡;±¦E¾§Jº®I³«O·±P¾®N¬FΩDÉ¢=¾ BʦDÓ DÏ¡M¬LɯSÊ°QƬXº³M´¥U²¤L¹±L°²R¤­WŸ°UŸªM ­Qž¬S¢žP£¥N¦³R¨¯W¸¸T·³`²®Z¯¼Zµ¾QµºV¬´X§½Q¨»N¤ÃM¦¿L«¾J¤·O¦´Qœ²MªŸP®G¢£>œ¡<ž£@¤±F¡±>š«;—¨@N•Oœ¡?¥­F©¨;œ–?Ÿ”A¦ŸI¥™N ˜=¢’8«Š;¢Œ7¨@³“7³š9»—0¾Ž0³•?º >ß?À™H´–C¬¡9®§<¤§@£ I¤¤D¨™F¡™C§šG•>š…7›‚A™…K™ŠO•G”†O™‰J˜QŠR…HŒ‰Jˆ‰:w‰;‚’?ƒ–<}“7v“Bt–D~ŽMq‰NmŒHm–Gr’F|•Hz‡Dw‰N|„L|Fu†H~†Eˆ”@ˆE‚­>†ª1‰ª0y£/z¨3£:w—:u’4u“2p™:v 4p£:\¢5WŸ6Xœ>eœCd¤9`ªB\±9f¶:d¯Fe´Ij³Ce»>j¸@m»Bf³Dd»El»Lw½Os­Jt®Bv±G{ºQ¶S~³Wƒ³V‚²PªY’´[˜¯[šªb•¡f¢iŒžg’’g˜”jœŽkœŽu›•o£‹t¢‘Ÿ—…›Ÿx¢¥w¬œ® x°¢wª“€­Œˆ¯”‰¦’…¬ˆ|²Žw®“x­…u©~ƒ«ƒ…°ªˆ|¡€€›€…£p}£n†Ÿm†žd†˜c‚—V~ V}™]€›Y|@x?‚ŠPtwFsrPi|@g~Dy}I|zEv|HiwWqjUtg\kq`pvTp{av|ay…bp~_€|bxkrousq}|iewd]uljpcvuqqt|ykm{qfwqk||g…|cŽzb…}p”|m–ql~i˜yn“…f™r‰„z„g‰‡j‹†k“‹oš‚f”qp™‚l•Œi¨’]´Z°šRžšR¦žN©§A±¢AÅ¢Q»¦QæXʲKǶEά@Ë©?é<Ç©>̛=əGÂ¥I¸±KÁºIÀ°UùXººU°¦N®±B°°S©¸W©«R¤®Y²U¯®V©®L®¦Q£ªS¤°Z±²RÀ´RÁ¹O¿°O¶¸W¸²J­ÀO¼¶\¥ÅO¥ÀO«¶N¢¹L¦´Rª´WªµU—¬R¦±H«¢N£¥Jœ¤A©ª<°²I¡±<£¦@¤<Ÿ¥Cš§L¤Ÿ?ª¡I§¥6¤¨8››K›œC¡•Q¤—E¡˜GžšA«?¢B´“=³¢=¹ 1±œ5³¦>¹”@½ =¼ ;¼™C°˜G´¥=©«A¡«K±šD¡§C¥’D¥–I¡‹A•‹2£G›R‘ŽJ••Nœ’O“‹P—ƒJ‰†I…BŽG{”A~“<‚‹CŠš5{‘9tœD{I}OwŠCoHp’LoAtB}…D„Kz‚Ry†E{ŒD…™D¦>€ <„¬2‰®<|¤.x¯.v¤;nŸ;r˜>fš:i™1f™.o¤0i¨2\ ;^¢>U™;\«7d¥3_°7b¦6e§9a²K[­@Y°>\¬Gj»?b¬>m½Io±Hu¹Nl¼Tk¹Gm´Bi¬C|µO¬FŠ­U†µTµRˆ¦W¶\š®Z‹±b”±e„¯a…Ÿa‹–f‘’kŽšm‘•s –i§’w¤“u”’ƒ©Ÿu¤§z¬ v«s¯˜y¯€°Ž|²—‡¨Žƒ·Žz®“ƒ¯–{¨s¨}†«w‚§… ~£ƒ¥p{«i€Ÿq€žwŽžg€”h„—X‹“R‹˜Sz–]v;†…>yE{€HpwDtuHi}Ivu=vsCmjKhhTfnPohRsrOhtTfv[t{ds„_m}Z{te{svwwvmowigyghxkouiozxprwqspfwtft{k}yk€a’wd“oc•si–~`‘~e›d“‰o˜qt‹Œn‹‡oŽˆc™ˆe‘„k™zi—‰j˜‰ež•Zª˜Z¡œW§£T°£P«œ=°£G¾«JȧOƯSͳFαJˤMÆ¥@Á 9˪9Ë©9Á¡GȱB¿µH¿MÀ·V°°K¬·O«¸B«­A¦¯H¡³M¤¼O«´T«®W®¦T´C´£@¹¯M¬¶V¹ºV¹µY¶µLîL¼¹G¼²R¼¹OºÂT¹ÅS¨ÂM±¹Y¬¶T°¹\©¸Z²N¢²G§§G«¡I©›D¦¥A­°Dª´C­­<©«@¤ @ œHœšO¥¨Mª«Hª­A¦©H¥«D–œH——K™S ’S¢ŒO¥”G­˜G®¢=±¢;»¥5¶ª5·¥2¼¤.´š2²¢<¾˜=ŗ9»Ÿ>²¥:°©B¥ŸEª£H¤”RœJ¦Š@ž9—–Iš’L–ŒN”‹K›‰O”’M•–FŒHŒ™E†œ@Š“<}˜;‰Ÿ5„—=†;w–@ŽKyEp™HržEu‘Ir‘F€ŠE€O‹R~‘V€•Vw–M|žAƒ¦6Š¥.Š­4ˆŸ:¢4p¬6m¨2nª7b›4h™7i˜5m—2_¡=Z¥4Z¤3Y­5b¥:g§,a©-d©6cŸ5a3]§BR¯BV³DZ¯Nd®Fe»Mg»If¶HvºKt¶Vo¹Qj¬Ij«Fx¦E§F‚¦M…°Z‚¨[…©c‹µ^·Yƒ¾[‚¶ZŒ¯\‡¨h…¢r‘¡p™žq“l–jœ m¡¤qš–z›Ÿy¥¤q¨¥wœ«u œw§•‚«›„¤”„¢–Š±‰‚·ƒ|­‰w¤ƒx¬ƒ} {{Ÿ~z£z¤v{¡w¬sv®wªs„¥f‹”bŽ–\‘ŒT–VŠŽU|C~{Fv†?y|Lyq¼µ>ÁªC¾«OÆ´CͪQɬK¿¯HÆ°>Ó°7Àœ=Ì£EɯJ¾½KÆ¿L»¶L°ºO®´N³®L´·F°²J®¦=¤³B¦¶U²¸V©¶G³®A¸­?¹²D±®O¼®XôböZ¸²V¼µ[¶´Zºº]ƾW±¸TµºZ¥ÄM¦¿H´¼U¯Á\­µT´¹E²´N®®E¯°Fª¤>¤®E¡¦> ®C¥œA¨¤;¡š?¥>¢£@§¨C«¦C®©E«§?¥œ?˜£E’¡O¦‘Cž‘F¤”F«”J®¤H¨ž>®¡'ª¢*¬¥+±£3¯›1ª—@³§>¼Ÿ<³©=¹¤>¬¬9¨«:¢¥@®¢@¬žA‘7ž™2 Š<˜š:›™EŸ< D˜™G”•H‰>†ŒF‘•>…B|›AŠ˜6•6yš;zžIxœ8—8s”Bm˜Fy“G„˜?œHˆžM{•D‡˜L{ŸB}”M€¨G‡¦7€¤2…ª>Š±:„¦)q¨/z«9h›2c˜8f£=nœq};ryF{mFziGwoOvnX|iO|ePrp\oif}d`~glvkqoe{vktyhmhjqeawaholouygizklzrsyj}tcpfˆm}h‹uaŠ}i•wd•{e›†l”‚tœ‰k“‹g†g™vŸ„l”…`™wb•tdŒ{a’ƒc”‘]¢P£M¡’D¯˜Gµ¢?³«;¿°AêF¿²L˹AÈ®FÇ´OèFЬMΧBĚLƛRÀ¦PÄ´R¶ÃN¹ÁP·¸G¶µE¶ÁH´»D±³;µ©<¬²A°°H©¯F²´H¾°C¿§<ȤMĪUÏ¥[Ȩ\¿¯S¸«P¾¨R¶°\įbÁ³Y·½`±¿\«½T©·M¯²F·¸M¹»Gµ¹JªºD¬«E±¯I§¬F¤¦J¨¨DšŸ>›žDš§G¥Ÿ<£«>¥®/«§2°°<³¯A¥¤; ¬H•¤Nœ›Bš™?š–@©>¯”C¨™D¬£=®­(±4¬/¦™7§ 7¢@®§@²žC®¡?®ŸFµ£=°œ:«Ÿ;²ª4¬£:°¡>®˜:ª”9¡“0ª4£•9ŽAœ”<™’H—EŠ˜@Œ˜I‚™N„D{•G8‡›G~˜G‚˜8‚¢7w¨Hs¡Hƒ•E‡—?~B£L€¨E‚ŸAv˜?z D{¢J§B}µ7ˆ¸=¸-€¨-{¥,u /h§=k¡9a¢3c¦9i°8cª)U¬.Xª;Y¥~–8w”`±1Y­4a¬8Y­-R¨/X¦6Y­9`¢8b¯7\±)c¯7Rª?_«7gª7d¬A_¬Fr§Gv­Kr¥Ju±LvªEo´Km»Ni´No¼Bv­‡–Cˆ–K™Q¢E‚ŸI}›=‡˜?…œB¡F‡¥;€³=~¯>{¬F‚§G‡²E†°@²C„¥9ƒ¥6s¤7z¯0t´5k¯4i·:g®2pª+l¶2m³5_³)[¨,[§9T¦=a ?\ªp¬Lm¨Lj¡>m¤@l²Dj³Gh¼Eq¸As¯Kp¶C|±By»F|¶It¯Hw±DrµB|µJ´P‡°Z€´a…¦Y“¡`‘¦f–›n¡q›¦k›°h—«j©k™uš¨n¡¡k¦ q ªn£©h¡±j¡²f£¥pž˜j¥–f Œg¢Žq§€n©wj¡utžusšxy”n‚žp~Ÿo}šky¢q†•f|˜h‚ZŽY‚Z„–W€/iw8eu8l8ts6l|?t|3muCgf9giAsa5qbDycE}gGƒeFnZJp^Vr^_pZeidqldkw_ynOitWjehom_usp|utuwk|l{}n}|t‡qxƒr‰ƒi‚‚nˆt|c‹ydŠyl—ol™wvˆ~p‘}f‰n€n‰}fƒ`Œ[ƒZ–ŽH‘‹Vœ—I§‹I†H©”>¨©Gªš>¸«KÁªLDz>ºAͳ4ŸEÊ®RͧDǟL¬BįKÀ²HÀ°AøL½¶I¸¬OÍ°KɪH´»6º¿C¿¼:ºµ>¯­:³¨B´«DÀŸIÁ¥MÁ >µ§=¼­@ªS½¼G»ÃB·ÃO¹ÄVĸZ¼·^¼QƶPIJVøIÁ¿J´ÀO­¾G¶µG§°K«°RŸ°H£¥:­£?´£;¡¨5Ÿ *¦ž.¥ 2™¥,›¥7Ÿª:³¡,®¡-¥¤:›ª9¡­: ™6¨Ÿ9¢›?¢ŸA¨£9£°<  <ª£1°©1°ª>Ÿ¤9¦§8¡ 7¨¨-¥©-¦¯4ž¯3ª´3§ª:ª¦C¶¬5¹¬>·ž<«˜;¶š5°ž9¦™4¥¡6©Ÿ5¤Ÿ>¢¨B£¤@“š?”˜C‡™K‹šG¦D…©H‡¦M~¦?Ž›?ž6‡ =Ž D}§>€ªC…®@‚¥Q{¨Bƒ²;Š¦<}©9x¯8«At¹@t¹Y±9c¶]¦:j¥9i°Lw¦Ph¤Jg­Dj§@cºId¸Ls¸?i²HlÀEsÄ;s½Fp´Jz¶Ex»Ow¨@w«J³P€®V…§RŽ±[‹°[¤Xœ¤\™®`£¤n“°_”«m­i•§}— n—ªjš§e•¥t¦k–ªkŸªl¢™l¨•e¥”m¦i£”uƒt™zi—‚h|r wz—}|’tpœrs¡prdpb{‘`tawŽ_„œ`|”S}1mt;ct4cs6bu:p~?rusfMz`KkQRfMPoIRtVanTeeVlo]ovUegchfbgsjmxm|xo€ur~‚m‡€n†€fˆ}n†„p~‚pxyo{od‰ybŽ{a‹xe”rkvj‹m‰xl“~k™ƒ]”…Zš‰e‹c“‹\š‘O‘Q˜U¢‡WŸŠG©šH¨¡9¡¦:«¦H©¦M´¥C¼³C¾´8¾©=»®IȬQŤHͤIìAÀ¨I»¢HÁ°O¹°H·¨?¿©D¾´@¸¶:º³>¶²>¾¹Dµ°E¬¶L´®G¼°;»¡<¿¡@¶¨>±±J¶ªLµºBµ½DÀÄSººY²³Nµ¶T¹´PõWľI¼·Jº¹M²ÁH´ÃKª¸C¢¯Q¥§Pª£A¤¡9­¬5¯¨B­š@¡›5¨ -¡§4¦¡0ª 2±š:¯¡2¤©A©¦B¢®:¢¥6¬¦?¯¡? ž=ž›4›ª(¥­,¬³4§«9«®8ª­6¦²>§¥5°¥5ª«9Ÿ®>¦:Ÿ§2£¦7§§6µ?¯œ7³§6´•-®’4«•;°§1«¨5®§=¥¬>œ¬@”§?«E–¢G™”GœE„ŸN‹¥L„¢FžNŠŸI“™5™2‰œ7„žB~ŸI}±?ƒ©N„O~°Eƒ±@}¯B€²D‡¶>~¸;ƒ»?~¶:v¬2n¬,f¯'f¯(k§(p®&k°)_ª(_®1[³7cµ4b°AY²2\³0f·;bº=[º0^·3T±6Z±v«Dv¤Kh¥Sc¬Fc¶Ir¯Ht­Et²ª¯9¨ª7Ÿª8ª®2¤°>¤¤C¨ž?¨«/©Ÿ-¥¡1­¡<±Ÿ7²¡5Â¥;°–?¯3¬—3´£6ª­8§¡=ž¯G¥²E ¨=œ©?Ÿ¢J‘’B•žL€œF‡–@{—B‰–;‚H›8€£2†¥>}¬B|¡8 9†¬<€¤Q‰£E}­J€­F{¸A|¼F~´Gx³G€²>s¿2u¶+p­,d¶8h¯4f¨/e¨5k«/Z«4gÂ=b¼2l²t²Ep¯Co¤Cg£Sb¤Jl¯Hb©Am¯Fh·>lÁDlÁBv»DmÄ>nÅ?r¿Hs²Ly¸I‚ªR€°R©Oˆ¦Sz³Q¨M¬Q’ª]–´Wž·c’¶c‰¯q•«i“ v”¡l‘¤l¬r”¦i–¡qŠ®cŒ£k›™e’g¥‘n¢œr‘“e˜oŒ’iŸ„j£t•yt˜zy–rl‘yq‘wimeut›kq•bw”e€•Yt“`|3ct7]n5Ys>`t?UhGYbCai?cb;gXGlS:s\µŽB°Ž:§š>©¡3ª¬:­¥8«ž1·¡6À«?¼¤GÄ©>À¬@êE¼§MŸW¼¢Pº©J´¦D¶¨E´¢;¯™6²¡8µ¡:ÀŸ9· ;¿¢B·¨>±«5¹µ>µ²:³¨A½¬?»§Bº±D´»Q¸·R¹¼L··Q¸«FÁ«K¾°F¾²Qº±S¿§R°¦R°®F£¦?£¨Iª¨Mª¥F©£H¨œC©¡F¤¨>¡£1˜©4‘­9™¡8•§0œ9ªŸ@§™B©ŸI¢K¡¨A±©A«¥8°¦1³¦1ª¨)ª¤ ¶¨$¼­3³°2±¨,¥«.ª¦>©¬<­¨7­¨@ª«3¡ 1¡•;©–3¹ 0¸›=¾žEÀ—>´ŸD¹–Cµ–?¬¢:«ž?®§8 ª9£§E¦£Fš©>’¡=ŒE…–@ˆœE‰›F‚™<‚’DŠ™A‰Ÿ:ƒ£=}¥?ƒ«8†¥A‡Ÿ=‘ªDŠ¨F„´L~±Ds±Cv²J{·Sv²L€¾L{½?pÆ@m¾5tÄ8k¾8k¶;f®8f·2n²3`¸/bÀ5b·:i»:^¼3VÁ5Xºr¶Ao¨JvªPe¯Ie¬Je¬OeªIm»Ii»Geº=rÁ7uÈEsÃGrÉKm½Em½M|¼P‰µT„«Hƒ¯GŠ¬W€¨N}­UŠ®S¸_Ž³Xµ^±Z‹¹f†´^‰ªg¡b¢n†§a‡ªbƒ¨fŽ­j‰¥h¥^Ž¢h˜˜i“b”Žl–„e†c‘ƒf›†k|q’yq‹tu•hœ~f•|hštq”in›]{”bv•g{†[z3jl+nc.bk3buAZh@T_B]V:Y\BfYGaTAe[@h[E[R?bJ:`SCVQN[^GcVM^\[VSecXriZajTal[eiejqajsmnthtvbn]~f†bzuY†y[|wY|te…jb‹bd‘wi†s\’t^€s[Œƒ_„€NŒxU€|V‡\…^„‘^Ž—P–T›šL¡R§”=©—;·›?´š<¨—9©©5²ª.¸¥,¼¦9±§:¯™N¹§9°¥?ÁŸ=´¨E¹œ@µœBµ£H·¨B®¨Kº¨D®›:­š3¼˜5¿¢7ÀžBà7Ã¥AÁ¡7¹±6³­3´¬7¹«?»¦<ȤK¼§N¶¯L·®N²µK¿¸V½ªG¾®DÁ±N»©Iµ¨X¶¯HºªC¸®D´«C¸§Aº£E« I¤›>¨­>¬­9£´9«³2™ž;¡¤5¥›B¨©;ž¡A£Ÿ4­¤>®¡J® 9µ¥4´ž:º©4­¥1£©3­©'´¡/¬².¶«<£¨6Ÿª5ž¦:¦­A¨¬?·©:­ž=¥ž8¬˜9±6ºš<µ–@·›A°•G°™@¼›<³™B§¢A¥¨6¯©;¤¦4¦¬7˜¬5¡¨8œ¨Gš˜I˜L¦@ŽšH‰?„£;’žBŠ—E¡;„®>Š­2§=}«@‰¤=~¯F€´P~³G…¹F}²LªP€µA„»=vµB{½An´8yÁ4pÂ8wº5n»o°=t´Gt¸Gw¦Pq¦Oo¬Nm¨Bn¬Dp¬Ij¶Bs³@o»;n·6t»MkºOi»Bu¼R|¿V‚¬O†´K°F{©\­Z„¬M‰µO‡»O‹¾R•«WŽ´Z’¼h‹»e”¸n‘©k‰¡e¤h‚©g‚­_€¬e£kŽž]”n–m˜Šq–“m‘†hŒd’|l‡a•€c‘|q’g–ym™ƒgpzkŠoqru‹`z‘a{†].td/md7mg.\n+\]2\X8RT[UAR[GTdEZ\LVRS]PdiLjfTrt^iq]ordijhkpakvapiapl`€{\€_‰re„nY†k_n\Œs`g`…p`‹ueuh‹s`Šu]~K‚ƒI~T‡…_‰ˆbˆc”‡\’M˜”L”‘IœŠIªˆ?­—E°›;§ž?¦Ÿ0­¡/´¡6¹œ5¯¥B²Cª˜B°›=° @· >»œI·¦Eª£;ª¦B®@½J¾”K¯–=²žG¶œE³š;»¥9¹¨3Ĥ<¿£8³¦8¶ž>â<ƬFÄ¥GÁ E½ªI·§M°ªV·ªJ¼´M¿¨Q¾¢J¶›Q¯¤L®°J²²;¶¬C¼¯DÀ¥B»ž:±ª<§¥?±©J³´C©³=¯¬AŸ¡;š8¬§>²¥=®0¦¤4¬–B­™B¤¢6§ž4­¥-»­*¹¹/¨µ.°¦-®§5¬­6®©7¨©9¥¡>¡¬<¨°E¨¨3°¦/§œ1¥™6°A°’Bµ˜:¶™B®œ<ª–D¼•<¿œ=¤9³Ÿ?µ°<ª´;¡ª8¦¥7¦¯3–´:£Eš¡G¡M†¢I‡¦D–ŸAŸ@Ž¢F„©8‰Ÿ5‹­8‚®3z§C°Bˆ«E}¯My´I†ªJw®Rv¶T…²J„¨=}©B|¶D|¿:v¸<„·?€Æ4„»-x½/p¿0q»Ä G´:Ę6Á¡@À™;ͬC¾¨G»©KÁ°W©ªMº®Mµ¯Mº¢I½žI¯ªNº§L­±F³§?¶«1·²8ºž3µ3·¡=¬Ÿ>®µ=¸«=¬«Eª­I¦¤FªG²˜>±Ÿ@±§4®™+¦›/ª•8§”:«£6¨¥-¯²2¯¨,¯®5²¨,²¯1´«0·µ9®®:¬¤4¬¤1©®G¥ 4°«<¨Ÿ8 £3ž˜<ªŸ=¨œ@ª›AªŒB­Š=ª›=¿™<²œ:¶¨B¦ªB¬¬7£¤?Ÿ£6˜¢6˜¨2œ¦B³P‰©Q¥P‰ªFž«E˜©I‡ EŠ¤G‰œ7¤7Š²:‹µE‚¼Oy®C…¬Gƒ²Ky´G€§F†·N†µQ‰°;‰·A‹¶>‡¼8|ºDv¸<†È7Å5}Ä9{½Ax¿>~ÊEjÉ6mÄ>kÕ)`Æ(\È7`Ó0XÐ4WÊ,YË.aÉ:b·;\»?jºKkºNqµUmºIk§Nt·Er±;n³Do©:j°6e¼?oÂ6oÀ=hºnc0pY.a^4\];VS@XP8\Q4USA^MJZWBSW@UX?YP;[ZFSXINSWZOXeSZ^Ud^c]]gh\_cifjeanmZmt[ktTluS{mSuW{qUul[zmWz]y_ƒz]ˆwg–yc’i`Šj\‘f_…jT…iTŠh^‚s_ŠsXƒwZ‚yO‰zP”G“ˆJŒŠJ–•?¥ŠG¤Bª˜H£—@£–=°”:³™F¬C°„I­‰?©‚=³‰4¬Œ2¥—:«žH ŸEŸ™E­œE±¦=¾¥Eµ¤H½F½9Ñ:ŝ7ÚA¿‘CȓK¿–B½šF¸žK¹—@¹ LĦMÀ²T¯U¿¯P±ªQ¬ L± I¬¡K±¦?¶¡7³¢@·¬6¶ª9º«4µ£,µ©+¼«4¾¡@³¨>»¦A¹¯G­¡N¨¢E® L¬œD¸›;¼žC·¥>¹œ2¶ +¯Ÿ5®¥;²5²¬0¬¯8«²,»¯1±¸4¸·)¸­2³°-²¶2±­*±¢6ª¡:®¬9­¦@¦¥?¦›6œ£>Ÿ9š™< “F¯‹E­@³˜K²ŸDªªG­°Cª´E¤­>§¯?œ¤5Ÿ¡1’¬;“¸=‹¶J‹·F­H®B”²D°BŽ¨?Ž©H¦C–§E¯;Š±<¶L‡­P…³KµG|·B‹¨Cˆ©K~­R~¯Gˆ·Bˆ³;ˆ¶5~¶=|¸2ƒÅ3‰Æ>ÆD|ÁLÌD€×I|ÖBxÔ3hÏ-f×5[Ñ/R×4WË/aÔ.aË+V¾4XÂ8XÄCV¹FW±Pi·Jv·=sº>h¼4j±;d¬¦5¡’CŸŽ9§…<£3©Š1­1¦“;¨‹=©‘=›—>žŸ8¯˜C´ŸA¸¢Eµœ@Ś@ÞB¹”:Õ7ŽBǘF¼’EșJÃ¥B¼˜KÀ L¶•;¹£I¼ C¸ŸI·›T¶¤J«™I±žM¸ŸM¸¢F³™C®¦D¶£7½ž:ºž6­¢2¿ª2´²9¸¨3¯¬>¹±B¼§Fº¯<®¬F³ H­¡B¹”D¯£F¸§@¿¡2°¡3§–(®‘/©¢3µ˜-¶¢9¹¤'Á­2ij2º±*¼«*¼°%º³)¸«:´­6©š6©›<¬ž:­•D¦?­ž: š?¡”@¥ˆH¦‘Fµ‘J©Ÿ?¨= §>ª®<£²D¥¦D¦¨? £4ž¤<˜·=˜¦=˜©K”¬F–¢L—±:›´C”©?† K‹¥=¨Dš¬BŠ­9ˆ¨K½BŒ²Lˆ¸D€µD|ºC‡¶KŒ¯F©B|©AŠ¬E~¸={·@{³1|¼?|Ê:zÉ@|Ò>ƒÆCsÉFrÅ>zÚ@pÚ9gÑ7^Î6dÖ.cË,SÌ5ZÌ3fÎ3^Â3ZÀ3a¿BUÃAj´Dl½KlµAhÀ>f´7[³=^»Bi¹5fÂ6iµ8lÁ7p¿;q¸Ek½Kk©N_¢Un¨Lu¡Vv§Gz¨R†«H„¦G‡®E‹»I…±Q‘µH‹¸W…ÃO€»Iƒ·UŽ³MŽ¤V†Ÿc~§Y¦^ƒ«R„™Vƒ£d}˜]†œf‘–h\„‰Y|“]ƒŽ`‘‹a…‡Uƒ†Yw‡Uz‰a€…V…eŽ†X”zj‹l]„f[‰cpŠmm;kZ0gW/f\3ad/bP+bK4bR.ZW3UM*[G+OS0TS@OR@ULGTWTJWXLUZSRZPb\Sd`O_]W^^g^Qj^]hYkf[npaqjdsqYphKobOxfP„fKuJ„nZ‹fYea•hc‹mb‹pa•mcŽpSˆoNƒzN|sH„lR~kS„sOŽoV‰{K“}@•}Ey?ŸBœ=¦”8£‘6£ˆ>¤ˆD¬”A¬—;œ53ž€7¡< Œ4¡‡4°Š0¯‘-¤‰8”D§œ?«ŸD®–:¡@ʜB½›@º•AÀ›A¼<¸ž7¿=Ê©FȧEÆ¥G¶ŸG»–;¹—:¼”:¹—@µžL·™T³œW±£IºœNº•B²›7®¢<®¢.²ž,¹)°©7²°4»±3¾¸1¶¯?°¨<²©6·±?²§:±¡>µ–@­•C¯š;¾™=À©1À¥%®”'µœ(¯—(¶—*Áž1Ȧ3È¥$Á¯ ·¶-¾©/­(¾©6´ª8¬¢=±:³¢A¯ 9©“E¤Ž@©–5±“;§‹G©ŽO­—N°¢L­›?¤’>©‘;¡¡Dœœ?¨¨A›±?–¬AŸªFœ±>œ²Jš©P—®L‹¥A™¬7—ª>‰ª;Œ›F•žH˜¨DŽªN•§G¬A¶?±D~¶;‹ºAˆ¹L²P†¸C¬<„±C~»E…µ<|¹A~µ4vÂA|Ë=„Í:zÌ6oÄFsÉJtÑo×6gÕ<\Ý2^Ö.UÎ:ZÅ?\Ë0ZÁ/]½.V¹;b¼>`Ã4pÅ8y¿Fn·Ci¾ÃžN½;²œ7´›=ºœ2¼@ÁIÀ™J¶¡MºŸQÀ¥N»•D¿šD¯‘1µ.±¢/­˜(´.²ª8µ©:¶³1·«>¾°9¯§0«©;§œ7«®;­¤=©—@±œC¯•:¾£5½¦/±£0¬ž/ª’!¨–.À’0Ĝ,½§#ñ,¾².ij/ì-Ä­"·²,¿«+©¨8¯¤3³¨3©©=¨•C¦“A¯šA³›6©šF«C°˜N³˜P¢“Nœ“Kš@¢¡9›¦HŸ°;™¯G›ªB—­E¡¶Iž­G¦Q“¨J£Hš¦FžªN‹¥J‹—>‰ J’ŸBš¯B—¬GŒ¶E”²:†¸>‚±8€¸>|·?€¾E‚¼F’¹J„¸BˆÁ?“°A„·:~¼7x¿9„Å>tÎD~ÉE{ÊDqÇFnÒ;xÍFtÉGsÜClÌAiÐ.^É?_Ë@\È1_Á/fÉ;[Ä<\Æ,h¾3o·5ƒÂ?w½Co·E`Å9VÃ<_Á0`¾=`·9e¹0k¼8h¿5c´Co°Jc°Oj¨Pi¨Lo¥IkŸL¢B~ª@„®E…®Q¸L¬N‹¿SŠ²V„µH·Gy±HuºT…«KwµNq©Yu§N|®J~°X‡¡M€¨Y„ PƒžR„—`ˆŽYš_‹ŠX‹Ž^‡Še{€ay‰hs„axŒhy†^Œ…gŽƒ[…vg|}e}}c€wd0T_,aU7YN7`V1Y_+TZ"XQ'\N$RX%OR%MX1CP??IDBQKQNRQU]XTYNSXP`WWeXSeQZZUSSRY]UPb^Wib`ckaav`[~aL}_MƒmLŠlQ‚^HŠaFˆaQ˜nW˜oT—qV”tauf›rbP–O–{P—WyN“pP•qU“{K˜};š‚<“€:—Aš4¡Š6™ŠCG B˜‡Eœ}Jš}DŸwG¤w9›†?¢=®‹=«;®Œ<¤‡4±‡2¬‹1®Ž*¿œ-¿›.ƛ9͑D͐BǗFÀ™E¶¡9º¡=»¡;ĦFº›D¼ž7µ˜9¸’9´›D¿EƕM½šG¾žL¾šC³”>³˜:¸–=º˜.´–)´ 3´œ/¯£5½ 8¼­<¼«0· 4³™8©Ÿ7©¥0³¤4ªœ.¬š6­—;¸ :¸¥7¾¨4µ¥2¶¦(µ+²”+»“ Ĝ$Ä£-ì,ȱ.É®.Á¬*²(µ#¸¦.¨©7¤ª<ª¦3ª¢;¯¢:®“<¨–:®—=±=¬˜H²“E®Q£–Rœ˜L—ªHœ¬?¢¯Fž°>§·Fž®H ¦K˜ªL˜±V”§R•©Q™žO›—O™šL••PŽŸCŽ¨E•¥9˜®<‘³B•¼9‡»9{»5~²:v­D|¹<‚Á6‹ÄA‹Ã?’ÅJ˜½H‘¶DˆÃ=„ÉE„Ë?{ÌwÔ@jÎ@mÒAsÓ=kÌ9gÈ7]ÈAcÆ@iÈ4lÉ0e¿5dÄ3hº0r·;{À8xº5i¸=]¸3_Á9WÂ5_Ç2k¾(h¼/k¼6]·=_²PJTLK[WIZWDTUFXTUi^Tp^[iTTdWNT]PUUSVd`an_coX_mbTsZQxaLylI€fK{hFˆ^OŒ^OŠbT”f]gV‘q]Œnb•o`—‚R–‡PšvSuN’wJqIšwH;˜>˜†?~D’Mœ8¥0¡ŠB™}A‰@šŽ@Ÿ‡<–sHœ‚F­}C z=œ‘Aª?¯C«Š<­1·,±ˆ0½Œ6•9’4¿š,ˊ<͐<ØH•F¾›<¸¡D¼£@¿¡;¶™CÀ˜5´–A¼—/¿’EÖ:¡;¿¢:ºœ?º˜C±ž1´0¼‘4¾–.²”/» ,ºž:¬«5¯¡?¸²?²¦Bºœ:·2¯¢;¤¤?ª¬5« <® 6¹¡9¼§=Ä¥/Å¢6´­4º¬.¯Ÿ)º‘*·›)Ä¢*Å©&Ī/Á¤/¿³6ǵ3õ(¾¯%Á©.¬3¬¦6«9·™=±—F ‹@¦›Kœ”Aœ›<«‘M©›B§RŸ˜Qš¨S’¡KŸ¦F°?›°I˜³Jœ®F›§Hœ±Ož°J˜²P“«N›¥Y¨J’¥HŠ¡R”Bˆ¬GŠ¨>“²A‘°A•µE‰¯I‚¹:¾>{¼B²;·D‚¿?’Ã@ƒÂ?…½M¶Nˆ¹D€ÇC‰Ç@€Ú=tÑ>nÉBoÌG€ÒJ{Æ<€Ò;uØCtÐGpÔHcÈB`Ò7]ÍG^À:aÈ3f¾7gÁ0bÇ9qÄ6hÁ=rÎ0xÃ6a·8b»;eÊ4i»5cÆ/e¸,r°1k¸9`´0g¶0]³9l¨Go£MhšNj™Mož?j§Ez®?i¤Ly¯Qs¬Dy­LŠ¸G‰²LƒÆL|¿Fl»Ix«Bz¶Sh°Fg·Rs±FqªG|±P¯Nz´I{²MŠ­I„ŸM‘š^†œR‘cŒ_€a_x…`{fŽb{‰c€†jm‹ˆlˆ_ƒwl{`.[_)JW4SP2[F9VH6QC-IN/JM+IM4IC-HA6JK7DM>O]RNWZI[`HZWHbYNoeKnaOhWO_VRW[WU\PXfYUcOdjVguZYw^X€`L~dMykK~nOŒpZˆjSŠjXfT‚kT‘sVmR“xWŽ{Q•V™xR•yM˜…L—B–„8˜…<–ƒB‡D‹Š@G™…Ažˆ8¦yDžx>Ÿ‡D …E–LwC£€?§y>£…3¤ˆ6£‘4¯‰>­ƒ?»„/À/¼ˆ2»‡5´ˆ4½“-Ō.ė9»’B¹ BÄ DʦDš9ĝ5º”6Ö?¼‘>¼76¼ž?Àœ>¹¨4¸¢;¹£>·ž8·›4¸‘2²“/´š;¼œ;¹›3«¡1®¬:»¬9¾§?æC»›6ºš2©¨6ŸªB¦¦<¡4¦š=«¨3¸©0¶¤-Á£8²ª.´¤(µŸ(³™,µ-³£+¼¥(ș$Ǥ)·©-²¬-¾·4½³,» -½¤/±=¹•=²E«ŸH¢”M¢œI›žJ š=Ÿ“@Ž?œ–N•ŸP—§N—¦F—©H›«O °J¥£F¢¢H®O˜²L”²B–®Hœ¤W–£Z¬W­J†§LŠ¨L‰­F†ªO†­P•¬?–§IŒ¬J±J{¿G…²H~¶?€¼E…Á?ŒÇDƒÉ;„Ç>ˆ¸MÀL€Æ<ŠÊ8„Ù=€ÛEuÕ?xÍ;wÌ<{Ï5€Ð;„×D{ÐIoÊKdÏFfÈ=kÃ=_Ã5\Ê=\Ì:aË:`ÆBkÇCfË9qÊ7sÆ5g¼-k½%hÈ.bÅ,^µ5dº/kµ/e¬3Z³3SÁ4]½0f®8j¬?p¨GpDm¡Bn«=g¡Jk¤Nv Pr¤C{´E„³M‚µIw½Jl¹Fn¯Av½KlºHi³Qm¸Jq¯Rn¯Pt²Q‰¥J†ªE~®K‰²Pƒ¨PŠ¢U‰•[Š’Z‘Xƒ•[‡‹b…”bs–mx•e„‚c„g|~q‰~m„€f‰†m~c&MJ%QW2VD4XC1PI.HD)MF+CK(GG/ED=HM1CV:CONMeUOZRCaXETP@ZYIedKlXT_ZQgRSY_[abK\VV^h_hh\mi]it[dphZ|fWyeSylWz`W~_]}k]vnTŒg^…{[vRqTqZšyI‘uF™p=y@ž~E”€GƒH™ŠMœJ•{EŒ…Kš|I“ŠBœ„9™u3ƒ:œ€B¡ƒB£z>¨|9¤}D±…0¨‰.§{+±‚1®‚4¹{0¿z)»~:¶ƒ/¸’4µŠ0ʑ/¼Ž0³—;ĖAÀ—Dē?‘>½•5²’.²•4°‘=µ3»‡;Á˜6º•;¯¥C³ 8¸ C¸œ:µ›=µ›(¹¢:¾ .®5´˜1³«8¸ªC» 6½¥6µšAº›G¨¥=§¨EªªF¦¥?¤§G±¢?«¨D¸¬4ºªBÀ9¼›1´,³™)½—3»Ÿ(³¤/´Ÿ'º‘)ƛ2ª3Á¡5¶µ8¸ >µ›3°–9³Ÿ9»ŸC¼¨E±£R«˜Sš‘J’P“¡@¦šD¡•E ˜HšžS žU ¦Q”¤Nœ£P¨F›ªU•¢RŸªJ˜²S’¬R±R®X“°R‹±W‰²[€°RŠ£Y‡§Z§W†¤L™±M•²C†®M­FÄ=Ž·?…¸A„¾9ÁCÍI‹ÇA…É?ˆÃPÌ>†Ï;ŽÌ9ÒG‚Ò?{Ì:{ÕDsÄ=Ì6„Ùs¡Caœ>a©ApŸJj¢Ns¥Ak¡=w´Ou«N~°Nn²Ep¶Js¸?m°Hj­KjºCuÁJq»O}®W…¨TŠ¥Ry°T{³T}¢S‰¤\Ž›[ŽZ‚”b€›^‰TŽZz“iŸkx˜]…‘ha~}izjw^…wd„ƒ`.OF*NN&FK-GF7JK5HE-LA+EI4MN0EI2@T:GQ=MYMH^KGWNDZECdL>\V=f_KeXSj`JeYHZXQ^YPkPMf_S]]^cn_^qfbs^R{]RueUze_}mbte]|iZ}tU…rW†sX„lQvZ™wZ”oJ•fEn=“xF“€?—‡?‘…G’K–KyS‹yIŒL•|?•‚0•€2¢z1 }5®ƒ;¬†<£„B©~:ª-®}+µy.³|.´w)³y*µ&Á€2º‰*¸Œ*¾4¾’.ž/¸™9À—57×;¶•4°Š8·‹+µ’-µ‡4À„9¹Ž7±Aª™?´—?® :ºšD·¡<À¥;»ž.µŸ2¼«0¿«*±¦/¶§1²§=±¤>¯œ;¯¦:¯¤G­š?°¡E¤¥K¨›F£¢E¬Ÿ;²ªBµ¬F¼©E·¦>ºš9Ý)ɧ+¿ )¶™*º›.¹Ÿ+½™0Ɲ*ƚ(Á¨/»ª5´›@·™?°š>¸@³šF´£G«—G¢™M¦—L™—M’“O››C¥MH›§Rœ¥K¡¨R—XŒ©N¤R™«K”±R“µKš±N›°RšºJ“¶PŠ´R†©Pƒ¦^¤bƒ§Zƒ«Y€ XŒ¨U’«K‘¯DŒ¯B®DŒºB”¶F•¼:·CŒÀ?¾JËG‰ÃI‡ËD‚ÕKˆÐA‚ÕAŠÒF„ÎE}ÉDÆ<}Ë:×A€Ñ8ÙE{×FqÚ=lÛCqÛEkÌ?pÍCpÖIqËAgÐGsÐFmÈCkÊBxÒ=sÇ:f¾5c»3i¿/k»0k»3q¸,g¹3iºAiµ?e¾?Z¶9b¼>Y·4\ª?e¨@l¡K3LG7RNADV@?PT9RL>HS:WR>OVNd[H`VLYWV[TOcWP]PRdTO\OYec\encefa]sVQo]TnXW{^]nadpeayq_„hQ€jP…x\Œv\u^™oS™yI‹qNŠnB~=›„EŽ†@‘~NšŠI¤‡Q”O|9”u@–s;w1.§x7¨Š5¬}8«ƒ;«2¢‚7­ƒ/§Š9¶}.¬v&¸z-¶0º~'Ç~0¿)Œ)·‡*¿“(º0½¡:¸™9Ä¡=º—+ºŒ5¯/¯’'µ4·Ž0²•3¬‰@°‘9¬”C´œB§¡?ª Aº—AÁš6¾¤4»œ1­7¶¤4°®.¬¯1±­9³š>ª›Fº¢Fµ¯N°E¶©E´–G¤—I¤¤GºŸ8¸ŸH²´Q·ªHÀ°9¸«;¿›3—0Á¡)¼6¶˜2Ę5Ÿ4ɚ+¾4¼­6ǬB·©7±¦GÀ¦J¿¨=º§Gº¢A¤£EžœU™‘M—šRššD™—D££J¢—L›¨Q•£C˜¤Q¡ªVš£Nš²S•©R›²K˜­Q¡´I–¶Y‘ªP‹µL‰±MŠ©Y‘­^‡¥V†¥YŽ¦]†¬W‡¯\ŒµOŽ°Pˆ²JƒµD“±F†¸I’Ç@Žº=É5ˆÈBŠÃH‡ÇD‰Æ@’ÊA‰Ñ?€ÏK‚ÑT|ËBÄK|ÊK‰ØGƒÒ;vÕ@}Ú@€ÏLyÝGjØGsÒFpÅ>jÍGrÒFdÒHgËHnÆNdÂEqÆEzÓ:uÎ>fÃ>lÁ6`Á0j´-j±+e³/_µ9g³4`±7b¶D`¼8[°8\´>AA@G$>L&JM1MK&HI*SD8JH5BUCDSBOJ8?A?@GG=BU;GWJPMGOVFPWE^XI`MRVQIPbH[\NUT[YP`d[Z]d[`lTZfR`hUYvfTrf_sdglm]no]~iPŒdS‰oN•uM—xP˜yOyR–}EŒr=y;›|DžˆM„G¡ŽJ¡M¤‰=ž‚:£„7žxA›€:|,¬ˆ6©†;«‚8›|1š9¡u=ªy:¢‡;±‚2µ.­y"¯~%±}0¿s+¿„/Ž9̆3ƍ3ǖ-¿š5Ȝ<ʖ5ʙ:ő/À‡4ª‹.­Œ&®Š,¯3°•A¾”?»œ@µ›3¥˜5¨›;µž<¹¡1¼¤1¼£;¬œ3²§0¬¥>´®?¬ª6¸ªD³›Aº¤E·«E·°:®£7¤¥C§šFµ¤A·§=¼«L³­K¼«D½°:·¢0¾–2¾Ÿ/º—8/½—*¿¦*Æ¥/¿¢6Æ©1Á³5˵=¼·?¶¬@²ŸE¾£I¹£Q³§Kª˜S¢˜PŸ—P™›P“”M›šQ¥¡OžžG–¦Q•«I“®K¡­G£§M˜®K˜©K›±Mž¯L¡¯U‘´QŽ¨V€ªW€¦H…§O­O‡²R‰²_”·Y‘±]Š¼Z¸L‚°M‡®VƒµMŠ¯L¯LŽÀE†Ç;ŽÄ<½I‚ÄGˆÈAŽÌ=„ÆI‰ÊG‡ÏI}ÅR†ÉMÇB|ÌQ„ÔO€ßNxßFÔ>{ÕEvÍEnÌFuÉ>kÄ?lÁ;eÆ;]ÎDeÑFiËKgÈFhÔCjÏ=tÉ=nÎBmÑBbÄ?Zº?`¶3_À8g¼5^´¤~CŸƒ?¥Š+©-³„1¨„.¬|+°r*µ€(´‰/¹;¾“Aə<è/˞1ř/ʚ6·•=½‡4·<´Š7³—2¶‹<µ˜@»A±“;®”6¬‘=ª›Eº¢D±§;»®0´¤-³«5»œ<·ª;µ›=²ª?²«;¨¢K¯ªE±£Bµ£8¹­8²¢@´¦G³ K®¤G­®J±«D¸¬C®¶B¹¥4·˜<¼›C¶—B˜?À™7Æ£*»š5é/Æ®9Ò§0Ê©6Ì´=¼ :À­F¹£B¯¡Eµ˜Q¨—N£˜S¦”J¨¥O£¡R›žIž¢K™©R•­Qž¥Mž§Oœ£O´G °V™´J¼Lª°Z£ªMŸ¤S¢W‡©J‡¦H¶H‡·Z“¶W•¯b‰¯Z•¹^µRÅN—³R–¯IŒ¹Q‡±J‰ÁFÀO”¸>‰ÈI‹ÆEˆÆJ†Ä@ƒÅ@‰ÅJ‰ÐKƒÈNvÌL…ÌE†ÐLŠÍNÚOwØK}â@yØF|ÓKyØGmÎAlÉChÍ>uÒ>gÓAiÑDeÐFlÍ=mÊ>fÐ=pÆJrÈHkÃ?_ÎGaÇChÄ:a¼8`¾5fÂ6nµ>sº>a®Aa´?c½8t­Au¯Is¶Lz¬Co¤@n¨Gy­Ns²M}µN~¦M{¨RƒªQs¨Q|¦G£Hw=o­>}¨@u²3w®@~²S}­R}™Q‰©R‚¢S‚¥\”š`Ž›[Š¡bxœV{¨[{©T‡™]}š`†¡k‡žhz h}Žfx•Z}‰azƒ`‚ƒ`‹‚OU?"I@%=?$BO*RI#PI+RC.VM3YK@RNJXHCNMFDIRHP]KOYPJSYMZaIRcNXfW\m\OgTSj]Xb\Rj_UnbYmaTsjZudR|ga…q^‡iXŒpYˆsO‰sU…wTŽoR›vP™rHœzG“Š?˜ˆ7•>¢…EŸ‹C¡=§‡?¤~>„4–ˆ7”.ž†8 ~3¤w/­r/³o6¨x@©†A­ƒ:¢~.¨‚+¨ƒ+¥{'¢v(°z&ª…*¬Š'±”0»™=Ä¢8Ȥ6Áª.È¡0·œ:·‘9¹Œ6²Ž;¾ŒG¿•B¸˜9º™=¯¡<³™;ºœ;±ŽB«Ž7°ž=°›7º©-¸¤+À©:¶ AµžG¯œK§šC³¤F®ªJ²£Eµ¨I¿£K»­=°­:³®>°©?®¥MºžMµ¢Cº¢M¯«G«¡@¨šA¶;µ“C½=º“>´œ1¿Ÿ5¦5ʨ4Õ©5Ñ­6É£8Ë¡D¿›A»¦I¯¡S«—Tª‘^©šZª™S§ŸN¦’K©–R¤¦UŸ§Q›¡Lž¦Už«J™¤MŸ®R¡±Uª¯\ª¶U¢²K£ªM˜žT¡J„«GŠ«N…¸Nƒ·[ˆ¼f‘¯bŠ·eŒ¿a‰»f‘ÄYŒÅQ”µK™¶NŒ´O·G•ÁI‘¹M’»EˆÃOÄK{Ð@„ÎE‰Æ?‚ÇB~ÈLwÉT‚ÆN…ÎJÜJˆÙQ‚åFxáJrâBtÙ@wÔAhËMiÌOqÌKoÈArÓCh×FoÏ;mÈ7kÌ;tÔ@nÊHsÍ?hÉ<_Ò8_Ë@^¼9b¹6f¶6o¹:z¿>t¹1lº3l²;u´Jt¼Kw¼Ey´Gs³R|­Kz­S~´Q´Zv³Xº[ƒ¯O|¨K{¦OwH„£M„¢Gy›<ƒ¨<}¨=¡E{¥Gy©U…žX†¥U‡¦_Œ£S“SœQŸX€§Vuª\¬\~Ÿ\w \¢gˆ›bžj†“d}atŽisŠb‰`~€\$L>!IC.PG"ATEE+QF$NG:TL1GEAUO>FDAOPJLOUPKPNPHN]QSbJ[]ITePOcMMd\RhYFi^IicYikKriSo_ZrdQƒgRƒhbaRƒdXlM€jQ…fG‹kF™gM”wK”tNž|:‘†E‹’=Œ:—8—†>¥ƒA¤‹1“8ž‹<˜…1š„=£{.žt-¯{7§w@¥wIµ…6¥z@¯{2¡}2­-´{8³x#²%ª‡1´3ª”.¸;ŜCț5ř/ɦ6Ǥ.¶Ÿ1¸”/«œ7µ–E–D·JÀœCº 9³•C±›;ª–J«’9º•0´™8¸£6¿«4¾£9»¨<µ¤<® J®¨D¹­O¿°E»¬J¿¤I³®M»§DÀ¦B¶°D´ªQª²Pµ­E¿©G¼±N½¤OªL«I°–E•M·IďB½£9Á8½¦7À¬:̪4È©8ϧGÌ¥LĪD¾žD´¦J§¥V¦£Z®œW§¤]¨žSª˜H¥šV¥œO¨¯X—¬Qš§T¥¡NžžG¥©J§V °O¨ªUŸ¯U˜®K¤¥Q“£E‹¯Tˆ²Hˆ´N‹¼OŽ´V™µa›ÀWŽ¾U›¿_ÃUš¸N“¼J‹¸T½NŠÁM·I–¾LÃJ…»FÉEÃCŒÊEÉ>†ÂH…ËC~ÐYwËVÉD†ÎY„Û_‚ÞWÜUr×ShÚ?pÓAfÑTqÊFxÏJsÈNvÃ@mÅ=qÎ?g¿>tÇFlÂChÆGjÊEh¿3bÇA`Í?aÃ;d¶2k±3tµ;p¸;k·1j·?oº9o¾Bn³A{¶@€¹A†¸Qy»M~®Q€°Z®[ƒ®P…²O‡«F~®K† Q€¡U‹§L|¨K§E‚«?~©LuFt¥J„—J|–X‡žU’ŸS‘˜^• P—\wžMt­S|­dx©X€¨X€ªX~«d…¡_‰›h}Ž[‚˜gƒ—]“cvˆY„PHN'DE,F>0OG%QL)KJ2LN4KM>LA=IFDME9NAAP=8M<>I:?Q@DJK?BG=AHKPDON>QNFISJQQVRUV`IMZQVcNNjHPdQBc^DkaSfeYklTz[Vz[S{ZP{[[x\Y~bM}gG~dH~fKfKpNoOŽzJ˜}A–CŒ‘@‡”B‡<ˆŒ:‘ŽA>š0žŒ3”z?Ÿz9œz4£o<¡u8±r9³|A³‚<¨{6­}9¤}8¨„<³„8ª„-±‰*²‚5ª1°‡A®Ž?´—<¿“<½ 9­8Ş7¹œ/¸;°™8¹‹:·A³™A¶ L­’Mµ’@¬J®œD·š<º˜4¼™0Á¡5ě+Àœ2¹¦1¾§Aµ­Iº¯C¼¨AÀ§O½«G·«P¸¬PÀSµ¤M°£S©©Yª°U¶®V¹¯I¸§O»¤V®¤N°›E¼›EßSÀ™YÁ–NŸAÇ£=Å HÅ CΤBÊ®?É«EÅ­C½¯?¾¡<­¨?¬¢M®›S¬¥\«™V ”Ož’G£’HžšV£ªT¡£KœF¡œF¦¥Ož V¥¢V£®U­¬N£¨F™¢I¢«J¡¦Q“¬Q‘±O˜´R½M™ÁW™·T”ÇO“ÅUœÎ\žÆWšÈZÀMŠ¼Z€½W¶R–¹EšÀL“ÀLËB‰ÄG„Ñ@ŽÑIˆÑOˆÃIwÆSsÈLyÇQ‡ÐMŠÝX‹à]~Üa{ÛWrØKiÏJnØKqÔNtÔIsËFlÊIu¾Gn¿Mk¾Bu¾XÈ;Z¼0NG7LB6IA;V?8L@9EDJE@>E=C@JUHFRJOHOQLGVYGOUCUZ?RkAHeMKlQO`SIaaLfeKh_StfR}_[{[KvZL\Q|_Iw^KƒTF€YH€aH‡hMŽkN’wL•{N€?‰8—?Ž‡<”3ˆ‰>‹‰B‘Ž8—„>š:™„8™{;£„F r<¥nG¯{A¯vC¨u>£‚<ª‚?¤ƒ7¥y8¦‚0³ˆ0­*¥‹0¦Š-°Ž:®‡5±–B½›6Á¦0À±<¿œ;½•-³˜4·‘F®•C´Š=¼M»’E²•A¼”@¬’@³”I» :º @¶š1¼¡:È 3Ì«>¾¨:æF¶©F®;¼§HÀ²QƦM¾¬Y¼­XşYº R¦¥I­¨K®¨Y®¤O¼©T²ªT¾¬O´§N¬H·¤R»§MɖW˒HśJ͘?Ο?΢CϤIÏ°7Â¥EɯBÌ¡CɦB¢G¶©NµW®¬^¤–R®•J¯šL«šMžW¦«J «Q™«Nš«K žN¦¤W©¦R¤¨O§ TœªH›J¢¢H§ªY™­W”¹J´R–³S”µPÀ]“ÀS’ÂW¡¼V”·Zž¾[–ÄZ‹¾Q‡º\Ž·T†¾BÂS”¹[‘ÁO„ÆQÉV“ÄKÊK…ÎH‹ÇNuËV|ËH„ÑJ€Ò\ŒÚV}ÒVrÒYrÉRlÊUsÑXpØSdÐCiËLr¿Dh¿;eºBuÀNnÁw´5q¸BhÂBkµ=r³Ku¸M€»E‡´O~½L‚¸Wˆ«XˆºU‹½Y‹¶O~ºF†°I¬;‹­J}±Iˆ°B…¡D~ŸH‚ŸKƒŸL|šNw’F€’Tƒ–UˆžW’—T«YŠ¥Ux£L«[~«^s¢X} dw™a¦Xw¥a¥Xš_„˜_ŒcŽ”S€ˆS}W[?RI PA+IF5LF>T<>XE?ODDOC:VCAVG9K@7MCACI]FBlKDkUIcbJl^GihGy`G|^S{`R~fSveXyVKu^N€XJ„VJxUCz^C…gA‡o@ƒxEŒxE’B†:‚Ž5Œ?†‡7‡Š6ˆ~5’5“‰@—†;Ÿ@¬…J©ƒF°}K©vM«yG¯}@®€?«€@¤B®|:«…>¦Š8 €:©…3£„*®‘1¨/§‰<·Ž5¸š0º£-º¥0¾œ6´ž9¹=­•F®P·”J´ŽR¸•H·œH¿”D³—:²š=³¤Aºœ=º™CŦ;Ì¢>È«:É£:¾¬> ?À£=È£BîMÀµS°[½¦W¸¡V¸ S«¦J±£T­­Pª¯W®ŸQ¸¦R¸¢UµªY·©LºªK¾P»šUǙLƒFƛNÍ¡GÉ¡HğIϪ9βBůFÄ¥FÈ¥AÁ®E²¬M·¦G­¢R¯¡V²P®˜X¬ŸS¬¨P¢©K¢¯Eœ¨Kš¯M¥¨Y¯œU¨›W¨¡W¢™O£•S¢¢T¦²Pœ²O’»J’³R’µY”µ\ŽÄS“ÂVœÉQœÀS·T—·Y•·O–ÄVŠÉJ…¿O{¿RÇPŒÊ[ŽÃX€¸`€»`‰Å\‡Ã[‰ÅSŽËL‹ÉG‚ÖQxßZÙS|âLÙVwØXuÍ[{ÐVrÐUtÏ^eÒUdÇGcÅGeºIc¸@a¿Jo¸Ip³Jj»Fh·9OEFDU>DNJGTAL[:OW;IWGA\FCiMi_Jc`=d`OghFijLufIaEu\FnQ9rW9‚SD€aI~SB†WF†^I~b<€u7wFˆˆHƒŒ8ƒ‚:…‰3x;‚};…{/‹;Ž~9 F–HŸ€D¦‹L§‡J´vJ©ƒ?­„Cª|=±6¯„8²‡E°†<ªŒ3²Š8«‡>¦0±’@¨’CªŒB«–8«›.¼™)¹¦-­¡7© B± I¨—F²‘Q±šI¯œE±JÀ”KÀ¡D½—=ºA»7½“9´©C¿®8¢>È©@«@´¤I¾¨?Ĥ=Ä©L¼¤Ié]ɪ^­N·§P¶¦G®¥H°«P¶¢O¯ M±•I¸œZ¸ U¹ Nµ¢Nº›T²—ZÎNȜRşHÇ¢VÇ¡VÄ¢NʤCУ@Ï¢:Å«DÁ®D̨7µ­J°¬M³¦Sµ¤Sµ©Q¬¬B¦«N«¥C¦©IŸŸAœ¤Fš¦Mœ¢K©¢TŸ¥Z°ŸU¤¤_¨]¢¢RŸ¨[¨ª\¥¹[œ»W›´P—·N—½S›ÀY˜´`“½[–ËQŸÀ[˜´\ÀN‹¸XŠ¹]Š´YÁ\‚ÒTÍS’º_‚ÀVŠ¹_»U}ÄR‹ÓXŒÑOÜW†ÛI‚ÜR~ÎW{Û^wß[tÔ[ÔZwØ\lÕOkÜU]ÌUeÒRa¿@]ÄKj·Gr²Ck»Jg¼;iÄ9e»HcÈ>^ÅKd´;e²@^¸9eÀ3k¹=o¼6d³Cr³1q°2uÂ5bÅEvÂGpÁC€¾Oy±O…´Iƒ¸F‚³Lˆ·S†ªP‹ºVŒ­J~µH‡¶KŒµC±G‰¯7§?„žH™GŠ¢=…‘H•E~žK‡—Bƒ¨?Ž¥O“ªQ³P†§Hz¢W€ªRŠU~¨\€«a{žet [€£b‚™c…š]y“Y‡Œ^Ž•^†–R”TG>&L>2M?0?I/KM3JN3KJ>H9DL4BE5NIXKN\CLaFP]:H`jdI^[IZgAgdAf_>tfBug=l\8~X8\3v^>wZDy\J^F_8Še:wJ…€HŽ}FŽ~A‡n<ˆo;…:Œ‚.œ€/šq5–s>›uI¯zJ²‰G°ƒ8´7¸@±†>¹}A±x4ª‡C®ŠGµ…>³ˆ?¥D£?°;¬‰?£A¡‡>©•@¥“6±˜0¹™$»—9®¡=¯£B±˜K±žH¬¡F¨¢G®•R°™DÀ£<¼—3²’4ºC³™F¿¢CÁ­>ɯ;ĬB¸¤;»¨CŪFͬBÉ¡DÁ¡MƧYÁœ[½¦Lµ§F»©B²K¸šL¸¤N·¨I´œR¹¡W²¡Y²§OÁ›K´’Nµ’U´—FĒG̖IÈ£S̪U˟LÏ¥GÒ¡9Ø­4Ò©6È¢CÅ >¾®>¹¬E´£Q»¡M½«H­­B£®<¡ Dž¡J¬¡F¤ŸL™©U›¥]ž¥U¬¬Y¨§_¨¨X¢¦`¡§^­¡T¨¤Zž³]˜²T˜·O–½QŒ¿TœÁR›µXžÀ[ÅV–¶R˜µT‘ÀU¹V¼Z‹º_Œ½^”Í[‰ÍbŽÀZÂbƒ½`É]xÌZ‡Ö[„×P…ÛSyÜNrÕ[{ÐY‚Í]{ÕWwÓ]ÖQ|ÒQuÞLtÜNcÕL`ÉEbÉBkÃBnÁHf½Bm¸?r·Fl»ˆ™7~˜.„š6ƒ¡9šI¥N‚£D£Q¦NŠªG„®F| MzT†£[‰›b…¥e…¥bšb˜aw¡\|œ_Ž]~d…˜^‹—U…¡V‹Ÿ\*N=&U>(L91?J1II2BP:AD4CF@CQAAQ€hA„zJ‹~?‰t;w2l>l.ƒ{0–u9™h>™o3£oB¥„I¯?¯y6¾z?­†1±‡A«€;¨z=¥~6³ƒ<¤“:©9¤‰?£†D¨Ž5¯†7«‡;¦†?¥–6£3¬‘/ªŸ­”7´©?¶™>·™Jºž=®ž@³¤K´ T²˜H»—>±Ÿ?¾œ@½Ž9µ™E»™J¸®FµžL»¬H¿ž@¼¬CƛAÒ¦RÄ£OàSÄ NÈ¢Z¼¦U·­HºœNºšN½¦S¢U¼›V°šM¿›Xµ«J·¢FÇ¡O»—H¼˜K»™IǞ@ȧ?Á¨MÛTMƞM˘;ɨ>Ë¡CÍ©BÒ©7ǧHÀªKÁ®H¹§L¸ H®£F´¡C«ªJ§Ÿ=¯›?¢©P˜±N¢­[œ°R©R±«_¬£^¢®[¥«c§ªS§±_¥¯T¨¼Q¢¯K•¾X“¾W™³M’±UŠºO—Ê[’¸Y“´W’»P–ºMŒÆa‰ÈcÁW‘ÄNÀP…ÌT}ÂV†¾V{ÏUËUƒÉPŠÝS„ÖX‚ÑVuË\ÒSÑbtÏa{Ô`|ÐW}ÞOuãIcáM_ÒXXÇLcÅAjÉKqÇTnÀBmÃ?nÀBeÀA]´C_ºNlÂ=jºDa³Aj±De¶AbÉ7nÃ7d¾@tºDp°PsÂBq¹KrÃD}º;€±Nv­Iz­M…¶N‡ºU…·R…©C‚œ>y¡Ly¢M~£G‡žJ‹­E‰±<—«6Ž >›@™6ƒŸ:“”B‚žH{©E³I’³Iˆ®C†­C„¨N¢\œUšdŠ¨[“¥X€©\ƒ£]~˜Z€¨_u–X{Z{—P‘”U’¦M•žX%I3-M4,O6'IH$GS-DL+HL5?H5CE8MI@KGDJQLBNBJNLSRMLJRA?T?9W43Z:oY=oV=rZ3m`8dW;l\7gS>`Q8c`=nk9sf¾”C»£Hµ U°žR¼›OǙJÆ¡DÁ“NǒTϜUʗZ¼§P½©KƲNÁ®J¸§X¶¢X½ ^¿ YĘO½ J¹ªD»£L´—C¾•G´ŠE¶N¶ H¹¢B¶­F¹¦D½¤IÀ¤PƟPÉ KÀ¡?Á¢CÎ¥=ͨ=Ó¥KÌ¥GƱD¾¬NÁ S»žO®šK©¤>¡ªG¨ C§°AŸ±L¥©R¥©T£°\­§[¦´Zª¶b¥±g¦´c¤¹^¨®Už¼Q¢¸W ·Y¤ºQ¤ÁO“»Q™¶VŽÀQ™ÁY™Á[›¾Vž¾R™¿RÉ\¾[ŽÂMŒÌIŠÆQ~ÍY}ÈZ‚ÅX|Í_ÚZ×U{ÛX}ÐS‚Î]uÌVo×WrÑfÌf{×a|ÕXuÜQbÚ[`ÔW[Ê[^ÂNaÇOiÆNqÁMqÈJb¼LcºGa¿@aºCf¾CiÃ8l¼7_¼=dÅ9nÇ;vÍDqÄHmÉSw¾QuÈOtÂK}ÁH}·B~¹K|²J|¹F³L{´R~³H~¡M€ E„™H¢F„¤E‚§NŽ¢D‘«D˜©C•¤A‡¡2…›4ž8‡ŸAŒ§?…¬LŒ§M†³F†®=€§B|E†T~\„›[ˆ—Z£Vˆ¢OªU‚¡P€¤N}Zy•Z‹œ]‹P‹˜Z¢S"<3&I<@8>IKE*C;)HD2A=.F>1::@G>8=IcDCcG=]U=aV7q^2kd4d^6gL?dTC_ODc]@`hAh[„m?‹x<‰r9kBŽa1’c.šx-¤r;£m5ªt9·u>º|8¿‰5¿‡A¹~8®‰=¯‹4§•;ŸŠ9«…3£“9«Š6Ÿˆ8 —/ª‰>´–:°0œŠ;¥›,ªŽ%«š&½¡.»¦0»¡;¸—:´–F¸—:µF´™?µ§B½™HÀF¾œ@¯—>¿§Cµ§S¼šHÁ˜M»¦U›TÀŸNęPĜOǙZÁ¥S¹¦V»¦NÁ§D¹ S±žK¾ª[Ä­S½©VǤRÁ¡SÁªP¼ J¿œO·“Oµ—R¸—Cµ˜O¼¤Oµ©G¾­@Ç¢N¼ªJÀ•EΣKȤ=Á¢Iʟ9Ò¬BÞCɱ<¿±CëPº¥R°¯C¸±8®¤=°£E¯§F±±Q®K«°L¬µVµ°e®¬džµV¥­Y¨ÀZ£¸_›½Yªµa¤Ág ºY£ÅJš¿W”ÄYŒºQŽÅV”¸[—½V•Ê]™¼SÍUˆÇ[ÌaÏWˆÉ]ŠÓT…Í^~ÓWÕ`‰Ä]†Ì]…Ý[…Ód…ÇTtÔasÎZrÉXrÕotÖdzÒ^rÞirÙafÑ]iÓO_ÏN\¿UaÈReÏFiÆFjÍKeÄBrÃF]³K^¿Q^·>`»;gÅ@cÂAgÂ>iÂIfÂCwÀDzµQ€µRw¿L|¼Mƒ½H·Ez´I|´Px®N‰²GµAx·J³@€ªK†ªE|§?ƒ§<€¦N„©N‰³CŒ§H‘¥=•£;‹,‘¤3Ž¨?†¥I…¥OŠ³Fˆ´@¨Ku¯Gƒ¨B™P~žU¥^‡¦U‹¬Y”«Y“¥X‹±Oz«Yuœa„b‡¥WFžX‚®V3/:9<9@D+<>.@8)E@.:C+=8-3<-=:77B=EOJCLNJHJ?IL@JNGLI9IO5;UE6RF>YK@eLAdO5^N7gU³j8¸pA®‚9¹z;¼=·…A°ˆ5¨Š3ŸŽ6Ÿ”:§‰?ž‘@¢“4¦’6¡—:§ >¯—=«”A¤‹4§–*¡’.Ÿ•'­˜0³¡4²˜?¶š:«–?® C³?·›L»¨K²K¶“B¶ŸI¬¦J®œE¾¢LºŸI¿¢Rº§ZºŸU¿ O¸ŸY´žT¿ SƟ[ÁšU¹œQ¿¨IÅ­O¼©JÄ°Y¾­\º¬VƦP»¯F½ªLƞIƕEĔ?´œG¬œH²˜Jµ¤O¶¨HÆ¥Kŧ?¼œBÛDÊ @Ѥ<Õ¨:È¡EÈ«?Ǧ9ñDɪ=Æ¥C¾°L¼±F³@¶¨9·®=»«Q±¬U¥®W ±R«¯d¯°e©«e›°V½`£ºb¡¶^½W¢¶_ª¸gšÃd‘ÅO–ÍJÆU‹ÃY½N’ÆX—ÄYŠÆRŠÈ\‘Í_‘Êa‰ÆfŠÎbŒÊWÒ[†ÒZ‚ÖX‚ÐW‰È[ŒÆe†Õb†Í^€Íd|Ðg|ÎZvÒ_rÙfvÎmvÒgqÕ`mÜioÜ_sÐRtÌWgÍ[hÆWpÆOmÎPfÓJmÄNo¼G_³R]¹Q`ºH\½K_ÄE`ÅBc¹F_·Jk»Lp¼E|½D|¶L{°H~²D©G…°?{¯F{¬N}¤K‚­:~³A}±?v«D}®A†®=‰¦=§@‰ C‘£M’ªI¨H—š5‹¦7¥-™«;¡@•¦:”ªB„£?„«Hy³Jz¬;{©:D 0C1351.D.=@24>+0:46G66DA9B>BHMBKD4RT:KJEFVF;I:FZG;ZJ0cB8jP2mP4mH8kQ8kV5b_;iaBaU8lQ/^W@_Z<\VGbd;`c/a\/dW5mV6iW;lV>v]9t]3ua<Œ_:Œc4Žn;Žn>‘fJ‡i;…{8‘q?‰k4’h1‘^&¢k,¡i0«q3®e>¸l9·w7¹†>±|@²‹2¬;§–0¢–2œŒ3°Š@©“9›•/¤—A¢‡?®A¤™8¥‹7ªŒ5¦Ž1ž'Ÿ+«–,©—3­™;œ˜4œ˜@¬–:©©<¶™M»¡V­—E¸¡V¯™U©¡G·žP³œ[¶¢RµU¶”\µ™S°ž\¿‘Z¶Tâ`º“WɕY¼ X»®JéUñUĦQ»¯LÆ©ZãXÅ¥Tº¦Q·—EƜJº™E¿™TµJ¯™N±˜I·¡BĨ<¼žEʙ@ɞ@Ȟ@՝?Ì¢FÕ¢DЪA̵:Ô°=̶7Í®F¼·;˲BÇ»EÀ°J¯¶?±¨G·¸Mµ´Q²¹P¥³[Ÿ»_žÀ]™¼b˜¿^š½[¢¹`˜ÅU˜·a ½b¢»Z˜È[›ÇYŠ½W“»L…ÂJ‹Ë[ÆUÌT”Éb”È]“Ã`…Ño„Ì_‡ÐhŠÐXÙ_…Ö\×\ŠÊ[…Ú_~ÓdÚauÕjuÒbrÐfpÚ[oäjnàj}Ò`nÛqfÚetÝhtÕ_kÉ\lÉ[mÏS`¿^eÉZbÕLiÅYk»P_ÁNZÅWeÄQ\ÊNg¿FZÉGcÉFdÃDc¹MzºNz¶@z¿I†¼D‹º<ƒ¬7‘·>ŽªC‚¬M{¹L„ªD€¶Au®9ƒ«4|±A„¤>ƒ¤3Žž6‚¢BŠ›A™œD¥;™¢;2—­-š¤-”£:“ª9”µ>®H“¬;‚¦G…¡>@>E;?N9MP8RR7EW7FTD?ZC;g@2e;4gG4bH0kF4bK)aT-jN3iV:lT=gU8]S6]_D]T@_X=b`;[W7\Q1lU+t`.oY2kU7uX0€X>…_:~j6g8„bFˆdD…hH‰n>‡p=p:Žq/˜g,¥i*£].¬h-°h2³s*ºs2½=´€>±‰7«“;©˜7¡’:®ˆ;ªA¯ˆ7¢;£D«ƒ<žŽA¢Ž?ª’F©’@¤–:˜.›*—”2œš,—•-’š2˜¡7›œ?©£@¥¢K¬—S±›R²X­¡Z®™T¸œU´›X´–X­Ž]¬ˆ_±ŽW±”Q·‘Q¾_Á—]¾žUŝ\˦ZȦXÄ«YÆ©UʨIÁ¦L¼œPÝT½–SŸPµGµœM´žM½šQ¶Y¹–R·£D¢?Ǚ:½›<½¢<Å©EÅ©PÉ¡MÉ£GÒ©KرDÙµ<Ö±6Ï»:ÆÅ<ÊÀ7ȶ7ʲE¿¸H·°C·ºH¹·M¿ÁP³¹X©º_Ã_–ÐjšÐdšÐ]˜Éa–ÆW’Ã\›¹h ¼c¢»n ÁhšÇd“ÀZŽ¾UŠÍUÓY‡Ë[ŠÍ_Î^…ÊbŽÆhŽÎq‚ÓmÔn‡Ò`ˆÊaŒÍjŽËc†Ö`|Ó`yÛmyÜuzÐl}ÖbqÚ`m×]kÞiqÛorÙgkÝllÖmlÚbhÎcrÈekÇ_bÄ\`ÇejÁ^jË^i¿`lÄVhÇReÈWnÄSlÉYpÀQeÁRhÇOeÆIpÀArÂJt¹;‚»9¸4‰µ:ƒ³1‹»9…¹;Šµ@Š®K‡³E‹¯@~µ9´0Œ¨/’ž:‰Ÿ5Ž’>ˆ•>Ž>“›=–¡3“¢0–£4•­2—­2—­/–ª0—°A“³F¥>Œ¬K¡It§Ox­N{©V‚¦Z|¬O€¯R‹³LŒ¬U„¨]~°b‰­\ƒ¯[‚¬Uz´W|¶Q|ªJ>.$4)*1:#.<032/(<3/9+4J7.E,/@8.C1?@24:9cC.gL.^P8eB1_K5lP4eQ4hb9]_+aa7eX;qWDrN@d_4dS?]R3]`1VR/fZ.l`$fT+p_,uZ'xW/xX9…e>}_:‚r5‚hD€cCƒu;m9…m7™s>™t=•p.Ÿq2®_+³i1¯n6®q6¼v:ºs7§}E°‹=²J­ˆ9‡9 „@¨‡<£8¤‘FŸ…G®ˆIœ„H£†:©5¬—8¢’0£˜6’œ(œ/™(’5¤–9 ¨?¦4›¦@ ŸDŸšV©¡U¶›S«›W«–Qµ¤M¸¢`²—Y´’Y¶–P¬Z¸T·œO³ SØ[¹—aǚVÅ©^¾£XÅ«]ºµ\À©R¹°MÄ¡NÅ¡OÀ˜Y²£P¹«WÀ¡V¹T½£_¿©RµŸN¶¢C¼š=Ä©8¶›=Â¥=À­Mɤ@˦?ɯHÖ­DÕ®?л:Ǻ?Ì»?ÿBαDòOÍ´LÆ°Q¼¨J´¶H°·P³·\²»[¡¿Y¦ÇbÄ`’ÉcžË]šÒ\“ÐTšÅc¢»f¡¶]”¼džÁj”¶ZŒ»TÂV‹¿\‰ÎP‘ÆbŠÅ\Ê_—ÉfœÂkˆÄr‚ÄkÓ_†Ìa…Êf—ÔcˆÐe‹ÞZ‡Óm‚Úo†Òj…ÒkÓ`v×arÔ`e×dnÞoqÞmhÕimÜhmÊhmÚ_iÖioÖc`ÉibÇZ]¿gbÎfc¿ahÃVeÉZ_½\mÊ`nÉ_e¾Lm¸Nk¸Up»FmÃBoÄE|³:w³F~¹9~±?²7¯>„»F²C„²7´Bz´4„¬7‡¨/ƒ­3„®)ƒ4 .…›7‡¤;‘ F”¦<•©8˜¦4¶<›°4”©,§=œ¶7Š­GŒ«DŒ AœEx°O|®Hr°P} \®Y«W‡²Y‰¯\·U©a€·X}ºT{µ_w´[„µH‚±I7+&52+4(-:-57*-0$&>.)B53?.399.D65F/9J92FK0DQ1LP5NKE>SHBXM:WE7[M0cD-hK2lH(bN+dX9]`7bb:f\2oR;rK>mL=qS/gR-e\8`R1`X*]b&h])o\(t[.uU6wZ.{c8z^4x_@ƒk:ˆs<ƒr;€j6Šl@‰gG‘m@‘h;s2Ÿm/ªr0¶{2°w@·u?°s3§u?©zK¦„B±|H®‚:žˆ4Ÿˆ4¢…6©Œ4ž@œ“MŸ’Iª†H¦†=§> ˜;¢”>¢•4”™+“™+Œ6–4§ <©¡8¢¤Fž¡BŸ«JŸ§G¢›Sµ“N³•J¬šKµ§^»©`³«]¯œ`± N³”Lº™Vµ Uº¥`À¡YÁŸ_·™W°¡Y¹©TÁ±P·°XÀ·S¸¯DÀ£G·£M¶O°¡W¿£]¿¯W¶ªQ¹¨[¹¤Y¹¯M²¦L¼œD¹¤@¶¬CÄ°MÅ®IÒ¢Cͤ<ƯEͯ?Õ´:ѳ=®=Á´EϹMÒ­JĵUïT¼­Q»«T±®S·¬Z¸³O³´S­³V£¼YŸÀN–ÈQ›ÔR¤ÐR›Î[ Ê[¡Á] ½g¶jŒº`‡½d‡¼\ŽÁZ‰½Z…ÅRŽÒWšÂ_›Ãi‘Æk˜Äe”Àh“Æj•ÎWŠÆR‰ÑR•Ö`›×[”×_ŒØb“Òp‰ßc‰ÝcxÕZuÜbzÖ`mÑiiÏnm×cuÑbpÑpw×gsÕ^oÝkoÓipÐjfÂ^eÉ]gÅanÍcnÇYdÀ\\ÀbYÈbgÅTh¹Vx¾T}·Pu¼PlÀAj·ChÁBuºBt¶Ezº@„»Cƒ²D…¨CŠ¯E}²:~¸3}²1‚¬=‚©6Š±,ƒµ4ƒ¨-„§5Œ™8šG€¤L‡Ÿ=ˆŸ>“¡B‘´5˜«4¦5˜¨<—±<•¹GŒ´B†«=Œ¨E€§Kt²El°EsªPt³I{´K„®M~±[y±Y²So¶[n¸\sÀWv¶TƒÀQ†¸J%,8%;*73)71$7-!6+*5=/*F38@27J4:H2:@78J7>VI7TG4UI5QFl^5gQ*kL9hC9uC7iE9bL/kR4gM/tU4pY+kY'mY,if2ya,nY/q[7ka@oh8}`9yiByk?‹kBŒaF•pI–pK{;ž|2¦x;©i3ªyD²w@§q<­~F¤|GµJ­ƒH­@´‰7›Š9£Œ6 ˆ8¢ƒ;¥—L>­“J®ˆ=¨†?¬†>§š5›’/˜>™”:• +ž’-¡Ž:››5©™BœªI•ŸD¡šE¥˜D³”B²LµœT­™Y½¢[¸¯Y±¦`ª–S·š[²ŸH²RºšQºšOŚO¿¦Jº¨L®£Q½±P·°Uµ­P°³M¹±Q·«M·´M¬±T°®Y°¤P³µTÀ³U³´`±±\¹²I¼¯N¹¨F°ªE·¢Qµ³JÇ®C̬C̦6и:ζ<͸FÒ®?ʱ=Æ©HÁ­NÔ¸DÒ´JÂ¥O¹¨Z¹¦V¼­\´¤`¹²_¶®W®±KÂM¨ÁKžÈQŸÍ]™ËQšÂa”Æ^›ÊZ™¾a”¹]¼WŠ³`ŒÁS„¾X‘ºU‘Èd’È\“Ì[’Ái™½g›Ãd¥Ía•¾k–ËX—ÈT˜É_•Ï^’Òc™Úk™Öj—ÝpÝh‡Û`‡Ú\nØckÓeqØ]m×^gÎ^wÖjtÄ`uËczÍlzÒerÍnoÇ^sÍ]iËboÑ^eÄZhÊScÊ]YÃZ^Â\aÆNgÅVvÎMqÅTq¶Aq´Nj±Mi¹Ln·DxÀ>z¶C|º@z·?u³=€±D|®9q«5~¨?zµ7ˆ²2‹§5€«3¥7‰¡,@‡©;…¨D€ž@‰ž@„§:’²6—«8“´9‰¨2–°:ƒ®F‹¥@‚«Mƒ§F‚±Bs¹GnªPk®Us¯W~¸Lt±U}°[©Nƒ´Jw³Mvµ^r¸b}¸Zx¶K´J,21/627-=)53#1;-4C57K90I1:M4:F8;B?=;J3:D4;G10S=2P:3ND4U=-\E2dU7eY>aUFkWǸ9ƽD˺?Ô¬DÑ©GÌ­GǬGóAͲHȲKĪPÇ®Oé^Ç©c¼¦_ª·[§·N¨ÂJ¤ÀMž»K¥ÅX¡¿_ŸÃVžÌZ™Ì`šÍ[™ÅWš»L—ÁO‘ÂJ‰µUŽ¯[Œº\”¿c“Êb‹Éc”Ã`•Ãa£ÊnŸÊk¤½e›¾bšÅYžÏ[¡Õ^¡ågœãn—âc˜ÚgÝoˆÜg„ßXxÐYyØdrÒ_hÉZnÑZsÎasÆ_nÄftÅhpÆdrÒimÔgpÑgrÌfuÐ_mÑYfÐRb×TdÌYoÆQiÎOuÓQwÎJwÇLt»BlÀKb¹Gcº@e¼FpºCo¾Iw¸GsµHz¤‡ª<€«?„¦L‚¦Eƒ·LŠ´Oƒ®Eq­Jo´Pw³Lw³U{±Vo£MpªQu­Kp³Zm³]{®Zy·Yv±O|µG',$-377$;+$?<-8=*0:9>=64;:6C/6?93DA<8BA;FA2F.1C.7C22K?6BB8EE.UB:_TlV5rV6`H._O6_E®‡@¨~G¥‹D ‘S¨’O²…=­‚C¡ˆ>¨‰=Ÿ“?Ÿ™=š’5›™2š“<¤Ž9 Ž;Ÿ˜9¡ KŸ¨G•ŸW¤›Pœ¡Q­’B¹‹<µ“P¾¢K¶ªQ»ŸTÀŸY±ªL¯¢S­±J°žB± F±šK¸™W² I¼žE¼ \¿±]·°T·«W¸¹W·µE¿¹J·¿]°µR¡´]«®W«¯\­·T·¯bº±Q±¦V´¯Y²¨\¬­O±ªR¶®L°¥=²µB¸¹>Ë¿IÉÄNÅ°EÖ®OĵSβO¿¸O¾µLãN·¦Xµ²^¶²^Á°c½§Y·©Z²¼I§ÁK¥¶J¡ÅT§¾^¤Ã\ž»\ Ä^žÇd£ÃV‘ºa•ÅU“Ê]“»[ƒµP…¼V†º\ŽÅ[•Â[–Â`˜Ê^¡Ël¤Àj›Íi£Æo¥Äe¤ÉZ§ÐežÖn—åg—ëg˜Þm“àg“Òj…×d‰Þ]Šà[„Ø^wÐaxÉbkÉZ|ÇXsÁ_oÍgƒÅhnÇboÊbsÕjmÛqjÚexÙ]wÉZlÓYsÖXoÊTgËTnÕYlÈF{ÕGtÁItÈCk¾>n³Gm°Kk°@u¯BkÂBk¼Ei´Nm¨Hl¡5y2u®369;-C>/<@./?=3B@78DB7J:/P17N=3C76GFfS4rU3lP8nG9bH8^M4c@AfD@eF3_X:e[4nf4l_;f\@o`4|c9~\9xdDpjIrqJkg:nrDzqG‚jO‹hH‰aGˆc?ˆp9’p@–o:™{?žzAœk9¯i;±jE·nE²k7«i;´pK¸yR²tI®y>¯{AªƒF¶ˆ@±ŒE§“M«—I¨K¢Š<§ƒ<‰F–@–’;™3¤: ’7 ‘5•Ž=‹–<’™CŸ Kž^¨Q¢ J®–A¯F¯™I½¦N¼¦Pº©Sµ¥T¶¤L°§M³«Mµ­F±ªJºŸF»›Sº£N´žO¶©[¿£b·¢U¹²R¸´V±®K´¸T·µ\¨®]¦®a°ªV²«R©¦W¯±V»°Q·³X¾¶\¶ªW»¯O²§E°žH®£B·ªO¸²L½»LνK͹EίJƱIĹUǵJ¸¬O·¥X³£W¯±T°®Q´£Sµ¤d©¹Y¬¼L¤¶F¡ºMšµW£¼VŸ¾Q »W§¾^¢Â]—¾]˜½a•½b—ÃZ¼RŠ»S’»VˆÁ]Š¿]’À] Âe ¿l¦ÀiÅq›År˜Êgž¼a¡¼ažËlœØmœÜg âmœÚp™Ùr–Öv‰Ún’ÛhŠáY„ÎZ‚ËXtÑbwÇa{ÊetÉ`zÎg‚Éo~ÔnnÑfkÌcwÔi{Þin×ikÑlxË^xØ_o×QhÜPrÑToÖLvÏNuÈCjÅ@pÊHm½Lp²Eq¬=l®Fl¶Dk­=l±Ex£?r 5vª:w¢0{¬2ƒ©8„«1‚3œ;©?|¥EzŸLs¥J{©H}ª?r´Ex¿JŒ¼M~¸Mx¨B…³:‰¹=°=‚®:€ª>|µJqªRn­Sv¨Xq¯Mq¬J`¢Jc¢Tj®Rh¦Vf¤Yq ak­[q¯SoªNs¯Hi¬S"*#"3'.-,;7287?4HB=eN?mM2fE2sYosOvvA‚kHˆrFˆp;…_B˜_8’d<œi=›pC qD“s?©lF¬nF«v?³h6©r9±j@¯uL¼tP´uQ¼pE°t>¿„H´‡L«ŽVªN«‹Dª‚6°Œ; ‰7•‘@”…4”•/›–6“@›‹<œŠ@ŠC¢F—¢M —Z¬S££H¦—N¶—E¯›Rµ§CÀ§E²¢V¶¢E³¥E±±U¾³Kº¥L®´G¾ŸF³ W·«O°žJ¿¡W¹£d´¨e³¯X½¶Qª¬X¸¨Qµ·X²ªZ²¶V±­Q®µN®¸M©±Q³¯N¶¹N¬¶L³´T¸¨M­¤C¹°@µ§G¶£Q³²M¸°UÊ¿JË°YδZǬW¾»_ŸM»³M½«T²¤P´­O¨­J«³[³¡f´µ\§°VÀI˜ºGžÁT—ÆN—½[Ä[•ÊU Ë]¢ÃZ˜Èb’Ç`¢Ì\ÂQ¿`‹µP™¶b–Â^¾b›¹d—¹`½h¢¾qËl•ÂfÆZ¥Ég¦Ìj¨Õc×n§Úi¡áf”ßm’Òn‡ãsŠÞ_ãZ‡ÑQƒÏL‚Ô^ŽÈf†Ðg„Ï_Ï`‹ÂmyÉjvÔhyÓo~×`qÜnpØjxÛcxÍW}Ô`pÑ]sÙWvÎRsËLyÈSs¼Hb¹DcÁJdº@i±>w°6y·8k²8uªIr®Am D~¡5¬0~²-|­2…±=}°2{ª3~©B~­Hw™@~ŸNy§Mv¡P|ªK{®Qx¿R¶R…®Ds®?}¸?Á8>=DBW89Q3?H>DO;AHBXV2ba0i\7i_o`:m^5q`2qe;tZEwZD€ZO~dMrrNrnOwtNvpH}kF‡nG“iE’f>™dDe=˜i?™sE—r@˜kI«u=¬v@¨wG©v?¹kF·l?¹lC¼kG¹rEºlOµzR¾~J¿|J¯‚Q³‚K¦‚;®‹<ª†6¨…7Ÿ†7’†>ŽŽ4”‹4‡E“‚J˜L›ŽN¡–Pœ¢KžŸV¥™L°PºU³—M±ŸF³¤D¹šD¹ M¿¡G»¤KƯDÁ±LÁµQ´­K¸®P¼­J²T»§Lµ°L¼¨]¯Y¹°c¾©d³°Y±³U°±W¶­U¬²W£²L©®R§¯O¬¶X¬¬L§²P¬®K´»P¶ºI²ªF©¬Q¯«O³§N¹¤SÀ®UÀ²Y¼­Wƶ]¿²eÀ²`º°SúSÅ·Z·±R±®Q°´O­©M²­Z¹°^®¬[°N›¾K“¾I“ÁPžÊX˜ÈR–ÍS”ÃU—¼X–ÂY‘ÅVœÆR“ÂV“À]š¿V™¹U‘¾a–·^™¶\—Â]•Àb¢ÆgšÉf—½XžÊ` È\¥ÃZ¤Ê]§Ï[¥ài¢Ö`œÖc”àm‘àf™à`™Ö[”ØM’ÕOŽËX–Èc‹Çg†Íi†ÃmˆÊaÉa{ÐkƒÑg}ÜfuÛhvÜauàgØ]vÖ^tÐXiÊOlÉRf½PqÀJd¼Of²Cj©Bj±En¸As¼=tÀ?w´9w§@q¤@§F{¦<„²B°8w¨4zª6w£@r­Dx£Iy¡CzœBxšKj˜Mm¢Lx¬O}¹SwÀNz¼L‚¹SyºJ€µNy·@sµMq­Nq¬Qp¸HnµBy°Mn©Io§Gm°I_²W]²YY­^^®c]²g[«b^£^[®^W«\f²cd¬Z+47(%<**9,.7.(8#7;)28+)749>C<FC>6P=HKI;TL6KQ?MW=CM;KO8_W1XL7lT=j\?iQ>jO6rJ6mD;eB?rN7eQ9q[=s_Erd=oh-nV<{fycI€\Fxf>zgE{lFudGjE{iCƒiI‡qHŒr<u;ŸnH”sCžuC˜rH–rH›kJ£~>®m6ŸmB¥b7¸lH½o>¶jMÂtB½qI¾tE´xK¹vSµ‚N©ŒN¤ŽG©‚D­{8¦€CŽC‘8‘–1‹8ŸI›…@¡ŠU›‘Q£œQ©•U— \¨£]§œL§™S­œU¼•K¼›E±¥N¸›R´£L²¤N¹¡NɧE»«B¿µO¶²D¿£M®«Y´¤N² ^¸ `¾°U¹®]¯µa¶¤\¯²T»§T©´R£´\­¹]¬±Q®®_¯½[¬Á[­ÀI®»Jº¿Y·ºX¼µT³«W²ºL­µK´°Wµ¶Q¸®Q¾³S¿³W½½[½¬fîVµ½`´´Sµ®Xº±W«´]µ¼T¥»R³°X¯¶b¬°X£ÀG¡³TºL“ÅV•ËK˜Æ[›ÉS‘ÉV£¾[žÂ^—ÇSž¼c‘È_ÁXµX˜¾]“±c”¾Z¢Î_›Æm˜Ëd¢¾iœÇbžÒfŸÈU¥Ì_ ÌU Üc§á`¦×j¤ácœÙ^—Ýc˜ÝXŒÕM˜ÕZØWŽÕ[ÓYÓ]{ÒeÐg‹Ï_Îr~ÓpuÉfpÐczÙj€Ù\tÒTÒ^qÝ\sÖXeÔWuËSl¾Ls¹Op¾Ad¶5p³;g¦Au¹9s´@€·Bx³<|³>}©>©4†«6}´>§3v®,z0vª=r¶@r­@w¯Ar£Hu™Fp Eo¨Ds¸Lv¸X¶Rq¶Rr´Kv¸P|ºBs¾Gr¶Br³Mh¾Db¸Gu¹Ql¯Hi¬Em¥Ob²Ka¨a^¨SY´XU¨\ZµhT°cV¡aeª]Vªfa¯ak¡T%/7,9)'2$&<(-3('0(28.-05/??-A@'AO13G6?H?@M69E98D:4SBkcEzhDza6~b)sU-{ZAvfCv\AƒX?~WA^G„kI}hB†j9…h?†o5„x<xG“oK“qB›mB£v;™nB¥vI¤w>ŸoB¢c8³[<´`F¬pD´tJ°lNºkJ¶n@¯{@²yC²|V©…V£ŒK±†D­x@°ˆ@¢‹?¡‘C•<˜‰F ‡DŸ@ L§ˆP¦’Q¦•N  Z¥œ^©¡Y¥¢U®œN¶˜X½™V·ŸN³›R»¥Hº¦JÀ¦DÀªN¹µR¼°D¿žO³›Q¬ž\°ª\µ¤Q¹¢V¾¥b¸¯_¾«V²¥X®­Pµ¬Vµµ\£»T­º`¶³\¹ÁR­ÅT°»T®¼Q®¹S±¶W¼±_º²X¶¶X´·X¶µY¼¼N··O¹ºW³»`·º\½¯`»²f±¬f³°^³¸[¸±b¹½[³¹Yª°T¤·R¦³S¨±[¬´W¥¸O»M”·J•µSŸ¾O–¿W˜Äa“ÁUŸÇWšÇS˜½\’¾b—Éb”À^•¿[¼h™¶h¡ÅaŸËiŸÃ_—¾cšÎa—Ði ÉY¡ÓYªÓ[¨Í[ªãeªçb­ÜW¤Ü]¡Ú_ŸÖj—ÌU‹ÐO†ÖVßNƒàRƒ×\yÓezÊh~Õe„Ðm|Îq~ÈmqÎnoÍjsÇZyÒ[x×WsÖPqÔVhÖKjÏUnÈRx¹Cu¹Dl¾Fs¹8w²„¬B‡¸8}³/v¯5u¦/…Ÿ/…¢4±<19K08G?=C8=M>8G??FC4XL=JR4N]6FX1SKaEzfE~kGŠl?ŒjC‹tCŽF‰hB‘pO›cJkP‘`NžhH¦t;«jB§fD›k9¬iD¨dH­iL£hJ®xA±vE²uK¡yE¯xI¨NŸE£‘F¯ŠI¥€I¤}F§ƒ>™™KŽ•KžI¨‰D¡‡G¥ƒM¥†F¯”T¨—Q¢–Z¦œXªž]¹¥L·œG³•Oº¡Z±šK¹¤R½¤JÁ¥NĞT·«O´¯P¹§V¿P®’L¯™U³P³¤U´¦W¹¡O«®T¶§U²¢Y·¥T³ªb¥±Rž³P³³Y®°R¼ÂY²¿V¶¾Zµ¸Uº°`«¹c¯¹`±°]±¬V¼¶[¸À^´Ã`¯ÅT»Â\»ÆQ·ÇR¹Å\À·cµºf´¹e±±e¸®i­º^°¸R³²W®»Uª·[Ÿ¬W±R¡±M¢½RŽºJž´Už¿^œ¾Q–¹SÈ\–ÂM¢ÌQ¢ÀWÎ^ŸÎ\œÎb Å] ¼hªµlžÈp¨Ì^¤Êl–¾j¢Çh¡ÓaªÝ_ŸÖ^«Ïi­Ïa£ã\¨âl§Þ\£ç\¥Ód§ÐmœÒ\†ÕN‡×J‰ÚU|ÓX„ØX€Öa†ÈgÇ]†Íe|Å_†ÆkqËbeÓggÉfzÓWwÉQsÜVmÍHeÙDeÐPeÆLq½Nq·JpÂ?k¶:w«;zª=u£7x´Cz«Ko¥@}¡B}®6‰©/ˆ·6|¬:„©2{¨0…œ+Š©3z¦B{¬FuªAo¦@|¤Fx­Ho¤Ez¶Er´Su¾V{¸Uv¶Ul»Yq¶OgµJnÅRp¿Kb¾TeÊKb¸U`¸I`¸He·N`«WW·UZ°Zd¾]W°aYµad¸WVª_`ªafŸha c^£a+,(%(,/'150*/21+*/,45)5:)::.::6>F/6C<6H:6P@;HD9FB4RI6TE¨i9¡e?œkC¥cF¡jF¢jB±yA±y<«x? wE£…M¤ˆG«†B§ŒM­‹N§~I¦P ‹F£ŽB—–Iœ–N¦ŠBŸH§ˆB«O¶‰T»N³V¿šQºŸY´©V²¤Qª¨U±Q«¡R³¢O¹¤T¿˜SœS»¡O¼žN¶§V³›W¹™L¸œJ¾›R¾¢\°¬X³²]¥ªS§£U­ a´¤`¬¬a®­X¨µN¥¸U«¼T±¹X¾Ç_µËZ¼À_¶²g«°_­´W©ªYª¶\´µU¹¾]²Ãb±¾[±Á[¹ÉS´ÆX»½d¸Äa°Ëa·Âj¼¾d¸­`¶ª]¬µ\³®Xª²[£¹_›³R›¼VºT¶W“¿Xœ²Y¶_¥¶\¤¶T›ÆUœËRžÉP£È_ ÏX¤ÇZË^Ïc§ÄgªÅj©Áj¬Êd«ÅcšÉi¥ÕgªØd­Úk¨Öc«×g¤ào°ân«ág¬áf£äZàd£Ô_ äVŒâZ€ä\‚ÜNŠÞZØU‚×\ÊW{ÆVvÇb|Ìc}Äc|ÌdjÍcnÄYlÃ`wÊOqÑOmÕEoËJrÅMkÇFfºBh¾DpÂ4m¸4t¸>z©7|¥<°@u«:t¦E~©A†­5ˆ²8ˆ¸3‰¯.ƒ«+‹¯2£3y5¨@°8t®9z°6o¨BjµNk°Mm·Mt¼RzÇTxÀ^xÁ]pÀ^d¿Rd½OmÄLrÇTuÅRmÆOj¸Pa¸O[¹Q^±M]¸Wh°Yl»__»[c¿_^´Zb·YW¶bZ®gW§]X©RR§W()((+50+31444*,-.(,3+)?/.>)1D24D47;.+E@+@@:BH*I>:PB8EU,IT2NL+P\€XE‡eF‹mE|s=ŠqAyCˆkF†v;ˆmMeN„aI‘aX‹`F—mC^I¨a8¡k9›p<h>¢cG§kCqG¬p<³wC±v>¤†;°‡;²‚?©ŒC°„I­L ƒQ¤O˜ŠP‘‰B’’P•ŽH§‘Vž‚C©ƒ?ªŽQ±•Wµ”S´O¾“U±]¶¤Z¸™P²—Xµ’X¹–^ª¢Tµ˜X¶’S¼•UÙPºŸL¬—V¶ O®¢N¶¤LÀžT¯®Y¬¦^³¡]©šV¨X¬¥b«­W¯©Q£µQª³G¨ÃV¬ÄO¬ÀYÂÆa¸Ád»V¹µY©ªT±±X®®e¯¹Uª¶V­ÈU¸ÃXªËVµÇ^¸ÇQ·Ã\½ÌXÁÅc«»j©¸n¦¿h¬¶i¯»^ ¹U¦¬X£ÀU¦¸Tž¸Z˜³V—®SŸ¸Y˜½W“°b´]™¼W™ÇT¤ÃRËZ¤ËY™Óf£ÑeªÊj£Ç`šÓk¡Ìn³Ës±Ëb¯Äf¥¾` ÎuŸÊf¬Øf¤Ía¢Ýf®Ö`¢Öd¨Ù^¶æg­×WšçT•ØO¡Ï_ßY…äQƒÖYƒàN„ßV…ÓN‚ÔR„ÈWÔ_€Èa‚Î_yËi{Ì^uÊZjÁbrºarËOl¿FlÊDnÅKlÄ?p¾Eg¹Kkµ´=yªJ}«4„²:€¬-¼8Œµ*~§&} ,†©<‡¥?†­7u­Bo¤=v¥Am±DnµSr»Wv´XtµOhÃ^xÃir¾fmÇTm¿\qÎSjÎNgËMdÏVaÄXXÀKT½VcÁLU³Tb¸Zf¬Qb¶V_µ`W½\S°Y]ºXX°ZW©bS±`R§WKŸS.";24(8-'-.5-71%30*4.&A0#>'/=13?,&C0+<8/:=3;?*@=6?I9LP/HQ.F[2QZ0Jb/J\4IN8XQ+YW&JQ*[[%`[0dR/`T2ZK7cN/iV1xU*sV%sZ+vR,~O#W1€^:ƒc8‚cB„iF‹^C‰kF‚kE‚pN‚iM‡gFŽb<•_?hE†]Mˆ`O‘^IŽmJ‘c?že:—c6—m;œkD©gF±rB©l?¯v4©t:®z7«„5©}:®€9´}:¨~@¬†D¤‹MœŽL›I’C”“K“˜K ŒX­ŠM¨ŒC±•@­‘H¹‰AµI´‰T·’X¾˜X¸ŸL®•^±_°£V°¨]¯©]¯™T²“WĜQ¼–J³•N¹žT²œM³¨H±¦Rµ©P¶¬Z¹ªN°šS«¥W­¨cª¬R²©P©¶M£½N«¶M«»Y²Å\¾ÀU¼¿U¹¹Z«¹U®°L¯±T·¼_­À^¬ÄP¦Î\¬ÉX®ÊY´ÌY¸ÒS´ÐS¿ÐQ¹Ä]ª¶V§²`ª¹a¡¼g²Z¡«^¨®Z¬¼T¢³T–¬Y’­Y‘ªaŒ¬a—½`œ°V–°W‘¿M“ÇRžÃUœÍb¤Ò^šÎa­Ín±Ói¨Ðs¢Ìm¯Ìk¯Îo¯Èf¤»`ŸÀg Åp ÃnžÉ\¢Ðg¨Õb¤Éb¬Ë]ªÚ\²ß]¡ØVœØS˜×M”ÌS‡ÔO‰×S€×H‡äM×T{ÚI{ÛFÒNyË\ÕYyÊX~Ð]pÕVpÏ`mÇXsÂ`xÇYm¾KnÅDmÅMr·Pr·Bhº@l°=sº=zµ6x¿6¹4w¸4~§5t²>{¼B±<ƒ¬2‚²3À7~µ;‚­.£/z¨8Ÿ/…¦7‚§;vªAw¯Gq®En²Pt¶Vm­Yh´[fºfjÀbm¼YmÂVoÂToÍafË`lÄTgÊY`ËWb½XR½Z]Å\[¼Vb»SY¶PP³TR´U\³aU®^P¨]X³TQ²RH¶`MªXL¦_4(0!2= )3(&/'9/01 ?%(C5.831@;/44#72AC$EDDJ/>D09O*IJ6CL.FL,BX+BT3@\;NV1WQ3TW.HS-RQ&[WaY'dS*jV&kS+hU'z\*tW-}c"|b~P!…]2…W1~_5`9~Y<ˆf>…nK~oA‡nC‡hB~a@Œ^A~`CŽfGŠ_Q†\QnJ“iC–n@ k5žr9žm; jE©tE©l? f<£t=°w3¯x:­Š=²{?¨9¨:¥†;¡ƒJ˜—M”ˆH‰@œ•K‘’X–“U Y I£‡U¨‰Qµ‘D­ˆI¸‹S½‹T«“T·”O¾žWµ”VºŠf·—d²ªb·¤T¹™^Ä `ř]·šV»™W®”O¸“W·›Y°¢c´œ\²¢_¨§]«¡c«¨W°ª_¥ [««^ª¹P¥ºT´²[¸²P·Ã_¼ºNÂÁRÀµY·¿O¸¾H¾¾Z°º\¹¿_³¿P¯Áa®Ì\®Ã_¯ÄR®ËR¬×T®ÄT«ËX¨ÀY™¸]¤´e›ºj¡·`£µi¦¿e¦µYš¸\ §]œ´TŒ±dŸºeŸ²c˜°V›·`—·^—¹N¤Ë\§Ée£Ëa§Ô^¦Øc·Ùj¨Éb¤Ën®Ðm¯Éu¬Äcª³k¦½b¡»d¢Ãm§Ña Ê[§Ò[¡ÎX°×YµÙ_¤ÙT¢ÛW™Ô\ŸÍR‰Ï`…àY’ÕQ‡ØMÜR}âW„Ü[}âJ„ÞRƒØT„ÙXwÙ`ÒUpÖWuØTtËN{ÂO~»Vt»HoÇGwËLvÄ@q³Di·;p¸8jº4t¯<€±7u´@†´=w´8€µ2ÁCƒ³:ˆ·:}À7}¿4‚¿1€²6}¸-y±2ƒ°<|¢9„¥:~¶I²EpºAo´Js¼\m¹Pu´VrÃ]sÃatÌ`rÇ[sÇYnÒbbÑi`Ì\[Ï\WËe\ÂVL¾^OÃOZ¾\L¿YT¹NU¹UL·T\µ^U§^N¹RR¬LT¯RN¿ZQ®[Qª\;%)<,5 %7<$8?.!<-&E;A9(C@8>9B#=A5@>C)E?)AI+IW2BU7=V=CJ3FK0GT0L^)J`/La&H`%NUUQWV_VjK nLpYjV%qS y_%~V){]"t`-yU9†S9†Z<`;‚]C‰iGŠnB‡qCƒlAˆhB^@‡`F~jFjA‹eK‹gFŠeK–]E—b9žiF¢rFžz;¡s@£tB£mA«z4¨x8§v8¦…3ª‰@©€@¬ˆ@©…B£“9œ–@™ŠH’ŽHš‘T—Yž•\¤šT¥“P¯ŒU¸‹S¸‹N¼ŠO¶ŒN¹Q¯’U¯`³‹Z¶†e½`µ–`ºša¾–fǙaȝiÀ£c¶¥a·žZ¾•SÀ˜[º™e¯¢d°™k­šb°–d­žd´Ÿc«¨Z©¨_¨«[®­M§¸O¬¯[¸µX¹¾OºÀS¸ºT·ÁPµ¹S¾½N³ÅQ¸¿_¯ÁZ±Å^«Ñd®Í`¶Ç_¸É\±ÏP°ÑP®ÊL§ËS§ÉXšÇY›¼Z™·[žÄešÀe–¼ZŸ·[•²X˜­U›¯b˜¬]¤º] ¸_—²`–·\Ÿ¸bœºXœ¼d¢Ía¥ÐhªÍg©Êf¬Îf¨Éd§Æc¬Ém£ÇkœÂuž¹qŸÄg¤¿i›ÉkŸÐc¨Ïg§ÍYªØS¬ÒN£ÍM¦ËU£ÂaŸÈ[Õ_‹Ù\’ÛYŠàZŽÝT‡ØSŽå`‹â[…Ü\}ÜWzàU{ßV€ÒW{ÏW€ÔWuÐN}ÊU|ÀMz¿Nz¼AºJsÇGqÄBwµ¯J{±E{»E€½K{ºOuºWoÁXr¶RlÃTkÇ^sÏdoÓjmÑghÌf`Òf\Ñg_Æ^RÅaSÉ\TÀRP»WH¶SE°RE»SMÁSUºU\°SX°UZ°[K²UG¼NQ¼VW¶ZRµ`5 $9'=2:%0: !/,12.A)465'2;15&CB'4F;AH@%ID.JP%BE/AV19O@>Z;BQ8JN.FK)AV2D[+N]6A`.GZ.MJbZiW+kV*qN#iY'de%g_%vf+nU(rd0uY+y`1~ZEˆ\D~YA„g?‹^:~aE|f@†iL}mI^<~fF€aAŒ[KŒgKŒ`?•dJŠf<˜_>“jIŸpDŸk? l>§l<¦€D£|6®q? w3ª{?¤{G²„E²|I¡zPšŽH‰H–N›Tš™P¢e¥‘\¡YžŒY²‘O³“Z¹V¶‡MµJÀ”F¸M»’]²–b¾‘Y¹¡^°™f³•fºœ_ŗc¤aĚ^Á›i² d¸¢]¶“_¶ŸQ· S±¢b°™`¯_²¨d§®W¦¢a ®]§ªS©´[ ·[¸ÁN°°V¸ÂS¶Á`º½QÀ´XÁÀN¶¶O³¶Yµ¸S¯ÈYªÏV°ËWºËk³ÏY¬ÑX³ÎW¤ÌQ¬ÓGœÂK¡Ã\žÀZ–µc˜¼Z‘³b—Ã]ŸÅW˜Á^™º]Ÿ»L“§Xš±R˜¸X–²^˜¼\Ž³]‘µa‘´a—½`Ìk›Æ\«ÀY¡Èk§Çi¡Ë`±¿d¦Çj¨ºmŸ¾f©¾m¤ºk¢Åf§¸Z©¼`¥¾T§¿V¨ÁY¨ÌP§ÁR¦ÄS›Í\šÉZžÖT‘×U’ÕTÙU…ÛZ’ÍYÖYŠçNƒÖ\ƒÕZ|ÕXvÜ[t×MÍ^~ÍN~ÈLzÁMv½PpºOxÂG{ÂLpÃ@p½E{¹@vª3uªBf¹Gj»Jo±=†¹F‚¹;†´7Œµ2ŒÀ:¿5~Á8„´3wÁ7².¹.v³2‡²J†´L³Mz¨J€©?x­Fz²P…´Z{ºP}¼Xu´OhºYj»lb»aeÊkfÍgsÒ[iÍ_`ÒkSÂjWÌcM¸`Q¹RF½]N²]O±`H¸bXº`Uµ]_³SY°PQ©TM©KR²ZE¶aV®cN°_;'2<"*135%1|hEwjK}i@ˆ`?‡]>‘_?ZE”]<™b>’n@ŽmLšrA¡t?«jE¥pA§z@¤;¡{<¤{Cšƒ8>­G°yM¯tR£|O¤„KˆQ™ŒP¡–U›‘W “b§‰ež_†\«‹X²“O­R¾‘SÁ‹DºŠM¸šOÁ™\¹‘a³•[´¡c¼œg²–\µ—X½ž`¹¦e»žd·’j¼—b´—`¼šW¿˜N±—M¸–S¶ `©œU¦¤X¤ ^¥¬eŸ·Y£µX®¼_¨¹X®¶aµ¼\¿¿_¸Áaµ¼W»²[¹²^²½W«¹S¥¼UªÈ`´Ç[³Ëa´Éf±Ð[±ÈN«ÏK¤ÅI¡ÄO˜ÊMšÀQ¡½Z˜³`’¶a–Ád‘ÀY–»U”¾Y•½VŸ¸T“³TŽ©O©W‹¸R’¹P‘¬W—´W—³cºp˜Äk¢¿^ªº[­Ç\¢ÎdªÂ\«ºb¨¹f¨·m¬Át©Ãpªºd®Á]ª¶\¤³\¯´Oª¸R£½Už¼M§¼O¢ÅP›ÊK£ÑNšÈTŒÏV„ÚX…ÚUˆÑKŒÑO„ÛV~ÚQ‚ÏK…ÍK†×UvÏNÉX{Ò[vÁ\{ÀQuÅHs¼Il¿NoÌBlÆLrÀGs²8}°7x®4r«?z¨9s±Du¬=ƒ¬@‡¯@…¾@¾Dˆ·6xÀ1uÁt¹9t½.{»4€±;†¯Hˆ·N†¶U²P„¤I‹¦TªT…µY{²Uv¶Q{°Xw¹ec¶hd²ijºmp»]mÊ]\ÈbWÅjUËeNÉaR·bJ¶SBµWE®dL³_Lª_U¬]b±WY²QY­UN«SR¬MH«UD²_HµYN­V8(/F)12'.:#103-11&229:8?.851'$?-&9B*@9"@="GG4G=?H>+OA-B@'DE9PM4PV/GM.TM3II5NU3IS/PH3RG(_O(fP(qR'eO5hW'uT/ph1jb)pb(kY'ya-{e2yZ@€d;{lE†j:„g8†n=`I‡fHˆu8h<sCŠl=‰lM‡fC†eRŽkNŽo?˜iE’tE•lFšrAj@¡nD vF¦sF§<–yF£{K …D­}R®~O¢x[¥ƒOž‰Xœ‹W X‘O¤œ`£œY«ŽXª–Z°„]§”O­\¯ŒS±ˆM·…<ÖHǗU×Y¸–V´ž_±¤b«¤f²žj­¥^«¡`²˜h±•a± `±˜a°žYµ’M»—I²œI«‘\²”^®ŸW­¢P§ªbš§gœ±W¢µY¢º^°»SµÀa·Àb¼º]±Å]·¿h¦¯[¯­`«¼d«»`¢ºS¯¿_³Ãg²Åe¸Éd©Åa³¾N¦¿TªÁG™ÂIš¼Pœ¸N•ÅMŸ¶Zš¾SšÇW˜ÃY™ÅU‘¾`šºQŽ³R—´KµM‘¯XŠ¼N¶S¬Nˆ¬P»b¹]•ºi—Àa£Ä^žÈZ¥Í^¤Ëa°¼`¨Áe¬¿r£¼v«´n«¸`­·f¤±^®¶Y¤¶P¬­P¥²MŸ·R ¶O–»H¨ÈOœÔU¥ÄOžÔ\ŽÍXŠÙYÛS…ÙY„ÛZÛZÙJ‰ÎCyÄLrÐP‚ÌZsÑ_…É`†ÁOuÊWx½SvÉD}Á:t¿GzÃGy¸7´7€³:o¨Az¥Cn²Gv¨;°G‚ª=ƒ®Kµ8{¶CxÀ>pÀBpÀ9{º>}¹:t¾9·E¾G¶N´[„±S{¥Y~¯_{±W„¬Zw½Qy¸V{·Yf±hg³pd¯ajº_g½\cÃfWÇdY¼_LÉ\VÇ\F¾^GÂVC¼`D­dN±_R¡^\¦Zb±P`°X^¸]P§JM¯JU²ZN¬aS±ZS«bB%6>+7@+>:)5..92-+6-,576/103,%77%B5%<< G7'LD,R?7WF.O>,N@0JD(SH)UH.QF2LQ5RG+VM0RN2RM5YJ1\M+dR-jL0kM(hP1kS/sa,nf0t_&|^&s`5x_=ncGlj@xhE…n;ƒf?ƒh@‰l@‚jC„q9g:€k?}mL‰pN‡pHˆbQ†kMŽoQ‘vN™lKšiF jI¢mD¢lH§lDžsJžzN—…F–ƒM¥ŠV¢~Y£X™}UŸ„]–„cža§”S¦—Vž P£œW°•P®‹W¥“\¨U¸‚Q¶…Q³†S»DƔFōOƐT¿œZß]¶›h¯p®£gªŸc§£j¦ i«”f¬`¬šS®œT¼O¶ŠN®N±’V±™Q°—O¥¥Q©©P ¢]œ¨[©°bªºb©¸\¬¼V¶½^µ¶c±º]¨¾ežºcœ»_Ÿ«bž¨\ª¶Yª»^ªÄb¶¿W´ÈZ¹¿S­ÂT¯¸J¦±Pœ«G—µM›¼FÀH™ÃM›ÈVœÅPšÀR”¾Uœ¶a›¼Z¹Q‰³T‹¹O‡·T¼Q‰¾RŽ°QŒ¯VºUŠ½b–³lž¿m¢Â`¥¾c¦Äa°¾b«Á_ž¸n¡ºn¯¼h«­l²¹o³µaµµW¯¶U¯²OŸ¯Wœ·Y½L–»O™½DÈP¦ÇVœÉ_ ÉY˜Ç\‡ÑT‰ØQ}ØQˆÖY…ÍW‡ÒI|ÍL{ÇMxÅOrÑV|Í^zÁYÃ]tÌ[rÇOxÄM|¾=º9ƒÂ=³:‚±2ƒ«.|¨;}ª;x²>¶8x¯=tª:€®Du¸Ez³D¶EvÆ:lÍ;rÆ=xÆ?qÉD€ÁR‚»Q‚¬O„­]y©f{¨]|±]ªa~»X{ºRy¹Vl¬edµdi±lp¶^n¼_o¸af¼f]¿bV¸WZ¾PLÄWIÅXMÀYQ²]I­fF­XQ¦Y_­Oa³TW²SV¶SZ¬UN¦TW¦ON£YIªcH®_585A%2968D52?:26<0=;+A2895+>-8;.(A0)I@.I76R@,R@2R@+TB6ZI)YD#L>1OD&ZK7XV:\X:XW9WR7NUx_C‚gP„mF…b@„eA…gGŠpGs@~w9‚iD{i|¤Dˆ¤8€¥@z±>|°L‰»>}ÀJn¿F{¼Bn¹HzÃIyË={¸PŠ¼_©W­_ržU{£Q|by¤W³Yy¼Sk§ai¯Zm¢dp©wj²sn±ak¶_g½`_±fT³aYµWG¾LGµULÃXJµ\H³eS¬gL£^b¥XXµVVµZ^¸XV­VW [O«SH©\L¦TK¡W=399/.=0&G9)P>)HB,DB*=67816D9‹dIˆeM‰`T‘fXmY•qU—qW¡iZ§iKªtO¡|IŸN †P …T¡‚XžT¡tU˜tR}XžƒX”€^’c›‘^Ÿ S¬ S°Z®œS­—Wž‘TŸ•S¬‰P«J³˜Hª”F°—O±“\¾˜Y¬¡R« Z¨\®œg§’b®˜Z¥ ^§¦Pº U»–S°˜P°ŠY±‘b±“]ª˜V¬¤U¯£S¨œ`©™f™f¢ j dŸ ^š®c£²_§¯až¨hœ­a˜ªd£¬`§®T£±Y§¶\ ¬W¬·X©¹Xž¿^£¼Rœ·Z—±X•·\‘¶O³H›ªK›¼R–¾Z–¼^—ÇWŒÉS‘¾_œ¼a–Èf˜ËZ“ÈR‘ÇJˆÂL”ÈY’¾T“«U©^Ž®a­^™³]ž¶^¥²`¨³eªÁa£Çc¥Ãm¯Åo¨¸p­³q¨³r¯­h­¬f¶µY³¬T´´Q§¨Mª­T¤­S¥¾AœÁF¸Cž¸B”ÂN‘ÀE—ÃI‰ÊEƒÐLyÅYzÆY»M…¾E‡ÀD…ÇLxÉO|ÊP‡Å^‹Ë^¿_…¿S‚ºMzÁG{¾Q~ÂKˆÀI„´:‡§E…©>‡®C{§Cx±F}±HŒªD‰ ={¢>xªFƒª>‹¶G†²Hu¯Cw¬@t¸G{ÄG}ÂE{¼M„²^´do¥ZhžOn Tg£Sk¥Zu±Uy¬Xw¥[l§Wr¬iv¡rk¥lg­nh°n[°^V¾fXºgS»USµQNºZJ½UU°eO°eX¦cX¦VX©L\¬OS¦U[¬]Q©ZX¨UO®ZG´PW§YW¤P780A019@/F=&=K!EE)V11P38G<:NG4JL1P=4TL1WE/ZB8[A2]C3^F4`N8YJ@^S>YV:aS3oR3pWBvV:uG5sFEpPCnV?sXIoYJpP@bU9jd?sdJwdLr`Q‰`Pˆ]W‡bK†nV‡lVyeG{qV|rGw|L…tM{nC~eI€rKŒeQ‘_L™_KžsT“x_šyT–p`šuK›{T§€Pœ…R­€Tž„c¤za§‚e£o_€WŸU”zS˜†T™Y˜Q«—`°[ ™P«R¦˜Q›ŠP ‡W©‡Sµ—M¹¡N¼–R»¢I²–Nµ—_¹§Q«`¬¡Z¶šf´Ÿc²–Zµ V¬¬K´¢R¶”I©—Y­‘V¶›O±˜S©™S­ _¡™f¦’a“¡n›e˜—f”˜`”­^™°c”«b§¨fŸ¨aµb¡¥c ¥Rœ­S¨¶_£µO›©Y¦³Pª¯W¥¹T›°P—©Y¦^²[“¬YŽ£N‘§L¸Tˆ¶[”¿Y•½\†ÃOŠÃT“ÄV‘ÃgŽÇa’ÍR¿W…ÈKÂV‹¹Y’°c˜²c‘¸Vœ¯T–®\™µ[¨µ_¨¶^œ¿m¦Äa«Èl§Âi³²k²­q¯¬c¬«a©¼e»¿U±¸]µ¶K«¶T¦¬J²¼C§¹Fž»J¡ºJ˜¶F“¿T“ÊIŠ½AÌAƒÂI‚ÊS‚ÈOŠÁLŽµC}ºS~ÇGˆÂDŠÂG…¸PŽÄQƒ¼YÀJƒ·D|»JºE„¹O…«H‚ªD„´F³:‚°Cx¯I}¨KƒµHˆ£HŽª>«F…¥L«M“¬?„¹9„³Eu»;m²&DI,FG)=F+@N'II,GE3E?/J96U9?T:=H;:H>8R?/QA6SI;SGB\K;XS3_N:o[;m[4iT:gW8qV4o[;jPCtP~³=v±I†®J‡´KŒ²@ˆ¥=¡;‡§G‚¬@‹­>¬@‚¹:}´=v½?x±A~±Ay©Hs²X{§^x¦fm¡cl¤`i«ak£]e¢\p¦]{¨eu¡hz«gu£jo¡ad¦ef­f\§id«q`´j[¸iYº`c±[a³a]©`WªUXª_P©^V¯YU¤\SšUS RO§UV°ZW¦[V Q^¡JT¥R:591B&EE/DD)EI+E="EB%OA4L;6N;+X:1T@FY<7KE0RE3VP]^@cb@pa4vZ;zVo]Ay]Bf\MpU=mOCkVIbTBq]Jk`SqaQtdT}XQ{dTtb]‚me|f_|iV{hVslU{uQ~uPtQ|qU|iL„xQ‡rE”mQ–dL—aYkWŽdxVž€^›…c—zVš{X¦„gž‚b¢‚h¦xc¢nd•ƒZ’…X“}M“ˆT”ŒM˜F£šL©™[¢Œ\™–]¨™O¤¡Y«P© U²žP´›_­¢O¨œN©–W²šR¨œV§™]¶©`±Y§žc«žV±P­©Zº¤M«–L¯O»•\²Ÿ`¥›Yª”V¢^šŸ_˜œ_™ª\Œ£n‹¢a‹—eŠœ[™¥PžR’–Q–¨R¨d’²Rœ²V®W¢¬K”±X¥³Y¥¢Hœ±G¨§R¥²S‘®P“­LKŸV‘¨P‚¥`¶Z…ºS…²Oˆ¼O€·K‹¼S€ÇQƒ¿TƒÑ`‰Õ_ÐNÉL€¾Z~µX‰ºV’½b‘¿VÀg–²i¢ºi ´_™ºf›¾h¦Äq¢¼k›²`œ¼i ¬k¦½_¨²`¿R¡º\¥³P­¼R­ºN¯¹Lª¯H›µV¤­IŸ¶J–°Gˆ¼U‹ÀE¼F¼MŽÉT”ÉL†ÊUˆÄU„½O‰¼FŽ³K„»C±C‰»R„µZ‰¯LŠ¾@…ºO‹±H}´K~¤F‚©L}©>€¥Is«Kz«J‚²Qƒ²?}©@¨G†¦E†C…¦K€§B…¯;‚¯B{¼D{ºB€ºBw´H|°Fp±Tm«Zo°[|©cv¤WqªXp£dl›esœgyªez¬fr¦`s°dk¯np£ii¥cXªmdžkZ©dW±fY¿`[±gb³]a°V^¨Ua±aT«XLŸdU¡XX¥fS£^S™YZ­OOªUV¨N\ W^©WO§`>;,7D*5BAE#>;+@=%KB-FD.OI4MF/IJ0TC>V=:U;5Z<3XN.YQ)NI1LD2XJ2TE1MH/T[)Y]0Xa7\X@meGmg>k_CuT6~[GuZKmZMiXAaMB`Q=ZR=daBg]LkbNieLpdMunZ|iZvkYyjYug`|tdrySpuLplSmnJslGhQ‚vY|vO‡vO”gO‘^]Ž`a”r^ŒzUŽxf–yeœy_“yW‹€\”ˆi˜‘gž‰k¡b qX„[“ŠX’ŽRœ„I“‘N›“LœV¥•P ŒQŸ’SªœZ§žQ¬V¡Y®šc¯£]ªšWª¢Q³£Z·–V´›Q²¢Sµ›]ª£c¨¢b²¬]¯ [° V°š^²œ]»”W·Z®—Zª—`¦•X¥ž[Ÿ¨T™¡Zœ­]­cƒ¬h…œ]“¤_—§W’›^–™S™¡^’¯]Œ¤]”¨\Ÿ«S›°O—«Tž¤S¥¬K£¥B©D¢¯F“¢?Š¢H‡ª@¤EŽ¬L‡¯V~´J~´L‹©HŽ¬T‡­J‰¶MŒ¼TÅR}ÐO…ÑS‹ÅIÂNƒÇ]„»a‹¿cŒ¶Z¿[”¼b™ºm¬°o¨±f¥µg­·t©»v ¹h›®_Ÿ¨b¥±g™²X—¹Z•¶S™¹Vœ¯]Ÿ¬\ž®N¦³M£µL˜¨Sš³R›·K’µJ†­I”¶@•¶B•¼JÀQ—ÅKŒÇQ€ÆSƒ»L€½HŒ³D‰¶K„·N­IŒ®S“¹U•¶E‰­E€«F±K‹°M‹¦IœG„Mu My¬D‚¶J„§C{¡;,:DH:"LE"B>0P?.X<3W@BTC4\=>UG/ZT1[P,XS%NV'SM0JH2TW-NQ.Rf6\d5YX?faCj_Ioa7u\=fY@xcKu\?jUAdKBfM;jV25691*‡·=‰­C{¡OuœQ}šHt£Hv¦M„ªFŽ£@’§DŒªGžG‹¦<ƒ£<†¶:„º<|µ?€¸@}µ>~¾’¡; «9˜¥:’¨>¨H…·A‰¯?«UŽªS•¯H‰®R…µH¿?ˆËC|Ç>~Á=ˆ½P˜ÀT˜»Z’·a‚ÀV‰»c•¾d“Æi“³r§²m¶d¡·q¬¯hž§q§«o³c¢µc’ºX§]•¦T“¥a—´f• `— bŽ§U˜²`Š»P‘®K†»?‹²2†¥AŽ¨<‰¬G”°JŠ«@ ²E”·EŸ°A–µD«F•«;¨;Ž£Eœ§=¢¢B« =¢ªE—¢=¥B•´D–¬8‹¯K…¡D|¤Bs¦M†¤>§H‡ªI’ªM‹«@Ž­C‘œAž@†¤G‰¹Aƒ¶:„¾8ÂE„Â7¶Bt²Bn»El¸OyªZu¤\t«Qs¥Zz¥gq£ns«]n²[t¨\{¢j{¢`{«f~ªgo¦qx¨cq£kh¦ff±dU§nY«lW°rQ¨lL¥lPf^šaW¢[\“]O¡^J^NŸP\X^SXœHa¡MaªUe™QW™WA:;86:?<$A5:6!>H/:Q2;I)A@"O@([=8YHAPR6NO7PO8[O‹³4‰¬7¬:Š¶?’¯G’¨9œ§;¡«7™­@“¬A—¡; Ÿ8¦8˜¢6‘¤4¢¨9¨Ÿ9¥£:•ž7˜¥<’³;Œ®B‘¡Gˆ¤Nx«C©@†œE’¥;«>ˆ«C…¦H©J‘¨IŒ¥B„¨@‰·J¾D‡ÃAÁ9|¼=t¶=k¸Dn¯Mw®Xw§Ul²Zn°Zq²^{£o|¬st«er·`}±_uªXz­b‚±l¨kƒ§bu­it©ca§ee¥o[ s^¢rSžqM›iX¥cY™[TœcNaU•Y\“VQœVR¡QP¡UV£[U¡OR£H`¦MY›V_ŸY5;.54,:?":8EI$EG.>N1EM%DD&PK*GO;MN>\N:Z[2XU8]T0aX1eK3a\9dR?dV>\b2Wh?]f:ekDgY?pi>naCqg?nj9ugEyiLyiKxdHljFrfO{aTo^VrqTwnStwZyqV~p^za\vj`|tTomWrc`roitp_ycg|fdyglssdtogp|q}ossmy€f‡€uŠrdŽ‚g„€d‹za’Œb€ŒYƒ^„g‰ˆfƒŽ_ƒ€f‘ƒdŽ‰c™‹Y•\ \™—X¡V–ŽTœA§~N›„\£“^˜Vœ‘V•™V•aœX ”U§’^¥•\°˜U¶•`´›W§žU¢¨Y¬¬X¬ªU²¨[³©b°´`¢¡\œ®`­±a¡¤^¦§ZœžU–™Vœ˜fŠ¡n•“pˆq—•h”m’jk–“_™–^’¦f“©^¬U‘§WŒ®F‹°M‹§F™¢FŠ¥Kˆ©L‰¨G§A¦G;‡¡8–©7Ž£=‚µ@‰²9‹¨L‡¯DŽµL‹´E{µR{µO|ÁD€ÂJ|¾J|³SºYƒ¶`ˆ®cƒ½UÁg¸]œ³o•·j¡Ák§ºn ©h§­l¦¡kª£c©¡[ §d•ªa“ W‘¡d˜œg›ža™ŸWŒ–Yš©[“°^‰³Lˆ¯D‘¦=µ;Œ±?§:•°8“©>˜±Gž;“­4ž¨8ž¤<—ŸEŸš1™®>¢ª=¦˜6œ8©ž5œœ<›@–­H—®:–Ÿ=—¨O‚ž@„¥K…¯Gƒ£P†¤@–¤?‚¥Iˆ²I®NŽ¢M°L­E²H|½G€³Cu¹FvµGq²Nh¹Pr«Tm²V}¬\s¯Tw­Y‚«dv¬et¯oz©qp«`„®[´hx­h«l¯py­kw³me d`£ti›p[žp\—zZŸmY£kYªbO¦l[¢nN–aV¢aU˜bT‘TN£]J¥ZI˜IT¥Q_£T`«K[¬OW£PG3)94(;9*@B'7H#:C#9@GK)GX&BT1GS6MY8TX4\^1WY,ZR1eU9^J@_TDgV<`XB[Z=X^8^j5gl:f]Ce]Eg^BdbGna;neBniIpjRunL}sDumKupE|gMzoTr_‚sZzi\zl_xpTxybtu`rhZvfYpagqfkkqkpmiore{trr}srxqrtizvmzzq€€uŠ|oˆoˆƒsŒ|i†‹k}Œ\€Œb‹^ˆ’W„‰Z†“ZŠŽZ”•YŒŒQ‹‡P˜“W •N¡ŒU«€N¤ƒK›‹R“…Q›‹T—‹ZœˆYžŠ] ’Z›‘Z–[¡˜`©›d®b¤c©¤h¬Ÿ_ª \Ÿ¨]¤¨Q°ª_¯®[¯§_ «\¢§[Ÿ¥Sž¥_ až—g™œd–›jŠ•kŠ“i‹hŒj‹ˆlŒd”–b¢›b¡•`¤—Vœ¥Y«X‘¨MŠ§KŽ¥F¡C–›H—žAŽ¦Gˆ­@…¨DˆE9•¢/•Ÿ3‹£<Œ«>„«8|³?†¹A±Ly·G~ºM{ÄR~¿Lw´Ky±V‚¯W~µ^µ[ƒ±a€®hŽºeÀoœ¸j¨¸j¦·j«¬g¥©q«¢n¨§g¤£i  [›¢Wž˜W›¡b a•§eŽž]ˆžbŽ–c‘¤Y• Z–¤H¥CŠ¯Bˆ«@–­A“²9”¬7›±=–¤7¢ 9™£4˜Ÿ9¥¤;¡=¨Ÿ2¤¨8°¨2«—5£š8žš7›¨@ ¨D§Bš§IŽ¡Q¡I‹¢D„¬H§I­O…¬N‹©IŒ³@‰­G„³Eƒ¬G~±=„ªD|¯>{³By¼Ev¶AwÀFu¹Nv°Wm®PoªVx¶R…·\‚¹V„°bz©frªcp­my«m{«d}¦[{¨_vªfsªlm§cj¨gd›xn—wk}f’v[”w]‘lW™aRžcX¡`YkOŸnO¡eU—aU’cV”UKœQM›JS¢O[¦Na§Zb­]^¢T;'&52$J9/D?0;I"HQ DG5RM6KT)RS2RT3VW;XS:\S.\N7RU2RT7VX-dZ7]T5fP7`YAXa:av.bm6b^CnSBmW9m_?lZAna7vuJod?ufG{jKilWstKzr\~iSŠlYyn^uwaƒsZ{uWmm^quhoeeqdTxdiqjuwotniunuxw}rrmr~mzykj{nx{‚rt‰u…„p‚ƒyŽo“|f‚}pvŒ_€Ž\€ƒi„‡e}ƒZ‹i‘‚_Žˆ`š‹]ž]¥ƒX¡[¤Ž\—M–‹D›‚M™ˆO›€T“YŸ†P”•W“‘[”ˆ]¢‰Q£–Y¡—`´£[µ˜`«b¦™^¯™Xª¥]¦Wªœ`°¯^ª W™¨]›£dŸQ¡¢_œ£j—•b›Œgˆ“cŠgƒ–a‘k”jŠ”\˜lŒa›™g¡eš¢g“¢Y“¥W…¨R†ŸM¦Q©H£K‹—>¤?ŽžF“©>‹§G…4Œ 6Ž¤@Š¬6„¡>…±@²Ju¹B|½Kw¹M…µD´IwµN†±G†®Sy¬VŠ´d€©TŠ²`„·fŽ¿^³bŸ´k£ºm¤¾oš±lœ©f©ªeŸ¤i¨©j¥”bš›S –UŸ›]ª`’¥X¡S‹œX“œZ‹šR‘œP‹žL‘§>ŠŸIªFŒ«A•­<‹³9“ª:¦- £2—¥;œ6“˜:—¦8œ¢.›¢8¡ž4¨—+«ž,§’:©—@ ¥O•K››?‘£L§EªN¦E§J˜›RŸDŽ¨?Š¬AŽ¨G†¥=„Ÿ:€¦>€¬>­H€£D©A{®Nx¹Rw»Tt´Ls¨Nu«Rv¹Y{´X€°dƒ´]u«aƒ¤mzµe­`t³dx«Zwdxžbz§hj§oq¯gj¡lj mg uhŽuWŠra•cT•d]œ^aŸkZ–t\kK‘cT“bU‘\V•XPœ^X§U_œL[šN^¢XhœSl ZJ/3B)/A**K6)BK2DP-KN-LT9JK1XH/QL8SJ9[D4TF/U>5SG0MP(T\*WO1^N.T\6WY9em6ep2i]?g[<^]7fZ=o`5n_=rj4lo„ D‹¡E‰›M‚¢Mw§Pw©R‚µaƒ´^²O~­O‡¥Vªcy°j}®d„²b¤_‰§i°lt­av©eq¢bx¡azŸku¦nm¨pt¨`h¤ek ra™kc“md—bV‹dP‹_[‘ccn^l^ŠcT‘^VŸ[X›_P¦_S eY›a`œQYWX\e–Oi˜R?*0=$7K18M60JA/QE6RU;NSA^V2^Z8WQ1JP:ML,WK-PG,^H5\N4\\#ZK&QK%SR*d\>b\:fl.m]:cb5oc9p`;q^>lbCwj;qvAoh?urBysMvu_wp]vkd~cZ„db„cnrklk`{niqhiifcgl[lmdkdhqcvhiqkZvzekolt€po‹dq}nu€|wz|uw„wx…ot{p…†|…‚q|Št~j}r{|oƒl‚wd}ƒgƒaŒ~f›Ž\¤~g§Z¡…\ †^•Œ[”ŠG—ŽR•‰?›‘Q¢T•‘P•‘Pœ–X“L•ŽQ •I¥‘L¬V´›X¤œT¦˜Y£œ[®V«™S§¨Yª¤[¥ aŸi“Ÿf•—]˜™gŠmŒŽh–‰h‰Œ^‘`Š“g‡ˆb‰‹b•VŽŒj˜‘bœ—j“aŽ”n•‹h•›i£[”ŸOŠ£U‘œGF•¬;™¢I¥G¢?€¬I£D‡¥Dˆ§J†¦F‚žO{¤K~«Mw­Q}°N‰µ?„¶KŠ­?¯J€ºK‡³R…®Zˆ±c…³P}¯X­SŒµ[•¼i¹dž¶e£­hš°aœªnž¯a¨iŸ©c˜\—šS¢—OŸ—P™¤T‘—Y”`‹RŽ”V—N˜P‡¡=ƒ¦:ƒ¯={«8|¤4Œ¤,ˆ©1˜4’¤7••,¢8•“0™š+“”*šž3 “1§•5¨ -£—:£‹9¤‰>¤–;™•M™•BŒŽN‰™FŽ¡>”žJœH† F—A‘ªG‰¨Nˆ£@~šG‚¨@ˆ N‘œLˆ¦I’™M†«X~¯b|®b}¶\‚´^¨Xy«^ˆ²^¥ht²b­f‚ªg±d‚§o} utœpx¥n~ mo¬mo§ek®cj¬je£_m¤_jŸmfŠkW—_Y…d`b`l[•jb‡haŽcQ”k[›k[˜bTœbd˜Zfš]d›T^]k˜\c˜JkŽN90gc7nc:heBhe”7‹Œ,‹•)‹˜+š. ‹)—•0Ÿ“4¥ž5¬’4¨•3¡Š0 >ˆ=IŽ‘F‹B––@–™Bˆ¤=‡¢DŠœKžK“O„•G‹’NƒžH‰¡J¨K“¦N’ [‰ª\ƒ¬f…¨g†¬`~¦i„£i~¤f…ªg®fzªb…³j±h€¶kw©o{uv›pz›szŸx{tp«lh£dm¢cežf][^›]`Žca–cZŽk_‘fg‡fa„leŒnc‰oT‹q\ˆkV’hcˆbg‹]c–am—Xu”NmKdSjOH68=49;?;>G7KBBU?DSTEaTBN]DVR+JQ*UH!VS.RQ"SP.VN1PR VZ&Y[1WN)`W:_[9`e>k\*_i=n`7le9cnCpmAuk“CƒKŠ—E”—C˜D€Ÿ<Œ¢H‰˜R‰›Q•›\šYkŽ¡m‹ j§a~œn}¡d…£b‚¨l{¥kƒ¦g{°s~³b}¯ls«o~šlq˜hw¢lr¢ju _j¡ie™[mœ__œ]^›aX]Zˆ``‘icdd‰^df\‡nY•pQŠsZi\‰\Z˜an™cl›^f›\p•[q‹XjSbQD44?<7<:2GI5OA3TD@]M?XRKRRCKW2QX(US)^V.YX&O\MV#MX)\a$S\/RX.__2[b:ja7gc/bb5i^5hlCchBf`Ey`Gxc@sa>mKhFy`H}_X€_S‡_Sd]ˆ]aiiuhm{ccy]\w]RnbYqV_gU\j``w^_lXgmZryelvhp‚fk‹sp~iu}otƒ~qy}}‡|uxzŒww‡~to€n}mjzkiˆrfˆuo}d‰u^‘„U–„Z“{e˜}a›}[˜†K™ŠW ˜U¡•H›ˆJ ”Qž™RŸN L–•E—¡A§Ÿ@¥–D¤–<šE¯¥C¯¦J®§U¬¦P¤ªO  Vœ˜ež¡hš¤^¢šbš™g—–h“…j‚o}s‘ˆh“Œ[ƒ†^€„i‡Žg}mŽgˆbŒ‰]Œˆf–b“ŽZ‡Œbƒd˜`›Q¤KœNš£P§C§Cˆ¦>Š¡;‹§G€«K}§Hx¦Ut£Lw¤Pr¬S|¥]¬Zƒ¡Y‰©W¯TyµI}³C‡§I‚¦[z£b€­_†®VŠªU¢P’£Tˆœ^‰¢]–iœ¤gž§iœ¤[š_–›`—¡Y¤žZ¢T¡™[–š`‡¡Z‚¦[~šW~œT‹¢O’£O“ªG•¤E«M‘¬<­<{¤:}¨<ƒœ9†’8~“@†6}’3„ˆ!”‡+›Š*˜Ž%”š%˜š1 ›3§,«2ª9™”?–ŽB‘‹>’”5š9”•8•?‹A†˜A“EˆŽTS’ŽA…ŽF€‘@‚Q’–[Œ^ˆ™c XŠŸ^©cˆ¢lŸq‡šeƒšd†¥l‹®pŠªo‚¢jƒ¤m€¬kz°b}¤`x›bpœ[t«\y¡fz _o›[g’^r–dm”bj™``ŽaeŠaeƒhX‹[Zƒ_Z‹hc`g‹e^’ne_g^c–Ueš\^•[hœNk•Od–]a—Wi†\>1FG;BFA>EBDRQFNGJ^NA\YCPLCHK3K]4SU5X](RW&M[ RT/[U4`c,P^6Te2X]8]cFan@ja:dd6q_=f]=mZCf\Fx^BoiA]@„fF‹gI[SŠYTŽWU‰Za„da‡]i†imr]mt_dq`[kZVhXcsYZkYWjOckYgzZnsTu}ahyhv‹uu‘wg~wh‚q‡x{Žq’x|‹†sŠ||†‰p‰ƒwr}prwnjƒys{mzdqb‡^ŽYŒ„_Š…]›‰VŸ‰S–‡N—›O¥‹IŸ’Q£™W¦ŸQ¤V¤A¡Gœ—C–“F¥G˜–D —O¡¦M§£Qµ§F²¤W¢œM¡¢U¤›X¦¨kž™l£¤hžœoŒa—ˆo›‚p—‰dŠnŠ‡i…l‡Œc„†iŒˆ]‚Œb‰ˆd‰f…Žawaˆe†a„Z ^Š¤RŠ¦QŒ¨Jš˜R—«OŽ¦A“­<§9¦B¦D}¤Q|³]x°Qw JzžW~­\ƒ§Y}›Uy§\}¹O‚ªTv°J„­R€¯U|¤UŒ´ZŽ¬V§Y£[†¤V‹˜\“¤V”¤b”£f‘—c”’Yœ–h˜e ’jšœiŸ[œ›_‘ªSžX¦]š[…¨MŽL†²O…´L‘²B©>†¥G†ªA‡¬=ˆ¤F–2„–+Ž9(€•$ˆ'…* ’!›*›š$˜œ'›'¤š6©‘0¨”3¤<•‰7ŸŽ>•ˆD™“@•ŒC›?‹ŠO‚‘O‰—JŽ‹K‹“G‹Nˆ—D‡”A’•K™]ƒWŠ›k’dƒ¢h’’g‹—qŽ™r‡–q…Ÿh‹žrƒ¢p† l§w…©j}¥nv­fu¡hz«Y£Y|°b}ž]}£byŸTq•Yl”^l–brŠ\dfZŒcb„mj€\jƒh^Ž[iŒf`‰bdn`˜_j–\b“ac”_b“SgšWpœMdšae›QjVM9?K:HM:IHJAGRMSOMNWDYUKPRCPPBSU@KZ=Le1Ub,M]1M[,P^6Xd:Zabg‰“+‚š0Šš+„.(‰0¢Ž(¢*¥˜+¢›&ª+¨‰%¦“+ —/Ÿ‹8™’<Ÿ‡2ž‰6”HŠQM‹‹K‰“V”‘MŽ‹O–“E‘•I–œM•C‹O‰X‘Yˆ’cˆŒ_Š•eˆ™n“n•y‰w‹‰y…”yˆœu‡ w‚§k}¥nq«er¥bp©Y{«`y«ey§av¤ewœ]p“bt™Xt‘OvVm˜_a]_ˆh_ŒafŽZi…ac‚kegk–iq‘\i•]m˜cp‘Wg‘Zo’^s”Qr’QfœTmMl’W9>B=CJKYc6Yf0Y]7]gB^bGZd:a]9k_:j_:q]2y]>ri0€fC…gD€gF‡dGŠiJ’_[‰\NŽ\`Œd^yaezkZ{Zc{aXhZhxa`nXXhOSsTVoO]uSep]hrihu]l„qi}mn‹{jŒ{i‚}iyƒnw‚vozx‚sz‰t†xƒ}v|y}~€mt~zˆ‚k‚rŠql‚zZŠ€Uˆ`Š†Y”SŒM›ŽX šHž”GœŽL¡“O›™S˜¡X¥—J¥šNŸ’MœžR”—M—•T•V®›U°œO®”J°ŸY±”K­ŽV®•T¨£Z¥›h© d›•b”e”j›…b~d‹c„]œŒk›€`•€k•„^W~’a€ˆds‡dvŽb~gy“p `‹P„™MŽ—M†œE—¢BŠ­P…°S…®E†£J~­G|¯Lp£I¦Sy¥X}©W}¦_rž\w¦Vƒ°[x¦TlºPy§Zx«L‚¢Lz®JxµR‡®Z°]‹±[y«[}©[…£V X…›X—˜Q—œW˜œ\š“c˜–jš›c•e U—¢RŸ[Ž¤N„¨\~£U‰®]‚¦IªU„¯G†²BŒ¦A‡¨=ƒªHŒ :‹9—2Œ–)Œ—.…Š(—”+š”2š*•‡/£•*±“-­•&¤”&«•3©“$ª‡7¤”4 1¢Ž0‹A‘ŽK‹‹GQˆ†XŒŠR†•K€‹@ˆE”G™B‘ƒI‹†SŽŽT\‹–cmˆ’kŒ‡gŽ’kˆm‡‰p…‹n|Žr€Ÿq¦mˆ˜mv¥x}™slŸew c|®jx fz£pz˜jUw”Tx”Qs™Vw‘`v‹baŒQ]†T]Œ]Yƒ_[ƒia^cŽihŒalff‰Ymš[l–`l“Yn‹awŒMt“Qg—Ud“agV@=T;AK=CF;?K;LCKPFUPD`RDTWCXUA[]CTZ;OT6IX?HZ0JM.NO-T_1XY5`Y/\Z=c`Gb^BZg=aoGogHsj>q`;€`8b‰›B†•?““3’›+‰7ŽŠ4’0ž‰*¡5˜„8Ÿ‰*®Œ*¡Ž0žŒ.ª‚2ªƒ%«Œ$¦‹41™‹9•C’Hƒ‡L‡†V“…Y’‹J“‰=ƒA’†B‰R•~J‘K“{H”†I‰ŽP‰a‡†mŠŒhŒnŒvƒ”v‚kz†s€†m‰Šs‚žq§z~žyz™qs˜s{¡tt¦mwŸo‚£m‚—f‡–\~™_r’Rt‹WxŽbr‹]i“QiŽP\V\„U[„eZyce|[i…_ab`bnŠbj[d‹_k“\n’Xn‡Wp‡dgˆ`gˆf5@K>GR=FS9HO>LCCLJVOEYG@RZ=MW=NOAPXAMNA=Z9HS6AJ:AQ4V]+[S0U\9`bGI5IO;[S:\N@bZLb\NbVLhQSv]Py^TvbKtbNycS{XY‰^PŒ[G…fH…rG„oIŠtDˆkJ€sN{oYtb_}bhvgm{Zc{a^}WizZeyi^na`sfhpltxsqsty}€v€wpy{xzxzl€{gzr{xvu{n~kxh~‡k‹Žn‡Œw|Žsˆo‡ˆnŒp…upƒhq{e€„`‡wc‡y]ŽV‡†^T“MŠˆP‘‹OŒ†QŠ‘b‰•ZŽV˜—X™_“™^§•P§™R¬’M¬–EªˆJ¥’L¬“W¦•X›˜b“f˜™`›“ci—“h˜še–•Y–“\’…Qž…V˜†bŸ‰h˜’k““l†f‚‹oˆh††fˆf‡„\}“\”^}•^|–`yPx’Nq•Mx¡\€ªWƒªV¦Z†¨]~¯Sx§Q‚¤V~›YWvž[z¦Ut§S}«Uv³[i²\m¨[q¥Ws©[n®Wh²SfºYi±Qh¥_h©\k­at¯[€«Vz¥ax¨ažS†›R‚PŒ˜S„•a–T‰™T…¡LŽ«NŒ­TªK•®H‰¤O‰ Ox©Vs­Tt­Qm¹Ju¶<‚¸9…­4†¯1£/›/””8‰?—ƒ<™1™ƒ2šŽ/œŒ9£’9¦‹7ª…7¨{(¦{ yž‡&¢‰1ž„3—‡>™@Œ†O˜‰M’O–MŒ“R„ˆSŒŠHˆŠG‡~D–~S•|Q”Š^ž†Z—€W™ˆT—bŠh’h–ŠmŒ†rŠu‹‚t…†l{’t}‘{x•}z yn›qœst”|wz{xz™iy”g‡›_ya|Xp•Zi‹aq†Vh‡Zg‚^[ƒWY€PdxVayaY|[_€Z[x`cil„dqZf|^bde‚ZiŒ`n`xlpj@EE@PDANHKRJLWRNTQJN[FMLQ>\V?VDCJL5DS7JR=CILNTACR;UOA[X6eSEZ^Ig[FXJWdUIm]GpdJqaO|_LƒYK†cO€]LƒgUfVeKŠhO~sZylS~sRmg`u_]zchZ[y^Z}U`yWl{ek€i^rij|gpwqpƒtppmƒ|q~€p||qymvoxxp€vp€…qz‚w|py}syj„x|€rz‡iqƒlˆŒr‰†k‹zmzlvˆeozgwƒk‰rg|}cŠ†c’\ˆ‘V€ŠZW„ŒX’‘b““jŠX•X—–\ œUœ[¡˜S©›M°ŽO¨˜O©’U´™M§‘\Ÿd“YžVŠe—ˆ[£—_•–Y”–X™V’ˆZ‘Q¡†a‘˜h“m‘Œf†”o‡n…`‘ŒdŽŽT‡”]‘b~“_}™\‡’Sƒ–]o‘K|œJq›R¥R€£bˆ¬W‚¦\ˆ¬[}žP|œ\ˆ£_y—]p§^tcz¨Zs°]nµPt§_h©[g¢bk¨fq²\q®So¸Zq­Qn«Yp§cjªSr³b{«ct©kwª`ƒ[šM„ Lƒ[~š]–^†“W‡¥U­P¡OŽªL§O‚ QŠ¥Qy«F®Q}¯@~­Kz­Hz´@~¤1ƒ¦9ž6”ž9–Ž+—8˜“<•9›…1’„0Ž6 }3™…@ª},«ƒ0£v)©l"˜z" Œ/ƒ:“yA–€CšŠS‰ƒQ—’E•—K’RŒ…YƒN…ˆM~€JŠƒZŠsO–]¢}b•‡V•ƒ^‚a‹ƒ[Žhœƒ^št‘xŠo•|n…y|ƒv…•}~š~ržrtxw{w†~}ˆm{’i’c„iy“h~Œ^nˆ[c•`r]cƒ[\ƒZZ~`ZzTh[f|Q]€aX€Zg}_g€e^‚f\w]_xc`{\^ZfvdcŠlq…bo‹v=KN@KQ?=J9@TF9W:JRJIVIJUMANLLOWIQ\JLcEGKN5HS2OFCMTETIINJISOC\G7WX?aZIVUHaDRiKFnSQjSMn[R{cWpYSwdTˆ[O`PZW†_TŽa]}rZ€tawj]qg]zj]ol[|b[yrb\_at‚eazbe}hd|eguet}w{€xtŠthŠrf„|o€‚u†r|‡u‚w|}‚~y’~j~“{y‘t|’xt†kl™mo‹esŽks€puvvrqyrym~x{„oƒezc‚‹[z’Y~“a‚Ž[‡“cˆŽk–q•”a–Œf“`£–c¢›\®’X­‘Y±˜b°“Y¯ŽP¦†XšˆI¦‚Y«U©M«ˆH«ˆOª‘GŸŽU¡Ÿ^˜œS‘‹U“˜Vš’Y—™a•’fˆa›‘U‹P‘\“]… Tˆ‘N‘—VˆŠPŠŽX|“H™Fu—USo§Uw R|¤Vy UxŸSx O{Uu¥Xy bx«cl¥cp¥hq¡ht¥Vw¤^r©fr©le§sk£j^¡[m­Xj¯^q©bg·\o¤Wr©dl¡hn¨cqªarª\~š_‚—Z‚–c~ S‚¦ZyšS†¦I¢G…˜N„–N›DªCŒ£L}¥A}ªžƒ=’†?‘6¡ƒ0¡~+›v$¡j(¤{'”s%p.‡x2vDœ}E˜zG‰‚?”„P’„M‡ˆVˆ}_‚xR…yT‡}Tvcl^ŽiP™{Q—tZ”‚b„qeŽ{eY—‰eŒd•„q—xt’wl‹z|‹„~‚‰w~Œu…€p~v„|zŠy‹ƒr€ƒq‰‰qƒgkinjh‡ts•ii‹hf‹\d~[q~_hsWeuQa\cr]es^gpWVxdYn\euqaujXnoUox`usivuu‚mCDV7KQBGX>=YI9ZDENAFKOAOIGDNBDZHGYEASIFOO;UM8MNBLE;ZHAaA8VI@^IM\QHfSFaKMdPKiMWkXMj\ToSNmYU~\W‚gU}i_‚aW|e`‚c_‚sf€rf†ogzn_ty[lu[mr`oqcnih|enwfcwdf€_g„hxykp}xv{|sŠ{lpkƒvr†|s‚wxz{yu…‰{‚Œw‡ryzx“r{tvol’qk‹ok‚no†jtplƒutyx€w†x}„z€w‰g†g…l‰‡a†…l…‰iŒ‚q‹g’‘^“fš—qŸœk£œ]¤•_¡šd©`¥‹X¡‡MžˆDžŠJ¡ˆH¬„O¯‰D«‡E¯†Eª”J¢™H¡˜P™œH–˜MŒ“T’šYV“ŠdŒU’˜Q˜œK••Q“O™R›LŽ‘V…ŽK‰ŽKI‚›My˜Tw Pt¢YrSp—Pt—X‚™P~¤Vy§_o°\t°mr±nr°mk¥poŸjt¨do­bk¥^g ad©kc¨`\¥`h¬gh±fn®cm¬cj©dm¨h|£jy¥a€ªlw«hu°e€¤b}_| [€ŸP€¤KxŸNw™Fz˜G…›LŸA‰«Gƒ«={:x¡9y¤<}š2›/€™7z›4y=t–9sŽ4~‰1|•7’8ˆŽ8™Œ<™ŠC•„A›~<šƒ8•:œƒ/—s5¡p)™s$™v.˜z;‘t@–{C˜zE“{IC”yCM‚Y\z_|}[†x]„r]ŠwU‘mV“oV”v^•w]ŠtdŽ}]’aŒ~d‹j”xu—vr“xxŒ}o…|‹„xˆƒ}…†|Š€~ˆ€|ŒŒz€Žr|’|ƒ‹y{qrmjkkŠuj„le‹lc‹fl€amtdlu[es^k|]i€ek|[`^`q``vgZkranuYmsgo|djymqng|o?BV6DWDIW?FYO>UHFRCAQD>UQ>DMB>PCDUKJ[KKLREWGFJCKLTFWJGTHNYAKRPF]^Qd]UaXMZY[bUZmc]hfRvdVyY]uWV…bU‚Z\v\dv]eu_^wfn}hs}ngva_{gbuudyjmzqnvikycg~al}nrwgrzilurx}~xuxp~~iurztdw|n~‡s„ƒot|Œ€{—€‹yqt“p…—nrŽnz™`y‹nu‰cqˆk{†eokqv{}osƒ{y}yvŠzy~jŒd{^ya}‚mw†iƒc‹i•h†‘oššs™sŸ–n¡‡d¡ˆc ~h¤ŠS®‰[¦ƒS˜ƒC¦‡Q´‰L£‚P±ŒF„L¨‰I’TšŒX™—K–ŠM‘\˜“a…•_ƒ‘Z†‹S†‘L‡‹R‘Y’—\•]ˆQ‹X…“X‘’B„‹R€’G|ŽCv—It–Hp ]xžRpž`t¤Lx¥QRp©et£lt¯ht¬kpœrvŸcz±cp¬Xa®W`¬\]¦qa«`džjb°ep¨ti¬ok£hpª`h¤lt¡ipŸft¦cg¥d{«k}§hs˜Zy˜O‚¤Z}œU—Uw‘P}˜F{œK†ªE…¥K‰ªB}¤K¡=x¤FxœGy•;‡˜7„¡0zœ?{ ?r†2‡0ƒ„7„†B–“@œ‰>—“<ŒF—|=˜‰3œx0 +§v$¨t£q-q%žu/’q;y?’{6›x<Œ{D‹~;‹…C„‚Oyr[w]ˆrd…rTySnU‡rR”qYŽ{a‹zYŒ]”ƒl™vj’~gŽ{n‰ro|uŽst…h‘|n‹}Ž„–z‚ˆ‚€‹y|‡†~Š}Œ‰{‡ˆ{ƒ~q}~l{yq{†vi‚mfŒioŒok‹ih}[sx`dyghveqq`p{W_n^c€W_xn[epZhpbsklo{c|‚syriƒp=MYIQ>LE4VI;QQ=DY?H`GS^GP[FOWIKMLAJHCTHE]VRXUOXFIYKTY[NVe\\cXYZbb_]`h`ie]m]U€ZV„UV†\T‚b_yhhqjjw\ekcbn^nuemtdhuj`vlermm{gu{nmqoprjvthpyqisjmvsn}x}wxxm€rv{n|~ep}`t‰l{Œw}}qv{’xwš‚y …{¡y„“sz”b~•czdray{fr…c|‚k{ws|uzƒp{vwytz|x‰l}az„f}`z€i‹ƒnsŽq‡—k‹“s”l›‰oŠe |h¥{a¢V©zZxK ‡I­D¯O£’S§ŠW¤Mš€HšˆPŸƒXŽ‡S‡T‡’SŒ“]”f„‡]Ž\‰–V‚‹S‰‰XˆˆTŽ‡V—ƒV”Œd‰TŠ”J‹M|‰C|ˆL}’G~›Gv—XsŸ_x•Ws–\{¢O~ŸUxž`k¡ek›ij¢hg iq¦a~¨Ws®Th«]i§fa´g_¦rn§nv£un¦sx›rr¡or§ga§ci™Zh–`ošff£fug¥_¥Ru˜N~˜Xy“Yy•TPx’Ax¢=¡C‡¨?€©NƒªL|œDŸH€‘B‚‘H‚•Iœ8}“9w˜<„F€‚?ˆƒ5’„;™‹?‘Ž>•Š<‹;’ˆ5¢~9¨q5žp(Ÿm$žoœp&—l&žn)l8”t7{4Œu8’y6˜q6•zDˆsQ|oZ„nXŠwbs[†wYƒwa‡z^”qS’xW—{fŠe’}n˜wg‘tjŽu‡sprršvl˜„j—Žk’}š‰ƒ˜}‡~z„sq„zy’‡xŽˆ~ˆ€yzzxq~„xƒ„p}…jq~mwryŽgqdn„_nxbjtehmXdpV^pY`~WiwYcnljlt`zpd€wr}yowv‡kOKmŽ?|ƒB|ˆBƒ„?Šƒ8”€4‹‡AŽ“=‰ˆ0~2œu1§~/¢z,£o"¦kœo"©m. r5—o0’m5˜z-šy<™v.~FŽ}LŠyL~h_‚x\‚xXƒvW‘q]vVyf„`‰zV‹z\’wa‘sg˜vs•xf€r‹tlk—yk“‡nžˆv•Š~v˜x}™~n‡xum’‡q‰v|~~„}xwƒzvŽ€nvuƒ‚nƒˆbxetgs‡bm}gvpnjqWry`iwQcvTgu]ithr|ae…nkzo{…q€ˆ||„p=EiDBhQIiRSXVUUYONPM\WHYSLR\BYcJX[Ja]Mh]S^\W\ONLTIKdJNkZLeXS^]RaUYg_Ueg\scNqYNvTJw\TucZp\en[m|XdnS^p[^pXly_lrWrw_mrbxj`yrSypWsqWp€`s{ay‡bwŠhw{ht{h{yprtt|mqtxrkurplspr}gl|pv||{~~t‰ƒo†p„{€~ˆ q‰¥mŽ™ii‚†p…lˆnƒƒmz~utzm‚uq‚wsw‚{uˆ‚pŒˆo‡‹z‹‚z„ƒr€}jƒ…gzgƒ€q|…h†p‡—eˆ‘i‡dn”}h›t]œ|T¢sS¥~L›€Q—Pž‹Y£R ‹I“†I~M†O”}Q—‰Y’‹e‰^„c„Œ[ŠW’‹^ˆ†_€€V‰„]‡„[‰^Š™fš`‡a˜X‘™Lƒ‹MyŠP|‘G{–Ow–QvSr“Vl‘LtQuMlŠWp–`e–jk›he£^d¡ct¬Yo¨Xo¯dmµhj«^t®eu°[|±bs¨lu«ao¢cs“be“n_‹t]‹nj™ei˜^g–ei•\ray—Tx”Y|Z{—P~–O…–N‹‘N†–K‡žBƒ›B¡D¦Hx¢L€’?z:xŽ:vŒ„Œ?ˆ‹B‹…;™‹<•Š5“Š/¡|4¢y5«{.¯)ªs§k'«s4¤u/g5–i-–u/˜u96ŽyJŠ}PzO†qWŽrZ…t]‘maŒn\…{[†^‡z_‡}d‚{hŒv`€c“pŒucŽqgŒtn‹vmŽxp”{yx™‚|£‚›v}’wt”wm‘wj‡‚mˆ}nƒ}t€ys‰rŠzsƒt†{qƒ‹hzŽ\ŒY~}fzth}xgv~iov]k~^p{\q]r}ZzˆgrŠcvls‚Žs„z:EqMDlGQaWVV`VUZJ[[O`PQXMD_YM_SQ[cWc^NY]UU]QX\S\VRXb\P[X]g\XcfUeYTc_SfmdvicifS{\Y„\Nti`pelzf\‰\`€YfmV\uVdl[qkbun\}o^|rX{kUpv]s|cq„aoub|~c}€pk~pj|mrskktqompmjopvu|k€zhvv|yx€rz{uƒˆp‰q„œpŠž~ŒŸ{”o„•m“jˆ‘m‚dyixwtr~stˆyi€}hwvpq…wv‘{x‡|Ž’v‹Šp€{~v‹i‚‰r}„h~p€r€„s‡‹v|‚k„…q“~oŠth–zf•s[˜u[•y\–ƒV‘\˜c‰ƒY“E“~DŒuO„|QŠ…Mc‹‹k‚}Y’a„]]€Œ`ˆ‰]„^†P†…a‚†VŽŽV–“bŽQŽV‰O‡…HxŽCy˜@{™EvL{Lz‘Lx‡O€NwŒOu’Q_“dh^dšjf¡Yx©Wr°[{«b~©_u±Zo£bs°R}¥\n¤\{dp¡m{œhk›km“lhŒlg†bnhf—bb’Sm‰Os†Uv“IpŒJŽ\t–UŽP…ŒNŒRCŽœMˆ–Kƒ @uE”N~Jxƒ9|ˆAwBu…:}{/}‡=Š‚=‹…@†J…~?Œ‚8‘{C“y2Ÿv8¤j0 o.®p7ªl ´w¥d®g&­`(Ÿl3“g4Ÿt9›t1š…7›zJtMyR”nN‹nVzW‰~`ƒpSu]‹{W–€R“‚\‹ud•yX‰ri~c…xdƒonŽxg‹ml”soŸˆ{”†sŒqšz{¢{o’tw¤tj—tv‹qpssƒsp‚uxqqƒrt‚l†|mŒul~‚_ug}c|‡m|gƒ|govirwal…jxŠanzfuzdu‹`s‹^{}b}‹m|‡rŽ†ƒ‘Mt‹Mk†Oj•Te—QyœVu«Z‚¬Qƒ]}¦Zz¢ay¢Zn£\uœ\všgyap•ct¢Z{šf{Ÿov—iqbp–\v’gx”aw‹ZwŠ^pŒMuIq„RpStƒVƒ[zT…—Jz˜D|œ;q2n6uƒ>uEx…O~„I‚ƒ8‰„4x7{BŽpI”oFwG‡jJ‹w>Œ{>–r6™l9¦o(Ÿl4®e6­r/±a$¸d½g²m¨Y$¦[4–],¢iA—{B’xD’wF‘sB•pG›wS}MyT†€L”~J™RŠuMŽuTiVŽkXˆs^Œl_‡ua–tf‰}j•xk€u›†|Žp™‰qŸ„pˆq~m£sx˜‚o¢zt–nl™tgŠyf‡eŠxjˆ€fŽzj“…h€Š\…Šd‰Ž`Œz^|†b‰|c‚jwŒc}†efv‹js‹pu†mv‰r‡l~a€‰jzYH`XJgSVpWUjQ`bV[k_il^fuYpoZis_gvS[lRcbY]iT^rUZiXWqVen^rn`neotgpxaoz_~q`}gYzcV}hU}fa}d^†_bƒXfƒ^s~SvzXqtasob|ubzq]zsVxo\{rY‚we‚lZ{l`yy`{zio{mj}wmsznv‚mq‰iq€izŒir†rzˆup†ur‡‚t‚ƒt~ƒŒ|„ˆr‡•u’w…œ}}‰y}†~z~s‡…r„Šj„€`„€gupjyinpysv€rq{kz‚tsywˆ|Žˆ{„v„‚~}ˆ~ƒŠ‡yŠ€pŽ…x‰x{‹xv}zz~z‚p‚zk~‚^‘|f“x^Œx^…ka†iasSƒwWxpQttPvs]r^zx^}vSsuWxo_vt]wzh{ˆas_y‡[‚XWˆJ‰”LŒY„T‹‰IˆŽFƒŽD†?Ž—:‡‘FŒ‘<„–?}‰MzI‰CA†ŽP}ˆOtƒMf‹NlMr˜ZqŸZv¡YyVyšcs›hp§[u™W}”c€[x“azšZ{•d~˜_s–il“at’^}Š`z‹gz•k|is‚_{€WuT„Pw|Ms‚Z|Rw•NrœIy˜KoJu“9s…Au…’‚K”v:•x:”vAˆoJ…kEyB—v;›f6žm*¢h- k+£v,¥f&·g*°n"µi²h#¥`*Ÿd%¬\+¢\;g<št:r;ŽqIoD‘tAŸ}FšƒF‘‡I‹zIŠxK˜sY‘pW˜ggžs`“tq“wv‹rt‹nf›lŸwi›ƒzœ{qž|u¢ƒ|¢m¢‡u¢…o¢{~²~s°tl£|jšzh™‚pœešzj‚]“x[ž|`“^”Œ^ˆj‰uh…m~]’h’ˆi‡†l‹„k††n‡Œf€|j€‰lŒ`Œ‹k–‚h‹wTV~Q]wQ^uZfzekwafthd|_n„fcwdfoeUv^TtU^kVacQjdOhgbhrgmmloq_ske|`n|fjsqsknremtii‚rsƒxu~hi…dl‡_i‡Yn€V|yX|pSznSzt`~xgrhpwcovdvz[n]„pk{upvqqz|jv€p~„myˆr„Žn}lk“gj…ru‘lr‘uu‹}jŽsˆ‰o‚ˆsŽx|Œj…i‹qŒw†Šlˆ‹i…‚n‚k…‡pƒ€ozvp~vyuuuwywz|ƒ…v‡ƒ’}‡~ƒw„‹px„vx€x‡|y…}}xx€uv‚owŠorzz‚}|ukxp`um\‚kd}le‚~Zs|NqoOvoFs}M~nI|pPzsZr~Vrw]vmWwpRnyXwƒQy‚PwŒW€‰WƒƒT€‡Lr‰EuŒJqMm’RxŠPvRz|R†€K…’E‹“9y˜yŠA“DxŒGs†Fx‘Cm‰BrŒKmKr–Px‰UyŠ[wœdtŸ^u¡[y›T}¢St¢Ov•R{™Sy[€‹a”cƒo~Œg‚’p{ft‰j}`‡aˆ}h~nc‡|i„…b}‡^q‡Y}N€RxˆSrŠPz’Q|C~Eu?{x>yHy~T…ƒT‚S‚„Iƒ?‰r@„w?{J“rIŽzB˜y@™k:”x7”w&l*¨l¢s+¨i*¬e#¯`!®^#¯_1¤^9ªj2Ÿg8¢`A—d<œoA’vI™oF”|?—~H˜‚R‘†M”RtZ‘p\šr]›khnitv‘mtliŽso—qhyqœuvœxr—~|¢x¦ƒ|‹p©yq«xo¥qf­ue£pi¨qq¡tnš‚r„f¡xb£rd›zf¡†bœ„[“…_ˆ{i‘tcŒqf‹|hŽ…e’cˆo{p…~l~zl„c‘‚p’€nˆ|qŒˆrQIY[[a}Zc‰Zl~Zs€`ez`d^l\coZ^yi[nbfifcsQdhLkfSer_htkrvfylcwml|tqxlxko€xf|xgss„€}‡m|qpcu|aysRuxU„qT€nZxqVp[|}ZtoglsXt€a{wh†pwtm~lsttrry~tm~jjŽuu’t|wt†kxƒ~gˆtjwq’i‰{g‡ƒiy~d{…t„Šr‹kŠ„d‹mˆq€j‹‡m…cˆ}q{u|}t‚€w…w€~ƒ}r…{„‹}‚…€{…}…z}oz{py~ˆowƒzwyoxstˆw|xƒwƒ~ttm~v^|ocˆn^tsZtpX}~]ryLrrRwwHmvJ~mMutVj}UopUy|]wkYhxYz~Tt€Wv€OwIz‚Jz~Tv}DpŠDo„Ro‘\l‰Lt‹G}ˆEz{F‹€<„’@‡”A‚7rŒCx‹@wˆNw—Fp‡Pk“IsIrŽQv‘Ps‘PmSqƒ\jŽ`lŽUqPvŸU|žJu¢O‚”Jˆ•OŠ`~ˆc{e‹›i|˜r„iz_q…gyˆ[xƒi|pfŠpiŒvc†ƒl~ƒXt†Sz`‚ƒ\|YqŽTvŒY„Pƒ‚G†w=ˆw@…HyLƒ‚L{…U~O‹yPyN„vJ„T‹wOœDŸs=’n-Ÿz/šo*—j,ªt(Ÿi-¬f'¦k.¡j)°]1«c9ªn:°l6Ÿ^;£[H›jE—o;™eK“tK“nU¡zG H¢N‚LŽsM›r[‘pe”wo•mg˜mršqqžsj™{w›ut•vo£vŸ}z§†ƒ ž‹r¢‚yªƒp¤}w°tc¦€m¨qj§mq¡yk¡Œzª}q |k§wc¦€kž‚f•‚g”yeŠ|iŒwh‹re–yf_‰kŽˆk‘xg…}rŽ€sŒ~nwmŒ…hš…xŠo\X}eO„ja‡jh†lg~do„ao€\gƒ]]‚[Z}eaxdbsljwheqbmhXigZugZptfk|ksrtwuu~qrxu{ysynˆzlˆƒsƒ{y~x~tu€cwzawuV}pS„nS‰zX„x\{w_ux[poaup[v}d}|duws~sskltcpgkzkk†qj‹pvƒp}Šx~|w…xxŽpj’jd—vaŒ|]Œ{f€„^~†b‹b~j”‡dŽ†h“‚l•‚h‹Šm‰ƒcˆ~k{nx||x‚ƒŠ…ƒ‚{Œ}…ƒ|€„y}‡‰†|…zvvysvtooq’wqˆx|…vq}yt†uy{zy„{vqk‡s\|mYnl^mq_wvasxUl|TsyHpqOupHojKsrVyy^oy\ezcio]sq^xtPxvRs}Gy{Mw{Pr„Vg€J^‰WfŠUo“YkŒLn†D~IŒ‡M‡ˆB‚ƒ8}>yCz•Iu—Rn”MfˆNlŒSoˆMj„Ot€Mu|Iw~Pm„PbWh‰SpŽKs•Tt¢YtžLv™S„•T}b~‘b‹–q‡™nˆ–c~g}‚`s€]ruXwaŠxfˆn]„kh‚sf€xj„Š\}^w‡_u‚]|d€†e…†\‹}SŠtE‹nN‰wS…N}‚Tz‹J†ŠM‚S‡OŠ}V”„O•‚S›zE p6–r0u)–t0‘o4œk)¥r%¦p"¨l$žp0žn.¨h0£fB¯mB§lB£aEža@_AŸbB›iPœoZœmT›oM¢zD¥‚CœxQ‘w^–|i›tlwr˜pnst™j~n”}sœ~}•‰‚šˆ˜‹¥Šƒ¢Žy¡„}£y§‰m¢ƒn§{g¨g¥xo¨‡n¨„v¤‡m¦€n¡m«ƒa¢‚kŸzg’wk–n`‘rX›q_¤v[›gž~l—}jœ„w~rwmsl‹s“{r„v—ƒv^T}kS…qU}qbz^a‹[j„dp†hk†ae…[\}cathrvohnfmkbnoghq]qkipwmvxjz}fyyry€y|ƒxv€y}~„}z~z}|wytoƒxe‚yd„{c…{\‚v\„{c‡}ayx[xpZmxkvya{b}oyznx~krlpqwqnm€nvss€wyx{”nvŽt{ws•eiŒgg†to‘xo„zf‡€e‹ƒjƒv_“‰^ˆ~c‰l‘ŒfƒŠn‘iˆƒcyb„yo{†t|xƒ‰}~Šy‹ˆ‚|u‡†{Ž{ƒ†z‰}pr{‹pyurvuˆm~ˆw}ztt€}qpi„|kzro‚dg~ijtoWgq_fpPp|WxyNn„Nq~LhyOihDooKukVjoXou\jn[j{Tq{IytFj|RnuLyvI|{Pr~EfuQ]ƒQZ‡Kf„Hl~To…N‰€Ay‚G€ˆMy†HpEx–Ip‰LxQm’Um“Om“Xb~IqHn†RrtHsRo„Qh„PvŽWo‘To˜MyŸKr‘Oz‘X‡ZbŠ”gŽžd‰’h€œmˆ’g…†d|v[ƒb…tetiƒ{f†miws`}ƒVƒ„Q„„]x‚j~fy‚\ˆ[‚„Z„L‡tD‰}R…s\{{M|yP†N†‰K†ˆO‘‚G†~RˆƒQ”}H F™oA‘y;l-Ÿu*—t&Ÿt&©h&±s)¤y%¢z'£v.«a6¡m4°aH¦m>œb<žeB•h9£nJ£kSšlOœrP›tDžtKœL–~P”~[—xi•€fŒpkŒ|fžrxi‘~o•o¥uŸƒ„”‹‡¤‡†­ˆ¢†‹«~‚£‚t£Œs«‡n£rf¡j™vi¢‚o¯|g©|p¬ƒ`¤‡`¥Š` uk§tpŸ{i¡h\–ih¨s[©{c¥wn¢xqzvwgŒ‡mŽ€r“tp“ƒh˜…xŽ}w“zvm`ƒl^Šj^gY`fƒclƒbk~ehˆf_Žce‚ee|qt{jl{mrkaxgdlpantkwx^xz`|aˆl„‡h‰pu}|~‡~„…u}ƒw†{x…‚qykk†tdƒ{b~toŠrkˆub~ld~s\z}Zrvftl‚xi€|rƒyivvyszyr{yykuzos}zzp}k„jsŒkn‘in”pjfm‘qm{uˆzk‡xwŠ|q†zjŽ‡aŠ…f^…m‚˜s’q…„i‰€i€{kq~j‚jr„{y{}}‚‚†|…Šwzxx€{z~}{s‚psnoƒpu~|n}{g{qexkmzwnsthkyidqhefsXe|QpuVu}UvƒNl‚JfySkmKkpKnp[ryVt{\rwNtvJo€Gh{Jj|OtnM}xFxtBkvNbwKhwN_†JiMiqWz{I‚w>t˜h?”fHŸeD˜q>œsIžtI¦pG›zNšzRœwb–d˜€Z“y`re“urv–†mŸ„pŸ€v˜x}˜|~¤Œ‹§ŒŽ¬†¦ˆ„©}€ž}w¢ƒz£zt¥‡{š…p¨ym§~b €j¨‚a«„[©dª|nsj x]£s[¤wY¤id¬wp¨tm¥lo˜ls“mq“g™~q’€pˆu˜ƒt•v~˜x|cS}g`~scjV‹mZŒkc~bd„lp„ld‚imwlonmvrss‚vd}piqspxr`‰~d…_‡Œ[€gƒ’j‹‚m{ˆq}€n‘‹m‰†q~|yrs}n}|f}soƒwn‰uguoƒlh„uj…tb„k_vyb|ui}xlzyftvm}tw}qlvfyyyy{sux|Šh‚fw‹uv’sm‡mo’rl‰lo–ym”s‘|p’zw•€c„\‰cŽŽb‰‹hƒ‘gˆ•uƒk{n€ƒcryo}w_~}iwwt€~wz~}{…‚{ˆ‚ƒŒ~t|{}~w€vr†ro†oo{vx~wevpgrtqephdimkgotfrvjixYdXrVq]e†Ll„OpRnvDlmKqv]uoSvyYxxOpyPq|VdqGpsKnkSo{Srv=ouA`rFgFgwWetLhiLloS|~A~~;q€Iu‹CoŒAo†CwCv†Cd”EkŒIrˆXp„Mk‚Ru{QtˆTz†Pv„J€~Mv~OƒSySˆV‘\„T‹SŒ^’Y‘Ž_”–b’†g†€cf…qe‘{jss€{b{nˆpdxukszWx~_uƒd{{d~}ezzb„t^…v\‡xUzrMˆoJxwM…V~rMtK‰xSxE”sMp@ŽmD–lHsCœ}Kœu@žwA¢t1¢x5±m(¶s-·i:¯g1§u4§q4§j:¢`?­hI§gF¤mB jCžfB›oAŸfE”qM¢tN›|F¨~P¢wU¡|W“xY”€c•€[•‚]†o–€w‘k„r™y’ƒszv–„s˜~‰¤‚Ÿ‚€¥†ƒ£ztª|}¦{v Œn˜ƒqš~c ƒ[ª‰Y¦ƒi¤}i©‰c¯tp¤ro®€^²€]®}]§ijni¡kk¤jn£nq•}mŸƒhž‚qŸwh ‡q—}w•‚–z‡lSƒmZ€oZ~oZ…kVƒm^‰ujˆri‚um‚yjzym€xrzn}|o€ul„rrƒ{n~|_‰}Yƒ}aŠŒjb”d‹Ži…‰b…loˆ~t…q‚tswvxywn}‚v|x~tw„np‰loˆmg„ndŠphƒjjƒl_|wc…sd|dysf}sh}psxmqo{xtsyh|†lƒ‰rv€„mx‰qq“tm“€p‚k–€l–xl–€h“ƒc‰_•ˆ^‘‘l‹l†‡rˆnƒ†g~h|hsˆbtfw…ps~~r}ƒv„ˆ……z“„xŒwv‰‚qƒ~z~}sƒ}iqc‡ti‚mtƒporeiyjcnsnjnrplwmgs_j~ej€^_‚Wc€\`ŠRi„Qj}Lt~KqzStzPk~LowVvq\ryTk}VasPeoYdwSguSe|Hf~E^vM_tM]pTkiQqpOmlRutFps<{x=}„AvŠG~“Eu’Ir‡?kˆBp‡F{N~…GxˆOu†Iu†SsˆW‚~I|€D…ˆC|Q‡P‚`Žb‘Œf‰ˆ`„dŽ]˜ˆeŠe}hŠxgŠye“toŠuvˆlrŒnjseyt_|niydxzbwyj‚|m{}e|qhuxfvp[th_€oR{rPymV€tP‚uQ|{T„vS•|T”uEžzE™n>’yG–vHsM•nC£o:£p8°n>±y6¬r>°p4¬u:¢h<©l8¤e2©c?«f<¥^E¦gD¬lD¤h;§p:™iD”mA–zJ ‚N›{K sRyX˜}XŒYa“‡c‘‚g–ˆt‘k‹lŒ‡l‘Šy‹ww’Š†š……’ƒ…™…„ª„}©€v…|›r•‘q l¨„aŸˆbš‡j…b¬…^ª„f¥}b©{j­xm³€j©vl©v`¡j[ n[šh[mh™|h¦}mªxqŸ}n§yj¥zt§z|ž}€lW‚gN…pTŒjctd€n_glgg‹kr‹xnˆlxvxsw{uzh…€k~‚a‰‚k†g‡Žq‘‰l†“j}˜b€†h~‘q…i‘w~€l‚xz…‚tvyswtm‡~xŠu~{kw|qu…nk{zcxmr‚mk„lnzfswmcidrsdzsq{{vvnrsoulpt{qs~n€i|}uu~qƒks†{{e•‡g‘…n‘|cš‡k‘h“ŒfŠ‹]Œƒb†‹w‚lˆŽrˆŠp|Œ_‡|clx‡iq…hƒtzuƒˆƒˆ~„•‚t—nt’vqzv{~o‡wj†yr|mdwdtylmbilbiteinjsnpr^fmeivai}S[x[`ˆSg~^_zNlqZi}KjP~qDk{Kp|^evRk{PdMbwPexOfqPgpJh|?^w@[qHcwR[oMbqMlnSnzNi~?o|CxzLnvExzRn‚DsEi‚Me}Mp€E|ŠIu…JvRvƒTp„Sr{TzG|‡N}J}O~‚Nˆ~T’{iŒ‹W…‚a’„Xˆƒ_”~g‹ˆl_‰}_“mrve“grjoŠnh}ro~{f}lbp_o{U{ob‹sj„sa~k]€s^zia‡s\‚eQ†uO~rJŒqImCŠsQ|lKsNšoF—kO p<pA•{BtAŸo= hF¡j4¡p1«s*«p:°k?¬h4³d;¥e@›i0¦f/§d>¦e7¬iC¨b:§iG£nEŸiB£kF˜@•{B¥qV£zN£~TštW”ˆW•‚_›|a †t‘q–€{„~˜ƒy•„Š…rˆvqšˆ‚š~{‘‡ƒ¦u¤ƒvŸ{€Ÿ‡m¢€i•ˆe¥Š^›€m£g¡‰a•{g§‚m¦€a¥vl­vq£ta¥|h³v[°}Yªq^¡qi¡ej¦ma™nc«yeŸqg£v˜rq™p}£{€v†kOeQ’oVje„sg}qhtf‚lr‰jthxˆhwnw{x€r†zuˆg†„i„f†ˆf‰ƒqˆˆrˆŽm{Žpx•p€Žs‘pˆ‹{~ty€t|‡x‰€Šwp‡o|ƒnv†mwxjmvtg~vn}vo~wnrj‹gujvƒeuvhzv{qyuk€xtvyltuqu}rxx„jw†gv|fxˆsz…uq…vwƒq˜|bšƒ^–Žk—Œo˜Žk—”aƒeŽi‡‚pŠ‘qˆ‘k‚ƒgŽ‹dˆˆqƒ‰pyo~Œn‚{mŒ}‚“„v™yz™s€tu“xz”|yƒ{o€km‰okwfeurmsrltlgk_npdkx^woivcqv\dwRaqWXR]‚V[tRaqV_s\krYiyUvvIzmUpqWmoVfwG]rJYyV`~Z`vPkt?ms?`z>]zF^hG_cKfgU^{XdwTjvHd~UozTzvQwyT€zVxƒOx}NpXm€Zx…O€yR|wNsyRtwVvMy„H}ˆB€ƒMqtKquM}…Sˆƒ`~S„ˆT„‹O‰‚U„wbthƒlo‰peŽjf‘il’j^‹u`‡na‡wm}nn{tazl^vrU…pX‚rZrnbsvc~w]€l^dW‹eTˆoHŠrG”xI‘uDˆoI…iJbP’jW“bMšfF˜kNšuIŸv@˜q;™c9œe?¬]/®d-®h4¶i=¾g4µo8°l9žh7®k;®a6£i7¡d6žk7fC—pCŸmM—mCŸtD¨mR eQ§lR§vZ¯pb¥u]¥~e™xb“|qƒz¦z{¤uƒžz‹z‚wv{w‹{€‚¡¤€s¥w£{}¢Šw›e¡‹cŸ€a©Šc¬…l}hœ~o˜woœzdªrl¯nj¦y^žxa±zf³w]§jlœlo¦qt¡okžtf¤hmjo¢tw qwt{’zŽ{}mXŽnY”fXifrh‡mo„ft†or„ft‹`zi~‰mozsyˆdwŒp‚}r„}j†„e‚}j}Šz€uuŽxrˆlt—t}œp“dˆŽry†hw~mu‚|‡xsˆqm~jvˆjq‚wxhstpjquexpuƒvoŒpw‰pzkq€m~{pqvurz}wsrr|{sly|jw}pyxlvƒrz€u~vvŒmˆvy‚†u–ˆi“~`‰hš“fš‘g—k™‹fœfŽ’oŒf–o„‚gˆgŒh‘uƒ‘|ƒƒ{~‡ƒ‘~{œƒqš€y—zxmn•pr‘l~Œml€nj~^fw`pqerzitl`ojktlf|z_xxiwjqck|gk‚\]~^f|WjƒVf[fuaryXm~Mx}UqxTf|QdoRYrE[yM_{NXuUk|DkxHtmH_uJhFelVigTZrPQ~KY‚Mj{LauPlVysRtItrWluVo€Ovx`r|MxƒS‚IzzU†xZ„|Xt[{…TvN~†RtpXyzX~rNw€Q|…VŠvZŠ}ZsbƒmZˆi]„rWyxU†uiŠoaŒri‡t]v[„nq„~l|l_}{^~^{rPˆ}R€pOzu]}kY{nP‰nW]O–cSŽeE‰vMŠsM”kDŒjIŠjLcWŸgR¥iO¢cH§l<£d9œf2©n4¬q9«b6­n7¯g7¸i<¶lAµo9²a4£c:¥_/¨]@¢a=¯[:¦b4eAŸbJ¢_K¨gN«nG£fJ¦fY«qV¯mN¨u`«h\¥kd¥p`ª~w¡w‚¢w‚tˆ£s€ ~zzš||’xx–y€žz‚ž}x£€ž„s Œ} Œi§i~`yl¥Šn¤ym¦xmšsdžmd©pe­mm£u]gb¤ig²xi«vj›lj§erŸlk¤rqœqz wq¨x›s|–w|—„wŒ€‚_c˜eaŸv`˜u]”gjœie˜usoxŠg‚d‰n}ˆlr‡aoŠfvŽh…oŒ†sŒƒk}gxƒr|…w}„tt‡n‚”q€šrt”ex‰h|…m€„k„ysy}o~‰px…vs‰pvƒxlrsoqll~ug{qm|po‹h{Šqxtszj{tm{wrnvnsxwrqyrr~pxwy{vq€{w|wvŠvrŠos‰|v‡ƒy˜l™‰a˜•^Œ^˜`”Œg•’\š‰[£‘c ”nœg–m”‘m†˜nˆy‡‡|Ž}‚‹x{™rœ„t |rŸwtšrv”f|Šks‰lq„gs|`w‚dn|mrwersljvequd}|czvpukmk`|]d†]`|]azYc„cjbmsfru[u€NqOgIgvQZzP[yIWoK[uMYwKdwBoxEjoKbpMcwVhrOakQ[oMTvK^yJ\Rk}TpsLtzK}qMruPowLfq\k{ZxvXz€T}wTyL‚~O‡}Y|ƒS‚yZz^~|Ty|PvoTulLrrMrmYuZh^k]vlb~nY„iPzqTŠtYˆla|kXj_„njzvcwxd~s\‡qWˆzZ‰~Nˆ{O†|M|tQ…oTiL†`G‘aKŽ_M”iBšdI”pG™eR•]U˜ZX’]X‘\Už[J¥[I¤g:¦f0©b-¢f,ªm5°j5°s7»v-µk4¶j9¬b:§_:¨Y0ªd>£e;­h4¯`2¯d;§Y8ŸYB§bI²bU±lT©mZ¬cO§iR²cS¨__¯j`µtg­po¦x~¢rœn„›z„£~„¡v|—}“}z–us’y{ž€vŸwy£‚r£„zªˆx®‚x¦‡q©ƒb ‚b¡o§uw¤os¦jd¤mf¢tf¦ll¦dc«e^´l`«re¬ri«`eªbb `mšoršnw›hr¤pvœ€}”~y|s€}gdŸr]¨mhšr\›q_š`j‹qo“hz†ip’ntmolo‡hu‚q{ˆu„x‡Ždˆm‡q€gŠ€m„}vŽuw”mšfƒ›l„‡aƒc~ynw…hy~nz{ts‚ou‚ssŠsq~nvvyq|nawnkzjk‘duŽqx€itycqubvxiwvxvwqqwwk{xqy|vxqyjx€o…ƒr‹opŠli‹qo“qšŠgŽ‰j”‹V’‹^š‰Y˜Š_™‰`^–aœ‘f™”k––h‹ŸsŠ§l…o“ˆ|ƒ‡{z™u”}–qsšz| h‘lpb€gx‡a}}hvynp~_wokzjemtgl€c}nnqhp}fk€nd€di‹kb€gd€Xn|gr|gjqbwz`t€Nh~KgxI_oJhpPYuUVzOasSWjN_u?jsMjqIhjJgkRYiQdvN]nHUvLYM]vJ_|ThmSmnJ}lHyxHmvJz~St|Y}~NƒzUsxN}vS{W„sV|tS‚rYwnY}t\yf]~v^ygUn]~ocxndzqf‚cdƒkc…iUxr[vqX{aalbgdm\‚{auvp|u^tja€zQˆrSŠ}S„|LŠxEmU‰jV€_Nƒ^T‹YQ]H•h@”m>qF•_H‹iJWUŽXP_FžTJŸ[B¥oF«e7 a1¦^5¬b-°c,¹d8³j0¬b-°Z7¨X+¤S'§_,ªU.«W9°[2¶Y1§`7°^0®]=œiCªeS¯bG¥eL¢eP¯bQ«nV²nU­l]£qa©diŸe{¤kt¢v}œo€ u€šu{˜y|t|•uƒ•w~—usžpx¥s{žw{›†{¤wiª…l¤„a sp©€p­vv­ez©nl©pi¢j`£de£bl®`e§pm®ah¯hp¥]l«\yždr™^~žcz§fz©ct–yvœ~}yt’v„ma­v`¡k_§oa£hnhndzot’ov—rtvl‘hrˆh‚‡s‚‰oŽˆrŒo„“h†”f‚—g‹‰hŠŽt•j…•j|a}“g–d|fx|j|_~„ixrrytwuuqq€nlztesliskmwmhŒnp‹`}…hƒdqlv€gr|nwx{~pnzrlo~rz€jvsm„rg„‚kˆw~qo‹{i’wr—{o“Ž]—Œ[˜‹c“Š^›‘^’•f”˜g••j ‘sŸšo’“mš¢s”¤zŽ“q“p•›xŒ™tŠ¡z~uœrv›kr–fwže}“`ƒg}…_ŠesŠft}dumtrpr}huyp}piyegxmp„jl|qc€gfvda}[bw]qnctndoYqt`kmVnmUfuIc{FbqP]oPbnI`iK[cH]hTmmTccOafG^mNZzJdtP^vNdUcyNa~IdsKyvP}xT}uP|}PuzOsUQ~SyYvySs|\wr^qo^{o^tmX|f`„d_€k`zie„me{bg€eg|f\_^‡k[„fbƒeicdjn|fkwkk|ujupnpwnwk`vi_}eQ~qR~S€}P‹uLŠjH‚_X„dZ‹iS‘_O‡]G‰fM‘jQeC_DŽeJˆZI[HœaO™^DšjD§iB¤n?¦c/ª_1£U+¯`2²^/®Z/²b(¹T(®Q,·X(¯_&§\*¥T'·V)ºU.·Z)®a1¨d> iE kP§cK°fL§eF§eG®nWµh^ªid®gi¦bi©kp¨nx«wƒ£q‚ sŸv¡sq–ls•hw•q…¢kx£qs¢zw•{v—‚syfŸ|k¢yfž~e¦rk®otªho¨bqžci¤`d¨\c°cn¦hr¢mc®ae¨hs¯`}´Z€¬X~­_}¡i¨`¬cv¥jx“p{”pw˜s€ie h^Ÿim¨io¤ukœm~“v€”yy{r™voŽum˜ar‰p}˜hu–v‚{Ž‘uŠ—oˆ_‡’b’”`•iŽo‘o}Ÿd€”cƒh€‚_uƒerˆ_{…^s|qw~ov|go~cnzgjqslyirzroƒqlŠ]}‹bv‡ao…joyju`x‚esum„jt†oƒ†`wwlvn‹‚ok…†{}yt‡x‘usŒ…n‹‡fƒW•†[ŸŠf¢Šb¡”f”bœŽi˜•r—‘yš‘m›˜z©y‘¥|Ž£p–•}…›}§s}œv{›wr—kžh‡›jŒ’m‚—[Š^€‰gy‚bw‡h€|mzxs}zjvyh{fb†lq~dsz`rzeqzcon\orfoifeuV`kdp~`en]ewakx\\rWcnWbdN]gJeeRhcNfcWicLefNgsWapSYkQUrIdySfqTexUkk]mtTdwKmnKnvLyzIk}MztHs‡T|~Kt‰RqŠQn‚Sx{_l{a|mR€pW}lZƒX`ˆha‚a[ylf…d_`av\avY_ƒcZ‰X`~Za{[h‡_fiarnfyugvlb~wjnnitq_|d\~m_xnU~sZ{QˆjF“tPlV‚kW‹fO—dQ—_V‹fQ˜bJcIŠ]Gœ]N”WT‘^Fž_EŸ`D–f@¨i;¦fA Z:­W5¨W4¨P'´Q*ªX$²Q/¶R*¬V °Q*¸\*¶]­V#¸V(»K2¾^6·d8³_;«]:§\?§`J¶kP·jD¨mZ©vR¥o[§ob¯jh¨boªdl¹ey²op¢k}£jy zu¡nr—tz›v~›zŠ˜s†§s}“ju˜sz wg¤xqœvežvqžqo¨hmžfh§el¥pf©`f¡Ye¨\l¯ho¢gl°ku¬dr©ar²a†°Y¤\‡¢f‚¦f~b„­bˆ¤h r~¡n€Ÿohh¯kbªwm¡rvŸz€£t†—p€”v‚“v„ wz›rv—ju’c}’mt›q~t~•rhŽaŒ‹d_‘a•‰o–”k“s‚‹mŽc{Œe{‰kval…dsyfqwmw}cr}dh{dmxlp‚ni„st}ht€]v†ax†bwƒayhr|bt|a|‚myƒb|ƒb†ŠdŠŒi†…fŒ‹q†rƒo…qzzv~jŽj‚fŽyd”~c§}]«k§…h—…m”Žl—’n¡Œuž—|–šs›£p‘Ÿu˜¢|‹¥r©n‰Ÿo‹¡oz¨nz¤rŠ£hˆ›iŽšj‹–h‹Œ`€Œb~d††g}~o|xwmmzkgƒokop}lgw`esdqpbot\on`ir_bkZilTbv_f€Z_yaho]_vTbeOYdX[dYggSalQkdTjiW]iT[tKdsPYnO^uVep\fyUqk[qj]zl\rqMpfIokMvmPkvQp{Vy€I~ŒUw‰Zo\o\i\qyT}lVwhX„bfƒZc|Y_‚`f„ikzfarf\xXdyQ[[`„Vdƒ_d†dc…_cubovgklnksserxfynjvm\vh_j[|nZ…kQ„jNeG“pP“oJcOŒjWaVšcPš`M—TK—YT›YQšSQ˜QS›]Kš[FœfO¤fM›[D¨bH§[>±N@¬P1´V7­J-¬V-±Q(½R,»R¸Q²Q$¶R!¹Y%¼U1·O1¹Q7¹X;¸^?®_5­i5´dC·kMµbM°gX©p]¯o_°oa·nb´jq¯iy¹hs³n{±cs®jmªrt¦yq£ru¦uˆŸrŠžmŠ›i{—wt–utxt ol•ni›skœgg™go¢nb¡oa i\¥bg¢Wa§[d©ae¨fh¥av±^w¯X‡¶V‡©X§ZŠ [€¨b€«k‹ fŠœhƒ¢v‚¦yƒ˜x„sg¤gl­vlœrq¨{t–pvnz–y~–nœv}p{–`q‘h}™o™wuŸuyœl˜m”˜h•h‘˜d™Ža†o‹šu–ŸsŽ™f{•jx‹qy‰ku‰lw‚itdl~anxdvƒcq~jstnwdikuxeyvjtfxybx†]}†ft‹]ugy‘fpu‚Œp‰“tŒŽq†p„ˆjŒŠo‰ˆpŒ‚d‰lŠ„f…„mf‡c”ˆh£}f¤’b ‹g¦‡q¥—f¥—w•r›ž|—›x§¨w ¢s˜›l™¤sŠ¬o‹§s’§q‰Ÿg‚ªoˆa‡¥`‰˜_‹—^Ž–Z‰‰eŠˆl‡€k{†ksg{w_€ma…xZ„iaom\xi\wjdofaw_qzcfqmio`jsifthajmWwc]rajyTgoOl\Wb_TbsLfaUaeUYaXYePUf\YnQXiWSqUZlPamTpm`qf]ueYrfLiuLltPvkVuwKntMz{Ev‚QzOk†Sj|To]wwO}oU{eV‚X`|aczZ\ck…acxa[wae€c[€\WxNXƒ__^p†dbed[j{hnstnzxl„gb|igig{dZ…cc‚kRŠbVgIƒoM•n]ŽlY†lO`RŠ[Z’\T–aVŸcX™_TVX ]M§]W¤_T—fJžhM™gIŸ\C«XD§N>«X:ªG,«C1¡R)©T,§R&°O(¹K+ºS%±G½O ¬M'­N2µM2ºN5½T@°R=¬b2¬ZB³^<»ZG½fM±aY­mU°]f®ed±ik­ge²pjÀohºesµ]u¶_|¹s~¤dr¡l€švx¡jŠ›gŠmv•j{˜nvœoy¢oo¤gr¦mk©mtž]r­gq¯b`¦b\±Th§]l³\m°Uq±Vg©Vk®Yy©S€¥Z‚¨Q®X‰¢^‰¤YŠ˜k†i‹›sže€›{†¢pŠhg°ll¦rq§vz¥ww§tw˜uq”uziqˆiqkw¡gv¡my¤k|¤v{¡zk‡œd—cfœ”j“•iˆ˜h•¢ro„“o‚n|†lwŒl€‰kƒzfvƒdr}hoouwl}|h‚sgt|ipyaqvZw}fy…l}}r‚|j|}f‚Ž\y^x‘or’{x™u~—n…Šx—†uq–e…‘h‡Œg‰’f””i˜Œc”Œjž‹i €d¤ˆhªŒe®‹c­Žm°›m¦™l›œr›˜uš¢u¡§f“©c‘¤kŽžt‹¤rŽžo‘¨i•§m‡ p†§j jŽšY‰c”ˆcŒd†dˆcˆ„g~}i…~_‚~UƒyWynbuibnj_hkYnmaxrkwosrtlnnqiermkbvi_nehplmlbnm^nePpnXioRgfQaeVaa\UkQXkZZd\Vf^VfTYmRejYew_srWkrU`kObkUmkSsgMzjPtwQ~wQz{MrQvv[ryZysMtnOu]T]]rZ`sbQzgV^a~V]ƒZ\ˆaf‚]^zO\yP\[_~`k‡\e‹Y]‚\Ztghyrdlcy^h‚`\„a]xqa|dW‰aV’jYgN“mP‰h[pOgNVQŽU[Š^MŽbO•^O›d_¢Z_¡`W¥VK¦XKžZHžaH¡^G¬]DªW=¡QFªQ@¡C2¤C.¢R*«Q(®V#µN,²K0°C&¹D ±@)®I6ºG1¹D=®@E´HCªV:ªX9¶O8²OE·RC¹^P¹^J´YO»dW·^k·_g·lb¿inºji¼luÀ^|µaƒ·f~±]u¤d{¦c„¦q† a€˜b}•bx•o{“iz™ls¥kk¨qi¥og«`o¥Tf°WfµOb®Ua¸Sbµ[l¶[xªQv®Rs Qq¨Uv¤Xt©azµ^ˆ®^„žV‚›h‰–j‹˜fŽ£dˆ¤q‰¡yqe«is¦oh°~r²rxªst™wy–w…vqœwpšvp™kv›sƒªi‡ n€¡}ˆn†e‘m˜g’œe^‰Žk’”gŒ¢m„›d“^zf‚Œp€kx}at€`vis~s}ym{prhrl}w_‚€\|z\xj‹l|ylx…hyŠ`zŽ\{™dz‘s†”j’v‡‰{˜‹oˆy…p~›iŽ•i‘]Ž_’˜d’‘_”…eŸƒp­Œd¦ˆb³‰a¥Œ`¦ a­¢q §pžšhŸ­g©k£j¦d‹œx•¢qˆŸi”¢f”©mŠ¨d‰š_‡–d‹SŠP„]Tƒƒf‚}X‡ƒ\|†`†€]€yS{yQwnWvg_bsUeoZjobjmfk{gwofizldhkshpmr_slcrhhvmpi`liTmjL^nO_eQc_TTdSY]Y`]^QlXOh[VgYbaUfpUacJsoVinH[ePneEelOmgH}gDreLrfXwrYwQl}R}z^rs]|vRvh^xkVu[PjaPyWW„T^ƒOaˆU]~T^ŒO`ŠR[‡Vc}ZhŒ\i…[b‰Na‚^hƒZqvZbx^hƒ^W‰j^~gXƒb`„i^€a]ŽkUn]gUŽlYm\_O›bT O\’RU—_[™^RiV™]Y¢iZ¢\K¦SC¥SN¥\P«eHªZH¥\H QP›JB¤FB R/¢L1¦V/´^"ªN%¬U(»J+µA/²K3°L<´L1·K@¾EG¸OC»T?®W<®J8²N>¶QG´UH²IU²R[²S[¿ah¾Zn·lcÁoaÃkfÂ]r·[ÁWyÂf…¶ct¦k‚®o}£fŠ£gz¥h„¨hƒj€¡qrœps¢gk oh®cl¹jn®ao­Zf²Qg³^p³_k¹^p°Wm¨Kv®I{©PwªVo¤_q§[u¬X} \„¥Sy¤f„•l…œb‰—_ƒ›h t‘ds¦mq©kq²ym­~o¥z}¦z…¨w‚ž}s©}t§~y¡ot¢h~›rˆ£n‡¬n£u‹¢j‰’a–‹]””\”Z“’]‘—h›h†Ž\‹]’bˆm‚“g}†bŠdt‚g}…qƒzh€tl‰zl‚uj…xb‚r]~{a†}_‰`‚‰dƒˆg^~—g†h|šo€g’’h—t””t”oˆ™u…¡n‹žfŸ[‹—^‡ˆ[’‰[ ~c ƒa¬‚i±^­—^©›_±œd¯¡i®¤]«ªhª«eŸ¬`¤¥d—žf’™j¤d’§k“¥\™¥\¥\”˜SŽšZ†•V‡‰MŠŠNƒ…S€[„‹N„R~ˆXƒ€Uz‚NwRorOjyRdpM`tM`yMi}XpxSk{^g{nlvponhqweqrmwtmrntn^qvZmkNcfS[_HWcNVdZ^^[[^\RgMTiTWfOXaPViRekUbkGlr¸RC±IG³M<§KD¬@D®=E³FM·HP¹Ja¾Pb½[e¾XjÇfoÑ\rÊ_jÉWrºRz¿Z~¿Z|¶`y®f|«b‚®g‡²dˆ³i}±_‡¤e€¢r€žmvml¥jn²fkµdnµak´Ov¿Tw¼]r¶Up¶^p¯]g­Vm®Qo£G{°H€¬Ux®S€°Q{¡]t ]|]‹›_‰”f€’`ƒœn†™r‹kq°cq²lk²pw¥npªvq­zsŸs{œo}©m¯wn dƒ§r¤rƒªnˆ¤q—kˆ¤l„Ÿ_Ž™aŠX“žT’cŒ“q¥b’œV‚˜`„›\z^}’jƒ“awƒZtjƒ}oˆ†^}uh€uiŒ†d€b|yW€Wx‡Q‚„b‘`ˆ‹az‹g‹‘^ƒš_‡hŒ¡d‡ mŽ•{‹™{ˆ”j…£iŠ§n› bŒ¡j‹‘e—c–ša ‘cœŒa¤”f¸l±’_ª•X·˜^¸¥]®¨`©¥aŸ¢_Ÿ°g¥Y¡­f”¤a–¨XŽ¢W’¨b„¬YŽžY‡ Y˜›]‘—_‰”[‡‡[ƒ‹Q‚„TˆŒR‡ŒRq‹ZsKoŒIjJomLlnUlvShrMgnYbu_j‚T^yYachygjjalm`mflsmkobll]qhVppXjlNgbPO]\VaVRcaLfU[sTWkRcgRVoXYeJanTecDafDlnMjiCmg@l^OgeTofYqeZkiXnbQsl]tkUniTrs[qkVxgXuXUvbR†]`ŒSd}V`uT[‚U`XqXmXq„U^‡\eŒUkUj‡Re‘Z\†\d…Xg~eTdF‡_S}YVˆWP‚R^ˆRb“X_”^_šbS‘\`—Y`¢`[šKcšYW£[R c\‹ZS•_VŸbJ§RG­OH®MI±ZF¤UB¶SJ®[F­GB­JM HB¬DC¸H5§H>¢O;§U1¶K4°O-¶N5¹@5¿H9¾IHÈJ=¼@C¾D=¹K=ÀB>½G<¸HD¯MA¹LG¯PQ®@[ÀPb¼]eºTfÏa`ÆXcÂ^k¹_rÇJpµY}¾S‚¸]v´Z{´g|´]Œ¹e€¼_~´[ˆ°lŒ°j…¢m} f}®Yz³[m±]x¹Xv´Mu­Vn²Ww¼Ws³Ws°Ss®Uy±UvM„ J…¸[‚¯S{¸O‚¥]w¬f}¤^Ž•^‡ Uƒ¡e~–hŽ«i“ju©fh±mtªf{¤lm©km©el¬m|¦s|¢uq«hy¢c‚ªi†¥eŠ«g“®m–¥jŽœh‡£`‡®U‘¨O“ŸW–gœ˜j—¤`Œª[ƒ¤dž]}Ÿ\‡—g‰‘`‚ŒZwb…ƒ_‚„W…y_„~[~ƒX|‡RƒŠ]z€W{…SŠ[~ŠY{”]}”b‰‰b‹Ž`’Y|c„£u„¢wŽ˜xŽ r“ j›¥a›¡fžžo›“p©˜l¦™p¤•b£—`¥”h­Že°˜`µ—T¹¢Y¶©b°¡e ¨d®Ÿb®¢d¢§U›ªO££X ¨Uš¢QŠ©_†¡`ˆ¢Y˜W‘“^‰ŒVŒU…ƒYƒ]ŠV‹•R†‰Kp„LpŽRp‡Qv…JoxQu~WjxSt|LoqSp}\_€Sg‡[_‚]Ypg^ohWpjajn_nmjco`[kdafkTifU^_VV[ZY\\Q\bZfVSmVVqV_jW^nUcgO`eTldJp`FbiSffIksFfoIk_Zn_biaXs]YtZ[ud[|mVkfKk^Qs`Tm\_tYW€\\€^Y…Pb„MfvJZuRa|Th„Hf„Mm‰Zg~YcxX`‚\iYcR\‡Xab]‡eT†_KWN‰^P‰U^ŠNZˆK]”XY˜]_—VZžWi \fŸM[£L`ŸX[¨ZT™dW–^SžWQ RSžLI¨IMªIQ¯IG°US°WP¯GI°FE£=EŸ>H­FAµA0«B2¥H8²U;±Q3ÀW@¿LA¼VC¼QI¼F;ÅA>Å=C»?B¸DF½>IÉJBÃGIÂAK¸GK·?]´F]»I\¼NiÈSlÆKaºMh¼YgÆZiÄQw¸L‚´Q}·VxÀX{®c«]ˆµ[†»W†À]†³c‡°b³ez®`u«W{®QªJv¦Jr®Co¬Gm«XxµX²Z~ºPx·Ry¯SužD¨Kz³T„½O¹J~³^ƒ­`† X‹›W•ŸR†ŸZ†¢]Œ¬b–et¨ev§_}¡\}©cxŸhj´ps¬nx£r{­s{³fy³c„¨\Œ¯g“¥d…¯k’ª`¯_°_“«U›¶O•¡U›­WŸ£k”œbŒœZ‡œc¨fŠ¤[~n†‹XŒŽa…”a…‰]’‹\…†i‹ƒbˆ„^~Z…ŠTŠŒ_}‰[…ŽQŠXˆ•e‹g„Žc˜c‚œaŽ eŽŸm r¢k‘¡jž›`—©ežžkšm› m«¢o¤‘iª•j­”f¡’n§›e±–c´Ÿe¬¢\´²Vª¦Q³§\¨ W©©P¨©R¦®Uª­R¥°OœL¥QžUšWŽŸ\”’SŠ–Uƒ‹W~ˆZŠ‰MZ…ŠN‚ŒSo’Sw’Sn‹ClŠPo€MdxYhtSpuR_~W_ƒf^‰W]‹be^_~mYqi^r_hwekitnhike^nbdbgn`]bcTacbV[XYk`^kcaeV\kSZ]_X`Y_]LggMmeIj_KjqRgoMbeIq_OjgWt\PnaXq^WtUYx[Uw[SocRpVOqPOsOSsZ\tZU}SY|T[†U[yISwP\TeuJlzFm|Gk‚SgyZg{a[\\„Zb‰Uai`…^TŠ]U‚`LŠOTƒU[ŽVb‹[X”S`–Q`¡JeªPb©Z_§I\®IX¢PVœYU¥RU˜QS§ZY£TO¬KF¨SU¨ES¶PI±WH¯QV¬KR²BC±DN¢C@©?;­J5©I7³A7©S8³O7ºJCÁK9¿K@ÃNGÃQD¹IB¸?F¶EBÆHR»;P¸GM½DBÇAB²AN¾AN¯K]¿CYÂE[ÌIkÑDf¼J`ÆOcÃUjÈUw½Wu¹Zm´NqÇSy´Q…²WŠ»[~¼a·\Ž¾\ˆ¿f…µ_}ÂWx¾Uu¹V{§Ss¥Lr¨>i·Iz¯Lv©Lx±T|°L|²Tp§Kt¦Ls°N¬MtºJt¸Q|«M†³[Ž¬aŽ›]”©aŽŸV‹¦^Š²Y–q«oz¨o{§by¤iu¥dp®d{·kw®czµl|¶]z½\³\‰§W¬V”¦XŠ®]Ž¦\–­R”µY™´V ¸Y¡¬`“¨Z•¥b†¥`‡¢Y¡b‡¡\‰˜cg–_i‹ƒb‰\…ˆa‰ƒc‰Y‚ŠTˆˆW‰‰XŽ€U†„O‡TˆŒb„…dˆˆf“i‹™`Žšg‰˜e‰¥r™ o Ÿa§Ÿg¬˜c¤¢c¡¢m¨§n©¢n¯™n«a«ži­šd© f¤ªc©«_¤¤W®«N¬¥KµTµŸS©¤M­¢O§¢W¦¤Q¥¦Q“žX‘aŽ£X™Y‹]†ŒT‡V‚ˆQ|ˆV}ŽP‚’Q[‚“Vy˜In”KkMt‘EpƒGd„Si}Tgz__~\V„_Y†Xb€_`bdkbmhyaeznaijeildaakdfmdf`ckg[eca[djWlg]nWa`We_Q^`YY]V[bYhiXffQddSdgJjhHjhOf]OlbMp[Mr`Ys\Xh\Zm[WpYXgP]fSPbRXkMWhJYkK^uQ_{PbTc‚R]{DZ|F^wKU{K]ƒTXMbƒZhƒW]ƒb_Š\ZeR‹eR…hLˆ`R‰[LNO‰TL‹QZŒS^W[—OW¤L_¨F_¯NV«Cd­Ia¦EcžK_¢VV£OR¥NU¯QJ¸SH¯KM®J[¸NW±UO³LN¶HMµLIµIF®EC¹D;´L8´L9±I5­JD­FBµH@¸SAÄK>ÃPIÇTN¾FM½?U½CSÉFQÃ=Gºh‰Hh}Lf…N^ƒRf^\Š\S‚d_~c[zc^†i]†\\zc\id`fbjYhc`_ejeg\Zc^`ZVbdW^jWTjcTka`bUfcM^aQa^[icRa\PciZ\gVe^BefBmbHs\UnYRmfVv`_u^Sj^VuZ^l_Vga^jVTjU\AUvI[mAcoKV‡Zf|LaˆS\zGb|KY‡Ni‰HiˆUkMa‡L[ŽUT†^P‹iZ‡cPˆZZ…`]}[Z[LWPŒ\SˆK\ŠWQˆ]]VbžP\¢GUªUUžQV¬DZŸOg˜Lb–LQ¡RI©TH§KQ²LH®JF©@U«JI­ET²ILºGJ°GF¬?L±C<«K?­B8¥Q;±E0´K>³K8·D;¿T?ÅENÁCQÈRRºLL¼MGÆHUÇ@KÂDBÊDB¸AE·F>¼DNÁ:F½FT¾IW¼<^ÅHbÅGX¾T\ÀQg¶MfºIj³Mo¸Rs¸Nt¹Yv¼\r·S€¨\y³Z®[€²Sƒ¼Y‡Æ]¾Lt¶X|¶Wp¸So¼Lj²Cs±=zÁLt°Ds¹Rz¸S·GuµVªS}¬NzªSu¯T³N…²L‚©S„£Y˜[ˆ§dˆª^’§g•¢i•oz«s~£oƒ§b|¦cŸou¢t¤kŸeƒ¡iy¨h¨a~§]„¯R‰°Lˆ§G­L§Y˜¦V›¯]Ž¦gœ©eŸ«oœ¥kž¯jš¨`•Ÿj”ši‚šg|¡YœS‚™^““]…“]‚•^…‘_‰g‰Že‰ƒ`‰S„•_‚—Z‚‡O‹N†˜P‚ŒSƒ‹_„ˆZ€‹[`šœe¡Ÿe˜`Ÿ›fžl¨œe¯Z®•_°œZ§žd¬§g¥ž`¨žh¬˜n¥Ÿh¨˜h©œ_¥§]²¢\«£_±¡T¢”U¢•QªQ¦•Z¢–Vž—N™ŸQ–—W—”U›–Y—“WžTˆa‰ŽX‹‹]Š[ƒ‘Uw‘[p†Ou‡Fs„Dy€>n~HiŠJ`ˆV^†QcŠMl†UiŒb[‚`f€`exb`}]Z}dZph_gbX_k]XedVX`daagYY^[NZeTQ[YL]mXYlWX_Tca\edS`cOkW[d^Vi`WgWQ]^J][BlZHlWLz_X~bbz]_qbZp[ThUTk`Pw]TvW_wVUFPsE^uB[xP^‚R\†SWˆJ^~SZ€Lc‚Ga‹KfVo‡QfZcŠRX„WUŠdTŠYVy]\xbTcTƒjR‚`TŠXRQOJ[ŠRXŒJ[ŸJX¡LZ•Xa˜ScžJcšGY˜L\O]•LO›OK¡CF¡DH§>J7L¢@J«HX¹MU²JGµ:@³C;§>D£F:ªH@ŸB8¢E8±D2±F7·O:¾FIÆLFÁBM½NR¼LI¹BIÂFLÈGOÄHDÂMM¾JI·PÈCXÃ=T¼JV¹GZ»J`±Q_ºGf±Jk¨En­Pv¶Pl´SoªTm­Y{®Ut­T}¬Ry²S}ÀV¿Y{ºMq³Qu¹Kq½LvµQn³In²G¸Bƒ¼F~ºM¬Nx­By´Qp­OsªHo¶Rv©Pu¥O¨MƒªZƒžX„›Y‰œT¤WŸT–©b•u‰±m‰¤k…¬`{«b¬msžb†£d„šp„¤f{¦]‚¦f{²V‚²V~±KŠ¬A‹ªN©^•¥Y¥Yš°e«c¨¬j›¢nŸ«k›­]‘ b•¥fŠb“_‡“g…šaˆŽe„ˆm‡•k~—\„…]‹’^Ž’\‚™Rƒ”R‹ŽQ|LŽMˆ˜L•O€’Sˆ]Š‰^—’i£Ÿi˜Ÿa¢šc¨¥]°¢d¬—b§—`´¥`±¦^¥¡Z ®hªd§—k¦št©“mž‘hª¡b±—`ª¡bµ¥X¤š^ž”c£—Qª–MŽK£‘M¤™W••X›™Z“Ÿ\’–V——X™™ZŠžiŠ‘Z‡…L„ŠH{‹L{’P„Sy€L€Gn|VvyWmzQb‚TZ~Nb‚JlˆNa`e|ahvS`yX\r\]v[Unlb_c\ejYV`Y]QZR_WSTPZRYS]NSeYXcdQZeQg`VagYflUlb[bUSc\_h_SiaG`WRiUTnULqXXpa[XTy\X~Q\t\W{^[va^nP[qT[~EW€NU‚?XI`zK`}G^|U^ŠTh„JYTkƒWaŽSj„HoŽFnŠKcMP]Z€cW[XaZX[€\Z~XS‚^a}P[„XYŒYR†P[™\UY[”MX“TcŸHd”Qj Q\’RP”MT‘TP•NIšML¨HJŸFGŸIH¡IN£=VµMR´=Hµ4R¨>G³7I¦:L¨>P ME¨DJ¨PF°R@»IL´KM´DQÂ@Q½AJ¶NUÄEBËFG¼HAÃPDÆKOÂLQ¸=QÇ@Jº:TÅJQÂHMÀT¼EYÁFV¿JYºR[³Hk®Dk¹Nj¶[t¬Ww­Ty¥Qz§_‚¯^~¨R…­T‚²N|·Kƒ½HzµL{¬H€²P†­[‹¶[„¸^~ÂR}ÄT}¼DÆF„¾DŒ¾Eˆ®;Š­<†°G{²At¯Lx´N„¬P€²Q|¯I¤X}¨WŸ^†¤g†¡dš¤ižcŠ±p«`ˆ«p|¬n¬nˆ¨b†žhŒž_’ž[„¦cŠ¬X†«R|¢[Š­Yƒ©M¥[‰ Q—”S”œQŽ«e› l•¬iŸ¥e›Ÿdš­g–¥dŠe„¢pyowšgƒV‚ay›f~–b‹a—h€Ž[†ž`’•[„ Y‚œXƒŽK€—]ŒŒR‡–Wz†Yƒ‡e„Ž`›XŸZ™‘U–žX¥§S©Ÿe¬ t¨ªb¬¢h¦[¥«b¤_¢©\§™h“h‘lŸ—i°V©”W´œTŸ]›šažš^¨™_ž›K›”Pš‰J””[ O››_œ k•g—b— b€¡`€‘T‡—T†’D{J~ŽPx|FƒNv„WqUm}`hxUf{`_Z\~Q`T]ƒV`|Ri{UfiR[fUedXUbQUbSTed[]b[^aLQQTQTJUOGK`OGd^Sc]S]ZU`iO]iTbfZ`gXhjLhWLrSEh^LcVVjTXaZTg_YrZXn`UxWTy[MrUSw\Xq]X|P_xEW{GS}TM€JL€HJ„GUS`„M`ŠTd’WkJ_ŒV`ŽChŒU^•U[’RSPPŒZVVY†cJyXH~YT}XO~]Z~P[€U]‰U^†__“dI•f]Šj_•_ZœRVšN\¢YY¡PR™MI›MM˜HS LT˜9M IE—BN§AN¨E±GS¹KP¼ES»QYºATÀAP¾HF¼PT½H[¶URºSWÃHbÂH\¹Pn°Hs­Hp¯Hj«JoªNu§Jw±S}°X† Mˆ¨S§Kˆ¯M‡¬O€¨C…®M}»M‡¯V‚¹Y¶L{Á[ÆI~¿EŽµH‡¿F•°Gˆ°?ŠºA†³K|¬Pˆ±Sx¨Zµ`ƒ¯Q‰¬R±W‹·f‰µh‹¬h’±`šœo£eš¢h˜£a‰­eˆ¬hŠªm–£r”§g•¦[¡WŽ¦\¨Z|¬]z¨O…«[ŒžV†œ[ŒŸT—”R¡Y•¢]• q l¥dŸ¨rš¤t‰¤q} izžd€žjx›h€¡\ƒ¡d~”\}‘Sy–Z„›d’g‹“`•Y ^šS~˜S€•U’S’[‡‹X}c‚‘]„‘X‘›Z™šQ’˜V–œ]¢¥k§n£¬qœ b¢˜_•]¥¢a¡§Xª¡^¤–` •d¤e¯›V®•V¯ŽV®\£–Z¥S¢˜JœO™’T T Ž\ XŸš]Ÿ˜l–eš™[’•m‹—m{š_€˜Z€”PzC|ˆ>{…Hy{Vo€Zqz[l~_cz^T|aV‰PV{P_zT\vT_zSbqSfg`[o]alY`nNb_Q]cYYWaPWaJ\SGUUHMcOIbOO_SU`XVb_YZZPYfVWdKihToeMv]St[Hh^HfXPb`Yg\[vW_tcUn^QndQpdSsdMvlYoc[tbO„OO‚HS‚NO†VL‹YR”\R‹MRˆV[ŒNc„IhŒM^DY‰HY—VP–RV‘WSW\„VX…aS}VQ†[K„bI…_S}]N‚US†]`‹^cX`‹[Q’eRe`W[–VZ¢QWŸU[¥LT›FKšAHHI›GO£9OšFCœFB DHªAQ©9T¤6G£7O¢8M¤GI¤HP™KKžJF–RJ›LK›KU¬PS´CM¼?Q¾F]¹C^¶@T»MW·BP²>T¯CN­IN­MN´LU´DV¾DN»KFÄKJÄHQ½SZºU_¹Md·Ki¼Na½Aj­Ds¬?k´IhµKn¦R¬PŽ¨KŸK†G¨N¤Gˆ B~§Iƒ²K{·J}¶C‡¹I‚ÅY‚ÇZ{ÃPzÇR€¿V·J“¸E½Cƒ¹Pˆ¶MŠ¸R‚³Q‚¯Y±d…¯b•¶W”Á]”»e‹ºjŽ¶f§^¤d™^“mœl–­i®d•«qž¨l› c”¤k’­b›¬Q†°]ŠªMˆ°LˆªQƒ£Z‡£YŠ\—‘U›ž_‰•a‡Ÿp„dŽ¢d£˜ge¡c„§jm‚›oy©b¢kx§e{˜b€“Z†Y„ŸX†•ca{¢`†šU†¢Lvš^‡’X“X•‹T“~bˆa…•Y‰ZŽ”NŽšX‹_ž¢Z™¡[š jŸ¤a¦¦g¥”i¦ž]£¡S ža°šZ¨’d¨‘]¡•b°a©’U¯‡^«“d¦ŽS¡•X©ŽX¢•S¤’ZœƒV¥ŒVž‹\™™_–‹m•j‰‘h•–n†”nv\}™dr˜NuˆGn‡Th‹WtXe\oˆVn~Y[~]Uƒi[„TYJb}X[€S_pNghKfcV_kb]aRhaVeXT[bRLZ]OPZE\Z@KWJNfPO`KMcQPbOVgPSiSV]]K[eQ]fMt`Fs_Vs[WjZUcaQmUSn^XwhPg^Pk^SsgOlbRwaOp_KsaZycSwdN„]R…QJ„_F‘[RŠMQ‡GN‘NY–GX’T[“R\’L[…UOWW™VX™^N–bQ‰^PkOƒfZ…WQ|YKzeZ†eU|bT‰b_…^]Š]`—ZK”]V–^T˜VV‰P[“PU¥V^£NK£IJ•ND˜BM¡GJ¡4G¨@@¡HE£AL¤8WŸ@Q›>R£¡E‚­E‰³S‡±T~½U‰½M†ÃU‹ÉO‚ÅX{ÅNƒÆOŠ°K½Q‚¼P€¸S…¶P‘ÁTŒ±d•·`‘²b‹ºfµg’Ã^—¼hµjšµh’±cœ±Z”]Ÿ™h¢n «pš©r—°h¡¯f—²p™§i”¡b˜¤Y”§S‹«[Š©W‘ K›¤N”˜P—V˜_‰–k‰p‚˜e†—r””q—™k•œb¡\Œ¨g|¦c„ c‚«^­iy gu£h~šc’a•]‰œV•_—Y‚£\|›U}•a†•\Œ‹R‰QŽ[ˆY‹‹^’ƒZ•Š[œŠY‘‘Y›S”™YŸ¨_«¦a¯©g©ž]©—]§–_°•]¬”U®V¤[´T²‹^¨„`¯Žf«Že«•a¨‘XªŽQ ’[ž‰^›~[£„a‰a¤‘aœ‰f“d‘‰e‰“_ŠŽg|ˆkz‡drŠ^w‚Ql…Zn‹baa^_iŽ`fcY’lT„gZ‡fT‡UY|MWrTTvNXySblZllVg\^b[]W[ZZ_VKX_NV[KTYQR^GOjFNeSQnOKeOMaNSiORhYH_[LkUSgZLqdRs\Vi^QjZVnSWrXXsgSkfNmgYucYogNniRjmStaRseUvjY~gV_QŠ`IUHIUJP’EQ–PT”X]“OZ‹Z]VR’VR•[T˜\TlQ‘nRjZ„]V]Q|_Qe[Š`b…jYŽa`…hb‘lV’aT]T“_VWMYOšTU™JS£IV¢DL¦FMžCH¥CDšT©6\«;g´>]¶9d²A^µGdº>c´CY¬CYµATµCP³?MºBKºHR¾MK½NQ»KS¯MR©SM©RX±KVµGb¬>a¬El£=g©Fl£Mm P}¥D}œI‰œF“G‚‘Ež@¬>Š«LŠ¯R€±L€½M¿S¿Y¾NŠ¿RÄN‰¶L·Jˆ¼VÁ[†»VÂ]‰ÂbŽºf˜±_•·f“³d¿j¼j™¾m˜µkœ¯d±b’¯a•b¡cš©mšªuš¯lš°n££wœ¦pªvŒ§`—Ÿe‘¨_Š¢[ˆ©P‘¤W˜˜C——[•”`£—Zoˆ’_Žk—™nžžq¤g•›b”§ežot›oƒ©r¢a{¨ds•lƒŸ`{a–b‚¦d‰¡Y¡_‚©Z‚¤Xˆ¦UwžX–W‚š^„ŽXŒ~_‰W‚“Vƒ’N˜—Y‘–P˜œ]™T’¥V¢œT¥¢d³œf²˜X¬“U¶žP§’T­‡X®T«N¢‘I¶V¯‚]´Žh©•]§R©–Y©‹U©ZŸ…b ‘d¨‚_§Z‘Œf’ˆ^ŒZ–f‚‹Y}_ƒ†ixdsUv†QqwT_„fWY^c^ƒeg``‡bPj`„aWˆYMu`]wV[mXapZ]i_\gZgUYbTTNSPU][IYQHOYTDaGOWGGZNJlQPbPVcSIdUJ_NSfNSbXOn_KkUQrdUsh[u]UgYVvRNnXV|[OpVS|aVx\_tXUq[Vm^WnaXvj[}jS‰[RƒfD†TT–HE“LI„MT•QO‰SL…ZR†ZR_UŽ`K’dKWL˜cY™cQŽganT’l]Œg\‹^S‰[]Š]d~h\{adŒqb[V„]O]T‹^]_]–^XXS•OUJQ“BLœKEšAF–=@’7N”6D—>D¢2W©?K¦DJ¨W1LŸ5P;UœCZŸEe˜Hb’=b¦IZª7T§9[¥K^´I\µ8i±D^­Ec³Bgº>^¹9S®EU¹GZ¯JP±CL·CS¾EYÃ>[¨BT«N]©E`©Nc²S^­HX©Q˜KJŸHO¨;U£3W™Z¤?b I\¤Cc¯EgµEm´Ge²F]¯9Y­Cb®@Zº=R¶KX¯>T¯@V¼?\·ŽªE“²S“¯Q‚«KŒ°K­JŒ­M‚­Oƒ»Q‚ÂLŽ¼W‘°VŽµY~³XŒ»]ˆ¸]”²U˜±[¢¹bœ³n˜³h¶p—¯p‘­f¤µe¥¶h ¦i¢«^ ®\X¨žU c¦©e˜µa“«l“¥m—v’ j’¥l•c•ž_•¨\•¬`‘ªO’¢Pž^¤¤\©™c¦™b™›_¢–f¢›p¡™kœ¢rŒ™oŽ¦k‚£i€ o|–vsžg|šebt›aƒ“g‡¥n„ j†žkŽžg‚¢^ˆ«_…žY}¢X†”aˆ‘_œcŒˆi€–f†\ˆSˆ•R‰¡TœQ•›H›«Q­¬XµŸT¯–W±Rª”T±“N¯‰L¯—P´…A²‚H¥ŠJ¯’U¬“Y«“S¯‹`­•a¯•Q¦ŠWªŒ`¢„b©[¥c•Œeˆ[Œ‚f—’[•„[”‚_“R}“]vˆVo‰Qf†X`„Zf†\Y‰hS€iU†[T\^„_P‡iS‡eS{l_uXVlaSk[de\VkbYVSQQTRMZXHPOP^PSULTK[@VZN^OJaO?jHJgPL`WObWHoKJlZDuMJj]Ujb`vaXo`NoXUkWSr\[v\Rn`_€QZsUSMV~YUy[ZwRZ|_P‚YR†NK‡`C„^A‚ZIHUŒFTŒQKŠKO†OAˆ_I|YL^N‡mR‘_JšbEŸbU–cQ”pW‘fXˆaP‘m[ˆ[ZS^‹^Y{gaƒg[’jXŠcQ~aRTa•V]SRYM”MJ‹VFSM‹J?KIJE“JG‘HMW˜7[›:S 6V•9YŸG`=ZC]C_IV”EU˜HbœLX¤Jb¥Ae¦>aªD^«<`µXŽ@O’EVš>[™CW“Cc˜C]Œ>_šAe˜FY‘MX˜Qa’J`œI\©Kg¦y­Fy¦B|¨H}§J~šL˜B‹•<‚›?ˆ J•­P‘²L·SŒ¹^’®Y“ªX‹®K„¶Mƒ¶P‰°R¨]Š«WŠ¥[…§g‡ªa“¯f•´Yª]¢«`¥¦fœ£bœžZ™c©fª¥e¥¢c ¯d¤­`™¬P”X¤¢Vž«V™ž[š­a˜¬kš¦b£«p§±s ­p— m‘¥]™¯dŸe¡©cž¢^ žXž£W›•P¡R¡«V©¦]£š\¢šlŸ–q™m’žfƒ¢h}œuyœjt“g~“i†•cƒ–hx¨n†©l~ªq„›rz£l‰œg”eƒ›e‹§gˆ¥h’ hŒ˜\€ŽW€–i£d‡šN”™[’˜Rš“U˜V¡žP­—HµœL±›RµL¼ˆX°šX¯O¸ŠK®…C·…E´ˆJ ˜W£S¥^­‹N¨‘S¤†R¦†]ª_©€d£W¡~h–€^‹‚h”…Z—d’Z€\’[‚…X{…bzŽ]o‡\bƒTdˆ_f…`Z‚pUzhN‡eO}cR]V]^zgWybci]]qd]f\fRaZT\]U]UTjTP`WL\QMbSMZQO_QGQM=_PAhQI_RDhNU`YNmNSbPLlMNq[ZlOMvTOl]Tg\QrfWf`TbeOiQR|YH~MGŠUK}MUyKNƒVN{SG‚NN‡YMX@RK|ZR‰XIPN“FO‰U@PE“^B‚d?lG€kF‡cA“tPvP˜fM–gW‹iQ‹eUZO”]]ŽWX‡aXUX†eW™ZIŠVWŠTY’UR˜W_†XLQSZB†T>…]K„^HŠW>UCŠYCOF‰KE>QŠEGJPŒHYšCW˜>OžF_”F_žFWž·H²ˆE®“NºV¹ŒO±…W²‡N­ˆP¦‰C¤N§‘S«“I£ŽO«‹T­S²‹S·„a®c |Z }Xœ€^a”‰c”„]ƒ”Xƒ–\v–\t†ZkŽah’esˆWm}[j~]_‚kQwtQqmKoeQ|eVz]W€c[zcWmb`c_febcZnd\ic^^`X^`UjTTdVCeMBgP?hRBgIDVOCaNFeRL_JJcOT\QV`PW]Y[iTUkVNnLLrNYlSVxZQvcZvdZgYRlWKzXKˆ\C‰RGDG…GJwHFzVLŠSI‰_E„\@‰X@~OI‚PM†LH•HBG=”RA‘a?‘f?‰]@†a>gD”oF–jM“iSŒbaŠe`‘^T‡WR“`Yd]•[`Œ`V‹dU—WFŠSE†WRQQ‘WU]V\QˆSANB‚Y9‘X>—WKYJTJPAˆ?Gˆ>I‰?M—EU‹GUGYGVŸLd–Q^–L`–E_—GfŒG_…8i•6o“=lk™Fo =o¨8n¥Ch¬>^¯;e±FZ¢I]©8]¢4c§?dŸ;hª?t©Hq°DtªAr§>i¦3m¤>nŸCo§CsFl›;w¡8v“9z•@‡”>ŽŸ@Ž©L”±SŽ¨L“¥UŽ¡S‡¡P‹©M‘¤H•¨O‘¤X‚¤T£PŽ›R…X‹ŸYš­[—ª_’§jŽ `Œžb•§f•ªo¢«b™a——d¤ŸX®¤T¬¤V ¯^˜´W™d™¨d¤©i˜¢h”šg« n«°q¡®r «n £q¡ªh¡°d¥ªh£ [¡¥U¥¤a«ŸO™I¤ U¦šP©¥X¢£bšœe—™[Œ‘kˆšn’¢fƒ’nx’i{špx–js›mr£r…¦t{•o£wy›hƒ›e„¦c„žb£dª]|¨`|¤b…ž`‘d†Œ_ˆ‘a’¦U”—Zœ‘S˜˜E–‹R›‡A£˜D£–M¦Ž=¬Œ<½„I´ƒH·@º‚B¸‡K¸I­~K´ƒB­Œ@¥ŠS±ŽC¦…I·†F°’Q±ŒQ®†]·ŒY¨‡Wž‡g‘‰X˜Š\”b”d’_‡‘`‚…g|ˆdl”Ul–_rƒWf|[l_hxd\tsUufTslZ~oX\_th[ke[ggUnjkflbbhjYpZQbfTfdYdTWpRVoZNh[ClNH^PI_MF^LQhKPiRQcSPgLQdVZmU[h\XlVGvVKjWUjHZwPXveSj[YnQJqTDoXCzQKŽKK~LK‰PKƒKS}\I…QH‡g@SB‡\:~^M†MKTFRGŠV?P9˜P@[FŽfHŽi=‡a@‰hK™oJ’i\˜`^Ža\…c[‡SM‡dY†hZ‡^Z’WXSKžRG“QGŒXH‘OKŒ]R‰RP€TAˆZFˆO;‡S?T@‰[AŽTO‰VO’KH‡FEŽFMPU‘IUTU‰P\”GXšK`—EeR_DqŸAl“Dn‘=s”@iŒIg‡KyAp—Ai£Ic˜Dv›Ju¨LtœEc >^©5h¢=`Kb«Ah @rŸCk˜:gžKy¥=l©7x£?r2m¦/m›1s™CeœEu=v§9t›9s¦:|•9Œž7«=‹§A±O‘£P”­VŽŸU’œU’¢M‡¦JžW†¡T¡R‚¦WŽŸ`Œ \‘°[²kŽ¬d•¬l†¥j›¤h§ež¤iŸªršœp‘¡g¢¥T¬¥[­¡a¢©[¨´N©m’¥`™ªj˜®cŸ£g¯¢b­¨c®©m¨°pœ°pœ¬s˜©d£­]«¡^®¡W±š[ª U°—S±šQ­S¨£N¥¥X¢ W—¥c‘˜c–œfŠ›^‰že|˜]vžau’pœrx›wvt€t{¨qx¡rzk†g~¢_‡¤d‡™a„›eŠ d˜g{Ÿi€•h‚˜_‘œ`˜žU’ŽYŒ„P“ˆH›ˆBF¬‹H¬…B¶‹<¼…7´€B¹†D²€D¼€L»}Gµ„?¨D©ŠF«J«~P¨‰D±ŽQ·…Q¯ŒY¬‰V²‡^ª€d¦†aŸ‚_“…aeŽ^Ž‡g€…_€auat‘Xj–dgˆ`hˆngnhxw_xn^rgSkoRur]vkXqiXpvSml__rcUq_`ga[ifYoZRu]WkbWlgIs[KkNFiRKaLIdKFiUEaNNfGNiNQrPQlSKuZKrVQjaGpZNjVWqNZwZVxUMvOJuYP{ORrNFxE@LFŠDD…GC‹JF†STŒaK]D„`=ˆWC‰RKXE…OJ‡WA”W>“O@”V=ZF„Z=‰j@‚pG‹iDŒbR“gT˜[V[Z’^]‰UVŽ^_c]XP—XOOV”WN•SPˆ^A‹U>„TD…TJŽO@ŠM=…QEW8‘X<^ISH‹JQŽNK”HM–PD‘[LUW•R[‘OY’Dc–E\Ÿ@h™Gg’8m•:t›5p?n‰@kˆEs’;j’cJc¦Dg£LhžBoAz›Ew©Ao§AxŸ@¤2~§7|1qŸ,p”4h“1g™:o˜Ao¢m˜7hœ2mBx C‚¨@‚³It±H{¢O{ªJ~°GžG’§AŸPŽ•V…I€ªY¦U‡ªUŒœd‡œZ«eˆ³h­`—§c­d¦h“k§l”ªdš®h“§a ªY®§Z¯©eª³Z¨¨P¬o¨ªož©mœ¤t¦›q«¬g©¯m¥¨y§°k­­d£¯b–ªp˜¯q™´n¡°iª§c·ªa¸¥\´¦]®«cž°k±d‘¤a… o…™a…•Y…^•edzŸf~•fz^{›mw™j|¡c‡¤jƒ¬k†¯Z†¬eŠµe’¯d¨j‡¤a~šd•^ƒ—]ˆd£j˜dœ“dž—]•ˆY‘‰N”†L¢ŒR¬‰Gª†T¦‹R°T±„G¶xM¶C·ŠM¿|M¸|L¯„G¨ŒC¨B¤†;~Cš€@—†I£…R£Už†S“„_—Žl—g‘ŒX„ˆZˆ“X’cƒf}‘Zq‹Tk•Za’bkŽ[l[b†lX~qf„qb~o^{^WvcUknZeg`jkVlsPdsRcnMYePNcYPgYNtUJsUOqWSr^QkOChI?_ICVQBgONpERtCDuIEyFKlONmLKyZXmYKhPMoIPoNYxWZyUU|QTpSYl]Zw[IzNGƒPBŒS@P?”QQ‡VYŒSP‚K>ƒS>…`7€]F‡bEŠj>„c=‘W>“[@QB‚QF…VT‹gR„cOcD‚gRˆ[OŠaU‰eL„mV€hV‰`NŽcT’l`ŠhZ’eUŽaP†]QŠ^TƒaP{XBx];€`EƒV:€S;{IG€MR€FVŠMJSHƒHH€DTˆIRLQ€F[SS„PZ‰Ng˜EbšF_˜IdžLa™BbšNe—Mr“FqGs“OožHižDn‘>~…kGZA‰Z?Ž]@Šb;^?{OO{RSƒfX€aS]FƒYI‚iJ…ZEzfHŠfRˆnL…fRfKŒgYŽp_ŽgXŠe]ˆb]Œ\U|^JZIeCfN‡aL„\FO=~LK„SH{PKVKZP…RS…AI‚IQ‚HQƒO[PT€UV‡Sf•P^•Rl›FdŒG^šPkSo—Mz‘Km™Rg•Hr”ApŽ:„’E„¡E}™Lx˜Ks˜Np¢LmJo•Io‰Ru…LpœNo›Kz—Epœ0u3|•<}§:„(‚¨'†¦'š0x=t‘:{šE¡4w¥5{¡5|©;ƒ¤{AA{@G>Nƒ@QsIXkKToSQoLPuPYmPOxVPnGIxM>w]B„\K„_G|RA}TCƒMJŒGF}QG„R9|\A‚^=ƒd@Šd=Š\G’kK…hC†`G‰YIXOzcQv`SxZUx]E…ZR„gK†kD}`SwkMydK„nW‹zT‡|M{XvN‹u`‚c`‚d]…sK„kP{kO„cVeQ‘`F|RL}VAp\K`K}]Mˆ[_|YS…SW‚NM~[R…NY‰T[‹Ne‰Wj‘ah’T`ˆ`^„Xh’Xh”ZtNkŽTlŽUzš?|›HwžIxš9Š‹D{›@z¢Hp‘En›Ut–Sl‹[u“YuR’I€‘Ep–Cw˜B}Ž5v“B˜?¤>€9…¥/€›7„8{›8‚“=‰–C‹¤6Œ¡7‡ž;‰œ8ƒ§9ƒ :~§=›BŽ§A—ªG‰¬LƒŸR‰¡Yƒ¢\‘«X¥a„¤`\†—bŠšX”¤X‘­Q™§]“«`¤\‡ªV•°]›«X•£_œ§^¤Ÿ\¸[§¦d¨n ¬d§©qª¤o§¥u ¬jª«r™žu˜¡w”¥mš°t¥«q¥¯j¬©j¥¤k·®a»·a«²f¬µb«°X›®eŸ²g–±e¨l‘›^Ž¦Zˆ¤`¨[…§]}¥S…›d†œdˆ™]ˆ™W‰œ]‹«ZŽ®Tˆ¨T“±]–¥[‘¤j‹¢h–£iž¥e˜¡W¡šTœ£V§Ÿ^¥ž[§¥UššU•‹R–O“M …Oœ„[§ŽX›€VžƒKœ‚Q¦P«zT¨{^¥‚Y­‰L¨I°@µD¨F©R›~Sš€DŒxP^™{\’ˆU]ˆŒh‚’kvŒg{do–hpŒh|ˆpzŽmk‹ni‰_a…[Ye_}b\ta`j]anb\xcgt\fm\k]S`e[U\[T\\SSbQWcUScLMlO9gG;nJ>gB:eDEhGFhK;qG;oI6yH2tA6zL2oG;yE;w=K9Tƒ=P„HWwKSvQWvORnQ]sQVvKKzJBN8}V<ƒWF…RF|QD{OD}NB†JH‹JH‚T;Š\F‡[D_<‰Y?„dKŠiKiKiD~^OŒ\R†WS\Q}aQyeN|kW|cO|bM€hO}dDƒdEuQ‰}^‚s\zwOtkL|kVyeRlV‡qW}xK}uO‰`V‹ZLˆ`P€]OrZKn_JpVNr^N|XWzXOzOQ~LX{QO{U]ˆJZ“X]Œ[e“`j\`‰de€^a~caYe’Ym–Xq•OuŸAv™HsœAš>{=‡’H‡œHw£IlšOo–[u‹Un’Zy–W}‘Mp™Lj–Dl•Iu?o’•£Aˆ£K‚¦Wˆ«TŽ©YŽ¢Z‘ŸTŒ¦T–œ_’Ÿ^–žV›¤S¢¯`œ´^˜­d‹§fŠªc”¨f•ž^”¤X§ªT¬žaµ›\¬gŸ­j­¤g¥¨k±°b©£c««o¡¥o—¬j¡£r ¬i«¤t¯¢m¥°e®¬a²¸]º®f¶¶g¯·c¦«ZŸ«^›¨n›«n”©n•£b‘¨N’±XŽ§S|¯]‰¤Nˆ¥^‚ž]…”a™U£Q«^š©S˜¬S‘¨`Ž²`­`›¢p” _™œb¤žZ§ U§ªXžŸ_¯–`§œW¢•\”ŠV¢‚_œ‚U¨’^œ‹bš‘\—Š_š~M¦†K¢zS°‡W¬~Q³†a¦‰]©W²O£’PžŒG Ž\›~TšzN”tPU‰‚Xƒ‚QŽ‹]“hˆ‘iŽ[{Š^zŠ_j•gk†qvŠuilh„ob\_Šgg}c]ud^o[nrcpqVoxWerangVfWOQaUIXZSMWMHUIV]MAiFEoDa?=^I9lJ=lD1i?1m>1n=4l?8~B?v;M„:K|@PzDMyNMzRN|FEzHHwMZvTM€DJ{RJZ:†LC‚JMzH?ˆRE‡R;ƒJ?„U7ŠTF‡Y?ˆZC‚]Ag?ŠjFƒaH‡lG~gBŒiCdI€fI„`NzjNƒbV~dHkQz^V~mNxpJwhOzqO‚YtqMzqRlHxmJrfU€gXznK…~N~sQpV}iV‰jW{]Gz]GzYRtPFpVGxYTzMXnNV€[TsRYzX`K]†QZŽOaˆNe‘Rd‹]b~VeŠ\bƒ]oˆVo“Rz›Um£PvŸE|’RtšC|œ>„9|™KzJkFl—Ir™Zl•Pxš^vžXw›NiœGw‘Hv•Bs˜@}¤B|¨;‹¡A„˜9‚?zŸA‡§0‰Ÿ7”ž-ˆ“0˜>ˆ˜:† 8’œ<žBŽšE†ž@‡¨6€£7‡ D‹¢C‡©M…žL‹§X‘˜[•UŸ]”¢S‘ W•¢[•¤WŸ§`–³cŸ§_™­_ª^—¯Xœ¨\˜§T–®VªŸ\¡žc¨h°±j®«n³³e«ª`´¨i®£p«¬w¤¦x«¤j¡¬už¯qª£qª§d­´e·²c³³[¥¬Y¦°a¦­\™©X˜§e«\®a®X†¸O‹´Yƒ­R„¦Uƒ®T¦Uˆ X‚UŽ˜Q JŸT–©S“ U™¦Z”¢_›©^¡g˜›b¢›`§˜c«–[¡¥]¨ \­žg¨¤b¢œd¥—XŸŽZ¥‘b£Žjœ†a‚Xž|W˜Xœ€S¢ƒJ­€M¬†X¬Œ[¯[¶•T­ŠR©’Q¤ŽSŸ“W—‹M—zJ‹zUƒ~RƒV„„W…Z„ˆ\‡]v„`veq“du‘cj‰opkp}qn}womg~pi}cazd^}VixYb€VlxNovTgfRdbOQVYLLVLPTOVXMKiCKiJDpP9iM;iI5dF<^=>d@/l?5nE7gMAkK;nB;rB8|=;=D|BH„9OˆEQƒDKOE†HIwJTtNOuIKvFE}JH~QB~QD„NHH?†J9{K9W3‡Y8X?ˆcAˆ]@ˆfM‹jN“aK‰gJlF‰k=‚n>‡fE„kFkO`X^PyjU|jMrdRseNvmNuwI‚Jy|WouLvvHptCtkN|rHziP~jU†rW~rZwMwxU{jMqhPrYOpQTsVNwNLtTKpVIs\V|V_yXWxM`ƒR^„W_OjƒIn‡RbRd‚M^ŠYgƒXm‹Ru’Vx‹Ur•MvJs“QxžR{™A|‘;y=o=g“Kl¡LjMl–Xu•Ym bi›\hŽLs’Mx™Fw™Izž>z¡5‚¬;ˆ©B}¯7‹¨;Œ£8˜™/“”9ž—1›˜:’7Ž—C‹š>–ŸH”ŸA“™Gˆ¡; HƒEœA–§I‘¢PŠžT’¥L—žT‘Ÿ_˜£X—¤ZŽŸ`–Ÿc¢¨bœ¶Zœ²]™¬^–³\’«Q¢W•«[œªUŸ¥_£ f¡`®·m©°h§°`¤ªh§ªl¥¬jŸ¢u©v£¦g¨¢m¨¦r¬¨l¬²k³²k«ª]°¼` ¸Z˜­Vš¶S’®bŒ«dŽ¨aŠ²]‹µPƒªT¢\ƒª_~¤O¤R|¨VŒŸX‚¦^‡£]’¯RŽ¬^‰¤T‘®\“œ\•­c•¬c™®\™šf ¥^Ÿ›]ª¦b£«c¡žf³¨c§—g£œd¡[žŒWªcœ“_¥ŒU£”R¥‰S¥]¥Z°ŽK¥‹S£ŒN°•_¹˜O³“O¨R«‰GŸ†X ‰L£ˆHš‚Q’tV‹wZ‚‰S‚~TŠ[}UƒX„‹cY~huŠpn–xf“sdˆch‡unsg|m_zdYr^[}[iuTjyOdvP^rXbi[X^X^QYLTbGQXNUh\PqHBnMvI/z<8uN:sEA„CFzADƒ@@‡1EŽ@IJ>‰IH„JH„CBvAKtEJm@4~S:vQX3gC…rIcFŒ_K‰nAŒ^DŒa={Z8€cI~iDƒmKƒbW{`IviOtfCzhSplB‚sKtM…†KtrHrvRvvIniXwoYtmN|xRzyNvTwmLtoNtlTodVvZNzZNv[Jy_XpVSzVKyaWrbQzW]wVcRgŠ]e€Id€Ln…Zq†Ka†P^…YrƒTpŠ]u„K{’Nr”J~“S|ŠH|’Ky˜E€’Gw?{ž?yKg˜Uq›Tu–YiŒUp‘Ql™Xh—Ow”KsJ•B}’E…–<†£A‰«HªA‹¡7’‘0‘%–’(Žž.—’7‹š8œ7ˆ™CŽ =”š;‰ 5‹>~›C¨>’¢@Œ¤E•œW”žS–O—¢[‘¨PŽ¦T™¢T’­X™©a•¥[§ŸUžªe—®c•º[™¤`®]–£`•§Xª V¡¦d¨]±Äd³Áj¬¾c¦¯m¢²o¨¦q¬Ÿ|¥©zž§t¥£|¦£{¦¥l©«b±®b¥´a¦³[¦ºe™·a—²X’²]—¶_Œ¬Vª^…¯W‡¯Vƒ Vž]‰£]… V‡™UŒ–Y…¤\”§W‘¬\†¤\ˆ¬Z‰žZŸb”°Y•±U¤¬R¡ [¦ž[ž ]œa¥ l¨ªe«¢j­›c¬–Z¢–[¢“Z ‘[¦S«‹S®”P¥Ž[£‡[­‡S¯ˆX´”Xª‘X¯‘[³•Q®”R¬‹W¥ˆLªQ ‹NŸˆH¡‚F’xVŽ{\Œ}V‚|_~ŒUyV}…TuŠ_~”]ƒˆ`zŒem‘pkjl‹df…cg‚oonlqr`arifu`crWVcTZdTYldcpa_aU]]cNfcP^bQ^iZVnMKxD@j<@mCDkO=jJ?qOAuH9K4yJ5w=;}>8}ME~KG{=F8F~5@…8B>8ŒC;‚76;;}E>A@x?7mH1rI4~JB{M?}LBƒP…hJ‹`LŠfQŒmLŠbO‡_C}X8wZ8|k@wdQylRsfF~^B}_Dy_J„tH€zE{{?€„D†uI}qOtnQpuQywNzj[w{Tv|N~{XzlSvtP|lL{qXufXqiWpaTm[PuXTwX\o_SmaexVe€Xg{]_y[[‚S\{S`xZs{Lm}Mm€Mr€WwTl‚Lo…LwLx‹LwCy–HzGz™D€™A|–8p™@pQuŽ\zŠZsŒ`t”Um—On—Ql˜Oy•E‚—Jƒ“P€˜G£M…£B†•6‘“9•’+’*”-‘—/-™0—š1Ž?‡’?œ@…•:zŸ:ž@~¬@ƒœE‰Iˆ›V“›S˜œI™ŸPˆ¦Gƒ J‹ªY‰©[’ ZŸS §X¥¡b¦«_š¯Wž¯a’¬fŽ¢^” Z£¬W ­d¨e§ºb®»k²²a«ºb³³q°²p·´y´¨t«¦z°®v«·{³¶m¦·[£®[§²X›¿`§¹dž²Y—±Sµb¸lŒ¦l±j„¥V‚¢V{U~¨\…§R¥P‰¥`€›Z’«bƒªb”°S† [Œ¢U‘§UŽšL‘¥^Ÿ¶[›®X¡¤V©¥T©¡X¯¥_©Zµ­a¶žY©¦\³¦c¢žZ¢–a¢‰Y –_¨”O±“Y­[ªRªƒW®ŒQ¥Ža§ŒX±’R²”^©’Q­ˆVžK£ˆK¥|R’‰H“€SzL†y[„‡^~‚Ztƒ]y‰Os…S}‚Uu•_~‹bwƒfvˆrnfkƒguynvqglmfhs[hdccbe`obhbWdf[iki`lcblbZc\b`_][fWTm[WjYOHK}N=qAN|L

    AqJEw@>ƒI:z@=yM5‚B:}DE}A?ŠBN‚5A‹6HŒ99‰63>0‰<5}57??€<8qE/r9*tA-t?<{?AJD}?:lF+sM+~`-}W+€_4X-…d=„Z3‚l:‚gJ…eN`H}hEwgJvS>t]8~aC|eDtmKwlFx^H}`BndD€nK„w;ƒuFw…Dƒz=„|AlGvn[{o\{oV{x[p€Or~SzsJpjO|lWu^Tw]Zn^VuVRp_O|eSj^\hYWv]as`]|Y_t]_vY[nV^yKmuR|tYm|Uhs\oˆWz†Yv…Vy‡Mu“U†šSvIpJs™Ju‘:s•E‚‘>xŸ>y‘J}‹[s–`u•d{–Uj—Lq–Ns“PtŒK„˜FCv˜EˆŸHŒ§?C0›”-‘‘(•—+™‰'‡3•‹.ˆ‰8†ŽG’›<Š™C›8‰ž:§A©?~ŸAˆ¡PƒŸS‘¨I˜›N–¡P’¦R‘¬Q…­O„¨U…©SšœTš¢Tš¡_ª§U¡§Z¢¬_’¨l”¤i–¦f› f¨¨b¦r¶Âk¯Äa·¹h³¶r·²nº·pµ·‚¶±«·{«¹u¤»w®»p¨¸e£¿aŸ¼]ŸÂ\œÈS¢½R£»Z›¯e”¬hŠ°e„£mƒ¡\‡¢[}¢]{ŸVˆœ\†§R‚¥X©]¨^•¦]‰ª^ªSœU””M˜šH˜žS©X§œO¡[ž£Y¨¤R¬¤U¶¦Z¸¡\´¨b¨®d¨¤Z¦¢ZžŽ]¤‡b§Šb²Y­™a«šW¨‰T³‘V³‰\§ƒ^¦Ž]¯ŒVª”R‹T¡Wž†Vž€XšuI“yK˜†P„P€\}†[t[z†av~Uo†OtXxŠfw‡fxƒkp„gqlpj|v`sjbtfWwh\kck^dk]bpaahhjiimcdjedfdffcldkeYnmJjcL{UCzSG†TOHKzFŒH=‘@;A6’<0Œ@6Š?6„62v9=~8:w:1r>7n>3xB8x:5pE2qD*tL,~U+wS'zO'\1„^7€b<g9‰ZD…]L…gJ€eKxaLx^;zeJyeHnp>rjCvf;qkDwpErnJr~>}|AwF|{BƒxJ}vBvQzrW„qZ|tNƒMzUm~HltLkhSphPqaVj\Lp_SuYV~UUva]sabrZcr`]qf_te`idad_`ePfdXonPwv[wnZp\z‚]x~dyˆa~‡e~‘Wƒ›UƒSr•Lz–Es•Au“=Œ@ƒ•H…™O€Ž[w’V{‘]r†Yr…Qm‡IqŠGz‘DuŠIw”Jƒ™F€“I…›B8‘2—)ž…'—„3šŒ-Ž)’Š.†‡5ƒ>ŒF–™B¡A”£:’›A†œ8„˜?¢J‹«V“©PŽŸL” I§L„§H†¯E†¦GˆªVŽœTš–P¡Y¤šZš§d–¨]—¥f”¢h™¨p›©p¢¬pžtµÅp¿Âj¼Çr´¶t»ºe¸»r¶¸|½|¶¹z«»°·{­Åe§Àiž»gŸÆi¿[ž½U¡¶Z‘°e“«^Š³f¬jŒ¨pˆ­e‰¨d‚˜Zˆœf†•]~¦]£\‹©a‰­e‹®^“«V‘ŸN™©J¡R—¡Jš©X˜¨W¤«]˜¡M¨¥`¤¢Y¤¨Qµ¥T±¤_¯žX«Ÿ`¨žX®h¡–g¤—h±”d¶—\´U±”P°P©ŽJ¬N©‘O®…X¤S¯‹Oª’W¡‚_¢‚]¢…O¡‡T›}U‰Š[„ˆaƒ…gwvbubs‡U{\qˆS|‹Oz~Sv„W‚bpslvƒeixkmf[wieocgqjdrdk\WiWUkd^Y_khg^ggahZbh^eqafrebsiRxcOq^KsWLtWGKFtCEyBNy7E}3E„6LA‚A;77‘;6“71…8}77s@07.rA-}B-{A5…C9‚<&x9*tF!‡M)ƒT zO'tZ-~V5…XA…XEˆcJ‡b=dI}gC€cA€l?{eD{gwpCzc7p]HvfJzgP{nDtjHqs>m}>rzH}wHxLywMvqJ~yX}U~Hv‚Lj~FnsHkwOgwTfrWdjIkgNhjZicZmhYf`Yb^Rf]]`jj]kga\ncip\qehcqdVkjZwnOsuNwnMu{aovcx|[~„_‡…]…ŠXƒ‡N…J†ŽJu‚@tŒIo…Dw€Gw€?„‚Fˆ‘K}T~as‡SwŒS„…WŽPŠƒJ’‡JŽˆTˆ‰Vƒ‹Q‰@–Œ?“•7›Ž/“’3Œ(–‰,‹•:Š–A‘FŽŽ<Œ™C‡œI§D¢8ž©=”¤<–¦@— L†¥NªKŽ§K‹™J£Q…¨G‚¦SŠ¦PŸK• SšXQ¢™T•£^–˜`—b—Ÿg¨o”°y®qtÊÄ¿ÂvÄÂo½Ïl½½v¾ÇvºÆp¼¿z½Á{ÀÁ}®Æm³Ìq¤Êm¨Ìc˜Ãcž¼rŸÂv—Äjž½cˆ³l´j‡®c‚¥b„¡l‹¡`Š¨h†˜o‡¡g’—k‡˜j‘¡^ˆ±V‚¦Tˆ¥S“›`œ¦R‘£Y–§S‘®\›©U—±dœª_¤bª°Uª©e«©Y¬«\®Ÿ`²›Z©˜W³ ]³œY¶’a²•T³’U±–H»šW»šK±P¥ŒU°‘S¬—N¯V«T¡…`œ‚X‰]¦€R”‰`‰€d|\—€^„„\ƒyVƒy`wx\xxV|sbt~S~wZ{uYmxctxbopendet]cqfjydcgbgkSjo^hhY^fbUacX^`T[^l\cl\gzZbz`e„e_}^U|_\€LX€ONuKF€PR{:V€9N„9E‚A?„>?}@A€83~5.|73Œ*-‹*-7*Ž,:ˆ47Š/.Ž25;=Š:*†85ŒB/„6*ˆ?1…59}068/v4,w@+zA€J/|H/vI#‚P2ƒ[:tZ>YB|S<‡g>‚^Bƒd:vm5sk@xp7tp6qlEyj@ql@‚j?wo:qvAy}@{|@r„@psNnwPwoTtNn€QoxPrƒKgqGl{E]}V[lW[v\kmRcpZki[jkTclZacU\_Xahg\hd\lhj[tipw\li\aha^fm_nkWomWxo[uxY|T|t\…‚Q‹_~b|‘RzˆO‡ˆJ|†Ay€@w€Jt„=wwD~ƒI‹J|‰[yŒTyƒK‰K‹…J‘€LŠˆJ…”VˆL’XŽ†R”ŽF¡…@’˜?Ÿ—8¢;”“?Ž3˜ˆC™“@‹—@’L›P’G’—H ¦:—¢9˜©>”©Mˆ¥EŒ¢W†¤XˆŸFŠšCŠ¨?‚©H”¨S‘ U›©Y©N”šV£“V—Oœ[¤•\–™^—¡f¦q›o™¢tsȼzƽ}ÃÆxÂËpÊÅtÂÀp»Åx¿ÅxÅǼÄrÁÑu·Îw©Óz¤Ñq›ÍkžÇw¤ÉxŸÁ|šÄr¼k”­qŒªn‰¤aŒ©m’«g—©f™¨i‘Ÿm…™m…Ÿe‹œ]ŠªW†œS…ŸO’žX•ž^›–]žb¦Y«_¯e›§e™°_§®i«²b°©Z¯¥^­ž`¦¡\ªŸ\´š\¹’R´Y¶™P¯”O´žS¼L³Y³“[®‘V«X°”M²†P®‰P«Zœ‚W¤ƒSž†W wa‘yj˜ze”}^ŽzVŒ{Pƒ}[ƒtR{rW|r_vq^tudqxaet`cubiibnhgp]lj[lo^ja[_d\`ic`keSbdW_[b^_[a[^dYrV^pZ[v[btaa€_`a`|UW~\YxQK|IV?Sƒ:Jw9Lw=€=8}=,u<4}2/ˆ22‹0113Ž4)‘4/‰.&“5(71”2+‡=%†<"ƒ:*…+2z-2‚,,3,80x9$u9/zD(F)…F*ˆE.|N5‚N3|R9~b@ˆc9†g6‚a:ze:zp1wi1}sAu?wwB~tA{v@z€?|y?€wEFw„HqxEw‚Iv~NuzKlƒMdxEhvA`€EdyIfoK[pY`wUesWZpW`qVZfTcdUa`\ZkaUq\alajimbdsj`}blzcdnn^ppb|i\vrb„pbƒtc‰{V}R‡yR…ˆQ‰‰]’T„K~ŠUw‚N{IwˆCw~HuJs‚Km…TuZ}}R„{N†|I‰|P‰ƒOŽ’K‹QŠˆZŽŠR•‰S“„SœƒG¢G“OGŒ@œŠ=—„K–M–’H‘K’G™R•U¤žFš§Bš¢BŒœQ—¥O’™WŽœT‘›JŸH„£L‰ D”šJŽ T•¡U”£Rœ–Pœ’P›”O¤Œ_¢œ]—›hœe£aŸœ^¤£j—}ÁÍ{ÁÎy¾ÏxÈÂyƽuÃÄzÇÂmÉË{¿Êp¿ÈwÃÄnµÆx¶×s±ËhŸÌi­Ép­Ët¦ÊsšÅj›Ám“·h—ºd—¶gŽ·h—µf’®eŽ¥m“©e¤g†®mŒ«mŒ£e‚ _‹¥[Ž¥b˜™[’ Xˆ•c‡œX˜¤_š¡`’Ÿa¥§a¨£U°ªT­›V°š\§¨W£¤Y§š[º›^²žW½•a²¢U³•U¼“M¹•Z¸^¸’]¸‡c°—Y­‹S¯ŒG¨‘\¨‰Z›‡\©yX®X•{[ŠwhŠ{gš`”u_ƒx\Œwco\~lVzmWzv_wtYdm]jp\ht[^d\k_aigjoVusammdiu\ji[Xo^[p^^nOakUUfKjYOzXUw[YuV^|`drb[q`Ur`QrVWsPVyBMx@TsJKrB=xBAyDAƒ;2z;->14>‰4:‡75…9#‹7)†>#Œ94Ž1+‘B*?*ƒ9+€9"Š71…69y5;€+9=,sC5B's=.xD!}O.|G$zT.{R>~N5y[>†Z.†f<Že>~_-‚g4„s3€y9rs"ƒ44ŒB+ŒD/<3…7)…;3‹?3Š=8{35y27‚99€E6vC*zE!sHvJ vN&xT1yT;|]=„[2€U+…Z3ƒZ3‡j0p5n6tq@ws>v|Dpu?soDmkFvj8zh8€n9ufHmr@op;ksK_kL[vL]{NexN]rEb{HYyH[}J[|QcrVhvRdoMaxTkr[gjTbiVYcYUlfUjiYmp\`gQafUcvbjwddobSmdRviWxt\zq[v{_€{Y†~[ƒzP…vKvsIwUu‚P€|R€G…|I}|J{zMy€LyvQ„xR~qcvtc„…R…X…{M…ƒG‚P’ˆX˜‰NŠN}LŸˆAŸƒCŸ†?˜ƒG–€=“~=x;–~;˜zDŠƒIŠ~<‹†>’H”’D¡‘P˜ŸQ“šT¤J–O™•V™NS›[ˆ–T‰žP™Zˆ¦P”¡H–¤I•šP ›Q¤X—£Z”•`šZ™Z—©jœ§mv½ÊuÈÁxÇʆÅȅËÐ|ÄÏmпuËÈkÂÊvÇÆh¹ÅqµÆo²Íg²Ôi¥Îr³Êm¨Óf«Ìf¤»f›¸u¡Ål–¹u•µv¥·u¤®q£°q–±i›·mš¬bŠ´s‡ªlªwªqˆ£jˆ§mˆ£_Ž™`‹œa‘›]•Ÿfš™Z¡‘fšši¦¢_­ W¯™f¯¦a²X¶˜\¸–X¾’d®^»™^ª”R°–ZØT²Vº’g²\·…b¸€Y³T³J£{V |Z¡sV«zT²zX¡ue“rY˜wTwe…om{dgŽqfiZ‚gczndulOok[ql[maZf^big[`fdhc`gai|\jkcptSmqT_g^\rVaeTd`IYeIaYQwfFhdKng_uYPhVMn`ThZJhSUjSSlKEsXIrICqE*‡I*‡G)Š>+ƒC3‰9!ƒD+ƒ=1}E4‚7.w;6Š@=‚42u>2yD#oMvR/vO5ƒP-{\CzT8z`AyY6zXAzh/…k8xq3€rB{n=rz>px=i{Gqr;rv@tbCpg;yhLnlAmm:kg9on?jhA[t?U|FduH[zR^|FcqE\{UTtPXySgvTg}W^tXpm^aqVkk\^\Zde_Sad^`ldSgQZqZ`|aVufZwa`re\sgb€u]xwc|px\}p\~pYtrH‚vGulUsvW„tM€rRoH|tP„zH…|Qƒ|XŒlSvvinz[yƒS‚‚W€{Z~HŽ~R†L‹‰R‡ˆL€F›v@”}D˜{@¢wD™‡A=ˆ}<”yBƒJ•„C•u8•‚3•D˜Œ8šœ@”IšU‘¤T˜¡SˆšV…’N…‘L~NƒX‡˜N~—_“S• Kž O £T©¥O  ^šŸUœ—b£^Œš[œk“§a …ÃÈzÈÄ|ÑĆÍÏyÖÙqÑÒtÚÆqÑÆmÇËxÁÆyµÂqºÅp¹Çu­Êg°Ôe®Óo±Óh­Ðq¥Ái¨¼m­¸s£ÂpœÇx¤»u¥¹z¦³v˜³m™¶b—®f˜´sµo’®j‹ŸvŽœn“Ÿm‡žk…¤b‰˜]‘ e“šhŽ™n™Œe¡‡f§“d¢gªša¨–[´ f¿ž_ºX³‘^µ•W¶ŒV±^®Y¸‘]Á“X½ŠX„aµ~^²{W¬X²S«|M¨rX¬q[µwT¯sU§uc•sX›j^jbˆbf…_j„ah…i\†^_~d^uiSgfWh`Mh\QhbWh^_c`_iYfxdiv_doXilTrsQilR`oMafP^^KcYKpdLoeIimSmdTf^QoZJr^AqdIcYBf]Ki[AnZ>~M<|N9sD0zI4{L;ƒ=:‡:4zE=zE>|N/…D$€K)vF"zN#zF1~D1ŠK'ŠD&€D.‚D0ƒG.€;4x@094wB7}>+‚K1vQ)tS2vZ2†T9‰[:}U@{\?ydB{bA}l<|o6yr9}i>vsAmoDpsAoz=}w9|sAtpHufDmc>skHrqIpf—€DuD’tEy7š?¦‹<¢“E™˜N•”Yˆ–RŒžQ‡•Zƒ’]„ˆU€ŽX‡–J•F†”S…N“™V›šR—¤M£¯UŸ©\¢£S•›Y’˜\Š cžZ˜ž`¢„ÏՀÎՅÍ×{ÌÔqÓÔrÈËvÊÏzÑÇiÃÉm·Ív·ÉpÃÂ}¿Êw´Ôm³Ùb­ÝkªÍ`ªÔm Îq¢Íw­º{¡¿w®Ç}¥Ã…¦¿w™­u“®i˜½h’¿o˜¹hŽ¹l˜«sªoˆšsŒ˜y‚˜fŠ•jŽ[Œ\›šdš”h™˜_¦˜jªn¤˜o¥Ÿc¥šb«œe°˜hº¡f­’q¬—f®l°‡Y¶’^ª”_¶•fµŒ]·}kµ€`­†X±„Yµ…W«uP«pV¯uM®hV¥zYªvb r_šeYc^‘dl‡h^ŒfdŠndxp\bcjj[k__lYVcdbhaThZXlZZpbde`mkUom__tNcuZcsOkiNgeZb]DjbCc_DjcKu[JqjMrfGlkCf`OgeOpcEj]QmXzP:N>zO7sF.pM1}H;yF5vRBtQ6V4„O1‚L)~T+}G!€Q2|C9yA6|N,‚D4‡;,ŒA-ŽG4~B:x3-t4+s3.‚J$P.€V3€^'„T5Ša3|g6€Z;wm?t`>wgAqg1ƒkBuqGlxKekNiwAp7pzGt{;pgCllGshEddEon9sb0lk1jy:XsFO|QRtST€L`lUijPcyJZoZfyTex_jve[l\`hUseXjlUddUf]`iVcgSi`]gcUhg[yaau`[nSso`|t^€uh{zfzplknnrnZ|hWvwGymRxqPƒvN{}K„kG~qLyMŠ|P|Y’‚Z}uV|rXvƒU…ƒQ†…a‰]‡YL’†M•F’€P‰P–qI“€AvJš{Jw6w-Št<Žq>—yHœq=œr<‘„@‘~7—|;‡F”‰L—”UŽ“ZŠ‘OŠ_‡…X„…Wy’UšTŒ’\~’Syš[‹[”™L£ŸT— SšªV¡ªV›¢RœYš©[‹¢\ ¢i©…ÇՇÊ×}ÉÐ}ÑҀÔÇsÍÈl×ÊqÑÃoÏÑn¾ÍÁÎ~ÂÂpµÐq²Îq®Õ`¯Ý\¨Ùh¥ÕmªËw£Ïq­Ìv©¿~±Ç¨ÂŠ˜·„–±z ¾uš¼m—Âs’·{•±u‘¬kžoŽ¡l„ªt‹£l“•b˜‘\^œiš™g˜k——a¥˜f¡—j§šg£m©–a«™c·”rµ—r±Šy»pµ…l¯d«’g´•c®‹`´€l½wfµ{Pº‚JÀ~I¼{G¯mS²kS°nQ¬tW¬sU¤nZ‘bYg[‰rhwe…e‡we|bdx^fm[`_eek^cn\fj``gfff[be[kjaid\\tR`rXZjU_oXZcYc\S_cAca>pbKmYSeaNk`GrhHnmGkjOabI_SRkTIyTDwU;qJDuB=yO2nK*uH.kN:jNHqPFkQ1tU-tU.€J/vM0{N-€Q2ƒL6‡H2zH7zJ2‚”s2Œp1n;•kDŸhG›r;‘@‘x@–w;~E’€OŒˆU„‹aƒ‹`‰}S‹[~ŠY|”[z^…–YyŽ_~—ZˆžU™¨V£«L›¢Uš¡\–¦^’¨P˜°Q™¦V¥Vš›b¥‰É݇ÈށÆցÑÑyÕÈzÑÊtËÌpÉÃyÀÁsÀ͂½¿}»ÄmºÃl©Ëb«Ïj¢Ún±Ðl®Þw¨ÎwÊ|¥Óz¦Á}¨Ã¬Ãƒ ¿€›®…•¶³v“¯qŠ©€‡Ÿs„«oƒœl•˜h¤s…•eŽŸaŸb¢šW •fœžiª™d®šY¨Œh¦œm©Œl£’l©Žm¨’b±“q­ƒx¬Šq±u´Œn·€c´Žg¦†c±€aºƒc¹‚[»y[Ã}TµsN¾xS¸wQ°uU¯|Q¯qN±tZ tX•gW–if™rb˜{`‚}f‰tc|qfhehehglZej^gc^nn_ok`nahja[afZcbWrfZe\[e]^`^`^ShYU\`KdfI_hHeiYqiKfhHi\DkgN_^>`aFaZ;q]@eWFtT?wK8lC5wL)qA/sG+zL2tM5wKJnO=vP7wZ7‡U8{L3zV9~G+€O+‹L+L2…D-‹::‚72ŠI1xB+x:7=)z3.=&€D)…E-„U+~_;`0}f?ƒfEˆq?ƒe7}rCkB€p>xnMth>hl>tzGfnDck;heEjl9fe=kj@bd5Z`>jd5^o9]h;anNSyKRyFZsL[mN[uLbjXNiZbr_jybjnXXhUcbdm`bahg\U]ie[gVjback^fp_rp\{_^sXhzbYufPwpc}yevv_r}fym`qnayx]€qWzrW‚eO’lY†vLŠjPyR‘tU†ƒ_Ž‰dˆ{`~ycˆe}†UˆV|’^…Ža…ŽU”…R™N“‚DŠ‚BŽwL†q?†p=ƒxG…€;Žl4‘r,‰n2‘g>›r=iMœrO“}Lw?˜rDš{>’mTŒqP‡yeˆƒV~y[„‡\‰€Z€ŠX†Yƒe„Yˆ–S•–[—˜S—ªQ“«NœœW”¡^”¯Z”¬Zš§S™¥c”œ]¢‡×܇ÏԁÐ׃Ë܂ÃÍyÉÊyÍÄzÑƅÊÄ~ÄÆuËÌ|ÀÈq°ÈjªÓq¤Õm¦Öo¦Øh«Ûi¥ßsžÔƒžÏŸÇžÄƒ¤Á†©¹†œ»€“Á‚·ƒ˜­{’£‚Š–zƒšm€i”aˆ“h˜a™b˜‘Xœ_Ÿš`œ”cª—^µ[®‘Y²•_«Žg©•p§’m«rª€r±Šx·ƒq·|s´…q±}p¯‚v°|r±ƒk¹e³d³~U¼vX»nP¹qS³}Q¸wK¼tS±wa«v_©w[¡pb“pZœl`“ra‰xjƒrk…k_}nbzcagadhagelbokbrf]robii[mkXfk\`f^imako[`d_Zffe^chUahFbbGjjNplJiaIgZMcZJ`hK`g@`_:iU5nN7lJ;rD4lB+iC1iD0xR6wS0uP:yU<[2}Y4xM4‚N=~S;€T;ŽQ;K/”G/I+’D9‡;7}G:}A7xB2ƒ<,†8.='„@1‡H3J>ŠX7‰\;}e;‚j:ƒk@e5~l7ti3zj;ycIukGue>npBruAlp?sb:l^@hW7d_9]]:bd;fd=_d;d_AY`GcmN]mJcnF`vBcwQ\lO`m[TrbVve^rbfl^feamgkicnjXjj^hi_jmdfxjru`ln\mmWvbZq`^nd\}fX{dR…rZ€qlwwpz|kwqdwwa{qW…qX†gZ‹dO„mOŒtQ‰sZ’xW’†c‡Šd†aƒ‡]zˆ_‚‡aƒ’_Š–_ˆ‰W†ˆRŒP”•F’ˆ<‘ˆ9Žy>Œ{J’vD‡u9Œu5ˆk1ˆl7•k>”i>’cDšlDžoE“oM—tAœsEšhL—iJŽoP‹s\xVwX„~Rƒ~[‰w_ˆ}cŒ€W’‹W‰ŠW‹SšŸX—¡R—¥Yž ^˜¤\¯V’¦_¤[–¢^ª_—ŠÛâÙΉÐÏ|ÓÜ{ÎÌpÊÌzÆÑsÎЂÊÄvÏÍ|ÏȅËÓv»Ös´Øx³ÜnªÛt®Ôl¯×y£Ú}šÏ„ªÓ‚žÁž¿‚§¿„•¸“”º‡šª—¬€‘¯Š‹¤¨†›rˆ nŒx•i‹”j•Œq˜…d ›li¤—b©šk¬l®Žh¦Œb ƒl¡‰w®“t²u¯ƒm¯ˆo­ˆpª}o©{q¶|o´€s­q¨um®pl­qd´|c¹|X¯v[®nO»sU°}S»rV¸|c¦yb¥yf—sdŒoi–od—ej‚pfƒkd„d`~ekochnfadc\kmbge[sfgpiad`\igW`dbfnW^pUjf_bddbciiS]gJ`nDadNclJ]_OddN\YBX`BZ_JanH`^>kWFbZCpF8mD2uR;f?6fK+jP)~K8qO3vP9zK0‚X,zR3ƒU7†I?L.ƒO%L(B2ŒI/Š=/;447}39ŠD/Š9(ƒ@ yJ%|P$ƒL3‰O5X(ˆV*„`9u[?~_9ƒd1ƒu.{p=zl?wp@moHloEoe9uj;snImt6_d5fh4]h5ca5[`6\_1a`9YlBVe?ZcOSsEbjM^vC]pHakYckQ[h^[kWloWorXkg_chggeflineffrZjcdieimz[rm_nk]~qU{sYurUti]xqcnW|mexvmyoet~^smi…he‰o_‹jYŒm\ŠtQ†lR†i]“xW…‰f‡…V}vdŠ}W‚Ža„TŒ‰^‚M‹ŽYE‰ˆAˆA‰A‰}@ŒƒF‚w?†qDzsC‰q:†f7–o,’k4œk<o;Ÿr7œwJwDvM”m?wBxG‘mNsa•yRŒ|S~VvQ~Z•„\Œ\’S”‰S‘N”ŸH¢›W—O–ª_¡ž_˜ªZ§W› V¡¥V› X¦sÛÒxÝՂÙÏÊρÏÍvÌÌzÚÐvÖÉwÑÐzÏØwÑӁÊÔwÈÏw½Îy¶Òn«Õx­Ìq©Ër¬Ö|¡×{«Ê„ªÈŒ£¿‰žµˆ¢¸Ž•´”•¨ˆ’¦…†°‰¬ƒ‰ªŒ ˆ‰‘w–“y—‘y˜‘™•vŠp¢“r¦˜s²”i¬k¢‹n§Žo§ŽsŸ†v«†u¨’w·‘g´…t·}o­‚m¶zl­i§~v¨yw¡|p¨mp¥hb«ohµli®u[¸dY±bg¸kc®ub¹xa´vb£tažm]Œod…sg†jhŽbsŠ\nwfj€llyjl{oivcdviXk]emRblXbkYbd^Z]ecblbgtU`nVabhe[iq]bmR`lZ_oQ[pM]_LT_J\]A]i6WfoS9jB2rA#vM0uR.uO)|O1†U.€Q+zP.yP=‚U6}N'|M-ŠG&‹D'ˆ=2‹E;‰?6ˆ4)ƒ6-B.?+‹C,|K$vL$|R)yZ€S!P-~\2}Z-v`+€c+yl2}pcd5mh6rj=ntAbo?`l;Y`.Y`0\f1[].[X0b`4cf9_iG`fOZoJ_nFckJmsMfqUci]gd_ieUrk\ig_pqdpummggkgtlessgphadkgjmenw]qtZ~xZ}uWynW{kX€tUzr`xii|mf‡ymƒ{bzp]Œlfs]i^q]zqL…nWƒpPƒ{Z„|Y}UxU„wU…T‹\|R‚€P†…K‰‹@‡‡B|‚8€‰8}‡>…„F‚vB~uH|u;xj0ƒd0‹i'—j;”hA”r=u;™y@˜t@ŽvE†p@ŽuNŒxOŠt\“xZŒxS“€Pš‚F¢}M™ŒL’\˜’Q‘ŽV“‹Mš—M”U”‘Pš’T–£N ¨SšŸ`—¡Z›§Z ¤^¢™\¤†ÒمØ؂ÖÒzËÕsÍÒpÒÎqÎË{ØπÒÎy×à‚Ò߈ÍÎzÊÙ|ÉÏo³Ëx¬Éx¬×o±ÆzµÆx±É~¨ÌŒ¨¹€¨¾‡™³¢¸Ž²ˆ”¨~”¥€‰¤ƒ~®¡‰¥€‘•€˜–|‹v‘•v—–y‡s“Žr¤Œzª•o±–w¯‚i«Œt…}£‚s¨ˆx®‹y°h»…r³ˆf¢k¯ƒtªvj¬tq¤vlªjp›rt§hg©onªke©jc«mZªhY¤jkŸq_¡hl³y_ f`˜gj“pgŽkh„m]ƒhfŠds‚gpzdqvceyfb{a^u]Sg]S]PYh\a[]\e^cdml_sXjgbpahhabs\asYXoJXsGXfNVfN`lPZh=U`GTeEZcET\CSh=]g<]X@^\GfYHoM?j[=qW4vD(lB/rI1rP$~Q3sL6L)R6|R=xO1|R.ŠE(C'„N/‹@*’84ˆ=2~C+‚:5Œ:,F1ŒG ƒW#‰L#~U|Y*‚U[+ƒ]0Z#{a/sd-ps9vk5s}3cu5``0nl*ln.pk-`s9]p>er=bd5ba([m.dd,gk+hf:arXrKZiO_oHbnLduDooLmr]ig]xbcnqalhiqnjn]ivdfqcstmnv]nj`hgWjee{q\vuMvRuave[|qgoa}vboiˆik„qhƒqgykjygƒm\’ejˆoY‚mVcMoLkP…}_‚Q‰yPXƒ~Yˆ†^uW†€U„‚GƒBzwAƒˆI‚ƒAuz?yxEr?yqJ‡n:{t+{j(„s#™b2–k;‰f>“w5’zCˆzH‘pI“tH‡jSŠs[ŒyL–qZ~M–uN”zZ“|F¡‹L¤†[ŸŽK™~H›‹Oš’D¢ŒJœ‹T™”J¤˜DžY£V”£^˜šX¥™^™c¤€Ï܀×҂Í×yÓÔyÕÖzÜÕwÖÚtÕÞtÛÕyÑÜtÎЀÍÔ{ÊÓoÈÊo¹Òs´Ìp³Õt½Î|½Òƒ¶É¹Á‹¬±ˆ§«‹®~Ÿ®~—³|Š­‰©~‘ †Œ¤ˆŒŒ‹¡‡†˜~‘œ{™zšˆ“Œƒ•“‡œ›|£‘s¢‰vªŒm¤„m¢€p†w¦‹xª‘y­Šn­t±„i¤b§„eªtp©qp«ijžjr˜roŸoo¦to¦ps˜cjš`m¡be¢^l¥ae›`d¨op¤tf¦k`œcim`‹gbŠb^ˆgl‚hh€kpydf|g`|bbrg[a^X^UZbU\]VdY__Yjgbtd^oifgendim]aobed^YgO`cQUkM[eDUlCRdGS`ET[IQXGWZNQbLJgIT]*‡>&?/‚@,€D.‡N*‹I‹UŽJ…MuL&tS)w`&v_$qi'pf*zj0rj/fk.ku)`s,dm)jr,br#bl1_u1hp3_g5`k1[g,\d1\q$]k-cp/hv<`m=[oGfoFdqLngJtqGioIlhKukX|oSrn^qbg~^ruapv_sv^uzhwvfoubwsb…lXƒtW‚tPvY{i^vdhwgjw`brjewmfŠkqŒqzŽosjdŒuc‡qh“hf‘h]ˆdVŠbV‚bVƒeW„saypexWˆ„a€ZŠve…|^ŠvX†wSƒrG‹sKv@~€Cu~=|z?…~:Œs=ƒo7ˆq0ƒk0m+”n:Žh;Šc=†o=Œo:“pH‹mOrHŒgR‹mV“oLœnR—zOž{Z—x\œ…O¢…Iª{M¢IŸK•ŠPžJ•ŒF K›‡Oœ‹Iœ’T–W›—YŸ•b¡›c¢[ž‰Ð؆âÞ{ÐÙÒÒ}ÏÚzÛàsÍäzÍçvÎä{ÏßyÏÑ~ÒÙzÍÎvÌÅoÄÎxµÖs³ÊxÁÐ~­Â“­¾Š¶´‰¨·€£«…¦­|˜¨„–¯†‰¯|Ÿ…œ}‡©Œ”œ‹™‰š{Šœ‚Ž†sž}ƒ™ƒ}›†œ„Ÿ‘tž”}°’q¦ˆr¨ƒk¥‰oª‹k¬Šu±…i°†o²‚i¤‹c¦ƒjŸqs£rq›oh“og£ja˜kk˜qy¤oc¡hb¡i[£ZhšY^¦cdgnžqgžoo¡uf—lcˆh^„ec~gcŒ^e‰jr‰ik†mkuqjmeelnXod\`NPhUPXRZbYU`lYal^lmbjfbncXbeWn^`jQYgQ\vHKnQQnJPh>Xq?JiSQeO[aCVdHVkHT\GPe>`[CZ`CiX@mb1gY,l[#oV"sV"iHzGqN0vV-qK)uU3uQ6†P*‡P)‰V/K%†Q!‡B!‡=*?/‹I)C&†P+†P"ŽQQ‡R†K'~Y-uW)xa$qa+ej"l_+qm8od)me1ip-_r&_k"cq0[m,]m-Vh2dh>Vl&[]0Rf'Qd&Zl+dv4cp@]jDek:fhGadCfnJjfL\rJsjUll_liYyha{do}mh{e}u`up[xrdn}curczzUlPˆxU…}K{wW†g_€neufspeg~okwok‚ju‰cmskfi€tcƒpbŽpkŒcYŒ`Rb\ˆdOlXƒo_xjUˆpT{V‰†ZŠ|X„xZuM…lL‚}QxxMwsBss?|vC~tE~rEtC„p<v9‡e+€v%ƒj5qB„mJ‘qH‡kL’vH€qC‰sBuQŽyK}Tš~V—r[šp`¡„Mš‡R®W¥vG›ƒI ŠQV‘‰JˆK¢ƒW“ŠWVžŠQ’aŸ–a§‘c£]¡©W”ŠÝé|ÛÛzÛÏyØÍxÖÒ|ÍãyÙêwÕä†ØӇÉцÆ˂ÉÌÏԁÒÏwÆÒw¼Õz½Ïx¸ÉŒºÍ‘ªÀ”§¼…®º‚¥¬«¨‹™£ˆ‘¥†ƒª}ƒ£ˆ‹š„ŠŸ„‡‹“Ž†”‰”–|‡y—€w¤}„¢ˆŠ¤¡z›r¤y§„r£…t§q¤†i ˆn¬ˆl¤Ši©‰f®Šq«~pœvh•il”sm•tinaib™pq¡fcšg`žgc¡\`™UdžXe jpªnn¥mdšei™l`Žldnozmmbt‚iw‡qyzlrtmdrrgkg]l]^nXQiQQ\YXe_[kebea^hldcoXhdScd]fYXpYYpYUrUIvEMpH[qFMrOMtOUdOY]@RdCUfISeH]`:Tg@Z]9Vb6Xb:g^4p`#nU+jT$kS*jMrU$yM'Q2zL-~V&}[+za.\-€\'ŠJ “?(=*ŽD-‹I,„D1N*ŽH#…R'ŒK#†NOP${RuQi\&i]*j_._h/fk(^e'di*ai(Tc/Ra0Pf5Vc4Ql|l?ys>um?~l@}p2xm(ƒt2€sAŽuE…nNŠtH‰zK†|K‰zJ‚B}G›xK˜ƒY•„[–uY›xTž|S©yJ£xLŸ‚L˜‡V˜„NžŽM¤„Q†U›U ‰V¨’b©‘\§–_¬‰S¢–K•£S™€Þá~Öæ{Ðß~ÒÌxÊֆÖ؀ËêxÚê}ÔçÈىÐ̀ÒÎ|ÇLjÆÇzÇÐwÄ؁·Ì‰³Ò‡²Â†¯¾Œ©µ¬ºŒ±­|¦¥©«—›z£x‹–’„†‘„”ŠŒ–‰‹‰”™ˆ˜ˆ…š„„”…š†w Ž„¤‹ƒ˜†u›‚t ƒt x¤ˆy—yn§„x¬ƒu™u–„u¢twž|lžpe–nf›ii”mnbkak™i`ªad¥`d¨`^›Yg§bc¢[k§pv›fo˜er”mn’oh…pi~pxpzvus}kxzu{~qo{bjqfkec\maas]W`aJ[UPa]VidYh`XfaV`^VbY^jV\laTdXPp]LvFFsKF~IRrCYyLUvPUq=^_8TlAS]CN]IWhGM^4_c;Ma0Sb9X`&f[*m^*n\&iS'jLsUoVyQ)vX"X „`{^"zd/z\*ŠSˆG(ˆK#†I+–R#’L(ŽU%ƒZ)‰N(}U'‰R‡P#wTU|ZpW+fZ&`j0]l)X[$U`)Um.ed2_c[i>Uf2Uh/Qd.Yg-`\)h^&bf&Zf*Vh5]c@XfETn;SsARgFUl;bo=hfJhb]_kaXk^b^drWmtasuc€sj|hi~kWtiTrXrSƒwPwwV{z\}{\|s^yjevqf€zg‰rkŒth“ljˆdcƒ^iec‚bh†kl„jaƒeT}fWd[…[Q€_I‚`P…pYwp]yme}s`~lV{qO{|PmuPlwTltOrfNy`YrXYm_NghMri=qb3tc3qg2h7s?‰pJsPŽvKŽtG•oE•tRŠ}QˆzH˜€H˜}N‘„O›L™N ƒQ¤v\£v`©wZzPˆN’E¢‹F«ŒF®…N­ˆU¥ƒP£M£ˆO¡“H¤˜J¡ŸOž˜V§€éÝxàè…Ü×}ÜÞxÙÞ}Öã€Ôà|Ðà{×܃ÑßÞÑ~ÒǁØԈÑÓ}ÓÓ}Ñ́¾Å„¼¿„®È”§À‰¨¹ƒ««x«ž~¤¤}¦¥†ž£|žš‹›ƒ––‡’ƒ•†„„Œ‚“}†Œ†ˆŠ–~™€“{}™ƒ€™€v–|˜‚{ ƒs‘zt™uu¡€w¢€l‘pq”sy•po‘|o vdŸdg˜_i•_ežhs—Zbš_e˜fjšf`¢\h—_e˜Ve£hj dr•Zv™[z˜aq…gs„cqznpxnxrukztx}rhymkmVllVjj[Zh_a`\Xla]g_Rq[VqaRfa_c`[lZ^oNOjPZ`KYaNVsCWrELxNQtNE}@PyEbn:]c|`|gDysIvBjI‹yN‘~Y“yWžwM™‚V€N‰J‡ŽTŒŒ\—~_¡|`¢ƒh¤Šg¢†[¦„]˜|Y˜zS›€[ ‰K¡K°€R­PžU£ŠV¬Œ\¤…S¨‰L¨ŽV›„Þé‡æìƒÚí„Ùâ†Ùè€åââãqÙãvÛӄÑ×uÓӂÚρÐǎÓÍ{ØÌoÈÍwÂÐ}¿¹°¶¯ºŽ³±ŽŸ­y«©³™z«§zŸ¢šœƒ‹™ŒŠšŠ—‹‘’Š“†„Œ…”†‚˜|“‚™|Š|€˜uˆ†‰¥z›}ˆŸ~¡ƒ~Ÿ€‹p…£z|£lv¡rlŽxs’hz¡pl™``žXh¥Xo£bo¡_u˜Uh•dgšYfQm•Rc˜Rf§Pg˜Rm¡Ji•TyavS€€Vkvct|auyjtpjjp\u~Vkrbjlgke`mk]paer[ZbcVhhOZeNczVapZWlN\wKgkRYpCcgJVpLZj?]q=OzAWnGL}CUg@W_8bg;Sf@\]CXX?He=Qe;Kh3Vl1Z[+aU&eV&_d_X\_cWbYqSzOW^yS}P‡SuX-z\…K%zO…C"ƒR&|Z yN~W'oT&uRfY"fglcx]iSlZhehgWc+Jg)Oe9`Y1eb2Zd?a`=jjC_s7amFZh8cm;^m3k|3Yv4]|0Xn7VrIYmLcfB\pDad:TlM_^CZhG]cS_dYgfPgf^]kmalrhxzuwo{xvxttqm}pf„xc„wfxvV|x\xyaƒpgŠwdˆyd‚€W‰k“ljˆci’kg‹eo€btin\jh_–db“cQˆdDˆbP‹fH|eR†gKzmS~p]ŒxcŠg`ˆkXr[Œt[€sX†mR~mWzncthYud_waRvkGrgA~nJxm=†m;ˆm7‚mCˆtC„gO‡mIoPŽtV›sL’€Wœ{K“‡]š‚XŽ‚S‡Š[„[˜†`¥…^©‰a«Z©z^¢‰`™„T ƒT WªF­ŒR¢€P¤‹V¯‰X±‰ZŸŠZŠZŸY–ŽëìŽâî–êäççŠëކåۂÜÚxÝÝtàÚ|×ÍzÓӄÙNjÓЁÐʆÚÇyÒΆÇÁ†È…ÇŌ¸¿ƒ¸Á‰©±…ª§z©¤ƒ ¯ƒ’­‰‰§Œ¢Š–ª“”¢–Šš‡ˆŽ†ŠŒ‘€’x… }{¢{‚œ|‡¤ˆ£}¬~ƒª{¢Ž£{†ªnˆ­p{«w~£vƒ˜f|˜fs—_lŸdk£`c [k™cf [l˜OpŸSt™NmŠSu“Ln”Mp˜Lg¡P^˜Cf›GvRxŠS|†W|„Svt\uobnsawpckqcfvUilSombti]uidokes`_he_ihMllKdsSfq^]sYh|NdsM`hM_f?baAbeJcuKZwD\nBRrBRp:Wa>Ue;V]9IY=MV:HSBN_>VYdcD]e=Z`AYkLagGmtJoqQkpgksmluoi|wftutuurtzqvƒvm„xg|c|c}sg‰qc„{j‹ye…{k‰|a{`‹mg•bc“akŠdg’iknq•al“fa“a^š_\‘kNbS†hN†tM‡rS†wZx[‹|_•pg‘nm‡ya~_uT‚tZunbwxf‚q^€lR|iU~qK‚lR{qJxuH~v8€k9‰r>iJŒrP†jQŒpLˆvQ’{V{S˜…TŸ}\™xd„Z’z_~g”vj¡}ežƒa›‚a¥|bª…\Œ\«…OªŒM£‹Qª…Qª~Vª…T±„_§Œc¥…[Ÿˆ[¥†QŸêóêî…çàŠÜâˆåçŠå݋çå{âقÔÛzÒψÎʈÔƉÓÓ}ÐÐtÙÏzÑÀwÇÆyË΁»ÇˆµµŒ­¶‰µ®‚«°r«®ƒ¦°•¤‚›£}‡Š¥Œ˜›Ž“›ƒ“ŽŒ“‘œ‡˜†Š¤Ž–…Ž¤y„¤‚Š¤„Š¥€€£x…¨qŒž|¨p€ž~z™zu¢ws–pr—qx—b¢ei—hr XlRt¤ThžR{¤W{œQpNfNlšGb—Vm¡MfŸLcŒPb“Si…KkxJt{RnsUiuYtwMhz]tnZby\tzWjwYvgXq_eze_tmWzhOftGivMk~WXnU[{K`kSWpC]q9__?__I[dCWpMYm9Sr;Qo?[a@Q\:Pc@TV8O]6YN1H[8Ld:S]1Sc.OX(P[*SU%fZfZnbrTsNnYzRZy] sSZuMxQ~Y*qO)K!VOvO|Sl]sVcVnYeQ"jV)hd*YVdU+dX*gc%Rb'[`.\b2]a2Xb7cj7]l5Zw=_gEfhHeo@lmI`m9bs9c€BVI^z9Uv<]aGe`Nc`A\bFbeJY]JbhHcgRaaSmeTuoXpspo|pn|fn|itwppuxpntrw‚h„wmt|cv|[…pf‡nd‚tb{yqpsŠ~m‰vfŽgdimŒmq“bl™ir“Ynœ[]Ž_[ j[yTrLgQƒj]mSŽp_w[”mb”tiu_ŽxU…zQzwW{sS€je€h\ˆmaƒgV}hJxcMxoR{pR†tEiK{vElH€tO‚pKmW‡tQ–nO“yV”}asXŸYŸ…O›{Oœ…axk“{dŸ‹]œ}i „i›}m¤„eŸf¢[­^žˆT©€`¡ƒ^žU«‰S¢{\¨‚S¥‚\¢ƒR˜Ýñ~ãí{äìƒáڎß߉ë݅ßۄ×áÜӂØσÕȂÔ҉Ï̄ÌτÖÆtÕÃÇÃyÂÈ~ÈÀ„½³|±±|²¸v²·{¨±„›®€›¥ˆ’«~Œ£‡š|Œ•…•‘ƒ‘Ž–’œ’ˆ ’†ŸŒ† œ{Œ›v£yœwŠ¥p‡Ÿnƒ”z‡š~| }Ÿvy˜ry›wvškƒŸa„”cƒž]r¢^kžYq¨Sw WxLp”Tt’OfˆFbNj‘Um”UlŠOhŽQeƒPcReqEvtEvpAmnJdsKisIgzZo{Zqt[poSxadw_cxc_wvTz{SrqEp}J`xQ[vTZzGSuGReFWj9Te4Qh?UgIchG`k?\oGWp=X`6U^3Vd4J[3OV7SP0OW2MY5RX(Ph#J]-Ma%]W!fWob k[lRqUlY -paxfv\{Q -pQqV!xW |J(sN'xQ&V rNlJnIpUm[hYc[dQ!\N#Q\"]\)]Q'`Z&Z\-P\.Rb3Xd/Ob+Qb6Th9Tm=[q:co5ag>mfKglGgt9Zs:bxG]{Cb{IZt>\o9_eEUe@YlGgiNciLdfJedPn]Sid`piiutdsomlvfxpbrsgyoisqlyfkey„nvzirx^€s\‚s`xi{uj‡usŒzgxiŒkt˜`n’\q“hr“`j^jš^kžmZ”oN‘vJ…p[‡w[†s[uT“vRŽnYŒudˆx]‘vR…T‚|M†Sxayn]l]ˆuY‰gL}cNxkJkPƒqT…mP„iFxoI}pG„rV‡kUŠf[‹qS”qQ‘q^šs]’}TzQ€K•€O„\žy^˜ƒ^¡ˆf ‰f~k•{t™{k¢h ‚_¡€X_Ÿ–\œ‹]¡‚Z§€X yY§{W¨‹IJ¢’å߇èé‚èäîã‡íۀàßÚÒ~ÙÒäՂØ΁âՀÙ΅ÙʅÒÐvØÃsÑÍÇÃ~É…¾À{º¹z¸Á~µ¿¶°~Ÿ·{ž®„—ª‡—Ÿ„§x•¤‰•–|‰…‰“‘Š–†š†•’•“‡œ—‡˜§w¥sªl‡žx„š|€œs„—o„œu…—z}—xˆ–j{l‹Ÿcœ^†œZ{¡bz©cu Z| Tv—LoU|šXlŒMl‡Sl’Kj‘Rjˆ[`ˆTixW`pMgnBlvIuy?sqDszL|nBztT|vZwxWolStmZva]ziLtiTpxIlwJe{QdyIe~NVs?_mEWlCPp>Ik7MeELkDWl9ao9``6O^Tqan6gl=dnDhg=fsEWy@Y?f…IiKbwI]jLatL\nA`fLakGZdP[]Hd`Njd\gdeoebsj[pgelqkiwiordnulvilljux_qqdx{hmlesvhv~kvslqin|{l…yi‰gu‹al™anhg–hl™Yi¡l_iY‰iS•vU‡rS‡waŽqb‹}[•~Z’w^oW”rc~]”zRŽ}Zˆ~M‰|SxvR{nVymV†mV}kKƒbSaKŒmK_W…rV‚oK}jP€v[f_m_‰uV‡vI‘oY”p[o\™~W”}V¢†X–{a•ygœj‘aŒk“yr yc£„n§†oœƒh§hš`¢‰_Ÿi—…f˜ˆZšvVžrQ©„PžIœ”âܓäޏå؅ïà‰ìå†á؇æۈäԇãÈxçÊtÙÆvÙÉwÎÈxÑÐ}ÙÃ}ÒÅqÔ¾uÒ¼€Ï€ȼ~»Æ†µ¾‚¨µƒ§¶†ž±‹˜®Š’ ’œœ†™—‰‘’ŽŽ‡Œ”ŠŒ‘”‹†–šˆ‘œˆš—ƒ “¢w‰¦r¤p€žr‚šr†›jŽœnˆœxˆ¡xœsŠ–gƒœe‰ža^†£_xšVxXySv‘]wŒ_xOqHs„Ld‹Se‡Y[ƒT\†V`{HcqHfxGgsBjoHotArvG}zBsuFxnPwlGxiHllFqhRssNplHsmVjyRj~RbwCUs=XzE\@YzJQlIKk=I^CN_7Wh3Uf@[^[o@WlCYl;^vo€M{mLynUqoEpnDpcI|nKucMirKk|Cc€MlxEeyDRpDSw=SnHUl=TqHMg5Vi>Ii9Yl?UfEPo9F_7Hi+Dh0Kd3Bh*Ng5F]2GU0DP*QTBbUY -PP\RYO ]JbSiIgQ cK_FbX -uYdMlL#gGrR$kLjL!`N%gJ%^O^N&fCRD WN!]I+VQ(PI#TP!SB/GH7QL-[D/MA/OS&OP#SU&\b6bV5\a.[l;`i3f`BaiBYn=Zm>QsCXpBil:esIjgBcl>kgB_r;ggC`l?\iHSeTVh\WbXY\Zgfnol[ykexpjxue}sqrqovmbqodenft[ml^xdbzw^xt_‰op~}hwvw†tr…orzehhv‡hm—ad m^’l]ž_^—e^‹nhl[•ja‹mV}V‘qWœc’sežv\‘vf—uc‰~Z‰uZŽ~R†yPzRƒvOypR†xVƒyS€jF‚iT‚[E{gO‹mP€nXŒq[’jT€eT‰hctWˆr^—z[’}PzQ’wSyV•w^Ž|W˜‡Y›b™…l•i™†r–}u–€u–„u™ˆe¡‰h˜c›ŠTd‘†Tž|ašxU“{S—~S˜R£‡R§Šóðˆõëƒý߉öãŽð؋ôلëàƒè܃åã‚ð؅è͂쿂äʼnâІßˎϿ‡Ì¼~ÃÄ|ʾ}Æ´uǽz¾Âˆ¸¼„«³ƒ©­‚ž±‚¢§~ž¥}—œ‡— ›•ˆ™„™Œ†¢–¥Š˜™~•—‚Ž y¤u‡¦{Žªx¤s‡s„–o|œf„”h†‘m“™u˜r“‘c”j•™aˆc|œat—Wz[p›WrHwšKmSt”Rs‰NoƒTb‹bkŒcl}UpzKe€QlXguQvzCsv>j{Lg{Mt|HqqKgp?ej>uc8{f;rsHiqNbwHlzBh}AbwEPq?Kz3Mz>Oj=Rp9\h:On@Nh9Om6Vo8Jk;Cm3Mc#J_"TX,Na(Mc7Kc9NU)QV)PS%DWITPMNVZMUW `RcIgL^FZE_NnWoL_M#nTkW$k]#cS gJ dP ^P#`>%`B(YG^IRS%TI1NE+SE(GS)SN+WJ6]B2QJ,WS%T\+bb4`Y4QT-SW+[c4Wn4`m6_j>[sDVsAPpbd;fb@f`DbiC\`TTgSWlQUh_Qmb]jfac[ui^trctneuqcukxmfjffe\rqamlh|jk{jg€n\oaxp†wu€x}€gz|`iƒef•djša_œmcšm_Ÿda–daŒqbo]–h]’a^j^˜oZšxa™t[“oaxb‰vZq`—sUŽu_‡|Z€sV|iL€uY‚vW‡uQytMyfKbHƒeM‰nQ…{SŒvW’sV“j\‰ob†t]ŠwT“pV’tO‚X‰ŠSUŒ€][˜e™ˆg‘”e”qŠnŽ~o˜xk—~s’ƒq›Šh—†g™‘XœL›~Q›€U‘€PŒƒ\~Yž…Z¬Œ[¨‹õð€ðíõè‹óæ‰òå‘ôâ…úٍíæ‰îá…ì҅çāðŋßÁ~ÚʋÚÖÑȃž~¾Ç½Ä|ɺ{¿µ~ƽ€´ÄŒ°¿¦²…ª®«©Žœ£ƒ˜œ‹”’‡””œ †ž›{¨Ž§}›~‘œp†¡tŠšv†œ}‚Ÿv’ªo“¤tŽ™fˆ™p‹ŸhŒ”v“”q˜q•f™c“ži•U€‘T‹‰X‰L„•Tv•TzšIu“Uf‰Lu…Ze‡[g’]kŒ_i{Zly[mxPbwUjQw~LxuIlrJf~@pnEliDnv8noFyp7vl8np=elFoj:l{3as:fz=Yo/Pn7Nn6Xg0Ug>^h3No1NfAJn.Hk,Gh/Ri7Pb/SZ%T^([d$UZ-O[4Pf4R[$W_$IXIMLZ VJNMXUVKgQdR`N]M gW -mYfQbG$`R"eW#dQZ\&^R(_Dg@#b>,\;[;YD&TL&]QGR,KT"HR4HV8]L9SN+^W`]:iaHUeM`n\SjV_ifced_pb]pkmolseXxr`{gk€f_~ljto`gijghpa`liiymg„hctb‘ogŒsoŽkzŒtuz`z`oˆfl˜gnŽmeždežhY”i[–h[m`‰qb‹ef˜h_‹mT‘r\‹tZˆmW”qX…rQ‘}W–kX˜kZ—tex^„n\ˆhGƒiJ‚h[‡qO|fD‚iE{hP€nKrL‹w]–ySŽq`hg‹ob•}g†yZ‰„a†[‡x`‚†_‡`•~YŒ‡_šŒc}c‘Žg““i„zŠs‘k”ƒw—zj—…\—U“ŒU–†Y ‡MGŽ‡N™ƒWž‹Vš†Jª‘W©îæ‰ïæ€öí…ðå†ñè‡ûރ÷â…÷â€üà€ðׁ÷χíÄßÉȬÏӌÐ΍Ềľ…õÁ¼}¿¸{ÀÂ~¼Àƒº½‡Á·Š¸¹‰©©¨¤“«“–¢“Š ‰¤•~¥Œ}«Ž‚§†«zŒ›|—q‹žmƒ˜p„œgƒ¢c†žd—Ÿh’œe˜šk’Œk‹ŽmŠ…t—‡r›‡m‘cšˆV”‹MŒ„NŒ‹K„’S}šVršMq–Qk›^fŽ]cŒRe‡XbˆQ_‚Vc‡Pg|Tn}Oq{Gz}KuuMmzAmrBon7co:frDpk%aDg>#hBaQ^YPT#SP3QR1WS/QF0YP8\]:Tg5V`6^T2bS1eN.]Z,a_3]f.fi9`f=VmF[gEYgKQlD]h8_b:^h@]h;gc;ah>YjGXfVWea`ea_jbgfb`iajtjqpeno^skYyf_pk^xj_tqnkik_ajafm\kral…lh‚v`km—hq‘^r…dv…\y‡_l[m•al‘c]žl\œuZ›m`“f]’fT’rR›l]’fU…qS‚yR‚t[†pUˆuS‹{Y–tZŸkY¢pb™th‰sbxZŒvO‡kGkO†gS‹fL‡oQ}tJ‚xJƒzTŽuS‰l[’sjmgta˜`„_š‡^–…iš}bŒ‡_…Z”W—…U•†_œkœ‹e•‘p•–r‹v‰†q”‚l‘ˆi™~[š~TœŠ\O•”N”’M”ŒL•M•‰F£ŽFŸ…R xùãˆêã†çۀèæ}úÝóØ{úàƒôԊóã…ðۄñʓå͏á͍àƂÑǕØٍÕÀ‹Ì½ŠÁµ‹Å¼…ľ†¼´ƒ´¸|°»Œ²·‰µª¼§Ž©˜‰ªš¯•Ž¨‘”«˜†°ˆ§Š¬|ˆ§y‡¨ƒŒžsŒ˜oŽžp¥qŒ¦oŽ h”™b‘¢m— g™h‰“h•‡a‹“e’–m“[Š•S›…P–ˆS‘J‹‡[‹NQqœXdMdƒNcŒRk…Lf†Wa…[m~JtyVpzPguItpIyvMszCim8rwEck6ie6jh@dp=lh0so4sh;mm7bk6fq-Wp!Rq&LkVe)Zi \y-X‚9Ro.Ok,Ic,Hq(Wd'PZ-R^*J_NiY_,WkgkZjOc#Q\N^ XV -_XORRMUUOO -_JaT[UhZ _N_FeOVXUU"]SUKcL+bG&g@`@e5%^9&h>!fIbEQWF[OO#HL%TJ2M>-ZQ)\Z*d^,Yf;dY4dP5XU9Ma8V_ZsLNn>Si8Yb9dj9dd;[_G`lNa_N`qW\aYap_\fbXnb_j]kzgcvhoz\rnkuwbofmtkgpbpmog`jl[iebjqfg€oowa˜gb‘dvŽ_t‡ov†jnˆ\w‡cl‹[e_dšqc—uh mk¡tb›gf“m\Žuhn`…d\†d`Žic‹md‰w]‘pQ”lWžxU—sY tg’|nŒmYŒoX‡kNgN†hK‹sPŒoFˆxP‡yQ€zLŠxN’yd‡uXvfŽ€UŠ}Y†‰\‰b†…iŠ†^†ƒi…vWƒU“ŠX“Šd‘\ž‰p‘r—ŽeŠ—f‰q†…f‘|c‘uk¢‰_˜‘ažˆU›‹P¥”Y‘V‰G™•Tœ„R ^©sóävìã~éåîßxíÖvíÜzðҁúֈñáŒíەæՓäјîĒçĈàȌØԆÙɌÎÅȺŒ¿ºƒÆ½ƒ¾¶²¶‚´°Œ°¨ˆ½¨†Â¦†·—Š¸‘–²•©Š¯Ž“¨Š‹¥„‡¦Šƒ¤ˆ~Š§ˆ¢xŒ—t„£iƒ¥n‹žc˜hžd™ži•g“‹a•‰\Œ“hŽ“iŠ[—Š[–]Žc‘ŒXŠWŒP}To”\h–Yn†Gb…Nf…LcyXm}Up}LwxKjvRlkLuoGzqNrs>jv9ug;nd?ot5ar9av2co2pu3qq6ev5iu.Zu(Vp#SvWjcs_t&]|-S{&Ju$Jg+Qs1Sp-Pf$[h'QcOhKjWjcpcf!Wf$McKfP] -YZXGYE]OYJ\O`J^U ZTePjQbHZR$a[]P#[V[P$_N ]E]9\Ad9b6Y="YK"[JJLGQOFKH'GB!NETP_L'ZY0\a2Xb.[\2Yg8Nc=JaANc?Z[7W]9akHamFVrGYqGXmI^a;_]Aih;]`CVfOXnN]jW]fLcoMfiaZse`k^endol\nvcwv`qvmuvhkkknktnfmrldedhemmplzmn‹ja‘blˆfp†mk’moŽdi”bret‘_ngr‡msŽrv’tr op¢hj’jstoŠf`ƒf`‹keŠddˆsX”p]”rb’rX•nX–qYye—viŽqb†v_fX“eO†sSpL†rJuK‰lOŠpJmQŠt[‰uYxX“€X…T‹ƒV’‚g‡‹o‡†iƒ‚]ˆxa†y[†YY‰ŒY“‡_”Žp’c“a“‚^d|_‘|i¢„`©‰[§ŒSŸT¥‘S¡“V–›Y—’R›•`ª^©uöõ~ïã÷äîãrîéwõå{ù؄òօëӌîԘíՏãϒçԘä̊ÙÁ“×ːÖ̏Ë‹ÈǔøÂ°·½}²°…¸¬~²¨…Á¦‹´ªƒ¼”Ž®’—¶‰Œ°‰¦‡’§…Žž„€Ÿ„ˆ¯‹‹ª…‹¤w¥rŒ–u‘¢{‡›tŽšvš‘n”“n›”qœ—]•ŠZ™“[—•]•aŽ—_‡„bš“_—‹T–ŒQ’‹QŽyZy‡RtŒSw„PwwI|yGl‚Bl‰HuuMr€GpoNpsPjmIvsQvgDwn=jo1et?gm5ao/dc4cc,Zh%ds*ko"kg&eg#jh+`d"cpYlXs\i$`h*Rn$XgYi!Yp*KoMt!TjRk[m```hXleaYa^ZSV UWYP XG_DYM -XMVVVS[R^T -f`YPfN\JZUZSRM`TTNUDW7W9]B a@_8XKYHJRNQEGKG$OG#^K]F^R2]T%_^6_`:be3Lc5O[>Rk@Um8Uk8ObEShgf9a^6e`(bl$_o%_q'knbq$df!`ddbig^f_c`h$YoVl]f\i]k OlHgKjRfYqUo`_Vh[b -```W^PUNTQSI -QK -`QX[T^U\ [W aXW_P^ZXVR^N UU -XL[MSM _B]AV= -XG -XN -^C]=TBSNQITLQOWJ\G[D)`N0aP2Z^.^b,W^:V_?Qa - let name = sel#get_filename in - sel#destroy (); - callback name - end; - sel#show () - -let w = GWindow.window ~title:"Okaimono" () -let vb = GPack.vbox ~packing:w#add () - -let menubar = GMenu.menu_bar ~packing:vb#pack () -let factory = new GMenu.factory menubar -let file_menu = factory#add_submenu "File" -let edit_menu = factory#add_submenu "Edit" - -let sw = GBin.scrolled_window ~height:200 ~packing:vb#add - ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC () -let vp = GBin.viewport ~width:340 ~shadow_type:`NONE ~packing:sw#add () -let table = GPack.table ~columns:4 ~rows:256 ~packing:vp#add () -let _ = - table#focus#set_vadjustment (Some vp#vadjustment) - -let top = ref 0 -and left = ref 0 -let add_to_table w = - table#attach ~left:!left ~top:!top ~expand:`X w; - incr left; - if !left >= 4 then (incr top; left := 0) - -let entry_list = ref [] - -let add_entry () = - let entry = - List.map [40;200;40;60] - ~f:(fun width -> GEdit.entry ~packing:add_to_table ~width ()) - in entry_list := entry :: !entry_list - -let _ = - List.iter2 ["Number";"Name";"Count";"Price"] [40;200;40;60] ~f: - begin fun text width -> - ignore (GButton.button ~label:text ~width ~packing:add_to_table ()) - end; - for i = 1 to 9 do add_entry () done - -let split ~sep s = - let len = String.length s in - let rec loop pos = - let next = - try String.index_from s pos sep with Not_found -> len - in - let sub = String.sub s ~pos ~len:(next-pos) in - if next = len then [sub] else sub::loop (next+1) - in loop 0 - -let load name = - try - let ic = open_in name in - List.iter !entry_list - ~f:(fun l -> List.iter l ~f:(fun e -> e#set_text "")); - let entries = Stack.create () in - List.iter !entry_list ~f:(fun x -> Stack.push x entries); - try while true do - let line = input_line ic in - let fields = split ~sep:'\t' line in - let entry = - try Stack.pop entries - with Stack.Empty -> - add_entry (); List.hd !entry_list - in - List.fold_left fields ~init:entry ~f: - begin fun acc field -> - (List.hd acc)#set_text field; - List.tl acc - end - done - with End_of_file -> close_in ic - with Sys_error _ -> () - - -let save name = - try - let oc = open_out name in - List.iter (List.rev !entry_list) ~f: - begin fun entry -> - let l = List.map entry ~f:(fun e -> e#text) in - if List.exists l ~f:((<>) "") then - let rec loop = function - [] -> () - | [x] -> fprintf oc "%s\n" x - | x::l -> fprintf oc "%s\t" x; loop l - in loop l - end; - close_out oc - with Sys_error _ -> () - -open GdkKeysyms - -let _ = - w#connect#destroy ~callback:Main.quit; - w#event#connect#key_press ~callback: - begin fun ev -> - let key = GdkEvent.Key.keyval ev and adj = vp#vadjustment in - if key = _Page_Up then - adj#set_value (adj#value -. adj#page_increment) - else if key = _Page_Down then - adj#set_value (min (adj#value +. adj#page_increment) - (adj#upper -. adj#page_size)); - false - end; - w#add_accel_group factory#accel_group; - let ff = new GMenu.factory file_menu ~accel_group:factory#accel_group in - ff#add_item ~key:_O "Open..." - ~callback:(file_dialog ~title:"Open data file" ~callback:load); - ff#add_item ~key:_S "Save..." - ~callback:(file_dialog ~title:"Save data" ~callback:save); - ff#add_separator (); - ff#add_item ~key:_Q "Quit" ~callback:w#destroy; - let ef = new GMenu.factory edit_menu ~accel_group:factory#accel_group in - ef#add_item ~key:_A "Add line" ~callback:add_entry; - w#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/label.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/label.ml deleted file mode 100644 index b9829fb77..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/label.ml +++ /dev/null @@ -1,48 +0,0 @@ -(* $Id$ *) - -(* Embedding xpm data into an ML file *) - -let openfile = [| -(* width height num_colors chars_per_pixel *) -" 20 19 5 1"; -(* colors *) -". c None"; -"# c #000000"; -"i c #ffffff"; -"s c #7f7f00"; -"y c #ffff00"; -(* pixels *) -"...................."; -"...................."; -"...................."; -"...........###......"; -"..........#...#.#..."; -"...............##..."; -"...###........###..."; -"..#yiy#######......."; -"..#iyiyiyiyi#......."; -"..#yiyiyiyiy#......."; -"..#iyiy###########.."; -"..#yiy#sssssssss#..."; -"..#iy#sssssssss#...."; -"..#y#sssssssss#....."; -"..##sssssssss#......"; -"..###########......."; -"...................."; -"...................."; -"...................." |] - -open GMain - -let main () = - let w = GWindow.window ~border_width:2 () in - w#misc#realize (); - let hbox = GPack.hbox ~spacing:10 ~packing:w#add () in - let pm = GDraw.pixmap_from_xpm_d ~data:openfile ~window:w () in - GMisc.pixmap pm ~packing:hbox#add (); - GMisc.label ~text:"Embedded xpm" ~packing:hbox#add (); - w#show (); - w#connect#destroy ~callback:Main.quit; - Main.main () - -let () = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/lissajous.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/lissajous.ml deleted file mode 100644 index 9d6cf3b1b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/lissajous.ml +++ /dev/null @@ -1,48 +0,0 @@ -(* $Id$ *) -(* Lissajous $B?^7A(B *) - -open GMain - - -let main () = - let window = GWindow.window ~border_width: 10 () in - window#event#connect#delete - ~callback:(fun _ -> prerr_endline "Delete event occured"; true); - window#connect#destroy ~callback:Main.quit; - let vbx = GPack.vbox ~packing:window#add () in - let quit = GButton.button ~label:"Quit" ~packing:vbx#add () in - quit#connect#clicked ~callback:window#destroy; - let area = GMisc.drawing_area ~width:200 ~height:200 ~packing:vbx#add () in - let drawing = area#misc#realize (); new GDraw.drawable (area#misc#window) in - let m_pi = acos (-1.) in - let c = ref 0. in - let expose_event _ = - drawing#set_foreground `WHITE; - drawing#rectangle ~filled:true ~x:0 ~y:0 ~width:200 ~height:200 (); - drawing#set_foreground `BLACK; -(* drawing#line x:0 y:0 x:150 y:150; - drawing#polygon filled:true [10,100; 35,35; 100,10; 10, 100]; -*) - let n = 200 in - let r = 100. in - let a = 3 in let b = 5 in - for i=0 to n do - let theta0 = 2.*.m_pi*.(float (i-1))/. (float n) in - let x0 = 100 + (truncate (r*.sin ((float a)*.theta0))) in - let y0 = 100 - (truncate (r*.cos ((float b)*.(theta0+. !c)))) in - let theta1 = 2.*.m_pi*.(float i)/.(float n) in - let x1 = 100 + (truncate (r*.sin((float a)*.theta1))) in - let y1 = 100 - (truncate (r*.cos((float b)*.(theta1+. !c)))) in - drawing#line ~x:x0 ~y:y0 ~x:x1 ~y:y1 - done; - false - in - area#event#connect#expose ~callback:expose_event; - let timeout _ = c := !c +. 0.01*.m_pi; - expose_event (); - true in - Timeout.add ~ms:500 ~callback:timeout; - window#show (); - Main.main () - -let _ = Printexc.print main() diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/nihongo.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/nihongo.ml deleted file mode 100644 index 48f7d8c22..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/nihongo.ml +++ /dev/null @@ -1,31 +0,0 @@ -(* $Id$ *) - -(* ¤³¤ì¤ò¼Â¹Ô¤¹¤ëÁ°¤ËLC_CTYPE=ja_JP.EUC¤Ê¤É¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ *) - -(* cut-and-paste ¤âÂбþ¤·¤Æ¤¤¤Þ¤¹¤¬¡¢edit¤Ï¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó *) - -open GMain - -let window = GWindow.window () -let box = GPack.vbox ~packing: window#add () -let text = GEdit.text ~editable: true ~packing: box#add () -let font = Gdk.Font.load_fontset - "-*-fixed-medium-r-normal--24-*-c-120-iso8859-1, \ - -*-fixed-medium-r-normal--24-*-jisx0208.1983-0, \ - -*-fixed-medium-r-normal--24-*-jisx0201.1976-0" -let button = GButton.button ~label: "½ªÎ»" ~packing: box#add () -let label = GMisc.label ~text:"¤³¤ì¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤" ~packing: box#add () - -let _ = - window#connect#destroy ~callback:Main.quit; - text#misc#realize (); - text#insert "¤³¤ó¤Ë¤Á¤Ï" ~font; - let style = button#misc#style#copy in - button#misc#set_style style; - style#set_font font; - style#set_bg [`NORMAL,`NAME "green"; `PRELIGHT,`NAME "red"]; - button#connect#clicked ~callback:Main.quit - -let _ = - window#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/fixpoint.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/fixpoint.ml deleted file mode 100644 index c41b11b50..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/fixpoint.ml +++ /dev/null @@ -1,39 +0,0 @@ -(* $Id$ *) - -open GtkData -open GtkBase -open GtkPack -open GtkWindow -open GtkEdit -open GtkMain - -let rec fix fun:f :eq x = - let x' = f x in - if eq x x' then x - else fix fun:f :eq x' - -let eq_float x y = abs_float (x -. y) < 1e-13 - -let _ = - let top = Window.create `TOPLEVEL in - GtkSignal.connect sig:Object.Signals.destroy top callback:Main.quit; - let hbox = Box.create `VERTICAL in - Container.add top hbox; - let entry = Entry.create () in - Entry.set entry max_length:20; - let tips = Tooltips.create () in - Tooltips.set_tip tips entry text:"Initial value for fix-point"; - let result = Entry.create () in - Entry.set result max_length:20 editable:false; - Box.pack hbox entry; - Box.pack hbox result; - - GtkSignal.connect sig:Editable.Signals.activate entry callback: - begin fun () -> - let x = try float_of_string (Entry.get_text entry) with _ -> 0.0 in - Entry.set entry text:(string_of_float (cos x)); - let res = fix fun:cos eq:eq_float x in - Entry.set result text:(string_of_float res) - end; - Widget.show_all top; - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/hello.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/hello.ml deleted file mode 100644 index 60506e3cb..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/hello.ml +++ /dev/null @@ -1,23 +0,0 @@ -(* $Id$ *) - -open GtkBase -open GtkButton -open GtkWindow -open GtkMain - -let window = Window.create `TOPLEVEL - -let button = Button.create label:"Hello World" - -let main () = - GtkSignal.connect sig:Widget.Signals.Event.delete window - callback:(fun _ -> prerr_endline "Delete event occured"; true); - GtkSignal.connect sig:Object.Signals.destroy window callback:Main.quit; - Container.set_border_width window 10; - GtkSignal.connect sig:Button.Signals.clicked button - callback:(fun () -> prerr_endline "Hello World"; Object.destroy window); - Container.add window button; - Widget.show_all window; - Main.main () - -let _ = Printexc.print main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/progressbar.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/progressbar.ml deleted file mode 100644 index f4ad465ed..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/progressbar.ml +++ /dev/null @@ -1,60 +0,0 @@ -(* $Id$ *) - -open Gtk -open GtkBase -open GtkMisc -open GtkWindow -open GtkRange -open GtkPack -open GtkButton -open GtkMain - - -class bar bar = object - val bar : progress_bar obj = bar - val mutable pstat = true - method progress = - let pvalue = Progress.get_percentage bar in - let pvalue = - if pvalue >= 1.0 || not pstat then (pstat <- true; 0.0) - else pvalue +. 0.01 - in - ProgressBar.update bar percent:pvalue; - true - method progress_r = - pstat <- false -end - -let main () = - - let window = Window.create `TOPLEVEL in - GtkSignal.connect sig:Object.Signals.destroy window callback:Main.quit; - Container.set_border_width window 10; - - let table = Table.create rows:3 columns:2 in - Container.add window table; - - let label = Label.create "Progress Bar Example" in - Table.attach table label left:0 right:2 top:0 expand:`X shrink:`BOTH; - - let pbar = ProgressBar.create () in - Table.attach table pbar left:0 right:2 top:1 fill:`X shrink:`BOTH; - - let bar = new bar pbar in - let ptimer = Timeout.add 100 callback:(fun () -> bar#progress) in - - let button = Button.create label:"Reset" in - GtkSignal.connect sig:Button.Signals.clicked button - callback:(fun () -> bar#progress_r); - Table.attach table button left:0 top:2 expand:`NONE fill:`X shrink:`BOTH; - - let button = Button.create label:"Cancel" in - GtkSignal.connect sig:Button.Signals.clicked button callback:Main.quit; - Table.attach table button left:1 top:2 expand:`NONE fill:`X shrink:`BOTH; - - Widget.show_all window - - -let _ = - main (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/pousse.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/pousse.ml deleted file mode 100644 index ecf0dff3a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/pousse.ml +++ /dev/null @@ -1,199 +0,0 @@ -(* $Id$ *) - -(* The game logic *) - -type color = [`none|`white|`black] - -module type BoardSpec = sig - type t - val size : int - val get : t -> x:int -> y:int -> color - val set : t -> x:int -> y:int -> color:color -> unit -end - -module Board (Spec : BoardSpec) = struct - open Spec - let size = size - - let on_board x y = - x >= 0 && x < size && y >= 0 && y < size - - let rec string board ~x ~y ~dx ~dy ~color l = - let x = x+dx and y = y+dy in - if on_board x y then - let col = get board ~x ~y in - if col = (color : [`white|`black] :> color) then l else - if col = `none then [] else - string board ~x ~y ~dx ~dy ~color ((x,y)::l) - else [] - - let find_swaps board ~x ~y ~color = - if get board ~x ~y <> `none then [] else - List.fold_left [-1,-1; -1,0; -1,1; 0,-1; 0,1; 1,-1; 1,0; 1,1] - ~init:[] - ~f:(fun acc (dx,dy) -> string board ~x ~y ~dx ~dy ~color [] @ acc) - - let action board ~x ~y ~color = - let swaps = find_swaps board ~x ~y ~color in - if swaps = [] then false else begin - List.iter ((x,y)::swaps) - ~f:(fun (x,y) -> set board ~x ~y ~color:(color :> color)); - true - end - - let check_impossible board ~color = - try - for x = 0 to size - 1 do for y = 0 to size - 1 do - if find_swaps board ~x ~y ~color <> [] then raise Exit - done done; - true - with Exit -> false - - let count_cells board = - let w = ref 0 and b = ref 0 in - for x = 0 to size - 1 do for y = 0 to size - 1 do - match get board ~x ~y with - `white -> incr w - | `black -> incr b - | `none -> () - done done; - (!w,!b) -end - -(* GUI *) - -open GMain - -(* Toplevel window *) - -let window = GWindow.window ~title:"pousse" () - -(* Create pixmaps *) - -let pixdraw = - GDraw.pixmap ~window ~width:40 ~height:40 ~mask:true () -let pixdraw1 = - GDraw.pixmap ~window ~width:40 ~height:40 ~mask:true () -let pixdraw2 = - GDraw.pixmap ~window ~width:40 ~height:40 ~mask:true () - -let _ = - pixdraw1#set_foreground `BLACK; - pixdraw1#arc ~x:3 ~y:3 ~width:34 ~height:34 ~filled:true (); - pixdraw2#set_foreground `WHITE; - pixdraw2#arc ~x:3 ~y:3 ~width:34 ~height:34 ~filled:true (); - pixdraw2#set_foreground `BLACK; - pixdraw2#arc ~x:3 ~y:3 ~width:34 ~height:34 () - -(* The cell class: a button with a pixmap on it *) - -class cell ?packing ?show () = - let button = GButton.button ?packing ?show () in -object (self) - inherit GObj.widget button#as_widget - method connect = button#connect - val mutable color : color = `none - val pm = GMisc.pixmap pixdraw ~packing:button#add () - method color = color - method set_color col = - if col <> color then begin - color <- col; - pm#set_pixmap - (match col with `none -> pixdraw - | `black -> pixdraw1 - | `white -> pixdraw2) - end -end - -module RealBoard = Board ( - struct - type t = cell array array - let size = 8 - let get (board : t) ~x ~y = board.(x).(y)#color - let set (board : t) ~x ~y ~color = board.(x).(y)#set_color color - end -) - -(* Conducting a game *) - -open RealBoard - -class game ~(frame : #GContainer.container) ~(label : #GMisc.label) - ~(statusbar : #GMisc.statusbar) = - let table = GPack.table ~columns:size ~rows:size ~packing:frame#add () in -object (self) - val cells = - Array.init size - ~f:(fun i -> Array.init size - ~f:(fun j -> new cell ~packing:(table#attach ~top:i ~left:j) ())) - val label = label - val turn = statusbar#new_context ~name:"turn" - val messages = statusbar#new_context ~name:"messages" - val mutable current_color = `black - method board = cells - method table = table - method player = current_color - - method swap_players () = - current_color <- - match current_color with - `white -> turn#pop (); turn#push "Player is black"; `black - | `black -> turn#pop (); turn#push "Player is white"; `white - - method finish () = - turn#pop (); - let w, b = count_cells cells in - turn#push - (if w > b then "White wins" else - if w < b then "Black wins" else - "Game is a draw"); - () - - method update_label () = - let w, b = count_cells cells in - label#set_text (Printf.sprintf "White: %d Black: %d " w b) - - method play x y = - if action cells ~x ~y ~color:current_color then begin - self#update_label (); - self#swap_players (); - if check_impossible cells ~color:current_color then begin - self#swap_players (); - if check_impossible cells ~color:current_color then self#finish () - end - end else - messages#flash "You cannot play there" - - initializer - for i = 0 to size-1 do for j = 0 to size-1 do - let cell = cells.(i).(j) in - cell#connect#enter ~callback:cell#misc#grab_focus; - cell#connect#clicked ~callback:(fun () -> self#play i j) - done done; - List.iter ~f:(fun (x,y,col) -> cells.(x).(y)#set_color col) - [ 3,3,`black; 4,4,`black; 3,4,`white; 4,3,`white ]; - self#update_label (); - turn#push "Player is black"; - () -end - -(* Graphical elements *) - -let vbox = GPack.vbox ~packing:window#add () -let frame = GBin.frame ~shadow_type:`IN ~packing:vbox#add () -let hbox = GPack.hbox ~packing:vbox#pack () - -let bar = GMisc.statusbar ~packing:hbox#add () - -let frame2 = GBin.frame ~shadow_type:`IN ~packing:hbox#pack () -let label = - GMisc.label ~justify:`LEFT ~xpad:5 ~xalign:0.0 ~packing:frame2#add () - -let game = new game ~frame ~label ~statusbar:bar - -(* Start *) - -let _ = - window#connect#destroy ~callback:Main.quit; - window#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/progressbar.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/progressbar.ml deleted file mode 100644 index b614f08f8..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/progressbar.ml +++ /dev/null @@ -1,51 +0,0 @@ -(* $Id$ *) - -open GMain - -class bar bar = object - val bar : #GRange.progress = bar - val mutable pstat = true - method progress () = - let pvalue = bar#percentage in - let pvalue = - if pvalue > 0.99 || not pstat then (pstat <- true; 0.0) - else pvalue +. 0.01 - in - bar#set_percentage pvalue; - true - method reset () = - pstat <- false -end - -let main () = - - let window = GWindow.window ~border_width: 10 () in - window#connect#destroy ~callback:Main.quit; - - let table = GPack.table ~rows:3 ~columns:2 ~packing: window#add () in - - GMisc.label ~text:"Progress Bar Example" () - ~packing:(table#attach ~left:0 ~right:2 ~top:0 ~expand:`X ~shrink:`BOTH); - - let pbar = - GRange.progress_bar ~bar_style:`DISCRETE ~discrete_blocks:20 () - ~packing:(table#attach ~left:0 ~right:2 ~top:1 - ~expand:`BOTH ~fill:`X ~shrink:`BOTH) in - - let bar = new bar pbar in - let ptimer = Timeout.add ~ms:50 ~callback:bar#progress in - - let button = GButton.button ~label:"Reset" () - ~packing:(table#attach ~left:0 ~top:2 - ~expand:`NONE ~fill:`X ~shrink:`BOTH) in - button#connect#clicked ~callback:bar#reset; - - let button = GButton.button ~label:"Cancel" () - ~packing:(table#attach ~left:1 ~top:2 - ~expand:`NONE ~fill:`X ~shrink:`BOTH) in - button#connect#clicked ~callback:Main.quit; - - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/radiobuttons.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/radiobuttons.ml deleted file mode 100644 index 5743ee232..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/radiobuttons.ml +++ /dev/null @@ -1,39 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - - let window = GWindow.window ~title: "radio buttons" ~border_width: 0 () in - window#connect#destroy ~callback:Main.quit; - - let box1 = GPack.vbox ~packing: window#add () in - - let box2 = GPack.vbox ~spacing:10 ~border_width: 10 ~packing: box1#add () in - - let button1 = GButton.radio_button ~label:"button1" ~packing: box2#add () in - button1#connect#clicked ~callback:(fun () -> prerr_endline "button1"); - - let button2 = GButton.radio_button ~group:button1#group ~label:"button2" - ~active:true ~packing: box2#add () in - button2#connect#clicked ~callback:(fun () -> prerr_endline "button2"); - - let button3 = GButton.radio_button - ~group:button1#group ~label:"button3" ~packing: box2#add () in - button3#connect#clicked ~callback:(fun () -> prerr_endline "button3"); - - let separator = - GMisc.separator `HORIZONTAL ~packing: box1#pack () in - - let box3 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box3#add () in - button#connect#clicked ~callback:Main.quit; - button#grab_default (); - - window#show (); - - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/rpn.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/rpn.ml deleted file mode 100644 index e701f185c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/rpn.ml +++ /dev/null @@ -1,129 +0,0 @@ -(* $Id$ *) - -(* reverse polish calculator *) - -open GMain - -let wow _ = prerr_endline "Wow!"; () -let main () = - let stack = Stack.create () in - - (* toplevel window *) - let window = - GWindow.window ~border_width: 10 ~title:"Reverse Polish Calculator" () in - window#connect#destroy ~callback:Main.quit; - - - (* vbox *) - let vbx = GPack.vbox ~packing:window#add () in - - (* entry *) - let entry = - GEdit.entry ~text:"0" ~editable:false ~max_length: 20 ~packing: vbx#add () in - - (* BackSpace, Clear, All Clear, Quit *) - let table0 = GPack.table ~rows:1 ~columns:4 ~packing:vbx#add () in - let bs_clicked _ = begin - let txt = entry#text in - let len = String.length txt in - if len <= 1 then - entry#set_text "0" - else entry#set_text (String.sub txt ~pos:0 ~len:(len-1)) - end in - let c_clicked _ = entry#set_text("0") in - let ac_clicked _ = Stack.clear stack; entry#set_text("0") in - let labels0 = [("BS", bs_clicked) ; ("C", c_clicked); - ("AC", ac_clicked); ("Quit", window#destroy)] in - let rec loop0 labels n = - match labels - with [] -> () - | (lbl, cb) :: t -> - let button = - GButton.button ~label:lbl - ~packing:(table0#attach ~left:n ~top:1 ~expand:`BOTH) () in - button#connect#clicked ~callback:cb; - loop0 t (n+1) in - loop0 labels0 1; - - (* Numerals *) - let table1 = GPack.table ~rows:4 ~columns:5 ~packing:vbx#add () in - let labels1 = ["7"; "8"; "9"; "4"; "5"; "6"; "1"; "2"; "3"; "0"] in - let numClicked n _ = - let txt = entry#text in - if (txt = "0") then - entry#set_text n - else begin - entry#append_text n - end in - let rec loop1 labels n = - match labels with [] -> () - | lbl :: lbls -> - let button = GButton.button ~label:(" "^lbl^" ") - ~packing:(table1#attach ~left:(n mod 3) ~top:(n/3) ~expand:`BOTH) - () in - button#connect#clicked ~callback:(numClicked lbl); - loop1 lbls (n+1) in - loop1 labels1 0; - - (* Period *) - let periodClicked _ = - let txt = entry#text in - if (String.contains txt '.') then begin - Printf.printf "\a"; - flush stdout; - end - else - entry#append_text "." in - (GButton.button ~label:" . " - ~packing:(table1#attach ~left:1 ~top:3 ~expand:`BOTH) ()) - #connect#clicked ~callback:periodClicked; - - (* Enter (Push) *) - let enterClicked _ = - let txt = entry#text in - let n = float_of_string txt in begin - Stack.push n stack; - entry#set_text "0" - end in - (GButton.button ~label:"Ent" - ~packing:(table1#attach ~left:2 ~top:3 ~expand:`BOTH) ()) - #connect#clicked ~callback:enterClicked; - - (* Operators *) - let op2Clicked op _ = - let n1 = float_of_string (entry#text) in - let n2 = Stack.pop stack in - entry#set_text (string_of_float (op n2 n1)) - in - let op1Clicked op _ = - let n1 = float_of_string (entry#text) in - entry#set_text (string_of_float (op n1)) - in - let modClicked _ = - let n1 = int_of_string (entry#text) in - let n2 = truncate (Stack.pop stack) in - entry#set_text (string_of_int (n2 mod n1)) - in - let labels2 = [(" / ", op2Clicked (/.)); (" * ", op2Clicked ( *. )); - (" - ", op2Clicked (-.)); (" + ", op2Clicked (+.)); - ("mod", modClicked); (" ^ ", op2Clicked ( ** )); - ("+/-", op1Clicked (~-.)); - ("1/x", op1Clicked (fun x -> 1.0/.x))] in - let rec loop2 labels n = - match labels - with [] -> () - | (lbl, cb) :: t -> - let button = GButton.button ~label:lbl - ~packing:(table1#attach ~left:(3 + n/4) ~top: (n mod 4) - ~expand:`BOTH) - () in - button#connect#clicked ~callback:cb; - loop2 t (n+1) - in - loop2 labels2 0; - - (* show all and enter event loop *) - window#show (); - Main.main () - -let _ = Printexc.print main() diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/scrolledwin.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/scrolledwin.ml deleted file mode 100644 index 8f4bee21e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/scrolledwin.ml +++ /dev/null @@ -1,35 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let window = GWindow.dialog ~title: "dialog" - ~border_width: 10 ~width: 300 ~height: 300 () in - window#connect#destroy ~callback:Main.quit; - - let scrolled_window = GBin.scrolled_window - ~border_width: 10 ~hpolicy: `AUTOMATIC ~packing: window#vbox#add () - in - - let table = GPack.table ~rows:10 ~columns:10 - ~row_spacings: 10 ~col_spacings: 10 - ~packing: scrolled_window#add_with_viewport () - in - - for i = 0 to 9 do - for j = 0 to 9 do - let label = Printf.sprintf "button (%d,%d)\n" i j in - GButton.toggle_button ~label - ~packing:(table#attach ~left: i ~top: j ~expand: `BOTH) () - done - done; - - let button = - GButton.button ~label: "close" ~packing: window#action_area#add () in - button#connect#clicked ~callback: Main.quit; - button#grab_default (); - window#show (); - Main.main () - -let _ = main () - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/socket.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/socket.ml deleted file mode 100644 index 687389ca9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/socket.ml +++ /dev/null @@ -1,16 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let w = GWindow.window ~title:"Socket example" () in - w#connect#destroy ~callback:Main.quit; - let vbox = GPack.vbox ~packing:w#add () in - let label = GMisc.label ~packing:vbox#pack () in - let socket = GBin.socket ~packing:vbox#add ~height:40 () in - label#set_text ("XID to plug into this socket: 0x" ^ - Int32.format "%x" socket#xwindow); - w#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/test.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/test.xpm deleted file mode 100644 index 9b0d2efdb..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/test.xpm +++ /dev/null @@ -1,92 +0,0 @@ -/* XPM */ -static char *openfile[] = { -/* width height num_colors chars_per_pixel */ -" 20 19 66 2", -/* colors */ -".. c None", -".# c #000000", -".a c #dfdfdf", -".b c #7f7f7f", -".c c #006f6f", -".d c #00efef", -".e c #009f9f", -".f c #004040", -".g c #00bfbf", -".h c #ff0000", -".i c #ffffff", -".j c #7f0000", -".k c #007070", -".l c #00ffff", -".m c #00a0a0", -".n c #004f4f", -".o c #00cfcf", -".p c #8f8f8f", -".q c #6f6f6f", -".r c #a0a0a0", -".s c #7f7f00", -".t c #007f7f", -".u c #5f5f5f", -".v c #707070", -".w c #00f0f0", -".x c #009090", -".y c #ffff00", -".z c #0000ff", -".A c #00afaf", -".B c #00d0d0", -".C c #00dfdf", -".D c #005f5f", -".E c #00b0b0", -".F c #001010", -".G c #00c0c0", -".H c #000f0f", -".I c #00007f", -".J c #005050", -".K c #002f2f", -".L c #dfcfcf", -".M c #dfd0d0", -".N c #006060", -".O c #00e0e0", -".P c #00ff00", -".Q c #002020", -".R c #dfc0c0", -".S c #008080", -".T c #001f1f", -".U c #003f3f", -".V c #007f00", -".W c #00000f", -".X c #000010", -".Y c #00001f", -".Z c #000020", -".0 c #00002f", -".1 c #000030", -".2 c #00003f", -".3 c #000040", -".4 c #00004f", -".5 c #000050", -".6 c #00005f", -".7 c #000060", -".8 c #00006f", -".9 c #000070", -"#. c #7f7f80", -"## c #9f9f9f", -/* pixels */ -"........................................", -"........................................", -"........................................", -".......................#.#.#............", -".....................#.......#...#......", -"...............................#.#......", -".......#.#.#.................#.#.#......", -".....#.y.i.y.#.#.#.#.#.#.#..............", -".....#.i.y.i.y.i.y.i.y.i.#..............", -".....#.y.i.y.i.y.i.y.i.y.#..............", -".....#.i.y.i.y.#.#.#.#.#.#.#.#.#.#.#....", -".....#.y.i.y.#.s.s.s.s.s.s.s.s.s.#......", -".....#.i.y.#.s.s.s.s.s.s.s.s.s.#........", -".....#.y.#.s.s.s.s.s.s.s.s.s.#..........", -".....#.#.s.s.s.s.s.s.s.s.s.#............", -".....#.#.#.#.#.#.#.#.#.#.#..............", -"........................................", -"........................................", -"........................................" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testdnd.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testdnd.ml deleted file mode 100644 index 8c10f7b98..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testdnd.ml +++ /dev/null @@ -1,510 +0,0 @@ -(* this is a translation in Caml of the gtk+ example testdnd.c *) - - -open Gaux -open Gtk -open GObj -open GMain - -(* GtkThread.start() *) - -let drag_icon_xpm = [| -"36 48 9 1"; -" c None"; -". c #020204"; -"+ c #8F8F90"; -"@ c #D3D3D2"; -"# c #AEAEAC"; -"$ c #ECECEC"; -"% c #A2A2A4"; -"& c #FEFEFC"; -"* c #BEBEBC"; -" ....................."; -" ..&&&&&&&&&&&&&&&&&&&."; -" ...&&&&&&&&&&&&&&&&&&&."; -" ..&.&&&&&&&&&&&&&&&&&&&."; -" ..&&.&&&&&&&&&&&&&&&&&&&."; -" ..&&&.&&&&&&&&&&&&&&&&&&&."; -" ..&&&&.&&&&&&&&&&&&&&&&&&&."; -" ..&&&&&.&&&@&&&&&&&&&&&&&&&."; -" ..&&&&&&.*$%$+$&&&&&&&&&&&&&."; -" ..&&&&&&&.%$%$+&&&&&&&&&&&&&&."; -" ..&&&&&&&&.#&#@$&&&&&&&&&&&&&&."; -" ..&&&&&&&&&.#$**#$&&&&&&&&&&&&&."; -" ..&&&&&&&&&&.&@%&%$&&&&&&&&&&&&&."; -" ..&&&&&&&&&&&.&&&&&&&&&&&&&&&&&&&."; -" ..&&&&&&&&&&&&.&&&&&&&&&&&&&&&&&&&."; -"................&$@&&&@&&&&&&&&&&&&."; -".&&&&&&&+&&#@%#+@#@*$%$+$&&&&&&&&&&."; -".&&&&&&&+&&#@#@&&@*%$%$+&&&&&&&&&&&."; -".&&&&&&&+&$%&#@&#@@#&#@$&&&&&&&&&&&."; -".&&&&&&@#@@$&*@&@#@#$**#$&&&&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&@%&%$&&&&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&$#@@$&&&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&&+&$+&$&@&$@&&$@&&&&&&&&&&."; -".&&&&&&&&&+&&#@%#+@#@*$%&+$&&&&&&&&."; -".&&&&&&&&&+&&#@#@&&@*%$%$+&&&&&&&&&."; -".&&&&&&&&&+&$%&#@&#@@#&#@$&&&&&&&&&."; -".&&&&&&&&@#@@$&*@&@#@#$#*#$&&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&$%&%$&&&&&&&&."; -".&&&&&&&&&&$#@@$&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&&&&+&$%&$$@&$@&&$@&&&&&&&&."; -".&&&&&&&&&&&+&&#@%#+@#@*$%$+$&&&&&&."; -".&&&&&&&&&&&+&&#@#@&&@*#$%$+&&&&&&&."; -".&&&&&&&&&&&+&$+&*@&#@@#&#@$&&&&&&&."; -".&&&&&&&&&&$%@@&&*@&@#@#$#*#&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&$%&%$&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&&&&&&&$#@@$&&&&&&&&&&&&&&&."; -".&&&&&&&&&&&&&&&+&$%&$$@&$@&&$@&&&&."; -".&&&&&&&&&&&&&&&+&&#@%#+@#@*$%$+$&&."; -".&&&&&&&&&&&&&&&+&&#@#@&&@*#$%$+&&&."; -".&&&&&&&&&&&&&&&+&$+&*@&#@@#&#@$&&&."; -".&&&&&&&&&&&&&&$%@@&&*@&@#@#$#*#&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&$%&%$&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&."; -"...................................." |] - - - -let trashcan_closed_xpm = [| -"64 80 17 1"; -" c None"; -". c #030304"; -"+ c #5A5A5C"; -"@ c #323231"; -"# c #888888"; -"$ c #1E1E1F"; -"% c #767677"; -"& c #494949"; -"* c #9E9E9C"; -"= c #111111"; -"- c #3C3C3D"; -"; c #6B6B6B"; -"> c #949494"; -", c #282828"; -"' c #808080"; -") c #545454"; -"! c #AEAEAC"; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" ==......=$$...=== "; -" ..$------)+++++++++++++@$$... "; -" ..=@@-------&+++++++++++++++++++-.... "; -" =.$$@@@-&&)++++)-,$$$$=@@&+++++++++++++,..$ "; -" .$$$$@@&+++++++&$$$@@@@-&,$,-++++++++++;;;&.. "; -" $$$$,@--&++++++&$$)++++++++-,$&++++++;%%'%%;;$@ "; -" .-@@-@-&++++++++-@++++++++++++,-++++++;''%;;;%*-$ "; -" +------++++++++++++++++++++++++++++++;;%%%;;##*!. "; -" =+----+++++++++++++++++++++++;;;;;;;;;;;;%'>>). "; -" .=)&+++++++++++++++++;;;;;;;;;;;;;;%''>>#>#@. "; -" =..=&++++++++++++;;;;;;;;;;;;;%###>>###+%== "; -" .&....=-+++++%;;####''''''''''##'%%%)..#. "; -" .+-++@....=,+%#####'%%%%%%%%%;@$-@-@*++!. "; -" .+-++-+++-&-@$$=$=......$,,,@;&)+!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" =+-++-+++-+++++++++!++++!++++!+++!++!+++= "; -" $.++-+++-+++++++++!++++!++++!+++!++!+.$ "; -" =.++++++++++++++!++++!++++!+++!++.= "; -" $..+++++++++++++++!++++++...$ "; -" $$=.............=$$ "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" " |] - -let trashcan_open_xpm = [| -"64 80 17 1"; -" c None"; -". c #030304"; -"+ c #5A5A5C"; -"@ c #323231"; -"# c #888888"; -"$ c #1E1E1F"; -"% c #767677"; -"& c #494949"; -"* c #9E9E9C"; -"= c #111111"; -"- c #3C3C3D"; -"; c #6B6B6B"; -"> c #949494"; -", c #282828"; -"' c #808080"; -") c #545454"; -"! c #AEAEAC"; -" "; -" "; -" "; -" "; -" "; -" "; -" .=.==.,@ "; -" ==.,@-&&&)-= "; -" .$@,&++;;;%>*- "; -" $,-+)+++%%;;'#+. "; -" =---+++++;%%%;%##@. "; -" @)++++++++;%%%%'#%$ "; -" $&++++++++++;%%;%##@= "; -" ,-++++)+++++++;;;'#%) "; -" @+++&&--&)++++;;%'#'-. "; -" ,&++-@@,,,,-)++;;;'>'+, "; -" =-++&@$@&&&&-&+;;;%##%+@ "; -" =,)+)-,@@&+++++;;;;%##%&@ "; -" @--&&,,@&)++++++;;;;'#)@ "; -" ---&)-,@)+++++++;;;%''+, "; -" $--&)+&$-+++++++;;;%%'';- "; -" .,-&+++-$&++++++;;;%''%&= "; -" $,-&)++)-@++++++;;%''%), "; -" =,@&)++++&&+++++;%'''+$@&++++++ "; -" .$@-++++++++++++;'#';,........=$@&++++ "; -" =$@@&)+++++++++++'##-.................=&++ "; -" .$$@-&)+++++++++;%#+$.....................=)+ "; -" $$,@-)+++++++++;%;@=........................,+ "; -" .$$@@-++++++++)-)@=............................ "; -" $,@---)++++&)@===............................,. "; -" $-@---&)))-$$=..............................=)!. "; -" --&-&&,,$=,==...........................=&+++!. "; -" =,=$..=$+)+++++&@$=.............=$@&+++++!++!. "; -" .)-++-+++++++++++++++++++++++++++!++!++!. "; -" .+-++-+++++++++++++++++++++++!+++!++!++!. "; -" .+-++-+++-+++++++++!+++!!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" =+-++-+++-+++++++++!++++!++++!+++!++!+++= "; -" $.++-+++-+++++++++!++++!++++!+++!++!+.$ "; -" =.++++++++++++++!++++!++++!+++!++.= "; -" $..+++++++++++++++!++++++...$ "; -" $$==...........==$$ "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" " |] - -let window = GWindow.window ~title:"DnD Test" () -let _ = window#misc#realize () - -let drag_icon = - GDraw.pixmap_from_xpm_d ~data:drag_icon_xpm ~window () - -let trashcan_open = - GDraw.pixmap_from_xpm_d ~data:trashcan_open_xpm ~window () - -let trashcan_closed = - GDraw.pixmap_from_xpm_d ~data:trashcan_closed_xpm ~window () - -let targets = [ - { target = "STRING"; flags = []; info = 0}; - { target = "text/plain"; flags = []; info = 0}; - { target = "text/uri-list"; flags = []; info = 2}; - { target = "application/x-rootwin-drop"; flags = []; info = 1} -] - -class drag_handler = object - method private beginning (_ : drag_context) = () - method private data_delete (_ : drag_context) = () - method private data_get (_ : drag_context) (_ : selection_data) - ~info:(_ : int) ~time:(_ : int) = () - method private data_received (_ : drag_context) ~x:(_ : int) ~y:(_ : int) - (_ : selection_data) ~info:(_ : int) ~time:(_ : int) = () - method private drop (_ : drag_context) ~x:(_ : int) ~y:(_ : int) - ~time:(_ : int) = false - method private ending (_ : drag_context) = () - method private leave (_ : drag_context) ~time:(_ : int) = () - method private motion (_ : drag_context) ~x:(_ : int) ~y:(_ : int) - ~time:(_ : int) = false -end - - -class target_drag ?packing ?show () = - let pixmap = GMisc.pixmap trashcan_closed ?packing ?show () in -object (self) - inherit widget pixmap#as_widget - inherit drag_handler - val mutable have_drag = false - - method leave _ ~time = - print_endline "leave"; flush stdout; - have_drag <- false; - pixmap#set_pixmap trashcan_closed - - method motion context ~x ~y ~time = - if not have_drag then begin - have_drag <- true; - pixmap#set_pixmap trashcan_open - end; - let source_typename = - try - context#source_widget#misc#get_type - with Gpointer.Null -> "unknown" - in - Printf.printf "motion, source %s\n" source_typename; flush stdout; - context#status [context#suggested_action] ~time; - true - - method drop context ~x ~y ~time = - prerr_endline "drop"; flush stdout; - have_drag <- false; - pixmap#set_pixmap trashcan_closed; - match context#targets with - | [] -> false - | d :: _ -> pixmap#drag#get_data d ~context ~time; true - - method data_received context ~x ~y data ~info ~time = - if data#format = 8 then begin - Printf.printf "Received \"%s\" in trashcan\n" data#data; - flush stdout; - context#finish ~success:true ~del:false ~time - end - else context#finish ~success:false ~del:false ~time - - initializer - pixmap#drag#dest_set targets ~actions:[`COPY;`MOVE]; - pixmap#drag#connect#leave ~callback:self#leave; - pixmap#drag#connect#motion ~callback:self#motion; - pixmap#drag#connect#drop ~callback:self#drop; - pixmap#drag#connect#data_received ~callback:self#data_received; - () -end - -class label_drag ?packing ?show () = - let label = GMisc.label ~text:"Drop Here\n" ?packing ?show () in -object (self) - inherit widget label#as_widget - inherit drag_handler - method data_received context ~x ~y data ~info ~time = - if data#format = 8 then begin - Printf.printf "Received \"%s\" in label\n" data#data; - flush stdout; - context#finish ~success:true ~del:false ~time - end - else context#finish ~success:false ~del:false ~time - - initializer - label#drag#dest_set targets ~actions:[`COPY; `MOVE ]; - label#drag#connect#data_received ~callback:self#data_received; - () -end - -class source_drag ?packing ?show () = - let button = GButton.button ~label:"Drag Here\n" ?packing ?show () in -object (self) - inherit widget button#as_widget - inherit drag_handler - method data_get _ data ~info ~time = - if info = 1 then begin - print_endline "I was dropped on the rootwin"; flush stdout - end - else if info = 2 then - data#set ~typ:data#target ~format:8 - ~data:"file:///home/otaylor/images/weave.png" - else - data#set ~typ:data#target ~format:8 ~data:"I'm Data!" - - method data_delete _ = - print_endline "Delete the data!"; flush stdout - - initializer - button#drag#source_set targets - ~modi:[`BUTTON1; `BUTTON3 ] ~actions:[`COPY; `MOVE ]; - button#drag#source_set_icon drag_icon; - button#drag#connect#data_get ~callback:self#data_get; - button#drag#connect#data_delete ~callback:self#data_delete; - () -end - -class popup () = object (self) - inherit drag_handler - val mutable popup_window = (None : GWindow.window option) - val mutable popped_up = false - val mutable in_popup = false - val mutable popdown_timer = None - val mutable popup_timer = None - - method timer = popup_timer - method remove_timer () = - may popup_timer - ~f:(fun pdt -> Timeout.remove pdt; popup_timer <- None) - method add_timer time ~callback = - popup_timer <- Some (Timeout.add ~ms:time ~callback) - - method popdown () = - popdown_timer <- None; - may popup_window ~f:(fun w -> w#misc#hide ()); - popped_up <- false; - false - - method motion (_ : drag_context) ~x ~y ~time = - if not in_popup then begin - in_popup <- true; - may popdown_timer ~f: - begin fun pdt -> - print_endline "removed popdown"; flush stdout; - Timeout.remove pdt; - popdown_timer <- None - end - end; - true - - method leave (_ : drag_context) ~time = - if in_popup then begin - in_popup <- false; - if popdown_timer = None then begin - print_endline "added popdown"; flush stdout; - popdown_timer <- Some (Timeout.add ~ms:500 ~callback:self#popdown) - end - end - - method popup () = - if not popped_up then begin - if popup_window = None then begin - let w = GWindow.window ~kind:`POPUP ~position:`MOUSE () in - popup_window <- Some w; - let table = GPack.table ~rows:3 ~columns:3 ~packing:w#add () in - for i = 0 to 2 do - for j = 0 to 2 do - let button = - GButton.button ~label:(string_of_int i ^ "," ^ string_of_int j) - ~packing:(table#attach ~left:i ~top:j ~expand:`BOTH) () - in - button#drag#dest_set targets ~actions:[`COPY; `MOVE ]; - button#drag#connect#motion ~callback:self#motion; - button#drag#connect#leave ~callback:self#leave; - done - done - end; - may popup_window ~f:(fun w -> w#show ()); - popped_up <- true - end; - popdown_timer <- Some (Timeout.add ~ms:500 ~callback:self#popdown); - print_endline "added popdown"; flush stdout; - self#remove_timer (); - false -end - -class popsite ?packing ?show () = - let label = GMisc.label ~text:"Popup\n" ?packing ?show () - and popup = new popup () in -object (self) - inherit widget label#as_widget - inherit drag_handler - method motion _ ~x ~y ~time = - if popup#timer = None then begin - print_endline "added popdown"; flush stdout; - popup#add_timer 500 ~callback:popup#popup - end; - true - - method leave _ ~time = - popup#remove_timer () - - initializer - label#drag#dest_set targets ~actions:[`COPY; `MOVE ]; - label#drag#connect#motion ~callback:self#motion; - label#drag#connect#leave ~callback:self#leave; - () -end - -let main () = - window#connect#destroy ~callback: Main.quit; - let table = GPack.table ~rows:2 ~columns:2 ~packing:window#add () in - let attach = table#attach ~expand:`BOTH in - new label_drag ~packing:(attach ~left:0 ~top:0) (); - new target_drag ~packing:(attach ~left:1 ~top:0) (); - new source_drag ~packing:(attach ~left:0 ~top:1) (); - new popsite ~packing:(attach ~left:1 ~top:1) (); - - window#show (); - Main.main () - -let _ = - main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testgtk.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testgtk.ml deleted file mode 100644 index 6c937f56d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testgtk.ml +++ /dev/null @@ -1,1140 +0,0 @@ -(* $Id$ *) - -open GdkKeysyms -open GMain -open GObj - -let create_bbox direction title spacing child_w child_h layout = - let frame = GBin.frame ~label: title () in - let bbox = GPack.button_box direction ~border_width: 5 ~packing: frame#add - ~layout: layout ~child_height: child_h ~child_width: child_w - ~spacing: spacing () in - GButton.button ~label: "OK" ~packing: bbox#add (); - GButton.button ~label: "Cancel" ~packing: bbox#add (); - GButton.button ~label: "Help" ~packing: bbox#add (); - frame#coerce - -let create_button_box = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "Button Boxes" ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let main_vbox = GPack.vbox ~packing: (window#add) () in - - let frame_horz = GBin.frame ~label: "Horizontal Button Boxes" - ~packing:(main_vbox#pack ~expand:true ~fill:true ~padding:10) () in - - let vbox = GPack.vbox ~border_width: 10 ~packing: frame_horz#add () in - - vbox#add (create_bbox `HORIZONTAL "Spread" 40 85 20 `SPREAD); - vbox#pack (create_bbox `HORIZONTAL "Edge" 40 85 20 `EDGE) - ~expand: true ~fill: true ~padding: 5; - vbox#pack (create_bbox `HORIZONTAL "Start" 40 85 20 `START) - ~expand: true ~fill: true ~padding: 5; - vbox#pack (create_bbox `HORIZONTAL "End" 40 85 20 `END) - ~expand: true ~fill: true ~padding: 5; - - let frame_vert = GBin.frame ~label: "Vertical Button Boxes" - ~packing:(main_vbox#pack ~expand:true ~fill:true ~padding:10) () in - - let hbox = GPack.hbox ~border_width: 10 ~packing: frame_vert#add () in - hbox#add (create_bbox `VERTICAL "Spread" 30 85 20 `SPREAD); - hbox#pack (create_bbox `VERTICAL "Edge" 30 85 20 `EDGE) - ~expand: true ~fill: true ~padding: 5; - hbox#pack (create_bbox `VERTICAL "Start" 30 85 20 `START) - ~expand: true ~fill: true ~padding: 5; - hbox#pack (create_bbox `VERTICAL "End" 30 85 20 `END) - ~expand: true ~fill: true ~padding: 5; - window #show () - - | Some window -> window #destroy () -in aux - - -let button_window button _ = - if button #misc#visible then - button #misc#hide () - else - button #misc#show () - -let create_buttons = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "GtkButton" ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let box1 = GPack.vbox ~packing:window#add () in - - let table = GPack.table ~rows:3 ~columns:3 ~homogeneous:false - ~row_spacings:3 ~col_spacings:3 ~border_width:10 - ~packing:box1#add () in - - let button = Array.create 9 (GButton.button ~label:"button1" ()) in - for i = 2 to 9 do - button.(i-1) <- GButton.button ~label:("button" ^ string_of_int i) (); - done; - - let f i l r t b = - button.(i) #connect#clicked ~callback:(button_window button.(i+1)); - table #attach button.(i)#coerce ~left:l ~right:r ~top:t ~bottom:b - ~xpadding:0 ~ypadding:0 ~expand:`BOTH - in - f 0 0 1 0 1; - f 1 1 2 1 2; - f 2 2 3 2 3; - f 3 0 1 2 3; - f 4 2 3 0 1; - f 5 1 2 2 3; - f 6 1 2 0 1; - f 7 2 3 1 2; - button.(8) #connect#clicked ~callback:(button_window button.(0)); - table #attach button.(8)#coerce ~left:0 ~right:1 ~top:1 ~bottom:2 - ~xpadding:0 ~ypadding:0 ~expand:`BOTH; - - GMisc.separator `HORIZONTAL ~packing:box1#pack (); - - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () -in aux - - - -let create_check_buttons = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "GtkCheckButton" - ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let box1 = GPack.vbox ~packing:window#add () in - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - for i = 1 to 3 do - GButton.check_button ~label:("button" ^ (string_of_int i)) - ~packing: box2#add (); - done; - - GMisc.separator `HORIZONTAL ~packing: box1#pack (); - - let box2 = GPack.vbox ~spacing:10 ~border_width:10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing:box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () -in aux - - -let create_radio_buttons = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "radio buttons" - ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let box1 = GPack.vbox ~packing:window#add () in - - let box2 = GPack.vbox ~spacing:10 ~border_width:10 - ~packing: box1#pack () in - - let button = GButton.radio_button ~label:"button1" - ~packing: box2#add () in - - let button = GButton.radio_button ~label:"button2" ~group:button#group - ~packing: box2#add ~active:true () in - - let button = GButton.radio_button ~label:"button3" ~group:button#group - ~packing: box2#add () in - - GMisc.separator `HORIZONTAL ~packing: box1#pack (); - - let box2 = GPack.vbox ~spacing:10 ~border_width:10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box2#add () in - button #connect#clicked ~callback: window #destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () -in aux - - -let create_toggle_buttons = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "GtkToggleButton" - ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let box1 = GPack.vbox ~packing: window#add () in - - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - for i = 1 to 3 do - GButton.toggle_button ~label:("button" ^ (string_of_int i)) - ~packing: box2#add () - done; - - GMisc.separator `HORIZONTAL ~packing: box1#pack (); - - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing:box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () -in aux - - -(* Menus *) - -let create_menu depth tearoff = - let rec aux depth tearoff = - let menu = GMenu.menu () and group = ref None in - if tearoff then ignore (GMenu.tearoff_item ~packing: menu#append ()); - for i = 0 to 4 do - let menuitem = GMenu.radio_menu_item ?group:!group - ~label:("item " ^ string_of_int depth ^ " - " ^ string_of_int (i+1)) - ~packing:menu#append ~show_toggle:(depth mod 2 <> 0) - () in - group := Some (menuitem #group); - if i = 3 then menuitem #misc#set_sensitive false; - if depth > 1 then - menuitem #set_submenu (aux (depth-1) true) - done; - - menu - in aux depth tearoff - - -let create_menus = - let rw = ref None in - fun () -> - match !rw with - | None -> - let window = GWindow.window ~title: "menus" - ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - window #event#connect#delete ~callback:(fun _ -> true); - - let accel_group = GtkData.AccelGroup.create () in - window #add_accel_group accel_group ; - - let box1 = GPack.vbox ~packing:window#add () in - - let menubar = GMenu.menu_bar ~packing: box1#pack () in - - let menuitem = GMenu.menu_item ~label:"test\nline2" - ~packing: menubar#append () in - menuitem #set_submenu (create_menu 2 true); - - let menuitem = GMenu.menu_item ~label:"foo" - ~packing: menubar#append () in - menuitem #set_submenu (create_menu 3 true); - menuitem #right_justify (); - - let box2 = GPack.vbox ~spacing: 10 ~packing: box1#add - ~border_width: 10 () in - - let menu = create_menu 1 false in - menu #set_accel_group accel_group; - - let menuitem = GMenu.check_menu_item ~label:"Accelerate Me" - ~packing:menu#append () in - menuitem #add_accelerator ~group:accel_group _M - ~flags:[`VISIBLE; `SIGNAL_VISIBLE]; - - let menuitem = GMenu.check_menu_item ~label:"Accelerator Locked" - ~packing:menu#append () in - menuitem #add_accelerator ~group:accel_group _L - ~flags:[`VISIBLE; `LOCKED]; - - let menuitem = GMenu.check_menu_item ~label:"Accelerators Frozen" - ~packing:menu#append () in - menuitem #add_accelerator ~group:accel_group _F - ~flags:[`VISIBLE]; - menuitem #misc#lock_accelerators (); - - let optionmenu = GMenu.option_menu ~packing: box2#add () in - optionmenu #set_menu menu; - optionmenu #set_history 3; - - GMisc.separator `HORIZONTAL ~packing: box1#pack (); - - let box2 = GPack.vbox ~spacing:10 ~border_width:10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () - - - -(* Modal windows *) - -let cmw_destroy_cb _ = - Main.quit () - -let cmw_color parent _ = - let csd = GWindow.color_selection_dialog ~modal:true - ~title:"This is a modal color selection dialog" () in - csd # set_transient_for parent; - csd # connect#destroy ~callback:cmw_destroy_cb; - csd # ok_button # connect#clicked ~callback:csd#destroy; - csd # cancel_button # connect#clicked ~callback:csd#destroy; - csd # show (); - Main.main () - -let cmw_file parent _ = - let fs = GWindow.file_selection ~modal:true - ~title:"This is a modal file selection dialog" () in - fs # set_transient_for parent; - fs # connect#destroy ~callback:cmw_destroy_cb; - fs # ok_button # connect#clicked ~callback:fs#destroy; - fs # cancel_button # connect#clicked ~callback:fs#destroy; - fs # show (); - Main.main () - -let create_modal_window () = - let window = GWindow.window ~modal:true ~title:"This window is modal" () in - let box1 = GPack.vbox ~spacing:5 ~border_width:3 ~packing:window#add () in - let frame1 = GBin.frame ~label:"Standard dialogs in modal form" - ~packing:(box1#pack ~expand:true ~padding:4) () in - let box2 = GPack.vbox ~homogeneous:true ~spacing:5 ~packing:frame1#add () in - let btnColor = GButton.button ~label:"Color" - ~packing:(box2#pack ~padding:4) () - and btnFile = GButton.button ~label:"File selection" - ~packing:(box2#pack ~padding:4) () - and btnClose = GButton.button ~label:"Close" - ~packing:(box2#pack ~padding:4) () in - GMisc.separator `HORIZONTAL - ~packing:(box1#pack ~padding:4) (); - - btnClose #connect#clicked ~callback:(fun _ -> window #destroy ()); - window #connect#destroy ~callback:cmw_destroy_cb; - btnColor #connect#clicked ~callback: (cmw_color window); - btnFile #connect#clicked ~callback: (cmw_file window); - window # show (); - Main.main () - - -(* corrected bug in testgtk.c *) -let scrolled_windows_remove, scrolled_windows_clean = - let parent = ref None and float_parent = ref None in - let remove (scrollwin : GBin.scrolled_window) () = - match !parent with - | None -> - parent := scrollwin#misc#parent; - let f = GWindow.window ~title:"new parent" () in - float_parent := Some f#coerce; - f #set_default_size ~width:200 ~height:200; - scrollwin #misc#reparent f#coerce; - f #show () - | Some p -> - scrollwin #misc#reparent p; - match !float_parent with - | None -> () - | Some f -> - f #destroy (); - float_parent := None; - parent := None - and clean () = - match !float_parent with - | None -> () - | Some p -> p #destroy (); parent := None; float_parent := None - in remove, clean - - -(* scrolled windows *) - -let create_scrolled_windows = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.dialog ~title:"dialog" ~border_width:0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - window #connect#destroy ~callback:scrolled_windows_clean; - - let scrolled_window = GBin.scrolled_window ~border_width:10 - ~hpolicy: `AUTOMATIC ~vpolicy:`AUTOMATIC - ~packing: window#vbox#add () in - - let table = GPack.table ~rows:20 ~columns:20 ~row_spacings:10 - ~col_spacings:10 ~packing:scrolled_window#add_with_viewport () in - table #focus#set_hadjustment (Some scrolled_window # hadjustment); - table #focus#set_vadjustment (Some scrolled_window # vadjustment); - - for i = 0 to 19 do - for j=0 to 19 do - GButton.toggle_button - ~label:("button ("^ string_of_int i ^","^ string_of_int j ^")\n") - ~packing:(table #attach ~left:i ~top:j ~expand:`BOTH) () - done - done; - - let button = GButton.button ~label:"close" - ~packing:window#action_area#add () in - button #connect#clicked ~callback:(window #destroy); - button #grab_default (); - - let button = GButton.button ~label:"remove" - ~packing:window#action_area#add () in - button #connect#clicked - ~callback:(scrolled_windows_remove scrolled_window); - button #grab_default (); - - window #set_default_size ~width:300 ~height:300; - window #show () - - | Some window -> window #destroy () - in aux - - -(* Toolbar *) - -let make_toolbar (toolbar : GButton.toolbar) window = - let icon = - let info = GDraw.pixmap_from_xpm ~file:"test.xpm" ~window () in - fun () -> (GMisc.pixmap info ())#coerce - in - - toolbar #insert_button ~text:"Horizontal" - ~tooltip:"Horizontal toolbar layout" - ~tooltip_private:"Toolbar/Horizontal" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_orientation `HORIZONTAL) (); - - toolbar #insert_button ~text:"Vertical" - ~tooltip:"Vertical toolbar layout" - ~tooltip_private:"Toolbar/Vertical" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_orientation `VERTICAL) (); - - toolbar #insert_space (); - - toolbar #insert_button ~text:"Icons" - ~tooltip: "Only show toolbar icons" - ~tooltip_private:"Toolbar/IconsOnly" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_style `ICONS) (); - - toolbar #insert_button ~text:"Text" - ~tooltip: "Only show toolbar text" - ~tooltip_private:"Toolbar/TextOnly" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_style `TEXT) (); - - toolbar #insert_button ~text:"Both" - ~tooltip: "Show toolbar icons and text" - ~tooltip_private:"Toolbar/Both" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_style `BOTH) (); - - toolbar #insert_space (); - - GEdit.entry ~packing:(toolbar #insert_widget - ~tooltip:"This is an unusable GtkEntry" - ~tooltip_private: "Hey don't click me!!!") (); - - toolbar #insert_button ~text:"Small" - ~tooltip:"Use small spaces" - ~tooltip_private:"Toolbar/Small" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_space_size 5) (); - - toolbar #insert_button ~text:"Big" - ~tooltip:"Use big spaces" - ~tooltip_private:"Toolbar/Big" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_space_size 10) (); - - toolbar #insert_space (); - - toolbar #insert_button ~text:"Enable" - ~tooltip:"Enable tooltips" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_tooltips true) (); - - toolbar #insert_button ~text:"Disable" - ~tooltip:"Disable tooltips" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_tooltips false) (); - - toolbar #insert_space (); - - toolbar #insert_button ~text:"Borders" - ~tooltip:"Show borders" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_button_relief `NORMAL) (); - - toolbar #insert_button ~text:"Borderless" - ~tooltip:"Hide borders" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_button_relief `NONE) (); - - toolbar #insert_space (); - - toolbar #insert_button ~text:"Empty" - ~tooltip:"Empty spaces" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_space_style `EMPTY) (); - - toolbar #insert_button ~text:"Lines" - ~tooltip:"Lines in spaces" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_space_style `LINE) (); - () - -let create_toolbar = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "Toolbar test" - ~border_width: 0 ~allow_shrink: false ~allow_grow: true - ~auto_shrink: true () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - window #misc #realize (); - - let toolbar = GButton.toolbar ~packing: window#add () in - make_toolbar toolbar window; - - window #show () - - | Some window -> window #destroy () - in aux - - -(* Handlebox *) - -let handle_box_child_signal action (hb : GBin.handle_box) child = - Printf.printf "%s: child <%s> %s\n" hb#misc#get_type child#misc#get_type action - -let create_handle_box = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "Handle box test" - ~border_width: 20 ~allow_shrink: false ~allow_grow: true - ~auto_shrink: true () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - window #misc #realize (); - - let vbox = GPack.vbox ~packing:window#add () in - - GMisc.label ~text:"Above" ~packing:vbox#add (); - GMisc.separator `HORIZONTAL ~packing:vbox#add (); - - let hbox = GPack.hbox ~spacing:10 ~packing:vbox#add () in - GMisc.separator `HORIZONTAL ~packing:vbox#add (); - - GMisc.label ~text:"Below" ~packing:vbox#add (); - let handle_box = GBin.handle_box ~packing:hbox#pack () in - handle_box #connect#child_attached - ~callback:(handle_box_child_signal "attached" handle_box); - handle_box #connect#child_detached - ~callback:(handle_box_child_signal "detached" handle_box); - - let toolbar = GButton.toolbar ~packing:handle_box#add () in - make_toolbar toolbar window; - toolbar #set_button_relief `NORMAL; - - let handle_box = GBin.handle_box ~packing:hbox#pack () in - handle_box #connect#child_attached - ~callback:(handle_box_child_signal "attached" handle_box); - handle_box #connect#child_detached - ~callback:(handle_box_child_signal "detached" handle_box); - - let handle_box2 = GBin.handle_box ~packing:handle_box#add () in - handle_box2 #connect#child_attached - ~callback:(handle_box_child_signal "attached" handle_box); - handle_box2 #connect#child_detached - ~callback:(handle_box_child_signal "detached" handle_box); - - GMisc.label ~text:"Fooo!" ~packing:handle_box2#add (); - window #show () - - | Some window -> window #destroy () - in aux - - - -(* Tree *) - -class tree_and_buttons () = -object - val tree = GTree.tree () - val add_button = GButton.button ~label: "Add Item" () - val remove_button = GButton.button ~label:"Remove Item(s)" () - val subtree_button = GButton.button ~label:"Remove Subtree" () - val mutable nb_item_add = 0 - - method tree = tree - method add_button = add_button - method remove_button = remove_button - method subtree_button = subtree_button - method nb_item_add = nb_item_add - method incr_nb_item_add = nb_item_add <- nb_item_add + 1 -end - -let cb_tree_destroy_event w = () - -let cb_add_new_item (treeb : tree_and_buttons) _ = - let subtree = - match treeb#tree#selection with - | [] -> treeb#tree - | selected_item :: _ -> - match selected_item#subtree with Some t -> t - | None -> - let t = GTree.tree () in - selected_item#set_subtree t; - t - in - let item_new = GTree.tree_item ~packing:(subtree#insert ~pos:0) - ~label:("item add " ^ string_of_int treeb # nb_item_add) () in - treeb #incr_nb_item_add - - -let cb_remove_item (treeb : tree_and_buttons) _ = - let tree = treeb#tree in - match tree #selection with - | [] -> () - | selected -> tree #remove_items selected - - -let cb_remove_subtree (treeb : tree_and_buttons) _ = - match treeb#tree #selection with - | [] -> () - | selected_item :: _ -> - try selected_item#subtree; selected_item#remove_subtree () - with Not_found -> () - -let cb_tree_changed (treeb : tree_and_buttons) _ = - let tree = treeb#tree in - let nb_selected = List.length (tree#selection) in - if nb_selected = 0 then begin - treeb # remove_button #misc#set_sensitive false; - treeb # subtree_button #misc#set_sensitive false; - end else begin - treeb # remove_button #misc#set_sensitive true; - treeb # subtree_button #misc#set_sensitive (nb_selected = 1); - treeb # add_button #misc#set_sensitive (nb_selected = 1); - end - - -let rec create_subtree (item : GTree.tree_item) level nb_item_max - recursion_level_max = - if level = recursion_level_max then () - else begin - let item_subtree = GTree.tree () in - for nb_item = 1 to nb_item_max do - let item_new = GTree.tree_item ~packing:(item_subtree#insert ~pos:0) - ~label:("item" ^ string_of_int level ^ "-" ^ string_of_int nb_item) () - in - create_subtree item_new (level + 1) nb_item_max recursion_level_max; - done; - item # set_subtree item_subtree - end - - -let create_tree_sample selection_mode draw_line view_line no_root_item - nb_item_max recursion_level_max = - let window = GWindow.window ~title:"Tree Sample" () in - let box1 = GPack.vbox ~packing:window#add () in - let box2 = GPack.vbox ~packing:box1#add ~border_width:5 () in - let scrolled_win = GBin.scrolled_window ~packing:box2#add - ~hpolicy: `AUTOMATIC ~vpolicy:`AUTOMATIC - ~width:200 ~height:200 () in - - let root_treeb = new tree_and_buttons () in - let root_tree = root_treeb#tree in - root_tree #connect#selection_changed ~callback:(cb_tree_changed root_treeb); - scrolled_win #add_with_viewport root_tree#coerce; - root_tree #set_selection_mode selection_mode; - root_tree #set_view_lines draw_line; - root_tree #set_view_mode - (match view_line with `LINE -> `ITEM | `ITEM -> `LINE); - - if no_root_item then - for nb_item = 1 to nb_item_max do - let item_new = GTree.tree_item ~label:("item0-" ^ string_of_int nb_item) - ~packing:(root_tree#insert ~pos:0) () in - create_subtree item_new 1 nb_item_max recursion_level_max; - done - else begin - let root_item = GTree.tree_item ~label:"root item" - ~packing:(root_tree #insert ~pos:0) () in - create_subtree root_item 0 nb_item_max recursion_level_max - end; - - let box2 = GPack.vbox ~border_width:5 ~packing:box1#pack () in - - let button = root_treeb #add_button in - button #misc#set_sensitive false; - button #connect#clicked ~callback:(cb_add_new_item root_treeb); - box2 #add button#coerce; - - let button = root_treeb #remove_button in - button #misc#set_sensitive false; - button #connect#clicked ~callback:(cb_remove_item root_treeb); - box2 #add button#coerce; - - let button = root_treeb #subtree_button in - button #misc#set_sensitive false; - button #connect#clicked ~callback:(cb_remove_subtree root_treeb); - box2 #add button#coerce; - - GMisc.separator `HORIZONTAL ~packing:box1#pack (); - - let button = GButton.button ~label:"Close" ~packing:box2#add () in - button #connect#clicked ~callback:window#destroy; - - window #show () - - -let create_tree_mode_window = - let rw = ref None in - let aux () = - let default_number_of_item = 3.0 in - let default_recursion_level = 3.0 in - let single_button = GButton.radio_button ~label:"SINGLE" () in - let browse_button = GButton.radio_button - ~group:single_button#group ~label:"BROWSE" () in - let multiple_button = GButton.radio_button - ~group:browse_button#group ~label:"MULTIPLE" () in - let draw_line_button = GButton.check_button ~label:"Draw line" () in - let view_line_button = GButton.check_button ~label:"View line mode" () in - let no_root_item_button = GButton.check_button - ~label:"Without Root item" () in - let nb_item_spinner = GEdit.spin_button - ~adjustment:(GData.adjustment ~value:default_number_of_item - ~lower:1.0 ~upper:255.0 ~step_incr:1.0 ~page_incr:5.0 - ~page_size:0.0 ()) ~rate:0. ~digits:0 () in - let recursion_spinner = GEdit.spin_button - ~adjustment:(GData.adjustment ~value:default_recursion_level - ~lower:0.0 ~upper:255.0 ~step_incr:1.0 ~page_incr:5.0 - ~page_size:0.0 ()) ~rate:0. ~digits:0 () in - let cb_create_tree _ = - let selection_mode = - if single_button #active then `SINGLE - else if browse_button #active then `BROWSE - else `MULTIPLE in - let nb_item = nb_item_spinner#value_as_int in - let recursion_level = recursion_spinner#value_as_int in - create_tree_sample selection_mode (draw_line_button #active) - (if (view_line_button #active) then `ITEM else `LINE) - (no_root_item_button #active) - nb_item recursion_level - in - match !rw with - | None -> - let window = GWindow.window ~title:"Set Tree Parameters" () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let box1 = GPack.vbox ~packing:window#add () in - - let box2 = GPack.vbox ~spacing:5 ~packing:box1#add - ~border_width:5 () in - - let box3 = GPack.hbox ~spacing:5 ~packing:box2#add () in - - let frame = GBin.frame ~label:"Selection Mode" ~packing:box3#add () - in - - let box4 = GPack.vbox ~packing:frame#add ~border_width:5 () in - - box4 #add single_button#coerce; - box4 #add browse_button#coerce; - box4 #add multiple_button#coerce; - - let frame = GBin.frame ~label:"Options" ~packing:box3#add () in - - let box4 = GPack.vbox ~packing:frame#add ~border_width:5 () in - box4 #add draw_line_button#coerce; - draw_line_button #set_active true; - - box4 #add view_line_button#coerce; - view_line_button #set_active true; - - box4 #add no_root_item_button#coerce; - - let frame = GBin.frame ~label:"Size Parameters" ~packing:box2#add () - in - - let box4 = GPack.hbox ~spacing:5 ~packing:frame#add ~border_width:5 () in - - let box5 = GPack.hbox ~spacing:5 ~packing:box4#add () in - let label = GMisc.label ~text:"Number of items : " - ~xalign:0. ~yalign:0.5 ~packing:box5#pack () in - box5 #pack nb_item_spinner#coerce; - - let label = GMisc.label ~text:"Depth : " ~xalign:0. ~yalign:0.5 - ~packing:box5#pack () in - box5 #pack recursion_spinner#coerce; - - GMisc.separator `HORIZONTAL ~packing:box1#pack (); - - let box2 = GPack.hbox ~homogeneous:true ~spacing:10 ~border_width:5 - ~packing:box1#pack () in - - let button = GButton.button ~label:"Create Tree" - ~packing:box2#add () in - button #connect#clicked ~callback:cb_create_tree; - - let button = GButton.button ~label: "close" ~packing:box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () - in aux - - - -(* Tooltips *) - -let tips_query_widget_entered (toggle : GButton.toggle_button) - (tq : GMisc.tips_query) _ ~text ~privat:_ = - if toggle #active then begin - tq #set_text - (match text with - | None -> "There is no tip!" | Some _ -> "There is a tip!"); - GtkSignal.stop_emit () - end - -let tips_query_widget_selected (w : #widget option) ~text ~privat:tp _ = - (match w with - | None -> () - | Some w -> - Printf.printf "Help \"%s\" requested for <%s>\n" - (match tp with None -> "None" | Some t -> t) - (w #misc#get_type)); - true - - -let create_tooltips = - let rw = ref None in - let aux () = - match !rw with - | None -> - - let window = GWindow.window ~title:"Tooltips" - ~border_width:0 ~allow_shrink:false ~allow_grow:false - ~auto_shrink:true () in - rw := Some window; - let tooltips = GData.tooltips () in - window #connect#destroy - ~callback:(fun _ -> tooltips #destroy (); rw := None); - - let box1 = GPack.vbox ~packing:window#add () in - - let box2 = GPack.vbox ~spacing:10 ~border_width:10 - ~packing:box1#add () in - - let button = GButton.toggle_button ~label:"button1" - ~packing:box2#add () - in - tooltips #set_tip button#coerce ~text:"This is button1" - ~privat:"ContextHelp/buttons/1"; - - let button = GButton.toggle_button ~label:"button2" - ~packing:box2#add () - in - tooltips #set_tip button#coerce - ~text:"This is button 2. This is also a really long tooltip which probably won't fit on a single line and will therefore need to be wrapped. Hopefully the wrapping will work correctly." - ~privat:"ContextHelp/buttons/2_long"; - - let toggle = GButton.toggle_button ~label:"Override TipsQuery Label" - ~packing:box2#add () in - tooltips #set_tip toggle#coerce ~text:"Toggle TipsQuery view." - ~privat:"Hi msw! ;)"; - - let box3 = GPack.vbox ~spacing:5 ~border_width:5 () in - - let button = GButton.button ~label:"[?]" - ~packing:box3#pack () in - - let tips_query = GMisc.tips_query ~packing:box3#add () in - button #connect#clicked ~callback:(tips_query #start); - - tooltips #set_tip button#coerce ~text:"Start the Tooltips Inspector" - ~privat:"ContextHelp/buttons/?"; - - tips_query #set_caller button#coerce; - tips_query #connect#widget_entered - ~callback:(tips_query_widget_entered toggle tips_query); - tips_query #connect#widget_selected ~callback:tips_query_widget_selected; - - let frame = GBin.frame ~label:"Tooltips Inspector" - ~border_width:0 ~packing:(box2#pack ~expand:true ~padding:10) - ~label_xalign:0.5 ~label_yalign:0.0 () in - frame #add box3#coerce; - - GMisc.separator `HORIZONTAL ~packing:box1#pack (); - - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - tooltips #set_tip button#coerce ~text:"Push this button to close window" - ~privat:"ContextHelp/buttons/Close"; - - window #show (); - - | Some window -> window #destroy () - in aux - - -(* Labels *) -let create_labels = - let rw = ref None in - let aux () = - match !rw with - | None -> - - let window = GWindow.window ~title:"Labels" ~border_width:5 () in - rw := Some window; - window #connect#destroy - ~callback:(fun _ -> rw := None); - - let hbox = GPack.hbox ~spacing:5 ~packing:window#add () in - let vbox = GPack.vbox ~spacing:5 ~packing:hbox#add () in - - let frame = GBin.frame ~label:"Normal Label" - ~packing:vbox#pack () in - GMisc.label ~text:"This is a normal label" ~packing:frame#add (); - - let frame = GBin.frame ~label:"Multi_line Label" - ~packing:vbox#pack () in - GMisc.label ~packing:frame#add - ~text:"This is a multi-line label.\nSecond line\nThird line" (); - - let frame = GBin.frame ~label:"Left Justified Label" - ~packing:vbox#pack () in - GMisc.label ~packing:frame#add ~justify:`LEFT - ~text:"This is a left justified\nmulti_line label\nThird line" (); - - let frame = GBin.frame ~label:"Right Justified Label" - ~packing:vbox#pack () in - GMisc.label ~packing:frame#add ~justify:`RIGHT - ~text:"This is a right justified\nmulti_line label\nThird line" (); - - let vbox = GPack.vbox ~spacing:5 ~packing:hbox#add () in - - let frame = GBin.frame ~label:"Line wrapped Label" - ~packing:vbox#pack () in - GMisc.label ~packing:frame#add ~line_wrap:true - ~text:"This is an example of a line-wrapped label. It should not be taking up the entire width allocated to it, but automatically wraps the words to fit. The time has come, for all good men, to come to the aid of their party. The sixth sheik's six sheep's sick.\n It supports multiple paragraphs correctly, and correctly adds many extra spaces. " (); - - let frame = GBin.frame ~label:"Underlined Label" - ~packing:vbox#pack () in - GMisc.label ~text:"This label is underlined!\nThis one is underlined in a quite a funky fashion" ~packing:frame#add - ~justify:`LEFT ~pattern:"_________________________ _ _________ _ _____ _ __ __ ___ ____ _____" (); - - window #show (); - - | Some window -> window #destroy () - in aux - - -(* reparent *) - - -let set_parent child old_parent = - let name_opt = function - | None -> "(NULL)" - | Some w -> w#misc#get_type in - Printf.printf - "set parent for \"%s\": new parent: \"%s\", old parent: \"%s\"\n" - child#misc#get_type - (match child#misc#parent with Some p -> p#misc#get_type | None -> "(NULL)") - (name_opt old_parent) - -let reparent_label (label : GMisc.label) new_parent _ = - label #misc#reparent new_parent - - - -let create_reparent = - let rw = ref None in - let aux () = - match !rw with - | None -> - - let window = GWindow.window ~title:"Reparent" ~border_width:5 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let vbox = GPack.vbox ~packing:window#add () in - let hbox = GPack.hbox ~spacing:5 ~border_width:10 - ~packing:vbox#add () in - - let frame = GBin.frame ~label:"Frame1" ~packing:hbox#add () in - let vbox2 = GPack.vbox ~spacing:5 ~border_width:5 - ~packing:frame#add () in - let label = GMisc.label ~text:"Hello world" - ~packing:vbox2#pack () in - label #misc#connect#parent_set ~callback:(set_parent label); - let button = GButton.button ~label:"switch" - ~packing:vbox2#pack () in - button #connect#clicked ~callback:(reparent_label label vbox2#coerce); - - let frame = GBin.frame ~label:"Frame2" ~packing:hbox#add () in - let vbox2 = GPack.vbox ~spacing:5 ~packing:frame#add ~border_width:5 () in - let button = GButton.button ~label:"switch" - ~packing:vbox2#pack () in - button #connect#clicked ~callback:(reparent_label label vbox2#coerce); - - GMisc.separator `HORIZONTAL ~packing:vbox#pack (); - - let vbox = GPack.vbox ~spacing:10 ~border_width:10 - ~packing:vbox#pack () in - - let button = GButton.button ~label: "close" ~packing:vbox#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - - window #show (); - - | Some window -> window #destroy () - in aux - - - - -let create_main_window () = - let buttons = [ - "button box", Some create_button_box; - "buttons", Some create_buttons; - "check buttons", Some create_check_buttons; - "clist", None; - "color selection", None; - "ctree", None; - "cursors", None; - "dialog", None; - "entry", None; - "event watcher", None; - "file selection", None; - "font selection", None; - "gamma curve", None; - "handle box", Some create_handle_box; - "item factory", None; - "labels", Some create_labels; - "layout", None; - "list", None; - "menus", Some create_menus; - "modal windows", Some create_modal_window; - "notebooks", None; - "panes", None; - "pixmap", None; - "preview color", None; - "preview gray", None; - "progress bar", None; - "radio buttons", Some create_radio_buttons; - "range controls", None; - "rc file", None; - "reparent", Some create_reparent; - "rulers", None; - "saved position", None; - "scrolled windows", Some create_scrolled_windows; - "shapes", None; - "spinbutton", None; - "statusbar", None; - "test idle", None; - "test mainloop", None; - "test scrolling", None; - "test selection", None; - "test timeout", None; - "text", None; - "toggle buttons", Some create_toggle_buttons; - "toolbar", Some create_toolbar; - "tooltips", Some create_tooltips; - "tree", Some create_tree_mode_window; - "WM hints", None - ] in - - let window = GWindow.window ~title:"main window" ~allow_shrink:false - ~allow_grow:false ~auto_shrink:false ~width:200 ~height:400 ~x:20 ~y:20 () in - - window #connect#destroy ~callback: Main.quit; - - let box1 = GPack.vbox ~packing: window#add () in - - GMisc.label ~text: "Gtk+ v1.2" ~packing:box1#pack (); - - let scrolled_window = GBin.scrolled_window ~border_width: 10 - ~hpolicy: `AUTOMATIC ~vpolicy: `AUTOMATIC - ~packing:box1#add () in - - let box2 = GPack.vbox ~border_width: 10 - ~packing:scrolled_window#add_with_viewport () in - box2 #focus#set_vadjustment (Some scrolled_window#vadjustment); - - let rec aux = function - | [] -> () - | (_, None) :: tl -> aux tl - | (label, Some func) :: tl -> - let button = GButton.button ~label: label ~packing: box2#add () in - button #connect#clicked ~callback: func; - aux tl - in aux buttons; - - GMisc.separator `HORIZONTAL ~packing: box1#pack (); - - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - - window #show (); - - Main.main () - -let _ = create_main_window () - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testinput.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testinput.ml deleted file mode 100644 index a6aceb825..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testinput.ml +++ /dev/null @@ -1,43 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let window = GWindow.window () in - window#misc#set_name "Test input"; - window#connect#destroy ~callback:Main.quit; - - let vbox = GPack.vbox ~packing:window#add () in - - let drawing_area = - GMisc.drawing_area ~width:200 ~height:200 ~packing:vbox#add () in - - drawing_area#event#connect#key_press ~callback: - begin fun ev -> - let key = GdkEvent.Key.keyval ev in - if key >= 32 && key < 256 then - Printf.printf "I got a %c\n" (Char.chr key) - else - print_string "I got another key\n"; - flush stdout; - true - end; - - drawing_area#event#add - [`EXPOSURE;`LEAVE_NOTIFY;`BUTTON_PRESS; - `POINTER_MOTION;`POINTER_MOTION_HINT;`PROXIMITY_OUT]; - drawing_area#event#set_extensions `ALL; - drawing_area#misc#set_can_focus true; - drawing_area#misc#grab_focus (); - - GButton.button ~label:"Input Dialog" ~packing:vbox#pack (); - - let button = - GButton.button ~label:"Quit" ~packing:vbox#pack () in - - button#connect#clicked ~callback:window#destroy; - - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tictactoe.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tictactoe.ml deleted file mode 100644 index be01e19b9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tictactoe.ml +++ /dev/null @@ -1,113 +0,0 @@ -(* $Id$ *) - -open GtkNew -open GtkBase - -(* To create a new widget: - create an array sig_array containing the signals defined by - the new widget; - call: - make_new_widget name parent:parent signal_array:sig_array - where name is the name of the new widget (a string) - parent is the type of the parent: of type Gtk.New.object_type - This call returns a triple: - (get_type_func, new_func, sig_array_num) - where get_type_func is the new widget get_type function, - new_func is the function returning a new widget of the new type - sig_array_num is an array containing the Gtk id of the signals - of the new widget. -*) - -module Tictactoe = struct - type t = [`widget|`container|`box|`tictactoe] - module Signals = struct - open GtkSignal - let tictactoe : ([>`tictactoe],_) t = - { name = "tictactoe"; marshaller = marshal_unit } - let emit_tictactoe = emit_unit ~sgn:tictactoe - end - let create : unit -> t Gtk.obj = - let _,tictactoe_new = make_new_widget - ~name:"Tictactoe" ~parent:VBOX ~signals:[Signals.tictactoe] - in fun () -> Object.try_cast (tictactoe_new ()) "Tictactoe" -end - -open GMain - -class tictactoe_signals obj = object - inherit GContainer.container_signals obj - method tictactoe = - GtkSignal.connect ~sgn:Tictactoe.Signals.tictactoe obj ~after -end - -exception Trouve - -class tictactoe ?packing ?show () = - let obj : Tictactoe.t Gtk.obj = Tictactoe.create () in - let box = new GPack.box_skel obj in -object (self) - inherit GObj.widget obj - val mutable buttons = [||] - val mutable buttons_handlers = [||] - val label = GMisc.label ~text:"Go on!" ~packing:box#add () - method clear () = - for i = 0 to 2 do - for j = 0 to 2 do - let button = buttons.(i).(j) - and handler = buttons_handlers.(i).(j) in - button#misc#handler_block handler; - button#set_active false; - button#misc#handler_unblock handler - done - done - method connect = new tictactoe_signals obj - method emit_tictactoe () = - GtkSignal.emit_unit obj ~sgn:Tictactoe.Signals.tictactoe - method toggle () = - let rwins = [| [| 0; 0; 0 |]; [| 1; 1; 1 |]; [| 2; 2; 2 |]; - [| 0; 1; 2 |]; [| 0; 1; 2 |]; [| 0; 1; 2 |]; - [| 0; 1; 2 |]; [| 0; 1; 2 |] |] - and cwins = [| [| 0; 1; 2 |]; [| 0; 1; 2 |]; [| 0; 1; 2 |]; - [| 0; 0; 0 |]; [| 1; 1; 1 |]; [| 2; 2; 2 |]; - [| 0; 1; 2 |]; [| 2; 1; 0 |] |] in - label#set_text"Go on!"; - try - for k = 0 to 7 do - let rec aux i = - (i = 3) || - (buttons.(rwins.(k).(i)).(cwins.(k).(i))#active) && (aux (i+1)) in - if aux 0 then raise Trouve - done - with Trouve -> label#set_text "Win!!"; self#emit_tictactoe () - - initializer - let table = - GPack.table ~rows:3 ~columns:3 ~homogeneous:true ~packing:box#add () in - buttons <- - Array.init 3 ~f: - (fun i -> Array.init 3 ~f: - (fun j -> - GButton.toggle_button ~width:20 ~height:20 - ~packing:(table#attach ~left:i ~top:j ~expand:`BOTH) ())); - buttons_handlers <- - Array.mapi buttons ~f: - (fun i -> Array.mapi ~f: - (fun j button -> button #connect#toggled ~callback:self#toggle)); - GObj.pack_return self ~packing ~show; - () -end - -let win (ttt : tictactoe) _ = - Printf.printf "Gagne!!\n" ; - ttt #clear () - -let essai () = - let window = GWindow.window ~title:"Tictactoe" ~border_width:10 () in - window #connect#destroy ~callback:Main.quit; - let ttt = new tictactoe ~packing:window#add () in - ttt #connect#tictactoe ~callback:(win ttt); - window #show (); - Main.main () - -let _ = essai () - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tron.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tron.ml deleted file mode 100644 index eced44a9c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tron.ml +++ /dev/null @@ -1,204 +0,0 @@ -(* $Id$ *) - -(* Tron? Game *) -open GMain - -let m_pi = acos (-1.) -let clRed = `NAME "red" (* `BLACK *) -let clBlue = `NAME "blue" (* `WHITE *) -let clBlack = `BLACK - -type point = {mutable x: int; mutable y: int} - -let main () = -(* Game State *) - let gameSize = 64 in - let gameState = - Array.create_matrix ~dimx:(gameSize+2) ~dimy:(gameSize+2) 0 in - let gameInit _ = - for i=1 to gameSize do - for j=1 to gameSize do - gameState.(i).(j) <- 0; - done - done; - for i=0 to gameSize do - gameState.(0).(i) <- 3; (* left wall *) - gameState.(i).(gameSize+1) <- 3; (* floor *) - gameState.(gameSize+1).(i+1) <- 3; (* right wall *) - gameState.(i+1).(0) <- 3 (* ceiling *) - done in - gameInit (); - let lpos = {x=4; y=4} in - let lspeed = {x=0; y=1} in - let rpos = {x=gameSize-3; y=gameSize-3} in - let rspeed = {x=0; y= -1} in - let keys = "asdfhjkl" in - let keyMapL = [|(-1, 0); (0, -1); (0, 1); (1, 0)|] in - let keyMapR = [|(-1, 0); (0, 1); (0, -1); (1, 0)|] in - -(* User Interface *) - let window = GWindow.window ~border_width:10 ~title:"tron(?)" () in - window#event#connect#delete - ~callback:(fun _ -> prerr_endline "Delete event occured"; false); - window#connect#destroy ~callback:Main.quit; - let vbx = GPack.vbox ~packing:window#add () in - let area = GMisc.drawing_area ~width:((gameSize+2)*4) ~height:((gameSize+2)*4) - ~packing:vbx#add () in - let drawing = area#misc#realize (); new GDraw.drawable (area#misc#window) in - let style = area#misc#style#copy in - style#set_bg [`NORMAL,`WHITE]; - area#misc#set_style style; - drawing#set_background `WHITE; - let area_expose _ = - for i=0 to gameSize+1 do - for j=0 to gameSize+1 do - if gameState.(i).(j) = 1 then begin - drawing#set_foreground clRed; - drawing#rectangle ~filled:true ~x:(i*4) ~y:(j*4) ~width:4 ~height:4 () - end - else if gameState.(i).(j) = 2 then begin - drawing#set_foreground clBlue; - drawing#rectangle ~filled:true ~x:(i*4) ~y:(j*4) ~width:4 ~height:4 () - end - else if gameState.(i).(j) = 3 then begin - drawing#set_foreground clBlack; - drawing#rectangle ~filled:true ~x:(i*4) ~y:(j*4) ~width:4 ~height:4 () - end - done - done; - false - in - area#event#connect#expose ~callback:area_expose; - let control = GPack.table ~rows:3 ~columns:7 ~packing:vbx#pack () in - - let abuttonClicked num (lbl : GMisc.label) _ = begin - let dialog = - GWindow.window ~kind:`DIALOG ~border_width:10 ~title:"Key remap" () in - let dvbx = GPack.box `VERTICAL ~packing:dialog#add () in - let entry = GEdit.entry ~max_length:1 ~packing: dvbx#add () in - let txt = String.make 1 keys.[num] in - entry#set_text txt; - let dquit = GButton.button ~label:"OK" ~packing: dvbx#add () in - dquit#connect#clicked ~callback: - begin fun _ -> - let chr = entry#text.[0] in - let txt2 = String.make 1 chr in - lbl#set_text txt2; - keys.[num]<-chr; - dialog#destroy () - end; - dialog#show () - end in - let attach = control#attach ~expand:`BOTH in - let new_my_button ~label:label ~left:left ~top:top = - let str = String.make 1 keys.[label] in - let btn = GButton.button ~packing:(attach ~left:left ~top:top) () in - let lbl = GMisc.label ~text:str ~packing:(btn#add) () in - btn#connect#clicked ~callback:(abuttonClicked label lbl); - btn - in - new_my_button ~label:0 ~left:1 ~top:2; - new_my_button ~label:1 ~left:2 ~top:1; - new_my_button ~label:2 ~left:2 ~top:3; - new_my_button ~label:3 ~left:3 ~top:2; - new_my_button ~label:4 ~left:5 ~top:2; - new_my_button ~label:5 ~left:6 ~top:3; - new_my_button ~label:6 ~left:6 ~top:1; - new_my_button ~label:7 ~left:7 ~top:2; - let quit = - GButton.button ~label:"Quit" ~packing:(attach ~left:4 ~top:2) () in - quit#connect#clicked ~callback:window#destroy; - let message = GMisc.label ~text:"tron(?) game" ~packing:vbx#pack () in - - let game_step () = - let lx = lpos.x in let ly = lpos.y in - gameState.(lx).(ly) <- 1; - drawing#set_foreground clRed; - drawing#rectangle ~filled:true ~x:(lx*4) ~y:(ly*4) ~width:4 ~height:4 (); - let rx = rpos.x in let ry = rpos.y in - gameState.(rx).(ry) <- 2; - drawing#set_foreground clBlue; - drawing#rectangle ~filled:true ~x:(rx*4) ~y:(ry*4) ~width:4 ~height:4 () - in - game_step (); - let keyDown ev = begin - let key = GdkEvent.Key.keyval ev in - for i=0 to (Array.length keyMapL)-1 do - let (x, y) = keyMapL.(i) in - let k = keys.[i] in - if key = Char.code k then begin - lspeed.x <- x; - lspeed.y <- y - end; - let (x, y) = keyMapR.(i) in - let k = keys.[i+4] in - if key = Char.code k then begin - rspeed.x <- x; - rspeed.y <- y - end - done; - false end in - window#event#connect#key_press ~callback:keyDown; - let safe_check _ = - if lpos.x == rpos.x && lpos.y == rpos.y then - 3 - else - (* player 1 *) - (if gameState.(lpos.x).(lpos.y) != 0 then 2 else 0) - + - (* player 2 *) - (if gameState.(rpos.x).(rpos.y) != 0 then 1 else 0) - in - let timerID = ref (* dummy *) (Timeout.add ~ms:100 ~callback:(fun _ -> true)) in - let timerTimer _ = begin - lpos.x <- lpos.x+lspeed.x; - lpos.y <- lpos.y+lspeed.y; - rpos.x <- rpos.x+rspeed.x; - rpos.y <- rpos.y+rspeed.y; - let result = safe_check() in - if result!=0 then begin - Timeout.remove (!timerID); - message#set_text ("player "^string_of_int result^" won.") - end - else begin - game_step() - end; - true - end in - let count = ref 3 in - let timerTimer2 _ = begin -(* message#set_label (string_of_int (!count)); *) - if (!count==0) then begin - Timeout.remove (!timerID); - timerID := Timeout.add ~ms:100 ~callback:timerTimer - end - else begin - count := !count-1; - end; - true - end in - let restartClicked () = - Timeout.remove !timerID; - gameInit(); - lpos.x <- 4; lpos.y <- 4; - lspeed.x <- 0; lspeed.y <- 1; - rpos.x <- gameSize-3; rpos.y <- gameSize-3; - rspeed.x <- 0; rspeed.y <- -1; - drawing#set_foreground `WHITE; - drawing#rectangle ~filled:true ~x:0 ~y:0 - ~width:((gameSize+2)*4) ~height:((gameSize+2)*4) (); - area_expose(); - count := 3; - timerID := Timeout.add ~ms:300 ~callback:timerTimer2; - in - let restart = - GButton.button ~label: "Restart" ~packing:(attach ~left:4 ~top:3) () in - restart#connect#clicked ~callback:restartClicked; - restartClicked (); - - window#show (); - Main.main () - -let _ = Printexc.print main () - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/xmhtml/test.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/xmhtml/test.ml deleted file mode 100644 index 6c9d3715a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/xmhtml/test.ml +++ /dev/null @@ -1,38 +0,0 @@ -(* $Id$ *) - -let test_string2 = String.concat ~sep:"" [ - "\n"; - "The Gtk/XmHTML test\n"; - "This is the Gtk/XmHTML test program

    \n"; - "You can invoke this program with a command line argument, like this:\n"; - "


    "; - "./xtest filename.html"; - "
    "; - "Click here to load a different
    test message"; - ""; -] - -let read_file file = - let ic = open_in file in - let b = Buffer.create 16384 and s = String.create 1024 and len = ref 0 in - while len := input ic ~buf:s ~pos:0 ~len:1024; !len > 0 do - Buffer.add_substring b s ~pos:0 ~len:!len - done; - Buffer.contents b - -open GMain - -let _ = - let w = GWindow.window ~width:600 ~height:500 () in - w#connect#destroy ~callback:Main.quit; - let source = - if Array.length Sys.argv > 1 then begin - Sys.chdir (Filename.dirname Sys.argv.(1)); - read_file (Filename.basename Sys.argv.(1)) - end - else test_string2 in - let html = GHtml.xmhtml ~source ~packing:w#add () in - html#set_anchor_buttons false; - html#set_anchor_underline [`SINGLE;`DASHED]; - w#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.ml deleted file mode 100644 index f248ba0f8..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.ml +++ /dev/null @@ -1,153 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkBin -open GObj -open GContainer - -class scrolled_window obj = object - inherit container_full (obj : Gtk.scrolled_window obj) - method hadjustment = - new GData.adjustment (ScrolledWindow.get_hadjustment obj) - method vadjustment = - new GData.adjustment (ScrolledWindow.get_vadjustment obj) - method set_hadjustment adj = - ScrolledWindow.set_hadjustment obj (GData.as_adjustment adj) - method set_vadjustment adj = - ScrolledWindow.set_vadjustment obj (GData.as_adjustment adj) - method set_hpolicy hpolicy = ScrolledWindow.set_policy' obj ~hpolicy - method set_vpolicy vpolicy = ScrolledWindow.set_policy' obj ~vpolicy - method set_placement = ScrolledWindow.set_placement obj - method add_with_viewport w = - ScrolledWindow.add_with_viewport obj (as_widget w) -end - -let scrolled_window ?hadjustment ?vadjustment ?hpolicy ?vpolicy - ?placement ?border_width ?width ?height ?packing ?show () = - let w = - ScrolledWindow.create () - ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment) - ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) in - ScrolledWindow.set w ?hpolicy ?vpolicy ?placement; - Container.set w ?border_width ?width ?height; - pack_return (new scrolled_window w) ~packing ~show - -class event_box obj = object - inherit container_full (obj : Gtk.event_box obj) - method event = new GObj.event_ops obj -end - -let event_box ?border_width ?width ?height ?packing ?show () = - let w = EventBox.create () in - Container.set w ?border_width ?width ?height; - pack_return (new event_box w) ~packing ~show - -class handle_box_signals obj = object - inherit container_signals obj - method child_attached ~callback = - GtkSignal.connect ~sgn:HandleBox.Signals.child_attached obj ~after - ~callback:(fun obj -> callback (new widget obj)) - method child_detached ~callback = - GtkSignal.connect ~sgn:HandleBox.Signals.child_detached obj ~after - ~callback:(fun obj -> callback (new widget obj)) -end - -class handle_box obj = object - inherit container (obj : Gtk.handle_box obj) - method set_shadow_type = HandleBox.set_shadow_type obj - method set_handle_position = HandleBox.set_handle_position obj - method set_snap_edge = HandleBox.set_snap_edge obj - method connect = new handle_box_signals obj - method event = new GObj.event_ops obj -end - -let handle_box ?border_width ?width ?height ?packing ?show () = - let w = HandleBox.create () in - let () = Container.set w ?border_width ?width ?height in - pack_return (new handle_box w) ~packing ~show - -class frame_skel obj = object - inherit container obj - method set_label = Frame.set_label obj - method set_label_align ?x ?y () = Frame.set_label_align' obj ?x ?y - method set_shadow_type = Frame.set_shadow_type obj -end - -class frame obj = object - inherit frame_skel (Frame.coerce obj) - method connect = new container_signals obj -end - -let frame ?(label="") ?label_xalign ?label_yalign ?shadow_type - ?border_width ?width ?height ?packing ?show () = - let w = Frame.create label in - Frame.set w ?label_xalign ?label_yalign ?shadow_type; - Container.set w ?border_width ?width ?height; - pack_return (new frame w) ~packing ~show - -class aspect_frame obj = object - inherit frame_skel (obj : Gtk.aspect_frame obj) - method connect = new container_signals obj - method set_alignment ?x ?y () = AspectFrame.set obj ?xalign:x ?yalign:y - method set_ratio ratio = AspectFrame.set obj ~ratio - method set_obey_child obey_child = AspectFrame.set obj ~obey_child -end - -let aspect_frame ?label ?xalign ?yalign ?ratio ?obey_child - ?label_xalign ?label_yalign ?shadow_type - ?border_width ?width ?height ?packing ?show () = - let w = - AspectFrame.create ?label ?xalign ?yalign ?ratio ?obey_child () in - Frame.set w ?label_xalign ?label_yalign ?shadow_type; - Container.set w ?border_width ?width ?height; - pack_return (new aspect_frame w) ~packing ~show - -class viewport obj = object - inherit container_full (obj : Gtk.viewport obj) - method event = new event_ops obj - method set_hadjustment adj = - Viewport.set_hadjustment obj (GData.as_adjustment adj) - method set_vadjustment adj = - Viewport.set_vadjustment obj (GData.as_adjustment adj) - method set_shadow_type = Viewport.set_shadow_type obj - method hadjustment = new GData.adjustment (Viewport.get_hadjustment obj) - method vadjustment = new GData.adjustment (Viewport.get_vadjustment obj) -end - -let viewport ?hadjustment ?vadjustment ?shadow_type - ?border_width ?width ?height ?packing ?show () = - let w = Viewport.create () - ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment) - ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) in - may shadow_type ~f:(Viewport.set_shadow_type w); - Container.set w ?border_width ?width ?height; - pack_return (new viewport w) ~packing ~show - -class alignment obj = object - inherit container_full (obj : Gtk.alignment obj) - method set_alignment ?x ?y () = Alignment.set ?x ?y obj - method set_scale ?x ?y () = Alignment.set ?xscale:x ?yscale:y obj -end - -let alignment ?x ?y ?xscale ?yscale - ?border_width ?width ?height ?packing ?show () = - let w = Alignment.create ?x ?y ?xscale ?yscale () in - Container.set w ?border_width ?width ?height; - pack_return (new alignment w) ~packing ~show - -let alignment_cast w = new alignment (Alignment.cast w#as_widget) - -class socket obj = object (self) - inherit container_full (obj : Gtk.socket obj) - method steal = Socket.steal obj - method xwindow = - self#misc#realize (); - Gdk.Window.get_xwindow self#misc#window -end - -let socket ?border_width ?width ?height ?packing ?show () = - let w = Socket.create () in - Container.set w ?border_width ?width ?height; - pack_return (new socket w) ?packing ?show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.mli deleted file mode 100644 index 9593650c3..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.mli +++ /dev/null @@ -1,163 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class scrolled_window : Gtk.scrolled_window obj -> - object - inherit container_full - val obj : Gtk.scrolled_window obj - method add_with_viewport : widget -> unit - method hadjustment : GData.adjustment - method set_hadjustment : GData.adjustment -> unit - method set_hpolicy : Tags.policy_type -> unit - method set_placement : Tags.corner_type -> unit - method set_vadjustment : GData.adjustment -> unit - method set_vpolicy : Tags.policy_type -> unit - method vadjustment : GData.adjustment - end -val scrolled_window : - ?hadjustment:GData.adjustment -> - ?vadjustment:GData.adjustment -> - ?hpolicy:Tags.policy_type -> - ?vpolicy:Tags.policy_type -> - ?placement:Tags.corner_type -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> scrolled_window - -class event_box : Gtk.event_box obj -> - object - inherit container_full - val obj : Gtk.event_box obj - method event : event_ops - end -val event_box : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> event_box - -class handle_box_signals : 'a obj -> - object - inherit container_signals - constraint 'a = [>`handlebox|`container|`widget] - val obj : 'a obj - method child_attached : callback:(widget -> unit) -> GtkSignal.id - method child_detached : callback:(widget -> unit) -> GtkSignal.id - end - -class handle_box : Gtk.handle_box obj -> - object - inherit container - val obj : Gtk.handle_box obj - method event : event_ops - method connect : handle_box_signals - method set_handle_position : Tags.position -> unit - method set_shadow_type : Tags.shadow_type -> unit - method set_snap_edge : Tags.position -> unit - end -val handle_box : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> handle_box - -class frame_skel : 'a obj -> - object - inherit container - constraint 'a = [>`frame|`container|`widget] - val obj : 'a obj - method set_label : string -> unit - method set_label_align : ?x:clampf -> ?y:clampf -> unit -> unit - method set_shadow_type : Tags.shadow_type -> unit - end -class frame : [>`frame] obj -> - object - inherit frame_skel - val obj : Gtk.frame obj - method connect : GContainer.container_signals - end -val frame : - ?label:string -> - ?label_xalign:clampf -> - ?label_yalign:clampf -> - ?shadow_type:Tags.shadow_type -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> frame - -class aspect_frame : Gtk.aspect_frame obj -> - object - inherit frame - val obj : Gtk.aspect_frame obj - method set_alignment : ?x:clampf -> ?y:clampf -> unit -> unit - method set_obey_child : bool -> unit - method set_ratio : clampf -> unit - end -val aspect_frame : - ?label:string -> - ?xalign:clampf -> - ?yalign:clampf -> - ?ratio:float -> - ?obey_child:bool -> - ?label_xalign:clampf -> - ?label_yalign:clampf -> - ?shadow_type:Tags.shadow_type -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> aspect_frame - -class viewport : Gtk.viewport obj -> - object - inherit container_full - val obj : Gtk.viewport obj - method event : event_ops - method hadjustment : GData.adjustment - method set_hadjustment : GData.adjustment -> unit - method set_shadow_type : Gtk.Tags.shadow_type -> unit - method set_vadjustment : GData.adjustment -> unit - method vadjustment : GData.adjustment - end -val viewport : - ?hadjustment:GData.adjustment -> - ?vadjustment:GData.adjustment -> - ?shadow_type:Tags.shadow_type -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> viewport - -class alignment : Gtk.alignment obj -> - object - inherit container_full - val obj : Gtk.alignment obj - method set_alignment : ?x:Gtk.clampf -> ?y:Gtk.clampf -> unit -> unit - method set_scale : ?x:Gtk.clampf -> ?y:Gtk.clampf -> unit -> unit - end -val alignment : - ?x:Gtk.clampf -> - ?y:Gtk.clampf -> - ?xscale:Gtk.clampf -> - ?yscale:Gtk.clampf -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> alignment -val alignment_cast : < as_widget : 'a obj; .. > -> alignment - -class socket : Gtk.socket obj -> - object - inherit container_full - val obj : Gtk.socket obj - method steal : Gdk.xid -> unit - method xwindow : Gdk.xid - end - -val socket : - ?border_width:int -> ?width:int -> ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> socket diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml deleted file mode 100644 index 08ac70445..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml +++ /dev/null @@ -1,124 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkButton -open GObj -open GContainer - -class button_skel obj = object (self) - inherit container obj - method clicked () = Button.clicked obj - method grab_default () = - Widget.set_can_default obj true; - Widget.grab_default obj -end - -class button_signals obj = object - inherit container_signals obj - method clicked = GtkSignal.connect ~sgn:Button.Signals.clicked ~after obj - method pressed = GtkSignal.connect ~sgn:Button.Signals.pressed ~after obj - method released = GtkSignal.connect ~sgn:Button.Signals.released ~after obj - method enter = GtkSignal.connect ~sgn:Button.Signals.enter ~after obj - method leave = GtkSignal.connect ~sgn:Button.Signals.leave ~after obj -end - -class button obj = object - inherit button_skel (Button.coerce obj) - method connect = new button_signals obj - method event = new GObj.event_ops obj -end - -let button ?label ?border_width ?width ?height ?packing ?show () = - let w = Button.create ?label () in - Container.set w ?border_width ?width ?height; - pack_return (new button w) ~packing ~show - -class toggle_button_signals obj = object - inherit button_signals obj - method toggled = - GtkSignal.connect ~sgn:ToggleButton.Signals.toggled obj ~after -end - -class toggle_button obj = object - inherit button_skel obj - method connect = new toggle_button_signals obj - method active = ToggleButton.get_active obj - method set_active = ToggleButton.set_active obj - method set_draw_indicator = ToggleButton.set_mode obj -end - -let toggle_button ?label ?active ?draw_indicator - ?border_width ?width ?height ?packing ?show () = - let w = ToggleButton.create_toggle ?label () in - ToggleButton.set w ?active ?draw_indicator; - Container.set w ?border_width ?width ?height; - pack_return (new toggle_button w) ~packing ~show - -let check_button ?label ?active ?draw_indicator - ?border_width ?width ?height ?packing ?show () = - let w = ToggleButton.create_check ?label () in - ToggleButton.set w ?active ?draw_indicator; - Container.set w ?border_width ?width ?height; - pack_return (new toggle_button w) ~packing ~show - -class radio_button obj = object - inherit toggle_button (obj : Gtk.radio_button obj) - method set_group = RadioButton.set_group obj - method group = Some obj -end - -let radio_button ?group ?label ?active ?draw_indicator - ?border_width ?width ?height ?packing ?show () = - let w = RadioButton.create ?group ?label () in - ToggleButton.set w ?active ?draw_indicator; - Container.set w ?border_width ?width ?height; - pack_return (new radio_button w) ~packing ~show - -class toolbar obj = object - inherit container_full (obj : Gtk.toolbar obj) - method insert_widget ?tooltip ?tooltip_private ?pos w = - Toolbar.insert_widget obj (as_widget w) ?tooltip ?tooltip_private ?pos - - method insert_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new button - (Toolbar.insert_button obj ~kind:`BUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ()) - - method insert_toggle_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new toggle_button - (ToggleButton.cast - (Toolbar.insert_button obj ~kind:`TOGGLEBUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ())) - - method insert_radio_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new radio_button - (RadioButton.cast - (Toolbar.insert_button obj ~kind:`RADIOBUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ())) - - method insert_space = Toolbar.insert_space obj - - method set_orientation = Toolbar.set_orientation obj - method set_style = Toolbar.set_style obj - method set_space_size = Toolbar.set_space_size obj - method set_space_style = Toolbar.set_space_style obj - method set_tooltips = Toolbar.set_tooltips obj - method set_button_relief = Toolbar.set_button_relief obj - method button_relief = Toolbar.get_button_relief obj -end - -let toolbar ?(orientation=`HORIZONTAL) ?style - ?space_size ?space_style ?tooltips ?button_relief - ?border_width ?width ?height ?packing ?show () = - let w = Toolbar.create orientation ?style () in - Toolbar.set w ?space_size ?space_style ?tooltips ?button_relief; - Container.set w ?border_width ?width ?height; - pack_return (new toolbar w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.mli deleted file mode 100644 index ee2653da1..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.mli +++ /dev/null @@ -1,144 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class button_skel : - 'a obj -> - object - inherit container - constraint 'a = [>`widget|`button|`container] - val obj : 'a obj - method clicked : unit -> unit - method grab_default : unit -> unit - end -class button_signals : - 'b obj -> - object ('a) - inherit container_signals - constraint 'b = [>`button|`container|`widget] - val obj : 'b obj - method clicked : callback:(unit -> unit) -> GtkSignal.id - method enter : callback:(unit -> unit) -> GtkSignal.id - method leave : callback:(unit -> unit) -> GtkSignal.id - method pressed : callback:(unit -> unit) -> GtkSignal.id - method released : callback:(unit -> unit) -> GtkSignal.id - end - -class button : - [>`button] obj -> - object - inherit button_skel - val obj : Gtk.button obj - method event : event_ops - method connect : button_signals - end -val button : - ?label:string -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> button - -class toggle_button_signals : - 'b obj -> - object ('a) - inherit button_signals - constraint 'b = [>`toggle|`button|`container|`widget] - val obj : 'b obj - method toggled : callback:(unit -> unit) -> GtkSignal.id - end - -class toggle_button : - 'a obj -> - object - inherit button_skel - constraint 'a = [>`toggle|`button|`container|`widget] - val obj : 'a obj - method active : bool - method connect : toggle_button_signals - method set_active : bool -> unit - method set_draw_indicator : bool -> unit - end -val toggle_button : - ?label:string -> - ?active:bool -> - ?draw_indicator:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> toggle_button -val check_button : - ?label:string -> - ?active:bool -> - ?draw_indicator:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> toggle_button - -class radio_button : - Gtk.radio_button obj -> - object - inherit toggle_button - val obj : Gtk.radio_button obj - method group : Gtk.radio_button group - method set_group : Gtk.radio_button group -> unit - end -val radio_button : - ?group:Gtk.radio_button group -> - ?label:string -> - ?active:bool -> - ?draw_indicator:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> radio_button - -class toolbar : - Gtk.toolbar obj -> - object - inherit container_full - val obj : Gtk.toolbar obj - method button_relief : Tags.relief_style - method insert_button : - ?text:string -> - ?tooltip:string -> - ?tooltip_private:string -> - ?icon:widget -> - ?pos:int -> ?callback:(unit -> unit) -> unit -> button - method insert_radio_button : - ?text:string -> - ?tooltip:string -> - ?tooltip_private:string -> - ?icon:widget -> - ?pos:int -> ?callback:(unit -> unit) -> unit -> radio_button - method insert_space : ?pos:int -> unit -> unit - method insert_toggle_button : - ?text:string -> - ?tooltip:string -> - ?tooltip_private:string -> - ?icon:widget -> - ?pos:int -> ?callback:(unit -> unit) -> unit -> toggle_button - method insert_widget : - ?tooltip:string -> - ?tooltip_private:string -> ?pos:int -> widget -> unit - method set_button_relief : Tags.relief_style -> unit - method set_orientation : Tags.orientation -> unit - method set_space_size : int -> unit - method set_space_style : [`EMPTY|`LINE] -> unit - method set_style : Tags.toolbar_style -> unit - method set_tooltips : bool -> unit - end -val toolbar : - ?orientation:Tags.orientation -> - ?style:Tags.toolbar_style -> - ?space_size:int -> - ?space_style:[`EMPTY|`LINE] -> - ?tooltips:bool -> - ?button_relief:Tags.relief_style -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> toolbar diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.ml deleted file mode 100644 index 2ea765e83..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.ml +++ /dev/null @@ -1,75 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GObj -open GData - -class focus obj = object - val obj = obj - method circulate = Container.focus obj - method set (child : widget option) = - let child = may_map child ~f:(fun x -> x#as_widget) in - Container.set_focus_child obj (Gpointer.optboxed child) - method set_hadjustment adj = - Container.set_focus_hadjustment obj - (Gpointer.optboxed (may_map adj ~f:as_adjustment)) - method set_vadjustment adj = - Container.set_focus_vadjustment obj - (Gpointer.optboxed (may_map adj ~f:as_adjustment)) -end - -class container obj = object (self) - inherit widget obj - method add w = - (* Hack to avoid creating a bin class *) - if GtkBase.Object.is_a obj "GtkBin" && Container.children obj <> [] then - raise (Gtk.Error "GContainer.container#add: already full"); - Container.add obj (as_widget w) - method remove w = Container.remove obj (as_widget w) - method children = List.map ~f:(new widget) (Container.children obj) - method set_border_width = Container.set_border_width obj - method focus = new focus obj -end - -class container_signals obj = object - inherit widget_signals obj - method add ~callback = - GtkSignal.connect ~sgn:Container.Signals.add obj ~after - ~callback:(fun w -> callback (new widget w)) - method remove ~callback = - GtkSignal.connect ~sgn:Container.Signals.remove obj ~after - ~callback:(fun w -> callback (new widget w)) -end - -class container_full obj = object - inherit container obj - method connect = new container_signals obj -end - -let cast_container (w : widget) = - new container_full (GtkBase.Container.cast w#as_widget) - -class virtual ['a] item_container obj = object (self) - inherit widget obj - method add (w : 'a) = - Container.add obj w#as_item - method remove (w : 'a) = - Container.remove obj w#as_item - method private virtual wrap : Gtk.widget obj -> 'a - method children : 'a list = - List.map ~f:self#wrap (Container.children obj) - method set_border_width = Container.set_border_width obj - method focus = new focus obj - method virtual insert : 'a -> pos:int -> unit - method append (w : 'a) = self#insert w ~pos:(-1) - method prepend (w : 'a) = self#insert w ~pos:0 -end - -class item_signals obj = object - inherit container_signals obj - method select = GtkSignal.connect ~sgn:Item.Signals.select obj ~after - method deselect = GtkSignal.connect ~sgn:Item.Signals.deselect obj ~after - method toggle = GtkSignal.connect ~sgn:Item.Signals.toggle obj ~after -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.mli deleted file mode 100644 index 290982942..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.mli +++ /dev/null @@ -1,79 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj - -class focus : - 'a obj -> - object - constraint 'a = [>`container] - val obj : 'a obj - method circulate : Tags.direction_type -> bool - method set : widget option -> unit - method set_hadjustment : GData.adjustment option -> unit - method set_vadjustment : GData.adjustment option -> unit - end - -class container : - 'a obj -> - object - inherit widget - constraint 'a = [>`container|`widget] - val obj : 'a obj - method add : widget -> unit - method children : widget list - method remove : widget -> unit - method focus : focus - method set_border_width : int -> unit - end - -class container_signals : - 'a obj -> - object - inherit widget_signals - constraint 'a = [>`container|`widget] - val obj : 'a obj - method add : callback:(widget -> unit) -> GtkSignal.id - method remove : callback:(widget -> unit) -> GtkSignal.id - end - -class container_full : - 'a obj -> - object - inherit container - constraint 'a = [>`container|`widget] - val obj : 'a obj - method connect : container_signals - end - -val cast_container : widget -> container_full -(* may raise [Gtk.Cannot_cast "GtkContainer"] *) - -class virtual ['a] item_container : - 'c obj -> - object - constraint 'a = < as_item : [>`widget] obj; .. > - constraint 'c = [>`container|`widget] - inherit widget - val obj : 'c obj - method add : 'a -> unit - method append : 'a -> unit - method children : 'a list - method virtual insert : 'a -> pos:int -> unit - method prepend : 'a -> unit - method remove : 'a -> unit - method focus : focus - method set_border_width : int -> unit - method private virtual wrap : Gtk.widget obj -> 'a - end - -class item_signals : - 'a obj -> - object - inherit container_signals - constraint 'a = [>`container|`item|`widget] - val obj : 'a obj - method deselect : callback:(unit -> unit) -> GtkSignal.id - method select : callback:(unit -> unit) -> GtkSignal.id - method toggle : callback:(unit -> unit) -> GtkSignal.id - end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.ml deleted file mode 100644 index 52aa3f1f4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.ml +++ /dev/null @@ -1,60 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkData -open GObj - -class data_signals obj = object - inherit gtkobj_signals obj - method disconnect_data = - GtkSignal.connect ~sgn:Data.Signals.disconnect obj ~after -end - -class adjustment_signals obj = object - inherit data_signals obj - method changed = GtkSignal.connect ~sgn:Adjustment.Signals.changed obj ~after - method value_changed = - GtkSignal.connect ~sgn:Adjustment.Signals.value_changed obj ~after -end - -class adjustment obj = object - inherit gtkobj obj - 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 -end - -let adjustment ?(value=0.) ?(lower=0.) ?(upper=100.) - ?(step_incr=1.) ?(page_incr=10.) ?(page_size=10.) () = - let w = - Adjustment.create ~value ~lower ~upper ~step_incr ~page_incr ~page_size in - new adjustment w - -let as_adjustment (adj : adjustment) = adj#as_adjustment - -class tooltips obj = object - inherit gtkobj (obj : Gtk.tooltips obj) - method as_tooltips = obj - method connect = new data_signals obj - method enable () = Tooltips.enable obj - method disable () = Tooltips.disable obj - method set_tip ?text ?privat w = - Tooltips.set_tip obj (as_widget w) ?text ?privat - method set_delay = Tooltips.set_delay obj -end - -let tooltips ?delay () = - let tt = Tooltips.create () in - Tooltips.set tt ?delay; - new tooltips tt - - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.mli deleted file mode 100644 index ae7b29eb5..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.mli +++ /dev/null @@ -1,60 +0,0 @@ -(* $Id$ *) - -open Gtk - -class data_signals : - 'a obj -> - object - inherit GObj.gtkobj_signals - constraint 'a = [>`data] - val obj : 'a obj - method disconnect_data : callback:(unit -> unit) -> GtkSignal.id - end - -class adjustment_signals : - 'a obj -> - object - inherit data_signals - constraint 'a = [>`adjustment|`data] - val obj : 'a obj - method changed : callback:(unit -> unit) -> GtkSignal.id - method value_changed : callback:(unit -> unit) -> GtkSignal.id - end - -class adjustment : Gtk.adjustment obj -> - object - inherit GObj.gtkobj - val obj : Gtk.adjustment obj - method as_adjustment : Gtk.adjustment obj - method clamp_page : lower:float -> upper:float -> unit - method connect : adjustment_signals - method set_value : float -> unit - method lower : float - method upper : float - method value : float - method step_increment : float - method page_increment : float - method page_size : float - end -val adjustment : - ?value:float -> - ?lower:float -> - ?upper:float -> - ?step_incr:float -> - ?page_incr:float -> ?page_size:float -> unit -> adjustment - -val as_adjustment : adjustment -> Gtk.adjustment obj - -class tooltips : - Gtk.tooltips obj -> - object - inherit GObj.gtkobj - val obj : Gtk.tooltips obj - method as_tooltips : Gtk.tooltips obj - method connect : data_signals - method disable : unit -> unit - method enable : unit -> unit - method set_delay : int -> unit - method set_tip : ?text:string -> ?privat:string -> GObj.widget -> unit - end -val tooltips : ?delay:int -> unit -> tooltips diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.ml deleted file mode 100644 index 5782079a0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.ml +++ /dev/null @@ -1,163 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gdk - -type color = [ - | `COLOR of Color.t - | `WHITE - | `BLACK - | `NAME of string - | `RGB of int * int * int -] - -let default_colormap = GtkBase.Widget.get_default_colormap - -let color ?(colormap = default_colormap ()) (c : color) = - match c with - | `COLOR col -> col - | #Gdk.Color.spec as def -> Color.alloc ~colormap def - -type optcolor = [ - | `COLOR of Color.t - | `WHITE - | `BLACK - | `NAME of string - | `RGB of int * int * int - | `DEFAULT -] - -let optcolor ?colormap (c : optcolor) = - match c with - | `DEFAULT -> None - | #color as c -> Some (color ?colormap c) - -class ['a] drawable ?(colormap = default_colormap ()) w = -object (self) - val colormap = colormap - val gc = GC.create w - val w : 'a Gdk.drawable = w - method color = color ~colormap - method set_foreground col = GC.set_foreground gc (self#color col) - method set_background col = GC.set_background gc (self#color col) - method gc_values = GC.get_values gc - method set_clip_region region = GC.set_clip_region gc region - method set_line_attributes ?width ?style ?cap ?join () = - let v = GC.get_values gc in - GC.set_line_attributes gc - ~width:(default v.GC.line_width ~opt:width) - ~style:(default v.GC.line_style ~opt:style) - ~cap:(default v.GC.cap_style ~opt:cap) - ~join:(default v.GC.join_style ~opt:join) - method point = Draw.point w gc - method line = Draw.line w gc - method rectangle = Draw.rectangle w gc - method arc = Draw.arc w gc - method polygon ?filled l = Draw.polygon w gc ?filled l - method string s = Draw.string w gc ~string:s - method image ~width ~height ?(xsrc=0) ?(ysrc=0) ?(xdest=0) ?(ydest=0) image = - Draw.image w gc ~image ~width ~height ~xsrc ~ysrc ~xdest ~ydest -end - -class pixmap ?colormap ?mask pm = object - inherit [[`pixmap]] drawable ?colormap pm as pixmap - val bitmap = may_map mask ~f: - begin fun x -> - let mask = new drawable x in - mask#set_foreground `WHITE; - mask - end - val mask : Gdk.bitmap option = mask - method pixmap = w - method mask = mask - method set_line_attributes ?width ?style ?cap ?join () = - pixmap#set_line_attributes ?width ?style ?cap ?join (); - may bitmap ~f:(fun m -> m#set_line_attributes ?width ?style ?cap ?join ()) - method point ~x ~y = - pixmap#point ~x ~y; - may bitmap ~f:(fun m -> m#point ~x ~y) - method line ~x ~y ~x:x' ~y:y' = - pixmap#line ~x ~y ~x:x' ~y:y'; - may bitmap ~f:(fun m -> m#line ~x ~y ~x:x' ~y:y') - method rectangle ~x ~y ~width ~height ?filled () = - pixmap#rectangle ~x ~y ~width ~height ?filled (); - may bitmap ~f:(fun m -> m#rectangle ~x ~y ~width ~height ?filled ()) - method arc ~x ~y ~width ~height ?filled ?start ?angle () = - pixmap#arc ~x ~y ~width ~height ?filled ?start ?angle (); - may bitmap - ~f:(fun m -> m#arc ~x ~y ~width ~height ?filled ?start ?angle ()); - method polygon ?filled l = - pixmap#polygon ?filled l; - may bitmap ~f:(fun m -> m#polygon ?filled l) - method string s ~font ~x ~y = - pixmap#string s ~font ~x ~y; - may bitmap ~f:(fun m -> m#string s ~font ~x ~y) -end - -class type misc_ops = object - method allocation : Gtk.rectangle - method colormap : colormap - method draw : Rectangle.t option -> unit - method hide : unit -> unit - method hide_all : unit -> unit - method intersect : Rectangle.t -> Rectangle.t option - method pointer : int * int - method realize : unit -> unit - method set_app_paintable : bool -> unit - method set_geometry : - ?x:int -> ?y:int -> ?width:int -> ?height:int -> unit -> unit - method show : unit -> unit - method unmap : unit -> unit - method unparent : unit -> unit - method unrealize : unit -> unit - method visible : bool - method visual : visual - method visual_depth : int - method window : window -end - -let pixmap ~(window : < misc : #misc_ops; .. >) - ~width ~height ?(mask=false) () = - window#misc#realize (); - let window = - try window#misc#window - with Gpointer.Null -> failwith "GDraw.pixmap : no window" - and depth = window#misc#visual_depth - and colormap = window#misc#colormap in - let mask = - if not mask then None else - let bm = Bitmap.create window ~width ~height in - let mask = new drawable bm in - mask#set_foreground `BLACK; - mask#rectangle ~x:0 ~y:0 ~width ~height ~filled:true (); - Some bm - in - new pixmap (Pixmap.create window ~width ~height ~depth) ~colormap ?mask - -let pixmap_from_xpm ~window ~file ?colormap ?transparent () = - window#misc#realize (); - let window = - try window#misc#window - with Gpointer.Null -> failwith "GDraw.pixmap_from_xpm : no window" in - let pm, mask = - try Pixmap.create_from_xpm window ~file ?colormap - ?transparent:(may_map transparent ~f:(fun c -> color c)) - with Gpointer.Null -> invalid_arg ("GDraw.pixmap_from_xpm : " ^ file) in - new pixmap pm ?colormap ~mask - -let pixmap_from_xpm_d ~window ~data ?colormap ?transparent () = - window#misc#realize (); - let window = - try window#misc#window - with Gpointer.Null -> failwith "GDraw.pixmap_from_xpm_d : no window" in - let pm, mask = - Pixmap.create_from_xpm_d window ~data ?colormap - ?transparent:(may_map transparent ~f:(fun c -> color c)) in - new pixmap pm ?colormap ~mask - -class drag_context context = object - val context = context - method status ?(time=0) act = DnD.drag_status context act ~time - method suggested_action = DnD.drag_context_suggested_action context - method targets = DnD.drag_context_targets context -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.mli deleted file mode 100644 index 2b5fc8627..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.mli +++ /dev/null @@ -1,107 +0,0 @@ -(* $Id$ *) - -open Gdk - -type color = - [ `COLOR of Color.t - | `WHITE - | `BLACK - | `NAME of string - | `RGB of int * int * int] - -val color : ?colormap:colormap -> color -> Color.t - -type optcolor = - [ `COLOR of Color.t - | `WHITE - | `BLACK - | `NAME of string - | `RGB of int * int * int - | `DEFAULT ] - -val optcolor : ?colormap:colormap -> optcolor -> Color.t option - -class ['a] drawable : ?colormap:colormap -> 'a Gdk.drawable -> - object - val gc : gc - val w : 'a Gdk.drawable - method arc : - x:int -> - y:int -> - width:int -> - height:int -> - ?filled:bool -> ?start:float -> ?angle:float -> unit -> unit - method color : color -> Color.t - method gc_values : GC.values - method image : - width:int -> - height:int -> - ?xsrc:int -> ?ysrc:int -> ?xdest:int -> ?ydest:int -> image -> unit - method line : x:int -> y:int -> x:int -> y:int -> unit - method point : x:int -> y:int -> unit - method polygon : ?filled:bool -> (int * int) list -> unit - method rectangle : - x:int -> - y:int -> width:int -> height:int -> ?filled:bool -> unit -> unit - method set_background : color -> unit - method set_foreground : color -> unit - method set_clip_region : region -> unit - method set_line_attributes : - ?width:int -> - ?style:GC.gdkLineStyle -> - ?cap:GC.gdkCapStyle -> ?join:GC.gdkJoinStyle -> unit -> unit - method string : string -> font:font -> x:int -> y:int -> unit - end - -class pixmap : - ?colormap:colormap -> ?mask:bitmap -> [ `pixmap] Gdk.drawable -> - object - inherit [[`pixmap]] drawable - val bitmap : [ `bitmap] drawable option - val mask : bitmap option - method mask : bitmap option - method pixmap : Gdk.pixmap - end - -class type misc_ops = - object - method allocation : Gtk.rectangle - method colormap : colormap - method draw : Rectangle.t option -> unit - method hide : unit -> unit - method hide_all : unit -> unit - method intersect : Rectangle.t -> Rectangle.t option - method pointer : int * int - method realize : unit -> unit - method set_app_paintable : bool -> unit - method set_geometry : - ?x:int -> ?y:int -> ?width:int -> ?height:int -> unit -> unit - method show : unit -> unit - method unmap : unit -> unit - method unparent : unit -> unit - method unrealize : unit -> unit - method visible : bool - method visual : visual - method visual_depth : int - method window : window - end - -val pixmap : - window:< misc : #misc_ops; .. > -> - width:int -> height:int -> ?mask:bool -> unit -> pixmap -val pixmap_from_xpm : - window:< misc : #misc_ops; .. > -> - file:string -> - ?colormap:colormap -> ?transparent:color -> unit -> pixmap -val pixmap_from_xpm_d : - window:< misc : #misc_ops; .. > -> - data:string array -> - ?colormap:colormap -> ?transparent:color -> unit -> pixmap - -class drag_context : Gdk.drag_context -> - object - val context : Gdk.drag_context - method status : ?time:int -> Tags.drag_action list -> unit - method suggested_action : Tags.drag_action - method targets : atom list - end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.ml deleted file mode 100644 index 467ee4505..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.ml +++ /dev/null @@ -1,147 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkEdit -open GObj - -class editable_signals obj = object - inherit widget_signals obj - method activate = GtkSignal.connect ~sgn:Editable.Signals.activate obj ~after - method changed = GtkSignal.connect ~sgn:Editable.Signals.changed obj ~after - method insert_text = - GtkSignal.connect ~sgn:Editable.Signals.insert_text obj ~after - method delete_text = - GtkSignal.connect ~sgn:Editable.Signals.delete_text obj ~after -end - -class editable obj = object - inherit widget obj - method connect = new editable_signals obj - method select_region = Editable.select_region obj - method insert_text = Editable.insert_text obj - method delete_text = Editable.delete_text obj - method get_chars = Editable.get_chars obj - method cut_clipboard () = Editable.cut_clipboard obj - method copy_clipboard () = Editable.copy_clipboard obj - method paste_clipboard () = Editable.paste_clipboard obj - method delete_selection () = Editable.delete_selection obj - method set_position = Editable.set_position obj - method position = Editable.get_position obj - method set_editable = Editable.set_editable obj - method selection = - if Editable.has_selection obj then - Some (Editable.selection_start_pos obj, Editable.selection_end_pos obj) - else None -end - -class entry obj = object - inherit editable obj - method event = new GObj.event_ops obj - method set_text = Entry.set_text obj - method append_text = Entry.append_text obj - method prepend_text = Entry.prepend_text obj - method set_visibility = Entry.set_visibility obj - method set_max_length = Entry.set_max_length obj - method text = Entry.get_text obj - method text_length = Entry.text_length obj -end - -let set_editable ?editable ?(width = -2) ?(height = -2) w = - may editable ~f:(Editable.set_editable w); - if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height - -let entry ?max_length ?text ?visibility ?editable - ?width ?height ?packing ?show () = - let w = Entry.create ?max_length () in - Entry.set w ?text ?visibility; - set_editable w ?editable ?width ?height; - pack_return (new entry w) ~packing ~show - -class spin_button obj = object - inherit entry (obj : Gtk.spin_button obj) - method adjustment = new GData.adjustment (SpinButton.get_adjustment obj) - method value = SpinButton.get_value obj - method value_as_int = SpinButton.get_value_as_int obj - method spin = SpinButton.spin obj - method update = SpinButton.update obj - method set_adjustment adj = - SpinButton.set_adjustment obj (GData.as_adjustment adj) - method set_digits = SpinButton.set_digits obj - method set_value = SpinButton.set_value obj - method set_update_policy = SpinButton.set_update_policy obj - method set_numeric = SpinButton.set_numeric obj - method set_wrap = SpinButton.set_wrap obj - method set_shadow_type = SpinButton.set_shadow_type obj - method set_snap_to_ticks = SpinButton.set_snap_to_ticks obj -end - -let spin_button ?adjustment ?rate ?digits ?value ?update_policy - ?numeric ?wrap ?shadow_type ?snap_to_ticks - ?width ?height ?packing ?show () = - let w = SpinButton.create ?rate ?digits - ?adjustment:(may_map ~f:GData.as_adjustment adjustment) () in - SpinButton.set w ?value ?update_policy - ?numeric ?wrap ?shadow_type ?snap_to_ticks; - set_editable w ?width ?height; - pack_return (new spin_button w) ~packing ~show - -class combo obj = object - inherit GObj.widget (obj : Gtk.combo obj) - method entry = new entry (Combo.entry obj) - method list = new GList.liste (Combo.list obj) - method set_popdown_strings = Combo.set_popdown_strings obj - method set_use_arrows = Combo.set_use_arrows' obj - method set_case_sensitive = Combo.set_case_sensitive obj - method set_value_in_list = Combo.set_value_in_list obj - method disable_activate () = Combo.disable_activate obj - method set_item_string (item : GList.list_item) = - Combo.set_item_string obj item#as_item -end - -let combo ?popdown_strings ?use_arrows - ?case_sensitive ?value_in_list ?ok_if_empty - ?border_width ?width ?height ?packing ?show () = - let w = Combo.create () in - Combo.set w ?popdown_strings ?use_arrows - ?case_sensitive ?value_in_list ?ok_if_empty; - Container.set w ?border_width ?width ?height; - pack_return (new combo w) ~packing ~show - -class text obj = object (self) - inherit editable (obj : Gtk.text obj) as super - method get_chars ~start ~stop:e = - if start < 0 || e > Text.get_length obj || e < start then - invalid_arg "GEdit.text#get_chars"; - super#get_chars ~start ~stop:e - method event = new GObj.event_ops obj - method set_point = Text.set_point obj - method set_hadjustment adj = - Text.set_adjustment obj ~horizontal:(GData.as_adjustment adj) () - method set_vadjustment adj = - Text.set_adjustment obj ~vertical:(GData.as_adjustment adj) () - method set_word_wrap = Text.set_word_wrap obj - method set_line_wrap = Text.set_line_wrap obj - method hadjustment = new GData.adjustment (Text.get_hadjustment obj) - method vadjustment = new GData.adjustment (Text.get_vadjustment obj) - method point = Text.get_point obj - method length = Text.get_length obj - method freeze () = Text.freeze obj - method thaw () = Text.thaw obj - method insert ?font ?foreground ?background text = - let colormap = try Some self#misc#colormap with _ -> None in - Text.insert obj text ?font - ?foreground:(may_map foreground ~f:(GDraw.color ?colormap)) - ?background:(may_map background ~f:(GDraw.color ?colormap)) -end - -let text ?hadjustment ?vadjustment ?editable - ?word_wrap ?line_wrap ?width ?height ?packing ?show () = - let w = Text.create () - ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment) - ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) in - may word_wrap ~f:(Text.set_word_wrap w); - may line_wrap ~f:(Text.set_line_wrap w); - set_editable w ?editable ?width ?height; - pack_return (new text w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.mli deleted file mode 100644 index 3b2c286ea..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.mli +++ /dev/null @@ -1,146 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj - -class editable_signals : 'a obj -> - object - inherit widget_signals - constraint 'a = [>`editable|`widget] - val obj : 'a obj - method activate : callback:(unit -> unit) -> GtkSignal.id - method changed : callback:(unit -> unit) -> GtkSignal.id - method delete_text : - callback:(start:int -> stop:int -> unit) -> GtkSignal.id - method insert_text : - callback:(string -> pos:int -> unit) -> GtkSignal.id - end - -class editable : 'a obj -> - object - inherit widget - constraint 'a = [>`editable|`widget] - val obj : 'a obj - method connect : editable_signals - method copy_clipboard : unit -> unit - method cut_clipboard : unit -> unit - method delete_selection : unit -> unit - method delete_text : start:int -> stop:int -> unit - method get_chars : start:int -> stop:int -> string - method insert_text : string -> pos:int -> int - method paste_clipboard : unit -> unit - method position : int - method select_region : start:int -> stop:int -> unit - method selection : (int * int) option - method set_editable : bool -> unit - method set_position : int -> unit - end - -class entry : 'a obj -> - object - inherit editable - constraint 'a = [>`entry|`editable|`widget] - val obj : 'a obj - method event : event_ops - method append_text : string -> unit - method prepend_text : string -> unit - method set_max_length : int -> unit - method set_text : string -> unit - method set_visibility : bool -> unit - method text : string - method text_length : int - end -val entry : - ?max_length:int -> - ?text:string -> - ?visibility:bool -> - ?editable:bool -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> entry - -class spin_button : Gtk.spin_button obj -> - object - inherit entry - val obj : Gtk.spin_button obj - method adjustment : GData.adjustment - method set_adjustment : GData.adjustment -> unit - method set_digits : int -> unit - method set_numeric : bool -> unit - method set_shadow_type : Tags.shadow_type -> unit - method set_snap_to_ticks : bool -> unit - method set_update_policy : [`ALWAYS|`IF_VALID] -> unit - method set_value : float -> unit - method set_wrap : bool -> unit - method spin : Tags.spin_type -> unit - method update : unit - method value : float - method value_as_int : int - end -val spin_button : - ?adjustment:GData.adjustment -> - ?rate:float -> - ?digits:int -> - ?value:float -> - ?update_policy:[`ALWAYS|`IF_VALID] -> - ?numeric:bool -> - ?wrap:bool -> - ?shadow_type:Tags.shadow_type -> - ?snap_to_ticks:bool -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> spin_button - -class combo : Gtk.combo obj -> - object - inherit widget - val obj : Gtk.combo obj - method disable_activate : unit -> unit - method entry : entry - method list : GList.liste - method set_case_sensitive : bool -> unit - method set_item_string : GList.list_item -> string -> unit - method set_popdown_strings : string list -> unit - method set_use_arrows : [`NEVER|`DEFAULT|`ALWAYS] -> unit - method set_value_in_list : - ?required:bool -> ?ok_if_empty:bool -> unit -> unit - end -val combo : - ?popdown_strings:string list -> - ?use_arrows:[`NEVER|`DEFAULT|`ALWAYS] -> - ?case_sensitive:bool -> - ?value_in_list:bool -> - ?ok_if_empty:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> combo - -class text : Gtk.text obj -> - object - inherit editable - val obj : Gtk.text obj - method event : event_ops - method freeze : unit -> unit - method hadjustment : GData.adjustment - method insert : - ?font:Gdk.font -> - ?foreground:GDraw.color -> ?background:GDraw.color -> string -> unit - method length : int - method point : int - method set_hadjustment : GData.adjustment -> unit - method set_point : int -> unit - method set_vadjustment : GData.adjustment -> unit - method set_word_wrap : bool -> unit - method set_line_wrap : bool -> unit - method thaw : unit -> unit - method vadjustment : GData.adjustment - end -val text : - ?hadjustment:GData.adjustment -> - ?vadjustment:GData.adjustment -> - ?editable:bool -> - ?word_wrap:bool -> - ?line_wrap:bool -> - ?width:int -> - ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> text diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gHtml.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gHtml.ml deleted file mode 100644 index 1150790c5..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gHtml.ml +++ /dev/null @@ -1,33 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GObj -open GtkXmHTML - -class xmhtml obj = object (self) - inherit widget_full (obj : GtkXmHTML.xmhtml obj) - method event = new GObj.event_ops obj - method freeze = freeze obj - method thaw = thaw obj - method source = source obj - method set_fonts = set_font_familty obj - method set_fonts_fixed = set_font_familty_fixed obj - method set_anchor_buttons = set_anchor_buttons obj - method set_anchor_cursor = set_anchor_cursor obj - method set_anchor_underline = set_anchor_underline_type obj - method set_anchor_visited_underline = set_anchor_visited_underline_type obj - method set_anchor_target_underline = set_anchor_target_underline_type obj - method set_topline = set_topline obj - method topline = get_topline obj - method set_strict_checking = set_strict_checking obj - method set_bad_html_warnings = set_bad_html_warnings obj - method set_imagemap_draw = set_imagemap_draw obj -end - -let xmhtml ?source ?border_width ?width ?height ?packing ?show () = - let w = create () in - Container.set w ?border_width ?width ?height; - may source ~f:(GtkXmHTML.source w); - pack_return (new xmhtml w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.ml deleted file mode 100644 index 3b1abe43b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.ml +++ /dev/null @@ -1,162 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkList -open GObj -open GContainer - -class list_item obj = object - inherit container (obj : Gtk.list_item obj) - method event = new GObj.event_ops obj - method as_item = obj - method select () = Item.select obj - method deselect () = Item.deselect obj - method toggle () = Item.toggle obj - method connect = new item_signals obj -end - -let list_item ?label ?border_width ?width ?height ?packing ?(show=true) () = - let w = ListItem.create ?label () in - Container.set w ?border_width ?width ?height; - let item = new list_item w in - may packing ~f:(fun f -> (f item : unit)); - if show then item#misc#show (); - item - -class liste obj = object - inherit [list_item] item_container (obj : Gtk.liste obj) - method private wrap w = new list_item (ListItem.cast w) - method insert w = Liste.insert_item obj w#as_item - method clear_items = Liste.clear_items obj - method select_item = Liste.select_item obj - method unselect_item = Liste.unselect_item obj - method child_position (w : list_item) = Liste.child_position obj w#as_item -end - -let liste ?selection_mode ?border_width ?width ?height - ?packing ?show () = - let w = Liste.create () in - may selection_mode ~f:(Liste.set_selection_mode w); - Container.set w ?border_width ?width ?height; - pack_return (new liste w) ~packing ~show - -(* Cell lists *) - -class clist_signals obj = object - inherit container_signals obj - method click_column = - GtkSignal.connect ~sgn:CList.Signals.click_column obj ~after - method select_row = - GtkSignal.connect ~sgn:CList.Signals.select_row obj ~after - method unselect_row = - GtkSignal.connect ~sgn:CList.Signals.unselect_row obj ~after - method scroll_vertical = - GtkSignal.connect ~sgn:CList.Signals.scroll_vertical obj ~after - method scroll_horizontal = - GtkSignal.connect ~sgn:CList.Signals.scroll_horizontal obj ~after -end - -class ['a] clist obj = object (self) - inherit widget (obj : Gtk.clist obj) - method set_border_width = Container.set_border_width obj - method event = new GObj.event_ops obj - method connect = new clist_signals obj - method rows = CList.get_rows obj - method columns = CList.get_columns obj - method focus_row = CList.get_focus_row obj - method hadjustment = new GData.adjustment (CList.get_hadjustment obj) - method vadjustment = new GData.adjustment (CList.get_vadjustment obj) - method set_button_actions = CList.set_button_actions obj - method freeze () = CList.freeze obj - method thaw () = CList.thaw obj - method column_title = CList.get_column_title obj - method column_widget col = - new widget (CList.get_column_widget obj col) - method columns_autosize () = CList.columns_autosize obj - method optimal_column_width = CList.optimal_column_width obj - method moveto ?(row_align=0.) ?(col_align=0.) row col = - CList.moveto obj row col ~row_align ~col_align - method row_is_visible = CList.row_is_visible obj - method cell_type = CList.get_cell_type obj - method cell_text = CList.get_text obj - method cell_pixmap row col = - let pm, mask = CList.get_pixmap obj row col in - may_map pm ~f:(fun x -> new GDraw.pixmap ?mask x) - method cell_style row col = - try Some (new style (CList.get_cell_style obj row col)) - with Gpointer.Null -> None - method row_selectable row = CList.get_selectable obj ~row - method row_style row = - try Some (new style (CList.get_row_style obj ~row)) - with Gpointer.Null -> None - method set_shift = CList.set_shift obj - method insert ~row texts = - let texts = List.map texts ~f:(fun x -> Some x) in - CList.insert obj ~row texts - method append = self#insert ~row:self#rows - method prepend = self#insert ~row:0 - method remove = CList.remove obj - method select = CList.select obj - method unselect = CList.unselect obj - method clear () = CList.clear obj - method get_row_column = CList.get_row_column obj - method select_all () = CList.select_all obj - method unselect_all () = CList.unselect_all obj - method swap_rows = CList.swap_rows obj - method row_move = CList.row_move obj - method sort () = CList.sort obj - method set_hadjustment adj = - CList.set_hadjustment obj (GData.as_adjustment adj) - method set_vadjustment adj = - CList.set_vadjustment obj (GData.as_adjustment adj) - method set_shadow_type = CList.set_shadow_type obj - method set_button_actions = CList.set_button_actions obj - method set_selection_mode = CList.set_selection_mode obj - method set_reorderable = CList.set_reorderable obj - method set_use_drag_icons = CList.set_use_drag_icons obj - method set_row_height = CList.set_row_height obj - method set_titles_show = CList.set_titles_show obj - method set_titles_active = CList.set_titles_active obj - method set_sort = CList.set_sort obj - method set_column ?widget = - CList.set_column obj ?widget:(may_map widget ~f:as_widget) - method set_row ?foreground ?background ?selectable ?style = - let color = may_map ~f:(fun c -> Gpointer.optboxed (GDraw.optcolor c)) - and style = may_map ~f:(fun (st : style) -> st#as_style) style in - CList.set_row obj - ?foreground:(color foreground) ?background:(color background) - ?selectable ?style - method set_cell ?text ?pixmap ?spacing ?style = - let pixmap, mask = - match pixmap with None -> None, None - | Some (pm : GDraw.pixmap) -> Some pm#pixmap, pm#mask - and style = may_map ~f:(fun (st : style) -> st#as_style) style in - CList.set_cell obj ?text ?pixmap ?mask ?spacing ?style - method set_row_data n ~data = - CList.set_row_data obj ~row:n (Obj.repr (data : 'a)) - method get_row_data n : 'a = Obj.obj (CList.get_row_data obj ~row:n) - method scroll_vertical = - CList.Signals.emit_scroll obj ~sgn:CList.Signals.scroll_vertical - method scroll_horizontal = - CList.Signals.emit_scroll obj ~sgn:CList.Signals.scroll_horizontal -end - -let clist ?(columns=1) ?titles ?hadjustment ?vadjustment - ?shadow_type ?button_actions ?selection_mode - ?reorderable ?use_drag_icons ?row_height - ?titles_show ?titles_active ?auto_sort ?sort_column ?sort_type - ?border_width ?width ?height ?packing ?show () = - let w = - match titles with None -> CList.create ~cols:columns - | Some titles -> CList.create_with_titles (Array.of_list titles) - in - CList.set w - ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment) - ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) - ?shadow_type ?button_actions ?selection_mode ?reorderable - ?use_drag_icons ?row_height ?titles_show ?titles_active; - CList.set_sort w ?auto:auto_sort ?column:sort_column ?dir:sort_type (); - Container.set w ?border_width ?width ?height; - pack_return (new clist w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.mli deleted file mode 100644 index 17f4cef96..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.mli +++ /dev/null @@ -1,158 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class list_item : Gtk.list_item obj -> - object - inherit container - val obj : Gtk.list_item obj - method event : event_ops - method as_item : Gtk.list_item obj - method connect : item_signals - method deselect : unit -> unit - method select : unit -> unit - method toggle : unit -> unit - end -val list_item : - ?label:string -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(list_item -> unit) -> ?show:bool -> unit -> list_item - -class liste : Gtk.liste obj -> - object - inherit [list_item] item_container - val obj : Gtk.liste obj - method child_position : list_item -> int - method clear_items : start:int -> stop:int -> unit - method insert : list_item -> pos:int -> unit - method select_item : pos:int -> unit - method unselect_item : pos:int -> unit - method private wrap : Gtk.widget obj -> list_item - end -val liste : - ?selection_mode:Tags.selection_mode -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> liste - -class clist_signals : 'a obj -> - object - inherit container_signals - constraint 'a = [>`clist|`container|`widget] - val obj : 'a obj - method click_column : callback:(int -> unit) -> GtkSignal.id - method select_row : - callback:(row:int -> - column:int -> event:GdkEvent.Button.t option -> unit) -> - GtkSignal.id - method unselect_row : - callback:(row:int -> - column:int -> event:GdkEvent.Button.t option -> unit) -> - GtkSignal.id - method scroll_horizontal : - callback:(Tags.scroll_type -> pos:clampf -> unit) -> GtkSignal.id - method scroll_vertical : - callback:(Tags.scroll_type -> pos:clampf -> unit) -> GtkSignal.id - end - -class ['a] clist : Gtk.clist obj -> - object - inherit widget - val obj : Gtk.clist obj - method event : event_ops - method append : string list -> int - method cell_pixmap : int -> int -> GDraw.pixmap option - method cell_style : int -> int -> style option - method cell_text : int -> int -> string - method cell_type : int -> int -> Tags.cell_type - method clear : unit -> unit - method column_title : int -> string - method column_widget : int -> widget - method columns : int - method columns_autosize : unit -> unit - method connect : clist_signals - method focus_row : int - method freeze : unit -> unit - method get_row_column : x:int -> y:int -> int * int - method get_row_data : int -> 'a - method hadjustment : GData.adjustment - method insert : row:int -> string list -> int - method moveto : - ?row_align:clampf -> ?col_align:clampf -> int -> int -> unit - method optimal_column_width : int -> int - method prepend : string list -> int - method remove : row:int -> unit - method row_is_visible : int -> Tags.visibility - method row_move : int -> dst:int -> unit - method row_selectable : int -> bool - method row_style : int -> style option - method rows : int - method scroll_vertical : Tags.scroll_type -> pos:clampf -> unit - method scroll_horizontal : Tags.scroll_type -> pos:clampf -> unit - method select : int -> int -> unit - method select_all : unit -> unit - method set_border_width : int -> unit - method set_button_actions : int -> Tags.button_action list -> unit - method set_cell : - ?text:string -> - ?pixmap:GDraw.pixmap -> - ?spacing:int -> ?style:style -> int -> int -> unit - method set_column : - ?widget:widget -> - ?title:string -> - ?title_active:bool -> - ?justification:Tags.justification -> - ?visibility:bool -> - ?resizeable:bool -> - ?auto_resize:bool -> - ?width:int -> ?min_width:int -> ?max_width:int -> int -> unit - method set_hadjustment : GData.adjustment -> unit - method set_reorderable : bool -> unit - method set_row : - ?foreground:GDraw.optcolor -> - ?background:GDraw.optcolor -> - ?selectable:bool -> - ?style:style -> int -> unit - method set_row_data : int -> data:'a -> unit - method set_row_height : int -> unit - method set_selection_mode : Tags.selection_mode -> unit - method set_shadow_type : Tags.shadow_type -> unit - method set_shift : int -> int -> vertical:int -> horizontal:int -> unit - method set_sort : - ?auto:bool -> ?column:int -> ?dir:Tags.sort_type -> unit -> unit - method set_titles_active : bool -> unit - method set_titles_show : bool -> unit - method set_use_drag_icons : bool -> unit - method set_vadjustment : GData.adjustment -> unit - method sort : unit -> unit - method swap_rows : int -> int -> unit - method thaw : unit -> unit - method unselect : int -> int -> unit - method unselect_all : unit -> unit - method vadjustment : GData.adjustment - end -val clist : - ?columns:int -> - ?titles:string list -> - ?hadjustment:GData.adjustment -> - ?vadjustment:GData.adjustment -> - ?shadow_type:Tags.shadow_type -> - ?button_actions:(int * Tags.button_action list) list -> - ?selection_mode:Tags.selection_mode -> - ?reorderable:bool -> - ?use_drag_icons:bool -> - ?row_height:int -> - ?titles_show:bool -> - ?titles_active:bool -> - ?auto_sort:bool -> - ?sort_column:int -> - ?sort_type:Tags.sort_type -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> 'a clist diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMain.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMain.ml deleted file mode 100644 index 811f490d4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMain.ml +++ /dev/null @@ -1,26 +0,0 @@ -(* $Id$ *) - -open Gtk -open GtkMain -open GObj - -module Main : sig - val init : unit -> string (* returns the locale name *) - val main : unit -> unit - val quit : unit -> unit - val version : int * int * int - val flush : unit -> unit -end = Main - -module Grab = struct - open Grab - let add (w : #widget) = add w#as_widget - let remove (w : #widget) = remove w#as_widget - let get_current () = new widget (get_current ()) -end - -module Timeout : sig - type id - val add : ms:int -> callback:(unit -> bool) -> id - val remove : id -> unit -end = Timeout diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.ml deleted file mode 100644 index 52f05a462..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.ml +++ /dev/null @@ -1,199 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkData -open GtkBase -open GtkMenu -open GObj -open GContainer - -(* Menu type *) - -class menu_shell_signals obj = object - inherit container_signals obj - method deactivate = - GtkSignal.connect ~sgn:MenuShell.Signals.deactivate obj ~after -end - -class type virtual ['a] pre_menu = object - inherit ['a] item_container - method as_menu : Gtk.menu Gtk.obj - method deactivate : unit -> unit - method connect : menu_shell_signals - method event : event_ops - method popup : button:int -> time:int -> unit - method popdown : unit -> unit - method set_accel_group : accel_group -> unit -end - -(* Menu items *) - -class menu_item_signals obj = object - inherit item_signals obj - method activate = GtkSignal.connect ~sgn:MenuItem.Signals.activate obj -end - - -class ['a] pre_menu_item_skel obj = object - inherit container obj - method as_item = MenuItem.coerce obj - method set_submenu (w : 'a pre_menu) = MenuItem.set_submenu obj w#as_menu - method remove_submenu () = MenuItem.remove_submenu obj - method configure = MenuItem.configure obj - method activate () = MenuItem.activate obj - method right_justify () = MenuItem.right_justify obj - method add_accelerator ~group ?modi:m ?flags key= - Widget.add_accelerator obj ~sgn:MenuItem.Signals.activate group ?flags - ?modi:m ~key -end - -class menu_item obj = object - inherit [menu_item] pre_menu_item_skel obj - method connect = new menu_item_signals obj - method event = new GObj.event_ops obj -end - -class menu_item_skel = [menu_item] pre_menu_item_skel - -let pack_item self ~packing ~show = - may packing ~f:(fun f -> (f (self :> menu_item) : unit)); - if show <> Some false then self#misc#show (); - self - -let menu_item ?label ?border_width ?width ?height ?packing ?show () = - let w = MenuItem.create ?label () in - Container.set w ?border_width ?width ?height; - pack_item (new menu_item w) ?packing ?show - -let tearoff_item ?border_width ?width ?height ?packing ?show () = - let w = MenuItem.tearoff_create () in - Container.set w ?border_width ?width ?height; - pack_item (new menu_item w) ?packing ?show - -class check_menu_item_signals obj = object - inherit menu_item_signals obj - method toggled = - GtkSignal.connect ~sgn:CheckMenuItem.Signals.toggled obj ~after -end - -class check_menu_item obj = object - inherit menu_item_skel obj - method set_active = CheckMenuItem.set_active obj - method set_show_toggle = CheckMenuItem.set_show_toggle obj - method active = CheckMenuItem.get_active obj - method toggled () = CheckMenuItem.toggled obj - method connect = new check_menu_item_signals obj - method event = new GObj.event_ops obj -end - -let check_menu_item ?label ?active ?show_toggle - ?border_width ?width ?height ?packing ?show () = - let w = CheckMenuItem.create ?label () in - CheckMenuItem.set w ?active ?show_toggle; - Container.set w ?border_width ?width ?height; - pack_item (new check_menu_item w) ?packing ?show - -class radio_menu_item obj = object - inherit check_menu_item (obj : Gtk.radio_menu_item obj) - method group = Some obj - method set_group = RadioMenuItem.set_group obj -end - -let radio_menu_item ?group ?label ?active ?show_toggle - ?border_width ?width ?height ?packing ?show () = - let w = RadioMenuItem.create ?group ?label () in - CheckMenuItem.set w ?active ?show_toggle; - Container.set w ?border_width ?width ?height; - pack_item (new radio_menu_item w) ?packing ?show - -(* Menus *) - -class menu_shell obj = object - inherit [menu_item] item_container obj - method private wrap w = new menu_item (MenuItem.cast w) - method insert w = MenuShell.insert obj w#as_item - method deactivate () = MenuShell.deactivate obj - method connect = new menu_shell_signals obj - method event = new GObj.event_ops obj -end - -class menu obj = object - inherit menu_shell obj - method popup = Menu.popup obj - method popdown () = Menu.popdown obj - method as_menu : Gtk.menu obj = obj - method set_accel_group = Menu.set_accel_group obj -end - -let menu ?border_width ?packing ?show () = - let w = Menu.create () in - may border_width ~f:(Container.set_border_width w); - let self = new menu w in - may packing ~f:(fun f -> (f (self :> menu) : unit)); - if show <> Some false then self#misc#show (); - self - -(* Option Menu (GtkButton?) *) - -class option_menu obj = object - inherit GButton.button_skel obj - method connect = new GButton.button_signals obj - method event = new GObj.event_ops obj - method set_menu (menu : menu) = OptionMenu.set_menu obj menu#as_menu - method get_menu = new menu (OptionMenu.get_menu obj) - method remove_menu () = OptionMenu.remove_menu obj - method set_history = OptionMenu.set_history obj -end - -let option_menu ?border_width ?width ?height ?packing ?show () = - let w = OptionMenu.create () in - Container.set w ?border_width ?width ?height; - pack_return (new option_menu w) ~packing ~show - -(* Menu Bar *) - -let menu_bar ?border_width ?width ?height ?packing ?show () = - let w = MenuBar.create () in - Container.set w ?border_width ?width ?height; - pack_return (new menu_shell w) ~packing ~show - -(* Menu Factory *) - -class ['a] factory - ?(accel_group=AccelGroup.create ()) - ?(accel_modi=[`CONTROL]) - ?(accel_flags=[`VISIBLE]) (menu_shell : 'a) = - object (self) - val menu_shell : #menu_shell = menu_shell - val group = accel_group - val m = accel_modi - val flags = accel_flags - method menu = menu_shell - method accel_group = group - method private bind ?key ?callback (item : menu_item) = - menu_shell#append item; - may key ~f:(item#add_accelerator ~group ~modi:m ~flags); - may callback ~f:(fun callback -> item#connect#activate ~callback) - method add_item ?key ?callback ?submenu label = - let item = menu_item ~label () in - self#bind item ?key ?callback; - may (submenu : menu option) ~f:item#set_submenu; - item - method add_check_item ?active ?key ?callback label = - let item = check_menu_item ~label ?active () in - self#bind (item :> menu_item) ?key - ?callback:(may_map callback ~f:(fun f () -> f item#active)); - item - method add_radio_item ?group ?active ?key ?callback label = - let item = radio_menu_item ~label ?group ?active () in - self#bind (item :> menu_item) ?key - ?callback:(may_map callback ~f:(fun f () -> f item#active)); - item - method add_separator () = menu_item ~packing:menu_shell#append () - method add_submenu ?key label = - let item = menu_item ~label () in - self#bind item ?key; - menu ~packing:item#set_submenu (); - method add_tearoff () = tearoff_item ~packing:menu_shell#append () -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.mli deleted file mode 100644 index 505249bea..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.mli +++ /dev/null @@ -1,196 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class menu_shell_signals : 'b obj -> - object ('a) - inherit container_signals - constraint 'b = [>`menushell|`container|`widget] - val obj : 'b obj - method deactivate : callback:(unit -> unit) -> GtkSignal.id - end - -class menu_item_signals : 'b obj -> - object ('a) - inherit item_signals - constraint 'b = [>`menuitem|`container|`item|`widget] - val obj : 'b obj - method activate : callback:(unit -> unit) -> GtkSignal.id - end - -class menu_item_skel : - 'a obj -> - object - inherit container - constraint 'a = [>`widget|`container|`menuitem] - val obj : 'a obj - method activate : unit -> unit - method add_accelerator : - group:accel_group -> - ?modi:Gdk.Tags.modifier list -> - ?flags:Tags.accel_flag list -> Gdk.keysym -> unit - method as_item : Gtk.menu_item obj - method configure : show_toggle:bool -> show_indicator:bool -> unit - method remove_submenu : unit -> unit - method right_justify : unit -> unit - method set_submenu : menu -> unit - end -and menu_item : 'a obj -> - object - inherit menu_item_skel - constraint 'a = [>`widget|`container|`item|`menuitem] - val obj : 'a obj - method event : event_ops - method connect : menu_item_signals - end -and menu : Gtk.menu obj -> - object - inherit [menu_item] item_container - val obj : Gtk.menu obj - method add : menu_item -> unit - method event : event_ops - method append : menu_item -> unit - method as_menu : Gtk.menu obj - method children : menu_item list - method connect : menu_shell_signals - method deactivate : unit -> unit - method insert : menu_item -> pos:int -> unit - method popdown : unit -> unit - method popup : button:int -> time:int -> unit - method prepend : menu_item -> unit - method remove : menu_item -> unit - method set_accel_group : accel_group -> unit - method set_border_width : int -> unit - method private wrap : Gtk.widget obj -> menu_item - end - -val menu : - ?border_width:int -> ?packing:(menu -> unit) -> ?show:bool -> unit -> menu -val menu_item : - ?label:string -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(menu_item -> unit) -> ?show:bool -> unit -> menu_item -val tearoff_item : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(menu_item -> unit) -> ?show:bool -> unit -> menu_item - -class check_menu_item_signals : 'a obj -> - object - inherit menu_item_signals - constraint 'a = [>`checkmenuitem|`container|`item|`menuitem|`widget] - val obj : 'a obj - method toggled : callback:(unit -> unit) -> GtkSignal.id - end - -class check_menu_item : 'a obj -> - object - inherit menu_item_skel - constraint 'a = [>`widget|`checkmenuitem|`container|`item|`menuitem] - val obj : 'a obj - method active : bool - method event : event_ops - method connect : check_menu_item_signals - method set_active : bool -> unit - method set_show_toggle : bool -> unit - method toggled : unit -> unit - end -val check_menu_item : - ?label:string -> - ?active:bool -> - ?show_toggle:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(menu_item -> unit) -> ?show:bool -> unit -> check_menu_item - -class radio_menu_item : Gtk.radio_menu_item obj -> - object - inherit check_menu_item - val obj : Gtk.radio_menu_item obj - method group : Gtk.radio_menu_item group - method set_group : Gtk.radio_menu_item group -> unit - end -val radio_menu_item : - ?group:Gtk.radio_menu_item group -> - ?label:string -> - ?active:bool -> - ?show_toggle:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(menu_item -> unit) -> ?show:bool -> unit -> radio_menu_item - -class menu_shell : 'a obj -> - object - inherit [menu_item] item_container - constraint 'a = [>`widget|`container|`menushell] - val obj : 'a obj - method event : event_ops - method deactivate : unit -> unit - method connect : menu_shell_signals - method insert : menu_item -> pos:int -> unit - method private wrap : Gtk.widget obj -> menu_item - end - -val menu_bar : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> menu_shell - -class option_menu : 'a obj -> - object - inherit GButton.button_skel - constraint 'a = [>`optionmenu|`button|`container|`widget] - val obj : 'a obj - method event : event_ops - method connect : GButton.button_signals - method get_menu : menu - method remove_menu : unit -> unit - method set_history : int -> unit - method set_menu : menu -> unit - end -val option_menu : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> option_menu - -class ['a] factory : - ?accel_group:accel_group -> - ?accel_modi:Gdk.Tags.modifier list -> - ?accel_flags:Tags.accel_flag list -> - 'a -> - object - constraint 'a = #menu_shell - val flags : Tags.accel_flag list - val group : accel_group - val m : Gdk.Tags.modifier list - val menu_shell : 'a - method accel_group : accel_group - method add_check_item : - ?active:bool -> - ?key:Gdk.keysym -> - ?callback:(bool -> unit) -> string -> check_menu_item - method add_item : - ?key:Gdk.keysym -> - ?callback:(unit -> unit) -> - ?submenu:menu -> string -> menu_item - method add_radio_item : - ?group:Gtk.radio_menu_item group -> - ?active:bool -> - ?key:Gdk.keysym -> - ?callback:(bool -> unit) -> string -> radio_menu_item - method add_separator : unit -> menu_item - method add_submenu : ?key:Gdk.keysym -> string -> menu - method add_tearoff : unit -> menu_item - method private bind : - ?key:Gdk.keysym -> ?callback:(unit -> unit) -> menu_item -> unit - method menu : 'a - end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.ml deleted file mode 100644 index 13fd7b4dd..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.ml +++ /dev/null @@ -1,217 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkMisc -open GObj - -let separator dir ?(width = -2) ?(height = -2) ?packing ?show () = - let w = Separator.create dir in - if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height; - pack_return (new widget_full w) ~packing ~show - -class statusbar_context obj ctx = object (self) - val obj : statusbar obj = obj - val context : Gtk.statusbar_context = ctx - method context = context - method push text = Statusbar.push obj context ~text - method pop () = Statusbar.pop obj context - method remove = Statusbar.remove obj context - method flash ?(delay=1000) text = - let msg = self#push text in - GtkMain.Timeout.add ~ms:delay ~callback:(fun () -> self#remove msg; false); - () -end - -class statusbar obj = object - inherit GContainer.container_full (obj : Gtk.statusbar obj) - method new_context ~name = - new statusbar_context obj (Statusbar.get_context obj name) -end - -let statusbar ?border_width ?width ?height ?packing ?show () = - let w = Statusbar.create () in - Container.set w ?border_width ?width ?height; - pack_return (new statusbar w) ~packing ~show - -class calendar_signals obj = object - inherit widget_signals obj - method month_changed = - GtkSignal.connect obj ~sgn:Calendar.Signals.month_changed ~after - method day_selected = - GtkSignal.connect obj ~sgn:Calendar.Signals.day_selected ~after - method day_selected_double_click = - GtkSignal.connect obj - ~sgn:Calendar.Signals.day_selected_double_click ~after - method prev_month = - GtkSignal.connect obj ~sgn:Calendar.Signals.prev_month ~after - method next_month = - GtkSignal.connect obj ~sgn:Calendar.Signals.next_month ~after - method prev_year = - GtkSignal.connect obj ~sgn:Calendar.Signals.prev_year ~after - method next_year = - GtkSignal.connect obj ~sgn:Calendar.Signals.next_year ~after -end - -class calendar obj = object - inherit widget (obj : Gtk.calendar obj) - method event = new GObj.event_ops obj - method connect = new calendar_signals obj - method select_month = Calendar.select_month obj - method select_day = Calendar.select_day obj - method mark_day = Calendar.mark_day obj - method unmark_day = Calendar.unmark_day obj - method clear_marks = Calendar.clear_marks obj - method display_options = Calendar.display_options obj - method date = Calendar.get_date obj - method freeze () = Calendar.freeze obj - method thaw () = Calendar.thaw obj -end - -let calendar ?options ?(width = -2) ?(height = -2) ?packing ?show () = - let w = Calendar.create () in - if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height; - may options ~f:(Calendar.display_options w); - pack_return (new calendar w) ~packing ~show - -class drawing_area obj = object - inherit widget_full (obj : Gtk.drawing_area obj) - method event = new GObj.event_ops obj - method set_size = DrawingArea.size obj -end - -let drawing_area ?(width=0) ?(height=0) ?packing ?show () = - let w = DrawingArea.create () in - if width <> 0 || height <> 0 then DrawingArea.size w ~width ~height; - pack_return (new drawing_area w) ~packing ~show - -class misc obj = object - inherit widget obj - method set_alignment = Misc.set_alignment obj - method set_padding = Misc.set_padding obj -end - -class arrow obj = object - inherit misc obj - method set_arrow kind ~shadow = Arrow.set obj ~kind ~shadow -end - -let arrow ~kind ~shadow - ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () = - let w = Arrow.create ~kind ~shadow in - Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height; - pack_return (new arrow w) ~packing ~show - -class image obj = object - inherit misc obj - method set_image ?mask image = Image.set obj image ?mask -end - -let image image ?mask - ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () = - let w = Image.create image ?mask in - Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height; - pack_return (new image w) ~packing ~show - -class label_skel obj = object - inherit misc obj - method set_text = Label.set_text obj - method set_justify = Label.set_justify obj - method set_pattern = Label.set_pattern obj - method set_line_wrap = Label.set_line_wrap obj - method text = Label.get_text obj -end - -class label obj = object - inherit label_skel (Label.coerce obj) - method connect = new widget_signals obj -end - -let label ?(text="") ?justify ?line_wrap ?pattern - ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () = - let w = Label.create text in - Label.set w ?justify ?line_wrap ?pattern; - Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height; - pack_return (new label w) ~packing ~show - -let label_cast w = new label (Label.cast w#as_widget) - -class tips_query_signals obj = object - inherit widget_signals obj - method widget_entered ~callback = - GtkSignal.connect ~sgn:TipsQuery.Signals.widget_entered obj ~after - ~callback:(function None -> callback None - | Some w -> callback (Some (new widget w))) - method widget_selected ~callback = - GtkSignal.connect ~sgn:TipsQuery.Signals.widget_selected obj ~after - ~callback:(function None -> callback None - | Some w -> callback (Some (new widget w))) -end - -class tips_query obj = object - inherit label_skel (obj : Gtk.tips_query obj) - method start () = TipsQuery.start obj - method stop () = TipsQuery.stop obj - method set_caller (w : widget) = TipsQuery.set_caller obj w#as_widget - method set_emit_always = TipsQuery.set_emit_always obj - method set_label_inactive inactive = TipsQuery.set_labels obj ~inactive - method set_label_no_tip no_tip = TipsQuery.set_labels obj ~no_tip - method connect = new tips_query_signals obj -end - -let tips_query ?caller ?emit_always ?label_inactive ?label_no_tip - ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () = - let w = TipsQuery.create () in - let caller = may_map caller ~f:(fun (w : #widget) -> w#as_widget) in - TipsQuery.set w ?caller ?emit_always ?label_inactive ?label_no_tip; - Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height; - pack_return (new tips_query w) ~packing ~show - -class color_selection obj = object - inherit GObj.widget_full (obj : Gtk.color_selection obj) - method set_update_policy = ColorSelection.set_update_policy obj - method set_opacity = ColorSelection.set_opacity obj - method set_color ~red ~green ~blue ?opacity () = - ColorSelection.set_color obj ~red ~green ~blue ?opacity - method get_color = ColorSelection.get_color obj -end - -let color_selection ?border_width ?width ?height ?packing ?show () = - let w = ColorSelection.create () in - Container.set w ?border_width ?width ?height; - pack_return (new color_selection w) ~packing ~show - -class pixmap obj = object - inherit misc (obj : Gtk.pixmap obj) - method connect = new widget_signals obj - method set_pixmap (pm : GDraw.pixmap) = - Pixmap.set obj ~pixmap:pm#pixmap ?mask:pm#mask - method pixmap = - new GDraw.pixmap (Pixmap.pixmap obj) - ?mask:(try Some(Pixmap.mask obj) with Gpointer.Null -> None) -end - -let pixmap (pm : #GDraw.pixmap) ?xalign ?yalign ?xpad ?ypad - ?(width = -2) ?(height = -2) ?packing ?show () = - let w = Pixmap.create pm#pixmap ?mask:pm#mask in - Misc.set w ?xalign ?yalign ?xpad ?ypad; - if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height; - pack_return (new pixmap w) ~packing ~show - -class font_selection obj = object - inherit widget_full (obj : Gtk.font_selection obj) - method notebook = new GPack.notebook obj - method event = new event_ops obj - method font = FontSelection.get_font obj - method font_name = FontSelection.get_font_name obj - method set_font_name = FontSelection.set_font_name obj - method preview_text = FontSelection.get_preview_text obj - method set_preview_text = FontSelection.set_preview_text obj - method set_filter = FontSelection.set_filter obj -end - -let font_selection ?border_width ?width ?height ?packing ?show () = - let w = FontSelection.create () in - Container.set w ?border_width ?width ?height; - pack_return (new font_selection w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.mli deleted file mode 100644 index 7008369b7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.mli +++ /dev/null @@ -1,263 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -val separator : - Tags.orientation -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> widget_full - -class statusbar_context : - Gtk.statusbar obj -> Gtk.statusbar_context -> - object - val context : Gtk.statusbar_context - val obj : Gtk.statusbar obj - method context : Gtk.statusbar_context - method flash : ?delay:int -> string -> unit - method pop : unit -> unit - method push : string -> statusbar_message - method remove : statusbar_message -> unit - end - -class statusbar : Gtk.statusbar obj -> - object - inherit container_full - val obj : Gtk.statusbar obj - method new_context : name:string -> statusbar_context - end -val statusbar : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> statusbar - -class calendar_signals : 'a obj -> - object - inherit widget_signals - constraint 'a = [>`calendar|`widget] - val obj : 'a obj - method day_selected : callback:(unit -> unit) -> GtkSignal.id - method day_selected_double_click : - callback:(unit -> unit) -> GtkSignal.id - method month_changed : callback:(unit -> unit) -> GtkSignal.id - method next_month : callback:(unit -> unit) -> GtkSignal.id - method next_year : callback:(unit -> unit) -> GtkSignal.id - method prev_month : callback:(unit -> unit) -> GtkSignal.id - method prev_year : callback:(unit -> unit) -> GtkSignal.id - end - -class calendar : Gtk.calendar obj -> - object - inherit widget - val obj : Gtk.calendar obj - method event : event_ops - method clear_marks : unit - method connect : calendar_signals - method date : int * int * int - method display_options : Tags.calendar_display_options list -> unit - method freeze : unit -> unit - method mark_day : int -> unit - method select_day : int -> unit - method select_month : month:int -> year:int -> unit - method thaw : unit -> unit - method unmark_day : int -> unit - end -val calendar : - ?options:Tags.calendar_display_options list -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> calendar - -class drawing_area : Gtk.drawing_area obj -> - object - inherit widget_full - val obj : Gtk.drawing_area obj - method event : event_ops - method set_size : width:int -> height:int -> unit - end -val drawing_area : - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> drawing_area - -class misc : 'a obj -> - object - inherit widget - constraint 'a = [>`misc|`widget] - val obj : 'a obj - method set_alignment : ?x:float -> ?y:float -> unit -> unit - method set_padding : ?x:int -> ?y:int -> unit -> unit - end - -class arrow : 'a obj -> - object - inherit misc - constraint 'a = [>`arrow|`misc|`widget] - val obj : 'a obj - method set_arrow : Tags.arrow_type -> shadow:Tags.shadow_type -> unit - end - -val arrow : - kind:Tags.arrow_type -> - shadow:Tags.shadow_type -> - ?xalign:float -> - ?yalign:float -> - ?xpad:int -> - ?ypad:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> arrow - -class image : 'a obj -> - object - inherit misc - constraint 'a = [>`image|`misc|`widget] - val obj : 'a obj - method set_image : ?mask:Gdk.bitmap -> Gdk.image -> unit - end - -val image : - Gdk.image -> - ?mask:Gdk.bitmap -> - ?xalign:float -> - ?yalign:float -> - ?xpad:int -> - ?ypad:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> image - -class label_skel : 'a obj -> - object - inherit misc - constraint 'a = [>`label|`misc|`widget] - val obj : 'a obj - method set_justify : Tags.justification -> unit - method set_line_wrap : bool -> unit - method set_pattern : string -> unit - method set_text : string -> unit - method text : string - end - -class label : [>`label] obj -> - object - inherit label_skel - val obj : Gtk.label obj - method connect : widget_signals - end -val label : - ?text:string -> - ?justify:Tags.justification -> - ?line_wrap:bool -> - ?pattern:string -> - ?xalign:float -> - ?yalign:float -> - ?xpad:int -> - ?ypad:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> label -val label_cast : < as_widget : 'a obj ; .. > -> label - -class tips_query_signals : 'a obj -> - object - inherit widget_signals - constraint 'a = [>`tipsquery|`widget] - val obj : 'a obj - method widget_entered : - callback:(widget option -> - text:string option -> privat:string option -> unit) -> - GtkSignal.id - method widget_selected : - callback:(widget option -> text:string option -> - privat:string option -> GdkEvent.Button.t option -> bool) -> - GtkSignal.id - end - -class tips_query : Gtk.tips_query obj -> - object - inherit label_skel - val obj : Gtk.tips_query obj - method connect : tips_query_signals - method set_caller : widget -> unit - method set_emit_always : bool -> unit - method set_label_inactive : string -> unit - method set_label_no_tip : string -> unit - method start : unit -> unit - method stop : unit -> unit - end -val tips_query : - ?caller:#widget -> - ?emit_always:bool -> - ?label_inactive:string -> - ?label_no_tip:string -> - ?xalign:float -> - ?yalign:float -> - ?xpad:int -> - ?ypad:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> tips_query - -class pixmap : Gtk.pixmap Gtk.obj -> - object - inherit misc - val obj : Gtk.pixmap Gtk.obj - method connect : GObj.widget_signals - method pixmap : GDraw.pixmap - method set_pixmap : GDraw.pixmap -> unit - end -val pixmap : - #GDraw.pixmap -> - ?xalign:float -> - ?yalign:float -> - ?xpad:int -> - ?ypad:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> pixmap - -class color_selection : Gtk.color_selection obj -> - object - inherit widget_full - val obj : Gtk.color_selection obj - method get_color : Gtk.color - method set_color : - red:float -> green:float -> blue:float -> ?opacity:float -> unit -> unit - method set_opacity : bool -> unit - method set_update_policy : Tags.update_type -> unit - end -val color_selection : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> color_selection - -class font_selection : Gtk.font_selection obj -> - object - inherit widget_full - val obj : Gtk.font_selection obj - method event : event_ops - method notebook : GPack.notebook - method font : Gdk.font option - method font_name : string option - method preview_text : string - method set_filter : - ?kind:Tags.font_type list -> - ?foundry:string list -> - ?weight:string list -> - ?slant:string list -> - ?setwidth:string list -> - ?spacing:string list -> - ?charset:string list -> Tags.font_filter_type -> unit - method set_font_name : string -> unit - method set_preview_text : string -> unit - end -val font_selection : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> font_selection diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.ml deleted file mode 100644 index 5c4819fa0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.ml +++ /dev/null @@ -1,292 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkData -open GtkBase - -(* Object *) - -class gtkobj obj = object - val obj = obj - method destroy () = Object.destroy obj - method get_id = Object.get_id obj -end - -class gtkobj_misc obj = object - val obj = obj - method get_type = Type.name (Object.get_type obj) - method disconnect = GtkSignal.disconnect obj - method handler_block = GtkSignal.handler_block obj - method handler_unblock = GtkSignal.handler_unblock obj -end - -class gtkobj_signals ?(after=false) obj = object - val obj = obj - val after = after - method after = {< after = true >} - method destroy = GtkSignal.connect ~sgn:Object.Signals.destroy obj -end - -(* Widget *) - -class event_signals ?(after=false) obj = object - val obj = Widget.coerce obj - val after = after - method after = {< after = true >} - method any = GtkSignal.connect ~sgn:Widget.Signals.Event.any ~after obj - method button_press = - GtkSignal.connect ~sgn:Widget.Signals.Event.button_press ~after obj - method button_release = - GtkSignal.connect ~sgn:Widget.Signals.Event.button_release ~after obj - method configure = - GtkSignal.connect ~sgn:Widget.Signals.Event.configure ~after obj - method delete = - GtkSignal.connect ~sgn:Widget.Signals.Event.delete ~after obj - method destroy = - GtkSignal.connect ~sgn:Widget.Signals.Event.destroy ~after obj - method enter_notify = - GtkSignal.connect ~sgn:Widget.Signals.Event.enter_notify ~after obj - method expose = - GtkSignal.connect ~sgn:Widget.Signals.Event.expose ~after obj - method focus_in = - GtkSignal.connect ~sgn:Widget.Signals.Event.focus_in ~after obj - method focus_out = - GtkSignal.connect ~sgn:Widget.Signals.Event.focus_out ~after obj - method key_press = - GtkSignal.connect ~sgn:Widget.Signals.Event.key_press ~after obj - method key_release = - GtkSignal.connect ~sgn:Widget.Signals.Event.key_release ~after obj - method leave_notify = - GtkSignal.connect ~sgn:Widget.Signals.Event.leave_notify ~after obj - method map = GtkSignal.connect ~sgn:Widget.Signals.Event.map ~after obj - method motion_notify = - GtkSignal.connect ~sgn:Widget.Signals.Event.motion_notify ~after obj - method property_notify = - GtkSignal.connect ~sgn:Widget.Signals.Event.property_notify ~after obj - method proximity_in = - GtkSignal.connect ~sgn:Widget.Signals.Event.proximity_in ~after obj - method proximity_out = - GtkSignal.connect ~sgn:Widget.Signals.Event.proximity_out ~after obj - method selection_clear = - GtkSignal.connect ~sgn:Widget.Signals.Event.selection_clear ~after obj - method selection_notify = - GtkSignal.connect ~sgn:Widget.Signals.Event.selection_notify ~after obj - method selection_request = - GtkSignal.connect ~sgn:Widget.Signals.Event.selection_request ~after obj - method unmap = GtkSignal.connect ~sgn:Widget.Signals.Event.unmap ~after obj -end - -class event_ops obj = object - val obj = Widget.coerce obj - method add = Widget.add_events obj - method connect = new event_signals obj - method send : Gdk.Tags.event_type Gdk.event -> bool = Widget.event obj - method set_extensions = Widget.set_extension_events obj -end - -class style st = object - val style = st - method as_style = style - method copy = {< style = Style.copy style >} - method bg state = Style.get_bg style ~state - method colormap = Style.get_colormap style - method font = Style.get_font style - method set_bg = - List.iter ~f: - (fun (state,c) -> Style.set_bg style ~state ~color:(GDraw.color c)) - method set_font = Style.set_font style - method set_background = Style.set_background style -end - -class selection_data (sel : Selection.t) = object - val sel = sel - method selection = Selection.selection sel - method target = Selection.target sel - method seltype = Selection.seltype sel - method format = Selection.format sel - method data = Selection.get_data sel - method set = Selection.set sel -end - -class drag_signals ?(after=false) obj = object - val obj = Widget.coerce obj - val after = after - method after = {< after = true >} - method beginning ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_begin ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method ending ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_end ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method data_delete ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_data_delete ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method leave ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_leave ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method motion ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_motion ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method drop ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_drop ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method data_get ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_data_get ~after obj - ~callback:(fun context data -> callback (new drag_context context) - (new selection_data data)) - method data_received ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_data_received ~after obj - ~callback:(fun context ~x ~y data -> callback (new drag_context context) - ~x ~y (new selection_data data)) - -end - -and drag_ops obj = object - val obj = Widget.coerce obj - method connect = new drag_signals obj - method dest_set ?(flags=[`ALL]) ?(actions=[]) targets = - DnD.dest_set obj ~flags ~actions ~targets:(Array.of_list targets) - method dest_unset () = DnD.dest_unset obj - method get_data ?(time=0) ~context:(context : drag_context) target = - DnD.get_data obj (context : < context : Gdk.drag_context; .. >)#context - ~target ~time - method highlight () = DnD.highlight obj - method unhighlight () = DnD.unhighlight obj - method source_set ?modi:m ?(actions=[]) targets = - DnD.source_set obj ?modi:m ~actions ~targets:(Array.of_list targets) - method source_set_icon ?(colormap = Gdk.Color.get_system_colormap ()) - (pix : GDraw.pixmap) = - DnD.source_set_icon obj ~colormap pix#pixmap ?mask:pix#mask - method source_unset () = DnD.source_unset obj -end - -and drag_context context = object - inherit GDraw.drag_context context - method context = context - method finish = DnD.finish context - method source_widget = - new widget (Object.unsafe_cast (DnD.get_source_widget context)) - method set_icon_widget (w : widget) = - DnD.set_icon_widget context (w#as_widget) - method set_icon_pixmap ?(colormap = Gdk.Color.get_system_colormap ()) - (pix : GDraw.pixmap) = - DnD.set_icon_pixmap context ~colormap pix#pixmap ?mask:pix#mask -end - -and misc_signals ?after obj = object - inherit gtkobj_signals ?after obj - method draw ~callback = - GtkSignal.connect obj ~sgn:Widget.Signals.draw ~after ~callback: - begin fun rect -> - callback - { x = Gdk.Rectangle.x rect ; y = Gdk.Rectangle.y rect; - width = Gdk.Rectangle.width rect; - height = Gdk.Rectangle.height rect } - end - method show = GtkSignal.connect ~sgn:Widget.Signals.show ~after obj - method hide = GtkSignal.connect ~sgn:Widget.Signals.hide ~after obj - method map = GtkSignal.connect ~sgn:Widget.Signals.map ~after obj - method unmap = GtkSignal.connect ~sgn:Widget.Signals.unmap ~after obj - method realize = GtkSignal.connect ~sgn:Widget.Signals.realize ~after obj - method state_changed = - GtkSignal.connect ~sgn:Widget.Signals.state_changed ~after obj - method parent_set ~callback = - GtkSignal.connect obj ~sgn:Widget.Signals.parent_set ~after ~callback: - begin function - None -> callback None - | Some w -> callback (Some (new widget (Object.unsafe_cast w))) - end - method style_set ~callback = - GtkSignal.connect obj ~sgn:Widget.Signals.style_set ~after ~callback: - (fun opt -> callback (may opt ~f:(new style))) -end - -and misc_ops obj = object - inherit gtkobj_misc (Widget.coerce obj) - method connect = new misc_signals obj - method show () = Widget.show obj - method unparent () = Widget.unparent obj - method show_all () = Widget.show_all obj - method hide () = Widget.hide obj - method hide_all () = Widget.hide_all obj - method map () = Widget.map obj - method unmap () = Widget.unmap obj - method realize () = Widget.realize obj - method unrealize () = Widget.unrealize obj - method draw = Widget.draw obj - method activate () = Widget.activate obj - method reparent (w : widget) = Widget.reparent obj w#as_widget - method popup = Widget.popup obj - method intersect = Widget.intersect obj - method grab_focus () = Widget.grab_focus obj - method grab_default () = Widget.grab_default obj - 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 remove_accelerator ~group ?modi key = - Widget.remove_accelerator obj group ~key ?modi - method lock_accelerators () = Widget.lock_accelerators obj - method set_name = Widget.set_name obj - method set_state = Widget.set_state obj - method set_sensitive = Widget.set_sensitive obj - method set_can_default = Widget.set_can_default obj - method set_can_focus = Widget.set_can_focus obj - method set_geometry ?(x = -2) ?(y = -2) ?(width = -2) ?(height = -2) () = - if x+y <> -4 then Widget.set_uposition obj ~x ~y; - if width+height <> -4 then Widget.set_usize obj ~width ~height - method set_style (style : style) = Widget.set_style obj style#as_style - (* get functions *) - method name = Widget.get_name obj - method toplevel = - try Some (new widget (Object.unsafe_cast (Widget.get_toplevel obj))) - with Gpointer.Null -> None - method window = Widget.window obj - method colormap = Widget.get_colormap obj - method visual = Widget.get_visual obj - method visual_depth = Gdk.Window.visual_depth (Widget.get_visual obj) - method pointer = Widget.get_pointer obj - method style = new style (Widget.get_style obj) - method visible = Widget.visible obj - method has_focus = Widget.has_focus obj - method parent = - try Some (new widget (Object.unsafe_cast (Widget.parent obj))) - with Gpointer.Null -> None - method set_app_paintable = Widget.set_app_paintable obj - method allocation = Widget.allocation obj -end - -and widget obj = object (self) - inherit gtkobj obj - method as_widget = Widget.coerce obj - method misc = new misc_ops obj - method drag = new drag_ops (Object.unsafe_cast obj) - method coerce = - (self :> < destroy : _; get_id : _; as_widget : _; misc : _; - drag : _; coerce : _ >) -end - -(* just to check that GDraw.misc_ops is compatible with misc_ops *) -let _ = fun (x : #GDraw.misc_ops) -> (x : misc_ops) - -class widget_signals ?after (obj : [> `widget] obj) = - gtkobj_signals ?after obj - -(* -class widget_coerce obj = object - inherit widget obj - method coerce = (self :> widget) -end -*) - -class widget_full obj = object - inherit widget obj - method connect = new widget_signals obj -end - -let as_widget (w : widget) = w#as_widget - -let pack_return self ~packing ~show = - may packing ~f:(fun f -> (f (self :> widget) : unit)); - if show <> Some false then self#misc#show (); - self diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.mli deleted file mode 100644 index 7c37cf124..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.mli +++ /dev/null @@ -1,267 +0,0 @@ -(* $Id$ *) - -open Gtk - -(* Object *) - -class gtkobj : - 'a obj -> - object - val obj : 'a obj - method destroy : unit -> unit - method get_id : int - end - -class gtkobj_signals : - ?after:bool -> 'a obj -> - object ('b) - val obj : 'a obj - val after : bool - method after : 'b - method destroy : callback:(unit -> unit) -> GtkSignal.id - end - -class gtkobj_misc : 'a obj -> - object - method get_type : string - method disconnect : GtkSignal.id -> unit - method handler_block : GtkSignal.id -> unit - method handler_unblock : GtkSignal.id -> unit - end - -(* Widget *) - -class event_signals : - ?after:bool -> [>`widget] obj -> - object ('a) - method after : 'a - method any : - callback:(Gdk.Tags.event_type Gdk.event -> bool) -> GtkSignal.id - method button_press : callback:(GdkEvent.Button.t -> bool) -> GtkSignal.id - method button_release : - callback:(GdkEvent.Button.t -> bool) -> GtkSignal.id - method configure : callback:(GdkEvent.Configure.t -> bool) -> GtkSignal.id - method delete : callback:([`DELETE] Gdk.event -> bool) -> GtkSignal.id - method destroy : callback:([`DESTROY] Gdk.event -> bool) -> GtkSignal.id - method enter_notify : - callback:(GdkEvent.Crossing.t -> bool) -> GtkSignal.id - method expose : callback:(GdkEvent.Expose.t -> bool) -> GtkSignal.id - method focus_in : callback:(GdkEvent.Focus.t -> bool) -> GtkSignal.id - method focus_out : callback:(GdkEvent.Focus.t -> bool) -> GtkSignal.id - method key_press : callback:(GdkEvent.Key.t -> bool) -> GtkSignal.id - method key_release : callback:(GdkEvent.Key.t -> bool) -> GtkSignal.id - method leave_notify : - callback:(GdkEvent.Crossing.t -> bool) -> GtkSignal.id - method map : callback:([`MAP] Gdk.event -> bool) -> GtkSignal.id - method motion_notify : - callback:(GdkEvent.Motion.t -> bool) -> GtkSignal.id - method property_notify : - callback:(GdkEvent.Property.t -> bool) -> GtkSignal.id - method proximity_in : - callback:(GdkEvent.Proximity.t -> bool) -> GtkSignal.id - method proximity_out : - callback:(GdkEvent.Proximity.t -> bool) -> GtkSignal.id - method selection_clear : - callback:(GdkEvent.Selection.t -> bool) -> GtkSignal.id - method selection_notify : - callback:(GdkEvent.Selection.t -> bool) -> GtkSignal.id - method selection_request : - callback:(GdkEvent.Selection.t -> bool) -> GtkSignal.id - method unmap : callback:([`UNMAP] Gdk.event -> bool) -> GtkSignal.id - end - -class event_ops : [>`widget] obj -> - object - method add : Gdk.Tags.event_mask list -> unit - method connect : event_signals - method send : Gdk.Tags.event_type Gdk.event -> bool - method set_extensions : Gdk.Tags.extension_events -> unit - end - -class style : Gtk.style -> - object ('a) - val style : Gtk.style - method as_style : Gtk.style - method bg : Tags.state_type -> Gdk.Color.t - method colormap : Gdk.colormap - method copy : 'a - method font : Gdk.font - method set_background : Gdk.window -> Tags.state_type -> unit - method set_bg : (Tags.state_type * GDraw.color) list -> unit - method set_font : Gdk.font -> unit - end - -class selection_data : - GtkData.Selection.t -> - object - val sel : GtkData.Selection.t - method data : string (* May raise Null_pointer *) - method format : int - method selection : Gdk.atom - method seltype : Gdk.atom - method target : Gdk.atom - method set : typ:Gdk.atom -> format:int -> ?data:string -> unit - end - -class drag_ops : [>`widget] obj -> - object - method connect : drag_signals - method dest_set : - ?flags:Tags.dest_defaults list -> - ?actions:Gdk.Tags.drag_action list -> target_entry list -> unit - method dest_unset : unit -> unit - method get_data : ?time:int -> context:drag_context -> Gdk.atom ->unit - method highlight : unit -> unit - method source_set : - ?modi:Gdk.Tags.modifier list -> - ?actions:Gdk.Tags.drag_action list -> target_entry list -> unit - method source_set_icon : ?colormap:Gdk.colormap -> GDraw.pixmap -> unit - method source_unset : unit -> unit - method unhighlight : unit -> unit - end - -and misc_ops : - [>`widget] obj -> - object - inherit gtkobj_misc - val obj : Gtk.widget obj - method activate : unit -> bool - method add_accelerator : - sgn:(Gtk.widget, unit -> unit) GtkSignal.t -> - group:accel_group -> ?modi:Gdk.Tags.modifier list -> - ?flags:Tags.accel_flag list -> Gdk.keysym -> unit - method allocation : rectangle - method colormap : Gdk.colormap - method connect : misc_signals - method draw : Gdk.Rectangle.t option -> unit - method grab_default : unit -> unit - method grab_focus : unit -> unit - method has_focus : bool - method hide : unit -> unit - method hide_all : unit -> unit - method intersect : Gdk.Rectangle.t -> Gdk.Rectangle.t option - method is_ancestor : widget -> bool - method lock_accelerators : unit -> unit - method map : unit -> unit - method name : string - method parent : widget option - method pointer : int * int - method popup : x:int -> y:int -> unit - method realize : unit -> unit - method remove_accelerator : - group:accel_group -> ?modi:Gdk.Tags.modifier list -> Gdk.keysym -> unit - method reparent : widget -> unit - method set_app_paintable : bool -> unit - method set_can_default : bool -> unit - method set_can_focus : bool -> unit - method set_name : string -> unit - method set_sensitive : bool -> unit - method set_state : Tags.state_type -> unit - method set_style : style -> unit - method set_geometry : - ?x:int -> ?y:int -> ?width:int -> ?height:int -> unit -> unit - method show : unit -> unit - method show_all : unit -> unit - method style : style - method toplevel : widget option - method unmap : unit -> unit - method unparent : unit -> unit - method unrealize : unit -> unit - method visible : bool - method visual : Gdk.visual - method visual_depth : int - method window : Gdk.window - end - -and widget : - 'a obj -> - object - inherit gtkobj - constraint 'a = [>`widget] - val obj : 'a obj - method as_widget : Gtk.widget obj - method coerce : widget - method drag : drag_ops - method misc : misc_ops - end - -and misc_signals : - ?after:bool -> Gtk.widget obj -> - object ('b) - inherit gtkobj_signals - val obj : Gtk.widget obj - method after : 'b - method draw : callback:(Gtk.rectangle -> unit) -> GtkSignal.id - method hide : callback:(unit -> unit) -> GtkSignal.id - method map : callback:(unit -> unit) -> GtkSignal.id - method parent_set : callback:(widget option -> unit) -> GtkSignal.id - method realize : callback:(unit -> unit) -> GtkSignal.id - method show : callback:(unit -> unit) -> GtkSignal.id - method state_changed : - callback:(Gtk.Tags.state_type -> unit) -> GtkSignal.id - method style_set : callback:(unit -> unit) -> GtkSignal.id - method unmap : callback:(unit -> unit) -> GtkSignal.id - end - -and drag_context : - Gdk.drag_context -> - object - val context : Gdk.drag_context - method context : Gdk.drag_context - method finish : success:bool -> del:bool -> time:int -> unit - method source_widget : widget - method set_icon_pixmap : - ?colormap:Gdk.colormap -> GDraw.pixmap -> hot_x:int -> hot_y:int -> unit - method set_icon_widget : widget -> hot_x:int -> hot_y:int -> unit - method status : ?time:int -> Gdk.Tags.drag_action list -> unit - method suggested_action : Gdk.Tags.drag_action - method targets : Gdk.atom list - end - -and drag_signals : - ?after:bool -> Gtk.widget obj -> - object ('a) - method after : 'a - method beginning : - callback:(drag_context -> unit) -> GtkSignal.id - method data_delete : - callback:(drag_context -> unit) -> GtkSignal.id - method data_get : - callback:(drag_context -> selection_data -> info:int -> time:int -> unit) - -> GtkSignal.id - method data_received : - callback:(drag_context -> x:int -> y:int -> - selection_data -> info:int -> time:int -> unit) -> GtkSignal.id - method drop : - callback:(drag_context -> x:int -> y:int -> time:int -> bool) -> - GtkSignal.id - method ending : - callback:(drag_context -> unit) -> GtkSignal.id - method leave : - callback:(drag_context -> time:int -> unit) -> GtkSignal.id - method motion : - callback:(drag_context -> x:int -> y:int -> time:int -> bool) -> - GtkSignal.id - end - -class widget_signals : ?after:bool -> 'a obj -> - object - inherit gtkobj_signals - constraint 'a = [>`widget] - val obj : 'a obj - end - -class widget_full : 'a obj -> - object - inherit widget - constraint 'a = [>`widget] - val obj : 'a obj - method connect : widget_signals - end - -val as_widget : widget -> Gtk.widget obj - -val pack_return : - (#widget as 'a) -> - packing:(widget -> unit) option -> show:bool option -> 'a - (* To use in initializers to provide a ?packing: option *) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.ml deleted file mode 100644 index 3641349a9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.ml +++ /dev/null @@ -1,217 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkPack -open GObj -open GContainer - -class box_skel obj = object - inherit container obj - method pack ?from:f ?expand ?fill ?padding w = - Box.pack obj (as_widget w) ?from:f ?expand ?fill ?padding - method set_homogeneous = Box.set_homogeneous obj - method set_spacing = Box.set_spacing obj - method set_child_packing ?from:f ?expand ?fill ?padding w = - Box.set_child_packing obj (as_widget w) ?from:f ?expand ?fill ?padding - method reorder_child w = Box.reorder_child obj (as_widget w) -end - -class box obj = object - inherit box_skel obj - method connect = new container_signals obj -end - -let box dir ?homogeneous ?spacing ?border_width ?width ?height - ?packing ?show () = - let w = Box.create dir ?homogeneous ?spacing () in - Container.set w ?border_width ?width ?height; - pack_return (new box w) ~packing ~show - -let vbox = box `VERTICAL -let hbox = box `HORIZONTAL - -class button_box obj = object - inherit box_skel (obj : Gtk.button_box obj) - method connect = new container_signals obj - method set_layout = BBox.set_layout obj - method set_spacing = BBox.set_spacing obj - method set_child_size = BBox.set_child_size obj - method set_child_ipadding = BBox.set_child_ipadding obj -end - -let button_box dir ?spacing ?child_width ?child_height ?child_ipadx - ?child_ipady ?layout ?border_width ?width ?height ?packing ?show ()= - let w = BBox.create dir in - BBox.set w ?spacing ?child_width ?child_height ?child_ipadx - ?child_ipady ?layout; - Container.set w ?border_width ?width ?height; - pack_return (new button_box w) ~packing ~show - -class table obj = object - inherit container_full (obj : Gtk.table obj) - method attach ~left ~top ?right ?bottom ?expand ?fill ?shrink - ?xpadding ?ypadding w = - Table.attach obj (as_widget w) ~left ~top ?right ?bottom ?expand - ?fill ?shrink ?xpadding ?ypadding - method set_row_spacing = Table.set_row_spacing obj - method set_col_spacing = Table.set_col_spacing obj - method set_row_spacings = Table.set_row_spacings obj - method set_col_spacings = Table.set_col_spacings obj - method set_homogeneous = Table.set_homogeneous obj -end - -let table ~rows ~columns ?homogeneous ?row_spacings ?col_spacings - ?border_width ?width ?height ?packing ?show () = - let w = Table.create ~rows ~columns ?homogeneous () in - Table.set w ?row_spacings ?col_spacings; - Container.set w ?border_width ?width ?height; - pack_return (new table w) ~packing ~show - -class fixed obj = object - inherit container_full (obj : Gtk.fixed obj) - method event = new GObj.event_ops obj - method put w = Fixed.put obj (as_widget w) - method move w = Fixed.move obj (as_widget w) -end - -let fixed ?border_width ?width ?height ?packing ?show () = - let w = Fixed.create () in - Container.set w ?border_width ?width ?height; - pack_return (new fixed w) ~packing ~show - -class layout obj = object - inherit container_full (obj : Gtk.layout obj) - method event = new GObj.event_ops obj - method put w = Layout.put obj (as_widget w) - method move w = Layout.move obj (as_widget w) - method set_hadjustment adj = - Layout.set_hadjustment obj (GData.as_adjustment adj) - method set_vadjustment adj = - Layout.set_vadjustment obj (GData.as_adjustment adj) - method set_width width = Layout.set_size obj ~width - method set_height height = Layout.set_size obj ~height - method hadjustment = new GData.adjustment (Layout.get_hadjustment obj) - method vadjustment = new GData.adjustment (Layout.get_vadjustment obj) - method freeze () = Layout.freeze obj - method thaw () = Layout.thaw obj - method width = Layout.get_width obj - method height = Layout.get_height obj -end - -let layout ?hadjustment ?vadjustment ?layout_width ?layout_height - ?border_width ?width ?height ?packing ?show () = - let w = Layout.create - (Gpointer.optboxed (may_map ~f:GData.as_adjustment hadjustment)) - (Gpointer.optboxed (may_map ~f:GData.as_adjustment vadjustment)) in - if layout_width <> None || layout_height <> None then - Layout.set_size w ?width:layout_width ?height:layout_height; - Container.set w ?border_width ?width ?height; - pack_return (new layout w) ~packing ~show - - -class packer obj = object - inherit container_full (obj : Gtk.packer obj) - method pack ?side ?anchor ?expand ?fill - ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y w = - let options = Packer.build_options ?expand ?fill () in - if border_width == None && pad_x == None && pad_y == None && - i_pad_x == None && i_pad_y == None - then Packer.add_defaults obj (as_widget w) ?side ?anchor ~options - else Packer.add obj (as_widget w) ?side ?anchor ~options - ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y - method set_child_packing ?side ?anchor ?expand ?fill - ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y w = - Packer.set_child_packing obj (as_widget w) ?side ?anchor - ~options:(Packer.build_options ?expand ?fill ()) - ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y - method reorder_child w = Packer.reorder_child obj (as_widget w) - method set_spacing = Packer.set_spacing obj - method set_defaults = Packer.set_defaults obj -end - -let packer ?spacing ?border_width ?width ?height ?packing ?show () = - let w = Packer.create () in - may spacing ~f:(Packer.set_spacing w); - Container.set w ?border_width ?width ?height; - pack_return (new packer w) ~packing ~show - -class paned obj = object - inherit container_full (obj : Gtk.paned obj) - method event = new GObj.event_ops obj - method add w = - if List.length (Container.children obj) = 2 then - raise(Error "Gpack.paned#add: already full"); - Container.add obj (as_widget w) - method add1 w = - try ignore(Paned.child1 obj); raise(Error "GPack.paned#add1: already full") - with _ -> Paned.add1 obj (as_widget w) - method add2 w = - try ignore(Paned.child2 obj); raise(Error "GPack.paned#add2: already full") - with _ -> Paned.add2 obj (as_widget w) - method set_handle_size = Paned.set_handle_size obj - method set_gutter_size = Paned.set_gutter_size obj - method child1 = new widget (Paned.child1 obj) - method child2 = new widget (Paned.child2 obj) - method handle_size = Paned.handle_size obj - method gutter_size = Paned.gutter_size obj -end - -let paned dir ?handle_size ?gutter_size - ?border_width ?width ?height ?packing ?show () = - let w = Paned.create dir in - Paned.set w ?handle_size ?gutter_size; - Container.set w ?border_width ?width ?height; - pack_return (new paned w) ~packing ~show - -class notebook_signals obj = object - inherit GContainer.container_signals obj - method switch_page = - GtkSignal.connect obj ~sgn:Notebook.Signals.switch_page ~after -end - -class notebook obj = object (self) - inherit GContainer.container obj - method event = new GObj.event_ops obj - method connect = new notebook_signals obj - method insert_page ?tab_label ?menu_label ~pos child = - Notebook.insert_page obj (as_widget child) ~pos - ~tab_label:(Gpointer.may_box tab_label ~f:as_widget) - ~menu_label:(Gpointer.may_box menu_label ~f:as_widget) - method append_page = self#insert_page ~pos:(-1) - method prepend_page = self#insert_page ~pos:0 - method remove_page = Notebook.remove_page obj - method current_page = Notebook.get_current_page obj - method goto_page = Notebook.set_page obj - method previous_page () = Notebook.prev_page obj - method next_page () = Notebook.next_page obj - method set_tab_pos = Notebook.set_tab_pos obj - method set_show_tabs = Notebook.set_show_tabs obj - method set_homogeneous_tabs = Notebook.set_homogeneous_tabs obj - method set_show_border = Notebook.set_show_border obj - method set_scrollable = Notebook.set_scrollable obj - method set_tab_border = Notebook.set_tab_border obj - method set_popup = Notebook.set_popup obj - method page_num w = Notebook.page_num obj (as_widget w) - method get_nth_page n = new widget (Notebook.get_nth_page obj n) - method get_tab_label w = - new widget (Notebook.get_tab_label obj (as_widget w)) - method get_menu_label w = - new widget (Notebook.get_tab_label obj (as_widget w)) - method set_page ?tab_label ?menu_label page = - let child = as_widget page in - may tab_label - ~f:(fun lbl -> Notebook.set_tab_label obj child (as_widget lbl)); - may menu_label - ~f:(fun lbl -> Notebook.set_menu_label obj child (as_widget lbl)) -end - -let notebook ?tab_pos ?tab_border ?show_tabs ?homogeneous_tabs - ?show_border ?scrollable ?popup - ?border_width ?width ?height ?packing ?show () = - let w = Notebook.create () in - Notebook.set w ?tab_pos ?tab_border ?show_tabs - ?homogeneous_tabs ?show_border ?scrollable ?popup; - Container.set w ?border_width ?width ?height; - pack_return (new notebook w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.mli deleted file mode 100644 index 994c8b87f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.mli +++ /dev/null @@ -1,267 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class box_skel : - 'a obj -> - object - inherit container - constraint 'a = [>`box|`container|`widget] - val obj : 'a obj - method pack : - ?from:Tags.pack_type -> - ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit - method reorder_child : widget -> pos:int -> unit - method set_child_packing : - ?from:Tags.pack_type -> - ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit - method set_homogeneous : bool -> unit - method set_spacing : int -> unit - end -class box : - 'a obj -> - object - inherit box_skel - constraint 'a = [>`box|`container|`widget] - val obj : 'a obj - method connect : GContainer.container_signals - end - -val box : - Tags.orientation -> - ?homogeneous:bool -> - ?spacing:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> box -val vbox : - ?homogeneous:bool -> - ?spacing:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> box -val hbox : - ?homogeneous:bool -> - ?spacing:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> box - -class button_box : - Gtk.button_box obj -> - object - inherit container_full - val obj : Gtk.button_box obj - method pack : - ?from:Tags.pack_type -> - ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit - method reorder_child : widget -> pos:int -> unit - method set_child_ipadding : ?x:int -> ?y:int -> unit -> unit - method set_child_packing : - ?from:Tags.pack_type -> - ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit - method set_child_size : ?width:int -> ?height:int -> unit -> unit - method set_homogeneous : bool -> unit - method set_layout : GtkPack.BBox.bbox_style -> unit - method set_spacing : int -> unit - end -val button_box : - Tags.orientation -> - ?spacing:int -> - ?child_width:int -> - ?child_height:int -> - ?child_ipadx:int -> - ?child_ipady:int -> - ?layout:GtkPack.BBox.bbox_style -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> button_box - -class table : - Gtk.table obj -> - object - inherit container_full - val obj : Gtk.table obj - method attach : - left:int -> - top:int -> - ?right:int -> - ?bottom:int -> - ?expand:Tags.expand_type -> - ?fill:Tags.expand_type -> - ?shrink:Tags.expand_type -> - ?xpadding:int -> ?ypadding:int -> widget -> unit - method set_col_spacing : int -> int -> unit - method set_col_spacings : int -> unit - method set_homogeneous : bool -> unit - method set_row_spacing : int -> int -> unit - method set_row_spacings : int -> unit - end -val table : - rows:int -> - columns:int -> - ?homogeneous:bool -> - ?row_spacings:int -> - ?col_spacings:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> table - -class fixed : - Gtk.fixed obj -> - object - inherit container_full - val obj : Gtk.fixed obj - method event : event_ops - method move : widget -> x:int -> y:int -> unit - method put : widget -> x:int -> y:int -> unit - end -val fixed : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> fixed - -class layout : - Gtk.layout obj -> - object - inherit container_full - val obj : Gtk.layout obj - method event : event_ops - method freeze : unit -> unit - method hadjustment : GData.adjustment - method height : int - method move : widget -> x:int -> y:int -> unit - method put : widget -> x:int -> y:int -> unit - method set_hadjustment : GData.adjustment -> unit - method set_height : int -> unit - method set_vadjustment : GData.adjustment -> unit - method set_width : int -> unit - method thaw : unit -> unit - method vadjustment : GData.adjustment - method width : int - end -val layout : - ?hadjustment:GData.adjustment -> - ?vadjustment:GData.adjustment -> - ?layout_width:int -> - ?layout_height:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> layout - -class notebook_signals : 'a obj -> - object - inherit container_signals - constraint 'a = [>`notebook|`container|`widget] - val obj : 'a obj - method switch_page : callback:(int -> unit) -> GtkSignal.id - end - -class notebook : ([> `widget | `container | `notebook] as 'a) obj -> - object - inherit container - val obj : 'a obj - method event : event_ops - method append_page : - ?tab_label:widget -> ?menu_label:widget -> widget -> unit - method connect : notebook_signals - method current_page : int - method get_menu_label : widget -> widget - method get_nth_page : int -> widget - method get_tab_label : widget -> widget - method goto_page : int -> unit - method insert_page : - ?tab_label:widget -> ?menu_label:widget -> pos:int -> widget -> unit - method next_page : unit -> unit - method page_num : widget -> int - method prepend_page : - ?tab_label:widget -> ?menu_label:widget -> widget -> unit - method previous_page : unit -> unit - method remove_page : int -> unit - method set_homogeneous_tabs : bool -> unit - method set_page : - ?tab_label:widget -> ?menu_label:widget -> widget -> unit - method set_popup : bool -> unit - method set_scrollable : bool -> unit - method set_show_border : bool -> unit - method set_show_tabs : bool -> unit - method set_tab_border : int -> unit - method set_tab_pos : Tags.position -> unit - end -val notebook : - ?tab_pos:Tags.position -> - ?tab_border:int -> - ?show_tabs:bool -> - ?homogeneous_tabs:bool -> - ?show_border:bool -> - ?scrollable:bool -> - ?popup:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> notebook - -class packer : - Gtk.packer obj -> - object - inherit container_full - val obj : Gtk.packer obj - method pack : - ?side:Tags.side_type -> - ?anchor:Tags.anchor_type -> - ?expand:bool -> - ?fill:Tags.expand_type -> - ?border_width:int -> - ?pad_x:int -> - ?pad_y:int -> ?i_pad_x:int -> ?i_pad_y:int -> widget -> unit - method reorder_child : widget -> pos:int -> unit - method set_child_packing : - ?side:Tags.side_type -> - ?anchor:Tags.anchor_type -> - ?expand:bool -> - ?fill:Tags.expand_type -> - ?border_width:int -> - ?pad_x:int -> - ?pad_y:int -> ?i_pad_x:int -> ?i_pad_y:int -> widget -> unit - method set_defaults : - ?border_width:int -> - ?pad_x:int -> - ?pad_y:int -> ?i_pad_x:int -> ?i_pad_y:int -> unit -> unit - method set_spacing : int -> unit - end -val packer : - ?spacing:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> packer - -class paned : - Gtk.paned obj -> - object - inherit container_full - val obj : Gtk.paned obj - method add1 : widget -> unit - method add2 : widget -> unit - method event : event_ops - method child1 : widget - method child2 : widget - method gutter_size : int - method handle_size : int - method set_gutter_size : int -> unit - method set_handle_size : int -> unit - end -val paned : - Tags.orientation -> - ?handle_size:int -> - ?gutter_size:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> paned diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.ml deleted file mode 100644 index 7df53ced1..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.ml +++ /dev/null @@ -1,83 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkRange -open GObj - -class progress obj = object - inherit widget_full obj - method set_adjustment adj = - Progress.set_adjustment obj (GData.as_adjustment adj) - method set_show_text = Progress.set_show_text obj - method set_format_string = Progress.set_format_string obj - method set_text_alignment = Progress.set_text_alignment obj - method set_activity_mode = Progress.set_activity_mode obj - method set_value = Progress.set_value obj - method set_percentage = Progress.set_percentage obj - method configure = Progress.configure obj - method value = Progress.get_value obj - method percentage = Progress.get_percentage obj - method current_text = Progress.get_current_text obj - method adjustment = new GData.adjustment (Progress.get_adjustment obj) -end - -class progress_bar obj = object - inherit progress (obj : Gtk.progress_bar obj) - method event = new GObj.event_ops obj - method set_bar_style = ProgressBar.set_bar_style obj - method set_discrete_blocks = ProgressBar.set_discrete_blocks obj - method set_activity_step = ProgressBar.set_activity_step obj - method set_activity_blocks = ProgressBar.set_activity_blocks obj - method set_orientation = ProgressBar.set_orientation obj -end - -let progress_bar ?adjustment ?bar_style ?discrete_blocks - ?activity_step ?activity_blocks ?value ?percentage ?activity_mode - ?show_text ?format_string ?text_xalign ?text_yalign - ?packing ?show () = - let w = - match adjustment with None -> ProgressBar.create () - | Some adj -> - ProgressBar.create_with_adjustment (GData.as_adjustment adj) - in - ProgressBar.set w ?bar_style ?discrete_blocks - ?activity_step ?activity_blocks; - Progress.set w ?value ?percentage ?activity_mode - ?show_text ?format_string ?text_xalign ?text_yalign; - pack_return (new progress_bar w) ~packing ~show - -class range obj = object - inherit widget_full obj - method adjustment = new GData.adjustment (Range.get_adjustment obj) - method set_adjustment adj = - Range.set_adjustment obj (GData.as_adjustment adj) - method set_update_policy = Range.set_update_policy obj -end - -class scale obj = object - inherit range (obj : Gtk.scale obj) - method set_digits = Scale.set_digits obj - method set_draw_value = Scale.set_draw_value obj - method set_value_pos = Scale.set_value_pos obj -end - -let scale dir ?adjustment ?digits ?draw_value ?value_pos - ?packing ?show () = - let w = - Scale.create dir ?adjustment:(may_map ~f:GData.as_adjustment adjustment) - in - let () = Scale.set w ?digits ?draw_value ?value_pos in - pack_return (new scale w) ~packing ~show - -class scrollbar obj = object - inherit range (obj : Gtk.scrollbar obj) - method event = new GObj.event_ops obj -end - -let scrollbar dir ?adjustment ?update_policy ?packing ?show () = - let w = Scrollbar.create dir - ?adjustment:(may_map ~f:GData.as_adjustment adjustment) in - let () = may update_policy ~f:(Range.set_update_policy w) in - pack_return (new scrollbar w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.mli deleted file mode 100644 index ac9b38c27..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.mli +++ /dev/null @@ -1,87 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj - -class progress : 'a obj -> - object - inherit widget_full - constraint 'a = [>`progress|`widget] - val obj : 'a obj - method adjustment : GData.adjustment - method configure : current:float -> min:float -> max:float -> unit - method current_text : string - method percentage : float - method set_activity_mode : bool -> unit - method set_adjustment : GData.adjustment -> unit - method set_format_string : string -> unit - method set_percentage : float -> unit - method set_show_text : bool -> unit - method set_text_alignment : ?x:float -> ?y:float -> unit -> unit - method set_value : float -> unit - method value : float - end - -class progress_bar : Gtk.progress_bar obj -> - object - inherit progress - val obj : Gtk.progress_bar obj - method event : event_ops - method set_activity_blocks : int -> unit - method set_activity_step : int -> unit - method set_bar_style : [`CONTINUOUS|`DISCRETE] -> unit - method set_discrete_blocks : int -> unit - method set_orientation : Tags.progress_bar_orientation -> unit - end -val progress_bar : - ?adjustment:GData.adjustment -> - ?bar_style:[`CONTINUOUS|`DISCRETE] -> - ?discrete_blocks:int -> - ?activity_step:int -> - ?activity_blocks:int -> - ?value:float -> - ?percentage:float -> - ?activity_mode:bool -> - ?show_text:bool -> - ?format_string:string -> - ?text_xalign:float -> - ?text_yalign:float -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> progress_bar - -class range : 'a obj -> - object - inherit widget_full - constraint 'a = [>`range|`widget] - val obj : 'a obj - method adjustment : GData.adjustment - method set_adjustment : GData.adjustment -> unit - method set_update_policy : Tags.update_type -> unit - end - -class scale : Gtk.scale obj -> - object - inherit range - val obj : Gtk.scale obj - method set_digits : int -> unit - method set_draw_value : bool -> unit - method set_value_pos : Tags.position -> unit - end -val scale : - Tags.orientation -> - ?adjustment:GData.adjustment -> - ?digits:int -> - ?draw_value:bool -> - ?value_pos:Tags.position -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> scale - -class scrollbar : Gtk.scrollbar obj -> - object - inherit range - val obj : Gtk.scrollbar obj - method event : event_ops - end -val scrollbar : - Tags.orientation -> - ?adjustment:GData.adjustment -> - ?update_policy:Tags.update_type -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> scrollbar diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.ml deleted file mode 100644 index 80dab7be6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.ml +++ /dev/null @@ -1,76 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkTree -open GObj -open GContainer - -class tree_item_signals obj = object - inherit item_signals obj - method expand = GtkSignal.connect obj ~sgn:TreeItem.Signals.expand ~after - method collapse = GtkSignal.connect obj ~sgn:TreeItem.Signals.collapse ~after -end - -class tree_item obj = object - inherit container obj - method event = new GObj.event_ops obj - method as_item : Gtk.tree_item obj = obj - method connect = new tree_item_signals obj - method set_subtree (w : tree) = TreeItem.set_subtree obj w#as_tree - method remove_subtree () = TreeItem.remove_subtree obj - method expand () = TreeItem.expand obj - method collapse () = TreeItem.collapse obj - method subtree = - try Some(new tree (TreeItem.subtree obj)) with Gpointer.Null -> None -end - -and tree_signals obj = object - inherit container_signals obj - method selection_changed = - GtkSignal.connect obj ~sgn:Tree.Signals.selection_changed ~after - method select_child ~callback = - GtkSignal.connect obj ~sgn:Tree.Signals.select_child ~after - ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) - method unselect_child ~callback = - GtkSignal.connect obj ~sgn:Tree.Signals.unselect_child ~after - ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) -end - -and tree obj = object (self) - inherit [tree_item] item_container obj - method event = new GObj.event_ops obj - method as_tree = Tree.coerce obj - method insert w ~pos = Tree.insert obj w#as_item ~pos - method connect = new tree_signals obj - method clear_items = Tree.clear_items obj - method select_item = Tree.select_item obj - method unselect_item = Tree.unselect_item obj - method child_position (w : tree_item) = Tree.child_position obj w#as_item - method remove_items items = - Tree.remove_items obj - (List.map ~f:(fun (t : tree_item) -> t#as_item) items) - method set_selection_mode = Tree.set_selection_mode obj - method set_view_mode = Tree.set_view_mode obj - method set_view_lines = Tree.set_view_lines obj - method selection = - List.map ~f:(fun w -> self#wrap (Widget.coerce w)) (Tree.selection obj) - method private wrap w = - new tree_item (TreeItem.cast w) -end - -let tree_item ?label ?border_width ?width ?height ?packing ?show () = - let w = TreeItem.create ?label () in - Container.set w ?border_width ?width ?height; - let self = new tree_item w in - may packing ~f:(fun f -> (f self : unit)); - if show <> Some false then self#misc#show (); - self - -let tree ?selection_mode ?view_mode ?view_lines - ?border_width ?width ?height ?packing ?show () = - let w = Tree.create () in - Tree.set w ?selection_mode ?view_mode ?view_lines; - Container.set w ?border_width ?width ?height; - pack_return (new tree w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.mli deleted file mode 100644 index d48e09b2a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.mli +++ /dev/null @@ -1,72 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class tree_item_signals : 'a obj -> - object - inherit item_signals - constraint 'a = [>`treeitem|`container|`item|`widget] - val obj : 'a obj - method collapse : callback:(unit -> unit) -> GtkSignal.id - method expand : callback:(unit -> unit) -> GtkSignal.id - end - -class tree_item : Gtk.tree_item obj -> - object - inherit GContainer.container - val obj : Gtk.tree_item obj - method event : event_ops - method as_item : Gtk.tree_item obj - method collapse : unit -> unit - method connect : tree_item_signals - method expand : unit -> unit - method remove_subtree : unit -> unit - method set_subtree : tree -> unit - method subtree : tree option - end - -and tree_signals : Gtk.tree obj -> - object - inherit container_signals - val obj : Gtk.tree obj - method select_child : callback:(tree_item -> unit) -> GtkSignal.id - method selection_changed : callback:(unit -> unit) -> GtkSignal.id - method unselect_child : callback:(tree_item -> unit) -> GtkSignal.id - end - -and tree : Gtk.tree obj -> - object - inherit [tree_item] item_container - val obj : Gtk.tree obj - method event : event_ops - method as_tree : Gtk.tree obj - method child_position : tree_item -> int - method clear_items : start:int -> stop:int -> unit - method connect : tree_signals - method insert : tree_item -> pos:int -> unit - method remove_items : tree_item list -> unit - method select_item : pos:int -> unit - method selection : tree_item list - method set_selection_mode : Tags.selection_mode -> unit - method set_view_lines : bool -> unit - method set_view_mode : [`LINE|`ITEM] -> unit - method unselect_item : pos:int -> unit - method private wrap : Gtk.widget obj -> tree_item - end - -val tree_item : - ?label:string -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(tree_item -> unit) -> ?show:bool -> unit -> tree_item - -val tree : - ?selection_mode:Tags.selection_mode -> - ?view_mode:[`LINE|`ITEM] -> - ?view_lines:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> tree diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.ml deleted file mode 100644 index 260c2acee..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.ml +++ /dev/null @@ -1,80 +0,0 @@ -(* $Id$ *) - -open GObj - -class ['a] memo () = object - constraint 'a = #widget - val tbl = Hashtbl.create 7 - method add (obj : 'a) = - Hashtbl.add tbl ~key:obj#get_id ~data:obj - method find (obj : widget) = Hashtbl.find tbl obj#get_id - method remove (obj : widget) = Hashtbl.remove tbl obj#get_id -end - -let signal_id = ref 0 - -let next_callback_id () : GtkSignal.id = - decr signal_id; Obj.magic (!signal_id : int) - -class ['a] signal () = object (self) - val mutable callbacks : (GtkSignal.id * ('a -> unit)) list = [] - method callbacks = callbacks - method connect ~after ~callback = - let id = next_callback_id () in - callbacks <- - if after then callbacks @ [id,callback] else (id,callback)::callbacks; - id - method call arg = - List.exists callbacks ~f: - begin fun (_,f) -> - let old = GtkSignal.push_callback () in - try f arg; GtkSignal.pop_callback old - with exn -> GtkSignal.pop_callback old; raise exn - end; - () - method disconnect key = - List.mem_assoc key callbacks && - (callbacks <- List.remove_assoc key callbacks; true) -end - -class virtual ml_signals disconnectors = - object (self) - val after = false - method after = {< after = true >} - val mutable disconnectors : (GtkSignal.id -> bool) list = disconnectors - method disconnect key = - ignore (List.exists disconnectors ~f:(fun f -> f key)) - end - -class virtual add_ml_signals obj disconnectors = - object (self) - val mutable disconnectors : (GtkSignal.id -> bool) list = disconnectors - method disconnect key = - if List.exists disconnectors ~f:(fun f -> f key) then () - else GtkSignal.disconnect obj key - end - -class ['a] variable_signals ~(set : 'a signal) ~(changed : 'a signal) = - object - inherit ml_signals [changed#disconnect; set#disconnect] - method changed = changed#connect ~after - method set = set#connect ~after - end - -class ['a] variable x = - object (self) - val changed = new signal () - val set = new signal () - method connect = new variable_signals ~set ~changed - val mutable x : 'a = x - method get = x - method set = set#call - method private equal : 'a -> 'a -> bool = (=) - method private real_set y = - let x0 = x in x <- y; - if changed#callbacks <> [] && not (self#equal x x0) - then changed#call y - initializer - ignore (set#connect ~after:false ~callback:self#real_set) - end - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.mli deleted file mode 100644 index cd88d8697..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.mli +++ /dev/null @@ -1,109 +0,0 @@ -(* $Id$ *) - -open GObj - -(* The memo class provides an easy way to remember the real class of - a widget. - Insert all widgets of class in one single t memo, and you can then - recover their original ML object with #find. -*) - -class ['a] memo : unit -> - object - constraint 'a = #widget - val tbl : (int, 'a) Hashtbl.t - method add : 'a -> unit - method find : widget -> 'a - method remove : widget -> unit - end - -(* The ML signal mechanism allows one to add GTK-like signals to - arbitrary objects. -*) - -val next_callback_id : unit -> GtkSignal.id - -class ['a] signal : - unit -> - object - val mutable callbacks : (GtkSignal.id * ('a -> unit)) list - method callbacks : (GtkSignal.id * ('a -> unit)) list - method call : 'a -> unit - method connect : after:bool -> callback:('a -> unit) -> GtkSignal.id - method disconnect : GtkSignal.id -> bool - end -(* As with GTK signals, you can use [GtkSignal.stop_emit] inside a - callback to prevent other callbacks from being called. *) - -class virtual ml_signals : (GtkSignal.id -> bool) list -> - object ('a) - val after : bool - method after : 'a - method disconnect : GtkSignal.id -> unit - val mutable disconnectors : (GtkSignal.id -> bool) list - end -class virtual add_ml_signals : - 'a Gtk.obj -> (GtkSignal.id -> bool) list -> - object - method disconnect : GtkSignal.id -> unit - val mutable disconnectors : (GtkSignal.id -> bool) list - end - -(* To add ML signals to a LablGTK object: - - class mywidget_signals obj ~mysignal1 ~mysignal2 = object - inherit somewidget_signals obj - inherit add_ml_signals obj [mysignal1#disconnect; mysignal2#disconnect] - method mysignal1 = mysignal1#connect ~after - method mysignal2 = mysignal2#connect ~after - end - - class mywidget obj = object (self) - inherit somewidget obj - val mysignal1 = new signal obj - val mysignal2 = new signal obj - method connect = new mywidget_signals obj ~mysignal1 ~mysignal2 - method call1 = mysignal1#call - method call2 = mysignal2#call - end - - You can also add ML signals to an arbitrary object; just inherit - from [ml_signals] in place of [widget_signals]+[add_ml_signals]. - - class mysignals ~mysignal1 ~mysignal2 = object - inherit ml_signals [mysignal1#disconnect; mysignal2#disconnect] - method mysignal1 = mysignal1#connect ~after - method mysignal2 = mysignal2#connect ~after - end -*) - -(* The variable class provides an easy way to propagate state modifications. - A new variable is created by [new variable init]. The [#set] method just - calls the [set] signal, which by default only calls [real_set]. - [real_set] sets the variable and calls [changed] when needed. - Deep equality is used to compare values, but check is only done if - there are callbacks for [changed]. -*) - -class ['a] variable_signals : - set:'a signal -> changed:'a signal -> - object ('b) - val after : bool - method after : 'b - method set : callback:('a -> unit) -> GtkSignal.id - method changed : callback:('a -> unit) -> GtkSignal.id - method disconnect : GtkSignal.id -> unit - val mutable disconnectors : (GtkSignal.id -> bool) list - end - -class ['a] variable : 'a -> - object - val set : 'a signal - val changed : 'a signal - val mutable x : 'a - method connect : 'a variable_signals - method get : 'a - method set : 'a -> unit - method private equal : 'a -> 'a -> bool - method private real_set : 'a -> unit - end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.ml deleted file mode 100644 index 9ee313647..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.ml +++ /dev/null @@ -1,151 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkWindow -open GtkMisc -open GObj -open GContainer - -class ['a] window_skel obj = object - constraint 'a = _ #window_skel - inherit container obj - method event = new GObj.event_ops obj - method as_window = Window.coerce obj - method activate_focus () = Window.activate_focus obj - method activate_default () = Window.activate_default obj - method add_accel_group = Window.add_accel_group obj - method set_modal = Window.set_modal obj - method set_default_size = Window.set_default_size obj - method set_position = Window.set_position obj - method set_resize_mode = Container.set_resize_mode obj - method set_transient_for (w : 'a) = - Window.set_transient_for obj w#as_window - method set_title = Window.set_title obj - method set_wm_name name = Window.set_wmclass obj ~name - method set_wm_class cls = Window.set_wmclass obj ~clas:cls - method set_allow_shrink allow_shrink = Window.set_policy obj ~allow_shrink - method set_allow_grow allow_grow = Window.set_policy obj ~allow_grow - method set_auto_shrink auto_shrink = Window.set_policy obj ~auto_shrink - method show () = Widget.show obj -end - -class window obj = object - inherit [window] window_skel (Window.coerce obj) - method connect = new container_signals obj -end - -let window ?kind:(t=`TOPLEVEL) ?title ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y - ?border_width ?width ?height ?(show=false) () = - let w = Window.create t in - Window.set w ?title ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y; - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new window w - -class dialog obj = object - inherit [window] window_skel (Dialog.coerce obj) - method connect = new container_signals obj - method action_area = new GPack.box (Dialog.action_area obj) - method vbox = new GPack.box (Dialog.vbox obj) -end - -let dialog ?title ?wm_name ?wm_class ?position ?allow_shrink - ?allow_grow ?auto_shrink ?modal ?x ?y ?border_width ?width ?height - ?(show=false) () = - let w = Dialog.create () in - Window.set w ?title ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y; - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new dialog w - -class color_selection_dialog obj = object - inherit [window] window_skel (obj : Gtk.color_selection_dialog obj) - method connect = new container_signals obj - method ok_button = - new GButton.button (ColorSelection.ok_button obj) - method cancel_button = - new GButton.button (ColorSelection.cancel_button obj) - method help_button = - new GButton.button (ColorSelection.help_button obj) - method colorsel = - new GMisc.color_selection (ColorSelection.colorsel obj) -end - -let color_selection_dialog ?(title="Pick a color") - ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y - ?border_width ?width ?height ?(show=false) () = - let w = ColorSelection.create_dialog title in - Window.set w ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y; - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new color_selection_dialog w - -class file_selection obj = object - inherit [window] window_skel (obj : Gtk.file_selection obj) - method connect = new container_signals obj - method set_filename = FileSelection.set_filename obj - method get_filename = FileSelection.get_filename obj - method set_fileop_buttons = FileSelection.set_fileop_buttons obj - method ok_button = new GButton.button (FileSelection.get_ok_button obj) - method cancel_button = - new GButton.button (FileSelection.get_cancel_button obj) - method help_button = new GButton.button (FileSelection.get_help_button obj) -end - -let file_selection ?(title="Choose a file") ?filename - ?(fileop_buttons=false) - ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y - ?border_width ?width ?height ?(show=false) () = - let w = FileSelection.create title in - FileSelection.set w ?filename ~fileop_buttons; - Window.set w ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y; - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new file_selection w - -class font_selection_dialog obj = object - inherit [window] window_skel (obj : Gtk.font_selection_dialog obj) - method connect = new container_signals obj -(* - method font = FontSelectionDialog.get_font obj - method font_name = FontSelectionDialog.get_font_name obj - method set_font_name = FontSelectionDialog.set_font_name obj - method preview_text = FontSelectionDialog.get_preview_text obj - method set_preview_text = FontSelectionDialog.set_preview_text obj - method set_filter = FontSelectionDialog.set_filter obj -*) - method selection = - new GMisc.font_selection (FontSelectionDialog.font_selection obj) - method ok_button = new GButton.button (FontSelectionDialog.ok_button obj) - method apply_button = - new GButton.button (FontSelectionDialog.apply_button obj) - method cancel_button = - new GButton.button (FontSelectionDialog.cancel_button obj) -end - -let font_selection_dialog ?title ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y - ?border_width ?width ?height ?(show=false) () = - let w = FontSelectionDialog.create ?title () in - Window.set w ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y; - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new font_selection_dialog w - -class plug (obj : Gtk.plug obj) = window obj - -let plug ~window:xid ?border_width ?width ?height ?(show=false) () = - let w = Plug.create xid in - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new plug w diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.mli deleted file mode 100644 index 4c89a76b6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.mli +++ /dev/null @@ -1,156 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj - -class ['a] window_skel : 'b obj -> - object - inherit GContainer.container - constraint 'a = 'a #window_skel - constraint 'b = [>`widget|`container|`window] - val obj : 'b obj - method activate_default : unit -> unit - method activate_focus : unit -> unit - method add_accel_group : accel_group -> unit - method event : event_ops - method as_window : Gtk.window obj - method set_allow_grow : bool -> unit - method set_allow_shrink : bool -> unit - method set_auto_shrink : bool -> unit - method set_default_size : width:int -> height:int -> unit - method set_modal : bool -> unit - method set_position : Tags.window_position -> unit - method set_resize_mode : Tags.resize_mode -> unit - method set_title : string -> unit - method set_transient_for : 'a -> unit - method set_wm_class : string -> unit - method set_wm_name : string -> unit - method show : unit -> unit - end - -class window : [>`window] obj -> - object - inherit [window] window_skel - val obj : Gtk.window obj - method connect : GContainer.container_signals - end -val window : - ?kind:Tags.window_type -> - ?title:string -> - ?wm_name:string -> - ?wm_class:string -> - ?position:Tags.window_position -> - ?allow_shrink:bool -> - ?allow_grow:bool -> - ?auto_shrink:bool -> - ?modal:bool -> - ?x:int -> - ?y:int -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> window - -class dialog : [>`dialog] obj -> - object - inherit [window] window_skel - val obj : Gtk.dialog obj - method action_area : GPack.box - method connect : GContainer.container_signals - method event : event_ops - method vbox : GPack.box - end -val dialog : - ?title:string -> - ?wm_name:string -> - ?wm_class:string -> - ?position:Tags.window_position -> - ?allow_shrink:bool -> - ?allow_grow:bool -> - ?auto_shrink:bool -> - ?modal:bool -> - ?x:int -> - ?y:int -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> dialog - -class color_selection_dialog : Gtk.color_selection_dialog obj -> - object - inherit [window] window_skel - val obj : Gtk.color_selection_dialog obj - method cancel_button : GButton.button - method colorsel : GMisc.color_selection - method connect : GContainer.container_signals - method help_button : GButton.button - method ok_button : GButton.button - end -val color_selection_dialog : - ?title:string -> - ?wm_name:string -> - ?wm_class:string -> - ?position:Tags.window_position -> - ?allow_shrink:bool -> - ?allow_grow:bool -> - ?auto_shrink:bool -> - ?modal:bool -> - ?x:int -> - ?y:int -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> color_selection_dialog - -class file_selection : Gtk.file_selection obj -> - object - inherit [window] window_skel - val obj : Gtk.file_selection obj - method cancel_button : GButton.button - method connect : GContainer.container_signals - method get_filename : string - method help_button : GButton.button - method ok_button : GButton.button - method set_filename : string -> unit - method set_fileop_buttons : bool -> unit - end -val file_selection : - ?title:string -> - ?filename:string -> - ?fileop_buttons:bool -> - ?wm_name:string -> - ?wm_class:string -> - ?position:Tags.window_position -> - ?allow_shrink:bool -> - ?allow_grow:bool -> - ?auto_shrink:bool -> - ?modal:bool -> - ?x:int -> - ?y:int -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> file_selection - -class font_selection_dialog : Gtk.font_selection_dialog obj -> - object - inherit [window] window_skel - val obj : Gtk.font_selection_dialog obj - method apply_button : GButton.button - method cancel_button : GButton.button - method connect : GContainer.container_signals - method selection : GMisc.font_selection - method ok_button : GButton.button - end -val font_selection_dialog : - ?title:string -> - ?wm_name:string -> - ?wm_class:string -> - ?position:Tags.window_position -> - ?allow_shrink:bool -> - ?allow_grow:bool -> - ?auto_shrink:bool -> - ?modal:bool -> - ?x:int -> - ?y:int -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> font_selection_dialog - -class plug : Gtk.plug obj -> window - -val plug : - window:Gdk.xid -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> plug diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gaux.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gaux.ml deleted file mode 100644 index a1172915b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gaux.ml +++ /dev/null @@ -1,17 +0,0 @@ -(* $Id$ *) - -(* Option handling *) - -let may ~f x = - match x with None -> () - | Some x -> let _ = f x in () - -let may_map ~f x = - match x with None -> None - | Some x -> Some (f x) - -let default x ~opt = - match opt with None -> x | Some y -> y - -let may_default f x ~opt = - match opt with None -> f x | Some y -> y diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.ml deleted file mode 100644 index c22c4b55c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.ml +++ /dev/null @@ -1,535 +0,0 @@ -(* $Id$ *) - -open Gaux - -type colormap -type visual -type region -type gc -type 'a drawable -type window = [`window] drawable -type pixmap = [`pixmap] drawable -type bitmap = [`bitmap] drawable -type font -type image -type atom = int -type keysym = int -type 'a event -type drag_context -type cursor -type xid = int32 - -exception Error of string -let _ = Callback.register_exception "gdkerror" (Error"") - -module Tags = struct - type event_type = - [ `NOTHING|`DELETE|`DESTROY|`EXPOSE|`MOTION_NOTIFY|`BUTTON_PRESS - |`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS - |`BUTTON_RELEASE|`KEY_PRESS - |`KEY_RELEASE|`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE - |`CONFIGURE|`MAP|`UNMAP|`PROPERTY_NOTIFY|`SELECTION_CLEAR - |`SELECTION_REQUEST|`SELECTION_NOTIFY|`PROXIMITY_IN - |`PROXIMITY_OUT|`DRAG_ENTER|`DRAG_LEAVE|`DRAG_MOTION|`DRAG_STATUS - |`DROP_START|`DROP_FINISHED|`CLIENT_EVENT|`VISIBILITY_NOTIFY - |`NO_EXPOSE ] - - type event_mask = - [ `EXPOSURE - |`POINTER_MOTION|`POINTER_MOTION_HINT - |`BUTTON_MOTION|`BUTTON1_MOTION|`BUTTON2_MOTION|`BUTTON3_MOTION - |`BUTTON_PRESS|`BUTTON_RELEASE - |`KEY_PRESS|`KEY_RELEASE - |`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE - |`STRUCTURE|`PROPERTY_CHANGE|`VISIBILITY_NOTIFY - |`PROXIMITY_IN|`PROXIMITY_OUT|`SUBSTRUCTURE - |`ALL_EVENTS ] - - type extension_events = - [ `NONE|`ALL|`CURSOR ] - - type visibility_state = - [ `UNOBSCURED|`PARTIAL|`FULLY_OBSCURED ] - - type input_source = - [ `MOUSE|`PEN|`ERASER|`CURSOR ] - - type notify_type = - [ `ANCESTOR|`VIRTUAL|`INFERIOR|`NONLINEAR|`NONLINEAR_VIRTUAL|`UNKNOWN ] - - type crossing_mode = - [ `NORMAL|`GRAB|`UNGRAB ] - - type modifier = - [ `SHIFT|`LOCK|`CONTROL|`MOD1|`MOD2|`MOD3|`MOD4|`MOD5|`BUTTON1 - |`BUTTON2|`BUTTON3|`BUTTON4|`BUTTON5 ] - - type drag_action = - [ `DEFAULT|`COPY|`MOVE|`LINK|`PRIVATE|`ASK ] - -end -open Tags - -module Convert = struct - external test_modifier : modifier -> int -> bool - = "ml_test_GdkModifier_val" - let modifier i = - List.filter [`SHIFT;`LOCK;`CONTROL;`MOD1;`MOD2;`MOD3;`MOD4;`MOD5; - `BUTTON1;`BUTTON2;`BUTTON3;`BUTTON4;`BUTTON5] - ~f:(fun m -> test_modifier m i) -end - -module Screen = struct - external width : unit -> int = "ml_gdk_screen_width" - external height : unit -> int = "ml_gdk_screen_height" -end - -module Visual = struct - type visual_type = - [ `STATIC_GRAY|`GRAYSCALE|`STATIC_COLOR - |`PSEUDO_COLOR|`TRUE_COLOR|`DIRECT_COLOR ] - - external get_best : ?depth:int -> ?kind:visual_type -> unit -> visual - = "ml_gdk_visual_get_best" - external get_type : visual -> visual_type = "ml_GdkVisual_type" - external depth : visual -> int = "ml_GdkVisual_depth" - external red_mask : visual -> int = "ml_GdkVisual_red_mask" - external red_shift : visual -> int = "ml_GdkVisual_red_shift" - external red_prec : visual -> int = "ml_GdkVisual_red_prec" - external green_mask : visual -> int = "ml_GdkVisual_green_mask" - external green_shift : visual -> int = "ml_GdkVisual_green_shift" - external green_prec : visual -> int = "ml_GdkVisual_green_prec" - external blue_mask : visual -> int = "ml_GdkVisual_blue_mask" - external blue_shift : visual -> int = "ml_GdkVisual_blue_shift" - external blue_prec : visual -> int = "ml_GdkVisual_blue_prec" -end - -module Image = struct - type image_type = - [ `NORMAL|`SHARED|`FASTEST ] - - external create_bitmap : visual: visual -> data: string -> - width: int -> height: int -> image - = "ml_gdk_image_new_bitmap" - external create : kind: image_type -> visual: visual -> - width: int -> height: int -> image - = "ml_gdk_image_new" - external get : - 'a drawable -> x: int -> y: int -> width: int -> height: int -> image - = "ml_gdk_image_get" - external put_pixel : image -> x: int -> y: int -> pixel: int -> unit - = "ml_gdk_image_put_pixel" - external get_pixel : image -> x: int -> y: int -> int - = "ml_gdk_image_get_pixel" - external destroy : image -> unit - = "ml_gdk_image_destroy" -end - -module Color = struct - type t - - external color_white : colormap -> t = "ml_gdk_color_white" - external color_black : colormap -> t = "ml_gdk_color_black" - external color_parse : string -> t = "ml_gdk_color_parse" - external color_alloc : colormap -> t -> bool = "ml_gdk_color_alloc" - external color_create : red:int -> green:int -> blue:int -> t - = "ml_GdkColor" - - external get_system_colormap : unit -> colormap - = "ml_gdk_colormap_get_system" - external colormap_new : visual -> privat:bool -> colormap - = "ml_gdk_colormap_new" - let get_colormap ?(privat=false) vis = colormap_new vis ~privat - - type spec = [ `BLACK | `NAME of string | `RGB of int * int * int | `WHITE] - let color_alloc ~colormap color = - if not (color_alloc colormap color) then raise (Error"Color.alloc"); - color - let alloc ~colormap color = - match color with - `WHITE -> color_white colormap - | `BLACK -> color_black colormap - | `NAME s -> color_alloc ~colormap (color_parse s) - | `RGB (red,green,blue) -> - color_alloc ~colormap (color_create ~red ~green ~blue) - - external red : t -> int = "ml_GdkColor_red" - external blue : t -> int = "ml_GdkColor_blue" - external green : t -> int = "ml_GdkColor_green" - external pixel : t -> int = "ml_GdkColor_pixel" -end - -module Rectangle = struct - type t - external create : x:int -> y:int -> width:int -> height:int -> t - = "ml_GdkRectangle" - external x : t -> int = "ml_GdkRectangle_x" - external y : t -> int = "ml_GdkRectangle_y" - external width : t -> int = "ml_GdkRectangle_width" - external height : t -> int = "ml_GdkRectangle_height" -end - -module Window = struct - type background_pixmap = [ `NONE | `PARENT_RELATIVE | `PIXMAP of pixmap] - external visual_depth : visual -> int = "ml_gdk_visual_get_depth" - external get_visual : window -> visual = "ml_gdk_window_get_visual" - external get_parent : window -> window = "ml_gdk_window_get_parent" - external get_size : window -> int * int = "ml_gdk_window_get_size" - external get_position : window -> int * int = - "ml_gdk_window_get_position" - external root_parent : unit -> window = "ml_GDK_ROOT_PARENT" - external set_back_pixmap : window -> pixmap -> int -> unit = - "ml_gdk_window_set_back_pixmap" - external clear : window -> unit = "ml_gdk_window_clear" - external get_xwindow : window -> xid = "ml_GDK_WINDOW_XWINDOW" - - let set_back_pixmap w pix = - let null_pixmap = (Obj.magic Gpointer.boxed_null : pixmap) in - match pix with - `NONE -> set_back_pixmap w null_pixmap 0 - | `PARENT_RELATIVE -> set_back_pixmap w null_pixmap 1 - | `PIXMAP(pixmap) -> set_back_pixmap w pixmap 0 - (* anything OK, Maybe... *) -end - -module PointArray = struct - type t = { len: int} - external create : len:int -> t = "ml_point_array_new" - external set : t -> pos:int -> x:int -> y:int -> unit = "ml_point_array_set" - let set arr ~pos = - if pos < 0 || pos >= arr.len then invalid_arg "PointArray.set"; - set arr ~pos -end - -module Region = struct - type gdkFillRule = [ `EVEN_ODD_RULE|`WINDING_RULE ] - type gdkOverlapType = [ `IN|`OUT|`PART ] - external create : unit -> region = "ml_gdk_region_new" - external destroy : region -> unit = "ml_gdk_region_destroy" - external polygon : PointArray.t -> gdkFillRule -> region - = "ml_gdk_region_polygon" - let polygon l = - let len = List.length l in - let arr = PointArray.create ~len in - List.fold_left l ~init:0 - ~f:(fun pos (x,y) -> PointArray.set arr ~pos ~x ~y; pos+1); - polygon arr - external intersect : region -> region -> region - = "ml_gdk_regions_intersect" - external union : region -> region -> region - = "ml_gdk_regions_union" - external subtract : region -> region -> region - = "ml_gdk_regions_subtract" - external xor : region -> region -> region - = "ml_gdk_regions_xor" - external union_with_rect : region -> Rectangle.t -> region - = "ml_gdk_region_union_with_rect" - external offset : region -> x:int -> y:int -> unit = "ml_gdk_region_offset" - external shrink : region -> x:int -> y:int -> unit = "ml_gdk_region_shrink" - external empty : region -> bool = "ml_gdk_region_empty" - external equal : region -> region -> bool = "ml_gdk_region_equal" - external point_in : region -> x:int -> y:int -> bool - = "ml_gdk_region_point_in" - external rect_in : region -> Rectangle.t -> gdkOverlapType - = "ml_gdk_region_rect_in" - external get_clipbox : region -> Rectangle.t -> unit - = "ml_gdk_region_get_clipbox" -end - - -module GC = struct - type gdkFunction = [ `COPY|`INVERT|`XOR ] - type gdkFill = [ `SOLID|`TILED|`STIPPLED|`OPAQUE_STIPPLED ] - type gdkSubwindowMode = [ `CLIP_BY_CHILDREN|`INCLUDE_INFERIORS ] - type gdkLineStyle = [ `SOLID|`ON_OFF_DASH|`DOUBLE_DASH ] - type gdkCapStyle = [ `NOT_LAST|`BUTT|`ROUND|`PROJECTING ] - type gdkJoinStyle = [ `MITER|`ROUND|`BEVEL ] - external create : 'a drawable -> gc = "ml_gdk_gc_new" - external set_foreground : gc -> Color.t -> unit = "ml_gdk_gc_set_foreground" - external set_background : gc -> Color.t -> unit = "ml_gdk_gc_set_background" - external set_font : gc -> font -> unit = "ml_gdk_gc_set_font" - external set_function : gc -> gdkFunction -> unit = "ml_gdk_gc_set_function" - external set_fill : gc -> gdkFill -> unit = "ml_gdk_gc_set_fill" - external set_tile : gc -> pixmap -> unit = "ml_gdk_gc_set_tile" - external set_stipple : gc -> pixmap -> unit = "ml_gdk_gc_set_stipple" - external set_ts_origin : gc -> x:int -> y:int -> unit - = "ml_gdk_gc_set_ts_origin" - external set_clip_origin : gc -> x:int -> y:int -> unit - = "ml_gdk_gc_set_clip_origin" - external set_clip_mask : gc -> bitmap -> unit = "ml_gdk_gc_set_clip_mask" - external set_clip_rectangle : gc -> Rectangle.t -> unit - = "ml_gdk_gc_set_clip_rectangle" - external set_clip_region : gc -> region -> unit = "ml_gdk_gc_set_clip_region" - external set_subwindow : gc -> gdkSubwindowMode -> unit - = "ml_gdk_gc_set_subwindow" - external set_exposures : gc -> bool -> unit = "ml_gdk_gc_set_exposures" - external set_line_attributes : - gc -> width:int -> style:gdkLineStyle -> cap:gdkCapStyle -> - join:gdkJoinStyle -> unit - = "ml_gdk_gc_set_line_attributes" - external copy : dst:gc -> gc -> unit = "ml_gdk_gc_copy" - type values = { - foreground : Color.t; - background : Color.t; - font : font option; - fonction : gdkFunction; - fill : gdkFill; - tile : pixmap option; - stipple : pixmap option; - clip_mask : bitmap option; - subwindow_mode : gdkSubwindowMode; - ts_x_origin : int; - ts_y_origin : int; - clip_x_origin : int; - clip_y_origin : int; - graphics_exposures : bool; - line_width : int; - line_style : gdkLineStyle; - cap_style : gdkCapStyle; - join_style : gdkJoinStyle; - } - external get_values : gc -> values = "ml_gdk_gc_get_values" -end - -module Pixmap = struct - external create : window -> width:int -> height:int -> depth:int -> pixmap - = "ml_gdk_pixmap_new" - external create_from_data : - window -> string -> width:int -> height:int -> depth:int -> - fg:Color.t -> bg:Color.t -> pixmap - = "ml_gdk_pixmap_create_from_data_bc" "ml_gk_pixmap_create_from_data" - external create_from_xpm : - window -> ?colormap:colormap -> ?transparent:Color.t -> - file:string -> pixmap * bitmap - = "ml_gdk_pixmap_colormap_create_from_xpm" - external create_from_xpm_d : - window -> ?colormap:colormap -> ?transparent:Color.t -> - data:string array -> pixmap * bitmap - = "ml_gdk_pixmap_colormap_create_from_xpm_d" -end - -module Bitmap = struct - let create : window -> width:int -> height:int -> bitmap = - Obj.magic (Pixmap.create ~depth:1) - external create_from_data : - window -> string -> width:int -> height:int -> bitmap - = "ml_gdk_bitmap_create_from_data" -end - -module Font = struct - external load : string -> font = "ml_gdk_font_load" - external load_fontset : string -> font = "ml_gdk_fontset_load" - external string_width : font -> string -> int = "ml_gdk_string_width" - external char_width : font -> char -> int = "ml_gdk_char_width" - external string_height : font -> string -> int = "ml_gdk_string_height" - external char_height : font -> char -> int = "ml_gdk_char_height" - external string_measure : font -> string -> int = "ml_gdk_string_measure" - external char_measure : font -> char -> int = "ml_gdk_char_measure" - external get_type : font -> [`FONT | `FONTSET] = "ml_GdkFont_type" - external ascent : font -> int = "ml_GdkFont_ascent" - external descent : font -> int = "ml_GdkFont_descent" -end - -module Draw = struct - external point : 'a drawable -> gc -> x:int -> y:int -> unit - = "ml_gdk_draw_point" - external line : 'a drawable -> gc -> x:int -> y:int -> x:int -> y:int -> unit - = "ml_gdk_draw_line_bc" "ml_gdk_draw_line" - external rectangle : - 'a drawable -> gc -> - filled:bool -> x:int -> y:int -> width:int -> height:int -> unit - = "ml_gdk_draw_rectangle_bc" "ml_gdk_draw_rectangle" - let rectangle w gc ~x ~y ~width ~height ?(filled=false) () = - rectangle w gc ~x ~y ~width ~height ~filled - external arc : - 'a drawable -> gc -> filled:bool -> x:int -> y:int -> - width:int -> height:int -> start:int -> angle:int -> unit - = "ml_gdk_draw_arc_bc" "ml_gdk_draw_arc" - let arc w gc ~x ~y ~width ~height ?(filled=false) ?(start=0.) - ?(angle=360.) () = - arc w gc ~x ~y ~width ~height ~filled - ~start:(truncate(start *. 64.)) - ~angle:(truncate(angle *. 64.)) - external polygon : 'a drawable -> gc -> filled:bool -> PointArray.t -> unit - = "ml_gdk_draw_polygon" - let polygon w gc ?(filled=false) l = - let len = List.length l in - let arr = PointArray.create ~len in - List.fold_left l ~init:0 - ~f:(fun pos (x,y) -> PointArray.set arr ~pos ~x ~y; pos+1); - polygon w gc ~filled arr - external string : 'a drawable -> font: font -> gc -> x: int -> y: int -> - string: string -> unit - = "ml_gdk_draw_string_bc" "ml_gdk_draw_string" - external image : 'a drawable -> gc -> image: image -> - xsrc: int -> ysrc: int -> xdest: int -> ydest: int -> - width: int -> height: int -> unit - = "ml_gdk_draw_image_bc" "ml_gdk_draw_image" -end - -module Rgb = struct - external init : unit -> unit = "ml_gdk_rgb_init" - external get_visual : unit -> visual = "ml_gdk_rgb_get_visual" - external get_cmap : unit -> colormap = "ml_gdk_rgb_get_cmap" -end - -module DnD = struct - external drag_status : drag_context -> drag_action list -> time:int -> unit - = "ml_gdk_drag_status" - external drag_context_suggested_action : drag_context -> drag_action - = "ml_GdkDragContext_suggested_action" - external drag_context_targets : drag_context -> atom list - = "ml_GdkDragContext_targets" -end - -module Truecolor = struct - (* Truecolor quick color query *) - - type visual_shift_prec = { - red_shift : int; - red_prec : int; - green_shift : int; - green_prec : int; - blue_shift : int; - blue_prec : int - } - - let shift_prec visual = { - red_shift = Visual.red_shift visual; - red_prec = Visual.red_prec visual; - green_shift = Visual.green_shift visual; - green_prec = Visual.green_prec visual; - blue_shift = Visual.blue_shift visual; - blue_prec = Visual.blue_prec visual; - } - - let color_creator visual = - match Visual.get_type visual with - `TRUE_COLOR | `DIRECT_COLOR -> - let shift_prec = shift_prec visual in - Format.eprintf "red : %d %d, " - shift_prec.red_shift shift_prec.red_prec; - Format.eprintf "green : %d %d, " - shift_prec.green_shift shift_prec.green_prec; - Format.eprintf "blue : %d %d" - shift_prec.blue_shift shift_prec.blue_prec; - Format.pp_print_newline Format.err_formatter (); - let red_lsr = 16 - shift_prec.red_prec - and green_lsr = 16 - shift_prec.green_prec - and blue_lsr = 16 - shift_prec.blue_prec in - fun ~red: red ~green: green ~blue: blue -> - (((red lsr red_lsr) lsl shift_prec.red_shift) lor - ((green lsr green_lsr) lsl shift_prec.green_shift) lor - ((blue lsr blue_lsr) lsl shift_prec.blue_shift)) - | _ -> raise (Invalid_argument "Gdk.Truecolor.color_creator") - - let color_parser visual = - match Visual.get_type visual with - `TRUE_COLOR | `DIRECT_COLOR -> - let shift_prec = shift_prec visual in - let red_lsr = 16 - shift_prec.red_prec - and green_lsr = 16 - shift_prec.green_prec - and blue_lsr = 16 - shift_prec.blue_prec in - let mask = 1 lsl 16 - 1 in - fun pixel -> - ((pixel lsr shift_prec.red_shift) lsl red_lsr) land mask, - ((pixel lsr shift_prec.green_shift) lsl green_lsr) land mask, - ((pixel lsr shift_prec.blue_shift) lsl blue_lsr) land mask - | _ -> raise (Invalid_argument "Gdk.Truecolor.color_parser") -end - -module X = struct - (* X related functions *) - external flush : unit -> unit - = "ml_gdk_flush" - external beep : unit -> unit - = "ml_gdk_beep" -end - -module Cursor = struct - type cursor_type = [ - | `X_CURSOR - | `ARROW - | `BASED_ARROW_DOWN - | `BASED_ARROW_UP - | `BOAT - | `BOGOSITY - | `BOTTOM_LEFT_CORNER - | `BOTTOM_RIGHT_CORNER - | `BOTTOM_SIDE - | `BOTTOM_TEE - | `BOX_SPIRAL - | `CENTER_PTR - | `CIRCLE - | `CLOCK - | `COFFEE_MUG - | `CROSS - | `CROSS_REVERSE - | `CROSSHAIR - | `DIAMOND_CROSS - | `DOT - | `DOTBOX - | `DOUBLE_ARROW - | `DRAFT_LARGE - | `DRAFT_SMALL - | `DRAPED_BOX - | `EXCHANGE - | `FLEUR - | `GOBBLER - | `GUMBY - | `HAND1 - | `HAND2 - | `HEART - | `ICON - | `IRON_CROSS - | `LEFT_PTR - | `LEFT_SIDE - | `LEFT_TEE - | `LEFTBUTTON - | `LL_ANGLE - | `LR_ANGLE - | `MAN - | `MIDDLEBUTTON - | `MOUSE - | `PENCIL - | `PIRATE - | `PLUS - | `QUESTION_ARROW - | `RIGHT_PTR - | `RIGHT_SIDE - | `RIGHT_TEE - | `RIGHTBUTTON - | `RTL_LOGO - | `SAILBOAT - | `SB_DOWN_ARROW - | `SB_H_DOUBLE_ARROW - | `SB_LEFT_ARROW - | `SB_RIGHT_ARROW - | `SB_UP_ARROW - | `SB_V_DOUBLE_ARROW - | `SHUTTLE - | `SIZING - | `SPIDER - | `SPRAYCAN - | `STAR - | `TARGET - | `TCROSS - | `TOP_LEFT_ARROW - | `TOP_LEFT_CORNER - | `TOP_RIGHT_CORNER - | `TOP_SIDE - | `TOP_TEE - | `TREK - | `UL_ANGLE - | `UMBRELLA - | `UR_ANGLE - | `WATCH - | `XTERM - ] - external create : cursor_type -> cursor = "ml_gdk_cursor_new" - external create_from_pixmap : - pixmap -> mask:bitmap -> - fg:Color.t -> bg:Color.t -> x:int -> y:int -> cursor - = "ml_gdk_cursor_new_from_pixmap_bc" "ml_gdk_cursor_new_from_pixmap" - external destroy : cursor -> unit = "ml_gdk_cursor_destroy" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.mli deleted file mode 100644 index 2914b60ce..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.mli +++ /dev/null @@ -1,447 +0,0 @@ -(* $Id$ *) - -type colormap -type visual -type region -type gc -type 'a drawable -type window = [`window] drawable -type pixmap = [`pixmap] drawable -type bitmap = [`bitmap] drawable -type font -type image -type atom = int -type keysym = int -type 'a event -type drag_context -type cursor -type xid = int32 - -exception Error of string - -module Tags : sig - type event_type = - [ `NOTHING|`DELETE|`DESTROY|`EXPOSE|`MOTION_NOTIFY|`BUTTON_PRESS - |`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS - |`BUTTON_RELEASE|`KEY_PRESS - |`KEY_RELEASE|`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE - |`CONFIGURE|`MAP|`UNMAP|`PROPERTY_NOTIFY|`SELECTION_CLEAR - |`SELECTION_REQUEST|`SELECTION_NOTIFY|`PROXIMITY_IN - |`PROXIMITY_OUT|`DRAG_ENTER|`DRAG_LEAVE|`DRAG_MOTION|`DRAG_STATUS - |`DROP_START|`DROP_FINISHED|`CLIENT_EVENT|`VISIBILITY_NOTIFY - |`NO_EXPOSE ] - type event_mask = - [ `EXPOSURE - |`POINTER_MOTION|`POINTER_MOTION_HINT - |`BUTTON_MOTION|`BUTTON1_MOTION|`BUTTON2_MOTION|`BUTTON3_MOTION - |`BUTTON_PRESS|`BUTTON_RELEASE - |`KEY_PRESS|`KEY_RELEASE - |`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE - |`STRUCTURE|`PROPERTY_CHANGE|`VISIBILITY_NOTIFY - |`PROXIMITY_IN|`PROXIMITY_OUT|`SUBSTRUCTURE - |`ALL_EVENTS ] - type extension_events = [ `NONE|`ALL|`CURSOR ] - type visibility_state = [ `UNOBSCURED|`PARTIAL|`FULLY_OBSCURED ] - type input_source = [ `MOUSE|`PEN|`ERASER|`CURSOR ] - type notify_type = - [ `ANCESTOR|`VIRTUAL|`INFERIOR|`NONLINEAR|`NONLINEAR_VIRTUAL|`UNKNOWN ] - type crossing_mode = [ `NORMAL|`GRAB|`UNGRAB ] - type modifier = - [ `SHIFT|`LOCK|`CONTROL|`MOD1|`MOD2|`MOD3|`MOD4|`MOD5|`BUTTON1 - |`BUTTON2|`BUTTON3|`BUTTON4|`BUTTON5 ] - type drag_action = [ `DEFAULT|`COPY|`MOVE|`LINK|`PRIVATE|`ASK ] -end - -module Convert : - sig - val modifier : int -> Tags.modifier list - end - -module Screen : - sig - external width : unit -> int = "ml_gdk_screen_width" - external height : unit -> int = "ml_gdk_screen_height" - end - -module Visual : - sig - type visual_type = - [ `STATIC_GRAY|`GRAYSCALE|`STATIC_COLOR - |`PSEUDO_COLOR|`TRUE_COLOR|`DIRECT_COLOR ] - external get_best : ?depth:int -> ?kind:visual_type -> unit -> visual - = "ml_gdk_visual_get_best" - external get_type : visual -> visual_type = "ml_GdkVisual_type" - external depth : visual -> int = "ml_GdkVisual_depth" - external red_mask : visual -> int = "ml_GdkVisual_red_mask" - external red_shift : visual -> int = "ml_GdkVisual_red_shift" - external red_prec : visual -> int = "ml_GdkVisual_red_prec" - external green_mask : visual -> int = "ml_GdkVisual_green_mask" - external green_shift : visual -> int = "ml_GdkVisual_green_shift" - external green_prec : visual -> int = "ml_GdkVisual_green_prec" - external blue_mask : visual -> int = "ml_GdkVisual_blue_mask" - external blue_shift : visual -> int = "ml_GdkVisual_blue_shift" - external blue_prec : visual -> int = "ml_GdkVisual_blue_prec" - end - -module Image : - sig - type image_type = [ `FASTEST|`NORMAL|`SHARED ] - external create_bitmap : - visual:visual -> data:string -> width:int -> height:int -> image - = "ml_gdk_image_new_bitmap" - external create : - kind:image_type -> - visual:visual -> width:int -> height:int -> image = "ml_gdk_image_new" - external get : - 'a drawable -> x:int -> y:int -> width:int -> height:int -> image - = "ml_gdk_image_get" - external put_pixel : image -> x:int -> y:int -> pixel:int -> unit - = "ml_gdk_image_put_pixel" - external get_pixel : image -> x:int -> y:int -> int - = "ml_gdk_image_get_pixel" - external destroy : image -> unit = "ml_gdk_image_destroy" - end - -module Color : - sig - external get_system_colormap : unit -> colormap - = "ml_gdk_colormap_get_system" - val get_colormap : ?privat:bool -> visual -> colormap - - type t - type spec = [ - | `BLACK - | `NAME of string - | `RGB of int * int * int - | `WHITE - ] - val alloc : colormap:colormap -> spec -> t - external red : t -> int = "ml_GdkColor_red" - external blue : t -> int = "ml_GdkColor_blue" - external green : t -> int = "ml_GdkColor_green" - external pixel : t -> int = "ml_GdkColor_pixel" - end - -module Rectangle : - sig - type t - external create : x:int -> y:int -> width:int -> height:int -> t - = "ml_GdkRectangle" - external x : t -> int = "ml_GdkRectangle_x" - external y : t -> int = "ml_GdkRectangle_y" - external width : t -> int = "ml_GdkRectangle_width" - external height : t -> int = "ml_GdkRectangle_height" - end - -module Window : - sig - type background_pixmap = [ `NONE|`PARENT_RELATIVE|`PIXMAP of pixmap ] - external visual_depth : visual -> int = "ml_gdk_visual_get_depth" - external get_visual : window -> visual = "ml_gdk_window_get_visual" - external get_parent : window -> window = "ml_gdk_window_get_parent" - external get_size : window -> int * int = "ml_gdk_window_get_size" - external get_position : window -> int * int - = "ml_gdk_window_get_position" - external root_parent : unit -> window = "ml_GDK_ROOT_PARENT" - external clear : window -> unit = "ml_gdk_window_clear" - external get_xwindow : window -> xid = "ml_GDK_WINDOW_XWINDOW" - val set_back_pixmap : window -> background_pixmap -> unit - end - -module PointArray : - sig - type t = { len: int } - external create : len:int -> t = "ml_point_array_new" - val set : t -> pos:int -> x:int -> y:int -> unit - end - -module Region : - sig - type gdkFillRule = [ `EVEN_ODD_RULE|`WINDING_RULE ] - type gdkOverlapType = [ `IN|`OUT|`PART ] - external create : unit -> region = "ml_gdk_region_new" - external destroy : region -> unit = "ml_gdk_region_destroy" - val polygon : (int * int) list -> gdkFillRule -> region - external intersect : region -> region -> region - = "ml_gdk_regions_intersect" - external union : region -> region -> region - = "ml_gdk_regions_union" - external subtract : region -> region -> region - = "ml_gdk_regions_subtract" - external xor : region -> region -> region - = "ml_gdk_regions_xor" - external union_with_rect : region -> Rectangle.t -> region - = "ml_gdk_region_union_with_rect" - external offset : region -> x:int -> y:int -> unit = "ml_gdk_region_offset" - external shrink : region -> x:int -> y:int -> unit = "ml_gdk_region_shrink" - external empty : region -> bool = "ml_gdk_region_empty" - external equal : region -> region -> bool = "ml_gdk_region_equal" - external point_in : region -> x:int -> y:int -> bool - = "ml_gdk_region_point_in" - external rect_in : region -> Rectangle.t -> gdkOverlapType - = "ml_gdk_region_rect_in" - external get_clipbox : region -> Rectangle.t -> unit - = "ml_gdk_region_get_clipbox" - end - -module GC : - sig - type gdkFunction = [ `COPY|`INVERT|`XOR ] - type gdkFill = [ `SOLID|`TILED|`STIPPLED|`OPAQUE_STIPPLED ] - type gdkSubwindowMode = [ `CLIP_BY_CHILDREN|`INCLUDE_INFERIORS ] - type gdkLineStyle = [ `SOLID|`ON_OFF_DASH|`DOUBLE_DASH ] - type gdkCapStyle = [ `NOT_LAST|`BUTT|`ROUND|`PROJECTING ] - type gdkJoinStyle = [ `MITER|`ROUND|`BEVEL ] - external create : 'a drawable -> gc = "ml_gdk_gc_new" - external set_foreground : gc -> Color.t -> unit - = "ml_gdk_gc_set_foreground" - external set_background : gc -> Color.t -> unit - = "ml_gdk_gc_set_background" - external set_font : gc -> font -> unit = "ml_gdk_gc_set_font" - external set_function : gc -> gdkFunction -> unit - = "ml_gdk_gc_set_function" - external set_fill : gc -> gdkFill -> unit = "ml_gdk_gc_set_fill" - external set_tile : gc -> pixmap -> unit = "ml_gdk_gc_set_tile" - external set_stipple : gc -> pixmap -> unit = "ml_gdk_gc_set_stipple" - external set_ts_origin : gc -> x:int -> y:int -> unit - = "ml_gdk_gc_set_ts_origin" - external set_clip_origin : gc -> x:int -> y:int -> unit - = "ml_gdk_gc_set_clip_origin" - external set_clip_mask : gc -> bitmap -> unit = "ml_gdk_gc_set_clip_mask" - external set_clip_rectangle : gc -> Rectangle.t -> unit - = "ml_gdk_gc_set_clip_rectangle" - external set_clip_region : gc -> region -> unit - = "ml_gdk_gc_set_clip_region" - external set_subwindow : gc -> gdkSubwindowMode -> unit - = "ml_gdk_gc_set_subwindow" - external set_exposures : gc -> bool -> unit = "ml_gdk_gc_set_exposures" - external set_line_attributes : - gc -> - width:int -> - style:gdkLineStyle -> cap:gdkCapStyle -> join:gdkJoinStyle -> unit - = "ml_gdk_gc_set_line_attributes" - external copy : dst:gc -> gc -> unit = "ml_gdk_gc_copy" - type values = { - foreground : Color.t; - background : Color.t; - font : font option; - fonction : gdkFunction; - fill : gdkFill; - tile : pixmap option; - stipple : pixmap option; - clip_mask : bitmap option; - subwindow_mode : gdkSubwindowMode; - ts_x_origin : int; - ts_y_origin : int; - clip_x_origin : int; - clip_y_origin : int; - graphics_exposures : bool; - line_width : int; - line_style : gdkLineStyle; - cap_style : gdkCapStyle; - join_style : gdkJoinStyle; - } - external get_values : gc -> values = "ml_gdk_gc_get_values" - end - -module Pixmap : - sig - external create : - window -> width:int -> height:int -> depth:int -> pixmap - = "ml_gdk_pixmap_new" - external create_from_data : - window -> - string -> - width:int -> - height:int -> depth:int -> fg:Color.t -> bg:Color.t -> pixmap - = "ml_gdk_pixmap_create_from_data_bc" "ml_gk_pixmap_create_from_data" - external create_from_xpm : - window -> - ?colormap:colormap -> - ?transparent:Color.t -> file:string -> pixmap * bitmap - = "ml_gdk_pixmap_colormap_create_from_xpm" - external create_from_xpm_d : - window -> - ?colormap:colormap -> - ?transparent:Color.t -> data:string array -> pixmap * bitmap - = "ml_gdk_pixmap_colormap_create_from_xpm_d" - end - -module Bitmap : - sig - val create : window -> width:int -> height:int -> bitmap - external create_from_data : - window -> string -> width:int -> height:int -> bitmap - = "ml_gdk_bitmap_create_from_data" - end - -module Font : - sig - external load : string -> font = "ml_gdk_font_load" - external load_fontset : string -> font = "ml_gdk_fontset_load" - external string_width : font -> string -> int = "ml_gdk_string_width" - external char_width : font -> char -> int = "ml_gdk_char_width" - external string_height : font -> string -> int = "ml_gdk_string_height" - external char_height : font -> char -> int = "ml_gdk_char_height" - external string_measure : font -> string -> int = "ml_gdk_string_measure" - external char_measure : font -> char -> int = "ml_gdk_char_measure" - external get_type : font -> [`FONT | `FONTSET] = "ml_GdkFont_type" - external ascent : font -> int = "ml_GdkFont_ascent" - external descent : font -> int = "ml_GdkFont_descent" - end - -module Draw : - sig - external point : 'a drawable -> gc -> x:int -> y:int -> unit - = "ml_gdk_draw_point" - external line : - 'a drawable -> gc -> x:int -> y:int -> x:int -> y:int -> unit - = "ml_gdk_draw_line_bc" "ml_gdk_draw_line" - val rectangle : - 'a drawable -> gc -> - x:int -> y:int -> width:int -> height:int -> ?filled:bool -> unit -> unit - val arc : - 'a drawable -> gc -> - x:int -> y:int -> width:int -> height:int -> - ?filled:bool -> ?start:float -> ?angle:float -> unit -> unit - val polygon : - 'a drawable -> gc -> ?filled:bool ->(int * int) list -> unit - external string : - 'a drawable -> - font:font -> gc -> x:int -> y:int -> string:string -> unit - = "ml_gdk_draw_string_bc" "ml_gdk_draw_string" - external image : - 'a drawable -> - gc -> - image:image -> - xsrc:int -> - ysrc:int -> xdest:int -> ydest:int -> width:int -> height:int -> unit - = "ml_gdk_draw_image_bc" "ml_gdk_draw_image" - end - -module Rgb : - sig - external init : unit -> unit = "ml_gdk_rgb_init" - external get_visual : unit -> visual = "ml_gdk_rgb_get_visual" - external get_cmap : unit -> colormap = "ml_gdk_rgb_get_cmap" - end - -module DnD : - sig - external drag_status : - drag_context -> Tags.drag_action list -> time:int -> unit - = "ml_gdk_drag_status" - external drag_context_suggested_action : drag_context -> Tags.drag_action - = "ml_GdkDragContext_suggested_action" - external drag_context_targets : drag_context -> atom list - = "ml_GdkDragContext_targets" - end - -module Truecolor : - sig - val color_creator : visual -> (red: int -> green: int -> blue: int -> int) - (* [color_creator visual] creates a function to calculate - the pixel color id for given red, green and blue component - value ([0..65535]) at the client side. [visual] must have - `TRUE_COLOR or `DIRECT_COLOR type. This function improves - the speed of the color query of true color visual greatly. *) - (* WARN: this approach is not theoretically correct for true color - visual, because we need gamma correction. *) - - val color_parser : visual -> int -> int * int * int - end - -module X : - (* X related functions *) - sig - val flush : unit -> unit (* also in GtkMain *) - val beep : unit -> unit - end - -module Cursor : sig - type cursor_type = [ - | `X_CURSOR - | `ARROW - | `BASED_ARROW_DOWN - | `BASED_ARROW_UP - | `BOAT - | `BOGOSITY - | `BOTTOM_LEFT_CORNER - | `BOTTOM_RIGHT_CORNER - | `BOTTOM_SIDE - | `BOTTOM_TEE - | `BOX_SPIRAL - | `CENTER_PTR - | `CIRCLE - | `CLOCK - | `COFFEE_MUG - | `CROSS - | `CROSS_REVERSE - | `CROSSHAIR - | `DIAMOND_CROSS - | `DOT - | `DOTBOX - | `DOUBLE_ARROW - | `DRAFT_LARGE - | `DRAFT_SMALL - | `DRAPED_BOX - | `EXCHANGE - | `FLEUR - | `GOBBLER - | `GUMBY - | `HAND1 - | `HAND2 - | `HEART - | `ICON - | `IRON_CROSS - | `LEFT_PTR - | `LEFT_SIDE - | `LEFT_TEE - | `LEFTBUTTON - | `LL_ANGLE - | `LR_ANGLE - | `MAN - | `MIDDLEBUTTON - | `MOUSE - | `PENCIL - | `PIRATE - | `PLUS - | `QUESTION_ARROW - | `RIGHT_PTR - | `RIGHT_SIDE - | `RIGHT_TEE - | `RIGHTBUTTON - | `RTL_LOGO - | `SAILBOAT - | `SB_DOWN_ARROW - | `SB_H_DOUBLE_ARROW - | `SB_LEFT_ARROW - | `SB_RIGHT_ARROW - | `SB_UP_ARROW - | `SB_V_DOUBLE_ARROW - | `SHUTTLE - | `SIZING - | `SPIDER - | `SPRAYCAN - | `STAR - | `TARGET - | `TCROSS - | `TOP_LEFT_ARROW - | `TOP_LEFT_CORNER - | `TOP_RIGHT_CORNER - | `TOP_SIDE - | `TOP_TEE - | `TREK - | `UL_ANGLE - | `UMBRELLA - | `UR_ANGLE - | `WATCH - | `XTERM - ] - external create : cursor_type -> cursor = "ml_gdk_cursor_new" - external create_from_pixmap : - pixmap -> mask:bitmap -> - fg:Color.t -> bg:Color.t -> x:int -> y:int -> cursor - = "ml_gdk_cursor_new_from_pixmap_bc" "ml_gdk_cursor_new_from_pixmap" - external destroy : cursor -> unit = "ml_gdk_cursor_destroy" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkEvent.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkEvent.ml deleted file mode 100644 index 87c0e888f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkEvent.ml +++ /dev/null @@ -1,159 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gdk -open Tags - -external coerce : 'a event -> event_type event = "%identity" -external unsafe_copy : Gpointer.boxed -> #event_type event - = "ml_gdk_event_copy" -external copy : (#event_type as 'a) event -> 'a event - = "ml_gdk_event_copy" -external get_type : 'a event -> 'a = "ml_GdkEventAny_type" -external get_window : 'a event -> window = "ml_GdkEventAny_window" -external get_send_event : 'a event -> bool = "ml_GdkEventAny_send_event" - -external create : (#event_type as 'a) -> 'a event - = "ml_gdk_event_new" -external set_window : 'a event -> window -> unit - = "ml_gdk_event_set_window" - -module Expose = struct - type t = [ `EXPOSE ] event - let cast (ev : event_type event) : t = - match get_type ev with `EXPOSE -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Expose.cast" - external area : t -> Rectangle.t = "ml_GdkEventExpose_area" - external count : t -> int = "ml_GdkEventExpose_count" -end - -module Visibility = struct - type t = [ `VISIBILITY_NOTIFY ] event - let cast (ev : event_type event) : t = - match get_type ev with `VISIBILITY_NOTIFY -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Visibility.cast" - external visibility : t -> visibility_state - = "ml_GdkEventVisibility_state" -end - -module Motion = struct - type t = [ `MOTION_NOTIFY ] event - let cast (ev : event_type event) : t = - match get_type ev with `MOTION_NOTIFY -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Motion.cast" - external time : t -> int = "ml_GdkEventMotion_time" - external x : t -> float = "ml_GdkEventMotion_x" - external y : t -> float = "ml_GdkEventMotion_y" - external pressure : t -> float = "ml_GdkEventMotion_pressure" - external xtilt : t -> float = "ml_GdkEventMotion_xtilt" - external ytilt : t -> float = "ml_GdkEventMotion_ytilt" - external state : t -> int = "ml_GdkEventMotion_state" - external is_hint : t -> bool = "ml_GdkEventMotion_is_hint" - external source : t -> input_source = "ml_GdkEventMotion_source" - external deviceid : t -> int = "ml_GdkEventMotion_deviceid" - external x_root : t -> float = "ml_GdkEventMotion_x_root" - external y_root : t -> float = "ml_GdkEventMotion_y_root" -end - -module Button = struct - type types = - [ `BUTTON_PRESS|`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS|`BUTTON_RELEASE ] - type t = types event - let cast (ev : event_type event) : t = - match get_type ev with - `BUTTON_PRESS|`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS|`BUTTON_RELEASE - -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Button.cast" - external time : t -> int = "ml_GdkEventButton_time" - external x : t -> float = "ml_GdkEventButton_x" - external y : t -> float = "ml_GdkEventButton_y" - external pressure : t -> float = "ml_GdkEventButton_pressure" - external xtilt : t -> float = "ml_GdkEventButton_xtilt" - external ytilt : t -> float = "ml_GdkEventButton_ytilt" - external state : t -> int = "ml_GdkEventButton_state" - external button : t -> int = "ml_GdkEventButton_button" - external source : t -> input_source = "ml_GdkEventButton_source" - external deviceid : t -> int = "ml_GdkEventButton_deviceid" - external x_root : t -> float = "ml_GdkEventButton_x_root" - external y_root : t -> float = "ml_GdkEventButton_y_root" - external set_type : t -> #types -> unit - = "ml_gdk_event_set_type" - external set_button : t -> int -> unit - = "ml_gdk_event_button_set_button" -end - -module Key = struct - type t = [ `KEY_PRESS|`KEY_RELEASE ] event - let cast (ev : event_type event) : t = - match get_type ev with - `KEY_PRESS|`KEY_RELEASE -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Key.cast" - external time : t -> int = "ml_GdkEventKey_time" - external state : t -> int = "ml_GdkEventKey_state" - external keyval : t -> keysym = "ml_GdkEventKey_keyval" - external string : t -> string = "ml_GdkEventKey_string" - let state ev = Convert.modifier (state ev) -end - -module Crossing = struct - type t = [ `ENTER_NOTIFY|`LEAVE_NOTIFY ] event - let cast (ev : event_type event) : t = - match get_type ev with - `ENTER_NOTIFY|`LEAVE_NOTIFY -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Crossing.cast" - external subwindow : t -> window = "ml_GdkEventCrossing_subwindow" - external detail : t -> notify_type = "ml_GdkEventCrossing_detail" -end - -module Focus = struct - type t = [ `FOCUS_CHANGE ] event - let cast (ev : event_type event) : t = - match get_type ev with `FOCUS_CHANGE -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Focus.cast" - external focus_in : t -> bool = "ml_GdkEventFocus_in" -end - -module Configure = struct - type t = [ `CONFIGURE ] event - let cast (ev : event_type event) : t = - match get_type ev with `CONFIGURE -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Configure.cast" - external x : t -> int = "ml_GdkEventConfigure_x" - external y : t -> int = "ml_GdkEventConfigure_y" - external width : t -> int = "ml_GdkEventConfigure_width" - external height : t -> int = "ml_GdkEventConfigure_height" -end - -module Property = struct - type t = [ `PROPERTY_NOTIFY ] event - let cast (ev : event_type event) : t = - match get_type ev with `PROPERTY_NOTIFY -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Property.cast" - external atom : t -> atom = "ml_GdkEventProperty_atom" - external time : t -> int = "ml_GdkEventProperty_time" - external state : t -> int = "ml_GdkEventProperty_state" -end - -module Selection = struct - type t = [ `SELECTION_CLEAR|`SELECTION_REQUEST|`SELECTION_NOTIFY ] event - let cast (ev : event_type event) : t = - match get_type ev with - `SELECTION_CLEAR|`SELECTION_REQUEST|`SELECTION_NOTIFY -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Selection.cast" - external selection : t -> atom = "ml_GdkEventSelection_selection" - external target : t -> atom = "ml_GdkEventSelection_target" - external property : t -> atom = "ml_GdkEventSelection_property" - external requestor : t -> int = "ml_GdkEventSelection_requestor" - external time : t -> int = "ml_GdkEventSelection_time" -end - -module Proximity = struct - type t = [ `PROXIMITY_IN|`PROXIMITY_OUT ] event - let cast (ev : event_type event) : t = - match get_type ev with - `PROXIMITY_IN|`PROXIMITY_OUT -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Proximity.cast" - external time : t -> int = "ml_GdkEventProximity_time" - external source : t -> input_source = "ml_GdkEventProximity_source" - external deviceid : t -> int = "ml_GdkEventProximity_deviceid" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkKeysyms.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkKeysyms.ml deleted file mode 100644 index b0257b439..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkKeysyms.ml +++ /dev/null @@ -1,1320 +0,0 @@ -(* $Id$ *) - -open Gdk -let _VoidSymbol : keysym = 0xFFFFFF -let _BackSpace : keysym = 0xFF08 -let _Tab : keysym = 0xFF09 -let _Linefeed : keysym = 0xFF0A -let _Clear : keysym = 0xFF0B -let _Return : keysym = 0xFF0D -let _Pause : keysym = 0xFF13 -let _Scroll_Lock : keysym = 0xFF14 -let _Sys_Req : keysym = 0xFF15 -let _Escape : keysym = 0xFF1B -let _Delete : keysym = 0xFFFF -let _Multi_key : keysym = 0xFF20 -let _SingleCandidate : keysym = 0xFF3C -let _MultipleCandidate : keysym = 0xFF3D -let _PreviousCandidate : keysym = 0xFF3E -let _Kanji : keysym = 0xFF21 -let _Muhenkan : keysym = 0xFF22 -let _Henkan_Mode : keysym = 0xFF23 -let _Henkan : keysym = 0xFF23 -let _Romaji : keysym = 0xFF24 -let _Hiragana : keysym = 0xFF25 -let _Katakana : keysym = 0xFF26 -let _Hiragana_Katakana : keysym = 0xFF27 -let _Zenkaku : keysym = 0xFF28 -let _Hankaku : keysym = 0xFF29 -let _Zenkaku_Hankaku : keysym = 0xFF2A -let _Touroku : keysym = 0xFF2B -let _Massyo : keysym = 0xFF2C -let _Kana_Lock : keysym = 0xFF2D -let _Kana_Shift : keysym = 0xFF2E -let _Eisu_Shift : keysym = 0xFF2F -let _Eisu_toggle : keysym = 0xFF30 -let _Zen_Koho : keysym = 0xFF3D -let _Mae_Koho : keysym = 0xFF3E -let _Home : keysym = 0xFF50 -let _Left : keysym = 0xFF51 -let _Up : keysym = 0xFF52 -let _Right : keysym = 0xFF53 -let _Down : keysym = 0xFF54 -let _Prior : keysym = 0xFF55 -let _Page_Up : keysym = 0xFF55 -let _Next : keysym = 0xFF56 -let _Page_Down : keysym = 0xFF56 -let _End : keysym = 0xFF57 -let _Begin : keysym = 0xFF58 -let _Select : keysym = 0xFF60 -let _Print : keysym = 0xFF61 -let _Execute : keysym = 0xFF62 -let _Insert : keysym = 0xFF63 -let _Undo : keysym = 0xFF65 -let _Redo : keysym = 0xFF66 -let _Menu : keysym = 0xFF67 -let _Find : keysym = 0xFF68 -let _Cancel : keysym = 0xFF69 -let _Help : keysym = 0xFF6A -let _Break : keysym = 0xFF6B -let _Mode_switch : keysym = 0xFF7E -let _script_switch : keysym = 0xFF7E -let _Num_Lock : keysym = 0xFF7F -let _KP_Space : keysym = 0xFF80 -let _KP_Tab : keysym = 0xFF89 -let _KP_Enter : keysym = 0xFF8D -let _KP_F1 : keysym = 0xFF91 -let _KP_F2 : keysym = 0xFF92 -let _KP_F3 : keysym = 0xFF93 -let _KP_F4 : keysym = 0xFF94 -let _KP_Home : keysym = 0xFF95 -let _KP_Left : keysym = 0xFF96 -let _KP_Up : keysym = 0xFF97 -let _KP_Right : keysym = 0xFF98 -let _KP_Down : keysym = 0xFF99 -let _KP_Prior : keysym = 0xFF9A -let _KP_Page_Up : keysym = 0xFF9A -let _KP_Next : keysym = 0xFF9B -let _KP_Page_Down : keysym = 0xFF9B -let _KP_End : keysym = 0xFF9C -let _KP_Begin : keysym = 0xFF9D -let _KP_Insert : keysym = 0xFF9E -let _KP_Delete : keysym = 0xFF9F -let _KP_Equal : keysym = 0xFFBD -let _KP_Multiply : keysym = 0xFFAA -let _KP_Add : keysym = 0xFFAB -let _KP_Separator : keysym = 0xFFAC -let _KP_Subtract : keysym = 0xFFAD -let _KP_Decimal : keysym = 0xFFAE -let _KP_Divide : keysym = 0xFFAF -let _KP_0 : keysym = 0xFFB0 -let _KP_1 : keysym = 0xFFB1 -let _KP_2 : keysym = 0xFFB2 -let _KP_3 : keysym = 0xFFB3 -let _KP_4 : keysym = 0xFFB4 -let _KP_5 : keysym = 0xFFB5 -let _KP_6 : keysym = 0xFFB6 -let _KP_7 : keysym = 0xFFB7 -let _KP_8 : keysym = 0xFFB8 -let _KP_9 : keysym = 0xFFB9 -let _F1 : keysym = 0xFFBE -let _F2 : keysym = 0xFFBF -let _F3 : keysym = 0xFFC0 -let _F4 : keysym = 0xFFC1 -let _F5 : keysym = 0xFFC2 -let _F6 : keysym = 0xFFC3 -let _F7 : keysym = 0xFFC4 -let _F8 : keysym = 0xFFC5 -let _F9 : keysym = 0xFFC6 -let _F10 : keysym = 0xFFC7 -let _F11 : keysym = 0xFFC8 -let _L1 : keysym = 0xFFC8 -let _F12 : keysym = 0xFFC9 -let _L2 : keysym = 0xFFC9 -let _F13 : keysym = 0xFFCA -let _L3 : keysym = 0xFFCA -let _F14 : keysym = 0xFFCB -let _L4 : keysym = 0xFFCB -let _F15 : keysym = 0xFFCC -let _L5 : keysym = 0xFFCC -let _F16 : keysym = 0xFFCD -let _L6 : keysym = 0xFFCD -let _F17 : keysym = 0xFFCE -let _L7 : keysym = 0xFFCE -let _F18 : keysym = 0xFFCF -let _L8 : keysym = 0xFFCF -let _F19 : keysym = 0xFFD0 -let _L9 : keysym = 0xFFD0 -let _F20 : keysym = 0xFFD1 -let _L10 : keysym = 0xFFD1 -let _F21 : keysym = 0xFFD2 -let _R1 : keysym = 0xFFD2 -let _F22 : keysym = 0xFFD3 -let _R2 : keysym = 0xFFD3 -let _F23 : keysym = 0xFFD4 -let _R3 : keysym = 0xFFD4 -let _F24 : keysym = 0xFFD5 -let _R4 : keysym = 0xFFD5 -let _F25 : keysym = 0xFFD6 -let _R5 : keysym = 0xFFD6 -let _F26 : keysym = 0xFFD7 -let _R6 : keysym = 0xFFD7 -let _F27 : keysym = 0xFFD8 -let _R7 : keysym = 0xFFD8 -let _F28 : keysym = 0xFFD9 -let _R8 : keysym = 0xFFD9 -let _F29 : keysym = 0xFFDA -let _R9 : keysym = 0xFFDA -let _F30 : keysym = 0xFFDB -let _R10 : keysym = 0xFFDB -let _F31 : keysym = 0xFFDC -let _R11 : keysym = 0xFFDC -let _F32 : keysym = 0xFFDD -let _R12 : keysym = 0xFFDD -let _F33 : keysym = 0xFFDE -let _R13 : keysym = 0xFFDE -let _F34 : keysym = 0xFFDF -let _R14 : keysym = 0xFFDF -let _F35 : keysym = 0xFFE0 -let _R15 : keysym = 0xFFE0 -let _Shift_L : keysym = 0xFFE1 -let _Shift_R : keysym = 0xFFE2 -let _Control_L : keysym = 0xFFE3 -let _Control_R : keysym = 0xFFE4 -let _Caps_Lock : keysym = 0xFFE5 -let _Shift_Lock : keysym = 0xFFE6 -let _Meta_L : keysym = 0xFFE7 -let _Meta_R : keysym = 0xFFE8 -let _Alt_L : keysym = 0xFFE9 -let _Alt_R : keysym = 0xFFEA -let _Super_L : keysym = 0xFFEB -let _Super_R : keysym = 0xFFEC -let _Hyper_L : keysym = 0xFFED -let _Hyper_R : keysym = 0xFFEE -let _ISO_Lock : keysym = 0xFE01 -let _ISO_Level2_Latch : keysym = 0xFE02 -let _ISO_Level3_Shift : keysym = 0xFE03 -let _ISO_Level3_Latch : keysym = 0xFE04 -let _ISO_Level3_Lock : keysym = 0xFE05 -let _ISO_Group_Shift : keysym = 0xFF7E -let _ISO_Group_Latch : keysym = 0xFE06 -let _ISO_Group_Lock : keysym = 0xFE07 -let _ISO_Next_Group : keysym = 0xFE08 -let _ISO_Next_Group_Lock : keysym = 0xFE09 -let _ISO_Prev_Group : keysym = 0xFE0A -let _ISO_Prev_Group_Lock : keysym = 0xFE0B -let _ISO_First_Group : keysym = 0xFE0C -let _ISO_First_Group_Lock : keysym = 0xFE0D -let _ISO_Last_Group : keysym = 0xFE0E -let _ISO_Last_Group_Lock : keysym = 0xFE0F -let _ISO_Left_Tab : keysym = 0xFE20 -let _ISO_Move_Line_Up : keysym = 0xFE21 -let _ISO_Move_Line_Down : keysym = 0xFE22 -let _ISO_Partial_Line_Up : keysym = 0xFE23 -let _ISO_Partial_Line_Down : keysym = 0xFE24 -let _ISO_Partial_Space_Left : keysym = 0xFE25 -let _ISO_Partial_Space_Right : keysym = 0xFE26 -let _ISO_Set_Margin_Left : keysym = 0xFE27 -let _ISO_Set_Margin_Right : keysym = 0xFE28 -let _ISO_Release_Margin_Left : keysym = 0xFE29 -let _ISO_Release_Margin_Right : keysym = 0xFE2A -let _ISO_Release_Both_Margins : keysym = 0xFE2B -let _ISO_Fast_Cursor_Left : keysym = 0xFE2C -let _ISO_Fast_Cursor_Right : keysym = 0xFE2D -let _ISO_Fast_Cursor_Up : keysym = 0xFE2E -let _ISO_Fast_Cursor_Down : keysym = 0xFE2F -let _ISO_Continuous_Underline : keysym = 0xFE30 -let _ISO_Discontinuous_Underline : keysym = 0xFE31 -let _ISO_Emphasize : keysym = 0xFE32 -let _ISO_Center_Object : keysym = 0xFE33 -let _ISO_Enter : keysym = 0xFE34 -let _dead_grave : keysym = 0xFE50 -let _dead_acute : keysym = 0xFE51 -let _dead_circumflex : keysym = 0xFE52 -let _dead_tilde : keysym = 0xFE53 -let _dead_macron : keysym = 0xFE54 -let _dead_breve : keysym = 0xFE55 -let _dead_abovedot : keysym = 0xFE56 -let _dead_diaeresis : keysym = 0xFE57 -let _dead_abovering : keysym = 0xFE58 -let _dead_doubleacute : keysym = 0xFE59 -let _dead_caron : keysym = 0xFE5A -let _dead_cedilla : keysym = 0xFE5B -let _dead_ogonek : keysym = 0xFE5C -let _dead_iota : keysym = 0xFE5D -let _dead_voiced_sound : keysym = 0xFE5E -let _dead_semivoiced_sound : keysym = 0xFE5F -let _dead_belowdot : keysym = 0xFE60 -let _First_Virtual_Screen : keysym = 0xFED0 -let _Prev_Virtual_Screen : keysym = 0xFED1 -let _Next_Virtual_Screen : keysym = 0xFED2 -let _Last_Virtual_Screen : keysym = 0xFED4 -let _Terminate_Server : keysym = 0xFED5 -let _AccessX_Enable : keysym = 0xFE70 -let _AccessX_Feedback_Enable : keysym = 0xFE71 -let _RepeatKeys_Enable : keysym = 0xFE72 -let _SlowKeys_Enable : keysym = 0xFE73 -let _BounceKeys_Enable : keysym = 0xFE74 -let _StickyKeys_Enable : keysym = 0xFE75 -let _MouseKeys_Enable : keysym = 0xFE76 -let _MouseKeys_Accel_Enable : keysym = 0xFE77 -let _Overlay1_Enable : keysym = 0xFE78 -let _Overlay2_Enable : keysym = 0xFE79 -let _AudibleBell_Enable : keysym = 0xFE7A -let _Pointer_Left : keysym = 0xFEE0 -let _Pointer_Right : keysym = 0xFEE1 -let _Pointer_Up : keysym = 0xFEE2 -let _Pointer_Down : keysym = 0xFEE3 -let _Pointer_UpLeft : keysym = 0xFEE4 -let _Pointer_UpRight : keysym = 0xFEE5 -let _Pointer_DownLeft : keysym = 0xFEE6 -let _Pointer_DownRight : keysym = 0xFEE7 -let _Pointer_Button_Dflt : keysym = 0xFEE8 -let _Pointer_Button1 : keysym = 0xFEE9 -let _Pointer_Button2 : keysym = 0xFEEA -let _Pointer_Button3 : keysym = 0xFEEB -let _Pointer_Button4 : keysym = 0xFEEC -let _Pointer_Button5 : keysym = 0xFEED -let _Pointer_DblClick_Dflt : keysym = 0xFEEE -let _Pointer_DblClick1 : keysym = 0xFEEF -let _Pointer_DblClick2 : keysym = 0xFEF0 -let _Pointer_DblClick3 : keysym = 0xFEF1 -let _Pointer_DblClick4 : keysym = 0xFEF2 -let _Pointer_DblClick5 : keysym = 0xFEF3 -let _Pointer_Drag_Dflt : keysym = 0xFEF4 -let _Pointer_Drag1 : keysym = 0xFEF5 -let _Pointer_Drag2 : keysym = 0xFEF6 -let _Pointer_Drag3 : keysym = 0xFEF7 -let _Pointer_Drag4 : keysym = 0xFEF8 -let _Pointer_Drag5 : keysym = 0xFEFD -let _Pointer_EnableKeys : keysym = 0xFEF9 -let _Pointer_Accelerate : keysym = 0xFEFA -let _Pointer_DfltBtnNext : keysym = 0xFEFB -let _Pointer_DfltBtnPrev : keysym = 0xFEFC -let _3270_Duplicate : keysym = 0xFD01 -let _3270_FieldMark : keysym = 0xFD02 -let _3270_Right2 : keysym = 0xFD03 -let _3270_Left2 : keysym = 0xFD04 -let _3270_BackTab : keysym = 0xFD05 -let _3270_EraseEOF : keysym = 0xFD06 -let _3270_EraseInput : keysym = 0xFD07 -let _3270_Reset : keysym = 0xFD08 -let _3270_Quit : keysym = 0xFD09 -let _3270_PA1 : keysym = 0xFD0A -let _3270_PA2 : keysym = 0xFD0B -let _3270_PA3 : keysym = 0xFD0C -let _3270_Test : keysym = 0xFD0D -let _3270_Attn : keysym = 0xFD0E -let _3270_CursorBlink : keysym = 0xFD0F -let _3270_AltCursor : keysym = 0xFD10 -let _3270_KeyClick : keysym = 0xFD11 -let _3270_Jump : keysym = 0xFD12 -let _3270_Ident : keysym = 0xFD13 -let _3270_Rule : keysym = 0xFD14 -let _3270_Copy : keysym = 0xFD15 -let _3270_Play : keysym = 0xFD16 -let _3270_Setup : keysym = 0xFD17 -let _3270_Record : keysym = 0xFD18 -let _3270_ChangeScreen : keysym = 0xFD19 -let _3270_DeleteWord : keysym = 0xFD1A -let _3270_ExSelect : keysym = 0xFD1B -let _3270_CursorSelect : keysym = 0xFD1C -let _3270_PrintScreen : keysym = 0xFD1D -let _3270_Enter : keysym = 0xFD1E -let _space : keysym = 0x020 -let _exclam : keysym = 0x021 -let _quotedbl : keysym = 0x022 -let _numbersign : keysym = 0x023 -let _dollar : keysym = 0x024 -let _percent : keysym = 0x025 -let _ampersand : keysym = 0x026 -let _apostrophe : keysym = 0x027 -let _quoteright : keysym = 0x027 -let _parenleft : keysym = 0x028 -let _parenright : keysym = 0x029 -let _asterisk : keysym = 0x02a -let _plus : keysym = 0x02b -let _comma : keysym = 0x02c -let _minus : keysym = 0x02d -let _period : keysym = 0x02e -let _slash : keysym = 0x02f -let _0 : keysym = 0x030 -let _1 : keysym = 0x031 -let _2 : keysym = 0x032 -let _3 : keysym = 0x033 -let _4 : keysym = 0x034 -let _5 : keysym = 0x035 -let _6 : keysym = 0x036 -let _7 : keysym = 0x037 -let _8 : keysym = 0x038 -let _9 : keysym = 0x039 -let _colon : keysym = 0x03a -let _semicolon : keysym = 0x03b -let _less : keysym = 0x03c -let _equal : keysym = 0x03d -let _greater : keysym = 0x03e -let _question : keysym = 0x03f -let _at : keysym = 0x040 -let _A : keysym = 0x041 -let _B : keysym = 0x042 -let _C : keysym = 0x043 -let _D : keysym = 0x044 -let _E : keysym = 0x045 -let _F : keysym = 0x046 -let _G : keysym = 0x047 -let _H : keysym = 0x048 -let _I : keysym = 0x049 -let _J : keysym = 0x04a -let _K : keysym = 0x04b -let _L : keysym = 0x04c -let _M : keysym = 0x04d -let _N : keysym = 0x04e -let _O : keysym = 0x04f -let _P : keysym = 0x050 -let _Q : keysym = 0x051 -let _R : keysym = 0x052 -let _S : keysym = 0x053 -let _T : keysym = 0x054 -let _U : keysym = 0x055 -let _V : keysym = 0x056 -let _W : keysym = 0x057 -let _X : keysym = 0x058 -let _Y : keysym = 0x059 -let _Z : keysym = 0x05a -let _bracketleft : keysym = 0x05b -let _backslash : keysym = 0x05c -let _bracketright : keysym = 0x05d -let _asciicircum : keysym = 0x05e -let _underscore : keysym = 0x05f -let _grave : keysym = 0x060 -let _quoteleft : keysym = 0x060 -let _a : keysym = 0x061 -let _b : keysym = 0x062 -let _c : keysym = 0x063 -let _d : keysym = 0x064 -let _e : keysym = 0x065 -let _f : keysym = 0x066 -let _g : keysym = 0x067 -let _h : keysym = 0x068 -let _i : keysym = 0x069 -let _j : keysym = 0x06a -let _k : keysym = 0x06b -let _l : keysym = 0x06c -let _m : keysym = 0x06d -let _n : keysym = 0x06e -let _o : keysym = 0x06f -let _p : keysym = 0x070 -let _q : keysym = 0x071 -let _r : keysym = 0x072 -let _s : keysym = 0x073 -let _t : keysym = 0x074 -let _u : keysym = 0x075 -let _v : keysym = 0x076 -let _w : keysym = 0x077 -let _x : keysym = 0x078 -let _y : keysym = 0x079 -let _z : keysym = 0x07a -let _braceleft : keysym = 0x07b -let _bar : keysym = 0x07c -let _braceright : keysym = 0x07d -let _asciitilde : keysym = 0x07e -let _nobreakspace : keysym = 0x0a0 -let _exclamdown : keysym = 0x0a1 -let _cent : keysym = 0x0a2 -let _sterling : keysym = 0x0a3 -let _currency : keysym = 0x0a4 -let _yen : keysym = 0x0a5 -let _brokenbar : keysym = 0x0a6 -let _section : keysym = 0x0a7 -let _diaeresis : keysym = 0x0a8 -let _copyright : keysym = 0x0a9 -let _ordfeminine : keysym = 0x0aa -let _guillemotleft : keysym = 0x0ab -let _notsign : keysym = 0x0ac -let _hyphen : keysym = 0x0ad -let _registered : keysym = 0x0ae -let _macron : keysym = 0x0af -let _degree : keysym = 0x0b0 -let _plusminus : keysym = 0x0b1 -let _twosuperior : keysym = 0x0b2 -let _threesuperior : keysym = 0x0b3 -let _acute : keysym = 0x0b4 -let _mu : keysym = 0x0b5 -let _paragraph : keysym = 0x0b6 -let _periodcentered : keysym = 0x0b7 -let _cedilla : keysym = 0x0b8 -let _onesuperior : keysym = 0x0b9 -let _masculine : keysym = 0x0ba -let _guillemotright : keysym = 0x0bb -let _onequarter : keysym = 0x0bc -let _onehalf : keysym = 0x0bd -let _threequarters : keysym = 0x0be -let _questiondown : keysym = 0x0bf -let _Agrave : keysym = 0x0c0 -let _Aacute : keysym = 0x0c1 -let _Acircumflex : keysym = 0x0c2 -let _Atilde : keysym = 0x0c3 -let _Adiaeresis : keysym = 0x0c4 -let _Aring : keysym = 0x0c5 -let _AE : keysym = 0x0c6 -let _Ccedilla : keysym = 0x0c7 -let _Egrave : keysym = 0x0c8 -let _Eacute : keysym = 0x0c9 -let _Ecircumflex : keysym = 0x0ca -let _Ediaeresis : keysym = 0x0cb -let _Igrave : keysym = 0x0cc -let _Iacute : keysym = 0x0cd -let _Icircumflex : keysym = 0x0ce -let _Idiaeresis : keysym = 0x0cf -let _ETH : keysym = 0x0d0 -let _Eth : keysym = 0x0d0 -let _Ntilde : keysym = 0x0d1 -let _Ograve : keysym = 0x0d2 -let _Oacute : keysym = 0x0d3 -let _Ocircumflex : keysym = 0x0d4 -let _Otilde : keysym = 0x0d5 -let _Odiaeresis : keysym = 0x0d6 -let _multiply : keysym = 0x0d7 -let _Ooblique : keysym = 0x0d8 -let _Ugrave : keysym = 0x0d9 -let _Uacute : keysym = 0x0da -let _Ucircumflex : keysym = 0x0db -let _Udiaeresis : keysym = 0x0dc -let _Yacute : keysym = 0x0dd -let _THORN : keysym = 0x0de -let _Thorn : keysym = 0x0de -let _ssharp : keysym = 0x0df -let _agrave : keysym = 0x0e0 -let _aacute : keysym = 0x0e1 -let _acircumflex : keysym = 0x0e2 -let _atilde : keysym = 0x0e3 -let _adiaeresis : keysym = 0x0e4 -let _aring : keysym = 0x0e5 -let _ae : keysym = 0x0e6 -let _ccedilla : keysym = 0x0e7 -let _egrave : keysym = 0x0e8 -let _eacute : keysym = 0x0e9 -let _ecircumflex : keysym = 0x0ea -let _ediaeresis : keysym = 0x0eb -let _igrave : keysym = 0x0ec -let _iacute : keysym = 0x0ed -let _icircumflex : keysym = 0x0ee -let _idiaeresis : keysym = 0x0ef -let _eth : keysym = 0x0f0 -let _ntilde : keysym = 0x0f1 -let _ograve : keysym = 0x0f2 -let _oacute : keysym = 0x0f3 -let _ocircumflex : keysym = 0x0f4 -let _otilde : keysym = 0x0f5 -let _odiaeresis : keysym = 0x0f6 -let _division : keysym = 0x0f7 -let _oslash : keysym = 0x0f8 -let _ugrave : keysym = 0x0f9 -let _uacute : keysym = 0x0fa -let _ucircumflex : keysym = 0x0fb -let _udiaeresis : keysym = 0x0fc -let _yacute : keysym = 0x0fd -let _thorn : keysym = 0x0fe -let _ydiaeresis : keysym = 0x0ff -let _Aogonek : keysym = 0x1a1 -let _breve : keysym = 0x1a2 -let _Lstroke : keysym = 0x1a3 -let _Lcaron : keysym = 0x1a5 -let _Sacute : keysym = 0x1a6 -let _Scaron : keysym = 0x1a9 -let _Scedilla : keysym = 0x1aa -let _Tcaron : keysym = 0x1ab -let _Zacute : keysym = 0x1ac -let _Zcaron : keysym = 0x1ae -let _Zabovedot : keysym = 0x1af -let _aogonek : keysym = 0x1b1 -let _ogonek : keysym = 0x1b2 -let _lstroke : keysym = 0x1b3 -let _lcaron : keysym = 0x1b5 -let _sacute : keysym = 0x1b6 -let _caron : keysym = 0x1b7 -let _scaron : keysym = 0x1b9 -let _scedilla : keysym = 0x1ba -let _tcaron : keysym = 0x1bb -let _zacute : keysym = 0x1bc -let _doubleacute : keysym = 0x1bd -let _zcaron : keysym = 0x1be -let _zabovedot : keysym = 0x1bf -let _Racute : keysym = 0x1c0 -let _Abreve : keysym = 0x1c3 -let _Lacute : keysym = 0x1c5 -let _Cacute : keysym = 0x1c6 -let _Ccaron : keysym = 0x1c8 -let _Eogonek : keysym = 0x1ca -let _Ecaron : keysym = 0x1cc -let _Dcaron : keysym = 0x1cf -let _Dstroke : keysym = 0x1d0 -let _Nacute : keysym = 0x1d1 -let _Ncaron : keysym = 0x1d2 -let _Odoubleacute : keysym = 0x1d5 -let _Rcaron : keysym = 0x1d8 -let _Uring : keysym = 0x1d9 -let _Udoubleacute : keysym = 0x1db -let _Tcedilla : keysym = 0x1de -let _racute : keysym = 0x1e0 -let _abreve : keysym = 0x1e3 -let _lacute : keysym = 0x1e5 -let _cacute : keysym = 0x1e6 -let _ccaron : keysym = 0x1e8 -let _eogonek : keysym = 0x1ea -let _ecaron : keysym = 0x1ec -let _dcaron : keysym = 0x1ef -let _dstroke : keysym = 0x1f0 -let _nacute : keysym = 0x1f1 -let _ncaron : keysym = 0x1f2 -let _odoubleacute : keysym = 0x1f5 -let _udoubleacute : keysym = 0x1fb -let _rcaron : keysym = 0x1f8 -let _uring : keysym = 0x1f9 -let _tcedilla : keysym = 0x1fe -let _abovedot : keysym = 0x1ff -let _Hstroke : keysym = 0x2a1 -let _Hcircumflex : keysym = 0x2a6 -let _Iabovedot : keysym = 0x2a9 -let _Gbreve : keysym = 0x2ab -let _Jcircumflex : keysym = 0x2ac -let _hstroke : keysym = 0x2b1 -let _hcircumflex : keysym = 0x2b6 -let _idotless : keysym = 0x2b9 -let _gbreve : keysym = 0x2bb -let _jcircumflex : keysym = 0x2bc -let _Cabovedot : keysym = 0x2c5 -let _Ccircumflex : keysym = 0x2c6 -let _Gabovedot : keysym = 0x2d5 -let _Gcircumflex : keysym = 0x2d8 -let _Ubreve : keysym = 0x2dd -let _Scircumflex : keysym = 0x2de -let _cabovedot : keysym = 0x2e5 -let _ccircumflex : keysym = 0x2e6 -let _gabovedot : keysym = 0x2f5 -let _gcircumflex : keysym = 0x2f8 -let _ubreve : keysym = 0x2fd -let _scircumflex : keysym = 0x2fe -let _kra : keysym = 0x3a2 -let _kappa : keysym = 0x3a2 -let _Rcedilla : keysym = 0x3a3 -let _Itilde : keysym = 0x3a5 -let _Lcedilla : keysym = 0x3a6 -let _Emacron : keysym = 0x3aa -let _Gcedilla : keysym = 0x3ab -let _Tslash : keysym = 0x3ac -let _rcedilla : keysym = 0x3b3 -let _itilde : keysym = 0x3b5 -let _lcedilla : keysym = 0x3b6 -let _emacron : keysym = 0x3ba -let _gcedilla : keysym = 0x3bb -let _tslash : keysym = 0x3bc -let _ENG : keysym = 0x3bd -let _eng : keysym = 0x3bf -let _Amacron : keysym = 0x3c0 -let _Iogonek : keysym = 0x3c7 -let _Eabovedot : keysym = 0x3cc -let _Imacron : keysym = 0x3cf -let _Ncedilla : keysym = 0x3d1 -let _Omacron : keysym = 0x3d2 -let _Kcedilla : keysym = 0x3d3 -let _Uogonek : keysym = 0x3d9 -let _Utilde : keysym = 0x3dd -let _Umacron : keysym = 0x3de -let _amacron : keysym = 0x3e0 -let _iogonek : keysym = 0x3e7 -let _eabovedot : keysym = 0x3ec -let _imacron : keysym = 0x3ef -let _ncedilla : keysym = 0x3f1 -let _omacron : keysym = 0x3f2 -let _kcedilla : keysym = 0x3f3 -let _uogonek : keysym = 0x3f9 -let _utilde : keysym = 0x3fd -let _umacron : keysym = 0x3fe -let _overline : keysym = 0x47e -let _kana_fullstop : keysym = 0x4a1 -let _kana_openingbracket : keysym = 0x4a2 -let _kana_closingbracket : keysym = 0x4a3 -let _kana_comma : keysym = 0x4a4 -let _kana_conjunctive : keysym = 0x4a5 -let _kana_middledot : keysym = 0x4a5 -let _kana_WO : keysym = 0x4a6 -let _kana_a : keysym = 0x4a7 -let _kana_i : keysym = 0x4a8 -let _kana_u : keysym = 0x4a9 -let _kana_e : keysym = 0x4aa -let _kana_o : keysym = 0x4ab -let _kana_ya : keysym = 0x4ac -let _kana_yu : keysym = 0x4ad -let _kana_yo : keysym = 0x4ae -let _kana_tsu : keysym = 0x4af -let _kana_tu : keysym = 0x4af -let _prolongedsound : keysym = 0x4b0 -let _kana_A : keysym = 0x4b1 -let _kana_I : keysym = 0x4b2 -let _kana_U : keysym = 0x4b3 -let _kana_E : keysym = 0x4b4 -let _kana_O : keysym = 0x4b5 -let _kana_KA : keysym = 0x4b6 -let _kana_KI : keysym = 0x4b7 -let _kana_KU : keysym = 0x4b8 -let _kana_KE : keysym = 0x4b9 -let _kana_KO : keysym = 0x4ba -let _kana_SA : keysym = 0x4bb -let _kana_SHI : keysym = 0x4bc -let _kana_SU : keysym = 0x4bd -let _kana_SE : keysym = 0x4be -let _kana_SO : keysym = 0x4bf -let _kana_TA : keysym = 0x4c0 -let _kana_CHI : keysym = 0x4c1 -let _kana_TI : keysym = 0x4c1 -let _kana_TSU : keysym = 0x4c2 -let _kana_TU : keysym = 0x4c2 -let _kana_TE : keysym = 0x4c3 -let _kana_TO : keysym = 0x4c4 -let _kana_NA : keysym = 0x4c5 -let _kana_NI : keysym = 0x4c6 -let _kana_NU : keysym = 0x4c7 -let _kana_NE : keysym = 0x4c8 -let _kana_NO : keysym = 0x4c9 -let _kana_HA : keysym = 0x4ca -let _kana_HI : keysym = 0x4cb -let _kana_FU : keysym = 0x4cc -let _kana_HU : keysym = 0x4cc -let _kana_HE : keysym = 0x4cd -let _kana_HO : keysym = 0x4ce -let _kana_MA : keysym = 0x4cf -let _kana_MI : keysym = 0x4d0 -let _kana_MU : keysym = 0x4d1 -let _kana_ME : keysym = 0x4d2 -let _kana_MO : keysym = 0x4d3 -let _kana_YA : keysym = 0x4d4 -let _kana_YU : keysym = 0x4d5 -let _kana_YO : keysym = 0x4d6 -let _kana_RA : keysym = 0x4d7 -let _kana_RI : keysym = 0x4d8 -let _kana_RU : keysym = 0x4d9 -let _kana_RE : keysym = 0x4da -let _kana_RO : keysym = 0x4db -let _kana_WA : keysym = 0x4dc -let _kana_N : keysym = 0x4dd -let _voicedsound : keysym = 0x4de -let _semivoicedsound : keysym = 0x4df -let _kana_switch : keysym = 0xFF7E -let _Arabic_comma : keysym = 0x5ac -let _Arabic_semicolon : keysym = 0x5bb -let _Arabic_question_mark : keysym = 0x5bf -let _Arabic_hamza : keysym = 0x5c1 -let _Arabic_maddaonalef : keysym = 0x5c2 -let _Arabic_hamzaonalef : keysym = 0x5c3 -let _Arabic_hamzaonwaw : keysym = 0x5c4 -let _Arabic_hamzaunderalef : keysym = 0x5c5 -let _Arabic_hamzaonyeh : keysym = 0x5c6 -let _Arabic_alef : keysym = 0x5c7 -let _Arabic_beh : keysym = 0x5c8 -let _Arabic_tehmarbuta : keysym = 0x5c9 -let _Arabic_teh : keysym = 0x5ca -let _Arabic_theh : keysym = 0x5cb -let _Arabic_jeem : keysym = 0x5cc -let _Arabic_hah : keysym = 0x5cd -let _Arabic_khah : keysym = 0x5ce -let _Arabic_dal : keysym = 0x5cf -let _Arabic_thal : keysym = 0x5d0 -let _Arabic_ra : keysym = 0x5d1 -let _Arabic_zain : keysym = 0x5d2 -let _Arabic_seen : keysym = 0x5d3 -let _Arabic_sheen : keysym = 0x5d4 -let _Arabic_sad : keysym = 0x5d5 -let _Arabic_dad : keysym = 0x5d6 -let _Arabic_tah : keysym = 0x5d7 -let _Arabic_zah : keysym = 0x5d8 -let _Arabic_ain : keysym = 0x5d9 -let _Arabic_ghain : keysym = 0x5da -let _Arabic_tatweel : keysym = 0x5e0 -let _Arabic_feh : keysym = 0x5e1 -let _Arabic_qaf : keysym = 0x5e2 -let _Arabic_kaf : keysym = 0x5e3 -let _Arabic_lam : keysym = 0x5e4 -let _Arabic_meem : keysym = 0x5e5 -let _Arabic_noon : keysym = 0x5e6 -let _Arabic_ha : keysym = 0x5e7 -let _Arabic_heh : keysym = 0x5e7 -let _Arabic_waw : keysym = 0x5e8 -let _Arabic_alefmaksura : keysym = 0x5e9 -let _Arabic_yeh : keysym = 0x5ea -let _Arabic_fathatan : keysym = 0x5eb -let _Arabic_dammatan : keysym = 0x5ec -let _Arabic_kasratan : keysym = 0x5ed -let _Arabic_fatha : keysym = 0x5ee -let _Arabic_damma : keysym = 0x5ef -let _Arabic_kasra : keysym = 0x5f0 -let _Arabic_shadda : keysym = 0x5f1 -let _Arabic_sukun : keysym = 0x5f2 -let _Arabic_switch : keysym = 0xFF7E -let _Serbian_dje : keysym = 0x6a1 -let _Macedonia_gje : keysym = 0x6a2 -let _Cyrillic_io : keysym = 0x6a3 -let _Ukrainian_ie : keysym = 0x6a4 -let _Ukranian_je : keysym = 0x6a4 -let _Macedonia_dse : keysym = 0x6a5 -let _Ukrainian_i : keysym = 0x6a6 -let _Ukranian_i : keysym = 0x6a6 -let _Ukrainian_yi : keysym = 0x6a7 -let _Ukranian_yi : keysym = 0x6a7 -let _Cyrillic_je : keysym = 0x6a8 -let _Serbian_je : keysym = 0x6a8 -let _Cyrillic_lje : keysym = 0x6a9 -let _Serbian_lje : keysym = 0x6a9 -let _Cyrillic_nje : keysym = 0x6aa -let _Serbian_nje : keysym = 0x6aa -let _Serbian_tshe : keysym = 0x6ab -let _Macedonia_kje : keysym = 0x6ac -let _Byelorussian_shortu : keysym = 0x6ae -let _Cyrillic_dzhe : keysym = 0x6af -let _Serbian_dze : keysym = 0x6af -let _numerosign : keysym = 0x6b0 -let _Serbian_DJE : keysym = 0x6b1 -let _Macedonia_GJE : keysym = 0x6b2 -let _Cyrillic_IO : keysym = 0x6b3 -let _Ukrainian_IE : keysym = 0x6b4 -let _Ukranian_JE : keysym = 0x6b4 -let _Macedonia_DSE : keysym = 0x6b5 -let _Ukrainian_I : keysym = 0x6b6 -let _Ukranian_I : keysym = 0x6b6 -let _Ukrainian_YI : keysym = 0x6b7 -let _Ukranian_YI : keysym = 0x6b7 -let _Cyrillic_JE : keysym = 0x6b8 -let _Serbian_JE : keysym = 0x6b8 -let _Cyrillic_LJE : keysym = 0x6b9 -let _Serbian_LJE : keysym = 0x6b9 -let _Cyrillic_NJE : keysym = 0x6ba -let _Serbian_NJE : keysym = 0x6ba -let _Serbian_TSHE : keysym = 0x6bb -let _Macedonia_KJE : keysym = 0x6bc -let _Byelorussian_SHORTU : keysym = 0x6be -let _Cyrillic_DZHE : keysym = 0x6bf -let _Serbian_DZE : keysym = 0x6bf -let _Cyrillic_yu : keysym = 0x6c0 -let _Cyrillic_a : keysym = 0x6c1 -let _Cyrillic_be : keysym = 0x6c2 -let _Cyrillic_tse : keysym = 0x6c3 -let _Cyrillic_de : keysym = 0x6c4 -let _Cyrillic_ie : keysym = 0x6c5 -let _Cyrillic_ef : keysym = 0x6c6 -let _Cyrillic_ghe : keysym = 0x6c7 -let _Cyrillic_ha : keysym = 0x6c8 -let _Cyrillic_i : keysym = 0x6c9 -let _Cyrillic_shorti : keysym = 0x6ca -let _Cyrillic_ka : keysym = 0x6cb -let _Cyrillic_el : keysym = 0x6cc -let _Cyrillic_em : keysym = 0x6cd -let _Cyrillic_en : keysym = 0x6ce -let _Cyrillic_o : keysym = 0x6cf -let _Cyrillic_pe : keysym = 0x6d0 -let _Cyrillic_ya : keysym = 0x6d1 -let _Cyrillic_er : keysym = 0x6d2 -let _Cyrillic_es : keysym = 0x6d3 -let _Cyrillic_te : keysym = 0x6d4 -let _Cyrillic_u : keysym = 0x6d5 -let _Cyrillic_zhe : keysym = 0x6d6 -let _Cyrillic_ve : keysym = 0x6d7 -let _Cyrillic_softsign : keysym = 0x6d8 -let _Cyrillic_yeru : keysym = 0x6d9 -let _Cyrillic_ze : keysym = 0x6da -let _Cyrillic_sha : keysym = 0x6db -let _Cyrillic_e : keysym = 0x6dc -let _Cyrillic_shcha : keysym = 0x6dd -let _Cyrillic_che : keysym = 0x6de -let _Cyrillic_hardsign : keysym = 0x6df -let _Cyrillic_YU : keysym = 0x6e0 -let _Cyrillic_A : keysym = 0x6e1 -let _Cyrillic_BE : keysym = 0x6e2 -let _Cyrillic_TSE : keysym = 0x6e3 -let _Cyrillic_DE : keysym = 0x6e4 -let _Cyrillic_IE : keysym = 0x6e5 -let _Cyrillic_EF : keysym = 0x6e6 -let _Cyrillic_GHE : keysym = 0x6e7 -let _Cyrillic_HA : keysym = 0x6e8 -let _Cyrillic_I : keysym = 0x6e9 -let _Cyrillic_SHORTI : keysym = 0x6ea -let _Cyrillic_KA : keysym = 0x6eb -let _Cyrillic_EL : keysym = 0x6ec -let _Cyrillic_EM : keysym = 0x6ed -let _Cyrillic_EN : keysym = 0x6ee -let _Cyrillic_O : keysym = 0x6ef -let _Cyrillic_PE : keysym = 0x6f0 -let _Cyrillic_YA : keysym = 0x6f1 -let _Cyrillic_ER : keysym = 0x6f2 -let _Cyrillic_ES : keysym = 0x6f3 -let _Cyrillic_TE : keysym = 0x6f4 -let _Cyrillic_U : keysym = 0x6f5 -let _Cyrillic_ZHE : keysym = 0x6f6 -let _Cyrillic_VE : keysym = 0x6f7 -let _Cyrillic_SOFTSIGN : keysym = 0x6f8 -let _Cyrillic_YERU : keysym = 0x6f9 -let _Cyrillic_ZE : keysym = 0x6fa -let _Cyrillic_SHA : keysym = 0x6fb -let _Cyrillic_E : keysym = 0x6fc -let _Cyrillic_SHCHA : keysym = 0x6fd -let _Cyrillic_CHE : keysym = 0x6fe -let _Cyrillic_HARDSIGN : keysym = 0x6ff -let _Greek_ALPHAaccent : keysym = 0x7a1 -let _Greek_EPSILONaccent : keysym = 0x7a2 -let _Greek_ETAaccent : keysym = 0x7a3 -let _Greek_IOTAaccent : keysym = 0x7a4 -let _Greek_IOTAdiaeresis : keysym = 0x7a5 -let _Greek_OMICRONaccent : keysym = 0x7a7 -let _Greek_UPSILONaccent : keysym = 0x7a8 -let _Greek_UPSILONdieresis : keysym = 0x7a9 -let _Greek_OMEGAaccent : keysym = 0x7ab -let _Greek_accentdieresis : keysym = 0x7ae -let _Greek_horizbar : keysym = 0x7af -let _Greek_alphaaccent : keysym = 0x7b1 -let _Greek_epsilonaccent : keysym = 0x7b2 -let _Greek_etaaccent : keysym = 0x7b3 -let _Greek_iotaaccent : keysym = 0x7b4 -let _Greek_iotadieresis : keysym = 0x7b5 -let _Greek_iotaaccentdieresis : keysym = 0x7b6 -let _Greek_omicronaccent : keysym = 0x7b7 -let _Greek_upsilonaccent : keysym = 0x7b8 -let _Greek_upsilondieresis : keysym = 0x7b9 -let _Greek_upsilonaccentdieresis : keysym = 0x7ba -let _Greek_omegaaccent : keysym = 0x7bb -let _Greek_ALPHA : keysym = 0x7c1 -let _Greek_BETA : keysym = 0x7c2 -let _Greek_GAMMA : keysym = 0x7c3 -let _Greek_DELTA : keysym = 0x7c4 -let _Greek_EPSILON : keysym = 0x7c5 -let _Greek_ZETA : keysym = 0x7c6 -let _Greek_ETA : keysym = 0x7c7 -let _Greek_THETA : keysym = 0x7c8 -let _Greek_IOTA : keysym = 0x7c9 -let _Greek_KAPPA : keysym = 0x7ca -let _Greek_LAMDA : keysym = 0x7cb -let _Greek_LAMBDA : keysym = 0x7cb -let _Greek_MU : keysym = 0x7cc -let _Greek_NU : keysym = 0x7cd -let _Greek_XI : keysym = 0x7ce -let _Greek_OMICRON : keysym = 0x7cf -let _Greek_PI : keysym = 0x7d0 -let _Greek_RHO : keysym = 0x7d1 -let _Greek_SIGMA : keysym = 0x7d2 -let _Greek_TAU : keysym = 0x7d4 -let _Greek_UPSILON : keysym = 0x7d5 -let _Greek_PHI : keysym = 0x7d6 -let _Greek_CHI : keysym = 0x7d7 -let _Greek_PSI : keysym = 0x7d8 -let _Greek_OMEGA : keysym = 0x7d9 -let _Greek_alpha : keysym = 0x7e1 -let _Greek_beta : keysym = 0x7e2 -let _Greek_gamma : keysym = 0x7e3 -let _Greek_delta : keysym = 0x7e4 -let _Greek_epsilon : keysym = 0x7e5 -let _Greek_zeta : keysym = 0x7e6 -let _Greek_eta : keysym = 0x7e7 -let _Greek_theta : keysym = 0x7e8 -let _Greek_iota : keysym = 0x7e9 -let _Greek_kappa : keysym = 0x7ea -let _Greek_lamda : keysym = 0x7eb -let _Greek_lambda : keysym = 0x7eb -let _Greek_mu : keysym = 0x7ec -let _Greek_nu : keysym = 0x7ed -let _Greek_xi : keysym = 0x7ee -let _Greek_omicron : keysym = 0x7ef -let _Greek_pi : keysym = 0x7f0 -let _Greek_rho : keysym = 0x7f1 -let _Greek_sigma : keysym = 0x7f2 -let _Greek_finalsmallsigma : keysym = 0x7f3 -let _Greek_tau : keysym = 0x7f4 -let _Greek_upsilon : keysym = 0x7f5 -let _Greek_phi : keysym = 0x7f6 -let _Greek_chi : keysym = 0x7f7 -let _Greek_psi : keysym = 0x7f8 -let _Greek_omega : keysym = 0x7f9 -let _Greek_switch : keysym = 0xFF7E -let _leftradical : keysym = 0x8a1 -let _topleftradical : keysym = 0x8a2 -let _horizconnector : keysym = 0x8a3 -let _topintegral : keysym = 0x8a4 -let _botintegral : keysym = 0x8a5 -let _vertconnector : keysym = 0x8a6 -let _topleftsqbracket : keysym = 0x8a7 -let _botleftsqbracket : keysym = 0x8a8 -let _toprightsqbracket : keysym = 0x8a9 -let _botrightsqbracket : keysym = 0x8aa -let _topleftparens : keysym = 0x8ab -let _botleftparens : keysym = 0x8ac -let _toprightparens : keysym = 0x8ad -let _botrightparens : keysym = 0x8ae -let _leftmiddlecurlybrace : keysym = 0x8af -let _rightmiddlecurlybrace : keysym = 0x8b0 -let _topleftsummation : keysym = 0x8b1 -let _botleftsummation : keysym = 0x8b2 -let _topvertsummationconnector : keysym = 0x8b3 -let _botvertsummationconnector : keysym = 0x8b4 -let _toprightsummation : keysym = 0x8b5 -let _botrightsummation : keysym = 0x8b6 -let _rightmiddlesummation : keysym = 0x8b7 -let _lessthanequal : keysym = 0x8bc -let _notequal : keysym = 0x8bd -let _greaterthanequal : keysym = 0x8be -let _integral : keysym = 0x8bf -let _therefore : keysym = 0x8c0 -let _variation : keysym = 0x8c1 -let _infinity : keysym = 0x8c2 -let _nabla : keysym = 0x8c5 -let _approximate : keysym = 0x8c8 -let _similarequal : keysym = 0x8c9 -let _ifonlyif : keysym = 0x8cd -let _implies : keysym = 0x8ce -let _identical : keysym = 0x8cf -let _radical : keysym = 0x8d6 -let _includedin : keysym = 0x8da -let _includes : keysym = 0x8db -let _intersection : keysym = 0x8dc -let _union : keysym = 0x8dd -let _logicaland : keysym = 0x8de -let _logicalor : keysym = 0x8df -let _partialderivative : keysym = 0x8ef -let _function : keysym = 0x8f6 -let _leftarrow : keysym = 0x8fb -let _uparrow : keysym = 0x8fc -let _rightarrow : keysym = 0x8fd -let _downarrow : keysym = 0x8fe -let _blank : keysym = 0x9df -let _soliddiamond : keysym = 0x9e0 -let _checkerboard : keysym = 0x9e1 -let _ht : keysym = 0x9e2 -let _ff : keysym = 0x9e3 -let _cr : keysym = 0x9e4 -let _lf : keysym = 0x9e5 -let _nl : keysym = 0x9e8 -let _vt : keysym = 0x9e9 -let _lowrightcorner : keysym = 0x9ea -let _uprightcorner : keysym = 0x9eb -let _upleftcorner : keysym = 0x9ec -let _lowleftcorner : keysym = 0x9ed -let _crossinglines : keysym = 0x9ee -let _horizlinescan1 : keysym = 0x9ef -let _horizlinescan3 : keysym = 0x9f0 -let _horizlinescan5 : keysym = 0x9f1 -let _horizlinescan7 : keysym = 0x9f2 -let _horizlinescan9 : keysym = 0x9f3 -let _leftt : keysym = 0x9f4 -let _rightt : keysym = 0x9f5 -let _bott : keysym = 0x9f6 -let _topt : keysym = 0x9f7 -let _vertbar : keysym = 0x9f8 -let _emspace : keysym = 0xaa1 -let _enspace : keysym = 0xaa2 -let _em3space : keysym = 0xaa3 -let _em4space : keysym = 0xaa4 -let _digitspace : keysym = 0xaa5 -let _punctspace : keysym = 0xaa6 -let _thinspace : keysym = 0xaa7 -let _hairspace : keysym = 0xaa8 -let _emdash : keysym = 0xaa9 -let _endash : keysym = 0xaaa -let _signifblank : keysym = 0xaac -let _ellipsis : keysym = 0xaae -let _doubbaselinedot : keysym = 0xaaf -let _onethird : keysym = 0xab0 -let _twothirds : keysym = 0xab1 -let _onefifth : keysym = 0xab2 -let _twofifths : keysym = 0xab3 -let _threefifths : keysym = 0xab4 -let _fourfifths : keysym = 0xab5 -let _onesixth : keysym = 0xab6 -let _fivesixths : keysym = 0xab7 -let _careof : keysym = 0xab8 -let _figdash : keysym = 0xabb -let _leftanglebracket : keysym = 0xabc -let _decimalpoint : keysym = 0xabd -let _rightanglebracket : keysym = 0xabe -let _marker : keysym = 0xabf -let _oneeighth : keysym = 0xac3 -let _threeeighths : keysym = 0xac4 -let _fiveeighths : keysym = 0xac5 -let _seveneighths : keysym = 0xac6 -let _trademark : keysym = 0xac9 -let _signaturemark : keysym = 0xaca -let _trademarkincircle : keysym = 0xacb -let _leftopentriangle : keysym = 0xacc -let _rightopentriangle : keysym = 0xacd -let _emopencircle : keysym = 0xace -let _emopenrectangle : keysym = 0xacf -let _leftsinglequotemark : keysym = 0xad0 -let _rightsinglequotemark : keysym = 0xad1 -let _leftdoublequotemark : keysym = 0xad2 -let _rightdoublequotemark : keysym = 0xad3 -let _prescription : keysym = 0xad4 -let _minutes : keysym = 0xad6 -let _seconds : keysym = 0xad7 -let _latincross : keysym = 0xad9 -let _hexagram : keysym = 0xada -let _filledrectbullet : keysym = 0xadb -let _filledlefttribullet : keysym = 0xadc -let _filledrighttribullet : keysym = 0xadd -let _emfilledcircle : keysym = 0xade -let _emfilledrect : keysym = 0xadf -let _enopencircbullet : keysym = 0xae0 -let _enopensquarebullet : keysym = 0xae1 -let _openrectbullet : keysym = 0xae2 -let _opentribulletup : keysym = 0xae3 -let _opentribulletdown : keysym = 0xae4 -let _openstar : keysym = 0xae5 -let _enfilledcircbullet : keysym = 0xae6 -let _enfilledsqbullet : keysym = 0xae7 -let _filledtribulletup : keysym = 0xae8 -let _filledtribulletdown : keysym = 0xae9 -let _leftpointer : keysym = 0xaea -let _rightpointer : keysym = 0xaeb -let _club : keysym = 0xaec -let _diamond : keysym = 0xaed -let _heart : keysym = 0xaee -let _maltesecross : keysym = 0xaf0 -let _dagger : keysym = 0xaf1 -let _doubledagger : keysym = 0xaf2 -let _checkmark : keysym = 0xaf3 -let _ballotcross : keysym = 0xaf4 -let _musicalsharp : keysym = 0xaf5 -let _musicalflat : keysym = 0xaf6 -let _malesymbol : keysym = 0xaf7 -let _femalesymbol : keysym = 0xaf8 -let _telephone : keysym = 0xaf9 -let _telephonerecorder : keysym = 0xafa -let _phonographcopyright : keysym = 0xafb -let _caret : keysym = 0xafc -let _singlelowquotemark : keysym = 0xafd -let _doublelowquotemark : keysym = 0xafe -let _cursor : keysym = 0xaff -let _leftcaret : keysym = 0xba3 -let _rightcaret : keysym = 0xba6 -let _downcaret : keysym = 0xba8 -let _upcaret : keysym = 0xba9 -let _overbar : keysym = 0xbc0 -let _downtack : keysym = 0xbc2 -let _upshoe : keysym = 0xbc3 -let _downstile : keysym = 0xbc4 -let _underbar : keysym = 0xbc6 -let _jot : keysym = 0xbca -let _quad : keysym = 0xbcc -let _uptack : keysym = 0xbce -let _circle : keysym = 0xbcf -let _upstile : keysym = 0xbd3 -let _downshoe : keysym = 0xbd6 -let _rightshoe : keysym = 0xbd8 -let _leftshoe : keysym = 0xbda -let _lefttack : keysym = 0xbdc -let _righttack : keysym = 0xbfc -let _hebrew_doublelowline : keysym = 0xcdf -let _hebrew_aleph : keysym = 0xce0 -let _hebrew_bet : keysym = 0xce1 -let _hebrew_beth : keysym = 0xce1 -let _hebrew_gimel : keysym = 0xce2 -let _hebrew_gimmel : keysym = 0xce2 -let _hebrew_dalet : keysym = 0xce3 -let _hebrew_daleth : keysym = 0xce3 -let _hebrew_he : keysym = 0xce4 -let _hebrew_waw : keysym = 0xce5 -let _hebrew_zain : keysym = 0xce6 -let _hebrew_zayin : keysym = 0xce6 -let _hebrew_chet : keysym = 0xce7 -let _hebrew_het : keysym = 0xce7 -let _hebrew_tet : keysym = 0xce8 -let _hebrew_teth : keysym = 0xce8 -let _hebrew_yod : keysym = 0xce9 -let _hebrew_finalkaph : keysym = 0xcea -let _hebrew_kaph : keysym = 0xceb -let _hebrew_lamed : keysym = 0xcec -let _hebrew_finalmem : keysym = 0xced -let _hebrew_mem : keysym = 0xcee -let _hebrew_finalnun : keysym = 0xcef -let _hebrew_nun : keysym = 0xcf0 -let _hebrew_samech : keysym = 0xcf1 -let _hebrew_samekh : keysym = 0xcf1 -let _hebrew_ayin : keysym = 0xcf2 -let _hebrew_finalpe : keysym = 0xcf3 -let _hebrew_pe : keysym = 0xcf4 -let _hebrew_finalzade : keysym = 0xcf5 -let _hebrew_finalzadi : keysym = 0xcf5 -let _hebrew_zade : keysym = 0xcf6 -let _hebrew_zadi : keysym = 0xcf6 -let _hebrew_qoph : keysym = 0xcf7 -let _hebrew_kuf : keysym = 0xcf7 -let _hebrew_resh : keysym = 0xcf8 -let _hebrew_shin : keysym = 0xcf9 -let _hebrew_taw : keysym = 0xcfa -let _hebrew_taf : keysym = 0xcfa -let _Hebrew_switch : keysym = 0xFF7E -let _Thai_kokai : keysym = 0xda1 -let _Thai_khokhai : keysym = 0xda2 -let _Thai_khokhuat : keysym = 0xda3 -let _Thai_khokhwai : keysym = 0xda4 -let _Thai_khokhon : keysym = 0xda5 -let _Thai_khorakhang : keysym = 0xda6 -let _Thai_ngongu : keysym = 0xda7 -let _Thai_chochan : keysym = 0xda8 -let _Thai_choching : keysym = 0xda9 -let _Thai_chochang : keysym = 0xdaa -let _Thai_soso : keysym = 0xdab -let _Thai_chochoe : keysym = 0xdac -let _Thai_yoying : keysym = 0xdad -let _Thai_dochada : keysym = 0xdae -let _Thai_topatak : keysym = 0xdaf -let _Thai_thothan : keysym = 0xdb0 -let _Thai_thonangmontho : keysym = 0xdb1 -let _Thai_thophuthao : keysym = 0xdb2 -let _Thai_nonen : keysym = 0xdb3 -let _Thai_dodek : keysym = 0xdb4 -let _Thai_totao : keysym = 0xdb5 -let _Thai_thothung : keysym = 0xdb6 -let _Thai_thothahan : keysym = 0xdb7 -let _Thai_thothong : keysym = 0xdb8 -let _Thai_nonu : keysym = 0xdb9 -let _Thai_bobaimai : keysym = 0xdba -let _Thai_popla : keysym = 0xdbb -let _Thai_phophung : keysym = 0xdbc -let _Thai_fofa : keysym = 0xdbd -let _Thai_phophan : keysym = 0xdbe -let _Thai_fofan : keysym = 0xdbf -let _Thai_phosamphao : keysym = 0xdc0 -let _Thai_moma : keysym = 0xdc1 -let _Thai_yoyak : keysym = 0xdc2 -let _Thai_rorua : keysym = 0xdc3 -let _Thai_ru : keysym = 0xdc4 -let _Thai_loling : keysym = 0xdc5 -let _Thai_lu : keysym = 0xdc6 -let _Thai_wowaen : keysym = 0xdc7 -let _Thai_sosala : keysym = 0xdc8 -let _Thai_sorusi : keysym = 0xdc9 -let _Thai_sosua : keysym = 0xdca -let _Thai_hohip : keysym = 0xdcb -let _Thai_lochula : keysym = 0xdcc -let _Thai_oang : keysym = 0xdcd -let _Thai_honokhuk : keysym = 0xdce -let _Thai_paiyannoi : keysym = 0xdcf -let _Thai_saraa : keysym = 0xdd0 -let _Thai_maihanakat : keysym = 0xdd1 -let _Thai_saraaa : keysym = 0xdd2 -let _Thai_saraam : keysym = 0xdd3 -let _Thai_sarai : keysym = 0xdd4 -let _Thai_saraii : keysym = 0xdd5 -let _Thai_saraue : keysym = 0xdd6 -let _Thai_sarauee : keysym = 0xdd7 -let _Thai_sarau : keysym = 0xdd8 -let _Thai_sarauu : keysym = 0xdd9 -let _Thai_phinthu : keysym = 0xdda -let _Thai_maihanakat_maitho : keysym = 0xdde -let _Thai_baht : keysym = 0xddf -let _Thai_sarae : keysym = 0xde0 -let _Thai_saraae : keysym = 0xde1 -let _Thai_sarao : keysym = 0xde2 -let _Thai_saraaimaimuan : keysym = 0xde3 -let _Thai_saraaimaimalai : keysym = 0xde4 -let _Thai_lakkhangyao : keysym = 0xde5 -let _Thai_maiyamok : keysym = 0xde6 -let _Thai_maitaikhu : keysym = 0xde7 -let _Thai_maiek : keysym = 0xde8 -let _Thai_maitho : keysym = 0xde9 -let _Thai_maitri : keysym = 0xdea -let _Thai_maichattawa : keysym = 0xdeb -let _Thai_thanthakhat : keysym = 0xdec -let _Thai_nikhahit : keysym = 0xded -let _Thai_leksun : keysym = 0xdf0 -let _Thai_leknung : keysym = 0xdf1 -let _Thai_leksong : keysym = 0xdf2 -let _Thai_leksam : keysym = 0xdf3 -let _Thai_leksi : keysym = 0xdf4 -let _Thai_lekha : keysym = 0xdf5 -let _Thai_lekhok : keysym = 0xdf6 -let _Thai_lekchet : keysym = 0xdf7 -let _Thai_lekpaet : keysym = 0xdf8 -let _Thai_lekkao : keysym = 0xdf9 -let _Hangul : keysym = 0xff31 -let _Hangul_Start : keysym = 0xff32 -let _Hangul_End : keysym = 0xff33 -let _Hangul_Hanja : keysym = 0xff34 -let _Hangul_Jamo : keysym = 0xff35 -let _Hangul_Romaja : keysym = 0xff36 -let _Hangul_Codeinput : keysym = 0xff37 -let _Hangul_Jeonja : keysym = 0xff38 -let _Hangul_Banja : keysym = 0xff39 -let _Hangul_PreHanja : keysym = 0xff3a -let _Hangul_PostHanja : keysym = 0xff3b -let _Hangul_SingleCandidate : keysym = 0xff3c -let _Hangul_MultipleCandidate : keysym = 0xff3d -let _Hangul_PreviousCandidate : keysym = 0xff3e -let _Hangul_Special : keysym = 0xff3f -let _Hangul_switch : keysym = 0xFF7E -let _Hangul_Kiyeog : keysym = 0xea1 -let _Hangul_SsangKiyeog : keysym = 0xea2 -let _Hangul_KiyeogSios : keysym = 0xea3 -let _Hangul_Nieun : keysym = 0xea4 -let _Hangul_NieunJieuj : keysym = 0xea5 -let _Hangul_NieunHieuh : keysym = 0xea6 -let _Hangul_Dikeud : keysym = 0xea7 -let _Hangul_SsangDikeud : keysym = 0xea8 -let _Hangul_Rieul : keysym = 0xea9 -let _Hangul_RieulKiyeog : keysym = 0xeaa -let _Hangul_RieulMieum : keysym = 0xeab -let _Hangul_RieulPieub : keysym = 0xeac -let _Hangul_RieulSios : keysym = 0xead -let _Hangul_RieulTieut : keysym = 0xeae -let _Hangul_RieulPhieuf : keysym = 0xeaf -let _Hangul_RieulHieuh : keysym = 0xeb0 -let _Hangul_Mieum : keysym = 0xeb1 -let _Hangul_Pieub : keysym = 0xeb2 -let _Hangul_SsangPieub : keysym = 0xeb3 -let _Hangul_PieubSios : keysym = 0xeb4 -let _Hangul_Sios : keysym = 0xeb5 -let _Hangul_SsangSios : keysym = 0xeb6 -let _Hangul_Ieung : keysym = 0xeb7 -let _Hangul_Jieuj : keysym = 0xeb8 -let _Hangul_SsangJieuj : keysym = 0xeb9 -let _Hangul_Cieuc : keysym = 0xeba -let _Hangul_Khieuq : keysym = 0xebb -let _Hangul_Tieut : keysym = 0xebc -let _Hangul_Phieuf : keysym = 0xebd -let _Hangul_Hieuh : keysym = 0xebe -let _Hangul_A : keysym = 0xebf -let _Hangul_AE : keysym = 0xec0 -let _Hangul_YA : keysym = 0xec1 -let _Hangul_YAE : keysym = 0xec2 -let _Hangul_EO : keysym = 0xec3 -let _Hangul_E : keysym = 0xec4 -let _Hangul_YEO : keysym = 0xec5 -let _Hangul_YE : keysym = 0xec6 -let _Hangul_O : keysym = 0xec7 -let _Hangul_WA : keysym = 0xec8 -let _Hangul_WAE : keysym = 0xec9 -let _Hangul_OE : keysym = 0xeca -let _Hangul_YO : keysym = 0xecb -let _Hangul_U : keysym = 0xecc -let _Hangul_WEO : keysym = 0xecd -let _Hangul_WE : keysym = 0xece -let _Hangul_WI : keysym = 0xecf -let _Hangul_YU : keysym = 0xed0 -let _Hangul_EU : keysym = 0xed1 -let _Hangul_YI : keysym = 0xed2 -let _Hangul_I : keysym = 0xed3 -let _Hangul_J_Kiyeog : keysym = 0xed4 -let _Hangul_J_SsangKiyeog : keysym = 0xed5 -let _Hangul_J_KiyeogSios : keysym = 0xed6 -let _Hangul_J_Nieun : keysym = 0xed7 -let _Hangul_J_NieunJieuj : keysym = 0xed8 -let _Hangul_J_NieunHieuh : keysym = 0xed9 -let _Hangul_J_Dikeud : keysym = 0xeda -let _Hangul_J_Rieul : keysym = 0xedb -let _Hangul_J_RieulKiyeog : keysym = 0xedc -let _Hangul_J_RieulMieum : keysym = 0xedd -let _Hangul_J_RieulPieub : keysym = 0xede -let _Hangul_J_RieulSios : keysym = 0xedf -let _Hangul_J_RieulTieut : keysym = 0xee0 -let _Hangul_J_RieulPhieuf : keysym = 0xee1 -let _Hangul_J_RieulHieuh : keysym = 0xee2 -let _Hangul_J_Mieum : keysym = 0xee3 -let _Hangul_J_Pieub : keysym = 0xee4 -let _Hangul_J_PieubSios : keysym = 0xee5 -let _Hangul_J_Sios : keysym = 0xee6 -let _Hangul_J_SsangSios : keysym = 0xee7 -let _Hangul_J_Ieung : keysym = 0xee8 -let _Hangul_J_Jieuj : keysym = 0xee9 -let _Hangul_J_Cieuc : keysym = 0xeea -let _Hangul_J_Khieuq : keysym = 0xeeb -let _Hangul_J_Tieut : keysym = 0xeec -let _Hangul_J_Phieuf : keysym = 0xeed -let _Hangul_J_Hieuh : keysym = 0xeee -let _Hangul_RieulYeorinHieuh : keysym = 0xeef -let _Hangul_SunkyeongeumMieum : keysym = 0xef0 -let _Hangul_SunkyeongeumPieub : keysym = 0xef1 -let _Hangul_PanSios : keysym = 0xef2 -let _Hangul_KkogjiDalrinIeung : keysym = 0xef3 -let _Hangul_SunkyeongeumPhieuf : keysym = 0xef4 -let _Hangul_YeorinHieuh : keysym = 0xef5 -let _Hangul_AraeA : keysym = 0xef6 -let _Hangul_AraeAE : keysym = 0xef7 -let _Hangul_J_PanSios : keysym = 0xef8 -let _Hangul_J_KkogjiDalrinIeung : keysym = 0xef9 -let _Hangul_J_YeorinHieuh : keysym = 0xefa -let _Korean_Won : keysym = 0xeff diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk_tags.var b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk_tags.var deleted file mode 100644 index a443fc039..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk_tags.var +++ /dev/null @@ -1,165 +0,0 @@ -(* $Id$ *) - -exception ml_raise_gdk - -type gdkEventType = "GDK_" - [ `NOTHING | `DELETE | `DESTROY | `EXPOSE | `MOTION_NOTIFY | `BUTTON_PRESS - | `TWO_BUTTON_PRESS "GDK_2BUTTON_PRESS" - | `THREE_BUTTON_PRESS "GDK_3BUTTON_PRESS" - | `BUTTON_RELEASE | `KEY_PRESS - | `KEY_RELEASE | `ENTER_NOTIFY | `LEAVE_NOTIFY | `FOCUS_CHANGE - | `CONFIGURE | `MAP | `UNMAP | `PROPERTY_NOTIFY | `SELECTION_CLEAR - | `SELECTION_REQUEST | `SELECTION_NOTIFY | `PROXIMITY_IN - | `PROXIMITY_OUT - | `DRAG_ENTER | `DRAG_LEAVE | `DRAG_MOTION | `DRAG_STATUS - | `DROP_START | `DROP_FINISHED | `CLIENT_EVENT | `VISIBILITY_NOTIFY - | `NO_EXPOSE ] - -type event_mask = "GDK_" - [ `EXPOSURE - | `POINTER_MOTION | `POINTER_MOTION_HINT - | `BUTTON_MOTION | `BUTTON1_MOTION | `BUTTON2_MOTION | `BUTTON3_MOTION - | `BUTTON_PRESS | `BUTTON_RELEASE - | `KEY_PRESS | `KEY_RELEASE - | `ENTER_NOTIFY | `LEAVE_NOTIFY | `FOCUS_CHANGE - | `STRUCTURE | `PROPERTY_CHANGE | `VISIBILITY_NOTIFY - | `PROXIMITY_IN | `PROXIMITY_OUT | `SUBSTRUCTURE - | `ALL_EVENTS ] "_MASK" - -type public extension_events = "GDK_EXTENSION_EVENTS_" - [ `NONE | `ALL | `CURSOR ] - -type gdkVisibilityState = "GDK_VISIBILITY_" - [ `UNOBSCURED | `PARTIAL | `FULLY_OBSCURED ] - -type gdkInputSource = "GDK_SOURCE_" - [ `MOUSE | `PEN | `ERASER | `CURSOR ] - -type gdkCrossingMode = "GDK_CROSSING_" - [ `NORMAL | `GRAB | `UNGRAB ] - -type gdkNotifyType = "GDK_NOTIFY_" - [ `ANCESTOR | `VIRTUAL | `INFERIOR | `NONLINEAR | `NONLINEAR_VIRTUAL - | `UNKNOWN ] - -type gdkFillRule = "GDK_" - [ `EVEN_ODD_RULE | `WINDING_RULE ] - -type gdkOverlapType = "GDK_OVERLAP_RECTANGLE_" - [ `IN | `OUT | `PART ] - -type gdkFunction = "GDK_" - [ `COPY | `INVERT | `XOR ] - -type gdkFill = "GDK_" - [ `SOLID | `TILED | `STIPPLED | `OPAQUE_STIPPLED ] - -type gdkSubwindowMode = "GDK_" - [ `CLIP_BY_CHILDREN | `INCLUDE_INFERIORS ] - -type gdkLineStyle = "GDK_LINE_" - [ `SOLID | `ON_OFF_DASH | `DOUBLE_DASH ] - -type gdkCapStyle = "GDK_CAP_" - [ `NOT_LAST | `BUTT | `ROUND | `PROJECTING ] - -type gdkJoinStyle = "GDK_JOIN_" - [ `MITER | `ROUND | `BEVEL ] - -type gdkModifier = "GDK_" - [ `SHIFT | `LOCK | `CONTROL | `MOD1 | `MOD2 | `MOD3 | `MOD4 | `MOD5 - | `BUTTON1 | `BUTTON2 | `BUTTON3 | `BUTTON4 | `BUTTON5 ] "_MASK" - -type gdkImageType = "GDK_IMAGE_" - [ `NORMAL | `SHARED | `FASTEST ] - -type gdkVisualType = "GDK_VISUAL_" - [ `STATIC_GRAY | `GRAYSCALE | `STATIC_COLOR | `PSEUDO_COLOR - | `TRUE_COLOR | `DIRECT_COLOR ] - -type gdkFontType = "GDK_FONT_" - [ `FONT | `FONTSET ] - -type gdkDragAction = "GDK_ACTION_" - [ `DEFAULT | `COPY | `MOVE | `LINK | `PRIVATE | `ASK ] - -type gdkCursorType = "GDK_" [ - | `NUM_GLYPHS - | `X_CURSOR - | `ARROW - | `BASED_ARROW_DOWN - | `BASED_ARROW_UP - | `BOAT - | `BOGOSITY - | `BOTTOM_LEFT_CORNER - | `BOTTOM_RIGHT_CORNER - | `BOTTOM_SIDE - | `BOTTOM_TEE - | `BOX_SPIRAL - | `CENTER_PTR - | `CIRCLE - | `CLOCK - | `COFFEE_MUG - | `CROSS - | `CROSS_REVERSE - | `CROSSHAIR - | `DIAMOND_CROSS - | `DOT - | `DOTBOX - | `DOUBLE_ARROW - | `DRAFT_LARGE - | `DRAFT_SMALL - | `DRAPED_BOX - | `EXCHANGE - | `FLEUR - | `GOBBLER - | `GUMBY - | `HAND1 - | `HAND2 - | `HEART - | `ICON - | `IRON_CROSS - | `LEFT_PTR - | `LEFT_SIDE - | `LEFT_TEE - | `LEFTBUTTON - | `LL_ANGLE - | `LR_ANGLE - | `MAN - | `MIDDLEBUTTON - | `MOUSE - | `PENCIL - | `PIRATE - | `PLUS - | `QUESTION_ARROW - | `RIGHT_PTR - | `RIGHT_SIDE - | `RIGHT_TEE - | `RIGHTBUTTON - | `RTL_LOGO - | `SAILBOAT - | `SB_DOWN_ARROW - | `SB_H_DOUBLE_ARROW - | `SB_LEFT_ARROW - | `SB_RIGHT_ARROW - | `SB_UP_ARROW - | `SB_V_DOUBLE_ARROW - | `SHUTTLE - | `SIZING - | `SPIDER - | `SPRAYCAN - | `STAR - | `TARGET - | `TCROSS - | `TOP_LEFT_ARROW - | `TOP_LEFT_CORNER - | `TOP_RIGHT_CORNER - | `TOP_SIDE - | `TOP_TEE - | `TREK - | `UL_ANGLE - | `UMBRELLA - | `UR_ANGLE - | `WATCH - | `XTERM - ] diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.ml deleted file mode 100644 index c7020a4fd..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.ml +++ /dev/null @@ -1,86 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk - -type visual_options = [ - | `USE_GL - | `BUFFER_SIZE of int - | `LEVEL of int - | `RGBA - | `DOUBLEBUFFER - | `STEREO - | `AUX_BUFFERS of int - | `RED_SIZE of int - | `GREEN_SIZE of int - | `BLUE_SIZE of int - | `ALPHA_SIZE of int - | `DEPTH_SIZE of int - | `STENCIL_SIZE of int - | `ACCUM_GREEN_SIZE of int - | `ACCUM_ALPHA_SIZE of int -] - -type gl_area = [`widget|`drawing|`glarea] - -module Raw = struct - external create : - visual_options list -> share:[>`glarea] optobj -> gl_area obj - = "ml_gtk_gl_area_new" - - external swap_buffers : [>`glarea] obj -> unit - = "ml_gtk_gl_area_swapbuffers" - - external make_current : [>`glarea] obj -> bool - = "ml_gtk_gl_area_make_current" -end - -class area_signals obj = -object (connect) - inherit GObj.widget_signals obj - method display ~callback = - (new GObj.event_signals ~after obj)#expose ~callback: - begin fun ev -> - if GdkEvent.Expose.count ev = 0 then - if Raw.make_current obj then callback () - else prerr_endline "GlGtk-WARNING **: could not make current"; - true - end - method reshape ~callback = - (new GObj.event_signals ~after obj)#configure ~callback: - begin fun ev -> - if Raw.make_current obj then begin - callback ~width:(GdkEvent.Configure.width ev) - ~height:(GdkEvent.Configure.height ev) - end - else prerr_endline "GlGtk-WARNING **: could not make current"; - true - end - method realize ~callback = - let connect = new GObj.misc_signals ~after (GtkBase.Widget.coerce obj) in - connect#realize ~callback: - begin fun ev -> - if Raw.make_current obj then callback () - else prerr_endline "GlGtk-WARNING **: could not make current" - end -end - -class area obj = object (self) - inherit GObj.widget (obj : gl_area obj) - method as_area = obj - method event = new GObj.event_ops obj - method connect = new area_signals obj - method set_size = GtkMisc.DrawingArea.size obj - method swap_buffers () = Raw.swap_buffers obj - method make_current () = - if not (Raw.make_current obj) then - raise (Gl.GLerror "make_current") -end - -let area options ?share ?(width=0) ?(height=0) ?packing ?show () = - let share = - match share with Some (x : area) -> Some x#as_area | None -> None in - let w = Raw.create options ~share:(Gpointer.optboxed share) in - if width <> 0 || height <> 0 then GtkMisc.DrawingArea.size w ~width ~height; - GtkBase.Widget.add_events w [`EXPOSURE]; - GObj.pack_return (new area w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.mli deleted file mode 100644 index 599f24a09..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.mli +++ /dev/null @@ -1,63 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj - -type visual_options = [ - `USE_GL - | `BUFFER_SIZE of int - | `LEVEL of int - | `RGBA - | `DOUBLEBUFFER - | `STEREO - | `AUX_BUFFERS of int - | `RED_SIZE of int - | `GREEN_SIZE of int - | `BLUE_SIZE of int - | `ALPHA_SIZE of int - | `DEPTH_SIZE of int - | `STENCIL_SIZE of int - | `ACCUM_GREEN_SIZE of int - | `ACCUM_ALPHA_SIZE of int -] -type gl_area = [`widget|`drawing|`glarea] - -module Raw : - sig - external create : - visual_options list -> share:[>`glarea] optobj -> gl_area obj - = "ml_gtk_gl_area_new" - external swap_buffers : [>`glarea] obj -> unit - = "ml_gtk_gl_area_swapbuffers" - external make_current : [>`glarea] obj -> bool - = "ml_gtk_gl_area_make_current" - end - -class area_signals : 'a obj -> - object - inherit widget_signals - constraint 'a = [>`glarea|`widget] - val obj : 'a obj - method display : callback:(unit -> unit) -> GtkSignal.id - method realize : callback:(unit -> unit) -> GtkSignal.id - method reshape : - callback:(width:int -> height:int -> unit) -> GtkSignal.id - end - -class area : gl_area obj -> - object - inherit widget - val obj : gl_area obj - method event : event_ops - method as_area : gl_area obj - method connect : area_signals - method make_current : unit -> unit - method set_size : width:int -> height:int -> unit - method swap_buffers : unit -> unit - end - -val area : - visual_options list -> - ?share:area -> - ?width:int -> - ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> area diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glib.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glib.ml deleted file mode 100644 index 2fd014099..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glib.ml +++ /dev/null @@ -1,21 +0,0 @@ -(* $Id$ *) - -type warning_func = string -> unit - -external set_warning_handler : (string -> unit) -> warning_func - = "ml_g_set_warning_handler" - -type print_func = string -> unit - -external set_print_handler : (string -> unit) -> print_func - = "ml_g_set_print_handler" - -module Main = struct - type t - external create : bool -> t = "ml_g_main_new" - external iteration : bool -> bool = "ml_g_main_iteration" - external pending : unit -> bool = "ml_g_main_pending" - external is_running : t -> bool = "ml_g_main_is_running" - external quit : t -> unit = "ml_g_main_quit" - external destroy : t -> unit = "ml_g_main_destroy" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gpointer.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gpointer.ml deleted file mode 100644 index 7d28a1f9d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gpointer.ml +++ /dev/null @@ -1,41 +0,0 @@ -(* $Id$ *) - -(* marked pointers *) -type 'a optaddr - -let optaddr : 'a option -> 'a optaddr = - function - None -> Obj.magic 0 - | Some x -> Obj.magic x - -(* naked pointers *) -type optstring - -external get_null : unit -> optstring = "ml_get_null" -let raw_null = get_null () - -let optstring : string option -> optstring = - function - None -> raw_null - | Some x -> Obj.magic x - -(* boxed pointers *) -type boxed -let boxed_null : boxed = Obj.magic (0, raw_null) - -type 'a optboxed - -let optboxed : 'a option -> 'a optboxed = - function - None -> Obj.magic boxed_null - | Some obj -> Obj.magic obj - -let may_box ~f obj : 'a optboxed = - match obj with - None -> Obj.magic boxed_null - | Some obj -> Obj.magic (f obj : 'a) - -(* Exceptions *) - -exception Null -let _ = Callback.register_exception "null_pointer" Null diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk.ml deleted file mode 100644 index 0c7892e6f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk.ml +++ /dev/null @@ -1,158 +0,0 @@ -(* $Id$ *) - -exception Error of string -exception Warning of string -exception Cannot_cast of string * string -type 'a obj -type 'a optobj = 'a obj Gpointer.optboxed -type clampf = float - -module Tags = struct - type arrow_type = [ `UP|`DOWN|`LEFT|`RIGHT ] - type attach_options = [ `EXPAND|`SHRINK|`FILL ] - type direction_type = [ `TAB_FORWARD|`TAB_BACKWARD|`UP|`DOWN|`LEFT|`RIGHT ] - type justification = [ `LEFT|`RIGHT|`CENTER|`FILL ] - type match_type = [ `ALL|`ALL_TAIL|`HEAD|`TAIL|`EXACT|`LAST ] - type metric_type = [ `PIXELS|`INCHES|`CENTIMETERS ] - type orientation = [ `HORIZONTAL|`VERTICAL ] - type corner_type = [ `TOP_LEFT|`BOTTOM_LEFT|`TOP_RIGHT|`BOTTOM_RIGHT ] - type pack_type = [ `START|`END ] - type path_type = [ `WIDGET|`WIDGET_CLASS|`CLASS ] - type policy_type = [ `ALWAYS|`AUTOMATIC|`NEVER ] - type position = [ `LEFT|`RIGHT|`TOP|`BOTTOM ] - type preview_type = [ `COLOR|`GRAYSCALE ] - type relief_style = [ `NORMAL|`HALF|`NONE ] - type resize_mode = [ `PARENT|`QUEUE|`IMMEDIATE ] - type signal_run_type = [ `FIRST|`LAST|`BOTH|`NO_RECURSE|`ACTION|`NO_HOOKS ] - type scroll_type = - [ `NONE|`STEP_FORWARD|`STEP_BACKWARD|`PAGE_BACKWARD|`PAGE_FORWARD|`JUMP ] - type selection_mode = [ `SINGLE|`BROWSE|`MULTIPLE|`EXTENDED ] - type shadow_type = [ `NONE|`IN|`OUT|`ETCHED_IN|`ETCHED_OUT ] - type state_type = [ `NORMAL|`ACTIVE|`PRELIGHT|`SELECTED|`INSENSITIVE ] - type submenu_direction = [ `LEFT|`RIGHT ] - type submenu_placement = [ `TOP_BOTTOM|`LEFT_RIGHT ] - type toolbar_style = [ `ICONS|`TEXT|`BOTH ] - type trough_type = [ `NONE|`START|`END|`JUMP ] - type update_type = [ `CONTINUOUS|`DISCONTINUOUS|`DELAYED ] - type visibility = [ `NONE|`PARTIAL|`FULL ] - type window_position = [ `NONE|`CENTER|`MOUSE|`CENTER_ALWAYS ] - type window_type = [ `TOPLEVEL|`DIALOG|`POPUP ] - type sort_type = [ `ASCENDING|`DESCENDING ] - type fundamental_type = - [ `INVALID|`NONE|`CHAR|`BOOL|`INT|`UINT|`LONG|`ULONG|`FLOAT|`DOUBLE - |`STRING|`ENUM|`FLAGS|`BOXED|`FOREIGN|`CALLBACK|`ARGS|`POINTER - |`SIGNAL|`C_CALLBACK|`OBJECT ] - - type accel_flag = [ `VISIBLE|`SIGNAL_VISIBLE|`LOCKED ] - type button_box_style = [ `DEFAULT_STYLE|`SPREAD|`EDGE|`START|`END ] - type expand_type = [ `X|`Y|`BOTH|`NONE ] - type packer_options = [ `PACK_EXPAND|`FILL_X|`FILL_Y ] - type side_type = [ `TOP|`BOTTOM|`LEFT|`RIGHT ] - type anchor_type = [ `CENTER|`NORTH|`NW|`NE|`SOUTH|`SW|`SE|`WEST|`EAST ] - type update_policy = [ `ALWAYS|`IF_VALID|`SNAP_TO_TICKS ] - type cell_type = [ `EMPTY|`TEXT|`PIXMAP|`PIXTEXT|`WIDGET ] - type button_action = [ `SELECTS|`DRAGS|`EXPANDS ] - type calendar_display_options = - [ `SHOW_HEADING|`SHOW_DAY_NAMES|`NO_MONTH_CHANGE|`SHOW_WEEK_NUMBERS - |`WEEK_START_MONDAY ] - type spin_button_update_policy = [ `ALWAYS|`IF_VALID ] - type spin_type = - [ `STEP_FORWARD|`STEP_BACKWARD|`PAGE_FORWARD|`PAGE_BACKWARD - |`HOME|`END|`USER_DEFINED of float ] - type progress_bar_style = [ `CONTINUOUS|`DISCRETE ] - type progress_bar_orientation = - [ `LEFT_TO_RIGHT|`RIGHT_TO_LEFT|`BOTTOM_TO_TOP|`TOP_TO_BOTTOM ] - type dest_defaults = [ `MOTION|`HIGHLIGHT|`DROP|`ALL ] - type target_flags = [ `SAME_APP|`SAME_WIDGET ] - type font_metric_type = [ `PIXELS|`POINTS ] - type font_type = [ `BITMAP|`SCALABLE|`SCALABLE_BITMAP|`ALL ] - type font_filter_type = [ `BASE|`USER ] -end -open Tags - -type gtk_type -type gtk_class - -type accel_group - -type style -type 'a group = 'a obj option - -type statusbar_message -type statusbar_context - -type color = { red: float; green: float; blue: float; opacity: float } -type rectangle = { x: int; y: int; width: int; height: int } -type target_entry = { target: string; flags: target_flags list; info: int } - -type data = [`data] -type adjustment = [`data|`adjustment] -type tooltips = [`data|`tooltips] -type widget = [`widget] -type container = [`widget|`container] -type alignment = [`widget|`container|`bin|`alignment] -type event_box = [`widget|`container|`bin|`eventbox] -type frame = [`widget|`container|`bin|`frame] -type aspect_frame = [`widget|`container|`bin|`frame|`aspect] -type handle_box = [`widget|`container|`bin|`handlebox] -type invisible = [`widget|`container|`bin|`invisible] -type item = [`widget|`container|`bin|`item] -type list_item = [`widget|`container|`bin|`item|`listitem] -type menu_item = [`widget|`container|`bin|`item|`menuitem] -type check_menu_item = [`widget|`container|`bin|`item|`menuitem|`checkmenuitem] -type radio_menu_item = - [`widget|`container|`bin|`item|`menuitem|`checkmenuitem|`radiomenuitem] -type tree_item = [`widget|`container|`bin|`item|`treeitem] -type viewport = [`widget|`container|`bin|`viewport] -type window = [`widget|`container|`bin|`window] -type color_selection_dialog = [`widget|`container|`window|`colorseldialog] -type dialog = [`widget|`container|`bin|`window|`dialog] -type input_dialog = [`widget|`container|`bin|`window|`dialog|`inputdialog] -type file_selection = [`widget|`container|`bin|`window|`filesel] -type font_selection_dialog = [`widget|`container|`bin|`window|`fontseldialog] -type plug = [`widget|`container|`bin|`window|`plug] -type box = [`widget|`container|`box] -type button_box = [`widget|`container|`box|`bbox] -type gamma_curve = [`widget|`container|`bbox|`gamma] -type color_selection = [`widget|`container|`box|`colorsel] -type combo = [`widget|`container|`box|`combo] -type statusbar = [`widget|`container|`box|`statusbar] -type button = [`widget|`container|`button] -type toggle_button = [`widget|`container|`button|`toggle] -type radio_button = [`widget|`container|`button|`toggle|`radio] -type option_menu = [`widget|`container|`button|`optionmenu] -type clist = [`widget|`container|`clist] -type fixed = [`widget|`container|`fixed] -type layout = [`widget|`container|`layout] -type liste = [`widget|`container|`list] -type menu_shell = [`widget|`container|`menushell] -type menu = [`widget|`container|`menushell|`menu] -type menu_bar = [`widget|`container|`menushell|`menubar] -type notebook = [`widget|`container|`notebook] -type font_selection = [`widget|`container|`notebook|`fontsel] -type packer = [`widget|`container|`packer] -type paned = [`widget|`container|`paned] -type scrolled_window = [`widget|`container|`scrolled] -type socket = [`widget|`container|`socket] -type table = [`widget|`container|`table] -type toolbar = [`widget|`container|`toolbar] -type tree = [`widget|`container|`tree] -type calendar = [`widget|`calendar] -type drawing_area = [`widget|`drawing] -type editable = [`widget|`editable] -type entry = [`widget|`editable|`entry] -type spin_button = [`widget|`editable|`entry|`spinbutton] -type text = [`widget|`editable|`text] -type misc = [`widget|`misc] -type arrow = [`widget|`misc|`arrow] -type image = [`widget|`misc|`image] -type label = [`widget|`misc|`label] -type tips_query = [`widget|`misc|`label|`tipsquery] -type pixmap = [`widget|`misc|`pixmap] -type progress = [`widget|`progress] -type progress_bar = [`widget|`progress|`progressbar] -type range = [`widget|`range] -type scale = [`widget|`range|`scale] -type scrollbar = [`widget|`range|`scrollbar] -type ruler = [`widget|`ruler] -type separator = [`widget|`separator] diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkArgv.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkArgv.ml deleted file mode 100644 index 5e60c8d5e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkArgv.ml +++ /dev/null @@ -1,106 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk - -type data = - | NONE - | CHAR of char - | BOOL of bool - | INT of int - | FLOAT of float - | STRING of string option - | OBJECT of unit obj option - | POINTER of Gpointer.boxed option - -type 'a result = - [ `NONE - | `CHAR of char | `BOOL of bool | `INT of int - | `UINT of int32 | `LONG of nativeint | `ULONG of nativeint - | `FLOAT of float | `DOUBLE of float - | `STRING of string option | `ENUM of int | `FLAGS of int32 - | `BOXED of Gpointer.boxed option - | `POINTER of Gpointer.boxed option - | `OBJECT of 'a obj option ] - -module Arg = struct - type t - external shift : t -> pos:int -> t = "ml_gtk_arg_shift" - external get_type : t -> gtk_type = "ml_gtk_arg_get_type" - external get : t -> data = "ml_gtk_arg_get" - external set_retloc : t -> 'a result -> unit = "ml_gtk_arg_set_retloc" - external get_pointer : t -> Gpointer.boxed = "ml_gtk_arg_get_pointer" - external get_nativeint : t -> nativeint = "ml_gtk_arg_get_nativeint" - - (* Safely get an argument *) - (* - external get_char : t -> char = "ml_gtk_arg_get_char" - external get_bool : t -> bool = "ml_gtk_arg_get_bool" - external get_int : t -> int = "ml_gtk_arg_get_int" - external get_float : t -> float = "ml_gtk_arg_get_float" - external get_string : t -> string option = "ml_gtk_arg_get_string" - external get_object : t -> unit obj option = "ml_gtk_arg_get_object" - *) - (* Safely set a result - Beware: this is not the opposite of get, arguments and results - are two different ways to use GtkArg. *) - (* - external set_char : t -> char -> unit = "ml_gtk_arg_set_char" - external set_bool : t -> bool -> unit = "ml_gtk_arg_set_bool" - external set_int : t -> int -> unit = "ml_gtk_arg_set_int" - external set_nativeint : t -> nativeint -> unit = "ml_gtk_arg_set_nativeint" - external set_float : t -> float -> unit = "ml_gtk_arg_set_float" - external set_string : t -> string -> unit = "ml_gtk_arg_set_string" - external set_pointer : t -> Gpointer.boxed -> unit = "ml_gtk_arg_set_pointer" - external set_object : t -> 'a obj -> unit = "ml_gtk_arg_set_object" - *) -end - -open Arg -type raw_obj -type t = { referent: raw_obj; nargs: int; args: Arg.t } -let nth arg ~pos = - if pos < 0 || pos >= arg.nargs then invalid_arg "GtkArg.Vect.nth"; - shift arg.args ~pos -let result arg = - if arg.nargs < 0 then invalid_arg "GtkArgv.result"; - shift arg.args ~pos:arg.nargs -external wrap_object : raw_obj -> unit obj = "Val_GtkObject" -let referent arg = - if arg.referent == Obj.magic (-1) then invalid_arg "GtkArgv.referent"; - wrap_object arg.referent -let get_result_type arg = get_type (result arg) -let get_type arg ~pos = get_type (nth arg ~pos) -let get arg ~pos = get (nth arg ~pos) -let set_result arg = set_retloc (result arg) - -let get_args arg = - let rec loop args ~pos = - if pos < 0 then args - else loop (get arg ~pos :: args) ~pos:(pos-1) - in loop [] ~pos:(arg.nargs - 1) - -let get_pointer arg ~pos = get_pointer (nth arg ~pos) -let get_nativeint arg ~pos = get_nativeint (nth arg ~pos) - -(* -let get_char arg ~pos = get_char (nth arg ~pos) -let get_bool arg ~pos = get_bool (nth arg ~pos) -let get_int arg ~pos = get_int (nth arg ~pos) -let get_float arg ~pos = get_float (nth arg ~pos) -let get_string arg ~pos = get_string (nth arg ~pos) -let get_object arg ~pos = get_object (nth arg ~pos) -let set_result_char arg = set_char (result arg) -let set_result_bool arg = set_bool (result arg) -let set_result_int arg = set_int (result arg) -let set_result_nativeint arg = set_nativeint (result arg) -let set_result_float arg = set_float (result arg) -let set_result_string arg = set_string (result arg) -let set_result_pointer arg = set_pointer (result arg) -let set_result_object arg = set_object (result arg) -*) - -external string_at_pointer : ?pos:int -> ?len:int -> Gpointer.boxed -> string - = "ml_string_at_pointer" -external int_at_pointer : Gpointer.boxed -> int - = "ml_int_at_pointer" diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBase.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBase.ml deleted file mode 100644 index 3b1a00fdf..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBase.ml +++ /dev/null @@ -1,414 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags - -module Type = struct - external name : gtk_type -> string = "ml_gtk_type_name" - external from_name : string -> gtk_type = "ml_gtk_type_from_name" - external parent : gtk_type -> gtk_type = "ml_gtk_type_parent" - external get_class : gtk_type -> gtk_class = "ml_gtk_type_class" - external parent_class : gtk_type -> gtk_class = "ml_gtk_type_parent_class" - external is_a : gtk_type -> gtk_type -> bool = "ml_gtk_type_is_a" - external fundamental : gtk_type -> fundamental_type - = "ml_gtk_type_fundamental" -end - -module Object = struct - external get_type : 'a obj -> gtk_type = "ml_gtk_object_type" - let is_a obj name = - Type.is_a (get_type obj) (Type.from_name name) - external destroy : 'a obj -> unit = "ml_gtk_object_destroy" - external coerce : 'a obj -> unit obj = "%identity" - external unsafe_cast : 'a obj -> 'b obj = "%identity" - let try_cast w name = - if is_a w name then unsafe_cast w - else raise (Cannot_cast(Type.name(get_type w), name)) - let get_id (obj : 'a obj) : int = (snd (Obj.magic obj) lor 0) - module Signals = struct - open GtkSignal - let destroy : (_,_) t = - { name = "destroy"; marshaller = marshal_unit } - end -end - -module Widget = struct - let cast w : widget obj = Object.try_cast w "GtkWidget" - external coerce : [>`widget] obj -> widget obj = "%identity" - external unparent : [>`widget] obj -> unit = "ml_gtk_widget_unparent" - external show : [>`widget] obj -> unit = "ml_gtk_widget_show" - external show_now : [>`widget] obj -> unit = "ml_gtk_widget_show_now" - external show_all : [>`widget] obj -> unit = "ml_gtk_widget_show_all" - external hide : [>`widget] obj -> unit = "ml_gtk_widget_hide" - external hide_all : [>`widget] obj -> unit = "ml_gtk_widget_hide_all" - external map : [>`widget] obj -> unit = "ml_gtk_widget_map" - external unmap : [>`widget] obj -> unit = "ml_gtk_widget_unmap" - external realize : [>`widget] obj -> unit = "ml_gtk_widget_realize" - external unrealize : [>`widget] obj -> unit = "ml_gtk_widget_unrealize" - external queue_draw : [>`widget] obj -> unit = "ml_gtk_widget_queue_draw" - external queue_resize : [>`widget] obj -> unit = "ml_gtk_widget_queue_resize" - external draw : [>`widget] obj -> Gdk.Rectangle.t option -> unit - = "ml_gtk_widget_draw" - external draw_focus : [>`widget] obj -> unit - = "ml_gtk_widget_draw_focus" - external draw_default : [>`widget] obj -> unit - = "ml_gtk_widget_draw_default" - external event : [>`widget] obj -> 'a Gdk.event -> bool - = "ml_gtk_widget_event" - external activate : [>`widget] obj -> bool - = "ml_gtk_widget_activate" - external reparent : [>`widget] obj -> [>`widget] obj -> unit - = "ml_gtk_widget_reparent" - external popup : [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_widget_popup" - external intersect : - [>`widget] obj -> Gdk.Rectangle.t -> Gdk.Rectangle.t option - = "ml_gtk_widget_intersect" - external set_can_default : [>`widget] obj -> bool -> unit - = "ml_gtk_widget_set_can_default" - external set_can_focus : [>`widget] obj -> bool -> unit - = "ml_gtk_widget_set_can_focus" - external grab_focus : [>`widget] obj -> unit - = "ml_gtk_widget_grab_focus" - external grab_default : [>`widget] obj -> unit - = "ml_gtk_widget_grab_default" - external set_name : [>`widget] obj -> string -> unit - = "ml_gtk_widget_set_name" - external get_name : [>`widget] obj -> string - = "ml_gtk_widget_get_name" - external set_state : [>`widget] obj -> state_type -> unit - = "ml_gtk_widget_set_state" - external set_sensitive : [>`widget] obj -> bool -> unit - = "ml_gtk_widget_set_sensitive" - external set_uposition : [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_widget_set_uposition" - external set_usize : [>`widget] obj -> width:int -> height:int -> unit - = "ml_gtk_widget_set_usize" - external add_events : [>`widget] obj -> Gdk.Tags.event_mask list -> unit - = "ml_gtk_widget_add_events" - external set_events : [>`widget] obj -> Gdk.Tags.event_mask list -> unit - = "ml_gtk_widget_set_events" - external set_extension_events : - [>`widget] obj -> Gdk.Tags.extension_events -> unit - = "ml_gtk_widget_set_extension_events" - external get_toplevel : [>`widget] obj -> widget obj - = "ml_gtk_widget_get_toplevel" - external get_ancestor : [>`widget] obj -> gtk_type -> widget obj - = "ml_gtk_widget_get_ancestor" - external get_colormap : [>`widget] obj -> Gdk.colormap - = "ml_gtk_widget_get_colormap" - external get_visual : [>`widget] obj -> Gdk.visual - = "ml_gtk_widget_get_visual" - external get_pointer : [>`widget] obj -> int * int - = "ml_gtk_widget_get_pointer" - external is_ancestor : [>`widget] obj -> [>`widget] obj -> bool - = "ml_gtk_widget_is_ancestor" - external set_style : [>`widget] obj -> style -> unit - = "ml_gtk_widget_set_style" - external set_rc_style : [>`widget] obj -> unit - = "ml_gtk_widget_set_rc_style" - external ensure_style : [>`widget] obj -> unit - = "ml_gtk_widget_ensure_style" - external get_style : [>`widget] obj -> style - = "ml_gtk_widget_get_style" - external restore_default_style : [>`widget] obj -> unit - = "ml_gtk_widget_restore_default_style" - external add_accelerator : - ([>`widget] as 'a) obj -> sgn:('a,unit->unit) GtkSignal.t -> - accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> - ?flags:accel_flag list -> unit - = "ml_gtk_widget_add_accelerator_bc" "ml_gtk_widget_add_accelerator" - external remove_accelerator : - [>`widget] obj -> accel_group -> - key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> unit - = "ml_gtk_widget_remove_accelerator" - external lock_accelerators : [>`widget] obj -> unit - = "ml_gtk_widget_lock_accelerators" - external unlock_accelerators : [>`widget] obj -> unit - = "ml_gtk_widget_unlock_accelerators" - external accelerators_locked : [>`widget] obj -> bool - = "ml_gtk_widget_accelerators_locked" - external window : [>`widget] obj -> Gdk.window - = "ml_GtkWidget_window" - external visible : [>`widget] obj -> bool - = "ml_GTK_WIDGET_VISIBLE" - external has_focus : [>`widget] obj -> bool - = "ml_GTK_WIDGET_HAS_FOCUS" - external parent : [>`widget] obj -> widget obj - = "ml_gtk_widget_parent" - external set_app_paintable : [>`widget] obj -> bool -> unit - = "ml_gtk_widget_set_app_paintable" - external allocation : [>`widget] obj -> rectangle - = "ml_gtk_widget_allocation" - external set_colormap : [>`widget] obj -> Gdk.colormap -> unit - = "ml_gtk_widget_set_colormap" - external set_visual : [>`widget] obj -> Gdk.visual -> unit - = "ml_gtk_widget_set_visual" - external set_default_colormap : Gdk.colormap -> unit - = "ml_gtk_widget_set_default_colormap" - external set_default_visual : Gdk.visual -> unit - = "ml_gtk_widget_set_default_visual" - external get_default_colormap : unit -> Gdk.colormap - = "ml_gtk_widget_get_default_colormap" - external get_default_visual : unit -> Gdk.visual - = "ml_gtk_widget_get_default_visual" - external push_colormap : Gdk.colormap -> unit - = "ml_gtk_widget_push_colormap" - external push_visual : Gdk.visual -> unit - = "ml_gtk_widget_push_visual" - external pop_colormap : unit -> unit - = "ml_gtk_widget_pop_colormap" - external pop_visual : unit -> unit - = "ml_gtk_widget_pop_visual" - module Signals = struct - open GtkArgv - open GtkSignal - let marshal f _ = function - | OBJECT(Some p) :: _ -> f (cast p) - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal" - let marshal_opt f _ = function - | OBJECT(Some obj) :: _ -> f (Some (cast obj)) - | OBJECT None :: _ -> f None - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_opt" - let marshal_style f _ = function - | POINTER p :: _ -> f (Obj.magic p : Gtk.style option) - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_opt" - let marshal_drag1 f _ = function - | POINTER(Some p) :: _ -> f (Obj.magic p : Gdk.drag_context) - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag1" - let marshal_drag2 f _ = function - | POINTER(Some p) :: INT time :: _ -> - f (Obj.magic p : Gdk.drag_context) ~time - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag2" - let marshal_drag3 f argv = function - | POINTER(Some p) :: INT x :: INT y :: INT time :: _ -> - let res = f (Obj.magic p : Gdk.drag_context) ~x ~y ~time - in GtkArgv.set_result argv (`BOOL res) - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag3" - let show : ([>`widget],_) t = - { name = "show"; marshaller = marshal_unit } - let hide : ([>`widget],_) t = - { name = "hide"; marshaller = marshal_unit } - let map : ([>`widget],_) t = - { name = "map"; marshaller = marshal_unit } - let unmap : ([>`widget],_) t = - { name = "unmap"; marshaller = marshal_unit } - let realize : ([>`widget],_) t = - { name = "realize"; marshaller = marshal_unit } - let draw : ([>`widget],_) t = - let marshal f _ = function - | POINTER(Some p) :: _ -> f (Obj.magic p : Gdk.Rectangle.t) - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_draw" - in { name = "draw"; marshaller = marshal } - let draw_focus : ([>`widget],_) t = - { name = "draw_focus"; marshaller = marshal_unit } - let draw_default : ([>`widget],_) t = - { name = "draw_default"; marshaller = marshal_unit } - external val_state : int -> state_type = "ml_Val_state_type" - let state_changed : ([>`widget],_) t = - let marshal f = marshal_int (fun x -> f (val_state x)) in - { name = "state_changed"; marshaller = marshal } - let parent_set : ([>`widget],_) t = - { name = "parent_set"; marshaller = marshal_opt } - let style_set : ([>`widget],_) t = - { name = "style_set"; marshaller = marshal_style } - let drag_begin : ([>`widget],_) t = - { name = "drag_begin"; marshaller = marshal_drag1 } - let drag_end : ([>`widget],_) t = - { name = "drag_end"; marshaller = marshal_drag1 } - let drag_data_delete : ([>`widget],_) t = - { name = "drag_data_delete"; marshaller = marshal_drag1 } - let drag_leave : ([>`widget],_) t = - { name = "drag_leave"; marshaller = marshal_drag2 } - let drag_motion : ([>`widget],_) t = - { name = "drag_motion"; marshaller = marshal_drag3 } - let drag_drop : ([>`widget],_) t = - { name = "drag_drop"; marshaller = marshal_drag3 } - let drag_data_get : ([>`widget],_) t = - let marshal f argv = function - | POINTER(Some p) :: POINTER(Some q) :: INT info :: INT time :: _ -> - f (Obj.magic p : Gdk.drag_context) - (Obj.magic q : GtkData.Selection.t) - ~info - ~time - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag_data_get" - in - { name = "drag_data_get"; marshaller = marshal } - let drag_data_received : ([>`widget],_) t = - let marshal f _ = function - | POINTER(Some p) :: INT x :: INT y :: POINTER(Some q) :: - INT info :: INT time :: _ -> - f (Obj.magic p : Gdk.drag_context) ~x ~y - (Obj.magic q : GtkData.Selection.t) - ~info ~time - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag_data_received" - in - { name = "drag_data_received"; marshaller = marshal } - - module Event = struct - let marshal f argv = function - | [POINTER(Some p)] -> - let ev = GdkEvent.unsafe_copy p in - GtkArgv.set_result argv (`BOOL(f ev)) - | _ -> invalid_arg "GtkBase.Widget.Event.marshal" - let any : ([>`widget], Gdk.Tags.event_type Gdk.event -> bool) t = - { name = "event"; marshaller = marshal } - let button_press : ([>`widget], GdkEvent.Button.t -> bool) t = - { name = "button_press_event"; marshaller = marshal } - let button_release : ([>`widget], GdkEvent.Button.t -> bool) t = - { name = "button_release_event"; marshaller = marshal } - let motion_notify : ([>`widget], GdkEvent.Motion.t -> bool) t = - { name = "motion_notify_event"; marshaller = marshal } - let delete : ([>`widget], [`DELETE] Gdk.event -> bool) t = - { name = "delete_event"; marshaller = marshal } - let destroy : ([>`widget], [`DESTROY] Gdk.event -> bool) t = - { name = "destroy_event"; marshaller = marshal } - let expose : ([>`widget], GdkEvent.Expose.t -> bool) t = - { name = "expose_event"; marshaller = marshal } - let key_press : ([>`widget], GdkEvent.Key.t -> bool) t = - { name = "key_press_event"; marshaller = marshal } - let key_release : ([>`widget], GdkEvent.Key.t -> bool) t = - { name = "key_release_event"; marshaller = marshal } - let enter_notify : ([>`widget], GdkEvent.Crossing.t -> bool) t = - { name = "enter_notify_event"; marshaller = marshal } - let leave_notify : ([>`widget], GdkEvent.Crossing.t -> bool) t = - { name = "leave_notify_event"; marshaller = marshal } - let configure : ([>`widget], GdkEvent.Configure.t -> bool) t = - { name = "configure_event"; marshaller = marshal } - let focus_in : ([>`widget], GdkEvent.Focus.t -> bool) t = - { name = "focus_in_event"; marshaller = marshal } - let focus_out : ([>`widget], GdkEvent.Focus.t -> bool) t = - { name = "focus_out_event"; marshaller = marshal } - let map : ([>`widget], [`MAP] Gdk.event -> bool) t = - { name = "map_event"; marshaller = marshal } - let unmap : ([>`widget], [`UNMAP] Gdk.event -> bool) t = - { name = "unmap_event"; marshaller = marshal } - let property_notify : ([>`widget], GdkEvent.Property.t -> bool) t = - { name = "property_notify_event"; marshaller = marshal } - let selection_clear : ([>`widget], GdkEvent.Selection.t -> bool) t = - { name = "selection_clear_event"; marshaller = marshal } - let selection_request : ([>`widget], GdkEvent.Selection.t -> bool) t = - { name = "selection_request_event"; marshaller = marshal } - let selection_notify : ([>`widget], GdkEvent.Selection.t -> bool) t = - { name = "selection_notify_event"; marshaller = marshal } - let proximity_in : ([>`widget], GdkEvent.Proximity.t -> bool) t = - { name = "proximity_in_event"; marshaller = marshal } - let proximity_out : ([>`widget], GdkEvent.Proximity.t -> bool) t = - { name = "proximity_out_event"; marshaller = marshal } - end - end -end - -module Container = struct - let cast w : container obj = Object.try_cast w "GtkContainer" - external coerce : [>`container] obj -> container obj = "%identity" - external set_border_width : [>`container] obj -> int -> unit - = "ml_gtk_container_set_border_width" - external set_resize_mode : [>`container] obj -> resize_mode -> unit - = "ml_gtk_container_set_resize_mode" - external add : [>`container] obj -> [>`widget] obj -> unit - = "ml_gtk_container_add" - external remove : [>`container] obj -> [>`widget] obj -> unit - = "ml_gtk_container_remove" - let set ?border_width ?(width = -2) ?(height = -2) w = - may border_width ~f:(set_border_width w); - if width <> -2 || height <> -2 then - Widget.set_usize w ?width ?height - external foreach : [>`container] obj -> f:(widget obj-> unit) -> unit - = "ml_gtk_container_foreach" - let children w = - let l = ref [] in - foreach w ~f:(fun c -> l := c :: !l); - List.rev !l - external focus : [>`container] obj -> direction_type -> bool - = "ml_gtk_container_focus" - (* Called by Widget.grab_focus *) - external set_focus_child : [>`container] obj -> [>`widget] optobj -> unit - = "ml_gtk_container_set_focus_child" - external set_focus_vadjustment : - [>`container] obj -> [>`adjustment] optobj -> unit - = "ml_gtk_container_set_focus_vadjustment" - external set_focus_hadjustment : - [>`container] obj -> [>`adjustment] optobj -> unit - = "ml_gtk_container_set_focus_hadjustment" - module Signals = struct - open GtkSignal - let add : ([>`container],_) t = - { name = "add"; marshaller = Widget.Signals.marshal } - let remove : ([>`container],_) t = - { name = "remove"; marshaller = Widget.Signals.marshal } - let need_resize : ([>`container],_) t = - let marshal f argv _ = GtkArgv.set_result argv (`BOOL(f ())) in - { name = "need_resize"; marshaller = marshal } - external val_direction : int -> direction_type = "ml_Val_direction_type" - let focus : ([>`container],_) t = - let marshal f argv = function - | GtkArgv.INT dir :: _ -> - GtkArgv.set_result argv (`BOOL(f (val_direction dir))) - | _ -> invalid_arg "GtkBase.Container.Signals.marshal_focus" - in { name = "focus"; marshaller = marshal } - end -end - -module Item = struct - let cast w : item obj = Object.try_cast w "GtkItem" - external coerce : [>`item] obj -> item obj = "%identity" - external select : [>`item] obj -> unit = "ml_gtk_item_select" - external deselect : [>`item] obj -> unit = "ml_gtk_item_deselect" - external toggle : [>`item] obj -> unit = "ml_gtk_item_toggle" - module Signals = struct - open GtkSignal - let select : ([>`item],_) t = - { name = "select"; marshaller = marshal_unit } - let deselect : ([>`item],_) t = - { name = "deselect"; marshaller = marshal_unit } - let toggle : ([>`item],_) t = - { name = "toggle"; marshaller = marshal_unit } - end -end - - -module DnD = struct - external dest_set : - [>`widget] obj -> flags:dest_defaults list -> - targets:target_entry array -> actions:Gdk.Tags.drag_action list -> unit - = "ml_gtk_drag_dest_set" - external dest_unset : [>`widget] obj -> unit - = "ml_gtk_drag_dest_unset" - external finish : - Gdk.drag_context -> success:bool -> del:bool -> time:int -> unit - = "ml_gtk_drag_finish" - external get_data : - [>`widget] obj -> Gdk.drag_context -> target:Gdk.atom -> time:int -> unit - = "ml_gtk_drag_get_data" - external get_source_widget : Gdk.drag_context -> widget obj - = "ml_gtk_drag_get_source_widget" - external highlight : [>`widget] obj -> unit = "ml_gtk_drag_highlight" - external unhighlight : [>`widget] obj -> unit = "ml_gtk_drag_unhighlight" - external set_icon_widget : - Gdk.drag_context -> [>`widget] obj -> hot_x:int -> hot_y:int -> unit - = "ml_gtk_drag_set_icon_widget" - external set_icon_pixmap : - Gdk.drag_context -> colormap:Gdk.colormap -> - Gdk.pixmap -> ?mask:Gdk.bitmap -> hot_x:int -> hot_y:int -> unit - = "ml_gtk_drag_set_icon_pixmap_bc" "ml_gtk_drag_set_icon_pixmap" - external set_icon_default : Gdk.drag_context -> unit - = "ml_gtk_drag_set_icon_default" - external set_default_icon : - colormap:Gdk.colormap -> Gdk.pixmap -> - ?mask:Gdk.bitmap -> hot_x:int -> hot_y:int -> unit - = "ml_gtk_drag_set_default_icon" - external source_set : - [>`widget] obj -> ?modi:Gdk.Tags.modifier list -> - targets:target_entry array -> actions:Gdk.Tags.drag_action list -> unit - = "ml_gtk_drag_source_set" - external source_set_icon : - [>`widget] obj -> colormap:Gdk.colormap -> - Gdk.pixmap -> ?mask:Gdk.bitmap -> unit - = "ml_gtk_drag_source_set_icon" - external source_unset : [>`widget] obj -> unit - = "ml_gtk_drag_source_unset" -(* external dest_handle_event : [>`widget] -> *) -end - diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBin.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBin.ml deleted file mode 100644 index ab4cc7e85..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBin.ml +++ /dev/null @@ -1,170 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Alignment = struct - let cast w : alignment obj = Object.try_cast w "GtkAlignment" - external create : - x:clampf -> y:clampf -> xscale:clampf -> yscale:clampf -> alignment obj - = "ml_gtk_alignment_new" - let create ?(x=0.5) ?(y=0.5) ?(xscale=1.) ?(yscale=1.) () = - create ~x ~y ~xscale ~yscale - external set : - ?x:clampf -> ?y:clampf -> ?xscale:clampf -> ?yscale:clampf -> - [>`alignment] obj -> unit - = "ml_gtk_alignment_set" -end - -module EventBox = struct - let cast w : event_box obj = Object.try_cast w "GtkEventBox" - external create : unit -> event_box obj = "ml_gtk_event_box_new" -end - -module Frame = struct - let cast w : frame obj = Object.try_cast w "GtkFrame" - external coerce : [>`frame] obj -> frame obj = "%identity" - external create : string -> frame obj = "ml_gtk_frame_new" - external set_label : [>`frame] obj -> string -> unit - = "ml_gtk_frame_set_label" - external set_label_align : [>`frame] obj -> x:clampf -> y:clampf -> unit - = "ml_gtk_frame_set_label_align" - external set_shadow_type : [>`frame] obj -> shadow_type -> unit - = "ml_gtk_frame_set_shadow_type" - external get_label_xalign : [>`frame] obj -> float - = "ml_gtk_frame_get_label_xalign" - external get_label_yalign : [>`frame] obj -> float - = "ml_gtk_frame_get_label_yalign" - let set_label_align' ?x ?y w = - set_label_align w - ~x:(may_default get_label_xalign w ~opt:x) - ~y:(may_default get_label_yalign w ~opt:y) - let set ?label ?label_xalign ?label_yalign ?shadow_type w = - may label ~f:(set_label w); - if label_xalign <> None || label_yalign <> None then - set_label_align' w ?x:label_xalign ?y:label_yalign; - may shadow_type ~f:(set_shadow_type w) -end - -module AspectFrame = struct - let cast w : aspect_frame obj = Object.try_cast w "GtkAspectFrame" - external create : - label:string -> xalign:clampf -> - yalign:clampf -> ratio:float -> obey_child:bool -> aspect_frame obj - = "ml_gtk_aspect_frame_new" - let create ?(label="") ?(xalign=0.5) ?(yalign=0.5) - ?(ratio=1.0) ?(obey_child=true) () = - create ~label ~xalign ~yalign ~ratio ~obey_child - external set : - [>`aspect] obj -> - xalign:clampf -> yalign:clampf -> ratio:float -> obey_child:bool -> unit - = "ml_gtk_aspect_frame_set" - external get_xalign : [>`aspect] obj -> clampf - = "ml_gtk_aspect_frame_get_xalign" - external get_yalign : [>`aspect] obj -> clampf - = "ml_gtk_aspect_frame_get_yalign" - external get_ratio : [>`aspect] obj -> clampf - = "ml_gtk_aspect_frame_get_ratio" - external get_obey_child : [>`aspect] obj -> bool - = "ml_gtk_aspect_frame_get_obey_child" - let set ?xalign ?yalign ?ratio ?obey_child w = - if xalign <> None || yalign <> None || ratio <> None || obey_child <> None - then set w - ~xalign:(may_default get_xalign w ~opt:xalign) - ~yalign:(may_default get_yalign w ~opt:yalign) - ~ratio:(may_default get_ratio w ~opt:ratio) - ~obey_child:(may_default get_obey_child w ~opt:obey_child) -end - -module HandleBox = struct - let cast w : handle_box obj = Object.try_cast w "GtkHandleBox" - external create : unit -> handle_box obj = "ml_gtk_handle_box_new" - external set_shadow_type : [>`handlebox] obj -> shadow_type -> unit = - "ml_gtk_handle_box_set_shadow_type" - external set_handle_position : [>`handlebox] obj -> position -> unit = - "ml_gtk_handle_box_set_handle_position" - external set_snap_edge : [>`handlebox] obj -> position -> unit = - "ml_gtk_handle_box_set_snap_edge" - module Signals = struct - open GtkSignal - let child_attached : ([>`handlebox],_) t = - { name = "child_attached"; marshaller = Widget.Signals.marshal } - let child_detached : ([>`handlebox],_) t = - { name = "child_detached"; marshaller = Widget.Signals.marshal } - end -end - -module Viewport = struct - let cast w : viewport obj = Object.try_cast w "GtkViewport" - external create : - [>`adjustment] optobj -> [>`adjustment] optobj -> viewport obj - = "ml_gtk_viewport_new" - let create ?hadjustment ?vadjustment () = - create (Gpointer.optboxed hadjustment) (Gpointer.optboxed vadjustment) - external get_hadjustment : [>`viewport] obj -> adjustment obj - = "ml_gtk_viewport_get_hadjustment" - external get_vadjustment : [>`viewport] obj -> adjustment obj - = "ml_gtk_viewport_get_vadjustment" - external set_hadjustment : [>`viewport] obj -> [>`adjustment] obj -> unit - = "ml_gtk_viewport_set_hadjustment" - external set_vadjustment : [>`viewport] obj -> [>`adjustment] obj -> unit - = "ml_gtk_viewport_set_vadjustment" - external set_shadow_type : [>`viewport] obj -> shadow_type -> unit - = "ml_gtk_viewport_set_shadow_type" - let set ?hadjustment ?vadjustment ?shadow_type w = - may hadjustment ~f:(set_hadjustment w); - may vadjustment ~f:(set_vadjustment w); - may shadow_type ~f:(set_shadow_type w) -end - -module ScrolledWindow = struct - let cast w : scrolled_window obj = Object.try_cast w "GtkScrolledWindow" - external create : - [>`adjustment] optobj -> [>`adjustment] optobj -> scrolled_window obj - = "ml_gtk_scrolled_window_new" - let create ?hadjustment ?vadjustment () = - create (Gpointer.optboxed hadjustment) (Gpointer.optboxed vadjustment) - external set_hadjustment : [>`scrolled] obj -> [>`adjustment] obj -> unit - = "ml_gtk_scrolled_window_set_hadjustment" - external set_vadjustment : [>`scrolled] obj -> [>`adjustment] obj -> unit - = "ml_gtk_scrolled_window_set_vadjustment" - external get_hadjustment : [>`scrolled] obj -> adjustment obj - = "ml_gtk_scrolled_window_get_hadjustment" - external get_vadjustment : [>`scrolled] obj -> adjustment obj - = "ml_gtk_scrolled_window_get_vadjustment" - external set_policy : [>`scrolled] obj -> policy_type -> policy_type -> unit - = "ml_gtk_scrolled_window_set_policy" - external add_with_viewport : [>`scrolled] obj -> [>`widget] obj -> unit - = "ml_gtk_scrolled_window_add_with_viewport" - external get_hscrollbar_policy : [>`scrolled] obj -> policy_type - = "ml_gtk_scrolled_window_get_hscrollbar_policy" - external get_vscrollbar_policy : [>`scrolled] obj -> policy_type - = "ml_gtk_scrolled_window_get_vscrollbar_policy" - external set_placement : [>`scrolled] obj -> corner_type -> unit - = "ml_gtk_scrolled_window_set_placement" - let set_policy' ?hpolicy ?vpolicy w = - set_policy w - (may_default get_hscrollbar_policy w ~opt:hpolicy) - (may_default get_vscrollbar_policy w ~opt:vpolicy) - let set ?hpolicy ?vpolicy ?placement w = - if hpolicy <> None || vpolicy <> None then - set_policy' w ?hpolicy ?vpolicy; - may placement ~f:(set_placement w) -end - -module Socket = struct - let cast w : socket obj = Object.try_cast w "GtkSocket" - external coerce : [>`socket] obj -> socket obj = "%identity" - external create : unit -> socket obj = "ml_gtk_socket_new" - external steal : [>`socket] obj -> Gdk.xid -> unit = "ml_gtk_socket_steal" -end - -(* -module Invisible = struct - let cast w : socket obj = Object.try_cast w "GtkInvisible" - external coerce : [>`invisible] obj -> invisible obj = "%identity" - external create : unit -> invisible obj = "ml_gtk_invisible_new" -end -*) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkButton.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkButton.ml deleted file mode 100644 index 6d9ddf500..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkButton.ml +++ /dev/null @@ -1,148 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Button = struct - let cast w : button obj = Object.try_cast w "GtkButton" - external coerce : [>`button] obj -> button obj = "%identity" - external create : unit -> button obj = "ml_gtk_button_new" - external create_with_label : string -> button obj - = "ml_gtk_button_new_with_label" - let create ?label () = - match label with None -> create () - | Some x -> create_with_label x - external pressed : [>`button] obj -> unit = "ml_gtk_button_pressed" - external released : [>`button] obj -> unit = "ml_gtk_button_released" - external clicked : [>`button] obj -> unit = "ml_gtk_button_clicked" - external enter : [>`button] obj -> unit = "ml_gtk_button_enter" - external leave : [>`button] obj -> unit = "ml_gtk_button_leave" - module Signals = struct - open GtkSignal - let pressed : ([>`button],_) t = - { name = "pressed"; marshaller = marshal_unit } - let released : ([>`button],_) t = - { name = "released"; marshaller = marshal_unit } - let clicked : ([>`button],_) t = - { name = "clicked"; marshaller = marshal_unit } - let enter : ([>`button],_) t = - { name = "enter"; marshaller = marshal_unit } - let leave : ([>`button],_) t = - { name = "leave"; marshaller = marshal_unit } - end -end - -module ToggleButton = struct - let cast w : toggle_button obj = Object.try_cast w "GtkToggleButton" - external coerce : [>`toggle] obj -> toggle_button obj = "%identity" - external toggle_button_create : unit -> toggle_button obj - = "ml_gtk_toggle_button_new" - external toggle_button_create_with_label : string -> toggle_button obj - = "ml_gtk_toggle_button_new_with_label" - external check_button_create : unit -> toggle_button obj - = "ml_gtk_check_button_new" - external check_button_create_with_label : string -> toggle_button obj - = "ml_gtk_check_button_new_with_label" - let create_toggle ?label () = - match label with None -> toggle_button_create () - | Some label -> toggle_button_create_with_label label - let create_check ?label () = - match label with None -> check_button_create () - | Some label -> check_button_create_with_label label - external set_mode : [>`toggle] obj -> bool -> unit - = "ml_gtk_toggle_button_set_mode" - external set_active : [>`toggle] obj -> bool -> unit - = "ml_gtk_toggle_button_set_active" - let set ?active ?draw_indicator w = - may ~f:(set_mode w) draw_indicator; - may ~f:(set_active w) active - external get_active : [>`toggle] obj -> bool - = "ml_gtk_toggle_button_get_active" - external toggled : [>`toggle] obj -> unit - = "ml_gtk_toggle_button_toggled" - module Signals = struct - open GtkSignal - let toggled : ([>`toggle],_) t = - { name = "toggled"; marshaller = marshal_unit } - end -end - -module RadioButton = struct - let cast w : radio_button obj = Object.try_cast w "GtkRadioButton" - external create : radio_button group -> radio_button obj - = "ml_gtk_radio_button_new" - external create_with_label : radio_button group -> string -> radio_button obj - = "ml_gtk_radio_button_new_with_label" - external set_group : [>`radio] obj -> radio_button group -> unit - = "ml_gtk_radio_button_set_group" - let create ?(group = None) ?label () = - match label with None -> create group - | Some label -> create_with_label group label -end - -module Toolbar = struct - let cast w : toolbar obj = Object.try_cast w "GtkToolbar" - external create : orientation -> style:toolbar_style -> toolbar obj - = "ml_gtk_toolbar_new" - let create dir ?(style=`BOTH) () = create dir ~style - external insert_space : [>`toolbar] obj -> pos:int -> unit - = "ml_gtk_toolbar_insert_space" - let insert_space w ?(pos = -1) () = insert_space w ~pos - external insert_button : - [>`toolbar] obj -> kind:[`BUTTON|`TOGGLEBUTTON|`RADIOBUTTON] -> - text:string -> tooltip:string -> - tooltip_private:string -> - icon:[>`widget] optobj -> pos:int -> button obj - = "ml_gtk_toolbar_insert_element_bc" "ml_gtk_toolbar_insert_element" - let insert_button w ?(kind=`BUTTON) ?(text="") ?(tooltip="") - ?(tooltip_private="") ?icon ?(pos = -1) ?callback () = - let b =insert_button w ~kind ~text ~tooltip ~tooltip_private ~pos - ~icon:(Gpointer.optboxed icon) - in - match callback with - | None -> b - | Some c -> GtkSignal.connect b ~sgn:Button.Signals.clicked - ~callback: c; b - external insert_widget : - [>`toolbar] obj -> [>`widget] obj -> - tooltip:string -> tooltip_private:string -> pos:int -> unit - = "ml_gtk_toolbar_insert_widget" - let insert_widget w ?(tooltip="") ?(tooltip_private="") ?(pos = -1) w' = - insert_widget w w' ~tooltip ~tooltip_private ~pos - external set_orientation : [>`toolbar] obj -> orientation -> unit = - "ml_gtk_toolbar_set_orientation" - external set_style : [>`toolbar] obj -> toolbar_style -> unit = - "ml_gtk_toolbar_set_style" - external set_space_size : [>`toolbar] obj -> int -> unit = - "ml_gtk_toolbar_set_space_size" - external set_space_style : [>`toolbar] obj -> [ `EMPTY|`LINE ] -> unit = - "ml_gtk_toolbar_set_space_style" - external set_tooltips : [>`toolbar] obj -> bool -> unit = - "ml_gtk_toolbar_set_tooltips" - external set_button_relief : [>`toolbar] obj -> relief_style -> unit = - "ml_gtk_toolbar_set_button_relief" - external get_button_relief : [>`toolbar] obj -> relief_style = - "ml_gtk_toolbar_get_button_relief" - let set ?orientation ?style ?space_size - ?space_style ?tooltips ?button_relief w = - may orientation ~f:(set_orientation w); - may style ~f:(set_style w); - may space_size ~f:(set_space_size w); - may space_style ~f:(set_space_style w); - may tooltips ~f:(set_tooltips w); - may button_relief ~f:(set_button_relief w) - module Signals = struct - open GtkSignal - external val_orientation : int -> orientation = "ml_Val_orientation" - external val_toolbar_style : int -> toolbar_style - = "ml_Val_toolbar_style" - let orientation_changed : ([>`toolbar],_) t = - let marshal f = marshal_int (fun x -> f (val_orientation x)) in - { name = "orientation_changed"; marshaller = marshal } - let style_changed : ([>`toolbar],_) t = - let marshal f = marshal_int (fun x -> f (val_toolbar_style x)) in - { name = "style_changed"; marshaller = marshal } - end -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkData.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkData.ml deleted file mode 100644 index 5b7f90ec0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkData.ml +++ /dev/null @@ -1,148 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags - -module AccelGroup = struct - external create : unit -> accel_group = "ml_gtk_accel_group_new" - external activate : - accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool - = "ml_gtk_accel_group_activate" - external groups_activate : - 'a obj -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool - = "ml_gtk_accel_groups_activate" - external attach : accel_group -> 'a obj -> unit - = "ml_gtk_accel_group_attach" - external detach : accel_group -> 'a obj -> unit - = "ml_gtk_accel_group_detach" - external lock : accel_group -> unit - = "ml_gtk_accel_group_lock" - external unlock : accel_group -> unit - = "ml_gtk_accel_group_unlock" - external lock_entry : - accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool - = "ml_gtk_accel_group_lock_entry" - external add : - accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> - ?flags:accel_flag list -> - call:'a obj -> sgn:('a,unit->unit) GtkSignal.t -> unit - = "ml_gtk_accel_group_add_bc" "ml_gtk_accel_group_add" - external remove : - accel_group -> - key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> call:'a obj -> unit - = "ml_gtk_accel_group_remove" - external valid : key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool - = "ml_gtk_accelerator_valid" - external set_default_mod_mask : Gdk.Tags.modifier list option -> unit - = "ml_gtk_accelerator_set_default_mod_mask" -end - -module Style = struct - external create : unit -> style = "ml_gtk_style_new" - external copy : style -> style = "ml_gtk_style_copy" - external attach : style -> Gdk.window -> style = "ml_gtk_style_attach" - external detach : style -> unit = "ml_gtk_style_detach" - external set_background : style -> Gdk.window -> state_type -> unit - = "ml_gtk_style_set_background" - external draw_hline : - style -> Gdk.window -> state_type -> x:int -> x:int -> y:int -> unit - = "ml_gtk_draw_hline_bc" "ml_gtk_draw_hline" - external draw_vline : - style -> Gdk.window -> state_type -> y:int -> y:int -> x:int -> unit - = "ml_gtk_draw_vline_bc" "ml_gtk_draw_vline" - external get_bg : style -> state:state_type -> Gdk.Color.t - = "ml_gtk_style_get_bg" - external set_bg : style -> state:state_type -> color:Gdk.Color.t -> unit - = "ml_gtk_style_set_bg" - external get_dark_gc : style -> state:state_type -> Gdk.gc - = "ml_gtk_style_get_dark_gc" - external get_light_gc : style -> state:state_type -> Gdk.gc - = "ml_gtk_style_get_light_gc" - external get_colormap : style -> Gdk.colormap = "ml_gtk_style_get_colormap" - external get_font : style -> Gdk.font = "ml_gtk_style_get_font" - external set_font : style -> Gdk.font -> unit = "ml_gtk_style_set_font" -(* - let set st ?:background ?:font = - let may_set f = may fun:(f st) in - may_set set_background background; - may_set set_font font -*) -end - -module Data = struct - module Signals = struct - open GtkSignal - let disconnect : ([>`data],_) t = - { name = "disconnect"; marshaller = marshal_unit } - end -end - -module Adjustment = struct - external create : - 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" - module Signals = struct - open GtkSignal - let changed : ([>`adjustment],_) t = - { name = "changed"; marshaller = marshal_unit } - let value_changed : ([>`adjustment],_) t = - { name = "value_changed"; marshaller = marshal_unit } - end -end - -module Tooltips = struct - external create : unit -> tooltips obj = "ml_gtk_tooltips_new" - external enable : [>`tooltips] obj -> unit = "ml_gtk_tooltips_enable" - external disable : [>`tooltips] obj -> unit = "ml_gtk_tooltips_disable" - external set_delay : [>`tooltips] obj -> int -> unit - = "ml_gtk_tooltips_set_delay" - external set_tip : - [>`tooltips] obj -> - [>`widget] obj -> ?text:string -> ?privat:string -> unit - = "ml_gtk_tooltips_set_tip" - external set_colors : - [>`tooltips] obj -> - ?foreground:Gdk.Color.t -> ?background:Gdk.Color.t -> unit -> unit - = "ml_gtk_tooltips_set_colors" - let set ?delay ?foreground ?background tt = - may ~f:(set_delay tt) delay; - if foreground <> None || background <> None then - set_colors tt ?foreground ?background () -end - - -module Selection = struct - type t - external selection : t -> Gdk.atom - = "ml_gtk_selection_data_selection" - external target : t -> Gdk.atom - = "ml_gtk_selection_data_target" - external seltype : t -> Gdk.atom - = "ml_gtk_selection_data_type" - external format : t -> int - = "ml_gtk_selection_data_format" - external get_data : t -> string - = "ml_gtk_selection_data_get_data" (* May raise Gpointer.null *) - external set : - t -> typ:Gdk.atom -> format:int -> ?data:string -> unit - = "ml_gtk_selection_data_set" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkEdit.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkEdit.ml deleted file mode 100644 index bef2fedb9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkEdit.ml +++ /dev/null @@ -1,223 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Editable = struct - let cast w : editable obj = Object.try_cast w "GtkEditable" - external coerce : [>`editable] obj -> editable obj = "%identity" - external select_region : [>`editable] obj -> start:int -> stop:int -> unit - = "ml_gtk_editable_select_region" - external insert_text : [>`editable] obj -> string -> pos:int -> int - = "ml_gtk_editable_insert_text" - external delete_text : [>`editable] obj -> start:int -> stop:int -> unit - = "ml_gtk_editable_delete_text" - external get_chars : [>`editable] obj -> start:int -> stop:int -> string - = "ml_gtk_editable_get_chars" - external cut_clipboard : [>`editable] obj -> unit - = "ml_gtk_editable_cut_clipboard" - external copy_clipboard : [>`editable] obj -> unit - = "ml_gtk_editable_copy_clipboard" - external paste_clipboard : [>`editable] obj -> unit - = "ml_gtk_editable_paste_clipboard" - external claim_selection : - [>`editable] obj -> claim:bool -> time:int -> unit - = "ml_gtk_editable_claim_selection" - external delete_selection : [>`editable] obj -> unit - = "ml_gtk_editable_delete_selection" - external changed : [>`editable] obj -> unit = "ml_gtk_editable_changed" - external set_position : [>`editable] obj -> int -> unit - = "ml_gtk_editable_set_position" - external get_position : [>`editable] obj -> int - = "ml_gtk_editable_get_position" - external set_editable : [>`editable] obj -> bool -> unit - = "ml_gtk_editable_set_editable" - external selection_start_pos : [>`editable] obj -> int - = "ml_gtk_editable_selection_start_pos" - external selection_end_pos : [>`editable] obj -> int - = "ml_gtk_editable_selection_end_pos" - external has_selection : [>`editable] obj -> bool - = "ml_gtk_editable_has_selection" - module Signals = struct - open GtkArgv - open GtkSignal - let activate : ([>`editable],_) t = - { name = "activate"; marshaller = marshal_unit } - let changed : ([>`editable],_) t = - { name = "changed"; marshaller = marshal_unit } - let marshal_insert f argv = function - | STRING _ :: INT len :: POINTER(Some pos) :: _ -> - (* XXX These two accesses are implementation-dependent *) - let s = string_at_pointer (get_pointer argv ~pos:0) ~len - and pos = int_at_pointer pos in - f s ~pos - | _ -> invalid_arg "GtkEdit.Editable.Signals.marshal_insert" - let insert_text : ([>`editable],_) t = - { name = "insert_text"; marshaller = marshal_insert } - let marshal_delete f _ = function - | INT start :: INT stop :: _ -> - f ~start ~stop - | _ -> invalid_arg "GtkEdit.Editable.Signals.marshal_delete" - let delete_text : ([>`editable],_) t = - { name = "delete_text"; marshaller = marshal_delete } - end -end - -module Entry = struct - let cast w : entry obj = Object.try_cast w "GtkEntry" - external coerce : [>`entry] obj -> entry obj = "%identity" - external create : unit -> entry obj = "ml_gtk_entry_new" - external create_with_max_length : int -> entry obj - = "ml_gtk_entry_new_with_max_length" - let create ?max_length () = - match max_length with None -> create () - | Some len -> create_with_max_length len - external set_text : [>`entry] obj -> string -> unit - = "ml_gtk_entry_set_text" - external append_text : [>`entry] obj -> string -> unit - = "ml_gtk_entry_append_text" - external prepend_text : [>`entry] obj -> string -> unit - = "ml_gtk_entry_prepend_text" - external get_text : [>`entry] obj -> string = "ml_gtk_entry_get_text" - external set_visibility : [>`entry] obj -> bool -> unit - = "ml_gtk_entry_set_visibility" - external set_max_length : [>`entry] obj -> int -> unit - = "ml_gtk_entry_set_max_length" - let set ?text ?visibility ?max_length w = - let may_set f = may ~f:(f w) in - may_set set_text text; - may_set set_visibility visibility; - may_set set_max_length max_length - external text_length : [>`entry] obj -> int - = "ml_GtkEntry_text_length" -end - -module SpinButton = struct - let cast w : spin_button obj = Object.try_cast w "GtkSpinButton" - external create : - [>`adjustment] optobj -> rate:float -> digits:int -> spin_button obj - = "ml_gtk_spin_button_new" - let create ?adjustment ?(rate=0.5) ?(digits=0) () = - create (Gpointer.optboxed adjustment) ~rate ~digits - external configure : - [>`spinbutton] obj -> adjustment:[>`adjustment] obj -> - rate:float -> digits:int -> unit - = "ml_gtk_spin_button_configure" - external set_adjustment : [>`spinbutton] obj -> [>`adjustment] obj -> unit - = "ml_gtk_spin_button_set_adjustment" - external get_adjustment : [>`spinbutton] obj -> adjustment obj - = "ml_gtk_spin_button_get_adjustment" - external set_digits : [>`spinbutton] obj -> int -> unit - = "ml_gtk_spin_button_set_digits" - external get_value : [>`spinbutton] obj -> float - = "ml_gtk_spin_button_get_value_as_float" - let get_value_as_int w = truncate (get_value w +. 0.5) - external set_value : [>`spinbutton] obj -> float -> unit - = "ml_gtk_spin_button_set_value" - external set_update_policy : - [>`spinbutton] obj -> [`ALWAYS|`IF_VALID] -> unit - = "ml_gtk_spin_button_set_update_policy" - external set_numeric : [>`spinbutton] obj -> bool -> unit - = "ml_gtk_spin_button_set_numeric" - external spin : [>`spinbutton] obj -> spin_type -> unit - = "ml_gtk_spin_button_spin" - external set_wrap : [>`spinbutton] obj -> bool -> unit - = "ml_gtk_spin_button_set_wrap" - external set_shadow_type : [>`spinbutton] obj -> shadow_type -> unit - = "ml_gtk_spin_button_set_shadow_type" - external set_snap_to_ticks : [>`spinbutton] obj -> bool -> unit - = "ml_gtk_spin_button_set_snap_to_ticks" - external update : [>`spinbutton] obj -> unit - = "ml_gtk_spin_button_update" - let set ?adjustment ?digits ?value ?update_policy - ?numeric ?wrap ?shadow_type ?snap_to_ticks w = - let may_set f = may ~f:(f w) in - may_set set_adjustment adjustment; - may_set set_digits digits; - may_set set_value value; - may_set set_update_policy update_policy; - may_set set_numeric numeric; - may_set set_wrap wrap; - may_set set_shadow_type shadow_type; - may_set set_snap_to_ticks snap_to_ticks -end - -module Text = struct - let cast w : text obj = Object.try_cast w "GtkText" - external create : [>`adjustment] optobj -> [>`adjustment] optobj -> text obj - = "ml_gtk_text_new" - let create ?hadjustment ?vadjustment () = - create (Gpointer.optboxed hadjustment) (Gpointer.optboxed vadjustment) - external set_word_wrap : [>`text] obj -> bool -> unit - = "ml_gtk_text_set_word_wrap" - external set_line_wrap : [>`text] obj -> bool -> unit - = "ml_gtk_text_set_line_wrap" - external set_adjustment : - [>`text] obj -> ?horizontal:[>`adjustment] obj -> - ?vertical:[>`adjustment] obj -> unit -> unit - = "ml_gtk_text_set_adjustments" - external get_hadjustment : [>`text] obj -> adjustment obj - = "ml_gtk_text_get_hadj" - external get_vadjustment : [>`text] obj -> adjustment obj - = "ml_gtk_text_get_vadj" - external set_point : [>`text] obj -> int -> unit - = "ml_gtk_text_set_point" - external get_point : [>`text] obj -> int = "ml_gtk_text_get_point" - external get_length : [>`text] obj -> int = "ml_gtk_text_get_length" - external freeze : [>`text] obj -> unit = "ml_gtk_text_freeze" - external thaw : [>`text] obj -> unit = "ml_gtk_text_thaw" - external insert : - [>`text] obj -> ?font:Gdk.font -> ?foreground:Gdk.Color.t -> - ?background:Gdk.Color.t -> string -> unit - = "ml_gtk_text_insert" - let set ?hadjustment ?vadjustment ?word_wrap w = - if hadjustment <> None || vadjustment <> None then - set_adjustment w ?horizontal: hadjustment ?vertical: vadjustment (); - may word_wrap ~f:(set_word_wrap w) -end - -module Combo = struct - let cast w : combo obj = Object.try_cast w "GtkCombo" - external create : unit -> combo obj = "ml_gtk_combo_new" - external set_value_in_list : - [>`combo] obj -> ?required:bool -> ?ok_if_empty:bool -> unit -> unit - = "ml_gtk_combo_set_value_in_list" - external set_use_arrows : [>`combo] obj -> bool -> unit - = "ml_gtk_combo_set_use_arrows" - external set_use_arrows_always : [>`combo] obj -> bool -> unit - = "ml_gtk_combo_set_use_arrows_always" - external set_case_sensitive : [>`combo] obj -> bool -> unit - = "ml_gtk_combo_set_case_sensitive" - external set_item_string : [>`combo] obj -> [>`item] obj -> string -> unit - = "ml_gtk_combo_set_item_string" - external entry : [>`combo] obj -> entry obj= "ml_gtk_combo_entry" - external list : [>`combo] obj -> liste obj= "ml_gtk_combo_list" - let set_popdown_strings combo strings = - GtkList.Liste.clear_items (list combo) ~start:0 ~stop:(-1); - List.iter strings ~f: - begin fun s -> - let li = GtkList.ListItem.create_with_label s in - Widget.show li; - Container.add (list combo) li - end - let set_use_arrows' w (mode : [`NEVER|`DEFAULT|`ALWAYS]) = - let def,always = - match mode with - `NEVER -> false, false - | `DEFAULT -> true, false - | `ALWAYS -> true, true - in - set_use_arrows w def; - set_use_arrows_always w always - let set ?popdown_strings ?use_arrows - ?case_sensitive ?value_in_list ?ok_if_empty w = - may popdown_strings ~f:(set_popdown_strings w); - may use_arrows ~f:(set_use_arrows' w); - may case_sensitive ~f:(set_case_sensitive w); - if value_in_list <> None || ok_if_empty <> None then - set_value_in_list w ?required:value_in_list ?ok_if_empty () - external disable_activate : [>`combo] obj -> unit - = "ml_gtk_combo_disable_activate" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkInit.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkInit.ml deleted file mode 100644 index 5ce40db5f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkInit.ml +++ /dev/null @@ -1,5 +0,0 @@ -(* $Id$ *) - -(* Does the initialization for toplevels *) - -let locale = GtkMain.Main.init () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkList.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkList.ml deleted file mode 100644 index 4d2ae0951..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkList.ml +++ /dev/null @@ -1,294 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module ListItem = struct - let cast w : list_item obj = Object.try_cast w "GtkListItem" - external create : unit -> list_item obj = "ml_gtk_list_item_new" - external create_with_label : string -> list_item obj - = "ml_gtk_list_item_new_with_label" - let create ?label () = - match label with None -> create () - | Some label -> create_with_label label -end - -module Liste = struct - let cast w : liste obj = Object.try_cast w "GtkList" - external create : unit -> liste obj = "ml_gtk_list_new" - external insert_item : - [>`list] obj -> [>`listitem] obj -> pos:int -> unit - = "ml_gtk_list_insert_item" - let insert_items l wl ~pos = - let wl = if pos < 0 then wl else List.rev wl in - List.iter wl ~f:(insert_item l ~pos) - let append_items l = insert_items l ~pos:(-1) - let prepend_items l = insert_items l ~pos:0 - external clear_items : [>`list] obj -> start:int -> stop:int -> unit = - "ml_gtk_list_clear_items" - external select_item : [>`list] obj -> pos:int -> unit - = "ml_gtk_list_select_item" - external unselect_item : [>`list] obj -> pos:int -> unit - = "ml_gtk_list_unselect_item" - external select_child : [>`list] obj -> [>`listitem] obj -> unit - = "ml_gtk_list_select_child" - external unselect_child : [>`list] obj -> [>`listitem] obj -> unit - = "ml_gtk_list_unselect_child" - external child_position : [>`list] obj -> [>`listitem] obj -> int - = "ml_gtk_list_child_position" - external set_selection_mode : [>`list] obj -> selection_mode -> unit - = "ml_gtk_list_set_selection_mode" - module Signals = struct - open GtkSignal - let selection_changed : ([>`list],_) t = - { name = "selection_changed"; marshaller = marshal_unit } - let select_child : ([>`list],_) t = - { name = "select_child"; marshaller = Widget.Signals.marshal } - let unselect_child : ([>`list],_) t = - { name = "unselect_child"; marshaller = Widget.Signals.marshal } - end -end - -module CList = struct - let cast w : clist obj = Object.try_cast w "GtkCList" - external create : cols:int -> clist obj = "ml_gtk_clist_new" - external create_with_titles : string array -> clist obj - = "ml_gtk_clist_new_with_titles" - external get_rows : [>`clist] obj -> int = "ml_gtk_clist_get_rows" - external get_columns : [>`clist] obj -> int = "ml_gtk_clist_get_columns" - external get_focus_row : [>`clist] obj -> int - = "ml_gtk_clist_get_focus_row" - external set_hadjustment : [>`clist] obj -> [>`adjustment] obj -> unit - = "ml_gtk_clist_set_hadjustment" - external set_vadjustment : [>`clist] obj -> [>`adjustment] obj -> unit - = "ml_gtk_clist_set_vadjustment" - external get_hadjustment : [>`clist] obj -> adjustment obj - = "ml_gtk_clist_get_hadjustment" - external get_vadjustment : [>`clist] obj -> adjustment obj - = "ml_gtk_clist_get_vadjustment" - external set_shadow_type : [>`clist] obj -> shadow_type -> unit - = "ml_gtk_clist_set_shadow_type" - external set_selection_mode : [>`clist] obj -> selection_mode -> unit - = "ml_gtk_clist_set_selection_mode" - external set_reorderable : [>`clist] obj -> bool -> unit - = "ml_gtk_clist_set_reorderable" - external set_use_drag_icons : [>`clist] obj -> bool -> unit - = "ml_gtk_clist_set_use_drag_icons" - external set_button_actions : - [>`clist] obj -> int -> button_action list -> unit - = "ml_gtk_clist_set_button_actions" - external freeze : [>`clist] obj -> unit = "ml_gtk_clist_freeze" - external thaw : [>`clist] obj -> unit = "ml_gtk_clist_thaw" - external column_titles_show : [>`clist] obj -> unit - = "ml_gtk_clist_column_titles_show" - external column_titles_hide : [>`clist] obj -> unit - = "ml_gtk_clist_column_titles_hide" - external column_title_active : [>`clist] obj -> int -> unit - = "ml_gtk_clist_column_title_active" - external column_title_passive : [>`clist] obj -> int -> unit - = "ml_gtk_clist_column_title_passive" - external column_titles_active : [>`clist] obj -> unit - = "ml_gtk_clist_column_titles_active" - external column_titles_passive : [>`clist] obj -> unit - = "ml_gtk_clist_column_titles_passive" - external set_column_title : [>`clist] obj -> int -> string -> unit - = "ml_gtk_clist_set_column_title" - external get_column_title : [>`clist] obj -> int -> string - = "ml_gtk_clist_get_column_title" - external set_column_widget : [>`clist] obj -> int -> [>`widget] obj -> unit - = "ml_gtk_clist_set_column_widget" - external get_column_widget : [>`clist] obj -> int -> widget obj - = "ml_gtk_clist_get_column_widget" - external set_column_justification : - [>`clist] obj -> int -> justification -> unit - = "ml_gtk_clist_set_column_justification" - external set_column_visibility : [>`clist] obj -> int -> bool -> unit - = "ml_gtk_clist_set_column_visibility" - external set_column_resizeable : [>`clist] obj -> int -> bool -> unit - = "ml_gtk_clist_set_column_resizeable" - external set_column_auto_resize : [>`clist] obj -> int -> bool -> unit - = "ml_gtk_clist_set_column_auto_resize" - external columns_autosize : [>`clist] obj -> unit - = "ml_gtk_clist_columns_autosize" - external optimal_column_width : [>`clist] obj -> int -> int - = "ml_gtk_clist_optimal_column_width" - external set_column_width : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_set_column_width" - external set_column_min_width : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_set_column_min_width" - external set_column_max_width : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_set_column_max_width" - external set_row_height : [>`clist] obj -> int -> unit - = "ml_gtk_clist_set_row_height" - external moveto : - [>`clist] obj -> - int -> int -> row_align:clampf -> col_align:clampf -> unit - = "ml_gtk_clist_moveto" - external row_is_visible : [>`clist] obj -> int -> visibility - = "ml_gtk_clist_row_is_visible" - external get_cell_type : [>`clist] obj -> int -> int -> cell_type - = "ml_gtk_clist_get_cell_type" - external set_text : [>`clist] obj -> int -> int -> string -> unit - = "ml_gtk_clist_set_text" - external get_text : [>`clist] obj -> int -> int -> string - = "ml_gtk_clist_get_text" - external set_pixmap : - [>`clist] obj -> - int -> int -> Gdk.pixmap -> Gdk.bitmap Gpointer.optboxed -> unit - = "ml_gtk_clist_set_pixmap" - external get_pixmap : - [>`clist] obj -> int -> int -> Gdk.pixmap option * Gdk.bitmap option - = "ml_gtk_clist_get_pixmap" - external set_pixtext : - [>`clist] obj -> int -> int -> - string -> int -> Gdk.pixmap -> Gdk.bitmap Gpointer.optboxed -> unit - = "ml_gtk_clist_set_pixtext_bc" "ml_gtk_clist_set_pixtext" - external set_foreground : - [>`clist] obj -> row:int -> Gdk.Color.t Gpointer.optboxed -> unit - = "ml_gtk_clist_set_foreground" - external set_background : - [>`clist] obj -> row:int -> Gdk.Color.t Gpointer.optboxed -> unit - = "ml_gtk_clist_set_background" - external get_cell_style : [>`clist] obj -> int -> int -> Gtk.style - = "ml_gtk_clist_get_cell_style" - external set_cell_style : [>`clist] obj -> int -> int -> Gtk.style -> unit - = "ml_gtk_clist_set_cell_style" - external get_row_style : [>`clist] obj -> row:int -> Gtk.style - = "ml_gtk_clist_get_row_style" - external set_row_style : [>`clist] obj -> row:int -> Gtk.style -> unit - = "ml_gtk_clist_set_row_style" - external set_selectable : [>`clist] obj -> row:int -> bool -> unit - = "ml_gtk_clist_set_selectable" - external get_selectable : [>`clist] obj -> row:int -> bool - = "ml_gtk_clist_get_selectable" - external set_shift : - [>`clist] obj -> int -> int -> vertical:int -> horizontal:int -> unit - = "ml_gtk_clist_set_shift" - external insert : [>`clist] obj -> row:int -> Gpointer.optstring array -> int - = "ml_gtk_clist_insert" - let insert w ~row texts = - let len = get_columns w in - if List.length texts > len then invalid_arg "CList.insert"; - let arr = Array.create (get_columns w) None in - List.fold_left texts ~init:0 - ~f:(fun pos text -> arr.(pos) <- text; pos+1); - let r = insert w ~row (Array.map ~f:Gpointer.optstring arr) in - if r = -1 then invalid_arg "GtkCList::insert"; - r - external remove : [>`clist] obj -> row:int -> unit - = "ml_gtk_clist_remove" - external set_row_data : [>`clist] obj -> row:int -> Obj.t -> unit - = "ml_gtk_clist_set_row_data" - external get_row_data : [>`clist] obj -> row:int -> Obj.t - = "ml_gtk_clist_get_row_data" - external select : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_select_row" - external unselect : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_unselect_row" - external clear : [>`clist] obj -> unit = "ml_gtk_clist_clear" - external get_row_column : [>`clist] obj -> x:int -> y:int -> int * int - = "ml_gtk_clist_get_selection_info" - external select_all : [>`clist] obj -> unit = "ml_gtk_clist_select_all" - external unselect_all : [>`clist] obj -> unit = "ml_gtk_clist_unselect_all" - external swap_rows : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_swap_rows" - external row_move : [>`clist] obj -> int -> dst:int -> unit - = "ml_gtk_clist_row_move" - external set_sort_column : [>`clist] obj -> int -> unit - = "ml_gtk_clist_set_sort_column" - external set_sort_type : [>`clist] obj -> sort_type -> unit - = "ml_gtk_clist_set_sort_type" - external sort : [>`clist] obj -> unit - = "ml_gtk_clist_sort" - external set_auto_sort : [>`clist] obj -> bool -> unit - = "ml_gtk_clist_set_auto_sort" - let set_titles_show w = function - true -> column_titles_show w - | false -> column_titles_hide w - let set_titles_active w = function - true -> column_titles_active w - | false -> column_titles_passive w - let set ?hadjustment ?vadjustment ?shadow_type - ?(button_actions=[]) ?selection_mode ?reorderable - ?use_drag_icons ?row_height ?titles_show ?titles_active w = - let may_set f param = may param ~f:(f w) in - may_set set_hadjustment hadjustment; - may_set set_vadjustment vadjustment; - may_set set_shadow_type shadow_type; - List.iter button_actions ~f:(fun (n,act) -> set_button_actions w n act); - may_set set_selection_mode selection_mode; - may_set set_reorderable reorderable; - may_set set_use_drag_icons use_drag_icons; - may_set set_row_height row_height; - may_set set_titles_show titles_show; - may_set set_titles_active titles_active - let set_sort w ?auto ?column ?dir:sort_type () = - may auto ~f:(set_auto_sort w); - may column ~f:(set_sort_column w); - may sort_type ~f:(set_sort_type w) - let set_cell w ?text ?pixmap ?mask ?(spacing=0) ?style row col = - begin match text, pixmap with - | Some text, None -> - set_text w row col text - | None, Some pm -> - set_pixmap w row col pm (Gpointer.optboxed mask) - | Some text, Some pm -> - set_pixtext w row col text spacing pm (Gpointer.optboxed mask) - | _ -> () - end; - may style ~f:(set_cell_style w row col) - let set_column w ?widget ?title ?title_active ?justification - ?visibility ?resizeable ?auto_resize ?width ?min_width ?max_width - col = - let may_set f param = may param ~f:(f w col) in - may_set set_column_widget widget; - may_set set_column_title title; - may title_active - ~f:(fun active -> if active then column_title_active w col - else column_title_passive w col); - may_set set_column_justification justification; - may_set set_column_visibility visibility; - may_set set_column_resizeable resizeable; - may_set set_column_auto_resize auto_resize; - may_set set_column_width width; - may_set set_column_min_width min_width; - may_set set_column_max_width max_width - let set_row w ?foreground ?background ?selectable ?style row = - let may_set f = may ~f:(f w ~row) in - may_set set_foreground foreground; - may_set set_background background; - may_set set_selectable selectable; - may_set set_row_style style - module Signals = struct - open GtkArgv - open GtkSignal - let marshal_select f argv = function - | INT row :: INT column :: POINTER p :: _ -> - let event : GdkEvent.Button.t option = - may_map ~f:GdkEvent.unsafe_copy p - in - f ~row ~column ~event - | _ -> invalid_arg "GtkList.CList.Signals.marshal_select" - let select_row : ([>`clist],_) t = - { name = "select_row"; marshaller = marshal_select } - let unselect_row : ([>`clist],_) t = - { name = "unselect_row"; marshaller = marshal_select } - let click_column : ([>`clist],_) t = - { name = "click_column"; marshaller = marshal_int } - external val_scroll_type : int -> scroll_type = "ml_Val_scroll_type" - let marshal_scroll f argv = function - | INT st :: FLOAT (pos : clampf) :: _ -> - f (val_scroll_type st) ~pos - | _ -> invalid_arg "GtkList.CList.Signals.marshal_scroll" - let scroll_horizontal : ([>`clist],_) t = - { name = "scroll_horizontal"; marshaller = marshal_scroll } - let scroll_vertical : ([>`clist],_) t = - { name = "scroll_vertical"; marshaller = marshal_scroll } - external emit_scroll : - 'a obj -> name:string -> Tags.scroll_type -> pos:clampf -> unit - = "ml_gtk_signal_emit_scroll" - let emit_scroll = emit ~emitter:emit_scroll - end -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMain.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMain.ml deleted file mode 100644 index 7ef344303..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMain.ml +++ /dev/null @@ -1,50 +0,0 @@ -(* $Id$ *) - -open Gtk - -let _ = Callback.register_exception "gtkerror" (Error"") - -module Timeout = struct - type id - external add : ms:int -> callback:(GtkArgv.t -> unit) -> id - = "ml_gtk_timeout_add" - let add ~ms ~callback = - add ~ms ~callback:(fun arg -> GtkArgv.set_result arg (`BOOL(callback ()))) - external remove : id -> unit = "ml_gtk_timeout_remove" -end - -module Main = struct - external init : string array -> string array = "ml_gtk_init" - (* external exit : int -> unit = "ml_gtk_exit" *) - external set_locale : unit -> string = "ml_gtk_set_locale" - (* external main : unit -> unit = "ml_gtk_main" *) - let locale = set_locale () - let init () = - (* let locale = set_locale () in *) - let argv = init Sys.argv in - Array.blit ~src:argv ~dst:Sys.argv ~len:(Array.length argv) - ~src_pos:0 ~dst_pos:0; - Obj.truncate (Obj.repr Sys.argv) ~len:(Array.length argv); - locale - open Glib - let loops = ref [] - let main () = - let loop = (Main.create true) in - loops := loop :: !loops; - while Main.is_running loop do Main.iteration true done; - loops := List.tl !loops - and quit () = Main.quit (List.hd !loops) - external get_version : unit -> int * int * int = "ml_gtk_get_version" - let version = get_version () - - let flush = Gdk.X.flush -end - -module Grab = struct - external add : [>`widget] obj -> unit = "ml_gtk_grab_add" - external remove : [>`widget] obj -> unit = "ml_gtk_grab_remove" - external get_current : unit -> widget obj= "ml_gtk_grab_get_current" -end - -let _ = Glib.set_warning_handler (fun msg -> raise (Warning msg)) -let _ = Glib.set_print_handler (fun msg -> print_string msg) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMenu.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMenu.ml deleted file mode 100644 index 2f1eb30f0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMenu.ml +++ /dev/null @@ -1,144 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase - -module MenuItem = struct - let cast w : menu_item obj = Object.try_cast w "GtkMenuItem" - external coerce : [>`menuitem] obj -> menu_item obj = "%identity" - external create : unit -> menu_item obj = "ml_gtk_menu_item_new" - external create_with_label : string -> menu_item obj - = "ml_gtk_menu_item_new_with_label" - external tearoff_create : unit -> menu_item obj - = "ml_gtk_tearoff_menu_item_new" - let create ?label () = - match label with None -> create () - | Some label -> create_with_label label - external set_submenu : [>`menuitem] obj -> [>`menu] obj -> unit - = "ml_gtk_menu_item_set_submenu" - external remove_submenu : [>`menuitem] obj -> unit - = "ml_gtk_menu_item_remove_submenu" - external configure : - [>`menuitem] obj -> show_toggle:bool -> show_indicator:bool -> unit - = "ml_gtk_menu_item_configure" - external activate : [>`menuitem] obj -> unit - = "ml_gtk_menu_item_activate" - external right_justify : [>`menuitem] obj -> unit - = "ml_gtk_menu_item_right_justify" - module Signals = struct - open GtkSignal - let activate : ([>`menuitem],_) t = - { name = "activate"; marshaller = marshal_unit } - let activate_item : ([>`menuitem],_) t = - { name = "activate_item"; marshaller = marshal_unit } - end -end - -module CheckMenuItem = struct - let cast w : check_menu_item obj = Object.try_cast w "GtkCheckMenuItem" - external coerce : [>`checkmenuitem] obj -> check_menu_item obj = "%identity" - external create : unit -> check_menu_item obj = "ml_gtk_check_menu_item_new" - external create_with_label : string -> check_menu_item obj - = "ml_gtk_check_menu_item_new_with_label" - let create ?label () = - match label with None -> create () - | Some label -> create_with_label label - external set_active : [>`checkmenuitem] obj -> bool -> unit - = "ml_gtk_check_menu_item_set_active" - external get_active : [>`checkmenuitem] obj -> bool - = "ml_gtk_check_menu_item_get_active" - external set_show_toggle : [>`checkmenuitem] obj -> bool -> unit - = "ml_gtk_check_menu_item_set_show_toggle" - let set ?active ?show_toggle w = - may active ~f:(set_active w); - may show_toggle ~f:(set_show_toggle w) - external toggled : [>`checkmenuitem] obj -> unit - = "ml_gtk_check_menu_item_toggled" - module Signals = struct - open GtkSignal - let toggled : ([>`checkmenuitem],_) t = - { name = "toggled"; marshaller = marshal_unit } - end -end - -module RadioMenuItem = struct - let cast w : radio_menu_item obj = Object.try_cast w "GtkRadioMenuItem" - external create : radio_menu_item group -> radio_menu_item obj - = "ml_gtk_radio_menu_item_new" - external create_with_label : - radio_menu_item group -> string -> radio_menu_item obj - = "ml_gtk_radio_menu_item_new_with_label" - let create ?(group = None) ?label () = - match label with None -> create group - | Some label -> create_with_label group label - external set_group : [>`radiomenuitem] obj -> radio_menu_item group -> unit - = "ml_gtk_radio_menu_item_set_group" -end - -module OptionMenu = struct - let cast w : option_menu obj = Object.try_cast w "GtkOptionMenu" - external create : unit -> option_menu obj = "ml_gtk_option_menu_new" - external get_menu : [>`optionmenu] obj -> menu obj - = "ml_gtk_option_menu_get_menu" - external set_menu : [>`optionmenu] obj -> [>`menu] obj -> unit - = "ml_gtk_option_menu_set_menu" - external remove_menu : [>`optionmenu] obj -> unit - = "ml_gtk_option_menu_remove_menu" - external set_history : [>`optionmenu] obj -> int -> unit - = "ml_gtk_option_menu_set_history" - let set ?menu ?history w = - may menu ~f:(set_menu w); - may history ~f:(set_history w) -end - -module MenuShell = struct - let cast w : menu_shell obj = Object.try_cast w "GtkMenuShell" - external coerce : [>`menushell] obj -> menu_shell obj = "%identity" - external append : [>`menushell] obj -> [>`widget] obj -> unit - = "ml_gtk_menu_shell_append" - external prepend : [>`menushell] obj -> [>`widget] obj -> unit - = "ml_gtk_menu_shell_prepend" - external insert : [>`menushell] obj -> [>`widget] obj -> pos:int -> unit - = "ml_gtk_menu_shell_insert" - external deactivate : [>`menushell] obj -> unit - = "ml_gtk_menu_shell_deactivate" - module Signals = struct - open GtkSignal - let deactivate : ([>`menushell],_) t = - { name = "deactivate"; marshaller = marshal_unit } - end -end - -module Menu = struct - let cast w : menu obj = Object.try_cast w "GtkMenu" - external create : unit -> menu obj = "ml_gtk_menu_new" - external popup : - [>`menu] obj -> [>`menushell] optobj -> - [>`menuitem] optobj -> button:int -> time:int -> unit - = "ml_gtk_menu_popup" - let popup ?parent_menu ?parent_item w = - popup w (Gpointer.optboxed parent_menu) (Gpointer.optboxed parent_item) - external popdown : [>`menu] obj -> unit = "ml_gtk_menu_popdown" - external get_active : [>`menu] obj -> widget obj= "ml_gtk_menu_get_active" - external set_active : [>`menu] obj -> int -> unit = "ml_gtk_menu_set_active" - external set_accel_group : [>`menu] obj -> accel_group -> unit - = "ml_gtk_menu_set_accel_group" - external get_accel_group : [>`menu] obj -> accel_group - = "ml_gtk_menu_get_accel_group" - external ensure_uline_accel_group : [>`menu] obj -> accel_group - = "ml_gtk_menu_ensure_uline_accel_group" - external attach_to_widget : [>`menu] obj -> [>`widget] obj -> unit - = "ml_gtk_menu_attach_to_widget" - external get_attach_widget : [>`menu] obj -> widget obj - = "ml_gtk_menu_get_attach_widget" - external detach : [>`menu] obj -> unit = "ml_gtk_menu_detach" - let set ?active ?accel_group w = - may active ~f:(set_active w); - may accel_group ~f:(set_accel_group w) -end - -module MenuBar = struct - let cast w : menu_bar obj = Object.try_cast w "GtkMenuBar" - external create : unit -> menu_bar obj = "ml_gtk_menu_bar_new" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMisc.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMisc.ml deleted file mode 100644 index ded7f487a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMisc.ml +++ /dev/null @@ -1,323 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module GammaCurve = struct - let cast w : gamma_curve obj = Object.try_cast w "GtkGammaCurve" - external create : unit -> gamma_curve obj = "ml_gtk_gamma_curve_new" - external get_gamma : [>`gamma] obj -> float = "ml_gtk_gamma_curve_get_gamma" -end - -module ColorSelection = struct - let cast w : color_selection obj = Object.try_cast w "GtkColorSelection" - external create : unit -> color_selection obj = "ml_gtk_color_selection_new" - external create_dialog : string -> color_selection_dialog obj - = "ml_gtk_color_selection_dialog_new" - external set_update_policy : [>`colorsel] obj -> update_type -> unit - = "ml_gtk_color_selection_set_update_policy" - external set_opacity : [>`colorsel] obj -> bool -> unit - = "ml_gtk_color_selection_set_opacity" - let set ?update_policy ?opacity w = - may update_policy ~f:(set_update_policy w); - may opacity ~f:(set_opacity w) - external set_color : - [>`colorsel] obj -> - red:float -> green:float -> blue:float -> ?opacity:float -> unit - = "ml_gtk_color_selection_set_color" - external get_color : [>`colorsel] obj -> color - = "ml_gtk_color_selection_get_color" - - external ok_button : [>`colorseldialog] obj -> button obj = - "ml_gtk_color_selection_dialog_ok_button" - external cancel_button : [>`colorseldialog] obj -> button obj = - "ml_gtk_color_selection_dialog_cancel_button" - external help_button : [>`colorseldialog] obj -> button obj = - "ml_gtk_color_selection_dialog_help_button" - external colorsel : [>`colorseldialog] obj -> color_selection obj = - "ml_gtk_color_selection_dialog_colorsel" - module Signals = struct - open GtkSignal - let color_changed : ([>`colorsel],_) t = - { name = "color_changed"; marshaller = marshal_unit } - end -end - -module Statusbar = struct - let cast w : statusbar obj = Object.try_cast w "GtkStatusbar" - external create : unit -> statusbar obj = "ml_gtk_statusbar_new" - external get_context : [>`statusbar] obj -> string -> statusbar_context - = "ml_gtk_statusbar_get_context_id" - external push : - [>`statusbar] obj -> - statusbar_context -> text:string -> statusbar_message - = "ml_gtk_statusbar_push" - external pop : [>`statusbar] obj -> statusbar_context -> unit - = "ml_gtk_statusbar_pop" - external remove : - [>`statusbar] obj -> statusbar_context -> statusbar_message -> unit - = "ml_gtk_statusbar_remove" - module Signals = struct - open GtkSignal - let text_pushed : ([>`statusbar],_) t = - let marshal f _ = function - | GtkArgv.INT ctx :: GtkArgv.STRING s :: _ -> - f (Obj.magic ctx : statusbar_context) s - | _ -> invalid_arg "GtkMisc.Statusbar.Signals.marshal_text" - in - { name = "text_pushed"; marshaller = marshal } - end -end - -module Calendar = struct - let cast w : calendar obj = Object.try_cast w "GtkCalendar" - external create : unit -> calendar obj = "ml_gtk_calendar_new" - external select_month : [>`calendar] obj -> month:int -> year:int -> unit - = "ml_gtk_calendar_select_month" - external select_day : [>`calendar] obj -> int -> unit - = "ml_gtk_calendar_select_day" - external mark_day : [>`calendar] obj -> int -> unit - = "ml_gtk_calendar_mark_day" - external unmark_day : [>`calendar] obj -> int -> unit - = "ml_gtk_calendar_unmark_day" - external clear_marks : [>`calendar] obj -> unit - = "ml_gtk_calendar_clear_marks" - external display_options : - [>`calendar] obj -> Tags.calendar_display_options list -> unit - = "ml_gtk_calendar_display_options" - external get_date : [>`calendar] obj -> int * int * int - = "ml_gtk_calendar_get_date" (* year * month * day *) - external freeze : [>`calendar] obj -> unit - = "ml_gtk_calendar_freeze" - external thaw : [>`calendar] obj -> unit - = "ml_gtk_calendar_thaw" - module Signals = struct - open GtkSignal - let month_changed : ([>`calendar],_) t = - { name = "month_changed"; marshaller = marshal_unit } - let day_selected : ([>`calendar],_) t = - { name = "day_selected"; marshaller = marshal_unit } - let day_selected_double_click : ([>`calendar],_) t = - { name = "day_selected_double_click"; marshaller = marshal_unit } - let prev_month : ([>`calendar],_) t = - { name = "prev_month"; marshaller = marshal_unit } - let next_month : ([>`calendar],_) t = - { name = "next_month"; marshaller = marshal_unit } - let prev_year : ([>`calendar],_) t = - { name = "prev_year"; marshaller = marshal_unit } - let next_year : ([>`calendar],_) t = - { name = "next_year"; marshaller = marshal_unit } - end -end - -module DrawingArea = struct - let cast w : drawing_area obj = Object.try_cast w "GtkDrawingArea" - external create : unit -> drawing_area obj = "ml_gtk_drawing_area_new" - external size : [>`drawing] obj -> width:int -> height:int -> unit - = "ml_gtk_drawing_area_size" -end - -(* Does not seem very useful ... -module Curve = struct - type t = [widget drawing curve] obj - let cast w : t = Object.try_cast w "GtkCurve" - external create : unit -> t = "ml_gtk_curve_new" - external reset : [>`curve] obj -> unit = "ml_gtk_curve_reset" - external set_gamma : [>`curve] obj -> float -> unit - = "ml_gtk_curve_set_gamma" - external set_range : - [>`curve] obj -> min_x:float -> max_x:float -> - min_y:float -> max_y:float -> unit - = "ml_gtk_curve_set_gamma" -end -*) - -module Misc = struct - let cast w : misc obj = Object.try_cast w "GtkMisc" - external coerce : [>`misc] obj -> misc obj = "%identity" - external set_alignment : [>`misc] obj -> x:float -> y:float -> unit - = "ml_gtk_misc_set_alignment" - external set_padding : [>`misc] obj -> x:int -> y:int -> unit - = "ml_gtk_misc_set_padding" - external get_xalign : [>`misc] obj -> float = "ml_gtk_misc_get_xalign" - external get_yalign : [>`misc] obj -> float = "ml_gtk_misc_get_yalign" - external get_xpad : [>`misc] obj -> int = "ml_gtk_misc_get_xpad" - external get_ypad : [>`misc] obj -> int = "ml_gtk_misc_get_ypad" - let set_alignment w ?x ?y () = - set_alignment w ~x:(may_default get_xalign w ~opt:x) - ~y:(may_default get_yalign w ~opt:y) - let set_padding w ?x ?y () = - set_padding w ~x:(may_default get_xpad w ~opt:x) - ~y:(may_default get_ypad w ~opt:y) - let set ?xalign ?yalign ?xpad ?ypad ?(width = -2) ?(height = -2) w = - if xalign <> None || yalign <> None then - set_alignment w ?x:xalign ?y:yalign (); - if xpad <> None || ypad <> None then - set_padding w ?x:xpad ?y:ypad (); - if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height -end - -module Arrow = struct - let cast w : arrow obj = Object.try_cast w "GtkArrow" - external create : kind:arrow_type -> shadow:shadow_type -> arrow obj - = "ml_gtk_arrow_new" - external set : [>`arrow] obj -> kind:arrow_type -> shadow:shadow_type -> unit - = "ml_gtk_arrow_set" -end - -module Image = struct - let cast w : image obj = Object.try_cast w "GtkImage" - external create : Gdk.image -> ?mask:Gdk.bitmap -> image obj - = "ml_gtk_image_new" - let create ?mask img = create img ?mask - external set : [>`image] obj -> Gdk.image -> ?mask:Gdk.bitmap -> unit - = "ml_gtk_image_set" -end - -module Label = struct - let cast w : label obj = Object.try_cast w "GtkLabel" - external coerce : [>`label] obj -> label obj = "%identity" - external create : string -> label obj = "ml_gtk_label_new" - external set_text : [>`label] obj -> string -> unit = "ml_gtk_label_set_text" - external set_justify : [>`label] obj -> justification -> unit - = "ml_gtk_label_set_justify" - external set_pattern : [>`label] obj -> string -> unit - = "ml_gtk_label_set_pattern" - external set_line_wrap : [>`label] obj -> bool -> unit - = "ml_gtk_label_set_line_wrap" - let set ?text ?justify ?line_wrap ?pattern w = - may ~f:(set_text w) text; - may ~f:(set_justify w) justify; - may ~f:(set_line_wrap w) line_wrap; - may ~f:(set_pattern w) pattern - external get_text : [>`label] obj -> string = "ml_gtk_label_get_label" -end - -module TipsQuery = struct - let cast w : tips_query obj = Object.try_cast w "GtkTipsQuery" - external create : unit -> tips_query obj = "ml_gtk_tips_query_new" - external start : [>`tipsquery] obj -> unit = "ml_gtk_tips_query_start_query" - external stop : [>`tipsquery] obj -> unit = "ml_gtk_tips_query_stop_query" - external set_caller : [>`tipsquery] obj -> [>`widget] obj -> unit - = "ml_gtk_tips_query_set_caller" - external set_labels : - [>`tipsquery] obj -> inactive:string -> no_tip:string -> unit - = "ml_gtk_tips_query_set_labels" - external set_emit_always : [>`tipsquery] obj -> bool -> unit - = "ml_gtk_tips_query_set_emit_always" - external get_caller : [>`tipsquery] obj -> widget obj - = "ml_gtk_tips_query_get_caller" - external get_label_inactive : [>`tipsquery] obj -> string - = "ml_gtk_tips_query_get_label_inactive" - external get_label_no_tip : [>`tipsquery] obj -> string - = "ml_gtk_tips_query_get_label_no_tip" - external get_emit_always : [>`tipsquery] obj -> bool - = "ml_gtk_tips_query_get_emit_always" - let set_labels ?inactive ?no_tip w = - set_labels w - ~inactive:(may_default get_label_inactive w ~opt:inactive) - ~no_tip:(may_default get_label_no_tip w ~opt:no_tip) - let set ?caller ?emit_always ?label_inactive ?label_no_tip w = - may caller ~f:(set_caller w); - may emit_always ~f:(set_emit_always w); - if label_inactive <> None || label_no_tip <> None then - set_labels w ?inactive:label_inactive ?no_tip:label_no_tip - module Signals = struct - open GtkArgv - open GtkSignal - let start_query : ([>`tipsquery],_) t = - { name = "start_query"; marshaller = marshal_unit } - let stop_query : ([>`tipsquery],_) t = - { name = "stop_query"; marshaller = marshal_unit } - let widget_entered : - ([>`tipsquery], - widget obj option -> - text:string option -> privat:string option -> unit) t = - let marshal f _ = function - | OBJECT opt :: STRING text :: STRING privat :: _ -> - f (may_map ~f:Widget.cast opt) ~text ~privat - | _ -> invalid_arg "GtkMisc.TipsQuery.Signals.marshal_entered" - in - { name = "widget_entered"; marshaller = marshal } - let widget_selected : - ([>`tipsquery], - widget obj option -> - text:string option -> - privat:string option -> GdkEvent.Button.t option -> bool) t = - let marshal f argv = function - | OBJECT obj :: STRING text :: STRING privat :: POINTER p :: _ -> - let stop = - f (may_map ~f:Widget.cast obj) ~text ~privat - (may_map ~f:GdkEvent.unsafe_copy p) - in set_result argv (`BOOL stop) - | _ -> invalid_arg "GtkMisc.TipsQuery.Signals.marshal_selected" - in - { name = "widget_selected"; marshaller = marshal } - end -end - -module Pixmap = struct - let cast w : pixmap obj = Object.try_cast w "GtkPixmap" - external create : Gdk.pixmap -> ?mask:Gdk.bitmap -> pixmap obj - = "ml_gtk_pixmap_new" - let create ?mask img = create img ?mask - external set : - [>`pixmap] obj -> ?pixmap:Gdk.pixmap -> ?mask:Gdk.bitmap -> unit - = "ml_gtk_pixmap_set" - external pixmap : [>`pixmap] obj -> Gdk.pixmap = "ml_GtkPixmap_pixmap" - external mask : [>`pixmap] obj -> Gdk.bitmap = "ml_GtkPixmap_mask" -end - -module Separator = struct - let cast w : separator obj = Object.try_cast w "GtkSeparator" - external hseparator_new : unit -> separator obj = "ml_gtk_hseparator_new" - external vseparator_new : unit -> separator obj = "ml_gtk_vseparator_new" - let create (dir : Tags.orientation) = - if dir = `HORIZONTAL then hseparator_new () else vseparator_new () -end - -module FontSelection = struct - type null_terminated - let null_terminated arg : null_terminated = - match arg with None -> Obj.magic Gpointer.raw_null - | Some l -> - let len = List.length l in - let arr = Array.create (len + 1) "" in - let rec loop i = function - [] -> arr.(i) <- Obj.magic Gpointer.raw_null - | s::l -> arr.(i) <- s; loop (i+1) l - in loop 0 l; - Obj.magic (arr : string array) - let cast w : font_selection obj = - Object.try_cast w "GtkFontSelection" - external create : unit -> font_selection obj - = "ml_gtk_font_selection_new" - external get_font : [>`fontsel] obj -> Gdk.font - = "ml_gtk_font_selection_get_font" - let get_font w = - try Some (get_font w) with Gpointer.Null -> None - external get_font_name : [>`fontsel] obj -> string - = "ml_gtk_font_selection_get_font_name" - let get_font_name w = - try Some (get_font_name w) with Gpointer.Null -> None - external set_font_name : [>`fontsel] obj -> string -> unit - = "ml_gtk_font_selection_set_font_name" - external set_filter : - [>`fontsel] obj -> font_filter_type -> font_type list -> - null_terminated -> null_terminated -> null_terminated -> - null_terminated -> null_terminated -> null_terminated -> unit - = "ml_gtk_font_selection_set_filter_bc" - "ml_gtk_font_selection_set_filter" - let set_filter w ?kind:(tl=[`ALL]) ?foundry - ?weight ?slant ?setwidth ?spacing ?charset filter = - set_filter w filter tl (null_terminated foundry) - (null_terminated weight) (null_terminated slant) - (null_terminated setwidth) (null_terminated spacing) - (null_terminated charset) - external get_preview_text : [>`fontsel] obj -> string - = "ml_gtk_font_selection_get_preview_text" - external set_preview_text : [>`fontsel] obj -> string -> unit - = "ml_gtk_font_selection_set_preview_text" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkNew.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkNew.ml deleted file mode 100644 index 532a709d7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkNew.ml +++ /dev/null @@ -1,56 +0,0 @@ -(* $Id$ *) - -open Gtk - -type t - -(* if you modify this type modify widget_info_array - in ml_gtk.c in accordance *) -type object_type = - | OBJECT | WIDGET | MISC | LABEL | ACCELLABEL | TIPSQUERY | ARROW - | IMAGE | PIXMAP | CONTAINER | BIN | ALIGNMENT | FRAME | ASPECTFRAME - | BUTTON | TOGGLEBUTTON | CHECKBUTTON | RADIOBUTTON | OPTIONMENU - | ITEM | MENUITEM | CHECKMENUITEM | RADIOMENUITEM | TEAROFFMENUITEM - | LISTITEM | TREEITEM | WINDOW | COLORSELECTIONDIALOG | DIALOG - | INPUTDIALOG | FILESELECTION | FONTSELECTIONDIALOG | PLUG - | EVENTBOX | HANDLEBOX | SCROLLEDWINDOW | VIEWPORT | BOX - | BUTTONBOX | HBUTTONBOX | VBUTTONBOX | VBOX | COLORSELECTION - | GAMMACURVE | HBOX | COMBO | STATUSBAR | CLIST | CTREE | FIXED - | NOTEBOOK | FONTSELECTION | PANED | HPANED | VPANED | LAYOUT - | LIST | MENUSHELL | MENUBAR | MENU | PACKER | SOCKET | TABLE - | TOOLBAR | TREE | CALENDAR | DRAWINGAREA | CURVE | EDITABLE - | ENTRY | SPINBUTTON | TEXT | RULER | HRULER | VRULER | RANGE - | SCALE | HSCALE | VSCALE | SCROLLBAR | HSCROLLBAR | VSCROLLBAR - | SEPARATOR | HSEPARATOR | VSEPARATOR | PREVIEW | PROGRESS - | PROGRESSBAR | DATA | ADJUSTMENT | TOOLTIPS | ITEMFACTORY - -external set_ml_class_init : (t -> unit) -> unit = "set_ml_class_init" -external signal_new : string -> int -> t -> object_type -> int -> int - = "ml_gtk_signal_new" -external object_class_add_signals : t -> int array -> int -> unit - = "ml_gtk_object_class_add_signals" -external type_unique : - name:string -> parent:object_type -> nsignals:int -> gtk_type - = "ml_gtk_type_unique" -external type_new : gtk_type -> unit obj - = "ml_gtk_type_new" - -open GtkSignal - -let make_new_widget ~name ~parent - ~(signals : ('a, unit -> unit) GtkSignal.t list) = - let nsignals = List.length signals in - let new_type = type_unique ~name ~parent ~nsignals in - let signal_num_array = Array.create nsignals 0 in - let class_init_func classe = - List.fold_left signals ~init:0 ~f: - (fun i signal -> - signal_num_array.(i) <- signal_new signal.name 1 classe parent i; - i+1); - object_class_add_signals classe signal_num_array nsignals - in - new_type, - (fun () -> - set_ml_class_init class_init_func; - type_new new_type) - (* , signal_num_array *) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkPack.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkPack.ml deleted file mode 100644 index 20adb0505..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkPack.ml +++ /dev/null @@ -1,318 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Box = struct - let cast w : box obj = Object.try_cast w "GtkBox" - external coerce : [>`box] obj -> box obj = "%identity" - external pack_start : - [>`box] obj -> [>`widget] obj -> - expand:bool -> fill:bool -> padding:int -> unit - = "ml_gtk_box_pack_start" - external pack_end : - [>`box] obj -> [>`widget] obj -> - expand:bool -> fill:bool -> padding:int -> unit - = "ml_gtk_box_pack_end" - let pack box ?from:( dir = (`START : pack_type)) - ?(expand=false) ?(fill=true) ?(padding=0) child = - (match dir with `START -> pack_start | `END -> pack_end) - box child ~expand ~fill ~padding - external reorder_child : [>`box] obj -> [>`widget] obj -> pos:int -> unit - = "ml_gtk_box_reorder_child" - external set_homogeneous : [>`box] obj -> bool -> unit - = "ml_gtk_box_set_homogeneous" - external set_spacing : [>`box] obj -> int -> unit - = "ml_gtk_box_set_spacing" - let set ?homogeneous ?spacing w = - may homogeneous ~f:(set_homogeneous w); - may spacing ~f:(set_spacing w) - type packing = - { expand: bool; fill: bool; padding: int; pack_type: pack_type } - external query_child_packing : [>`box] obj -> [>`widget] obj -> packing - = "ml_gtk_box_query_child_packing" - external set_child_packing : - [>`box] obj -> [>`widget] obj -> - ?expand:bool -> ?fill:bool -> ?padding:int -> ?from:pack_type -> unit - = "ml_gtk_box_set_child_packing_bc" "ml_gtk_box_set_child_packing" - external hbox_new : homogeneous:bool -> spacing:int -> box obj - = "ml_gtk_hbox_new" - external vbox_new : homogeneous:bool -> spacing:int -> box obj - = "ml_gtk_vbox_new" - let create (dir : orientation) ?(homogeneous=false) ?(spacing=0) () = - (match dir with `HORIZONTAL -> hbox_new | `VERTICAL -> vbox_new) - ~homogeneous ~spacing -end - -module BBox = struct - (* Omitted defaults setting *) - let cast w : button_box obj = Object.try_cast w "GtkBBox" - external coerce : [>`bbox] obj -> button_box obj = "%identity" - type bbox_style = [ `DEFAULT_STYLE|`SPREAD|`EDGE|`START|`END ] - external get_spacing : [>`bbox] obj -> int = "ml_gtk_button_box_get_spacing" - external get_child_width : [>`bbox] obj -> int - = "ml_gtk_button_box_get_child_min_width" - external get_child_height : [>`bbox] obj -> int - = "ml_gtk_button_box_get_child_min_height" - external get_child_ipadx : [>`bbox] obj -> int - = "ml_gtk_button_box_get_child_ipad_x" - external get_child_ipady : [>`bbox] obj -> int - = "ml_gtk_button_box_get_child_ipad_y" - external get_layout : [>`bbox] obj -> bbox_style - = "ml_gtk_button_box_get_layout_style" - external set_spacing : [>`bbox] obj -> int -> unit - = "ml_gtk_button_box_set_spacing" - external set_child_size : [>`bbox] obj -> width:int -> height:int -> unit - = "ml_gtk_button_box_set_child_size" - external set_child_ipadding : [>`bbox] obj -> x:int -> y:int -> unit - = "ml_gtk_button_box_set_child_ipadding" - external set_layout : [>`bbox] obj -> bbox_style -> unit - = "ml_gtk_button_box_set_layout" - let set_child_size w ?width ?height () = - set_child_size w ~width:(may_default get_child_width w ~opt:width) - ~height:(may_default get_child_height w ~opt:height) - let set_child_ipadding w ?x ?y () = - set_child_ipadding w - ~x:(may_default get_child_ipadx w ~opt:x) - ~y:(may_default get_child_ipady w ~opt:y) - let set ?spacing ?child_width ?child_height ?child_ipadx - ?child_ipady ?layout w = - may spacing ~f:(set_spacing w); - if child_width <> None || child_height <> None then - set_child_size w ?width:child_width ?height:child_height (); - if child_ipadx <> None || child_ipady <> None then - set_child_ipadding w ?x:child_ipadx ?y:child_ipady (); - may layout ~f:(set_layout w) - external set_child_size_default : width:int -> height:int -> unit - = "ml_gtk_button_box_set_child_size_default" - external set_child_ipadding_default : x:int -> y:int -> unit - = "ml_gtk_button_box_set_child_ipadding_default" - external create_hbbox : unit -> button_box obj = "ml_gtk_hbutton_box_new" - external create_vbbox : unit -> button_box obj = "ml_gtk_vbutton_box_new" - let create (dir : orientation) = - if dir = `HORIZONTAL then create_hbbox () else create_vbbox () -end - -module Fixed = struct - let cast w : fixed obj = Object.try_cast w "GtkFixed" - external create : unit -> fixed obj = "ml_gtk_fixed_new" - external put : [>`fixed] obj -> [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_fixed_put" - external move : [>`fixed] obj -> [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_fixed_move" -end - -module Layout = struct - let cast w : layout obj = Object.try_cast w "GtkLayout" - external create : - [>`adjustment] optobj -> [>`adjustment] optobj -> layout obj - = "ml_gtk_layout_new" - external put : [>`layout] obj -> [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_layout_put" - external move : [>`layout] obj -> [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_layout_move" - external set_size : [>`layout] obj -> width:int -> height:int -> unit - = "ml_gtk_layout_set_size" - external get_hadjustment : [>`layout] obj -> adjustment obj - = "ml_gtk_layout_get_hadjustment" - external get_vadjustment : [>`layout] obj -> adjustment obj - = "ml_gtk_layout_get_vadjustment" - external set_hadjustment : [>`layout] obj -> [>`adjustment] obj -> unit - = "ml_gtk_layout_set_hadjustment" - external set_vadjustment : [>`layout] obj -> [>`adjustment] obj -> unit - = "ml_gtk_layout_set_vadjustment" - external freeze : [>`layout] obj -> unit - = "ml_gtk_layout_freeze" - external thaw : [>`layout] obj -> unit - = "ml_gtk_layout_thaw" - external get_height : [>`layout] obj -> int - = "ml_gtk_layout_get_height" - external get_width : [>`layout] obj -> int - = "ml_gtk_layout_get_width" - let set_size ?width ?height w = - set_size w ~width:(may_default get_width w ~opt:width) - ~height:(may_default get_height w ~opt:height) -end - - -module Packer = struct - let cast w : packer obj = Object.try_cast w "GtkPacker" - external create : unit -> packer obj = "ml_gtk_packer_new" - external add : - [>`packer] obj -> [>`widget] obj -> - ?side:side_type -> ?anchor:anchor_type -> - ?options:packer_options list -> - ?border_width:int -> ?pad_x:int -> ?pad_y:int -> - ?i_pad_x:int -> ?i_pad_y:int -> unit - = "ml_gtk_packer_add_bc" "ml_gtk_packer_add" - external add_defaults : - [>`packer] obj -> [>`widget] obj -> - ?side:side_type -> ?anchor:anchor_type -> - ?options:packer_options list -> unit - = "ml_gtk_packer_add_defaults" - external set_child_packing : - [>`packer] obj -> [>`widget] obj -> - ?side:side_type -> ?anchor:anchor_type -> - ?options:packer_options list -> - ?border_width:int -> ?pad_x:int -> ?pad_y:int -> - ?i_pad_x:int -> ?i_pad_y:int -> unit - = "ml_gtk_packer_set_child_packing_bc" "ml_gtk_packer_set_child_packing" - external reorder_child : [>`packer] obj -> [>`widget] obj -> pos:int -> unit - = "ml_gtk_packer_reorder_child" - external set_spacing : [>`packer] obj -> int -> unit - = "ml_gtk_packer_set_spacing" - external set_defaults : - [>`packer] obj -> ?border_width:int -> ?pad_x:int -> ?pad_y:int -> - ?i_pad_x:int -> ?i_pad_y:int -> unit -> unit - = "ml_gtk_packer_set_defaults_bc" "ml_gtk_packer_set_defaults" - - let build_options ?(expand=false) ?(fill=`BOTH) () = - (if expand then [`PACK_EXPAND] else []) @ - (match (fill : expand_type) with `NONE -> [] - | `X -> [`FILL_X] - | `Y -> [`FILL_Y] - | `BOTH -> [`FILL_X;`FILL_Y]) -end - -module Paned = struct - let cast w : paned obj = Object.try_cast w "GtkPaned" - external add1 : [>`paned] obj -> [>`widget] obj -> unit - = "ml_gtk_paned_add1" - external add2 : [>`paned] obj -> [>`widget] obj -> unit - = "ml_gtk_paned_add2" - external set_handle_size : [>`paned] obj -> int -> unit - = "ml_gtk_paned_set_handle_size" - external set_gutter_size : [>`paned] obj -> int -> unit - = "ml_gtk_paned_set_gutter_size" - let set ?handle_size ?gutter_size w = - may ~f:(set_handle_size w) handle_size; - may ~f:(set_gutter_size w) gutter_size - external child1 : [>`paned] obj -> widget obj = "ml_gtk_paned_child1" - external child2 : [>`paned] obj -> widget obj = "ml_gtk_paned_child2" - external handle_size : [>`paned] obj -> int = "ml_gtk_paned_handle_size" - external gutter_size : [>`paned] obj -> int = "ml_gtk_paned_handle_size" - external hpaned_new : unit -> paned obj = "ml_gtk_hpaned_new" - external vpaned_new : unit -> paned obj = "ml_gtk_vpaned_new" - let create (dir : orientation) = - if dir = `HORIZONTAL then hpaned_new () else vpaned_new () -end - -module Table = struct - let cast w : table obj = Object.try_cast w "GtkTable" - external create : int -> int -> homogeneous:bool -> table obj - = "ml_gtk_table_new" - let create ~rows:r ~columns:c ?(homogeneous=false) () = - create r c ~homogeneous - external attach : - [>`table] obj -> [>`widget] obj -> left:int -> right:int -> - top:int -> bottom:int -> xoptions:attach_options list -> - yoptions:attach_options list -> xpadding:int -> ypadding:int -> unit - = "ml_gtk_table_attach_bc" "ml_gtk_table_attach" - let has_x : expand_type -> bool = - function `X|`BOTH -> true | `Y|`NONE -> false - let has_y : expand_type -> bool = - function `Y|`BOTH -> true | `X|`NONE -> false - let attach t ~left ~top ?(right=left+1) ?(bottom=top+1) - ?(expand=`NONE) ?(fill=`BOTH) ?(shrink=`NONE) - ?(xpadding=0) ?(ypadding=0) w = - let xoptions = if has_x shrink then [`SHRINK] else [] in - let xoptions = if has_x fill then `FILL::xoptions else xoptions in - let xoptions = if has_x expand then `EXPAND::xoptions else xoptions in - let yoptions = if has_y shrink then [`SHRINK] else [] in - let yoptions = if has_y fill then `FILL::yoptions else yoptions in - let yoptions = if has_y expand then `EXPAND::yoptions else yoptions in - attach t w ~left ~top ~right ~bottom ~xoptions ~yoptions - ~xpadding ~ypadding - external set_row_spacing : [>`table] obj -> int -> int -> unit - = "ml_gtk_table_set_row_spacing" - external set_col_spacing : [>`table] obj -> int -> int -> unit - = "ml_gtk_table_set_col_spacing" - external set_row_spacings : [>`table] obj -> int -> unit - = "ml_gtk_table_set_row_spacings" - external set_col_spacings : [>`table] obj -> int -> unit - = "ml_gtk_table_set_col_spacings" - external set_homogeneous : [>`table] obj -> bool -> unit - = "ml_gtk_table_set_homogeneous" - let set ?homogeneous ?row_spacings ?col_spacings w = - may row_spacings ~f:(set_row_spacings w); - may col_spacings ~f:(set_col_spacings w); - may homogeneous ~f:(set_homogeneous w) -end - -module Notebook = struct - let cast w : notebook obj = Object.try_cast w "GtkNotebook" - external create : unit -> notebook obj = "ml_gtk_notebook_new" - external insert_page : - [>`notebook] obj -> [>`widget] obj -> tab_label:[>`widget] optobj -> - menu_label:[>`widget] optobj -> pos:int -> unit - = "ml_gtk_notebook_insert_page_menu" - (* default is append to end *) - external remove_page : [>`notebook] obj -> int -> unit - = "ml_gtk_notebook_remove_page" - external get_current_page : [>`notebook] obj -> int - = "ml_gtk_notebook_get_current_page" - external set_page : [>`notebook] obj -> int -> unit - = "ml_gtk_notebook_set_page" - external set_tab_pos : [>`notebook] obj -> position -> unit - = "ml_gtk_notebook_set_tab_pos" - external set_homogeneous_tabs : [>`notebook] obj -> bool -> unit - = "ml_gtk_notebook_set_homogeneous_tabs" - external set_show_tabs : [>`notebook] obj -> bool -> unit - = "ml_gtk_notebook_set_show_tabs" - external set_show_border : [>`notebook] obj -> bool -> unit - = "ml_gtk_notebook_set_show_border" - external set_scrollable : [>`notebook] obj -> bool -> unit - = "ml_gtk_notebook_set_scrollable" - external set_tab_border : [>`notebook] obj -> int -> unit - = "ml_gtk_notebook_set_tab_border" - external popup_enable : [>`notebook] obj -> unit - = "ml_gtk_notebook_popup_enable" - external popup_disable : [>`notebook] obj -> unit - = "ml_gtk_notebook_popup_disable" - external get_nth_page : [>`notebook] obj -> int -> widget obj - = "ml_gtk_notebook_get_nth_page" - external page_num : [>`notebook] obj -> [>`widget] obj -> int - = "ml_gtk_notebook_page_num" - external next_page : [>`notebook] obj -> unit - = "ml_gtk_notebook_next_page" - external prev_page : [>`notebook] obj -> unit - = "ml_gtk_notebook_prev_page" - external get_tab_label : [>`notebook] obj -> [>`widget] obj -> widget obj - = "ml_gtk_notebook_get_tab_label" - external set_tab_label : - [>`notebook] obj -> [>`widget] obj -> [>`widget] obj -> unit - = "ml_gtk_notebook_set_tab_label" - external get_menu_label : [>`notebook] obj -> [>`widget] obj -> widget obj - = "ml_gtk_notebook_get_menu_label" - external set_menu_label : - [>`notebook] obj -> [>`widget] obj -> [>`widget] obj -> unit - = "ml_gtk_notebook_set_menu_label" - external reorder_child : [>`notebook] obj -> [>`widget] obj -> int -> unit - = "ml_gtk_notebook_reorder_child" - - let set_popup w = function - true -> popup_enable w - | false -> popup_disable w - let set ?page ?tab_pos ?show_tabs ?homogeneous_tabs - ?show_border ?scrollable ?tab_border ?popup w = - let may_set f = may ~f:(f w) in - may_set set_page page; - may_set set_tab_pos tab_pos; - may_set set_show_tabs show_tabs; - may_set set_homogeneous_tabs homogeneous_tabs; - may_set set_show_border show_border; - may_set set_scrollable scrollable; - may_set set_tab_border tab_border; - may_set set_popup popup - module Signals = struct - open GtkArgv - open GtkSignal - let marshal_page f argv = function - | _ :: INT page :: _ -> f page - | _ -> invalid_arg "GtkPack.Notebook.Signals.marshal_page" - let switch_page : ([>`notebook],_) t = - { name = "switch_page"; marshaller = marshal_page } - end -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkRange.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkRange.ml deleted file mode 100644 index b67e49b2e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkRange.ml +++ /dev/null @@ -1,147 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Progress = struct - let cast w : progress obj = Object.try_cast w "GtkProgress" - external set_show_text : [>`progress] obj -> bool -> unit - = "ml_gtk_progress_set_show_text" - external set_text_alignment : - [>`progress] obj -> ?x:float -> ?y:float -> unit -> unit - = "ml_gtk_progress_set_show_text" - external set_format_string : [>`progress] obj -> string -> unit - = "ml_gtk_progress_set_format_string" - external set_adjustment : [>`progress] obj -> [>`adjustment] obj -> unit - = "ml_gtk_progress_set_adjustment" - external configure : - [>`progress] obj -> current:float -> min:float -> max:float -> unit - = "ml_gtk_progress_configure" - external set_percentage : [>`progress] obj -> float -> unit - = "ml_gtk_progress_set_percentage" - external set_value : [>`progress] obj -> float -> unit - = "ml_gtk_progress_set_value" - external get_value : [>`progress] obj -> float - = "ml_gtk_progress_get_value" - external get_percentage : [>`progress] obj -> float - = "ml_gtk_progress_get_current_percentage" - external set_activity_mode : [>`progress] obj -> bool -> unit - = "ml_gtk_progress_set_activity_mode" - external get_current_text : [>`progress] obj -> string - = "ml_gtk_progress_get_current_text" - external get_adjustment : [>`progress] obj -> adjustment obj - = "ml_gtk_progress_get_adjustment" - let set ?value ?percentage ?activity_mode - ?show_text ?format_string ?text_xalign ?text_yalign w = - may value ~f:(set_value w); - may percentage ~f:(set_percentage w); - may activity_mode ~f:(set_activity_mode w); - may show_text ~f:(set_show_text w); - may format_string ~f:(set_format_string w); - if text_xalign <> None || text_yalign <> None then - set_text_alignment w ?x:text_xalign ?y:text_yalign () -end - -module ProgressBar = struct - let cast w : progress_bar obj = Object.try_cast w "GtkProgressBar" - external create : unit -> progress_bar obj = "ml_gtk_progress_bar_new" - external create_with_adjustment : [>`adjustment] obj -> progress_bar obj - = "ml_gtk_progress_bar_new_with_adjustment" - external set_bar_style : - [>`progressbar] obj -> [`CONTINUOUS|`DISCRETE] -> unit - = "ml_gtk_progress_bar_set_bar_style" - external set_discrete_blocks : [>`progressbar] obj -> int -> unit - = "ml_gtk_progress_bar_set_discrete_blocks" - external set_activity_step : [>`progressbar] obj -> int -> unit - = "ml_gtk_progress_bar_set_activity_step" - external set_activity_blocks : [>`progressbar] obj -> int -> unit - = "ml_gtk_progress_bar_set_activity_blocks" - external set_orientation : - [>`progressbar] obj -> Tags.progress_bar_orientation -> unit - = "ml_gtk_progress_bar_set_orientation" - let set ?bar_style ?discrete_blocks ?activity_step ?activity_blocks w = - let may_set f opt = may opt ~f:(f w) in - may_set set_bar_style bar_style; - may_set set_discrete_blocks discrete_blocks; - may_set set_activity_step activity_step; - may_set set_activity_blocks activity_blocks -end - -module Range = struct - let cast w : range obj = Object.try_cast w "GtkRange" - external coerce : [>`range] obj -> range obj = "%identity" - external get_adjustment : [>`range] obj -> adjustment obj - = "ml_gtk_range_get_adjustment" - external set_adjustment : [>`range] obj -> [>`adjustment] obj -> unit - = "ml_gtk_range_set_adjustment" - external set_update_policy : [>`range] obj -> update_type -> unit - = "ml_gtk_range_set_update_policy" - let set ?adjustment ?update_policy w = - may adjustment ~f:(set_adjustment w); - may update_policy ~f:(set_update_policy w) -end - -module Scale = struct - let cast w : scale obj = Object.try_cast w "GtkScale" - external hscale_new : [>`adjustment] optobj -> scale obj - = "ml_gtk_hscale_new" - external vscale_new : [>`adjustment] optobj -> scale obj - = "ml_gtk_vscale_new" - let create ?adjustment (dir : orientation) = - let create = if dir = `HORIZONTAL then hscale_new else vscale_new in - create (Gpointer.optboxed adjustment) - external set_digits : [>`scale] obj -> int -> unit - = "ml_gtk_scale_set_digits" - external set_draw_value : [>`scale] obj -> bool -> unit - = "ml_gtk_scale_set_draw_value" - external set_value_pos : [>`scale] obj -> position -> unit - = "ml_gtk_scale_set_value_pos" - external get_value_width : [>`scale] obj -> int - = "ml_gtk_scale_get_value_width" - external draw_value : [>`scale] obj -> unit - = "ml_gtk_scale_draw_value" - let set ?digits ?draw_value ?value_pos w = - may digits ~f:(set_digits w); - may draw_value ~f:(set_draw_value w); - may value_pos ~f:(set_value_pos w) -end - -module Scrollbar = struct - let cast w : scrollbar obj = Object.try_cast w "GtkScrollbar" - external hscrollbar_new : [>`adjustment] optobj -> scrollbar obj - = "ml_gtk_hscrollbar_new" - external vscrollbar_new : [>`adjustment] optobj -> scrollbar obj - = "ml_gtk_vscrollbar_new" - let create ?adjustment (dir : orientation) = - let create = if dir = `HORIZONTAL then hscrollbar_new else vscrollbar_new - in create (Gpointer.optboxed adjustment) -end - -module Ruler = struct - let cast w : ruler obj = Object.try_cast w "GtkRuler" - external hruler_new : unit -> ruler obj = "ml_gtk_hruler_new" - external vruler_new : unit -> ruler obj = "ml_gtk_vruler_new" - let create (dir : orientation) = - if dir = `HORIZONTAL then hruler_new () else vruler_new () - external set_metric : [>`ruler] obj -> metric_type -> unit - = "ml_gtk_ruler_set_metric" - external set_range : - [>`ruler] obj -> - lower:float -> upper:float -> position:float -> max_size:float -> unit - = "ml_gtk_ruler_set_range" - external get_lower : [>`ruler] obj -> float = "ml_gtk_ruler_get_lower" - external get_upper : [>`ruler] obj -> float = "ml_gtk_ruler_get_upper" - external get_position : [>`ruler] obj -> float = "ml_gtk_ruler_get_position" - external get_max_size : [>`ruler] obj -> float = "ml_gtk_ruler_get_max_size" - let set_range ?lower ?upper ?position ?max_size w = - set_range w ~lower:(may_default get_lower w ~opt:lower) - ~upper:(may_default get_upper w ~opt:upper) - ~position:(may_default get_position w ~opt:position) - ~max_size:(may_default get_max_size w ~opt:max_size) - let set ?metric ?lower ?upper ?position ?max_size w = - may metric ~f:(set_metric w); - if lower <> None || upper <> None || position <> None || max_size <> None - then set_range w ?lower ?upper ?position ?max_size -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.ml deleted file mode 100644 index 8fa460288..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.ml +++ /dev/null @@ -1,65 +0,0 @@ -(* $Id$ *) - -open Gtk - -type id -type ('a,'b) t = - { name: string; - marshaller: ('b -> GtkArgv.t -> GtkArgv.data list -> unit) } - -let enter_callback = ref (fun () -> ()) -and exit_callback = ref (fun () -> ()) - -let stop_emit_ref = ref false -let stop_emit () = stop_emit_ref := true - -type saved_state = State of bool -let push_callback () = - !enter_callback (); - let old = !stop_emit_ref in - stop_emit_ref := false; - State old - -let pop_callback (State old) = - let res = !stop_emit_ref in - stop_emit_ref := old; - !exit_callback (); - res - -external connect : - 'a obj -> name:string -> callback:(GtkArgv.t -> unit) -> after:bool -> id - = "ml_gtk_signal_connect" -external emit_stop_by_name : 'a obj -> name:string -> unit - = "ml_gtk_signal_emit_stop_by_name" -let connect ~(sgn : ('a, _) t) ~callback ?(after=false) (obj : 'a obj) = - let callback argv = - let old = push_callback () in - let exn = - try sgn.marshaller callback argv (GtkArgv.get_args argv); None - with exn -> Some exn - in - if pop_callback old then emit_stop_by_name obj ~name:sgn.name; - Gaux.may ~f:raise exn - in - connect obj ~name:sgn.name ~callback ~after -external disconnect : 'a obj -> id -> unit - = "ml_gtk_signal_disconnect" -external handler_block : 'a obj -> id -> unit - = "ml_gtk_signal_handler_block" -external handler_unblock : 'a obj -> id -> unit - = "ml_gtk_signal_handler_unblock" - -let marshal_unit f _ _ = f () -let marshal_int f _ = function - | GtkArgv.INT n :: _ -> f n - | _ -> invalid_arg "GtkSignal.marshal_int" - -let emit (obj : 'a obj) ~(sgn : ('a, 'b) t) - ~(emitter : 'a obj -> name:string -> 'b) = - emitter obj ~name:sgn.name -external emit_none : 'a obj -> name:string -> unit -> unit - = "ml_gtk_signal_emit_none" -let emit_unit obj ~sgn = emit obj ~emitter:emit_none ~sgn () -external emit_int : 'a obj -> name:string -> int -> unit - = "ml_gtk_signal_emit_int" -let emit_int = emit ~emitter:emit_int diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.mli deleted file mode 100644 index 0ef2ab2ea..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.mli +++ /dev/null @@ -1,45 +0,0 @@ -(* $Id$ *) - -open Gtk - -type id -type ('a,'b) t = - { name: string; - marshaller: ('b -> GtkArgv.t -> GtkArgv.data list -> unit) } - -val stop_emit : unit -> unit - (* Call [stop_emit ()] in a callback to prohibit further handling - of the current signal invocation, by calling [emit_stop_by_name]. - Be careful about where you use it, since the concept of current - signal may be tricky. *) - -val connect : - sgn:('a, 'b) t -> callback:'b -> ?after:bool -> 'a obj -> id - (* You may use [stop_emit] inside the callback *) - -external disconnect : 'a obj -> id -> unit - = "ml_gtk_signal_disconnect" -external emit_stop_by_name : 'a obj -> name:string -> unit - = "ml_gtk_signal_emit_stop_by_name" - (* Unsafe: use [stop_emit] instead. *) -external handler_block : 'a obj -> id -> unit - = "ml_gtk_signal_handler_block" -external handler_unblock : 'a obj -> id -> unit - = "ml_gtk_signal_handler_unblock" - -(* Some marshaller functions, to build signals *) -val marshal_unit : (unit -> unit) -> GtkArgv.t -> GtkArgv.data list -> unit -val marshal_int : (int -> unit) -> GtkArgv.t -> GtkArgv.data list -> unit - -(* Emitter functions *) -val emit : - 'a obj -> sgn:('a, 'b) t -> emitter:('a obj -> name:string -> 'b) -> 'b -val emit_unit : 'a obj -> sgn:('a, unit -> unit) t -> unit -val emit_int : 'a obj -> sgn:('a, int -> unit) t -> int -> unit - -(* Internal functions. *) -val enter_callback : (unit -> unit) ref -val exit_callback : (unit -> unit) ref -type saved_state -val push_callback : unit -> saved_state -val pop_callback : saved_state -> bool diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThInit.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThInit.ml deleted file mode 100644 index 517f80be4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThInit.ml +++ /dev/null @@ -1,5 +0,0 @@ -(* $Id$ *) - -(* Start the main thread in a threaded toplevel *) - -let thread = GtkThread.start () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThread.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThread.ml deleted file mode 100644 index 3ab577e3e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThread.ml +++ /dev/null @@ -1,33 +0,0 @@ -(* $Id$ *) - -open GtkMain - -(* We check first whether there are some event pending, and run - some iterations. We then need to delay, thus focing a thread switch. *) - -let main () = - try - let loop = (Glib.Main.create true) in - Main.loops := loop :: !Main.loops; - while Glib.Main.is_running loop do - let i = ref 0 in - while !i < 100 && Glib.Main.pending () do - Glib.Main.iteration true; - incr i - done; - Thread.delay 0.001 - done; - Main.loops := List.tl !Main.loops - with exn -> - Main.loops := List.tl !Main.loops; - raise exn - -let start = Thread.create main - -let _ = - let mutex = Mutex.create () in - let depth = ref 0 in - GtkSignal.enter_callback := - (fun () -> if !depth = 0 then Mutex.lock mutex; incr depth); - GtkSignal.exit_callback := - (fun () -> decr depth; if !depth = 0 then Mutex.unlock mutex) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkTree.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkTree.ml deleted file mode 100644 index 926074167..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkTree.ml +++ /dev/null @@ -1,122 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module TreeItem = struct - let cast w : tree_item obj = Object.try_cast w "GtkTreeItem" - external create : unit -> tree_item obj = "ml_gtk_tree_item_new" - external create_with_label : string -> tree_item obj - = "ml_gtk_tree_item_new_with_label" - let create ?label () = - match label with None -> create () - | Some label -> create_with_label label - external set_subtree : [>`treeitem] obj -> [>`widget] obj -> unit - = "ml_gtk_tree_item_set_subtree" - external remove_subtree : [>`treeitem] obj -> unit - = "ml_gtk_tree_item_remove_subtree" - external expand : [>`treeitem] obj -> unit - = "ml_gtk_tree_item_expand" - external collapse : [>`treeitem] obj -> unit - = "ml_gtk_tree_item_collapse" - external subtree : [>`treeitem] obj -> tree obj - = "ml_GTK_TREE_ITEM_SUBTREE" - module Signals = struct - open GtkSignal - let expand : ([>`treeitem],_) t = - { name = "expand"; marshaller = marshal_unit } - let collapse : ([>`treeitem],_) t = - { name = "collapse"; marshaller = marshal_unit } - end -end - -module Tree = struct - let cast w : tree obj = Object.try_cast w "GtkTree" - external coerce : [>`tree] obj -> tree obj = "%identity" - external create : unit -> tree obj = "ml_gtk_tree_new" - external insert : [>`tree] obj -> [>`treeitem] obj -> pos:int -> unit - = "ml_gtk_tree_insert" - external remove_items : [>`tree] obj -> [>`treeitem] obj list -> unit - = "ml_gtk_tree_remove_items" - external clear_items : [>`tree] obj -> start:int -> stop:int -> unit - = "ml_gtk_tree_clear_items" - external select_item : [>`tree] obj -> pos:int -> unit - = "ml_gtk_tree_select_item" - external unselect_item : [>`tree] obj -> pos:int -> unit - = "ml_gtk_tree_unselect_item" - external child_position : [>`tree] obj -> [>`treeitem] obj -> int - = "ml_gtk_tree_child_position" - external set_selection_mode : [>`tree] obj -> selection_mode -> unit - = "ml_gtk_tree_set_selection_mode" - external set_view_mode : [>`tree] obj -> [`LINE|`ITEM] -> unit - = "ml_gtk_tree_set_view_mode" - external set_view_lines : [>`tree] obj -> bool -> unit - = "ml_gtk_tree_set_view_lines" - external selection : [>`tree] obj -> tree_item obj list = - "ml_gtk_tree_selection" - let set ?selection_mode ?view_mode ?view_lines w = - let may_set f = may ~f:(f w) in - may_set set_selection_mode selection_mode; - may_set set_view_mode view_mode; - may_set set_view_lines view_lines - module Signals = struct - open GtkSignal - let selection_changed : ([>`tree],_) t = - { name = "selection_changed"; marshaller = marshal_unit } - let select_child : ([>`tree],_) t = - { name = "select_child"; marshaller = Widget.Signals.marshal } - let unselect_child : ([>`tree],_) t = - { name = "unselect_child"; marshaller = Widget.Signals.marshal } - end -end -(* -module CTree = struct - type t - type node = [`ctree] obj * t - let cast w : ctree obj = Object.try_cast w "GtkCTree" - external create : cols:int -> treecol:int -> ctree obj = "ml_gtk_ctree_new" - external insert_node : - [>`ctree] obj -> ?parent:node -> ?sibling:node -> - titles:optstring array -> - spacing:int -> ?pclosed:Gdk.pixmap -> ?mclosed:Gdk.bitmap obj -> - ?popened:Gdk.pixmap -> ?mopened:Gdk.bitmap obj -> - is_leaf:bool -> expanded:bool -> node - = "ml_gtk_ctree_insert_node_bc" "ml_gtk_ctree_insert_node" - let insert_node' - w ?parent ?sibling ?(spacing = 0) ?(is_leaf = true) - ?(expanded = false) - ?pclosed ?mclosed ?popened ?mopened titles = - let len = GtkList.CList.get_columns w in - if List.length titles > len then invalid_arg "CTree.insert_node"; - let arr = Array.create ~len None in - List.fold_left titles ~acc:0 - ~f:(fun ~acc text -> arr.(acc) <- Some text; acc+1); - insert_node w - ?parent ?sibling ~titles:(Array.map ~f:optstring arr) - ~spacing ~is_leaf ~expanded - ?pclosed ?mclosed ?popened ?mopened - external node_set_row_data : [>`ctree] obj -> node:node -> Obj.t -> unit - = "ml_gtk_ctree_node_set_row_data" - external node_get_row_data : [>`ctree] obj -> node:node -> Obj.t - = "ml_gtk_ctree_node_get_row_data" - external set_indent : [>`ctree] obj -> int -> unit - = "ml_gtk_ctree_set_indent" - module Signals = struct - open GtkSignal - let marshal_select f argv = - let node : node = - match GtkArgv.get_pointer argv ~pos:0 with - Some p -> Obj.magic p - | None -> invalid_arg "GtkTree.CTree.Signals.marshal_select" - in - f ~node ~column:(GtkArgv.get_int argv ~pos:1) - - let tree_select_row : ([>`ctree],_) t = - { name = "tree_select_row"; marshaller = marshal_select } - let tree_unselect_row : ([>`ctree],_) t = - { name = "tree_unselect_row"; marshaller = marshal_select } - end -end -*) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkWindow.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkWindow.ml deleted file mode 100644 index ffe00e921..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkWindow.ml +++ /dev/null @@ -1,189 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Window = struct - let cast w : window obj = Object.try_cast w "GtkWindow" - external coerce : [>`window] obj -> window obj = "%identity" - external create : window_type -> window obj = "ml_gtk_window_new" - external set_title : [>`window] obj -> string -> unit - = "ml_gtk_window_set_title" - external set_wmclass : [>`window] obj -> name:string -> clas:string -> unit - = "ml_gtk_window_set_title" - external get_wmclass_name : [>`window] obj -> string - = "ml_gtk_window_get_wmclass_name" - external get_wmclass_class : [>`window] obj -> string - = "ml_gtk_window_get_wmclass_class" - (* set_focus/default are called by Widget.grab_focus/default *) - external set_focus : [>`window] obj -> [>`widget] obj -> unit - = "ml_gtk_window_set_focus" - external set_default : [>`window] obj -> [>`widget] obj -> unit - = "ml_gtk_window_set_default" - external set_policy : - [>`window] obj -> - allow_shrink:bool -> allow_grow:bool -> auto_shrink:bool -> unit - = "ml_gtk_window_set_policy" - external get_allow_shrink : [>`window] obj -> bool - = "ml_gtk_window_get_allow_shrink" - external get_allow_grow : [>`window] obj -> bool - = "ml_gtk_window_get_allow_grow" - external get_auto_shrink : [>`window] obj -> bool - = "ml_gtk_window_get_auto_shrink" - external activate_focus : [>`window] obj -> bool - = "ml_gtk_window_activate_focus" - external activate_default : [>`window] obj -> bool - = "ml_gtk_window_activate_default" - external set_modal : [>`window] obj -> bool -> unit - = "ml_gtk_window_set_modal" - external set_default_size : - [>`window] obj -> width:int -> height:int -> unit - = "ml_gtk_window_set_default_size" - external set_position : [>`window] obj -> window_position -> unit - = "ml_gtk_window_set_position" - external set_transient_for : [>`window] obj ->[>`window] obj -> unit - = "ml_gtk_window_set_transient_for" - - let set_wmclass ?name ?clas:wm_class w = - set_wmclass w ~name:(may_default get_wmclass_name w ~opt:name) - ~clas:(may_default get_wmclass_class w ~opt:wm_class) - let set_policy ?allow_shrink ?allow_grow ?auto_shrink w = - set_policy w - ~allow_shrink:(may_default get_allow_shrink w ~opt:allow_shrink) - ~allow_grow:(may_default get_allow_grow w ~opt:allow_grow) - ~auto_shrink:(may_default get_auto_shrink w ~opt:auto_shrink) - let set ?title ?wm_name ?wm_class ?position ?allow_shrink ?allow_grow - ?auto_shrink ?modal ?(x = -2) ?(y = -2) w = - may title ~f:(set_title w); - if wm_name <> None || wm_class <> None then - set_wmclass w ?name:wm_name ?clas:wm_class; - may position ~f:(set_position w); - if allow_shrink <> None || allow_grow <> None || auto_shrink <> None then - set_policy w ?allow_shrink ?allow_grow ?auto_shrink; - may ~f:(set_modal w) modal; - if x <> -2 || y <> -2 then Widget.set_uposition w ~x ~y - external add_accel_group : [>`window] obj -> accel_group -> unit - = "ml_gtk_window_add_accel_group" - external remove_accel_group : - [>`window] obj -> accel_group -> unit - = "ml_gtk_window_remove_accel_group" - external activate_focus : [>`window] obj -> unit - = "ml_gtk_window_activate_focus" - external activate_default : [>`window] obj -> unit - = "ml_gtk_window_activate_default" - module Signals = struct - open GtkSignal - let move_resize : ([>`window],_) t = - { name = "move_resize"; marshaller = marshal_unit } - let set_focus : ([>`window],_) t = - { name = "set_focus"; marshaller = Widget.Signals.marshal_opt } - end -end - -module Dialog = struct - let cast w : dialog obj = Object.try_cast w "GtkDialog" - external coerce : [>`dialog] obj -> dialog obj = "%identity" - external create : unit -> dialog obj = "ml_gtk_dialog_new" - external action_area : [>`dialog] obj -> box obj - = "ml_GtkDialog_action_area" - external vbox : [>`dialog] obj -> box obj - = "ml_GtkDialog_vbox" -end - -module InputDialog = struct - let cast w : input_dialog obj = Object.try_cast w "GtkInputDialog" - external create : unit -> input_dialog obj = "ml_gtk_input_dialog_new" - module Signals = struct - open GtkSignal - let enable_device : ([>`inputdialog],_) t = - { name = "enable_device"; marshaller = marshal_int } - let disable_device : ([>`inputdialog],_) t = - { name = "disable_device"; marshaller = marshal_int } - end -end - -module FileSelection = struct - let cast w : file_selection obj = Object.try_cast w "GtkFileSelection" - external create : string -> file_selection obj = "ml_gtk_file_selection_new" - external set_filename : [>`filesel] obj -> string -> unit - = "ml_gtk_file_selection_set_filename" - external get_filename : [>`filesel] obj -> string - = "ml_gtk_file_selection_get_filename" - external show_fileop_buttons : [>`filesel] obj -> unit - = "ml_gtk_file_selection_show_fileop_buttons" - external hide_fileop_buttons : [>`filesel] obj -> unit - = "ml_gtk_file_selection_hide_fileop_buttons" - external get_ok_button : [>`filesel] obj -> button obj - = "ml_gtk_file_selection_get_ok_button" - external get_cancel_button : [>`filesel] obj -> button obj - = "ml_gtk_file_selection_get_cancel_button" - external get_help_button : [>`filesel] obj -> button obj - = "ml_gtk_file_selection_get_help_button" - let set_fileop_buttons w = function - true -> show_fileop_buttons w - | false -> hide_fileop_buttons w - let set ?filename ?fileop_buttons w = - may filename ~f:(set_filename w); - may fileop_buttons ~f:(set_fileop_buttons w) -end - -module FontSelectionDialog = struct - let cast w : font_selection_dialog obj = - Object.try_cast w "GtkFontSelectionDialog" - external create : ?title:string -> unit -> font_selection_dialog obj - = "ml_gtk_font_selection_dialog_new" - external font_selection : [>`fontseldialog] obj -> font_selection obj - = "ml_gtk_font_selection_dialog_fontsel" - external ok_button : [>`fontseldialog] obj -> button obj - = "ml_gtk_font_selection_dialog_ok_button" - external apply_button : [>`fontseldialog] obj -> button obj - = "ml_gtk_font_selection_dialog_apply_button" - external cancel_button : [>`fontseldialog] obj -> button obj - = "ml_gtk_font_selection_dialog_cancel_button" -(* - type null_terminated - let null_terminated arg : null_terminated = - match arg with None -> Obj.magic Gpointer.raw_null - | Some l -> - let len = List.length l in - let arr = Array.create (len + 1) "" in - let rec loop i = function - [] -> arr.(i) <- Obj.magic Gpointer.raw_null - | s::l -> arr.(i) <- s; loop (i+1) l - in loop 0 l; - Obj.magic (arr : string array) - external get_font : [>`fontseldialog] obj -> Gdk.font - = "ml_gtk_font_selection_dialog_get_font" - let get_font w = - try Some (get_font w) with Gpointer.Null -> None - external get_font_name : [>`fontseldialog] obj -> string - = "ml_gtk_font_selection_dialog_get_font_name" - let get_font_name w = - try Some (get_font_name w) with Gpointer.Null -> None - external set_font_name : [>`fontseldialog] obj -> string -> unit - = "ml_gtk_font_selection_dialog_set_font_name" - external set_filter : - [>`fontseldialog] obj -> font_filter_type -> font_type list -> - null_terminated -> null_terminated -> null_terminated -> - null_terminated -> null_terminated -> null_terminated -> unit - = "ml_gtk_font_selection_dialog_set_filter_bc" - "ml_gtk_font_selection_dialog_set_filter" - let set_filter w ?kind:(tl=[`ALL]) ?foundry - ?weight ?slant ?setwidth ?spacing ?charset filter = - set_filter w filter tl (null_terminated foundry) - (null_terminated weight) (null_terminated slant) - (null_terminated setwidth) (null_terminated spacing) - (null_terminated charset) - external get_preview_text : [>`fontseldialog] obj -> string - = "ml_gtk_font_selection_dialog_get_preview_text" - external set_preview_text : [>`fontseldialog] obj -> string -> unit - = "ml_gtk_font_selection_dialog_set_preview_text" -*) -end - -module Plug = struct - let cast w : plug obj = Object.try_cast w "GtkPlug" - external create : Gdk.xid -> plug obj = "ml_gtk_plug_new" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkXmHTML.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkXmHTML.ml deleted file mode 100644 index 3bf5791a4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkXmHTML.ml +++ /dev/null @@ -1,109 +0,0 @@ -(* $Id$ *) - -open Gtk - -type string_direction = [ - | `R_TO_L - | `L_TO_R -] - -type position = [ - | `END - | `CENTER - | `BEGINNING -] - -type line_type = [ - | `SOLID - | `DASHED - | `SINGLE - | `DOUBLE - | `STRIKE - | `UNDER - | `NONE -] - -type dither_type = [ - | `QUICK - | `BEST - | `FAST - | `SLOW - | `DISABLED -] - -type xmhtml = [`widget|`container|`xmhtml] - -external create : unit -> xmhtml obj = "ml_gtk_xmhtml_new" -external freeze : [> `xmhtml] obj -> unit = "ml_gtk_xmhtml_freeze" -external thaw : [> `xmhtml] obj -> unit = "ml_gtk_xmhtml_thaw" -external source : [> `xmhtml] obj -> string -> unit = "ml_gtk_xmhtml_source" -(* external get_source : [> `xmhtml] obj -> string = "ml_gtk_xmhtml_get_source" *) -external set_string_direction : [> `xmhtml] obj -> string_direction -> unit - = "ml_gtk_xmhtml_set_string_direction" -external set_alignment : [> `xmhtml] obj -> position -> unit - = "ml_gtk_xmhtml_set_alignment" -(* external set_outline : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_outline" *) -external set_font_familty : - [> `xmhtml] obj -> family:string -> sizes:string -> unit - = "ml_gtk_xmhtml_set_font_familty" -external set_font_familty_fixed : - [> `xmhtml] obj -> family:string -> sizes:string -> unit - = "ml_gtk_xmhtml_set_font_familty_fixed" -external set_font_charset : [> `xmhtml] obj -> string -> unit - = "ml_gtk_xmhtml_set_font_charset" -external set_allow_body_colors : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_allow_body_colors" -external set_hilight_on_enter : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_hilight_on_enter" -external set_anchor_underline_type : [> `xmhtml] obj -> line_type list -> unit - = "ml_gtk_xmhtml_set_anchor_underline_type" -external set_anchor_visited_underline_type : - [> `xmhtml] obj -> line_type list -> unit - = "ml_gtk_xmhtml_set_anchor_visited_underline_type" -external set_anchor_target_underline_type : - [> `xmhtml] obj -> line_type list -> unit - = "ml_gtk_xmhtml_set_anchor_target_underline_type" -external set_allow_color_switching : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_allow_color_switching" -external set_dithering : [> `xmhtml] obj -> dither_type -> unit - = "ml_gtk_xmhtml_set_dithering" -external set_allow_font_switching : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_allow_font_switching" -external set_max_image_colors : [> `xmhtml] obj -> int -> unit - = "ml_gtk_xmhtml_set_max_image_colors" -external set_allow_images : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_allow_images" -external set_plc_intervals : - [> `xmhtml] obj -> min:int -> max:int -> default:int -> unit - = "ml_gtk_xmhtml_set_plc_intervals" -(* -external set_def_body_image_url : [> `xmhtml] obj -> string -> unit - = "ml_gtk_xmhtml_set_def_body_image_url" -*) -external set_anchor_buttons : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_anchor_buttons" -external set_anchor_cursor : [> `xmhtml] obj -> Gdk.cursor option -> unit - = "ml_gtk_xmhtml_set_anchor_cursor" -external set_topline : [> `xmhtml] obj -> int -> unit - = "ml_gtk_xmhtml_set_topline" -external get_topline : [> `xmhtml] obj -> int - = "ml_gtk_xmhtml_get_topline" -external set_freeze_animations : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_freeze_animations" -external set_screen_gamma : [> `xmhtml] obj -> float -> unit - = "ml_gtk_xmhtml_set_screen_gamma" -external set_perfect_colors : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_perfect_colors" -external set_uncompress_command : [> `xmhtml] obj -> string -> unit - = "ml_gtk_xmhtml_set_uncompress_command" -external set_strict_checking : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_strict_checking" -external set_bad_html_warnings : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_bad_html_warnings" -external set_allow_form_coloring : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_allow_form_coloring" -external set_imagemap_draw : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_imagemap_draw" -external set_alpha_processing : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_alpha_processing" diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk_tags.var b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk_tags.var deleted file mode 100644 index eb4ead78d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk_tags.var +++ /dev/null @@ -1,171 +0,0 @@ -(* $Id$ *) - -exception ml_raise_gtk - -type arrow_type = "GTK_ARROW_" - [ `UP | `DOWN | `LEFT | `RIGHT ] - -type attach_options = "GTK_" - [ `EXPAND | `SHRINK | `FILL ] - -type button_box_style = "GTK_BUTTONBOX_" - [ `DEFAULT_STYLE | `SPREAD | `EDGE | `START | `END ] - -type direction_type = "GTK_DIR_" - [ `TAB_FORWARD | `TAB_BACKWARD | `UP | `DOWN | `LEFT | `RIGHT ] - -type justification = "GTK_JUSTIFY_" - [ `LEFT | `RIGHT | `CENTER | `FILL ] - -type match_type = "GTK_MATCH_" - [ `ALL | `ALL_TAIL | `HEAD | `TAIL | `EXACT | `LAST ] - -type metric_type = "GTK_" - [ `PIXELS | `INCHES | `CENTIMETERS ] - -type orientation = "GTK_ORIENTATION_" - [ `HORIZONTAL | `VERTICAL ] - -type corner_type = "GTK_CORNER_" - [ `TOP_LEFT | `BOTTOM_LEFT | `TOP_RIGHT | `BOTTOM_RIGHT ] - -type pack_type = "GTK_PACK_" - [ `START | `END ] - -type path_type = "GTK_PATH_" - [ `WIDGET | `WIDGET_CLASS | `CLASS ] - -type policy_type = "GTK_POLICY_" - [ `ALWAYS | `AUTOMATIC | `NEVER ] - -type position = "GTK_POS_" - [ `LEFT | `RIGHT | `TOP | `BOTTOM ] - -type preview_type = "GTK_PREVIEW_" - [ `COLOR | `GRAYSCALE ] - -type relief_style = "GTK_RELIEF_" - [ `NORMAL | `HALF | `NONE ] - -type resize_mode = "GTK_RESIZE_" - [ `PARENT | `QUEUE | `IMMEDIATE ] - -type signal_run_type = "GTK_RUN_" - [ `FIRST | `LAST | `BOTH | `NO_RECURSE | `ACTION | `NO_HOOKS ] - -type scroll_type = "GTK_SCROLL_" - [ `NONE | `STEP_FORWARD | `STEP_BACKWARD | `PAGE_BACKWARD - | `PAGE_FORWARD | `JUMP ] - -type selection_mode = "GTK_SELECTION_" - [ `SINGLE | `BROWSE | `MULTIPLE | `EXTENDED ] - -type shadow_type = "GTK_SHADOW_" - [ `NONE | `IN | `OUT | `ETCHED_IN | `ETCHED_OUT ] - -type state_type = "GTK_STATE_" - [ `NORMAL | `ACTIVE | `PRELIGHT | `SELECTED | `INSENSITIVE ] - -type submenu_direction = "GTK_DIRECTION_" - [ `LEFT | `RIGHT ] - -type submenu_placement = "GTK_" - [ `TOP_BOTTOM | `LEFT_RIGHT ] - -type toolbar_style = "GTK_TOOLBAR_" - [ `ICONS | `TEXT | `BOTH ] - -type trough_type = "GTK_TROUGH_" - [ `NONE | `START | `END | `JUMP ] - -type update_type = "GTK_UPDATE_" - [ `CONTINUOUS | `DISCONTINUOUS | `DELAYED ] - -type visibility = "GTK_VISIBILITY_" - [ `NONE | `PARTIAL | `FULL ] - -type window_position = "GTK_WIN_POS_" - [ `NONE | `CENTER | `MOUSE | `CENTER_ALWAYS ] - -type window_type = "GTK_WINDOW_" - [ `TOPLEVEL | `DIALOG | `POPUP ] - -type sort_type = "GTK_SORT_" - [ `ASCENDING | `DESCENDING ] - - -type fundamental_type = "GTK_TYPE_" - [ `INVALID | `NONE | `CHAR | `BOOL | `INT | `UINT | `LONG | `ULONG - | `FLOAT | `DOUBLE | `STRING | `ENUM | `FLAGS | `BOXED | `FOREIGN - | `CALLBACK | `ARGS | `POINTER | `SIGNAL | `C_CALLBACK | `OBJECT ] - -type cell_type = "GTK_CELL_" - [ `EMPTY | `TEXT | `PIXMAP | `PIXTEXT | `WIDGET ] - -type toolbar_child = "GTK_TOOLBAR_CHILD_" - [ `SPACE | `BUTTON | `TOGGLEBUTTON | `RADIOBUTTON | `WIDGET ] - -type toolbar_space_style = "GTK_TOOLBAR_SPACE_" - [ `EMPTY | `LINE ] - -type tree_view_mode = "GTK_TREE_VIEW_" - [ `LINE | `ITEM ] - -type spin_type = "GTK_SPIN_" - [ `STEP_FORWARD | `STEP_BACKWARD | `PAGE_FORWARD | `PAGE_BACKWARD - | `HOME | `END | `USER_DEFINED ] - -type accel_flag = "GTK_ACCEL_" - [ `VISIBLE | `SIGNAL_VISIBLE | `LOCKED ] - -type packer_options = "GTK_" - [ `PACK_EXPAND | `FILL_X | `FILL_Y ] - -type side_type = "GTK_SIDE_" - [ `TOP | `BOTTOM | `LEFT | `RIGHT ] - -type anchor_type = "GTK_ANCHOR_" - [ `CENTER | `NORTH | `NW | `NE | `SOUTH | `SW | `SE | `WEST | `EAST ] - -type button_action = "GTK_BUTTON_" - [ `SELECTS | `DRAGS | `EXPANDS ] - -type calendar_display_options = "GTK_CALENDAR_" - [ `SHOW_HEADING | `SHOW_DAY_NAMES | `NO_MONTH_CHANGE | `SHOW_WEEK_NUMBERS - | `WEEK_START_MONDAY ] - -type progress_bar_style = "GTK_PROGRESS_" - [ `CONTINUOUS | `DISCRETE ] - -type progress_bar_orientation = "GTK_PROGRESS_" - [ `LEFT_TO_RIGHT | `RIGHT_TO_LEFT | `BOTTOM_TO_TOP | `TOP_TO_BOTTOM ] - -type dest_defaults = "GTK_DEST_DEFAULT_" - [ `MOTION | `HIGHLIGHT | `DROP | `ALL ] - -type target_flags = "GTK_TARGET_" - [ `SAME_APP | `SAME_WIDGET ] - -type font_metric_type = "GTK_FONT_METRIC_" - [ `PIXELS | `POINTS ] - -type font_type = "GTK_FONT_" - [ `BITMAP | `SCALABLE | `SCALABLE_BITMAP | `ALL ] - -type font_filter_type = "GTK_FONT_FILTER_" - [ `BASE | `USER ] - -(* -type tree_pos = "GTK_CTREE_POS_" - [ `BEFORE | `AS_CHILD | `AFTER ] - -type tree_line_style = "GTK_CTREE_LINES_" - [ `NONE | `SOLID | `DOTTED | `TABBED ] - -type tree_expander_style = "GTK_CTREE_EXPANDER_" - [ `NONE | `SQUARE | `TRIANGLE | `CIRCULAR ] - -type tree_expansion_type = "GTK_CTREE_EXPANSION_" - [ `EXPAND | `EXPAND_RECURSIVE | `COLLAPSE | `COLLAPSE_RECURSIVE - | `TOGGLE | `TOGGLE_RECURSIVE ] -*) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkgl_tags.var b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkgl_tags.var deleted file mode 100644 index 57a9f7365..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkgl_tags.var +++ /dev/null @@ -1,19 +0,0 @@ -(* $Id$ *) - -type visual_options = "GDK_GL_" [ - | `USE_GL - | `BUFFER_SIZE - | `LEVEL - | `RGBA - | `DOUBLEBUFFER - | `STEREO - | `AUX_BUFFERS - | `RED_SIZE - | `GREEN_SIZE - | `BLUE_SIZE - | `ALPHA_SIZE - | `DEPTH_SIZE - | `STENCIL_SIZE - | `ACCUM_GREEN_SIZE - | `ACCUM_ALPHA_SIZE -] diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkxmhtml_tags.var b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkxmhtml_tags.var deleted file mode 100644 index ad9393103..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkxmhtml_tags.var +++ /dev/null @@ -1,30 +0,0 @@ -(* $Id$ *) - -type string_direction = "TSTRING_DIRECTION_" [ - | `R_TO_L - | `L_TO_R -] - -type position = "TALIGNMENT_" [ - | `END - | `CENTER - | `BEGINNING -] - -type line_type = "LINE_" [ - | `SOLID - | `DASHED - | `SINGLE - | `DOUBLE - | `STRIKE - | `UNDER - | `NONE "NO_LINE" -] - -type dither_type = "Xm" [ - | `QUICK - | `BEST - | `FAST - | `SLOW - | `DISABLED -] diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgl.patch b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgl.patch deleted file mode 100644 index c48de24d7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgl.patch +++ /dev/null @@ -1,112 +0,0 @@ -Index: Makefile -=================================================================== -RCS file: /staff2/garrigue/repos/lablGL/Makefile,v -retrieving revision 1.33 -retrieving revision 1.34 -diff -c -r1.33 -r1.34 -*** Makefile 1998/09/17 03:16:06 1.33 ---- Makefile 1999/06/18 07:39:08 1.34 -*************** -*** 12,22 **** - OTHERLIBS=-L$(LABLTKDIR) -llabltk41 $(LIBS) - - # Files -! MLOBJS = raw.cmo togl.cmo \ - gl.cmo glLight.cmo glList.cmo glMap.cmo \ - glMat.cmo glMisc.cmo glPix.cmo glClear.cmo \ - glTex.cmo glDraw.cmo glFunc.cmo gluMisc.cmo \ - gluNurbs.cmo gluQuadric.cmo gluTess.cmo gluMat.cmo - OPTOBJS = $(MLOBJS:.cmo=.cmx) - COBJS = ml_gl.o ml_glu.o ml_togl.o ml_raw.o \ - $(TOGLDIR)/togl.o ---- 12,23 ---- - OTHERLIBS=-L$(LABLTKDIR) -llabltk41 $(LIBS) - - # Files -! LIBOBJS = raw.cmo \ - gl.cmo glLight.cmo glList.cmo glMap.cmo \ - glMat.cmo glMisc.cmo glPix.cmo glClear.cmo \ - glTex.cmo glDraw.cmo glFunc.cmo gluMisc.cmo \ - gluNurbs.cmo gluQuadric.cmo gluTess.cmo gluMat.cmo -+ MLOBJS = $(LIBOBJS) togl.cmo - OPTOBJS = $(MLOBJS:.cmo=.cmx) - COBJS = ml_gl.o ml_glu.o ml_togl.o ml_raw.o \ - $(TOGLDIR)/togl.o -*************** -*** 53,60 **** - var2switch: var2switch.cmo - $(LINKER) var2switch.cmo -o $@ - -! lablgl.cma: $(MLOBJS) -! $(LIBRARIAN) -o lablgl.cma $(MLOBJS) - - lablgl.cmxa: $(OPTOBJS) - $(OPTLIB) -o lablgl.cmxa $(OPTOBJS) ---- 54,61 ---- - var2switch: var2switch.cmo - $(LINKER) var2switch.cmo -o $@ - -! lablgl.cma: $(LIBOBJS) -! $(LIBRARIAN) -o lablgl.cma $(LIBOBJS) - - lablgl.cmxa: $(OPTOBJS) - $(OPTLIB) -o lablgl.cmxa $(OPTOBJS) -*************** -*** 66,74 **** - $(TOGLDIR)/togl.o: - cd $(TOGLDIR) && $(MAKE) togl.o - -! lablgltop: lablgl.cma liblablgl.a - olablmktop $(OLABLINC) -custom -o lablgltop \ -! unix.cma tk41.cma lablgl.cma \ - -cclib "-L. -llablgl -lunix $(OTHERLIBS)" - - lablgl: lablgl.in Makefile.config ---- 67,75 ---- - $(TOGLDIR)/togl.o: - cd $(TOGLDIR) && $(MAKE) togl.o - -! lablgltop: lablgl.cma togl.cmo liblablgl.a - olablmktop $(OLABLINC) -custom -o lablgltop \ -! unix.cma tk41.cma lablgl.cma togl.cmo \ - -cclib "-L. -llablgl -lunix $(OTHERLIBS)" - - lablgl: lablgl.in Makefile.config -*************** -*** 107,113 **** - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(MLOBJS:.cmo=.cmi) $(INSTALLDIR) - cp $(MLOBJS:.cmo=.mli) $(INSTALLDIR) -! cp lablgl.cma liblablgl.a $(INSTALLDIR) - cp lablgltop $(INSTALLDIR) - cp lablgl lablgllink $(BINDIR) - if test -f lablgl.cmxa; then : ; \ ---- 108,114 ---- - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(MLOBJS:.cmo=.cmi) $(INSTALLDIR) - cp $(MLOBJS:.cmo=.mli) $(INSTALLDIR) -! cp lablgl.cma togl.cmo liblablgl.a $(INSTALLDIR) - cp lablgltop $(INSTALLDIR) - cp lablgl lablgllink $(BINDIR) - if test -f lablgl.cmxa; then : ; \ -Index: lablgllink.in -=================================================================== -RCS file: /staff2/garrigue/repos/lablGL/lablgllink.in,v -retrieving revision 1.2 -retrieving revision 1.3 -diff -c -r1.2 -r1.3 -*** lablgllink.in 1998/09/16 10:26:17 1.2 ---- lablgllink.in 1999/06/18 07:39:09 1.3 -*************** -*** 1,5 **** - #!/bin/sh - - exec olablc -custom @INCLUDES@ -I @INSTALLDIR@ \ -! tk41.cma lablgl.cma $* -cclib "-L@INSTALLDIR@ -llablgl" \ - -cclib "@OTHERLIBS@" ---- 1,5 ---- - #!/bin/sh - - exec olablc -custom @INCLUDES@ -I @INSTALLDIR@ \ -! tk41.cma lablgl.cma togl.cmo $* -cclib "-L@INSTALLDIR@ -llablgl" \ - -cclib "@OTHERLIBS@" diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgtk.in b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgtk.in deleted file mode 100644 index 98015140c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgtk.in +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -thread="no" - -case $1 in --help) - echo "Usage: lablgtk [-thread] [script-file]" - echo " -thread use the threaded version of the toplevel" - ;; --thread) - thread=yes - shift - ;; -esac - -if test $thread = yes; then - toplevel="@INSTALLDIR@/lablgtktop_t -I @LIBDIR@/threads" -else - toplevel=@INSTALLDIR@/lablgtktop -fi - -exec $toplevel -w s \ - -I @LABLGLDIR@ \ - -I @INSTALLDIR@ $* diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.c deleted file mode 100644 index 9ab1c1eb9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.c +++ /dev/null @@ -1,522 +0,0 @@ -/* $Id$ */ - -#include -#include -#ifdef _WIN32 -#include -#else -#include -#endif -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "gdk_tags.h" - -void ml_raise_gdk (const char *errmsg) -{ - static value * exn = NULL; - if (exn == NULL) - exn = caml_named_value ("gdkerror"); - raise_with_string (*exn, (char*)errmsg); -} - -#include "gdk_tags.c" - -Make_OptFlags_val (GdkModifier_val) -Make_Flags_val (Event_mask_val) - -#define Make_test(conv) \ -value ml_test_##conv (value mask, value test) \ -{ return Val_bool (conv(mask) & Int_val(test)); } - -Make_test(GdkModifier_val) - -/* Colormap */ - -Make_Val_final_pointer (GdkColormap, gdk_colormap_ref, gdk_colormap_unref, 0) -ML_0 (gdk_colormap_get_system, Val_GdkColormap) - -/* Screen geometry */ -ML_0 (gdk_screen_width, Val_int) -ML_0 (gdk_screen_height, Val_int) - -/* Visual */ -value ml_gdk_visual_get_best (value depth, value type) -{ - GdkVisual *vis; - if (type == Val_unit) - if (depth == Val_unit) vis = gdk_visual_get_best (); - else vis = gdk_visual_get_best_with_depth (Int_val(Field(depth,0))); - else - if (depth == Val_unit) - vis = gdk_visual_get_best_with_type - (GdkVisualType_val(Field(type,0))); - else vis = gdk_visual_get_best_with_both - (Int_val(Field(depth,0)),GdkVisualType_val(Field(type,0))); - if (!vis) ml_raise_gdk("Gdk.Visual.get_best"); - return Val_GdkVisual(vis); -} - -Make_Extractor (GdkVisual,GdkVisual_val,type,Val_gdkVisualType) -Make_Extractor (GdkVisual,GdkVisual_val,depth,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,red_mask,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,red_shift,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,red_prec,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,green_mask,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,green_shift,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,green_prec,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,blue_mask,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,blue_shift,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,blue_prec,Val_int) - -/* Image */ - -Make_Val_final_pointer (GdkImage, Ignore, gdk_image_destroy, 0) -GdkImage *GdkImage_val(value val) -{ - if (!Field(val,1)) ml_raise_gdk ("attempt to use destroyed GdkImage"); - return (GdkImage*)(Field(val,1)); -} -value ml_gdk_image_destroy (value val) -{ - if (Field(val,1)) gdk_image_destroy((GdkImage*)(Field(val,1))); - Field(val,1) = NULL; - return Val_unit; -} -ML_4 (gdk_image_new_bitmap, GdkVisual_val, String_val, Int_val, Int_val, - Val_GdkImage) -ML_4 (gdk_image_new, GdkImageType_val, GdkVisual_val, Int_val, Int_val, - Val_GdkImage) -ML_5 (gdk_image_get, GdkWindow_val, Int_val, Int_val, Int_val, Int_val, - Val_GdkImage) -ML_4 (gdk_image_put_pixel, GdkImage_val, Int_val, Int_val, Int_val, Unit) -ML_3 (gdk_image_get_pixel, GdkImage_val, Int_val, Int_val, Val_int) - -/* Color */ - -ML_2 (gdk_colormap_new, GdkVisual_val, Bool_val, Val_GdkColormap) - -value ml_gdk_color_white (value cmap) -{ - GdkColor color; - gdk_color_white (GdkColormap_val(cmap), &color); - return Val_copy(color); -} - -value ml_gdk_color_black (value cmap) -{ - GdkColor color; - gdk_color_black (GdkColormap_val(cmap), &color); - return Val_copy(color); -} - -value ml_gdk_color_parse (char *spec) -{ - GdkColor color; - if (!gdk_color_parse (spec, &color)) - ml_raise_gdk ("color_parse"); - return Val_copy(color); -} - -ML_2 (gdk_color_alloc, GdkColormap_val, GdkColor_val, Val_bool) - -value ml_GdkColor (value red, value green, value blue) -{ - GdkColor color; - color.red = Int_val(red); - color.green = Int_val(green); - color.blue = Int_val(blue); - color.pixel = 0; - return Val_copy(color); -} - -Make_Extractor (GdkColor, GdkColor_val, red, Val_int) -Make_Extractor (GdkColor, GdkColor_val, green, Val_int) -Make_Extractor (GdkColor, GdkColor_val, blue, Val_int) -Make_Extractor (GdkColor, GdkColor_val, pixel, Val_int) - -/* Rectangle */ - -value ml_GdkRectangle (value x, value y, value width, value height) -{ - GdkRectangle rectangle; - rectangle.x = Int_val(x); - rectangle.y = Int_val(y); - rectangle.width = Int_val(width); - rectangle.height = Int_val(height); - return Val_copy(rectangle); -} - -Make_Extractor (GdkRectangle, GdkRectangle_val, x, Val_int) -Make_Extractor (GdkRectangle, GdkRectangle_val, y, Val_int) -Make_Extractor (GdkRectangle, GdkRectangle_val, width, Val_int) -Make_Extractor (GdkRectangle, GdkRectangle_val, height, Val_int) - -/* Window */ - -Make_Val_final_pointer (GdkWindow, gdk_window_ref, gdk_window_unref, 0) -Make_Extractor (gdk_visual_get, GdkVisual_val, depth, Val_int) -ML_1 (gdk_window_get_visual, GdkWindow_val, Val_GdkVisual) -ML_3 (gdk_window_set_back_pixmap, GdkWindow_val, GdkPixmap_val, Int_val, Unit) -ML_1 (gdk_window_clear, GdkWindow_val, Unit) -ML_0 (GDK_ROOT_PARENT, Val_GdkWindow) -ML_1 (gdk_window_get_parent, GdkWindow_val, Val_GdkWindow) -ML_1 (GDK_WINDOW_XWINDOW, GdkWindow_val, Val_XID) -value ml_gdk_window_get_position (value window) -{ - int x, y; - value ret; - - gdk_window_get_position (GdkWindow_val(window), &x, &y); - - ret = alloc_small (2,0); - Field(ret,0) = Val_int(x); - Field(ret,1) = Val_int(y); - return ret; -} - -value ml_gdk_window_get_size (value window) -{ - int x, y; - value ret; - - gdk_window_get_size (GdkWindow_val(window), &x, &y); - - ret = alloc_small (2,0); - Field(ret,0) = Val_int(x); - Field(ret,1) = Val_int(y); - return ret; -} - -/* Cursor */ - -ML_1 (gdk_cursor_new, GdkCursorType_val, Val_GdkCursor) -ML_6 (gdk_cursor_new_from_pixmap, GdkPixmap_val, GdkPixmap_val, - GdkColor_val, GdkColor_val, Int_val, Int_val, Val_GdkCursor) -ML_bc6 (ml_gdk_cursor_new_from_pixmap) -ML_1 (gdk_cursor_destroy, GdkCursor_val, Unit) - -/* Pixmap */ - -Make_Val_final_pointer (GdkPixmap, gdk_pixmap_ref, gdk_pixmap_unref, 0) -Make_Val_final_pointer (GdkBitmap, gdk_bitmap_ref, gdk_bitmap_unref, 0) -Make_Val_final_pointer_ext (GdkPixmap, _no_ref, Ignore, gdk_pixmap_unref, 20) -Make_Val_final_pointer_ext (GdkBitmap, _no_ref, Ignore, gdk_bitmap_unref, 20) -ML_4 (gdk_pixmap_new, GdkWindow_val, Int_val, Int_val, Int_val, - Val_GdkPixmap_no_ref) -ML_4 (gdk_bitmap_create_from_data, GdkWindow_val, - String_val, Int_val, Int_val, Val_GdkBitmap_no_ref) -ML_7 (gdk_pixmap_create_from_data, GdkWindow_val, String_val, - Int_val, Int_val, Int_val, GdkColor_val, GdkColor_val, - Val_GdkPixmap_no_ref) -ML_bc7 (ml_gdk_pixmap_create_from_data) - -value ml_gdk_pixmap_colormap_create_from_xpm - (value window, value colormap, value transparent, char *filename) -{ - CAMLparam0(); - GdkBitmap *mask; - CAMLlocal2(vpixmap, vmask); - value ret; - - vpixmap = Val_GdkPixmap_no_ref - (gdk_pixmap_colormap_create_from_xpm - (GdkWindow_val(window), Option_val(colormap,GdkColormap_val,NULL), - &mask, Option_val(transparent,GdkColor_val,NULL), filename)); - vmask = Val_GdkBitmap_no_ref (mask); - - ret = alloc_small (2,0); - Field(ret,0) = vpixmap; - Field(ret,1) = vmask; - CAMLreturn(ret); -} - -value ml_gdk_pixmap_colormap_create_from_xpm_d - (value window, value colormap, value transparent, char **data) -{ - CAMLparam0(); - GdkBitmap *mask; - CAMLlocal2(vpixmap, vmask); - value ret; - - vpixmap = Val_GdkPixmap_no_ref - (gdk_pixmap_colormap_create_from_xpm_d - (GdkWindow_val(window), Option_val(colormap,GdkColormap_val,NULL), - &mask, Option_val(transparent,GdkColor_val,NULL), data)); - vmask = Val_GdkBitmap_no_ref (mask); - - ret = alloc_small (2, 0); - Field(ret,0) = vpixmap; - Field(ret,1) = vmask; - CAMLreturn(ret); -} - -/* Font */ - -Make_Val_final_pointer (GdkFont, gdk_font_ref, gdk_font_unref, 0) -Make_Val_final_pointer_ext (GdkFont, _no_ref, Ignore, gdk_font_unref, 20) -ML_1 (gdk_font_load, String_val, Val_GdkFont_no_ref) -ML_1 (gdk_fontset_load, String_val, Val_GdkFont_no_ref) -ML_2 (gdk_string_width, GdkFont_val, String_val, Val_int) -ML_2 (gdk_char_width, GdkFont_val, (gchar)Long_val, Val_int) -ML_2 (gdk_string_height, GdkFont_val, String_val, Val_int) -ML_2 (gdk_char_height, GdkFont_val, (gchar)Long_val, Val_int) -ML_2 (gdk_string_measure, GdkFont_val, String_val, Val_int) -ML_2 (gdk_char_measure, GdkFont_val, (char)Long_val, Val_int) -Make_Extractor (GdkFont, GdkFont_val, type, Val_gdkFontType) -Make_Extractor (GdkFont, GdkFont_val, ascent, Val_int) -Make_Extractor (GdkFont, GdkFont_val, descent, Val_int) - -/* Region */ - -#define PointArray_val(val) ((GdkPoint*)&Field(val,1)) -#define PointArrayLen_val(val) Int_val(Field(val,0)) -Make_Val_final_pointer (GdkRegion, Ignore, gdk_region_destroy, 0) -GdkRegion *GdkRegion_val(value val) -{ - if (!Field(val,1)) ml_raise_gdk ("attempt to use destroyed GdkRegion"); - return (GdkRegion*)(Field(val,1)); -} -value ml_gdk_region_destroy (value val) -{ - if (Field(val,1)) gdk_region_destroy((GdkRegion*)(Field(val,1))); - Field(val,1) = NULL; - return Val_unit; -} -ML_0 (gdk_region_new, Val_GdkRegion) -ML_2 (gdk_region_polygon, Insert(PointArray_val(arg1)) PointArrayLen_val, - GdkFillRule_val, Val_GdkRegion) -ML_2 (gdk_regions_intersect, GdkRegion_val, GdkRegion_val, Val_GdkRegion) -ML_2 (gdk_regions_union, GdkRegion_val, GdkRegion_val, Val_GdkRegion) -ML_2 (gdk_regions_subtract, GdkRegion_val, GdkRegion_val, Val_GdkRegion) -ML_2 (gdk_regions_xor, GdkRegion_val, GdkRegion_val, Val_GdkRegion) -ML_2 (gdk_region_union_with_rect, GdkRegion_val, GdkRectangle_val, - Val_GdkRegion) -ML_3 (gdk_region_offset, GdkRegion_val, Int_val, Int_val, Unit) -ML_3 (gdk_region_shrink, GdkRegion_val, Int_val, Int_val, Unit) -ML_1 (gdk_region_empty, GdkRegion_val, Val_bool) -ML_2 (gdk_region_equal, GdkRegion_val, GdkRegion_val, Val_bool) -ML_3 (gdk_region_point_in, GdkRegion_val, Int_val, Int_val, Val_bool) -ML_2 (gdk_region_rect_in, GdkRegion_val, GdkRectangle_val, Val_gdkOverlapType) -ML_2 (gdk_region_get_clipbox, GdkRegion_val, GdkRectangle_val, Unit) - - -/* GC */ - -Make_Val_final_pointer (GdkGC, gdk_gc_ref, gdk_gc_unref, 0) -Make_Val_final_pointer_ext (GdkGC, _no_ref, Ignore, gdk_gc_unref, 20) -ML_1 (gdk_gc_new, GdkWindow_val, Val_GdkGC_no_ref) -ML_2 (gdk_gc_set_foreground, GdkGC_val, GdkColor_val, Unit) -ML_2 (gdk_gc_set_background, GdkGC_val, GdkColor_val, Unit) -ML_2 (gdk_gc_set_font, GdkGC_val, GdkFont_val, Unit) -ML_2 (gdk_gc_set_function, GdkGC_val, GdkFunction_val, Unit) -ML_2 (gdk_gc_set_fill, GdkGC_val, GdkFill_val, Unit) -ML_2 (gdk_gc_set_tile, GdkGC_val, GdkPixmap_val, Unit) -ML_2 (gdk_gc_set_stipple, GdkGC_val, GdkPixmap_val, Unit) -ML_3 (gdk_gc_set_ts_origin, GdkGC_val, Int_val, Int_val, Unit) -ML_3 (gdk_gc_set_clip_origin, GdkGC_val, Int_val, Int_val, Unit) -ML_2 (gdk_gc_set_clip_mask, GdkGC_val, GdkBitmap_val, Unit) -ML_2 (gdk_gc_set_clip_rectangle, GdkGC_val, GdkRectangle_val, Unit) -ML_2 (gdk_gc_set_clip_region, GdkGC_val, GdkRegion_val, Unit) -ML_2 (gdk_gc_set_subwindow, GdkGC_val, GdkSubwindowMode_val, Unit) -ML_2 (gdk_gc_set_exposures, GdkGC_val, Bool_val, Unit) -ML_5 (gdk_gc_set_line_attributes, GdkGC_val, Int_val, GdkLineStyle_val, - GdkCapStyle_val, GdkJoinStyle_val, Unit) -ML_2 (gdk_gc_copy, GdkGC_val, GdkGC_val, Unit) -value ml_gdk_gc_get_values (value gc) -{ - CAMLparam0(); - GdkGCValues values; - int i; - CAMLlocal2(ret, tmp); - - gdk_gc_get_values (GdkGC_val(gc), &values); - ret = alloc (18, 0); - tmp = Val_copy(values.foreground); Store_field(ret, 0, tmp); - tmp = Val_copy(values.background); Store_field(ret, 1, tmp); - if (values.font) { - tmp = ml_some(Val_GdkFont(values.font)); - Store_field(ret, 2, tmp); - } - Field(ret,3) = Val_gdkFunction(values.function); - Field(ret,4) = Val_gdkFill(values.fill); - if (values.tile) { - tmp = ml_some(Val_GdkPixmap(values.tile)); - Store_field(ret, 5, tmp); - } - if (values.tile) { - tmp = ml_some(Val_GdkPixmap(values.stipple)); - Store_field(ret, 6, tmp); - } - if (values.tile) { - tmp = ml_some(Val_GdkPixmap(values.clip_mask)); - Store_field(ret, 7, tmp); - } - Field(ret,8) = Val_gdkSubwindowMode(values.subwindow_mode); - Field(ret,9) = Val_int(values.ts_x_origin); - Field(ret,10) = Val_int(values.ts_y_origin); - Field(ret,11) = Val_int(values.clip_x_origin); - Field(ret,12) = Val_int(values.clip_y_origin); - Field(ret,13) = Val_bool(values.graphics_exposures); - Field(ret,14) = Val_int(values.line_width); - Field(ret,15) = Val_gdkLineStyle(values.line_style); - Field(ret,16) = Val_gdkCapStyle(values.cap_style); - Field(ret,17) = Val_gdkJoinStyle(values.join_style); - CAMLreturn(ret); -} - -/* Draw */ - -value ml_point_array_new (value len) -{ - value ret = alloc (1 + Wosize_asize(Int_val(len)*sizeof(GdkPoint)), - Abstract_tag); - Field(ret,0) = len; - return ret; -} -value ml_point_array_set (value arr, value pos, value x, value y) -{ - GdkPoint *pt = PointArray_val(arr) + Int_val(pos); - pt->x = Int_val(x); - pt->y = Int_val(y); - return Val_unit; -} - -ML_4 (gdk_draw_point, GdkDrawable_val, GdkGC_val, Int_val, Int_val, Unit) -ML_6 (gdk_draw_line, GdkDrawable_val, GdkGC_val, Int_val, Int_val, - Int_val, Int_val, Unit) -ML_bc6 (ml_gdk_draw_line) -ML_7 (gdk_draw_rectangle, GdkDrawable_val, GdkGC_val, Bool_val, - Int_val, Int_val, Int_val, Int_val, Unit) -ML_bc7 (ml_gdk_draw_rectangle) -ML_9 (gdk_draw_arc, GdkDrawable_val, GdkGC_val, Bool_val, Int_val, Int_val, - Int_val, Int_val, Int_val, Int_val, Unit) -ML_bc9 (ml_gdk_draw_arc) -ML_4 (gdk_draw_polygon, GdkDrawable_val, GdkGC_val, Bool_val, - Insert(PointArray_val(arg4)) PointArrayLen_val, Unit) -ML_6 (gdk_draw_string, GdkDrawable_val, GdkFont_val, GdkGC_val, Int_val, Int_val, String_val, Unit) -ML_bc6 (ml_gdk_draw_string) - -ML_9 (gdk_draw_image, GdkDrawable_val, GdkGC_val, GdkImage_val, Int_val, Int_val, Int_val, Int_val, Int_val, Int_val, Unit) -ML_bc9 (ml_gdk_draw_image) - -/* RGB */ - -ML_0 (gdk_rgb_init, Unit) -ML_0 (gdk_rgb_get_visual, Val_GdkVisual) -ML_0 (gdk_rgb_get_cmap, Val_GdkColormap) - -/* Events */ - -/* Have a major collection every 1000 events */ -Make_Val_final_pointer (GdkEvent, Ignore, gdk_event_free, 1) -ML_1 (gdk_event_copy, GdkEvent_val, Val_GdkEvent) - -value ml_gdk_event_new (value event_type) -{ - GdkEvent event; - memset (&event, 0, sizeof(GdkEvent)); - event.type = GdkEventType_val(event_type); - event.any.send_event = TRUE; - return Val_copy(event); -} - -#define GdkEvent_arg(type) (GdkEvent##type*)GdkEvent_val - -Make_Extractor (GdkEventAny, GdkEvent_arg(Any), type, Val_gdkEventType) -Make_Extractor (GdkEventAny, GdkEvent_arg(Any), window, Val_GdkWindow) -Make_Extractor (GdkEventAny, GdkEvent_arg(Any), send_event, Val_bool) -Make_Setter (gdk_event_set, GdkEvent_arg(Any), GdkEventType_val, type) -Make_Setter (gdk_event_set, GdkEvent_arg(Any), GdkWindow_val, window) - -Make_Extractor (GdkEventExpose, GdkEvent_arg(Expose), area, Val_copy) -Make_Extractor (GdkEventExpose, GdkEvent_arg(Expose), count, Val_int) - -Make_Extractor (GdkEventVisibility, GdkEvent_arg(Visibility), state, - Val_gdkVisibilityState) - -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), time, Val_int) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), x, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), y, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), pressure, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), xtilt, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), ytilt, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), state, Val_int) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), is_hint, Val_int) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), source, Val_gdkInputSource) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), deviceid, Val_int) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), x_root, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), y_root, copy_double) - -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), time, Val_int) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), x, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), y, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), pressure, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), xtilt, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), ytilt, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), state, Val_int) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), button, Val_int) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), source, Val_gdkInputSource) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), deviceid, Val_int) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), x_root, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), y_root, copy_double) - -Make_Setter (gdk_event_button_set, GdkEvent_arg(Button), Int_val, button) - -Make_Extractor (GdkEventKey, GdkEvent_arg(Key), time, Val_int) -Make_Extractor (GdkEventKey, GdkEvent_arg(Key), state, Val_int) -Make_Extractor (GdkEventKey, GdkEvent_arg(Key), keyval, Val_int) -Make_Extractor (GdkEventKey, GdkEvent_arg(Key), string, Val_string) - -Make_Extractor (GdkEventCrossing, GdkEvent_arg(Crossing), subwindow, - Val_GdkWindow) -Make_Extractor (GdkEventCrossing, GdkEvent_arg(Crossing), detail, - Val_gdkNotifyType) - -Make_Extractor (GdkEventFocus, GdkEvent_arg(Focus), in, Val_int) - -Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), x, Val_int) -Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), y, Val_int) -Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), width, Val_int) -Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), height, Val_int) - -Make_Extractor (GdkEventProperty, GdkEvent_arg(Property), atom, Val_int) -Make_Extractor (GdkEventProperty, GdkEvent_arg(Property), time, Val_int) -Make_Extractor (GdkEventProperty, GdkEvent_arg(Property), state, Val_int) - -Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), selection, Val_int) -Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), target, Val_int) -Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), property, Val_int) -Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), requestor, Val_int) -Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), time, Val_int) - -Make_Extractor (GdkEventProximity, GdkEvent_arg(Proximity), time, Val_int) -Make_Extractor (GdkEventProximity, GdkEvent_arg(Proximity), source, - Val_gdkInputSource) -Make_Extractor (GdkEventProximity, GdkEvent_arg(Proximity), deviceid, Val_int) - -/* DnD */ -Make_Val_final_pointer (GdkDragContext, gdk_drag_context_ref, gdk_drag_context_unref, 0) -Make_Flags_val (GdkDragAction_val) -ML_3 (gdk_drag_status, GdkDragContext_val, Flags_GdkDragAction_val, Int_val, Unit) -Make_Extractor (GdkDragContext, GdkDragContext_val, suggested_action, Val_gdkDragAction) -value val_int(gpointer i) -{ - return Val_int (GPOINTER_TO_INT(i)); -} -value ml_GdkDragContext_targets (value c) -{ - GList *t; - - t = (GdkDragContext_val(c))->targets; - return Val_GList (t, val_int); -} - -/* Misc */ -ML_0 (gdk_flush, Unit) -ML_0 (gdk_beep, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.h deleted file mode 100644 index 5d699ace2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.h +++ /dev/null @@ -1,53 +0,0 @@ -/* $Id$ */ - -#define GdkColormap_val(val) ((GdkColormap*)Pointer_val(val)) -extern value Val_GdkColormap (GdkColormap *); - -#define GdkColor_val(val) ((GdkColor*)MLPointer_val(val)) -#define Val_GdkColor Val_pointer - -#define GdkRectangle_val(val) ((GdkRectangle*)MLPointer_val(val)) -#define Val_GdkRectangle Val_pointer - -#define GdkDrawable_val(val) ((GdkDrawable*)Pointer_val(val)) - -#define GdkWindow_val(val) ((GdkWindow*)Pointer_val(val)) -extern value Val_GdkWindow (GdkWindow *); - -#define GdkCursor_val(val) ((GdkCursor*)Pointer_val(val)) -#define Val_GdkCursor Val_pointer - -#define GdkPixmap_val(val) ((GdkPixmap*)Pointer_val(val)) -extern value Val_GdkPixmap (GdkPixmap *); - -#define GdkBitmap_val(val) ((GdkBitmap*)Pointer_val(val)) -extern value Val_GdkBitmap (GdkBitmap *); - -extern GdkImage *GdkImage_val (value); /* check argument */ -extern value Val_GdkImage (GdkImage *); /* finalizer is destroy! */ - -#define GdkFont_val(val) ((GdkFont*)Pointer_val(val)) -extern value Val_GdkFont (GdkFont *); - -extern GdkRegion *GdkRegion_val (value); /* check argument */ -extern value Val_GdkRegion (GdkRegion *); /* finalizer is destroy! */ - -#define GdkGC_val(val) ((GdkGC*)Pointer_val(val)) -extern value Val_GdkGC (GdkGC *); - -#define GdkEvent_val (GdkEvent*)MLPointer_val - -#define GdkVisual_val(val) ((GdkVisual*) val) -#define Val_GdkVisual(visual) ((value) visual) - -#define Val_XID copy_int32 -#define XID_val Int32_val - -extern int OptFlags_GdkModifier_val (value); -extern int Flags_Event_mask_val (value); -extern lookup_info ml_table_extension_events[]; -#define Extension_events_val(key) ml_lookup_to_c (ml_table_extension_events, key) - -#define GdkDragContext_val(val) ((GdkDragContext*)Pointer_val(val)) -extern value Val_GdkDragContext (GdkDragContext *); -extern int Flags_GdkDragAction_val (value); diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.c deleted file mode 100644 index b7d3fcbc2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.c +++ /dev/null @@ -1,135 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" - -/* -value Val_GSList (GSList *list, value (*func)(gpointer)) -{ - value new_cell, result, last_cell, cell; - - if (list == NULL) return Val_unit; - - last_cell = cell = Val_unit; - result = func(list->data); - Begin_roots3 (last_cell, cell, result); - cell = last_cell = alloc_tuple (2); - Field(cell,0) = result; - Field(cell,1) = Val_unit; - list = list->next; - while (list != NULL) { - result = func(list->data); - new_cell = alloc_tuple(2); - Field(new_cell,0) = result; - Field(new_cell,1) = Val_unit; - modify(&Field(last_cell,1), new_cell); - last_cell = new_cell; - list = list->next; - } - End_roots (); - return cell; -} - -GSList *GSList_val (value list, gpointer (*func)(value)) -{ - GSList *res = NULL; - GSList **current = &res; - value cell = list; - if (list == Val_unit) return res; - Begin_root (cell); - while (cell != Val_unit) { - *current = g_slist_alloc (); - (*current)->data = func(Field(cell,0)); - cell = Field(cell,1); - current = &(*current)->next; - } - End_roots (); - return res; -} -*/ - -value Val_GList (GList *list, value (*func)(gpointer)) -{ - value new_cell, result, last_cell, cell; - - if (list == NULL) return Val_unit; - - last_cell = cell = Val_unit; - result = func(list->data); - Begin_roots3 (last_cell, cell, result); - cell = last_cell = alloc_small(2,0); - Field(cell,0) = result; - Field(cell,1) = Val_unit; - list = list->next; - while (list != NULL) { - result = func(list->data); - new_cell = alloc_small(2,0); - Field(new_cell,0) = result; - Field(new_cell,1) = Val_unit; - modify(&Field(last_cell,1), new_cell); - last_cell = new_cell; - list = list->next; - } - End_roots (); - return cell; -} - -GList *GList_val (value list, gpointer (*func)(value)) -{ - CAMLparam1(list); - GList *res = NULL; - if (list == Val_unit) CAMLreturn (res); - for (; Is_block(list); list = Field(list,1)) - res = g_list_append (res, func(Field(list,0))); - CAMLreturn (res); -} - -static value ml_warning_handler = 0L; - -static void ml_warning_wrapper (const gchar *msg) -{ - value arg = copy_string ((char*)msg); - callback (ml_warning_handler, arg); -} - -value ml_g_set_warning_handler (value clos) -{ - value old_handler = ml_warning_handler ? ml_warning_handler : clos; - if (!ml_warning_handler) register_global_root (&ml_warning_handler); - g_set_warning_handler (ml_warning_wrapper); - ml_warning_handler = clos; - return old_handler; -} - -static value ml_print_handler = 0L; - -static void ml_print_wrapper (const gchar *msg) -{ - value arg = copy_string ((char*)msg); - callback (ml_print_handler, arg); -} - -value ml_g_set_print_handler (value clos) -{ - value old_handler = ml_print_handler ? ml_print_handler : clos; - if (!ml_print_handler) register_global_root (&ml_print_handler); - g_set_print_handler (ml_print_wrapper); - ml_print_handler = clos; - return old_handler; -} - -value ml_get_null (value unit) { return 0L; } - -#define GMainLoop_val(val) ((GMainLoop*)Addr_val(val)) -ML_1 (g_main_new, Bool_val, Val_addr) -ML_1 (g_main_iteration, Bool_val, Val_bool) -ML_0 (g_main_pending, Val_bool) -ML_1 (g_main_is_running, GMainLoop_val, Val_bool) -ML_1 (g_main_quit, GMainLoop_val, Unit) -ML_1 (g_main_destroy, GMainLoop_val, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.h deleted file mode 100644 index f0b45db4c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.h +++ /dev/null @@ -1,10 +0,0 @@ -/* $Id$ */ - -/* -value Val_GSList (GSList *list, value (*func)(gpointer)); - -GSList *GSList_val (value list, gpointer (*func)(value)); -*/ - -value Val_GList (GList *list, value (*func)(gpointer)); -GList *GList_val (value list, gpointer (*func)(value)); diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.c deleted file mode 100644 index 0ee12a24d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.c +++ /dev/null @@ -1,2170 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -void ml_raise_gtk (const char *errmsg) -{ - static value * exn = NULL; - if (exn == NULL) - exn = caml_named_value ("gtkerror"); - raise_with_string (*exn, (char*)errmsg); -} - -value copy_string_and_free (char *str) -{ - value res; - res = copy_string_check (str); - g_free (str); - return res; -} - -value *ml_gtk_root_new (value v) -{ - value *p = stat_alloc(sizeof(value)); - *p = v; - register_global_root (p); - return p; -} - -void ml_gtk_root_destroy (gpointer data) -{ - remove_global_root ((value *)data); - stat_free (data); -} - -/* conversion functions */ - -#include "gtk_tags.c" - -ML_1 (Val_direction_type, Int_val, Id) -ML_1 (Val_orientation, Int_val, Id) -ML_1 (Val_toolbar_style, Int_val, Id) -ML_1 (Val_state_type, Int_val, Id) -ML_1 (Val_scroll_type, Int_val, Id) - -Make_Flags_val (Attach_options_val) -Make_Flags_val (Button_action_val) -Make_Flags_val (Dest_defaults_val) -Make_Flags_val (Target_flags_val) -Make_Flags_val (Font_type_val) - -/* gtkobject.h */ - -Make_Val_final_pointer(GtkObject, gtk_object_ref, gtk_object_unref, 0) - -#define gtk_object_ref_and_sink(w) (gtk_object_ref(w), gtk_object_sink(w)) -Make_Val_final_pointer_ext(GtkObject, _sink , gtk_object_ref_and_sink, - gtk_object_unref, 20) - -/* gtkaccelgroup.h */ - -#define GtkAccelGroup_val(val) ((GtkAccelGroup*)Pointer_val(val)) -Make_Val_final_pointer (GtkAccelGroup, gtk_accel_group_ref, - gtk_accel_group_unref, 0) -Make_Val_final_pointer_ext (GtkAccelGroup, _no_ref, Ignore, - gtk_accel_group_unref, 20) -Make_OptFlags_val (Accel_flag_val) - -#define Signal_name_val(val) String_val(Field(val,0)) - -ML_0 (gtk_accel_group_new, Val_GtkAccelGroup_no_ref) -ML_0 (gtk_accel_group_get_default, Val_GtkAccelGroup) -ML_3 (gtk_accel_group_activate, GtkAccelGroup_val, Int_val, - OptFlags_GdkModifier_val, Val_bool) -ML_3 (gtk_accel_groups_activate, GtkObject_val, Int_val, - OptFlags_GdkModifier_val, Val_bool) -ML_2 (gtk_accel_group_attach, GtkAccelGroup_val, GtkObject_val, Unit) -ML_2 (gtk_accel_group_detach, GtkAccelGroup_val, GtkObject_val, Unit) -ML_1 (gtk_accel_group_lock, GtkAccelGroup_val, Unit) -ML_1 (gtk_accel_group_unlock, GtkAccelGroup_val, Unit) -ML_3 (gtk_accel_group_lock_entry, GtkAccelGroup_val, Int_val, - OptFlags_GdkModifier_val, Unit) -ML_3 (gtk_accel_group_unlock_entry, GtkAccelGroup_val, Int_val, - OptFlags_GdkModifier_val, Unit) -ML_6 (gtk_accel_group_add, GtkAccelGroup_val, Int_val, - OptFlags_GdkModifier_val, OptFlags_Accel_flag_val, - GtkObject_val, Signal_name_val, Unit) -ML_bc6 (ml_gtk_accel_group_add) -ML_4 (gtk_accel_group_remove, GtkAccelGroup_val, Int_val, - OptFlags_GdkModifier_val, GtkObject_val, Unit) -ML_2 (gtk_accelerator_valid, Int_val, OptFlags_GdkModifier_val, Val_bool) -ML_1 (gtk_accelerator_set_default_mod_mask, OptFlags_GdkModifier_val, Unit) - -/* gtkstyle.h */ - -#define GtkStyle_val(val) ((GtkStyle*)Pointer_val(val)) -Make_Val_final_pointer (GtkStyle, gtk_style_ref, gtk_style_unref, 0) -Make_Val_final_pointer_ext (GtkStyle, _no_ref, Ignore, gtk_style_unref, 20) -ML_0 (gtk_style_new, Val_GtkStyle_no_ref) -ML_1 (gtk_style_copy, GtkStyle_val, Val_GtkStyle_no_ref) -ML_2 (gtk_style_attach, GtkStyle_val, GdkWindow_val, Val_GtkStyle) -ML_1 (gtk_style_detach, GtkStyle_val, Unit) -ML_3 (gtk_style_set_background, GtkStyle_val, GdkWindow_val, State_type_val, Unit) -ML_6 (gtk_draw_hline, GtkStyle_val, GdkWindow_val, State_type_val, - Int_val, Int_val, Int_val, Unit) -ML_bc6 (ml_gtk_draw_hline) -ML_6 (gtk_draw_vline, GtkStyle_val, GdkWindow_val, State_type_val, - Int_val, Int_val, Int_val, Unit) -ML_bc6 (ml_gtk_draw_vline) -Make_Array_Extractor (gtk_style_get, GtkStyle_val, State_type_val, bg, Val_copy) -Make_Array_Setter (gtk_style_set, GtkStyle_val, State_type_val, *GdkColor_val, bg) -Make_Extractor (gtk_style_get, GtkStyle_val, colormap, Val_GdkColormap) -Make_Extractor (gtk_style_get, GtkStyle_val, depth, Val_int) -Make_Extractor (gtk_style_get, GtkStyle_val, font, Val_GdkFont) -/* Make_Setter (gtk_style_set, GtkStyle_val, GdkFont_val, font) */ -value ml_gtk_style_set_font (value st, value font) -{ - GtkStyle *style = GtkStyle_val(st); - if (style->font) gdk_font_unref(style->font); - style->font = GdkFont_val(font); - gdk_font_ref(style->font); - return Val_unit; -} -Make_Array_Extractor (gtk_style_get, GtkStyle_val, State_type_val, dark_gc, Val_GdkGC) -Make_Array_Extractor (gtk_style_get, GtkStyle_val, State_type_val, light_gc, Val_GdkGC) - -/* gtktypeutils.h */ - -ML_1 (gtk_type_name, Int_val, Val_string) -ML_1 (gtk_type_from_name, String_val, Val_int) -ML_1 (gtk_type_parent, Int_val, Val_int) -ML_1 (gtk_type_class, Int_val, (value)) -ML_1 (gtk_type_parent_class, Int_val, (value)) -ML_2 (gtk_type_is_a, Int_val, Int_val, Val_bool) -value ml_gtk_type_fundamental (value type) -{ - return Val_fundamental_type (GTK_FUNDAMENTAL_TYPE (Int_val(type))); -} - -/* gtkobject.h */ - -/* ML_1 (GTK_OBJECT_TYPE, GtkObject_val, Val_int) */ -value ml_gtk_object_type (value val) -{ - return Val_int (GtkObject_val(val)->klass->type); -} - -ML_1 (gtk_object_destroy, GtkObject_val, Unit) -ML_1 (gtk_object_ref, GtkObject_val, Unit) -ML_1 (gtk_object_unref, GtkObject_val, Unit) -ML_1 (gtk_object_sink, GtkObject_val, Unit) - -Make_Extractor (gtk_class,(GtkObjectClass *),type,Val_int) - -/* gtkdata.h */ - -/* gtkadjustment.h */ - -#define GtkAdjustment_val(val) check_cast(GTK_ADJUSTMENT,val) -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) -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) -Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, step_increment, - copy_double) -Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, page_increment, - copy_double) -Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, page_size, copy_double) - -/* gtktooltips.h */ - -#define GtkWidget_val(val) check_cast(GTK_WIDGET,val) -#define GtkTooltips_val(val) check_cast(GTK_TOOLTIPS,val) -ML_0 (gtk_tooltips_new, Val_GtkAny) -ML_1 (gtk_tooltips_enable, GtkTooltips_val, Unit) -ML_1 (gtk_tooltips_disable, GtkTooltips_val, Unit) -ML_2 (gtk_tooltips_set_delay, GtkTooltips_val, Int_val, Unit) -ML_4 (gtk_tooltips_set_tip, GtkTooltips_val, GtkWidget_val, - String_option_val, String_option_val, Unit) -ML_3 (gtk_tooltips_set_colors, GtkTooltips_val, - Option_val(arg2, GdkColor_val, NULL) Ignore, - Option_val(arg3, GdkColor_val, NULL) Ignore, - Unit) - -/* gtkwidget.h */ - -value ml_gtk_widget_set_can_default (value val, value bool) -{ - GtkWidget *w = GtkWidget_val(val); - guint32 saved_flags = GTK_WIDGET_FLAGS(w); - if (Bool_val(bool)) GTK_WIDGET_SET_FLAGS(w, GTK_CAN_DEFAULT); - else GTK_WIDGET_UNSET_FLAGS(w, GTK_CAN_DEFAULT); - if (saved_flags != GTK_WIDGET_FLAGS(w)) - gtk_widget_queue_resize (w); - return Val_unit; -} -value ml_gtk_widget_set_can_focus (value val, value bool) -{ - GtkWidget *w = GtkWidget_val(val); - guint32 saved_flags = GTK_WIDGET_FLAGS(w); - if (Bool_val(bool)) GTK_WIDGET_SET_FLAGS(w, GTK_CAN_FOCUS); - else GTK_WIDGET_UNSET_FLAGS(w, GTK_CAN_FOCUS); - if (saved_flags != GTK_WIDGET_FLAGS(w)) - gtk_widget_queue_resize (w); - return Val_unit; -} -ML_1 (gtk_widget_unparent, GtkWidget_val, Unit) -ML_1 (gtk_widget_show, GtkWidget_val, Unit) -ML_1 (gtk_widget_show_now, GtkWidget_val, Unit) -ML_1 (gtk_widget_show_all, GtkWidget_val, Unit) -ML_1 (gtk_widget_hide, GtkWidget_val, Unit) -ML_1 (gtk_widget_hide_all, GtkWidget_val, Unit) -ML_1 (gtk_widget_map, GtkWidget_val, Unit) -ML_1 (gtk_widget_unmap, GtkWidget_val, Unit) -ML_1 (gtk_widget_realize, GtkWidget_val, Unit) -ML_1 (gtk_widget_unrealize, GtkWidget_val, Unit) -ML_1 (gtk_widget_queue_draw, GtkWidget_val, Unit) -ML_1 (gtk_widget_queue_resize, GtkWidget_val, Unit) -ML_2 (gtk_widget_draw, GtkWidget_val, - Option_val(arg2,GdkRectangle_val,NULL) Ignore, Unit) -ML_1 (gtk_widget_draw_focus, GtkWidget_val, Unit) -ML_1 (gtk_widget_draw_default, GtkWidget_val, Unit) -/* ML_1 (gtk_widget_draw_children, GtkWidget_val, Unit) */ -ML_2 (gtk_widget_event, GtkWidget_val, GdkEvent_val, Val_bool) -ML_1 (gtk_widget_activate, GtkWidget_val, Val_bool) -ML_2 (gtk_widget_reparent, GtkWidget_val, GtkWidget_val, Unit) -ML_3 (gtk_widget_popup, GtkWidget_val, Int_val, Int_val, Unit) -value ml_gtk_widget_intersect (value w, value area) -{ - GdkRectangle inter; - if (gtk_widget_intersect(GtkWidget_val(w), GdkRectangle_val(area), &inter)) - return ml_some (Val_copy (inter)); - return Val_unit; -} -/* ML_1 (gtk_widget_basic, GtkWidget_val, Val_bool) */ -ML_1 (gtk_widget_grab_focus, GtkWidget_val, Unit) -ML_1 (gtk_widget_grab_default, GtkWidget_val, Unit) -ML_2 (gtk_widget_set_name, GtkWidget_val, String_val, Unit) -ML_1 (gtk_widget_get_name, GtkWidget_val, Val_string) -ML_2 (gtk_widget_set_state, GtkWidget_val, State_type_val, Unit) -ML_2 (gtk_widget_set_sensitive, GtkWidget_val, Bool_val, Unit) -ML_3 (gtk_widget_set_uposition, GtkWidget_val, Int_val, Int_val, Unit) -ML_3 (gtk_widget_set_usize, GtkWidget_val, Int_val, Int_val, Unit) -ML_2 (gtk_widget_add_events, GtkWidget_val, Flags_Event_mask_val, Unit) -ML_2 (gtk_widget_set_events, GtkWidget_val, Flags_Event_mask_val, Unit) -ML_2 (gtk_widget_set_extension_events, GtkWidget_val, Extension_events_val, - Unit) -ML_1 (gtk_widget_get_toplevel, GtkWidget_val, Val_GtkWidget) -ML_2 (gtk_widget_get_ancestor, GtkWidget_val, Int_val, Val_GtkWidget) -ML_1 (gtk_widget_get_colormap, GtkWidget_val, Val_GdkColormap) -ML_1 (gtk_widget_get_visual, GtkWidget_val, (value)) -value ml_gtk_widget_get_pointer (value w) -{ - int x,y; - value ret; - gtk_widget_get_pointer (GtkWidget_val(w), &x, &y); - ret = alloc_small (2,0); - Field(ret,0) = Val_int(x); - Field(ret,1) = Val_int(y); - return ret; -} -ML_2 (gtk_widget_is_ancestor, GtkWidget_val, GtkWidget_val, Val_bool) -/* ML_2 (gtk_widget_is_child, GtkWidget_val, GtkWidget_val, Val_bool) */ -ML_2 (gtk_widget_set_style, GtkWidget_val, GtkStyle_val, Unit) -ML_1 (gtk_widget_set_rc_style, GtkWidget_val, Unit) -ML_1 (gtk_widget_ensure_style, GtkWidget_val, Unit) -ML_1 (gtk_widget_get_style, GtkWidget_val, Val_GtkStyle) -ML_1 (gtk_widget_restore_default_style, GtkWidget_val, Unit) - -ML_6 (gtk_widget_add_accelerator, GtkWidget_val, Signal_name_val, - GtkAccelGroup_val, Char_val, OptFlags_GdkModifier_val, - OptFlags_Accel_flag_val, Unit) -ML_bc6 (ml_gtk_widget_add_accelerator) -ML_4 (gtk_widget_remove_accelerator, GtkWidget_val, GtkAccelGroup_val, - Char_val, OptFlags_GdkModifier_val, Unit) -ML_1 (gtk_widget_lock_accelerators, GtkWidget_val, Unit) -ML_1 (gtk_widget_unlock_accelerators, GtkWidget_val, Unit) -ML_1 (gtk_widget_accelerators_locked, GtkWidget_val, Val_bool) - -ML_1 (GTK_WIDGET_VISIBLE, GtkWidget_val, Val_bool) -ML_1 (GTK_WIDGET_HAS_FOCUS, GtkWidget_val, Val_bool) - -Make_Extractor (GtkWidget, GtkWidget_val, window, Val_GdkWindow) -Make_Extractor (gtk_widget, GtkWidget_val, parent, Val_GtkWidget) -static value Val_GtkAllocation (GtkAllocation allocation) -{ - value ret = alloc_small (4, 0); - Field(ret,0) = Val_int(allocation.x); - Field(ret,1) = Val_int(allocation.y); - Field(ret,2) = Val_int(allocation.width); - Field(ret,3) = Val_int(allocation.height); - return ret; -} -Make_Extractor (gtk_widget, GtkWidget_val, allocation, Val_GtkAllocation) -/* -#define GtkAllocation_val(val) ((GtkAllocation*)Pointer_val(val)) -Make_Extractor (gtk_allocation, GtkAllocation_val, x, Val_int) -Make_Extractor (gtk_allocation, GtkAllocation_val, y, Val_int) -Make_Extractor (gtk_allocation, GtkAllocation_val, width, Val_int) -Make_Extractor (gtk_allocation, GtkAllocation_val, height, Val_int) -*/ - -ML_2 (gtk_widget_set_app_paintable, GtkWidget_val, Bool_val, Unit) - -ML_2 (gtk_widget_set_visual, GtkWidget_val, GdkVisual_val, Unit) -ML_2 (gtk_widget_set_colormap, GtkWidget_val, GdkColormap_val, Unit) -ML_1 (gtk_widget_set_default_visual, GdkVisual_val, Unit) -ML_1 (gtk_widget_set_default_colormap, GdkColormap_val, Unit) -ML_0 (gtk_widget_get_default_visual, Val_GdkVisual) -ML_0 (gtk_widget_get_default_colormap, Val_GdkColormap) -ML_1 (gtk_widget_push_visual, GdkVisual_val, Unit) -ML_1 (gtk_widget_push_colormap, GdkColormap_val, Unit) -ML_0 (gtk_widget_pop_visual, Unit) -ML_0 (gtk_widget_pop_colormap, Unit) - -/* gtkdnd.h */ - -value ml_gtk_drag_dest_set (value w, value f, value t, value a) -{ - GtkTargetEntry *targets = (GtkTargetEntry *)Val_unit; - int n_targets, i; - - CAMLparam4 (w,f,t,a); - n_targets = Wosize_val(t); - if (n_targets) - targets = (GtkTargetEntry *) - alloc (Wosize_asize(n_targets * sizeof(GtkTargetEntry)), - Abstract_tag); - for (i=0; ilength < 0) ml_raise_null_pointer(); - ret = alloc_string (data->length); - if (data->length) memcpy ((void*)ret, data->data, data->length); - return ret; -} - -ML_4 (gtk_selection_data_set, GtkSelectionData_val, Int_val, Int_val, - Insert((guchar*)String_option_val(arg4)) - Option_val(arg4, string_length, -1) Ignore, - Unit) - -/* gtkcontainer.h */ - -#define GtkContainer_val(val) check_cast(GTK_CONTAINER,val) -ML_2 (gtk_container_set_border_width, GtkContainer_val, Int_val, Unit) -ML_2 (gtk_container_set_resize_mode, GtkContainer_val, Resize_mode_val, Unit) -ML_2 (gtk_container_add, GtkContainer_val, GtkWidget_val, Unit) -ML_2 (gtk_container_remove, GtkContainer_val, GtkWidget_val, Unit) -static void ml_gtk_simple_callback (GtkWidget *w, gpointer data) -{ - value val, *clos = (value*)data; - val = Val_GtkWidget(w); - callback (*clos, val); -} -value ml_gtk_container_foreach (value w, value clos) -{ - CAMLparam1(clos); - gtk_container_foreach (GtkContainer_val(w), ml_gtk_simple_callback, - &clos); - CAMLreturn(Val_unit); -} -ML_1 (gtk_container_register_toplevel, GtkContainer_val, Unit) -ML_1 (gtk_container_unregister_toplevel, GtkContainer_val, Unit) -ML_2 (gtk_container_focus, GtkContainer_val, Direction_type_val, Val_bool) -ML_2 (gtk_container_set_focus_child, GtkContainer_val, GtkWidget_val, Unit) -ML_2 (gtk_container_set_focus_vadjustment, GtkContainer_val, - GtkAdjustment_val, Unit) -ML_2 (gtk_container_set_focus_hadjustment, GtkContainer_val, - GtkAdjustment_val, Unit) - -/* gtkbin.h */ - -/* gtkalignment.h */ - -#define GtkAlignment_val(val) check_cast(GTK_ALIGNMENT,val) -ML_4 (gtk_alignment_new, Float_val, Float_val, Float_val, Float_val, - Val_GtkWidget_sink) -value ml_gtk_alignment_set (value x, value y, - value xscale, value yscale, value val) -{ - GtkAlignment *alignment = GtkAlignment_val(val); - gtk_alignment_set (alignment, - Option_val(x, Float_val, alignment->xalign), - Option_val(y, Float_val, alignment->yalign), - Option_val(xscale, Float_val, alignment->xscale), - Option_val(yscale, Float_val, alignment->xscale)); - return Val_unit; -} - -/* gtkeventbox.h */ - -ML_0 (gtk_event_box_new, Val_GtkWidget_sink) - -/* gtkframe.h */ - -#define GtkFrame_val(val) check_cast(GTK_FRAME,val) -ML_1 (gtk_frame_new, Optstring_val, Val_GtkWidget_sink) -ML_2 (gtk_frame_set_label, GtkFrame_val, Optstring_val, Unit) -ML_3 (gtk_frame_set_label_align, GtkFrame_val, Float_val, Float_val, Unit) -ML_2 (gtk_frame_set_shadow_type, GtkFrame_val, Shadow_type_val, Unit) -Make_Extractor (gtk_frame_get, GtkFrame_val, label_xalign, copy_double) -Make_Extractor (gtk_frame_get, GtkFrame_val, label_yalign, copy_double) - -/* gtkaspectframe.h */ - -#define GtkAspectFrame_val(val) check_cast(GTK_ASPECT_FRAME,val) -ML_5 (gtk_aspect_frame_new, Optstring_val, - Float_val, Float_val, Float_val, Bool_val, Val_GtkWidget_sink) -ML_5 (gtk_aspect_frame_set, GtkAspectFrame_val, Float_val, Float_val, - Float_val, Bool_val, Unit) -Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, xalign, copy_double) -Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, yalign, copy_double) -Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, ratio, copy_double) -Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, obey_child, Val_bool) - -/* gtkhandlebox.h */ - -#define GtkHandleBox_val(val) check_cast(GTK_HANDLE_BOX,val) -ML_0 (gtk_handle_box_new, Val_GtkWidget_sink) -ML_2 (gtk_handle_box_set_shadow_type, GtkHandleBox_val, Shadow_type_val, Unit) -ML_2 (gtk_handle_box_set_handle_position, GtkHandleBox_val, Position_val, Unit) -ML_2 (gtk_handle_box_set_snap_edge, GtkHandleBox_val, Position_val, Unit) - -/* gtkinvisible.h */ -/* private class -ML_0 (gtk_invisible_new, Val_GtkWidget_sink) -*/ - -/* gtkitem.h */ - -#define GtkItem_val(val) check_cast(GTK_ITEM,val) -ML_1 (gtk_item_select, GtkItem_val, Unit) -ML_1 (gtk_item_deselect, GtkItem_val, Unit) -ML_1 (gtk_item_toggle, GtkItem_val, Unit) - -/* gtklistitem.h */ - -ML_0 (gtk_list_item_new, Val_GtkWidget_sink) -ML_1 (gtk_list_item_new_with_label, String_val, Val_GtkWidget_sink) - -/* gtkmenuitem.h */ - -#define GtkMenuItem_val(val) check_cast(GTK_MENU_ITEM,val) -ML_0 (gtk_menu_item_new, Val_GtkWidget_sink) -ML_0 (gtk_tearoff_menu_item_new, Val_GtkWidget_sink) -ML_1 (gtk_menu_item_new_with_label, String_val, Val_GtkWidget_sink) -ML_2 (gtk_menu_item_set_submenu, GtkMenuItem_val, GtkWidget_val, Unit) -ML_1 (gtk_menu_item_remove_submenu, GtkMenuItem_val, Unit) -ML_2 (gtk_menu_item_set_placement, GtkMenuItem_val, - Submenu_placement_val, Unit) -ML_3 (gtk_menu_item_configure, GtkMenuItem_val, Bool_val, Bool_val, Unit) -ML_1 (gtk_menu_item_activate, GtkMenuItem_val, Unit) -ML_1 (gtk_menu_item_right_justify, GtkMenuItem_val, Unit) - -/* gtkcheckmenuitem.h */ - -#define GtkCheckMenuItem_val(val) check_cast(GTK_CHECK_MENU_ITEM,val) -ML_0 (gtk_check_menu_item_new, Val_GtkWidget_sink) -ML_1 (gtk_check_menu_item_new_with_label, String_val, Val_GtkWidget_sink) -ML_2 (gtk_check_menu_item_set_active, GtkCheckMenuItem_val, Bool_val, Unit) -ML_2 (gtk_check_menu_item_set_show_toggle, GtkCheckMenuItem_val, - Bool_val, Unit) -ML_1 (gtk_check_menu_item_toggled, GtkCheckMenuItem_val, Unit) -Make_Extractor (gtk_check_menu_item_get, GtkCheckMenuItem_val, - active, Val_bool) - -/* gtkradiomenuitem.h */ - -#define GtkRadioMenuItem_val(val) check_cast(GTK_RADIO_MENU_ITEM,val) -static GSList* item_group_val(value val) -{ - return (val == Val_unit ? NULL : - gtk_radio_menu_item_group(GtkRadioMenuItem_val(Field(val,0)))); -} -ML_1 (gtk_radio_menu_item_new, item_group_val, Val_GtkWidget_sink) -ML_2 (gtk_radio_menu_item_new_with_label, item_group_val, - String_val, Val_GtkWidget_sink) -ML_2 (gtk_radio_menu_item_set_group, GtkRadioMenuItem_val, - item_group_val, Unit) - -/* gtktreeitem.h */ - -#define GtkTreeItem_val(val) check_cast(GTK_TREE_ITEM,val) -ML_0 (gtk_tree_item_new, Val_GtkWidget_sink) -ML_1 (gtk_tree_item_new_with_label, String_val, Val_GtkWidget_sink) -ML_2 (gtk_tree_item_set_subtree, GtkTreeItem_val, GtkWidget_val, Unit) -ML_1 (gtk_tree_item_remove_subtree, GtkTreeItem_val, Unit) -ML_1 (gtk_tree_item_expand, GtkTreeItem_val, Unit) -ML_1 (gtk_tree_item_collapse, GtkTreeItem_val, Unit) -ML_1 (GTK_TREE_ITEM_SUBTREE, GtkTreeItem_val, Val_GtkWidget) - -/* gtkviewport.h */ - -#define GtkViewport_val(val) check_cast(GTK_VIEWPORT,val) -ML_2 (gtk_viewport_new, GtkAdjustment_val, GtkAdjustment_val, - Val_GtkWidget_sink) -ML_1 (gtk_viewport_get_hadjustment, GtkViewport_val, Val_GtkWidget_sink) -ML_1 (gtk_viewport_get_vadjustment, GtkViewport_val, Val_GtkWidget) -ML_2 (gtk_viewport_set_hadjustment, GtkViewport_val, GtkAdjustment_val, Unit) -ML_2 (gtk_viewport_set_vadjustment, GtkViewport_val, GtkAdjustment_val, Unit) -ML_2 (gtk_viewport_set_shadow_type, GtkViewport_val, Shadow_type_val, Unit) - -/* gtkdialog.h */ - -static void window_unref (GtkObject *w) -{ - /* If the window exists and is still not visible, then unreference twice. - This should be enough to destroy it. */ - if (!GTK_OBJECT_DESTROYED(w) && !GTK_WIDGET_VISIBLE(w)) - gtk_object_unref (w); - gtk_object_unref (w); -} -Make_Val_final_pointer_ext (GtkObject, _window, gtk_object_ref, window_unref, - 20) -#define Val_GtkWidget_window(w) Val_GtkObject_window((GtkObject*)w) - -#define GtkDialog_val(val) check_cast(GTK_DIALOG,val) -ML_0 (gtk_dialog_new, Val_GtkWidget_window) -Make_Extractor (GtkDialog, GtkDialog_val, action_area, Val_GtkWidget) -Make_Extractor (GtkDialog, GtkDialog_val, vbox, Val_GtkWidget) - -/* gtkinputdialog.h */ - -ML_0 (gtk_input_dialog_new, Val_GtkWidget_window) - -/* gtkfileselection.h */ - -#define GtkFileSelection_val(val) check_cast(GTK_FILE_SELECTION,val) -ML_1 (gtk_file_selection_new, String_val, Val_GtkWidget_window) -ML_2 (gtk_file_selection_set_filename, GtkFileSelection_val, String_val, Unit) -ML_1 (gtk_file_selection_get_filename, GtkFileSelection_val, Val_string) -ML_1 (gtk_file_selection_show_fileop_buttons, GtkFileSelection_val, Unit) -ML_1 (gtk_file_selection_hide_fileop_buttons, GtkFileSelection_val, Unit) -Make_Extractor (gtk_file_selection_get, GtkFileSelection_val, ok_button, - Val_GtkWidget) -Make_Extractor (gtk_file_selection_get, GtkFileSelection_val, cancel_button, - Val_GtkWidget) -Make_Extractor (gtk_file_selection_get, GtkFileSelection_val, help_button, - Val_GtkWidget) - -/* gtkwindow.h */ - -#define GtkWindow_val(val) check_cast(GTK_WINDOW,val) -ML_1 (gtk_window_new, Window_type_val, Val_GtkWidget_window) -ML_2 (gtk_window_set_title, GtkWindow_val, String_val, Unit) -ML_3 (gtk_window_set_wmclass, GtkWindow_val, String_val, String_val, Unit) -Make_Extractor (gtk_window_get, GtkWindow_val, wmclass_name, Val_optstring) -Make_Extractor (gtk_window_get, GtkWindow_val, wmclass_class, Val_optstring) -ML_2 (gtk_window_set_focus, GtkWindow_val, GtkWidget_val, Unit) -ML_2 (gtk_window_set_default, GtkWindow_val, GtkWidget_val, Unit) -ML_4 (gtk_window_set_policy, GtkWindow_val, Bool_val, Bool_val, Bool_val, Unit) -Make_Extractor (gtk_window_get, GtkWindow_val, allow_shrink, Val_bool) -Make_Extractor (gtk_window_get, GtkWindow_val, allow_grow, Val_bool) -Make_Extractor (gtk_window_get, GtkWindow_val, auto_shrink, Val_bool) -ML_2 (gtk_window_add_accel_group, GtkWindow_val, - GtkAccelGroup_val, Unit) -ML_2 (gtk_window_remove_accel_group, GtkWindow_val, - GtkAccelGroup_val, Unit) -ML_1 (gtk_window_activate_focus, GtkWindow_val, Val_bool) -ML_1 (gtk_window_activate_default, GtkWindow_val, Val_bool) -ML_2 (gtk_window_set_modal, GtkWindow_val, Bool_val, Unit) -ML_3 (gtk_window_set_default_size, GtkWindow_val, Int_val, Int_val, Unit) -ML_2 (gtk_window_set_position, GtkWindow_val, Window_position_val, Unit) -ML_2 (gtk_window_set_transient_for, GtkWindow_val, GtkWindow_val, Unit) - -/* gtkcolorsel.h */ - -#define GtkColorSelection_val(val) check_cast(GTK_COLOR_SELECTION,val) -#define GtkColorSelectionDialog_val(val) check_cast(GTK_COLOR_SELECTION_DIALOG,val) -ML_0 (gtk_color_selection_new, Val_GtkWidget_sink) -ML_2 (gtk_color_selection_set_update_policy, GtkColorSelection_val, - Update_type_val, Unit) -ML_2 (gtk_color_selection_set_opacity, GtkColorSelection_val, - Bool_val, Unit) -value ml_gtk_color_selection_set_color (value w, value red, value green, - value blue, value opacity) -{ - double color[4]; - color[0] = Double_val(red); - color[1] = Double_val(green); - color[2] = Double_val(blue); - color[3] = Option_val(opacity,Double_val,0.0); - gtk_color_selection_set_color (GtkColorSelection_val(w), color); - return Val_unit; -} -value ml_gtk_color_selection_get_color (value w) -{ - value ret; - double color[4]; - color[3] = 0.0; - gtk_color_selection_get_color (GtkColorSelection_val(w), color); - ret = alloc (4*Double_wosize, Double_array_tag); - Store_double_field (ret, 0, color[0]); - Store_double_field (ret, 1, color[1]); - Store_double_field (ret, 2, color[2]); - Store_double_field (ret, 3, color[3]); - return ret; -} -ML_1 (gtk_color_selection_dialog_new, String_val, Val_GtkWidget_window) -Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, ok_button, Val_GtkWidget) -Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, cancel_button, Val_GtkWidget) -Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, help_button, Val_GtkWidget) -Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, colorsel, Val_GtkWidget) - -/* gtkfontsel.h */ - -#define GtkFontSelection_val(val) \ - check_cast(GTK_FONT_SELECTION,val) -ML_0 (gtk_font_selection_new, Val_GtkWidget_sink) -ML_1 (gtk_font_selection_get_font, GtkFontSelection_val, - Val_GdkFont) -ML_1 (gtk_font_selection_get_font_name, GtkFontSelection_val, - copy_string_check) -ML_2 (gtk_font_selection_set_font_name, GtkFontSelection_val, - String_val, Val_bool) -ML_9 (gtk_font_selection_set_filter, GtkFontSelection_val, - Font_filter_type_val, Flags_Font_type_val, - (gchar**), (gchar**), (gchar**), - (gchar**), (gchar**), (gchar**), Unit) -ML_bc9 (ml_gtk_font_selection_set_filter) -ML_1 (gtk_font_selection_get_preview_text, GtkFontSelection_val, - copy_string) -ML_2 (gtk_font_selection_set_preview_text, GtkFontSelection_val, - String_val, Unit) - -#define GtkFontSelectionDialog_val(val) \ - check_cast(GTK_FONT_SELECTION_DIALOG,val) -ML_1 (gtk_font_selection_dialog_new, String_option_val, Val_GtkWidget_window) -/* -ML_1 (gtk_font_selection_dialog_get_font, GtkFontSelectionDialog_val, - Val_GdkFont) -ML_1 (gtk_font_selection_dialog_get_font_name, GtkFontSelectionDialog_val, - copy_string_check) -ML_2 (gtk_font_selection_dialog_set_font_name, GtkFontSelectionDialog_val, - String_val, Val_bool) -ML_9 (gtk_font_selection_dialog_set_filter, GtkFontSelectionDialog_val, - Font_filter_type_val, Flags_Font_type_val, - (gchar**), (gchar**), (gchar**), - (gchar**), (gchar**), (gchar**), Unit) -ML_bc9 (ml_gtk_font_selection_dialog_set_filter) -ML_1 (gtk_font_selection_dialog_get_preview_text, GtkFontSelectionDialog_val, - copy_string) -ML_2 (gtk_font_selection_dialog_set_preview_text, GtkFontSelectionDialog_val, - String_val, Unit) -*/ -Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val, - fontsel, Val_GtkWidget) -Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val, - ok_button, Val_GtkWidget) -Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val, - apply_button, Val_GtkWidget) -Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val, - cancel_button, Val_GtkWidget) - -/* gtkplug.h */ - -ML_1 (gtk_plug_new, XID_val, Val_GtkWidget_window) - -/* gtkbox.h */ - -#define GtkBox_val(val) check_cast(GTK_BOX,val) -ML_5 (gtk_box_pack_start, GtkBox_val, GtkWidget_val, Bool_val, Bool_val, - Int_val, Unit) -ML_5 (gtk_box_pack_end, GtkBox_val, GtkWidget_val, Bool_val, Bool_val, - Int_val, Unit) -ML_2 (gtk_box_set_homogeneous, GtkBox_val, Bool_val, Unit) -ML_2 (gtk_box_set_spacing, GtkBox_val, Int_val, Unit) -ML_3 (gtk_box_reorder_child, GtkBox_val, GtkWidget_val, Int_val, Unit) -value ml_gtk_box_query_child_packing (value box, value child) -{ - int expand, fill; - unsigned int padding; - GtkPackType pack_type; - value ret; - gtk_box_query_child_packing (GtkBox_val(box), GtkWidget_val(child), - &expand, &fill, &padding, &pack_type); - ret = alloc_small(4,0); - Field(ret,0) = Val_bool(expand); - Field(ret,1) = Val_bool(fill); - Field(ret,2) = Val_int(padding); - Field(ret,3) = Val_pack_type(pack_type); - return ret; -} -value ml_gtk_box_set_child_packing (value vbox, value vchild, value vexpand, - value vfill, value vpadding, value vpack) -{ - GtkBox *box = GtkBox_val(vbox); - GtkWidget *child = GtkWidget_val(vchild); - int expand, fill; - unsigned int padding; - GtkPackType pack; - gtk_box_query_child_packing (box, child, &expand, &fill, &padding, &pack); - gtk_box_set_child_packing (box, child, - Option_val(vexpand, Bool_val, expand), - Option_val(vfill, Bool_val, fill), - Option_val(vpadding, Int_val, padding), - Option_val(vpack, Pack_type_val, pack)); - return Val_unit; -} -ML_bc6 (ml_gtk_box_set_child_packing) - -ML_2 (gtk_hbox_new, Bool_val, Int_val, Val_GtkWidget_sink) -ML_2 (gtk_vbox_new, Bool_val, Int_val, Val_GtkWidget_sink) - -/* gtkbbox.h */ - -#define GtkButtonBox_val(val) check_cast(GTK_BUTTON_BOX,val) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, spacing, Val_int) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_min_width, Val_int) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_min_height, - Val_int) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_ipad_x, Val_int) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_ipad_y, Val_int) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, layout_style, - Val_button_box_style) -ML_2 (gtk_button_box_set_spacing, GtkButtonBox_val, Int_val, Unit) -ML_3 (gtk_button_box_set_child_size, GtkButtonBox_val, - Int_val, Int_val, Unit) -ML_3 (gtk_button_box_set_child_ipadding, GtkButtonBox_val, - Int_val, Int_val, Unit) -ML_2 (gtk_button_box_set_layout, GtkButtonBox_val, Button_box_style_val, Unit) -ML_2 (gtk_button_box_set_child_size_default, Int_val, Int_val, Unit) -ML_2 (gtk_button_box_set_child_ipadding_default, Int_val, Int_val, Unit) - -ML_0 (gtk_hbutton_box_new, Val_GtkWidget_sink) -ML_0 (gtk_vbutton_box_new, Val_GtkWidget_sink) - -/* gtklist.h */ - -#define GtkList_val(val) check_cast(GTK_LIST,val) -ML_0 (gtk_list_new, Val_GtkWidget_sink) -value ml_gtk_list_insert_item (value list, value item, value pos) -{ - GList *tmp_list = g_list_alloc (); - tmp_list->data = GtkWidget_val(item); - tmp_list->next = NULL; - tmp_list->prev = NULL; - gtk_list_insert_items (GtkList_val(list), tmp_list, Int_val(pos)); - return Val_unit; -} -ML_3 (gtk_list_clear_items, GtkList_val, Int_val, Int_val, Unit) -ML_2 (gtk_list_select_item, GtkList_val, Int_val, Unit) -ML_2 (gtk_list_unselect_item, GtkList_val, Int_val, Unit) -ML_2 (gtk_list_select_child, GtkList_val, GtkWidget_val, Unit) -ML_2 (gtk_list_unselect_child, GtkList_val, GtkWidget_val, Unit) -ML_2 (gtk_list_child_position, GtkList_val, GtkWidget_val, Val_int) -ML_2 (gtk_list_set_selection_mode, GtkList_val, Selection_mode_val, Unit) - -/* gtkcombo.h */ - -#define GtkCombo_val(val) check_cast(GTK_COMBO,val) -ML_0 (gtk_combo_new, Val_GtkWidget_sink) -ML_3 (gtk_combo_set_value_in_list, GtkCombo_val, - Option_val(arg2, Bool_val, GtkCombo_val(arg1)->value_in_list) Ignore, - Option_val(arg3, Bool_val, GtkCombo_val(arg1)->ok_if_empty) Ignore, - Unit) -ML_2 (gtk_combo_set_use_arrows, GtkCombo_val, Bool_val, Unit) -ML_2 (gtk_combo_set_use_arrows_always, GtkCombo_val, Bool_val, Unit) -ML_2 (gtk_combo_set_case_sensitive, GtkCombo_val, Bool_val, Unit) -ML_3 (gtk_combo_set_item_string, GtkCombo_val, GtkItem_val, String_val, Unit) -ML_1 (gtk_combo_disable_activate, GtkCombo_val, Unit) -Make_Extractor (gtk_combo, GtkCombo_val, entry, Val_GtkWidget) -Make_Extractor (gtk_combo, GtkCombo_val, list, Val_GtkWidget) - -/* gtkstatusbar.h */ - -#define GtkStatusbar_val(val) check_cast(GTK_STATUSBAR,val) -ML_0 (gtk_statusbar_new, Val_GtkWidget_sink) -ML_2 (gtk_statusbar_get_context_id, GtkStatusbar_val, String_val, Val_int) -ML_3 (gtk_statusbar_push, GtkStatusbar_val, Int_val, String_val, Val_int) -ML_2 (gtk_statusbar_pop, GtkStatusbar_val, Int_val, Unit) -ML_3 (gtk_statusbar_remove, GtkStatusbar_val, Int_val, Int_val, Unit) - -/* gtkgamma.h */ - -#define GtkGammaCurve_val(val) check_cast(GTK_GAMMA_CURVE,val) -ML_0 (gtk_gamma_curve_new, Val_GtkWidget_sink) -Make_Extractor (gtk_gamma_curve_get, GtkGammaCurve_val, gamma, copy_double) - -/* gtkbutton.h */ - -#define GtkButton_val(val) check_cast(GTK_BUTTON,val) -ML_0 (gtk_button_new, Val_GtkWidget_sink) -ML_1 (gtk_button_new_with_label, String_val, Val_GtkWidget_sink) -ML_1 (gtk_button_pressed, GtkButton_val, Unit) -ML_1 (gtk_button_released, GtkButton_val, Unit) -ML_1 (gtk_button_clicked, GtkButton_val, Unit) -ML_1 (gtk_button_enter, GtkButton_val, Unit) -ML_1 (gtk_button_leave, GtkButton_val, Unit) - -/* gtkoptionmenu.h */ - -#define GtkOptionMenu_val(val) check_cast(GTK_OPTION_MENU,val) -ML_0 (gtk_option_menu_new, Val_GtkWidget_sink) -ML_1 (gtk_option_menu_get_menu, GtkOptionMenu_val, Val_GtkWidget_sink) -ML_2 (gtk_option_menu_set_menu, GtkOptionMenu_val, GtkWidget_val, Unit) -ML_1 (gtk_option_menu_remove_menu, GtkOptionMenu_val, Unit) -ML_2 (gtk_option_menu_set_history, GtkOptionMenu_val, Int_val, Unit) - -/* gtktogglebutton.h */ - -#define GtkToggleButton_val(val) check_cast(GTK_TOGGLE_BUTTON,val) -ML_0 (gtk_toggle_button_new, Val_GtkWidget_sink) -ML_1 (gtk_toggle_button_new_with_label, String_val, Val_GtkWidget_sink) -ML_2 (gtk_toggle_button_set_mode, GtkToggleButton_val, Bool_val, Unit) -ML_2 (gtk_toggle_button_set_active, GtkToggleButton_val, Bool_val, Unit) -ML_1 (gtk_toggle_button_toggled, GtkToggleButton_val, Unit) -Make_Extractor (gtk_toggle_button_get, GtkToggleButton_val, active, Val_bool) - -/* gtkcheckbutton.h */ - -#define GtkCheckButton_val(val) check_cast(GTK_CHECK_BUTTON,val) -ML_0 (gtk_check_button_new, Val_GtkWidget_sink) -ML_1 (gtk_check_button_new_with_label, String_val, Val_GtkWidget_sink) - -/* gtkradiobutton.h */ - -#define GtkRadioButton_val(val) check_cast(GTK_RADIO_BUTTON,val) -static GSList* button_group_val(value val) -{ - return (val == Val_unit ? NULL : - gtk_radio_button_group(GtkRadioButton_val(Field(val,0)))); -} -ML_1 (gtk_radio_button_new, button_group_val, - Val_GtkWidget_sink) -ML_2 (gtk_radio_button_new_with_label, button_group_val, - String_val, Val_GtkWidget_sink) -ML_2 (gtk_radio_button_set_group, GtkRadioButton_val, button_group_val, Unit) - -/* gtkclist.h */ - -#define GtkCList_val(val) check_cast(GTK_CLIST,val) -ML_1 (gtk_clist_new, Int_val, Val_GtkWidget_sink) -ML_1 (gtk_clist_new_with_titles, Insert(Wosize_val(arg1)) (char **), - Val_GtkWidget_sink) -Make_Extractor (gtk_clist_get, GtkCList_val, rows, Val_int) -Make_Extractor (gtk_clist_get, GtkCList_val, columns, Val_int) -Make_Extractor (gtk_clist_get, GtkCList_val, focus_row, Val_int) -ML_2 (gtk_clist_set_hadjustment, GtkCList_val, GtkAdjustment_val, Unit) -ML_2 (gtk_clist_set_vadjustment, GtkCList_val, GtkAdjustment_val, Unit) -ML_1 (gtk_clist_get_hadjustment, GtkCList_val, Val_GtkAny) -ML_1 (gtk_clist_get_vadjustment, GtkCList_val, Val_GtkAny) -ML_2 (gtk_clist_set_shadow_type, GtkCList_val, Shadow_type_val, Unit) -ML_2 (gtk_clist_set_selection_mode, GtkCList_val, Selection_mode_val, Unit) -ML_2 (gtk_clist_set_reorderable, GtkCList_val, Bool_val, Unit) -ML_2 (gtk_clist_set_use_drag_icons, GtkCList_val, Bool_val, Unit) -ML_3 (gtk_clist_set_button_actions, GtkCList_val, Int_val, - (guint8)Flags_Button_action_val, Unit) -ML_1 (gtk_clist_freeze, GtkCList_val, Unit) -ML_1 (gtk_clist_thaw, GtkCList_val, Unit) -ML_1 (gtk_clist_column_titles_show, GtkCList_val, Unit) -ML_1 (gtk_clist_column_titles_hide, GtkCList_val, Unit) -ML_2 (gtk_clist_column_title_active, GtkCList_val, Int_val, Unit) -ML_2 (gtk_clist_column_title_passive, GtkCList_val, Int_val, Unit) -ML_1 (gtk_clist_column_titles_active, GtkCList_val, Unit) -ML_1 (gtk_clist_column_titles_passive, GtkCList_val, Unit) -ML_3 (gtk_clist_set_column_title, GtkCList_val, Int_val, String_val, Unit) -ML_2 (gtk_clist_get_column_title, GtkCList_val, Int_val, Val_string) -ML_3 (gtk_clist_set_column_widget, GtkCList_val, Int_val, GtkWidget_val, Unit) -ML_2 (gtk_clist_get_column_widget, GtkCList_val, Int_val, Val_GtkWidget) -ML_3 (gtk_clist_set_column_justification, GtkCList_val, Int_val, - Justification_val, Unit) -ML_3 (gtk_clist_set_column_visibility, GtkCList_val, Int_val, Bool_val, Unit) -ML_3 (gtk_clist_set_column_resizeable, GtkCList_val, Int_val, Bool_val, Unit) -ML_3 (gtk_clist_set_column_auto_resize, GtkCList_val, Int_val, Bool_val, Unit) -ML_1 (gtk_clist_columns_autosize, GtkCList_val, Unit) -ML_2 (gtk_clist_optimal_column_width, GtkCList_val, Int_val, Val_int) -ML_3 (gtk_clist_set_column_width, GtkCList_val, Int_val, Int_val, Unit) -ML_3 (gtk_clist_set_column_min_width, GtkCList_val, Int_val, Int_val, Unit) -ML_3 (gtk_clist_set_column_max_width, GtkCList_val, Int_val, Int_val, Unit) -ML_2 (gtk_clist_set_row_height, GtkCList_val, Int_val, Unit) -ML_5 (gtk_clist_moveto, GtkCList_val, Int_val, Int_val, - Double_val, Double_val, Unit) -ML_2 (gtk_clist_row_is_visible, GtkCList_val, Int_val, Val_visibility) -ML_3 (gtk_clist_get_cell_type, GtkCList_val, Int_val, Int_val, Val_cell_type) -ML_4 (gtk_clist_set_text, GtkCList_val, Int_val, Int_val, Optstring_val, Unit) -value ml_gtk_clist_get_text (value clist, value row, value column) -{ - char *text; - if (!gtk_clist_get_text (GtkCList_val(clist), Int_val(row), - Int_val(column), &text)) - invalid_argument ("Gtk.Clist.get_text"); - return Val_optstring(text); -} -ML_5 (gtk_clist_set_pixmap, GtkCList_val, Int_val, Int_val, GdkPixmap_val, - GdkBitmap_val, Unit) -value ml_gtk_clist_get_pixmap (value clist, value row, value column) -{ - CAMLparam0 (); - GdkPixmap *pixmap; - GdkBitmap *bitmap; - CAMLlocal2 (vpixmap,vbitmap); - value ret; - - if (!gtk_clist_get_pixmap (GtkCList_val(clist), Int_val(row), - Int_val(column), &pixmap, &bitmap)) - invalid_argument ("Gtk.Clist.get_pixmap"); - vpixmap = Val_option (pixmap, Val_GdkPixmap); - vbitmap = Val_option (bitmap, Val_GdkBitmap); - - ret = alloc_small (2,0); - Field(ret,0) = vpixmap; - Field(ret,1) = vbitmap; - CAMLreturn(ret); -} -ML_7 (gtk_clist_set_pixtext, GtkCList_val, Int_val, Int_val, String_val, - (guint8)Long_val, GdkPixmap_val, GdkBitmap_val, Unit) -ML_bc7 (ml_gtk_clist_set_pixtext) -ML_3 (gtk_clist_set_foreground, GtkCList_val, Int_val, GdkColor_val, Unit) -ML_3 (gtk_clist_set_background, GtkCList_val, Int_val, GdkColor_val, Unit) -ML_3 (gtk_clist_get_cell_style, GtkCList_val, Int_val, Int_val, Val_GtkStyle) -ML_4 (gtk_clist_set_cell_style, GtkCList_val, Int_val, Int_val, GtkStyle_val, - Unit) -ML_2 (gtk_clist_get_row_style, GtkCList_val, Int_val, Val_GtkStyle) -ML_3 (gtk_clist_set_row_style, GtkCList_val, Int_val, GtkStyle_val, Unit) -ML_3 (gtk_clist_set_selectable, GtkCList_val, Int_val, Bool_val, Unit) -ML_2 (gtk_clist_get_selectable, GtkCList_val, Int_val, Val_bool) -ML_5 (gtk_clist_set_shift, GtkCList_val, Int_val, Int_val, Int_val, Int_val, - Unit) -/* ML_2 (gtk_clist_append, GtkCList_val, (char **), Val_int) */ -ML_3 (gtk_clist_insert, GtkCList_val, Int_val, (char **), Val_int) -ML_2 (gtk_clist_remove, GtkCList_val, Int_val, Unit) -value ml_gtk_clist_set_row_data (value w, value row, value data) -{ - value *data_p = ml_gtk_root_new (data); - gtk_clist_set_row_data_full (GtkCList_val(w), Int_val(row), - data_p, ml_gtk_root_destroy); - return Val_unit; -} -ML_2 (gtk_clist_get_row_data, GtkCList_val, Int_val, *(value*)Check_null) -ML_3 (gtk_clist_select_row, GtkCList_val, Int_val, Int_val, Unit) -ML_3 (gtk_clist_unselect_row, GtkCList_val, Int_val, Int_val, Unit) -ML_1 (gtk_clist_clear, GtkCList_val, Unit) -value ml_gtk_clist_get_selection_info (value clist, value x, value y) -{ - int row, column; - value ret; - if (!gtk_clist_get_selection_info (GtkCList_val(clist), Int_val(x), - Int_val(y), &row, &column)) - invalid_argument ("Gtk.Clist.get_selection_info"); - ret = alloc_small (2,0); - Field(ret,0) = row; - Field(ret,1) = column; - return ret; -} -ML_1 (gtk_clist_select_all, GtkCList_val, Unit) -ML_1 (gtk_clist_unselect_all, GtkCList_val, Unit) -ML_3 (gtk_clist_swap_rows, GtkCList_val, Int_val, Int_val, Unit) -ML_3 (gtk_clist_row_move, GtkCList_val, Int_val, Int_val, Unit) -ML_2 (gtk_clist_set_sort_column, GtkCList_val, Int_val, Unit) -ML_2 (gtk_clist_set_sort_type, GtkCList_val, Sort_type_val, Unit) -ML_1 (gtk_clist_sort, GtkCList_val, Unit) -ML_2 (gtk_clist_set_auto_sort, GtkCList_val, Bool_val, Unit) - -/* gtkctree.h */ -#define GtkCTree_val(val) check_cast(GTK_CTREE,val) -/* Beware: this definition axpects arg1 to be a GtkCTree */ -/* -#define GtkCTreeNode_val(val) \ - (gtk_ctree_find(GtkCTree_val(arg1),NULL,(GtkCTreeNode*)(val-1)) \ - ? (GtkCTreeNode*)(val-1) : (ml_raise_gtk ("Bad GtkCTreeNode"), NULL)) -#define Val_GtkCTreeNode Val_addr -ML_2 (gtk_ctree_new, Int_val, Int_val, Val_GtkWidget_sink) -ML_3 (gtk_ctree_new_with_titles, Int_val, Int_val, (char **), - Val_GtkWidget_sink) -ML_11 (gtk_ctree_insert_node, GtkCTree_val, GtkCTreeNode_val, - GtkCTreeNode_val, (char**), Int_val, GdkPixmap_val, GdkBitmap_val, - GdkPixmap_val, GdkBitmap_val, Bool_val, Bool_val, - Val_GtkCTreeNode) -ML_2 (gtk_ctree_remove_node, GtkCTree_val, GtkCTreeNode_val, Unit) -ML_2 (gtk_ctree_is_viewable, GtkCTree_val, GtkCTreeNode_val, Val_bool) -*/ - -/* gtkfixed.h */ - -#define GtkFixed_val(val) check_cast(GTK_FIXED,val) -ML_0 (gtk_fixed_new, Val_GtkWidget_sink) -ML_4 (gtk_fixed_put, GtkFixed_val, GtkWidget_val, (gint16)Long_val, (gint16)Long_val, Unit) -ML_4 (gtk_fixed_move, GtkFixed_val, GtkWidget_val, (gint16)Long_val, (gint16)Long_val, Unit) - -/* gtklayout.h */ - -#define GtkLayout_val(val) check_cast(GTK_LAYOUT,val) -ML_2 (gtk_layout_new, GtkAdjustment_val, GtkAdjustment_val, Val_GtkWidget_sink) -ML_4 (gtk_layout_put, GtkLayout_val, GtkWidget_val, Int_val, Int_val, Unit) -ML_4 (gtk_layout_move, GtkLayout_val, GtkWidget_val, Int_val, Int_val, Unit) -ML_3 (gtk_layout_set_size, GtkLayout_val, Int_val, Int_val, Unit) -ML_1 (gtk_layout_get_hadjustment, GtkLayout_val, Val_GtkAny) -ML_1 (gtk_layout_get_vadjustment, GtkLayout_val, Val_GtkAny) -ML_2 (gtk_layout_set_hadjustment, GtkLayout_val, GtkAdjustment_val, Unit) -ML_2 (gtk_layout_set_vadjustment, GtkLayout_val, GtkAdjustment_val, Unit) -ML_1 (gtk_layout_freeze, GtkLayout_val, Unit) -ML_1 (gtk_layout_thaw, GtkLayout_val, Unit) -Make_Extractor (gtk_layout_get, GtkLayout_val, width, Val_int) -Make_Extractor (gtk_layout_get, GtkLayout_val, height, Val_int) - -/* gtkmenushell.h */ - -#define GtkMenuShell_val(val) check_cast(GTK_MENU_SHELL,val) -ML_2 (gtk_menu_shell_append, GtkMenuShell_val, GtkWidget_val, Unit) -ML_2 (gtk_menu_shell_prepend, GtkMenuShell_val, GtkWidget_val, Unit) -ML_3 (gtk_menu_shell_insert, GtkMenuShell_val, GtkWidget_val, Int_val, Unit) -ML_1 (gtk_menu_shell_deactivate, GtkMenuShell_val, Unit) - -/* gtkmenu.h */ - -#define GtkMenu_val(val) check_cast(GTK_MENU,val) -ML_0 (gtk_menu_new, Val_GtkWidget_sink) -ML_5 (gtk_menu_popup, GtkMenu_val, GtkWidget_val, GtkWidget_val, - Insert(NULL) Insert(NULL) Int_val, Int_val, Unit) -ML_1 (gtk_menu_popdown, GtkMenu_val, Unit) -ML_1 (gtk_menu_get_active, GtkMenu_val, Val_GtkWidget) -ML_2 (gtk_menu_set_active, GtkMenu_val, Int_val, Unit) -ML_2 (gtk_menu_set_accel_group, GtkMenu_val, GtkAccelGroup_val, Unit) -ML_1 (gtk_menu_get_accel_group, GtkMenu_val, Val_GtkAccelGroup) -ML_1 (gtk_menu_ensure_uline_accel_group, GtkMenu_val, Val_GtkAccelGroup) -value ml_gtk_menu_attach_to_widget (value menu, value widget) -{ - gtk_menu_attach_to_widget (GtkMenu_val(menu), GtkWidget_val(widget), NULL); - return Val_unit; -} -ML_1 (gtk_menu_get_attach_widget, GtkMenu_val, Val_GtkWidget) -ML_1 (gtk_menu_detach, GtkMenu_val, Unit) - -/* gtkmenubar.h */ - -#define GtkMenuBar_val(val) check_cast(GTK_MENU_BAR,val) -ML_0 (gtk_menu_bar_new, Val_GtkWidget_sink) - -/* gtknotebook.h */ - -#define GtkNotebook_val(val) check_cast(GTK_NOTEBOOK,val) -ML_0 (gtk_notebook_new, Val_GtkWidget_sink) - -ML_5 (gtk_notebook_insert_page_menu, GtkNotebook_val, GtkWidget_val, - GtkWidget_val, GtkWidget_val, Int_val, Unit) -ML_2 (gtk_notebook_remove_page, GtkNotebook_val, Int_val, Unit) - -ML_2 (gtk_notebook_set_tab_pos, GtkNotebook_val, Position_val, Unit) -ML_2 (gtk_notebook_set_homogeneous_tabs, GtkNotebook_val, Bool_val, Unit) -ML_2 (gtk_notebook_set_show_tabs, GtkNotebook_val, Bool_val, Unit) -ML_2 (gtk_notebook_set_show_border, GtkNotebook_val, Bool_val, Unit) -ML_2 (gtk_notebook_set_scrollable, GtkNotebook_val, Bool_val, Unit) -ML_2 (gtk_notebook_set_tab_border, GtkNotebook_val, Int_val, Unit) -ML_1 (gtk_notebook_popup_enable, GtkNotebook_val, Unit) -ML_1 (gtk_notebook_popup_disable, GtkNotebook_val, Unit) - -ML_1 (gtk_notebook_get_current_page, GtkNotebook_val, Val_int) -ML_2 (gtk_notebook_set_page, GtkNotebook_val, Int_val, Unit) -ML_2 (gtk_notebook_get_nth_page, GtkNotebook_val, Int_val, Val_GtkWidget) -ML_2 (gtk_notebook_page_num, GtkNotebook_val, GtkWidget_val, Val_int) -ML_1 (gtk_notebook_next_page, GtkNotebook_val, Unit) -ML_1 (gtk_notebook_prev_page, GtkNotebook_val, Unit) - -ML_2 (gtk_notebook_get_tab_label, GtkNotebook_val, GtkWidget_val, - Val_GtkWidget) -ML_3 (gtk_notebook_set_tab_label, GtkNotebook_val, GtkWidget_val, - GtkWidget_val, Unit) -ML_2 (gtk_notebook_get_menu_label, GtkNotebook_val, GtkWidget_val, - Val_GtkWidget) -ML_3 (gtk_notebook_set_menu_label, GtkNotebook_val, GtkWidget_val, - GtkWidget_val, Unit) -ML_3 (gtk_notebook_reorder_child, GtkNotebook_val, GtkWidget_val, - Int_val, Unit) - - -/* gtkpacker.h */ - -Make_OptFlags_val(Packer_options_val) - -#define GtkPacker_val(val) check_cast(GTK_PACKER,val) -ML_0 (gtk_packer_new, Val_GtkWidget_sink) -ML_10 (gtk_packer_add, GtkPacker_val, GtkWidget_val, - Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore, - Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore, - OptFlags_Packer_options_val, - Option_val(arg6,Int_val,GtkPacker_val(arg1)->default_border_width) Ignore, - Option_val(arg7,Int_val,GtkPacker_val(arg1)->default_pad_x) Ignore, - Option_val(arg8,Int_val,GtkPacker_val(arg1)->default_pad_y) Ignore, - Option_val(arg9,Int_val,GtkPacker_val(arg1)->default_i_pad_x) Ignore, - Option_val(arg10,Int_val,GtkPacker_val(arg1)->default_i_pad_y) Ignore, - Unit) -ML_bc10 (ml_gtk_packer_add) -ML_5 (gtk_packer_add_defaults, GtkPacker_val, GtkWidget_val, - Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore, - Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore, - OptFlags_Packer_options_val, Unit) -ML_10 (gtk_packer_set_child_packing, GtkPacker_val, GtkWidget_val, - Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore, - Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore, - OptFlags_Packer_options_val, - Option_val(arg6,Int_val,GtkPacker_val(arg1)->default_border_width) Ignore, - Option_val(arg7,Int_val,GtkPacker_val(arg1)->default_pad_x) Ignore, - Option_val(arg8,Int_val,GtkPacker_val(arg1)->default_pad_y) Ignore, - Option_val(arg9,Int_val,GtkPacker_val(arg1)->default_i_pad_x) Ignore, - Option_val(arg10,Int_val,GtkPacker_val(arg1)->default_i_pad_y) Ignore, - Unit) -ML_bc10 (ml_gtk_packer_set_child_packing) -ML_3 (gtk_packer_reorder_child, GtkPacker_val, GtkWidget_val, - Int_val, Unit) -ML_2 (gtk_packer_set_spacing, GtkPacker_val, Int_val, Unit) -value ml_gtk_packer_set_defaults (value w, value border_width, - value pad_x, value pad_y, - value i_pad_x, value i_pad_y) -{ - GtkPacker *p = GtkPacker_val(w); - if (Is_block(border_width)) - gtk_packer_set_default_border_width (p,Int_val(Field(border_width,0))); - if (Is_block(pad_x) || Is_block(pad_y)) - gtk_packer_set_default_pad - (p, Option_val(pad_x,Int_val,p->default_pad_x), - Option_val(pad_y,Int_val,p->default_pad_y)); - if (Is_block(i_pad_x) || Is_block(i_pad_y)) - gtk_packer_set_default_ipad - (p, Option_val(pad_x,Int_val,p->default_i_pad_x), - Option_val(pad_y,Int_val,p->default_i_pad_y)); - return Val_unit; -} -ML_bc6 (ml_gtk_packer_set_defaults) - -/* gtkpaned.h */ - -#define GtkPaned_val(val) check_cast(GTK_PANED,val) -ML_0 (gtk_hpaned_new, Val_GtkWidget_sink) -ML_0 (gtk_vpaned_new, Val_GtkWidget_sink) -ML_2 (gtk_paned_add1, GtkPaned_val, GtkWidget_val, Unit) -ML_2 (gtk_paned_add2, GtkPaned_val, GtkWidget_val, Unit) -ML_2 (gtk_paned_set_handle_size, GtkPaned_val, (gint16)Int_val, Unit) -ML_2 (gtk_paned_set_gutter_size, GtkPaned_val, (gint16)Int_val, Unit) -Make_Extractor (gtk_paned, GtkPaned_val, child1, Val_GtkWidget) -Make_Extractor (gtk_paned, GtkPaned_val, child2, Val_GtkWidget) -Make_Extractor (gtk_paned, GtkPaned_val, handle_size, Val_int) -Make_Extractor (gtk_paned, GtkPaned_val, gutter_size, Val_int) - -/* gtkscrolledwindow.h */ - -#define GtkScrolledWindow_val(val) check_cast(GTK_SCROLLED_WINDOW,val) -ML_2 (gtk_scrolled_window_new, GtkAdjustment_val ,GtkAdjustment_val, - Val_GtkWidget_sink) -ML_2 (gtk_scrolled_window_set_hadjustment, GtkScrolledWindow_val , - GtkAdjustment_val, Unit) -ML_2 (gtk_scrolled_window_set_vadjustment, GtkScrolledWindow_val , - GtkAdjustment_val, Unit) -ML_1 (gtk_scrolled_window_get_hadjustment, GtkScrolledWindow_val, - Val_GtkWidget) -ML_1 (gtk_scrolled_window_get_vadjustment, GtkScrolledWindow_val, - Val_GtkWidget) -ML_3 (gtk_scrolled_window_set_policy, GtkScrolledWindow_val, - Policy_type_val, Policy_type_val, Unit) -Make_Extractor (gtk_scrolled_window_get, GtkScrolledWindow_val, - hscrollbar_policy, Val_policy_type) -Make_Extractor (gtk_scrolled_window_get, GtkScrolledWindow_val, - vscrollbar_policy, Val_policy_type) -ML_2 (gtk_scrolled_window_set_placement, GtkScrolledWindow_val, - Corner_type_val, Unit) -ML_2 (gtk_scrolled_window_add_with_viewport, GtkScrolledWindow_val, - GtkWidget_val, Unit) - -/* gtksocket.h */ - -#define GtkSocket_val(val) check_cast(GTK_SOCKET,val) -ML_0 (gtk_socket_new, Val_GtkWidget_sink) -ML_2 (gtk_socket_steal, GtkSocket_val, XID_val, Unit) - -/* gtktable.h */ - -#define GtkTable_val(val) check_cast(GTK_TABLE,val) -ML_3 (gtk_table_new, Int_val, Int_val, Int_val, Val_GtkWidget_sink) -ML_10 (gtk_table_attach, GtkTable_val, GtkWidget_val, - Int_val, Int_val, Int_val, Int_val, - Flags_Attach_options_val, Flags_Attach_options_val, - Int_val, Int_val, Unit) -ML_bc10 (ml_gtk_table_attach) -ML_3 (gtk_table_set_row_spacing, GtkTable_val, Int_val, Int_val, Unit) -ML_3 (gtk_table_set_col_spacing, GtkTable_val, Int_val, Int_val, Unit) -ML_2 (gtk_table_set_row_spacings, GtkTable_val, Int_val, Unit) -ML_2 (gtk_table_set_col_spacings, GtkTable_val, Int_val, Unit) -ML_2 (gtk_table_set_homogeneous, GtkTable_val, Bool_val, Unit) - -/* gtktoolbar.h */ - -#define GtkToolbar_val(val) check_cast(GTK_TOOLBAR,val) -ML_2 (gtk_toolbar_new, Orientation_val, Toolbar_style_val, Val_GtkWidget_sink) -ML_2 (gtk_toolbar_insert_space, GtkToolbar_val, Int_val, Unit) -ML_7 (gtk_toolbar_insert_element, GtkToolbar_val, Toolbar_child_val, - Insert(NULL) Optstring_val, Optstring_val, Optstring_val, GtkWidget_val, - Insert(NULL) Insert(NULL) Int_val, Val_GtkWidget) -ML_bc7 (ml_gtk_toolbar_insert_element) -ML_5 (gtk_toolbar_insert_widget, GtkToolbar_val, GtkWidget_val, - Optstring_val, Optstring_val, Int_val, Unit) -ML_2 (gtk_toolbar_set_orientation, GtkToolbar_val, Orientation_val, Unit) -ML_2 (gtk_toolbar_set_style, GtkToolbar_val, Toolbar_style_val, Unit) -ML_2 (gtk_toolbar_set_space_size, GtkToolbar_val, Int_val, Unit) -ML_2 (gtk_toolbar_set_space_style, GtkToolbar_val, Toolbar_space_style_val, Unit) -ML_2 (gtk_toolbar_set_tooltips, GtkToolbar_val, Bool_val, Unit) -ML_2 (gtk_toolbar_set_button_relief, GtkToolbar_val, Relief_style_val, Unit) -ML_1 (gtk_toolbar_get_button_relief, GtkToolbar_val, Val_relief_style) - -/* gtktree.h */ - -#define GtkTree_val(val) check_cast(GTK_TREE,val) -ML_0 (gtk_tree_new, Val_GtkWidget_sink) -ML_3 (gtk_tree_insert, GtkTree_val, GtkWidget_val, Int_val, Unit) -ML_3 (gtk_tree_clear_items, GtkTree_val, Int_val, Int_val, Unit) -ML_2 (gtk_tree_select_item, GtkTree_val, Int_val, Unit) -ML_2 (gtk_tree_unselect_item, GtkTree_val, Int_val, Unit) -ML_2 (gtk_tree_child_position, GtkTree_val, GtkWidget_val, Val_int) -ML_2 (gtk_tree_set_selection_mode, GtkTree_val, Selection_mode_val, Unit) -ML_2 (gtk_tree_set_view_mode, GtkTree_val, Tree_view_mode_val, Unit) -ML_2 (gtk_tree_set_view_lines, GtkTree_val, Bool_val, Unit) - -static value val_gtkany (gpointer p) { return Val_GtkAny(p); } -value ml_gtk_tree_selection (value tree) -{ - GList *selection = GTK_TREE_SELECTION(GtkTree_val(tree)); - return Val_GList(selection, val_gtkany); -} -static gpointer gtkobject_val (value val) { return GtkObject_val(val); } -value ml_gtk_tree_remove_items (value tree, value items) -{ - GList *items_list = GList_val (items, gtkobject_val); - gtk_tree_remove_items (GtkTree_val(tree), items_list); - return Val_unit; -} - -/* gtkcalendar.h */ - -#define GtkCalendar_val(val) check_cast(GTK_CALENDAR,val) -ML_0 (gtk_calendar_new, Val_GtkWidget_sink) -ML_3 (gtk_calendar_select_month, GtkCalendar_val, Int_val, Int_val, Unit) -ML_2 (gtk_calendar_select_day, GtkCalendar_val, Int_val, Unit) -ML_2 (gtk_calendar_mark_day, GtkCalendar_val, Int_val, Unit) -ML_2 (gtk_calendar_unmark_day, GtkCalendar_val, Int_val, Unit) -ML_1 (gtk_calendar_clear_marks, GtkCalendar_val, Unit) -Make_Flags_val (Calendar_display_options_val) -ML_2 (gtk_calendar_display_options, GtkCalendar_val, - Flags_Calendar_display_options_val, Unit) -value ml_gtk_calendar_get_date (value w) -{ - guint year, month, day; - value ret; - - gtk_calendar_get_date (GtkCalendar_val(w), &year, &month, &day); - ret = alloc_small (3, 0); - Field(ret,0) = Val_int(year); - Field(ret,1) = Val_int(month); - Field(ret,2) = Val_int(day); - return ret; -} -ML_1 (gtk_calendar_freeze, GtkCalendar_val, Unit) -ML_1 (gtk_calendar_thaw, GtkCalendar_val, Unit) - -/* gtkdrawingarea.h */ - -#define GtkDrawingArea_val(val) check_cast(GTK_DRAWING_AREA,val) -ML_0 (gtk_drawing_area_new, Val_GtkWidget_sink) -ML_3 (gtk_drawing_area_size, GtkDrawingArea_val, Int_val, Int_val, Unit) - -/* gtkeditable.h */ - -#define GtkEditable_val(val) check_cast(GTK_EDITABLE,val) -ML_3 (gtk_editable_select_region, GtkEditable_val, Int_val, Int_val, Unit) -value ml_gtk_editable_insert_text (value w, value s, value pos) -{ - int position = Int_val(pos); - gtk_editable_insert_text (GtkEditable_val(w), String_val(s), - string_length(s), &position); - return Val_int(position); -} -ML_3 (gtk_editable_delete_text, GtkEditable_val, Int_val, Int_val, Unit) -ML_3 (gtk_editable_get_chars, GtkEditable_val, Int_val, Int_val, - copy_string_and_free) -ML_1 (gtk_editable_cut_clipboard, GtkEditable_val, Unit) -ML_1 (gtk_editable_copy_clipboard, GtkEditable_val, Unit) -ML_1 (gtk_editable_paste_clipboard, GtkEditable_val, Unit) -ML_3 (gtk_editable_claim_selection, GtkEditable_val, Bool_val, Int_val, Unit) -ML_1 (gtk_editable_delete_selection, GtkEditable_val, Unit) -ML_1 (gtk_editable_changed, GtkEditable_val, Unit) -ML_2 (gtk_editable_set_position, GtkEditable_val, Int_val, Unit) -ML_1 (gtk_editable_get_position, GtkEditable_val, Val_int) -ML_2 (gtk_editable_set_editable, GtkEditable_val, Bool_val, Unit) -Make_Extractor (gtk_editable, GtkEditable_val, selection_start_pos, Val_int) -Make_Extractor (gtk_editable, GtkEditable_val, selection_end_pos, Val_int) -Make_Extractor (gtk_editable, GtkEditable_val, has_selection, Val_bool) - -/* gtkentry.h */ - -#define GtkEntry_val(val) check_cast(GTK_ENTRY,val) -ML_0 (gtk_entry_new, Val_GtkWidget_sink) -ML_1 (gtk_entry_new_with_max_length, (gint16)Long_val, Val_GtkWidget_sink) -ML_2 (gtk_entry_set_text, GtkEntry_val, String_val, Unit) -ML_2 (gtk_entry_append_text, GtkEntry_val, String_val, Unit) -ML_2 (gtk_entry_prepend_text, GtkEntry_val, String_val, Unit) -ML_1 (gtk_entry_get_text, GtkEntry_val, Val_string) -ML_3 (gtk_entry_select_region, GtkEntry_val, Int_val, Int_val, Unit) -ML_2 (gtk_entry_set_visibility, GtkEntry_val, Bool_val, Unit) -ML_2 (gtk_entry_set_max_length, GtkEntry_val, (gint16)Long_val, Unit) -Make_Extractor (GtkEntry, GtkEntry_val, text_length, Val_int) - -/* gtkspinbutton.h */ - -#define GtkSpinButton_val(val) check_cast(GTK_SPIN_BUTTON,val) -ML_3 (gtk_spin_button_new, GtkAdjustment_val, - Float_val, Int_val, Val_GtkWidget_sink) -ML_2 (gtk_spin_button_set_adjustment, GtkSpinButton_val, GtkAdjustment_val, - Unit) -ML_1 (gtk_spin_button_get_adjustment, GtkSpinButton_val, Val_GtkAny) -ML_2 (gtk_spin_button_set_digits, GtkSpinButton_val, Int_val, Unit) -ML_1 (gtk_spin_button_get_value_as_float, GtkSpinButton_val, copy_double) -ML_2 (gtk_spin_button_set_value, GtkSpinButton_val, Float_val, Unit) -ML_2 (gtk_spin_button_set_update_policy, GtkSpinButton_val, - Update_type_val, Unit) -ML_2 (gtk_spin_button_set_numeric, GtkSpinButton_val, Bool_val, Unit) -ML_2 (gtk_spin_button_spin, GtkSpinButton_val, - Insert (Is_long(arg2) ? Spin_type_val(arg2) : GTK_SPIN_USER_DEFINED) - (Is_long(arg2) ? 0.0 : Float_val(Field(arg2,1))) Ignore, Unit) -ML_2 (gtk_spin_button_set_wrap, GtkSpinButton_val, Bool_val, Unit) -ML_2 (gtk_spin_button_set_shadow_type, GtkSpinButton_val, Shadow_type_val, Unit) -ML_2 (gtk_spin_button_set_snap_to_ticks, GtkSpinButton_val, Bool_val, Unit) -ML_4 (gtk_spin_button_configure, GtkSpinButton_val, GtkAdjustment_val, - Float_val, Int_val, Unit) -ML_1 (gtk_spin_button_update, GtkSpinButton_val, Unit) - -/* gtktext.h */ - -#define GtkText_val(val) check_cast(GTK_TEXT,val) -ML_2 (gtk_text_new, GtkAdjustment_val, GtkAdjustment_val, Val_GtkWidget_sink) -ML_2 (gtk_text_set_word_wrap, GtkText_val, Bool_val, Unit) -ML_2 (gtk_text_set_line_wrap, GtkText_val, Bool_val, Unit) -ML_3 (gtk_text_set_adjustments, GtkText_val, - Option_val(arg2,GtkAdjustment_val,GtkText_val(arg1)->hadj) Ignore, - Option_val(arg3,GtkAdjustment_val,GtkText_val(arg1)->vadj) Ignore, - Unit) -Make_Extractor (gtk_text_get, GtkText_val, hadj, Val_GtkWidget) -Make_Extractor (gtk_text_get, GtkText_val, vadj, Val_GtkWidget) -ML_2 (gtk_text_set_point, GtkText_val, Int_val, Unit) -ML_1 (gtk_text_get_point, GtkText_val, Val_int) -ML_1 (gtk_text_get_length, GtkText_val, Val_int) -ML_1 (gtk_text_freeze, GtkText_val, Unit) -ML_1 (gtk_text_thaw, GtkText_val, Unit) -value ml_gtk_text_insert (value text, value font, value fore, value back, - value str) -{ - gtk_text_insert (GtkText_val(text), - Option_val(font,GdkFont_val,NULL), - Option_val(fore,GdkColor_val,NULL), - Option_val(back,GdkColor_val,NULL), - String_val(str), string_length(str)); - return Val_unit; -} -ML_2 (gtk_text_forward_delete, GtkText_val, Int_val, Val_int) -ML_2 (gtk_text_backward_delete, GtkText_val, Int_val, Val_int) - -/* gtkmisc.h */ - -#define GtkMisc_val(val) check_cast(GTK_MISC,val) -ML_3 (gtk_misc_set_alignment, GtkMisc_val, Double_val, Double_val, Unit) -ML_3 (gtk_misc_set_padding, GtkMisc_val, Int_val, Int_val, Unit) -Make_Extractor (gtk_misc_get, GtkMisc_val, xalign, copy_double) -Make_Extractor (gtk_misc_get, GtkMisc_val, yalign, copy_double) -Make_Extractor (gtk_misc_get, GtkMisc_val, xpad, Val_int) -Make_Extractor (gtk_misc_get, GtkMisc_val, ypad, Val_int) - -/* gtkarrow.h */ - -#define GtkArrow_val(val) check_cast(GTK_ARROW,val) -ML_2 (gtk_arrow_new, Arrow_type_val, Shadow_type_val, Val_GtkWidget_sink) -ML_3 (gtk_arrow_set, GtkArrow_val, Arrow_type_val, Shadow_type_val, Unit) - -/* gtkimage.h */ - -#define GtkImage_val(val) check_cast(GTK_IMAGE,val) -ML_2 (gtk_image_new, GdkImage_val, - Option_val (arg2, GdkBitmap_val, NULL) Ignore, Val_GtkWidget_sink) -ML_3 (gtk_image_set, GtkImage_val, GdkImage_val, - Option_val (arg2, GdkBitmap_val, NULL) Ignore, Unit) - -/* gtklabel.h */ - -#define GtkLabel_val(val) check_cast(GTK_LABEL,val) -ML_1 (gtk_label_new, String_val, Val_GtkWidget_sink) -ML_2 (gtk_label_set_text, GtkLabel_val, String_val, Unit) -ML_2 (gtk_label_set_pattern, GtkLabel_val, String_val, Unit) -ML_2 (gtk_label_set_justify, GtkLabel_val, Justification_val, Unit) -ML_2 (gtk_label_set_line_wrap, GtkLabel_val, Bool_val, Unit) -Make_Extractor (gtk_label_get, GtkLabel_val, label, Val_string) - -/* gtktipsquery.h */ - -#define GtkTipsQuery_val(val) check_cast(GTK_TIPS_QUERY,val) -ML_0 (gtk_tips_query_new, Val_GtkWidget_sink) -ML_1 (gtk_tips_query_start_query, GtkTipsQuery_val, Unit) -ML_1 (gtk_tips_query_stop_query, GtkTipsQuery_val, Unit) -ML_2 (gtk_tips_query_set_caller, GtkTipsQuery_val, GtkWidget_val, Unit) -ML_3 (gtk_tips_query_set_labels, GtkTipsQuery_val, - String_val, String_val, Unit) -value ml_gtk_tips_query_set_emit_always (value w, value arg) -{ - GtkTipsQuery_val(w)->emit_always = Bool_val(arg); - return Val_unit; -} -Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, emit_always, Val_bool) -Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, caller, Val_GtkWidget) -Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, label_inactive, - Val_string) -Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, label_no_tip, - Val_string) - -/* gtkpixmap.h */ - -#define GtkPixmap_val(val) check_cast(GTK_PIXMAP,val) -ML_2 (gtk_pixmap_new, GdkPixmap_val, - Option_val (arg2, GdkBitmap_val, NULL) Ignore, - Val_GtkWidget_sink) -value ml_gtk_pixmap_set (value val, value pixmap, value mask) -{ - GtkPixmap *w = GtkPixmap_val(val); - gtk_pixmap_set (w, Option_val(pixmap,GdkPixmap_val,w->pixmap), - Option_val(mask,GdkBitmap_val,w->mask)); - return Val_unit; -} -Make_Extractor (GtkPixmap, GtkPixmap_val, pixmap, Val_GdkPixmap) -Make_Extractor (GtkPixmap, GtkPixmap_val, mask, Val_GdkBitmap) - -/* gtkpreview.h */ -/* -#define GtkPreview_val(val) GTK_PREVIEW(Pointer_val(val)) -ML_1 (gtk_preview_new, Preview_val, Val_GtkWidget_sink) -ML_3 (gtk_preview_size, GtkPreview_val, Int_val, Int_val, Unit) -ML_9 (gtk_preview_put, GtkPreview_val, GdkWindow_val, GdkGC_val, - Int_val, Int_val, Int_val, Int_val, Int_val, Int_val, Unit) -ML_bc9 (ml_gtk_preview_put) -*/ - -/* gtkprogress.h */ - -#define GtkProgress_val(val) check_cast(GTK_PROGRESS,val) -ML_2 (gtk_progress_set_show_text, GtkProgress_val, Bool_val, Unit) -ML_3 (gtk_progress_set_text_alignment, GtkProgress_val, - Option_val(arg2,Float_val,(GtkProgress_val(arg1))->x_align) Ignore, - Option_val(arg3,Float_val,(GtkProgress_val(arg1))->y_align) Ignore, Unit) -ML_2 (gtk_progress_set_format_string, GtkProgress_val, String_val, Unit) -ML_2 (gtk_progress_set_adjustment, GtkProgress_val, GtkAdjustment_val, Unit) -ML_4 (gtk_progress_configure, GtkProgress_val, - Float_val, Float_val, Float_val, Unit) -ML_2 (gtk_progress_set_percentage, GtkProgress_val, Float_val, Unit) -ML_2 (gtk_progress_set_value, GtkProgress_val, Float_val, Unit) -ML_1 (gtk_progress_get_value, GtkProgress_val, copy_double) -ML_1 (gtk_progress_get_current_percentage, GtkProgress_val, copy_double) -ML_2 (gtk_progress_set_activity_mode, GtkProgress_val, Bool_val, Unit) -ML_1 (gtk_progress_get_current_text, GtkProgress_val, Val_string) -Make_Extractor (gtk_progress_get, GtkProgress_val, adjustment, - Val_GtkAny) - -/* gtkprogressbar.h */ - -#define GtkProgressBar_val(val) check_cast(GTK_PROGRESS_BAR,val) -ML_0 (gtk_progress_bar_new, Val_GtkWidget_sink) -ML_1 (gtk_progress_bar_new_with_adjustment, GtkAdjustment_val, - Val_GtkWidget_sink) -ML_2 (gtk_progress_bar_set_bar_style, GtkProgressBar_val, - Progress_bar_style_val, Unit) -ML_2 (gtk_progress_bar_set_discrete_blocks, GtkProgressBar_val, Int_val, Unit) -ML_2 (gtk_progress_bar_set_activity_step, GtkProgressBar_val, Int_val, Unit) -ML_2 (gtk_progress_bar_set_activity_blocks, GtkProgressBar_val, Int_val, Unit) -ML_2 (gtk_progress_bar_set_orientation, GtkProgressBar_val, - Progress_bar_orientation_val, Unit) -/* ML_2 (gtk_progress_bar_update, GtkProgressBar_val, Float_val, Unit) */ - -/* gtkrange.h */ - -#define GtkRange_val(val) check_cast(GTK_RANGE,val) -ML_1 (gtk_range_get_adjustment, GtkRange_val, Val_GtkAny) -ML_2 (gtk_range_set_adjustment, GtkRange_val, GtkAdjustment_val, Unit) -ML_2 (gtk_range_set_update_policy, GtkRange_val, Update_type_val, Unit) - -/* gtkscale.h */ - -#define GtkScale_val(val) check_cast(GTK_SCALE,val) -ML_2 (gtk_scale_set_digits, GtkScale_val, Int_val, Unit) -ML_2 (gtk_scale_set_draw_value, GtkScale_val, Bool_val, Unit) -ML_2 (gtk_scale_set_value_pos, GtkScale_val, Position_val, Unit) -ML_1 (gtk_scale_get_value_width, GtkScale_val, Val_int) -ML_1 (gtk_scale_draw_value, GtkScale_val, Unit) -ML_1 (gtk_hscale_new, GtkAdjustment_val, Val_GtkWidget_sink) -ML_1 (gtk_vscale_new, GtkAdjustment_val, Val_GtkWidget_sink) - -/* gtkscrollbar.h */ - -ML_1 (gtk_hscrollbar_new, GtkAdjustment_val, Val_GtkWidget_sink) -ML_1 (gtk_vscrollbar_new, GtkAdjustment_val, Val_GtkWidget_sink) - -/* gtkruler.h */ - -#define GtkRuler_val(val) check_cast(GTK_RULER,val) -ML_2 (gtk_ruler_set_metric, GtkRuler_val, Metric_type_val, Unit) -ML_5 (gtk_ruler_set_range, GtkRuler_val, Float_val, - Float_val, Float_val, Float_val, Unit) -Make_Extractor (gtk_ruler_get, GtkRuler_val, lower, copy_double) -Make_Extractor (gtk_ruler_get, GtkRuler_val, upper, copy_double) -Make_Extractor (gtk_ruler_get, GtkRuler_val, position, copy_double) -Make_Extractor (gtk_ruler_get, GtkRuler_val, max_size, copy_double) -ML_1 (gtk_ruler_draw_ticks, GtkRuler_val, Unit) -ML_1 (gtk_ruler_draw_pos, GtkRuler_val, Unit) -ML_0 (gtk_hruler_new, Val_GtkWidget_sink) -ML_0 (gtk_vruler_new, Val_GtkWidget_sink) - -/* gtk[hv]separator.h */ - -ML_0 (gtk_hseparator_new, Val_GtkWidget_sink) -ML_0 (gtk_vseparator_new, Val_GtkWidget_sink) - -/* gtkmain.h */ - -value ml_gtk_init (value argv) -{ - CAMLparam1 (argv); - int argc = Wosize_val(argv), i; - CAMLlocal1 (copy); - - copy = (argc ? alloc (argc, Abstract_tag) : Atom(0)); - for (i = 0; i < argc; i++) Field(copy,i) = Field(argv,i); - gtk_init (&argc, (char ***)©); - - argv = (argc ? alloc (argc, 0) : Atom(0)); - for (i = 0; i < argc; i++) modify(&Field(argv,i), Field(copy,i)); - CAMLreturn (argv); -} -ML_1 (gtk_exit, Int_val, Unit) -ML_0 (gtk_set_locale, Val_string) -ML_0 (gtk_main, Unit) -ML_1 (gtk_main_iteration_do, Bool_val, Val_bool) -ML_0 (gtk_main_quit, Unit) -ML_1 (gtk_grab_add, GtkWidget_val, Unit) -ML_1 (gtk_grab_remove, GtkWidget_val, Unit) -ML_0 (gtk_grab_get_current, Val_GtkWidget) -value ml_gtk_get_version (value unit) -{ - value ret = alloc_small(3,0); - Field(ret,0) = Val_int(gtk_major_version); - Field(ret,1) = Val_int(gtk_minor_version); - Field(ret,2) = Val_int(gtk_micro_version); - return ret; -} - -/* Marshalling */ - -void ml_gtk_callback_marshal (GtkObject *object, gpointer data, - guint nargs, GtkArg *args) -{ - value vargs = alloc_small(3,0); - - CAMLparam1 (vargs); - Field(vargs,0) = (value) object; - Field(vargs,1) = Val_int(nargs); - Field(vargs,2) = (value) args; - - callback (*(value*)data, vargs); - - Field(vargs,0) = Val_int(-1); - Field(vargs,1) = Val_int(-1); - CAMLreturn0; -} - -value ml_gtk_arg_shift (GtkArg *args, value index) -{ - return (value) (&args[Int_val(index)]); -} - -value ml_gtk_arg_get_type (GtkArg *arg) -{ - return Val_int (arg->type); -} - -value ml_gtk_arg_get (GtkArg *arg) -{ - CAMLparam0(); - CAMLlocal1(tmp); - value ret; - GtkFundamentalType type = GTK_FUNDAMENTAL_TYPE(arg->type); - int tag; - - switch (type) { - case GTK_TYPE_CHAR: - tag = 0; - tmp = Int_val(GTK_VALUE_CHAR(*arg)); - break; - case GTK_TYPE_BOOL: - tag = 1; - tmp = Val_bool(GTK_VALUE_BOOL(*arg)); - break; - case GTK_TYPE_INT: - case GTK_TYPE_ENUM: - case GTK_TYPE_UINT: - case GTK_TYPE_FLAGS: - tag = 2; - tmp = Val_int (GTK_VALUE_INT(*arg)); break; - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: - tag = 2; - tmp = Val_int (GTK_VALUE_LONG(*arg)); break; - case GTK_TYPE_FLOAT: - tag = 3; - tmp = copy_double ((double)GTK_VALUE_FLOAT(*arg)); break; - case GTK_TYPE_DOUBLE: - tag = 3; - tmp = copy_double (GTK_VALUE_DOUBLE(*arg)); break; - case GTK_TYPE_STRING: - tag = 4; - tmp = Val_option (GTK_VALUE_STRING(*arg), copy_string); break; - case GTK_TYPE_OBJECT: - tag = 5; - tmp = Val_option (GTK_VALUE_OBJECT(*arg), Val_GtkObject); break; - case GTK_TYPE_BOXED: - case GTK_TYPE_POINTER: - tag = 6; - tmp = Val_option (GTK_VALUE_POINTER(*arg), Val_pointer); break; - default: - tag = -1; ret = Val_unit; - } - if (tag != -1) { - ret = alloc_small(1,tag); - Field(ret,0) = tmp; - } - CAMLreturn(ret); -} - -value ml_gtk_arg_set_retloc (GtkArg *arg, value val) -{ - value type = Fundamental_type_val(Is_block(val) ? Field(val,0) : val); - value data = (Is_block(val) ? Field(val,1) : 0); - if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_POINTER - && GTK_FUNDAMENTAL_TYPE(arg->type) != type) - ml_raise_gtk ("GtkArgv.Arg.set : argument type mismatch"); - switch (type) { - case GTK_TYPE_CHAR: *GTK_RETLOC_CHAR(*arg) = Int_val(data); break; - case GTK_TYPE_BOOL: *GTK_RETLOC_BOOL(*arg) = Int_val(data); break; - case GTK_TYPE_INT: - case GTK_TYPE_ENUM: *GTK_RETLOC_INT(*arg) = Int_val(data); break; - case GTK_TYPE_UINT: - case GTK_TYPE_FLAGS: *GTK_RETLOC_UINT(*arg) = Int32_val(data); break; - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: *GTK_RETLOC_LONG(*arg) = Nativeint_val(data); break; - case GTK_TYPE_FLOAT: *GTK_RETLOC_FLOAT(*arg) = Float_val(data); break; - case GTK_TYPE_DOUBLE: *GTK_RETLOC_DOUBLE(*arg) = Double_val(data); break; - case GTK_TYPE_STRING: - *GTK_RETLOC_STRING(*arg) = Option_val(data, String_val, NULL); - break; - case GTK_TYPE_BOXED: - case GTK_TYPE_POINTER: - case GTK_TYPE_OBJECT: - *GTK_RETLOC_POINTER(*arg) = Option_val(data, Pointer_val, NULL); - break; - } - return Val_unit; -} - -/* -value ml_gtk_arg_get_char (GtkArg *arg) -{ - if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_CHAR) - ml_raise_gtk ("argument type mismatch"); - return Val_char (GTK_VALUE_CHAR(*arg)); -} - -value ml_gtk_arg_get_bool (GtkArg *arg) -{ - if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_BOOL) - ml_raise_gtk ("argument type mismatch"); - return Val_bool (GTK_VALUE_BOOL(*arg)); -} - -value ml_gtk_arg_get_int (GtkArg *arg) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_INT: - case GTK_TYPE_UINT: - return Val_int (GTK_VALUE_INT(*arg)); - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: - return Val_long (GTK_VALUE_LONG(*arg)); - case GTK_TYPE_ENUM: - return Val_int (GTK_VALUE_ENUM(*arg)); - case GTK_TYPE_FLAGS: - return Val_int (GTK_VALUE_FLAGS(*arg)); - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} -*/ -value ml_gtk_arg_get_nativeint(GtkArg *arg) { - - switch(GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_INT: - case GTK_TYPE_UINT: - return copy_nativeint (GTK_VALUE_INT(*arg)); - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: - return copy_nativeint (GTK_VALUE_LONG(*arg)); - case GTK_TYPE_ENUM: - return copy_nativeint (GTK_VALUE_ENUM(*arg)); - case GTK_TYPE_FLAGS: - return copy_nativeint (GTK_VALUE_FLAGS(*arg)); - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} -/* -value ml_gtk_arg_get_float (GtkArg *arg) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_FLOAT: - return copy_double ((double)GTK_VALUE_FLOAT(*arg)); - case GTK_TYPE_DOUBLE: - return copy_double (GTK_VALUE_DOUBLE(*arg)); - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_get_string (GtkArg *arg) -{ - char *p; - if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_STRING) - ml_raise_gtk ("argument type mismatch"); - p = GTK_VALUE_STRING(*arg); - return Val_option (p, copy_string); -} -*/ -value ml_gtk_arg_get_pointer (GtkArg *arg) -{ - gpointer p = NULL; - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_STRING: - case GTK_TYPE_BOXED: - case GTK_TYPE_POINTER: - case GTK_TYPE_OBJECT: - p = GTK_VALUE_POINTER(*arg); break; - default: - ml_raise_gtk ("GtkArgv.get_pointer : argument type mismatch"); - } - return Val_pointer(p); -} -/* -value ml_gtk_arg_get_object (GtkArg *arg) -{ - GtkObject *p; - if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_OBJECT) - ml_raise_gtk ("argument type mismatch"); - p = GTK_VALUE_OBJECT(*arg); - return Val_option (p, Val_GtkObject); -} -*/ - -value ml_string_at_pointer (value ofs, value len, value ptr) -{ - char *start = ((char*)Pointer_val(ptr)) + Option_val(ofs, Int_val, 0); - int length = Option_val(len, Int_val, strlen(start)); - value ret = alloc_string(length); - memcpy ((char*)ret, start, length); - return ret; -} - -value ml_int_at_pointer (value ptr) -{ - return Val_int(*(int*)Pointer_val(ptr)); -} - -/* -value ml_gtk_arg_set_char (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_CHAR: - *GTK_RETLOC_CHAR(*arg) = Char_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_bool (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_BOOL: - *GTK_RETLOC_BOOL(*arg) = Bool_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_int (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_INT: - case GTK_TYPE_UINT: - *GTK_RETLOC_INT(*arg) = Int_val(val); break; - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: - *GTK_RETLOC_LONG(*arg) = Long_val(val); break; - case GTK_TYPE_ENUM: - *GTK_RETLOC_ENUM(*arg) = Int_val(val); break; - case GTK_TYPE_FLAGS: - *GTK_RETLOC_FLAGS(*arg) = Int_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_nativeint (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_INT: - case GTK_TYPE_UINT: - *GTK_RETLOC_INT(*arg) = Nativeint_val(val); break; - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: - *GTK_RETLOC_LONG(*arg) = Nativeint_val(val); break; - case GTK_TYPE_ENUM: - *GTK_RETLOC_ENUM(*arg) = Nativeint_val(val); break; - case GTK_TYPE_FLAGS: - *GTK_RETLOC_FLAGS(*arg) = Nativeint_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_float (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_FLOAT: - *GTK_RETLOC_FLOAT(*arg) = (float) Double_val(val); break; - case GTK_TYPE_DOUBLE: - *GTK_RETLOC_DOUBLE(*arg) = Double_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_string (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_STRING: - *GTK_RETLOC_STRING(*arg) = String_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_pointer (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_BOXED: - *GTK_RETLOC_BOXED(*arg) = Pointer_val(val); break; - case GTK_TYPE_POINTER: - *GTK_RETLOC_POINTER(*arg) = Pointer_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_object (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_OBJECT: - *GTK_RETLOC_OBJECT(*arg) = GtkObject_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} -*/ - -/* gtksignal.h */ - -value ml_gtk_signal_connect (value object, value name, value clos, value after) -{ - value *clos_p = ml_gtk_root_new (clos); - return Val_int (gtk_signal_connect_full - (GtkObject_val(object), String_val(name), NULL, - ml_gtk_callback_marshal, clos_p, - ml_gtk_root_destroy, FALSE, Bool_val(after))); -} - -ML_2 (gtk_signal_disconnect, GtkObject_val, Int_val, Unit) -ML_2 (gtk_signal_emit_stop_by_name, GtkObject_val, String_val, Unit) -ML_2 (gtk_signal_handler_block, GtkObject_val, Int_val, Unit) -ML_2 (gtk_signal_handler_unblock, GtkObject_val, Int_val, Unit) -ML_2_name (ml_gtk_signal_emit_none, gtk_signal_emit_by_name, - GtkObject_val, String_val, Unit) -ML_3_name (ml_gtk_signal_emit_int, gtk_signal_emit_by_name, - GtkObject_val, String_val, Int_val, Unit) -ML_4_name (ml_gtk_signal_emit_scroll, gtk_signal_emit_by_name, - GtkObject_val, String_val, Scroll_type_val, Double_val, Unit) - -/* gtkmain.h (again) */ - -value ml_gtk_timeout_add (value interval, value clos) -{ - value *clos_p = ml_gtk_root_new (clos); - return Val_int (gtk_timeout_add_full - (Int_val(interval), NULL, ml_gtk_callback_marshal, clos_p, - ml_gtk_root_destroy)); -} -ML_1 (gtk_timeout_remove, Int_val, Unit) - -/* -#include "ml_gtkcaller.h" -ML_0 (gtk_caller_new, Val_GtkWidget) -*/ - -static value ml_class_init=0; - -static void class_init (value class) -{ - callback(ml_class_init, class); -} - - -value set_ml_class_init (value class_func) -{ - if (!ml_class_init) register_global_root (&ml_class_init); - ml_class_init = class_func; - return Val_unit; -} - -value ml_gtk_type_new (value type) -{ - return Val_GtkWidget_sink(gtk_type_new(Int_val(type))); -} - - -struct widget_info { - guint size; - guint class_size; - guint (*get_type_func)(void); -} -widget_info_array[] = { - { sizeof(GtkObject), sizeof(GtkObjectClass), gtk_object_get_type }, - { sizeof(GtkWidget), sizeof(GtkWidgetClass), gtk_widget_get_type }, - { sizeof(GtkMisc), sizeof(GtkMiscClass), gtk_misc_get_type }, - { sizeof(GtkLabel), sizeof(GtkLabelClass), gtk_label_get_type }, - { sizeof(GtkAccelLabel), sizeof(GtkAccelLabelClass), gtk_accel_label_get_type }, - { sizeof(GtkTipsQuery), sizeof(GtkTipsQueryClass), gtk_tips_query_get_type }, - { sizeof(GtkArrow), sizeof(GtkArrowClass), gtk_arrow_get_type }, - { sizeof(GtkImage), sizeof(GtkImageClass), gtk_image_get_type }, - { sizeof(GtkPixmap), sizeof(GtkPixmapClass), gtk_pixmap_get_type }, - { sizeof(GtkContainer), sizeof(GtkContainerClass), gtk_container_get_type }, - { sizeof(GtkBin), sizeof(GtkBinClass), gtk_bin_get_type }, - { sizeof(GtkAlignment), sizeof(GtkAlignmentClass), gtk_alignment_get_type }, - { sizeof(GtkFrame), sizeof(GtkFrameClass), gtk_frame_get_type }, - { sizeof(GtkAspectFrame), sizeof(GtkAspectFrameClass), gtk_aspect_frame_get_type }, - { sizeof(GtkButton), sizeof(GtkButtonClass), gtk_button_get_type }, - { sizeof(GtkToggleButton), sizeof(GtkToggleButtonClass), gtk_toggle_button_get_type }, - { sizeof(GtkCheckButton), sizeof(GtkCheckButtonClass), gtk_check_button_get_type }, - { sizeof(GtkRadioButton), sizeof(GtkRadioButtonClass), gtk_radio_button_get_type }, - { sizeof(GtkOptionMenu), sizeof(GtkOptionMenuClass), gtk_option_menu_get_type }, - { sizeof(GtkItem), sizeof(GtkItemClass), gtk_item_get_type }, - { sizeof(GtkMenuItem), sizeof(GtkMenuItemClass), gtk_menu_item_get_type }, - { sizeof(GtkCheckMenuItem), sizeof(GtkCheckMenuItemClass), gtk_check_menu_item_get_type }, - { sizeof(GtkRadioMenuItem), sizeof(GtkRadioMenuItemClass), gtk_radio_menu_item_get_type }, - { sizeof(GtkTearoffMenuItem), sizeof(GtkTearoffMenuItemClass), gtk_tearoff_menu_item_get_type }, - { sizeof(GtkListItem), sizeof(GtkListItemClass), gtk_list_item_get_type }, - { sizeof(GtkTreeItem), sizeof(GtkTreeItemClass), gtk_tree_item_get_type }, - { sizeof(GtkWindow), sizeof(GtkWindowClass), gtk_window_get_type }, - { sizeof(GtkColorSelectionDialog), sizeof(GtkColorSelectionDialogClass), gtk_color_selection_dialog_get_type }, - { sizeof(GtkDialog), sizeof(GtkDialogClass), gtk_dialog_get_type }, - { sizeof(GtkInputDialog), sizeof(GtkInputDialogClass), gtk_input_dialog_get_type }, - { sizeof(GtkFileSelection), sizeof(GtkFileSelectionClass), gtk_file_selection_get_type }, - { sizeof(GtkFontSelectionDialog), sizeof(GtkFontSelectionDialogClass), gtk_font_selection_dialog_get_type }, - { sizeof(GtkPlug), sizeof(GtkPlugClass), gtk_plug_get_type }, - { sizeof(GtkEventBox), sizeof(GtkEventBoxClass), gtk_event_box_get_type }, - { sizeof(GtkHandleBox), sizeof(GtkHandleBoxClass), gtk_handle_box_get_type }, - { sizeof(GtkScrolledWindow), sizeof(GtkScrolledWindowClass), gtk_scrolled_window_get_type }, - { sizeof(GtkViewport), sizeof(GtkViewportClass), gtk_viewport_get_type }, - { sizeof(GtkBox), sizeof(GtkBoxClass), gtk_box_get_type }, - { sizeof(GtkButtonBox), sizeof(GtkButtonBoxClass), gtk_button_box_get_type }, - { sizeof(GtkHButtonBox), sizeof(GtkHButtonBoxClass), gtk_hbutton_box_get_type }, - { sizeof(GtkVButtonBox), sizeof(GtkVButtonBoxClass), gtk_vbutton_box_get_type }, - { sizeof(GtkVBox), sizeof(GtkVBoxClass), gtk_vbox_get_type }, - { sizeof(GtkColorSelection), sizeof(GtkColorSelectionClass), gtk_color_selection_get_type }, - { sizeof(GtkGammaCurve), sizeof(GtkGammaCurveClass), gtk_gamma_curve_get_type }, - { sizeof(GtkHBox), sizeof(GtkHBoxClass), gtk_hbox_get_type }, - { sizeof(GtkCombo), sizeof(GtkComboClass), gtk_combo_get_type }, - { sizeof(GtkStatusbar), sizeof(GtkStatusbarClass), gtk_statusbar_get_type }, - { sizeof(GtkCList), sizeof(GtkCListClass), gtk_clist_get_type }, - { sizeof(GtkCTree), sizeof(GtkCTreeClass), gtk_ctree_get_type }, - { sizeof(GtkFixed), sizeof(GtkFixedClass), gtk_fixed_get_type }, - { sizeof(GtkNotebook), sizeof(GtkNotebookClass), gtk_notebook_get_type }, - { sizeof(GtkFontSelection), sizeof(GtkFontSelectionClass), gtk_font_selection_get_type }, - { sizeof(GtkPaned), sizeof(GtkPanedClass), gtk_paned_get_type }, - { sizeof(GtkHPaned), sizeof(GtkHPanedClass), gtk_hpaned_get_type }, - { sizeof(GtkVPaned), sizeof(GtkVPanedClass), gtk_vpaned_get_type }, - { sizeof(GtkLayout), sizeof(GtkLayoutClass), gtk_layout_get_type }, - { sizeof(GtkList), sizeof(GtkListClass), gtk_list_get_type }, - { sizeof(GtkMenuShell), sizeof(GtkMenuShellClass), gtk_menu_shell_get_type }, - { sizeof(GtkMenuBar), sizeof(GtkMenuBarClass), gtk_menu_bar_get_type }, - { sizeof(GtkMenu), sizeof(GtkMenuClass), gtk_menu_get_type }, - { sizeof(GtkPacker), sizeof(GtkPackerClass), gtk_packer_get_type }, - { sizeof(GtkSocket), sizeof(GtkSocketClass), gtk_socket_get_type }, - { sizeof(GtkTable), sizeof(GtkTableClass), gtk_table_get_type }, - { sizeof(GtkToolbar), sizeof(GtkToolbarClass), gtk_toolbar_get_type }, - { sizeof(GtkTree), sizeof(GtkTreeClass), gtk_tree_get_type }, - { sizeof(GtkCalendar), sizeof(GtkCalendarClass), gtk_calendar_get_type }, - { sizeof(GtkDrawingArea), sizeof(GtkDrawingAreaClass), gtk_drawing_area_get_type }, - { sizeof(GtkCurve), sizeof(GtkCurveClass), gtk_curve_get_type }, - { sizeof(GtkEditable), sizeof(GtkEditableClass), gtk_editable_get_type }, - { sizeof(GtkEntry), sizeof(GtkEntryClass), gtk_entry_get_type }, - { sizeof(GtkSpinButton), sizeof(GtkSpinButtonClass), gtk_spin_button_get_type }, - { sizeof(GtkText), sizeof(GtkTextClass), gtk_text_get_type }, - { sizeof(GtkRuler), sizeof(GtkRulerClass), gtk_ruler_get_type }, - { sizeof(GtkHRuler), sizeof(GtkHRulerClass), gtk_hruler_get_type }, - { sizeof(GtkVRuler), sizeof(GtkVRulerClass), gtk_vruler_get_type }, - { sizeof(GtkRange), sizeof(GtkRangeClass), gtk_range_get_type }, - { sizeof(GtkScale), sizeof(GtkScaleClass), gtk_scale_get_type }, - { sizeof(GtkHScale), sizeof(GtkHScaleClass), gtk_hscale_get_type }, - { sizeof(GtkVScale), sizeof(GtkVScaleClass), gtk_vscale_get_type }, - { sizeof(GtkScrollbar), sizeof(GtkScrollbarClass), gtk_scrollbar_get_type }, - { sizeof(GtkHScrollbar), sizeof(GtkHScrollbarClass), gtk_hscrollbar_get_type }, - { sizeof(GtkVScrollbar), sizeof(GtkVScrollbarClass), gtk_vscrollbar_get_type }, - { sizeof(GtkSeparator), sizeof(GtkSeparatorClass), gtk_separator_get_type }, - { sizeof(GtkHSeparator), sizeof(GtkHSeparatorClass), gtk_hseparator_get_type }, - { sizeof(GtkVSeparator), sizeof(GtkVSeparatorClass), gtk_vseparator_get_type }, - { sizeof(GtkPreview), sizeof(GtkPreviewClass), gtk_preview_get_type }, - { sizeof(GtkProgress), sizeof(GtkProgressClass), gtk_progress_get_type }, - { sizeof(GtkProgressBar), sizeof(GtkProgressBarClass), gtk_progress_bar_get_type }, - { sizeof(GtkData), sizeof(GtkDataClass), gtk_data_get_type }, - { sizeof(GtkAdjustment), sizeof(GtkAdjustmentClass), gtk_adjustment_get_type }, - { sizeof(GtkTooltips), sizeof(GtkTooltipsClass), gtk_tooltips_get_type }, - { sizeof(GtkItemFactory), sizeof(GtkItemFactoryClass), gtk_item_factory_get_type } -}; - - -value ml_gtk_type_unique (value name, value parent, value nsignals) -{ - struct widget_info * wi; - GtkTypeInfo ttt_info; - - wi = widget_info_array + Int_val(parent); - ttt_info.type_name = String_val(name); - ttt_info.object_size = wi->size; - ttt_info.class_size = wi->class_size + Int_val(nsignals)*sizeof(void *); - ttt_info.class_init_func = (GtkClassInitFunc) class_init; - ttt_info.object_init_func = (GtkObjectInitFunc) NULL; - ttt_info.reserved_1 = NULL; - ttt_info.reserved_2 = NULL; - ttt_info.base_class_init_func = (GtkClassInitFunc) NULL; - - return Val_int(gtk_type_unique(wi->get_type_func (), &ttt_info)); -} - -static guint sig[100]; - -value ml_gtk_object_class_add_signals (value class, value signals, - value nsignals) -{ - int i; - for (i=0; iclass_size+Int_val(num)*sizeof(void *); - return Val_int(gtk_signal_new (String_val(name), Int_val(run_type), - ((GtkObjectClass *)classe)->type, offset, - gtk_signal_default_marshaller, GTK_TYPE_NONE, 0)); - *(((int *)classe)+offset) = 0; -} - -ML_1 (gtk_rc_add_default_file, String_val, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.h deleted file mode 100644 index 29c2da5c3..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.h +++ /dev/null @@ -1,15 +0,0 @@ -/* $Id$ */ - -#define GtkObject_val(obj) ((GtkObject*)Field(obj,1)) -value Val_GtkObject (GtkObject *w); -value Val_GtkObject_sink (GtkObject *w); -#define Val_GtkAny(w) Val_GtkObject((GtkObject*)w) -#define Val_GtkAny_sink(w) Val_GtkObject_sink((GtkObject*)w) -#define Val_GtkWidget Val_GtkAny -#define Val_GtkWidget_sink Val_GtkAny_sink - -#ifdef GTK_NO_CHECK_CASTS -#define check_cast(f,v) f(Pointer_val(v)) -#else -#define check_cast(f,v) (Pointer_val(v) == NULL ? NULL : f(Pointer_val(v))) -#endif diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkgl.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkgl.c deleted file mode 100644 index 5e0efd718..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkgl.c +++ /dev/null @@ -1,54 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtkgl_tags.h" - -/* Conversion functions */ -#include "gtkgl_tags.c" - -#define GtkGLArea_val(val) ((GtkGLArea*)GtkObject_val(val)) - -value ml_gtk_gl_area_new (value list, value share) -{ - value cursor, res; - int len, i; - int *attrs; - - for (len = 0, cursor = list; cursor != Val_unit; cursor = Field(cursor,1)) - { - if (Is_block(Field(cursor,0))) len += 2; - else len++; - } - - attrs = (int*) stat_alloc ((len+1)*sizeof(int)); - - for (i = 0, cursor = list; cursor != Val_unit; cursor = Field(cursor,1)) - { - value option = Field(cursor,0); - if (Is_block(option)) { - attrs[i++] = Visual_options_val(Field(option,0)); - attrs[i++] = Int_val(Field(option,1)); - } - else attrs[i++] = Visual_options_val(option); - } - attrs[i] = GDK_GL_NONE; - - res = Val_GtkObject - ((GtkObject*)gtk_gl_area_share_new(attrs,GtkGLArea_val(share))); - stat_free(attrs); - return res; -} - -ML_1 (gtk_gl_area_make_current, GtkGLArea_val, Val_bool) -ML_1 (gtk_gl_area_swapbuffers, GtkGLArea_val, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkxmhtml.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkxmhtml.c deleted file mode 100644 index 3f9c3c6c4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkxmhtml.c +++ /dev/null @@ -1,76 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtkxmhtml_tags.h" - -/* conversion functions */ - -#include "gtkxmhtml_tags.c" - -Make_Flags_val (Line_type_val) - -#define GtkXmHTML_val(val) ((GtkXmHTML*)GtkObject_val(val)) - -ML_0 (gtk_xmhtml_new, Val_GtkAny_sink) -ML_1 (gtk_xmhtml_freeze, GtkXmHTML_val, Unit) -ML_1 (gtk_xmhtml_thaw, GtkXmHTML_val, Unit) -ML_2 (gtk_xmhtml_source, GtkXmHTML_val, String_val, Unit) -ML_2 (gtk_xmhtml_set_string_direction, GtkXmHTML_val, String_direction_val, - Unit) -ML_2 (gtk_xmhtml_set_alignment, GtkXmHTML_val, Position_val, Unit) -/* ML_2 (gtk_xmhtml_outline, GtkXmHTML_val, Bool_val, Unit) */ -ML_3 (gtk_xmhtml_set_font_familty, GtkXmHTML_val, String_val, String_val, Unit) -ML_3 (gtk_xmhtml_set_font_familty_fixed, GtkXmHTML_val, String_val, String_val, - Unit) -ML_2 (gtk_xmhtml_set_font_charset, GtkXmHTML_val, String_val, Unit) -ML_2 (gtk_xmhtml_set_allow_body_colors, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_hilight_on_enter, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_anchor_underline_type, GtkXmHTML_val, Flags_Line_type_val, - Unit) -ML_2 (gtk_xmhtml_set_anchor_visited_underline_type, GtkXmHTML_val, - Flags_Line_type_val, Unit) -ML_2 (gtk_xmhtml_set_anchor_target_underline_type, GtkXmHTML_val, - Flags_Line_type_val, Unit) -ML_2 (gtk_xmhtml_set_allow_color_switching, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_dithering, GtkXmHTML_val, Dither_type_val, Unit) -ML_2 (gtk_xmhtml_set_allow_font_switching, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_max_image_colors, GtkXmHTML_val, Int_val, Unit) -ML_2 (gtk_xmhtml_set_allow_images, GtkXmHTML_val, Bool_val, Unit) -ML_4 (gtk_xmhtml_set_plc_intervals, GtkXmHTML_val, Int_val, Int_val, Int_val, - Unit) -/* ML_2 (gtk_xmhtml_set_def_body_image_url, GtkXmHTML_val, String_val, Unit) */ -ML_2 (gtk_xmhtml_set_anchor_buttons, GtkXmHTML_val, Bool_val, Unit) -value ml_gtk_xmhtml_set_anchor_cursor(value html, value cursor) -{ - gtk_xmhtml_set_anchor_cursor - (GtkXmHTML_val(html), Option_val(cursor, GdkCursor_val, NULL), - Bool_val(cursor)); - return Val_unit; -} -ML_2 (gtk_xmhtml_set_topline, GtkXmHTML_val, Int_val, Unit) -ML_1 (gtk_xmhtml_get_topline, GtkXmHTML_val, Val_int) -ML_2 (gtk_xmhtml_set_freeze_animations, GtkXmHTML_val, Bool_val, Unit) -/* ML_1 (gtk_xmhtml_get_source, GtkXmHTML_val, copy_string) */ -ML_2 (gtk_xmhtml_set_screen_gamma, GtkXmHTML_val, Float_val, Unit) -/* ML_2 (gtk_xmhtml_set_event_proc, GtkXmHTML_val, ???, Unit) */ -ML_2 (gtk_xmhtml_set_perfect_colors, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_uncompress_command, GtkXmHTML_val, String_val, Unit) -ML_2 (gtk_xmhtml_set_strict_checking, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_bad_html_warnings, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_allow_form_coloring, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_imagemap_draw, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_mime_type, GtkXmHTML_val, String_val, Unit) -ML_2 (gtk_xmhtml_set_alpha_processing, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_rgb_conv_mode, GtkXmHTML_val, Dither_type_val, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2conv.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2conv.ml deleted file mode 100644 index 6730d1451..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2conv.ml +++ /dev/null @@ -1,99 +0,0 @@ -(* $Id$ *) - -(* Compile a list of variant tags into CPP defines *) - -(* hash_variant, from ctype.ml *) - -let hash_variant s = - let accu = ref 0 in - for i = 0 to String.length s - 1 do - accu := 223 * !accu + Char.code s.[i] - done; - (* reduce to 31 bits *) - accu := !accu land (1 lsl 31 - 1); - (* make it signed for 64 bits architectures *) - if !accu > 0x3FFFFFFF then !accu - (1 lsl 31) else !accu - -open Genlex - -let lexer = make_lexer ["type"; "public"; "exception"; "="; "["; "]"; "`"; "|"] - -let exn_name = ref "invalid_argument" - -let may_string = parser - [< ' String s >] -> s - | [< >] -> "" - -let may_bar = parser - [< ' Kwd "|" >] -> () - | [< >] -> () - -let rec ident_list = parser - [< ' Kwd "`"; ' Ident x; trans = may_string; _ = may_bar; s >] -> - (x, trans) :: ident_list s - | [< >] -> [] - -let may_public = parser - [< ' Kwd "public" >] -> true - | [< >] -> false - -open Printf - -let declaration = parser - [< ' Kwd "type"; public = may_public; ' Ident name; ' Kwd "="; - prefix = may_string; ' Kwd "["; _ = may_bar; - tags = ident_list; ' Kwd "]"; suffix = may_string >] -> - let ctag tag trans = - if trans <> "" then trans else - let tag = - if tag.[0] = '_' then - String.sub tag ~pos:1 ~len:(String.length tag -1) - else tag - in - match - if prefix = "" then None, "" - else - Some (prefix.[String.length prefix - 1]), - String.sub prefix ~pos:0 ~len:(String.length prefix - 1) - with - Some '#', prefix -> - prefix ^ String.uncapitalize tag ^ suffix - | Some '^', prefix -> - prefix ^ String.uppercase tag ^ suffix - | _ -> - prefix ^ tag ^ suffix - and cname = - String.capitalize name - in - let tags = - Sort.list tags - ~order:(fun (tag1,_) (tag2,_) -> hash_variant tag1 < hash_variant tag2) - in - printf "/* %s : conversion table */\n" name; - if not public then printf "static "; - printf "lookup_info ml_table_%s[] = {\n" name; - printf " { 0, %d },\n" (List.length tags); - List.iter tags ~f: - begin fun (tag,trans) -> - printf " { MLTAG_%s, %s },\n" tag (ctag tag trans) - end; - printf "};\n\n"; - printf "#define Val_%s(data) ml_lookup_from_c (ml_table_%s, data)\n" - name name; - printf "#define %s_val(key) ml_lookup_to_c (ml_table_%s, key)\n\n" - cname name; - | [< 'Kwd"exception"; 'Ident name >] -> - exn_name := name - | [< >] -> raise End_of_file - -let main () = - let chars = Stream.of_channel stdin in - let s = lexer chars in - try - while true do declaration s done - with End_of_file -> () - | Stream.Error err -> - Printf.eprintf "Parsing error \"%s\" at character %d on input stream" - err (Stream.count chars) - -let _ = Printexc.print main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2def.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2def.ml deleted file mode 100644 index 617c4c62d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2def.ml +++ /dev/null @@ -1,44 +0,0 @@ -(* $Id$ *) - -(* Compile a list of variant tags into CPP defines *) - -(* hash_variant, from ctype.ml *) - -let hash_variant s = - let accu = ref 0 in - for i = 0 to String.length s - 1 do - accu := 223 * !accu + Char.code s.[i] - done; - (* reduce to 31 bits *) - accu := !accu land (1 lsl 31 - 1); - (* make it signed for 64 bits architectures *) - if !accu > 0x3FFFFFFF then !accu - (1 lsl 31) else !accu - -open Genlex - -let lexer = make_lexer ["`"; "["; "]"; "|"] - -let main () = - let s = lexer (Stream.of_channel stdin) in - let tags = Hashtbl.create 57 in - while match s with parser - [< ' Kwd "`"; ' Ident tag >] -> - let hash = hash_variant tag in - begin try - let tag' = Hashtbl.find tags hash in - if tag <> tag' then - failwith (String.concat ~sep:" " ["Doublon tag:";tag;"and";tag']) - with Not_found -> - Hashtbl.add ~key:hash ~data:tag tags; - print_string "#define MLTAG_"; - print_string tag; - print_string "\tVal_int("; - print_int hash; - print_string ")\n" - end; - true - | [< ' _ >] -> true - | [< >] -> false - do () done - -let _ = Printexc.print main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.c deleted file mode 100644 index 7e83aa99b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.c +++ /dev/null @@ -1,76 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" - -value copy_memblock_indirected (void *src, asize_t size) -{ - value ret = alloc (Wosize_asize(size)+2, Abstract_tag); - if (!src) ml_raise_null_pointer (); - - Field(ret,1) = 2; - memcpy (&Field(ret,2), src, size); - return ret; -} - -value ml_some (value v) -{ - CAMLparam1(v); - value ret = alloc_small(1,0); - Field(ret,0) = v; - CAMLreturn(ret); -} - -void ml_raise_null_pointer () -{ - static value * exn = NULL; - if (exn == NULL) - exn = caml_named_value ("null_pointer"); - raise_constant (*exn); -} - -value Val_pointer (void *ptr) -{ - value ret = alloc_small (2, Abstract_tag); - if (!ptr) ml_raise_null_pointer (); - Field(ret,1) = (value)ptr; - return ret; -} - -value copy_string_check (const char*str) -{ - if (!str) ml_raise_null_pointer (); - return copy_string ((char*) str); -} - -value copy_string_or_null (const char*str) -{ - return copy_string (str ? (char*) str : ""); -} - -value ml_lookup_from_c (lookup_info *table, int data) -{ - int i; - for (i = table[0].data; i > 0; i--) - if (table[i].data == data) return table[i].key; - invalid_argument ("ml_lookup_from_c"); -} - -int ml_lookup_to_c (lookup_info *table, value key) -{ - int first = 1, last = table[0].data, current; - - while (first < last) { - current = (first+last)/2; - if (table[current].key >= key) last = current; - else first = current + 1; - } - if (table[first].key == key) return table[first].data; - invalid_argument ("ml_lookup_to_c"); -} diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.h deleted file mode 100644 index 1fcffcf02..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.h +++ /dev/null @@ -1,222 +0,0 @@ -/* $Id$ */ - -#ifndef _wrappers_ -#define _wrappers_ - -#include -#include - -value copy_memblock_indirected (void *src, asize_t size); -value ml_some (value); -void ml_raise_null_pointer (void) Noreturn; -value Val_pointer (void *); -value copy_string_check (const char*); -value copy_string_or_null (const char *); - -typedef struct { value key; int data; } lookup_info; -value ml_lookup_from_c (lookup_info *table, int data); -int ml_lookup_to_c (lookup_info *table, value key); - -/* Wrapper generators */ - -#define ML_0(cname, conv) \ -value ml_##cname (value unit) { return conv (cname ()); } -#define ML_1(cname, conv1, conv) \ -value ml_##cname (value arg1) { return conv (cname (conv1 (arg1))); } -#define ML_1_post(cname, conv1, conv, post) \ -value ml_##cname (value arg1) \ -{ value ret = conv (cname (conv1(arg1))); post; return ret; } -#define ML_2(cname, conv1, conv2, conv) \ -value ml_##cname (value arg1, value arg2) \ -{ return conv (cname (conv1(arg1), conv2(arg2))); } -#define ML_2_name(mlname, cname, conv1, conv2, conv) \ -value mlname (value arg1, value arg2) \ -{ return conv (cname (conv1(arg1), conv2(arg2))); } -#define ML_3(cname, conv1, conv2, conv3, conv) \ -value ml_##cname (value arg1, value arg2, value arg3) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3))); } -#define ML_3_name(mlname, cname, conv1, conv2, conv3, conv) \ -value mlname (value arg1, value arg2, value arg3) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3))); } -#define ML_4(cname, conv1, conv2, conv3, conv4, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4))); } -#define ML_4_name(mlname, cname, conv1, conv2, conv3, conv4, conv) \ -value mlname (value arg1, value arg2, value arg3, value arg4) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4))); } -#define ML_5(cname, conv1, conv2, conv3, conv4, conv5, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5))); } -#define ML_6(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6))); } -#define ML_7(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7))); } -#define ML_8(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \ - conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7, value arg8) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8))); } -#define ML_9(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \ - conv9, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7, value arg8, value arg9) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \ - conv9(arg9))); } -#define ML_10(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \ - conv9, conv10, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7, value arg8, value arg9, value arg10)\ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \ - conv9(arg9), conv10(arg10))); } -#define ML_11(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \ - conv9, conv10, conv11, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7, value arg8, value arg9, value arg10,\ - value arg11) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \ - conv9(arg9), conv10(arg10), conv11(arg11))); } -#define ML_12(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \ - conv9, conv10, conv11, conv12, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7, value arg8, value arg9, value arg10,\ - value arg11, value arg12) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \ - conv9(arg9), conv10(arg10), conv11(arg11), \ - conv12(arg12))); } - -/* Use with care: needs the argument index */ -#define Ignore(x) -#define Insert(x) (x), -#define Split(x,f,g) f(x), g(x) Ignore -#define Split3(x,f,g,h) f(x), g(x), h(x) Ignore -#define Pair(x,f,g) f(Field(x,0)), g(Field(x,1)) Ignore -#define Triple(x,f,g,h) f(Field(x,0)), g(Field(x,1)), h(Field(x,2)) Ignore - -/* For more than 5 arguments */ -#define ML_bc6(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5]); } -#define ML_bc7(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6]); } -#define ML_bc8(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \ - argv[7]); } -#define ML_bc9(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \ - argv[7],argv[8]); } -#define ML_bc10(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \ - argv[7],argv[8],argv[9]); } -#define ML_bc11(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \ - argv[7],argv[8],argv[9],argv[10]); } -#define ML_bc12(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \ - argv[7],argv[8],argv[9],argv[10],argv[11]); } - -/* result conversion */ -#define Unit(x) ((x), Val_unit) -#define Id(x) x -#define Val_char Val_int - -/* parameter conversion */ -#define Bool_ptr(x) ((long) x - 1) -#define Char_val Int_val -#define Float_val(x) ((float)Double_val(x)) - -#define Option_val(val,unwrap,default) \ -((long)val-1 ? unwrap(Field(val,0)) : default) -#define String_option_val(s) Option_val(s,String_val,NULL) - -/* Utility */ - -#define Copy_array(ret,l,src,conv) \ - if (!l) ret = Atom(0); \ - else if (l <= Max_young_wosize) { int i; ret = alloc_tuple(l); \ - for(i=0;ifield); } - -#define Make_Setter(name,conv1,conv2,field) \ -value ml_##name##_##field (value val, value new) \ -{ (conv1(val))->field = conv2(new); return Val_unit; } - -#define Make_Array_Extractor(name,conv1,conv2,field,conv) \ -value ml_##name##_##field (value val, value index) \ -{ return conv ((conv1(val))->field[conv2(index)]); } - -#define Make_Array_Setter(name,conv1,conv2,conv3,field) \ -value ml_##name##_##field (value val, value index, value new) \ -{ (conv1(val))->field[conv2(index)] = conv3(new); return Val_unit; } - -/* ML value is [flag list] */ -#define Make_Flags_val(conv) \ -int Flags_##conv (value list) \ -{ int flags = 0L; \ - while Is_block(list) { flags |= conv(Field(list,0)); list = Field(list,1); }\ - return flags; } - -/* ML value is [flag list option] */ -#define Make_OptFlags_val(conv) \ -int OptFlags_##conv (value list) \ -{ int flags = 0L; \ - if Is_block(list) list = Field(list,0); \ - while Is_block(list) { flags |= conv(Field(list,0)); list = Field(list,1); }\ - return flags; } - -#define Val_copy(val) copy_memblock_indirected (&val, sizeof(val)) -#define Val_string copy_string_check -#define Val_optstring copy_string_or_null -#define Optstring_val(v) (string_length(v) ? String_val(v) : (char*)NULL) -#define Val_option(v,f) (v ? ml_some(f(v)) : Val_unit) - -#define Check_null(v) (v ? v : (ml_raise_null_pointer (), v)) - -#endif /* _wrappers_ */ diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0-1.spec b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0-1.spec deleted file mode 100644 index 8ab9a2222..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0-1.spec +++ /dev/null @@ -1,143 +0,0 @@ -Summary: LablGTK : an interface to the GIMP Tool Kit for OCaml -Name: lablgtk_20001129 -Version: 0.1.0 -Release: 1 -Copyright: LGPL -Group: Development/Libraries -Source: ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/lablgtk_20001129-0.1.0.tar.gz -%description -LablGTK is an interface to the GIMP Tool Kit for OCaml. - -%prep -%setup - -%build -make configure -make -make opt - -%install -make install - -%files -%doc CHANGES COPYING README doc - -/usr/lib/ocaml/lablgtk/gBin.cmi -/usr/lib/ocaml/lablgtk/gBin.ml -/usr/lib/ocaml/lablgtk/gBin.mli -/usr/lib/ocaml/lablgtk/gButton.cmi -/usr/lib/ocaml/lablgtk/gButton.ml -/usr/lib/ocaml/lablgtk/gButton.mli -/usr/lib/ocaml/lablgtk/gContainer.cmi -/usr/lib/ocaml/lablgtk/gContainer.ml -/usr/lib/ocaml/lablgtk/gContainer.mli -/usr/lib/ocaml/lablgtk/gData.cmi -/usr/lib/ocaml/lablgtk/gData.ml -/usr/lib/ocaml/lablgtk/gData.mli -/usr/lib/ocaml/lablgtk/gDraw.cmi -/usr/lib/ocaml/lablgtk/gDraw.ml -/usr/lib/ocaml/lablgtk/gDraw.mli -/usr/lib/ocaml/lablgtk/gEdit.cmi -/usr/lib/ocaml/lablgtk/gEdit.ml -/usr/lib/ocaml/lablgtk/gEdit.mli -/usr/lib/ocaml/lablgtk/gList.cmi -/usr/lib/ocaml/lablgtk/gList.ml -/usr/lib/ocaml/lablgtk/gList.mli -/usr/lib/ocaml/lablgtk/gMain.cmi -/usr/lib/ocaml/lablgtk/gMain.ml -/usr/lib/ocaml/lablgtk/gMenu.cmi -/usr/lib/ocaml/lablgtk/gMenu.ml -/usr/lib/ocaml/lablgtk/gMenu.mli -/usr/lib/ocaml/lablgtk/gMisc.cmi -/usr/lib/ocaml/lablgtk/gMisc.ml -/usr/lib/ocaml/lablgtk/gMisc.mli -/usr/lib/ocaml/lablgtk/gObj.cmi -/usr/lib/ocaml/lablgtk/gObj.ml -/usr/lib/ocaml/lablgtk/gObj.mli -/usr/lib/ocaml/lablgtk/gPack.cmi -/usr/lib/ocaml/lablgtk/gPack.ml -/usr/lib/ocaml/lablgtk/gPack.mli -/usr/lib/ocaml/lablgtk/gRange.cmi -/usr/lib/ocaml/lablgtk/gRange.ml -/usr/lib/ocaml/lablgtk/gRange.mli -/usr/lib/ocaml/lablgtk/gTree.cmi -/usr/lib/ocaml/lablgtk/gTree.ml -/usr/lib/ocaml/lablgtk/gTree.mli -/usr/lib/ocaml/lablgtk/gUtil.cmi -/usr/lib/ocaml/lablgtk/gUtil.ml -/usr/lib/ocaml/lablgtk/gUtil.mli -/usr/lib/ocaml/lablgtk/gWindow.cmi -/usr/lib/ocaml/lablgtk/gWindow.ml -/usr/lib/ocaml/lablgtk/gWindow.mli -/usr/lib/ocaml/lablgtk/gaux.cmi -/usr/lib/ocaml/lablgtk/gaux.ml -/usr/lib/ocaml/lablgtk/gdk.cmi -/usr/lib/ocaml/lablgtk/gdk.ml -/usr/lib/ocaml/lablgtk/gdk.mli -/usr/lib/ocaml/lablgtk/gdkEvent.cmi -/usr/lib/ocaml/lablgtk/gdkEvent.ml -/usr/lib/ocaml/lablgtk/gdkKeysyms.cmi -/usr/lib/ocaml/lablgtk/gdkKeysyms.ml -/usr/lib/ocaml/lablgtk/gdk_tags.h -/usr/lib/ocaml/lablgtk/glGtk.mli -/usr/lib/ocaml/lablgtk/glib.cmi -/usr/lib/ocaml/lablgtk/glib.ml -/usr/lib/ocaml/lablgtk/gpointer.cmi -/usr/lib/ocaml/lablgtk/gpointer.ml -/usr/lib/ocaml/lablgtk/gtk.cmi -/usr/lib/ocaml/lablgtk/gtk.ml -/usr/lib/ocaml/lablgtk/gtkArgv.cmi -/usr/lib/ocaml/lablgtk/gtkArgv.ml -/usr/lib/ocaml/lablgtk/gtkBase.cmi -/usr/lib/ocaml/lablgtk/gtkBase.ml -/usr/lib/ocaml/lablgtk/gtkBin.cmi -/usr/lib/ocaml/lablgtk/gtkBin.ml -/usr/lib/ocaml/lablgtk/gtkButton.cmi -/usr/lib/ocaml/lablgtk/gtkButton.ml -/usr/lib/ocaml/lablgtk/gtkData.cmi -/usr/lib/ocaml/lablgtk/gtkData.ml -/usr/lib/ocaml/lablgtk/gtkEdit.cmi -/usr/lib/ocaml/lablgtk/gtkEdit.ml -/usr/lib/ocaml/lablgtk/gtkInit.cmi -/usr/lib/ocaml/lablgtk/gtkInit.cmo -/usr/lib/ocaml/lablgtk/gtkInit.cmx -/usr/lib/ocaml/lablgtk/gtkInit.ml -/usr/lib/ocaml/lablgtk/gtkInit.o -/usr/lib/ocaml/lablgtk/gtkList.cmi -/usr/lib/ocaml/lablgtk/gtkList.ml -/usr/lib/ocaml/lablgtk/gtkMain.cmi -/usr/lib/ocaml/lablgtk/gtkMain.ml -/usr/lib/ocaml/lablgtk/gtkMenu.cmi -/usr/lib/ocaml/lablgtk/gtkMenu.ml -/usr/lib/ocaml/lablgtk/gtkMisc.cmi -/usr/lib/ocaml/lablgtk/gtkMisc.ml -/usr/lib/ocaml/lablgtk/gtkNew.cmi -/usr/lib/ocaml/lablgtk/gtkNew.ml -/usr/lib/ocaml/lablgtk/gtkPack.cmi -/usr/lib/ocaml/lablgtk/gtkPack.ml -/usr/lib/ocaml/lablgtk/gtkRange.cmi -/usr/lib/ocaml/lablgtk/gtkRange.ml -/usr/lib/ocaml/lablgtk/gtkSignal.cmi -/usr/lib/ocaml/lablgtk/gtkSignal.ml -/usr/lib/ocaml/lablgtk/gtkSignal.mli -/usr/lib/ocaml/lablgtk/gtkThInit.cmi -/usr/lib/ocaml/lablgtk/gtkThInit.cmo -/usr/lib/ocaml/lablgtk/gtkThInit.ml -/usr/lib/ocaml/lablgtk/gtkThread.cmi -/usr/lib/ocaml/lablgtk/gtkThread.cmo -/usr/lib/ocaml/lablgtk/gtkThread.ml -/usr/lib/ocaml/lablgtk/gtkTree.cmi -/usr/lib/ocaml/lablgtk/gtkTree.ml -/usr/lib/ocaml/lablgtk/gtkWindow.cmi -/usr/lib/ocaml/lablgtk/gtkWindow.ml -/usr/lib/ocaml/lablgtk/gtk_tags.h -/usr/lib/ocaml/lablgtk/lablgtk.a -/usr/lib/ocaml/lablgtk/lablgtk.cma -/usr/lib/ocaml/lablgtk/lablgtk.cmxa -/usr/lib/ocaml/lablgtk/lablgtktop -/usr/lib/ocaml/lablgtk/lablgtktop_t -/usr/lib/ocaml/lablgtk/liblablgtk.a -/usr/lib/ocaml/lablgtk/ml_gdk.h -/usr/lib/ocaml/lablgtk/ml_glib.h -/usr/lib/ocaml/lablgtk/ml_gtk.h -/usr/lib/ocaml/lablgtk/wrappers.h diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0.tar.gz b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0.tar.gz deleted file mode 100644 index dbb907aba49fa8879069f440d49f47f554bc8825..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407998 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

    ;n$*Z0@D|7wCNzyt{a4fb%a?pbn(WH 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

    x09C4z`GQ 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

    Bl{Ri{yU&4uA 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 z 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�{M70+Z+ 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 aIlbxfy~+Rom2^Q6QjkDY2pBd7*#7|d)xenm diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/.cvsignore deleted file mode 100644 index 0ea779d00..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/.cvsignore +++ /dev/null @@ -1,10 +0,0 @@ -.depend -config.make -varcc -lablgtk -lablgtktop -lablgtktop_t -lablgtkrun -*_tags.c -*_tags.h - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/CHANGES b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/CHANGES deleted file mode 100644 index 5b6669cc5..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/CHANGES +++ /dev/null @@ -1,365 +0,0 @@ -$Id$ - -2000.11.29 - * remove unison port, since unison already works with this snapshot - -2000.11.16 - * internal change: switch from var2def/var2conv to varcc, - and split ml_gtk.c in smaller files - -2000.8.29 - * bugs in color selection reported by Nicolas George - * changed the license - -2000.8.21 - * correct GtkStyle.set_font bug reported by Patrick Doane - -2000.7.27 - * changed GUtil.signal and GUtil.variable for better usability - * suppressed obsolete color settings in tooltips - -2000.6.19 - * patch by Michael Welsh for Gdk regions - -2000.6.15 - * add CList.set_cell_style/set_row_style - * change set_usize/set_uposition into set_geometry - * return an option rather than raise an exception for null pointers - * map empty strings to NULL when meaningful - * Gdk.Font.get_type/ascent/descent - -2000.6.14 - * add GDraw.optcolor for functions with a default (Jerome suggested) - -2000.6.8 - * apply Jerome Vouillon's patch - * changes in GtkSignal and GtkArgv.ml - -2000.6.7 - * create #misc#connect for widget generic signals - -2000.6.6 - * move notebook from GMisc to GPack - * #connect#event, #add_event, #misc#event, #misc#set_events_extension - transferred to #event su-bobject. - * #connect#drag -> #drag#connect. - * #get_type, #connect#disconnect, #connect#stop_emit transferred to #misc. - -2000.5.25 - * split misc.ml into gaux.ml and gpointer.ml - -2000.5.23 - * add GMisc.notebook#get_{tab,menu}_label. Rename nth_page to get_nth_page. - * modified ML signals in GUtil, to allow signals without widget. - -2000.5.22 - * Incompatible!: Change default for ~expand in Box.pack, - Pack.build_options, Table.build_options. Now defaults to false/`NONE. - This means that all options default to false/`NONE, except ~show - (true for all widgets except windows) and ~fill (always true but - effect controlled by ~expand). - * add GtkArgv.get_nativeint and GtkArgv.set_nativeint. - * make offset and length optional in GtkArgv.string_at_pointer. - -2000.5.10 - * rename GtkFrame to GtkBin and GFrame to GBin - * move socket to GBin - -2000.5.9 - * add arrow and image classes to GMisc - * add list and set_item_string methods to GEdit.combo - * add socket and plug classes to GContainer and GWindow - * two new examples: combo.ml and socket.ml - -2000.4.28 - * add GUtil.variable - -2000.4.27 - * add GtkXmHTML widget - -2000.4.26 - * release 1.00 - -2000.4.24 - * merge in changes for ocaml 3.00: label and syntax changes, autolink - * added better visual and colormap handling to Gdk - * GdkObj renamed to GDraw, GtkPixmap moved to GMisc - * Initialize Gtk in gtkInit.cmo/cmx, start a thread in gtkInitThread.cmo. - These are only included in toplevels, link them explicitely or call - GMain.Main.init and GtkThread.start otherwise. - * install to caml standard library - * many other forgotten changes... - -2000.3.02 - * move locale setting inside GtkMain.init, since it requires an - X display - -2000.2.24 - * add checks in add methods, to avoid critical errors - -2000.2.23 - * add dcalendar.ml (submitted by Ken Wakita) and csview.ml - * correct bug in GdkObj.pixmap#line - -1999.12.19 - * release lablGTK beta2 - -1999.12.16 - * upgraded unison to version 1.169 - * radio groups are of type {radio_menu_item,radio_button} obj option, - otherwise you could not use them several times - -1999.12.13 - * added GtkEdit::{insert_text,delete_text} signals - * better syntax highlighting and ergonomy in the browser's shell - -1999.11... - * switched to Objective Caml 3 - * constructors are no longer classes, but simple functions - -1999.10.29 - * changed GtkArgv.get_{string,pointer,object} to return option types - -1999.10.27 - * added radtest/CHANGES for cooperative editing on radtest - -1999.10.21 - * added a UI for unison - (ask bcpierce@saul.cis.upenn.edu about how to get unison) - -1999.10.20 - * corrected CList signals - * moved initialization out of the library, in gtkInit.cmo - -1999.10.15 - * release lablGTK beta1 - -1999.10.13 - * improved gtkThread.ml (no timer) - * modify Sys.argv in place (gtkMain.ml) - * add set_row_data and get_row_data for GtkCList - -1999.10.11 - * bugfixes in Makefile, radtest and lv - -1999.10.6 - * added Gdk.X.flush and Gdk.X.beep - * Gdk.X.flush is exported in GtkMain.Main - -1999.9.9 - * added font selection dialog - -1999.8.25 - * re-added connect#draw - -1999.8.10 - * reduced the number of methods in widget - * moved disconnect and stop_emit to object_signals - * moved ?:after to each signal - * more functions in applications/browser - -1999.8.9 - * Major change: created one set_param method by parameter, - rather than grouping them and using options. - You can get previous versions with tag "changing_set" - * corrected examples, radtest and browser for these changes - * a bit of clean-up in radtest (treew.ml and Makefile) - -1999.8.5 - * corrected a bad bug with indirected pointers in caml heap - -1999.7.15 - * add GdkKeysyms for exotic keysyms - -1999.7.14 - * moved Truecolor inside Gdk - * added COPYING - * prepared for release - -1999.7.12 - * clean up drag-and-drop - -1999.7.9 - * corrected bug in Container.children - * added ML signal support in GUtil - -1999.7.6 - * added DnD, improved radtest (Hubert) - * small corrections (Jacques) - -1999.7.1 - * added some gdk functions related window and ximage - * also added applications/lv, "labl image viewer" with - the camlimage library. - (JPF) - -1999.7.1 - * added applications/lablglade (Koji) - -1999.6.28 - * added applications/radtest (Hubert) - -1999.6.23 - * improved variant conversions for space. - -1999.6.22 - * updated olabl.patch. With this new version you can access fields - of records without opening modules. You can also use several times - the same label in one module. - * examples/GL/morph3d.ml uses it. - -1999.6.21 - * moved event functions to GdkEvent - -1999.6.20 - * new example: radtest.ml (Hubert) - -1999.6.18 - * added GL extension - -1999.6.15 - * grouped set methods into set_ - * added width and height option to all classes - * windows not shown are automatically destroyed by the GC - -1999.6.14 - * added GPack.layout, GPack.packer, GPack.paned, GMisc.notebook, - GRange.scale, GMisc.calendar - * added 3 examples - * #add_events only available on windowed widgets - -1999.6.11 - * added CList widget in GList module, and examples/clist.ml - * improved pixmap abstraction in GdkObj / GPix - -1999.6.10 - * suppressed almost all raw pointers from the code. Pointers are now - either boxed (second field of an abstract block) or marked (lowest - bit set to 1). - -1999.6.9 - * added GtkBase.Object.get_id and GObj.gtkobj#get_id to get an - unique identifier to gtk objects. Nice for hash-tables, etc... - * GUtil.memo is such an hash-table, allowing you to recover an - object's wrapper. - * added a show option to all classes, commanding whether the widget - should be shown immediately. It is by default true on all widgets - except in module GWindow. - * moved non-OO examples to examples/old. Do "cvs update -d old" to - get them. - * changes in Gdk/GtkData/GObj about styles. - -1999.6.8 - * updated olabl.patch - -1999.6.7 - * split gtk.ml into gtk*.ml - -1999.6.5 - * grouped Container focus operations in a "focus" subwidget - -1999.6.4 - * slightly reorganized widget grouping - -1999.6.3 - * disabled gtk_caller - * subtle hack to have GTree get the right interface - * switched completely to the new widget scheme (including examples) - * added olabl.patch to apply to olabl-2.02 to compile new sources - -1999.6.2 - * integrated changes from Hubert in Gtk, GtkObj and testgtk.ml - * added G* modules to replace GtkObj. "make lablgtk2" for it - -1999.6.1 - * added experimental GtkMenu for a cleaner approach to OO (Jacques) - -1999.5.31 - * GtkObj: list, tree and menu_shell inherit from item_container (Jacques) - * Argv.get_{string,pointer,object} may raise Null_pointer (Jacques) - * Support for creating new widgets (Hubert) - -1999.5.28 - * a few stylistic corrections - * added Packer in gtk.ml - -1999.5.27 - * new Gtk.Main.main Gtk.Main.quit and GtkThread.main (for modal windows) - * added x: and y: to Window.setter - * new methods: object#get_type widget#misc#lock_accelerators - widget#misc#visible widget#misc#parent container#set_focus#vadjustment - container#set_focus#hadjustment (could be container#set_focus#adjustment with a dir param) - window#set_modal window#set_position window#set_default_size - window#set_transient_for - menu#set_accel_group - * new classes: handle_box_skel handle_box_signals handle_box - bbox color_selection color_selection_dialog toolbar - and the corresponding modules in gtk.ml - new class type: is_window and method as_window - * new param tearoff: in new_menu_item - new param x: and y: modal: in Window.setter - * Widget.event and Widget.activate return bool - * new example: examples/testgtk.ml and test.xpm - (Hubert) - -1999.5.25 - * upgraded to gtk+-1.2.3 (all examples work) - * suppressed deprecated function calls and corrected examples - * added a patch to use toplevel threads in olabl-2.02 - -1998.12.13 - * upgraded to olabl-2.01 - -1998.12.9 - * replicated Main, Timeout and Grab to GtkObj (no need to open Gtk anymore) - * moved some non standard classes to GtkExt - -1998.12.8 - * added the first application, xxaplay, Playstation audio track - player for linux. (How architecture specific!) (Furuse) - -1998.12.8 - * more widgets in GtkObj - * refined memory management - * all variants in upper case - -1998.12.7 - * after deeper thought, re-introduced the connect sub-object - * simplified GtkObj: use simple inheritance and allow easy subtyping - * updated olabl.diffs for bugs in class functions parsing and printing - * add ThreadObj for concurrent object programming - (Jacques) - -1998.12.3 - * pousse.ml is now a reversi game (idea for strategy ?) - * solved startup bug (a value checker for ocaml is now available) - (Jacques) - -1998.12.2 - * added GdkObj for high level drawing primitives (Jacques) - -1998.11.30 - * removed cast checking for NULL valued widgets (ml_gtk.[ch]) - * module Arg is renamed as GtkArg because of the name corrision with - the module Arg in the standard library - * Makefile : native code compilation added - (Furuse) - -1998.11.29 - * renamed widget_ops sub-object to misc - * various improvements of set functions - (Jacques) - -1998.11.28 - * switched to object-oriented model. GtkObj is now the standard way - to access the library, but not all objects are ready (see README) - * removed inheritance in gtk.ml - (Jacques) - -1998.11.24 - * added inheritance in gtk.ml - -1998.11.22 - * added gtkObj.ml and examples/*_obj.ml - * various modifications in gtk.ml - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/COPYING b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/COPYING deleted file mode 100644 index d417b8b7e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/COPYING +++ /dev/null @@ -1,28 +0,0 @@ -This library is made available under the LGPL. -You should have got a copy of the LGPL with Objective Caml. -The LGPL applies to all the files in this directory, but not in -subdirectories. - -For the examples subdirectory, there is no specific licensing policy, -but you may freely take inspiration from the code, and copy parts of -it in your application. - -For the applications subdirectory, stricter rules apply: - -* You are free to do anything you want with this code as long as it is - for personal use. - -* Redistribution can only be "as is". Binary distribution and bug - fixes are allowed, but you cannot extensively modify the code - without asking the authors. - -The authors may choose to remove any of the above restrictions on a -per request basis. - -Authors: - Jacques Garrigue - Hubert Fauque - Jun Furuse - Koji Kagawa - -$Id$ \ No newline at end of file diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/Makefile b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/Makefile deleted file mode 100644 index a0ac04f33..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/Makefile +++ /dev/null @@ -1,187 +0,0 @@ -# $Id$ -# Makefile for lablgtk. - -TARGETS = varcc lablgtktop lablgtktop_t lablgtkrun lablgtk - -all: $(TARGETS) - -opt: lablgtkopt - -configure: - @rm -f config.make - @$(MAKE) --no-print-directory -f configure.mk - -depend: - @rm -f .depend - @$(MAKE) --no-print-directory -f configure.mk .depend - -.depend config.make: - @$(MAKE) --no-print-directory -f configure.mk - -COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) -TOPLEVEL = ocamlmktop $(MLFLAGS) - -include config.make - -INSTALLDIR = $(LIBDIR)/lablgtk -LABLGLDIR = $(LIBDIR)/lablGL - -MLLIBS = lablgtk.cma -CLIBS = liblablgtk.a -MLLINK = unix.cma str.cma - -ifdef DEBUG -CFLAGS = -g $(GTKCFLAGS) -MLLINK += -cclib -lcamlrund -MLFLAGS = -g -else -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -endif - -THFLAGS = -thread -THLINK = unix.cma threads.cma - -ifdef USE_CC -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -endif - -ifdef USE_GL -MLFLAGS += -I $(LABLGLDIR) -MLLINK += lablgl.cma -MLLIBS += lablgtkgl.cma -CLIBS += liblablgtkgl.a -GLLINK = -cclib -llablgtkgl -cclib -lgtkgl -GLMLOBJS = glGtk.cmo -GLCOBJS = ml_gtkgl.o - -endif - -ifdef USE_GNOME -MLLIBS += lablgnome.cma -CLIBS += liblablgnome.a -GNOMEMLOBJS = gtkXmHTML.cmo gHtml.cmo -GNOMECOBJS = ml_gtkxmhtml.o -endif - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.c.o: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< -.var.h: - ./varcc $< - -# Targets -GTKOBJS = ml_gtk.o ml_gtkbin.o ml_gtkbutton.o ml_gtkedit.o ml_gtklist.o \ - ml_gtkmenu.o ml_gtkmisc.o ml_gtknew.o ml_gtkpack.o ml_gtkrange.o \ - ml_gtktree.o -COBJS = ml_gdk.o ml_glib.o wrappers.o $(GTKOBJS) -MLOBJS = gaux.cmo gpointer.cmo glib.cmo gdk.cmo gdkEvent.cmo gdkKeysyms.cmo \ - gtk.cmo gtkArgv.cmo gtkSignal.cmo \ - gtkData.cmo gtkBase.cmo gtkPack.cmo gtkButton.cmo \ - gtkMenu.cmo gtkMisc.cmo gtkWindow.cmo gtkTree.cmo gtkList.cmo \ - gtkBin.cmo gtkEdit.cmo gtkRange.cmo gtkMain.cmo gtkNew.cmo \ - gDraw.cmo \ - gObj.cmo gMain.cmo gData.cmo gContainer.cmo gPack.cmo gButton.cmo \ - gMenu.cmo gMisc.cmo gWindow.cmo gTree.cmo gList.cmo gBin.cmo \ - gEdit.cmo gRange.cmo gUtil.cmo -THOBJS = gtkThread.cmo -INITOBJS = gtkInit.cmo -THINITOBJS = gtkThInit.cmo -ALLOBJS = $(MLOBJS) $(GLMLOBJS) $(GNOMEMLOBJS) $(THOBJS) \ - $(INITOBJS) $(THINITOBJS) - -lablgtktop: $(CLIBS) $(MLLIBS) $(INITOBJS) - $(TOPLEVEL) -o $@ $(MLLINK) -ccopt -L. $(MLLIBS) $(INITOBJS) - -lablgtktop_t: $(CLIBS) $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS) - $(TOPLEVEL) $(THFLAGS) -o $@ $(THLINK) $(MLLINK) \ - -ccopt -L. $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS) - -lablgtk: Makefile config.make lablgtk.in - sed -e "s|@INSTALLDIR@|$(INSTALLDIR)|g" \ - -e "s|@LABLGLDIR@|$(LABLGLDIR)|g" \ - -e "s|@LIBDIR@|$(LIBDIR)|g" \ - < lablgtk.in > $@ - chmod 755 $@ - -lablgtkrun: $(CLIBS) $(MLLIBS) - $(LINKER) -o $@ -make-runtime $(MLLINK) -ccopt -L. $(MLLIBS) - -lablgtkopt: $(CLIBS) $(MLLIBS:.cma=.cmxa) $(INITOBJS:.cmo=.cmx) \ - $(THOBJS:.cmo=.cmx) - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR) - cp *.mli $(INSTALLDIR) - cp *.h $(INSTALLDIR) - cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR) - cp $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS) $(INSTALLDIR) - cp $(CLIBS) $(INSTALLDIR) - cp lablgtktop lablgtktop_t $(INSTALLDIR) - cp lablgtk lablgtkrun $(BINDIR) - if test -f lablgtk.cmxa; then \ - cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \ - $(INITOBJS:.cmo=.cmx) $(INITOBJS:.cmo=.o) $(INSTALLDIR); fi - if test -f gtkThread.cmx; then \ - cp $(THOBJS:.cmo=.cmx) $(THOBJS:.cmo=.o) $(INSTALLDIR); fi - -liblablgtk.a: $(COBJS) - ar rc $@ $(COBJS) - $(RANLIB) $@ -lablgtk.cma: $(MLOBJS) - $(LINKER) -a -custom -o $@ $(MLOBJS) \ - -cclib -llablgtk $(GTKLIBS) -lablgtk.cmxa: $(MLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) \ - -cclib -llablgtk $(GTKLIBS) - -liblablgtkgl.a: $(GLCOBJS) - ar rc $@ $(GLCOBJS) - $(RANLIB) $@ -lablgtkgl.cma: $(GLMLOBJS) - $(LINKER) -a -custom -o $@ $(GLLINK) $(GLMLOBJS) -lablgtkgl.cmxa: $(GLMLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(GLLINK) $(GLMLOBJS:.cmo=.cmx) - -liblablgnome.a: $(GNOMECOBJS) - ar rc $@ $(GNOMECOBJS) - $(RANLIB) $@ -lablgnome.cma: $(GNOMEMLOBJS) - $(LINKER) -a -custom -o $@ $(GNOMEMLOBJS) \ - -cclib -llablgnome $(GNOMELIBS) -lablgnome.cmxa: $(GNOMEMLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(GNOMEMLOBJS:.cmo=.cmx) \ - -cclib -llablgnome $(GNOMELIBS) - -gtkThread.cmo: gtkThread.ml - $(COMPILER) $(THFLAGS) gtkThread.ml - -gtkThread.cmx: gtkThread.ml - if test -f $(LIBDIR)/libthreadsnat.a; then \ - $(COMPOPT) $(THFLAGS) gtkThread.ml; fi - -varcc: varcc.cmo - $(LINKER) -o $@ varcc.cmo - rm -f *_tags.h *_tags.c - -clean: - rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS) - -$(GTKOBJS): gtk_tags.h ml_gtk.h ml_gdk.h wrappers.h -ml_gdk.o: gdk_tags.h ml_gdk.h wrappers.h -ml_gtkgl.o: gtkgl_tags.h ml_gtk.h ml_gdk.h wrappers.h -ml_gtkxmhtml.o: gtkxmhtml_tags.h ml_gtk.h ml_gdk.h wrappers.h - -include .depend diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/Makefile.nt b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/Makefile.nt deleted file mode 100644 index bdf5b6cfd..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/Makefile.nt +++ /dev/null @@ -1,147 +0,0 @@ -# $Id$ -# Makefile for lablgtk. - -EXE = .exe -TARGETS = var2conv var2def lablgtk$(EXE) lablgtk_t$(EXE) \ - lablgtkrun$(EXE) config.make - -all: $(TARGETS) - -opt: lablgtkopt - -CAMLC = ocamlc -CAMLOPT = ocamlopt -COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -TOPLEVEL = ocamlmktop $(MLFLAGS) -### How to invoke the librarian -MKLIB=lib /nologo /debugtype:CV /out: - -!include config.make.nt - -INSTALLDIR = $(LIBDIR:/=\)\lablgtk -BINDIR = $(LIBDIR:/=\)\..\bin -LABLGLDIR = $(LIBDIR)/lablGL - -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -LDFLAGS = $(GTKLIBS) - -THFLAGS = -thread -THLIBS = unix.cma threads.cma - -!if $(USE_CC) == 1 -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -!else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -!endif - -!if $(USE_GL) == 1 -MLFLAGS = $(MLFLAGS) -I $(LIBDIR)/lablGL -GLLINK = -I $(LABLGLDIR) lablgl.cma -cclib -lgtkgl -GLMLOBJS = glGtk.cmo -GLCOBJS = ml_gtkgl.o -!endif - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .obj .var .h .opt .def -.c.obj: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< -.var.h: - ocamlrun ./var2def < $< > $@ -.var.c: - ocamlrun ./var2conv < $< > $@ - -# Targets -COBJS = ml_gtk.obj ml_gdk.obj ml_glib.obj wrappers.obj $(GLCOBJS) -OLDMLOBJS = misc.cmo glib.cmo gdk.cmo gtk.cmo gdkObj.cmo gtkObj.cmo gtkExt.cmo -MLOBJS = misc.cmo glib.cmo gdk.cmo gdkEvent.cmo gdkKeysyms.cmo \ - gtk.cmo gtkArgv.cmo gtkSignal.cmo \ - gtkData.cmo gtkBase.cmo gtkPack.cmo gtkButton.cmo \ - gtkMenu.cmo gtkMisc.cmo gtkWindow.cmo gtkTree.cmo gtkList.cmo \ - gtkFrame.cmo gtkEdit.cmo gtkRange.cmo gtkMain.cmo gtkNew.cmo \ - gDraw.cmo \ - gObj.cmo gMain.cmo gData.cmo gContainer.cmo gPack.cmo gButton.cmo \ - gMenu.cmo gMisc.cmo gWindow.cmo gTree.cmo gList.cmo gFrame.cmo \ - gEdit.cmo gRange.cmo gUtil.cmo $(GLMLOBJS) -THOBJS = gtkThread.cmo threadObj.cmo -INITOBJS = gtkInit.cmo -THINITOBJS = gtkThInit.cmo -ALLOBJS = $(MLOBJS) $(THOBJS) $(INITOBJS) $(THINITOBJS) - -lablgtk$(EXE): liblablgtk.lib lablgtk.cma $(INITOBJS) - $(TOPLEVEL) -custom -o $@ unix.cma str.cma $(GLLINK) \ - lablgtk.cma $(INITOBJS) - -lablgtk_t$(EXE): liblablgtk.lib lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS) - $(TOPLEVEL) -custom $(THFLAGS) -o $@ $(THLIBS) str.cma $(GLLINK) \ - lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS) - -lablgtkrun$(EXE): liblablgtk.lib lablgtk.cma - $(LINKER) -o $@ -make-runtime $(GLLINK) lablgtk.cma - -lablgtkopt: liblablgtk.lib lablgtk.cmxa gtkInit.cmx - -install: - if not exist $(INSTALLDIR) mkdir $(INSTALLDIR) - cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR) - cp *.mli $(INSTALLDIR) - cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR) - cp lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS) $(INSTALLDIR) - cp liblablgtk.lib $(INSTALLDIR) - cp lablgtk$(EXE) lablgtk_t$(EXE) lablgtkrun$(EXE) $(BINDIR) - if exist lablgtk.cmxa cp lablgtk.cmxa lablgtk.lib gtkInit.cmx gtkInit.obj $(INSTALLDIR) - -liblablgtk.lib: $(COBJS) - $(MKLIB)$@ $(COBJS) - -lablgtk.cma: $(MLOBJS) - $(LINKER) -a -custom -o $@ $(MLOBJS) \ - -cclib -llablgtk $(GTKLIBS) - -lablgtk.cmxa: $(MLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) \ - -cclib -llablgtk $(GTKLIBS) - -gtkThread.cmo: gtkThread.ml - $(COMPILER) $(THFLAGS) gtkThread.ml - -threadObj.cmo: threadObj.ml - $(COMPILER) $(THFLAGS) threadObj.ml - -gtkThread.cmx: gtkThread.ml - $(COMPOPT) $(THFLAGS) gtkThread.ml - -threadObj.cmx: threadObj.ml - $(COMPOPT) $(THFLAGS) threadObj.ml - -var2conv: var2conv.cmo - $(LINKER) -o $@ var2conv.cmo - rm -f *_tags.c - -var2def: var2def.cmo - $(LINKER) -o $@ var2def.cmo - rm -f *_tags.h - -clean: - rm -f *.cm* *.obj *.lib *_tags.[ch] $(TARGETS) - -config.make: config.make.nt - cp config.make.nt config.make - -depend .depend: - ocamldep *.ml *.mli > .depend - -ml_gtk.obj: gtk_tags.c gtk_tags.h ml_gtk.h ml_gdk.h wrappers.h -ml_gdk.obj: gdk_tags.c gdk_tags.h ml_gdk.h wrappers.h -ml_gtkgl.obj: gtkgl_tags.c gtkgl_tags.h ml_gtk.h ml_gdk.h wrappers.h - -!include .depend diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/README b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/README deleted file mode 100644 index 78c4ed3da..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/README +++ /dev/null @@ -1,239 +0,0 @@ - - LablGTK : an interface to the GIMP Tool Kit - - -Needed: - ocaml-3.00 - gtk-1.2.x - gmake (there is no standard for conditionals) - -How to compile: - - You should normally not need to modify Makefiles. - First type "make configure ". - Options are - USE_CC=1 to use $(CC) rather than gcc - USE_GL=1 to compile with OpenGL support (see lower) - USE_GNOME=1 to compile GtkXmHTML support (requires gnome) - - Then just type "make" to build the library and toplevels. - - On FreeBSD, you need to link with libxpg4.so for Japanese - output. - -Contents: - - gdk.ml low-level interface to the General Drawing Kit - gtk.ml low-level interface to the GIMP Tool Kit - gtkThread.ml main loop for threaded version - g[A-Z]*.ml object-oriented interface to GTK - gdkObj.ml object-oriented interface to GDK - - lablgtk toplevel - - examples/*.ml various examples - applications/* applications using the library - radtest a very experimental RAD for lablgtk - (by Hubert Fauque) - browser the begin of a port of OCamlBrowser - (by Jacques Garrigue) - unison a frontend for the Unison file synchronizer - see the README for details. - -Upgrading from lablgtk-1.00: - There are a few incompatibilities between this version and the - previous release. We do not describe them all, since usually a type - error message will inform you. - * all signals are no longer under #connect. #connect#event changed - to #event#connect, and some signals are under #misc#connect or - #grab#connect. See lower for a description of the new widget - structure. - * some defaults changed. In particular GPack.box#pack have now all - its parameter defaulting to false rather than true. See lower for - the new default policy. Beware that this does not cause type - errors, just changes in the aspect. - -How to run the examples: - In the examples directory just type: - lablgtk -labels examples/???.ml - - Before installing lablgtk you have to be more explicit: - ../lablgtktop -labels -w s -I .. ???.ml - -How to link them: - lablgtktop contains an extra module GtkInit, whose only contents is: - let locale = GtkMain.Main.init () - You must either add this line, or add this module to your link, - before calling any Gtk function. - ocamlc -I CAMLLIB/lablgtk -labels -w s lablgtk.cma gtkInit.cmo ???.ml -o ??? - -How to use the threaded toplevel: - - % lablgtk -thread (or lablgtktop_t before installing) - Objective Caml version 3.00 - - # let w = GWindow.window ~show:true ();; - - You should at once see a window appear. - The GTK main loop is running in a separate thread. Any command - is immediately reflected by the system. - Beware that you cannot switch threads within a callback, that is the - only thread related command you may use in a callback is - Thread.create. On the other hand, all newly created threads will be - run directly by the caml main loop, so they can use all thread - operations. - -Structure of the (raw) Gtk* modules: - - These modules are composed of one submodule for each class. - Signals specific to a widget are in a Signals inner module. - A setter function is defined to give access to set_param functions. - -Structure of the G[A-Z]* modules: - - These modules provide classes to wrap the raw function calls. - Here are the widget classes contained in each module: - - GDraw Gdk pixmaps, etc... - GObj gtkobj, widget, style - GData data, adjustment, tooltips - GContainer container, item_container - GWindow window, dialog, color_selection_dialog, file_selection, plug - GPack box, button_box, table, fixed, layout, packer, paned, notebook - GBin scrolled_window, event_box, handle_box, frame, - aspect_frame, viewport, socket - GButton button, toggle_button, check_button, radio_button, toolbar - GMenu menu_item, tearoff_item, check_menu_item, radio_menu_item, - menu_shell, menu, option_menu, menu_bar, factory - GMisc separator, statusbar, calendar, drawing_area, - misc, arrow, image, pixmap, label, tips_query, - color_selection, font_selection - GTree tree_item, tree - GList list_item, liste, clist - GEdit editable, entry, spin_button, combo, text - GRange progress, progress_bar, range, scale, scrollbar - - While subtyping follows the Gtk widget hierarchy, you cannot always - use width subtyping (i.e. #super is not unifiable with all the - subclasses of super). Still, it works for some classes, like - #widget and #container, and allows subtyping without coercion towards - these classes (cf. #container in pousse.ml for instance). - - Practically, each widget class is composed of: - * a coerce method, returning the object coerced to the type widget. - * an as_widget method, returning the raw Gtk widget used for packing, etc... - * a connect sub-object, allowing one to widget specific - signals (this is what prevents width subtyping in subclasses.) - * a misc sub-object, giving access to miscellanous functionality of - the basic gtkwidget class, and a misc#connect sub-object. - * an event sub-object, for Xevent related functions (only if the widget - has an Xwindow), and an event#connect sub-object. - * a grab sub-object, containing drag and drop functions, - and a grab#connect sub-object. - * widget specific methods. - - Here is a diagram of the structure (- for methods, + for sub-objects) - - coerce : widget - - as_widget : Gtk.widget obj - - destroy : unit -> unit - - ... - + connect : mywidget_signals - | - after - | - signal_name : callback:(... -> ...) -> GtkSignal.id - + misc : misc_ops - | - show, hide, disconnect, ... - | + connect : misc_signals - + event : event_ops - | - add, ... - | + connect : event_signals - + grab : grab_ops - | - ... - | + connect : grab_signals - - You create a widget by [. options ... ()]. - Many optional arguments are admitted. The last two of them, packing: - and show:, allow you respectively to call a function on your newly - created widget, and to decide wether to show it immediately or not. - By default all widgets except toplevel windows (GWindow module) are - shown immediately. - -Default arguments: - For many constructor or method arguments, default values are provided. - Generally, this default value is defined by GTK, and you must refer - to GTK's documentation. - For ML defined defaults, usually default values are either false, 0, None - or `NONE, according to the expected type. - Important exceptions are ~show, which default to true in all widgets - except those in GWindow, and ~fill, which defaults to true or `BOTH. - -Note about unit as method argument: - - O'Caml introduces no distinction between methods having side-effects - and methods simply returning a value. In practice, this is - confusing, and awkward when used as callbacks. For this reason all - methods having noticeable side-effects should take arguments, and - unit if they have no argument. - -Memory management: - - Important efforts have been dedicated to cooperate with Gtk's - reference counting mechanism. As a result you should generally be - able to use Gdk/Gtk data structures without caring about memory - management. They will be freed when nobody points to them any more. - This also means that you do not need to pay too much attention to - whether a data structure is still alive or not. If it is not, you - should get an error rather than a core dump. - The case of Gtk objects deserves special care. Since they are - interactive, we cannot just destroy them when they are no longer - referenced. They have to be explicitely destroyed. If a widget was - added to a container widget, it will automatically be destroyed when - its last container is destroyed. For this reason you need only - destroy toplevel widgets. - -GL extension - - You can use lablgtk in combination with LablGL - - * get and install lablGL 0.94 from - http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgl.html - * get and install gtkglarea-1.2.x.tar.gz from - http://www.student.oulu.fi/~jlof/gtkglarea/index.html - * reconfigure: "make configure USE_GL=1" - - You can then use the widget GlGtk.gl_area as an OpenGL window. - Some examples are in examples/GL, but basically any LablGL example - can be easily ported. - -Windows port - - A Win32 port is provided. In order to compile it, you will need to - get and unpack glib-dev-????.zip and gtk+-dev-????.zip from - http://www.gimp.org/~tml/gimp/win32/ - Do not forget to get also extralibs-dev-????.zip, since you will - need some of the DLLs. - - Edit config.make.nt, then, using Visual C++, - nmake -f Makefile.nt - nmake -f Makefile.nt opt (if you have an MS Assembler) - Then install with - nmake -f Makefile.nt install - - Since the link is dynamic you will also need to have in your path: - gnu-intl.dll (extralibs), glib-1.3.dll, module-1.3.dll and - gthread-1.3.dll (glib), gdk-1.3.dll and gtk-1.3.dll (gtk+). - - I checked with the 2000-02-02 version of these libraries. - Currently threads do not seem to work, but otherwise everything - seems OK. In particular, you can run all examples, and build - applications\unison as usual. - -Authors: - Jacques Garrigue - Hubert Fauque - Jun Furuse - Koji Kagawa - -Bug reports: - Jacques Garrigue - -$Id$ diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/.cvsignore deleted file mode 100644 index bc09d7470..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -olabl-src -browser -.depend \ No newline at end of file diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/Makefile b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/Makefile deleted file mode 100644 index 8822e4738..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -# $Id$ -# Makefile for lablgtk. - -all: browser - -CAMLC = ocamlc -CAMLOPT = ocamlopt -COMPILER = $(CAMLC) $(MLFLAGS) -labels -w s -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -labels -w s -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -RANLIB = ranlib - -include ../../config.make - -MLFLAGS = -I ../.. -I ocaml-src/utils -I ocaml-src/parsing - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< - -# Targets -MLOBJS = text.cmo file.cmo lexical.cmo shell.cmo editor.cmo - -browser: $(MLOBJS) - $(LINKER) -o $@ toplevellib.cma str.cma unix.cma \ - lablgtk.cma $(MLOBJS) - -clean: - rm -f *.cm* browser - -.depend: - ocamldep *.ml *.mli > .depend - -include .depend diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/README b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/README deleted file mode 100644 index f2ed1ec2e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/README +++ /dev/null @@ -1,18 +0,0 @@ - Browser: the beginning of a port of the OCamlBrowser - -Installation: - -* make a link from a directory where the O'Caml distribution is - compiled to ocaml-src - ln -s /path/to/ocaml-3.00 ocaml-src - (actually only the directory parsing needs to be compiled) - -* just type "make" - -Use: - -When you run browser, you just get a customized editor with lexical -coloring. Nothing very fancy. -In the file menu you can open a shell, running olabl as subprocess. - -Jacques Garrigue diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/TODO b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/TODO deleted file mode 100644 index 0c8bb5357..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/TODO +++ /dev/null @@ -1,4 +0,0 @@ -* lexical coloring (done) -* hyperlinks (call signal with position) -* keyboard popup -* protection diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/editor.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/editor.ml deleted file mode 100644 index d4adbfbc7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/editor.ml +++ /dev/null @@ -1,101 +0,0 @@ -(* $Id$ *) - -open GMain - -class editor ?packing ?show () = - let text = GEdit.text ~editable:true ?packing ?show () in -object (self) - inherit GObj.widget text#as_widget - - val mutable filename = None - - method text = text - - method load_file name = - try - let ic = open_in name in - filename <- Some name; - text#freeze (); - text#delete_text ~start:0 ~stop:text#length; - let buf = String.create 1024 and len = ref 0 in - while len := input ic ~buf ~pos:0 ~len:1024; !len > 0 do - if !len = 1024 then text#insert buf - else text#insert (String.sub buf ~pos:0 ~len:!len) - done; - text#set_point 0; - text#thaw (); - close_in ic - with _ -> () - - method open_file () = File.dialog ~title:"Open" ~callback:self#load_file () - - method save_file () = - File.dialog ~title:"Save" ?filename () ~callback: - begin fun name -> - try - if Sys.file_exists name then Sys.rename ~src:name ~dst:(name ^ "~"); - let oc = open_out name in - output_string oc (text#get_chars ~start:0 ~stop:text#length); - close_out oc - with _ -> prerr_endline "Save failed" - end -end - -open GdkKeysyms - -class editor_window ?(show=false) () = - let window = GWindow.window ~width:500 ~height:300 - ~title:"Program Editor" () in - let vbox = GPack.vbox ~packing:window#add () in - - let menubar = GMenu.menu_bar ~packing:vbox#pack () in - let factory = new GMenu.factory menubar in - let accel_group = factory#accel_group - and file_menu = factory#add_submenu "File" - and edit_menu = factory#add_submenu "Edit" - and comp_menu = factory#add_submenu "Compiler" in - - let hbox = GPack.hbox ~packing:vbox#add () in - let scrollbar = - GRange.scrollbar `VERTICAL ~packing:(hbox#pack ~from:`END) () - and editor = new editor ~packing:hbox#add () in -object (self) - inherit GObj.widget window#as_widget - - method window = window - method editor = editor - method show = window#show - - initializer - window#connect#destroy ~callback:Main.quit; - let factory = new GMenu.factory file_menu ~accel_group in - factory#add_item "Open..." ~key:_O ~callback:editor#open_file; - factory#add_item "Save..." ~key:_S ~callback:editor#save_file; - factory#add_item "Shell" - ~callback:(fun () -> Shell.f ~prog:"ocaml" ~title:"Objective Caml Shell"); - factory#add_separator (); - factory#add_item "Quit" ~key:_Q ~callback:window#destroy; - let factory = new GMenu.factory edit_menu ~accel_group in - factory#add_item "Copy" ~key:_C ~callback:editor#text#copy_clipboard; - factory#add_item "Cut" ~key:_X ~callback:editor#text#cut_clipboard; - factory#add_item "Paste" ~key:_V ~callback:editor#text#paste_clipboard; - factory#add_separator (); - factory#add_check_item "Word wrap" ~active:false - ~callback:editor#text#set_word_wrap; - factory#add_check_item "Read only" ~active:false - ~callback:(fun b -> editor#text#set_editable (not b)); - let factory = new GMenu.factory comp_menu ~accel_group in - factory#add_item "Lex" ~key:_L - ~callback:(fun () -> Lexical.tag editor#text); - window#add_accel_group accel_group; - editor#text#set_vadjustment scrollbar#adjustment; - if show then self#show () -end - -let _ = - Main.init (); - if Array.length Sys.argv >= 2 && Sys.argv.(1) = "-shell" then - Shell.f ~prog:"ocaml" ~title:"Objective Caml Shell" - else - ignore (new editor_window ~show:true ()); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/file.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/file.ml deleted file mode 100644 index e9c0cf34f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/file.ml +++ /dev/null @@ -1,13 +0,0 @@ -(* $Id$ *) - -let dialog ~title ~callback ?filename () = - let sel = - GWindow.file_selection ~title ~modal:true ?filename () in - sel#cancel_button#connect#clicked ~callback:sel#destroy; - sel#ok_button#connect#clicked ~callback: - begin fun () -> - let name = sel#get_filename in - sel#destroy (); - callback name - end; - sel#show () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/lexical.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/lexical.ml deleted file mode 100644 index 9acb9c060..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/lexical.ml +++ /dev/null @@ -1,155 +0,0 @@ -(* $Id$ *) - -open Parser - -type tags = [`none|`control|`define|`structure|`char|`infix|`label|`uident] - -let colors : (tags * GDraw.color) list Lazy.t = - lazy - (List.map ~f:(fun (tag,col) -> tag, `COLOR (GDraw.color (`NAME col))) - [ `control, "blue"; - `define, "forestgreen"; - `structure, "purple"; - `char, "gray40"; - `infix, "indianred4"; - `label, "brown"; - `uident, "midnightblue"; - `none, "black" ]) - -let tag ?(start=0) ?stop:pend (tw : GEdit.text) = - let pend = Gaux.default tw#length ~opt:pend in - let colors = Lazy.force colors in - tw#freeze (); - let position = tw#position - and text = tw#get_chars ~start ~stop:pend in - let replace ~start:pstart ~stop:pend ~tag = - if pend > pstart then begin - tw#delete_text ~start:(start+pstart) ~stop:(start+pend); - tw#set_point (start+pstart); - tw#insert ~foreground:(List.assoc tag colors) - (String.sub text ~pos:pstart ~len:(pend-pstart)); - end - and next_lf = ref (-1) in - let colorize ~start:rstart ~stop:rend ~tag = - let rstart = ref rstart in - while !rstart < rend do - if !next_lf < !rstart then begin - try next_lf := String.index_from text !rstart '\n' - with Not_found -> next_lf := pend-start - end; - replace ~start:!rstart ~stop:(min !next_lf rend) ~tag; - rstart := !next_lf + 1 - done - in - let buffer = Lexing.from_string text - and last = ref (EOF, 0, 0) - and last_pos = ref 0 in - try - while true do - let token = Lexer.token buffer - and start = Lexing.lexeme_start buffer - and stop = Lexing.lexeme_end buffer in - let tag = - match token with - AMPERAMPER - | AMPERSAND - | BARBAR - | DO | DONE - | DOWNTO - | ELSE - | FOR - | IF - | LAZY - | MATCH - | OR - | THEN - | TO - | TRY - | WHEN - | WHILE - | WITH - -> `control - | AND - | AS - | BAR - | CLASS - | CONSTRAINT - | EXCEPTION - | EXTERNAL - | FUN - | FUNCTION - | FUNCTOR - | IN - | INHERIT - | INITIALIZER - | LET - | METHOD - | MODULE - | MUTABLE - | NEW - | OF - | PARSER - | PRIVATE - | REC - | TYPE - | VAL - | VIRTUAL - -> `define - | BEGIN - | END - | INCLUDE - | OBJECT - | OPEN - | SIG - | STRUCT - -> `structure - | CHAR _ - | STRING _ - -> `char - | BACKQUOTE - | INFIXOP1 _ - | INFIXOP2 _ - | INFIXOP3 _ - | INFIXOP4 _ - | PREFIXOP _ - | QUESTION2 - | SHARP - -> `infix - | LABEL _ - | OPTLABEL _ - | QUESTION - | TILDE - -> `label - | UIDENT _ -> `uident - | LIDENT _ -> - begin match !last with - (QUESTION | TILDE), _, _ -> `label - | _ -> `none - end - | COLON -> - begin match !last with - LIDENT _, lstart, lstop when lstop = start -> - colorize ~tag:`none ~start:!last_pos ~stop:lstart; - colorize ~tag:`label ~start:lstart ~stop; - last_pos := stop; - `none - | _ -> `none - end - | EOF -> raise End_of_file - | _ -> `none - in - if tag <> `none then begin - colorize ~tag:`none ~start:!last_pos ~stop:start; - colorize ~tag ~start ~stop; - last_pos := stop - end; - last := (token, start, stop) - done - with exn -> - colorize ~tag:`none ~start:!last_pos ~stop:(pend-start); - tw#thaw (); - tw#set_position position; - tw#set_point position; - match exn with - End_of_file | Lexer.Error _ -> () - | _ -> raise exn diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/list2.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/list2.ml deleted file mode 100644 index 0d7798a6a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/list2.ml +++ /dev/null @@ -1,25 +0,0 @@ -(* $Id$ *) - -let rec cut l ~len = - if len <= 0 then [], l else - match l with - a::l -> - let l1, l2 = cut l ~len:(len-1) in - a::l1, l2 - | [] -> - invalid_arg "cut_list" - -let rec chop l ~len = - if l = [] then [] else - let l1, l2 = - try cut_list l ~len - with Invalid_argument _ -> l, [] - in - l1 :: chop l2 ~len - - -let rec iteri_aux ~f:f ~i = function - [] -> () - | a::l -> f ~i a; iteri_aux ~f:f ~i:(i+1) l - -let iteri = iteri_aux ~i:0 diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/shell.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/shell.ml deleted file mode 100644 index fbe0f92a0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/shell.ml +++ /dev/null @@ -1,255 +0,0 @@ -(* $Id$ *) - -open GdkKeysyms -open Printf - -(* Nice history class. May reuse *) - -class ['a] history () = object - val mutable history = ([] : 'a list) - val mutable count = 0 - method empty = history = [] - method add s = count <- 0; history <- s :: history - method previous = - let s = List.nth history count in - count <- (count + 1) mod List.length history; - s - method next = - let l = List.length history in - count <- (l + count - 1) mod l; - List.nth history ((l + count - 1) mod l) -end - -(* The shell class. Now encapsulated *) - -let protect f x = try f x with _ -> () - -class shell ~prog ~args ~env ?packing ?show () = - let (in2,out1) = Unix.pipe () - and (in1,out2) = Unix.pipe () - and (err1,err2) = Unix.pipe () in - let _ = List.iter ~f:Unix.set_nonblock [out1;in1;err1] in -object (self) - val textw = GEdit.text ~editable:true ?packing ?show () - val pid = Unix.create_process_env - ~prog ~args ~env ~stdin:in2 ~stdout:out2 ~stderr:err2 - val out = Unix.out_channel_of_descr out1 - val h = new history () - val mutable alive = true - val mutable reading = false - val mutable input_start = 0 - method text = textw - method alive = alive - method kill () = - textw#set_editable false; - if alive then begin - alive <- false; - protect close_out out; - List.iter ~f:(protect Unix.close) [in1; err1; in2; out2; err2]; - try - Unix.kill ~pid ~signal:Sys.sigkill; - Unix.waitpid pid ~mode:[]; () - with _ -> () - end - method interrupt () = - if alive then try - reading <- false; - Unix.kill ~pid ~signal:Sys.sigint - with Unix.Unix_error _ -> () - method send s = - if alive then try - output_string out s; - flush out - with Sys_error _ -> () - method private read ~fd ~len = - try - let buf = String.create len in - let len = Unix.read fd ~buf ~pos:0 ~len in - if len > 0 then begin - textw#set_position textw#length; - self#insert (String.sub buf ~pos:0 ~len); - input_start <- textw#position; - end; - len - with Unix.Unix_error _ -> 0 - method history (dir : [`next|`previous]) = - if not h#empty then begin - if reading then begin - textw#delete_text ~start:input_start ~stop:textw#position; - end else begin - reading <- true; - input_start <- textw#position - end; - self#insert (if dir = `previous then h#previous else h#next); - end - val mutable lexing = false - method private lex ~start ~stop:e = - if not lexing && start < e then begin - lexing <- true; - Lexical.tag textw ~start ~stop:e; - lexing <- false - end - method insert ?(lex=true) text = - let start = Text.line_start textw in - textw#insert text; - if lex then self#lex ~start ~stop:(Text.line_end textw) - method private keypress c = - if not reading & c > " " then begin - reading <- true; - input_start <- textw#position - end - method private return () = - if reading then reading <- false - else input_start <- textw#position; - textw#set_position (Text.line_end textw); - let s = textw#get_chars ~start:input_start ~stop:textw#position in - h#add s; - self#send s; - self#send "\n" - method private paste () = - if not reading then begin - reading <- true; - input_start <- textw#position; - end - initializer - textw#event#connect#key_press ~callback: - begin fun ev -> - if GdkEvent.Key.keyval ev = _Return && GdkEvent.Key.state ev = [] - then self#return () - else self#keypress (GdkEvent.Key.string ev); - false - end; - textw#connect#after#insert_text ~callback: - begin fun s ~pos -> - if not lexing then - self#lex ~start:(Text.line_start textw ~pos:(pos - String.length s)) - ~stop:(Text.line_end textw ~pos) - end; - textw#connect#after#delete_text ~callback: - begin fun ~start:pos ~stop -> - if not lexing then - self#lex ~start:(Text.line_start textw ~pos) - ~stop:(Text.line_end textw ~pos) - end; - textw#event#connect#button_press ~callback: - begin fun ev -> - if GdkEvent.Button.button ev = 2 then self#paste (); - false - end; - textw#connect#destroy ~callback:self#kill; - GMain.Timeout.add ~ms:100 ~callback: - begin fun () -> - if alive then begin - List.iter [err1;in1] - ~f:(fun fd -> while self#read ~fd ~len:1024 = 1024 do () done); - true - end else false - end; - () -end - -(* Specific use of shell, for LablBrowser *) - -let shells : (string * shell) list ref = ref [] - -(* Called before exiting *) -let kill_all () = - List.iter !shells ~f:(fun (_,sh) -> if sh#alive then sh#kill ()); - shells := [] -let _ = at_exit kill_all - -let get_all () = - let all = List.filter !shells ~f:(fun (_,sh) -> sh#alive) in - shells := all; - all - -let may_exec prog = - try Unix.access prog ~perm:[Unix.X_OK]; true - with Unix.Unix_error _ -> false - -let f ~prog ~title = - let progargs = - List.filter ~f:((<>) "") (Str.split ~sep:(Str.regexp " ") prog) in - if progargs = [] then () else - let prog = List.hd progargs in - let path = try Sys.getenv "PATH" with Not_found -> "/bin:/usr/bin" in - let exec_path = Str.split ~sep:(Str.regexp":") path in - let prog = - if not (Filename.is_implicit prog) then - if may_exec prog then prog else "" - else - List.fold_left exec_path ~init:"" ~f: - begin fun acc dir -> - if acc <> "" then acc else - let prog = Filename.concat dir prog in - if may_exec prog then prog else acc - end - in - if prog = "" then () else - let reg = Str.regexp "TERM=" in - let env = Array.map (Unix.environment ()) ~f: - begin fun s -> - if Str.string_match ~pat:reg s ~pos:0 then "TERM=dumb" else s - end in - let load_path = - List.flatten (List.map !Config.load_path ~f:(fun dir -> ["-I"; dir])) in - let args = Array.of_list (progargs @ load_path) in - let current_dir = ref (Unix.getcwd ()) in - - let tl = GWindow.window ~title ~width:500 ~height:300 () in - let vbox = GPack.vbox ~packing:tl#add () in - let menus = GMenu.menu_bar ~packing:vbox#pack () in - let f = new GMenu.factory menus in - let accel_group = f#accel_group in - let file_menu = f#add_submenu "File" - and history_menu = f#add_submenu "History" - and signal_menu = f#add_submenu "Signal" in - - let hbox = GPack.hbox ~packing:vbox#add () in - let sh = new shell ~prog ~env ~args ~packing:hbox#add () in - let sb = - GRange.scrollbar `VERTICAL ~adjustment:sh#text#vadjustment - ~packing:hbox#pack () - in - - let f = new GMenu.factory file_menu ~accel_group in - f#add_item "Use..." ~callback: - begin fun () -> - File.dialog ~title:"Use File" ~filename:(!current_dir ^ "/") () ~callback: - begin fun name -> - current_dir := Filename.dirname name; - if Filename.check_suffix name ".ml" then - let cmd = "#use \"" ^ name ^ "\";;\n" in - sh#insert cmd; - sh#send cmd - end - end; - f#add_item "Load..." ~callback: - begin fun () -> - File.dialog ~title:"Load File" ~filename:(!current_dir ^ "/") () ~callback: - begin fun name -> - current_dir := Filename.dirname name; - if Filename.check_suffix name ".cmo" or - Filename.check_suffix name ".cma" - then - let cmd = Printf.sprintf "#load \"%s\";;\n" name in - sh#insert cmd; - sh#send cmd - end - end; - f#add_item "Import path" ~callback: - begin fun () -> - List.iter (List.rev !Config.load_path) - ~f:(fun dir -> sh#send (sprintf "#directory \"%s\";;\n" dir)) - end; - f#add_item "Close" ~key:_W ~callback:tl#destroy; - - let h = new GMenu.factory history_menu ~accel_group ~accel_modi:[`MOD1] in - h#add_item "Previous" ~key:_P ~callback:(fun () -> sh#history `previous); - h#add_item "Next" ~key:_N ~callback:(fun () -> sh#history `next); - let s = new GMenu.factory signal_menu ~accel_group in - s#add_item "Interrupt" ~key:_G ~callback:sh#interrupt; - s#add_item "Kill" ~callback:sh#kill; - shells := (title, sh) :: !shells; - tl#add_accel_group accel_group; - tl#show () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/text.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/text.ml deleted file mode 100644 index 729f3105a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/text.ml +++ /dev/null @@ -1,16 +0,0 @@ -(* $Id$ *) - -open GEdit - -let line_start ?pos (text : GEdit.text) = - let pos = Gaux.default text#position ~opt:pos in - if pos = 0 then 0 else - let start = max 0 (pos-256) in - let buffer = text#get_chars ~start ~stop:pos in - try start + String.rindex buffer '\n' with Not_found -> 0 - -let line_end ?pos (text : GEdit.text) = - let pos = Gaux.default text#position ~opt:pos in - if pos = text#length then text#length else - let buffer = text#get_chars ~start:pos ~stop:(min text#length (pos+256)) in - try pos + String.index buffer '\n' with Not_found -> text#length diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/useunix.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/useunix.ml deleted file mode 100644 index c4860a8ca..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/useunix.ml +++ /dev/null @@ -1,36 +0,0 @@ -(* $Id$ *) - -open Unix - -let get_files_in_directory dir = - try - let dirh = opendir dir in - let rec get_them () = - try - let x = readdir dirh in - x :: get_them () - with - _ -> closedir dirh; [] - in - Sort.list ~order:(<) (get_them ()) - with Unix_error _ -> [] - -let is_directory name = - try - (stat name).st_kind = S_DIR - with _ -> false - -let get_directories_in_files ~path = - List.filter ~pred:(fun x -> is_directory (path ^ "/" ^ x)) - -(************************************************** Subshell call *) -let subshell ~cmd = - let rc = open_process_in ~cmd in - let rec it () = - try - let x = input_line rc in x :: it () - with _ -> [] - in - let answer = it () in - close_process_in rc; - answer diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/widgets.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/widgets.ml deleted file mode 100644 index c27ca9fbb..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/widgets.ml +++ /dev/null @@ -1,34 +0,0 @@ -(* $Id$ *) - -open GObj - -class multibox ~rows ~columns ?(row_view = rows) ?(col_view = columns) - ?packing ?show () = - let sw = - GBin.scrolled_window ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC - ?show ?packing () in - let vp = GBin.viewport ~shadow_type:`NONE ~packing:sw#add in - let table = - GPack.table ~columns ~rows ~homogeneous:true ~packing:vp#add () in - let buttons = - Array.init ~len:columns - ~f:(fun left -> Array.init ~len:rows - ~f:(fun top -> GButton.button - ~packing:(table#attach ~top ~left ~expand:`BOTH))) - in - object (self) - inherit widget sw#as_widget - method cell ~col ~row = buttons.(col).(row) - initializer - let id = ref None in - id := Some - (sw#event#connect#expose ~after:true ~callback: - begin fun _ -> - may !id ~f:sw#connect#disconnect; - let height = table#misc#allocation.height * row_view / rows - and width = table#misc#allocation.width * col_view / columns in - vp#misc#set_size ~height ~width; - false - end); - table#focus#set_vadjustment vp#vadjustment - end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/.cvsignore deleted file mode 100644 index a2d75da3e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.depend radtest -*_parser.ml *_parser.mli -*_lexer.ml diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/CHANGES b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/CHANGES deleted file mode 100644 index e87fc0a9a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/CHANGES +++ /dev/null @@ -1,16 +0,0 @@ -$Id$ - -2000.05.15 - * suppressed treew.ml; replaced by ti*.ml - * new widgets - * less known bugs (Hubert) -1999.10.28 - * re-objectified property.ml - * split it into common.mli/property.ml/propwin.ml - * undo is back - * restructure menu code in main.ml - -1999.10.27 - * simplified property.ml, and corrected treew.ml accordingly. - undo is temporarily disabled. - (Jacques) \ No newline at end of file diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/Makefile b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/Makefile deleted file mode 100644 index 175eca980..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/Makefile +++ /dev/null @@ -1,86 +0,0 @@ -# $Id$ -# Makefile for lablgtk. - -all: radtest - -CAMLC = ocamlc -CAMLOPT = ocamlopt -COMPILER = $(CAMLC) $(MLFLAGS) -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -RANLIB = ranlib - -include ../../config.make - -MLFLAGS = -I ../.. -w s -labels - -ifdef DEBUG -CFLAGS = -g $(GTKCFLAGS) -MLFLAGS += -g -else -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -endif - -ifdef USE_CC -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -endif - - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.c.o: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< - -# Targets -MLOBJS = utils.cmo property.cmo propwin.cmo \ - load_parser.cmo load_lexer.cmo tiBase.cmo tiContainer.cmo tiBin.cmo \ - tiButton.cmo tiEdit.cmo tiList.cmo tiMisc.cmo tiPack.cmo tiWindow.cmo \ - tiWidget.cmo main.cmo - -MLSRC = common.mli utils.ml property.mli property.ml propwin.mli \ - propwin.ml \ - load_parser.ml load_lexer.ml tiBase.ml tiContainer.ml tiBin.ml \ - tiButton.ml tiEdit.ml tiList.ml tiMisc.ml tiPack.ml tiWindow.ml \ - tiWidget.ml main.ml - -radtest: $(MLOBJS) libgtk2.a gtk2.cma - $(LINKER) -o $@ lablgtk.cma gtkInit.cmo -I . gtk2.cma \ - $(MLOBJS) - -radtestopt: $(MLOBJS:.cmo=.cmx) libgtk2.a gtk2.cmxa - $(LINKOPT) -o $@ lablgtk.cmxa gtkInit.cmx -I . gtk2.cmxa \ - $(MLOBJS:.cmo=.cmx) - -%.mli %.ml: %.mly - ocamlyacc $< - -%.ml: %.mll - ocamllex $< - -libgtk2.a: gtktree2.o gtktreeitem2.o ml_gtk2.o - ar rc $@ gtktree2.o gtktreeitem2.o ml_gtk2.o - $(RANLIB) $@ - -gtk2.cma: gtkTree2.cmo gTree2.cmo gToolbar2.cmo libgtk2.a - $(LINKER) -a -o $@ gtkTree2.cmo gTree2.cmo gToolbar2.cmo -cclib -lgtk2 - -gtk2.cmxa: gtkTree2.cmx gTree2.cmx gToolbar2.cmx libgtk2.a - $(LINKOPT) -a -o $@ gtkTree2.cmx gTree2.cmx gToolbar2.cmx -cclib -lgtk2 - -clean: - rm -f *.cm* *.o *.a radtest *_parser.ml *_parser.mli *_lexer.ml - -.depend: $(MLSRC) load_parser.ml load_lexer.ml - ocamldep $(MLSRC) load_parser.ml* load_lexer.ml* > .depend - -include .depend diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/README b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/README deleted file mode 100644 index aedd81fff..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/README +++ /dev/null @@ -1,24 +0,0 @@ - Lablgtk RADTEST - -Author: Hubert Fauque, hubert.fauque@inria.fr - -This is an experimental R.A.D. for Lablgtk. -You can compile it simply by make. - - -When radtest starts a new empty project is open; -you can add new windows to this project by clicking on -the window icon at the top of the icons window; - -by clicking on an item in the tree window with the third button -you can add or remove widgets; -you can also drag widgets from the icons window and drop them -on the tree; - -when a widget is selected (click on it in the tree) you can -move it up or down (if its parent is a box) with CTRL-up_arrow -or CTRL-down_arrow; with up_arrow and down_arrow you select -the widget which is above or below the currently selected widget; - -Save the project by Project->Save, and load an already existing -project by Project->Open. diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/aspectframe.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/aspectframe.xpm deleted file mode 100644 index 66b9ca14d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/aspectframe.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *aspectframe_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++ + +++++++++++", -"+...X X X X......O+", -"+.OOX X X XOOOOO.O+", -"+.OXX X X XXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXX.XXXXXXX.O+", -"+.OXXXXXX...XXXXXX.O+", -"+.OXXXXX.X.X.XXXXX.O+", -"+.OXXXXXXX.XXXXXXX.O+", -"+.OXX.XXXX.XXXX.XX.O+", -"+.OX.XXXXX.XXXXX.X.O+", -"+.O................O+", -"+.OX.XXXXX.XXXXX.X.O+", -"+.OXX.XXXX.XXXX.XX.O+", -"+.OXXXXX.X.X.XXXXX.O+", -"+.OXXXXXX...XXXXXX.O+", -"+.OXXXXXXX.XXXXXXX.O+", -"+..................O+", -"+OOOOOOOOOOOOOOOOOOO+", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/button.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/button.xpm deleted file mode 100644 index 62ebc3074..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/button.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *button_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+OOOOOOOOOOOOOOOOOO +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXX XXX XXX XX. +", -"+OXX XXX XX XX XXX. +", -"+OXX XXX XX X XXXX. +", -"+OXX XXX XX XXXXX. +", -"+OXX XXX XX X XXXX. +", -"+OXX XXX XX XX XXX. +", -"+OXXX XXX XXX XX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+O................. +", -"+ +", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/checkbutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/checkbutton.xpm deleted file mode 100644 index 314ba97ce..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/checkbutton.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *checkbutton_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++OOOOOOOOOOO+++++", -"+++++OXXXXXXXXX +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OXXXXXXXX. +++++", -"+++++OX........ +++++", -"+++++O +++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/clist.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/clist.xpm deleted file mode 100644 index 2dd61e709..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/clist.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char *clist_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 3 1", -" c Gray0", -". c Gray87", -"X c Gray100", -/* pixels */ -" ", -" ...... ...... ..... ", -" ...... ...... ..... ", -" ...... ...... ..... ", -" ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" XXXXXX XXXXXX XXXXX ", -" " -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/colorselection.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/colorselection.xpm deleted file mode 100644 index 0bb0914d0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/colorselection.xpm +++ /dev/null @@ -1,35 +0,0 @@ -/* XPM */ -static char *colorselection_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 8 1", -" c Gray0", -". c #7b7b7b", -"X c Blue", -"o c Green", -"O c Red", -"+ c #b3cece", -"@ c Gray100", -"# c None", -/* pixels */ -"#####################", -"#####################", -"#####################", -"#####################", -"#####################", -"##................###", -"##.@@@@@@@@@@@@@@. ##", -"##.@@@@@@@@@@@@@@. ##", -"##.@@@@@@@@@@@@@@. ##", -"##.@@OOOoooXXX@@@. ##", -"##.@@OOOoooXXX@@@. ##", -"##.@@OOOoooXXX@@@. ##", -"##.@@OOOoooXXX@@@. ##", -"##.@@@@@@@@@@@@@@. ##", -"##.@@@@@@@@@@@@@@. ##", -"##.@@@@@@@@@@@@@@. ##", -"##................ ##", -"### ##", -"#####################", -"#####################", -"#####################" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/combo.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/combo.xpm deleted file mode 100644 index 3b4055b6d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/combo.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char *combo_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 7 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray87", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@@@@@@@@@@", -" ", -" +++++++++++++ OOOOO ", -" +++++++++++++ OOO ", -" +++++++++++++ O ", -" ", -" +++++++++++++ ++++++", -" +++++++++++++ XXXXX ", -" +.........+++ XX XX ", -" +++++++++++++ X X ", -" +++++++++++++ XXXXX ", -" +...........+ ", -" +++++++++++++ +++++ ", -" +++++++++++++ +XXXX ", -" +..........++ ..... ", -" +++++++++++++ +++++ ", -" +++++++++++++ XXXXX ", -" +...........+ X X ", -" +++++++++++++ XX XX ", -" +++++++++++++ XXXXX ", -" " -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/common.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/common.mli deleted file mode 100644 index 7050f9f94..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/common.mli +++ /dev/null @@ -1,27 +0,0 @@ -(* $Id$ *) - -type range = - | String - | Int - | Float of float * float - | Enum of string list - | Enum_string of string list - | Adjust - | CList_titles - | File - -class type prop = - object - method name : string (* name of the property *) - method range : range (* range of its values *) - method get : string (* current value *) - method set : string -> unit (* change value *) - method modified : bool (* value differs from default *) - method code : string (* encoded value for the ml code *) - method save_code : string (* encoded value for saving *) - end - -class type tiwidget_base = object - method name : string - method proplist : (string * prop) list -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/entry.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/entry.xpm deleted file mode 100644 index cb9004135..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/entry.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *entry_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"....................O", -". XO", -". OOOOOOOOOOOOOOOOOXO", -". OOOOOOOOOOOOOOO OXO", -". OOOOOOOO OOOOOO OXO", -". OOOOOOOO OOOOOO OXO", -". OOO OO X OOO OXO", -". OO XOX O O. OO OXO", -". OOOOOO O OOO OO OXO", -". OOO O OOO OO OXO", -". OO XOO O OOO OO OXO", -". OO XOO O OO. OO OXO", -". OOO O OOO OXO", -". OOOOOOOOOOOOOOO OXO", -". OOOOOOOOOOOOOOOOOXO", -".XXXXXXXXXXXXXXXXXXXO", -"OOOOOOOOOOOOOOOOOOOOO", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/eventbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/eventbox.xpm deleted file mode 100644 index 73da445d2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/eventbox.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char *eventbox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 7 1", -" c Gray0", -". c #7b7b7b", -"X c Blue", -"o c #d6d6d6", -"O c #b3cece", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@X+@@@@@@@@@", -"@@@@@@@@@XX+@@@@@@@@@", -"@@@@@@@@XX+@@@@@@@@@@", -"@@@@@@@XX+@@@@@@@@@@@", -"@@@@@@@@XX+@@@@@@@@@@", -"@@@@@@@@@XX+@@@@@@@@@", -"@@@@@@@@@@XX+@@@@@@@@", -"@@@++++++XX++++++ @@@", -"@@@+ooooXX+ooooo. @@@", -"@@@+oooXX+oooooo. @@@", -"@@@+ooooXX+ooooo. @@@", -"@@@+oooooXX+oooo. @@@", -"@@@+ooooooXX+ooo. @@@", -"@@@+oooooooooooo. @@@", -"@@@+oooooooooooo. @@@", -"@@@+oooooooooooo. @@@", -"@@@+............. @@@", -"@@@ @@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/fixed.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/fixed.xpm deleted file mode 100644 index 2e0481572..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/fixed.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *fixed_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 4 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c Gray100", -/* pixels */ -"oooooooooooooooooooo ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXooooo XXXXXXXXXXX. ", -"oXoXXX. XXXXXXXXXXX. ", -"oXoXXX. XXXXooooo X. ", -"oXo.... XXXXoXXX. X. ", -"oX XXXXoXXX. X. ", -"oXXXXXXXXXXXo.... X. ", -"oXXXXXXXXXXX X. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXooooo XXXXXXXX. ", -"oXXXXoXXX. XXXXXXXX. ", -"oXXXXoXXX. XXXXXXXX. ", -"oXXXXo.... XXXXXXXX. ", -"oXXXX XXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"o................... ", -" " -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/frame.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/frame.xpm deleted file mode 100644 index c8c8b5782..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/frame.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *frame_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++ + +++++++++++", -"+...X X X X......O+", -"+.OOX X X XOOOOO.O+", -"+.OXX X X XXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+.OXXXXXXXXXXXXXXX.O+", -"+..................O+", -"+OOOOOOOOOOOOOOOOOOO+", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gToolbar2.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gToolbar2.ml deleted file mode 100644 index c2ad0a854..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gToolbar2.ml +++ /dev/null @@ -1,65 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkButton -open GObj -open GContainer -open GButton - -module Toolbar2 = struct - external set_text : [>`toolbar] obj -> string -> int -> unit = - "ml_gtk_toolbar2_set_text" - external set_icon : [>`toolbar] obj -> [>`widget] obj -> int -> unit = - "ml_gtk_toolbar2_set_icon" -end - -class toolbar2 obj = object - inherit container_full (obj : Gtk.toolbar obj) - method insert_widget ?tooltip ?tooltip_private ?pos w = - Toolbar.insert_widget obj (as_widget w) ?tooltip ?tooltip_private ?pos - - method insert_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new button - (Toolbar.insert_button obj ~kind:`BUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ()) - - method insert_toggle_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new toggle_button - (ToggleButton.cast - (Toolbar.insert_button obj ~kind:`TOGGLEBUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ())) - - method insert_radio_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new radio_button - (RadioButton.cast - (Toolbar.insert_button obj ~kind:`RADIOBUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ())) - - method insert_space = Toolbar.insert_space obj - - method set_orientation = Toolbar.set_orientation obj - method set_style = Toolbar.set_style obj - method set_space_size = Toolbar.set_space_size obj - method set_space_style = Toolbar.set_space_style obj - method set_tooltips = Toolbar.set_tooltips obj - method set_button_relief = Toolbar.set_button_relief obj - method button_relief = Toolbar.get_button_relief obj - method set_text = Toolbar2.set_text obj - method set_icon (icon : widget) = Toolbar2.set_icon obj icon#as_widget -end - -let toolbar2 ?(orientation=`HORIZONTAL) ?style - ?space_size ?space_style ?tooltips ?button_relief - ?border_width ?width ?height ?packing ?show () = - let w = Toolbar.create orientation ?style () in - Toolbar.set w ?space_size ?space_style ?tooltips ?button_relief; - Container.set w ?border_width ?width ?height; - pack_return (new toolbar2 w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gTree2.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gTree2.ml deleted file mode 100644 index 62c38ac57..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gTree2.ml +++ /dev/null @@ -1,78 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkTree2 -open GObj -open GContainer - -class tree_item_signals obj = object - inherit item_signals obj - method expand = GtkSignal.connect obj ~sgn:TreeItem.Signals.expand ~after - method collapse = GtkSignal.connect obj ~sgn:TreeItem.Signals.collapse ~after -end - -class tree_item obj = object - inherit container obj - method event = new GObj.event_ops obj - method as_item : Gtk.tree_item obj = obj - method connect = new tree_item_signals obj - method set_subtree (w : tree) = TreeItem.set_subtree obj w#as_tree - method remove_subtree () = TreeItem.remove_subtree obj - method expand () = TreeItem.expand obj - method collapse () = TreeItem.collapse obj - method subtree = - try Some(new tree (TreeItem.subtree obj)) with Gpointer.Null -> None -end - -and tree_signals obj = object - inherit container_signals obj - method selection_changed = - GtkSignal.connect obj ~sgn:Tree.Signals.selection_changed ~after - method select_child ~callback = - GtkSignal.connect obj ~sgn:Tree.Signals.select_child ~after - ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) - method unselect_child ~callback = - GtkSignal.connect obj ~sgn:Tree.Signals.unselect_child ~after - ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) -end - -and tree obj = object (self) - inherit [tree_item] item_container obj - method event = new GObj.event_ops obj - method as_tree = Tree.coerce obj - method insert w ~pos = Tree.insert obj w#as_item ~pos - method connect = new tree_signals obj - method clear_items = Tree.clear_items obj - method select_item = Tree.select_item obj - method unselect_item = Tree.unselect_item obj - method child_position (w : tree_item) = Tree.child_position obj w#as_item - method remove_items items = - Tree.remove_items obj - (List.map ~f:(fun (t : tree_item) -> t#as_item) items) -(* method set_selection_mode = Tree.set_selection_mode obj - method set_view_mode = Tree.set_view_mode obj *) - method set_view_lines = Tree.set_view_lines obj - method selection = - List.map ~f:(fun w -> self#wrap (Widget.coerce w)) (Tree.selection obj) - method item_up ~pos = - Tree.item_up obj pos - method private wrap w = - new tree_item (TreeItem.cast w) -end - -let tree_item ?label ?border_width ?width ?height ?packing ?show () = - let w = TreeItem.create ?label () in - Container.set w ?border_width ?width ?height; - let self = new tree_item w in - may packing ~f:(fun f -> (f self : unit)); - if show <> Some false then self#misc#show (); - self - -let tree ?selection_mode ?view_mode ?view_lines - ?border_width ?width ?height ?packing ?show () = - let w = Tree.create () in - Tree.set w ?selection_mode ?view_mode ?view_lines; - Container.set w ?border_width ?width ?height; - pack_return (new tree w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gTree2.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gTree2.mli deleted file mode 100644 index c288e157e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gTree2.mli +++ /dev/null @@ -1,73 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class tree_item_signals : 'a obj -> - object - inherit item_signals - constraint 'a = [>`treeitem|`container|`item|`widget] - val obj : 'a obj - method collapse : callback:(unit -> unit) -> GtkSignal.id - method expand : callback:(unit -> unit) -> GtkSignal.id - end - -class tree_item : Gtk.tree_item obj -> - object - inherit GContainer.container - val obj : Gtk.tree_item obj - method event : event_ops - method as_item : Gtk.tree_item obj - method collapse : unit -> unit - method connect : tree_item_signals - method expand : unit -> unit - method remove_subtree : unit -> unit - method set_subtree : tree -> unit - method subtree : tree option - end - -and tree_signals : Gtk.tree obj -> - object - inherit container_signals - val obj : Gtk.tree obj - method select_child : callback:(tree_item -> unit) -> GtkSignal.id - method selection_changed : callback:(unit -> unit) -> GtkSignal.id - method unselect_child : callback:(tree_item -> unit) -> GtkSignal.id - end - -and tree : Gtk.tree obj -> - object - inherit [tree_item] item_container - val obj : Gtk.tree obj - method event : event_ops - method as_tree : Gtk.tree obj - method child_position : tree_item -> int - method clear_items : start:int -> stop:int -> unit - method connect : tree_signals - method insert : tree_item -> pos:int -> unit - method item_up : pos:int -> unit - method remove_items : tree_item list -> unit - method select_item : pos:int -> unit - method selection : tree_item list -(* method set_selection_mode : Tags.selection_mode -> unit *) - method set_view_lines : bool -> unit -(* method set_view_mode : [`LINE|`ITEM] -> unit *) - method unselect_item : pos:int -> unit - method private wrap : Gtk.widget obj -> tree_item - end - -val tree_item : - ?label:string -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(tree_item -> unit) -> ?show:bool -> unit -> tree_item - -val tree : - ?selection_mode:Tags.selection_mode -> - ?view_mode:[`LINE|`ITEM] -> - ?view_lines:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> tree diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtkTree2.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtkTree2.ml deleted file mode 100644 index 46d1e0220..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtkTree2.ml +++ /dev/null @@ -1,82 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module TreeItem = struct - let cast w : tree_item obj = - if Object.is_a w "GtkTreeItem" then Obj.magic w - else invalid_arg "Gtk.TreeItem.cast" - external create : unit -> tree_item obj = "ml_gtk_tree_item2_new" - external create_with_label : string -> tree_item obj - = "ml_gtk_tree_item2_new_with_label" - let create ?label () = - match label with None -> create () - | Some label -> create_with_label label - external set_subtree : [>`treeitem] obj -> [>`widget] obj -> unit - = "ml_gtk_tree_item2_set_subtree" - external remove_subtree : [>`treeitem] obj -> unit - = "ml_gtk_tree_item2_remove_subtree" - external expand : [>`treeitem] obj -> unit - = "ml_gtk_tree_item2_expand" - external collapse : [>`treeitem] obj -> unit - = "ml_gtk_tree_item2_collapse" - external subtree : [>`treeitem] obj -> tree obj - = "ml_GTK_TREE_ITEM2_SUBTREE" - let subtree t = try subtree t with Gpointer.Null -> raise Not_found - module Signals = struct - open GtkSignal - let expand : ([>`treeitem],_) t = - { name = "expand"; marshaller = marshal_unit } - let collapse : ([>`treeitem],_) t = - { name = "collapse"; marshaller = marshal_unit } - end -end - -module Tree = struct - let cast w : tree obj = - if Object.is_a w "GtkTree" then Obj.magic w - else invalid_arg "Gtk.Tree.cast" - external coerce : [>`tree] obj -> tree obj = "%identity" - external create : unit -> tree obj = "ml_gtk_tree2_new" - external insert : [>`tree] obj -> [>`treeitem] obj -> pos:int -> unit - = "ml_gtk_tree2_insert" - external remove_items : [>`tree] obj -> [>`treeitem] obj list -> unit - = "ml_gtk_tree2_remove_items" - external clear_items : [>`tree] obj -> start:int -> stop:int -> unit - = "ml_gtk_tree2_clear_items" - external select_item : [>`tree] obj -> pos:int -> unit - = "ml_gtk_tree2_select_item" - external unselect_item : [>`tree] obj -> pos:int -> unit - = "ml_gtk_tree2_unselect_item" - external child_position : [>`tree] obj -> [>`treeitem] obj -> int - = "ml_gtk_tree2_child_position" -(* external set_selection_mode : [>`tree] obj -> selection_mode -> unit - = "ml_gtk_tree2_set_selection_mode" - external set_view_mode : [>`tree] obj -> [`LINE|`ITEM] -> unit - = "ml_gtk_tree2_set_view_mode" -*) - external set_view_lines : [>`tree] obj -> bool -> unit - = "ml_gtk_tree2_set_view_lines" - external selection : [>`tree] obj -> tree_item obj list = - "ml_gtk_tree2_selection" - external item_up : [>`tree] obj -> int -> unit = - "ml_gtk_tree2_item_up" - - let set ?selection_mode ?view_mode ?view_lines w = - let may_set f = may ~f:(f w) in -(* may_set set_selection_mode selection_mode; - may_set set_view_mode view_mode; *) - may_set set_view_lines view_lines - module Signals = struct - open GtkSignal - let selection_changed : ([>`tree],_) t = - { name = "selection_changed"; marshaller = marshal_unit } - let select_child : ([>`tree],_) t = - { name = "select_child"; marshaller = Widget.Signals.marshal } - let unselect_child : ([>`tree],_) t = - { name = "unselect_child"; marshaller = Widget.Signals.marshal } - end -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktree2.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktree2.c deleted file mode 100644 index db37a1f9d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktree2.c +++ /dev/null @@ -1,1385 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "gtktree2.h" -#include "gtktreeitem2.h" - -#include -#include -#include - -enum { - SELECTION_CHANGED, - SELECT_CHILD, - UNSELECT_CHILD, - LAST_SIGNAL -}; - -static void gtk_tree2_class_init (GtkTree2Class *klass); -static void gtk_tree2_init (GtkTree2 *tree); -static void gtk_tree2_destroy (GtkObject *object); -static void gtk_tree2_map (GtkWidget *widget); -static void gtk_tree2_unmap (GtkWidget *widget); -static void gtk_tree2_realize (GtkWidget *widget); -static void gtk_tree2_draw (GtkWidget *widget, - GdkRectangle *area); -static gint gtk_tree2_expose (GtkWidget *widget, - GdkEventExpose *event); -static gint gtk_tree2_motion_notify (GtkWidget *widget, - GdkEventMotion *event); -static gint gtk_tree2_button_press (GtkWidget *widget, - GdkEventButton *event); -static gint gtk_tree2_button_release (GtkWidget *widget, - GdkEventButton *event); -static void gtk_tree2_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void gtk_tree2_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void gtk_tree2_add (GtkContainer *container, - GtkWidget *widget); -static void gtk_tree2_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data); - -static void gtk_real_tree2_select_child (GtkTree2 *tree, - GtkWidget *child); -static void gtk_real_tree2_unselect_child (GtkTree2 *tree, - GtkWidget *child); - -static GtkType gtk_tree2_child_type (GtkContainer *container); - -static GtkContainerClass *parent_class = NULL; -static guint tree_signals[LAST_SIGNAL] = { 0 }; - -GtkType -gtk_tree2_get_type (void) -{ - static GtkType tree_type = 0; - - if (!tree_type) - { - static const GtkTypeInfo tree_info = - { - "GtkTree2", - sizeof (GtkTree2), - sizeof (GtkTree2Class), - (GtkClassInitFunc) gtk_tree2_class_init, - (GtkObjectInitFunc) gtk_tree2_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - tree_type = gtk_type_unique (gtk_container_get_type (), &tree_info); - } - - return tree_type; -} - -static void -gtk_tree2_class_init (GtkTree2Class *class) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - - object_class = (GtkObjectClass*) class; - widget_class = (GtkWidgetClass*) class; - container_class = (GtkContainerClass*) class; - - parent_class = gtk_type_class (gtk_container_get_type ()); - - tree_signals[SELECTION_CHANGED] = - gtk_signal_new ("selection_changed", - GTK_RUN_FIRST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkTree2Class, selection_changed), - gtk_marshal_NONE__NONE, - GTK_TYPE_NONE, 0); - tree_signals[SELECT_CHILD] = - gtk_signal_new ("select_child", - GTK_RUN_FIRST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkTree2Class, select_child), - gtk_marshal_NONE__POINTER, - GTK_TYPE_NONE, 1, - GTK_TYPE_WIDGET); - tree_signals[UNSELECT_CHILD] = - gtk_signal_new ("unselect_child", - GTK_RUN_FIRST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkTree2Class, unselect_child), - gtk_marshal_NONE__POINTER, - GTK_TYPE_NONE, 1, - GTK_TYPE_WIDGET); - - gtk_object_class_add_signals (object_class, tree_signals, LAST_SIGNAL); - - object_class->destroy = gtk_tree2_destroy; - - widget_class->map = gtk_tree2_map; - widget_class->unmap = gtk_tree2_unmap; - widget_class->realize = gtk_tree2_realize; - widget_class->draw = gtk_tree2_draw; - widget_class->expose_event = gtk_tree2_expose; - widget_class->motion_notify_event = gtk_tree2_motion_notify; - widget_class->button_press_event = gtk_tree2_button_press; - widget_class->button_release_event = gtk_tree2_button_release; - widget_class->size_request = gtk_tree2_size_request; - widget_class->size_allocate = gtk_tree2_size_allocate; - - container_class->add = gtk_tree2_add; - container_class->remove = - (void (*)(GtkContainer *, GtkWidget *)) gtk_tree2_remove_item; - container_class->forall = gtk_tree2_forall; - container_class->child_type = gtk_tree2_child_type; - - class->selection_changed = NULL; - class->select_child = gtk_real_tree2_select_child; - class->unselect_child = gtk_real_tree2_unselect_child; -} - -static GtkType -gtk_tree2_child_type (GtkContainer *container) -{ - return GTK_TYPE_TREE_ITEM2; -} - -static void -gtk_tree2_init (GtkTree2 *tree) -{ - tree->children = NULL; - tree->root_tree = NULL; - tree->selection = NULL; - tree->tree_owner = NULL; - tree->selection_mode = GTK_SELECTION_SINGLE; - tree->indent_value = 9; - tree->current_indent = 0; - tree->level = 0; - tree->view_mode = GTK_TREE2_VIEW_LINE; - tree->view_line = 1; -} - -GtkWidget* -gtk_tree2_new (void) -{ - return GTK_WIDGET (gtk_type_new (gtk_tree2_get_type ())); -} - -void -gtk_tree2_append (GtkTree2 *tree, - GtkWidget *tree_item) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_tree2_insert (tree, tree_item, -1); -} - -void -gtk_tree2_prepend (GtkTree2 *tree, - GtkWidget *tree_item) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_tree2_insert (tree, tree_item, 0); -} - -void -gtk_tree2_insert (GtkTree2 *tree, - GtkWidget *tree_item, - gint position) -{ - gint nchildren; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - nchildren = g_list_length (tree->children); - - if ((position < 0) || (position > nchildren)) - position = nchildren; - - if (position == nchildren) - tree->children = g_list_append (tree->children, tree_item); - else - tree->children = g_list_insert (tree->children, tree_item, position); - - gtk_widget_set_parent (tree_item, GTK_WIDGET (tree)); - - if (GTK_WIDGET_REALIZED (tree_item->parent)) - gtk_widget_realize (tree_item); - - if (GTK_WIDGET_VISIBLE (tree_item->parent) && GTK_WIDGET_VISIBLE (tree_item)) - { - if (GTK_WIDGET_MAPPED (tree_item->parent)) - gtk_widget_map (tree_item); - - gtk_widget_queue_resize (tree_item); - } -} - -/* moves the pos child up in the tree */ -void -gtk_tree2_item_up (GtkTree2 *tree, - gint position) -{ - gint nchildren, i; - GList *children, *tmp; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - children = (tree->children); - nchildren = g_list_length (tree->children); - - if ((position < 1) || (position >= nchildren)) - return; - - for (i=1; i < position; i++) - children = (children->next); - - tmp = children->next; - if (position == 1) - { - tree->children = children->next; - children->next->prev = NULL; - } - else - { - children->prev->next = children->next; - children->next->prev = children->prev; - } - children->next = tmp->next; - children->prev = tmp; - if (tmp->next) - tmp->next->prev = children; - tmp->next = children; - - if (GTK_WIDGET_VISIBLE (tree)) - { -/* if (GTK_WIDGET_VISIBLE (GTK_WIDGET(children->data))) - gtk_widget_queue_resize (GTK_WIDGET(children->data)); - if (GTK_WIDGET_VISIBLE (GTK_WIDGET(tmp->data))) - gtk_widget_queue_resize (GTK_WIDGET(tmp->data)); -*/ - gtk_widget_queue_resize (GTK_WIDGET(tree)); - } -} - -static void -gtk_tree2_add (GtkContainer *container, - GtkWidget *child) -{ - GtkTree2 *tree; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_TREE2 (container)); - g_return_if_fail (GTK_IS_TREE_ITEM2 (child)); - - tree = GTK_TREE2 (container); - - tree->children = g_list_append (tree->children, child); - - gtk_widget_set_parent (child, GTK_WIDGET (container)); - - if (GTK_WIDGET_REALIZED (child->parent)) - gtk_widget_realize (child); - - if (GTK_WIDGET_VISIBLE (child->parent) && GTK_WIDGET_VISIBLE (child)) - { - if (GTK_WIDGET_MAPPED (child->parent)) - gtk_widget_map (child); - - gtk_widget_queue_resize (child); - } - - if (!tree->selection && (tree->selection_mode == GTK_SELECTION_BROWSE)) - gtk_tree2_select_child (tree, child); -} - -static gint -gtk_tree2_button_press (GtkWidget *widget, - GdkEventButton *event) -{ - GtkTree2 *tree; - GtkWidget *item; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - tree = GTK_TREE2 (widget); - item = gtk_get_event_widget ((GdkEvent*) event); - - while (item && !GTK_IS_TREE_ITEM2 (item)) - item = item->parent; - - if (!item || (item->parent != widget)) - return FALSE; - - switch(event->button) - { - case 1: - gtk_tree2_select_child (tree, item); - break; - case 2: - if(GTK_TREE_ITEM2(item)->subtree) gtk_tree_item2_expand(GTK_TREE_ITEM2(item)); - break; - case 3: - if(GTK_TREE_ITEM2(item)->subtree) gtk_tree_item2_collapse(GTK_TREE_ITEM2(item)); - break; - } - - return TRUE; -} - -static gint -gtk_tree2_button_release (GtkWidget *widget, - GdkEventButton *event) -{ - GtkTree2 *tree; - GtkWidget *item; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - tree = GTK_TREE2 (widget); - item = gtk_get_event_widget ((GdkEvent*) event); - - return TRUE; -} - -gint -gtk_tree2_child_position (GtkTree2 *tree, - GtkWidget *child) -{ - GList *children; - gint pos; - - - g_return_val_if_fail (tree != NULL, -1); - g_return_val_if_fail (GTK_IS_TREE2 (tree), -1); - g_return_val_if_fail (child != NULL, -1); - - pos = 0; - children = tree->children; - - while (children) - { - if (child == GTK_WIDGET (children->data)) - return pos; - - pos += 1; - children = children->next; - } - - - return -1; -} - -void -gtk_tree2_clear_items (GtkTree2 *tree, - gint start, - gint end) -{ - GtkWidget *widget; - GList *clear_list; - GList *tmp_list; - guint nchildren; - guint index; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - nchildren = g_list_length (tree->children); - - if (nchildren > 0) - { - if ((end < 0) || (end > nchildren)) - end = nchildren; - - if (start >= end) - return; - - tmp_list = g_list_nth (tree->children, start); - clear_list = NULL; - index = start; - while (tmp_list && index <= end) - { - widget = tmp_list->data; - tmp_list = tmp_list->next; - index++; - - clear_list = g_list_prepend (clear_list, widget); - } - - gtk_tree2_remove_items (tree, clear_list); - } -} - -static void -gtk_tree2_destroy (GtkObject *object) -{ - GtkTree2 *tree; - GtkWidget *child; - GList *children; - - g_return_if_fail (object != NULL); - g_return_if_fail (GTK_IS_TREE2 (object)); - - tree = GTK_TREE2 (object); - - children = tree->children; - while (children) - { - child = children->data; - children = children->next; - - gtk_widget_ref (child); - gtk_widget_unparent (child); - gtk_widget_destroy (child); - gtk_widget_unref (child); - } - - g_list_free (tree->children); - tree->children = NULL; - - if (tree->root_tree == tree) - { - GList *node; - for (node = tree->selection; node; node = node->next) - gtk_widget_unref ((GtkWidget *)node->data); - g_list_free (tree->selection); - tree->selection = NULL; - } - - if (GTK_OBJECT_CLASS (parent_class)->destroy) - (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); -} - -static void -gtk_tree2_draw (GtkWidget *widget, - GdkRectangle *area) -{ - GtkTree2 *tree; - GtkWidget *subtree; - GtkWidget *child; - GdkRectangle child_area; - GList *children; - - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - g_return_if_fail (area != NULL); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - tree = GTK_TREE2 (widget); - - children = tree->children; - while (children) - { - child = children->data; - children = children->next; - - if (gtk_widget_intersect (child, area, &child_area)) - gtk_widget_draw (child, &child_area); - - if((subtree = GTK_TREE_ITEM2(child)->subtree) && - GTK_WIDGET_VISIBLE(subtree) && - gtk_widget_intersect (subtree, area, &child_area)) - gtk_widget_draw (subtree, &child_area); - } - } - -} - -static gint -gtk_tree2_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - GtkTree2 *tree; - GtkWidget *child; - GdkEventExpose child_event; - GList *children; - - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - tree = GTK_TREE2 (widget); - - child_event = *event; - - children = tree->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_NO_WINDOW (child) && - gtk_widget_intersect (child, &event->area, &child_event.area)) - gtk_widget_event (child, (GdkEvent*) &child_event); - } - } - - - return FALSE; -} - -static void -gtk_tree2_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - GtkTree2 *tree; - GtkWidget *child; - GList *children; - - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_TREE2 (container)); - g_return_if_fail (callback != NULL); - - tree = GTK_TREE2 (container); - children = tree->children; - - while (children) - { - child = children->data; - children = children->next; - - (* callback) (child, callback_data); - - if (include_internals && GTK_TREE_ITEM2(child)->subtree) - (* callback) (GTK_TREE_ITEM2(child)->subtree, callback_data); - } -} - -static void -gtk_tree2_map (GtkWidget *widget) -{ - GtkTree2 *tree; - GtkWidget *child; - GList *children; - - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - - GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED); - tree = GTK_TREE2 (widget); - - if(GTK_IS_TREE2(widget->parent)) - { - /* set root tree for this tree */ - tree->root_tree = GTK_TREE2(widget->parent)->root_tree; - - tree->level = GTK_TREE2(GTK_WIDGET(tree)->parent)->level+1; - tree->indent_value = GTK_TREE2(GTK_WIDGET(tree)->parent)->indent_value; - tree->current_indent = GTK_TREE2(GTK_WIDGET(tree)->parent)->current_indent + - tree->indent_value; - tree->view_mode = GTK_TREE2(GTK_WIDGET(tree)->parent)->view_mode; - tree->view_line = GTK_TREE2(GTK_WIDGET(tree)->parent)->view_line; - } - else - tree->root_tree = tree; - - children = tree->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_VISIBLE (child) && - !GTK_WIDGET_MAPPED (child)) - gtk_widget_map (child); - - if (GTK_TREE_ITEM2 (child)->subtree) - { - child = GTK_WIDGET (GTK_TREE_ITEM2 (child)->subtree); - - if (GTK_WIDGET_VISIBLE (child) && !GTK_WIDGET_MAPPED (child)) - gtk_widget_map (child); - } - } - - gdk_window_show (widget->window); -} - -static gint -gtk_tree2_motion_notify (GtkWidget *widget, - GdkEventMotion *event) -{ - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - -#ifdef TREE_DEBUG - g_message("gtk_tree2_motion_notify\n"); -#endif /* TREE_DEBUG */ - - return FALSE; -} - -static void -gtk_tree2_realize (GtkWidget *widget) -{ - GdkWindowAttr attributes; - gint attributes_mask; - - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - - GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); - - attributes.window_type = GDK_WINDOW_CHILD; - attributes.x = widget->allocation.x; - attributes.y = widget->allocation.y; - attributes.width = widget->allocation.width; - attributes.height = widget->allocation.height; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gtk_widget_get_visual (widget); - attributes.colormap = gtk_widget_get_colormap (widget); - attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK; - - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - - widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); - gdk_window_set_user_data (widget->window, widget); - - widget->style = gtk_style_attach (widget->style, widget->window); - gdk_window_set_background (widget->window, - &widget->style->base[GTK_STATE_NORMAL]); -} - -void -gtk_tree2_remove_item (GtkTree2 *container, - GtkWidget *widget) -{ - GList *item_list; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_TREE2 (container)); - g_return_if_fail (widget != NULL); - g_return_if_fail (container == GTK_TREE2 (widget->parent)); - - item_list = g_list_append (NULL, widget); - - gtk_tree2_remove_items (GTK_TREE2 (container), item_list); - - g_list_free (item_list); -} - -/* used by gtk_tree2_remove_items to make the function independant of - order in list of items to remove. - Sort item bu depth in tree */ -static gint -gtk_tree2_sort_item_by_depth(GtkWidget* a, GtkWidget* b) -{ - if((GTK_TREE2(a->parent)->level) < (GTK_TREE2(b->parent)->level)) - return 1; - if((GTK_TREE2(a->parent)->level) > (GTK_TREE2(b->parent)->level)) - return -1; - - return 0; -} - -void -gtk_tree2_remove_items (GtkTree2 *tree, - GList *items) -{ - GtkWidget *widget; - GList *selected_widgets; - GList *tmp_list; - GList *sorted_list; - GtkTree2 *real_tree; - GtkTree2 *root_tree; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - -#ifdef TREE_DEBUG - g_message("+ gtk_tree2_remove_items [ tree %#x items list %#x ]\n", (int)tree, (int)items); -#endif /* TREE_DEBUG */ - - /* We may not yet be mapped, so we actively have to find our - * root tree - */ - if (tree->root_tree) - root_tree = tree->root_tree; - else - { - GtkWidget *tmp = GTK_WIDGET (tree); - while (tmp->parent && GTK_IS_TREE2 (tmp->parent)) - tmp = tmp->parent; - - root_tree = GTK_TREE2 (tmp); - } - - tmp_list = items; - selected_widgets = NULL; - sorted_list = NULL; - widget = NULL; - -#ifdef TREE_DEBUG - g_message("* sort list by depth\n"); -#endif /* TREE_DEBUG */ - - while (tmp_list) - { - -#ifdef TREE_DEBUG - g_message ("* item [%#x] depth [%d]\n", - (int)tmp_list->data, - (int)GTK_TREE2(GTK_WIDGET(tmp_list->data)->parent)->level); -#endif /* TREE_DEBUG */ - - sorted_list = g_list_insert_sorted(sorted_list, - tmp_list->data, - (GCompareFunc)gtk_tree2_sort_item_by_depth); - tmp_list = g_list_next(tmp_list); - } - -#ifdef TREE_DEBUG - /* print sorted list */ - g_message("* sorted list result\n"); - tmp_list = sorted_list; - while(tmp_list) - { - g_message("* item [%#x] depth [%d]\n", - (int)tmp_list->data, - (int)GTK_TREE2(GTK_WIDGET(tmp_list->data)->parent)->level); - tmp_list = g_list_next(tmp_list); - } -#endif /* TREE_DEBUG */ - -#ifdef TREE_DEBUG - g_message("* scan sorted list\n"); -#endif /* TREE_DEBUG */ - - tmp_list = sorted_list; - while (tmp_list) - { - widget = tmp_list->data; - tmp_list = tmp_list->next; - -#ifdef TREE_DEBUG - g_message("* item [%#x] subtree [%#x]\n", - (int)widget, (int)GTK_TREE_ITEM2_SUBTREE(widget)); -#endif /* TREE_DEBUG */ - - /* get real owner of this widget */ - real_tree = GTK_TREE2(widget->parent); -#ifdef TREE_DEBUG - g_message("* subtree having this widget [%#x]\n", (int)real_tree); -#endif /* TREE_DEBUG */ - - - if (widget->state == GTK_STATE_SELECTED) - { - selected_widgets = g_list_prepend (selected_widgets, widget); -#ifdef TREE_DEBUG - g_message("* selected widget - adding it in selected list [%#x]\n", - (int)selected_widgets); -#endif /* TREE_DEBUG */ - } - - /* remove this item from its real parent */ -#ifdef TREE_DEBUG - g_message("* remove widget from its owner tree\n"); -#endif /* TREE_DEBUG */ - real_tree->children = g_list_remove (real_tree->children, widget); - - /* remove subtree associate at this item if it exist */ - if(GTK_TREE_ITEM2(widget)->subtree) - { -#ifdef TREE_DEBUG - g_message("* remove subtree associate at this item [%#x]\n", - (int) GTK_TREE_ITEM2(widget)->subtree); -#endif /* TREE_DEBUG */ - if (GTK_WIDGET_MAPPED (GTK_TREE_ITEM2(widget)->subtree)) - gtk_widget_unmap (GTK_TREE_ITEM2(widget)->subtree); - - gtk_widget_unparent (GTK_TREE_ITEM2(widget)->subtree); - GTK_TREE_ITEM2(widget)->subtree = NULL; - } - - /* really remove widget for this item */ -#ifdef TREE_DEBUG - g_message("* unmap and unparent widget [%#x]\n", (int)widget); -#endif /* TREE_DEBUG */ - if (GTK_WIDGET_MAPPED (widget)) - gtk_widget_unmap (widget); - - gtk_widget_unparent (widget); - - /* delete subtree if there is no children in it */ -/* HF supprime */ -/* if(real_tree->children == NULL && - real_tree != root_tree) - { -*/ -#ifdef TREE_DEBUG - g_message("* owner tree don't have children ... destroy it\n"); -#endif /* TREE_DEBUG */ -/* - gtk_tree_item2_remove_subtree(GTK_TREE_ITEM2(real_tree->tree_owner)); - } -*/ -#ifdef TREE_DEBUG - g_message("* next item in list\n"); -#endif /* TREE_DEBUG */ - } - - if (selected_widgets) - { -#ifdef TREE_DEBUG - g_message("* scan selected item list\n"); -#endif /* TREE_DEBUG */ - tmp_list = selected_widgets; - while (tmp_list) - { - widget = tmp_list->data; - tmp_list = tmp_list->next; - -#ifdef TREE_DEBUG - g_message("* widget [%#x] subtree [%#x]\n", - (int)widget, (int)GTK_TREE_ITEM2_SUBTREE(widget)); -#endif /* TREE_DEBUG */ - - /* remove widget of selection */ - root_tree->selection = g_list_remove (root_tree->selection, widget); - - /* unref it to authorize is destruction */ - gtk_widget_unref (widget); - } - - /* emit only one selection_changed signal */ - gtk_signal_emit (GTK_OBJECT (root_tree), - tree_signals[SELECTION_CHANGED]); - } - -#ifdef TREE_DEBUG - g_message("* free selected_widgets list\n"); -#endif /* TREE_DEBUG */ - g_list_free (selected_widgets); - g_list_free (sorted_list); - - if (root_tree->children && !root_tree->selection && - (root_tree->selection_mode == GTK_SELECTION_BROWSE)) - { -#ifdef TREE_DEBUG - g_message("* BROWSE mode, select another item\n"); -#endif /* TREE_DEBUG */ - widget = root_tree->children->data; - gtk_tree2_select_child (root_tree, widget); - } - - if (GTK_WIDGET_VISIBLE (root_tree)) - { -#ifdef TREE_DEBUG - g_message("* query queue resizing for root_tree\n"); -#endif /* TREE_DEBUG */ - gtk_widget_queue_resize (GTK_WIDGET (root_tree)); - } -} - -void -gtk_tree2_select_child (GtkTree2 *tree, - GtkWidget *tree_item) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_signal_emit (GTK_OBJECT (tree), tree_signals[SELECT_CHILD], tree_item); -} - -void -gtk_tree2_select_next_child (GtkTree2 *tree, - GtkWidget *tree_item, gboolean descend) -{ - GList *children; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - if (descend && GTK_TREE2(GTK_TREE_ITEM2(tree_item)->subtree)->children) - { - gtk_signal_emit (GTK_OBJECT (GTK_TREE_ITEM2(tree_item)->subtree), tree_signals[SELECT_CHILD], GTK_TREE2(GTK_TREE_ITEM2(tree_item)->subtree)->children->data); - return; - } - - children = tree->children; - while (children) - { - if (tree_item == GTK_WIDGET (children->data)) - break; - - children = children->next; - } - if (!children) return; - - if (children->next) - gtk_signal_emit (GTK_OBJECT (tree), tree_signals[SELECT_CHILD], children->next->data); - else if (tree != tree->root_tree) - { - children = GTK_TREE2(GTK_WIDGET(tree)->parent)->children; - gtk_tree2_select_next_child (GTK_TREE2(GTK_WIDGET(tree)->parent), tree->tree_owner, FALSE); - } - -} - -/* we know that tree is not the roor_tree and that - tree_items always have subtrees */ -void -gtk_tree2_select_prev_child (GtkTree2 *tree, - GtkWidget *tree_item) -{ - GList *children; - GtkTreeItem2 *tree_item2; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - - children = tree->children; - while (children) - { - if (tree_item == GTK_WIDGET (children->data)) - break; - - children = children->next; - } - if (!children) return; - - if (children = children->prev) - { - tree_item2 = GTK_TREE_ITEM2(children->data); - while (GTK_TREE2(tree_item2->subtree)->children) - { - children = GTK_TREE2(tree_item2->subtree)->children; - while (children->next) - children = children->next; - tree_item2 = GTK_TREE_ITEM2(children->data); - } - gtk_signal_emit (GTK_OBJECT (GTK_WIDGET(tree_item2)->parent), tree_signals[SELECT_CHILD], tree_item2); - } - else - { - gtk_signal_emit (GTK_OBJECT (GTK_WIDGET(tree)->parent), tree_signals[SELECT_CHILD], tree->tree_owner); - } - -} - -void -gtk_tree2_select_item (GtkTree2 *tree, - gint item) -{ - GList *tmp_list; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tmp_list = g_list_nth (tree->children, item); - if (tmp_list) - gtk_tree2_select_child (tree, GTK_WIDGET (tmp_list->data)); - -} - -static void -gtk_tree2_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkTree2 *tree; - GtkWidget *child, *subtree; - GtkAllocation child_allocation; - GList *children; - - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - g_return_if_fail (allocation != NULL); - - tree = GTK_TREE2 (widget); - - widget->allocation = *allocation; - if (GTK_WIDGET_REALIZED (widget)) - gdk_window_move_resize (widget->window, - allocation->x, allocation->y, - allocation->width, allocation->height); - - if (tree->children) - { - child_allocation.x = GTK_CONTAINER (tree)->border_width; - child_allocation.y = GTK_CONTAINER (tree)->border_width; - child_allocation.width = MAX (1, (gint)allocation->width - child_allocation.x * 2); - - children = tree->children; - - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_VISIBLE (child)) - { - GtkRequisition child_requisition; - gtk_widget_get_child_requisition (child, &child_requisition); - - child_allocation.height = child_requisition.height; - - gtk_widget_size_allocate (child, &child_allocation); - - child_allocation.y += child_allocation.height; - - if((subtree = GTK_TREE_ITEM2(child)->subtree)) - if(GTK_WIDGET_VISIBLE (subtree)) - { - child_allocation.height = subtree->requisition.height; - gtk_widget_size_allocate (subtree, &child_allocation); - child_allocation.y += child_allocation.height; - } - } - } - } - -} - -static void -gtk_tree2_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GtkTree2 *tree; - GtkWidget *child, *subtree; - GList *children; - GtkRequisition child_requisition; - - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - g_return_if_fail (requisition != NULL); - - tree = GTK_TREE2 (widget); - requisition->width = 0; - requisition->height = 0; - - children = tree->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_VISIBLE (child)) - { - gtk_widget_size_request (child, &child_requisition); - - requisition->width = MAX (requisition->width, child_requisition.width); - requisition->height += child_requisition.height; - - if((subtree = GTK_TREE_ITEM2(child)->subtree) && - GTK_WIDGET_VISIBLE (subtree)) - { - gtk_widget_size_request (subtree, &child_requisition); - - requisition->width = MAX (requisition->width, - child_requisition.width); - - requisition->height += child_requisition.height; - } - } - } - - requisition->width += GTK_CONTAINER (tree)->border_width * 2; - requisition->height += GTK_CONTAINER (tree)->border_width * 2; - - requisition->width = MAX (requisition->width, 1); - requisition->height = MAX (requisition->height, 1); - -} - -static void -gtk_tree2_unmap (GtkWidget *widget) -{ - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE2 (widget)); - - GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED); - gdk_window_hide (widget->window); - -} - -void -gtk_tree2_unselect_child (GtkTree2 *tree, - GtkWidget *tree_item) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_signal_emit (GTK_OBJECT (tree), tree_signals[UNSELECT_CHILD], tree_item); -} - -void -gtk_tree2_unselect_item (GtkTree2 *tree, - gint item) -{ - GList *tmp_list; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tmp_list = g_list_nth (tree->children, item); - if (tmp_list) - gtk_tree2_unselect_child (tree, GTK_WIDGET (tmp_list->data)); - -} - -static void -gtk_real_tree2_select_child (GtkTree2 *tree, - GtkWidget *child) -{ - GList *selection, *root_selection; - GList *tmp_list; - GtkWidget *tmp_item; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (child != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (child)); - - root_selection = tree->root_tree->selection; - - switch (tree->root_tree->selection_mode) - { - case GTK_SELECTION_SINGLE: - - selection = root_selection; - - /* remove old selection list */ - while (selection) - { - tmp_item = selection->data; - - if (tmp_item != child) - { - gtk_tree_item2_deselect (GTK_TREE_ITEM2 (tmp_item)); - - tmp_list = selection; - selection = selection->next; - - root_selection = g_list_remove_link (root_selection, tmp_list); - gtk_widget_unref (tmp_item); - - g_list_free (tmp_list); - } - else - selection = selection->next; - } - - if (child->state == GTK_STATE_NORMAL) - { - gtk_tree_item2_select (GTK_TREE_ITEM2 (child)); - root_selection = g_list_prepend (root_selection, child); - gtk_widget_ref (child); - } - else if (child->state == GTK_STATE_SELECTED) - { - gtk_tree_item2_deselect (GTK_TREE_ITEM2 (child)); - root_selection = g_list_remove (root_selection, child); - gtk_widget_unref (child); - } - - tree->root_tree->selection = root_selection; - - gtk_signal_emit (GTK_OBJECT (tree->root_tree), - tree_signals[SELECTION_CHANGED]); - break; - - - case GTK_SELECTION_BROWSE: - selection = root_selection; - - while (selection) - { - tmp_item = selection->data; - - if (tmp_item != child) - { - gtk_tree_item2_deselect (GTK_TREE_ITEM2 (tmp_item)); - - tmp_list = selection; - selection = selection->next; - - root_selection = g_list_remove_link (root_selection, tmp_list); - gtk_widget_unref (tmp_item); - - g_list_free (tmp_list); - } - else - selection = selection->next; - } - - tree->root_tree->selection = root_selection; - - if (child->state == GTK_STATE_NORMAL) - { - gtk_tree_item2_select (GTK_TREE_ITEM2 (child)); - root_selection = g_list_prepend (root_selection, child); - gtk_widget_ref (child); - tree->root_tree->selection = root_selection; - gtk_signal_emit (GTK_OBJECT (tree->root_tree), - tree_signals[SELECTION_CHANGED]); - } - break; - - case GTK_SELECTION_MULTIPLE: - if (child->state == GTK_STATE_NORMAL) - { - gtk_tree_item2_select (GTK_TREE_ITEM2 (child)); - root_selection = g_list_prepend (root_selection, child); - gtk_widget_ref (child); - tree->root_tree->selection = root_selection; - gtk_signal_emit (GTK_OBJECT (tree->root_tree), - tree_signals[SELECTION_CHANGED]); - } - else if (child->state == GTK_STATE_SELECTED) - { - gtk_tree_item2_deselect (GTK_TREE_ITEM2 (child)); - root_selection = g_list_remove (root_selection, child); - gtk_widget_unref (child); - tree->root_tree->selection = root_selection; - gtk_signal_emit (GTK_OBJECT (tree->root_tree), - tree_signals[SELECTION_CHANGED]); - } - break; - - case GTK_SELECTION_EXTENDED: - break; - } -} - -static void -gtk_real_tree2_unselect_child (GtkTree2 *tree, - GtkWidget *child) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - g_return_if_fail (child != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (child)); - - switch (tree->selection_mode) - { - case GTK_SELECTION_SINGLE: - case GTK_SELECTION_MULTIPLE: - case GTK_SELECTION_BROWSE: - if (child->state == GTK_STATE_SELECTED) - { - GtkTree2* root_tree = GTK_TREE2_ROOT_TREE(tree); - gtk_tree_item2_deselect (GTK_TREE_ITEM2 (child)); - root_tree->selection = g_list_remove (root_tree->selection, child); - gtk_widget_unref (child); - gtk_signal_emit (GTK_OBJECT (tree->root_tree), - tree_signals[SELECTION_CHANGED]); - } - break; - - case GTK_SELECTION_EXTENDED: - break; - } -} - -void -gtk_tree2_set_selection_mode (GtkTree2 *tree, - GtkSelectionMode mode) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tree->selection_mode = mode; -} - -void -gtk_tree2_set_view_mode (GtkTree2 *tree, - GtkTree2ViewMode mode) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tree->view_mode = mode; -} - -void -gtk_tree2_set_view_lines (GtkTree2 *tree, - guint flag) -{ - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tree->view_line = flag; -} - -void -gtk_tree2_item_up_1 (GtkTree2 *tree, - guint pos) -{ - GList *tmp; - guint length; - gpointer data; - - g_return_if_fail (tree != NULL); - g_return_if_fail (GTK_IS_TREE2 (tree)); - - tmp = tree->children; - length = g_list_length (tmp); - if (pos <= 0 || pos >= length) { return; } - data = g_list_nth_data (tree->children, pos); - g_list_remove (tree->children, data); - tree->children = g_list_insert (tree->children, data, pos-1); -} diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktree2.h b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktree2.h deleted file mode 100644 index 291a1d1b3..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktree2.h +++ /dev/null @@ -1,139 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __GTK_TREE2_H__ -#define __GTK_TREE2_H__ - -/* set this flag to enable tree debugging output */ -/* #define TREE_DEBUG */ - -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -#define GTK_TYPE_TREE2 (gtk_tree2_get_type ()) -#define GTK_TREE2(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_TREE2, GtkTree2)) -#define GTK_TREE2_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE2, GtkTree2Class)) -#define GTK_IS_TREE2(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_TREE2)) -#define GTK_IS_TREE2_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE2)) - -#define GTK_IS_ROOT_TREE2(obj) ((GtkObject*) GTK_TREE2(obj)->root_tree == (GtkObject*)obj) -#define GTK_TREE2_ROOT_TREE(obj) (GTK_TREE2(obj)->root_tree ? GTK_TREE2(obj)->root_tree : GTK_TREE2(obj)) -#define GTK_TREE2_SELECTION(obj) (GTK_TREE2_ROOT_TREE(obj)->selection) - -typedef enum -{ - GTK_TREE2_VIEW_LINE, /* default view mode */ - GTK_TREE2_VIEW_ITEM -} GtkTree2ViewMode; - -typedef struct _GtkTree2 GtkTree2; -typedef struct _GtkTree2Class GtkTree2Class; - -struct _GtkTree2 -{ - GtkContainer container; - - GList *children; - - GtkTree2* root_tree; /* owner of selection list */ - GtkWidget* tree_owner; - GList *selection; - guint level; - guint indent_value; - guint current_indent; - guint selection_mode : 2; - guint view_mode : 1; - guint view_line : 1; -}; - -struct _GtkTree2Class -{ - GtkContainerClass parent_class; - - void (* selection_changed) (GtkTree2 *tree); - void (* select_child) (GtkTree2 *tree, - GtkWidget *child); - void (* unselect_child) (GtkTree2 *tree, - GtkWidget *child); -}; - - -GtkType gtk_tree2_get_type (void); -GtkWidget* gtk_tree2_new (void); -void gtk_tree2_append (GtkTree2 *tree, - GtkWidget *tree_item); -void gtk_tree2_prepend (GtkTree2 *tree, - GtkWidget *tree_item); -void gtk_tree2_insert (GtkTree2 *tree, - GtkWidget *tree_item, - gint position); -void gtk_tree2_remove_items (GtkTree2 *tree, - GList *items); -void gtk_tree2_clear_items (GtkTree2 *tree, - gint start, - gint end); -void gtk_tree2_select_item (GtkTree2 *tree, - gint item); -void gtk_tree2_unselect_item (GtkTree2 *tree, - gint item); -void gtk_tree2_select_child (GtkTree2 *tree, - GtkWidget *tree_item); -void gtk_tree2_unselect_child (GtkTree2 *tree, - GtkWidget *tree_item); -gint gtk_tree2_child_position (GtkTree2 *tree, - GtkWidget *child); -void gtk_tree2_set_selection_mode (GtkTree2 *tree, - GtkSelectionMode mode); -void gtk_tree2_set_view_mode (GtkTree2 *tree, - GtkTree2ViewMode mode); -void gtk_tree2_set_view_lines (GtkTree2 *tree, - guint flag); - -/* deprecated function, use gtk_container_remove instead. - */ -void gtk_tree2_remove_item (GtkTree2 *tree, - GtkWidget *child); -void gtk_tree2_item_up (GtkTree2 *tree, - gint position); - -void gtk_tree2_select_next_child (GtkTree2 *tree, - GtkWidget *tree_item, gboolean descend); - -void gtk_tree2_select_prev_child (GtkTree2 *tree, - GtkWidget *tree_item); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif /* __GTK_TREE2_H__ */ diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktreeitem2.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktreeitem2.c deleted file mode 100644 index 7e6f8116b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktreeitem2.c +++ /dev/null @@ -1,1110 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include -#include "gtktree2.h" -#include "gtktreeitem2.h" -#include -#include -#include -#include - -#include "tree_plus.xpm" -#include "tree_minus.xpm" - -#define DEFAULT_DELTA 9 - -enum { - COLLAPSE_TREE, - EXPAND_TREE, - LAST_SIGNAL -}; - -typedef struct _GtkTree2Pixmaps GtkTree2Pixmaps; - -struct _GtkTree2Pixmaps { - gint refcount; - GdkColormap *colormap; - - GdkPixmap *pixmap_plus; - GdkPixmap *pixmap_minus; - GdkBitmap *mask_plus; - GdkBitmap *mask_minus; -}; - -static GList *pixmaps = NULL; - -static void gtk_tree_item2_class_init (GtkTreeItem2Class *klass); -static void gtk_tree_item2_init (GtkTreeItem2 *tree_item); -static void gtk_tree_item2_realize (GtkWidget *widget); -static void gtk_tree_item2_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void gtk_tree_item2_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void gtk_tree_item2_draw (GtkWidget *widget, - GdkRectangle *area); -static void gtk_tree_item2_draw_focus (GtkWidget *widget); -static void gtk_tree_item2_paint (GtkWidget *widget, - GdkRectangle *area); -static gint gtk_tree_item2_button_press (GtkWidget *widget, - GdkEventButton *event); -static gint gtk_tree_item2_expose (GtkWidget *widget, - GdkEventExpose *event); -static gint gtk_tree_item2_focus_in (GtkWidget *widget, - GdkEventFocus *event); -static gint gtk_tree_item2_focus_out (GtkWidget *widget, - GdkEventFocus *event); -static void gtk_tree_item2_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data); - -static void gtk_real_tree_item2_select (GtkItem *item); -static void gtk_real_tree_item2_deselect (GtkItem *item); -static void gtk_real_tree_item2_toggle (GtkItem *item); -static void gtk_real_tree_item2_expand (GtkTreeItem2 *item); -static void gtk_real_tree_item2_collapse (GtkTreeItem2 *item); -static void gtk_real_tree_item2_expand (GtkTreeItem2 *item); -static void gtk_real_tree_item2_collapse (GtkTreeItem2 *item); -static void gtk_tree_item2_destroy (GtkObject *object); -static void gtk_tree_item2_subtree_button_click (GtkWidget *widget); -static void gtk_tree_item2_subtree_button_changed_state (GtkWidget *widget); - -static void gtk_tree_item2_map(GtkWidget*); -static void gtk_tree_item2_unmap(GtkWidget*); - -static void gtk_tree_item2_add_pixmaps (GtkTreeItem2 *tree_item); -static void gtk_tree_item2_remove_pixmaps (GtkTreeItem2 *tree_item); - -static GtkItemClass *parent_class = NULL; -static guint tree_item_signals[LAST_SIGNAL] = { 0 }; - -GtkType -gtk_tree_item2_get_type (void) -{ - static GtkType tree_item_type = 0; - - if (!tree_item_type) - { - static const GtkTypeInfo tree_item_info = - { - "GtkTreeItem", - sizeof (GtkTreeItem2), - sizeof (GtkTreeItem2Class), - (GtkClassInitFunc) gtk_tree_item2_class_init, - (GtkObjectInitFunc) gtk_tree_item2_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - tree_item_type = gtk_type_unique (gtk_item_get_type (), &tree_item_info); - } - - return tree_item_type; -} - -static void -gtk_tree_item2_class_init (GtkTreeItem2Class *class) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - GtkItemClass *item_class; - - object_class = (GtkObjectClass*) class; - widget_class = (GtkWidgetClass*) class; - item_class = (GtkItemClass*) class; - container_class = (GtkContainerClass*) class; - - parent_class = gtk_type_class (gtk_item_get_type ()); - - tree_item_signals[EXPAND_TREE] = - gtk_signal_new ("expand", - GTK_RUN_FIRST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkTreeItem2Class, expand), - gtk_marshal_NONE__NONE, - GTK_TYPE_NONE, 0); - tree_item_signals[COLLAPSE_TREE] = - gtk_signal_new ("collapse", - GTK_RUN_FIRST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkTreeItem2Class, collapse), - gtk_marshal_NONE__NONE, - GTK_TYPE_NONE, 0); - - gtk_object_class_add_signals (object_class, tree_item_signals, LAST_SIGNAL); - - object_class->destroy = gtk_tree_item2_destroy; - - widget_class->realize = gtk_tree_item2_realize; - widget_class->size_request = gtk_tree_item2_size_request; - widget_class->size_allocate = gtk_tree_item2_size_allocate; - widget_class->draw = gtk_tree_item2_draw; - widget_class->draw_focus = gtk_tree_item2_draw_focus; - widget_class->button_press_event = gtk_tree_item2_button_press; - widget_class->expose_event = gtk_tree_item2_expose; - widget_class->focus_in_event = gtk_tree_item2_focus_in; - widget_class->focus_out_event = gtk_tree_item2_focus_out; - widget_class->map = gtk_tree_item2_map; - widget_class->unmap = gtk_tree_item2_unmap; - - container_class->forall = gtk_tree_item2_forall; - - item_class->select = gtk_real_tree_item2_select; - item_class->deselect = gtk_real_tree_item2_deselect; - item_class->toggle = gtk_real_tree_item2_toggle; - - class->expand = gtk_real_tree_item2_expand; - class->collapse = gtk_real_tree_item2_collapse; -} - -/* callback for event box mouse event */ -static void -gtk_tree_item2_subtree_button_click (GtkWidget *widget) -{ - GtkTreeItem2* item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_EVENT_BOX (widget)); - - item = (GtkTreeItem2*) gtk_object_get_user_data (GTK_OBJECT (widget)); - if (!GTK_WIDGET_IS_SENSITIVE (item)) - return; - - if (item->expanded) - gtk_tree_item2_collapse (item); - else - gtk_tree_item2_expand (item); -} - -/* callback for event box state changed */ -static void -gtk_tree_item2_subtree_button_changed_state (GtkWidget *widget) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_EVENT_BOX (widget)); - - if (GTK_WIDGET_VISIBLE (widget)) - { - - if (widget->state == GTK_STATE_NORMAL) - gdk_window_set_background (widget->window, &widget->style->base[widget->state]); - else - gdk_window_set_background (widget->window, &widget->style->bg[widget->state]); - - if (GTK_WIDGET_DRAWABLE (widget)) - gdk_window_clear_area (widget->window, 0, 0, - widget->allocation.width, widget->allocation.height); - } -} - -static void -gtk_tree_item2_init (GtkTreeItem2 *tree_item) -{ - GtkWidget *eventbox, *pixmapwid; - - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - tree_item->expanded = FALSE; - tree_item->subtree = NULL; - GTK_WIDGET_SET_FLAGS (tree_item, GTK_CAN_FOCUS); - - /* create an event box containing one pixmaps */ - eventbox = gtk_event_box_new(); - gtk_widget_set_events (eventbox, GDK_BUTTON_PRESS_MASK); - gtk_signal_connect(GTK_OBJECT(eventbox), "state_changed", - (GtkSignalFunc)gtk_tree_item2_subtree_button_changed_state, - (gpointer)NULL); - gtk_signal_connect(GTK_OBJECT(eventbox), "realize", - (GtkSignalFunc)gtk_tree_item2_subtree_button_changed_state, - (gpointer)NULL); -/* HF inutile - gtk_signal_connect(GTK_OBJECT(eventbox), "button_press_event", - (GtkSignalFunc)gtk_tree_item2_subtree_button_click, - (gpointer)NULL); -*/ - gtk_object_set_user_data(GTK_OBJECT(eventbox), tree_item); - tree_item->pixmaps_box = eventbox; - - /* create pixmap for button '+' */ - pixmapwid = gtk_type_new (gtk_pixmap_get_type ()); - if (!tree_item->expanded) - gtk_container_add (GTK_CONTAINER (eventbox), pixmapwid); - gtk_widget_show (pixmapwid); - tree_item->plus_pix_widget = pixmapwid; - gtk_widget_ref (tree_item->plus_pix_widget); - gtk_object_sink (GTK_OBJECT (tree_item->plus_pix_widget)); - - /* create pixmap for button '-' */ - pixmapwid = gtk_type_new (gtk_pixmap_get_type ()); - if (tree_item->expanded) - gtk_container_add (GTK_CONTAINER (eventbox), pixmapwid); - gtk_widget_show (pixmapwid); - tree_item->minus_pix_widget = pixmapwid; - gtk_widget_ref (tree_item->minus_pix_widget); - gtk_object_sink (GTK_OBJECT (tree_item->minus_pix_widget)); - - gtk_widget_set_parent (eventbox, GTK_WIDGET (tree_item)); -} - - -GtkWidget* -gtk_tree_item2_new (void) -{ - GtkWidget *tree_item; - - tree_item = GTK_WIDGET (gtk_type_new (gtk_tree_item2_get_type ())); - - return tree_item; -} - -GtkWidget* -gtk_tree_item2_new_with_label (gchar *label) -{ - GtkWidget *tree_item; - GtkWidget *label_widget; - - tree_item = gtk_tree_item2_new (); - label_widget = gtk_label_new (label); - gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5); - - gtk_container_add (GTK_CONTAINER (tree_item), label_widget); - gtk_widget_show (label_widget); - - - return tree_item; -} - -void -gtk_tree_item2_set_subtree (GtkTreeItem2 *tree_item, - GtkWidget *subtree) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - g_return_if_fail (subtree != NULL); - g_return_if_fail (GTK_IS_TREE2 (subtree)); - - if (tree_item->subtree) - { - g_warning("there is already a subtree for this tree item\n"); - return; - } - - tree_item->subtree = subtree; - GTK_TREE2 (subtree)->tree_owner = GTK_WIDGET (tree_item); - - /* show subtree button */ - if (tree_item->pixmaps_box) - gtk_widget_show (tree_item->pixmaps_box); - - if (tree_item->expanded) - gtk_widget_show (subtree); - else - gtk_widget_hide (subtree); - - gtk_widget_set_parent (subtree, GTK_WIDGET (tree_item)->parent); - - if (GTK_WIDGET_REALIZED (subtree->parent)) - gtk_widget_realize (subtree); - - if (GTK_WIDGET_VISIBLE (subtree->parent) && GTK_WIDGET_VISIBLE (subtree)) - { - if (GTK_WIDGET_MAPPED (subtree->parent)) - gtk_widget_map (subtree); - - gtk_widget_queue_resize (subtree); - } -} - -void -gtk_tree_item2_select (GtkTreeItem2 *tree_item) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_item_select (GTK_ITEM (tree_item)); -} - -void -gtk_tree_item2_deselect (GtkTreeItem2 *tree_item) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_item_deselect (GTK_ITEM (tree_item)); -} - -void -gtk_tree_item2_expand (GtkTreeItem2 *tree_item) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_signal_emit (GTK_OBJECT (tree_item), tree_item_signals[EXPAND_TREE], NULL); -} - -void -gtk_tree_item2_collapse (GtkTreeItem2 *tree_item) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - gtk_signal_emit (GTK_OBJECT (tree_item), tree_item_signals[COLLAPSE_TREE], NULL); -} - -static void -gtk_tree_item2_add_pixmaps (GtkTreeItem2 *tree_item) -{ - GList *tmp_list; - GdkColormap *colormap; - GtkTree2Pixmaps *pixmap_node = NULL; - - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - if (tree_item->pixmaps) - return; - - colormap = gtk_widget_get_colormap (GTK_WIDGET (tree_item)); - - tmp_list = pixmaps; - while (tmp_list) - { - pixmap_node = (GtkTree2Pixmaps *)tmp_list->data; - - if (pixmap_node->colormap == colormap) - break; - - tmp_list = tmp_list->next; - } - - if (tmp_list) - { - pixmap_node->refcount++; - tree_item->pixmaps = tmp_list; - } - else - { - pixmap_node = g_new (GtkTree2Pixmaps, 1); - - pixmap_node->colormap = colormap; - gdk_colormap_ref (colormap); - - pixmap_node->refcount = 1; - - /* create pixmaps for plus icon */ - pixmap_node->pixmap_plus = - gdk_pixmap_create_from_xpm_d (GTK_WIDGET (tree_item)->window, - &pixmap_node->mask_plus, - NULL, - tree_plus); - - /* create pixmaps for minus icon */ - pixmap_node->pixmap_minus = - gdk_pixmap_create_from_xpm_d (GTK_WIDGET (tree_item)->window, - &pixmap_node->mask_minus, - NULL, - tree_minus); - - tree_item->pixmaps = pixmaps = g_list_prepend (pixmaps, pixmap_node); - } - - gtk_pixmap_set (GTK_PIXMAP (tree_item->plus_pix_widget), - pixmap_node->pixmap_plus, pixmap_node->mask_plus); - gtk_pixmap_set (GTK_PIXMAP (tree_item->minus_pix_widget), - pixmap_node->pixmap_minus, pixmap_node->mask_minus); -} - -static void -gtk_tree_item2_remove_pixmaps (GtkTreeItem2 *tree_item) -{ - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - if (tree_item->pixmaps) - { - GtkTree2Pixmaps *pixmap_node = (GtkTree2Pixmaps *)tree_item->pixmaps->data; - - g_assert (pixmap_node->refcount > 0); - - if (--pixmap_node->refcount == 0) - { - gdk_colormap_unref (pixmap_node->colormap); - gdk_pixmap_unref (pixmap_node->pixmap_plus); - gdk_bitmap_unref (pixmap_node->mask_plus); - gdk_pixmap_unref (pixmap_node->pixmap_minus); - gdk_bitmap_unref (pixmap_node->mask_minus); - - pixmaps = g_list_remove_link (pixmaps, tree_item->pixmaps); - g_list_free_1 (tree_item->pixmaps); - g_free (pixmap_node); - } - - tree_item->pixmaps = NULL; - } -} - -static void -gtk_tree_item2_realize (GtkWidget *widget) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - - if (GTK_WIDGET_CLASS (parent_class)->realize) - (* GTK_WIDGET_CLASS (parent_class)->realize) (widget); - - gdk_window_set_background (widget->window, - &widget->style->base[GTK_STATE_NORMAL]); - - gtk_tree_item2_add_pixmaps (GTK_TREE_ITEM2 (widget)); -} - -static void -gtk_tree_item2_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GtkBin *bin; - GtkTreeItem2* item; - GtkRequisition child_requisition; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - g_return_if_fail (requisition != NULL); - - bin = GTK_BIN (widget); - item = GTK_TREE_ITEM2(widget); - - requisition->width = (GTK_CONTAINER (widget)->border_width + - widget->style->klass->xthickness) * 2; - requisition->height = GTK_CONTAINER (widget)->border_width * 2; - - if (bin->child && GTK_WIDGET_VISIBLE (bin->child)) - { - GtkRequisition pix_requisition; - - gtk_widget_size_request (bin->child, &child_requisition); - - requisition->width += child_requisition.width; - - gtk_widget_size_request (item->pixmaps_box, - &pix_requisition); - requisition->width += pix_requisition.width + DEFAULT_DELTA + - GTK_TREE2 (widget->parent)->current_indent; - - requisition->height += MAX (child_requisition.height, - pix_requisition.height); - } -} - -static void -gtk_tree_item2_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkBin *bin; - GtkTreeItem2* item; - GtkAllocation child_allocation; - guint border_width; - int temp; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - g_return_if_fail (allocation != NULL); - - widget->allocation = *allocation; - if (GTK_WIDGET_REALIZED (widget)) - gdk_window_move_resize (widget->window, - allocation->x, allocation->y, - allocation->width, allocation->height); - - bin = GTK_BIN (widget); - item = GTK_TREE_ITEM2(widget); - - if (bin->child) - { - border_width = (GTK_CONTAINER (widget)->border_width + - widget->style->klass->xthickness); - - child_allocation.x = border_width + GTK_TREE2(widget->parent)->current_indent; - child_allocation.y = GTK_CONTAINER (widget)->border_width; - - child_allocation.width = item->pixmaps_box->requisition.width; - child_allocation.height = item->pixmaps_box->requisition.height; - - temp = allocation->height - child_allocation.height; - child_allocation.y += ( temp / 2 ) + ( temp % 2 ); - - gtk_widget_size_allocate (item->pixmaps_box, &child_allocation); - - child_allocation.y = GTK_CONTAINER (widget)->border_width; - child_allocation.height = MAX (1, (gint)allocation->height - child_allocation.y * 2); - child_allocation.x += item->pixmaps_box->requisition.width+DEFAULT_DELTA; - - child_allocation.width = - MAX (1, (gint)allocation->width - ((gint)child_allocation.x + border_width)); - - gtk_widget_size_allocate (bin->child, &child_allocation); - } -} - -static void -gtk_tree_item2_draw_lines (GtkWidget *widget) -{ - GtkTreeItem2* item; - GtkTree2* tree; - guint lx1, ly1, lx2, ly2; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - - item = GTK_TREE_ITEM2(widget); - tree = GTK_TREE2(widget->parent); - - /* draw vertical line */ - lx1 = item->pixmaps_box->allocation.width; - lx1 = lx2 = ((lx1 / 2) + (lx1 % 2) + - GTK_CONTAINER (widget)->border_width + 1 + tree->current_indent); - ly1 = 0; - ly2 = widget->allocation.height; - - if (g_list_last (tree->children)->data == widget) - ly2 = (ly2 / 2) + (ly2 % 2); - - if (tree != tree->root_tree) - gdk_draw_line (widget->window, widget->style->black_gc, lx1, ly1, lx2, ly2); - - /* draw vertical line for subtree connecting */ - if(g_list_last(tree->children)->data != (gpointer)widget) - ly2 = (ly2 / 2) + (ly2 % 2); - - lx2 += DEFAULT_DELTA; - - if (item->subtree && item->expanded) - gdk_draw_line (widget->window, widget->style->black_gc, - lx2, ly2, lx2, widget->allocation.height); - - /* draw horizontal line */ - ly1 = ly2; - lx2 += 2; - - gdk_draw_line (widget->window, widget->style->black_gc, - lx1, ly1, lx2, ly2); - - lx2 -= DEFAULT_DELTA+2; - ly1 = 0; - ly2 = widget->allocation.height; - - if (tree != tree->root_tree) - { - item = GTK_TREE_ITEM2 (tree->tree_owner); - tree = GTK_TREE2 (GTK_WIDGET (tree)->parent); - while (tree != tree->root_tree) - { - lx1 = lx2 -= tree->indent_value; - - if (g_list_last (tree->children)->data != item) - gdk_draw_line (widget->window, widget->style->black_gc, lx1, ly1, lx2, ly2); - item = GTK_TREE_ITEM2 (tree->tree_owner); - tree = GTK_TREE2 (GTK_WIDGET (tree)->parent); - } - } -} - -static void -gtk_tree_item2_paint (GtkWidget *widget, - GdkRectangle *area) -{ - GtkBin *bin; - GdkRectangle child_area, item_area; - GtkTreeItem2* tree_item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - g_return_if_fail (area != NULL); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - bin = GTK_BIN (widget); - tree_item = GTK_TREE_ITEM2(widget); - - if (widget->state == GTK_STATE_NORMAL) - { - gdk_window_set_back_pixmap (widget->window, NULL, TRUE); - gdk_window_clear_area (widget->window, area->x, area->y, area->width, area->height); - } - else - { - if (!GTK_WIDGET_IS_SENSITIVE (widget)) - gtk_paint_flat_box(widget->style, widget->window, - widget->state, GTK_STATE_INSENSITIVE, - area, widget, "treeitem", - 0, 0, -1, -1); - else - gtk_paint_flat_box(widget->style, widget->window, - widget->state, GTK_SHADOW_ETCHED_OUT, - area, widget, "treeitem", - 0, 0, -1, -1); - } - - /* draw left size of tree item */ - item_area.x = 0; - item_area.y = 0; - item_area.width = (tree_item->pixmaps_box->allocation.width + DEFAULT_DELTA + - GTK_TREE2 (widget->parent)->current_indent + 2); - item_area.height = widget->allocation.height; - - - if (gdk_rectangle_intersect(&item_area, area, &child_area)) - { - - gtk_tree_item2_draw_lines(widget); - - if (tree_item->pixmaps_box && - GTK_WIDGET_VISIBLE(tree_item->pixmaps_box) && - gtk_widget_intersect (tree_item->pixmaps_box, area, &child_area)) - gtk_widget_draw (tree_item->pixmaps_box, &child_area); - } - - if (GTK_WIDGET_HAS_FOCUS (widget)) - gtk_paint_focus (widget->style, widget->window, - NULL, widget, "treeitem", - 0, 0, - widget->allocation.width - 1, - widget->allocation.height - 1); - - } -} - -static void -gtk_tree_item2_draw (GtkWidget *widget, - GdkRectangle *area) -{ - GtkBin *bin; - GdkRectangle child_area; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - g_return_if_fail (area != NULL); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - bin = GTK_BIN (widget); - - gtk_tree_item2_paint (widget, area); - - if (bin->child && - gtk_widget_intersect (bin->child, area, &child_area)) - gtk_widget_draw (bin->child, &child_area); - - } -} - -static void -gtk_tree_item2_draw_focus (GtkWidget *widget) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - - gtk_widget_draw(widget, NULL); -} - -static gint -gtk_tree_item2_button_press (GtkWidget *widget, - GdkEventButton *event) -{ -/* HF - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (event->type == GDK_BUTTON_PRESS - && GTK_WIDGET_IS_SENSITIVE(widget) - && !GTK_WIDGET_HAS_FOCUS (widget)) - gtk_widget_grab_focus (widget); - - return FALSE; - -*/ -} - -static gint -gtk_tree_item2_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - GdkEventExpose child_event; - GtkBin *bin; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - bin = GTK_BIN (widget); - - gtk_tree_item2_paint (widget, &event->area); - - child_event = *event; - if (bin->child && GTK_WIDGET_NO_WINDOW (bin->child) && - gtk_widget_intersect (bin->child, &event->area, &child_event.area)) - gtk_widget_event (bin->child, (GdkEvent*) &child_event); - } - - return FALSE; -} - -static gint -gtk_tree_item2_focus_in (GtkWidget *widget, - GdkEventFocus *event) -{ - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS); - gtk_widget_draw_focus (widget); - - - return FALSE; -} - -static gint -gtk_tree_item2_focus_out (GtkWidget *widget, - GdkEventFocus *event) -{ - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS); - gtk_widget_draw_focus (widget); - - - return FALSE; -} - -static void -gtk_real_tree_item2_select (GtkItem *item) -{ - GtkTreeItem2 *tree_item; - GtkWidget *widget; - - g_return_if_fail (item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (item)); - - tree_item = GTK_TREE_ITEM2 (item); - widget = GTK_WIDGET (item); - - gtk_widget_set_state (GTK_WIDGET (item), GTK_STATE_SELECTED); - - if (!widget->parent || GTK_TREE2 (widget->parent)->view_mode == GTK_TREE2_VIEW_LINE) - gtk_widget_set_state (GTK_TREE_ITEM2 (item)->pixmaps_box, GTK_STATE_SELECTED); -} - -static void -gtk_real_tree_item2_deselect (GtkItem *item) -{ - GtkTreeItem2 *tree_item; - GtkWidget *widget; - - g_return_if_fail (item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (item)); - - tree_item = GTK_TREE_ITEM2 (item); - widget = GTK_WIDGET (item); - - gtk_widget_set_state (widget, GTK_STATE_NORMAL); - - if (!widget->parent || GTK_TREE2 (widget->parent)->view_mode == GTK_TREE2_VIEW_LINE) - gtk_widget_set_state (tree_item->pixmaps_box, GTK_STATE_NORMAL); -} - -static void -gtk_real_tree_item2_toggle (GtkItem *item) -{ - g_return_if_fail (item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (item)); - - if(!GTK_WIDGET_IS_SENSITIVE(item)) - return; - - if (GTK_WIDGET (item)->parent && GTK_IS_TREE2 (GTK_WIDGET (item)->parent)) - gtk_tree2_select_child (GTK_TREE2 (GTK_WIDGET (item)->parent), - GTK_WIDGET (item)); - else - { - /* Should we really bother with this bit? A listitem not in a list? - * -Johannes Keukelaar - * yes, always be on the safe side! - * -timj - */ - if (GTK_WIDGET (item)->state == GTK_STATE_SELECTED) - gtk_widget_set_state (GTK_WIDGET (item), GTK_STATE_NORMAL); - else - gtk_widget_set_state (GTK_WIDGET (item), GTK_STATE_SELECTED); - } -} - -static void -gtk_real_tree_item2_expand (GtkTreeItem2 *tree_item) -{ - GtkTree2* tree; - - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - if (tree_item->subtree && !tree_item->expanded) - { - tree = GTK_TREE2 (GTK_WIDGET (tree_item)->parent); - - /* hide subtree widget */ - gtk_widget_show (tree_item->subtree); - - /* hide button '+' and show button '-' */ - if (tree_item->pixmaps_box) - { - gtk_container_remove (GTK_CONTAINER (tree_item->pixmaps_box), - tree_item->plus_pix_widget); - gtk_container_add (GTK_CONTAINER (tree_item->pixmaps_box), - tree_item->minus_pix_widget); - } - if (tree->root_tree) - gtk_widget_queue_resize (GTK_WIDGET (tree->root_tree)); - tree_item->expanded = TRUE; - } -} - -static void -gtk_real_tree_item2_collapse (GtkTreeItem2 *tree_item) -{ - GtkTree2* tree; - - g_return_if_fail (tree_item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item)); - - if (tree_item->subtree && tree_item->expanded) - { - tree = GTK_TREE2 (GTK_WIDGET (tree_item)->parent); - - /* hide subtree widget */ - gtk_widget_hide (tree_item->subtree); - - /* hide button '-' and show button '+' */ - if (tree_item->pixmaps_box) - { - gtk_container_remove (GTK_CONTAINER (tree_item->pixmaps_box), - tree_item->minus_pix_widget); - gtk_container_add (GTK_CONTAINER (tree_item->pixmaps_box), - tree_item->plus_pix_widget); - } - if (tree->root_tree) - gtk_widget_queue_resize (GTK_WIDGET (tree->root_tree)); - tree_item->expanded = FALSE; - } -} - -static void -gtk_tree_item2_destroy (GtkObject *object) -{ - GtkTreeItem2* item; - GtkWidget* child; - - g_return_if_fail (object != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (object)); - -#ifdef TREE_DEBUG - g_message("+ gtk_tree_item2_destroy [object %#x]\n", (int)object); -#endif /* TREE_DEBUG */ - - item = GTK_TREE_ITEM2(object); - - /* free sub tree if it exist */ - child = item->subtree; - if (child) - { - gtk_widget_ref (child); - gtk_widget_unparent (child); - gtk_widget_destroy (child); - gtk_widget_unref (child); - item->subtree = NULL; - } - - /* free pixmaps box */ - child = item->pixmaps_box; - if (child) - { - gtk_widget_ref (child); - gtk_widget_unparent (child); - gtk_widget_destroy (child); - gtk_widget_unref (child); - item->pixmaps_box = NULL; - } - - - /* destroy plus pixmap */ - if (item->plus_pix_widget) - { - gtk_widget_destroy (item->plus_pix_widget); - gtk_widget_unref (item->plus_pix_widget); - item->plus_pix_widget = NULL; - } - - /* destroy minus pixmap */ - if (item->minus_pix_widget) - { - gtk_widget_destroy (item->minus_pix_widget); - gtk_widget_unref (item->minus_pix_widget); - item->minus_pix_widget = NULL; - } - - /* By removing the pixmaps here, and not in unrealize, we depend on - * the fact that a widget can never change colormap or visual. - */ - gtk_tree_item2_remove_pixmaps (item); - - GTK_OBJECT_CLASS (parent_class)->destroy (object); - -#ifdef TREE_DEBUG - g_message("- gtk_tree_item2_destroy\n"); -#endif /* TREE_DEBUG */ -} - -void -gtk_tree_item2_remove_subtree (GtkTreeItem2* item) -{ - g_return_if_fail (item != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2(item)); - g_return_if_fail (item->subtree != NULL); - - if (GTK_TREE2 (item->subtree)->children) - { - /* The following call will remove the children and call - * gtk_tree_item2_remove_subtree() again. So we are done. - */ - gtk_tree2_remove_items (GTK_TREE2 (item->subtree), - GTK_TREE2 (item->subtree)->children); - return; - } - - if (GTK_WIDGET_MAPPED (item->subtree)) - gtk_widget_unmap (item->subtree); - - gtk_widget_unparent (item->subtree); - - if (item->pixmaps_box) - gtk_widget_hide (item->pixmaps_box); - - item->subtree = NULL; - - if (item->expanded) - { - item->expanded = FALSE; - if (item->pixmaps_box) - { - gtk_container_remove (GTK_CONTAINER (item->pixmaps_box), - item->minus_pix_widget); - gtk_container_add (GTK_CONTAINER (item->pixmaps_box), - item->plus_pix_widget); - } - } -} - -static void -gtk_tree_item2_map (GtkWidget *widget) -{ - GtkBin *bin; - GtkTreeItem2* item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - - bin = GTK_BIN (widget); - item = GTK_TREE_ITEM2(widget); - - GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED); - - if(item->pixmaps_box && - GTK_WIDGET_VISIBLE (item->pixmaps_box) && - !GTK_WIDGET_MAPPED (item->pixmaps_box)) - gtk_widget_map (item->pixmaps_box); - - if (bin->child && - GTK_WIDGET_VISIBLE (bin->child) && - !GTK_WIDGET_MAPPED (bin->child)) - gtk_widget_map (bin->child); - - gdk_window_show (widget->window); -} - -static void -gtk_tree_item2_unmap (GtkWidget *widget) -{ - GtkBin *bin; - GtkTreeItem2* item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (widget)); - - GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED); - bin = GTK_BIN (widget); - item = GTK_TREE_ITEM2(widget); - - gdk_window_hide (widget->window); - - if(item->pixmaps_box && - GTK_WIDGET_VISIBLE (item->pixmaps_box) && - GTK_WIDGET_MAPPED (item->pixmaps_box)) - gtk_widget_unmap (bin->child); - - if (bin->child && - GTK_WIDGET_VISIBLE (bin->child) && - GTK_WIDGET_MAPPED (bin->child)) - gtk_widget_unmap (bin->child); -} - -static void -gtk_tree_item2_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - GtkBin *bin; - GtkTreeItem2 *tree_item; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_TREE_ITEM2 (container)); - g_return_if_fail (callback != NULL); - - bin = GTK_BIN (container); - tree_item = GTK_TREE_ITEM2 (container); - - if (bin->child) - (* callback) (bin->child, callback_data); -/* if (include_internals && tree_item->subtree) - (* callback) (tree_item->subtree, callback_data); */ -} diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktreeitem2.h b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktreeitem2.h deleted file mode 100644 index bbbb364ad..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/gtktreeitem2.h +++ /dev/null @@ -1,91 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __GTK_TREE_ITEM2_H__ -#define __GTK_TREE_ITEM2_H__ - - -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -#define GTK_TYPE_TREE_ITEM2 (gtk_tree_item2_get_type ()) -#define GTK_TREE_ITEM2(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_TREE_ITEM2, GtkTreeItem2)) -#define GTK_TREE_ITEM2_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_ITEM2, GtkTreeItem2Class)) -#define GTK_IS_TREE_ITEM2(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_TREE_ITEM2)) -#define GTK_IS_TREE_ITEM2_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_ITEM2)) - -#define GTK_TREE_ITEM2_SUBTREE(obj) (GTK_TREE_ITEM2(obj)->subtree) - - -typedef struct _GtkTreeItem2 GtkTreeItem2; -typedef struct _GtkTreeItem2Class GtkTreeItem2Class; - -struct _GtkTreeItem2 -{ - GtkItem item; - - GtkWidget *subtree; - GtkWidget *pixmaps_box; - GtkWidget *plus_pix_widget, *minus_pix_widget; - - GList *pixmaps; /* pixmap node for this items color depth */ - - guint expanded : 1; -}; - -struct _GtkTreeItem2Class -{ - GtkItemClass parent_class; - - void (* expand) (GtkTreeItem2 *tree_item); - void (* collapse) (GtkTreeItem2 *tree_item); -}; - - -GtkType gtk_tree_item2_get_type (void); -GtkWidget* gtk_tree_item2_new (void); -GtkWidget* gtk_tree_item2_new_with_label (gchar *label); -void gtk_tree_item2_set_subtree (GtkTreeItem2 *tree_item, - GtkWidget *subtree); -void gtk_tree_item2_remove_subtree (GtkTreeItem2 *tree_item); -void gtk_tree_item2_select (GtkTreeItem2 *tree_item); -void gtk_tree_item2_deselect (GtkTreeItem2 *tree_item); -void gtk_tree_item2_expand (GtkTreeItem2 *tree_item); -void gtk_tree_item2_collapse (GtkTreeItem2 *tree_item); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif /* __GTK_TREE_ITEM2_H__ */ diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/handlebox.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/handlebox.xpm deleted file mode 100644 index e4d792cbb..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/handlebox.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char *handlebox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 7 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray87", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@++++++++++++++++++ @", -"@+OOOO.XXXXXXXXXXX. @", -"@++OOO.XXXXXXXXXXX. @", -"@+O.+O.XXXXXXXXXXX. @", -"@+OOO..XXXXXXXXXXX. @", -"@++OOO.XXXXXXXXXXX. @", -"@+O.+O.XXXXXXXXXXX. @", -"@+OOO..XXXXXXXXXXX. @", -"@++OOO.XXXXXXXXXXX. @", -"@+O.+O.XXXXXXXXXXX. @", -"@+OOO..XXXXXXXXXXX. @", -"@+................. @", -"@ @", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hbox.xpm deleted file mode 100644 index 7363317b6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hbox.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *hbox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 4 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c Gray100", -/* pixels */ -"oooooo oooooo oooooo ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"oXXXX. oXXXX. oXXXX. ", -"o..... o..... o..... ", -" " -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hbuttonbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hbuttonbox.xpm deleted file mode 100644 index 77d73dc46..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hbuttonbox.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *hbuttonbox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+OOOOO +OOOOO +OOOOO ", -"+OXXX. +OXXX. +OXXX. ", -"+OXXX. +OXXX. +OXXX. ", -"+O.... +O.... +O.... ", -"+ + + ", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hseparator.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hseparator.xpm deleted file mode 100644 index 41ad8aafc..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/hseparator.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *hseparator_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 4 1", -" c #7b7b7b", -". c #b3cece", -"X c Gray100", -"o c None", -/* pixels */ -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"o o", -"oXXXXXXXXXXXXXXXXXXXo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo", -"ooooooooooooooooooooo" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/label.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/label.xpm deleted file mode 100644 index 013e13a96..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/label.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char *label_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 3 1", -" c Gray0", -". c #b3cece", -"X c None", -/* pixels */ -"XXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXX XXXXXXXXX", -"XXXXXXXXX XXXXXXXXX", -"XXXXXXXXX XXXXXXXXX", -"XXXXXXXX XXXXXXXX", -"XXXXXXXX XXXXXXXX", -"XXXXXXXX XXXXXXX", -"XXXXXXX X XXXXXXX", -"XXXXXXX X XXXXXX", -"XXXXXX XX XXXXXX", -"XXXXXX XXXXX", -"XXXXX XXXXX", -"XXXXX XXXXX XXXXX", -"XXXX XXXXX XXXX", -"XXX XXXXX XXX", -"XXX XXX XXX", -"XXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXXXXXXX" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/load_lexer.mll b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/load_lexer.mll deleted file mode 100644 index 46aa5acc2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/load_lexer.mll +++ /dev/null @@ -1,46 +0,0 @@ -{ -open Load_parser -} - -rule token = parse - [ ' ' '\t' '\n']+ { token lexbuf } -| "" { WINDOW_END } -| "name" { NAME } -| '=' { EQUAL } -| '>' { SUP } - -| "<" ['A'-'Z' 'a'-'z' '0'-'9' '_']+ - { - let l = Lexing.lexeme lexbuf in - let s = String.sub l ~pos:1 ~len:(String.length l - 1) in - WIDGET_START s - } - -| "' - { - let l = Lexing.lexeme lexbuf in - let s = String.sub l ~pos:2 ~len:(String.length l - 3) in - WIDGET_END s - } - -| '"' [^ '"']* '"' - { - let l = Lexing.lexeme lexbuf in - let s = String.sub l ~pos:1 ~len:(String.length l - 2) in - IDENT s - } - -| '\'' [^ '\'']* '\'' - { - let l = Lexing.lexeme lexbuf in - let s = String.sub l ~pos:1 ~len:(String.length l - 2) in - IDENT s - } - -| ['A'-'Z' 'a'-'z' '0'-'9' '_' '.']+ - { - let s = Lexing.lexeme lexbuf in IDENT s - } - -| eof { EOF } diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/load_parser.mly b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/load_parser.mly deleted file mode 100644 index 09c7b7bf7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/load_parser.mly +++ /dev/null @@ -1,56 +0,0 @@ -%{ -open Utils -%} - -%token EOF NAME EQUAL SUP WINDOW_START WINDOW_END -%token WIDGET_START WIDGET_END IDENT - -%type window_start -%type property widget_start -%type <(string * string) list> property_list -%type widget window -%type children window_list project - -%start project -%start window -%start widget - -%% - -project : window_list EOF { List.rev $1 } - -window_list : { [] } - | window_list window { $2 :: $1 } -; - -window : window_start property_list children WINDOW_END - { - Node (("window", $1, List.rev $2), $3) - } -; - -window_start : WINDOW_START NAME EQUAL IDENT SUP { $4 } -; - -children : { [] } - | children widget { $2 :: $1 } -; - -widget : widget_start property_list children WIDGET_END - { - let classe, name = $1 in - if classe <> $4 then raise Parsing.Parse_error; - Node ((classe, name, List.rev $2), $3) - } -; - -widget_start : WIDGET_START NAME EQUAL IDENT SUP { $1, $4 } -; - -property_list : { [] } - | property_list property { $2 :: $1 } -; - -property : IDENT EQUAL IDENT { $1, $3 } -; - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/main.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/main.ml deleted file mode 100644 index cb150e086..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/main.ml +++ /dev/null @@ -1,393 +0,0 @@ -(* $Id$ *) - -open GdkKeysyms -open Gtk -open GObj - -open Utils -open TiBase - -let main_project_modify = ref false - -let main_window = GWindow.window ~title:"ZOOM" ~x:10 ~y:10 () -let main_vbox = GPack.vbox ~packing:main_window#add () -let main_menu = GMenu.menu_bar ~packing:(main_vbox#pack ~expand:false) () - -let can_copy = ref (fun _ -> assert false) -let can_paste = ref (fun _ -> assert false) - -class project () = - let project_box = GPack.vbox ~packing:main_vbox#pack () in - let project_tree = GTree2.tree ~packing:project_box#pack () in - object(self) - val mutable window_list = [] - -(* the selected window *) - val mutable selected = (None : window_and_tree option) - - method change_selected sel = - match selected with - | None -> - selected <- Some sel; - sel#project_tree_item#misc#set_state `SELECTED; - !can_copy true - | Some old_sel -> - if sel = old_sel then begin - selected <- None; - sel#project_tree_item#misc#set_state `NORMAL; - !can_copy false - end else begin - old_sel#project_tree_item#misc#set_state `NORMAL; - selected <- Some sel; - sel#project_tree_item#misc#set_state `SELECTED; - !can_copy true - end - - val mutable filename = "" - val mutable dirname = "" - - method set_filename f = - let dir, file = split_filename f ~ext:".rad" in - filename <- file; - dirname <- dir - - method get_filename () = - get_filename ~callback:self#set_filename ~dir:dirname () - - method dirname = dirname - -(* method set_dirname f = dirname <- f *) - - method add_window ~name ?tree:wt () = - let wt = match wt with - | None -> new window_and_tree ~name - | Some wt -> wt in - let tiwin = wt#tiwin and tw=wt#tree_window in - let project_tree_item = wt#project_tree_item in - project_tree#append project_tree_item; - let show = ref true in - project_tree_item#event#connect#button_press ~callback: - (fun ev -> - match GdkEvent.get_type ev with - | `BUTTON_PRESS -> - if GdkEvent.Button.button ev = 1 then begin - self#change_selected wt - end else - if GdkEvent.Button.button ev = 3 then begin - let menu = GMenu.menu () in - let name = wt#tiwin#name in - let mi_remove = GMenu.menu_item ~label:("delete " ^ name) - ~packing:menu#append () - and mi_copy = GMenu.menu_item ~label:("copy " ^ name) - ~packing:menu#append () - and mi_cut = GMenu.menu_item ~label:("cut " ^ name) - ~packing:menu#append () in - mi_remove#connect#activate - ~callback:(fun () -> self#delete_window wt); - mi_copy#connect#activate - ~callback:(fun () -> self#copy_wt wt); - mi_cut#connect#activate - ~callback:(fun () -> self#cut_wt wt); - menu#popup ~button:3 ~time:(GdkEvent.Button.time ev) - end; - GtkSignal.stop_emit (); - true - | `TWO_BUTTON_PRESS -> - if GdkEvent.Button.button ev = 1 then begin - if !show then begin - show := false; - tiwin#widget#misc#hide (); - tw#misc#hide () - end - else begin - show := true; - tiwin#widget#misc#show (); - tw#misc#show () - end - end; - true - | _ -> false); - tiwin#connect_event#delete ~callback: - (fun _ -> show := false; tiwin#widget#misc#hide (); true); - tw#event#connect#delete ~callback: - (fun _ -> show := false; tw#misc#hide (); true); - window_list <- wt :: window_list; - add_undo (Remove_window name); - main_window#misc#set_can_focus false; - main_window#misc#grab_focus () - - - method add_window_by_node - (Node ((classe, name, proplist), children)) = - if classe <> "window" - then failwith "add_window_by_node: class <> \"window\""; - let name = change_name name in (* for paste *) - let wt = new window_and_tree ~name in - let tiwin = wt#tiwin in - List.iter proplist ~f:(fun (n,v) -> tiwin#set_property n v); - begin match children with - | [] -> () - | [ ch ] -> tiwin#add_children_wo_undo ch; () - | _ -> failwith "add_window_by_node: more than one child" - end; - self#add_window ~name ~tree:wt () - - method delete_window (wt : window_and_tree) = - let tiwin = wt#tiwin in - project_tree#remove wt#project_tree_item; - tiwin#remove_me (); - wt#tree_window#destroy (); - window_list <- list_remove ~f:(fun w -> w = wt) window_list - - method delete_window_by_name ~name = - let wt = List.find window_list ~f:(fun wt -> wt#tiwin#name = name) in - self#delete_window wt - - method delete () = - List.iter window_list - ~f:(fun wt -> self#delete_window wt); - main_vbox#remove project_box#coerce; -(* remove after test *) - if !name_list <> [] then failwith "name_list not empty" - - method save_as () = if self#get_filename () then self#save () - - method save () = - if filename = "" then self#save_as () - else begin - let outch = open_out (dirname ^ filename ^ ".rad") in - let f = Format.formatter_of_out_channel outch in - List.iter window_list ~f:(fun wt -> wt#tiwin#save f); - close_out outch; - main_project_modify := false - end - - method copy_wt (wt : window_and_tree) = - wt#tiwin#copy (); - !can_paste true - - method cut_wt (wt : window_and_tree) = - self#copy_wt wt; - self#delete_window wt - - method copy () = - match selected with - | None -> failwith "main_project copy" - | Some sel -> self#copy_wt sel - - method cut () = - match selected with - | None -> failwith "main_project cut" - | Some sel -> self#cut_wt sel - - method paste () = - let lexbuf = Lexing.from_string !window_selection in - let node = Load_parser.window Load_lexer.token lexbuf in - self#add_window_by_node node - - method emit () = - let outc = open_out (dirname ^ filename ^ ".ml") in - let f = Format.formatter_of_out_channel outc in - List.iter window_list ~f:(fun wt -> wt#emit f); - Format.fprintf f "let main () =@\n"; -(* this is just for demo *) - List.iter window_list ~f: - begin fun wt -> - let name = wt#tiwin#name in - Format.fprintf f " let %s = new %s () in %s#show ();@\n" - name name name - end; - Format.fprintf f - " GMain.Main.main ()@\n@\nlet _ = main ()@\n"; - close_out outc - - end - - -let main_project = ref (new project ()) - -let load () = - let filename = ref "" in - get_filename ~callback:(fun f -> filename := f) ~dir:!main_project#dirname (); - if !filename <> "" then begin - !main_project#delete (); - main_project := new project (); - let inch = open_in !filename in - let lexbuf = Lexing.from_channel inch in - let project_list = Load_parser.project Load_lexer.token lexbuf in - close_in inch; - List.iter project_list - ~f:(fun node -> !main_project#add_window_by_node node); - !main_project#set_filename !filename - end - - -let interpret_undo = function - | Add (parent_name, node, pos) -> - let parent = Hashtbl.find widget_map parent_name in - parent#add_children node ~pos - | Remove child_name -> - let child = Hashtbl.find widget_map child_name in - child#remove_me () - | Property (property, value_string) -> - property#set value_string - | Add_window node -> !main_project#add_window_by_node node - | Remove_window name -> !main_project#delete_window_by_name ~name - -let undo () = - if !last_action_was_undo then begin - match !next_undo_info with - | hd :: tl -> interpret_undo hd; next_undo_info := tl - | [] -> message "no more undo info" - end - else begin - match !undo_info with - | hd :: tl -> interpret_undo hd; next_undo_info := tl - | [] -> message "no undo info" - end; - last_action_was_undo := true - - -let targets = [ { target = "STRING"; flags = []; info = 0} ] - -let xpm_window () = - let source_drag_data_get classe _ (data : selection_data) ~info ~time = - data#set ~typ:data#target ~format:0 ~data:classe in - let window = GWindow.window ~title:"icons" ~x:250 ~y:10 () in - window#misc#realize (); - let vbox = GPack.vbox ~packing:window#add () in - let table = GPack.table ~rows:1 ~columns:5 ~border_width:20 - ~packing:vbox#pack () in - let tooltips = GData.tooltips () in - let add_xpm ~file ~left ~top ~tip = - let gdk_pix = GDraw.pixmap_from_xpm ~file ~window () in - let ev = GBin.event_box ~packing:(table#attach ~left ~top) () in - let pix = GMisc.pixmap gdk_pix ~packing:ev#add () in - ev#event#connect#button_press ~callback: - (fun ev -> match GdkEvent.get_type ev with - | `BUTTON_PRESS -> - if GdkEvent.Button.button ev = 1 then begin - !main_project#add_window ~name:(make_new_name "window") () - end; - true - | _ -> false); - tooltips#set_tip ev#coerce ~text:tip - in - add_xpm ~file:"window.xpm" ~left:0 ~top:0 ~tip:"window"; - GMisc.separator `HORIZONTAL ~packing:vbox#pack (); - let table = GPack.table ~rows:6 ~columns:6 ~packing:vbox#pack - ~row_spacings:20 ~col_spacings:20 ~border_width:20 () in - let add_xpm file ~left ~top ~classe = - let gdk_pix = GDraw.pixmap_from_xpm ~file ~window () in - let ev = GBin.event_box ~packing:(table#attach ~left ~top) () in - let pix = GMisc.pixmap gdk_pix ~packing:ev#add () in - ev#drag#source_set ~modi:[`BUTTON1] targets ~actions:[`COPY]; - ev#drag#source_set_icon ~colormap:window#misc#style#colormap - gdk_pix; - ev#drag#connect#data_get ~callback:(source_drag_data_get classe); - tooltips#set_tip ev#coerce ~text:classe - in - - add_xpm "button.xpm" ~left:0 ~top:0 ~classe:"button"; - add_xpm "togglebutton.xpm" ~left:1 ~top:0 ~classe:"toggle_button"; - add_xpm "checkbutton.xpm" ~left:2 ~top:0 ~classe:"check_button"; - add_xpm "radiobutton.xpm" ~left:3 ~top:0 ~classe:"radio_button"; - add_xpm "toolbar.xpm" ~left:4 ~top:0 ~classe:"toolbar"; - add_xpm "hbox.xpm" ~left:0 ~top:1 ~classe:"hbox"; - add_xpm "vbox.xpm" ~left:1 ~top:1 ~classe:"vbox"; - add_xpm "hbuttonbox.xpm" ~left:2 ~top:1 ~classe:"hbutton_box"; - add_xpm "vbuttonbox.xpm" ~left:3 ~top:1 ~classe:"vbutton_box"; - add_xpm "fixed.xpm" ~left:4 ~top:1 ~classe:"fixed"; - add_xpm "frame.xpm" ~left:0 ~top:2 ~classe:"frame"; - add_xpm "aspectframe.xpm" ~left:1 ~top:2 ~classe:"aspect_frame"; - add_xpm "scrolledwindow.xpm" ~left:2 ~top:2 ~classe:"scrolled_window"; - add_xpm "eventbox.xpm" ~left:3 ~top:2 ~classe:"event_box"; - add_xpm "handlebox.xpm" ~left:4 ~top:2 ~classe:"handle_box"; - add_xpm "viewport.xpm" ~left:5 ~top:2 ~classe:"viewport"; - add_xpm "hseparator.xpm" ~left:0 ~top:3 ~classe:"hseparator"; - add_xpm "vseparator.xpm" ~left:1 ~top:3 ~classe:"vseparator"; - add_xpm "clist.xpm" ~left:2 ~top:3 ~classe:"clist"; - add_xpm "label.xpm" ~left:0 ~top:4 ~classe:"label"; - add_xpm "statusbar.xpm" ~left:1 ~top:4 ~classe:"statusbar"; - add_xpm "notebook.xpm" ~left:2 ~top:4 ~classe:"notebook"; - add_xpm "colorselection.xpm" ~left:3 ~top:4 ~classe:"color_selection"; - add_xpm "pixmap.xpm" ~left:4 ~top:4 ~classe:"pixmap"; - add_xpm "entry.xpm" ~left:0 ~top:5 ~classe:"entry"; - add_xpm "spinbutton.xpm" ~left:1 ~top:5 ~classe:"spin_button"; - add_xpm "combo.xpm" ~left:2 ~top:5 ~classe:"combo"; - - window#show (); - window - - -let main () = - let _ = GMain.Main.init () in - let prop_win = Propwin.init () in - let palette = xpm_window () in - main_window#show (); - main_window#connect#destroy ~callback:GMain.Main.quit; - - let mp = main_project in - let f = new GMenu.factory main_menu in - let accel_group = f#accel_group in - main_window#add_accel_group accel_group; - prop_win#add_accel_group accel_group; - palette#add_accel_group accel_group; - - let file_menu = new GMenu.factory (f#add_submenu "File") ~accel_group - and edit_menu = new GMenu.factory (f#add_submenu "Edit") ~accel_group - and view_menu = new GMenu.factory (f#add_submenu "View") ~accel_group - and project_menu = new GMenu.factory (f#add_submenu "Project") ~accel_group - in - - file_menu#add_item "Quit" ~key:_Q ~callback:GMain.Main.quit; - - project_menu#add_item "New" ~key:_N - ~callback:(fun () -> !mp#delete (); mp := new project ()); - project_menu#add_item "Open..." ~key:_O ~callback:load; - project_menu#add_item "Save" ~key:_S ~callback:(fun () -> !mp#save ()); - project_menu#add_item "Save as..." ~callback:(fun () -> !mp#save_as ()); - project_menu#add_separator (); - project_menu#add_item "Emit code" ~callback:(fun () -> !mp#emit ()); - - let copy_item = - edit_menu#add_item "Copy" ~key:_C ~callback:(fun () -> !mp#copy ()) - and cut_item = - edit_menu#add_item "Cut" ~key:_X ~callback:(fun () -> !mp#cut ()) - and paste_item = - edit_menu#add_item "Paste" ~key:_V ~callback:(fun () -> !mp#paste ()) - in - can_copy := - (fun b -> copy_item#misc#set_sensitive b; cut_item#misc#set_sensitive b); - can_paste := paste_item#misc#set_sensitive; - !can_copy false; !can_paste false; - edit_menu#add_item "Undo" ~key:_Z ~callback:undo; - - let palette_visible = ref true in - palette#event#connect#delete ~callback: - (fun _ -> palette_visible := false; palette#misc#hide (); true); - view_menu#add_item "Palette" - ~callback:(fun () -> - if !palette_visible then begin - palette#misc#hide (); - palette_visible := false - end else begin - palette#misc#show (); - palette_visible := true - end); - let prop_win_visible = ref true in - prop_win#event#connect#delete ~callback: - (fun _ -> prop_win_visible := false; prop_win#misc#hide (); true); - view_menu#add_item "Properties window" - ~callback:(fun () -> - if !prop_win_visible then begin - prop_win#misc#hide (); - prop_win_visible := false - end else begin - prop_win#misc#show (); - prop_win_visible := true - end); - - GMain.Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/ml_gtk2.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/ml_gtk2.c deleted file mode 100644 index 49ce27bbe..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/ml_gtk2.c +++ /dev/null @@ -1,124 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include - -#include "../../wrappers.h" -#include "../../ml_glib.h" -#include "../../ml_gdk.h" -#include "../../ml_gtk.h" -#include "../../gtk_tags.h" - -#include "gtktree2.h" -#include "gtktreeitem2.h" - -#include - -value Val_GtkObject_sink (GtkObject *); - -#define Val_GtkAny(w) Val_GtkObject((GtkObject*)w) -#define Val_GtkAny_sink(w) Val_GtkObject_sink((GtkObject*)w) - -#define GtkWidget_val(val) check_cast(GTK_WIDGET,val) - -/* gtkwidget.h */ - - -#define Val_GtkWidget Val_GtkAny -#define Val_GtkWidget_sink Val_GtkAny_sink - - -/* gtktreeitem2.h */ - -#define GtkTreeItem2_val(val) check_cast(GTK_TREE_ITEM2,val) -ML_0 (gtk_tree_item2_new, Val_GtkWidget_sink) -ML_1 (gtk_tree_item2_new_with_label, String_val, Val_GtkWidget_sink) -ML_2 (gtk_tree_item2_set_subtree, GtkTreeItem2_val, GtkWidget_val, Unit) -ML_1 (gtk_tree_item2_remove_subtree, GtkTreeItem2_val, Unit) -ML_1 (gtk_tree_item2_expand, GtkTreeItem2_val, Unit) -ML_1 (gtk_tree_item2_collapse, GtkTreeItem2_val, Unit) -ML_1 (GTK_TREE_ITEM2_SUBTREE, GtkTreeItem2_val, Val_GtkWidget) - -/* gtktree2.h */ - -#define GtkTree2_val(val) check_cast(GTK_TREE2,val) -ML_0 (gtk_tree2_new, Val_GtkWidget_sink) -ML_3 (gtk_tree2_insert, GtkTree2_val, GtkWidget_val, Int_val, Unit) -ML_3 (gtk_tree2_clear_items, GtkTree2_val, Int_val, Int_val, Unit) -ML_2 (gtk_tree2_select_item, GtkTree2_val, Int_val, Unit) -ML_2 (gtk_tree2_unselect_item, GtkTree2_val, Int_val, Unit) -ML_2 (gtk_tree2_select_child, GtkTree2_val, GtkWidget_val, Unit) -ML_2 (gtk_tree2_unselect_child, GtkTree2_val, GtkWidget_val, Unit) -ML_2 (gtk_tree2_child_position, GtkTree2_val, GtkWidget_val, Val_int) - -/* -ML_2 (gtk_tree2_set_selection_mode, GtkTree2_val, Selection_mode_val, Unit) -ML_2 (gtk_tree2_set_view_mode, GtkTree2_val, Tree_view_mode_val, Unit) -*/ - -ML_2 (gtk_tree2_set_view_lines, GtkTree2_val, Bool_val, Unit) -ML_2 (gtk_tree2_item_up, GtkTree2_val, Int_val, Unit) -ML_3 (gtk_tree2_select_next_child, GtkTree2_val, GtkWidget_val, Bool_val, Unit) -ML_2 (gtk_tree2_select_prev_child, GtkTree2_val, GtkWidget_val, Unit) - -static value val_gtkany (gpointer p) { return Val_GtkAny(p); } -value ml_gtk_tree2_selection (value tree) -{ - GList *selection = GTK_TREE2_SELECTION(GtkTree2_val(tree)); - return Val_GList(selection, val_gtkany); -} -static gpointer gtkobject_val (value val) { return GtkObject_val(val); } -value ml_gtk_tree2_remove_items (value tree, value items) -{ - GList *items_list = GList_val (items, gtkobject_val); - gtk_tree2_remove_items (GtkTree2_val(tree), items_list); - return Val_unit; -} - -value ml_gtk_tree2_children (value tree) -{ - GList *children = (GtkTree2_val(tree))->children; - return Val_GList(children, val_gtkany); -} - - - -#define GtkToolbar_val(val) check_cast(GTK_TOOLBAR,val) -/* sets the text of the label of a button; creates the label - if necessary */ -value ml_gtk_toolbar2_set_text (value toolbar, value text, value pos) -{ - GtkToolbar *t = GtkToolbar_val(toolbar); - GtkToolbarChild *ch = (GtkToolbarChild *)g_list_nth_data (t->children, Int_val(pos)); - GtkWidget *label = ch->label; - - if (label) - gtk_label_set_text (GTK_LABEL(label), String_val(text)); - else { - label = ch->label = gtk_label_new (String_val(text)); - gtk_box_pack_end (GTK_BOX (GTK_BIN(ch->widget)->child), label, FALSE, FALSE, 0); - if (t->style != GTK_TOOLBAR_ICONS) - gtk_widget_show (label); - } - - return Val_unit; -} - -value ml_gtk_toolbar2_set_icon (value toolbar, value icon, value pos) -{ - GtkToolbar *t = GtkToolbar_val(toolbar); - GtkToolbarChild * ch = - (GtkToolbarChild *)g_list_nth_data (t->children, Int_val(pos)); - GtkWidget *vbox = GTK_BIN(ch->widget)->child; - gtk_container_remove (GTK_CONTAINER(vbox), ch->icon); - ch->icon = GtkWidget_val(icon); - gtk_box_pack_end (GTK_BOX (vbox), ch->icon, FALSE, FALSE, 0); - if (t->style != GTK_TOOLBAR_TEXT) - gtk_widget_show (ch->icon); - - return Val_unit; -} diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/notebook.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/notebook.xpm deleted file mode 100644 index 77ac20d6c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/notebook.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *notebook_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+OOOOOO.OOOO.OOOO.+++", -"+OXXXXX.X.X..X.X..+++", -"+OXXXXX..X.X..X.X.+++", -"+OXXXXX.X.X..X.X..+++", -"+OXXXXX.OOOOOOOOOOO +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+OXXXXXXXXXXXXXXXX. +", -"+O................. +", -"+ +", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/pixmap.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/pixmap.xpm deleted file mode 100644 index d76a5ec81..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/pixmap.xpm +++ /dev/null @@ -1,39 +0,0 @@ -/* XPM */ -static char *pixmap_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 12 1", -" c Gray0", -". c #007b00", -"X c #7b7b7b", -"o c Blue", -"O c Green", -"+ c Cyan", -"@ c Yellow", -"# c #d6d6d6", -"$ c #b3cece", -"% c Gray87", -"& c Gray100", -"* c None", -/* pixels */ -"*********************", -"*********************", -"*********************", -"* ", -"* +++++%%%&+++++++++ ", -"* +&&&++%%++&+++XX++ ", -"* +++++++%+++++X@@X+ ", -"* ++&&++++XX+++X@@X+ ", -"* +++++++ XXX&++XX++ ", -"* &+++++XXXXXX++++&+ ", -"* +++++ +++++ ", -"* +++++ ###### +++++ ", -"* +++++ #o##o# +++++ ", -"* ..... ###### ..... ", -"* OOOOO ##oo## OOOOO ", -"* OOOOO ##oo## OOOOO ", -"* OOOOO OOOOO ", -"* OOOOOOOOOOOOOOOOOO ", -"* ", -"*********************", -"*********************" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/property.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/property.ml deleted file mode 100644 index 829e40b7c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/property.ml +++ /dev/null @@ -1,175 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GEdit -open GData -open GPack -open GMisc -open GWindow - -open Common -open Utils - -(* external id : 'a -> 'a = "%identity" *) - -class virtual vprop ~name ~init ~set = - object (self) - val mutable s : string = init - val name : string = name - method private virtual parse : string -> 'a - method get = s - method set s' = - if s' <> s then begin - let v = self#parse s' in - if (set v) then begin - add_undo (Property ((self :> prop), s)); - s <- s' - end - end - method modified = s <> init - method name = name - method code = s - method virtual range : range - method save_code = self#code - end - -let invalid_prop kind name s = - invalid_arg (Printf.sprintf "Property.%s(%s) <- %s" kind name s) - -class prop_enum ~values ~name ~init ~set = - object (self) - inherit vprop ~name ~init ~set - method private parse s = - try List.assoc s values - with Not_found -> invalid_prop "enum" name s - method range = Enum (List.map ~f:fst values) - end - -(* used for radio_button groups; there is nothing to do - in radtest when setting a radio_button group, only when writing - code or saving *) -class prop_enum_dyn ~values ~name ~init ~set = - object (self) - inherit vprop ~name ~init ~set - method private parse s = () - method range = Enum (values ()) - end - -let bool_values = - [ "true", true; "false", false ] - -let shadow_type_values : (string * Tags.shadow_type) list = - [ "NONE", `NONE; "IN", `IN; "OUT", `OUT; - "ETCHED_IN", `ETCHED_IN; "ETCHED_OUT", `ETCHED_OUT ] - -let policy_type_values : (string * Tags.policy_type) list = - [ "ALWAYS", `ALWAYS; "AUTOMATIC", `AUTOMATIC ] - -let orientation_values : (string * Tags.orientation) list = - [ "HORIZONTAL", `HORIZONTAL; "VERTICAL", `VERTICAL ] - -let toolbar_style_values : (string * Tags.toolbar_style) list = - [ "ICONS", `ICONS; "TEXT", `TEXT; "BOTH", `BOTH ] - -let toolbar_space_style_values : (string * [`EMPTY | `LINE]) list = - [ "EMPTY", `EMPTY; "LINE", `LINE ] - -let relief_style_values : (string * Tags.relief_style) list = - [ "NORMAL", `NORMAL; "HALF", `HALF; "NONE", `NONE ] - -let position_values : (string * Tags.position) list = - [ "LEFT", `LEFT; "RIGHT", `RIGHT; "TOP", `TOP; "BOTTOM", `BOTTOM ] - -let combo_use_arrows_values : (string * [ `NEVER | `DEFAULT | `ALWAYS ]) list = -[ "NEVER", `NEVER; "DEFAULT", `DEFAULT; "ALWAYS", `ALWAYS ] - -let spin_button_update_policy_values : - (string * Tags. spin_button_update_policy) list = - [ "ALWAYS", `ALWAYS; "IF_VALID", `IF_VALID ] - -let button_box_style_values : (string * Tags.button_box_style) list = - [ "DEFAULT_STYLE", `DEFAULT_STYLE; "SPREAD", `SPREAD; "EDGE", `EDGE; - "START", `START; "END", `END ] - -let update_type_values : (string * Tags.update_type) list = - [ "CONTINUOUS", `CONTINUOUS; "DISCONTINUOUS", `DISCONTINUOUS; - "DELAYED", `DELAYED ] - - -class prop_bool = prop_enum ~values:bool_values - -(* -class prop_variant ~values ~name ~init ~set : prop = - object - inherit prop_enum ~values ~name ~init ~set - method code = "`" ^ s - end -*) - -class prop_shadow = prop_enum ~values:shadow_type_values -class prop_policy = prop_enum ~values:policy_type_values -class prop_orientation = prop_enum ~values:orientation_values -class prop_toolbar_style = prop_enum ~values:toolbar_style_values -class prop_toolbar_space_style = prop_enum ~values:toolbar_space_style_values -class prop_relief_style = prop_enum ~values:relief_style_values -class prop_position = prop_enum ~values:position_values -class prop_combo_use_arrows = prop_enum ~values:combo_use_arrows_values -class prop_spin_button_update_policy = prop_enum - ~values:spin_button_update_policy_values -class prop_button_box_style = prop_enum ~values:button_box_style_values -class prop_update_type = prop_enum ~values:update_type_values - -class prop_int ~name ~init ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse s = - try int_of_string s with _ -> invalid_prop "int" name s - method range = Int - end - -(* NB: float_of_string doesn't raise an exception in case of error *) -class prop_float ~name ~init ~min ~max ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse s = - try float_of_string s with _ -> invalid_prop "float" name s - method code = - if String.contains s '.' || String.contains s 'e' then s - else s ^ ".0" - method range = Float(min,max) - end - -class prop_string ~name ~init ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse s = s - method range = String - method code = "\"" ^ String.escaped s ^ "\"" - end - -class prop_adjustment ~name ~init ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse = get5floats_from_string - method range = Adjust - end - -class prop_clist_titles ~name ~init ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse = split_string ~sep:' ' - method range = CList_titles - method code = "[ \"" ^ - String.concat ~sep:"\"; \"" (split_string ~sep:' ' s) ^ "\" ]" - method save_code = "\"" ^ s ^ "\"" - end - -class prop_file ~name ~init ~set : prop = - object - inherit vprop ~name ~init ~set - method private parse s = s - method range = File - method code = "\"" ^ String.escaped s ^ "\"" - end - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/property.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/property.mli deleted file mode 100644 index ccf265077..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/property.mli +++ /dev/null @@ -1,96 +0,0 @@ -(* $Id$ *) - -open Gtk.Tags -open Common - -class virtual vprop : - name:string -> (* property's name *) - init:string -> (* default value *) - set:('a -> bool) -> - object - val name : string - val mutable s : string - method code : string (* encoded value *) - method get : string - method modified : bool - method name : string - method private virtual parse : string -> 'a - method virtual range : range - method save_code : string - method set : string -> unit - end - -class prop_int : - name:string -> init:string -> set:(int -> bool) -> prop - -class prop_float : - name:string -> - init:string -> min:float -> max:float -> set:(float -> bool) -> prop - -class prop_string : - name:string -> init:string -> set:(string -> bool) -> prop - -class prop_bool : - name:string -> init:string -> set:(bool -> bool) -> prop -(* -class prop_variant : - values:(string * 'a) list -> - name:string -> init:string -> set:('a -> bool) -> prop -*) -class prop_shadow : - name:string -> init:string -> set:(shadow_type -> bool) -> prop - -class prop_policy : - name:string -> init:string -> set:(policy_type -> bool) -> prop - -class prop_orientation : - name:string -> - init:string -> set:(Gtk.Tags.orientation -> bool) -> prop - -class prop_toolbar_style : - name:string -> - init:string -> set:(Gtk.Tags.toolbar_style -> bool) -> prop - -class prop_toolbar_space_style : - name:string -> init:string -> set:([ `EMPTY | `LINE] -> bool) -> prop - -class prop_relief_style : - name:string -> - init:string -> set:(Gtk.Tags.relief_style -> bool) -> prop - -class prop_position : - name:string -> - init:string -> set:(Gtk.Tags.position -> bool) -> prop - -class prop_combo_use_arrows : - name:string -> - init:string -> set:([ `NEVER | `DEFAULT | `ALWAYS] -> bool) -> prop - -class prop_spin_button_update_policy : - name:string -> - init:string -> set:(Gtk.Tags.spin_button_update_policy -> bool) -> prop - -class prop_button_box_style : - name:string -> - init:string -> set:(Gtk.Tags.button_box_style -> bool) -> prop - -class prop_update_type : - name:string -> - init:string -> set:(Gtk.Tags.update_type -> bool) -> prop - -class prop_enum_dyn : - values:(unit -> string list) -> name:string -> - init:string -> set:(unit -> bool) -> prop - -class prop_adjustment : - name:string -> init:string -> - set:(float * float * float * float * float -> bool) -> prop - -class prop_clist_titles : - name:string -> init:string -> - set:(string list -> bool) -> prop - -class prop_file : - name:string -> init:string -> set:(string -> bool) -> prop - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/propwin.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/propwin.ml deleted file mode 100644 index 2f8b29151..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/propwin.ml +++ /dev/null @@ -1,180 +0,0 @@ -(* $Id$ *) - -open GObj - -open Common -open Utils - -class type tiwidget_base = object - method name : string - method proplist : (string * prop) list -end - -let prop_widget (prop : prop) = - match prop#range with - Enum l -> - let w = GEdit.combo ~popdown_strings:l ~use_arrows:`ALWAYS () in - w#entry#connect#changed ~callback:(fun () -> prop#set w#entry#text); - w#entry#set_editable false; - w#entry#set_text prop#get; - w#coerce - | String -> - let w = GEdit.entry ~text:prop#get () in - w#connect#activate ~callback:(fun () -> prop#set w#text); - w#coerce - | File -> - let w = GPack.hbox () in - let e = GEdit.entry ~text:prop#get ~editable:false ~packing:w#pack () in - let b = GButton.button ~label:"..." ~packing:w#pack () in - b#connect#clicked - ~callback:(fun () -> get_filename - ~callback:(fun name -> e#set_text name; prop#set name) (); ()); - w#coerce - | Int -> - let adjustment = - GData.adjustment ~value:(float_of_string prop#get) - ~lower:(-2.) ~upper:5000. ~step_incr:1. ~page_incr:10. ~page_size:0. () - in - let w = GEdit.spin_button ~rate:0.5 ~digits:0 ~adjustment () in - w#connect#activate - ~callback:(fun () -> prop#set (string_of_int w#value_as_int)); - w#coerce - | Float (lower, upper) -> -(* let adjustment = - GData.adjustment ~value:(float_of_string prop#get) - ~lower ~upper ~step_incr:((upper-.lower)/.100.) - ~page_incr:((upper-.lower)/.10.) ~page_size:0. () - in - let w = GEdit.spin_button ~rate:0.5 ~digits:2 ~adjustment () in - w#connect#activate - ~callback:(fun () -> prop#set (string_of_float w#value)); - w#coerce -*) - let w = entry_float ~init:(float_of_string prop#get) () in - w#connect#activate - ~callback:(fun () -> prop#set (string_of_float w#value)); - w#coerce -(* | Adjust -> - let wpop = GWindow.window ~title:"Adjustment values" () in - let vb = GPack.vbox ~packing:wpop#add() in - let hb1 = GPack.hbox ~packing:vb#pack () in - let l1 = GMisc.label ~text:"lower" ~packing:hb1#pack () in - let e1 = entry_float ~packing:hb1#pack - ~init:(float_of_string prop#get) ~set:prop#set in -*) - | CList_titles -> - let wpop = GWindow.window ~title:"titles of the columns" () in - let vb = GPack.vbox ~packing:wpop#add () in - let titles = split_string prop#get ~sep:' ' in - let n = List.length titles in - let rtitles = ref titles in - let rget = ref [] and rset = ref [] in - for i = 1 to n do - match !rtitles with - | hd::tl -> - let hb = GPack.hbox ~packing:vb#pack () in - let _ = GMisc.label ~text:("column" ^ (string_of_int i)) - ~packing:hb#pack () in - let e = GEdit.entry ~text:hd ~packing:hb#pack () in - rtitles := tl; - rget := (fun () -> e#text) :: !rget; - rset := e#set_text :: !rset; - | _ -> failwith "CList_titles: this cannot happen!!" - done; - rtitles := titles; - rget := List.rev !rget; - rset := List.rev !rset; - let hb = GPack.hbox ~packing:vb#pack () in - let ok = GButton.button ~label:"OK" ~packing:hb#pack () in - let cancel = GButton.button ~label:"Cancel" ~packing:hb#pack () in - ok#connect#pressed - ~callback:(fun () -> - let tit = List.map ~f:(fun f -> f ()) !rget in - prop#set (String.concat ~sep:" " tit); - rtitles := tit; - wpop#misc#hide ()); - cancel#connect#pressed - ~callback:(fun () -> - wpop#misc#hide (); - List.iter2 ~f:(fun f v -> f v) !rset !rtitles); - let e = GEdit.entry ~text:"double click here" ~editable:false () in - e#event#connect#button_press ~callback: - (fun ev -> - GdkEvent.get_type ev = `TWO_BUTTON_PRESS && - GdkEvent.Button.button ev = 1 && - begin - wpop#misc#show (); - GtkSignal.stop_emit (); - true - end); - e#coerce - -let prop_box list = - let vbox = GPack.vbox () in - List.iter list ~f: - begin fun (name, prop) -> - let hbox = - GPack.hbox ~homogeneous:true ~packing:(vbox#pack ~expand:false) () in - GMisc.label ~text:name ~packing:hbox#pack (); - hbox#pack ~fill:true (prop_widget prop); - GMisc.separator `HORIZONTAL ~packing:(vbox#pack ~expand:false) (); - () - end; - vbox - -class ['a] frozen lz = object - method get : 'a = Lazy.force lz -end - -let vbox = - new frozen (lazy (GWindow.window ~show:true ~title:"Properties" ())) - -let init () = vbox#get - -let widget_pool = Hashtbl.create 7 - -let boxref = ref None -let shown_widget = ref "" - -let show_prop_box vb = - Gaux.may !boxref ~f:vbox#get#remove; - vbox#get#add vb#coerce; - boxref := Some vb#coerce - -let show (w : #tiwidget_base) = - let name = w#name in - let vb = - try - Hashtbl.find widget_pool name - with Not_found -> - let vb = prop_box w#proplist in - Hashtbl.add widget_pool ~key:name ~data:vb; - vb - in - show_prop_box vb; - shown_widget := name - -let add (w : #tiwidget_base) = - let vb = prop_box w#proplist in - Hashtbl.add widget_pool ~key:w#name ~data:vb - - -let remove name = - Hashtbl.remove widget_pool name; - if !shown_widget = name then begin - shown_widget := ""; - show_prop_box (GMisc.label ~text:"No widget selected" ()) - end - -(* -let change_name oldname newname = - let vb = Hashtbl.find widget_pool oldname in - Hashtbl.remove widget_pool oldname; - Hashtbl.add widget_pool ~key:newname ~data:vb -*) - -let update (w : #tiwidget_base) show_modif = - let vb = prop_box w#proplist in - Hashtbl.remove widget_pool w#name; - Hashtbl.add widget_pool ~key:w#name ~data:vb; - if show_modif && !shown_widget = w#name then show_prop_box vb diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/propwin.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/propwin.mli deleted file mode 100644 index 6636a4f6f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/propwin.mli +++ /dev/null @@ -1,10 +0,0 @@ -(* $Id$ *) - -open Common - -val init : unit -> GWindow.window -val show : #tiwidget_base -> unit -val add : #tiwidget_base -> unit -val remove : string -> unit -(* val change_name : string -> string -> unit *) -val update : #tiwidget_base -> bool -> unit diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/radiobutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/radiobutton.xpm deleted file mode 100644 index 0f5fbbd45..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/radiobutton.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *radiobutton_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"++++++++++.++++++++++", -"+++++++++...+++++++++", -"++++++++.. ..++++++++", -"+++++++.. X ..+++++++", -"++++++.. XXX ..++++++", -"+++++.. XXXXX ..+++++", -"++++++OOXXXXXOO++++++", -"+++++++OOXXXOO+++++++", -"++++++++OOXOO++++++++", -"+++++++++OOO+++++++++", -"++++++++++O++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/scrolledwindow.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/scrolledwindow.xpm deleted file mode 100644 index 44e59f610..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/scrolledwindow.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char *scrolledwindow_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 3 1", -" c Gray0", -". c #d6d6d6", -"X c Gray100", -/* pixels */ -"XXXXXXXXXXXXXXXXXXXXX", -"X.............X..... ", -"X.............X.. .. ", -"X.............X. . ", -"X.............X..... ", -"X.............X ", -"X.............XXXXXX ", -"X.............XX.... ", -"X.............XX.... ", -"X.............XXXXXX ", -"X.............X..... ", -"X.............X. . ", -"X.............X.. .. ", -"X.............X..... ", -"XXXXXXXXXXXXXXX ", -"X.... XXX .... ......", -"X.. . X.. . .. ......", -"X. . X.. . . ......", -"X.. . X.. . .. ......", -"X.... X.. .... ......", -"X ......" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/spinbutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/spinbutton.xpm deleted file mode 100644 index f3a313b19..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/spinbutton.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *spinbutton_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+ +", -"+ OOOOOOOOOOO OOOOO +", -"+ OOOOOOOOOOO OX X. +", -"+ OOOOOOOOOOO O . +", -"+ OOOOOOOOOOO OOOOO +", -"+ OOOOOOOOOOO O . +", -"+ OOOOOOOOOOO OX X. +", -"+ OOOOOOOOOOO ..... +", -"+ +", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/statusbar.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/statusbar.xpm deleted file mode 100644 index 8576d88c6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/statusbar.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char *statusbar_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 7 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray87", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@+XX.@@@@@@@@@@@@@@", -"@@@+XX.@@@@@@@@@@@@@@", -"@@@+XX.@@@@@@@@@@@@@@", -"@@@+XX.@@@@@@@@@@@@@@", -"@@@+XX++++++++++++@@@", -"@@@+XXXXXXXXXXXXXX@@@", -"@@@+XXXXXXXXXXXXXX@@@", -"@@@+XX............@@@", -"@@@+XX.OOOOOOOOOOO@@@", -"@@@+XX.OOOOOOOOOOO@@@", -"@@@+XX.OOOOOOOOOOO@@@", -"@@@+XX++++++++++++@@@", -"@@@+XXXXXXXXXXXXXX@@@", -"@@@+XXXXXXXXXXXXXX@@@", -"@@@ @@@", -"@@@@@@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@@@@@@" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiBase.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiBase.ml deleted file mode 100644 index 390749337..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiBase.ml +++ /dev/null @@ -1,671 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GObj -open GContainer - -open Utils -open Common -open Property - -(* possible children; used to make the menus *) -let widget_add_list = - [ "vbox"; "hbox"; "vbutton_box"; "hbutton_box"; "fixed"; - "frame"; "aspect_frame"; "handle_box"; "event_box"; - "hseparator"; "vseparator"; "statusbar"; "label"; "notebook"; - "color_selection"; - "button"; - "toggle_button"; "check_button"; "radio_button"; "scrolled_window"; - - "entry"; "spin_button"; "combo"; "clist"; "toolbar"] - - -(*********** selection ***********) - -let selection = ref "" -let window_selection = ref "" - - -(**************** signals class ***************) - -class tiwidget_signals ~signals = - let name_changed : string signal = signals in - object - val after = false - method after = {< after = true >} - method name_changed = name_changed#connect ~after - end - - -(************* class type ***************) -(* the ti classes encapsulate the corresponding gtk - widget which will be in the gtk-window and a tree item - labelled with the name of the widget which will be in the - tree-window. - all these classes have the same following interface *) - -class virtual tiwidget0 = object - method virtual widget : GObj.widget - method virtual connect_event : GObj.event_signals - method virtual parent : tiwidget0 option - method virtual set_parent : tiwidget0 -> unit - method virtual base : GObj.widget - method virtual tree_item : GTree2.tree_item - method virtual tree : GTree2.tree - method virtual children : (tiwidget0 * Gtk.Tags.pack_type) list - method virtual name : string - method virtual proplist : (string * prop) list - method virtual add_to_proplist : (string * prop) list -> unit - method virtual change_name_in_proplist : string -> string -> unit - method virtual set_property : string -> string -> unit - method virtual forall : callback:(tiwidget0 -> unit) -> unit - method virtual remove : tiwidget0 -> unit -(* method virtual add_child_with_name : string -> string -> pos:int -> tiwidget0 *) - method virtual add_children : ?pos:int -> yywidget_tree -> unit - method virtual add_children_wo_undo : ?pos:int -> yywidget_tree -> string - method virtual remove_me : unit -> unit - method virtual remove_me_without_undo : unit -> unit - method virtual emit_code : Format.formatter -> char list -> unit - method virtual emit_init_code : Format.formatter -> packing:string -> unit - method virtual emit_method_code : Format.formatter -> unit - method virtual emit_initializer_code : Format.formatter -> unit - method virtual save : Format.formatter -> unit - method virtual copy : unit -> unit - method virtual connect : tiwidget_signals - method virtual disconnect : GtkSignal.id -> bool - method virtual child_up : tiwidget0 -> unit - method virtual up : unit -> unit - method virtual child_down : tiwidget0 -> unit - method virtual down : unit -> unit - method virtual next : tiwidget0 - method virtual next_child : tiwidget0 -> tiwidget0 - method virtual last : tiwidget0 - method virtual prev : tiwidget0 - method virtual set_full_menu : bool -> unit -end - -class virtual window_and_tree0 = object - method virtual tiwin : tiwidget0 -(* method virtual tree_window : window *) - method virtual change_selected : tiwidget0 -> unit - method virtual remove_sel : tiwidget0 -> unit - method virtual add_param : char - method virtual remove_param : char -> unit -(* method virtual emit : unit -> unit *) -end - -(* forward declaration of function new_widget *) -let new_tiwidget : - (classe:string -> ?pos:int -> name:string ->parent_tree:GTree2.tree -> - ?insert_evbox:bool -> ?listprop:(string * string) list -> window_and_tree0 -> tiwidget0) ref = - ref (fun ~classe ?pos ~name ~parent_tree ?insert_evbox ?listprop w -> failwith "new_tiwidget") - - -let widget_map = Hashtbl.create 17 - -(* list of names of radio_buttons (for groups) *) -let radio_button_pool = ref [] - - -(************* window creation class *************) -(* an instance of this class is created for each window opened - in radtest. It contains the tree window and the gtk window (tiwin) *) - -class window_and_tree ~name = - let tree_window = GWindow.window ~show:true ~title:(name ^ "-Tree") () in - let vbox = GPack.vbox ~spacing:2 ~packing:tree_window#add () in - let root_tree = GTree2.tree ~packing:vbox#pack ~selection_mode:`EXTENDED () in - let project_tree_item = GTree2.tree_item () in - let label = GMisc.label ~text:name ~xalign:0. ~yalign:0.5 - ~packing:project_tree_item#add () in - - object(self) - - inherit window_and_tree0 - -(* the params of the window class; because the class clist needs a param - I suppose there will be no more than 26 clists in a single window *) - val param_list = Array.create 26 false - - method add_param = - let i = ref 0 in - while param_list.(!i) do incr i done; - param_list.(!i) <- true; - char_of_int (97 + !i) - - method remove_param c = - param_list.(int_of_char c - 97) <- false - - method private param_list = - let r = ref [] in - for i = 25 downto 0 do - if Array.unsafe_get param_list i then r := (char_of_int (i+97)) :: !r - done; - !r - -(* I use magic here because the real initialization is done - below in the initializer part. It can't be done here because - of the call to self *) - val mutable tiwin = (Obj.magic 0 : tiwidget0) - - method tiwin = tiwin - method tree_window = tree_window - - method project_tree_item = project_tree_item - -(* the selected item in this window *) - val mutable selected = (None : tiwidget0 option) - -(* what to do when a new item is selected. - this method is passed to all the tiwidgets (by the select_fun - parameter) and they will call it when they are clicked on; - she is also called when changing the selection the arrow keys - (see in the initializer part) *) - method change_selected sel = - match selected with - | None -> - selected <- Some sel; - sel#tree_item#misc#set_state `SELECTED; - sel#base#misc#set_state `SELECTED; - Propwin.show sel - | Some old_sel -> - if sel = old_sel then begin - selected <- None; - sel#base#misc#set_state `NORMAL; - sel#tree_item#misc#set_state `NORMAL - end else begin - old_sel#tree_item#misc#set_state `NORMAL; - old_sel#base#misc#set_state `NORMAL; - selected <- Some sel; - sel#tree_item#misc#set_state `SELECTED; - sel#base#misc#set_state `SELECTED; - Propwin.show sel - end - -(* the tiwidget tiw is being removed; if it was selected, - put the selection to None *) - method remove_sel tiw = - match selected with - | Some sel when sel = tiw -> selected <- None - | _ -> () - -(* emits the code corresponding to this window *) - method emit c = tiwin#emit_code c self#param_list; - - method delete () = - tiwin#remove_me_without_undo (); - tree_window#destroy (); - - initializer - tiwin <- !new_tiwidget ~classe:"window" ~name ~parent_tree:root_tree - (self : #window_and_tree0 :> window_and_tree0); - - tiwin#connect#name_changed ~callback: - (fun n -> label#set_text n; tree_window#set_title (n ^ "-Tree")); - - Propwin.show tiwin; - - tree_window#event#connect#key_press ~callback: - begin fun ev -> - let state = GdkEvent.Key.state ev in - let keyval = GdkEvent.Key.keyval ev in - if keyval = GdkKeysyms._Up then begin - match selected with - | None -> () - | Some t -> - if List.mem `CONTROL state then t#up () - else try - self#change_selected t#prev - with Not_found -> () - end - else if keyval = GdkKeysyms._Down then begin - match selected with - | None -> () - | Some t -> - if List.mem `CONTROL state then t#down () - else try - self#change_selected t#next - with Not_found -> () - end; - GtkSignal.stop_emit (); - true - end; - () - end - - - -(***************** class implementation *****************) -(* this is the base class of the ti hierarchy. - all these classes will inherit from tiwidget, but without - adding new methods. In this way all the classes have the - same interface and we can use them in lists, pass them to - functions without caring on the type. - All methods needed by any of the classes are defined in - tiwidget but if a method is not pertinent in tiwidget - it has for implementation: - failwith "" - the real implementation of the method is done in the - class (or classes) in which it is needed (or sometimes - in tiwidget anyway). - Additionally, to workaround some problem with recursive types - the type of the (public) methods of tiwidget is defined in - tiwidget0 of which tiwidget inherits. - The parent_tree parameter is the tree in which the - tiwidget#tree_item will be inserted at position :pos. -*) - -class virtual tiwidget ~name ~parent_tree:(parent_tree : GTree2.tree) ~pos - ~widget ?(insert_evbox=true) (parent_window : window_and_tree0) = -object(self) - - inherit tiwidget0 - inherit has_ml_signals - - val evbox = - if insert_evbox then - let ev = GBin.event_box () in ev#add widget#coerce; Some ev - else None - -(* used only for windows delete_event *) - method connect_event = failwith "tiwidget::connect_event" - - val widget = widget#coerce - method widget = widget - - val mutable parent = None - method set_parent p = parent <- Some p - method parent = parent - method private sure_parent = - match parent with - | None -> failwith "sure_parent" - | Some p -> p - - method base = - match evbox with - | None -> widget#coerce - | Some ev -> ev#coerce - -(* this is the name used in new_tiwidget for the creation - of an object of this class *) - val mutable classe = "" - - val tree_item = GTree2.tree_item () - method tree_item = tree_item - - val mutable stree = GTree2.tree () - method tree = stree - - val label = GMisc.label ~text:name ~xalign:0. ~yalign:0.5 () - - val mutable name : string = name - method name = name - -(* this is the complete name for the creation of the widget - in lablgtk e.g. GPack.vbox; used in emit_init_code *) - method private class_name = "" - - val mutable proplist : (string * prop) list = [] - method proplist = proplist - method private get_mandatory_props = [] - - method add_to_proplist plist = proplist <- proplist @ plist - -(* for children of a box *) - method change_name_in_proplist : string -> string -> unit = - fun _ _ -> () - method set_property name value_string = try - (List.assoc name proplist)#set value_string - with Not_found -> Printf.printf "Property not_found %s, %s\n" name value_string; - flush stdout - - method private get_property name = - (List.assoc name proplist)#get - - -(* the proplist with some items removed e.g. the expand... in a box - used for saving and emitting code *) - method private emit_clean_proplist = - List.fold_left ~f:(fun l p -> List.remove_assoc p l) - ~init:proplist - ([ "name"; "expand"; "fill"; "padding" ] @ self#get_mandatory_props) -(* method private emit_clean_proplist plist = - List.fold_left ~init:plist ~f: - (fun pl propname -> List.remove_assoc propname pl) - [ "name"; "expand"; "fill"; "padding" ] -*) - - method private save_clean_proplist = - List.fold_left ~f:(fun l p -> List.remove_assoc p l) - ~init:proplist ("name" :: self#get_mandatory_props) -(* method private save_clean_proplist = - List.remove_assoc "name" proplist *) - - val mutable children : (tiwidget0 * Gtk.Tags.pack_type) list = [] - method children = children - method forall = - fun ~callback -> List.iter (List.map children ~f:fst) ~f:callback - -(* encapsulate container#add and container#remove - they are here because they depend on the type of the widget: - e.g.: gtkbin->add scrolled_window->add_with_viewport box->pack *) - method private add = failwith (name ^ "::add") - method remove = failwith (name ^ "::remove") - - -(* removes self from his parent; - will be different for a window *) - method remove_me () = - let sref = ref "" in - self#save_to_string sref; - let pos = list_pos ~item:(self : #tiwidget0 :> tiwidget0) - (List.map self#sure_parent#children ~f:fst) in - let lexbuf = Lexing.from_string !sref in - let node = Load_parser.widget Load_lexer.token lexbuf in - add_undo (Add (self#sure_parent#name, node, pos)); - self#remove_me_without_undo () - - method remove_me_without_undo () = -(* it should be enough to only recursively remove the children from the - name_list and do the tip#remove and tip#tree#remove - only for self *) - self#forall ~callback:(fun tiw -> tiw#remove_me_without_undo ()); - parent_window#remove_sel (self : #tiwidget0 :> tiwidget0); - match parent with - | None -> failwith "remove without parent" - | Some (tip : #tiwidget0) -> - tip#tree#remove tree_item; - tip#remove (self : #tiwidget0 :> tiwidget0); - name_list := list_remove !name_list ~f:(fun n -> n=name); - Hashtbl.remove widget_map name; - Propwin.remove name - -(* used for undo *) - method private remove_child_by_name name () = - let child = fst (List.find children - ~f:(fun (ch, _) -> ch#name = name)) in - child#remove_me () - -(* for most widgets we make a child with new_tiwidget and then add it - to self; for toolbars we use toolbar#insert_button... *) - method private make_child = !new_tiwidget - -(* adds a child and shows his properties; - used when adding a child by the menu or DnD *) - method private add_child classe ?name ?(undo = true) ?(affich = true) ?(pos = -1) ?(listprop = []) () = - let name = match name with - | None -> make_new_name classe - | Some n -> n in - let child = self#make_child ~classe ~name ~parent_tree:stree parent_window ~pos ~listprop in - child#set_parent (self : #tiwidget0 :> tiwidget0); - self#add child ~pos; - if affich then Propwin.show child; - if undo then add_undo (Remove name); - child - - -(* adds the subtree saved in the Node *) - method add_children ?(pos = -1) node = - let child_name = self#add_children_wo_undo node ~pos in - add_undo (Remove child_name) - - method add_children_wo_undo ?(pos = -1) (Node (child, children)) = - let classe, name, property_list = child in - let rname = change_name name in - let tc = self#add_child classe ~name:rname ~undo:false ~affich:false ~pos ~listprop:property_list () in - List.iter (List.rev children) - ~f:(fun c -> tc#add_children_wo_undo c; ()); - List.iter property_list ~f:(fun (n,v) -> tc#set_property n v); - rname - -(* only a tiwindow can emit code *) - method emit_code = failwith "emit_code" - -(* some methods for emitting code *) -(* this one calculates the expand, fill and padding parameters - of a box child *) - method private get_packing packing = - let aux name = - let prop = List.assoc name proplist in - if prop#modified then " ~" ^ name ^ ":" ^ prop#code else "" - in - let efp = try - (aux "expand") ^ (aux "fill") ^ (aux "padding") - with Not_found -> "" in - if efp = "" then ("~packing:" ^ packing) - else ("~packing:(" ^ packing ^ efp ^ ")") - -(* this one emits the declaration code of the widget *) - method emit_init_code formatter ~packing = - Format.fprintf formatter "@ @[let %s =@ @[%s" - name self#class_name; - List.iter self#get_mandatory_props - ~f:begin fun name -> - Format.fprintf formatter "@ ~%s:%s" name - (List.assoc name proplist)#code - end; - let packing = self#get_packing packing in - if packing <> "" then Format.fprintf formatter "@ %s" packing; - self#emit_prop_code formatter; - Format.fprintf formatter "@ ()@ in@]@]" - -(* this one emits the properties which do not have their - default value; used by emit_init_code *) - method private emit_prop_code formatter = - let mandatory = self#get_mandatory_props in - List.iter self#emit_clean_proplist ~f: - begin fun (name, prop) -> - if List.mem name mandatory then () else - if prop#modified then - Format.fprintf formatter "@ ~%s:%s" prop#name prop#code - end - -(* this one emits the method returning this widget *) - method emit_method_code formatter = - Format.fprintf formatter "@ method %s = %s" name name; - -(* emits the code in the initializer part for this widget *) - method emit_initializer_code _ = () - -(* for saving the project to a file. Used also by copy and cut *) - method private save_start formatter = - Format.fprintf formatter "@\n@[<2><%s name=%s>" classe name; - List.iter - ~f:(fun p -> Format.fprintf formatter - "@\n%s=\"%s\"" p (List.assoc p proplist)#get) - self#get_mandatory_props - - - method private save_end formatter = - Format.fprintf formatter "@]@\n" classe - - method save formatter = - self#save_start formatter; - List.iter self#save_clean_proplist ~f: - (fun (name, prop) -> - if prop#modified then - Format.fprintf formatter "@\n%s=%s" name prop#save_code); - self#forall ~callback:(fun w -> w#save formatter); - self#save_end formatter - - - method private save_to_string string_ref = - let b = Buffer.create 80 in - let f = Format.formatter_of_buffer b in - self#save f; - Format.pp_print_flush f (); - string_ref := Buffer.contents b - - method private copy_to_sel selection = self#save_to_string selection - - method copy () = self#copy_to_sel selection - - method private cut () = - self#copy (); - self#remove_me () - - method private paste () = - let lexbuf = Lexing.from_string !selection in - let node = Load_parser.widget Load_lexer.token lexbuf in - self#add_children node - - -(* ML signal used when the name of the widget is changed *) - val name_changed : string signal = new signal - method connect = new tiwidget_signals ~signals:name_changed - method private call_name_changed = name_changed#call - - -(* this is necessary because gtk_tree#remove deletes the tree - when removing the last item *) -(* suppressed this in gtktree2 - method new_tree () = - stree <- GTree2.tree; - tree_item#set_subtree stree; - tree_item#expand () -*) - -(* when full_menu is true we use the menu else the restricted menu *) - val mutable full_menu = true - method set_full_menu b = full_menu <- b - -(* the menu for this widget - This menu is recalculated when one clicks on the 3rd button. - There is nothing to do e.g. when the name of the widget changes, - it will change in the menu the next time. *) - method private menu ~time = self#restricted_menu ~time - -(* the restricted menu for this widget - used for containers when they are full *) - method private restricted_menu ~time = - let menu = GMenu.menu () in - let mi_remove = GMenu.menu_item ~packing:menu#append ~label:"remove" () - and mi_cut = GMenu.menu_item ~packing:menu#append ~label:"Cut" () - and mi_copy = GMenu.menu_item ~packing:menu#append ~label:"Copy" () in - mi_remove#connect#activate ~callback:self#remove_me; - mi_copy#connect#activate ~callback:self#copy; - mi_cut#connect#activate ~callback:self#cut; - menu#popup ~button:3 ~time - -(* changes all that depends on the name *) - method private set_new_name new_name = - if test_unique new_name then begin - Hashtbl.remove widget_map name; - Hashtbl.add widget_map ~key:new_name - ~data:(self : #tiwidget0 :> tiwidget0); - if (classe = "radio_button") then begin - radio_button_pool := new_name :: - (list_remove !radio_button_pool ~f:(fun x -> x = name)); - List.iter - ~f:(fun x -> Propwin.update (Hashtbl.find widget_map x) false) - !radio_button_pool - end; - label#set_text new_name; - let old_name = name in - name <- new_name; -(* Propwin.change_name old_name new_name; *) - name_list := - new_name :: (list_remove !name_list ~f:(fun n -> n=old_name)); - begin match self#parent with - | None -> () - | Some p -> p#change_name_in_proplist old_name new_name - end; - self#call_name_changed new_name; - true - end - else begin - message_name (); - Propwin.update self true; - false - end - - -(* moves the present tiw up in his parents' children list *) -(* does something only when the parent is a box *) - method child_up = fun _ -> () - - method up () = match parent with - | None -> () - | Some t -> t#child_up (self : #tiwidget0 :> tiwidget0) - - method child_down = fun _ -> () - - method down () = match parent with - | None -> () - | Some t -> t#child_down (self : #tiwidget0 :> tiwidget0) - - -(* get the next tiwidget in the tree (used with Down arrow) *) - method next = - if children <> [] then fst (List.hd children) - else begin - match parent with - | None -> raise Not_found - | Some p -> p#next_child (self : #tiwidget0 :> tiwidget0) - end - - method next_child child = - let _, tl = cut_list ~item:child (List.map ~f:fst children) in - match tl with - | ch :: next :: _ -> next - | ch :: [] -> begin - match parent with - | None -> raise Not_found - | Some p -> p#next_child (self : #tiwidget0 :> tiwidget0) - end - | _ -> failwith "next_child" - -(* get the last child of the last child ... of our last child. - Used by prev. *) - method last = - if children = [] then (self : #tiwidget0 :> tiwidget0) - else (fst (List.hd (List.rev children)))#last - -(* get the previous tiwidget in the tree (used with Up arrow) *) - method prev = - match parent with - | None -> raise Not_found - | Some p -> - let hd, _ = cut_list ~item:(self : #tiwidget0 :> tiwidget0) - (List.map ~f:fst p#children) in - match hd with - | [] -> p - | h :: _ -> h#last - - initializer - Hashtbl.add widget_map ~key:name ~data:(self : #tiwidget0 :> tiwidget0); - name_list := name :: !name_list; - parent_tree#insert tree_item ~pos; - tree_item#set_subtree stree; - tree_item#add label#coerce; - tree_item#expand (); - - proplist <- proplist @ - [ "name", - new prop_string ~name:"name" ~init:name ~set:self#set_new_name; - "width", new prop_int ~name:"width" ~init:"-2" - ~set:(fun v -> widget#misc#set_geometry ~width:v (); true); - "height", new prop_int ~name:"height" ~init:"-2" - ~set:(fun v -> widget#misc#set_geometry ~height:v (); true) ]; - - self#add_signal name_changed; - - tree_item#event#connect#button_press ~callback: - (fun ev -> match GdkEvent.get_type ev with - | `BUTTON_PRESS -> - if GdkEvent.Button.button ev = 1 then begin - parent_window#change_selected - (self : #tiwidget0 :> tiwidget0); - end - else if GdkEvent.Button.button ev = 3 then begin - if full_menu - then self#menu ~time:(GdkEvent.Button.time ev) - else self#restricted_menu ~time:(GdkEvent.Button.time ev); - end; - GtkSignal.stop_emit (); - true - | _ -> false); - () -end - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiBin.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiBin.ml deleted file mode 100644 index 5ebcb3e2e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiBin.ml +++ /dev/null @@ -1,185 +0,0 @@ -open Gtk - -open Utils -open Property - -open TiContainer - -class tiframe ~(widget : GBin.frame) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val frame = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window as container - - method private class_name = "GBin.frame" - - method private get_mandatory_props = [ "label" ] - - initializer - classe <- "frame"; - frame#set_label name; - proplist <- proplist @ - [ "label", - new prop_string ~name:"label" ~init:name ~set:(ftrue frame#set_label); - "label_xalign", - new prop_float ~name:"label_xalign" ~init:"0.0" ~min:0. ~max:1. - ~set:(fun x -> frame#set_label_align ~x (); true); - "shadow_type", - new prop_shadow ~name:"shadow_type" ~init:"ETCHED_IN" - ~set:(ftrue frame#set_shadow_type) ] -end - -let new_tiframe ~name ?(listprop = []) = - new tiframe ~widget:(GBin.frame ()) ~name - - - - -class tiaspect_frame ~(widget : GBin.aspect_frame) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val aspect_frame = widget - inherit tiframe ~name ~widget:(widget :> GBin.frame) ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GBin.aspect_frame" - - initializer - classe <- "aspect_frame"; - frame#set_label name; - proplist <- proplist @ - [ "obey_child", - new prop_bool ~name:"obey_child" ~init:"true" - ~set:(ftrue aspect_frame#set_obey_child); - "ratio", - new prop_float ~name:"ratio" ~init:"1.0" ~min:0. ~max:1. - ~set:(ftrue aspect_frame#set_ratio) - ] -end - -let new_tiaspect_frame ~name ?(listprop = []) = - new tiaspect_frame ~widget:(GBin.aspect_frame ()) ~name - - - - -class tievent_box ~(widget : GBin.event_box) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val event_box = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GBin.event_box" - initializer - classe <- "event_box" -end - -let new_event_box ~name ?(listprop = []) = - new tievent_box ~widget:(GBin.event_box ()) ~name - - - - -class tihandle_box ~(widget : GBin.handle_box) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val handle_box = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GBin.handle_box" - - initializer - classe <- "handle_box"; - proplist <- proplist @ - [ "shadow_type", - new prop_shadow ~name:"shadow_type" ~init:"OUT" - ~set:(ftrue handle_box#set_shadow_type); - "handle_position", - new prop_position ~name:"handle_position" ~init:"LEFT" - ~set:(ftrue handle_box#set_handle_position); - "snap_edge", - new prop_position ~name:"snap_edge" ~init:"TOP" - ~set:(ftrue handle_box#set_snap_edge) - ] -end - -let new_handle_box ~name ?(listprop = []) = - new tihandle_box ~widget:(GBin.handle_box ()) ~name - - - - - -class tiviewport ~(widget : GBin.handle_box) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val viewport = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GBin.viewport" - - initializer - classe <- "viewport"; - proplist <- proplist @ - [ "shadow_type", - new prop_shadow ~name:"shadow_type" ~init:"OUT" - ~set:(ftrue viewport#set_shadow_type) - ] -end - -let new_viewport ~name ?(listprop = []) = - new tiviewport ~widget:(GBin.handle_box ()) ~name - - - - - -class tiscrolled_window ~(widget : GBin.scrolled_window) - ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = - object(self) - val scrolled_window = widget - inherit ticontainer ~name ~insert_evbox - ~parent_tree ~pos ~widget parent_window - - method private class_name = "GBin.scrolled_window" - method private name_of_add_method = "#add_with_viewport" - - method private add rw ~pos = - scrolled_window#add_with_viewport (rw#base); - children <- [ rw, `START]; - self#set_full_menu false; - tree_item#drag#dest_unset () - -(* we must remove the child from the viewport, - not from the scrolled_window; - it is not mandatory to remove the viewport - from the scrolled_window *) - method remove child = - let viewport = (new GContainer.container (GtkBase.Container.cast (List.hd scrolled_window#children)#as_widget)) in - viewport#remove child#base; -(* scrolled_window#remove (List.hd scrolled_window#children); *) - children <- [ ]; - self#set_full_menu true; - tree_item#drag#dest_set ~actions:[`COPY] - [ { target = "STRING"; flags = []; info = 0} ] - - - initializer - classe <- "scrolled_window"; - proplist <- proplist @ - [ "hscrollbar_policy", - new prop_policy ~name:"hscrollbar_policy" ~init:"ALWAYS" - ~set:(ftrue scrolled_window#set_hpolicy); - "vscrollbar_policy", - new prop_policy ~name:"vscrollbar_policy" ~init:"ALWAYS" - ~set:(ftrue scrolled_window#set_vpolicy) ] -end - -let new_tiscrolled_window ~name ?(listprop = []) = - new tiscrolled_window ~widget:(GBin.scrolled_window ()) ~name - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiButton.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiButton.ml deleted file mode 100644 index 174c6ebff..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiButton.ml +++ /dev/null @@ -1,372 +0,0 @@ -open Utils -open Property - -open TiBase -open TiContainer - -(* the button inherits from widget because it can't accept - a child; - needs to add the border_width property *) -class tibutton ~(widget : #GButton.button) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val button = widget - inherit tiwidget ~name ~widget ~parent_tree ~pos ~insert_evbox - parent_window as widget - - method private class_name = "GButton.button" - - method private get_mandatory_props = [ "label" ] - - initializer - classe <- "button"; - proplist <- proplist @ - [ "border_width", new prop_int ~name:"border_width" ~init:"0" - ~set:(ftrue button#set_border_width); - "label", - new prop_string ~name:"label" ~init:name ~set: - begin fun v -> - button#remove (List.hd button#children)#coerce; - GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add (); - true - end ] -end - -let new_tibutton ~name ?(listprop = []) = - let b = GButton.button ~label:name () in - b#event#connect#enter_notify - ~callback:(fun _ -> GtkSignal.stop_emit (); true); - b#event#connect#leave_notify - ~callback:(fun _ -> GtkSignal.stop_emit (); true); - new tibutton ~widget:b ~name - - -class ticheck_button ~(widget : #GButton.toggle_button) ~name - ~parent_tree ~pos ?(insert_evbox=true) parent_window = -object(self) - val button = widget - inherit tiwidget ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - - method private class_name = "GButton.check_button" - - method private get_mandatory_props = [ "label" ] - - initializer - classe <- "check_button"; - proplist <- proplist @ - [ "border_width", new prop_int ~name:"border_width" ~init:"0" - ~set:(ftrue button#set_border_width); - "label", - new prop_string ~name:"label" ~init:name ~set: - begin fun v -> - button#remove (List.hd button#children)#coerce; - GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add (); - true - end - ] -end - -let new_ticheck_button ~name ?(listprop = []) = - new ticheck_button ~widget:(GButton.check_button ~label:name ()) ~name - - - -class titoggle_button ~(widget : #GButton.toggle_button) ~name - ~parent_tree ~pos ?(insert_evbox=true) parent_window = -object(self) - val button = widget - inherit tiwidget ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GButton.toggle_button" - - method private get_mandatory_props = [ "label" ] - - initializer - classe <- "toggle_button"; - proplist <- proplist @ - [ "border width", new prop_int ~name:"border_width" ~init:"0" - ~set:(ftrue button#set_border_width); - "label", - new prop_string ~name:"label" ~init:name ~set: - begin fun v -> - button#remove (List.hd button#children)#coerce; - GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add (); - true - end ] -end - -let new_titoggle_button ~name ?(listprop = []) = - let b = GButton.toggle_button ~label:name () in -(* b#connect#event#enter_notify - ~callback:(fun _ -> GtkSignal.stop_emit ()); - b#connect#event#leave_notify - ~callback:(fun _ -> GtkSignal.stop_emit ()); -*) - new titoggle_button ~name ~widget:b - - -class tiradio_button ~(widget : #GButton.radio_button) ~name:nname - ~parent_tree ~pos ?(insert_evbox=true) parent_window = -object(self) - val button = widget - inherit tiwidget ~name:nname ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - val group_prop = - new prop_enum_dyn ~values:(fun () -> !radio_button_pool) ~name:"group" - ~set:(fun () -> true) ~init:nname - - - method private class_name = "GButton.radio_button" - - method remove_me_without_undo () = - radio_button_pool := list_remove !radio_button_pool - ~f:(fun x -> x = name); - widget#remove_me_without_undo () - - method private get_mandatory_props = [ "label" ] - - method private emit_clean_proplist = - List.remove_assoc "group" widget#emit_clean_proplist - - method emit_initializer_code formatter = - let groupname = group_prop#get in - if name <> groupname then - Format.fprintf formatter "@ %s#set_group %s#group;" name groupname - - initializer - classe <- "radio_button"; - radio_button_pool := name :: !radio_button_pool; - List.iter - ~f:(fun x -> Propwin.update (Hashtbl.find widget_map x) true) - (List.tl !radio_button_pool); - - proplist <- proplist @ - [ "border_width", new prop_int ~name:"border_width" ~init:"0" - ~set:(ftrue button#set_border_width); - "label", - new prop_string ~name:"label" ~init:name ~set: - begin fun v -> - button#remove (List.hd button#children)#coerce; - GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add (); - true - end ; - "group", group_prop - ] -end - -let new_tiradio_button ~name ?(listprop = []) = - let b = GButton.radio_button ~label:name () in - (* - b#event#connect#enter_notify - ~callback:(fun _ -> b#misc#stop_emit ~name:"enter_notify_event"; true); - b#event#connect#leave_notify - ~callback:(fun _ -> b#misc#stop_emit ~name:"leave_notify_event"; true); - *) - new tiradio_button ~name ~widget:b - - - - -class tibutton_toolbar ~(widget : #GButton.button) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window ~toolbar = -object(self) - val button = widget - inherit tibutton ~name ~widget ~parent_tree ~pos ~insert_evbox - parent_window as button - - method private get_mandatory_props = - [ "text"; "tooltip"; "tooltip_private" ] - - method emit_init_code formatter ~packing = - Format.fprintf formatter "@ @[let %s =@ @[%s#insert_button" - name toolbar#name; - List.iter self#get_mandatory_props ~f: - begin fun name -> - Format.fprintf formatter "@ ~%s:%s" name - (List.assoc name proplist)#code - end; - Format.fprintf formatter "@ ()@ in@]@]" - - initializer - proplist <- List.remove_assoc "label" proplist -end - - -class titoggle_button_toolbar ~(widget : #GButton.toggle_button) ~name - ~parent_tree ~pos ?(insert_evbox=true) parent_window ~toolbar = -object(self) - val button = widget - inherit titoggle_button ~name ~widget ~parent_tree ~pos ~insert_evbox - parent_window as button - - method private get_mandatory_props = - [ "text"; "tooltip"; "tooltip_private" ] - - method emit_init_code formatter ~packing = - Format.fprintf formatter - "@ @[let %s =@ @[%s#insert_toggle_button" - name toolbar#name; - List.iter self#get_mandatory_props ~f: - begin fun name -> - Format.fprintf formatter "@ ~%s:%s" name - (List.assoc name proplist)#code - end; - Format.fprintf formatter "@ ()@ in@]@]" - - initializer - proplist <- List.remove_assoc "label" proplist -end - - -class tiradio_button_toolbar ~(widget : #GButton.radio_button) ~name - ~parent_tree ~pos ?(insert_evbox=true) parent_window ~toolbar = -object(self) - val button = widget - inherit tiradio_button ~name ~widget ~parent_tree ~pos ~insert_evbox - parent_window as button - - method private get_mandatory_props = - [ "text"; "tooltip"; "tooltip_private" ] - - method emit_init_code formatter ~packing = - Format.fprintf formatter - "@ @[let %s =@ @[%s#insert_radio_button" - name toolbar#name; - List.iter self#get_mandatory_props ~f: - begin fun name -> - Format.fprintf formatter "@ ~%s:%s" name - (List.assoc name proplist)#code - end; - Format.fprintf formatter "@ ()@ in@]@]" - - initializer - proplist <- List.remove_assoc "label" proplist -end - - - - -class titoolbar ~(widget : GToolbar2.toolbar2) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val toolbar = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GButton.toolbar" - - method private add child ~pos = - children <- children @ [child, `START] - - method private get_pos child = - let rec aux n = function - | [] -> failwith "toolbar::get_pos" - | (hd, _)::tl -> if hd = child then n else aux (n+1) tl in - aux 0 children - - method private make_child ~classe ?(pos = -1) ~name ~parent_tree - ?(insert_evbox = true) ?(listprop = []) parent_window = - match classe with - | "button" -> - let t = try List.assoc "text" listprop with Not_found -> "" in - let tt = try List.assoc "tooltip" listprop with Not_found -> "" in - let ptt = try List.assoc "tooltip_private" listprop - with Not_found -> "" in - let listp = List.fold_left ~f:(fun l p -> List.remove_assoc p l) - ~init:listprop - [ "text"; "tooltip"; "tooltip_private" ] in - let b = toolbar#insert_button ~text:t ~tooltip:tt - ~tooltip_private:ptt () in - let child = new tibutton_toolbar ~name ~widget:b ~pos:(-1) - ~insert_evbox:false ~parent_tree:stree parent_window ~toolbar:self in - let tp = new prop_string ~name:"text" ~init:t - ~set:(fun v -> - toolbar#set_text v (self#get_pos child); true) - and ttp = new prop_string ~name:"tooltip" ~init:tt - ~set:(fun _ -> true) - and pttp = new prop_string ~name:"tooltip_private" ~init:ptt - ~set:(fun _ -> true) in - child#add_to_proplist - [ "text", tp; "tooltip", ttp; "tooltip_private", pttp ]; - child - | "toggle_button" -> - let t = try List.assoc "text" listprop with Not_found -> "" in - let tt = try List.assoc "tooltip" listprop with Not_found -> "" in - let ptt = try List.assoc "tooltip_private" listprop - with Not_found -> "" in - let listp = List.fold_left ~f:(fun l p -> List.remove_assoc p l) - ~init:listprop - [ "text"; "tooltip"; "tooltip_private" ] in - let b = toolbar#insert_toggle_button ~text:t ~tooltip:tt - ~tooltip_private:ptt () in - let child = new titoggle_button_toolbar ~name ~widget:b ~pos:(-1) - ~insert_evbox:false ~parent_tree:stree parent_window ~toolbar:self in - let tp = new prop_string ~name:"text" ~init:t - ~set:(fun v -> toolbar#set_text v (self#get_pos child); true) - and ttp = new prop_string ~name:"tooltip" ~init:tt - ~set:(fun _ -> true) - and pttp = new prop_string ~name:"tooltip_private" ~init:ptt - ~set:(fun _ -> true) in - child#add_to_proplist - [ "text", tp; "tooltip", ttp; "tooltip_private", pttp ]; - child - | "radio_button" -> - let t = try List.assoc "text" listprop with Not_found -> "" in - let tt = try List.assoc "tooltip" listprop with Not_found -> "" in - let ptt = try List.assoc "tooltip_private" listprop - with Not_found -> "" in - let listp = List.fold_left ~f:(fun l p -> List.remove_assoc p l) - ~init:listprop - [ "text"; "tooltip"; "tooltip_private" ] in - let b = toolbar#insert_radio_button ~text:t ~tooltip:tt - ~tooltip_private:ptt () in - let child = new tiradio_button_toolbar ~name ~widget:b ~pos:(-1) - ~insert_evbox:false ~parent_tree:stree parent_window ~toolbar:self in - let tp = new prop_string ~name:"text" ~init:t - ~set:(fun v -> toolbar#set_text v (self#get_pos child); true) - and ttp = new prop_string ~name:"tooltip" ~init:tt - ~set:(fun _ -> true) - and pttp = new prop_string ~name:"tooltip_private" ~init:ptt - ~set:(fun _ -> true) in - child#add_to_proplist - [ "text", tp; "tooltip", ttp; "tooltip_private", pttp ]; - child - | _ -> failwith "toolbar" - - - - method remove child = - toolbar#remove (child#base); - children <- list_remove ~f:(fun (ch, _) -> ch = child) children; - - initializer - classe <- "toolbar"; - proplist <- proplist @ - [ "orientation", - new prop_orientation ~name:"orientation" ~init:"HORIZONTAL" - ~set:(ftrue toolbar#set_orientation); - "style", - new prop_toolbar_style ~name:"style" ~init:"BOTH" - ~set:(ftrue toolbar#set_style); - "space_size", - new prop_int ~name:"space_size" ~init:"5" - ~set:(ftrue toolbar#set_space_size); - "space_style", - new prop_toolbar_space_style ~name:"space_style" ~init:"EMPTY" - ~set:(ftrue toolbar#set_space_style); - "tooltips", - new prop_bool ~name:"tooltips" ~init:"true" - ~set:(ftrue toolbar#set_tooltips); - "button_relief", - new prop_relief_style ~name:"button_relief" ~init:"NORMAL" - ~set:(ftrue toolbar#set_button_relief) - ] -end - -let new_toolbar ~name ?(listprop = []) = - new titoolbar ~name ~widget:(GToolbar2.toolbar2 ()) - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiContainer.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiContainer.ml deleted file mode 100644 index ddf04d31f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiContainer.ml +++ /dev/null @@ -1,92 +0,0 @@ - -open Gtk -open GObj -open GContainer - -open Utils -open Property - -open TiBase - -(* for containers being able to have at least one child; - not for buttons (can't have children) *) - -class virtual ticontainer ~widget ~name - ?(insert_evbox=true) ~parent_tree ~pos parent_window = -object(self) - - val container = (widget : #container :> container) - - inherit tiwidget ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - -(* name of the add method: add for most bin widgets, - pack for boxes, add_with_viewport for scrolled windows... *) - method private name_of_add_method = "#add" - - method private add child ~pos = - container#add child#base; - children <- [child, `START]; - self#set_full_menu false; - tree_item#drag#dest_unset () - - method remove child = - container#remove child#base; - children <- []; - self#set_full_menu true; - tree_item#drag#dest_set ~actions:[`COPY] - [ { target = "STRING"; flags = []; info = 0} ] - - method private menu ~time = - let menu = GMenu.menu () and menu_add = GMenu.menu () in - List.iter - ~f:(fun n -> - let mi = GMenu.menu_item ~packing:menu_add#append ~label:n () - in mi#connect#activate - ~callback:(fun () -> self#add_child n ();()); ()) - widget_add_list; - let mi_add = GMenu.menu_item ~packing:menu#append - ~label:("add to " ^ name) () - and mi_remove = GMenu.menu_item ~packing:menu#append - ~label:("remove " ^ name) () - and mi_cut = GMenu.menu_item ~packing:menu#append ~label:"Cut" () - and mi_copy = GMenu.menu_item ~packing:menu#append ~label:"Copy" () - and mi_paste = GMenu.menu_item ~packing:menu#append ~label:"Paste" () in - mi_remove#connect#activate ~callback:self#remove_me; - mi_add#set_submenu menu_add; - mi_copy#connect#activate ~callback:self#copy; - mi_cut#connect#activate ~callback:self#cut; - if !selection <> "" - then begin mi_paste#connect#activate ~callback:self#paste; () end - else mi_paste#misc#set_sensitive false; - menu#popup ~button:3 ~time - - method emit_init_code c ~packing = - widget#emit_init_code c ~packing; - self#forall ~callback:(fun child -> child#emit_init_code c - ~packing:(name ^ self#name_of_add_method)) - - method emit_method_code c = - widget#emit_method_code c; - self#forall ~callback:(fun child -> child#emit_method_code c) - - method emit_initializer_code c = - widget#emit_initializer_code c; - self#forall ~callback:(fun child -> child#emit_initializer_code c) - - - initializer - proplist <- proplist @ - [ "border_width", new prop_int ~name:"border_width" ~init:"0" - ~set:(ftrue container#set_border_width) ]; - - tree_item#drag#dest_set ~actions:[`COPY] - [ { target = "STRING"; flags = []; info = 0} ]; - tree_item#drag#connect#data_received ~callback: - begin fun (context : drag_context) ~x ~y - (data : selection_data) ~info ~time -> - self#add_child data#data (); - context#finish ~success:true ~del:false ~time - end;() -end - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiEdit.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiEdit.ml deleted file mode 100644 index 4b0977bb6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiEdit.ml +++ /dev/null @@ -1,153 +0,0 @@ -open Utils -open Property - -open TiBase - - - -class tientry ~(widget : GEdit.entry) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val entry = widget - inherit tiwidget ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GEdit.entry" - initializer - classe <- "entry"; - proplist <- proplist @ - [ "visibility", - new prop_bool ~name:"visibility" ~init:"true" - ~set:(ftrue entry#set_visibility); - "editable", - new prop_bool ~name:"editable" ~init:"true" - ~set:(ftrue entry#set_editable) - ] -end - -let new_tientry ~name ?(listprop = []) = - new tientry ~name ~widget:(GEdit.entry ()) - - -class tispin_button ~(widget : GEdit.spin_button) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val spin_button = widget - inherit tientry ~widget:(widget :> GEdit.entry) ~name ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GEdit.spin_button" - initializer - classe <- "spin_button"; - proplist <- proplist @ - [ "digits", - new prop_int ~name:"digits" ~init:"0" - ~set:(ftrue spin_button#set_digits); - "update_policy", - new prop_spin_button_update_policy ~name:"update_policy" - ~init:"ALWAYS" - ~set:(ftrue spin_button#set_update_policy); - "numeric", - new prop_bool ~name:"numeric" ~init:"false" - ~set:(ftrue spin_button#set_numeric); - "wrap", - new prop_bool ~name:"wrap" ~init:"false" - ~set:(ftrue spin_button#set_wrap); - "shadow_type", - new prop_shadow ~name:"shadow_type" ~init:"NONE" - ~set:(ftrue spin_button#set_shadow_type); - "snap_to_ticks", - new prop_bool ~name:"snap_to_ticks" ~init:"false" - ~set:(ftrue spin_button#set_snap_to_ticks) - ] - -end - - -let get_adjustment () = - let rv = ref 0. and rl = ref 0. and ru = ref 100. and rsi = ref 1. - and rpi = ref 10. and rps = ref 10. in - let w = GWindow.window ~modal:true () in - let v = GPack.vbox ~packing:w#add () in - let l = GMisc.label ~text:"adjustment properties" ~packing:v#pack () in - let h1 = GPack.hbox ~packing:v#pack () in - let l1 = GMisc.label ~text:"value" ~packing:h1#pack () in - let e1 = GEdit.entry ~text:"0." ~packing:h1#pack () in - let h2 = GPack.hbox ~packing:v#pack () in - let l2 = GMisc.label ~text:"lower" ~packing:h2#pack () in - let e2 = GEdit.entry ~text:"0." ~packing:h2#pack () in - let h3 = GPack.hbox ~packing:v#pack () in - let l3 = GMisc.label ~text:"upper" ~packing:h3#pack () in - let e3 = GEdit.entry ~text:"100." ~packing:h3#pack () in - let h4 = GPack.hbox ~packing:v#pack () in - let l4 = GMisc.label ~text:"step_incr" ~packing:h4#pack () in - let e4 = GEdit.entry ~text:"1." ~packing:h4#pack () in - let h5 = GPack.hbox ~packing:v#pack () in - let l5 = GMisc.label ~text:"page_incr" ~packing:h5#pack () in - let e5 = GEdit.entry ~text:"10." ~packing:h5#pack () in - let h6 = GPack.hbox ~packing:v#pack () in - let l6 = GMisc.label ~text:"page_size" ~packing:h6#pack () in - let e6 = GEdit.entry ~text:"10." ~packing:h6#pack () in - let h7 = GPack.hbox ~packing:v#pack () in - let b1 = GButton.button ~label:"OK" ~packing:h7#pack () in - let b2 = GButton.button ~label:"Cancel" ~packing:h7#pack () in - w#show (); - b1#connect#clicked - ~callback:(fun () -> - begin - try rv := float_of_string e1#text with _ -> - try rv := float_of_int (int_of_string e1#text) with _ -> () end; - begin - try rl := float_of_string e2#text with _ -> - try rl := float_of_int (int_of_string e2#text) with _ -> () end; - begin - try ru := float_of_string e3#text with _ -> - try ru := float_of_int (int_of_string e3#text) with _ -> () end; - begin - try rsi := float_of_string e4#text with _ -> - try rsi := float_of_int (int_of_string e4#text) with _ -> () end; - begin - try rpi := float_of_string e5#text with _ -> - try rpi := float_of_int (int_of_string e5#text) with _ -> () end; - begin - try rps := float_of_string e6#text with _ -> - try rps := float_of_int (int_of_string e6#text) with _ -> () end; - w#destroy ()); - b2#connect#clicked ~callback:w#destroy; - w#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main (); - !rv, !rl, !ru, !rsi, !rpi, !rps - -let new_tispin_button ~name ?(listprop = []) = - let v, l, u, si, pi, ps = get_adjustment () in - new tispin_button ~name - ~widget:(GEdit.spin_button ~adjustment: - (GData.adjustment ~value:v ~lower:l ~upper:u - ~step_incr:si ~page_incr:pi ~page_size:ps ()) ()) - - - -class ticombo ~(widget : GEdit.combo) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object - val combo = widget - inherit tiwidget ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window - - method private class_name = "GEdit.combo" - initializer - classe <- "combo"; - proplist <- proplist @ - [ "use_arrows", - new prop_combo_use_arrows ~name:"use_arrows" ~init:"true" - ~set:(ftrue combo#set_use_arrows); - "case_sensitive", - new prop_bool ~name:"case_sensitive" ~init:"false" - ~set:(ftrue combo#set_case_sensitive) - ] -end - -let new_ticombo ~name ?(listprop = []) = - new ticombo ~name ~widget:(GEdit.combo ()) - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiList.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiList.ml deleted file mode 100644 index 770e19b73..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiList.ml +++ /dev/null @@ -1,66 +0,0 @@ - -open Utils -open Property - -open TiBase - -class ticlist ~(widget : 'a GList.clist) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window ~columns ~titles = - object(self) - val clist = widget - inherit tiwidget ~name ~widget ~parent_tree ~pos - ~insert_evbox parent_window as widget - - val param = parent_window#add_param - - method private class_name = "GList.clist" - - method private get_mandatory_props = [ "columns" ] - - method remove_me_without_undo () = - parent_window#remove_param param; - widget#remove_me_without_undo () - - method emit_init_code formatter ~packing = - Format.fprintf formatter - "@ @[let (%s : '%c GList.clist) =@ @[GList.clist" - name param; - List.iter self#get_mandatory_props ~f: - begin fun name -> - Format.fprintf formatter "@ ~%s:%s" name - (List.assoc name proplist)#code - end; - let packing = self#get_packing packing in - if packing <> "" then Format.fprintf formatter "@ %s" packing; - self#emit_prop_code formatter; - Format.fprintf formatter "@ ()@ in@]@]" - - - initializer - classe <- "clist"; - proplist <- proplist @ - [ "columns", - new prop_int ~name:"columns" ~init:(string_of_int columns) - ~set:(fun _ -> true); - "titles", - new prop_clist_titles ~name:"titles" ~init:(String.concat ~sep:" " titles) - ~set:(fun v -> - let v = Array.of_list v in - for i = 0 to Array.length v - 1 do - clist#set_column i ~title:v.(i) - done; - true) - ] -end - -let new_clist ~name ?(listprop = []) = - let c, lp = match listprop with - | [] -> (get_a_number "number of columns" 3), [] - | ("columns", n)::tl -> (int_of_string n), tl - | _ -> failwith "new_clist" - in - let rtitles = ref [] in - for i = c downto 1 do rtitles := ("column" ^(string_of_int i)):: !rtitles done; - new ticlist ~name ~widget:(GList.clist ~columns:c ~titles: !rtitles ()) ~columns:c ~titles: !rtitles - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiMisc.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiMisc.ml deleted file mode 100644 index f4f435a54..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiMisc.ml +++ /dev/null @@ -1,176 +0,0 @@ - -open Utils -open Property - -open TiBase -open TiContainer - - -class tiseparator ~(dir : Gtk.Tags.orientation) ~(widget : GObj.widget_full) - ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = -object - val separator = widget - inherit tiwidget ~name ~widget ~parent_tree ~pos parent_window ~insert_evbox - - method private class_name = - match dir with `VERTICAL -> "GMisc.separator `VERTICAL" - | `HORIZONTAL -> "GMisc.separator `HORIZONTAL" - initializer - classe <- - (match dir with `VERTICAL -> "vseparator" | `HORIZONTAL -> "hseparator") - -end - -let new_tihseparator ~name ?(listprop = []) = - new tiseparator ~dir: `HORIZONTAL ~name - ~widget:(GMisc.separator `HORIZONTAL ()) -let new_tivseparator ~name ?(listprop = []) = - new tiseparator ~dir: `VERTICAL ~name - ~widget:(GMisc.separator `VERTICAL ()) - - - - -class tistatusbar ~(widget : GMisc.statusbar) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val statusbar = widget - inherit ticontainer ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GMisc.statusbar" - - initializer - classe <- "statusbar" -end - -let new_tistatusbar ~name ?(listprop = []) = - new tistatusbar ~widget:(GMisc.statusbar ()) ~name - - - -class timisc ~(widget : GMisc.misc) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val misc = widget - inherit tiwidget ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = failwith "timisc::class_name" - - initializer - proplist <- proplist @ - [ "x_alignment", - new prop_float ~name:"x alignment" ~init:"0.5" ~min:0. ~max:1. - ~set:(fun v -> misc#set_alignment ~x:v (); true); - "y_alignment", - new prop_float ~name:"y alignment" ~init:"0.5" ~min:0. ~max:1. - ~set:(fun v -> misc#set_alignment ~y:v (); true); - "x_padding", - new prop_int ~name:"x padding" ~init:"0.5" - ~set:(fun v -> misc#set_padding ~x:v (); true); - "y_padding", - new prop_int ~name:"y padding" ~init:"0.5" - ~set:(fun v -> misc#set_padding ~y:v (); true) - - ] -end - - -class tiarrow ~(widget : GMisc.arrow) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val arrow = widget - inherit timisc ~name ~widget:(widget :> GMisc.misc) ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GMisc.arrow" - initializer - classe <- "arrow"; -end - - -(* TODO fenetre demandant kind et shadow -let new_tiarrow ~name = new tiarrow ~widget:(GMisc.arrow ()) ~name -*) - - -class tilabel ~(widget : GMisc.label) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val labelw = widget - inherit timisc ~name ~widget:(widget :> GMisc.misc) ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GMisc.label" - - method private get_mandatory_props = [ "text" ] - - initializer - classe <- "label"; - proplist <- proplist @ - [ "text", - new prop_string ~name:"text" ~init:name ~set:(ftrue labelw#set_text); - "line_wrap", - new prop_bool ~name:"line_wrap" ~init:"true" - ~set:(ftrue labelw#set_line_wrap) - ] -end - -let new_tilabel ~name ?(listprop = []) = - new tilabel ~widget:(GMisc.label ~text:name ()) ~name - - - - - -class ticolor_selection ~(widget : GMisc.color_selection) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val color_selection = widget - inherit tiwidget ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GMisc.color_selection" - - initializer - classe <- "color_selection"; - proplist <- proplist @ - [ "use_opacity", - new prop_bool ~name:"use_opacity" ~init:"false" - ~set:(ftrue color_selection#set_opacity); - "update_policy", - new prop_update_type ~name:"update_policy" ~init:"CONTINUOUS" - ~set:(ftrue color_selection#set_update_policy) - ] -end - -let new_ticolor_selection ~name ?(listprop = []) = - new ticolor_selection ~widget:(GMisc.color_selection ()) ~name - - -class tipixmap ~(widget : GMisc.pixmap) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val pixmap = widget - inherit timisc ~name ~widget:(widget :> GMisc.misc) ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GMisc.pixmap" - initializer - classe <- "pixmap"; - proplist <- proplist @ - [ "file", - new prop_file ~name:"file" ~init:"" - ~set:(fun v -> - pixmap#set_pixmap - (GDraw.pixmap_from_xpm ~window:parent_window#tiwin#widget - ~file:v ()); - true) - ] -end - -let new_tipixmap ~name ?(listprop = []) ~parent_tree ~pos ?(insert_evbox=true) (parent_window : window_and_tree0) = - new tipixmap ~widget:(GMisc.pixmap (GDraw.pixmap_from_xpm - ~window:parent_window#tiwin#widget ~file:"pixmap.xpm" ()) ()) ~name - ~parent_tree ~pos ~insert_evbox parent_window diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiPack.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiPack.ml deleted file mode 100644 index 291eec9d9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiPack.ml +++ /dev/null @@ -1,300 +0,0 @@ - -open Utils -open Property - -open TiContainer - -class tibox ~(dir : Gtk.Tags.orientation) ~(widget : GPack.box) - ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = - let class_name = - match dir with `VERTICAL -> "GPack.vbox" | _ -> "GPack.hbox" in -object(self) - val box = widget - inherit ticontainer ~name ~widget ~parent_tree ~pos ~insert_evbox - parent_window as container - - method private class_name = class_name - - method private name_of_add_method = "#pack" - -(* removes the ::expand ::fill ::padding in the proplist of a box - assumes that these are the only properties with a :: in the name *) - method private save_clean_proplist = - List.filter container#save_clean_proplist - ~f:(fun (n,p) -> - try - let i = String.index n ':' in - i = String.length n || n.[i+1] <> ':' - with Not_found -> true) - - method private emit_clean_proplist = - List.filter container#emit_clean_proplist - ~f:(fun (n,p) -> - try - let i = String.index n ':' in - i = String.length n || n.[i+1] <> ':' - with Not_found -> true) - - method change_name_in_proplist oldn newn = - proplist <- List.fold_left ~init:proplist ~f: - (fun pl propname -> - change_property_name (oldn ^ propname) (newn ^ propname) pl) - [ "::expand"; "::fill"; "::padding" ]; - Propwin.update self false - - method child_up child = - let pos = list_pos ~item:child (List.map ~f:fst children) in - if pos > 0 then begin - box#reorder_child child#base ~pos:(pos-1); - children <- list_reorder_up children ~pos; - stree#item_up ~pos - end - - method child_down child = - let pos = list_pos ~item:child (List.map ~f:fst children) in - if pos < (List.length children - 1) then begin - box#reorder_child child#base ~pos:(pos+1); - children <- list_reorder_down children ~pos; - stree#item_up ~pos:(pos+1) - end - - method private add child ~pos = - box#pack child#base; - if pos < 0 then begin - children <- children @ [(child, `START)] - end - else begin - children <- list_insert ~item:(child, `START) children ~pos; - box#reorder_child child#base ~pos - end; - let n = child#name in - let expand = - new prop_bool ~name:"expand" ~init:"false" ~set: - begin fun v -> - box#set_child_packing (child#base) ~expand:v; - Propwin.update child false; - Propwin.update self false; true - end - and fill = - new prop_bool ~name:"fill" ~init:"true" ~set: - begin fun v -> - box#set_child_packing (child#base) ~fill:v; - Propwin.update child false; - Propwin.update self false; true - end - and padding = - new prop_int ~name:"padding" ~init:"0" ~set: - begin fun v -> - box#set_child_packing (child#base) ~padding:v; - Propwin.update child false; - Propwin.update self false; true - end - in - proplist <- proplist @ - [ (n ^ "::expand"), expand; - (n ^ "::fill"), fill; - (n ^ "::padding"), padding ]; - child#add_to_proplist - [ "expand", expand; "fill", fill; "padding", padding ]; - Propwin.update self true - - - method remove child = - box#remove (child#base); - children <- list_remove ~f:(fun (ch, _) -> ch = child) children; - let n = child#name in - proplist <- List.fold_left ~init:proplist - ~f:(fun acc n -> List.remove_assoc n acc) - [ (n ^ "::expand"); (n ^ "::fill"); (n ^ "::padding") ]; - Propwin.update self true - - initializer - classe <- (match dir with `VERTICAL -> "vbox" | _ -> "hbox"); - proplist <- proplist @ - [ "homogeneous", - new prop_bool ~name:"homogeneous" ~init:"false" - ~set:(ftrue box#set_homogeneous); - "spacing", - new prop_int ~name:"spacing" ~init:"0" - ~set:(ftrue box#set_spacing) - ] -end - -class tihbox = tibox ~dir:`HORIZONTAL -class tivbox = tibox ~dir:`VERTICAL - -let new_tihbox ~name ?(listprop = []) = new tihbox ~widget:(GPack.hbox ()) ~name -let new_tivbox ~name ?(listprop = []) = new tivbox ~widget:(GPack.vbox ()) ~name - - - - -class tibbox ~(dir : Gtk.Tags.orientation) ~(widget : GPack.button_box) - ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = - let class_name = - match dir with `VERTICAL -> "GPack.button_box `VERTICAL" - | _ -> "GPack.button_box `HORIZONTAL" in -object(self) - val bbox = widget - inherit tibox ~dir ~widget:(widget :> GPack.box) - ~name ~parent_tree ~pos ~insert_evbox parent_window - - method private class_name = class_name - -initializer - classe <- (match dir with `VERTICAL -> "vbutton_box" | _ -> "hbutton_box"); - proplist <- proplist @ - [ "layout", - new prop_button_box_style ~name:"layout" ~init:"DEFAULT_STYLE" - ~set:(ftrue bbox#set_layout); - "spacing", - new prop_int ~name:"spacing" - ~init:(match dir with `VERTICAL -> "10" | _ -> "30") -(* donne -1 (defaut) -(GtkPack.BBox.get_spacing bbox#as_button_box) *) - ~set:(fun v -> bbox#set_spacing v; - GtkBase.Widget.queue_resize bbox#as_widget; true); - "child_width", - new prop_int ~name:"child_width" ~init:"85" - ~set:(fun v -> - bbox#set_child_size ~width:v - ~height:(int_of_string (self#get_property "child_height")) (); - GtkBase.Widget.queue_resize bbox#as_widget; true); - "child_height", - new prop_int ~name:"child_height" ~init:"27" - ~set:(fun v -> - bbox#set_child_size ~height:v - ~width:(int_of_string (self#get_property "child_width")) (); - GtkBase.Widget.queue_resize bbox#as_widget; true); - "child_ipad_x", - new prop_int ~name:"child_ipad_x" ~init:"7" - ~set:(fun v -> - bbox#set_child_ipadding ~x:v - ~y:(int_of_string (self#get_property "child_ipad_y")) (); - GtkBase.Widget.queue_resize bbox#as_widget; true); - "child_ipad_y", - new prop_int ~name:"child_ipad_y" ~init:"0" - ~set:(fun v -> - bbox#set_child_ipadding ~y:v - ~x:(int_of_string (self#get_property "child_ipad_x")) (); - GtkBase.Widget.queue_resize bbox#as_widget; true); - ] -end - - -(* TODO: pour proplist/spacing il faudrait implementer - les fonctions get_spacing ... (voir dans gtkPack) *) - -class tihbutton_box = tibbox ~dir:`HORIZONTAL -class tivbutton_box = tibbox ~dir:`VERTICAL - -let new_tihbutton_box ~name ?(listprop = []) = - new tihbutton_box ~widget:(GPack.button_box `HORIZONTAL ()) ~name - -let new_tivbutton_box ~name ?(listprop = []) = - new tivbutton_box ~widget:(GPack.button_box `VERTICAL ()) ~name - - - - -let get_fixed_pos () = - let rx = ref 0 and ry = ref 0 in - let w = GWindow.window ~modal:true () in - let v = GPack.vbox ~packing:w#add () in - let l = GMisc.label ~text:"Enter position for child" ~packing:v#pack () in - let h1 = GPack.hbox ~packing:v#pack () in - let l1 = GMisc.label ~text:"x:" ~packing:h1#pack () in - let e1 = GEdit.entry ~text:"0" ~packing:h1#pack () in - let h2 = GPack.hbox ~packing:v#pack () in - let l2 = GMisc.label ~text:"y" ~packing:h2#pack () in - let e2 = GEdit.entry ~text:"0" ~packing:h2#pack () in - let h7 = GPack.hbox ~packing:v#pack () in - let b1 = GButton.button ~label:"OK" ~packing:h7#pack () in - let b2 = GButton.button ~label:"Cancel" ~packing:h7#pack () in - w#show (); - b1#connect#clicked - ~callback:(fun () -> - begin - try rx := int_of_string e1#text with _ -> () end; - begin - try ry := int_of_string e2#text with _ -> () end; - w#destroy ()); - b2#connect#clicked ~callback:w#destroy; - w#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main (); - !rx, !ry - - -class tifixed ~(widget : GPack.fixed) - ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = -object(self) - val fixed = widget - inherit ticontainer ~widget - ~name ~parent_tree ~pos ~insert_evbox parent_window - - method private class_name = "GPack.fixed" - - method private add child ~pos = - let x, y = get_fixed_pos () in - fixed#put child#base ~x ~y; - children <- children @ [(child, `START)] - initializer - classe <- "fixed" -end - -let new_tifixed ~name ?(listprop = []) = - new tifixed ~widget:(GPack.fixed ()) ~name - - - - - -class tinotebook ~(widget : GPack.notebook) ~name ~parent_tree ~pos - ?(insert_evbox=true) parent_window = -object(self) - val notebook = widget - inherit ticontainer ~name ~widget ~insert_evbox - ~parent_tree ~pos parent_window as widget - - method private class_name = "GPack.notebook" - - method private add child ~pos = - children <- children @ [child, `START]; - notebook#insert_page child#base ~pos; - child#add_to_proplist - [ "tab_label", - new prop_string ~name:"tab_label" ~init:"" - ~set:(fun v -> notebook#set_page - ~tab_label:((GMisc.label ~text:v())#coerce) child#base; true) - ] - - - initializer - classe <- "notebook"; - proplist <- proplist @ - [ "tab_pos", - new prop_position ~name:"tab_ pos" ~init:"TOP" - ~set:(ftrue notebook#set_tab_pos); - "show_tabs", - new prop_bool ~name:"show_tabs" ~init:"true" - ~set:(ftrue notebook#set_show_tabs); - "homogeneous_tabs", - new prop_bool ~name:"homogeneous_tabs" ~init:"true" - ~set:(ftrue notebook#set_homogeneous_tabs); - "show_border", - new prop_bool ~name:"show_border" ~init:"true" - ~set:(ftrue notebook#set_show_border); - "scrollable", - new prop_bool ~name:"scrollable" ~init:"false" - ~set:(ftrue notebook#set_scrollable); - "tab_border", - new prop_int ~name:"tab_border" ~init:"2" - ~set:(ftrue notebook#set_tab_border); - "popup_enable", - new prop_bool ~name:"popup_enable" ~init:"false" - ~set:(ftrue notebook#set_popup) - ] -end - -let new_tinotebook ~name ?(listprop = []) = - new tinotebook ~widget:(GPack.notebook ()) ~name diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiWidget.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiWidget.ml deleted file mode 100644 index 5a6e3ac01..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiWidget.ml +++ /dev/null @@ -1,43 +0,0 @@ - -let new_class_list (* : - (string * - (name:string -> ?listprop:string list -> - parent_tree:GTree2.tree -> pos:int -> - ?insert_evbox:bool -> - - TiBase.window_and_tree0 -> TiBase.tiwidget0)) list *) -= [ - "window", TiWindow.new_tiwindow; - "hbox", TiPack.new_tihbox; - "vbox", TiPack.new_tivbox; - "hbutton_box", TiPack.new_tihbutton_box; - "vbutton_box", TiPack.new_tivbutton_box; - "fixed", TiPack.new_tifixed; - "notebook", TiPack.new_tinotebook; - "button", TiButton.new_tibutton; - "check_button", TiButton.new_ticheck_button; - "toggle_button", TiButton.new_titoggle_button; - "radio_button", TiButton.new_tiradio_button; - "toolbar", TiButton.new_toolbar; - "hseparator", TiMisc.new_tihseparator; - "vseparator", TiMisc.new_tivseparator; - "statusbar", TiMisc.new_tistatusbar; - "label", TiMisc.new_tilabel; - "color_selection", TiMisc.new_ticolor_selection; - "pixmap", TiMisc.new_tipixmap; - "frame", TiBin.new_tiframe; - "aspect_frame", TiBin.new_tiaspect_frame; - "handle_box", TiBin.new_handle_box; - "viewport", TiBin.new_viewport; - "event_box", TiBin.new_event_box; - "scrolled_window", TiBin.new_tiscrolled_window; - "entry", TiEdit.new_tientry; - "spin_button", TiEdit.new_tispin_button; - "combo", TiEdit.new_ticombo; - "clist", TiList.new_clist -] - -let _ = - TiBase.new_tiwidget := - (fun ~classe ?(pos = -1) ~name ~parent_tree ?insert_evbox ?(listprop = []) -> (List.assoc classe new_class_list) ~pos ~name ~parent_tree ?insert_evbox ~listprop) - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiWindow.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiWindow.ml deleted file mode 100644 index b44b4d479..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tiWindow.ml +++ /dev/null @@ -1,117 +0,0 @@ - -open Utils -open Property - -open TiBase -open TiContainer - - -class tiwindow ~widget ~name ~parent_tree ~pos ?(insert_evbox=true) - parent_window = -object(self) - val window = widget - inherit ticontainer ~name ~widget - ~insert_evbox:false ~parent_tree ~pos parent_window as container - - method connect_event = window#event#connect - - method private class_name = "GWindow.window" - - method private get_mandatory_props = [ "title" ] - -(* method private save_clean_proplist = - List.remove_assoc "title" container#save_clean_proplist - - method private emit_clean_proplist plist = - List.remove_assoc "title" (container#emit_clean_proplist plist) -*) - method remove_me () = - let sref = ref "" in - self#save_to_string sref; - let lexbuf = Lexing.from_string !sref in - let node = Load_parser.window Load_lexer.token lexbuf in - add_undo (Add_window node); - self#remove_me_without_undo () - - method copy () = self#copy_to_sel window_selection - - method remove_me_without_undo () = - self#forall ~callback:(fun tiw -> tiw#remove_me_without_undo ()); - parent_window#remove_sel (self : #tiwidget0 :> tiwidget0); - name_list := list_remove !name_list ~f:(fun n -> n=name); - Hashtbl.remove widget_map name; - Propwin.remove name; - widget#destroy () - - method private get_packing packing = "" - - method emit_code f param_list = - let param_string = - match param_list with - | [] -> "" - | _ -> "['" ^ - (String.concat ~sep:", '" - (List.map ~f:(fun c -> (String.make 1 c)) param_list)) ^ - "] " in - Format.fprintf f "(* Code for %s *)@\n@\n@[class %s%s () =" - name param_string name; - self#emit_init_code f ~packing:""; - Format.fprintf f "@]@\n@[object (self)"; - self#emit_method_code f; - Format.fprintf f "@ method show () = %s#show ()" name; - Format.fprintf f "@ @[initializer"; - self#emit_initializer_code f; - Format.fprintf f "@ ()@]@]@ end@\n@\n" - -(* method private save_start formatter = - Format.fprintf formatter "@[<0>@\n@[<2>" name; - Format.fprintf formatter "@\ntitle=\"%s\"" - (List.assoc "title" proplist)#get -*) - method private save_end formatter = - Format.fprintf formatter "@]@\n@\n@]" - - method private menu ~time = - let menu = GMenu.menu () and menu_add = GMenu.menu () in - List.iter - ~f:(fun n -> - let mi = GMenu.menu_item ~packing:menu_add#append ~label:n () - in mi#connect#activate - ~callback:(fun () -> self#add_child n (); ()); ()) - widget_add_list; - let mi_add = GMenu.menu_item ~packing:menu#append ~label:("add to "^ name) () - and mi_paste = GMenu.menu_item ~packing:menu#append ~label:"Paste" () - in - mi_add#set_submenu menu_add; - if !selection <> "" - then begin mi_paste#connect#activate ~callback:self#paste; () end - else mi_paste#misc#set_sensitive false; - menu#popup ~button:3 ~time - - - initializer - classe <- "window"; - window#set_title name; - proplist <- proplist @ - [ "title", - new prop_string ~name:"title" ~init:name ~set:(ftrue window#set_title); - "allow_shrink", new prop_bool ~name:"allow_shrink" ~init:"false" - ~set:(ftrue window#set_allow_shrink); - "allow_grow", new prop_bool ~name:"allow_grow" ~init:"true" - ~set:(ftrue window#set_allow_grow); - "auto_shrink", new prop_bool ~name:"auto_shrink" ~init:"false" - ~set:(ftrue window#set_auto_shrink); - "x position", new prop_int ~name:"x" ~init:"-2" - ~set:(fun x -> window#misc#set_geometry ~x (); true); - "y position", new prop_int ~name:"y" ~init:"-2" - ~set:(fun y -> window#misc#set_geometry ~y (); true) ] -end - -let new_tiwindow ~name ?(listprop = []) = - let w = GWindow.window ~show:true () in - w#misc#set_can_focus false; - w#misc#set_can_default false; - new tiwindow ~widget:w ~name - - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/togglebutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/togglebutton.xpm deleted file mode 100644 index f29d76972..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/togglebutton.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *togglebutton_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+..................O+", -"+. O+", -"+. XXXXXXXXXXXXXXXXO+", -"+. XXXXXXXXXXXXXXXXO+", -"+. XXX XXX XXX XXO+", -"+. XX XXX XX XX XXO+", -"+. XX XXX XX XX XXO+", -"+. XX XXX XX X X XXO+", -"+. XX XXX XX XX XXO+", -"+. XX XXX XX XX XXO+", -"+. XXX XXX XXX XXO+", -"+. XXXXXXXXXXXXXXXXO+", -"+. XXXXXXXXXXXXXXXXO+", -"+. XXXXXXXXXXXXXXXXO+", -"+OOOOOOOOOOOOOOOOOOO+", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/toolbar.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/toolbar.xpm deleted file mode 100644 index d9a521716..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/toolbar.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *toolbar_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+OOOOOOOOOOOOOOOOOOO ", -"+OXXXXXXXXXXXXXXXXX. ", -"+OXOOOO OOOO OOOO X. ", -"+OXOXXX OXXX OXXX X. ", -"+OXOXXX OXXX OXXX X. ", -"+OXO O O X. ", -"+OXXXXXXXXXXXXXXXXX. ", -"+O.................. ", -"+ ", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tree_minus.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tree_minus.xpm deleted file mode 100644 index cce067910..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tree_minus.xpm +++ /dev/null @@ -1,18 +0,0 @@ -/* XPM */ -static char *tree_minus[] = { -/* width height num_colors chars_per_pixel */ -" 9 9 2 1", -/* colors */ -". c #000000", -"# c #f8fcf8", -/* pixels */ -".........", -".#######.", -".#######.", -".#######.", -".#.....#.", -".#######.", -".#######.", -".#######.", -"........." -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tree_plus.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tree_plus.xpm deleted file mode 100644 index d0ba80ca2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/tree_plus.xpm +++ /dev/null @@ -1,18 +0,0 @@ -/* XPM */ -static char *tree_plus[] = { -/* width height num_colors chars_per_pixel */ -" 9 9 2 1", -/* colors */ -". c #000000", -"# c #f8fcf8", -/* pixels */ -".........", -".#######.", -".###.###.", -".###.###.", -".#.....#.", -".###.###.", -".###.###.", -".#######.", -"........." -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/utils.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/utils.ml deleted file mode 100644 index 0b37975c7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/utils.ml +++ /dev/null @@ -1,353 +0,0 @@ -(* $Id$ *) - -open GObj - -open Common - -external test_modifier : Gdk.Tags.modifier -> int -> bool - = "ml_test_GdkModifier_val" - - -(************* types *************) -(* used in the load_parser and for the selection *) - -(* widget: class * name * property list - where property = name * value_string *) -type yywidget = string * string * (string * string) list -type yywidget_tree = Node of yywidget * yywidget_tree list - - -(*********** some utility functions **************) -let rec list_remove ~f = function - | [] -> [] - | hd :: tl -> if f hd then tl else hd :: (list_remove ~f tl) - - -(* cut the list at the element elt; elt stays in tail; - hd stays in reverse order *) -let cut_list ~item l = - let rec aux h t = match t with - | hd :: tl -> if hd = item then h, t - else aux (hd :: h) tl - | [] -> failwith "cut_list" - in aux [] l - -let list_pos ~item l = - let rec aux pos = function - | [] -> raise Not_found - | hd :: tl -> if hd = item then pos else aux (pos+1) tl - in aux 0 l - -(* moves the pos element up; pos is >= 1; - the first element is numbered 0 *) -let rec list_reorder_up ~pos = function - | hd1 :: hd2 :: tl when pos = 1 -> hd2 :: hd1 :: tl - | hd :: tl when pos > 1 -> hd :: (list_reorder_up ~pos:(pos-1) tl) - | _ -> failwith "list_reorder" - -(* moves the pos element down; pos is < length of l - 1; - the first element is numbered 0 *) -let rec list_reorder_down ~pos = - list_reorder_up ~pos:(pos+1) - - -let rec list_insert ~item l ~pos = - if pos=0 then item :: l - else - match l with - | [] -> failwith "list_insert" - | hd :: tl -> hd :: (list_insert ~item tl ~pos:(pos-1)) - - -let rec change_property_name oldname newname = function - | (n, p) :: tl when oldname = n -> (newname, p) :: tl - | (n, p) :: tl -> (n, p) :: change_property_name oldname newname tl - | [] -> failwith "change_property_name: name not found" - - - -(* contains the list of names of widgets in the current project; - used to test if a name is already used; - a name is added to the list when a tiwrapper is created (in - the initilizer part of tiwrapper, - it is removed when the widget is removed from his parent, - in method remove_me of tiwrapper *) -let name_list = ref ([] : string list) - -let split name = - let l = String.length name in - let i = ref (l-1) in - while !i >= 0 && name.[!i] >= '0' && name.[!i] <= '9' do decr i done; - if !i = l-1 then - name, (-1) - else - (String.sub name ~pos:0 ~len:(!i+1)), - int_of_string (String.sub name ~pos:(!i+1) ~len:(l- !i-1)) - -let test_unique name = not (List.mem name !name_list) - -let make_new_name ?(index=1) base = - let index, name = - if index = -1 then ref 1, ref base - else ref index, ref (base ^ (string_of_int index)) in - while not (test_unique !name) do - incr index; - name := base ^ (string_of_int !index) - done; - !name - -let change_name name = - let base, index = split name in make_new_name base ~index - -let message s = - let w = GWindow.window ~show:true ~modal:true () in - let v = GPack.vbox ~packing:w#add () in - let l = GMisc.label ~text:s ~packing:v#add () in - let b = GButton. button ~label:"OK" ~packing:v#add () in - b#connect#clicked ~callback:w#destroy; - w#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main () - -let message_name () = message "name already in use\npick a new name" - -(* better: use a spin button *) -let get_a_number s default= - let res = ref default in - let w = GWindow.window ~show:true ~modal:true () in - let v = GPack.vbox ~packing:w#add () in - let l = GMisc.label ~text:s ~packing:v#add () in - let e = GEdit.entry ~text:(string_of_int default) ~packing:v#add () in - let b = GButton. button ~label:"OK" ~packing:v#add () in - b#connect#clicked ~callback:(fun () -> - begin try res := int_of_string e#text with Failure _ -> () end; - w#destroy ()); - w#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main (); - !res - - -(*************** file selection *****************) - -let get_filename ~callback:set_filename ?(dir="") () = - let res = ref false in - let file_selection = GWindow.file_selection ~modal:true () in - if dir <> "" then file_selection#set_filename dir; - file_selection#show (); - file_selection#ok_button#connect#clicked - ~callback:(fun () -> set_filename file_selection#get_filename; - res := true; - file_selection#destroy ()); - file_selection#cancel_button#connect#clicked - ~callback:file_selection#destroy; - file_selection#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main (); - !res - -(* returns the directory and the file name (without the extension) *) -let split_filename filename ~ext = - let lext = String.length ext in - let l = String.length filename in - let filename, l = - if (l > lext) && (String.sub filename ~pos:(l - lext) ~len:lext = ext) - then (String.sub filename ~pos:0 ~len:(l-lext)), l-lext - else filename, l in - let i = 1 + (String.rindex filename '/') in - String.sub filename ~pos:0 ~len:i, - String.sub filename ~pos:i ~len:(l-i) - - -(****************** ML signals *****************) -let signal_id = ref 0 - -let next_callback_id () : GtkSignal.id = - decr signal_id; Obj.magic (!signal_id : int) - -class ['a] signal = object - val mutable callbacks : (GtkSignal.id * ('a -> unit)) list = [] - method connect ~callback ~after = - let id = next_callback_id () in - callbacks <- - if after then callbacks @ [id,callback] else (id,callback)::callbacks; - id - method call arg = - List.iter callbacks ~f:(fun (_,f) -> f arg) - method disconnect id = - List.mem_assoc id callbacks && - (callbacks <- List.remove_assoc id callbacks; true) - method reset () = callbacks <- [] -end - -class type disconnector = - object - method disconnect : GtkSignal.id -> bool - method reset : unit -> unit - end - -class has_ml_signals = object - val mutable disconnectors = [] - method private add_signal (sgn : 'a signal) = - disconnectors <- (sgn :> disconnector) :: disconnectors - - method disconnect id = - List.exists disconnectors ~f:(fun d -> d#disconnect id) -end - - -(****************** undo information ********************) - -type undo_action = - | Add of string * yywidget_tree * int - | Remove of string - | Property of prop * string - | Add_window of yywidget_tree - | Remove_window of string - -let undo_info = ref ([] : undo_action list) -let next_undo_info = ref ([] : undo_action list) -let last_action_was_undo = ref false - -let add_undo f = - undo_info := f :: !undo_info; - last_action_was_undo := false - - -(**********************************************************) -let ftrue f = fun x -> f x; true - - -(**********************************************************) - -let toolbar_child_prop kind = - let rt = ref "" and rtt = ref "" and rptt = ref "" and ok = ref false in - let w = GWindow.window ~modal:true () in - let v = GPack.vbox ~packing:w#add () in - let h1 = GPack.hbox ~packing:v#pack () in - let h2 = GPack.hbox ~packing:v#pack () in - let h3 = GPack.hbox ~packing:v#pack () in - let h4 = GPack.hbox ~packing:v#pack () in - let l1 = GMisc.label ~text:"text" ~packing:h1#pack () in - let e1 = GEdit.entry ~packing:h1#pack () in - let l2 = GMisc.label ~text:"tooltip_text" ~packing:h2#pack () in - let e2 = GEdit.entry ~packing:h2#pack () in - let l3 = GMisc.label ~text:"private_text" ~packing:h3#pack () in - let e3 = GEdit.entry ~packing:h3#pack () in - let b1 = GButton.button ~label:"OK" ~packing:h4#pack () in - let b2 = GButton.button ~label:"Cancel" ~packing:h4#pack () in - w#show (); - b1#connect#clicked - ~callback:(fun () -> rt := e1#text; rtt := e2#text; - rptt := e3#text; ok := true; - w#destroy ()); - b2#connect#clicked ~callback:w#destroy; - w#connect#destroy ~callback:GMain.Main.quit; - GMain.Main.main (); - !ok, !rt, !rtt, !rptt - - - -(**********************************************************) - -let get5floats_from_string s = - try - let n1 = String.index s ' ' in - let f1 = float_of_string (String.sub s ~pos:0 ~len:(n1-1)) in - let n2 = String.index_from s (n1+1) ' ' in - let f2 = float_of_string (String.sub s ~pos:(n1+1) ~len:(n2-1)) in - let n3 = String.index_from s (n2+1) ' ' in - let f3 = float_of_string (String.sub s ~pos:(n2+1) ~len:(n3-1)) in - let n4 = String.index_from s (n3+1) ' ' in - let f4 = float_of_string (String.sub s ~pos:(n3+1) ~len:(n4-1)) in - let f5 = float_of_string (String.sub s ~pos:(n4+1) ~len: - ((String.length s) -1)) in - f1, f2, f3, f4, f5 - with _ -> failwith "get5floats_of_string" - - - -(**********************************************************) - -exception Float_of_string -let my_float_of_string s = - let l = String.length s in - if l=0 then raise Float_of_string; - let sign, d = match s.[0] with - | '+' -> 1, 1 - | '-' -> -1, 1 - | _ -> 1, 0 in - let m, p = - let p = - try - String.index s '.' - with Not_found -> l in - if p=d then 0, p - else - try int_of_string (String.sub s ~pos:d ~len:(p-d)), p - with Failure "int_of_string" -> raise Float_of_string - in - if p=l then float_of_int m - else begin - let f = ref 0. and r = ref 0.1 in - for i = p+1 to l-1 do - let k = (int_of_char s.[i]) - 48 in - if k > 9 || k < 0 then raise Float_of_string; - f := !f +. (float_of_int k) *. !r; - r := !r *. 0.1 - done; - !f +. (float_of_int m) - end - - - - -class entry_float obj ~init = let rv = ref init in -object - inherit GEdit.entry obj as entry - method value = - try - let v = my_float_of_string entry#text in - rv := v; - v - with Float_of_string -> - let pop = GWindow.window ~title:"error" ~modal:true () in - let vb = GPack.vbox ~packing:pop#add () in - let l = GMisc.label ~text:"value must be a float" ~packing:vb#pack () in - let b = GButton.button ~label:"OK" ~packing:vb#pack () in - b#connect#clicked ~callback:pop#destroy; - pop#event#connect#delete ~callback:(fun _ -> pop#destroy (); true); - pop#connect#destroy ~callback:GtkMain.Main.quit; - pop#show (); - GtkMain.Main.main (); - entry#set_text (string_of_float !rv); - !rv -end - - -let set_editable ?editable ?(width = -2) ?(height = -2) w = - Gaux.may editable ~f:(GtkEdit.Editable.set_editable w); - if width <> -2 || height <> -2 then GtkBase.Widget.set_usize w ~width ~height - - -let entry_float ~init ?max_length ?visibility ?editable - ?width ?height ?packing ?show () = - let w = GtkEdit.Entry.create ?max_length () in - GtkEdit.Entry.set w ~text:(string_of_float init) ?visibility; - set_editable w ?editable ?width ?height; - pack_return (new entry_float w ~init) ~packing ~show - - -(*************************************************************) - - -let split_string s ~sep = - let l = String.length s in - let r = ref [] in - let j = ref 0 in - for i = 0 to l-1 do - if String.unsafe_get s i = sep then begin - r := (String.sub s ~pos:!j ~len:(i - !j)) :: !r; - j := i + 1 - end - done; - List.rev ((String.sub s ~pos:!j ~len:(l - !j)) :: !r) - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vbox.xpm deleted file mode 100644 index 1c557b021..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vbox.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *vbox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 4 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c Gray100", -/* pixels */ -"oooooooooooooooooooo ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"o................... ", -" ", -"oooooooooooooooooooo ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"o................... ", -" ", -"oooooooooooooooooooo ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"oXXXXXXXXXXXXXXXXXX. ", -"o................... ", -" " -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vbuttonbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vbuttonbox.xpm deleted file mode 100644 index 0c2bc9598..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vbuttonbox.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -static char *vbuttonbox_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 6 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray100", -"+ c None", -/* pixels */ -"+++++++++++++++++++++", -"+++++++++++++++++++++", -"++++++++OOOOO +++++++", -"++++++++OXXX. +++++++", -"++++++++OXXX. +++++++", -"++++++++O.... +++++++", -"++++++++ +++++++", -"+++++++++++++++++++++", -"++++++++OOOOO +++++++", -"++++++++OXXX. +++++++", -"++++++++OXXX. +++++++", -"++++++++O.... +++++++", -"++++++++ +++++++", -"+++++++++++++++++++++", -"++++++++OOOOO +++++++", -"++++++++OXXX. +++++++", -"++++++++OXXX. +++++++", -"++++++++O.... +++++++", -"++++++++ +++++++", -"+++++++++++++++++++++", -"+++++++++++++++++++++" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/viewport.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/viewport.xpm deleted file mode 100644 index 71e5e80cf..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/viewport.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char *viewport_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 7 1", -" c Gray0", -". c #7b7b7b", -"X c #d6d6d6", -"o c #b3cece", -"O c Gray87", -"+ c Gray100", -"@ c None", -/* pixels */ -"@@@@@@@@@@@@@@@@@@@@@", -"@...................@", -"@. +O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@. XXXXXXXXXXXXXXX+O@", -"@.+++++++++++++++++O@", -"@.OOOOOOOOOOOOOOOOOO@", -"@@@@@@@@@@@@@@@@@@@@@" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vseparator.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vseparator.xpm deleted file mode 100644 index 3455f74d9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/vseparator.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *vseparator_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 4 1", -" c #7b7b7b", -". c #b3cece", -"X c Gray100", -"o c None", -/* pixels */ -"ooooooooooooooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"oooooooooo Xooooooooo", -"ooooooooooooooooooooo" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/window.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/window.xpm deleted file mode 100644 index 8407e2836..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/radtest/window.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -static char *window_xpm[] = { -/* columns rows colors chars-per-pixel */ -"21 21 11 1", -" c Gray0", -". c #00007b", -"X c #7b7b7b", -"o c Green", -"O c Cyan", -"+ c Red", -"@ c Yellow", -"# c #d6d6d6", -"$ c #b3cece", -"% c Gray100", -"& c None", -/* pixels */ -"&&&&&&&&&&&&&&&&&&&&&", -"&&&&&&&&&&&&&&&&&&&&&", -"&&&&&&&&&&&&&&&&&&&&&", -"XXXXXXXXXXXXXXXXXXXX&", -"X.+@...............X ", -"X.Oo.%%%.%%.....# #X ", -"XXXXXXXXXXXXXXXXXXXX ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"X#%%%%%%%%%%%%%%%%%X ", -"XXXXXXXXXXXXXXXXXXXX ", -"& ", -"&&&&&&&&&&&&&&&&&&&&&", -"&&&&&&&&&&&&&&&&&&&&&" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/unison/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/unison/.cvsignore deleted file mode 100644 index 31706abd2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/unison/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -unison-* diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/unison/README b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/unison/README deleted file mode 100644 index e98697ada..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/unison/README +++ /dev/null @@ -1,10 +0,0 @@ - A GUI for Unison - -As of version 2.6.1, unison works with LablGTK snapshots. -You may just compile it after having installed lablgtk. - - http://www.cis.upenn.edu/~bcpierce/unison/ - -Jacques Garrigue - -$Id$ diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/config.make.nt b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/config.make.nt deleted file mode 100644 index 3fe6b56ac..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/config.make.nt +++ /dev/null @@ -1,6 +0,0 @@ -LIBDIR=c:/Home/garrigue/ocaml/lib -GTKCFLAGS=-I../glib -I../gtk+ -GTKSRC=c:\Home\garrigue -GTKLIBS=$(GTKSRC)/glib/gmodule-1.3.lib $(GTKSRC)/glib/glib-1.3.lib $(GTKSRC)/gtk+/gdk/gdk-1.3.lib $(GTKSRC)/gtk+/gtk/gtk-1.3.lib -USE_GL=0 -USE_CC=0 diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/configure.mk b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/configure.mk deleted file mode 100644 index 49b3d7015..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/configure.mk +++ /dev/null @@ -1,50 +0,0 @@ -# makefile for configuring lablGTK - -# Default compilers -CAMLC = ocamlc -CAMLOPT = ocamlopt - -# Default installation directories -BINDIR = `$(GETBINDIR)` -INSTALLDIR = $(LIBDIR)/lablgtk - -# Autoconf -GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//' -LIBDIR = `$(GETLIBDIR)` -GETBINDIR = $(GETLIBDIR) | sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|' -GETRANLIB = which ranlib 2>/dev/null | sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/' - -ifdef USE_GNOME -GTKGETCFLAGS = gtk-config --cflags`" -I"`gnome-config --includedir -GNOMELIBS = `gnome-config --libs gtkxmhtml` -else -GTKGETCFLAGS = gtk-config --cflags -endif - -GTKGETLIBS = gtk-config --libs - -configure: .depend config.make - -.depend: - ocamldep *.ml *.mli > .depend - -config.make: - @echo CAMLC=$(CAMLC) > config.make - @echo CAMLOPT=$(CAMLOPT) >> config.make - @echo USE_GL=$(USE_GL) >> config.make - @echo USE_GNOME=$(USE_GNOME) >> config.make - @echo USE_CC=$(USE_CC) >> config.make - @echo DEBUG=$(DEBUG) >> config.make - @echo CC=$(CC) >> config.make - @echo RANLIB=`$(GETRANLIB)` >> config.make - @echo LIBDIR=$(LIBDIR) >> config.make - @echo BINDIR=`$(GETBINDIR)` >> config.make - @echo INSTALLDIR=$(INSTALLDIR) >> config.make - @echo GTKCFLAGS=`$(GTKGETCFLAGS)` >> config.make - @echo GTKLIBS=`$(GTKGETLIBS)` | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - @echo GNOMELIBS=$(GNOMELIBS) | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - cat config.make diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/doc/formula.eps b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/doc/formula.eps deleted file mode 100644 index 31ddafc6f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/doc/formula.eps +++ /dev/null @@ -1,409 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: dvipsk 5.78 p1.4c Copyright 1996-99 ASCII Corp.(www-ptex@ascii.co.jp) -%%dvipsk 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com) -%%Title: formula.dvi -%%BoundingBox: 71 318 395 524 -%%DocumentFonts: Symbol Times-Italic Times-Roman Helvetica -%%EndComments -%DVIPSCommandLine: dvips -E -o formula.eps formula -%DVIPSParameters: dpi=300, compressed -%DVIPSSource: TeX output 1999.08.19:0906 -%%BeginProcSet: texc.pro -%! -/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N -/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 -mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} -ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale -isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div -hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul -TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} -forall round exch round exch]setmatrix}N /@landscape{/isls true N}B -/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B -/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ -/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N -string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N -end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ -/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] -N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup -length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ -128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub -get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data -dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N -/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup -/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx -0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff -setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff -.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N -/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id -gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp -add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add -/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ -dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 -adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 -idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string -putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval -adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} -{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ -adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 -chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] -}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup -length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ -cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin -0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul -add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict -/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook -known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X -/IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn -put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /dir 0 def -/dyy{/dir 0 def}B /dyt{/dir 1 def}B /dty{/dir 2 def}B /dtt{/dir 3 def}B -/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90 -rotate}{show}ifelse}ifelse}B /RMat[1 0 0 -1 0 0]N /BDot 260 string N -/rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V{}B /RV statusdict -begin /product where{pop false[(Display)(NeXT)(LaserWriter 16/600)]{dup -length product length le{dup length product exch 0 exch getinterval eq{ -pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 -TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR --.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}} -ifelse B /QV{gsave newpath transform round exch round exch itransform -moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill -grestore}B /a{moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p -delta add tail}B /b{S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B -/g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B -/m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{ -p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS -restore}B end - -%%EndProcSet -%%BeginProcSet: 8r.enc -% @@psencodingfile@{ -% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", -% version = "0.6", -% date = "22 June 1996", -% filename = "8r.enc", -% email = "kb@@mail.tug.org", -% address = "135 Center Hill Rd. // Plymouth, MA 02360", -% codetable = "ISO/ASCII", -% checksum = "119 662 4424", -% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." -% @} -% -% Idea is to have all the characters normally included in Type 1 fonts -% available for typesetting. This is effectively the characters in Adobe -% Standard Encoding + ISO Latin 1 + extra characters from Lucida. -% -% Character code assignments were made as follows: -% -% (1) the Windows ANSI characters are almost all in their Windows ANSI -% positions, because some Windows users cannot easily reencode the -% fonts, and it makes no difference on other systems. The only Windows -% ANSI characters not available are those that make no sense for -% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen -% (173). quotesingle and grave are moved just because it's such an -% irritation not having them in TeX positions. -% -% (2) Remaining characters are assigned arbitrarily to the lower part -% of the range, avoiding 0, 10 and 13 in case we meet dumb software. -% -% (3) Y&Y Lucida Bright includes some extra text characters; in the -% hopes that other PostScript fonts, perhaps created for public -% consumption, will include them, they are included starting at 0x12. -% -% (4) Remaining positions left undefined are for use in (hopefully) -% upward-compatible revisions, if someday more characters are generally -% available. -% -% (5) hyphen appears twice for compatibility with both ASCII and Windows. -% -/TeXBase1Encoding [ -% 0x00 (encoded characters from Adobe Standard not in Windows 3.1) - /.notdef /dotaccent /fi /fl - /fraction /hungarumlaut /Lslash /lslash - /ogonek /ring /.notdef - /breve /minus /.notdef -% These are the only two remaining unencoded characters, so may as -% well include them. - /Zcaron /zcaron -% 0x10 - /caron /dotlessi -% (unusual TeX characters available in, e.g., Lucida Bright) - /dotlessj /ff /ffi /ffl - /.notdef /.notdef /.notdef /.notdef - /.notdef /.notdef /.notdef /.notdef - % very contentious; it's so painful not having quoteleft and quoteright - % at 96 and 145 that we move the things normally found there down to here. - /grave /quotesingle -% 0x20 (ASCII begins) - /space /exclam /quotedbl /numbersign - /dollar /percent /ampersand /quoteright - /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash -% 0x30 - /zero /one /two /three /four /five /six /seven - /eight /nine /colon /semicolon /less /equal /greater /question -% 0x40 - /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O -% 0x50 - /P /Q /R /S /T /U /V /W - /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore -% 0x60 - /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o -% 0x70 - /p /q /r /s /t /u /v /w - /x /y /z /braceleft /bar /braceright /asciitilde - /.notdef % rubout; ASCII ends -% 0x80 - /.notdef /.notdef /quotesinglbase /florin - /quotedblbase /ellipsis /dagger /daggerdbl - /circumflex /perthousand /Scaron /guilsinglleft - /OE /.notdef /.notdef /.notdef -% 0x90 - /.notdef /.notdef /.notdef /quotedblleft - /quotedblright /bullet /endash /emdash - /tilde /trademark /scaron /guilsinglright - /oe /.notdef /.notdef /Ydieresis -% 0xA0 - /.notdef % nobreakspace - /exclamdown /cent /sterling - /currency /yen /brokenbar /section - /dieresis /copyright /ordfeminine /guillemotleft - /logicalnot - /hyphen % Y&Y (also at 45); Windows' softhyphen - /registered - /macron -% 0xD0 - /degree /plusminus /twosuperior /threesuperior - /acute /mu /paragraph /periodcentered - /cedilla /onesuperior /ordmasculine /guillemotright - /onequarter /onehalf /threequarters /questiondown -% 0xC0 - /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla - /Egrave /Eacute /Ecircumflex /Edieresis - /Igrave /Iacute /Icircumflex /Idieresis -% 0xD0 - /Eth /Ntilde /Ograve /Oacute - /Ocircumflex /Otilde /Odieresis /multiply - /Oslash /Ugrave /Uacute /Ucircumflex - /Udieresis /Yacute /Thorn /germandbls -% 0xE0 - /agrave /aacute /acircumflex /atilde - /adieresis /aring /ae /ccedilla - /egrave /eacute /ecircumflex /edieresis - /igrave /iacute /icircumflex /idieresis -% 0xF0 - /eth /ntilde /ograve /oacute - /ocircumflex /otilde /odieresis /divide - /oslash /ugrave /uacute /ucircumflex - /udieresis /yacute /thorn /ydieresis -] def - -%%EndProcSet -%%BeginProcSet: texps.pro -%! -TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 -index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll -exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics -exch def dict begin 0 1 255{exch dup type /integertype ne{pop pop 1 sub -dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} -ifelse}for Metrics /Metrics currentdict end def[2 index currentdict end -definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant{ -dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1 -roll mul exch}def /ReEncodeFont{/Encoding exch def}def end - -%%EndProcSet -%%BeginProcSet: special.pro -%! -TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N -/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen -false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B -/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit -div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ -/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ -10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B -/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale -true def end /@MacSetUp{userdict /md known{userdict /md get type -/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup -length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} -N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath -clippath mark{transform{itransform moveto}}{transform{itransform lineto} -}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ -itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ -closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 -0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N -/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 -scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get -ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip -not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 -TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR -pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 --1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg -TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg -sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr -0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add -2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp -{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 -div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} -N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict -maxlength dict begin /magscale true def normalscale currentpoint TR -/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts -/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx -psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy -scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR -/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ -psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 -roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath -moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict -begin /SpecialSave save N gsave normalscale currentpoint TR -@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial -{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto -closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx -sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR -}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse -CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury -lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath -}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ -end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} -N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ -/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX -SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X -/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad -yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end - -%%EndProcSet -%%BeginProcSet: color.pro -%! -TeXDict begin /setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop -setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll -}repeat setrgbcolor pop}ifelse}B}ifelse /TeXcolorcmyk{setcmykcolor}def -/TeXcolorrgb{setrgbcolor}def /TeXcolorgrey{setgray}def /TeXcolorgray{ -setgray}def /TeXcolorhsb{sethsbcolor}def /currentcmykcolor where{pop}{ -/currentcmykcolor{currentrgbcolor 10}B}ifelse /DC{exch dup userdict exch -known{pop pop}{X}ifelse}B /GreenYellow{0.15 0 0.69 0 setcmykcolor}DC -/Yellow{0 0 1 0 setcmykcolor}DC /Goldenrod{0 0.10 0.84 0 setcmykcolor} -DC /Dandelion{0 0.29 0.84 0 setcmykcolor}DC /Apricot{0 0.32 0.52 0 -setcmykcolor}DC /Peach{0 0.50 0.70 0 setcmykcolor}DC /Melon{0 0.46 0.50 -0 setcmykcolor}DC /YellowOrange{0 0.42 1 0 setcmykcolor}DC /Orange{0 -0.61 0.87 0 setcmykcolor}DC /BurntOrange{0 0.51 1 0 setcmykcolor}DC -/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC /RedOrange{0 0.77 0.87 0 -setcmykcolor}DC /Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC /Maroon{0 -0.87 0.68 0.32 setcmykcolor}DC /BrickRed{0 0.89 0.94 0.28 setcmykcolor} -DC /Red{0 1 1 0 setcmykcolor}DC /OrangeRed{0 1 0.50 0 setcmykcolor}DC -/RubineRed{0 1 0.13 0 setcmykcolor}DC /WildStrawberry{0 0.96 0.39 0 -setcmykcolor}DC /Salmon{0 0.53 0.38 0 setcmykcolor}DC /CarnationPink{0 -0.63 0 0 setcmykcolor}DC /Magenta{0 1 0 0 setcmykcolor}DC /VioletRed{0 -0.81 0 0 setcmykcolor}DC /Rhodamine{0 0.82 0 0 setcmykcolor}DC /Mulberry -{0.34 0.90 0 0.02 setcmykcolor}DC /RedViolet{0.07 0.90 0 0.34 -setcmykcolor}DC /Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC /Lavender{0 -0.48 0 0 setcmykcolor}DC /Thistle{0.12 0.59 0 0 setcmykcolor}DC /Orchid{ -0.32 0.64 0 0 setcmykcolor}DC /DarkOrchid{0.40 0.80 0.20 0 setcmykcolor} -DC /Purple{0.45 0.86 0 0 setcmykcolor}DC /Plum{0.50 1 0 0 setcmykcolor} -DC /Violet{0.79 0.88 0 0 setcmykcolor}DC /RoyalPurple{0.75 0.90 0 0 -setcmykcolor}DC /BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC /Periwinkle -{0.57 0.55 0 0 setcmykcolor}DC /CadetBlue{0.62 0.57 0.23 0 setcmykcolor} -DC /CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC /MidnightBlue{0.98 0.13 -0 0.43 setcmykcolor}DC /NavyBlue{0.94 0.54 0 0 setcmykcolor}DC -/RoyalBlue{1 0.50 0 0 setcmykcolor}DC /Blue{1 1 0 0 setcmykcolor}DC -/Cerulean{0.94 0.11 0 0 setcmykcolor}DC /Cyan{1 0 0 0 setcmykcolor}DC -/ProcessBlue{0.96 0 0 0 setcmykcolor}DC /SkyBlue{0.62 0 0.12 0 -setcmykcolor}DC /Turquoise{0.85 0 0.20 0 setcmykcolor}DC /TealBlue{0.86 -0 0.34 0.02 setcmykcolor}DC /Aquamarine{0.82 0 0.30 0 setcmykcolor}DC -/BlueGreen{0.85 0 0.33 0 setcmykcolor}DC /Emerald{1 0 0.50 0 -setcmykcolor}DC /JungleGreen{0.99 0 0.52 0 setcmykcolor}DC /SeaGreen{ -0.69 0 0.50 0 setcmykcolor}DC /Green{1 0 1 0 setcmykcolor}DC -/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC /PineGreen{0.92 0 0.59 -0.25 setcmykcolor}DC /LimeGreen{0.50 0 1 0 setcmykcolor}DC /YellowGreen{ -0.44 0 0.74 0 setcmykcolor}DC /SpringGreen{0.26 0 0.76 0 setcmykcolor} -DC /OliveGreen{0.64 0 0.95 0.40 setcmykcolor}DC /RawSienna{0 0.72 1 0.45 -setcmykcolor}DC /Sepia{0 0.83 1 0.70 setcmykcolor}DC /Brown{0 0.81 1 -0.60 setcmykcolor}DC /Tan{0.14 0.42 0.56 0 setcmykcolor}DC /Gray{0 0 0 -0.50 setcmykcolor}DC /Black{0 0 0 1 setcmykcolor}DC /White{0 0 0 0 -setcmykcolor}DC end - -%%EndProcSet -TeXDict begin 40258437 52099154 1000 300 300 (formula.dvi) -@start /Fa 134[ 41 5[ 41 3[ 46 46 1[ 18 6[ 46 15[ 60 -4[ 55 14[ 55 23[ 28 28 40[{ TeXBase1Encoding ReEncodeFont } 11 -82.6359 /Helvetica rf /Fb 205[ 34 34 49[{ - TeXBase1Encoding ReEncodeFont } 2 68.8667 /Times-Roman -rf /Fc 154[ 30 101[{ } 1 68.8667 /Symbol rf -%DVIPSBitmapFont: Fd cmr10 19.907 4 -/Fd 4 94 df<146014E0EB01C0EB0380EB0700130E5B133C13385B13F05B1201485AA248 -5AA348C7FCA25A121EA2123EA2123CA2127CA5127812F8B01278127CA5123CA2123EA212 -1EA2121F7EA26C7EA36C7EA26C7E12007F13707F133C131C7F7FEB0380EB01C0EB00E014 -60135278BD20> 40 D<7E7E7E12707E7E7E120F7E6C7E7F12017F6C7EA21378A37FA213 -3E131EA2131FA27FA21480A5130714C0B01480130FA51400A25BA2131EA2133E133CA25B -A35BA2485A5B12035B48C7FC5A120E5A5A5A5A5A5A12527BBD20> I 91 D 93 D E -%EndDVIPSBitmapFont -/Fe 197[ 23 58[{ TeXBase1Encoding ReEncodeFont } 1 82.6359 -/Times-Roman rf -%DVIPSBitmapFont: Ff cmsy10 19.907 4 -/Ff 4 106 df<0060161800F0163CA26C167C00781678007C16F8003C16F0A2003E1501 -001E16E0A2001F15036C16C06D140700071680A26D140F000316006D5C6CB612FEA36C5D -01F8C7127C01781478A2017C14F8013C5CA2013E1301011E5C011F13036D5CA2EC800701 -075CECC00F010391C7FCA26E5A0101131EECF03E0100133CA2ECF87CEC7878A2EC7CF8EC -3CF0143F6E5AA36E5AA26E5AA26EC8FC2E3A80B82F> 56 D<126012F0B3A7B8FC1780A3 -00F0CAFCB3A8126029397CB832> 96 D<14C0EB01E0A2130314C013071480A2130F1400 -A25B131E133E133CA2137C137813F85BA212015BA212035B12075BA2120F90C7FC5A121E -A2123E123CA2127C127812F85AA27E1278127C123CA2123E121EA2121F7E7F1207A27F12 -037F1201A27F1200A27F1378137C133CA2133E131E131F7FA214801307A214C0130314E0 -1301A2EB00C0135278BD20> 104 D<126012F0A27E1278127C123CA2123E121EA2121F7E -7F1207A27F12037F1201A27F1200A27F1378137C133CA2133E131E131F7FA214801307A2 -14C0130314E01301A2130314C013071480A2130F1400A25B131E133E133CA2137C137813 -F85BA212015BA212035B12075BA2120F90C7FC5A121EA2123E123CA2127C127812F85AA2 -126013527CBD20> I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fg cmmi10 19.907 1 -/Fg 1 59 df<121C123E127FEAFF80A3EA7F00123E121C0909798817> 58 -D E -%EndDVIPSBitmapFont -/Fh 158[ 41 31[ 50 65[{ TeXBase1Encoding ReEncodeFont } 2 -82.6359 /Times-Italic rf /Fi 139[ 36 50 13[ 36 101[{ } 3 -82.6359 /Symbol rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 300dpi -TeXDict begin - -%%EndSetup -0 0 bop Black Black 0 0.7 0 TeXcolorrgb Fh 567 883 a(A) p -Ff 636 883 a(`) p Fh 705 883 a(a) p Fe 765 883 a(:) p -0 0 1 TeXcolorrgb Fi 806 883 a(t) p Fb 842 900 a(1) p -0 0.7 0 TeXcolorrgb Fd 948 883 a(\() p 0 0 1 TeXcolorrgb -Fi(t) p Fb 1016 900 a(1) p 0 0.7 0 TeXcolorrgb Fe 1071 -883 a(:) p 0 0 1 TeXcolorrgb Fi 1112 883 a(t) p 0 0.7 0 -TeXcolorrgb Fe 1167 883 a(:) p 0 0 1 TeXcolorrgb Fi 1208 -883 a(t) p Fb 1244 900 a(2) p 0 0.7 0 TeXcolorrgb Fd -1281 883 a(\)) p 567 920 746 4 v Fh 704 995 a(A) p Ff -773 995 a(`) p Fd 842 995 a(\() p Fh(a) p Fe 934 995 -a(:) p 0 0 1 TeXcolorrgb Fi 975 995 a(t) p 0 0.7 0 TeXcolorrgb -Fd(\)) p Fe 1062 995 a(:) p 0 0 1 TeXcolorrgb Fi 1103 -995 a(t) p Fb 1139 1012 a(2) p 0 0.7 0 TeXcolorrgb Black -Fa 2 939 a(\(Ann\)) p 0 0.7 0 TeXcolorrgb Black 0 0.7 0 -TeXcolorrgb Fh 540 1208 a(A) p Ff 609 1208 a(`) p Fh -678 1208 a(a) p Fe 738 1208 a(:) p 0 0 1 TeXcolorrgb -Fi 779 1208 a(s) p Fb 829 1225 a(1) p 0 0.7 0 TeXcolorrgb -Fd 934 1208 a(\() p 0 0 1 TeXcolorrgb Fi(s) p Fb 1016 -1225 a(1) p 0 0.7 0 TeXcolorrgb Fe 1071 1208 a(:) p 0 0 1 -TeXcolorrgb Fi 1112 1208 a(s) p 0 0.7 0 TeXcolorrgb Fe -1180 1208 a(:) p 0 0 1 TeXcolorrgb Fi 1222 1208 a(s) p -Fb 1272 1225 a(2) p 0 0.7 0 TeXcolorrgb Fd 1308 1208 -a(\)) p 540 1245 801 4 v Fh 661 1321 a(A) p Ff 730 1321 -a(`) p Fd 799 1321 a([) p Fh(a) p Fe 881 1321 a(:) p -0 0 1 TeXcolorrgb Fi 923 1321 a(s) p 0 0.7 0 TeXcolorrgb -Fd 972 1321 a(]) p Fe 1014 1321 a(:) p 0 0 1 TeXcolorrgb -Fd 1055 1321 a([) p Fi(s) p Fb 1128 1338 a(2) p Fd 1164 -1321 a(]) p Fc 1187 1297 a(e) p 0 0.7 0 TeXcolorrgb Black -Fa 2 1264 a(\(P) l(oly\)) p 0 0.7 0 TeXcolorrgb Black -0 0.7 0 TeXcolorrgb Fh 704 1537 a(A) p Ff 773 1537 a(`) p -Fh 842 1537 a(a) p Fe 902 1537 a(:) p 0 0 1 TeXcolorrgb -Ff 943 1537 a(8) p Fi(e) p Fg(:) p Fd([) p Fi(s) p Fd(]) p -Fc 1145 1507 a(e) p 0 0.7 0 TeXcolorrgb 704 1573 472 -4 v Fh 764 1649 a(A) p Ff 833 1649 a(`) p 902 1649 a(h) p -Fh(a) p Ff(i) p Fe 1025 1649 a(:) p 0 0 1 TeXcolorrgb -Fi 1067 1649 a(s) p 0 0.7 0 TeXcolorrgb Black Fa 2 1592 -a(\(Use\)) p 0 0.7 0 TeXcolorrgb Black Black Black 90 rotate -dyy eop -%%Trailer -end -userdict /end-hook known{end-hook}if -%%EOF diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/doc/lablgtk.mgp b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/doc/lablgtk.mgp deleted file mode 100644 index 3eac79341..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/doc/lablgtk.mgp +++ /dev/null @@ -1,558 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%deffont "code" xfont "itc avant garde gothic-demi-r", tfont "verdana.ttf" -%deffont "code-bold" xfont "terminal-bold-r", tfont "verdanab.ttf" -%deffont "sans" xfont "helvetica-medium-r", tfont "comic.ttf" -%deffont "sans-bold" xfont "helvetica-bold-r", tfont "comicbd.ttf" -%deffont "sansit" xfont "helvetica-medium-i", tfont "marlett.ttf" -%deffont "title" xfont "times-medium-r", tfont "times.ttf" -%deffont "title-bold" xfont "times-bold-r", tfont "timesbd.ttf" -%default 1 right, size 2, fore "white", bgrad -%default 1 vfont "goth", font "sans-bold", vgap 100 -%default 2 leftfill, size 8, vgap 60, prefix " ", font "sans" -%default 3 size 4, bar "beige", vgap 10 -%default 4 size 5, fore "white", vgap 20, prefix " " -%tab 1 size 5, vgap 40, prefix " ", icon box "green" 50 -%tab 2 size 5, vgap 40, prefix " ", icon arc "yellow" 50 -%tab 3 size 5, vgap 40, prefix " ", icon arc "white" 40 -%tab com1 size 4, prefix " " -%tab com2 size 4, prefix " " -%tab com3 size 4, prefix " " -%tab txt font "sans", size 5, fore "white", prefix " " -%tab vspace size 2 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -%nodefault -%size 9, font "title-bold" -%fore "beige", back "navyblue", vgap 20 -%center - - -A Type System in Action: - -the LablGTK Interface - - -%size 7, font "title" -Jacques Garrigue -Kyoto University -%size 6, font "code" -garrigue@kurims.kyoto-u.ac.jp - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -2 -Synopsis - - Objective Label introduction -%size 2 - - Why GTK+? - GTK+/LablGTK structure -%size 2 - - Low Level - Type encoding with variants - Labeled parameters -%size 2 - - High Level - Object-orientation - Optional arguments - Polymorphic methods -%size 2 - - Conclusion - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -3 -Objective Label - - Based on Objective Caml - ML syntax and type inference - Class-based object system - - Several extensions - Labeled and optional parameters - Polymorphic variants - Polymorphic methods - - Tools - Type-based browser - GUI and 3D graphics - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -4 -Labels and optionals - -%font "code", size 4, prefix " ", fore "yellow" -let rec map fun:f = function - [] -> [] - | x :: l -> f x :: map fun:f l -%fore "lightpink" -val map : fun:('a -> 'b) -> 'a list -> 'b list - -%pause, fore "yellow", font "code" -let f = map [1;2;3] -%fore "lightpink" -val f : fun:(int -> 'a) -> 'a list -%fore "yellow" -f fun:(fun x -> 2*x) -%fore "lightpink" -- : int list = [2; 3; 4] - -%pause, fore "yellow", font "code" -let f x ?incr:y [< 1 >] = x + y -%fore "lightpink" -val f : int -> ?incr:int -> int -%fore "yellow" -f 1 -%fore "lightpink" -- : int = 2 - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -5 -Polymorphic variants - - -%font "code", size 4, prefix " ", fore "yellow" -[`on; `off] -%fore "lightpink" -- : [> off on] list = [`on; `off] - -%pause, fore "yellow", font "code" -`number 1;; -%fore "lightpink" -- : [> number(int)] = `number 1 - -%pause, fore "yellow", font "code" -let f = function `on -> 1 | `off -> 0 | `number n -> n -%fore "lightpink" -val f : [< number(int) off on] -> int - -%pause, fore "yellow", font "code" -type t = [on off number(int)] - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -6 -Polymorphic methods - -Not allowed in Objective Caml -%size 2 - -%font "code", size 4, prefix " ", fore "yellow" -class c = object method m x = x end -%fore "red" -Some type variables are unbound in this type: - class c : object method m : 'a -> 'a end -The method m has type 'a -> 'a where 'a is unbound - -%pause, font "sans", size 5, prefix " ", fore "white" -Need explicit annotation in O'Labl -%size 2 - -%font "code", size 4, prefix " ", fore "yellow" -class c = object - method m : 'a. 'a -> 'a = fun x -> x -end -%fore "lightpink" -class c : object method m : 'a -> 'a end -%fore "yellow" -let o = new c -%fore "lightpink" -val o : c = -%fore "yellow" -o#m 1, o#m true -%fore "lightpink" -- : int * bool = 1, true - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -7 -Why GTK+ ? - -Why use the GIMP Tool Kit? -%size 3 - - Widely used in free software - - Easy to interface - Written in C (QT uses C++) - Memory management - -Drawbacks -%size 3 - - Design lacks uniformity - Extensive use of dynamic typing - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -8 -GTK+ Structure - -Class hierarchy based on GtkObject -%size 2 - - Single inheritance -&com1 New widgets may redefine methods -%size 2 - - Dynamically checked -&com1 Casting necessay both up and down -%size 2 - - Developper-side hierarchy -&com1 Inheritance is not always meaningful to the user -%size 2 - -%size 5 -Signal-based callback mechanism -%size 2 - - May use multiple callbacks -%size 2 - - Signals are polymorphic - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -9 -LablGTK structure - -Typed at all levels - - Low-level interface -%size 2 - - C stub functions -- typechecked by C - - ML type declarations -- ML abstract types - - High-level interface -%size 2 - - ML class wrappers -- ML concrete types - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -10 -Low Level Interface - -Goals - - Strongly typed interface -&com1 heavy use of advanced typing techniques - - Very little ML code -&com1 C-stubs and external declarations - - Safe memory management -&com1 have the library cooperate with the GC - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -11 -Low level encoding (I) - - -How to represent widget subtyping in ML? - - Example: buttons' hierarchy -%size 2 - -%font "code", size 5, prefix " ", fore "yellow" -GtkObject - GtkWidget - GtkContainer - GtkButton - GtkToggleButton - GtkRadioButton - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -12 -Variants as set constraints - - -Variants can be seen as sets of possible values: - - [tag1 ... tagn] = {tag1,...,tagn} - - -Polymorphic variants introduce constraints - - $B&A(B[> tag1 ... tagn] $B"N(B $B&A(B $B"?(B {tag1,...,tagn} - $B&A(B[< tag1 ... tagn] $B"N(B $B&A(B $B">(B {tag1,...,tagn} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -13 -Encoding hierarchies - -Define an abstract type -&vspace -%font "code", fore "yellow", size 5 - type 'a obj - -&txt Use tags to represent properties -&vspace -%font "code", fore "yellow", size 5 - type t = [class1 ... classn] obj - -&txt Functions check properties -&vspace -%font "code", fore "yellow", size 5 - val f : [> class1 ... classn] obj -> ... -&txt - Subsumes Haskell type classes -&vspace - Allows multiple inheritance - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -14 -Low level encoding (II) - -Example: buttons' hierarchy -%size 2 - -%font "code", size 4, prefix " ", fore "yellow" -type 'a obj -type widget = [widget] obj -type container = [widget container] obj -type button = [widget container button] obj -type toggle_button = [widget ... togglebutton] obj -type radio_button = [widget ... radiobutton] obj -type state_type = [ NORMAL - ACTIVE PRELIGHT SELECTED INSENSITIVE ] -val set_state : [> widget] obj -> state_type -> unit -val children : [> container] obj -> [widget] obj list -val clicked : [> button] obj -> unit -val set_group : [> radiobutton] obj -> group -> unit - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -15 -Alternate encoding - -Use only standard ML features -%size 2 - -%font "code", size 4, prefix " ", fore "yellow", vgap 50 -type 'a obj -type 'a widget -... -type 'a radio -type state_type = NORMAL | ACTIVE | ... | INSENSITIVE -val set_state : 'a widget obj -> state_type -> unit -val children : - 'a container widget obj -> unit widget obj list -val clicked : 'a button container widget obj -> unit - -&txt Weaknesses - No multiple inheritance - Not very intuitive for the user - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -16 -Low level encoding (III) - -Use of labeled parameters -%size 2 - -%font "code", size 4, prefix " ", fore "yellow", vgap 50 -val adjustment_new : - value:float -> lower:float -> upper:float -> - step_incr:float -> page_incr:float -> - page_size:float -> adjustment obj - -&txt Signals -%size 2 - -%font "code", size 4, prefix " ", fore "yellow", vgap 50 -type ('a,'b) signal = - { name: string; marshaller: 'b -> GtkArgv.t -> unit } -val connect : 'a obj -> sig:('a,'b) signal -> - callback:'b -> ?after:bool -> id -val button_clicked : ([> button], unit -> unit) signal - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -17 -High-Level Interface - -Problems with GTK+ -%size 2 - - Name space is scattered -&com1 One has to know in which superclass a function is defined - Developper oriented design -&com1 There is no clear distinction between public and private definitions - -&txt LablGTK design -%size 2 - - OCaml classes to reunify name space - Omit developper-oriented methods - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -18 -High-level classes - -%font "code", size 4, prefix " ", fore "yellow" -class button : -%fore "lightgreen" - ?label:string -> -%fore "lightpink" - ?border_width:int -> - ?width:int -> - ?height:int -> -%fore "lightgray" - ?packing:(GButton.button -> unit) -> - ?show:bool -> -%fore "yellow" - object -%fore "lightgray" - method destroy : unit -> unit - method as_widget : Gtk.widget obj - method misc : GObj.widget_misc -%fore "lightpink" - method add : #is_widget -> unit - method set_border_width : int -> unit -%fore "lightgreen" - method clicked : unit -> unit - method connect : GButton.button_signals - method grab_default : unit -> unit -%fore "yellow" - end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -19 -High-level features - - Objective Caml classes -&com1 allow collecting methods from different modules - - Use optionals in class constructors -&com1 makes widget creation much easier - - Polymorphic methods -&com1 needed for container widgets -%size 2 - -%font "code", size 4, fore "yellow", vgap 50 - method add : 'a. (#is_widget as 'a) -> unit - -%fore "white", font "sans" - Polymorphic variants -&com1 for C-style enumeration types, avoid name-space dependancies - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -20 -Polymorphic methods (I) - - Instance of first-class polymorphism -%size 2 - - first-class polytypes cannot be inferred - they are propagated by the definition flow - - Technically -%size 2 - - use polymorphism to track available information - type system excludes derivations based on "guessed" information - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -21 -First class polymorphism - -%prefix " " -%image "formula.eps" 512x384 -%size 2 - -%prefix " ", size 5, fore "lightblue" - ($B&R(B1 : $B&R(B : $B&R(B2) $B"N(B $B&R(B1 = $B&H(B($B&Q(B1($B&R(B)) $B"J(B $B&R(B2 = $B&H(B($B&Q(B2($B&R(B)) -%fore "white" -where $B&H(B instantiates free variables, and $B&Q(B1,$B&Q(B2 rename free labels of $B&R(B. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -22 -Polymorphic methods (II) - -Definitions -%size 2 - -%font "code", size 4, prefix " ", fore "yellow", vgap 50 -type is_widget = < as_widget : widget obj > -type #is_widget = < as_widget : widget obj; .. > -type container = - < ... ; add : 'a. (#as_widget as 'a) -> unit; ... > - -%pause -&txt Propagation -%size 2 - -%font "code", size 4, prefix " ", fore "lightgreen", vgap 50 -fun (cont : container) -> cont#add widget - -%pause -let button = new button in button#add widget - -%pause, fore "red" -fun cont -> cont#add widget - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -23 -Programming example - -Hello World -%size 2 - -%font "code", size 4, prefix " ", fore "yellow" -open GMain - -let window = - new GWindow.window border_width: 10 - -let button = - new GButton.button - label: "Hello World" packing: window#add - -let _ = - window#connect#destroy callback: Main.quit; - button#connect#clicked callback: window#destroy; - window#show (); - Main.main () - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%page -24 -Conclusion - - Results -%size 2 - - Could build a strongly typed interface - - It is easier to use than the C API - - Makes effective use of extensions to the type system - - Comments -%size 2 - - Still difficulties with the Caml object system -&com2 class recursion, method type refinement, etc... diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/morph3d.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/morph3d.ml deleted file mode 100644 index a08726e05..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/morph3d.ml +++ /dev/null @@ -1,607 +0,0 @@ -(* $Id$ *) - -(*- - * morph3d.c - Shows 3D morphing objects (TK Version) - * - * This program was inspired on a WindowsNT(R)'s screen saver. It was written - * from scratch and it was not based on any other source code. - * - * Porting it to xlock (the final objective of this code since the moment I - * decided to create it) was possible by comparing the original Mesa's gear - * demo with it's ported version, so thanks for Danny Sung for his indirect - * help (look at gear.c in xlock source tree). NOTE: At the moment this code - * was sent to Brian Paul for package inclusion, the XLock Version was not - * available. In fact, I'll wait it to appear on the next Mesa release (If you - * are reading this, it means THIS release) to send it for xlock package - * inclusion). It will probably there be a GLUT version too. - * - * Thanks goes also to Brian Paul for making it possible and inexpensive - * to use OpenGL at home. - * - * Since I'm not a native english speaker, my apologies for any gramatical - * mistake. - * - * My e-mail addresses are - * - * vianna@cat.cbpf.br - * and - * marcelo@venus.rdc.puc-rio.br - * - * Marcelo F. Vianna (Feb-13-1997) - *) - -(* -This document is VERY incomplete, but tries to describe the mathematics used -in the program. At this moment it just describes how the polyhedra are -generated. On futhurer versions, this document will be probabbly improved. - -Since I'm not a native english speaker, my apologies for any gramatical -mistake. - -Marcelo Fernandes Vianna -- Undergraduate in Computer Engeneering at Catholic Pontifical University -- of Rio de Janeiro (PUC-Rio) Brasil. -- e-mail: vianna@cat.cbpf.br or marcelo@venus.rdc.puc-rio.br -- Feb-13-1997 - -POLYHEDRA GENERATION - -For the purpose of this program it's not sufficient to know the polyhedra -vertexes coordinates. Since the morphing algorithm applies a nonlinear -transformation over the surfaces (faces) of the polyhedron, each face has -to be divided into smaller ones. The morphing algorithm needs to transform -each vertex of these smaller faces individually. It's a very time consoming -task. - -In order to reduce calculation overload, and since all the macro faces of -the polyhedron are transformed by the same way, the generation is made by -creating only one face of the polyhedron, morphing it and then rotating it -around the polyhedron center. - -What we need to know is the face radius of the polyhedron (the radius of -the inscribed sphere) and the angle between the center of two adjacent -faces using the center of the sphere as the angle's vertex. - -The face radius of the regular polyhedra are known values which I decided -to not waste my time calculating. Following is a table of face radius for -the regular polyhedra with edge length = 1: - - TETRAHEDRON : 1/(2*sqrt(2))/sqrt(3) - CUBE : 1/2 - OCTAHEDRON : 1/sqrt(6) - DODECAHEDRON : T^2 * sqrt((T+2)/5) / 2 -> where T=(sqrt(5)+1)/2 - ICOSAHEDRON : (3*sqrt(3)+sqrt(15))/12 - -I've not found any reference about the mentioned angles, so I needed to -calculate them, not a trivial task until I figured out how :) -Curiously these angles are the same for the tetrahedron and octahedron. -A way to obtain this value is inscribing the tetrahedron inside the cube -by matching their vertexes. So you'll notice that the remaining unmatched -vertexes are in the same straight line starting in the cube/tetrahedron -center and crossing the center of each tetrahedron's face. At this point -it's easy to obtain the bigger angle of the isosceles triangle formed by -the center of the cube and two opposite vertexes on the same cube face. -The edges of this triangle have the following lenghts: sqrt(2) for the base -and sqrt(3)/2 for the other two other edges. So the angle we want is: - +-----------------------------------------------------------+ - | 2*ARCSIN(sqrt(2)/sqrt(3)) = 109.47122063449069174 degrees | - +-----------------------------------------------------------+ -For the cube this angle is obvious, but just for formality it can be -easily obtained because we also know it's isosceles edge lenghts: -sqrt(2)/2 for the base and 1/2 for the other two edges. So the angle we -want is: - +-----------------------------------------------------------+ - | 2*ARCSIN((sqrt(2)/2)/1) = 90.000000000000000000 degrees | - +-----------------------------------------------------------+ -For the octahedron we use the same idea used for the tetrahedron, but now -we inscribe the cube inside the octahedron so that all cubes's vertexes -matches excatly the center of each octahedron's face. It's now clear that -this angle is the same of the thetrahedron one: - +-----------------------------------------------------------+ - | 2*ARCSIN(sqrt(2)/sqrt(3)) = 109.47122063449069174 degrees | - +-----------------------------------------------------------+ -For the dodecahedron it's a little bit harder because it's only relationship -with the cube is useless to us. So we need to solve the problem by another -way. The concept of Face radius also exists on 2D polygons with the name -Edge radius: - Edge Radius For Pentagon (ERp) - ERp = (1/2)/TAN(36 degrees) * VRp = 0.6881909602355867905 - (VRp is the pentagon's vertex radio). - Face Radius For Dodecahedron - FRd = T^2 * sqrt((T+2)/5) / 2 = 1.1135163644116068404 -Why we need ERp? Well, ERp and FRd segments forms a 90 degrees angle, -completing this triangle, the lesser angle is a half of the angle we are -looking for, so this angle is: - +-----------------------------------------------------------+ - | 2*ARCTAN(ERp/FRd) = 63.434948822922009981 degrees | - +-----------------------------------------------------------+ -For the icosahedron we can use the same method used for dodecahedron (well -the method used for dodecahedron may be used for all regular polyhedra) - Edge Radius For Triangle (this one is well known: 1/3 of the triangle height) - ERt = sin(60)/3 = sqrt(3)/6 = 0.2886751345948128655 - Face Radius For Icosahedron - FRi= (3*sqrt(3)+sqrt(15))/12 = 0.7557613140761707538 -So the angle is: - +-----------------------------------------------------------+ - | 2*ARCTAN(ERt/FRi) = 41.810314895778596167 degrees | - +-----------------------------------------------------------+ - -*) - - -let scale = 0.3 - -let vect_mul (x1,y1,z1) (x2,y2,z2) = - (y1 *. z2 -. z1 *. y2, z1 *. x2 -. x1 *. z2, x1 *. y2 -. y1 *. x2) - -let sqr a = a *. a - -(* Increasing this values produces better image quality, the price is speed. *) -(* Very low values produces erroneous/incorrect plotting *) -let tetradivisions = 23 -let cubedivisions = 20 -let octadivisions = 21 -let dodecadivisions = 10 -let icodivisions = 15 - -let tetraangle = 109.47122063449069174 -let cubeangle = 90.000000000000000000 -let octaangle = 109.47122063449069174 -let dodecaangle = 63.434948822922009981 -let icoangle = 41.810314895778596167 - -let pi = acos (-1.) -let sqrt2 = sqrt 2. -let sqrt3 = sqrt 3. -let sqrt5 = sqrt 5. -let sqrt6 = sqrt 6. -let sqrt15 = sqrt 15. -let cossec36_2 = 0.8506508083520399322 -let cosd x = cos (float x /. 180. *. pi) -let sind x = sin (float x /. 180. *. pi) -let cos72 = cosd 72 -let sin72 = sind 72 -let cos36 = cosd 36 -let sin36 = sind 36 - -(*************************************************************************) - -let front_shininess = 60.0 -let front_specular = 0.7, 0.7, 0.7, 1.0 -let ambient = 0.0, 0.0, 0.0, 1.0 -let diffuse = 1.0, 1.0, 1.0, 1.0 -let position0 = 1.0, 1.0, 1.0, 0.0 -let position1 = -1.0,-1.0, 1.0, 0.0 -let lmodel_ambient = 0.5, 0.5, 0.5, 1.0 -let lmodel_twoside = true - -let materialRed = 0.7, 0.0, 0.0, 1.0 -let materialGreen = 0.1, 0.5, 0.2, 1.0 -let materialBlue = 0.0, 0.0, 0.7, 1.0 -let materialCyan = 0.2, 0.5, 0.7, 1.0 -let materialYellow = 0.7, 0.7, 0.0, 1.0 -let materialMagenta = 0.6, 0.2, 0.5, 1.0 -let materialWhite = 0.7, 0.7, 0.7, 1.0 -let materialGray = 0.2, 0.2, 0.2, 1.0 -let all_gray = Array.create 20 materialGray - -let vertex ~xf ~yf ~zf ~ampvr2 = - let xa = xf +. 0.01 and yb = yf +. 0.01 in - let xf2 = sqr xf and yf2 = sqr yf in - let factor = 1. -. (xf2 +. yf2) *. ampvr2 - and factor1 = 1. -. (sqr xa +. yf2) *. ampvr2 - and factor2 = 1. -. (xf2 +. sqr yb) *. ampvr2 in - let vertx = factor *. xf and verty = factor *. yf - and vertz = factor *. zf in - let neiax = factor1 *. xa -. vertx and neiay = factor1 *. yf -. verty - and neiaz = factor1 *. zf -. vertz and neibx = factor2 *. xf -. vertx - and neiby = factor2 *. yb -. verty and neibz = factor2 *. zf -. vertz in - GlDraw.normal3 (vect_mul (neiax, neiay, neiaz) (neibx, neiby, neibz)); - GlDraw.vertex3 (vertx, verty, vertz) - -let triangle ~edge ~amp ~divisions ~z = - let divi = float divisions in - let vr = edge *. sqrt3 /. 3. in - let ampvr2 = amp /. sqr vr - and zf = edge *. z in - let ax = edge *. (0.5 /. divi) - and ay = edge *. (-0.5 *. sqrt3 /. divi) - and bx = edge *. (-0.5 /. divi) in - for ri = 1 to divisions do - GlDraw.begins `triangle_strip; - for ti = 0 to ri - 1 do - vertex ~zf ~ampvr2 - ~xf:(float (ri-ti) *. ax +. float ti *. bx) - ~yf:(vr +. float (ri-ti) *. ay +. float ti *. ay); - vertex ~zf ~ampvr2 - ~xf:(float (ri-ti-1) *. ax +. float ti *. bx) - ~yf:(vr +. float (ri-ti-1) *. ay +. float ti *. ay) - done; - vertex ~xf:(float ri *. bx) ~yf:(vr +. float ri *. ay) ~zf ~ampvr2; - GlDraw.ends () - done - -let square ~edge ~amp ~divisions ~z = - let divi = float divisions in - let zf = edge *. z - and ampvr2 = amp /. sqr (edge *. sqrt2 /. 2.) in - for yi = 0 to divisions - 1 do - let yf = edge *. (-0.5 +. float yi /. divi) in - let yf2 = sqr yf in - let y = yf +. 1.0 /. divi *. edge in - let y2 = sqr y in - GlDraw.begins `quad_strip; - for xi = 0 to divisions do - let xf = edge *. (-0.5 +. float xi /. divi) in - vertex ~xf ~yf:y ~zf ~ampvr2; - vertex ~xf ~yf ~zf ~ampvr2 - done; - GlDraw.ends () - done - -let pentagon ~edge ~amp ~divisions ~z = - let divi = float divisions in - let zf = edge *. z - and ampvr2 = amp /. sqr(edge *. cossec36_2) in - let x = - Array.init 6 - ~f:(fun fi -> -. cos (float fi *. 2. *. pi /. 5. +. pi /. 10.) - /. divi *. cossec36_2 *. edge) - and y = - Array.init 6 - ~f:(fun fi -> sin (float fi *. 2. *. pi /. 5. +. pi /. 10.) - /. divi *. cossec36_2 *. edge) - in - for ri = 1 to divisions do - for fi = 0 to 4 do - GlDraw.begins `triangle_strip; - for ti = 0 to ri-1 do - vertex ~zf ~ampvr2 - ~xf:(float(ri-ti) *. x.(fi) +. float ti *. x.(fi+1)) - ~yf:(float(ri-ti) *. y.(fi) +. float ti *. y.(fi+1)); - vertex ~zf ~ampvr2 - ~xf:(float(ri-ti-1) *. x.(fi) +. float ti *. x.(fi+1)) - ~yf:(float(ri-ti-1) *. y.(fi) +. float ti *. y.(fi+1)) - done; - vertex ~xf:(float ri *. x.(fi+1)) ~yf:(float ri *. y.(fi+1)) ~zf ~ampvr2; - GlDraw.ends () - done - done - -let call_list list color = - GlLight.material ~face:`both (`diffuse color); - GlList.call list - -let draw_tetra ~amp ~divisions ~color = - let list = GlList.create `compile in - triangle ~edge:2.0 ~amp ~divisions ~z:(0.5 /. sqrt6); - GlList.ends(); - - call_list list color.(0); - GlMat.push(); - GlMat.rotate ~angle:180.0 ~z:1.0 (); - GlMat.rotate ~angle:(-.tetraangle) ~x:1.0 (); - call_list list color.(1); - GlMat.pop(); - GlMat.push(); - GlMat.rotate ~angle:180.0 ~y:1.0 (); - GlMat.rotate ~angle:(-180.0 +. tetraangle) ~x:0.5 ~y:(sqrt3 /. 2.) (); - call_list list color.(2); - GlMat.pop(); - GlMat.rotate ~angle:180.0 ~y:1.0 (); - GlMat.rotate ~angle:(-180.0 +. tetraangle) ~x:0.5 ~y:(-.sqrt3 /. 2.) (); - call_list list color.(3); - - GlList.delete list - -let draw_cube ~amp ~divisions ~color = - let list = GlList.create `compile in - square ~edge:2.0 ~amp ~divisions ~z:0.5; - GlList.ends (); - - call_list list color.(0); - for i = 1 to 3 do - GlMat.rotate ~angle:cubeangle ~x:1.0 (); - call_list list color.(i) - done; - GlMat.rotate ~angle:cubeangle ~y:1.0 (); - call_list list color.(4); - GlMat.rotate ~angle:(2.0 *. cubeangle) ~y:1.0 (); - call_list list color.(5); - - GlList.delete list - -let draw_octa ~amp ~divisions ~color = - let list = GlList.create `compile in - triangle ~edge:2.0 ~amp ~divisions ~z:(1.0 /. sqrt6); - GlList.ends (); - - let do_list (i,y) = - GlMat.push(); - GlMat.rotate ~angle:180.0 ~y:1.0 (); - GlMat.rotate ~angle:(-.octaangle) ~x:0.5 ~y (); - call_list list color.(i); - GlMat.pop() - in - call_list list color.(0); - GlMat.push(); - GlMat.rotate ~angle:180.0 ~z:1.0 (); - GlMat.rotate ~angle:(-180.0 +. octaangle) ~x:1.0 (); - call_list list color.(1); - GlMat.pop(); - List.iter [2, sqrt3 /. 2.0; 3, -.sqrt3 /. 2.0] ~f:do_list; - GlMat.rotate ~angle:180.0 ~x:1.0 (); - GlLight.material ~face:`both (`diffuse color.(4)); - GlList.call list; - GlMat.push(); - GlMat.rotate ~angle:180.0 ~z:1.0 (); - GlMat.rotate ~angle:(-180.0 +. octaangle) ~x:1.0 (); - GlLight.material ~face:`both (`diffuse color.(5)); - GlList.call list; - GlMat.pop(); - List.iter [6, sqrt3 /. 2.0; 7, -.sqrt3 /. 2.0] ~f:do_list; - - GlList.delete list - -let draw_dodeca ~amp ~divisions ~color = - let tau = (sqrt5 +. 1.0) /. 2.0 in - let list = GlList.create `compile in - pentagon ~edge:2.0 ~amp ~divisions - ~z:(sqr(tau) *. sqrt ((tau+.2.0)/.5.0) /. 2.0); - GlList.ends (); - - let do_list (i,angle,x,y) = - GlMat.push(); - GlMat.rotate ~angle:angle ~x ~y (); - call_list list color.(i); - GlMat.pop(); - in - GlMat.push (); - call_list list color.(0); - GlMat.rotate ~angle:180.0 ~z:1.0 (); - List.iter ~f:do_list - [ 1, -.dodecaangle, 1.0, 0.0; - 2, -.dodecaangle, cos72, sin72; - 3, -.dodecaangle, cos72, -.sin72; - 4, dodecaangle, cos36, -.sin36; - 5, dodecaangle, cos36, sin36 ]; - GlMat.pop (); - GlMat.rotate ~angle:180.0 ~x:1.0 (); - call_list list color.(6); - GlMat.rotate ~angle:180.0 ~z:1.0 (); - List.iter ~f:do_list - [ 7, -.dodecaangle, 1.0, 0.0; - 8, -.dodecaangle, cos72, sin72; - 9, -.dodecaangle, cos72, -.sin72; - 10, dodecaangle, cos36, -.sin36 ]; - GlMat.rotate ~angle:dodecaangle ~x:cos36 ~y:sin36 (); - call_list list color.(11); - - GlList.delete list - -let draw_ico ~amp ~divisions ~color = - let list = GlList.create `compile in - triangle ~edge:1.5 ~amp ~divisions - ~z:((3.0 *. sqrt3 +. sqrt15) /. 12.0); - GlList.ends (); - - let do_list1 i = - GlMat.rotate ~angle:180.0 ~y:1.0 (); - GlMat.rotate ~angle:(-180.0 +. icoangle) ~x:0.5 ~y:(sqrt3/.2.0) (); - call_list list color.(i) - and do_list2 i = - GlMat.rotate ~angle:180.0 ~y:1.0 (); - GlMat.rotate ~angle:(-180.0 +. icoangle) ~x:0.5 ~y:(-.sqrt3/.2.0) (); - call_list list color.(i) - and do_list3 i = - GlMat.rotate ~angle:180.0 ~z:1.0 (); - GlMat.rotate ~angle:(-.icoangle) ~x:1.0 (); - call_list list color.(i) - in - GlMat.push (); - call_list list color.(0); - GlMat.push (); - do_list3 1; - GlMat.push (); - do_list1 2; - GlMat.pop (); - do_list2 3; - GlMat.pop (); - GlMat.push (); - do_list1 4; - GlMat.push (); - do_list1 5; - GlMat.pop(); - do_list3 6; - GlMat.pop (); - do_list2 7; - GlMat.push (); - do_list2 8; - GlMat.pop (); - do_list3 9; - GlMat.pop (); - GlMat.rotate ~angle:180.0 ~x:1.0 (); - call_list list color.(10); - GlMat.push (); - do_list3 11; - GlMat.push (); - do_list1 12; - GlMat.pop (); - do_list2 13; - GlMat.pop (); - GlMat.push (); - do_list1 14; - GlMat.push (); - do_list1 15; - GlMat.pop (); - do_list3 16; - GlMat.pop (); - do_list2 17; - GlMat.push (); - do_list2 18; - GlMat.pop (); - do_list3 19; - - GlList.delete list - -class view area = object (self) - val area : GlGtk.area = area - val mutable smooth = true - val mutable step = 0. - val mutable obj = 1 - val mutable draw_object = fun ~amp -> () - val mutable magnitude = 0. - - method width = area#misc#allocation.Gtk.width - method height = area#misc#allocation.Gtk.height - - method draw () = - let ratio = float self#height /. float self#width in - GlClear.clear [`color;`depth]; - GlMat.push(); - GlMat.translate ~z:(-10.0) (); - GlMat.scale ~x:(scale *. ratio) ~y:scale ~z:scale (); - GlMat.translate () - ~x:(2.5 *. ratio *. sin (step *. 1.11)) - ~y:(2.5 *. cos (step *. 1.25 *. 1.11)); - GlMat.rotate ~angle:(step *. 100.) ~x:1.0 (); - GlMat.rotate ~angle:(step *. 95.) ~y:1.0 (); - GlMat.rotate ~angle:(step *. 90.) ~z:1.0 (); - draw_object ~amp:((sin step +. 1.0/.3.0) *. (4.0/.5.0) *. magnitude); - GlMat.pop(); - Gl.flush(); - area#swap_buffers (); - step <- step +. 0.05 - - method reshape ~width ~height = - GlDraw.viewport ~x:0 ~y:0 ~w:width ~h:height; - GlMat.mode `projection; - GlMat.load_identity(); - GlMat.frustum ~x:(-1.0, 1.0) ~y:(-1.0, 1.0) ~z:(5.0, 15.0); - GlMat.mode `modelview - - method key sym = - begin match sym with - "1" -> obj <- 1 - | "2" -> obj <- 2 - | "3" -> obj <- 3 - | "4" -> obj <- 4 - | "5" -> obj <- 5 - | "\r" -> smooth <- not smooth - | "\027" -> area#misc#toplevel#destroy (); exit 0 - | _ -> () - end; - self#pinit - - method pinit = - begin match obj with - 1 -> - draw_object <- draw_tetra - ~divisions:tetradivisions - ~color:[|materialRed; materialGreen; - materialBlue; materialWhite|]; - magnitude <- 2.5 - | 2 -> - draw_object <- draw_cube - ~divisions:cubedivisions - ~color:[|materialRed; materialGreen; materialCyan; - materialMagenta; materialYellow; materialBlue|]; - magnitude <- 2.0 - | 3 -> - draw_object <- draw_octa - ~divisions:octadivisions - ~color:[|materialRed; materialGreen; materialBlue; - materialWhite; materialCyan; materialMagenta; - materialGray; materialYellow|]; - magnitude <- 2.5 - | 4 -> - draw_object <- draw_dodeca - ~divisions:dodecadivisions - ~color:[|materialRed; materialGreen; materialCyan; - materialBlue; materialMagenta; materialYellow; - materialGreen; materialCyan; materialRed; - materialMagenta; materialBlue; materialYellow|]; - magnitude <- 2.0 - | 5 -> - draw_object <- draw_ico - ~divisions:icodivisions - ~color:[|materialRed; materialGreen; materialBlue; - materialCyan; materialYellow; materialMagenta; - materialRed; materialGreen; materialBlue; - materialWhite; materialCyan; materialYellow; - materialMagenta; materialRed; materialGreen; - materialBlue; materialCyan; materialYellow; - materialMagenta; materialGray|]; - magnitude <- 3.5 - | _ -> () - end; - GlDraw.shade_model (if smooth then `smooth else `flat) - initializer - area#connect#display ~callback:self#draw; - area#connect#reshape ~callback:self#reshape; - () -end - -open GMain - -let main () = - List.iter ~f:print_string - [ "Morph 3D - Shows morphing platonic polyhedra\n"; - "Author: Marcelo Fernandes Vianna (vianna@cat.cbpf.br)\n"; - "Ported to LablGL by Jacques Garrigue\n\n"; - " [1] - Tetrahedron\n"; - " [2] - Hexahedron (Cube)\n"; - " [3] - Octahedron\n"; - " [4] - Dodecahedron\n"; - " [5] - Icosahedron\n"; - "[RETURN] - Toggle smooth/flat shading\n"; - " [ESC] - Quit\n" ]; - flush stdout; - - let window = - GWindow.window ~title:"Morph 3D - Shows morphing platonic polyhedra" () - in - window#connect#destroy ~callback:Main.quit; - window#set_resize_mode `IMMEDIATE; - - let area = GlGtk.area [`DEPTH_SIZE 1;`RGBA;`DOUBLEBUFFER] - ~width:640 ~height:480 ~packing:window#add () in - - let view = new view area in - - area#connect#realize ~callback: - begin fun () -> - view#pinit; - GlClear.depth 1.0; - GlClear.color (0.0, 0.0, 0.0); - GlDraw.color (1.0, 1.0, 1.0); - - GlClear.clear [`color;`depth]; - Gl.flush(); - - List.iter ~f:(GlLight.light ~num:0) - [`ambient ambient; `diffuse diffuse; `position position0]; - List.iter ~f:(GlLight.light ~num:1) - [`ambient ambient; `diffuse diffuse; `position position1]; - GlLight.light_model (`ambient lmodel_ambient); - GlLight.light_model (`two_side lmodel_twoside); - List.iter ~f:Gl.enable - [`lighting;`light0;`light1;`depth_test;`normalize]; - - GlLight.material ~face:`both (`shininess front_shininess); - GlLight.material ~face:`both (`specular front_specular); - - GlMisc.hint `fog `fastest; - GlMisc.hint `perspective_correction `fastest; - GlMisc.hint `polygon_smooth `fastest - end; - - window#event#connect#key_press - ~callback:(fun ev -> view#key (GdkEvent.Key.string ev); true); - - Timeout.add ~ms:20 - ~callback:(fun _ -> if area#misc#visible then view#draw (); true); - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/planet.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/planet.ml deleted file mode 100644 index 51f947c48..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/planet.ml +++ /dev/null @@ -1,125 +0,0 @@ -(* $Id$ *) - -class planet area = object (self) - val area : GlGtk.area = area - val mutable year = 0.0 - val mutable day = 0.0 - val mutable eye = 0.0 - val mutable time = 0.0 - - method tick new_time = - if time = 0. then time <- new_time else - let diff = new_time -. time in - time <- new_time; - day <- mod_float (day +. diff *. 200.) 360.0; - year <- mod_float (year +. diff *. 20.) 360.0 - method day_add () = - day <- mod_float (day +. 10.0) 360.0 - method day_subtract () = - day <- mod_float (day -. 10.0) 360.0 - method year_add () = - year <- mod_float (year +. 5.0) 360.0 - method year_subtract () = - year <- mod_float (year -. 5.0) 360.0 - method eye x = - eye <- x; self#display () - - method display () = - GlClear.clear [`color;`depth]; - - GlDraw.color (1.0, 1.0, 1.0); - GlMat.push(); - GlMat.rotate ~angle:eye ~x:1. (); -(* draw sun *) - GlLight.material ~face:`front (`specular (1.0,1.0,0.0,1.0)); - GlLight.material ~face:`front (`shininess 5.0); - GluQuadric.sphere ~radius:1.0 ~slices:32 ~stacks:32 (); -(* draw smaller planet *) - GlMat.rotate ~angle:year ~y:1.0 (); - GlMat.translate ~x:3.0 (); - GlMat.rotate ~angle:day ~y:1.0 (); - GlDraw.color (0.0, 1.0, 1.0); - GlDraw.shade_model `flat; - GlLight.material ~face:`front(`shininess 128.0); - GluQuadric.sphere ~radius:0.2 ~slices:10 ~stacks:10 (); - GlDraw.shade_model `smooth; - GlMat.pop (); - Gl.flush (); - area#swap_buffers () -end - -let myinit () = - let light_ambient = 0.5, 0.5, 0.5, 1.0 - and light_diffuse = 1.0, 0.8, 0.2, 1.0 - and light_specular = 1.0, 1.0, 1.0, 1.0 - (* light_position is NOT default value *) - and light_position = 1.0, 1.0, 1.0, 0.0 - in - List.iter ~f:(GlLight.light ~num:0) - [ `ambient light_ambient; `diffuse light_diffuse; - `specular light_specular; `position light_position ]; - GlFunc.depth_func `less; - List.iter ~f:Gl.enable [`lighting; `light0; `depth_test]; - GlDraw.shade_model `smooth - - -let my_reshape ~width:w ~height:h = - GlDraw.viewport ~x:0 ~y:0 ~w ~h; - GlMat.mode `projection; - GlMat.load_identity(); - GluMat.perspective ~fovy:60.0 ~aspect:(float w /. float h) ~z:(1.0,20.0); - GlMat.mode `modelview; - GlMat.load_identity(); - GlMat.translate ~z:(-5.0) () - -(* Main Loop - * Open window with initial window size, title bar, - * RGBA display mode, and handle input events. - *) -open GMain -open GdkKeysyms - -let main () = - let w = GWindow.window ~title:"Planet" () in - w#connect#destroy ~callback:(fun () -> Main.quit (); exit 0); - w#set_resize_mode `IMMEDIATE; - let hb = GPack.hbox ~packing:w#add () in - let area = GlGtk.area [`DOUBLEBUFFER;`RGBA;`DEPTH_SIZE 1] - ~width:700 ~height:500 ~packing:hb#add () in - area#event#add [`KEY_PRESS]; - - let planet = new planet area in - let adjustment = GData.adjustment ~value:0. ~lower:(-90.) ~upper:90. - ~step_incr:1. ~page_incr:5. ~page_size:5. () in - let scale = GRange.scale `VERTICAL ~adjustment ~draw_value:false - ~packing:hb#pack () in - adjustment#connect#value_changed - ~callback:(fun () -> planet#eye adjustment#value); - w#event#connect#key_press ~callback: - begin fun ev -> - let key = GdkEvent.Key.keyval ev in - if key = _Left then planet#year_subtract () else - if key = _Right then planet#year_add () else - if key = _Up then planet#day_add () else - if key = _Down then planet#day_subtract () else - if key = _Escape then w#destroy (); - planet#display (); - true - end; - - Timeout.add ~ms:20 ~callback: - begin fun () -> - planet#tick (Sys.time ()); planet#display (); true - end; - area#connect#display ~callback:planet#display; - area#connect#reshape ~callback:my_reshape; - - area#connect#realize ~callback: - begin fun () -> - myinit (); - my_reshape ~width:700 ~height:500 - end; - w#show (); - Main.main () - -let _ = Printexc.print main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/simple.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/simple.ml deleted file mode 100644 index ea6ebde96..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/GL/simple.ml +++ /dev/null @@ -1,33 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let w = GWindow.window ~title:"LablGL/Gtk" () in - w#connect#destroy ~callback:Main.quit; - let area = - GlGtk.area [`RGBA;`DEPTH_SIZE 1] ~width:500 ~height:500 ~packing:w#add () in - area#connect#realize ~callback: - begin fun () -> - GlMat.mode `projection; - GlMat.load_identity (); - GlMat.ortho ~x:(-1.0,1.0) ~y:(-1.0,1.0) ~z:(-1.0,1.0); - end; - area#connect#display ~callback: - begin fun () -> - GlClear.color (0.0, 0.0, 0.0); - GlClear.clear [`color]; - GlDraw.color (1.0, 1.0, 1.0); - GlDraw.begins `polygon; - GlDraw.vertex ~x:(-0.5) ~y:(-0.5) (); - GlDraw.vertex ~x:(-0.5) ~y:(0.5) (); - GlDraw.vertex ~x:(0.5) ~y:(0.5) (); - GlDraw.vertex ~x:(0.5) ~y:(-0.5) (); - GlDraw.ends (); - Gl.flush () - end; - Timeout.add ~ms:10000 ~callback:(fun () -> w#destroy ();false); - w#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/README b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/README deleted file mode 100644 index 6cbb5b6e9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/README +++ /dev/null @@ -1,17 +0,0 @@ -Since this library was written in commuting label mode, examples were -also written in this mode. -Still, the following examples also compile in classic mode without -any modification. - -* calendar.ml -* clist.ml -* drawing.ml -* entry.ml -* events.ml -* fifteen.ml -* hello.ml -* image.ml -* radiobuttons.ml -* rpn.ml -* scrolledwin.ml -* testinput.ml \ No newline at end of file diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/buttons.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/buttons.ml deleted file mode 100644 index 78eebb038..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/buttons.ml +++ /dev/null @@ -1,26 +0,0 @@ -(* $Id$ *) - -open GMain - -let xpm_label_box ~(window : #GContainer.container) - ~file ~text ?packing ?(show=true) () = - if not (Sys.file_exists file) then failwith (file ^ " does not exist"); - let box = GPack.hbox ~border_width: 2 ?packing ~show:false () in - let pixmap = GDraw.pixmap_from_xpm ~file ~window () in - GMisc.pixmap pixmap ~packing:(box#pack ~padding:3) (); - GMisc.label ~text ~packing:(box#pack ~padding:3) (); - if show then box#misc#show (); - new GObj.widget_full box#as_widget - -let main () = - let window = GWindow.window ~title:"Pixmap'd Buttons!" ~border_width:10 () in - window#connect#destroy ~callback:Main.quit; - let button = GButton.button ~packing:window#add () in - button#connect#clicked ~callback: - (fun () -> prerr_endline "Hello again - cool button was pressed"); - xpm_label_box ~window ~file:"test.xpm" ~text:"cool button" - ~packing:button#add (); - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/calc.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/calc.ml deleted file mode 100644 index 405d1bf87..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/calc.ml +++ /dev/null @@ -1,114 +0,0 @@ -(* $Id$ *) - -(* A simple calculator ported from LablTk to LablGtk *) - -let mem_string ~char s = - try - for i = 0 to String.length s -1 do - if s.[i] = char then raise Exit - done; false - with Exit -> true - -let ops = ['+',(+.); '-',(-.); '*',( *.); '/',(/.)] - -(* The abstract calculator class. Does not use Gtk *) - -class virtual calc = object (calc) - val mutable x = 0.0 - val mutable op = None - val mutable displaying = true - - method virtual set : string -> unit - method virtual get : string - method virtual quit : unit -> unit - method insert s = calc#set (calc#get ^ s) - method get_float = float_of_string (calc#get) - - initializer calc#set "0" - - method command s = - if s <> "" then match s.[0] with - '0'..'9' -> - if displaying then (calc#set ""; displaying <- false); - calc#insert s - | '.' -> - if displaying then - (calc#set "0."; displaying <- false) - else - if not (mem_string ~char:'.' calc#get) then calc#insert s - | '+'|'-'|'*'|'/' as c -> - displaying <- true; - begin match op with - None -> - x <- calc#get_float; - op <- Some (List.assoc c ops) - | Some f -> - x <- f x (calc#get_float); - op <- Some (List.assoc c ops); - calc#set (string_of_float x) - end - | '='|'\n'|'\r' -> - displaying <- true; - begin match op with - None -> () - | Some f -> - x <- f x (calc#get_float); - op <- None; - calc#set (string_of_float x) - end - | 'q' -> calc#quit () - | _ -> () -end - -(* Buttons for the calculator *) - -let m = - [|[|"7";"8";"9";"+"|]; - [|"4";"5";"6";"-"|]; - [|"1";"2";"3";"*"|]; - [|"0";".";"=";"/"|]|] - -(* The physical calculator. Inherits from the abstract one *) - -open GMain - -class calculator ?packing ?show () = - let table = GPack.table ~rows:5 ~columns:4 ~homogeneous:true ~show:false () in - object (calc) - inherit calc - - val label = - let frame = GBin.frame ~shadow_type:`IN () - ~packing:(table#attach ~left:0 ~top:0 ~right:4 ~expand:`BOTH) in - let evbox = GBin.event_box ~packing:frame#add () in - evbox#misc#set_style evbox#misc#style#copy; - evbox#misc#style#set_bg [`NORMAL,`WHITE]; - GMisc.label ~justify:`RIGHT ~xalign:0.95 ~packing:evbox#add () - val table = table - - method set = label#set_text - method get = label#text - method quit = Main.quit - - initializer - for i = 0 to 3 do for j = 0 to 3 do - let button = - GButton.button ~label:(" " ^ m.(i).(j) ^ " ") - ~packing:(table#attach ~top:(i+1) ~left:j ~expand:`BOTH) () in - button#connect#clicked ~callback:(fun () -> calc#command m.(i).(j)); - done done; - ignore (GObj.pack_return table ~packing ~show) - end - -(* Finally start everything *) - -let w = GWindow.window ~auto_shrink:true () - -let applet = new calculator ~packing: w#add () - -let _ = - w#connect#destroy ~callback: Main.quit; - w#event#connect#key_press - ~callback:(fun ev -> applet#command (GdkEvent.Key.string ev); true); - w#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/calendar.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/calendar.ml deleted file mode 100644 index 233c7449f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/calendar.ml +++ /dev/null @@ -1,21 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let window = GWindow.window () in - window#connect#destroy ~callback:Main.quit; - - let calendar = GMisc.calendar ~packing:window#add () in - calendar#connect#day_selected ~callback: - begin fun () -> - let (year,month,day) = calendar#date in - Printf.printf "You selected %d/%d/%02d.\n" - day (month+1) (year mod 100); - flush stdout - end; - - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/clist.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/clist.ml deleted file mode 100644 index f900f1781..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/clist.ml +++ /dev/null @@ -1,51 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let window = GWindow.window ~title:"CList example" ~width:300 ~height:150 () in - window#connect#destroy ~callback:Main.quit; - - let vbox = GPack.vbox ~border_width:5 ~packing:window#add () in - - let hbox = GPack.hbox ~packing:vbox#add () in - let sb = - GRange.scrollbar `VERTICAL ~packing:(hbox#pack ~from:`END) () in - let clist = - GList.clist ~titles:["Ingredients";"Amount"] ~shadow_type:`OUT - ~packing:hbox#add ~vadjustment:sb#adjustment () in - clist#connect#select_row ~callback: - begin fun ~row ~column ~event -> - let text = clist#cell_text row column in - Printf.printf "You selected row %d. More specifically you clicked in column %d, and the text in this cell is %s\n\n" row column text; - flush stdout - end; - - let hbox = GPack.hbox ~packing:vbox#pack () in - - let button_add = GButton.button ~label:"Add List" ~packing:hbox#add () in - button_add#connect#clicked ~callback: - begin fun () -> - List.iter ~f:(fun t -> ignore (clist#append t)) - [ ["Milk"; "3 Oz"]; - ["Water"; "6 l"]; - ["Carrots"; "2"]; - ["Snakes"; "55"] ] - end; - - let button_clear = GButton.button ~label:"Clear List" ~packing:hbox#add () in - button_clear#connect#clicked ~callback:clist#clear; - - let button_hide_show = - GButton.button ~label:"Hide/Show titles" ~packing:hbox#add () in - let flag = ref false in - button_hide_show#connect#clicked ~callback: - begin fun () -> - clist#set_titles_show !flag; - flag := not !flag - end; - - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/combo.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/combo.ml deleted file mode 100644 index 9aff1b320..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/combo.ml +++ /dev/null @@ -1,23 +0,0 @@ -(* $Id$ *) - -open GMain - -let make_arrow_label combo ~label ~string = - let item = GList.list_item () in (* no packing here, it blocks GTK *) - let hbox = GPack.hbox ~spacing:3 ~packing:item#add () in - GMisc.arrow ~kind:`RIGHT ~shadow:`OUT ~packing:hbox#pack (); - GMisc.label ~text:label ~packing:hbox#pack (); - combo#set_item_string item string; - combo#list#add item; - item - -let main () = - let window = GWindow.window ~border_width:10 () in - window#connect#destroy ~callback:Main.quit; - let combo = GEdit.combo ~packing:window#add () in - make_arrow_label combo ~label:"First item" ~string:"1st item"; - make_arrow_label combo ~label:"Second item" ~string:"2nd item"; - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/csview.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/csview.ml deleted file mode 100644 index eaf8de18b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/csview.ml +++ /dev/null @@ -1,155 +0,0 @@ -(* $Id$ *) - -(* A simple CSV data viewer *) - -type data = - { fields : string list; - titles : string list; - data : string list list } - -let mem_string ~char s = - try - for i = 0 to String.length s - 1 do - if s.[i] = char then raise Exit - done; - false - with Exit -> true - -let rec until ~chars ?(escapes="") ?(buf = Buffer.create 80) s = - match Stream.peek s with - Some c -> - if mem_string ~char:c escapes then begin - Stream.junk s; - Buffer.add_char buf (Stream.next s); - until ~chars ~escapes ~buf s - end else if mem_string ~char:c chars then - Buffer.contents buf - else begin - Buffer.add_char buf c; - Stream.junk s; - until ~chars ~escapes ~buf s - end - | None -> - if Buffer.length buf > 0 then raise (Stream.Error "until") - else raise Stream.Failure - -let rec ignores ?(chars = " \t") s = - match Stream.peek s with - Some c when mem_string ~char:c chars -> - Stream.junk s; ignores ~chars s - | _ -> () - -let parse_field = parser - [< ''"'; f = until ~chars:"\"" ~escapes:"\\"; ''"'; _ = ignores >] -> - for i = 0 to String.length f - 1 do - if f.[i] = '\031' then f.[i] <- '\n' - done; - f - | [< f = until ~chars:",\n\r" >] -> f - | [< >] -> "" - -let comma = parser [< '','; _ = ignores >] -> () - -let rec parse_list ~item ~sep = parser - [< i = item; s >] -> - begin match s with parser - [< _ = sep; l = parse_list ~item ~sep >] -> i :: l - | [< >] -> [i] - end - | [< >] -> [] - -let parse_one = parse_list ~item:parse_field ~sep:comma - -let lf = parser [< ''\n'|'\r'; _ = ignores ~chars:"\n\r"; _ = ignores >] -> () - -let parse_all = parse_list ~item:parse_one ~sep:lf - -let read_file file = - let ic = open_in file in - let s = Stream.of_channel ic in - let data = parse_all s in - close_in ic; - match data with - ("i"::fields) :: ("T"::titles) :: data -> - {fields=fields; titles=titles; data=List.map ~f:List.tl data} - | titles :: data -> - {fields=titles; titles=titles; data=data} - | _ -> failwith "Insufficient data" - -let print_string s = - Format.print_char '"'; - for i = 0 to String.length s - 1 do - match s.[i] with - '\'' -> Format.print_char '\'' - | '"' -> Format.print_string "\\\"" - | '\160'..'\255' as c -> Format.print_char c - | c -> Format.print_string (Char.escaped c) - done; - Format.print_char '"' - -(* -#install_printer print_string;; -*) - -open GMain - -let field_widths = - [ "i", 0; - "ATTR", 0; - "NAME", 17; - "NAPR", 8; - "TEL1", 14; - "ZIPC", 12; - "ADR1", 40; - "BRTH", 10; - "RMRK", 20; - "CHK1", 0; - "CHK2", 0; - "CHK3", 0; - "CHK4", 0; - "TIM1", 16; - "TIM2", 16; - "ALRM", 0; - "ATTM", 0; - ] - -let main argv = - if Array.length argv <> 2 then begin - prerr_endline "Usage: csview "; - exit 2 - end; - let data = read_file argv.(1) in - let w = GWindow.window () in - w#misc#realize (); - let style = w#misc#style in - let font = Gdk.Font.load_fontset "-schumacher-clean-medium-r-normal--13-*-*-*-c-60-*,-mnkaname-fixed-*--12-*" in - let w0 = Gdk.Font.char_width font '0' in - style#set_font font; - w#connect#destroy ~callback:Main.quit; - let sw = GBin.scrolled_window ~width:600 ~height:300 ~packing:w#add () in - let cl = GList.clist ~titles:data.titles ~packing:sw#add () in - List.fold_left data.fields ~init:0 ~f: - begin fun acc f -> - let width = try List.assoc f field_widths with Not_found -> -1 in - if width = 0 then - cl#set_column ~visibility:false acc - else begin - if width > 0 then cl#set_column ~width:(width * w0) acc - else cl#set_column ~auto_resize:true acc; - if f = "NAPR" || f = "TIM1" || f = "CLAS" then - cl#set_sort ~auto:true ~column:acc (); - try - let ali = GBin.alignment_cast (cl#column_widget acc) in - let lbl = GMisc.label_cast (List.hd ali#children) in - lbl#set_alignment ~x:0. () - with _ -> - prerr_endline ("No column widget for field " ^ f) - end; - succ acc - end; - List.iter data.data - ~f:(fun l -> if List.length l > 1 then ignore (cl#append l)); - w#show (); - Main.main () - -let _ = main Sys.argv diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/dcalendar.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/dcalendar.ml deleted file mode 100644 index 6128506b4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/dcalendar.ml +++ /dev/null @@ -1,247 +0,0 @@ -(* $Id$ *) - -(* A small calendar *) -(* Needs Unix module, so use with lablgtk_t *) - -open Printf - -type date = { mutable year: int; mutable mon: int; mutable mday: int } - - (* Load the schedule data *) -let calendar_file = Filename.concat (Sys.getenv "HOME") ".camlendar" - -let schedule = - try - let ichan = open_in calendar_file in - let (s : (int * int * int, string) Hashtbl.t) = - Marshal.from_channel ichan in - close_in ichan; - s - with Sys_error msg -> - prerr_endline msg; flush stderr; - Hashtbl.create 13;; - - (* Saves the schedule data when the application terminates *) -at_exit (fun () -> - let ochan = open_out calendar_file in - Marshal.to_channel ochan schedule ~mode: []; - close_out ochan);; - - (* date: Current date initialized to "today" *) -let date = - let tm = Unix.localtime (Unix.time ()) in - { year = 1900 + tm.Unix.tm_year; mon = tm.Unix.tm_mon; mday = 1 } - - - (* previous_month, next_month: change application status *) -let previous_month () = - date.mday <- 1; - if date.mon = 0 then - (date.year <- date.year - 1; date.mon <- 11) - else date.mon <- date.mon - 1 - -let next_month () = - date.mday <- 1; - if date.mon = 11 then (date.year <- date.year + 1; date.mon <- 0) - else date.mon <- date.mon + 1 - - (* leap, mon_name, wday_name: Calendar related function and data *) -let leap year = - (year mod 400 = 0) or - (year mod 4 = 0) & (year mod 100 <> 0) - -let mdays_in_month = [|31; 28; 31; 30; 31; 30; 31; 31; 30; 31; 30; 31|] - -let mon_name = - [|"Jan"; "Feb"; "Mar"; "Apr"; "May"; "Jun"; - "Jul"; "Aug"; "Sep"; "Oct"; "Nov"; "Dec"|] - -let wday_name = - [|"Sun"; "Mon"; "Tue"; "Wed"; "Thu"; "Fri"; "Sat"|] - -let s_normal = 0 and s_focused = 1 and s_planned = 2 -let styles = - let default = (Obj.magic () : GObj.style) in - [| default; default; default |] - - (* class date_button: one button for each day in the month *) -class date_button i (calendar : GPack.table) = - let mday = i + 1 in - - object (self) - val widget = GButton.button ~label: (string_of_int mday) ~show: false () - val mday = mday - val mutable show = false - val mutable have_plan = false - - method widget = widget - method focus_on = - date.mday <- mday; - widget#misc#set_style styles.(s_focused) - method focus_off = - widget#misc#set_style styles.(if have_plan then s_planned else s_normal) - method set_plan = - have_plan <- true; - widget#misc#set_style styles.(s_planned) - method unset_plan = - have_plan <- false; - widget#misc#set_style styles.(s_normal) - - method show wday0 = - if not show then - let top = (mday + wday0) / 7 + 1 - and left = (mday + wday0) mod 7 in - calendar#attach ~left ~top ~expand:`BOTH widget#coerce; - widget#misc#show (); - show <- true - - method hide = - if show then - (widget#misc#hide (); - calendar#remove widget#coerce; - show <- false) - end - -let update_calendar (calendar : GPack.table) (buttons : date_button array) = - let now = Unix.localtime (Unix.gettimeofday ()) in - let _, first = Unix.mktime { now with - Unix.tm_mday = 1; - Unix.tm_mon = date.mon; - Unix.tm_year = date.year - 1900 } in - - (* wday0: day of the week of the zero'th day in the month *) - let wday0 = (first.Unix.tm_wday - 1 + 7) mod 7 in - - let ndays = - if date.mon = 1 & leap date.year then mdays_in_month.(date.mon) + 1 - else mdays_in_month.(date.mon) in - - Array.iter ~f: (fun button -> button#hide) - buttons; - - for i = 0 to ndays - 1 do buttons.(i)#show wday0 done - -let create_GUI () = - - (* views part *) - - let win = - GWindow.window ~title: "Camlendar" ~show: true - ~allow_shrink: false ~allow_grow: false () in - win#event#connect#delete - ~callback: (fun _ -> GMain.Main.quit (); exit 0; false); - - let style = win#misc#style#copy in - styles.(s_normal) <- style; - - let style = style#copy in - style#set_bg [`NORMAL, `NAME "light green"; - `PRELIGHT, `NAME "light green"]; - styles.(s_focused) <- style; - - styles.(s_focused) <- style; - let style = style#copy in - style#set_bg [`NORMAL, `NAME "sky blue"; - `PRELIGHT, `NAME "sky blue"]; - styles.(s_planned) <- style; - - let vbox = GPack.vbox ~packing: win#add () in - let packing = vbox#add in - let toolbar = GButton.toolbar ~style: `TEXT ~packing () in - - let prev = - toolbar#insert_button ~text: "Prev" ~tooltip: "Show previous month" () in - let next = - toolbar#insert_button ~text: "Next" ~tooltip: "Show next month" () in - - let calendar = - GPack.table ~homogeneous: true ~rows: 7 ~columns: 7 - ~border_width: 10 ~row_spacings: 2 ~col_spacings: 2 ~packing () in - - Array.iteri - ~f: (fun i wday -> - ignore (GButton.button ~label: wday - ~packing:(calendar#attach ~top: 0 ~left: i ~expand:`BOTH) ())) - wday_name; - - let buttons = - Array.init 31 ~f: (fun i -> new date_button i calendar) in - - let date_view = GMisc.label ~justify: `CENTER ~packing () in - - let text = GEdit.text ~editable: true ~width: 70 ~height: 50 ~packing () in - - (* Controls part *) - - let save_text () = - let data = text#get_chars ~start: 0 ~stop: text#length in - let key = (date.year, date.mon, date.mday) in - Hashtbl.remove schedule key; - if data <> "" then - (Hashtbl.add schedule ~key ~data; - buttons.(date.mday - 1)#set_plan) - else buttons.(date.mday - 1)#unset_plan in - - let restore_text () = - text#delete_text ~start: 0 ~stop: text#length; - try - text#insert_text ~pos: 0 - (Hashtbl.find schedule (date.year, date.mon, date.mday)); - () - with Not_found -> () in - - let update_date_view () = - date_view#set_text (sprintf "%d %s, %d\n" - date.mday mon_name.(date.mon) date.year) in - - let update_view () = - update_calendar calendar buttons; - update_date_view (); - Array.iteri ~f: (fun i button -> - (try - Hashtbl.find schedule (date.year, date.mon, i + 1); - button#set_plan - with Not_found -> button#unset_plan); - button#focus_off) buttons; - win#set_title (sprintf "Camlendar: %s, %d" - mon_name.(date.mon) date.year) in - - prev#connect#clicked - ~callback: (fun () -> - save_text (); - previous_month (); - - update_view (); - restore_text (); - buttons.(0)#focus_on); - - next#connect#clicked - ~callback: (fun () -> - save_text (); - next_month (); - - update_view (); - restore_text (); - buttons.(0)#focus_on); - - Array.iteri - ~f: (fun i button -> - button#widget#connect#clicked - ~callback: (fun () -> - save_text (); - buttons.(date.mday - 1)#focus_off; - - button#focus_on; - restore_text (); - update_date_view ()); - ()) - buttons; - - update_view (); - buttons.(0)#focus_on;; - -GMain.Main.init (); -print_endline (GtkMain.Main.set_locale ()); -flush stdout; -create_GUI (); -GMain.Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/drawing.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/drawing.ml deleted file mode 100644 index a4623bae0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/drawing.ml +++ /dev/null @@ -1,19 +0,0 @@ -(* $Id$ *) - -open GMain - -let window = GWindow.window ~show:true () - -let w = window#misc#window -let drawing = new GDraw.drawable w - -let redraw _ = - drawing#polygon ~filled:true - [ 10,100; 35,35; 100,10; 165,35; 190,100; - 165,165; 100,190; 35,165; 10,100 ]; - false - -let _ = - window#connect#destroy ~callback:Main.quit; - window#event#connect#after#configure ~callback:redraw; - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/editor.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/editor.ml deleted file mode 100644 index 5e3da80cd..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/editor.ml +++ /dev/null @@ -1,101 +0,0 @@ -(* $Id$ *) - -open GMain - -let file_dialog ~title ~callback ?filename () = - let sel = - GWindow.file_selection ~title ~modal:true ?filename () in - sel#cancel_button#connect#clicked ~callback:sel#destroy; - sel#ok_button#connect#clicked ~callback: - begin fun () -> - let name = sel#get_filename in - sel#destroy (); - callback name - end; - sel#show () - -class editor ?packing ?show () = object (self) - val text = GEdit.text ~editable:true ?packing ?show () - val mutable filename = None - - method text = text - - method load_file name = - try - let ic = open_in name in - filename <- Some name; - text#freeze (); - text#delete_text ~start:0 ~stop:text#length; - let buf = String.create 1024 and len = ref 0 in - while len := input ic ~buf ~pos:0 ~len:1024; !len > 0 do - if !len = 1024 then text#insert buf - else text#insert (String.sub buf ~pos:0 ~len:!len) - done; - text#set_point 0; - text#thaw (); - close_in ic - with _ -> () - - method open_file () = file_dialog ~title:"Open" ~callback:self#load_file () - - method save_dialog () = - file_dialog ~title:"Save" ?filename - ~callback:(fun file -> self#output ~file) () - - method save_file () = - match filename with - Some file -> self#output ~file - | None -> self#save_dialog () - - method output ~file = - try - if Sys.file_exists file then Sys.rename ~src:file ~dst:(file ^ "~"); - let oc = open_out file in - output_string oc (text#get_chars ~start:0 ~stop:text#length); - close_out oc; - filename <- Some file - with _ -> prerr_endline "Save failed" -end - -let window = GWindow.window ~width:500 ~height:300 ~title:"editor" () -let vbox = GPack.vbox ~packing:window#add () - -let menubar = GMenu.menu_bar ~packing:vbox#pack () -let factory = new GMenu.factory menubar -let accel_group = factory#accel_group -let file_menu = factory#add_submenu "File" -let edit_menu = factory#add_submenu "Edit" - -let hbox = GPack.hbox ~packing:vbox#add () -let editor = new editor ~packing:hbox#add () -let scrollbar = GRange.scrollbar `VERTICAL ~packing:hbox#pack () - -open GdkKeysyms - -let _ = - window#connect#destroy ~callback:Main.quit; - let factory = new GMenu.factory file_menu ~accel_group in - factory#add_item "Open..." ~key:_O ~callback:editor#open_file; - factory#add_item "Save" ~key:_S ~callback:editor#save_file; - factory#add_item "Save as..." ~callback:editor#save_dialog; - factory#add_separator (); - factory#add_item "Quit" ~key:_Q ~callback:window#destroy; - let factory = new GMenu.factory edit_menu ~accel_group in - factory#add_item "Copy" ~key:_C ~callback:editor#text#copy_clipboard; - factory#add_item "Cut" ~key:_X ~callback:editor#text#cut_clipboard; - factory#add_item "Paste" ~key:_V ~callback:editor#text#paste_clipboard; - factory#add_separator (); - factory#add_check_item "Word wrap" ~active:false - ~callback:editor#text#set_word_wrap; - factory#add_check_item "Read only" ~active:false - ~callback:(fun b -> editor#text#set_editable (not b)); - window#add_accel_group accel_group; - editor#text#event#connect#button_press - ~callback:(fun ev -> - let button = GdkEvent.Button.button ev in - if button = 3 then begin - file_menu#popup ~button ~time:(GdkEvent.Button.time ev); true - end else false); - editor#text#set_vadjustment scrollbar#adjustment; - window#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/entry.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/entry.ml deleted file mode 100644 index 30f3c3dd8..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/entry.ml +++ /dev/null @@ -1,48 +0,0 @@ -(* $Id$ *) - -open Printf -open GMain - -let enter_callback entry = - printf "Entry contents: %s\n" entry#text; - flush stdout - -let entry_toggle_editable button entry = - entry#set_editable button#active - -let entry_toggle_visibility button entry = - entry#set_visibility button#active - -let main () = - - let window = GWindow.window ~title: "GTK Entry" ~width: 200 ~height: 100 () in - window#connect#destroy ~callback:Main.quit; - - let vbox = GPack.vbox ~packing: window#add () in - - let entry = GEdit.entry ~max_length: 50 ~packing: vbox#add () in - entry#connect#activate ~callback:(fun () -> enter_callback entry); - entry#set_text "Hello"; - entry#append_text " world"; - entry#select_region ~start:0 ~stop:entry#text_length; - - let hbox = GPack.hbox ~packing: vbox#add () in - - let check = GButton.check_button ~label: "Editable" ~active: true - ~packing: hbox#add () in - check#connect#toggled ~callback:(fun () -> entry_toggle_editable check entry); - - let check = - GButton.check_button ~label:"Visible" ~active:true ~packing:hbox#add () in - check#connect#toggled - ~callback:(fun () -> entry_toggle_visibility check entry); - - let button = GButton.button ~label: "Close" ~packing: vbox#add () in - button#connect#clicked ~callback:window#destroy; - button#grab_default (); - - window#show (); - - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/events.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/events.ml deleted file mode 100644 index 91a9872af..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/events.ml +++ /dev/null @@ -1,25 +0,0 @@ -(* $Id$ *) - -open GMain - -let _ = - let window = GWindow.window () in - window#connect#destroy ~callback:Main.quit; - - let text = GEdit.text ~editable:true ~packing:window#add () in - text#event#connect#button_press ~callback: - begin fun ev -> - GdkEvent.Button.button ev = 3 && - GdkEvent.get_type ev = `BUTTON_PRESS && - begin - let pos = text#position in - GdkEvent.Button.set_button ev 1; - text#event#send (GdkEvent.coerce ev); - Printf.printf "Position is %d.\n" text#position; - flush stdout; - text#set_position pos; - true - end - end; - window#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fifteen.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fifteen.ml deleted file mode 100644 index efdf51fc2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fifteen.ml +++ /dev/null @@ -1,97 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GObj -open GMain - -class position ~init_x ~init_y ~min_x ~min_y ~max_x ~max_y = object - val mutable x = init_x - val mutable y = init_y - method current = (x, y) - method up () = if y > min_y then y <- y-1 else (); (x, y) - method down () = if y < max_y then y <- y+1 else (); (x, y) - method left () = if x > min_x then x <- x-1 else (); (x, y) - method right () = if x < max_x then x <- x+1 else (); (x, y) -end - -let game_init () = (* generate initial puzzle state *) - let rec game_aux acc rest n_invert = - let len = List.length rest in - if len=0 then - if n_invert mod 2 = 0 then - acc (* to be solvable, n_invert must be even *) - else - (List.hd (List.tl acc))::(List.hd acc)::(List.tl (List.tl acc)) - else begin - let rec extract n xs = - if (n=0) then (List.hd xs, List.tl xs) - else - let (ans, ys) = extract (n-1) (List.tl xs) in - (ans, List.hd xs :: ys) in - let ran = Random.int len in - let (elm, rest1) = extract ran rest in - let rec count p xs = match xs with - [] -> 0 - | y :: ys -> let acc = count p ys in - if p y then 1+acc else acc - in - let new_n_invert = count (fun x -> elm > x) acc in - game_aux (elm :: acc) rest1 (n_invert+new_n_invert) - end in - let rec from n = if n=0 then [] else n :: from (n-1) in - game_aux [] (from 15) 0 - -let _ = Random.init (int_of_float (Sys.time () *. 1000.)) -let window = GWindow.window () -let _ = window#connect#destroy ~callback:GMain.Main.quit - -let tbl = GPack.table ~rows:4 ~columns:4 ~homogeneous:true ~packing:window#add () -let dummy = GMisc.label ~text:"" ~packing:(tbl#attach ~left:3 ~top:3) () -let arr = Array.create_matrix ~dimx:4 ~dimy:4 dummy -let init = game_init () -let _ = - for i = 0 to 15 do - let j = i mod 4 in - let k = i/4 in - let frame = - GBin.frame ~shadow_type:`OUT ~width:32 ~height:32 - ~packing:(tbl#attach ~left:j ~top:k) () in - if i < 15 then - arr.(j).(k) <- - GMisc.label ~text:(string_of_int (List.nth init i)) - ~packing:frame#add () - done -let pos = new position ~init_x:3 ~init_y:3 ~min_x:0 ~min_y:0 ~max_x:3 ~max_y:3 - -open GdkKeysyms - -let _ = - window#event#connect#key_press ~callback: - begin fun ev -> - let (x0, y0) = pos#current in - let wid0 = arr.(x0).(y0) in - let key = GdkEvent.Key.keyval ev in - if key = _q || key = _Escape then (Main.quit (); exit 0) else - let (x1, y1) = - if key = _h || key = _Left then - pos#right () - else if key = _j || key = _Down then - pos#up () - else if key = _k || key = _Up then - pos#down () - else if key = _l || key = _Right then - pos#left () - else (x0, y0) - in - let wid1 = arr.(x1).(y1) in - wid0#set_text (wid1#text); - wid1#set_text ""; - true - end - -let main () = - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fixed_editor.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fixed_editor.ml deleted file mode 100644 index 1cde124c7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fixed_editor.ml +++ /dev/null @@ -1,279 +0,0 @@ -open Gdk -open Gtk -open GObj -open GMain - -let dnd_source_window () = - let window = GWindow.window ~position:`MOUSE () in - let vbx = GPack.vbox ~border_width:10 ~packing:window#add () - in - let evb = GBin.event_box ~border_width:0 ~packing:vbx#add () in - let frm = GBin.frame ~shadow_type:`OUT ~packing:evb#add () in - let lbl = GMisc.label ~text:"hello" ~packing:frm#add () in - let lbl2 = GMisc.label ~text:"drag from here!" ~packing:vbx#add () in - let targets = [ { target = "STRING"; flags = []; info = 0} ] in - begin - window#show (); - evb#drag#source_set targets ~modi:[`BUTTON1] ~actions:[`COPY]; - evb#drag#connect#data_get ~callback: begin - fun _ data ~info ~time:_ -> - data#set ~typ:data#target ~format:0 ~data:"hello! " - end - end - -let corner_width = 7 -let corner_height = 7 - -type drag_action_type = - GB_DRAG_NONE - | GB_MIDDLE - | GB_TOP - | GB_BOTTOM - | GB_LEFT - | GB_RIGHT - | GB_TOP_LEFT - | GB_TOP_RIGHT - | GB_BOTTOM_LEFT - | GB_BOTTOM_RIGHT - -let get_position_in_widget w ~x ~y ~width ~height = - if (x <= corner_width) then - if (y <= corner_height) then - GB_TOP_LEFT - else if (y >= height-corner_width) then - GB_BOTTOM_LEFT - else GB_LEFT - else if (x >= width-corner_width) then - if (y <= corner_height) then - GB_TOP_RIGHT - else if (y >= height-corner_width) then - GB_BOTTOM_RIGHT - else GB_RIGHT - else if (y <= corner_height) then - GB_TOP - else if (y >= height-corner_width) then - GB_BOTTOM - else GB_MIDDLE - -class drag_info = object - val mutable drag_action = GB_DRAG_NONE - val mutable drag_offset = (0, 0) - val mutable toimen = (0, 0) - val mutable drag_widget = None - method drag_action = drag_action - method drag_offset = drag_offset - method toimen = toimen (* coord. of opposite corner *) - method set_drag_widget (w : GObj.widget) = begin - match drag_widget with - None -> begin - GMain.Grab.add w; - drag_widget <- Some w; - () - end - | Some w -> () - end - method unset_drag_widget () = begin - match drag_widget with - Some w -> begin - GMain.Grab.remove w; - drag_widget <- None; - () - end - | None -> () - end - method set_drag_offset ~x ~y = drag_offset <- (x, y) - method set_drag_action (w : Gdk.window) ~x ~y = - begin - let (x0, y0) = Window.get_position w in - let (width, height) = Window.get_size w in - drag_action <- get_position_in_widget w ~x ~y ~width ~height; - let (x1, y1) = (x0+width, y0+height) in - toimen <- - match drag_action with - GB_TOP_LEFT -> (x1, y1) - | GB_BOTTOM_LEFT -> (x1, y0) - | GB_TOP_RIGHT -> (x0, y1) - | GB_BOTTOM_RIGHT -> (x0, y0) - | GB_TOP -> (x0, y1) - | GB_BOTTOM -> (x0, y0) - | GB_LEFT -> (x1, y0) - | GB_RIGHT -> (x0, y0) - | _ -> (-1, -1) - end - method unset_drag_action () = drag_action <- GB_DRAG_NONE -end - - -let to_grid g x = x - (x mod g) - -let to_grid2 g (x, y) = (to_grid g x, to_grid g y) - -class fix_editor ~width ~height ~packing = - let info = new drag_info in - let fix = GPack.fixed ~width ~height ~packing () in - let _ = fix#misc#realize () in - let fix_window = fix#misc#window in - let fix_drawing = new GDraw.drawable fix_window in - - object (self) - inherit GObj.widget fix#as_widget - val mutable grid = 1 - method set_grid g = - if (grid != g) then begin - let pix = - GDraw.pixmap ~window:fix ~width:g ~height:g ~mask:true () in - let c = fix#misc#style#bg `NORMAL in - pix#set_foreground (`COLOR c); - pix#rectangle ~filled:true ~x:0 ~y:0 ~width:g ~height:g (); - pix#set_foreground `BLACK; - pix#point ~x:0 ~y:0; - Gdk.Window.set_back_pixmap (fix#misc#window) (`PIXMAP pix#pixmap) - end; - grid <- g - - method new_child ~name ~x ~y ~width ~height ~callback = - let evb = GBin.event_box ~border_width:0 ~packing:fix#add () in - let lbl = GMisc.label ~text:name ~width ~height ~packing:evb#add () in - evb#misc#realize (); - evb#misc#set_geometry ~x ~y (); - self#connect_signals ~ebox:evb ~widget:lbl#coerce ~callback; - () - - method private connect_signals - ~ebox:(ebox : GBin.event_box) ~widget:(widget : widget) ~callback:cbfun = - let drawing = new GDraw.drawable (ebox#misc#window) in - let draw_id = ref None in - let exps_id = ref None in - let on_paint _ = - let (width, height) = Window.get_size (ebox#misc#window) in begin - drawing#set_foreground `BLACK; - drawing#rectangle ~filled:true ~x:0 ~y:0 - ~width:corner_width ~height:corner_height (); - drawing#rectangle ~filled:true ~x:(width-corner_width) ~y:0 - ~width:corner_width ~height:corner_height (); - drawing#rectangle ~filled:true - ~x:(width-corner_width) - ~y:(height-corner_height) - ~width:corner_width ~height:corner_height (); - drawing#rectangle ~filled:true - ~x:0 - ~y:(height-corner_height) - ~width:corner_width ~height:corner_height (); - drawing#rectangle ~filled:false - ~x:0 ~y:0 ~width:(width-1) ~height:(height-1) (); - end - in - ebox#event#connect#button_press ~callback: - begin fun ev -> - let bx = int_of_float (GdkEvent.Button.x ev) in - let by = int_of_float (GdkEvent.Button.y ev) in - info#set_drag_action (ebox#misc#window) ~x:bx ~y:by; - info#set_drag_offset ~x:bx ~y:by; - true - end; - ebox#event#connect#motion_notify ~callback: - begin fun ev -> - info#set_drag_widget ebox#coerce; - let action = info#drag_action in - let (mx, my) = fix#misc#pointer in - let (ox, oy) = info#drag_offset in - begin match action with - GB_MIDDLE -> - let (nx, ny) = to_grid2 grid (mx-ox, my-oy) in - ebox#misc#set_geometry ~x:nx ~y:ny (); - if cbfun ~x:nx ~y:ny ~width:(-2) ~height:(-2) then - () - else (* should we undo ? *) () - | GB_DRAG_NONE -> () (* do nothing *) - | GB_TOP_LEFT | GB_BOTTOM_LEFT - | GB_TOP_RIGHT | GB_BOTTOM_RIGHT -> - let (toi_x, toi_y) = info#toimen in - let (mx, my) = to_grid2 grid (mx, my) in - let (lx, rx) = - if mx - let (lx, toi_y) = info#toimen in - let my = to_grid grid my in - let (ty, by) = if my - let (toi_x, ty) = info#toimen in - let mx = to_grid grid mx in - let (lx, rx) = if mx - info#unset_drag_action (); - info#unset_drag_widget (); - true - end; - exps_id := Some (ebox#event#connect#after#expose - ~callback:(fun _ -> on_paint(); false)); - draw_id := Some (ebox#misc#connect#draw ~callback:on_paint); - () - initializer - fix#drag#dest_set ~actions:[`COPY] - [ { target = "STRING"; flags = []; info = 0} ]; - fix#drag#connect#data_received ~callback: begin - fun context ~x ~y data ~info ~time -> - let name = data#data in - let _ = self#new_child ~name ~x ~y ~width:32 ~height:32 - ~callback:(fun ~x ~y ~width ~height -> true) in -(* Printf.printf "%s %d %d\n" (data#data) x y; - flush stdout; *) - context#finish ~success:true ~del:false ~time; - end; - () - end - -(* the following is for test only *) -let window1 () = - let window = GWindow.window () in - let _ = window#connect#destroy ~callback: Main.quit in - let fix = new fix_editor ~width:640 ~height:480 ~packing:window#add in - fix#set_grid 5; - let setter = fix#new_child ~name:"hello" ~x:100 ~y:200 ~width:32 ~height:32 - ~callback:begin fun ~x ~y ~width ~height -> - (* Printf.printf "name=%s, x=%d, y=%d, width=%d, height=%d\n" - "hello" x y width height; - flush stdout; *) - true - end in - window#show (); - () - - - -let main () = - window1 (); - dnd_source_window (); - Main.main () - -let _ = main () - -(* Todo - - change mouse cursor - resize fixed itself - remove_child - (drag and) drop - -*) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fixpoint.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fixpoint.ml deleted file mode 100644 index c33b74d5d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/fixpoint.ml +++ /dev/null @@ -1,30 +0,0 @@ -(* $Id$ *) - -open GMain - -let rec fix ~f ~eq x = - let x' = f x in - if eq x x' then x - else fix ~f ~eq x' - -let eq_float x y = abs_float (x -. y) < 1e-13 - -let _ = - let top = GWindow.window () in - top#connect#destroy ~callback:Main.quit; - let vbox = GPack.vbox ~packing: top#add () in - let entry = GEdit.entry ~max_length: 20 ~packing: vbox#add () in - let tips = GData.tooltips () in - tips#set_tip entry#coerce ~text:"Initial value for fix-point"; - let result = - GEdit.entry ~max_length: 20 ~editable: false ~packing: vbox#add () in - - entry#connect#activate ~callback: - begin fun () -> - let x = try float_of_string entry#text with _ -> 0.0 in - entry#set_text (string_of_float (cos x)); - let res = fix ~f:cos ~eq:eq_float x in - result#set_text (string_of_float res) - end; - top#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/hello.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/hello.ml deleted file mode 100644 index 15ede9a49..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/hello.ml +++ /dev/null @@ -1,18 +0,0 @@ -(* $Id$ *) - -open GMain - -let window = GWindow.window ~border_width: 10 () - -let button = GButton.button ~label:"Hello World" ~packing: window#add () - -let main () = - window#event#connect#delete - ~callback:(fun _ -> prerr_endline "Delete event occured"; true); - window#connect#destroy ~callback:Main.quit; - button#connect#clicked ~callback:(fun () -> prerr_endline "Hello World"); - button#connect#clicked ~callback:window#destroy; - window#show (); - Main.main () - -let _ = Printexc.print main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/image.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/image.ml deleted file mode 100644 index faf82cf44..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/image.ml +++ /dev/null @@ -1,67 +0,0 @@ -(* $Id$ *) - -open GMain -open Gdk - -(* load image *) -let buf = String.create (256*256*3) -let ic = open_in_bin "image256x256.rgb" -let _ = - really_input ic ~buf:buf ~pos:0 ~len:(256*256*3); - close_in ic - -let rgb_at x y = - let offset = (y * 256 + x) * 3 in - (int_of_char buf.[offset ], - int_of_char buf.[offset+1], - int_of_char buf.[offset+2]) - -(* let id = Thread.create GtkThread.main () *) - -(* Choose a visual appropriate for RGB *) -let _ = - Gdk.Rgb.init (); - GtkBase.Widget.set_default_visual (Gdk.Rgb.get_visual ()); - GtkBase.Widget.set_default_colormap (Gdk.Rgb.get_cmap ()) - -(* We need show: true because of the need of visual *) -let window = GWindow.window ~show:true ~width: 256 ~height: 256 () - -let visual = window#misc#visual - -let color_create = Truecolor.color_creator visual - -let w = window#misc#window -let drawing = new GDraw.drawable w - -let _ = - window#connect#destroy ~callback:Main.quit; - - let image = - Image.create ~kind: `FASTEST ~visual: visual ~width: 256 ~height: 256 - in - - let draw () = - for x = 0 to 255 do - for y = 0 to 255 do - let r,g,b = rgb_at x y in - Image.put_pixel image ~x: x ~y: y - ~pixel: (color_create ~red: (r * 256) ~green: (g * 256) ~blue: (b * 256)) - done - done - in - - let display () = - drawing#image image ~xsrc:0 ~ysrc:0 ~xdest:0 ~ydest:0 ~width:256 ~height:256 - in - - draw (); - - window#event#connect#after#expose ~callback: - begin fun _ -> - display (); false - end; - (* Thread.join id *) - - window#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/image256x256.rgb b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/image256x256.rgb deleted file mode 100644 index 25d499594..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/image256x256.rgb +++ /dev/null @@ -1,19 +0,0 @@ -”·â•ºÝ›±Ï“­ÐŸÒŸ¤ÃŸ¦Î¤¦Ûª¤ÎªªÚ¯ž×¤•Ð¡™Ô±¬â­©Þ®§çž®Ðš¶É”¸Ë¡¶¼¥®Å¢³Ó ´Îª½Æ¨¼Ó¬·Ó¶´ÏµÀÆ´°¼¬¾À·³ÄÄö¾½ÂÇÀ¼¿½·ÆĹÑÆÁÂÏ·ÃÌÅÍÉÙ¼ÍÓ¿ÊÁÆÏÇÄãÍÕßÏØÕÍÎÜÌÇãÑÑâÙÔ×ÚÈâÈÔÜÄÌØÈÒÒÇÍ×ÃÅÛÁÍáÇËàÊËêËÚð½×ïÅáíËÞõ¼ñø¿âã·Úæ¾ÜÙÈáâÅÜÙÃÖ×®Ö̳ÞȱØÉ·ÍÔ²ÑØ«ÑÑ¡Î͎ÒܗÔ،à͑ÖʏϼƒÉ¼ˆÎ¼ˆÝÁÔËzãÇwØɀÚÆ{âÎçӉÝׅáׂÖÜÓފÙԓØ،Ó؂Îá†ÎÒ|ÛàsÓÛzÞ×ráÙyàÔs×Üi×ØgäÆkåÑoÜÏ_áÍdàÈR߸C׸?Ö´GÙ°WÚ°Kç¸EÚ·YÜÊ]ÞÂOÕ¿;Ù½@ÞÃHâË9íÇ<éË@ðÇ8éÉAè´@æ·AòÌ9ÝÄ7é´@ܲ?Þ½Eä¯CÙ²RάLЯPÒ¡RЩ]̨RÀ¿UÀ²XÉ©FÌ´JϱPŹFËÁJÄ¿FÆÄQȼDÒ°OÔ­DدHÒ³PѵPɶYÐÄ^Ë¿WÙ¬PΞ[ѧWتOˬWͨY͘ZΝdØ£ZÌ·XÁ°EŹPε\Ï®N½»T½³Y´ÃY¶¸N¹¶D°³S±¨Y«¨Mª¬U¦¬[§®@ª®T ¯M¥¢M£žZ œG¬‘E£‘K¥Y¢ŒK·[¨…S¦—EžN§`¡–R˜XŸƒ[‘†Qš‚Sš‘R™‡U§€W©€Tœ‡J¢~Qœ~C–tO”iL•rS”tN©lPªoJ¢zT¯pB¥qIž[M lC«gC¤lD±cC³YTÁSI¸OQ´IBÀIE»ZK»OE¸QH°WU¬TK«QG¹VK®TGºV?¬MD¶Z[¾MGÂUK»ZK²QO½NX¸JZÁHP³KV½J[¼ESÀF]Ä@WÆ;VÆ;\·àš´Ù—«Ò”¬Õ™ Î£¥Ê¥±Ë¡­Ø¤«Ñª«Ù¬¤Ò¦›Ñ¯šÝ¬ ×«¦×¦§Û›«Êž¸Å—®Æ ²À§¾Èª¹Î±¾ÅªÀÆ£Æ˨Á͸¹Ç½¼½¾·¸®²¼½µ»½Â²¼È³ÄÄÀÍ·ÂÌ»ÀǽÀÂË¿ÁÀÃÁÃÑÌÐÍÅÐÉÈÞËËÞÀÓßËÐØÌÇäοáÔÄÕÖÒÚÑÍÐÎÑÓËËÑËÐÑÒÆÖÇÄØËÓÙÄÑÞÊÙèÉÛò½á÷ÃÛîÄãö½ëõ¶èé´ÚáÁåݸáá¾ÜØ»ÞׯÓ˳ÒƸÊɳÏÑ°ÍÈ£Ç͝Æ֙È׏ÎƖÙŌÔ•ÌŏÐʖϾÌȊÚσäÉ~ÝÆxÝÆzè׃ãÖ~ßà…Ù܁Ù߈ÑیÑˎÎבÏׅÎÕxÓØyÙÏÙÔzÞØnßÚmÔânÙØmÙÑfèÓpÚÕmÝÉjèÂ_ã¾Oç·Oä¹IزUÓ¯VÙºQâ»Kß½MÖÈVÓÁP×À@àÁ>ä¾=ðÀ;ñÌEîÒ8íÌ4êË@ïºDêÀCëÄ4íÄ9ÝÀ8ܹ?æ´BÝ«RݧPѲIË®SØ®QÔ¤\ϵQõUϯLÏ«PβDĵDƶ?ηHÒ±RɺKDZRÏ·K̼GЯHÒ¶HÌ®V׿\ÖÀRÛ±XѨUП[Æ OÀ¤YɬTҝS֟SÛ§PÕ®ZÔ´WƱIʺLβZÉ»bÅ´Z»¸^±¹U¹ªHº¬D±ªAª¨I±­U°®Q­©Q œG¨¡Q¦¤J¤—G˜N£‹O¦‹Q£ŽO ŠP°„W®ŒQ¬™Y¦•O¨’N¦”\š–Z›”P R™€SœY›ƒU¢€X¥‡R›zL zW¤x\¡PœqYšmR›oP›rS©oN©lIŸvG¦oLŸaW™]T¨fL©jD³n=¶bD²\C»^I´OR½HJ¸HH¿RFÆJG¼EV²SI«XH©TL´LO¾MBºU9ÀU@·VO¿MAÄUAÃVI·ML¼LV³H\³GZ·PTÂKZ¼IUÈMTÈ@Y½ARº9V“°Ù¤ºÙ‘«Õ‹©×™ÐŸ¤ÍŸ¦Ñ®´Õ²¦Î¨¤Ð´¤Ô£¥Ï«£Ø©«Ø±¢Û¯¨Ð¬¹Ô¢·É¢»Å«³Ã›ºÁ¡·Ð¦ÂÌ©ÄĨ½À©ÉÏ°Èɶ»¸³¼¸½º³³¼°¶Ã²¼Â¸¸Î»ËÇÿĺÏÅÄÃÎÁÂÀËÈÇÐÒÃÈÌÌÄÔ×¾ÇÑÀÓÛÌÊ×ÔÃÏÑ¿ÙÑÀàÓÊÙÎ×ÒÊÔÖÎÍÚÎÑÔÜÈÐÉÁÓÓÔÕÔ×èÈàæÍáêÉßô»ÚóÂÞî¶êõµçñ¸åëÅÚé´àáÀáݳÛÛ©äÙ«ÒÇ´Ôη×ĹÉ΢ÐŞÓєØΓÏѕàЌÔŠÒˆÓƂÔÀ‡ÙĂßÈzÞÉ|äÌnÛØwíàuèÚuÕêzÜâ†ß҆×уÑבÙӉÏΊÓ͇ÓփÜÔsåڀßÏzÚÞjàÐqæâ}êÛlèÏuéÊqÝÈ[áÅ^àÊLÞÄIÞÂLÕ¿Tà­RÔ»RæÉXØ¿X×ÄIãÀFåÃJåÁJíÈIíËD÷ÉHõÈ:ëÕ9ôÂ9ö¿Fä½7îÇ7á·2áÆ?ç¾FæªKàªWÞ TÒ­VÒ­LΞ]֝^Ò¨Pö^Á§O̳T϶KÏ´MʼBѼIÖ»Kʱ?̯JÕ¯?Ë­FÚ¨Kׯ?Ú¦BÜ´NݲSß°K΢IÏ¥NͪNÆ®OÒ¯JÕ¦LÙ¨IÍ­NѱRŶT·RÄ´O¾º^ǺSÁ²Zµ»Q¯²O·©@¿¡G¼¯9°¤?¨ª<²­F¯¥A² E«–B¢ E®•@¨šQ¨‰R‹N©•G¡‘K¥‡Q®’P°ŠD­N¨K¥X™ŒU —N›“Y—Š^ ‰`£_ Xœ†\ŸYœ‡Z£ƒM“zV™}UœwZ˜iM’jR¢lU dJ qV¡kP£]L“W_£`W iLª\M´YT³\O´PQ²RSÂJJ¹DEÂGD·MT·EI²FU¦[O¤GR­BN±MHºJCºZ<°_CÄ]<ÊNBÇKEÁTK¿O[¶N\ÃLMÂGOÃGPÃDWÇJLË:YÄ8Pº4\˜²Þ³Ý™²Ô’¢ÐšªÙ¡ Ûª¯Ý­±Øµ©Ì³£Ð·«Ñ®¦Ó¶¥Ù´©Ô±ºÈ±¹Ë®¸É±¶Å¨¯Í¦¹Ë¶ÏžÁÅ¡ºÆ¢»Ä¬ÂħÇÆ«Ì»¸¿¶½»¼½¾³º½³´Â³µÌ¹»ÈµÂÑÀ¿Ì¹ÍÀ·ÎĹϼÁÓÅÍ×ÅÍÔËÌÒÍÃÍÈÄËÃÔÂÌÖÄËÖÅÛ×ÌÙÏÎÝÑÐÙÌÉÑÏÍÚÛÁ××ÍÐËÈÒÍÍ×ÔÛçÍÖðÂÝéÃáîÁáñ·Úì·áëµìè¾ìè½ãæ¸ãÛ´ÞÔµáÛ¯ÝÔªÜϯØȵÖÆ°ÎÀ´ÒȨá̦ÞĒÝ΋×ʋÏϒÐˊÖŅÕÇÐÒsØÒpæØqä×tåÑtá×vßäuÙâuÕÚnßÕwÒځÔцÒ̋à̀äׂÜрåЁàÓwæÍ{âÕvâÝ|ìÚ{ïßyéÛoÞÜbâÔYêË\àÅWá¿TÛÀUݶSÞ»NÜÃHÞÆS×ÉVÚÁIáÂPê¹EåÆ@ëÆHõÈN÷ÅBíËHòÐCêÓ?íÆCéÊ=å¼9æ¹5ã»Bæ°IÞ®NÔ«\Ó¤YÚ \Ó§UÌ®YΣQÒ¡^ɪ]ά_ëXŲPÉ·Jз@кDÖ³HÒ¸DÌ­>̬AÍ®:׫AÓ­7ݦ;ÚµGÙ³JÜ®RØ­IϬRÇ­RÒ«JÕ²HÒ²SÔ¨NЫKÖ«MѸWÄ·P¼ÃV¼ÄY·ÇO¾¾PĽN¸µF³­<³¡?­©:·¦9·¡:±ž=µ˜Aº¢7µ“6¯’9´“B§ŠH¢ŠG ŒE§‡> ’E¦”Iª”@¦’=¬C¡”Qž”X’ŒW”“W•T™„_¤Ž]¤‘b£‹dž‹W£ˆO ‰OžŠS“zP–ƒP“zQ”sS—jJsS“lV›hWœ\Y—b\›WY•SY]R¨RT¯RU®PT´MM¶KN½DJ½GMÄFL¶MN®HF¥KOªMU¯DG§EI¤GG®NCµMI·Y=´S@¾QD¼QNÉTUÅNZÅSUÀTXÀCJÀ>IÉCPÊIYÊAQÁ4\¿.Xž·Û ¶à’³à—ªÎ¡¤Ö¥¦Ó¢²Ô±¦Ó¯©Õ©°Í¢­Ô©®Õ¥£Ó§¦Õ«±Ì¯¸Ã¯»Å°ÀǬ»Ä¥®¿¦¶½¬À¾¥´É¨º½¡½Â¬Éƶ¾½ÄË®¼º­ºÊ¶»Ã´µ¿²¾¸°¹Æ·¿Ê¬¼Ë¶ÄȮøÓü˾ÇÔÏÌÜÅÅÊÊÂÃÃÆÇÐÊÏÆÒËËÒÊÏØÂØÌËÖÒÐÛÒÀÛËÊÐÐÂÈÕÎÚÑÎÞÃÏÛÌÞâÌÏçÊÙèËØñ¿ãï®ãò³àë½äá¿Þí¿ßß·äÙ±ßÙµéβÝÒ³ê̲ÞÄ­ÒÍ­Ñ˟ÙÍ¥ØƟÙĒÞ•ÐҋÜӈÍАÖƉÑÊ}ÍÖÜàqÕßtÞÙsèà|àä|åÙtÝè}àár×âvÑÚ}Ú×~ÓԃàցÞÓ}ÜàˆÔÖ}â×qá×oßÓpíâ{èãzêáwïÛlçÓaÜÖaÚÓWÒÊdÞÃ`Ó¾_áÅRãºKÖ·Kæ·UÛµGéÇGæ´Hã¹Iä¿CãÂLîÃIéÊEçÉMíÑCéÂ@èÈJí½AÝÅDâÁ<ç±JåºBÚ©DÖ²OÚ­PÞ¬[Þ«OϦSɱQÌ°Z¿¨gÀ§UDzYDzRɲKʹPÑ¿?×·?ر7ϸ?Á¡@Í¥?Í«A՞@Ôª4Õ­Iß­HÖ·CÌ´LͦQÆ®[ȪVƪFМGʧIӞAͨHõM¿¸KÀ¶NɳMŶQ»ÄBÁ·?²µB¬­=ª¨<² ;µ£2°¤<¢:¼¥=¼A³œ;§—F°C³–N ‡L©•Dž‹E¡ŠF«–;´‘5©’G¦—O¥˜K—U””W—“R’`—ƒ[˜_ž‘b“]š™Mœ†WŸŠT‘ˆU‘yWtMyP¡rKœmN£aR¡^Q–fV `YšZW”Z]¤]Q©cL¨TU´QL·MW°QT³OF²OS³UK¿OX¼ET°JU¸HZ®JW´FY¬NÁ=FÍ:TÁBTÌ;ZÁ6[Ê4Y‘Âט¼Þ±ä˜¦Û—«ßš°Ö¢´Õ£©Û¡µÙ¢µÒ£´Ï¥¨Ë«³Ñ¡°Ó¬¸Ó·¼Ç¯·Ä¡¼Ì›²È´Ä©±¿¨¿¹°·º©³Æ³¼º«Æµ»Å­Ãȱ»Ê«¼Æ«½ºµ³¸¶¼Á²´½³Ä®ȿ¬¾Ê±ÄÆ·Áº¹É¾ÌÖÊÒ×ÐÆËØ¿ÉÎÄØÐÅÕÅÎÕÆØÌÌÑÍÐØÆÙÏÄÞÆÇÕÂÑÌÅÐÊÕÌ×ÎÃÜÀÔß¾ÔàÌÙëÏÒíÉÜî¹Úã±âç¸Ýíµåä´àã¸êá¬èß«ïÖªéÌ«àѧçÏ©äʨÙƛÚĘçË¡àÏ àɑãΒÙ͔ÓԛÏˑÏэÓ҃ÒáƒÕÞÛæ‡ÞÜØá€ÚázÞßpßìv×ëwÙ݅Üá‡ÓÕ~Õ׀ÒÕ{ÔۈÖç‡ÜîyÖç{åé‚æàxàäyàÞyçãyïÚqìÕnßÔlÔÈdѾcÕ¶hÔ»^Û»XÖ»SÙ¾XܱLä²Jë¿Lì´Eå¹HàºMâÌMäËQçÏIñÏPìÑHäÄMìÃAæÁ>ãÂAàÄMà¸Hå­LÙ­?à´RÕ¯XÓ®UÙ¬VÛ¦cÍ®_˹`Áµc̳`ѨKʪDиIÔ·DǵIʳIж:³C¢JÅ¡RÒ£IÕ¦Eʨ=ʬLÖ¯QѪCÆ®FÆ­DѧRÄ¥IğLęKš<̧CÆ­;êAɯ9ʨ7ƲF¾·MþEÀº?¶µ4º°3±§1±Ÿ7±œ.·‘/—2´Ÿ<¶:±š=°ŒF¯•J´•D¤š:¤<¦“?£Š?¦ˆ3®…6µ…Eª‘I©˜GŽN–”X™ŒU•„P›ˆZ“Y‘ƒSKŠ•OŽ”F›M–„L‘zY’yZyUžoWŸeW¤ZRŸ]MšiF”dI™TR™Q[›RZ¦XP®^LªXM§[TµTJ±MS²UR¯\XµYW±Mb½H\¸O^µMW°?\­?R´CM¹EG¸DD¸OH¾QW´JW±PO·KWÆHNÈLNÌHH¾FSÇJWÇ@OÁ1`¼/`Â6UÌ,P’Æá•È࠿ך¸Ù¡¸Ú™´ä¥²Ï¡©Ú©³Î¢¼Ò›³Íž¨Ï¡¯Ð¬´Ï¦½Ç®À˧ºÊ°¿£µ¹ µ¼¼½©¾½ª»Å³¯»°Æ²¬À¸À¿©»¿´Ã¿®¿À©¯¼±ªµ©³Ä¤¹Ã©¶»ªÈĢ¹¯¿½§Ì¿²Æ½¼ÖÉÊÜÐÅÏÓÆÎϹÏÅÃÞÎÃËÌÈÉÍÎÇÌÉÅÇÏÉÈÓÓÒ¿ÇØÌÒÐÍÒØÍÇÏÄÔÙÇÚÖÉÛãÀÙâÀÕÙÂØà½×è¾ßë½êݵÝÒ¹äÛ´ëà®éÓªäÄ°ìɱèȲáѧéÁ™àÈ£îǘå֞æ֎æדÓҐÐӓÉыÔˋÒ؏ä݊çڅÝׂêçƒçâyëç{äéäæuäã|ÙۂÞâ~ÍÞz×ã‰ÑáwÐ݄Õå}ÒæwÕçsÛêuãåxâàpÜæsÞÖnîÕjç×màÎfáÑ_˾cÔ¼eÙ·^ܳ`Ô³Qã¶QܶNæµTåÁRè½Uõ½FëÁJêÒLðÉKòÖTòÌAáËLãÈDèÄJéÆHãÄ@àÇKÞ´Kè²Hâ´CÖªIÝ°PصTß­V͵ZÉ©dͶ`Ĺ`̳^˦SħTβN³NÀ©JÊ®D̸EÁ¢HƟ>É«>É«Lϧ@¾ @ЫAÖ«DÔ·HϸOÊ­@Ò£KÍ¡D˨Eǖ9ě7Ǫ?­8Á¥>Dz1ǵ:Á´;º¼Cº¹>Á²@²¾,µµ5·´'·¤/Ý4¼›8 /µ—,´˜3°œA¶ˆEº”K¹š;µ—E¦”9¨‰B¥‡;¤ƒ>²„7¨;¯‘Qª‰E™P¥’W£ŠV™ƒT™‹V‡V”|Yˆ‘X‡ŽW‘Y’‰L—Y˜wbšt\’uS•jW§mW•eT¢dSXU™cA‘aF›SH¥VV¨JM£LM³WN¯XNµK\µJKªRU¨WN»_T±]O¸LY·GVµSK½JP±HD·AH¼?E·@H¯MV°JO»TR¿JYºFN·GYËKVÇ?WÂ:ZÇFNÊ@\Ì>ZÍ/ZÉ4TÑ4QÄސÂ㐻鞿ã«ÄÚ©¾à©¬Ö§ªÍ§¦Ô ²Öž©Ó£°Ó¤­Êª³Â­®Â¬´Ã¡µÄ¤±¶¨«¼©³»«¾Å¥ÁÀ©Å´­»´®½¹¸È­·Å§ºÄª±Ì¢²Êž´¼š²½§³Ä¡°¼¡ºÃŸÁ¾§¿½­Ç¿¦Æ½®Ð¾¸ÍdzÙʾÏÑÀÕϸÐËÁÖÉÈÙÒÅÎÉÉÑÈÕÒÃÐËÍÌÔÎÉÙÑËÒÏÏÍÑÅËÓÈÑÛÀØÜÃÞã¸Ùà½àØÀÚÖÁáâ¶ßÞºáÓ½éÒºìÓ±ìÑ®èÔ®ìǦöÊ®ðÒ®õΩíÉ¡öâð͒ö˙îיãϙØҎÎːÓՐÜؙÛݓìçíáçè‡ìâ€ðå|ôäƒèáéè~àézÝßyÕØ}Îà‡Çë‚Íå€Ïæ|Øëzæå}åàoâèqìãsíápáßoéÜgêÍiâËfãÄZßÏUÖÊ_ÜÂbÔ¿]Û½\ÞºXå»ZßÁRê·[ð·Xí¼Q÷¾QóÉNîÍWêÈTôÐQåÚAçÓBåÑDðÌLïÏLíÍHç¿?êÁDݹ<à¯?å²<æ°Dè·NÝ·Yà¶YÓ§`ʲcƬa̵R­QůLƲGÍ©DÊ©F¼²K»©D½¨9»¢;º­D§CÈ¥DÀ¨@Å¥AϱFг>Ò´FÑ·BÈ©Cë>Ǥ5ʦ8Ğ<º¦@¼®7©5Ç­7õ,¿®0¸¸5¸°6º¯.²¹-¶µ/¼°+¹ª/Ŝ,¾Ÿ'Û2¿ 6¸˜2°˜A·B¼•=¹’>¬”5¯Š;«6¨‹B©…Bµ†A´ŒE´H°G¨šR¢™R¥‘N¡HŸ‰N™‚R†Z„ŠSˆW•b™[Ÿ‘U™…Y”{\“zWŸnNhTi[•_T’`G—\I›]G™VF›SG§MR¬P\³K[¯EX¬I\¯DV¦HS°M`µZ[½RM³[J­NPµINµLD¾AF²@E³BOµ=O¬>Z¨L^²L[±DX½JQºNTÃHUÁ@P¼>ZÃE`ÆC`È=^Ï4ZÊ)`Î+[¹å”ÃВ¸Øž´â™¹ß«·Ð§­Í­¬Õ©­Íœ®Î™·Ú¦¬Ï«Î£¯Í¡²É´µÄ¬­º©¸½¥¬Ä©»µ ¿Àž¶²§²® »´±Ã±±Ä³³¼¦¼½«´Ä¤²Á™¨½¤«¿¦¨Á­²Á¡¿Ä£¼¾£º³¶Î·®Å»»Ò¾ÂÕ»»ÚÉÀÐȾÝЭÓÌÀÛÁÈÑÆ»ËÀÈÕÊÊÍпÊп×ÙÁÑÏÎÈ×ÎÒÊÉÁÙÄÅÙ¸Ñ߸Ëå½Ûà¸Ýá¼ÔàÈÕÖµÔî¶àÙµëÉ»äÍ·ïÌ«åÏ°îÍ«òѦ÷θëË®ñɟðƙ÷À˜éϙç܌ÞЎÖҍÞ͈ÑՇȪÞ܅ÞҋêހàÚwæè{äê†ñî†ææ|ÞلÛÙxåæˆÜ܂Íæ…×é‡Çâ†Ùè{Óò{Þéx×ãvÞâjîáiéånÙÛiÛØeßØoæËkßÊ]ÖÒ[ÚÅgÛÈcѶW×¼WÕ»`ã¶Ué¾Rì¾NéµTì¾UðÁMúÇ^ïÐ`öÆSïÑMìÆBóËKóÍ@îÎCôÉEë¿Gç¾Må¸EÞÃ@ܳ>ä°Háµ<Ù®EÙº\Ó±`Ô­YÔ«^È¥eÉ¡aÁ SƦQ»·C¬HǞG½«G°£<·¡D¿?¾¤9­C¾¬H»¤E»­<ŪJŬ>ų=Ê©KȬC¯A¸¢2¾ <Ǚ6¾¥5Ŷ5Á±:Ť8˧1È­2½¤:¯§9´«0³´*÷$¸¸&¹¤.š)É£1ʙ8»Ÿ=·–<¿œD¹šH­‹@ªŽC«‚>¯„H¢‚9«Š>«‰I¯}F®‘H³ŽL¤–F­›UšP¢‹N’U™„HR‹…\’Q†O“Y“‡\š€e“dœ}WœpUnb¨t_›o_œZX—[[˜`P›UI™PI¤KQ¦HZ¦U_¬Dd¨JY¦IS¦U`£UU¦W^©S[³YV°XH¯\F¨HJ¯CC¶@@°:H·?L±@PµJS­EO¯KYµH_³ATÄB]ºLZÀDZ³>VÄ:ZÀB\Ð1UÇ3SÑ(SÏ2Y¯Ò•¹Í’·ÝŸµÞ¥±àŸ¯Ñ¢¯Ø£´Ö¨«Øœ«Ô¦±Ð¥­Ñ¡³É¦»Ê¨·Ñ«´È¦½Á¡´È›²·¤¼·Ÿ·»¦°³¡½µ¤º¨«¶²¨²­¶»«½Ä¯½¾ž·¹ž³Áª§º¤©¼±µ¼²¶Ä¯²º­Á¾ºË°»Ï²ÈÒ½ÄÌǺӿ³ÛÁ«ÓɲÊǯҺ¼Ô¼ÊÇ»Ñ̳ØмÒÒÉÊÔÄÅÏËÎÔÈÌØÆÈÒºÏÔ¶Ìã»Èß®Ñ×®Ëá¹ÐÚ¾Ûç¶Øí¾ÛÚ·ßаÜÖ©èÕ­äͲäÒ§äØ©ôÔ´ïÕ¤ñÊ¥íÌ¢ðĝåēå҉âВâĉàńàׁâÖw×É}ãÊzâÖwäÜ|àÝzá߃âì}åÝ|äÚß߆ÛâŠÑà~Ðá{Îè…Ñð†àôˆÝê„ÞïzÚãréäxæäpÞäsâÓqáÔpÛÙjÝÞ\ÖÓ^ÐÍdÎË]ËÃ`×½WѵSؽ`á²]ïµ[ï­Xð²Mý·MøºOó½YðÁaðÉYãÌDçÔHñËBðÎCïÎHäÍKê»Páµ@æ¼=è·7ã½=Þ¸Dä¬CÙ­QÒ¯Uί^×¹_Ô³l˦hΪ`Ǥ^¸©O·®L¹¨H· N¸ C¯©C¶ H¾¡?´§Bº«E¹®B¼£B¿±DůE»°F·¤>³­<½¦IÀ®9·¦7¹«=Â¥A¸±7¿¬9½¤.Á«1¿ª8Ħ-½§6µ¨6º£2À¨5ʪ$ð"ɨ+¾§5»ž2Ő6͖2Ę=¸–9³’>¨‘5§‹;¦†E£‚D ‹F¦…?¯~C³…C±…N¨O¬•Z¥—S“Y‘•V—ƒS”~GŽT—ŒX—’V•–QŒ†[„[Žz[‡wa—pbžtaq`¡wa¨wfŸf^¦bW£gQ™V\šS[œQ^®SX¬Qe«Id©K_žS[¥][°ZW©a]¬Z[¬^U·XQ°ZF¦UE­HI¤FB¥=E²BL³;S²DL¹DK³LS±MX·BZ½FQ¿DT»4X¹5Rº?[Ç9`É.fÁ0\È-^É*Z–¼Í•·Ô¦ªÕ¡­Ù›¦Ó¡±Ë¤±ÓŸ²Ù£°Ñ”±ËŸ±Ïœ³¿£±Æ§¼Í¬³Ç¯ÂË­¾Ð§ÂÕ£³Ë£½·¦¹´¨±· µ±£¾³¥¼¥º¤®µ¤²·¤·Á¶¾©¶º§§Âš¬´¢½²¥¶°¶½¹³Áµ»Æ±¿É½Åʶ¿Ë²¶Ö¸°Ð¾°Î¸ѹ®Ó°ÃÚ¶³Ì»ÀÊÅÃÇƺÎÖ¿ÐÑÉÌßËÑâÍËÖÅÍáÂÑÛµÏá¼ÑÖ·ÌÜ®ÍÏ®ÞÓ¿Ùç±ÙêºãéµçܨâاÜÒ«àÙ­ëݯãÎ¥èزôÕ¤äΠçҟíΣéÁêƋèŁ澆ÝÉæËzÜËwÜÅtæÓ|ØØtÛÜxäÝsàààâ‚äà…äن×á‚ÑàwßáxÌéÓç×éwâå}æðˆêáæÜläâpêßjáãpÞÛlÖÓhÙàjÚÏdÒÑYÑÌhÉËZÖÏeØÁ[æ½Và±að»_ø½U÷´Rè»Uù»V÷ÃRù¼OïÆ[éÁTáÎ?åÌ<èÑ>éÎDáÐGçÄ>æ¿Bâ»FÛ¶BêºEܼ?ë´Dá®B׫DÙ«SÓ¹OØÄXϬ`ħjÍ«fÇ£bÀ¦Z³¢L´©Qª•W©§Dª¦L¬›A°¢D½©G¼«KÁ¨M¡<ű<Ç©7µ­G°§<À£I·¬O½§?®°6¸¨1´¦B´Ÿ2â4½¥.¾«2²§0±³-·±:°«:¯«:µŸ3¼¨1Ç£ Ä­&¿¤5ĕ1–?½CǍA¼’Bº‹=²‘A¡‘2¬ƒB©ŠE©‰I«‡G°‹?­‰?¨„G­’T¤—L›”QQŒNŽ‰V~G’ŠL‹‰WP•S”‹IŽMŒy[‘€[Št^£rd¥te¤w_§z`Ÿe^¨b\›^a¥W_­Sa²Nd­O^¥Wd¡Vh¦V] [_¥RVŸO^®Vb­[\±PL£RH°SO¢YD£G@¨GA²HG´QPµDF±GJ¯DQµAR¶JSÂ;V¶=QÁGPĸ¢G»ª=¸®5¹­Dµ¨F±¯@¶­E®¨9±®9º«?³›5¹£7¿©)¶©)·­.®°9®¹2°¶4µ³1¹«+µ¢1¹ 5Æ¥)¾ª-½3¿ž1ɒ=Ɨ<½‹9Á‰;¸‡=°6¬Ž:¨‹B§‰@¥‰H³ŠG­ˆL°‹C¨ˆE¦„Q§I˜ŽN–PŠ”F“Mˆ†S‘†NŽŒX—I‘˜JŒ”HŽ†N„‰SŠ~ZŒ}X›v`¤zdœ{c¥sZ©t^¢sf£eb£df®`d°Zh¯Ta¤Oj¢Wf¦^b£\aœWZS`¡QY©TW§HPžHO§JF¢PK¥IF¤KC¥UH¯OGªUO¢SN¤SR§E^¸He¼;aÅä·@æ¾Jí¼Bã¹=Þ¹JܱBÙ´EЬOÖµQɯU˲aÓ´bË·[¿´Z¼ªW±¥`¼¡_±©H¯¤=±ŸI¦–J¯”@¿•M¼–H®¤A·¦=½«;¯©5³¡7°¡A®±=¹¬@¹­E­¨9ºš-2Á®(º¨.·°2½¸&¬µ3±²/¯³-µ§+²£3¼¦0Ǥ)¿¢2ʓ4ʐ3Ȗ;Ñ<º‰9º€:»€:µ€<²ˆA°8§ŠG°B³€D¨I¡K§‰O£‹B™‡B”ŒG”M˜CŠ‡J‡…U„‘X’T™R™>”K‡EŒ‡I‘z^|\v\“„l—‚h¥|b¥{]£tc©i^¥ajž\o§Tc¯^g®Yc§[b¦[Y®^a \cœ]]©YP£[L¤RN£CL›AZ›D\ªNO¤OP¬XI HM¢FM™CSŸDX§EY¯HV«Ea¾GRÁ>c¿:S¾)U¹.S»(]¶3^³)S½-aÌ$YŸ¶ÕŸµÑ£¦Ñ §×¦¦Æ¥­Å¡²Ç™¿É¨À»§¼½§À¸ž½¾¤µÀ¦¼Èª·Ä©·Ç¥¿Ê­·Ð§¬Èž±Êž´È¨·»¨®´¦¯´¦ª·¤³¨¡»¬¦±¢¦³£¦­œ²¯”¶¹œ²·¦·¶­²­¶¼µ­²Âµ³½·¶¼¼»»²»±ºÄ­»Í²¶Ï¶³Ë½µÆĹĿÂͳ¾Èµ»Å½¹Ó¿¾ÐÈÄÌÒË×ÍÁÖÕÁÐÖ³ÍܶÕѹÚÛ³àÓ¤×Ö¦ÝÙ³ßé«åéªÚé¨ßÜ¥ëå§èܛòؤðÖ°íÍ¥àÒ¡æ֔ëϔîΐìדâ͍é˔ñΈ鿊繏뽅îÈtðÌtâ×zÞÛyÔã€ÚÝwàèpáèxÜë|èâ~ÙíÔéwÑîƒßåŠãè€åãÙìÛåˆÖñ‰Ùí{ÓêtÞètßÝc×ÓaÚàfÐÜ^ØÔ`ÕÐcÙÇ]âÉeëÏhâÅZâ¶Wé·TéÁSØÃRâÂZê»`åÂ_ÚÅ]àÂ[Ý¿Xá¾OæËFëÈ@ëÓAåÃGèµMê±Câ²Hç®CÞ¬@å¸Dè»JØ¿R׺LÒ¸IηQØ®UÖ­LÍ¥R̪YË·YǹR«_¾¥\¿ªT¿¤UÀ©F¹Bº¤N­ J¹ J·I°šK¬ >·Ÿ;³Ÿ9´œ,µ©0²¨<¶¦9¯°8±¨A½ž0¹£+Ƥ3Â¥.Á¨2¯0¸°+²²%²¯!¯«)¯ª)»¡9¸™8º˜1¾˜/Ȑ<˔BċAº…@½†4¸{:½}CÁyK¶D¸@©A¯‚<µ€<­C¡Gš{<ž„?–ˆ>™LŒ…G…ŠLƒ†QˆRŠ–EŽ“I—C‹”BœA‹•F••F˜…R™†\€`wn–~jœ~a yf¨vd©lg£gfš\j­\l±Xp±Xm§\f©YY¨`W¦cUª][°[O©VL«WS LU™?WA^žC`¨SWªYV¡PQ›C]ž@[EV­CZ¯>]«=V´AZ¾F`Á>d¿2X´9Yµ1Z´&V´)^³(a¼%e›¯Ú¡ªËœ²Ùš®Û¡µ×ž¨Ð¤½Ì©Ãɟ¸É¨´Á¤±¿¡ÁɟÃœÄÍ«±Ä °ÃŸ´Ì¢²É—¶Ï»Æœ·Ã ²¼ ²¶¤«¸ª·«¡¸¢½«ª±ž©³¢¨¶ª²¹¥·¼˜»«©²²¨¹¹ž»·¦¯´±º¸¼°¼²¾²°¸»¶Â¼±Á¿´¿¿ºÁ¼·Àº´Êijù°Ã´¶ÈǾÌɺÓÅÄÜƸÞ˵ÜÖ²ÝÔµÛ׶çß°ÜÖªåÙ ÝÎ¥àÕ¸ä×®îë¨àá¢èÜ«äážâ۔æß õØ ç׫ë՝çÓ¦ìߝúՖó۔ìȍùЅ뾃êŠïÄ~ü¼{ð¾ïÇ{ã×uïÚoæß|ÔÞu×ÞzÜèÛ܂çëxÚê}Ï݋àæˆáãŽÙê‹ÜáƒßâééŽÙç…ØãrÔè~ßãpÜâd×ÖYÏÓeÖÊiÜÓdãÊYæÏhçÇbÛÎcäÁ^Þ¼ZݾZßÃWÍÅOÔ¾Tæ¸^ØÀVÙÆeÖÆVÞ½SÖÄKÝÆRÝËPåÒPèÄCܬRܬFÚ²NׯCâªDÙºMæ¾Jç¾CÛÀAÒ¸TѼRÙºEß½HÒ©MÕ§TÔ±MƽXªQʯOȟIº«BĨ@½¤>·¢E¯¦Dº™;¯‹<»—5°ž<¹š3©£?µ™0ºž1´¢+²®4ºªA¸¥;°°:½ª3¶š$¶š(¿§.Ê£0¸£$»¥/±«)´©'³›6¼Ÿ4¹ >ś/Ô7ÀŽ<Ȏ3đB½Ž=¸ˆ8ƃ<µ|<À‰>­~F¹Œ>­„G¦Œ7²†9²†>¦†J›Œ<–„G—‘N‘ŽQ‡”S…WŠO„›N‚ŒKQ˜HŒG”’F†DŒ“N”ƒX’‰P `ž}k€h‘vd¤zd§vlœjsšfkXsœai [i£Qe¬]]¢][¢cR ]a«Ze¢X_©XH—XMœVVŸCV˜@h¢@ZŸJb¦N^¥DX£>Q¤;[Ÿ>Y¬I]±BU±?R¬B[­?b±?n¶9`­1Z²,Y­6k±0nµ/d»,m’©É˜«Õ¢«Òœ´Ý¥³Ú´×½Î©¿Ì£´Ê¡´¾¤¶Ã™¹Âž²¿Ÿ»É¡ÀП¶É”¯Ç–¸ÑžµÔ¼ËŸ»ÊŸ°Í¦«ÆŸµ¼¦¯®·«¢¼«£·¨£º²°°«·­¤»´¤°²™®¬®¶™³µ¤­°¦°¯²»·°¸³¹®¾À´º¸·¿¹½¾·Æ®ǾªÊIJ½½±ÃÁ¶ÃĺÈȲÕ´ÝÀ°ØͱØÚ­àÛ¬èÙ´éá®åÔ³ïÔ©èÙ±áÕ®ßקæáªãÜ­ßå¥íã¨ëëšõè‘îܗìޙêá£üàŸþáŸûá“þ҇ÿDŽÿÆÿÐ|úɃõ¾zýÄzóÄzïÃ}òÍqðÒtâÛxßÖxâàzÝáxãÝ}×â}ØéŒÖގÚê†ÛíŒÛê‰Ýì‹Üç’åêŠÛá†ÞÚxåáyÞßqåÛeÛÒ`âÉ]ØÉb×Ç]å¾[âÂ`âÄ\äÆgßÆbÖ¿[ÚÅ[ßÌNÒÂRÝÀWܼ[Ú»YÔÀbÚÃ`ÒÅWÒÌOÔÎWÖÁVáÄNá¶X×°PÙ°\á°Vé³Mß´Mâ²Iâ²Iä±JܹFÕ±EѺMÜ¿SÞ¾KܱQÙ²UÙ´M˺VʵWίPÇ©B½§?í7·¡>¶¥1¿2¹‘.³”;±;µ‘5²•7­ž4¼š(¹ ,°«3±«4®­8¶¯5·¡.º¤0¾ª1»Ÿ#¼£$¨"¨!½œ0¹œ/¶ ,½¥8µ›<´£<À<Ǖ?¾“5¿‘=ÀŒ5À|8¿}DÂH½@º€<µŠF¹‚<°„<¤„G©‰@Ÿˆ8¥ˆ?œ•@™E–P‘“MŒ™PŽ—Y‘¢P‚›S˜S‰”K†MŒF’ŠM‘”FO™‰Mš`Ÿ‰d›zo—vi’x_šwe¤taimž\n”_s—UrŸOn£Pr¦\d¬^]§[[¦VeªL^¡FSžPT LJ•NQAR”Caž@b›BašAb HW§F_©BV¬E`ªA]±7e¦>_£9g­El©>h¬>s³@t°8f¹;o´5q±.mº#lš¢ËŽ³ÌªÍ˜µÐš­Ü–»Ù¨±Ð¦­ÎŸ¸»›§¹Ÿ¸Á£¾»—µÆž®É£­Ã¢­Á¡ªÁ™¶ÉŸ°¾›¶Ë™¸È™¶Á™¯¸™´°§²»¢½±­¹¦¦º§³°§±®­¸¦²¹© º¶œ¬¬¨³±Ÿ²±³±±°«¦¹²§¬Ãµ¶»­µÀ®¼¸·±Ä¿²Éµ·¾½¯»Ã·Á®¶Á°ÁʳÖ̲àʹÚóÜÓ´âѱÛܬÙß­çаäÕ¯êÜ©öß«æͧàÖ¢íØ£ê؝èٟëܚçæœäâçНèà£ëè£íæœëۜ÷ېøЋòNJÿ¿~ø¼ƒù¿óʀöËöË{ûÆyèËwàÖxâËqçÐvãÖsßÖsâáxÜâ‹àéˆâìßé|äó€èòÜé€äé‡àåáäxäÙ{æÙkçÝfáÜgØÓcÖÍkÙÕlÜÌ[èÃUíÇZáÍUØÇT×ÉV×Á^Õ¿]Úº]Õ¸^ã¹\Ù¹XܾVÝÁdÐÅTÒÂZÜÀZ×ÌUÙÊKÜ¿UÙ¸Jå­RÞ¸Nè¬Nê¬Rì¹Ië²Mç»Iå·OÔÀMÒÃUÙ·YнOϵJÒ¬KÉ®YɧWдYɶVÅ®IÊ®C»¢E´¬D¼ž<²¤:¾(·“.²—C©šB·˜9­›8°š@³¤6«/®¥0¸¬)²§2°'²¤4¼¡3¶¬1¹º¤$¹¤"´ž,ºš2½ž6²Ÿ7¾ 9¿¢>Û4¼—FÁ”@º–8¶Š5µ8°ƒ>ą@´8³F½†H«„@·B¤5¢}@Ÿ„D¯;§…C¤•DˆC•“O•RŽ•[’ŽQ†–V†™J–M“—U‚‹H‹N‘T•ŽM•‰IˆO•‘[ž…Y–„VoZ”th–hcbm•gr—arŽOežYl—HlŸMu®fj«cf¤Rf¢Tf¬]g¢T[ªSV£T]O[“FašQg Jf™Ha¨DW CW¤BM¤HZ¨Cf©NW­?a®?[³ê±Dê²Lç¼NÛÁLؼVÞ¹_Ú¼VÒ·QÍ«GԞDÉ¢QÃ¥OȪXÆ¢UɨH·¬I´®B½ 8¶™9²˜0¶•+µ*©‘:°–7¯ž@µ¢8¯¢>ªž7¥œ2²¨3µ¨,±ª)·œ$ê,½«.¾¬*¸ &±—¸˜ ´¢*»¥*¸¢,½¢4·¡2¼™5Ž?Ð@·‡B·Œ9²†0®ƒ/º†,·”8·“9¶Œ=¬‡>°‡>¬ˆ5¦{6­5¥Š6¨ŽE¨‘FšŽD’Œ<Œ›O˜R’“L‘‘QšX‡›O•U‹ŒP…V‹ŽN”šI’—S†šU‡“LŒŽFŒP”sO“p\pX‘aa`]˜\gœ_k—PaœO`œMp¡]r¨`o¡_d£UiŸab£`bª[a¥TVŸTTšU[’Ud˜P[¢OS¢N[©PK¥LG£OPœNb¡KcŸIa£LV«E\¯>f«Hn²Cn¸>l·@`µ6dº=j¸2d½%dº!p¤É†¥Ë‰¬Ï†«Ã—¨¾ ­Áœ¯Àœ¢¾›«·¤ª³—¨Á¥¬º ¦Ä¤Ä­¿‘­»Ÿ±µ™¶¾£¨Ã ¬» «¿š¤¶¢¥«¢¡¤ž©®²¯´±¥¶°£¶¹±±Á¬»¶ ©½›¨¹«©µ¨¤³§¬´›®·¦¬¿£©Áž¶·ž°Ç£ºÆ¬´¹µ´Ê¹ÂÆ»Àƹ¼¼³¼µÈ·ÇɳÈƪ×ήæ̬ÛÔ³ÞÊ£èÖ²ßÍ´ìÚ²îџåÒ¦øޞéá¡õÐ¥é͜çޔí֒èؖ÷ܔúܝõݒðՑåӚçޛáҝãԍê΍ëƗòĔòÒÿÂúȇÿÀ~íÀë½‰óÃèÌèÓxéÅlëÏpêÔwÙÕkéÑtßހßÛ|êð|æéxâìsÞæzÜê|çé{âìsâçxÞífáÞjëâbâápÝëfÓÚdÜ×pÛÍ_áÊdãÐ]ãÀUßÂLÜÒWßÄFäÁHç·NæÂPݺTéÅQê¾Zå¹\æ½Wå®TØ®YÚ¬SÜ°Hà®KÞµEé¶Qì®?Þ±Eê©=î±;é¾JæºRä³QàÁQã´OسWÒ»KγKÒ¦RͦOƧT¹±R¯K¹©Rº¯L¸¦:º©0³˜-¶Ÿ.¯›+¨›%ªš0ªŸ=¢˜AŸœG¦¡H­¤7±•?¨¢3¨¤0´˜)¼ž*¸¢-²¦-½¦/±£!¶”-³š²¥·¬(®§'¾¦+¹Ÿ3½˜0´™<¹‘?¹B¯Ž3¯8µ…%©–.«—-¶™/­–=´†1ºŠ:¦…4¢„1£3«–,š—C¥ŠD•‘C’Š=ŽŽL––WŽ“GŽ¡H’¡H”O…‘N‹ŠT‰ŽK‘“N‰ŒK•ˆJˆ‰KŒ“Qƒ‡Yˆ†Z“v\‘eXˆaY™WY•ab ]j˜XešW\šJl Pl˜]j©ed©dp™Zj¤Vf£XZ¢MU®V]ªQP¡ZZžNZ”NhŸS^§I^¬KX«PK¡FM¨O\˜MfBm¨E]«HY°OZ©Fo¶Pf¾>e´?]·4j¿2b»7f»#l»&s~«Ê‚¢Ã|§Á…¡Ã–ŸÅ™¥¸¢«¶š¡ÀŸœ¹ ž¶¨žº£¬¾£¤Æ—«¾Œ¦È¯Á“®·¤¶·©®½¨¬¾¬«°¢ª«¦¢¨¤§­¤®µ¤§±®¢µ³¬´¾°¹·¥¶·±º›¬¾—®³ž¥·˜¯¸žª´œª¹²Ã¥´» »½ ·Ç¨³Î¥±Å®·¼³¹Áµ¾¸¾µ»¾²ÄͬÌͧÕΫÞÏ°ÜϯÞʦðÒ­ðÍ°ëџ÷ޟêä›ëܙëϓëЛèӕòә÷ޜøۚïՌõ܎ïݏïҔíΖáҔêΛêȔâ̌æĒéȚõ»”ù»ŽÿÈÿÇûÁ‡ûɂïÈyñËxãÌqÜÇuæÍuß×{ÛÙoæÜoäÔ}éÙrïäqìÞyêáwâۂàä|éÞtæàxÛìnáèoãéiåæcáíbÜédÖênÖÝfÞ×háØcâÕYåËXÝÖVßÏJÞÀKãÀHí¼?éÁGêÈVìÂUïºMê´Tæ»Vã°\ê¤Væ¥Xå¬WÙ¯L×°MÞ¬Kî«PìµEì¹Dä±@ê´K߸Eã¸EݽOá¿QÞ¹ZعTÛ¶NɧSƧJŤM´®L·¦I¶©M±«E¶¦6¶ +»˜,³£!¨#¢•-¨’/©ž6šŸA—š9¡ A¨™?­;§.§›1°£-°›+´˜!µ #¯¡)¯–&±˜"«—&©”*±¡#µ˜'²ž3®Ÿ2·–<¾Œ>µ7»-°‰4°Š)°Ž"¸“¯”#¹™%±•,¸4·Œ5²†7ª…7 †1¥’3 ˜9š“=œšB›L¥”EšLšD‘ŸM–ŸRŽ™K““U—UŽY‡”T…“R‹ˆRŒO‰‹T‹R…ƒZ{]ˆjbij^b—^f˜WkX`”Nd’[nŸWg agž`i—`s]mž^^¬M\­W`°RU³ZO±SXŸSfžTd S`ŸLU§QI¯WK¬ULªEY@gžAk¦Bg¥G_²D[²QbµIa½I]·C]½ÔºGÝÅIλJÞ²RÙ©TÍ´Jɱ>¿ªJ¾ªF±¤J­¯C¶§G¶žF·¢@±¥,­“.·–*¨/­.³’7¨—Cš˜GŸ¥:¥¥C ¡5«£:«ª;–©6œ™3®’)²œ(¯¤(²–)¦—+§—* +­š%°’!­Ÿ#¬ž3¯™7®›0¬˜.µ6ª†*ª‘$°Š+°‘-¸’0­Ž%ª–!ª•,·‹4²‚3©ˆ=©5£†4 “:©‹@ CŸ•;œ—DŸŒP¨–J¢ŸO –Q‹—T•‘JIŠ˜V‹˜Iˆ‘Q‚ŠWŒ‹RŒ\Ž‚LŽ‚S“uZu\ih•o`‹`o•\jQu˜Ww’]i‘Zm”]k’`e¦]mŸ^l¢OcžTi¨Od¬Q\­R^²PU¬Oa£QXžY^ Za¥QS¤]U©SI«RV±Q^£HcšDf¥Bh¬Fj¯Ie¹Fh´?fÄAbÁGcÀDl·.h±$mÁ%hÆ$dx¦Î}¡Ï€•¼˜¶„£·§¾†¢»“’µ›”µ’£Ã…£¿‰œÁŠ˜»”›´¬»”«½ ¦¿Ÿ¡¶£©½¤¡È›¢¾ž¤²¤¥¹¤¡·¨£´«ž«¦ µ°¯¶¤¢·¨ ´©¥´¸¯¼œ©À•§Ê“¢È˜§Î–ªÆ¸Ã¦³½¬½½³²Ê²·Æ¸»¹®¸Ê¶¯É·ª½Âº»½º¹¼»Å½¯Ï̸áÌ´áÁ¨ÝÇ¥ëϦôΰçÏ¥ëÓ¤éÒ æʝí՝îԖéɘêǎå׊ì֎÷ɑò̓ôȓëяåЍîуéƀóʋõÊ|é¿}ôÀó»‚ùÇ|÷ǀð¼…ùÂó¾wõ½råÌyÛÊ}ÚÔtÝÔ{çØríÖzáԀáÖzäÕxðÓyîÚvóêmíåfåÔnÝÒfÖÚfàßlØÕnÛÔhÔ×bÔØiÜã^åÖbáÖZ×Ö^ÙÍYäÊ^äÈYæÓ^áÌYÙËKßÄHá¼Fí·EçºVéµWæ±Mè½Tå¶WíµXí°SÞµRè´Mä¶Të¯SìµRâµTÝ¥Dã£CÙ«Hå¨Lã¯FÚ°LÓ¼TÒ¼SήKÉ´LÊ©Eɧ>¸£=²©H²¢B¬›E®£M½«A¨9¾‘(°‹#»‹%·Œ-¾“=´ <¦™9›A™–D ™5¡ž=¢¥9—«4•©0™2™,£ž)¢Ÿ1œ”/Ÿ™$œ™# 1œ”$¥(ª™2§’2žŒ/¦#²‡!ºŽ#¹•©‹"µ‚'µˆ-²†-¯Œ+¤'ª%±Œ%§ˆ+ž1¦ˆ> “?§A¥”E¡“>¤œD¦™D§‹C¡ŽM¥V£’Rš™PU†ŒXŠJ‰V‰ƒR‡‰P‡€]…zUƒzOƒsT‘rdil“of”dl’goŠau’Rs•Qx”_w—ar‹YdœdmŸ]g›R`›QfžQe \l›Qd§VY°OU®O[­\^ŸaZ£eX¨`X§WS®SO­ST¯Pa¦Ba¦Bc²Ea±Hg¯Ol´Fc¾>eº;nÂ9e¸;j²6v·)sµ'o d…œÆƒ½¦½•¤¾…šµ¡¼‡™¼ƒ›°–½Œ£Àƒ¡À€žµŽ—¶‘–Àš¤Â¦·•¡À¡¤¹ž ¿¦¬Ë•£Å¬®š®­œ­±¬¡¶¥Ÿ±­«¥ª°ž§¥œ—³¯”­±ž«¶—£»£¨¿§Êœ¦Í—®Î—¶Ë¢³»¥¶½¯¾Ã«±É§´Â¶´¾¬´Æ´®Ë¶®Á¾·¾¼¶ÄŹĮ̀ÞˬáТç̚áÇ õÔ¬ôË éÒ§é͗꾦àÑ£ðʟâɚôˌñЕéӓåñÒðЗãԌìʈòÑ}å̅ôΆùΈìÅñÂsùÄvó¹ÿÈtù¼€ù¼qè»z÷ÇzéÉ}ÝÐxÓҀÜÛxÚÚsï×nâÕpìØyêÏyíÜnôåvçßjìâsáÚjâÞ`ÒÚaÝÏkÕÜ^ÖÒjÚÎgÒÕ^ÞÜ]åÓVêÚ[äÏXäÐTäËNåÐ[çËLÝÌUæÆSÙ¼IåÀPàÃJîºLî°Tè¿Hò¼JçÀSðÁVï¹\ä¨Vâ®Kë¨LߪVã´Lì´Fæ§Jà¡Jß²P×·Uç³GÚ¯VоXÇ´XƯKƵAƪCÄ´=º´@®­J¸¬@®¤?¯ªR³§>Ç£3³“5º‹%ª—)ª‹6®˜=ª¡1¨š;¡™A ¢5¤ 4–§7”ª5’®2Ž¤5Žª.ž 0›£(¢£0Ÿ£$›™#˜’3¡‘,¢›3•%¬’.­”-¯(¢“®…'·Ž¬‹#³‰ ¦‹0§/²•(£—!«'®‰)¤Ž2¤…)¥‰-ªˆ6¢Š<£›5°šE¤š@¨™I©–L£”A§ŠM£ŠR¢„DšŒQŠN‡KŽƒPŠTˆTˆ{RŽ}ZŠ\ŽsOŠpb—qe“oa˜xc“mi“dl“_o‹Yz_yˆRlZn\hŠas•[g›R`•Xa›TgžYg¡So¬W[²X]°Id¦Z[¯`R¬aY§gP±QK«TQ³XP²RT«KU§DZ©I[©Yg³K_¸NlÀCp»Ae¸8m¿Gb»4i³)uµ%i¿!e‹šÀ…¢ºŒ ¶Š¡¹‚¦Â†¥À‹¦¶~—³‚¢¹½Š“¼„˜´“œº”¢À »šŸ¸¢¨¾¡ªµ™³·˜ªÀ•­¼”­º’¥¯ž©³¤›±¦œ´¦¢©¡¢¥¥—©Ÿš¨«Ÿ£¯˜­½ž«Ã¥¤Á§®Æž°À›±Ë›¬Ð£±Æ¤´¿§»Â©±Ä¶¸À±µÄº»Í±¸Å»±Íõν½Ìǵʼ®Ø½¦ÜÄ¡êÌ çÑ¥éȜêÅ çƙܾßÁžÝ¼œçàäȚììŕÞĒ꼉äëÀãʎ迆ëÃ~éÀ}éÁƒòÁ€ûËuÿÇrÿ¼oûºvý½xö¼pëÇqñÁwçÄ}ßĂÙÊuÕÛtÚÚwßÕiåØißÒfêÛiðßoèÚgèävêàtßßläÙnØÒoÛÐ`ÒÎX×Ô_ÛÚgÖÖcÔÍ^ÚÏ`äÚ^â×TÞÛSëÙVãÎTãÐMÞÑNàÎMÛËPÛÀQÙÈTâÅNí¾Rè»Jê¿Rñ»NíÂXç¼Xè¯_ìªYí©Tæ«Oã´Nå±Sé¨Qá¤Má¬MÙ­TÚ°YݵYÓ®UÓ¸ZηZɸIÄÀPÁ¶G»®A»³E¹ºM±³J¶´F»ªFÀ¦@À¤;.µ“/ª›8«”7´˜:¯ž5¡£2¡¡0 £5Ÿ9‘¥4‘¤2œ¤9•©7”­,¤,˜¦+ž£-˜¥*£Ÿ/ž2œš*˜›0¥•&¦’¨”)°†)­‰«$­Ž ¯‘*¬‘*­–#§‹'¬"Ÿ“(œ‡,¥‹)Ÿ&¨ˆ.¤“7¨•?¦š9­™9«‘?ªA°–F§ŽI¦†E©G¢Š>ƒC™‡F”„KŠ†H‰„JˆƒT‡OzI‹vS…qRŒt_˜t_•qgšqb‘qf…aiˆbj‡dlŒarbq…Vj^t‰Yr“\x—Yl™PeŸTb Na¢Xk®Tq«Qh¯T_±T\³aU°_SµdR¯]O®]Z©WT¤\N¥\X¯R\«U[¬ZY§X]¦S^´Gl±Fo¾dÂAeÄ;m½9w¿-rÁ.wˆ™Á€£¶ž·…¤º|›¼Œ”°…¢¸t›¾¡³zŸµ ¸‰”¯’¢¾™Á”ž¼’¡µ”¤¾§ŸÀ–ž³•©¿™¢ÃŽ´¾™´­¢­ª—¦¤œ ¨™¨©š œ›™«œœ§¥–§«˜¥­¤¥¹¨­¸—­É™­Ä©¨Ñ§Ç£´¿«½Ä¨µÌ³©Ç®¬Ç«¾Ä«¶¿¸»Ñ±´ÌůÌúÒƮϺ¨×½«ê¼¥êśí͘ðžìȒîÑ۾•æΏçœ巗컋쵄åǎã˒éÆïĀäĂçˆâÂzãÃuðÆrðÁqû¾xÿ¼vö¹{ÿ»zÿ¾tÿÀoðÆpïÉxæÀ{è¸xåÌyãÓzØØoãÓxÝÐhÞÎeáÖkÞÏvâÝoêÖqèÔuççmìÝtãÝcÞÊeáÉbØ×^×ËeáÍeÖÕ\áÏcÜÒ`ÝÏVãÓUâÍNêØYëÐWìÓSãÈVâÅUé¿VåÆUá·Jí¸MíÀVä²Gç¼Gò»Sé²RÞ°Rè¸Vê¤`ä¡Uä§KÞ¬Læ±IÛ±Hà¡FÞ­H̬XÛ«V߯Q͹QغVÕºTȶJÌ¿TÄ®N¸ª@µ°=º¹K«¬>²®@´£@¸”;º›A¶2­“6¬•;­›6³Ÿ2¶ž2£¤+¦ 7™•0˜ž0™¢;Ÿ /–¤7£6œš+‘¡1££.¨6¡š%®™+©Ÿ& –$©“"§•+£Œ-ª—0¤"¡'¥‹#³–«—.¯˜.¦,Ÿˆ# •(§—#¡‘)¦‹&§‹'Ÿ”+¥“<¢¢@£•9ª•@¯™Aªˆ@£†E¦’?®‡F£~Oš€@˜=™ŠN‘L—…P‹‹L€PŒ„Q„‡U‚{X…ubˆnZpjˆwXŠh^•c^ˆf`‡fm‘lr“_w‡dq]o’Um’Pg‘Tj˜Oo–Zlš`aœVm¥^gœ[g¬Ug¯_`¥T]§bZ²gT¨XV¢_Q£aQ°RZ§TW¦XN°^b \g©]dªVg­K`­Hf®Gkµ=p½Bd½9j¾6l¼9}¹/xÊ+mŠ“³šµyœ·¥¯~£ª…”¯’®y—¼~¬w˜ªu ±€™­š¹•·Žšµ“¢À¢»œ¼”¥¹“£¾ ´–©·”¦­²¦¥°§ž¬¡Ÿ©š£Ÿž©¥¥¨¨®°©¥«²¡´¶œ®³¤³Àžª¿©¦Å«³Å©´Â³¶Æ·¯Æ¶®Å²¸Ä©¼Â±À¹´Ã½¶Ó¹·ÝµªÛ¶«Ö¾ Ú´¢ßº§ëàçÁ•åÔàÀŒãÁ•íƍæˍïǃó¸‰ñ³‡è·|à»{æȅæÂzé¾wôÀyチâ¾ußÄrçÇné¼pò½|ÿ½xÿ¹wÿ¾sÿÂpþ¾i÷Ãpñ¹‚俁繁àÁ‚ÜÒvÝÖuÞÛpãÓgäÓháÒvâÑrëÔmêÕmîÖmëänòáríÛgÜÉkÚÇeÛÍ]ØÐ]ÖË[ãÏ^àÕ_çËfàÉXêÉQæÇPêÏKäÖFïÎRôÉRçÉOßÉUåÀWð·QîºLó«Wí«Qê¼Uê¾JíºHæ²Lå¤UÞ¥Vޞ\Þ¤X×­TØ®Nã¥Xà¦PÙ¢SЭR׫VϳYɺOÔ¸JÍ·N˼V¾²S¿¯G±®@°³E«®D®­C®›8»–3·Œ2²:­:¯™8¶2±‘9´—:­£1¡ /›6˜¡6£–1 5¢™5 ž5’œ:ž•:›—-§£)§Ÿ-¥-©•(©Š'¦(¢‘1£‰.¥“-¨Œ*¦’&¡‘'©•0°)®"­˜#¨˜&›‘*‡*Œ®”)­“*­‘/œ‘3›”.  4œ›1žž8¥–>§Š4¨“B©F©ŽD¡~MœŠC•ŠE•}S–~X‹~RŽJ“„O„TY‰M_„yf‰gŒ|ZŠwb”fX…`V‡jequ‰kshoŽ[o‘[fWe–Zc“Oo–Wdž^gž`f–R`šJdªRi§^f¤a]°fgµde´[f¢RY X]ª]Z¦]V¨VQ¨[b¦^c²[a²Tl¦Qg«Jh®LxºGwÂGuÂ8kÉ6hÅ2vÇ)xÃ*o„ž¹y›µ|¨·ˆž±|ž®°›³}”·x—·r›«{—¬†–£~•®•«†¢¹ˆ¤½šª´¢œ²›£±’¨­’¤­—£­˜§¥—°¤¡©¬¢£› ¤š¡œ›š¯ŸŸª¦ ¤¨¦®´Ÿª®™¦« ©²—®±œ­À¨®Â©²É°©Ç²¬Å³«Ë¯©Ë³®Ë¸°Ä¾«Ç´­Ï¸²Ñµ¬çº±Û­¨Ø¯æ¾›à´šßµà¾”ܾ“áŠßȏðÍ~㼅åµ{òµyñ±€ò´|ë¿tê¾qâÁxßÆtæÃwãÂjèÅjë½tá¼ö½sòºƒñ¾ÿÄw÷ÅpÿÃeøÇzïºx轀çÃz케çÄrÞÏxÔÞgØÐdÞÙdå×dÝÍfêÒlàÖfâÚoïðpéÚeçàgàÒsàÅfÞÇhØÔ`ßÖeâÊhÝÑcëÉaæÐbáÍOæÃNÜÈVìÇRðÅZñÄMïËOíÇKç¾WäµSòµRä²Jí©Nê°LéÄSæ´Nå±KߪSß²Và¦KážPÛªVâ¡UÞ£^à©XѱVÙ·QÏ®TÈ©S̯OƲIι[Ì®X͹QÁ¶FÀ«M¬µ:«­@¤¢8² ?±š0ª”2§’4¯’7®Ž5´›4¯›?´š;¯¡0¤¤3™¤=ž3¤Ÿ4ž™3š—5œ’=•–:˜”+—¢'¤•.¤˜0 “!¬‹+¢‰­"ª…2§.£0²Œ*¡“0¦‡#°•0´£(§¢ ¯–&žš$ ‹/¦"›‡”"§—"œ™.¢Ÿ*¢ž7˜¦0¢Ÿ;¤ž=¯‹9­†<§„?ªE¤ƒA‡Dž…Mž€Hš„M„Z•‚O’~RŠ}K‰…OŽŒO…ŠP…€^ƒZ€a‡|PŒoK lS˜q^†ug‚rmet‰fmŽYo‡aa’\lŒRj’[r–Qo—eq•\o•Qj£Rc¡SiªZk¦\g§ae§as X`¡QRš^T¡[\¡Xb§L[ž]`¬Tb²Qo¨HiªPl²Rl¾RiÁG}¿Mwº;zÇ;wÅ?‚Ì)tÅ!pƒ›Àšº…›¿ƒ¤µ™®s›ªn“³s–±}Žº}•²š¶‚”¨Š–¬…œ«†£¬ˆ©º˜©«—ª••§šœ¬¡œ¬—§®œ©´šªª¨§¯¤¦ªš££›˜¢—¬¥¡²­¢¶¯¡¯¯¯­£¬–¤§›ª³›ž²žµ­ Å¯¥Ì²¬Ä¹¦À¸¤Ç°±Ò¹ªÑ´¨Ñ¶¬Ñ³§Ø±¨á±¦Ù«¤áµÜ¸›Ú°•Ö¬â¶‹ßÁ‡äÀ‹ấêÆ}ðÅtåµzî¶~õ¶yï¾ué½jéÇhåÂnè»oÙ¾cÝÄkâËmàËwéÅ~ï»|ð´}쾆ö½~ùÂvùÄoíº{î¾zðÃwíÀ~éÉzéÃßÒ|×ØoØÓpÚÓdèÖ`åÍgâÏaßÞaçÞeèêeòÜcêÖjæËjèÏsêÉuãÓsâÐoåÑbèÕ]ã×_àÐSæÉWã»`Þ»Zá¼PêÂVíÈOåÂYâÅJì¹Jñ»Xä¶Uë¬Uâ®Oà¯Hß»KݶEݸJÛ¶Ié­IðžYêžXñ `ìŸZÛ¡dÚ«\Ý´[Ñ°[Ñ¥KΧL΢S¢W£TʱUùUÅ´L»«K¯©>²­3¥¢4¦š6§”2¤‘2¬•=°‹H¨ŽB¦“Eª¡@§Ÿ7¬¡9¥§< ¦<¦¨;8–•4–”5¡–.¢“-¢”0Ÿ-œ(¦”%¡ˆŸ‡&ªŽ+¬‰(®†$¨†,²Œ#«‡'°‡"¨Š-­’.§›(±ž$­™¦‘¢Œ#§)ª‰&­’%£›$¦ž(› "–˜-™Ÿ4šŽ-©Œ2²‹0¬6¥‘9£…<žˆG¤@‚9™€C£wO›zV—zV—Y‘‡N‡ƒO†P‡L•S‘‚Y‘}YlKpJhRjWŠpa‡h^†nelnYi\i†VgXgŠ\sWyŸZsž[s ]s¡Xg•\l”Uf¤Yk¯Ul¨Xo Ynœ^\¤TT Z[§W]¢Ra¥Ve¤Vd«Vi¯Ij¯RmµNj¹Kh¼Ot¾Ky´DºHzÆ>}Ì/‚Ó$u‰µ|˜¶™»€¬¸vœ³r¤¶wš´j’ªtµx•«z—¯‹­| „—¡}™¬Œ§»Šž­—§°‘¤ª”¥¥Š©ª˜ ¦’««“­­˜¨¦™¨¥–ª–˜Ÿš¥¡¦¨ –®«§®£œ°¦ž¢¦˜®¨• ¬¢¥¶Ÿ¡´£¤¼¦®Ä¨¥¸¶«½´¦Ç­¨Ñ±§Í´ Ô²¡Ù²¦Í³˜Ò­Ÿá®—蹞᳖⯐䰒鳁黄޶€åȀìÅ|ð¾~í¶wö±sòÁkñ·nå³rèÂvèÌgç¾eÖÃiáºaâÆqïÃfìÃuçµp嵂ò½zñÊkù½kð·n÷½mñÈvïÁwæÂ{ñÂpðÑsåÒkÞßnáØjâÑcéÕoïÒdãÕgÛÖfÚçdáðnêájàÙhæÏvíÐwêÌsåÒsñÍläÛcäÔg×Ó]åÔ_àÒLáÆRäµYãÁXñ¿LâÅLåºMà¼Zð¶Oêµ]â·T×»RÙ¬QÙ·PÔ»EáµUׯJà­Qà·Fá®OÞ¡Yã©]ߛSå¦_ФPܨZЮLѪTÎ¥MӜEǞPÒ«VÑ®RÌ¡VÏ¥G¼®9´°3­ ?­›:ª¡<­<¥›4¡’>ž‘F±‘C¡Š?¤‘=³ž7±£D²ª@ª›A¨§7˜7œ¡,˜—4œ,¯—.š‘+¢—"¦ ) “$›‰œ‡$«‡/§‹.¯‘*¦'¦Œµ‹&­ ¨Ž#­Ž*Ÿš(‘0¦™$›‘*›—%‹)®Š3¦˜-§Ÿ/š•#‘“ š0Ÿ”4¤Ž6£š1¥/¨›,¯’> }Cª„G§yE¦|<œwD‘vFœ}P’vWŽ‹L„}M…QŠ†I•ŠW†O‹„Z–€^‹sPŒpPžcS•hW—v\‘scŽgj‘mb•[lŽ[j]p…[x‘Vr“YyŸUpž[v¡Ms•\u‹^m–Wc™To\t¥Nh¡[o¨^]§XaŸQe¥P\ªLlœJ`¡JX®Nm«Di´Rd·Gs®RtÃJr²MqµAy½F€À;{Ê8‚Ï$|ƒ“¼}œ·„¦À†­¸‚¬´x¦´uª¯kž«i¢­o¢®j™ t’¡~¢ }¡¢†Ÿ«~œµ€«­“«©“¬¤†¬«…°¦”¨§«¥–« “ª ¥Ÿ–¡˜”“œ™œ›œ™š¦¡®¢›²« ¯¢—¨ª–«©’§¬”§¯£©™«´£§±¤ ½´¨½¬¤Ç¨©Ç² Ã¬›Äª Ð­ ËµžÑ·“Ú¯—峝ﭓꯆç°}ß©€Ø¸„ܵ†îăïÀñ·yù²|û´nöºiò°jæ²uõ·móÇpë¸hä¹eéÆpéÂiè¿hè¶fëµiå­zéµlñÆhó¼n÷¹fï¼pôÂiöËlîÆtëÈpêÒnÝÕrÖÕsÛØjÞÔiâÕpçÐeéËjàÔpâÙiÛèsÜçtßÚnäßuãØoäÞlìÚbëÔ`îÖ[êÖaÜÄcãÆTëÊMò¾Hè½KáºNæÀMêºTâÃKÛ¿Räº\ݱXÞ±Y߯TØ·`à·WתMÛ©QÞ§Qß©GÜ°NÛ°Uã«SצUÜ¡\Ö¡[՛UߖWàœMÚ¤JٛJ˙Q΢F͙SӚWӞEȚBÁ¨7º¥3³©,®4¥¤5¨™5¡›=Ž<£„;ª‹@­‡<§9®—5¯©>¯¬B±ž>®ž7®Ÿ/®£:¨3£”2¯•4§™%™™"Ÿ•™$¤”'š‘(ª’%¬‘.²‹#®&¨‰'³Š ¯Ž(¤‹!+ž˜1›’5¥Š+¡–"•˜*–*£‘1¥˜*Ÿ–- ’-–”-Ÿ›.˜—'  $¥™-²”6°˜1¬Œ3¦ƒ8¡ˆ=¥Dš‚G”xMœuNyS–wIˆ„JŽƒKŽ…U„ŠZ‹WŽzQ‘WŒw`ŽuZŒn_’gWŠmT“j\‘rbŒme‹cd‘gn”[rˆZr„\rNuXtž[|”S‚›Mz›IjŽPk‹Uq•_l¢Xg To¨_k£]a§[e¨J^¡Ae¥Fm¡H\¨O[¨Oc¤Pp­Wf©Ok´Li¼Mt¿No¼>zµ9~¿<€Á0tÇ!u–¼ˆ•·›·‚­¶€¥ªwž°n£¢p¢ªh¤žn¥£uœšnš¢ƒ˜‚¤°€š±‚£ ­¨†°©ƒ¨¨Œ¥ª™« •žŽ¬§—¨—Ÿ™£¡“—œŒ¦“¤ž›¥“¢«¡¥¬¦¢‘¯¨–¬¤š¤´¡¯´ž¤³˜ª¹§¦¹±œ·®¥·ªœÁµŸÀ¨¡Ê¨–Ó²¡Óµ–Ó«ŸÜ¸˜Úµ•è¯™äµ”见䳍à§|Þ¨{䰂丂öÆîµ~ö·rþºoú´nù½oò·kë¹gùºgô¾qð­gôÀmìÄfë½cé´oè²oé¶tôºjëÃgõ¹níÄo÷ÈhúÌiøÍcéÅkçÔtæØmëÕqàÌmßÔißÕfãÓkáÜqÛÒoÝÔg×ànÝëpÚ×j×àpßÓpá×hçÔeìÝ]àÍcîÒbÝÎVßÐ]ÜÉ]ãÍJá»Tî·Ræ¾QÝÄGßÇSÙ¿TÕ¹Tè¿YÙ»bÓ¼[Ó·aÒ¸_ض^Ó²SÓ²QÖ§YÚ«VرFÞ¡Pä¦[ۙ[æ›Và¤ZÒ¡YÚ£QؚRٝNۚWՑV͛KϚWؘWӗHŗKÁŸ4À3ºœ;¶˜6ª˜3®Š@Ÿ“9¢G£‹6§—9¬ŠE®‰G¤£<ªž>¦ 5¨Ÿ9¤¦)²ž/¦¡)«¨/·›4³˜/Ÿ•*¢Ÿ¥“#‹"›•,•˜.¡‹2¥“.¢2«‡+¤"©ˆ#¬Ž%£‡-“%¥•*¡0–Ž/œ“1“1™š&–ž(—“6Ÿ*”)–š'šš5 ˜1¢š* š%Ÿš8£˜=«”<©‹9¨‰8¥:™<•‚E“|SJ‹~R‘{Y—ƒZ‘…c–wVŽ{e‹‰U’}Qz\‹q[ŽyT’sTwO’mV›f]k`‘j]–qlˆia„\t…Sw‰Wx’K]•OsšUy™Uu—IsžYv—W{¡Uz¤Pi¢\i¦P`žRl§Da¡Ae¡En§Hc¬K[«La®Lp§Nt©Jg±DmÂF{ÅBr»=yÇ3~Ä6|Ð1zÃ.|‚š°ƒ‘²„“ºv£¸y«¯~¢¥r¡¥uœ£n¢¢m——q–¢všx¢œƒ¥©†£«…£¤§¡‚ž¢™…­ž¢¡•§“›£–¡¤¢™œ•œ’’Ÿ•ž—‰ª’Œ¥˜‰«¤—¥ ˜ŸªŽ¦¬‹¡­•ª¤±ªœ¨¬ ¥®§™¶¢•®¤”º®œ¾´”Ë­ŽÒ¯”Óµ“×·œà¼”Ü°æ³‹äº‹ñ»‚íªŠã¦‹ãª†Ú¢}Ý©wã±ë»zðµyùÀrø¹lô´jó½eó¾ló¶eôºjú®nô±oø¯gí¼jï½iíÂkç¶tì¸kî®iì²uñ¿wîÀlîÃcðÑdóÚkõÑfñÎkóÔtéÔmêÎpàÎtßÝpÙÛqÛÜnÓÖfÕÖm×ÞoßÞnåÖaÜÝdÚØ_ßÚaÚØaàØaàÑ\åÈXéÈRãÏSÜÏOãÃUêÀ[èÂRè¾SÞÁQàÁUÓ¸VϾ^ÜÄ]Ü»ZÙµUâ°`Ü·aâ¬[Û±Tã«^Ú¤WߟPߣOâ©Tã¤Rç–Nå—Yå [؟Qڛ^á ZÕ£V؜SۚNڌYГNϑNȌBŊDǐC¸”:–4º‰3´‡;©‹>§—G«•@¯˜=¦›?« B°”E¨¡E©A§ 7¤¨-¬ 3«§,µ«1¶©-¯¥)­ž(¦ ©™'¥—&š –ˆ,¡'˜”,œ—*¥•2 ‰0„)¨*­€$«ƒ,‰/œ„&ž‰/•”.-›’.‘Ÿ&˜›)œŸ(£—0—”,™Ž2žŒ7¡’+¦†1§‰+£. 7›‰*¢‡. ƒ;ˆ9¡{D¡{@“…A”ƒNš€UŽ|Y„[–{`ŽtgŽ~a˜ˆf˜‚[”]•v[—pW•uW t\œuR•pX—nW—hZ‹kZ†[hŽZm‰X~‡T}”M~‘S|G}‹Lv“Is—S{œT€O}žWršTn›WhžHm¨Hs£Gm©Ge¤;i¥>fžDg§@k¨:k´>l°Ct´@q¼Gy¼DzÀ«ˆ6¯ƒB¤Œ4´™B±šA¢¥>°¥=£žLª’Cž”FŸ™6›—.£ž*­™'­¥(©¥"«•$©¡%¤“"©”(©–-•Œ–…0ž‘+œ“ ™‹)¡(Ÿ/¬•+¦Ž,¢–)¯Ÿ’/™ˆ%¢#–›$œ‘2šž(œŽ4š4Ÿ—)ª–)¦’)™‰, (ž•(™—)ª•.ž˜/œ:’†7ž1‚1–…:˜{Bžx>Š|I‡‹R–~X‹t[™‚R yV„bŽ}b•tQšT˜oWŽkak]•r\p[¡sc’iV˜sRfV‡b^•hp—fxŒSmLs•W}‘YzŠV{…U€ŒMr’KuM‚•K™I{ Rx£Xj•Tp”Nu”Rj–LfŸCl§Gf¤QuNq¦Cy¦Ir®A€¦Mƒ·CºG{¹6¼AuÆ8ŠÉ4€Ñ6Šm‰«w¯xˆ¬}”µq‹³rª‚–ª€•«t’©m§x—šy£”} ™„©™ƒ¡ ‡¡‹¢¤‚§šƒ£˜ˆœ›£¥‡  †ª–¨Œ£ž’Ÿž‹ œ”’–ž•ž››ž¡£ª¦¢«¬¤¥§–ª¤¡±•ž¬¥³šš³›œ¸¤ ¬¤›±ª‘±¥˜Á¨¿­À³˜¿´ Î©¡Ì±šÛ´“Ö·‘Ôª†Ú±~Ù¨…Þ³ŒÝ®‚â¬~ì¶ró¾nô½uòÁjæ½bë¹Zù¹]ÿ»e÷¶jú½k÷½còÅgë½dàµb߶oá½sî¼eñµoó¹wïÂrâÀoÜÄqßÉcèÍ]ò¿_æÄgãÏ^ìÊhñÓdôÑgïÇtëÂ}ÛÎwÚÑ{ÑÙq×ÝgÜÛgØÚdÙárÔápÐÜhÚÎfÖÎXÖÆ_çÂ\êÀXßÅJß¿KìÆOîÈUíÇVë¹VؼNÕÆKÏÇIÓÆLϳZÔ¶aÌ´`Þ¼Sà²RÒ­Rз`Ô±bç²Tá¤PÝ£VߚLæžPä™Oà”Mà’IٙGۜGݧV× NߨEΪSΜO՗BЌAґ?ύCӘ@œF¶ŽJ´’?¼‘G»ŒH²‘C±‹5®‹5«—8¯–>ª FŸ£<Ÿ¥A¦ŸFŸ“9©-¢•,¥›(¨œ,¥š#­‘&³“!¯ )­¥*©™,¥Š0€+£5£Ž/žŽ)¢$¥%ž—"¨Ž#©–+¦(ª‘ ¥Ž,–“5¡‘.£—'œ(œ)—”-‘. ™4§›*™Ž$™’ ™!–’,•œ2 š1—“0˜”:•Ž:Ž„?“Š7™„9‘{D‹}B‡yH†‚U“xQ‘z[yWšyX’z\•{R}^xXŒr`kXšpZ¢qe£f_škfœu`‘rZ—kdjh•ip’cyUvˆRq”Yv•TzŒL{‰OzˆRŠNw‰PpQwžL€ŸNy™Ip—Uv”Op“Ug—DgDb¦Jh¡Ou£J{šHyžF¥L¡J‡«M„·K‚½9zÉ9†Ã>Ç=„Ò<ƒn|²|Œ¶xˆª´x˜²r–¬‚Š§w’¬u“£oˆ¦p•p¢”z¢—}©¡{¤›ˆ©¤§—‡¥š…—’Žœ–‹’ž’¢£ˆ¡–“«¥Ž¢•’ž›–¢”–’ž£¡“›™¥©£¬ œ§­£§¥šž«£¡®¨­ ©¬Ÿ¤³±¦±¦š´¸™¹¶ŠÂ±“ꊵ±’À±¢Ñ ›Æ¤”Ì¥™Ú³…Ö¦ˆÐ¢‹Ù°Œà¤~ܳ€Ý»~óÁzî½gø¿rö¶bæ½bôº^óÀZìÂ]ú½iô»kñ¸aï³föÄmà¼fÚ¿iéÁgé·oñÃrò°vé³oãÄiêÃeàÎbëÆgîÀhãÀlàÎZßÓhß×véÔmæËußÍxÚÊjØÕtÙÙv×ÓkÜÖoØåkÒåwÓÒsÐÛoÖÐjÓÑdÙËWÜÆXèÇUÞÃMæ»GéÀKã¼[èÄ`ãÇYÖ·SÒ½LËÂFÆÄNȶ^ɶ`Ô«a×»WÓ®ZÔ©QÙªbã°ZèŸQâœ^á¦Sé¦Tە[å–PæIߘBڞNè¤Nè®På›LӜ>Ԗ@̘NԖ@ڔ;ԎI̓C¾ŠDÁŠK¿Ž>»‰LÁ„?µ“EºF©>«…@¡ŠA¥¡BŸ >£ 7•š0–—4›’-œŸ/¬š4°¢0°–3º”+¶—1¹“-®˜4¬œ.µ$¢/ª},œƒ2Ÿ‰-¡5°Œ1©,¥›-¦›&´’$¯”%®žŸ’0£Ÿ:““4œŽ6œ6””.œ•&“œ-˜˜(¬'—‘"”'•'–&›0Ÿœ*›1••>•ˆ:Šx.š…=“=šC‡ƒDˆ‹HQ”…U’‚SyTvQ–yT˜yT‹uY‹y[•kT˜mZ˜mažu_•o`šrWŠkg“n]hf‚hjŠ`wŽexWtƒPyX~’\q‡U‚Vr„Xz”Hx–S{LƒŒNxKm’Mx“VhšTq[e›Uc˜UeŸKgKoŸU‚—HœS‚¢EŽ¬J…´D‹·Eµ<Å9ŒÁ<Ì=†Ï8~{„¯z‚®q‘°y—¯x·ƒ•²†²|…¥u…¦s˜z›¢wžœz•˜}˜—}—ž¤§€«¤€¢™‰Ÿ£Ž“œ‡’“Œœ˜Š›•’ª›Ÿªš ¤’Ÿ§‘žšž“—¢—–¨“¥ ¤¦Ÿ¢™¢¡œŸ¡ª£¥§ž«¯¦³¨¢®©®­ ¥®–§¹“®¼‰µ±‰½¹–¸²”»©”ƤŸÏ¢™ÊŸÇ©“ѯÛ­”Þ§‡å¥ß´‰è´ƒî¼që´ní±gî¹aô½\øÆXñÃYúÃXñ¸aõ±iù²gú¼kó¾læ²qå·tã½xä¿xë»m÷·sý¿yó·näµhàÂjÔ¾vÙ¼rÝ»jàÆgàÏuÙÍzØÔvàËzÞÎkÑÆmÔÐmÖÊt×ËrÊÛoÒÕuÒÜtÙÎuÙÐjØÉcÏÇbÑÊfß¿XÝÉKéÄJïÃNå»Rê¶Zç½\ì¹Nâ½MßÁLÍÁRйRϲY×·XϲXȱWÍ´ZÚ¯]تTקTå™Uà™Pè\éŸ_áZݤVä™Hî–@éšGߧAã£LÜ¡HїC̗GÑ @ӝFҌCÆCÁDÁ•FÀ‹?ňA‹KºŒG´‹@±@¥ˆ<ª‹J¦I­œN¥£E™š>™™0—“0Ÿš-§œ1§š7¯œ8º›>µ¤A¼:º‘;³.¶“*°‡"®‰,§ƒ+°3§ƒ3®‘5°/§™&­™+©ž%¯›©¢Ÿ!¥¤2¡ž1–¡7’5’›8—6ˆ˜,š'“—. +Ÿ‘2š”+‘&‘ž%’˜4—™1“6‰…2†„4’z*”…1›„6ž:“ŒAŒPŠ‚SŠ„O{M’zZŒqYrN•wRŒqSmZœnU›oY¡j]›mc˜jZ‘sYŒiaŒpa‡qc…hs_x‰cy†ZzŒVŽ]}•Tu•Vz‹VxŽR~‘Sƒ—[yU–Sw’Rpœ]r›\hŸbk˜XjWg—\t™Yt£Pt¥O|ŸW†©P‰£O‹«MºG¶F¾I´L‘»Aˆ·;À<Šv‰«~~³|Š®x†¦€—²{‘¨€…³€Š¨vsŽ ~¤{—›x¢˜¤…œ¢›¨†¦¥ƒ¤¡…›’“Ž•Žˆ£Œ¨”—¬””š–ž¢š’——¡Ÿ’£ ž£¢ž¯®¢¡›ž¢¨ž¥Ÿ§²°¢¦ª£µ©£® ¨¨˜£³Œµ¦“¸­†´«“º¬’¾¥œÄ›šÃ©Â¥•Òµ’Э‘Ôµ„屉筍ݰŒæ²yî½tã½uá­qí¾]ð±jé¾Zô½[ê¿_ë¹gö¸bó¨]æ³dç¼dî²të¾kçµtîÃqó¯oç´dó¾uô¿läÊiÛÄdåÀeÕ»nÞÌqÚËsâÆnÙÐs×Ó~àÖnØ×jÍÊt×ÌhÎÓoÑÖrÓØrÌÞlÓÜmÌØfÖËcÑÉjȼaØÆVÞ¾TÝÃIèºJâ¹UìµSÞ¸^ß³[â¯NØ·ZθNËÄIÌ·UѼP̲Y×®^Ú»]Ò¬PÕ­[ЮWÖ£XۗRêŸRôŸIèŸOâ¥Uê›NڍLè”CےHØ£H՚IϤNÒ£?ٝIË¢<ՓCɌFЅH½ƒF½„=¾‰;ÁBÁ‰L¹Œ>¾>¯„:³‘5 >ªŽB©›@žœ9©‘Dœ@­ ;¢“0ª =¯™?µ“;¼˜@¹—@¹™9·œ,«‹)².·‰*¨….³,²„-·‡:³Š(±‰!®™0©ž.ª%¨Ž ¥ž™ !–” ¡5œ—;Ž=š3”“3‘”7–¥',›—$›Œ–‹›'”¥–œ-—•+‘‡0Ž,•~+†x-ˆ+”Š8ŠxAŽ~@’uPŽ„QŽMƒzLŒxY—x[‘mX’zc‘yZ•wb‘t[–dc’r^Ÿhe™la›mh˜lY‹kcˆll†`l’fo‘ps”bu‘Zˆ—_s‹Pu‡boŠ_mŒX}˜\†PyŽX€‘Y|Ws—bj fc›_obu˜Xt¢Ypž^|œTt—]zŸT…¢Uˆ¯Oˆ¶L‹«J’ºI”»O—·A…°I‚µEÌBŽr‡§v„«v€¤w†¬xƒ±wˆ®t|±y~²{‚®~•¥˜«|‘¦z Ÿž›ˆ–­—­Šœ£„™§–›ˆœ‘ —¥‰¯˜‹§—˜™’š–™œ™’©“¢ž¢žŸ©¥¨££¨¥¥¢ªŸ›¢¦¡¡®ž¦£”®®š´ ˜¯ ”µŸˆ®¡µ¨¸£’¾¤šÁ£’ݙə–š“¼ª”Ê®ŠÓ¼ƒÜ·„Þ©ŠÞ¦‡ç±€ä©vá±oÚ½fä·lç¯hâ¯gëµeë¾QíÆZðÂbì³fè¬cí¶cçºeßÀmæ´në¶hì¸lð¶hã°féºuíÅ{ìÅ{äÇnÝÇmßÈjÕÁrÜÄxÕËtØÄwÝÉwãÚrÝáiÖ×oÔÖcÒ×hÏÖbÊÔhÍÝg×ÙqØÎcÈÔeÉÈ\Ò¹[ξVÔ¾WÝÀOí¿Hä¿Hã½Xç±Xâ³XÕ¸SÔ¯WͳKÌÁNÕÈCÑÀI×»YÔ¸\Óº_à¬WÚ®RÕ­Nß©NÚ¡Pá¦HîžGå—JåžNäŸDáŽHيGۖQ؜PНB˕K՞JÜ£CÑ IՓFȎI͎>dž@½‹@·•CÀ•@ƃJʃM¿A¾‹3¯6­‡<Ž<›ˆ>¤‘>­’F¬’C·‘3°™2§•:­•G¦ŽL­˜@·–@½ 3°’7´Š.«ƒ,­‰;ªŠ-±Ž)´Š-¹€2º0¾#²Œ+©•)¢+©’"¢‹› œ™#–’0›˜=–’8œ1–Ÿ9‘¥4˜ž&˜“(›™““!˜Ÿ%Žœˆš‹‘'Ž&Œy0‘~;‹…7—†2“4’|7Št>ƒp<‚tK~€Pˆ€O‰‚Tšvd—zf—sc{[’yY‘u\ihšgh£ma›qcžhf˜ad˜i^Šheejˆs{Žp}Šqz—g‹f{[t“_{‰aq–^€™X}‰\x†O{ˆSz†Ypaf˜_lbr—`ušTl¨VnªWxœW€–Y{ŸX…§Xƒ°Y¨L…©NŠ¯C—±H—°O•³E¾>†ÊB†p|¯j{²s…²pz³oz½zƒÀr|º||°…‡±‡–³z“¨}Œ¨xŸ|•˜‚–Ÿ‚œŸ‘‡’¨€œ›‹’˜’ž’”Œ–••œ˜¢–¥••£“ª£›ž  ©—Ÿ¥•®§§¬¤—¡¬œ­¤£¨§³¥—´¢—»¨—« —º Šµ£‡¹ª•¹¨‹²®”¯¤º¨•¼—“¼ ‘¸«šÀµŒÇ¶Ö¶Ó²~à¸yê­xä¶nà¾gã»så¯nÝ«låªdä¸Té¼XêºUò´_å¹Sâ¬\íºWâ»YèÂdâ¾rå¯hð°jâºké¼mç¹mæ»mê¼pçÃxßÐåÊpåÉ{ÚËrÞÎrÙ×uâÖráÙuÖÜnÖÐ}ÒÐxÐÜdÒÔcÊÏrÒÕiÊàeÖØnÔÕqÏÆ]ÑÄXÒ»TÚÃPãÀ[ïÄJÚ½KèµTä¬Lç¬Ná±UÕ³VײQѹSÔ¶UÍÃJÙ±MÔ±NÑ«[× L×°TÙ¢FÖ®RÞªSæ˜HçœEêžSݑM՚WۓV֟WәGِQɐ>ʞLÖ£OÙ¥LܚA˕JǍ;ÁŠBƎGÀ‡NƏ@ȋEÀ@ƄI¾@½‡:¶“9¦9Ÿ–1¨‘1£2©”8¯Œ>´™E¼œ=®Ž<¶ŽB°•B¸¡Bº–6¶¥1¾’/°˜;«Ž<¹”<¯6¸‘5½‘$¾…1°)µ‹$¸” ª“±#¤›œ–"˜—- Œ"š(“•8“’9;œ¢:—.“Ÿ0‹™‹––•‰š‹žˆ™!Ž#‚ƒ$†€/’z8ŠxA’‚=t6†:’u:s@uJ‹uLxK–yZ˜{fœ}\ ncra’wgžjj™po¥al¤cX¤ngbd¦md”j[˜^išgb–nzpyŽnƒ—q|Šgr^n•iŽm{˜a}c{PzŠ\z”YyŒVu‰Xq’X|•^lžax [w›V{N{¡N‚¨ZŠ¥Kˆ©S²\‘³O‹¥B®PŒ¸N”µ>±G¼I¾9hƒ°jy¿s{Ár}½wyÉ}yÃ}ˆÂ}†·~Ž±‚¯xŠ·vŠ´w‹¨†–¥–©†’¡„‘¢}›˜„˜„—“‘–“’‘•˜œ‘˜›™™¤–§ ¡ “£™Ÿ‘¡£“¡³’¥²š¨¶§¤·¢£®£ª±š©¹–Ÿ¹—˜´¢”³¥–»£™¹©Ž»ª‰²¦«¤–¬ªŒº­»¡Œ¹²†ÃµÌ¶ŽÉµЯ„Ô·|Û·uÝ´tݺlÛºlà³må³méªbë¯^ä¯Vî¿Zè·Lð·Oò°Yä¶Yà´Vç¿Uï»déºfî®cê²lé¼oß¹kêÀqïÁkè½sëÆ}îÆ{ãȅî҃éÌ|ÞØ}áÙoÔÜkÔÕwÕÛrÊÓ|ÖÒzÕÝqÓÙm×ÙjÓÝeÌÕiÊÛnÕÐoßÅcܾcØ¿]â»XèÀWà»UåµIÜ­Hå®KÞ²KݳMܾSܾTиTÚ²UÖ¹YÖ´XÒ±QÕ¥KÖ¤Ká®Iá¨Lå§WÝ¢PáœLà•EٙM܍TߙOՖTҗN͞LҙM̒Aԙ@̝EΚ=؝?Д6ț=ŞGĒJƏJĐNȕH½GÊ>¾ˆB¿‹7±“9¦.¢2œ‘9¢“5›‹5¥‡C­=¶ŽD»“L´B­–<´œG¼™<´ž<»š;²˜=µ˜>¹™9µ1¸Š1¯.³Œ±ŒºŽ °–%¯š ª’#§“¥›&™–()•”0‹.—Ž5™”8–˜,–+‡“-“+‰œŠ‘‰•‰‘‚”%‰‹+‹Œ-‰1ƒ3„v@Š|FŒz;•wEŽuBvOŒzN{KsSœwT›ta}k¡ug¢|_žtg ke¦ekªf[Ÿc\Ÿ^g¤ge¥[cž_ažiišgfŒsoˆqx‚ut†ww‚w€oyŠt~‘n{™mv‘^|“[q™Wl›]s[o‹ZwšS|—U}¢Yw—]†šTƒ Z¦SŠ¢J…¤M…±L®O‹§M“¦CŠ´J²F·K‡µC’¸9Â7Œe±iv®s…¶nŠ»}~½ƒ°zx²x{µ…‰ºˆ²~‹«t§r“ªš›y™ †Œ›‹— Œ–…–Ÿ‰¤˜™–’‘—¡›™¡ “Ÿ¤˜«™ŸŸ¤–™¡˜—œ®”Ÿ¬Œ¦³£¨²™Ÿ´˜¤¯ž¢¦›¢¬¢ ²¢¤š‘µ ´Ÿ~°¥’« •¨ ‰ª£‡¾›‡¹£¹¨Ä­Ì³„ïwÖ®Í¹t׸wâ´sÔ¬uå³lè®lã»eð½Zö°YêÀVí¶Pð´SçÀ]áÂRä³Uâ¼^çºeâÁeÜÁpà´fá¯cé±aÙ¶kè´ièÀgãÉvã¿zÞÄxݽ~×ÃzÜЃÛÓäÍyÑÌw××kÓÍ}ÆÈ{ÆÜl×änØàtÖÓmÎÙdØÙlÏÎeÒÙ_ÖÎbÖÂeãÆWåÆMÚÅUÙ½LÖ¾SØ®V׺Mß»C×ÂIݶVÌÁPDZLÕ¸[Ùµ]ͯPÒ·RÒ­FӛOҟD՞PߟMä›Mâ”EەOߜF֕NӜM֕_Η[Ë VƔAŔBЛ@ۜKס=ЗBٞLƞHǛDƒGĐM˓G¿‘L½I¾Ž<¸•:±‰:®–5ª=¨;¢ž0¨•< Ž:>©ŠF¨–>µH©ŒJ­˜D® ?·œA±š>©Ž6²Š@¨–A°“>©‹0¯†.·…%·“,­Œ#­%ª'«š«’³™§“# ”!£š-’Ž4—/–’)‹š4–˜/Ž $‰#™-ƒ•Ž%†‘ˆ¢%Žš%Œƒ%‡Ž*‚Ž/†v/‡9‘r4ŠzE“C‚EŽzL‡rG‰sM™€\•{X§yZ©oh wl {d¨yt¤oo du›gf¤uW¦a_ kn¢\g¤e`›nnŸinŠioxvz–rtŽu{ŒjkŒn~n{”b„”cy‹\užbseqgq–^s§Q‚¦aw¡Pq¥SwœUv£S®MŠ®X¤N«HºC†¥NŠ¤I‚³OŒ­Q•±BŽ¶F»D‘»1Šb~¤h~ªcƒ¯o‰¶n®xƒ­n}´o€½±„Œ§v’©r‰¡sŠœu™›z“¡~Ÿ†“§‹Ž£}ž¢Ÿ‡—ˆ——¨¢¬”¦­”¤œŸ£§˜¡šš¦§£¤¥²Ÿ£³Œ›«›± Ÿªœ›«—™¦–ž¤¦ ¦–˜¡–›Ž£—›žƒ£¥“©§Œ³˜ˆ¸žŽÃš”Ç¢†½¢{¾¦|ȲzιuÒ¶qÔ·{Öºwß®så¦aÝ®]á³bâ°Zó»[ôÁVæ¶Wíº[éÀcìÁbæ¼_é¾cçºiÞ¸uÞ½që»géµjè¿fÙ¼cÛ¸pé½rëÁæ½|ÛÇxÛÃÔΆÔ΀ÙÅzØÆwÐÒlÐØmÍ×qÓÌvÖÝsÇÝn×ÏhÙÎhÖÏrÖÜmØÔiÓÐWÏËUÐÄcÝÊ`ÜÃOÐÈKÕÂTÚ·RÞ¶R×ÂHßÀIÛÃJÜ»MËÀJ÷OȸUÕ³TÛ­U×­RάGԛJїH؛FߒCàšIޔLؓJÛ¤EÔ¦MΛS̖ZÉ¢ŢQàDțGבGٔJÒ¢G؞HםTїOďF¸“FÀ™Dȕ@ʙI»A¼7·›=²–>´ˆ3¶<¯š6§¡7Ÿœ1£’5£ŒH¦ŠI£–E­žA®–J¹£Nµ¢Aµ‘<­=¢ŠB§‹:¥A¦†@°~=ª-«ˆ'ª‘1²+±‘ ¹±’¯²™!«”«ž$£œ/˜‘)›Ž&‘.ˆ 0ž.–¡"——$Š“(ŠŒ)Ž.ˆ‘)š+‹™#‹’"‰Œ•1ŠŒ6†‰/„x5„s5’uB‘‚OŠˆP‰yOzG‘uG|Tªz_©wa¨{gœ|i§pq¥mq£ru¡sn™qhv[šw\—hižjk¨ccœmqœoq“mwŠpwŠt}•|~•pulnˆl{Šh~…mƒ‘f…ŒjŠ”d†\Še}e†¤^~¢Vv¡Wp¬Qt¥Rs±Pv«N±O‰³VŠ²Gˆ´E€·Oz©K€¤SŽ¨L‘®J–ÀG‹È<‹¾<f€ª`{±b€°c‚¨q~§w€«w…µs„°‚„µ…€¦ƒ” v›~‰œsŠ¦„ˆ¦|›}‹§‚›¢Œ˜•~¢˜‚›•“—”–›–¨ª˜™§– ™Ÿªš¥¤­—ª¨˜¯™œ²œ©‘•±ž•¬¢®š›¤–¤™œ ˜’ž›“¥š«“†¢š­Ÿƒžž°«³¡|Àœˆº£Š¾™„¿¡„È©wÒ²xˬrÕ±uܸqÕ·mÜ®kå®`ܧhá¶aêµ\ó´Vçµbð¶\ìÀ\æÀaá¹`ãÄVàÅeî·eæÁtÞ¼nç¶jß¼pؽlÓ´\ݵpê¸vèÄqßÅuéǂÔÄtÙÐÙÉrÖÒpÇÓqÓÍnØÔjÐÑiÚÛqÏÖxÐâkÓÕlÓ×_ÝÜcØÛaÖÍ`ãÍQÓÏUÍÀbÚÀTâËUá¾OÙ¹[׿QÛ´VÖ»IܺKоJ×¼QÔ®X̼NϪWשPѦ[ܯ^Ù¤WϖIӑFÔ AݓDזDޑSРFÚ£QТDÍ¢NȘ^ͤVˤPÒªUŚN˜HÚ¤DזPϝE՝I̐FƑA¿ DÞK»—D½ G´ž@·‘Eº”AµŠ6±ƒ5­@¨”@¤–6¦–<¤¡A©J¨œFž“JžR°ŸT§£R¶E·•K¯’?©ˆ:©Ž:®:±…C­<®ˆ1«‰)¬ž*²!¨›#µ˜'¯˜!²¢¹£ª$¡£$¥™&‘›&œ’3“›06”'’”3–˜&†Š$€‘2Œ‰'Œ‹!Œ–*—#‚“+‡“'‚“1ˆŒ2’A‡F—}:—E†E‡{FŒ€I™†V¡z]w\¤wc§uk›mp£yi§rtŸkr­nh¬wpžm[ xo¦lr£hn¦ej§sq’uq—mp“r{’pršnx“s{kn”hr’ky—g‹š`ˆ˜k‡”h‹Œl…›f}’\ˆ¬Uˆ¥W¡OsŸ^ož\{©Uv­S~¬O‚©I„­P}²CƒµF}·A~¬H†¬A–»<ŠÄ<Ç6Ç4‰[Ÿ\ˆ¬h‰©f‚ªl„©w…¬yˆ©t|°{{³‚‚¬€…›–›|Œ–‚ˆ¡…Š¦z¢~”¢š¢‚ž”†¢–™”“¡–“¦ ©•˜ž–¡¤Ÿœ«£¢¨¡¡¥š«™–®˜§’“©“›¦Ÿ ¥§›§¥¤™™™™ˆœŸ†ž”« ƒ©œ~£™‰§§ƒº«x»«{¨z¾›ˆ¼˜‘¾•ˆÎ ƒÎ£‚Ø«uÕ«wÎ¥zÕ¯qÕ£jקcÞª]ë­]è¨eñ³^í³Sî·Yé½\è²`êÁgÞÂ\à¼dä½hãÅjâ½tÛ¹sã½pä¾sÝ»fâ¾ué¿u踂ç»ÛÊ{ÚËtÒÐoÓÇrÔÊyÇÏqÍÖnÏÑwÇ×qÏÝmÆØjÍÖmÑÔfØÛ`ãÕYÜÒ^çÐXáÐXãÇ^Ù¿VáÅVßÂKصNÕ·RÒ¶NʲJÖ¸QÑÁUϲTÑ´RÍ·Xʱ^ΫRǬT΢_Ó¢^֖XҔR֓SܚLӒQ̔KƖKѝNͪDȪKÅ¢PÊ©XÊ©QצXÛªYÒ¨XЩTФMÇ S͗GГGƖIßNÁ¤F¸¡E´¥E´œN¸ŸI»›I¿”Fµ‡;³‰@±‹?¦•D§@¢š@¢¡E  >¤žJ ˜Fœ–O¤™R³’U·˜Pµ‘C§Œ<°<«‡9¥’3­7°Œ;¬Š3ª˜.®š0§›0«š%¨’¯›©§²¦!¤ª"›¦)•¡'˜¢0š¤-•˜3šŽ3–‘.Œ‹(Š‡-~‡'‚.ƒ”.„”"~š(ƒ“"…—‰'(„ˆ.’5ŽŒ<’F˜„B‹?Ž„@•EŒ‡Q’~X¡ƒTœ‚b§t_¤j]¥jj¨sežri¢w`ªvg±~l¦ulŸzi¤rt«kv¢op xr™pg™xmŸxr or£l}›rt”tx˜f”f‚œ`ˆ—\‰“aƒ’dŒ›`‡›g‡£`}£Z„¡\«Tt©Pv¥WŸZ{žSz¥EwªGy«@‚»I…¸A†·@Œ¾:Œ³E‰¶>ˆ¼8ˆÀ?Å=‡cŽ¯`¦gˆ¡lŒ¥e~ªh~·ey°p{µm«zŠ°sœv— r§€’©sž~œ~¨}™…™’‹®— Š ž™¤“—Ÿ—ž” °— ¡›˜›Ÿ« Ÿ©›–¦¡“²˜–¤Ÿ¡¦Ÿ¥­ž•Ÿ ˜››”§š‰¡”ˆ¨–…¦’Š™†¬©|®¤º«†¬‚³˜„¸š‡½œƒºš‡ÃžsǨ{ظnЬoÚ§vѤsà±`ã²aåµ^â·hàÁWéÀ[öÀVä²\í®fã´[á¼[àÃcÚ·nÚ¸yÞÀnæ´v×»m׸iسrçÀeçÃpâ»uä½åºzÒÇ}ÛÍnØÄqÖÊjÉÇpÑÒwÕÒjÚÔmÔ×kÑÒfÎÒvÓØ`ÐÐgÓÌ_ÞÆSÔÂRäÅVÖÉLÛÀN×½PÚ¾P̾TÉÄXÊÁNÑ»PÐÄOÊÉKÛºUݱ]Ƶ`Á¨WͬZÏ´]Ö§\͞c͕Q̛MܕJТMʤFӝRҜPÉ£WÓ¡XɧE̟UÇ¢MɬNÒ¬QÈ°WÖ¦^Ï¡WÁV͙JÓMÈ E¼™I˝Q¬AëOœP¿™L³ Mº J¬“I¶˜J¤‘>¬’;³–8®˜8¥ŠC¤’9£’?Ÿ•>˜‹?œ–A¡ŸHª˜H­¢F§—HŸ—C£…7¤‡6«“;¦‰3¤•6£’4®‡1¯0®‘2¯–/³"¯š¥ª"«®%¬§¨˜%¡—%• 0™¡;Žž/‡™3‰”,…Œ5ˆ™'{•*y)€™*„–z— }–‘(‘+‘—*Š”5‘“8‰Ž2‡@˜‡<™F†7‘ƒCŠ’T™Qª~O«wV¨tg§rl¯plªl^¢{`¡}f¤}m°to©liªugªzp¬ll¢w~œlm¨~r™~vœzt™wz•du™fm˜qu™tr›l}—aˆœf…’iŽ]žb†›`ž^y›WvžW~¯_u§Z€£Uƒ¤Oz¥R‚¤J®L}±J}´R´A†»>’¹?‚º@‰µB‡µ:ŽËB’Ê;†^ˆŸS€¥a¡f‰¥n‡¤ez²]}ªd‚³g”­e•¨h‘œp‘Ÿ|Œ§xŸuŒ y–¡t“œt”˜y¤Ž~«Š‚¬—¦•–œ˜–¡Ž•¨‰œª’£¤’›œŽš˜‘©£ž¦™ž¯˜˜ª¡ ™™›©Ž¤¬’¥¨“ª£‰±¦€©žzœ—xž”„§˜|¦¦‚­œ†§™€ª›ƒ´’}½›ƒ¹ª„Ųƨr˵mʶpЫtÜ­sݧpÚ¯hà¯eÝÀlâ¹`ßÂZâÅSôÃWïÆbá¹`ßÃfæ¿dÞÅiá¾påÀs߸vâ±wÖ¸qдzØ´tݼjâÈiâÅgáÅqØÀxØ¿uÚÀyÐÇlÖÆqÑÃtÜÍsÖÏlÞËhÚÊnÞØpÐØoÓÚnÌÕ_ÒÉQÏÃPÓ·]×¼XÕËTÜÈKßÉPлIÄ¿MÈÃXÄÆK̽LϾRÔÉPÙ¼]Ù¸`Ù®eȯZÙ¨YݪbژeؖdӓZԒQ֜TϚQƛOʦOÄ¢NȚ[͞WÔ¬LÓ¨GҟPÒ¬YʯPÄ´U˪bȤV¾™P¿›QŕFŝQÜLÉ£GĬF¼®D¾žIÀ O¼ EªŸK¦•Bœ•D ŽB¯–C¯•7¯‹:¡‹BA™@˜Œ?œŠBœ“;¥—<¬›F¦šH«žC¢’C¦“6¥„0¤’5¯’1­Ž+«Š+²Š/­ˆ&©Ž1¬,¤¨*¦¦ ¡©(§¬%§¤!ª—.© 7¡š/”2Œ’6ƒ›.„—+‡—(} 1y”5u™(p¢#w {œ‡‘Œ—Žž ŒŸ-‰˜+…‘.‰“5Š‹;„FŽ…>–<”D™‹Nœ}W¤zO®v^ªpf®q^¨m^›odšsdzr§vn¥zj¨og¢tp¤kž|u¤nz©|u­|~¥rt—wmŸhy—jv”snŒqk‰s€•k†Ÿg‰˜e‡Ÿ]™\†–Z_ƒ”j{œeu bt£Xk©Y~¤X‚šP‹Dƒ¦Gˆ¬K€¤Bƒ­J´C‡Á@Š»:Ä=Š½5†½:“Æ>”Ì7‹R‚ªZ‚§]Œ¨\‹ª\³a®[ˆ°k…±aŒ­eŒ¯m—«k–—o”f‰‘mš z•Ÿv”›‚¡“…œ†£‰‡¤ƒ—Ÿ‘˜¨‰›£‘ž¦Š—­˜œŽž ˆ«–£˜ ª•œ¥š•¡¡‘¬œ›œ˜¨«’¬¯…¡ƒª¨€Ÿ–xž“ƒ¡¨•…© Œ¢“{¦•}¤’†§Ž‚µ”€Àu¾ª|Æ£kÄ´hÁ°pÓ¹nݸtÜ®wÛ¸kÙ´nâºmÖ¾lÙÅcäÈ`ëÁ^ç¹Yß¼cá¸XïÂeÝÀcݵrØÀj×´oÙ°nѹmÞ¿hÙ¶mßÊjäÌcêÏhÝÃjÙ»tܺuÙÅf×ÍjÛÃyÙÇvÖÌiÞÓiØÇoâÎpÑÏjÜØlÕÒbÏÊVÑÃVÖ½QÖÂ[ÓÄPÔÅGâÍLÏÈF×ÄP×ÄJÓÆ\˽XÄÁRÓÄQÖÌPà·bܲcÚ±fÙ±_Ù¯_اiâŸc֜dڛ_̚]ϛWМX՚\Ô®QѦV֚OÛ¬PÖ¤ZÓªJљVؤ^˧YÈ®a΢`Áž[Á—XǤJºŸNƜHº¢T£SÁ£E¶¤B¿£KÁ£@¶™8¨“6¬9ž”D˜„=¤‡5¢’4©“<¢Š:˜Œ9¡…A£‘A¤Ž6”;©‘HžœC§‘G¨ŒH¨H?ªŽ-¤‰9§Š9«‹'§Œ1­ˆ0ª‹,§™#¤¡ ¬›*ª¨$žž#§¡)§¥%¬Ÿ$¬˜. ˜6˜™/‡Ž+“*¤3‚*w¥*|¡*t¡/‚¦„š„ ”%…‘–‘”†ž"‹˜'’š.•—/˜‡D ;——;œL¡‘R•„L~J¨|U©kb¦mažka i^”jfš~j¥|m¥qg©vo¡i¨~p¢~uªns¥tx«xt¨u}•ty•pu—fu•dz˜kt™ky—_ža‚–bŠ™b~¢hz›e„£\z›^~›\s©VoŸ^x¡P~ªRŸP†¥I¦M‹¦T€µF†¸>®I—¿D‹¿DŒ½H¼<…¾;ËG—Õ;ŒZªU«Q…¥R†¨^{³Y~°c„«c…¯^†²]…ªc’¤e˜œkœ˜e‘k’Œu™ž~‰ªƒ†ª‡«ˆŽ¥…¤¨Ž¥ªšž ”¡¤˜§¤©¦Œ©—™°Ÿ¨ž¬‰¨¤”¥¤’œ¥†¢¬ƒ¤¤} ¥x¢›€©˜| ‡£™Š¡‘… ‘ƒ¥”{ŸŽ‡ª˜ƒµ—y»Ÿuº¤m¹­j¾·fƵrógдjÔ¾hпvÒÀ~áÃuåÍrÞÈdâºoê¼hä½jíÁ\ê½]ê¾cÝ»mÜ·kÜ´dÛ´nÝ·jÛ´fß´kÛ¾qÜÅoèËmàÂyäÇsÝÅqÚ¿kÔÍsÒÊpϽpØÁtàÐx×Íj×ÊpÚ×dÕÙ\ÖÏ]ÕÌTÌÌNÚÄIÖÂPÜÇSÑËQÖÂOÖÀDÓ¼GÓÈJÉËGÏ¿OŵZʸ[ѵcØÁ[âÁcÛ¹[á·\Ú±aâ¤Zâ^ښdٛdДdӖYÒ cқ_͚aÌ¥bͯdÒ©TÓ¬XÞ­Yâ§[Ö¤WͤUÕ©cÈ«ZÆ£^əVɛS¾œM¾£S²¤U¶ªX®¬V³¥Lº˜C°›>±–8·š6³™:ªŽ:¥“0¡‰1¦Š-™†9’6£8¦†7ˆ8 ’.¡5 –<¡’B¥H¦‰HŸ‡Jž†Až†C¨†9¬z4°}3°9­‰.®Œ+¬‘)¥–%¬—$±˜'¦˜+®¤.¨¡%«§$§¢$¨•"¢”,˜‹$‘+†–0†Ÿ,{¥"{š'¥.z§(ƒ® „¥(‚ž%}œ!~˜ƒ—)$”™!’&Ž’)“”8›–7—–:ž“8•†@š‰M“ŽF—ƒO£€ZŸvfšms£un™|f›rh sj§}b±yo©{m®}j³xm®uv¯xz±x~¬qy wužxu’vy”ix•ho˜`sžet•b|”[ƒ˜_„ ]}d|•\u˜`xžVoœWtž[s¨Vv¥N}©GŠ¦?”­GŽ¯I“¬K‘¸MŽ³=´F—µL—ÁR“ÆJŒÉKÃLˆÄB‘ÎC“T†¶`Š¤[‰®Y…£Z}£^}±`~¬g€¬c‡¢d¤^›a–ž]——q–d“Œp›‹u¢z¡‰ˆ¡…‰ª‡¥˜£—› “¢¥—™¥•¤‰ ¨ ”Ž ™‘™ž—œ™‰¥›Ž©£„£Ÿ¢¥†§¢‡©¡†­Ÿ„¨”‹¡…œ™ˆ¦ƒ¤‰¦†„Žˆ­–‹¦œ…³œv²œwÁ›g¹©m»¥fÀ¯v¿³mÌ®pδyÕ¾rÕÆoÕÈmÕÌnàÆlݸoß»jßÁ\ôÅeå»^â¶lçÀmÒ·gÖ´`Ý®cÖ³hâºdÓ¼qÛÀuÞ¾ráÊrãÑfãÊrã»qؼjÍÇpÇÐtÌÁqáÁ}ÚÃláÔiÙÒqáÐ_ÐÍkÊÊ]ËÒSÎÉNÒÉVݾHÔÊMÐÓQÍÌIÔ¾=×ÆOǺRÏÁG˲SκXм_ι]ܳaرVÛ°Vá¬_à¸\Û²]Û¥]Ü©^ݬ_ښYݐfӞW͚SÕ Z̨`À VÒªHеQ߬SÖ¯Wͦ[מSʬXê]¹šg¼©aƤLÁ£M²¨\³ŸMº¢V¸X°ŸC·¦@²˜L´–>³›>¯“7¶“9 ‹5§‡/¨…/¤~: B£–=Ÿ‰1 Œ<¦†1 „1–ƒ?œ†HŒN«~N …KŸ†<›Š?¥ŠB¨}3¥ˆ-|,ª‚+¤‰6©2§.§œ, ˜0¢+¨”#²¡!©§¢Ÿ* ¤"« *”˜'Š›+„£"y¢*~ª0|¢"„Ÿ.~¦'x£+„Ÿ&uœ&~“&ŽŽ0•™-ž  Ÿ+‹‘8›œ>£5œ—=ž’<Ÿ˜=¡”LW¡‘M•ŠS›{j xm£sc•um kežzf§|k­i©sq¥zt²vs°wt¯v}°|q®tsyp®~o¢km“fw’fu¤e}’`yg‰›b…`}š^Ÿb…ž`–[v ]| Tv§U€´L}¨T¯JŠ±LŠµRƒ­L‰°@ˆ¶C‰·I•¼E¼D‹ÁO‡ÉX—ÄF„ÈF“ÑL•ÑESt°[{¨Yƒ£Vˆ¨V„£]¯`¤`„§^•°Y”¨Uˆ¢\‹aˆ’o“rŽŒešu›t›Œ„¤‘‡”¨Ž”§˜’«œ–¡™šž“™¤¡Š¦¥‰›¡’Ÿ—‘˜–•š”‘’‡˜”}£–v ¦}¢~«’}°‡¨†ª–©”„¨Ž‚¡‹{©„ˆ¤‹†¥‘Žª†­™‚°šr³ iĝjǝo»£j¬iͬtίvÚ¾xÓÌjÖÈhÔÅdØÂpÖ½dàµeæ¼]é½dë¼jݹhÖ½h׳`η^Ò¹gà¿jß¼hÞÃkÍÅmÈÏsÒÊpÓÅnäÌfßÀhá¼gÎÅ`ÉÐfËÍtÞÅvåÔxàÙqÖÖqÚÅh×ÐgÄÓbÇÊ^ÑÈLÛÆRÝÃKÕÄUÇÊMÇÄPÏÂCËÂ@˳MÊ»O̶MÔ³WÕ¯RÛ»RÓµ_Ù·_Ø°Z×±Yå²^ë°eß±`Ù¨cÙ°]Ó§ZٙhݝbÕ£TŨVÁ¡U¾«K±JDzJÒ¬L΢LɛW͝UȦQ¾œU·¢dÁ§YŨOº­V¶¡S¹™L¯¡O³£R¶œK°˜JªžM§—F®ŸG±žF±“:¢.£1ž†<£‚:Ž8¡–B©–7¡„/¤}1šƒ2™ƒB™‰I¦…I¦Qž„M¤zF ƒ:£…:—‚1›‡8Ÿ7˜ƒ.œƒ1˜“2žœ)žš*œ¡&ª—(«¡&¬¬¡ ¨Ÿ+žŸ#£§( °)“ª(Š®0y¬+‚§*‚©&¬&ƒž2›'|›&{›t•„˜ Š•(Žš(–™+˜ž.Šœ=‰–C™8—–E“—A•“D–—L˜’N“Q‰`Ÿ‰^˜z_•xc™mf›op¥zk¦ƒi£ti«se nk¦oy¨y{­xv¨}}ŸxzŸ‚|®msq›gw™sžo~škƒ—j„›c{ g{¦Z‚ Zˆžc}œ\y¤_{®b}«]…µS¸X«[Œ»]»Pƒ¶H’°D¶Q“²P‘´M•ÂB‹¾RÆU¾NÆMÄL‰ÍN•W}©X€ªN…­Z…­[‰¦\ƒ­[ƒ«b‡§^‘©]ŸW‘ž_‡œe¡q“ d“oŠ˜pŠ’s—‡{œ‘„‘‘¢Ž’¤œ©š’°š¡’¡Ÿ£š”ª’œŽ””Ž”–Ž•š‘Ž”›xš”|œ¦vœ£z¯š{«„©†²§—~­‘…¨Žyª•„§‡¥‘‰©ˆ‡°|§šiÀœn½¡ihº©h¼¦sÏ°zйwÔ·mߺhÖÂnÕºnè¼fݼdå´gå¹Yâ´eÖµ_Ú·jÙ¯]Ó«bÛ±bϵiÝÀbãÇ`ØÃaØÁgØÅ`ÑÊfÞ»`ÜÊYÛÌiϼgØÐ^ÈÌpËÄkÎÄvÛ×}ÞÜjÙÒhÍÏgÎÇ\¿ÍWÁ¾TÒºSÓÆTÔÂIÓÀDÏÄNŽCĹCϺLÉ«NÊ»K̯HÒ·XÉ«Wض[Õ²TέRѹYáµaÚ¬^׸aá´fÓ«e×°`Ú¤h՘cؘS×¢TœTÁ£O·«SÈ©D½¨F½ŸA½¢QɒGəPȞX¸£]¾›f¶¡SÆ©QǚL·™Q³™U¾›L¶—F¨žB¬§D±žJ¯ŸAº”J­ŠJ«‰C®‘3˜‹6”„3;”“?¡š9—‡7š‰6›ƒ<›Š4£‚;•~G¤€K|R˜vP †J“…9¤ˆ:~0“z.šz,‘}6ƒ0š‹4“š-š—$“+Ÿœ(«–) Ÿš.ž™#œ /›¢$‘¥4£&¡'y ){¢5Œ¨3Ž-ˆ™7ˆ§,{›"… €¢‚ ‰•3”-‘—/‰ŽB‹’C”<™ŽD—ŒA˜˜O››R›˜\¥žX•`©e£’_¥d•}^¤tbœxr¨zjž|e«rbª|iµqj¬x®€~¥w{«|œ„}­{°zr«q{›g…¥sz£pw™n~”v€™i…£j~¨\|¢g€^}ž`x¥e…¨fƒ³W„¯aƒ·T‚¸ZŽ°Wˆ³M‚·Hƒ´E“½G…¹IºK‰ËHƒÀIƒÄTŒ¿R”¾MÏS”ÏR”A†¦Jƒ¯Qˆ°Uˆ°T‹¡Q’£K¤UŒ¡RŒ¤\†–e}–`‚ _‡—kŠžr…˜gˆ”eŠ‡oŠ–•ˆ•‡˜ŽŸ™ˆž ­›˜¥™•Ž™—¤’¦‡Š™‹Ž“•–”•‘}š˜s ¡zœŸ|§’w«u²‘}´—t©”y©y«“³’‹ª—‡¨–‚ª‘«Œx¬•o½•tßoÇ£kÀŸsÉ£tÅ­uɬyÛ¬nå²dß»dà·aèµ^Þ¸Uà¹]׳^Þ·_ß¼dÖº]ݺ]Ô³b׺gÓ¶fÓ·]ÛÆcÔÀcÑÄ]ÔÃVÕ»_Ù½aÙ½]лZÎÊ_ÖÔlÓÎlÑÌsÍÌuÚ×rÙ×tÏÓbÊÇZϽZÃÃTǸQƽSÍÉPÐÇDÍÈCÌÇBýEľOɯZƱVɹK˹JÒ¯JʲSǪTÒ§QΦUØ´\ß²cݵbÞ²`Õ­gصh×´i̳aϦ[Ɨ]ɗX˒Y¿–M¾¥H½¨M´¬Qµ G¶£M”FĚMǔX¼ Y¸£[À¦_ŧYȦMšQÁ›M¼™Q°œR¦¦H žA¨¡?­—<µ“H­ƒM«„@¤‚H—„@•ƒ<‘Ž<‘”7ŽAIŸ@™<Ÿ‡7¨5¢}>¦ƒC¤|M¡wG’‚<y0”}5˜z2‹}3‘‰<“ƒ:—€8–†)žŠ$––*’’'™œ›˜ Ÿ”$”–.–£,’­0—ª/¤7„¬.Š 1¥3€ 0‹¡1„*ˆŸ+„ª(€¥€¦€¡"š'ƒ™6ƒ @‡™?…Ž=†Kœ‡O–ˆM˜–Jž˜P™¡[˜]žš]ª›g±™c¦“^ª˜b ‹] ƒg e£{m ~l¯rq°vo©{y¯y¤|l¦|p¥„x¡|¤€|«twžy¢r¦r{¨jŸr€ pv¦b|ªd³^y±c{¶^€«]~§iy±g·d‰³`ƒ´U´VŒÀX»K‹¾CŒÁI¹Iƒ·Qƒ·S~ÈK…ÅP‰ÈRŒ¾X“Ä]ŽÈZœÑU L˜L|Z}œXŒ UƒŸS˜£KŒ¤S‚ž]ƒ›X„›g‹–h…¢`‰ša‡”lŽaŠŽi’x†‹Š’šž†—•—›’Ž§ †ªœ”Ÿ’’ŽŸƒ™Š…—Œ‰›‰ƒ”Œ„›Ž‚–‹}’z¤y¢s¯™s©–s´ˆ±“¨Ž{¨ˆš’w­Š‚²ˆz§’­—t´›zª›g´•w¼qŬx¸£n¾¨qȸz̲uá­lß´dÓµ_Ú·hà©fã¿eعYÙ¿gÛ·]×±]Ô·S̬fÔ±_Æ»eÔ°fÕ¶]ÉÆ]ζQÅÁ]ϺPÏÆ\Ò·Q׶]ʽeÉÅdÇÃ]ÇÏjÏÔuÐÍrÒÑqÍÓ{ÕËgÐÖaÇÒ^¾Â[ÎÃQżSÐÊLËÎDÆÎGÕÏQÍÀI¼ÄPξWŹ^Ê¿WкTͱYÊ£ZŧLÐ¥Jϲ\Ò¯aЪcض\Я[Ù¯eØ­iÔ®bÒ¬Yͳ_ɜRŞZ̙]ßH¾¨N¼§IÄ¢Q±ŸP¶¤EÒDƏE¼‘T¿œU¬¥XÁRË P¡RãV¶T²§W²¢GŸŸF¨¤Cµ–C´›?¸˜O«‡C¯F¢’>•ŒKŸŒ9˜‰5šŽEŽGŒ‡?—‹B~<ŽG†:vA§AžyIvH”yBˆƒ:ˆ€B–}7‰‚;˜Œ6š‘DŽ‘.“*žˆ&œ/””.¤Ÿ!˜›¢™š'‘¤'Ÿ$’¡-Ž¦.„Ÿ-£&Š¤(z™8|›:†š4‰›4|¥&Œ¯%y§‚˜!ˆ™1ƒ 9‰8ƒ’B…L“N‹”@Ÿ’Dž”JœLœšU™_¥–f§›h¡“^²f¢Œ_œf ŽXž^¥{f¨wj¯v´‚x²zs«‡t¥€t³…s …sœt‚±|€¯h£kyŸ~‹¢~‚®v‰²p}¨n{¬qv°dz«pˆµk|¬i·`‚·aÂc|³^|½f‡¿g†Ãe†¶T²R‰ÅT”»E‰¿M…¶_ƒ¿RÃRˆÄU•ÎU•Î[’Í`—ÇW˜ÔSªOwŒZ|“Z‚”M‚œQƒœLO…¥[‰¢UŽŸ^‰b‹_‚œU}™Y‰[”d‹m‡—uŠ–~—’z›š‡š¥‹Ÿ—‰¥ž“¦˜‘™‰›¥–…¡œˆ›‘“Š‹œ’{ ’v–’‚›{¦šp¡Žk©’s°‹…¶ˆµ“‚§”z˜†~š‡xœŠ€¨‡~«…t«u­s´•k²¤t¸ªw´¯f¿¯eÉ©p̳wЧzÙ¨pÜ¥nЮhØ©fß®bà½fÛ¿a×ÆdÕ½^ÕµZÜ´ZÉ«`Ƴa͸[ðT¿­VǵRεXȱSÈÀVÃÁP÷XξWÔÅ^ÍÆ]ÐÁ]ÌÅlÐÌnÎÎqÍÊsËÖsÒÛ^ÕÕYÒËaÈÊaÅÅZǾVÁÈJÃÈLËÁSÐÆRÑÅOļLÁÄJÌÃTǽPƾOĪQÄ¥W»¬S¾¬Tî\̦bÖ¬[κd˵k̺bʸgÆ´hˬ]À´VÅ¥X¿š[Á¨RȬPÁ®UÁŸN·–J¹G·AŞ@¼œI¸‘J½¢H±¦IŸPœVŔPÀ›Y¶ŸW©§S±ŸS¨˜Dª”@°A¯D¬LªL£@¥L˜ŽJœF†7˜…AŒ|Gˆ‚;Ž{<”‡>ˆK•}Q–€J¤‡L¤Q“sJqAŠ|H‹~@Œ‚Eƒ=–A•B””6˜‹.Œ*ˆ-šˆ*“)©Ÿ(¨›š › (ž›$§#˜ #ž)†¦.‡ž.~š8uœ9|7ƒ˜:…›.‰©+ˆœ'uš&’&Šš/‚”7‹I‰G‹›@‘–Nš—K”—R’ŠVœ™Uš–V‘Yž‹\¦Œ\°˜h¨“g©“]¯W¥‘]²e¯zf¥nª€x­‹vª†s°…q·‡{©|‡£v‚ªsz²k‚¦sŠ¡~…¡­|ºx„¸g}»d†»o­x°u…¾j†¾n|¾o†Äa~Àa„Çi…Ã`ŠÉbŠ½Y¹MŽ·G–ÀR½[¯_†¾^‚»^ŒÉf™Éb—ÄgŽË]–ÊQ–ÑQ¥T~˜P”K{M‹—V‘˜K“”W„ŸZ•V}›U‡‰X‚Š^‘X’`‡_ƒ‘l……j“’u•—|œžr›’‚œ„¤š‚¥“ƒŸ•‡£—˜š””§—Ž¤‹€ …™…‰£”{¢“s‡v›’xœ“sª‘q¦„y­‹€®š…®‘Œ¦Ž…£‘{“’u›„wŸ“z¥Œt®ƒw¬‡n©Šh¸šv´ j·±m·±kË«kϦlÒ¤hÓ¨dÖ®kέb׬_Ù§eÖ±]à´Y×®TÛ¹_Ò°[ϯVΧdȪ]Ê®]È«TɺMýMűXÆ·M¾¼Y̳\¿»ZÁºRý^Æ·]˽hкfÏÂkÐÃnÉÍeÓÎrÇÕgÔÚ[ÑÍ\ÕÈXÇÃUÃÊ]È¿PÇÍQÊÄWȽNϽKøIÒ·]ѲS˲\ȺRȨOÁ¯YÀ§U¹£YÇ«SäaͦdÓ®jô\¼°fŹZ¾¼ZĺaÁ­T¸¤\Á¬fíTÀ¬UǨTƦW½–HµœK½£Iº¢H¼ D­ H¸ŸC¼¥S½™PĞN¸¢T¸ N®›V¥›V¦¤EªŽ=¨ŒA§’Fž‰OŸ”T§”Q—ŽP¢‹K¡ŒIŸF“‰;•„B“ƒ9“vC€<†G’„Hš„IœvP„K—ˆS’wI“qB—qD‡‚EŠ€<€>—†;™B™‡4 ‰5“‹0ž‚.©†1¬‹& ‹¤‘%œ‘%¡™#’˜+—.‘ %”%‰¥'Œ™*‚&x 4xœ9x”:„ž<„¤&zœ0€—)…¥4¤9‚›:ƒšI‰’G;‹šH ’Q›’R——_”™b“—] až“\±œeµ˜k±—i³˜]´`¬“f±•h¯g´nªŠx«‡{®‡{©w±|­€‡¤z†ª®p‚Ÿr†£~‡¡„‘°‹®‚’µx‹±t}Â}}¹}·tŒ¹s‹Àr|¹nˆÁf„Àd}ÃnvÇ`„ÏcŒ½a…¹M‰Æ]ˆÀS½_Ž¸_‰·dŠ»\†·`Åk”¿h•ÍZŽÈY¢ÏW›LŠ•S†•P€ŽS‡‘U‚–K‰V‘’O…•S“J{‡X|ŽT‚‡XŠ‚e€rƒr‰„q‚v˜|œy”–w—‘†œ‹Ÿ“Ž¡”Š˜™Œœš‹“›š’Œ…‰€ŸŠ€™Œw €yšƒs™~x…w ‡™…uª”€ª“†¯—‹­‹…ž‰„~¡–£“w¢’x ˆv«†t¤s¨u²£m³ t¾¬kË´cΪiÒ¦fË­cÔ¨hÒ¤_Ú£XÓ¤bܱ\à²Zصaá§VÒ¯YΨ`É¥aÓ®Yȱ_Å°Wù[ɵOÆ°Zº²TÁ±OǵXξSÄ¿^È·[ϳ_Å¿l˺nÙÂoÕ¿dÏÉhÎÍlÐØeÆÔhÉÐcÒÈ[ÔÌWÉÊXÂÅUÀËL¿ÆQ˾YƼUξW×·WÕ±\̨`É°\ǤPÀ©QÄ­P½©V»¤RÇ©WΩYȯfÁ¬i½±_ƹT¿µY´·W¹¨b´±g¾¬añ`¿ªYÄ¢SşN¼ TÀ”Q¼šR·šEµ—H°¢@¶§H¸›L¸šX¸˜R¼šO¶¥S¶ M¥Oš‘BŸ•F›•HŸ‹TœV –N¢’W˜—P ’VœLš‚E“‚A”‰=•~9˜…;‹~K–~K’yM–{C{I—…I~S–„PyJqOyMœ„L—‹GŒ;’Š?œ….–-›–2ž- ‡+ª‹/ª‘,£•$¢’&œ‹&‘‡(Ž’+„*š%}—£)|¦/|§*s«1v¡9~©1€«/…¬+¤6vCz§Eƒ›N‡˜EŒKˆ’G–”I–“PšO‘˜[™h™ŠdŸ‹l§še¦˜e®˜f³•a±œZ³šd»—cÀž`µ•l¸…s±ƒy«ˆ†²ˆ³Œ´ˆ‰º°‰€¬€ˆ¦vƒ¦v}¡z€«u‘®±|”±ƒ²‡‘¾y‹½uÊtÌs„Ây…Àg»e€º\ƒÉaxÇb‰ÍZŠÑ[ŠÆZ‰¾V‹¶X‹·`‰¸jŠÁ^…¼bÂf†ºmŽºn—Åc–Ô_Ñ_—T…›O—R‰‹G†šJ‹ŒG‰S‘RI{’NŒVO}ŒYˆ‹`ˆ—gˆ„~‘ƒp‰Œq‘‹~{—u›Ÿ†˜œ‹ž“•˜†œš—š‘•‘‘|‰Š•‹„ž‡€’‡y‘„r™Œv•}j™„o—‡o—•{˜‰u«–ƒœ†¨“©‹y—••†z¦†w’w‘x y£k®—j«œm®Ÿp³¬sŤdË°eÓ³bÏ´Vʪ_ΣSÕ«aÙ©bã¨Tå¨Ræ¨`à®Yϳ\ɪ[űZ͵Q¸X¼°Y̺KýUűUƸS¾®MÂÀV·¶TĺZÉÀ`ͲZÆ»hмcβjɳfÆÁiÓÈtÊÒaÈÕhÈÁbžeÆÄSÇÐZÉÐKÂÍIÁÄN½ÃVÄÊ[ȹZ˸QÔÀd̹Uʵ[Á¯UÀ¬\·¥\ĪW©XÇ¢UÁ²`ϧX»´VÁ²\Ä¥S¼¶Y¿°_¶¯Uº©`çZ³^Á®T»œPßK¹“A²ŽD¶œ?½F·ž=«¦;²£C»žJ­˜S¸ F»˜O¶˜FªšG¤£O£”G›–>§ŠD–’[ ‘X—M–’U¤’G •I›ŒG‘ŠF“|A~5•‚9”‡FŠˆBvB•@Œ‚M—zO‹rHš~S”tQIˆROŠ‚J”€H˜HŽ„I”Š@••=›’.˜™4žŽ2¢6“‰&–Š)”– š'•’(•—/Š+ƒ %Š¦0~¬0ƒ©0w£&€¥/r¤:|­.zª5tª-€¥/‚œ=z—C•=’I„ŸF„™I¤Gœ›Pž‘X”›U˜ŸX¡hž˜i©—\¤™]±›h° `¨¡b¼‘h½fµ‘d¬’l·‰y¬yt·…{©€­„°•†·‹Š´Œ~´}„¤~†¨€~¥~´{•±z’ª|Šº|°sŠ»u“Éq”Àj•ÀpÅ}–ÆsÀj€Çn‚ÃjËczÊd‹Ï\€Ð\‰È[ŒÀ`ƒ°fŒÁfŒÂf¼o„¹`‰¼mºb¿aŽÌ_–ÆZŽR„“H{”?‚›Gy”N‘R‡G†ŽDs”Av‘NuN|ŽSv—c˜jŒ’x“{„uŒ‹{˜†mˆn“–m“}•™Ž‘¡›„’…ŒŒŽ••}˜–‚š|—”s“‹u›h›ƒl¨yj£|qŒwž—o¥”x˜ƒ–‘}š”„¢yz¢‹n™…n”Œo—n›y “s¦”l¤¤eª˜b²j½ iȦcɲ^È®UÈ´OάLß³JߪVÝ®Tä¦ZÞ¨NÜ°SÊ®Pȱ[˵OƬHĹQĽXÊ¿MÁ¼M»µKÅ°WżX´¼T¼ÅQ»½U¶¶WÀ®]ʱWÅ´`Á¯`»µ_ȼkÊÁj¾¿lÂÅ_ËÆgŹ_ý[ÀÏUÉÌXÀÏNÂÈT»Í]¶¿^¸ÀYÁÁRǾ[¾_¾·_Á»gÅ·_¿¹Z¼©VºŸMÆ¡T˟OĬRƪ_¶¤\¶­[Áª\Æ¡XÀ¨SDz\¿®[©S¹¨U¼¤P¾›A¿‘?µ•G±™G³’9´™:²œ8±£<²¡O«™PµžJ¼žB¼˜G¾›B® E§N ’G£›MšQ Jš’TŸ”W¨˜O›“I’–L”KŸ„=¡:›†=”‡Cš‚C£xHœ{>—sK“ySQ›zI•†KŠƒUŒ}W‰yI‹~Mˆ{F‘€E›D˜ŒE@’œ=š™A˜‘@Œ’6”0—Ž)”“(‰œ1‹’<Š™5‡5†¢(Œ­%†¦0ˆ«(x /yž-u¦9m«8n¢0lª:xª6ƒ¨7€•A†”9†–<†¦D…¨M’¨S™ Oš¡V”›Y£”_§b£—dŸ‘Y¨’^±•fª’g­”q°Ÿn·š[¬–a°t±€g°wk®|n¬„w¨‹€°“€²‹¯‡µ†‰°|~¬|…²~‘®}œ¯s–²|Š²v†¶q¿t¹m”ºiÅu–¿v•ÇuŠÍpŠÊp‚ËcƒÂh{Çh~ÃdˆÊiƒÀa…¸j‚»sŒºk‰Éo‡Çj…Ìh‰Ê]†Ê]€¾\ˆÇVÄX–N~”MzIy”MsˆM|ŠIy‹L‘Fo†JJ|W{ˆKu™W€Œe‰r‡q‹‚|†wŠj›ˆrœ‘q•š{”†—•‡ŒŸ’„Ž‹‰—Ž…”œw’’{˜›v‹‹r™’mši•u§n¡e™ˆk¦Žp¤˜|›››€””ƒœ‰y¤•z”Šk˜s’šs¥p§—w©—k¦ž_²fµ¥cÁŸV̧UÁ¥R¼¬QÒ¦QÙªMÒ¡Nå¤Tß¡Nç­Lè¦KÙ¸GÍ°GÒªXƳGË»QαFÀ¼MÇÁVÇ»PÀ¶\ı_·¯[³¹Yµ°T°¶O¶µa²¨[´¬g¸ºb´²i±Ã`¿Ãiк[ÀËVÈÁa˺dǹaÁÃV»ÈZÂÐS¿ÔM·Ð[ÀÆ\¼ÃY¶ÊV»¹`úZÀºi¹¼eÀ¶Y¸±_»±e¶Ÿe¾£cĞRŬW»®P·®L«¥X±žU¼£R³ŸR¶šP¿›T»£Z¶¬O²£UÀ¥P¸™G¹™B·’B¹Ž8®5´™<¶ŸH¥™;¥—O¯¢Fµ˜K´•@µ¡A¯šK¬ŸJª’NžŒQš‘IªŸV ’J¨”Q«ŽQ§šU™”H”I‘‰@Œ8œ|>š‰C—‚?™„;™ƒA™xE„IŸ|HšrN¦xP‘€L•ƒG•N‡{B‰G†y@Œ‡A›ˆB’IŠ‰A…’J”L‰‘Gˆ•@†‰>’,‹/’œA—0€™0‚ž3„­)‡¤0…¢6}Ÿ&~£0}¬.}³,w¢,o %v¡)z¡0}œ-v;{<„¥>„ŸBŠ§H‹°J‘£SžªX’ TŸšW¤ Zž¦dž—`¥›e¬‘hªjŸ’i«—c³’h§–e©h²†t²tt²uk§‚u±}®˜ƒ®Š{´Š‡´‚ƒ±~‹©~Œ©t‡µŽ­y—«z…´x½m„¹gˆÄuˆ¶o”Âx“Æl”ÁtŒÆu’Íj~Ðl„Îk‹ÂcˆÇ`„Ée…¾i}Âg€»n†ºm¾eŽÔhŠÉkŽÏY“Â[‰Ç\„Ë]”ÀSš?}ŠFt@|‡Hx†NyƒEu~@u|CvE‚~E„L‚“T~•d„f„r™Šv’ƒuŽ†n•‚p™r–{™“r’“u†ƒˆ‘…„‘‡„“|Ž”€žƒ‹™w’™i‘–h’k“—m’‹hœˆg¢†jšˆf›˜m¤›x™¢w™—z ”v›‹wžŠyž”wœŸm˜št•¤ržm¢£b«Ÿe³—^´žT¾ªUÀ¨W¤KÀ©O¢OÓ£LۜGß Dá£Bà®Fé­Eà¶?Þ°<ϱHűIżIÑ¿LÌ»L͵Y¿¾YÆÄ`ǾYð\¼³`½©W®­T³§Tª­]¶­e±·e¸¿g³À_À¿dŽZ»¹]ÂÅSÇÉZ½aÆÃ]ÇÃYÂÁPÀÐV¼É^¸Ä_ºÈbªÃX­Äg¶¶g¼Àc»g½³k³·a³¨`¹£e¸Ÿ[µ£aµ¬]¶¦L´©N±¤G¨¤N¯˜W­T»•VÁ¥V¾¥W· T»PÀ›D¿ŸH·—B»›;¸™:·Š8¸†=¨F£ŸC§œB«›C¯“A«š@±œH§’K£–W©•V¢–R®šP«˜K² R§–I§ŸQ¡˜NšG–’D”’8—‰8œ†:•€9Žw>Š|=‘9”~B•€J|B˜L {JžsI‘wAŽv@‘€I‡†M‰A“}N•…M‹ŠC…ŠEŽ“AŠ’E‹Ž>ƒ“FŒ˜@’<”ŽF‘AŠ“7„–7€¢0ƒ¨*{¢'y§.t§2|¨)|¤'}¯0oª&qœ$f›$kž-u¥)y«3…°=Ž¤CŽ¯P—³PŒ¬U®_Ž²_œ©Q¢¯X¢©UžŸd¥£f®•q§pŸ–ešŒh˜›gŸ˜g¡‘iª‹i¬„m²l·yl±~l¬Œz²Ž|­‹ˆ®Ž…°²ˆ·ƒª{´v…®tŠ·qŽ¾sƒ¶p½gµm‹ºt‘Âh‹»m‘Èd•ÆjŒ¿kƒÈv‚Ìk~ÌmŠÌqˆÂd‡ÂiÀl‡Ät‚Ä|†ÐnŒÓd†Õg‘Ï^ŽÍ_ŒÐdÈi”½^ByKsŒHj†BsŒFp‰;iƒLjvMqvK~~UxVu•[u›V‰k‡ˆi„ƒx“fˆ…o”„k”y”~qˆvŽ€ˆ’„„ˆ‚ŠŽ‰‘“‹Ž{‹”xŽšm’ŠvŽ_˜o—•e†k”‚^—ˆm“–j”“w©{£¡’˜z’“w‡}–‘s“•u˜“u™Ÿn™”f©`³¥^²¢X¶¤a¬™K· Tº˜ZæVɞLíMëGɱQÒ¯OÞ¬BØ­JÖ·HײOÕ»LÇ·VıK±NDZB¿OÎÃJÈÀUÆÁ^½­Uí`µ²b±¶a«·]®±V§¸R§«^®¶`¯³_»¸\¼ÂQº¾_þOÀÁWÁÂVĹ[¾ÀZË¿YÉÆ]ÂÈ\¿¼\µ½c´Ád¨¾`¦¿^·Â^µ­W¸¬]®«Y¸±f°£a»ŸV¹ŸUªœ\±§O­¡G°§P¬ A´žGµ•S¼–]µ›V´¦[Ã¥ZÀ¥U¸—S¹›M· E±ŸD²”D½ˆ;¸‰FµŒ8³ŠD®—:¢›;±–K©•G²šJ­›B¤›J™FžF¤•Rª’F®ŽK§™I›N¢™FŸ?–A”‘H£–@¡ƒA“Š;™9 }>–€7‘€:‘…8˜„D“z9•yG¤sDyIwL‡€L’vH…{?‚y?’~Lš}U„~Q…†M~}H‘C†‰C“HŒŠIƒ‹;…ˆ:Š=ƒ™:‚›6€›1‡,}«9x¥>wª0§$u¬4p¦8o¢5k¬$i¨.a©6sž0u¬6©B‚žAŠ¥R•³\–¶`ˆ¹c­_–§Yž£PŸ«R¥¡_ª¡b¨“c››o›f œf ‘c d¯_¬c¹„`»~d´‚h±sµ‡n½Šs«ˆs¶’ƒ­|·z…¶€Šªz{¨w€²q“­n}´lx¬c‡±b‡¹sÂn„¿nŠ¹o™Ëk™ÂlˆÍk’Å|€ÂkÐw|Ìj‡Ám}¸o‹¶o‹Æu”½u–Îs…ÊkŽÌkŒËg‹Êa”ÅbÌe„À[“QtGq‹EbBa†D[{;c|GntMuyPu‰Tv[y‘Qw—bœc‡”j‡s„~gŽ†eŠj…yy„}rƒt‚zŠƒ~……‹ƒ‘‡„‡…ŠŠt‘Št‹Šhˆˆeˆ‘i™b•Š_›~_˜Žk—nž“p¢œx™‚“zŒ•r“…yœ”x™˜gž–t¢›t§™t®¡d¯Ÿ]µŸ\¯¢M­•LºžKÁ–XŤYÇ RĤJîOÆ©F˲MÒ¸I̹?Ç·CνPʶSͲSÍ»RÄ´MÀ²QÄ»HʶJȽRÊ®OÀ¬Z»£Y¶ª^¯©_¯¯d¦«a¤´W£»`­¸e¸ÃX¸¾X»¼V½¯S¿³T·¸VÀ¿a¼¹dÀÅm¿ÉeÁ»Y¾¾T³Ã]¯¶^±¹R«½W©ÅXª¼Q©¼P¯«_®ªf³¦^ª©\¯žV¶œO­™Q« G£¤G§¤E±£F¶¨J®Z¬©Qµ£O²¥[¶žX¹›L»¢DèA»§@­›L«™L´†L³D´„>µŒ;­•?®D±™DªŸE¬™AªšC¤œ@ –=©‘> ›G¢ŒL¨ŒPª•HM •F““?•ŽF¡–@¥Ž:œ‰B¨ˆ7£‰8šƒ5›„5—…6–|6˜{1–‰8¢x8£sI›{O•~K‡tJƒoDlP…uL‡rM”R‡V~wR|{G„ƒ?ˆƒB„M‡‹E‡†?†…9€Œ8~‡A~‘=u›>|™8k¬8g®=j®-w¤.pž+r©/h°0o²3qª7g«žšC§œEŸœI¢—JŸ™O¦“Pœ‘P‘’T”‰L˜‰G Dš7„6¦6Ÿˆ6¡;œz6žˆ?§ˆ>£„=œˆ4•ƒ6¥‚DzD—~C˜{?•{>|h;‹pHŒsO„R‡‚Hˆ€MŠsT‡pJ€‚<~~F‹N{M‰~:ˆ€HŒ‰Aˆ’5|Œ8tš6m˜Ctž8`§Ij¤Cv¨6k¦d¦0b©>w¬=m­1q©>}ªDƒ£TŠ«_ˆ¨WŽ·T›»P›°\—£Z©_—œa¡˜f¨ d™˜oš k¥›gž‘h±–g¬•a©‹m·‘m¬q´kª–fµ‰d·…c¯iµ|l­€y·…‹´ˆ§x°‚Š°{¡pƒ¢{~±p‡§b…­q‰¾u¹e—Çq ¼k“ÌršÈp“ÇuŒÁvˆÁtÁt‡Ç|À„‘ÁyÇyˆÅv”ÈoŠÈt”Èl‡Án‡ÅmŒ½qŽ¿eÀ^…FWA^”Ac”;]„6gˆAe‚GhHf‚Lm}Jo}Hj~Ok‡To€Pu†`|c„‰lŒzd‚{n…|uyr†~†v{…€x‡~„~w|‰~ƒ‰‚v€…wŽ‚r‘Šk”Šk‡ŠdŒŠ^‘ˆ_‡‹n—m‡ŽpŒ”h‡Ž`˜f’™q“”o‹pžgž™l¦”j¨”W°“S±ŽO­P®Z´žSƙUșLÌ¡> AÇ¡GŨJƨIÅ©>Ì´<ʼGκE͹NÁµR¿·UŹOþIÊÁKƹM¼B¿³EÇ°Q¾¬Lº«Z¹°X¯µU«³`©¼a«¸U¨¹[¨­\£¶Z©´S¶¹R·±[¯¬Y¬¯d¦¯]¯¿b³Ã_´¹e´¹]©Á[¦²[›±Zš­R®R§´Z¥¨Yœ­_¤¯_¨°dž¥_›Q¡šS§›O¦RžžW›šK¤šK©T¨•R©’O®‘J¥žQ¦›DªžG±’L¦–O¯›K¨J£F¨P§„D®‹C«‹F¯ŒH®‡I­Ž>§…D™…:œŽA™=¡ D¡žD››FŸ>œ¢Eœ™J™‘K–“I•–H˜AŸŒ4 ‰3¬Ž.¬†7§}?¦6£…9§}A¢‡=«‡>Ÿ‹>¢‹:—…A™~AŽy@“z6Žs2…r;Œz;ˆpHwD€zMŠ|Q„oT}nTwrJ†sMˆwHŽy=†ƒB|JŠ…F•F~–=m“FjŸAeœEj£CiªJfŸDgš5c¥7d8_¦9m©4m¯9m´4y¬;v¥Gw©Q|¯R¨[‚´V”´Y—®Uš±[Ž²N¢Q¤]Ÿža§Ÿf¡¡b¥˜`ž™fžj«Œ]´‰\­k«—l©l§d´™h·•p«Žh¸‰e´€i°ˆu¬|µ~v¯…}°…‡ª|„¥~x¤y{¢v~¯l†±r‘¶o•ÃbÅf”Êi™Àq•Ât‘ÌtŽÏmˆÂtÊƒ†ÁŒÄ~ŽÀ†‰¾z‡ÍxŽÇÉzƒÌyŒ¿kˆÅp~Êg„Ïf‚Â_„¨’Fª‘9¬Ž?—H ˜=£›8¨Ÿ= Ÿ@§–H™˜8¥˜:•™BE›JA™‰<—Ž=›Œ=¥|0§ƒ4¦x-©u8§{1ž~6ŸC‡F”<¢‘>Ÿ†Fš}>’‚?œt=}0‰x7‹o>‘{A€rFsMvyL}nIt}J{|L‰tBy>Ž~?ˆŽFƒ@‡“F|’GŒ:s›A{¥8lŸBj¢Fg¥Lp§Pe£Af©s©Hk¬O|ªU‚³Z†´T¿J“¬S–¬]®PŽ¯T˜«_“«cœ`”¡gž£e›žc›aœ”]š`¡—f¥sŸ›d§t© r£Ž`¦’^ª’b³v¯€w¨t§~‚¬µ|~µ}‡³…‰¤|}¥z…¬r“©n–¯w’¼l—½s˜¾w·uˆ¼lŽÒoŒ¾j„Âxƒ¹r…¸~†»z‡Â‚…Ì~‰Ê€ŠÁwˆÁk‡Æh‡¶o¸b‹ÅiƒÇ[‚Ãe†>Y”@`;c‰Dd’>]“I`‡Lc…SozSa‚Mc}M]xKf{Pr†WŒe‚‘a“hˆ„cxvbsqf{f|‚kswo}xqx…u~zƒ}x‹n‚Šq‚|wx‰„nˆlˆ‚aŠ”e”™e‘˜bƒ›^…ŒW†‰^˜•e”i—ˆg „p—‡o¡…t¢ƒl›‰g™Žm›™h­”^«›`¦˜\´£Q²¡VºŸL·©F³¥O¸¦S»±GȪKÍ¥K¦NÀªOê>ʲF˹RƹK¾³SľR¹·FÁ¹L½¹N»»T½·YÅ©ZÁ¤WÄ¥\ºµY¼©b¯§_¨¢a­¦Z³©d­³c³°`§®T©¹J°´PµµR¨°`«À\´Àe­½V²·V©±O¤·W§¯H›°Jš«Tž·W¦·_ ­Zœ¨[šªU±^œ§W˜§K¥ EŸ¨P¢¥K™¡KžB˜>™™K—šN˜–J›šB›AªŽ5­›5¥¥2¥Ÿ;ŸœI¤¤J¦ŸN¤—P®‰F´ƒ=ª€:±ŒB´ŠB«A¡—D™I¨¡K©œD¨˜L™’Iž›@¤”@œ™E™˜@˜ Q—Vœ–NŽGŸƒ;–€6—‚0¡6£|:¦y/v1ž}6•~:€B:–…>˜„6‘…>’x:˜y<˜r3”|7GŠvJ}sAqyHnuMt|J|yE|„C€}:†;‘M’‰M•‡KŒ‘<„—8{‘?v7‚™<¨Hy©Jn¥Jh©Lf¤;]©:c¤E[­>_¸Gcµ>`ºFm·=h¯Mn³Q¿XºQƒ»H”¸I˜¯KŒ°T‰«VŽ¯Q‘¨Z–¬[“©bŸd“œ]¡^‘žP•‹R—Z›d“£j˜m•¡i£›m¬–n¬’`­—p¤Žw›v¢vv©‚~¬†y¨Š|°†‡¨†Ž­~‹Ÿv¢p‘©|·x–µ–»yŠµx‘µrŠ¹p†Ék‹Àn…¼p‚¼sˆ·~½s…Ät‹À€‹Å{¾y}·e€¸m·k²mŠ´j‰¸d~º_|Ha¡=o’Hl“QjKdŠOp„OoyWfxYjwT_vQl…SnˆMk}crb~“\ˆ‹_„‚fu}ns€es|d{t`sqpq€t{|u‚s|ˆp}ƒw~‹qŒ~oˆ†s„„o†ˆg“m˜f„•d——aŠš\•Y’bdš”kŒƒc—…k˜ŽkžŠržˆi“ŠeŽz¤ˆc¥›]§•g¨b¯œ\º¦Y¼©W¹§E¯«Mº¬OşVˤJÁ¨Q½žU̬LÁ§GéI˾Sº¯M¾¶UÇ´WÅ·IÆ´J¼¬KÇ®T»µZ½¦]¼¡[À©^³°S³¦S°ªX¯¡W·°a±¥f­³`§³YŸ¶^£­X¨±W®­Q²¦_±¶^¶Ád«¿W´®Wª³\§»N™¾PŸµH›³R¡µT—¼M ¶Pž­Y«Y¥§T¢¤W§¦Rª£>¨žF£H˜¢> GœŸM˜¡=–•A”=¡<œ“3›7ª 8¬•?Ÿ D –DšœK©—H¦Tª‘Qª~E³B²ŒJ¨I£‘K¥œ@š¡B¢™I©¡J£@”–Kš“F£Jœ•I“ŸB–”HšˆU–‡S™F—Š=—~C—Š8¤„:¥ƒ@ž~8•„,—†3–†1z=•€CŠ…:˜‡@‹A‡>ŠI™„C˜‹B’F‘vJ}vMw†@yyO†J€F†Š<†‹H‰‘F”‡I“”MšLŒLŠ—J„”E†•;¦I€¦?q£Os¢Ik ?c¨Df¢:f®7_¨C^¶BX«C^¾?b´>g¸Go·L}·Dƒ®R|¹M…±I’°U´SªNˆ·Y•«b“§\Š§V†ªc–gŽ£_˜£R–”U“Uš_˜¢h‘—d•™dššgœc¦”b§i¬’~«ˆmzmžm¡~¤‡¨…}®†¦†Ž±„‰¨y°…’¶„·ƒ–±z‰·{‹¿y–Æp“¼r‰´x‹¹rzµtˆ¹|}»yŠºq‚Àyµs‡Âu‹½hÁm‘¶b½^Œ¹e¾c„·_ƒ8l£BxžQ–Rx–TxŒYoˆYh‚Wl~crz]jy\hwTjƒSqŒ^r[r‹hƒ‰j…kt€n}ybxrhpwfomsny}zztƒz{‚mx‚bƒhŠ€qˆ|j‰|i†…h‚“^…“e‡–f‘”^ŒŠc‘dŠše‘—a—li‘’c”ˆn‹…rŠˆhƒo“…uŸŠn ‘f²“h´“e¹™^²¢S´­Y´¦U¹žX¸¢LÀ«J¿¢SÀ£TțQϟJÄ©B¸¶J¼³JÀ¶KÁ°OÁ¬QδXгQÈ°PÉ®VÄ®MÀªSº®W±¨X®®U­´\¢ª^¡¢T¯«Y¦¶b«²^«¶`¥´a©©U¥©P¨¦L¬¤T«­T¶±U¨®K¨¶M§¹K¬µT›³R™ÀOŸ½Lš¾O¥¾W¡¸O °S¥£[ŸYž§T¢£R ›D >ž§; ¬D G ¥:“Ÿ<Ÿ8–—>¤”;¦3¤˜2¢”8K L¨™T¡™L²˜V³ŠPµ‚S±…K¬„A´A·‚@ªŽG£™L£šJ«ž<­>¦”GšŽIŸ—E™’D™›@—˜F““D™ŠPœ…Aš‰>¡„Gš‡> Až…Dž|Dœ‚9‰~;†ˆ1ˆ=…€7‰|E‰„E‰Ž<”Ž?”ŒIŠ•LŠˆMŠFƒ|P‡~O{„AtƒDy‚>ƒ‹HˆŽ=“B‰˜?L‰‹D’–GŽJ•ŽQ‡—VŠ›K—Bx£E|£AuœNnšHn•>k—=j¡C[¤@Z²>^¸H]°Ba½=`º7m³5p½?l³Ey³AyµF†¸L²O‡²SŒ»[²_•³]Œ§]’®\‡¥^©`”£Y¤P‘›UŒ’]Ž”TŒ¢_–ž_˜l k™i£œj–k¥…v«„y¥p¡|}§x¤…±‚´­€Œ£‹‰ªˆµ‘¶ƒ”¯†‘·‰·†•¿‰š·•·v’±m‚µt‚Áo‡Àu†½~‚´z†®~°w„»o’»n‘´f”·\³^“´]†´Z€´d~Ih£JlŸOlœWo”\m“\i†ZfˆUmSo\j‚Tn†]kYp‚ao‰iy…c‡‚p{‹erzg€[ylhykozrwwv}psƒ{s}eˆ}oŠa€kne‹{bt[Œ}aŠ“a‡‹gˆ•b†c”˜d—^™™dŽ“r‰p…s‹Žzˆ‡sˆ‹f‚d’‡s”…oŸ‡s©˜sµd¶—X¶œYª¥N²žK²œF¶ŸI½¤E¹¥EÀ¦DÏ¡PÉ®AÊ«FÆ«CÊ©KħGÍ£SЮRÇ­MƨIÄ­RÌ­S©Q¢R¿¯Z¶®U´³T¥¯S—°V«­S³¯^¤µUª·X­«^¢²f¤¥[®¢P­­L³X®§Q­´P±°Y¥¹L«±XŸ­\¢¯S¡·G˜ÀL›µM¢·U­±F¢©V§£M¤¢O˜£Nž?§«E¡›E¤ª@™£J ¦C›ž?“£4—”C˜C¢“5˜6—›9—9¦•:°†K›’M œN¡ŽD¬‚K¯†G´ŠJ­Š<³„5¬‡7­;¦”E¨–J¦¦C¬›@¦•<¡I¡“Nš›Q–žI ”O™™A™‡KŸK ‘=‘„C‘…>‰E¤KŠ=Œv;†6“>Š‰AŒ„B„}D…J„…?ŒŽL‚‘H‹ˆA‡E‘‡KŠ>‚GwŠHv€Fy†LŒ‹IŠ’E˜H‡’B„@…“J‹’Lˆ”B‘S‹ŸK|¤Cw›H€A‚©@§Cs˜JkŸ;r¥Aj¨@`§FT 2X¦?g±:]­@nµ2h°;p¶8r¸:o°Eu½>ƒÂG~½F‰¶L}±S€¹_‡¯[ŸQªaŒ­_Œ£a„ªW„£V„™T—¢K¡P‹£_Ž–[”šj• gš¡k™¨l¦œjžo™Šs™†l‚nž†y£†¶Ž‰¥‡Š®Ž~¢„‰©–‘ª’«ŽµŠ¹†‘Á…š¾ƒÂz™Ár¹v‰µƒÆ|’Äp‚ÁŽ²zŠ²€‰¹y€¹l‡¶]†¬b‡³^‡¶`„¶\Œ¯V~£i‰¹’B® A® ;¥¡B©•G­–Hž’C˜O“Iœ•P¦–Mž•?“›?–‘C™’I“ŽB•L˜M‘~AŠ{8ŠˆB…F‡ŽMŠŒKŠ‡M‡†Bˆ•LŒ’I}”P~†Fƒ‡@‚‘F}‚=„„@{Bw„Bƒ†A‰ˆM†‹?Ž–@‡:…Ž@ŽŸEŠžE†šL‘™KN|¦IƒHx£G€©<‚¢>z¥=i¤A_Hd¤@^¥9^œ7]¨Da©Ca¥Ek¨5p«:u¹4m»Au®C}±NÁG‡»D…½Qw½Mz¹Pz²Wx¨Qz¨Q…«VŠ£Y…«Y Q…¡R”›L—¢Q— VŒ›d™–h›—Z a›¦\œœe ™c˜œkžu¥Œr †z©–z¯˜…°‹‡ŸŽ|¬Œ†¶”¯‘ªŒ„¸‘–À…˜¾z“¼|¾w†¿z‰¼ŽÂ‚”ǃšÂyŽ¸¯}~°‚†´}‹²eŽ°]Œ³`Ž«e‹´T«R‰žX‡¢bƒ?nŸKnTužV}žVuQy’Vp…Ln‡Qq~Qk~]k€Wqˆ`rŽWy_z‚]‚‚c€‚hv‹rzƒs~o|t{pyzylvvku}iqt{osutwxuqs‚qcƒn^{€\ˆ‡a…]‹b‰‹aŽ›c‘—m—˜hšv“†t‹“wŒ’s—‹q’{i„q•†n—ˆt••p£—p«–p²ž[­™]©¦Y¯§Cµ­B¿µK°§M©²F±³@Á´JÅ­L̪FǨAҞLЧR̜PÙ¨KÖ¤MÊ P̱OÇ¥YÀ©O¸¡P¼±Z°¶Y¯¯O¢¹O—´Q¤±Mœ³W—­V—ªNŸ£O—§S¢¨Z®®V¤¥W­¥J§­M¬°`³ºX§½M¤´R¬¿d§±`£·O¢«Mž§I˜¯M˜¢Sž°@£ IœªI¥§= ©9§©2§°8™¢;¨¤KœA¥›9Ÿ›5”’>Ÿ5¡¤@˜ 5œ›@›Œ7¥–:¨D­3£“<¨D¯…K·†L¼‡>´<½ŽA¶’Cº•?¹7©¥>« F§¢L­›Bª˜J§ŒPŸHŸ™S©’Mœ›L¡ˆBœ‹<”‘H’„?˜ˆAŠF–’MŠ€@ˆ}9ŒD‘„@ŽMƒ‰I‰‹IŠ‘K€˜BœHx•H}„C‹B€F{ŒB{‹?†;€€E|N††K‡‹<‡“:‡™:ˆš>‚™@„¦B‰§FŒ§E{©J°Dƒ›C¡Az¢?‰¤A}¦:f¦>l˜Hr¡:c 6]¡0e 6c¯EY¬:_£:k¬:hµ7jª=i§Iq¶?uÀNxÂFp½Do²Hp²En»Jl»Ft²L¯T‰±V²Q†¯M~ŸVŒ«L’¯L‹¬S£`š_˜™[ Vœ«b•™g¤Žh•‹qžŒs›ŽqŸ…}©ˆ…§”‡¨ž…¬š‚«œ…»•Ž°•Š«‹º†‘ºƒ¾€•¹Œ³~ŒÃ‰‘¸ˆ“¼†”º|‘¾{³‚Š±zx²‚­oŒ°eˆ­j…®[¨aŒ¢U„§Yˆ¨]ˆ¡d‹A|‘Eu”Jv—H˜T{Ts—Jr—Q{†X|“SsU|†^sˆUuX}Š^~gu€e‚}i~…ku}u{€n„{k€mlzlrunwfishjypjtmwug{xdrƒom}ph~uc~ye‰ƒl‚d•ˆk—‹fœŒqš”nœ‹m™ˆo™•pŠ‘nŽh’‚hŽ~b“ƒmk˜™c™™Z§bªœ\°¤\¸¡Y°©I¶ªN¹µB½°H±²D¨°;°­C¤JÃ¥FßFӞJџGќQ˝[Ó¤WÖ¬XÈ©N´QÆ­N¿¨D°¤J¤¥M ¶V¤¹P µV˜´N•¨Hž¤E˜¥O”°_˜«]š¢[§ªW±ªL¬±Q¤²X©¸X¡Ä\ ¿V¦º_¨Á[§²P–°V–±F—ªB‘Ÿ?—¢I¡£DŸ§A¤¢?ž¤8¤5¨¨8¬¥7¨©5§°?Ÿ¨GšŸCšž:–¥<—¤>¡¥<œŸ5ž–9¥A¦‘5¤ˆ5¨‰8¨Š5­–:¯“=®–DºŽ>†GĎHŘE¾™>¼›D´¦?¬­J°¢D¢“R¡‘O©—J¡ŽJ¢˜G©“P£E¥ŒB¨A ŠFC‡K•‰@ŒŽC“PŠKŒˆB…Dˆ–IP„˜Vƒ•N†šP|˜AxOs‰Kw†G}‰MuCyC€’P†KK…=~ˆ@„‰=Œ’?ˆ›:ž8Ÿ?¦>¨C~­I¨>ƒ™G‡šDš?~šAy–Dt?y•FržAs£:i®6c©.Zª6d¯8aª=jª5l°>c®Ab°E`±Gm¼Md¸Jj¹Hg¸Lq·Hj½Cn¼DyµA}­N}±N…©W±SˆªR—¯M”«W“¢^•¤_“£b›¦UšªR¥_•™i”h¢wŽtŸ~¦‚ž„•«ž~©ž|«’€°–ˆ³‹}ºˆµ‘„¸ˆ®…³‘®†Š·‹ŽÀ‡¾†…¾Œ‚¸ˆ„º|‰µ|ƒµ|§o¢l~®f†¬d‰©]„¡]‚™`›\‹T‹I}Mz–Ow‹Mx‰M”PtŽH{‘MqŒQ{ˆU~ŒTr‰Uw€cx^{~[~ƒfw†`}ˆi~„jx†mwyt{z}mmrmprdnqbybdmjuwlrnessnr„rk„yhyrf~{a}tc{{a‡€bv–‹m•tŽv–n‰†n…”t’Šn‹‰g”zm”~hžŠg—ˆb¨—b©œd­\§§Z©›E©©?®¡J·²B¾°O²§K¸¦H¸©G·±OÉ¥>ȦJ͝KҗOÑ¢HÉ£FϯNТMÇ°VÍ«KɬP¸¨L°­C­°N§¯]±Z£·S£¨Pž©Jš¡K ¢O¦[¡«V¢±_§®]©¨U§§Xª¶Z¬ÀRª½W¨µO¥¾V ¶T ¸Q£²Rž­O¥¯C¢¦A¢©H¨¤G£¢K£¢;šœ:©°D¤­D ®6§¤>¡;œ›J¢ D•C•£E¦«5ž›C™C›ŸD¬˜A¢B§0©„2«7¦Š=®š>»‹3ºš@¾CĉB¾˜:ÀŸ:¢A½›<ºªH¸ª9¥¢N©I›”D§I­C¤›M¢D£…8¡?˜‡D’ŒBš…C”’A>ˆP}O’ˆK‰‹E{•?w„>z=‡‘>„C‚–Ez’>~ŠKw’Sx„I|“Dv‹=“M}Š@ƒ…A=vƒ@{A„—BŒ‘?‡š7Œ©>«8~ª<„¯?€°4yœ=x“Eu›>r8w™2už5q 6n¡B^ª2d£8W§Agª:\²8`¶6]³Gd·Gf¶@m³Al¸@n³Ej¾@k¼Bo¯Jm·Mq¸Qt²EoªKt¯Bx¨J‹ªQ«W}§MŠ±Y™³R—­Yœ§W‘¤]¤X•©_‘ k•£g”o–wš”u¤}£…„š‰z¦“‚ •}©¢{£ž}µŸy¸±†x°……ºŽ’³‡„²Š~²“„²‰º†~¸‚ˆ«†‡³|¬‡…©xˆ¬s{¤q}¥f«r‚¨^‹¨\—V{™Xy¥^Š¢R‰Ly‹L{ŒT…M}}BpzDo„FkPx†Rq‹UwXqxRtoSxucw{atz_z}a…ˆe€„ay‚ewpykm{p{yrsppblvmnlkuvwstr{qq|ne}pj€th€ug‚xkˆscƒyl}sŽytŽxp›…n’„xˆƒpŒ‰ehƒe‚gŽx`—xj“€]•ˆ_¦›`¬ X¤£O¢¡I¯D«¡;±¦E¾§Jº®I³«O·±P¾®N¬FΩDÉ¢=¾ BʦDÓ DÏ¡M¬LɯSÊ°QƬXº³M´¥U²¤L¹±L°²R¤­WŸ°UŸªM ­Qž¬S¢žP£¥N¦³R¨¯W¸¸T·³`²®Z¯¼Zµ¾QµºV¬´X§½Q¨»N¤ÃM¦¿L«¾J¤·O¦´Qœ²MªŸP®G¢£>œ¡<ž£@¤±F¡±>š«;—¨@N•Oœ¡?¥­F©¨;œ–?Ÿ”A¦ŸI¥™N ˜=¢’8«Š;¢Œ7¨@³“7³š9»—0¾Ž0³•?º >ß?À™H´–C¬¡9®§<¤§@£ I¤¤D¨™F¡™C§šG•>š…7›‚A™…K™ŠO•G”†O™‰J˜QŠR…HŒ‰Jˆ‰:w‰;‚’?ƒ–<}“7v“Bt–D~ŽMq‰NmŒHm–Gr’F|•Hz‡Dw‰N|„L|Fu†H~†Eˆ”@ˆE‚­>†ª1‰ª0y£/z¨3£:w—:u’4u“2p™:v 4p£:\¢5WŸ6Xœ>eœCd¤9`ªB\±9f¶:d¯Fe´Ij³Ce»>j¸@m»Bf³Dd»El»Lw½Os­Jt®Bv±G{ºQ¶S~³Wƒ³V‚²PªY’´[˜¯[šªb•¡f¢iŒžg’’g˜”jœŽkœŽu›•o£‹t¢‘Ÿ—…›Ÿx¢¥w¬œ® x°¢wª“€­Œˆ¯”‰¦’…¬ˆ|²Žw®“x­…u©~ƒ«ƒ…°ªˆ|¡€€›€…£p}£n†Ÿm†žd†˜c‚—V~ V}™]€›Y|@x?‚ŠPtwFsrPi|@g~Dy}I|zEv|HiwWqjUtg\kq`pvTp{av|ay…bp~_€|bxkrousq}|iewd]uljpcvuqqt|ykm{qfwqk||g…|cŽzb…}p”|m–ql~i˜yn“…f™r‰„z„g‰‡j‹†k“‹oš‚f”qp™‚l•Œi¨’]´Z°šRžšR¦žN©§A±¢AÅ¢Q»¦QæXʲKǶEά@Ë©?é<Ç©>̛=əGÂ¥I¸±KÁºIÀ°UùXººU°¦N®±B°°S©¸W©«R¤®Y²U¯®V©®L®¦Q£ªS¤°Z±²RÀ´RÁ¹O¿°O¶¸W¸²J­ÀO¼¶\¥ÅO¥ÀO«¶N¢¹L¦´Rª´WªµU—¬R¦±H«¢N£¥Jœ¤A©ª<°²I¡±<£¦@¤<Ÿ¥Cš§L¤Ÿ?ª¡I§¥6¤¨8››K›œC¡•Q¤—E¡˜GžšA«?¢B´“=³¢=¹ 1±œ5³¦>¹”@½ =¼ ;¼™C°˜G´¥=©«A¡«K±šD¡§C¥’D¥–I¡‹A•‹2£G›R‘ŽJ••Nœ’O“‹P—ƒJ‰†I…BŽG{”A~“<‚‹CŠš5{‘9tœD{I}OwŠCoHp’LoAtB}…D„Kz‚Ry†E{ŒD…™D¦>€ <„¬2‰®<|¤.x¯.v¤;nŸ;r˜>fš:i™1f™.o¤0i¨2\ ;^¢>U™;\«7d¥3_°7b¦6e§9a²K[­@Y°>\¬Gj»?b¬>m½Io±Hu¹Nl¼Tk¹Gm´Bi¬C|µO¬FŠ­U†µTµRˆ¦W¶\š®Z‹±b”±e„¯a…Ÿa‹–f‘’kŽšm‘•s –i§’w¤“u”’ƒ©Ÿu¤§z¬ v«s¯˜y¯€°Ž|²—‡¨Žƒ·Žz®“ƒ¯–{¨s¨}†«w‚§… ~£ƒ¥p{«i€Ÿq€žwŽžg€”h„—X‹“R‹˜Sz–]v;†…>yE{€HpwDtuHi}Ivu=vsCmjKhhTfnPohRsrOhtTfv[t{ds„_m}Z{te{svwwvmowigyghxkouiozxprwqspfwtft{k}yk€a’wd“oc•si–~`‘~e›d“‰o˜qt‹Œn‹‡oŽˆc™ˆe‘„k™zi—‰j˜‰ež•Zª˜Z¡œW§£T°£P«œ=°£G¾«JȧOƯSͳFαJˤMÆ¥@Á 9˪9Ë©9Á¡GȱB¿µH¿MÀ·V°°K¬·O«¸B«­A¦¯H¡³M¤¼O«´T«®W®¦T´C´£@¹¯M¬¶V¹ºV¹µY¶µLîL¼¹G¼²R¼¹OºÂT¹ÅS¨ÂM±¹Y¬¶T°¹\©¸Z²N¢²G§§G«¡I©›D¦¥A­°Dª´C­­<©«@¤ @ œHœšO¥¨Mª«Hª­A¦©H¥«D–œH——K™S ’S¢ŒO¥”G­˜G®¢=±¢;»¥5¶ª5·¥2¼¤.´š2²¢<¾˜=ŗ9»Ÿ>²¥:°©B¥ŸEª£H¤”RœJ¦Š@ž9—–Iš’L–ŒN”‹K›‰O”’M•–FŒHŒ™E†œ@Š“<}˜;‰Ÿ5„—=†;w–@ŽKyEp™HržEu‘Ir‘F€ŠE€O‹R~‘V€•Vw–M|žAƒ¦6Š¥.Š­4ˆŸ:¢4p¬6m¨2nª7b›4h™7i˜5m—2_¡=Z¥4Z¤3Y­5b¥:g§,a©-d©6cŸ5a3]§BR¯BV³DZ¯Nd®Fe»Mg»If¶HvºKt¶Vo¹Qj¬Ij«Fx¦E§F‚¦M…°Z‚¨[…©c‹µ^·Yƒ¾[‚¶ZŒ¯\‡¨h…¢r‘¡p™žq“l–jœ m¡¤qš–z›Ÿy¥¤q¨¥wœ«u œw§•‚«›„¤”„¢–Š±‰‚·ƒ|­‰w¤ƒx¬ƒ} {{Ÿ~z£z¤v{¡w¬sv®wªs„¥f‹”bŽ–\‘ŒT–VŠŽU|C~{Fv†?y|Lyq¼µ>ÁªC¾«OÆ´CͪQɬK¿¯HÆ°>Ó°7Àœ=Ì£EɯJ¾½KÆ¿L»¶L°ºO®´N³®L´·F°²J®¦=¤³B¦¶U²¸V©¶G³®A¸­?¹²D±®O¼®XôböZ¸²V¼µ[¶´Zºº]ƾW±¸TµºZ¥ÄM¦¿H´¼U¯Á\­µT´¹E²´N®®E¯°Fª¤>¤®E¡¦> ®C¥œA¨¤;¡š?¥>¢£@§¨C«¦C®©E«§?¥œ?˜£E’¡O¦‘Cž‘F¤”F«”J®¤H¨ž>®¡'ª¢*¬¥+±£3¯›1ª—@³§>¼Ÿ<³©=¹¤>¬¬9¨«:¢¥@®¢@¬žA‘7ž™2 Š<˜š:›™EŸ< D˜™G”•H‰>†ŒF‘•>…B|›AŠ˜6•6yš;zžIxœ8—8s”Bm˜Fy“G„˜?œHˆžM{•D‡˜L{ŸB}”M€¨G‡¦7€¤2…ª>Š±:„¦)q¨/z«9h›2c˜8f£=nœq};ryF{mFziGwoOvnX|iO|ePrp\oif}d`~glvkqoe{vktyhmhjqeawaholouygizklzrsyj}tcpfˆm}h‹uaŠ}i•wd•{e›†l”‚tœ‰k“‹g†g™vŸ„l”…`™wb•tdŒ{a’ƒc”‘]¢P£M¡’D¯˜Gµ¢?³«;¿°AêF¿²L˹AÈ®FÇ´OèFЬMΧBĚLƛRÀ¦PÄ´R¶ÃN¹ÁP·¸G¶µE¶ÁH´»D±³;µ©<¬²A°°H©¯F²´H¾°C¿§<ȤMĪUÏ¥[Ȩ\¿¯S¸«P¾¨R¶°\įbÁ³Y·½`±¿\«½T©·M¯²F·¸M¹»Gµ¹JªºD¬«E±¯I§¬F¤¦J¨¨DšŸ>›žDš§G¥Ÿ<£«>¥®/«§2°°<³¯A¥¤; ¬H•¤Nœ›Bš™?š–@©>¯”C¨™D¬£=®­(±4¬/¦™7§ 7¢@®§@²žC®¡?®ŸFµ£=°œ:«Ÿ;²ª4¬£:°¡>®˜:ª”9¡“0ª4£•9ŽAœ”<™’H—EŠ˜@Œ˜I‚™N„D{•G8‡›G~˜G‚˜8‚¢7w¨Hs¡Hƒ•E‡—?~B£L€¨E‚ŸAv˜?z D{¢J§B}µ7ˆ¸=¸-€¨-{¥,u /h§=k¡9a¢3c¦9i°8cª)U¬.Xª;Y¥~–8w”`±1Y­4a¬8Y­-R¨/X¦6Y­9`¢8b¯7\±)c¯7Rª?_«7gª7d¬A_¬Fr§Gv­Kr¥Ju±LvªEo´Km»Ni´No¼Bv­‡–Cˆ–K™Q¢E‚ŸI}›=‡˜?…œB¡F‡¥;€³=~¯>{¬F‚§G‡²E†°@²C„¥9ƒ¥6s¤7z¯0t´5k¯4i·:g®2pª+l¶2m³5_³)[¨,[§9T¦=a ?\ªp¬Lm¨Lj¡>m¤@l²Dj³Gh¼Eq¸As¯Kp¶C|±By»F|¶It¯Hw±DrµB|µJ´P‡°Z€´a…¦Y“¡`‘¦f–›n¡q›¦k›°h—«j©k™uš¨n¡¡k¦ q ªn£©h¡±j¡²f£¥pž˜j¥–f Œg¢Žq§€n©wj¡utžusšxy”n‚žp~Ÿo}šky¢q†•f|˜h‚ZŽY‚Z„–W€/iw8eu8l8ts6l|?t|3muCgf9giAsa5qbDycE}gGƒeFnZJp^Vr^_pZeidqldkw_ynOitWjehom_usp|utuwk|l{}n}|t‡qxƒr‰ƒi‚‚nˆt|c‹ydŠyl—ol™wvˆ~p‘}f‰n€n‰}fƒ`Œ[ƒZ–ŽH‘‹Vœ—I§‹I†H©”>¨©Gªš>¸«KÁªLDz>ºAͳ4ŸEÊ®RͧDǟL¬BįKÀ²HÀ°AøL½¶I¸¬OÍ°KɪH´»6º¿C¿¼:ºµ>¯­:³¨B´«DÀŸIÁ¥MÁ >µ§=¼­@ªS½¼G»ÃB·ÃO¹ÄVĸZ¼·^¼QƶPIJVøIÁ¿J´ÀO­¾G¶µG§°K«°RŸ°H£¥:­£?´£;¡¨5Ÿ *¦ž.¥ 2™¥,›¥7Ÿª:³¡,®¡-¥¤:›ª9¡­: ™6¨Ÿ9¢›?¢ŸA¨£9£°<  <ª£1°©1°ª>Ÿ¤9¦§8¡ 7¨¨-¥©-¦¯4ž¯3ª´3§ª:ª¦C¶¬5¹¬>·ž<«˜;¶š5°ž9¦™4¥¡6©Ÿ5¤Ÿ>¢¨B£¤@“š?”˜C‡™K‹šG¦D…©H‡¦M~¦?Ž›?ž6‡ =Ž D}§>€ªC…®@‚¥Q{¨Bƒ²;Š¦<}©9x¯8«At¹@t¹Y±9c¶]¦:j¥9i°Lw¦Ph¤Jg­Dj§@cºId¸Ls¸?i²HlÀEsÄ;s½Fp´Jz¶Ex»Ow¨@w«J³P€®V…§RŽ±[‹°[¤Xœ¤\™®`£¤n“°_”«m­i•§}— n—ªjš§e•¥t¦k–ªkŸªl¢™l¨•e¥”m¦i£”uƒt™zi—‚h|r wz—}|’tpœrs¡prdpb{‘`tawŽ_„œ`|”S}1mt;ct4cs6bu:p~?rusfMz`KkQRfMPoIRtVanTeeVlo]ovUegchfbgsjmxm|xo€ur~‚m‡€n†€fˆ}n†„p~‚pxyo{od‰ybŽ{a‹xe”rkvj‹m‰xl“~k™ƒ]”…Zš‰e‹c“‹\š‘O‘Q˜U¢‡WŸŠG©šH¨¡9¡¦:«¦H©¦M´¥C¼³C¾´8¾©=»®IȬQŤHͤIìAÀ¨I»¢HÁ°O¹°H·¨?¿©D¾´@¸¶:º³>¶²>¾¹Dµ°E¬¶L´®G¼°;»¡<¿¡@¶¨>±±J¶ªLµºBµ½DÀÄSººY²³Nµ¶T¹´PõWľI¼·Jº¹M²ÁH´ÃKª¸C¢¯Q¥§Pª£A¤¡9­¬5¯¨B­š@¡›5¨ -¡§4¦¡0ª 2±š:¯¡2¤©A©¦B¢®:¢¥6¬¦?¯¡? ž=ž›4›ª(¥­,¬³4§«9«®8ª­6¦²>§¥5°¥5ª«9Ÿ®>¦:Ÿ§2£¦7§§6µ?¯œ7³§6´•-®’4«•;°§1«¨5®§=¥¬>œ¬@”§?«E–¢G™”GœE„ŸN‹¥L„¢FžNŠŸI“™5™2‰œ7„žB~ŸI}±?ƒ©N„O~°Eƒ±@}¯B€²D‡¶>~¸;ƒ»?~¶:v¬2n¬,f¯'f¯(k§(p®&k°)_ª(_®1[³7cµ4b°AY²2\³0f·;bº=[º0^·3T±6Z±v«Dv¤Kh¥Sc¬Fc¶Ir¯Ht­Et²ª¯9¨ª7Ÿª8ª®2¤°>¤¤C¨ž?¨«/©Ÿ-¥¡1­¡<±Ÿ7²¡5Â¥;°–?¯3¬—3´£6ª­8§¡=ž¯G¥²E ¨=œ©?Ÿ¢J‘’B•žL€œF‡–@{—B‰–;‚H›8€£2†¥>}¬B|¡8 9†¬<€¤Q‰£E}­J€­F{¸A|¼F~´Gx³G€²>s¿2u¶+p­,d¶8h¯4f¨/e¨5k«/Z«4gÂ=b¼2l²t²Ep¯Co¤Cg£Sb¤Jl¯Hb©Am¯Fh·>lÁDlÁBv»DmÄ>nÅ?r¿Hs²Ly¸I‚ªR€°R©Oˆ¦Sz³Q¨M¬Q’ª]–´Wž·c’¶c‰¯q•«i“ v”¡l‘¤l¬r”¦i–¡qŠ®cŒ£k›™e’g¥‘n¢œr‘“e˜oŒ’iŸ„j£t•yt˜zy–rl‘yq‘wimeut›kq•bw”e€•Yt“`|3ct7]n5Ys>`t?UhGYbCai?cb;gXGlS:s\µŽB°Ž:§š>©¡3ª¬:­¥8«ž1·¡6À«?¼¤GÄ©>À¬@êE¼§MŸW¼¢Pº©J´¦D¶¨E´¢;¯™6²¡8µ¡:ÀŸ9· ;¿¢B·¨>±«5¹µ>µ²:³¨A½¬?»§Bº±D´»Q¸·R¹¼L··Q¸«FÁ«K¾°F¾²Qº±S¿§R°¦R°®F£¦?£¨Iª¨Mª¥F©£H¨œC©¡F¤¨>¡£1˜©4‘­9™¡8•§0œ9ªŸ@§™B©ŸI¢K¡¨A±©A«¥8°¦1³¦1ª¨)ª¤ ¶¨$¼­3³°2±¨,¥«.ª¦>©¬<­¨7­¨@ª«3¡ 1¡•;©–3¹ 0¸›=¾žEÀ—>´ŸD¹–Cµ–?¬¢:«ž?®§8 ª9£§E¦£Fš©>’¡=ŒE…–@ˆœE‰›F‚™<‚’DŠ™A‰Ÿ:ƒ£=}¥?ƒ«8†¥A‡Ÿ=‘ªDŠ¨F„´L~±Ds±Cv²J{·Sv²L€¾L{½?pÆ@m¾5tÄ8k¾8k¶;f®8f·2n²3`¸/bÀ5b·:i»:^¼3VÁ5Xºr¶Ao¨JvªPe¯Ie¬Je¬OeªIm»Ii»Geº=rÁ7uÈEsÃGrÉKm½Em½M|¼P‰µT„«Hƒ¯GŠ¬W€¨N}­UŠ®S¸_Ž³Xµ^±Z‹¹f†´^‰ªg¡b¢n†§a‡ªbƒ¨fŽ­j‰¥h¥^Ž¢h˜˜i“b”Žl–„e†c‘ƒf›†k|q’yq‹tu•hœ~f•|hštq”in›]{”bv•g{†[z3jl+nc.bk3buAZh@T_B]V:Y\BfYGaTAe[@h[E[R?bJ:`SCVQN[^GcVM^\[VSecXriZajTal[eiejqajsmnthtvbn]~f†bzuY†y[|wY|te…jb‹bd‘wi†s\’t^€s[Œƒ_„€NŒxU€|V‡\…^„‘^Ž—P–T›šL¡R§”=©—;·›?´š<¨—9©©5²ª.¸¥,¼¦9±§:¯™N¹§9°¥?ÁŸ=´¨E¹œ@µœBµ£H·¨B®¨Kº¨D®›:­š3¼˜5¿¢7ÀžBà7Ã¥AÁ¡7¹±6³­3´¬7¹«?»¦<ȤK¼§N¶¯L·®N²µK¿¸V½ªG¾®DÁ±N»©Iµ¨X¶¯HºªC¸®D´«C¸§Aº£E« I¤›>¨­>¬­9£´9«³2™ž;¡¤5¥›B¨©;ž¡A£Ÿ4­¤>®¡J® 9µ¥4´ž:º©4­¥1£©3­©'´¡/¬².¶«<£¨6Ÿª5ž¦:¦­A¨¬?·©:­ž=¥ž8¬˜9±6ºš<µ–@·›A°•G°™@¼›<³™B§¢A¥¨6¯©;¤¦4¦¬7˜¬5¡¨8œ¨Gš˜I˜L¦@ŽšH‰?„£;’žBŠ—E¡;„®>Š­2§=}«@‰¤=~¯F€´P~³G…¹F}²LªP€µA„»=vµB{½An´8yÁ4pÂ8wº5n»o°=t´Gt¸Gw¦Pq¦Oo¬Nm¨Bn¬Dp¬Ij¶Bs³@o»;n·6t»MkºOi»Bu¼R|¿V‚¬O†´K°F{©\­Z„¬M‰µO‡»O‹¾R•«WŽ´Z’¼h‹»e”¸n‘©k‰¡e¤h‚©g‚­_€¬e£kŽž]”n–m˜Šq–“m‘†hŒd’|l‡a•€c‘|q’g–ym™ƒgpzkŠoqru‹`z‘a{†].td/md7mg.\n+\]2\X8RT[UAR[GTdEZ\LVRS]PdiLjfTrt^iq]ordijhkpakvapiapl`€{\€_‰re„nY†k_n\Œs`g`…p`‹ueuh‹s`Šu]~K‚ƒI~T‡…_‰ˆbˆc”‡\’M˜”L”‘IœŠIªˆ?­—E°›;§ž?¦Ÿ0­¡/´¡6¹œ5¯¥B²Cª˜B°›=° @· >»œI·¦Eª£;ª¦B®@½J¾”K¯–=²žG¶œE³š;»¥9¹¨3Ĥ<¿£8³¦8¶ž>â<ƬFÄ¥GÁ E½ªI·§M°ªV·ªJ¼´M¿¨Q¾¢J¶›Q¯¤L®°J²²;¶¬C¼¯DÀ¥B»ž:±ª<§¥?±©J³´C©³=¯¬AŸ¡;š8¬§>²¥=®0¦¤4¬–B­™B¤¢6§ž4­¥-»­*¹¹/¨µ.°¦-®§5¬­6®©7¨©9¥¡>¡¬<¨°E¨¨3°¦/§œ1¥™6°A°’Bµ˜:¶™B®œ<ª–D¼•<¿œ=¤9³Ÿ?µ°<ª´;¡ª8¦¥7¦¯3–´:£Eš¡G¡M†¢I‡¦D–ŸAŸ@Ž¢F„©8‰Ÿ5‹­8‚®3z§C°Bˆ«E}¯My´I†ªJw®Rv¶T…²J„¨=}©B|¶D|¿:v¸<„·?€Æ4„»-x½/p¿0q»Ä G´:Ę6Á¡@À™;ͬC¾¨G»©KÁ°W©ªMº®Mµ¯Mº¢I½žI¯ªNº§L­±F³§?¶«1·²8ºž3µ3·¡=¬Ÿ>®µ=¸«=¬«Eª­I¦¤FªG²˜>±Ÿ@±§4®™+¦›/ª•8§”:«£6¨¥-¯²2¯¨,¯®5²¨,²¯1´«0·µ9®®:¬¤4¬¤1©®G¥ 4°«<¨Ÿ8 £3ž˜<ªŸ=¨œ@ª›AªŒB­Š=ª›=¿™<²œ:¶¨B¦ªB¬¬7£¤?Ÿ£6˜¢6˜¨2œ¦B³P‰©Q¥P‰ªFž«E˜©I‡ EŠ¤G‰œ7¤7Š²:‹µE‚¼Oy®C…¬Gƒ²Ky´G€§F†·N†µQ‰°;‰·A‹¶>‡¼8|ºDv¸<†È7Å5}Ä9{½Ax¿>~ÊEjÉ6mÄ>kÕ)`Æ(\È7`Ó0XÐ4WÊ,YË.aÉ:b·;\»?jºKkºNqµUmºIk§Nt·Er±;n³Do©:j°6e¼?oÂ6oÀ=hºnc0pY.a^4\];VS@XP8\Q4USA^MJZWBSW@UX?YP;[ZFSXINSWZOXeSZ^Ud^c]]gh\_cifjeanmZmt[ktTluS{mSuW{qUul[zmWz]y_ƒz]ˆwg–yc’i`Šj\‘f_…jT…iTŠh^‚s_ŠsXƒwZ‚yO‰zP”G“ˆJŒŠJ–•?¥ŠG¤Bª˜H£—@£–=°”:³™F¬C°„I­‰?©‚=³‰4¬Œ2¥—:«žH ŸEŸ™E­œE±¦=¾¥Eµ¤H½F½9Ñ:ŝ7ÚA¿‘CȓK¿–B½šF¸žK¹—@¹ LĦMÀ²T¯U¿¯P±ªQ¬ L± I¬¡K±¦?¶¡7³¢@·¬6¶ª9º«4µ£,µ©+¼«4¾¡@³¨>»¦A¹¯G­¡N¨¢E® L¬œD¸›;¼žC·¥>¹œ2¶ +¯Ÿ5®¥;²5²¬0¬¯8«²,»¯1±¸4¸·)¸­2³°-²¶2±­*±¢6ª¡:®¬9­¦@¦¥?¦›6œ£>Ÿ9š™< “F¯‹E­@³˜K²ŸDªªG­°Cª´E¤­>§¯?œ¤5Ÿ¡1’¬;“¸=‹¶J‹·F­H®B”²D°BŽ¨?Ž©H¦C–§E¯;Š±<¶L‡­P…³KµG|·B‹¨Cˆ©K~­R~¯Gˆ·Bˆ³;ˆ¶5~¶=|¸2ƒÅ3‰Æ>ÆD|ÁLÌD€×I|ÖBxÔ3hÏ-f×5[Ñ/R×4WË/aÔ.aË+V¾4XÂ8XÄCV¹FW±Pi·Jv·=sº>h¼4j±;d¬¦5¡’CŸŽ9§…<£3©Š1­1¦“;¨‹=©‘=›—>žŸ8¯˜C´ŸA¸¢Eµœ@Ś@ÞB¹”:Õ7ŽBǘF¼’EșJÃ¥B¼˜KÀ L¶•;¹£I¼ C¸ŸI·›T¶¤J«™I±žM¸ŸM¸¢F³™C®¦D¶£7½ž:ºž6­¢2¿ª2´²9¸¨3¯¬>¹±B¼§Fº¯<®¬F³ H­¡B¹”D¯£F¸§@¿¡2°¡3§–(®‘/©¢3µ˜-¶¢9¹¤'Á­2ij2º±*¼«*¼°%º³)¸«:´­6©š6©›<¬ž:­•D¦?­ž: š?¡”@¥ˆH¦‘Fµ‘J©Ÿ?¨= §>ª®<£²D¥¦D¦¨? £4ž¤<˜·=˜¦=˜©K”¬F–¢L—±:›´C”©?† K‹¥=¨Dš¬BŠ­9ˆ¨K½BŒ²Lˆ¸D€µD|ºC‡¶KŒ¯F©B|©AŠ¬E~¸={·@{³1|¼?|Ê:zÉ@|Ò>ƒÆCsÉFrÅ>zÚ@pÚ9gÑ7^Î6dÖ.cË,SÌ5ZÌ3fÎ3^Â3ZÀ3a¿BUÃAj´Dl½KlµAhÀ>f´7[³=^»Bi¹5fÂ6iµ8lÁ7p¿;q¸Ek½Kk©N_¢Un¨Lu¡Vv§Gz¨R†«H„¦G‡®E‹»I…±Q‘µH‹¸W…ÃO€»Iƒ·UŽ³MŽ¤V†Ÿc~§Y¦^ƒ«R„™Vƒ£d}˜]†œf‘–h\„‰Y|“]ƒŽ`‘‹a…‡Uƒ†Yw‡Uz‰a€…V…eŽ†X”zj‹l]„f[‰cpŠmm;kZ0gW/f\3ad/bP+bK4bR.ZW3UM*[G+OS0TS@OR@ULGTWTJWXLUZSRZPb\Sd`O_]W^^g^Qj^]hYkf[npaqjdsqYphKobOxfP„fKuJ„nZ‹fYea•hc‹mb‹pa•mcŽpSˆoNƒzN|sH„lR~kS„sOŽoV‰{K“}@•}Ey?ŸBœ=¦”8£‘6£ˆ>¤ˆD¬”A¬—;œ53ž€7¡< Œ4¡‡4°Š0¯‘-¤‰8”D§œ?«ŸD®–:¡@ʜB½›@º•AÀ›A¼<¸ž7¿=Ê©FȧEÆ¥G¶ŸG»–;¹—:¼”:¹—@µžL·™T³œW±£IºœNº•B²›7®¢<®¢.²ž,¹)°©7²°4»±3¾¸1¶¯?°¨<²©6·±?²§:±¡>µ–@­•C¯š;¾™=À©1À¥%®”'µœ(¯—(¶—*Áž1Ȧ3È¥$Á¯ ·¶-¾©/­(¾©6´ª8¬¢=±:³¢A¯ 9©“E¤Ž@©–5±“;§‹G©ŽO­—N°¢L­›?¤’>©‘;¡¡Dœœ?¨¨A›±?–¬AŸªFœ±>œ²Jš©P—®L‹¥A™¬7—ª>‰ª;Œ›F•žH˜¨DŽªN•§G¬A¶?±D~¶;‹ºAˆ¹L²P†¸C¬<„±C~»E…µ<|¹A~µ4vÂA|Ë=„Í:zÌ6oÄFsÉJtÑo×6gÕ<\Ý2^Ö.UÎ:ZÅ?\Ë0ZÁ/]½.V¹;b¼>`Ã4pÅ8y¿Fn·Ci¾ÃžN½;²œ7´›=ºœ2¼@ÁIÀ™J¶¡MºŸQÀ¥N»•D¿šD¯‘1µ.±¢/­˜(´.²ª8µ©:¶³1·«>¾°9¯§0«©;§œ7«®;­¤=©—@±œC¯•:¾£5½¦/±£0¬ž/ª’!¨–.À’0Ĝ,½§#ñ,¾².ij/ì-Ä­"·²,¿«+©¨8¯¤3³¨3©©=¨•C¦“A¯šA³›6©šF«C°˜N³˜P¢“Nœ“Kš@¢¡9›¦HŸ°;™¯G›ªB—­E¡¶Iž­G¦Q“¨J£Hš¦FžªN‹¥J‹—>‰ J’ŸBš¯B—¬GŒ¶E”²:†¸>‚±8€¸>|·?€¾E‚¼F’¹J„¸BˆÁ?“°A„·:~¼7x¿9„Å>tÎD~ÉE{ÊDqÇFnÒ;xÍFtÉGsÜClÌAiÐ.^É?_Ë@\È1_Á/fÉ;[Ä<\Æ,h¾3o·5ƒÂ?w½Co·E`Å9VÃ<_Á0`¾=`·9e¹0k¼8h¿5c´Co°Jc°Oj¨Pi¨Lo¥IkŸL¢B~ª@„®E…®Q¸L¬N‹¿SŠ²V„µH·Gy±HuºT…«KwµNq©Yu§N|®J~°X‡¡M€¨Y„ PƒžR„—`ˆŽYš_‹ŠX‹Ž^‡Še{€ay‰hs„axŒhy†^Œ…gŽƒ[…vg|}e}}c€wd0T_,aU7YN7`V1Y_+TZ"XQ'\N$RX%OR%MX1CP??IDBQKQNRQU]XTYNSXP`WWeXSeQZZUSSRY]UPb^Wib`ckaav`[~aL}_MƒmLŠlQ‚^HŠaFˆaQ˜nW˜oT—qV”tauf›rbP–O–{P—WyN“pP•qU“{K˜};š‚<“€:—Aš4¡Š6™ŠCG B˜‡Eœ}Jš}DŸwG¤w9›†?¢=®‹=«;®Œ<¤‡4±‡2¬‹1®Ž*¿œ-¿›.ƛ9͑D͐BǗFÀ™E¶¡9º¡=»¡;ĦFº›D¼ž7µ˜9¸’9´›D¿EƕM½šG¾žL¾šC³”>³˜:¸–=º˜.´–)´ 3´œ/¯£5½ 8¼­<¼«0· 4³™8©Ÿ7©¥0³¤4ªœ.¬š6­—;¸ :¸¥7¾¨4µ¥2¶¦(µ+²”+»“ Ĝ$Ä£-ì,ȱ.É®.Á¬*²(µ#¸¦.¨©7¤ª<ª¦3ª¢;¯¢:®“<¨–:®—=±=¬˜H²“E®Q£–Rœ˜L—ªHœ¬?¢¯Fž°>§·Fž®H ¦K˜ªL˜±V”§R•©Q™žO›—O™šL••PŽŸCŽ¨E•¥9˜®<‘³B•¼9‡»9{»5~²:v­D|¹<‚Á6‹ÄA‹Ã?’ÅJ˜½H‘¶DˆÃ=„ÉE„Ë?{ÌwÔ@jÎ@mÒAsÓ=kÌ9gÈ7]ÈAcÆ@iÈ4lÉ0e¿5dÄ3hº0r·;{À8xº5i¸=]¸3_Á9WÂ5_Ç2k¾(h¼/k¼6]·=_²PJTLK[WIZWDTUFXTUi^Tp^[iTTdWNT]PUUSVd`an_coX_mbTsZQxaLylI€fK{hFˆ^OŒ^OŠbT”f]gV‘q]Œnb•o`—‚R–‡PšvSuN’wJqIšwH;˜>˜†?~D’Mœ8¥0¡ŠB™}A‰@šŽ@Ÿ‡<–sHœ‚F­}C z=œ‘Aª?¯C«Š<­1·,±ˆ0½Œ6•9’4¿š,ˊ<͐<ØH•F¾›<¸¡D¼£@¿¡;¶™CÀ˜5´–A¼—/¿’EÖ:¡;¿¢:ºœ?º˜C±ž1´0¼‘4¾–.²”/» ,ºž:¬«5¯¡?¸²?²¦Bºœ:·2¯¢;¤¤?ª¬5« <® 6¹¡9¼§=Ä¥/Å¢6´­4º¬.¯Ÿ)º‘*·›)Ä¢*Å©&Ī/Á¤/¿³6ǵ3õ(¾¯%Á©.¬3¬¦6«9·™=±—F ‹@¦›Kœ”Aœ›<«‘M©›B§RŸ˜Qš¨S’¡KŸ¦F°?›°I˜³Jœ®F›§Hœ±Ož°J˜²P“«N›¥Y¨J’¥HŠ¡R”Bˆ¬GŠ¨>“²A‘°A•µE‰¯I‚¹:¾>{¼B²;·D‚¿?’Ã@ƒÂ?…½M¶Nˆ¹D€ÇC‰Ç@€Ú=tÑ>nÉBoÌG€ÒJ{Æ<€Ò;uØCtÐGpÔHcÈB`Ò7]ÍG^À:aÈ3f¾7gÁ0bÇ9qÄ6hÁ=rÎ0xÃ6a·8b»;eÊ4i»5cÆ/e¸,r°1k¸9`´0g¶0]³9l¨Go£MhšNj™Mož?j§Ez®?i¤Ly¯Qs¬Dy­LŠ¸G‰²LƒÆL|¿Fl»Ix«Bz¶Sh°Fg·Rs±FqªG|±P¯Nz´I{²MŠ­I„ŸM‘š^†œR‘cŒ_€a_x…`{fŽb{‰c€†jm‹ˆlˆ_ƒwl{`.[_)JW4SP2[F9VH6QC-IN/JM+IM4IC-HA6JK7DM>O]RNWZI[`HZWHbYNoeKnaOhWO_VRW[WU\PXfYUcOdjVguZYw^X€`L~dMykK~nOŒpZˆjSŠjXfT‚kT‘sVmR“xWŽ{Q•V™xR•yM˜…L—B–„8˜…<–ƒB‡D‹Š@G™…Ažˆ8¦yDžx>Ÿ‡D …E–LwC£€?§y>£…3¤ˆ6£‘4¯‰>­ƒ?»„/À/¼ˆ2»‡5´ˆ4½“-Ō.ė9»’B¹ BÄ DʦDš9ĝ5º”6Ö?¼‘>¼76¼ž?Àœ>¹¨4¸¢;¹£>·ž8·›4¸‘2²“/´š;¼œ;¹›3«¡1®¬:»¬9¾§?æC»›6ºš2©¨6ŸªB¦¦<¡4¦š=«¨3¸©0¶¤-Á£8²ª.´¤(µŸ(³™,µ-³£+¼¥(ș$Ǥ)·©-²¬-¾·4½³,» -½¤/±=¹•=²E«ŸH¢”M¢œI›žJ š=Ÿ“@Ž?œ–N•ŸP—§N—¦F—©H›«O °J¥£F¢¢H®O˜²L”²B–®Hœ¤W–£Z¬W­J†§LŠ¨L‰­F†ªO†­P•¬?–§IŒ¬J±J{¿G…²H~¶?€¼E…Á?ŒÇDƒÉ;„Ç>ˆ¸MÀL€Æ<ŠÊ8„Ù=€ÛEuÕ?xÍ;wÌ<{Ï5€Ð;„×D{ÐIoÊKdÏFfÈ=kÃ=_Ã5\Ê=\Ì:aË:`ÆBkÇCfË9qÊ7sÆ5g¼-k½%hÈ.bÅ,^µ5dº/kµ/e¬3Z³3SÁ4]½0f®8j¬?p¨GpDm¡Bn«=g¡Jk¤Nv Pr¤C{´E„³M‚µIw½Jl¹Fn¯Av½KlºHi³Qm¸Jq¯Rn¯Pt²Q‰¥J†ªE~®K‰²Pƒ¨PŠ¢U‰•[Š’Z‘Xƒ•[‡‹b…”bs–mx•e„‚c„g|~q‰~m„€f‰†m~c&MJ%QW2VD4XC1PI.HD)MF+CK(GG/ED=HM1CV:CONMeUOZRCaXETP@ZYIedKlXT_ZQgRSY_[abK\VV^h_hh\mi]it[dphZ|fWyeSylWz`W~_]}k]vnTŒg^…{[vRqTqZšyI‘uF™p=y@ž~E”€GƒH™ŠMœJ•{EŒ…Kš|I“ŠBœ„9™u3ƒ:œ€B¡ƒB£z>¨|9¤}D±…0¨‰.§{+±‚1®‚4¹{0¿z)»~:¶ƒ/¸’4µŠ0ʑ/¼Ž0³—;ĖAÀ—Dē?‘>½•5²’.²•4°‘=µ3»‡;Á˜6º•;¯¥C³ 8¸ C¸œ:µ›=µ›(¹¢:¾ .®5´˜1³«8¸ªC» 6½¥6µšAº›G¨¥=§¨EªªF¦¥?¤§G±¢?«¨D¸¬4ºªBÀ9¼›1´,³™)½—3»Ÿ(³¤/´Ÿ'º‘)ƛ2ª3Á¡5¶µ8¸ >µ›3°–9³Ÿ9»ŸC¼¨E±£R«˜Sš‘J’P“¡@¦šD¡•E ˜HšžS žU ¦Q”¤Nœ£P¨F›ªU•¢RŸªJ˜²S’¬R±R®X“°R‹±W‰²[€°RŠ£Y‡§Z§W†¤L™±M•²C†®M­FÄ=Ž·?…¸A„¾9ÁCÍI‹ÇA…É?ˆÃPÌ>†Ï;ŽÌ9ÒG‚Ò?{Ì:{ÕDsÄ=Ì6„Ùs¡Caœ>a©ApŸJj¢Ns¥Ak¡=w´Ou«N~°Nn²Ep¶Js¸?m°Hj­KjºCuÁJq»O}®W…¨TŠ¥Ry°T{³T}¢S‰¤\Ž›[ŽZ‚”b€›^‰TŽZz“iŸkx˜]…‘ha~}izjw^…wd„ƒ`.OF*NN&FK-GF7JK5HE-LA+EI4MN0EI2@T:GQ=MYMH^KGWNDZECdL>\V=f_KeXSj`JeYHZXQ^YPkPMf_S]]^cn_^qfbs^R{]RueUze_}mbte]|iZ}tU…rW†sX„lQvZ™wZ”oJ•fEn=“xF“€?—‡?‘…G’K–KyS‹yIŒL•|?•‚0•€2¢z1 }5®ƒ;¬†<£„B©~:ª-®}+µy.³|.´w)³y*µ&Á€2º‰*¸Œ*¾4¾’.ž/¸™9À—57×;¶•4°Š8·‹+µ’-µ‡4À„9¹Ž7±Aª™?´—?® :ºšD·¡<À¥;»ž.µŸ2¼«0¿«*±¦/¶§1²§=±¤>¯œ;¯¦:¯¤G­š?°¡E¤¥K¨›F£¢E¬Ÿ;²ªBµ¬F¼©E·¦>ºš9Ý)ɧ+¿ )¶™*º›.¹Ÿ+½™0Ɲ*ƚ(Á¨/»ª5´›@·™?°š>¸@³šF´£G«—G¢™M¦—L™—M’“O››C¥MH›§Rœ¥K¡¨R—XŒ©N¤R™«K”±R“µKš±N›°RšºJ“¶PŠ´R†©Pƒ¦^¤bƒ§Zƒ«Y€ XŒ¨U’«K‘¯DŒ¯B®DŒºB”¶F•¼:·CŒÀ?¾JËG‰ÃI‡ËD‚ÕKˆÐA‚ÕAŠÒF„ÎE}ÉDÆ<}Ë:×A€Ñ8ÙE{×FqÚ=lÛCqÛEkÌ?pÍCpÖIqËAgÐGsÐFmÈCkÊBxÒ=sÇ:f¾5c»3i¿/k»0k»3q¸,g¹3iºAiµ?e¾?Z¶9b¼>Y·4\ª?e¨@l¡K3LG7RNADV@?PT9RL>HS:WR>OVNd[H`VLYWV[TOcWP]PRdTO\OYec\encefa]sVQo]TnXW{^]nadpeayq_„hQ€jP…x\Œv\u^™oS™yI‹qNŠnB~=›„EŽ†@‘~NšŠI¤‡Q”O|9”u@–s;w1.§x7¨Š5¬}8«ƒ;«2¢‚7­ƒ/§Š9¶}.¬v&¸z-¶0º~'Ç~0¿)Œ)·‡*¿“(º0½¡:¸™9Ä¡=º—+ºŒ5¯/¯’'µ4·Ž0²•3¬‰@°‘9¬”C´œB§¡?ª Aº—AÁš6¾¤4»œ1­7¶¤4°®.¬¯1±­9³š>ª›Fº¢Fµ¯N°E¶©E´–G¤—I¤¤GºŸ8¸ŸH²´Q·ªHÀ°9¸«;¿›3—0Á¡)¼6¶˜2Ę5Ÿ4ɚ+¾4¼­6ǬB·©7±¦GÀ¦J¿¨=º§Gº¢A¤£EžœU™‘M—šRššD™—D££J¢—L›¨Q•£C˜¤Q¡ªVš£Nš²S•©R›²K˜­Q¡´I–¶Y‘ªP‹µL‰±MŠ©Y‘­^‡¥V†¥YŽ¦]†¬W‡¯\ŒµOŽ°Pˆ²JƒµD“±F†¸I’Ç@Žº=É5ˆÈBŠÃH‡ÇD‰Æ@’ÊA‰Ñ?€ÏK‚ÑT|ËBÄK|ÊK‰ØGƒÒ;vÕ@}Ú@€ÏLyÝGjØGsÒFpÅ>jÍGrÒFdÒHgËHnÆNdÂEqÆEzÓ:uÎ>fÃ>lÁ6`Á0j´-j±+e³/_µ9g³4`±7b¶D`¼8[°8\´>AA@G$>L&JM1MK&HI*SD8JH5BUCDSBOJ8?A?@GG=BU;GWJPMGOVFPWE^XI`MRVQIPbH[\NUT[YP`d[Z]d[`lTZfR`hUYvfTrf_sdglm]no]~iPŒdS‰oN•uM—xP˜yOyR–}EŒr=y;›|DžˆM„G¡ŽJ¡M¤‰=ž‚:£„7žxA›€:|,¬ˆ6©†;«‚8›|1š9¡u=ªy:¢‡;±‚2µ.­y"¯~%±}0¿s+¿„/Ž9̆3ƍ3ǖ-¿š5Ȝ<ʖ5ʙ:ő/À‡4ª‹.­Œ&®Š,¯3°•A¾”?»œ@µ›3¥˜5¨›;µž<¹¡1¼¤1¼£;¬œ3²§0¬¥>´®?¬ª6¸ªD³›Aº¤E·«E·°:®£7¤¥C§šFµ¤A·§=¼«L³­K¼«D½°:·¢0¾–2¾Ÿ/º—8/½—*¿¦*Æ¥/¿¢6Æ©1Á³5˵=¼·?¶¬@²ŸE¾£I¹£Q³§Kª˜S¢˜PŸ—P™›P“”M›šQ¥¡OžžG–¦Q•«I“®K¡­G£§M˜®K˜©K›±Mž¯L¡¯U‘´QŽ¨V€ªW€¦H…§O­O‡²R‰²_”·Y‘±]Š¼Z¸L‚°M‡®VƒµMŠ¯L¯LŽÀE†Ç;ŽÄ<½I‚ÄGˆÈAŽÌ=„ÆI‰ÊG‡ÏI}ÅR†ÉMÇB|ÌQ„ÔO€ßNxßFÔ>{ÕEvÍEnÌFuÉ>kÄ?lÁ;eÆ;]ÎDeÑFiËKgÈFhÔCjÏ=tÉ=nÎBmÑBbÄ?Zº?`¶3_À8g¼5^´¤~CŸƒ?¥Š+©-³„1¨„.¬|+°r*µ€(´‰/¹;¾“Aə<è/˞1ř/ʚ6·•=½‡4·<´Š7³—2¶‹<µ˜@»A±“;®”6¬‘=ª›Eº¢D±§;»®0´¤-³«5»œ<·ª;µ›=²ª?²«;¨¢K¯ªE±£Bµ£8¹­8²¢@´¦G³ K®¤G­®J±«D¸¬C®¶B¹¥4·˜<¼›C¶—B˜?À™7Æ£*»š5é/Æ®9Ò§0Ê©6Ì´=¼ :À­F¹£B¯¡Eµ˜Q¨—N£˜S¦”J¨¥O£¡R›žIž¢K™©R•­Qž¥Mž§Oœ£O´G °V™´J¼Lª°Z£ªMŸ¤S¢W‡©J‡¦H¶H‡·Z“¶W•¯b‰¯Z•¹^µRÅN—³R–¯IŒ¹Q‡±J‰ÁFÀO”¸>‰ÈI‹ÆEˆÆJ†Ä@ƒÅ@‰ÅJ‰ÐKƒÈNvÌL…ÌE†ÐLŠÍNÚOwØK}â@yØF|ÓKyØGmÎAlÉChÍ>uÒ>gÓAiÑDeÐFlÍ=mÊ>fÐ=pÆJrÈHkÃ?_ÎGaÇChÄ:a¼8`¾5fÂ6nµ>sº>a®Aa´?c½8t­Au¯Is¶Lz¬Co¤@n¨Gy­Ns²M}µN~¦M{¨RƒªQs¨Q|¦G£Hw=o­>}¨@u²3w®@~²S}­R}™Q‰©R‚¢S‚¥\”š`Ž›[Š¡bxœV{¨[{©T‡™]}š`†¡k‡žhz h}Žfx•Z}‰azƒ`‚ƒ`‹‚OU?"I@%=?$BO*RI#PI+RC.VM3YK@RNJXHCNMFDIRHP]KOYPJSYMZaIRcNXfW\m\OgTSj]Xb\Rj_UnbYmaTsjZudR|ga…q^‡iXŒpYˆsO‰sU…wTŽoR›vP™rHœzG“Š?˜ˆ7•>¢…EŸ‹C¡=§‡?¤~>„4–ˆ7”.ž†8 ~3¤w/­r/³o6¨x@©†A­ƒ:¢~.¨‚+¨ƒ+¥{'¢v(°z&ª…*¬Š'±”0»™=Ä¢8Ȥ6Áª.È¡0·œ:·‘9¹Œ6²Ž;¾ŒG¿•B¸˜9º™=¯¡<³™;ºœ;±ŽB«Ž7°ž=°›7º©-¸¤+À©:¶ AµžG¯œK§šC³¤F®ªJ²£Eµ¨I¿£K»­=°­:³®>°©?®¥MºžMµ¢Cº¢M¯«G«¡@¨šA¶;µ“C½=º“>´œ1¿Ÿ5¦5ʨ4Õ©5Ñ­6É£8Ë¡D¿›A»¦I¯¡S«—Tª‘^©šZª™S§ŸN¦’K©–R¤¦UŸ§Q›¡Lž¦Už«J™¤MŸ®R¡±Uª¯\ª¶U¢²K£ªM˜žT¡J„«GŠ«N…¸Nƒ·[ˆ¼f‘¯bŠ·eŒ¿a‰»f‘ÄYŒÅQ”µK™¶NŒ´O·G•ÁI‘¹M’»EˆÃOÄK{Ð@„ÎE‰Æ?‚ÇB~ÈLwÉT‚ÆN…ÎJÜJˆÙQ‚åFxáJrâBtÙ@wÔAhËMiÌOqÌKoÈArÓCh×FoÏ;mÈ7kÌ;tÔ@nÊHsÍ?hÉ<_Ò8_Ë@^¼9b¹6f¶6o¹:z¿>t¹1lº3l²;u´Jt¼Kw¼Ey´Gs³R|­Kz­S~´Q´Zv³Xº[ƒ¯O|¨K{¦OwH„£M„¢Gy›<ƒ¨<}¨=¡E{¥Gy©U…žX†¥U‡¦_Œ£S“SœQŸX€§Vuª\¬\~Ÿ\w \¢gˆ›bžj†“d}atŽisŠb‰`~€\$L>!IC.PG"ATEE+QF$NG:TL1GEAUO>FDAOPJLOUPKPNPHN]QSbJ[]ITePOcMMd\RhYFi^IicYikKriSo_ZrdQƒgRƒhbaRƒdXlM€jQ…fG‹kF™gM”wK”tNž|:‘†E‹’=Œ:—8—†>¥ƒA¤‹1“8ž‹<˜…1š„=£{.žt-¯{7§w@¥wIµ…6¥z@¯{2¡}2­-´{8³x#²%ª‡1´3ª”.¸;ŜCț5ř/ɦ6Ǥ.¶Ÿ1¸”/«œ7µ–E–D·JÀœCº 9³•C±›;ª–J«’9º•0´™8¸£6¿«4¾£9»¨<µ¤<® J®¨D¹­O¿°E»¬J¿¤I³®M»§DÀ¦B¶°D´ªQª²Pµ­E¿©G¼±N½¤OªL«I°–E•M·IďB½£9Á8½¦7À¬:̪4È©8ϧGÌ¥LĪD¾žD´¦J§¥V¦£Z®œW§¤]¨žSª˜H¥šV¥œO¨¯X—¬Qš§T¥¡NžžG¥©J§V °O¨ªUŸ¯U˜®K¤¥Q“£E‹¯Tˆ²Hˆ´N‹¼OŽ´V™µa›ÀWŽ¾U›¿_ÃUš¸N“¼J‹¸T½NŠÁM·I–¾LÃJ…»FÉEÃCŒÊEÉ>†ÂH…ËC~ÐYwËVÉD†ÎY„Û_‚ÞWÜUr×ShÚ?pÓAfÑTqÊFxÏJsÈNvÃ@mÅ=qÎ?g¿>tÇFlÂChÆGjÊEh¿3bÇA`Í?aÃ;d¶2k±3tµ;p¸;k·1j·?oº9o¾Bn³A{¶@€¹A†¸Qy»M~®Q€°Z®[ƒ®P…²O‡«F~®K† Q€¡U‹§L|¨K§E‚«?~©LuFt¥J„—J|–X‡žU’ŸS‘˜^• P—\wžMt­S|­dx©X€¨X€ªX~«d…¡_‰›h}Ž[‚˜gƒ—]“cvˆY„PHN'DE,F>0OG%QL)KJ2LN4KM>LA=IFDME9NAAP=8M<>I:?Q@DJK?BG=AHKPDON>QNFISJQQVRUV`IMZQVcNNjHPdQBc^DkaSfeYklTz[Vz[S{ZP{[[x\Y~bM}gG~dH~fKfKpNoOŽzJ˜}A–CŒ‘@‡”B‡<ˆŒ:‘ŽA>š0žŒ3”z?Ÿz9œz4£o<¡u8±r9³|A³‚<¨{6­}9¤}8¨„<³„8ª„-±‰*²‚5ª1°‡A®Ž?´—<¿“<½ 9­8Ş7¹œ/¸;°™8¹‹:·A³™A¶ L­’Mµ’@¬J®œD·š<º˜4¼™0Á¡5ě+Àœ2¹¦1¾§Aµ­Iº¯C¼¨AÀ§O½«G·«P¸¬PÀSµ¤M°£S©©Yª°U¶®V¹¯I¸§O»¤V®¤N°›E¼›EßSÀ™YÁ–NŸAÇ£=Å HÅ CΤBÊ®?É«EÅ­C½¯?¾¡<­¨?¬¢M®›S¬¥\«™V ”Ož’G£’HžšV£ªT¡£KœF¡œF¦¥Ož V¥¢V£®U­¬N£¨F™¢I¢«J¡¦Q“¬Q‘±O˜´R½M™ÁW™·T”ÇO“ÅUœÎ\žÆWšÈZÀMŠ¼Z€½W¶R–¹EšÀL“ÀLËB‰ÄG„Ñ@ŽÑIˆÑOˆÃIwÆSsÈLyÇQ‡ÐMŠÝX‹à]~Üa{ÛWrØKiÏJnØKqÔNtÔIsËFlÊIu¾Gn¿Mk¾Bu¾XÈ;Z¼0NG7LB6IA;V?8L@9EDJE@>E=C@JUHFRJOHOQLGVYGOUCUZ?RkAHeMKlQO`SIaaLfeKh_StfR}_[{[KvZL\Q|_Iw^KƒTF€YH€aH‡hMŽkN’wL•{N€?‰8—?Ž‡<”3ˆ‰>‹‰B‘Ž8—„>š:™„8™{;£„F r<¥nG¯{A¯vC¨u>£‚<ª‚?¤ƒ7¥y8¦‚0³ˆ0­*¥‹0¦Š-°Ž:®‡5±–B½›6Á¦0À±<¿œ;½•-³˜4·‘F®•C´Š=¼M»’E²•A¼”@¬’@³”I» :º @¶š1¼¡:È 3Ì«>¾¨:æF¶©F®;¼§HÀ²QƦM¾¬Y¼­XşYº R¦¥I­¨K®¨Y®¤O¼©T²ªT¾¬O´§N¬H·¤R»§MɖW˒HśJ͘?Ο?΢CϤIÏ°7Â¥EɯBÌ¡CɦB¢G¶©NµW®¬^¤–R®•J¯šL«šMžW¦«J «Q™«Nš«K žN¦¤W©¦R¤¨O§ TœªH›J¢¢H§ªY™­W”¹J´R–³S”µPÀ]“ÀS’ÂW¡¼V”·Zž¾[–ÄZ‹¾Q‡º\Ž·T†¾BÂS”¹[‘ÁO„ÆQÉV“ÄKÊK…ÎH‹ÇNuËV|ËH„ÑJ€Ò\ŒÚV}ÒVrÒYrÉRlÊUsÑXpØSdÐCiËLr¿Dh¿;eºBuÀNnÁw´5q¸BhÂBkµ=r³Ku¸M€»E‡´O~½L‚¸Wˆ«XˆºU‹½Y‹¶O~ºF†°I¬;‹­J}±Iˆ°B…¡D~ŸH‚ŸKƒŸL|šNw’F€’Tƒ–UˆžW’—T«YŠ¥Ux£L«[~«^s¢X} dw™a¦Xw¥a¥Xš_„˜_ŒcŽ”S€ˆS}W[?RI PA+IF5LF>T<>XE?ODDOC:VCAVG9K@7MCACI]FBlKDkUIcbJl^GihGy`G|^S{`R~fSveXyVKu^N€XJ„VJxUCz^C…gA‡o@ƒxEŒxE’B†:‚Ž5Œ?†‡7‡Š6ˆ~5’5“‰@—†;Ÿ@¬…J©ƒF°}K©vM«yG¯}@®€?«€@¤B®|:«…>¦Š8 €:©…3£„*®‘1¨/§‰<·Ž5¸š0º£-º¥0¾œ6´ž9¹=­•F®P·”J´ŽR¸•H·œH¿”D³—:²š=³¤Aºœ=º™CŦ;Ì¢>È«:É£:¾¬> ?À£=È£BîMÀµS°[½¦W¸¡V¸ S«¦J±£T­­Pª¯W®ŸQ¸¦R¸¢UµªY·©LºªK¾P»šUǙLƒFƛNÍ¡GÉ¡HğIϪ9βBůFÄ¥FÈ¥AÁ®E²¬M·¦G­¢R¯¡V²P®˜X¬ŸS¬¨P¢©K¢¯Eœ¨Kš¯M¥¨Y¯œU¨›W¨¡W¢™O£•S¢¢T¦²Pœ²O’»J’³R’µY”µ\ŽÄS“ÂVœÉQœÀS·T—·Y•·O–ÄVŠÉJ…¿O{¿RÇPŒÊ[ŽÃX€¸`€»`‰Å\‡Ã[‰ÅSŽËL‹ÉG‚ÖQxßZÙS|âLÙVwØXuÍ[{ÐVrÐUtÏ^eÒUdÇGcÅGeºIc¸@a¿Jo¸Ip³Jj»Fh·9OEFDU>DNJGTAL[:OW;IWGA\FCiMi_Jc`=d`OghFijLufIaEu\FnQ9rW9‚SD€aI~SB†WF†^I~b<€u7wFˆˆHƒŒ8ƒ‚:…‰3x;‚};…{/‹;Ž~9 F–HŸ€D¦‹L§‡J´vJ©ƒ?­„Cª|=±6¯„8²‡E°†<ªŒ3²Š8«‡>¦0±’@¨’CªŒB«–8«›.¼™)¹¦-­¡7© B± I¨—F²‘Q±šI¯œE±JÀ”KÀ¡D½—=ºA»7½“9´©C¿®8¢>È©@«@´¤I¾¨?Ĥ=Ä©L¼¤Ié]ɪ^­N·§P¶¦G®¥H°«P¶¢O¯ M±•I¸œZ¸ U¹ Nµ¢Nº›T²—ZÎNȜRşHÇ¢VÇ¡VÄ¢NʤCУ@Ï¢:Å«DÁ®D̨7µ­J°¬M³¦Sµ¤Sµ©Q¬¬B¦«N«¥C¦©IŸŸAœ¤Fš¦Mœ¢K©¢TŸ¥Z°ŸU¤¤_¨]¢¢RŸ¨[¨ª\¥¹[œ»W›´P—·N—½S›ÀY˜´`“½[–ËQŸÀ[˜´\ÀN‹¸XŠ¹]Š´YÁ\‚ÒTÍS’º_‚ÀVŠ¹_»U}ÄR‹ÓXŒÑOÜW†ÛI‚ÜR~ÎW{Û^wß[tÔ[ÔZwØ\lÕOkÜU]ÌUeÒRa¿@]ÄKj·Gr²Ck»Jg¼;iÄ9e»HcÈ>^ÅKd´;e²@^¸9eÀ3k¹=o¼6d³Cr³1q°2uÂ5bÅEvÂGpÁC€¾Oy±O…´Iƒ¸F‚³Lˆ·S†ªP‹ºVŒ­J~µH‡¶KŒµC±G‰¯7§?„žH™GŠ¢=…‘H•E~žK‡—Bƒ¨?Ž¥O“ªQ³P†§Hz¢W€ªRŠU~¨\€«a{žet [€£b‚™c…š]y“Y‡Œ^Ž•^†–R”TG>&L>2M?0?I/KM3JN3KJ>H9DL4BE5NIXKN\CLaFP]:H`jdI^[IZgAgdAf_>tfBug=l\8~X8\3v^>wZDy\J^F_8Še:wJ…€HŽ}FŽ~A‡n<ˆo;…:Œ‚.œ€/šq5–s>›uI¯zJ²‰G°ƒ8´7¸@±†>¹}A±x4ª‡C®ŠGµ…>³ˆ?¥D£?°;¬‰?£A¡‡>©•@¥“6±˜0¹™$»—9®¡=¯£B±˜K±žH¬¡F¨¢G®•R°™DÀ£<¼—3²’4ºC³™F¿¢CÁ­>ɯ;ĬB¸¤;»¨CŪFͬBÉ¡DÁ¡MƧYÁœ[½¦Lµ§F»©B²K¸šL¸¤N·¨I´œR¹¡W²¡Y²§OÁ›K´’Nµ’U´—FĒG̖IÈ£S̪U˟LÏ¥GÒ¡9Ø­4Ò©6È¢CÅ >¾®>¹¬E´£Q»¡M½«H­­B£®<¡ Dž¡J¬¡F¤ŸL™©U›¥]ž¥U¬¬Y¨§_¨¨X¢¦`¡§^­¡T¨¤Zž³]˜²T˜·O–½QŒ¿TœÁR›µXžÀ[ÅV–¶R˜µT‘ÀU¹V¼Z‹º_Œ½^”Í[‰ÍbŽÀZÂbƒ½`É]xÌZ‡Ö[„×P…ÛSyÜNrÕ[{ÐY‚Í]{ÕWwÓ]ÖQ|ÒQuÞLtÜNcÕL`ÉEbÉBkÃBnÁHf½Bm¸?r·Fl»ˆ™7~˜.„š6ƒ¡9šI¥N‚£D£Q¦NŠªG„®F| MzT†£[‰›b…¥e…¥bšb˜aw¡\|œ_Ž]~d…˜^‹—U…¡V‹Ÿ\*N=&U>(L91?J1II2BP:AD4CF@CQAAQ€hA„zJ‹~?‰t;w2l>l.ƒ{0–u9™h>™o3£oB¥„I¯?¯y6¾z?­†1±‡A«€;¨z=¥~6³ƒ<¤“:©9¤‰?£†D¨Ž5¯†7«‡;¦†?¥–6£3¬‘/ªŸ­”7´©?¶™>·™Jºž=®ž@³¤K´ T²˜H»—>±Ÿ?¾œ@½Ž9µ™E»™J¸®FµžL»¬H¿ž@¼¬CƛAÒ¦RÄ£OàSÄ NÈ¢Z¼¦U·­HºœNºšN½¦S¢U¼›V°šM¿›Xµ«J·¢FÇ¡O»—H¼˜K»™IǞ@ȧ?Á¨MÛTMƞM˘;ɨ>Ë¡CÍ©BÒ©7ǧHÀªKÁ®H¹§L¸ H®£F´¡C«ªJ§Ÿ=¯›?¢©P˜±N¢­[œ°R©R±«_¬£^¢®[¥«c§ªS§±_¥¯T¨¼Q¢¯K•¾X“¾W™³M’±UŠºO—Ê[’¸Y“´W’»P–ºMŒÆa‰ÈcÁW‘ÄNÀP…ÌT}ÂV†¾V{ÏUËUƒÉPŠÝS„ÖX‚ÑVuË\ÒSÑbtÏa{Ô`|ÐW}ÞOuãIcáM_ÒXXÇLcÅAjÉKqÇTnÀBmÃ?nÀBeÀA]´C_ºNlÂ=jºDa³Aj±De¶AbÉ7nÃ7d¾@tºDp°PsÂBq¹KrÃD}º;€±Nv­Iz­M…¶N‡ºU…·R…©C‚œ>y¡Ly¢M~£G‡žJ‹­E‰±<—«6Ž >›@™6ƒŸ:“”B‚žH{©E³I’³Iˆ®C†­C„¨N¢\œUšdŠ¨[“¥X€©\ƒ£]~˜Z€¨_u–X{Z{—P‘”U’¦M•žX%I3-M4,O6'IH$GS-DL+HL5?H5CE8MI@KGDJQLBNBJNLSRMLJRA?T?9W43Z:oY=oV=rZ3m`8dW;l\7gS>`Q8c`=nk9sf¾”C»£Hµ U°žR¼›OǙJÆ¡DÁ“NǒTϜUʗZ¼§P½©KƲNÁ®J¸§X¶¢X½ ^¿ YĘO½ J¹ªD»£L´—C¾•G´ŠE¶N¶ H¹¢B¶­F¹¦D½¤IÀ¤PƟPÉ KÀ¡?Á¢CÎ¥=ͨ=Ó¥KÌ¥GƱD¾¬NÁ S»žO®šK©¤>¡ªG¨ C§°AŸ±L¥©R¥©T£°\­§[¦´Zª¶b¥±g¦´c¤¹^¨®Už¼Q¢¸W ·Y¤ºQ¤ÁO“»Q™¶VŽÀQ™ÁY™Á[›¾Vž¾R™¿RÉ\¾[ŽÂMŒÌIŠÆQ~ÍY}ÈZ‚ÅX|Í_ÚZ×U{ÛX}ÐS‚Î]uÌVo×WrÑfÌf{×a|ÕXuÜQbÚ[`ÔW[Ê[^ÂNaÇOiÆNqÁMqÈJb¼LcºGa¿@aºCf¾CiÃ8l¼7_¼=dÅ9nÇ;vÍDqÄHmÉSw¾QuÈOtÂK}ÁH}·B~¹K|²J|¹F³L{´R~³H~¡M€ E„™H¢F„¤E‚§NŽ¢D‘«D˜©C•¤A‡¡2…›4ž8‡ŸAŒ§?…¬LŒ§M†³F†®=€§B|E†T~\„›[ˆ—Z£Vˆ¢OªU‚¡P€¤N}Zy•Z‹œ]‹P‹˜Z¢S"<3&I<@8>IKE*C;)HD2A=.F>1::@G>8=IcDCcG=]U=aV7q^2kd4d^6gL?dTC_ODc]@`hAh[„m?‹x<‰r9kBŽa1’c.šx-¤r;£m5ªt9·u>º|8¿‰5¿‡A¹~8®‰=¯‹4§•;ŸŠ9«…3£“9«Š6Ÿˆ8 —/ª‰>´–:°0œŠ;¥›,ªŽ%«š&½¡.»¦0»¡;¸—:´–F¸—:µF´™?µ§B½™HÀF¾œ@¯—>¿§Cµ§S¼šHÁ˜M»¦U›TÀŸNęPĜOǙZÁ¥S¹¦V»¦NÁ§D¹ S±žK¾ª[Ä­S½©VǤRÁ¡SÁªP¼ J¿œO·“Oµ—R¸—Cµ˜O¼¤Oµ©G¾­@Ç¢N¼ªJÀ•EΣKȤ=Á¢Iʟ9Ò¬BÞCɱ<¿±CëPº¥R°¯C¸±8®¤=°£E¯§F±±Q®K«°L¬µVµ°e®¬džµV¥­Y¨ÀZ£¸_›½Yªµa¤Ág ºY£ÅJš¿W”ÄYŒºQŽÅV”¸[—½V•Ê]™¼SÍUˆÇ[ÌaÏWˆÉ]ŠÓT…Í^~ÓWÕ`‰Ä]†Ì]…Ý[…Ód…ÇTtÔasÎZrÉXrÕotÖdzÒ^rÞirÙafÑ]iÓO_ÏN\¿UaÈReÏFiÆFjÍKeÄBrÃF]³K^¿Q^·>`»;gÅ@cÂAgÂ>iÂIfÂCwÀDzµQ€µRw¿L|¼Mƒ½H·Ez´I|´Px®N‰²GµAx·J³@€ªK†ªE|§?ƒ§<€¦N„©N‰³CŒ§H‘¥=•£;‹,‘¤3Ž¨?†¥I…¥OŠ³Fˆ´@¨Ku¯Gƒ¨B™P~žU¥^‡¦U‹¬Y”«Y“¥X‹±Oz«Yuœa„b‡¥WFžX‚®V3/:9<9@D+<>.@8)E@.:C+=8-3<-=:77B=EOJCLNJHJ?IL@JNGLI9IO5;UE6RF>YK@eLAdO5^N7gU³j8¸pA®‚9¹z;¼=·…A°ˆ5¨Š3ŸŽ6Ÿ”:§‰?ž‘@¢“4¦’6¡—:§ >¯—=«”A¤‹4§–*¡’.Ÿ•'­˜0³¡4²˜?¶š:«–?® C³?·›L»¨K²K¶“B¶ŸI¬¦J®œE¾¢LºŸI¿¢Rº§ZºŸU¿ O¸ŸY´žT¿ SƟ[ÁšU¹œQ¿¨IÅ­O¼©JÄ°Y¾­\º¬VƦP»¯F½ªLƞIƕEĔ?´œG¬œH²˜Jµ¤O¶¨HÆ¥Kŧ?¼œBÛDÊ @Ѥ<Õ¨:È¡EÈ«?Ǧ9ñDɪ=Æ¥C¾°L¼±F³@¶¨9·®=»«Q±¬U¥®W ±R«¯d¯°e©«e›°V½`£ºb¡¶^½W¢¶_ª¸gšÃd‘ÅO–ÍJÆU‹ÃY½N’ÆX—ÄYŠÆRŠÈ\‘Í_‘Êa‰ÆfŠÎbŒÊWÒ[†ÒZ‚ÖX‚ÐW‰È[ŒÆe†Õb†Í^€Íd|Ðg|ÎZvÒ_rÙfvÎmvÒgqÕ`mÜioÜ_sÐRtÌWgÍ[hÆWpÆOmÎPfÓJmÄNo¼G_³R]¹Q`ºH\½K_ÄE`ÅBc¹F_·Jk»Lp¼E|½D|¶L{°H~²D©G…°?{¯F{¬N}¤K‚­:~³A}±?v«D}®A†®=‰¦=§@‰ C‘£M’ªI¨H—š5‹¦7¥-™«;¡@•¦:”ªB„£?„«Hy³Jz¬;{©:D 0C1351.D.=@24>+0:46G66DA9B>BHMBKD4RT:KJEFVF;I:FZG;ZJ0cB8jP2mP4mH8kQ8kV5b_;iaBaU8lQ/^W@_Z<\VGbd;`c/a\/dW5mV6iW;lV>v]9t]3ua<Œ_:Œc4Žn;Žn>‘fJ‡i;…{8‘q?‰k4’h1‘^&¢k,¡i0«q3®e>¸l9·w7¹†>±|@²‹2¬;§–0¢–2œŒ3°Š@©“9›•/¤—A¢‡?®A¤™8¥‹7ªŒ5¦Ž1ž'Ÿ+«–,©—3­™;œ˜4œ˜@¬–:©©<¶™M»¡V­—E¸¡V¯™U©¡G·žP³œ[¶¢RµU¶”\µ™S°ž\¿‘Z¶Tâ`º“WɕY¼ X»®JéUñUĦQ»¯LÆ©ZãXÅ¥Tº¦Q·—EƜJº™E¿™TµJ¯™N±˜I·¡BĨ<¼žEʙ@ɞ@Ȟ@՝?Ì¢FÕ¢DЪA̵:Ô°=̶7Í®F¼·;˲BÇ»EÀ°J¯¶?±¨G·¸Mµ´Q²¹P¥³[Ÿ»_žÀ]™¼b˜¿^š½[¢¹`˜ÅU˜·a ½b¢»Z˜È[›ÇYŠ½W“»L…ÂJ‹Ë[ÆUÌT”Éb”È]“Ã`…Ño„Ì_‡ÐhŠÐXÙ_…Ö\×\ŠÊ[…Ú_~ÓdÚauÕjuÒbrÐfpÚ[oäjnàj}Ò`nÛqfÚetÝhtÕ_kÉ\lÉ[mÏS`¿^eÉZbÕLiÅYk»P_ÁNZÅWeÄQ\ÊNg¿FZÉGcÉFdÃDc¹MzºNz¶@z¿I†¼D‹º<ƒ¬7‘·>ŽªC‚¬M{¹L„ªD€¶Au®9ƒ«4|±A„¤>ƒ¤3Žž6‚¢BŠ›A™œD¥;™¢;2—­-š¤-”£:“ª9”µ>®H“¬;‚¦G…¡>@>E;?N9MP8RR7EW7FTD?ZC;g@2e;4gG4bH0kF4bK)aT-jN3iV:lT=gU8]S6]_D]T@_X=b`;[W7\Q1lU+t`.oY2kU7uX0€X>…_:~j6g8„bFˆdD…hH‰n>‡p=p:Žq/˜g,¥i*£].¬h-°h2³s*ºs2½=´€>±‰7«“;©˜7¡’:®ˆ;ªA¯ˆ7¢;£D«ƒ<žŽA¢Ž?ª’F©’@¤–:˜.›*—”2œš,—•-’š2˜¡7›œ?©£@¥¢K¬—S±›R²X­¡Z®™T¸œU´›X´–X­Ž]¬ˆ_±ŽW±”Q·‘Q¾_Á—]¾žUŝ\˦ZȦXÄ«YÆ©UʨIÁ¦L¼œPÝT½–SŸPµGµœM´žM½šQ¶Y¹–R·£D¢?Ǚ:½›<½¢<Å©EÅ©PÉ¡MÉ£GÒ©KرDÙµ<Ö±6Ï»:ÆÅ<ÊÀ7ȶ7ʲE¿¸H·°C·ºH¹·M¿ÁP³¹X©º_Ã_–ÐjšÐdšÐ]˜Éa–ÆW’Ã\›¹h ¼c¢»n ÁhšÇd“ÀZŽ¾UŠÍUÓY‡Ë[ŠÍ_Î^…ÊbŽÆhŽÎq‚ÓmÔn‡Ò`ˆÊaŒÍjŽËc†Ö`|Ó`yÛmyÜuzÐl}ÖbqÚ`m×]kÞiqÛorÙgkÝllÖmlÚbhÎcrÈekÇ_bÄ\`ÇejÁ^jË^i¿`lÄVhÇReÈWnÄSlÉYpÀQeÁRhÇOeÆIpÀArÂJt¹;‚»9¸4‰µ:ƒ³1‹»9…¹;Šµ@Š®K‡³E‹¯@~µ9´0Œ¨/’ž:‰Ÿ5Ž’>ˆ•>Ž>“›=–¡3“¢0–£4•­2—­2—­/–ª0—°A“³F¥>Œ¬K¡It§Ox­N{©V‚¦Z|¬O€¯R‹³LŒ¬U„¨]~°b‰­\ƒ¯[‚¬Uz´W|¶Q|ªJ>.$4)*1:#.<032/(<3/9+4J7.E,/@8.C1?@24:9cC.gL.^P8eB1_K5lP4eQ4hb9]_+aa7eX;qWDrN@d_4dS?]R3]`1VR/fZ.l`$fT+p_,uZ'xW/xX9…e>}_:‚r5‚hD€cCƒu;m9…m7™s>™t=•p.Ÿq2®_+³i1¯n6®q6¼v:ºs7§}E°‹=²J­ˆ9‡9 „@¨‡<£8¤‘FŸ…G®ˆIœ„H£†:©5¬—8¢’0£˜6’œ(œ/™(’5¤–9 ¨?¦4›¦@ ŸDŸšV©¡U¶›S«›W«–Qµ¤M¸¢`²—Y´’Y¶–P¬Z¸T·œO³ SØ[¹—aǚVÅ©^¾£XÅ«]ºµ\À©R¹°MÄ¡NÅ¡OÀ˜Y²£P¹«WÀ¡V¹T½£_¿©RµŸN¶¢C¼š=Ä©8¶›=Â¥=À­Mɤ@˦?ɯHÖ­DÕ®?л:Ǻ?Ì»?ÿBαDòOÍ´LÆ°Q¼¨J´¶H°·P³·\²»[¡¿Y¦ÇbÄ`’ÉcžË]šÒ\“ÐTšÅc¢»f¡¶]”¼džÁj”¶ZŒ»TÂV‹¿\‰ÎP‘ÆbŠÅ\Ê_—ÉfœÂkˆÄr‚ÄkÓ_†Ìa…Êf—ÔcˆÐe‹ÞZ‡Óm‚Úo†Òj…ÒkÓ`v×arÔ`e×dnÞoqÞmhÕimÜhmÊhmÚ_iÖioÖc`ÉibÇZ]¿gbÎfc¿ahÃVeÉZ_½\mÊ`nÉ_e¾Lm¸Nk¸Up»FmÃBoÄE|³:w³F~¹9~±?²7¯>„»F²C„²7´Bz´4„¬7‡¨/ƒ­3„®)ƒ4 .…›7‡¤;‘ F”¦<•©8˜¦4¶<›°4”©,§=œ¶7Š­GŒ«DŒ AœEx°O|®Hr°P} \®Y«W‡²Y‰¯\·U©a€·X}ºT{µ_w´[„µH‚±I7+&52+4(-:-57*-0$&>.)B53?.399.D65F/9J92FK0DQ1LP5NKE>SHBXM:WE7[M0cD-hK2lH(bN+dX9]`7bb:f\2oR;rK>mL=qS/gR-e\8`R1`X*]b&h])o\(t[.uU6wZ.{c8z^4x_@ƒk:ˆs<ƒr;€j6Šl@‰gG‘m@‘h;s2Ÿm/ªr0¶{2°w@·u?°s3§u?©zK¦„B±|H®‚:žˆ4Ÿˆ4¢…6©Œ4ž@œ“MŸ’Iª†H¦†=§> ˜;¢”>¢•4”™+“™+Œ6–4§ <©¡8¢¤Fž¡BŸ«JŸ§G¢›Sµ“N³•J¬šKµ§^»©`³«]¯œ`± N³”Lº™Vµ Uº¥`À¡YÁŸ_·™W°¡Y¹©TÁ±P·°XÀ·S¸¯DÀ£G·£M¶O°¡W¿£]¿¯W¶ªQ¹¨[¹¤Y¹¯M²¦L¼œD¹¤@¶¬CÄ°MÅ®IÒ¢Cͤ<ƯEͯ?Õ´:ѳ=®=Á´EϹMÒ­JĵUïT¼­Q»«T±®S·¬Z¸³O³´S­³V£¼YŸÀN–ÈQ›ÔR¤ÐR›Î[ Ê[¡Á] ½g¶jŒº`‡½d‡¼\ŽÁZ‰½Z…ÅRŽÒWšÂ_›Ãi‘Æk˜Äe”Àh“Æj•ÎWŠÆR‰ÑR•Ö`›×[”×_ŒØb“Òp‰ßc‰ÝcxÕZuÜbzÖ`mÑiiÏnm×cuÑbpÑpw×gsÕ^oÝkoÓipÐjfÂ^eÉ]gÅanÍcnÇYdÀ\\ÀbYÈbgÅTh¹Vx¾T}·Pu¼PlÀAj·ChÁBuºBt¶Ezº@„»Cƒ²D…¨CŠ¯E}²:~¸3}²1‚¬=‚©6Š±,ƒµ4ƒ¨-„§5Œ™8šG€¤L‡Ÿ=ˆŸ>“¡B‘´5˜«4¦5˜¨<—±<•¹GŒ´B†«=Œ¨E€§Kt²El°EsªPt³I{´K„®M~±[y±Y²So¶[n¸\sÀWv¶TƒÀQ†¸J%,8%;*73)71$7-!6+*5=/*F38@27J4:H2:@78J7>VI7TG4UI5QFl^5gQ*kL9hC9uC7iE9bL/kR4gM/tU4pY+kY'mY,if2ya,nY/q[7ka@oh8}`9yiByk?‹kBŒaF•pI–pK{;ž|2¦x;©i3ªyD²w@§q<­~F¤|GµJ­ƒH­@´‰7›Š9£Œ6 ˆ8¢ƒ;¥—L>­“J®ˆ=¨†?¬†>§š5›’/˜>™”:• +ž’-¡Ž:››5©™BœªI•ŸD¡šE¥˜D³”B²LµœT­™Y½¢[¸¯Y±¦`ª–S·š[²ŸH²RºšQºšOŚO¿¦Jº¨L®£Q½±P·°Uµ­P°³M¹±Q·«M·´M¬±T°®Y°¤P³µTÀ³U³´`±±\¹²I¼¯N¹¨F°ªE·¢Qµ³JÇ®C̬C̦6и:ζ<͸FÒ®?ʱ=Æ©HÁ­NÔ¸DÒ´JÂ¥O¹¨Z¹¦V¼­\´¤`¹²_¶®W®±KÂM¨ÁKžÈQŸÍ]™ËQšÂa”Æ^›ÊZ™¾a”¹]¼WŠ³`ŒÁS„¾X‘ºU‘Èd’È\“Ì[’Ái™½g›Ãd¥Ía•¾k–ËX—ÈT˜É_•Ï^’Òc™Úk™Öj—ÝpÝh‡Û`‡Ú\nØckÓeqØ]m×^gÎ^wÖjtÄ`uËczÍlzÒerÍnoÇ^sÍ]iËboÑ^eÄZhÊScÊ]YÃZ^Â\aÆNgÅVvÎMqÅTq¶Aq´Nj±Mi¹Ln·DxÀ>z¶C|º@z·?u³=€±D|®9q«5~¨?zµ7ˆ²2‹§5€«3¥7‰¡,@‡©;…¨D€ž@‰ž@„§:’²6—«8“´9‰¨2–°:ƒ®F‹¥@‚«Mƒ§F‚±Bs¹GnªPk®Us¯W~¸Lt±U}°[©Nƒ´Jw³Mvµ^r¸b}¸Zx¶K´J,21/627-=)53#1;-4C57K90I1:M4:F8;B?=;J3:D4;G10S=2P:3ND4U=-\E2dU7eY>aUFkWǸ9ƽD˺?Ô¬DÑ©GÌ­GǬGóAͲHȲKĪPÇ®Oé^Ç©c¼¦_ª·[§·N¨ÂJ¤ÀMž»K¥ÅX¡¿_ŸÃVžÌZ™Ì`šÍ[™ÅWš»L—ÁO‘ÂJ‰µUŽ¯[Œº\”¿c“Êb‹Éc”Ã`•Ãa£ÊnŸÊk¤½e›¾bšÅYžÏ[¡Õ^¡ågœãn—âc˜ÚgÝoˆÜg„ßXxÐYyØdrÒ_hÉZnÑZsÎasÆ_nÄftÅhpÆdrÒimÔgpÑgrÌfuÐ_mÑYfÐRb×TdÌYoÆQiÎOuÓQwÎJwÇLt»BlÀKb¹Gcº@e¼FpºCo¾Iw¸GsµHz¤‡ª<€«?„¦L‚¦Eƒ·LŠ´Oƒ®Eq­Jo´Pw³Lw³U{±Vo£MpªQu­Kp³Zm³]{®Zy·Yv±O|µG',$-377$;+$?<-8=*0:9>=64;:6C/6?93DA<8BA;FA2F.1C.7C22K?6BB8EE.UB:_TlV5rV6`H._O6_E®‡@¨~G¥‹D ‘S¨’O²…=­‚C¡ˆ>¨‰=Ÿ“?Ÿ™=š’5›™2š“<¤Ž9 Ž;Ÿ˜9¡ KŸ¨G•ŸW¤›Pœ¡Q­’B¹‹<µ“P¾¢K¶ªQ»ŸTÀŸY±ªL¯¢S­±J°žB± F±šK¸™W² I¼žE¼ \¿±]·°T·«W¸¹W·µE¿¹J·¿]°µR¡´]«®W«¯\­·T·¯bº±Q±¦V´¯Y²¨\¬­O±ªR¶®L°¥=²µB¸¹>Ë¿IÉÄNÅ°EÖ®OĵSβO¿¸O¾µLãN·¦Xµ²^¶²^Á°c½§Y·©Z²¼I§ÁK¥¶J¡ÅT§¾^¤Ã\ž»\ Ä^žÇd£ÃV‘ºa•ÅU“Ê]“»[ƒµP…¼V†º\ŽÅ[•Â[–Â`˜Ê^¡Ël¤Àj›Íi£Æo¥Äe¤ÉZ§ÐežÖn—åg—ëg˜Þm“àg“Òj…×d‰Þ]Šà[„Ø^wÐaxÉbkÉZ|ÇXsÁ_oÍgƒÅhnÇboÊbsÕjmÛqjÚexÙ]wÉZlÓYsÖXoÊTgËTnÕYlÈF{ÕGtÁItÈCk¾>n³Gm°Kk°@u¯BkÂBk¼Ei´Nm¨Hl¡5y2u®369;-C>/<@./?=3B@78DB7J:/P17N=3C76GFfS4rU3lP8nG9bH8^M4c@AfD@eF3_X:e[4nf4l_;f\@o`4|c9~\9xdDpjIrqJkg:nrDzqG‚jO‹hH‰aGˆc?ˆp9’p@–o:™{?žzAœk9¯i;±jE·nE²k7«i;´pK¸yR²tI®y>¯{AªƒF¶ˆ@±ŒE§“M«—I¨K¢Š<§ƒ<‰F–@–’;™3¤: ’7 ‘5•Ž=‹–<’™CŸ Kž^¨Q¢ J®–A¯F¯™I½¦N¼¦Pº©Sµ¥T¶¤L°§M³«Mµ­F±ªJºŸF»›Sº£N´žO¶©[¿£b·¢U¹²R¸´V±®K´¸T·µ\¨®]¦®a°ªV²«R©¦W¯±V»°Q·³X¾¶\¶ªW»¯O²§E°žH®£B·ªO¸²L½»LνK͹EίJƱIĹUǵJ¸¬O·¥X³£W¯±T°®Q´£Sµ¤d©¹Y¬¼L¤¶F¡ºMšµW£¼VŸ¾Q »W§¾^¢Â]—¾]˜½a•½b—ÃZ¼RŠ»S’»VˆÁ]Š¿]’À] Âe ¿l¦ÀiÅq›År˜Êgž¼a¡¼ažËlœØmœÜg âmœÚp™Ùr–Öv‰Ún’ÛhŠáY„ÎZ‚ËXtÑbwÇa{ÊetÉ`zÎg‚Éo~ÔnnÑfkÌcwÔi{Þin×ikÑlxË^xØ_o×QhÜPrÑToÖLvÏNuÈCjÅ@pÊHm½Lp²Eq¬=l®Fl¶Dk­=l±Ex£?r 5vª:w¢0{¬2ƒ©8„«1‚3œ;©?|¥EzŸLs¥J{©H}ª?r´Ex¿JŒ¼M~¸Mx¨B…³:‰¹=°=‚®:€ª>|µJqªRn­Sv¨Xq¯Mq¬J`¢Jc¢Tj®Rh¦Vf¤Yq ak­[q¯SoªNs¯Hi¬S"*#"3'.-,;7287?4HB=eN?mM2fE2sYosOvvA‚kHˆrFˆp;…_B˜_8’d<œi=›pC qD“s?©lF¬nF«v?³h6©r9±j@¯uL¼tP´uQ¼pE°t>¿„H´‡L«ŽVªN«‹Dª‚6°Œ; ‰7•‘@”…4”•/›–6“@›‹<œŠ@ŠC¢F—¢M —Z¬S££H¦—N¶—E¯›Rµ§CÀ§E²¢V¶¢E³¥E±±U¾³Kº¥L®´G¾ŸF³ W·«O°žJ¿¡W¹£d´¨e³¯X½¶Qª¬X¸¨Qµ·X²ªZ²¶V±­Q®µN®¸M©±Q³¯N¶¹N¬¶L³´T¸¨M­¤C¹°@µ§G¶£Q³²M¸°UÊ¿JË°YδZǬW¾»_ŸM»³M½«T²¤P´­O¨­J«³[³¡f´µ\§°VÀI˜ºGžÁT—ÆN—½[Ä[•ÊU Ë]¢ÃZ˜Èb’Ç`¢Ì\ÂQ¿`‹µP™¶b–Â^¾b›¹d—¹`½h¢¾qËl•ÂfÆZ¥Ég¦Ìj¨Õc×n§Úi¡áf”ßm’Òn‡ãsŠÞ_ãZ‡ÑQƒÏL‚Ô^ŽÈf†Ðg„Ï_Ï`‹ÂmyÉjvÔhyÓo~×`qÜnpØjxÛcxÍW}Ô`pÑ]sÙWvÎRsËLyÈSs¼Hb¹DcÁJdº@i±>w°6y·8k²8uªIr®Am D~¡5¬0~²-|­2…±=}°2{ª3~©B~­Hw™@~ŸNy§Mv¡P|ªK{®Qx¿R¶R…®Ds®?}¸?Á8>=DBW89Q3?H>DO;AHBXV2ba0i\7i_o`:m^5q`2qe;tZEwZD€ZO~dMrrNrnOwtNvpH}kF‡nG“iE’f>™dDe=˜i?™sE—r@˜kI«u=¬v@¨wG©v?¹kF·l?¹lC¼kG¹rEºlOµzR¾~J¿|J¯‚Q³‚K¦‚;®‹<ª†6¨…7Ÿ†7’†>ŽŽ4”‹4‡E“‚J˜L›ŽN¡–Pœ¢KžŸV¥™L°PºU³—M±ŸF³¤D¹šD¹ M¿¡G»¤KƯDÁ±LÁµQ´­K¸®P¼­J²T»§Lµ°L¼¨]¯Y¹°c¾©d³°Y±³U°±W¶­U¬²W£²L©®R§¯O¬¶X¬¬L§²P¬®K´»P¶ºI²ªF©¬Q¯«O³§N¹¤SÀ®UÀ²Y¼­Wƶ]¿²eÀ²`º°SúSÅ·Z·±R±®Q°´O­©M²­Z¹°^®¬[°N›¾K“¾I“ÁPžÊX˜ÈR–ÍS”ÃU—¼X–ÂY‘ÅVœÆR“ÂV“À]š¿V™¹U‘¾a–·^™¶\—Â]•Àb¢ÆgšÉf—½XžÊ` È\¥ÃZ¤Ê]§Ï[¥ài¢Ö`œÖc”àm‘àf™à`™Ö[”ØM’ÕOŽËX–Èc‹Çg†Íi†ÃmˆÊaÉa{ÐkƒÑg}ÜfuÛhvÜauàgØ]vÖ^tÐXiÊOlÉRf½PqÀJd¼Of²Cj©Bj±En¸As¼=tÀ?w´9w§@q¤@§F{¦<„²B°8w¨4zª6w£@r­Dx£Iy¡CzœBxšKj˜Mm¢Lx¬O}¹SwÀNz¼L‚¹SyºJ€µNy·@sµMq­Nq¬Qp¸HnµBy°Mn©Io§Gm°I_²W]²YY­^^®c]²g[«b^£^[®^W«\f²cd¬Z+47(%<**9,.7.(8#7;)28+)749>C<FC>6P=HKI;TL6KQ?MW=CM;KO8_W1XL7lT=j\?iQ>jO6rJ6mD;eB?rN7eQ9q[=s_Erd=oh-nV<{fycI€\Fxf>zgE{lFudGjE{iCƒiI‡qHŒr<u;ŸnH”sCžuC˜rH–rH›kJ£~>®m6ŸmB¥b7¸lH½o>¶jMÂtB½qI¾tE´xK¹vSµ‚N©ŒN¤ŽG©‚D­{8¦€CŽC‘8‘–1‹8ŸI›…@¡ŠU›‘Q£œQ©•U— \¨£]§œL§™S­œU¼•K¼›E±¥N¸›R´£L²¤N¹¡NɧE»«B¿µO¶²D¿£M®«Y´¤N² ^¸ `¾°U¹®]¯µa¶¤\¯²T»§T©´R£´\­¹]¬±Q®®_¯½[¬Á[­ÀI®»Jº¿Y·ºX¼µT³«W²ºL­µK´°Wµ¶Q¸®Q¾³S¿³W½½[½¬fîVµ½`´´Sµ®Xº±W«´]µ¼T¥»R³°X¯¶b¬°X£ÀG¡³TºL“ÅV•ËK˜Æ[›ÉS‘ÉV£¾[žÂ^—ÇSž¼c‘È_ÁXµX˜¾]“±c”¾Z¢Î_›Æm˜Ëd¢¾iœÇbžÒfŸÈU¥Ì_ ÌU Üc§á`¦×j¤ácœÙ^—Ýc˜ÝXŒÕM˜ÕZØWŽÕ[ÓYÓ]{ÒeÐg‹Ï_Îr~ÓpuÉfpÐczÙj€Ù\tÒTÒ^qÝ\sÖXeÔWuËSl¾Ls¹Op¾Ad¶5p³;g¦Au¹9s´@€·Bx³<|³>}©>©4†«6}´>§3v®,z0vª=r¶@r­@w¯Ar£Hu™Fp Eo¨Ds¸Lv¸X¶Rq¶Rr´Kv¸P|ºBs¾Gr¶Br³Mh¾Db¸Gu¹Ql¯Hi¬Em¥Ob²Ka¨a^¨SY´XU¨\ZµhT°cV¡aeª]Vªfa¯ak¡T%/7,9)'2$&<(-3('0(28.-05/??-A@'AO13G6?H?@M69E98D:4SBkcEzhDza6~b)sU-{ZAvfCv\AƒX?~WA^G„kI}hB†j9…h?†o5„x<xG“oK“qB›mB£v;™nB¥vI¤w>ŸoB¢c8³[<´`F¬pD´tJ°lNºkJ¶n@¯{@²yC²|V©…V£ŒK±†D­x@°ˆ@¢‹?¡‘C•<˜‰F ‡DŸ@ L§ˆP¦’Q¦•N  Z¥œ^©¡Y¥¢U®œN¶˜X½™V·ŸN³›R»¥Hº¦JÀ¦DÀªN¹µR¼°D¿žO³›Q¬ž\°ª\µ¤Q¹¢V¾¥b¸¯_¾«V²¥X®­Pµ¬Vµµ\£»T­º`¶³\¹ÁR­ÅT°»T®¼Q®¹S±¶W¼±_º²X¶¶X´·X¶µY¼¼N··O¹ºW³»`·º\½¯`»²f±¬f³°^³¸[¸±b¹½[³¹Yª°T¤·R¦³S¨±[¬´W¥¸O»M”·J•µSŸ¾O–¿W˜Äa“ÁUŸÇWšÇS˜½\’¾b—Éb”À^•¿[¼h™¶h¡ÅaŸËiŸÃ_—¾cšÎa—Ði ÉY¡ÓYªÓ[¨Í[ªãeªçb­ÜW¤Ü]¡Ú_ŸÖj—ÌU‹ÐO†ÖVßNƒàRƒ×\yÓezÊh~Õe„Ðm|Îq~ÈmqÎnoÍjsÇZyÒ[x×WsÖPqÔVhÖKjÏUnÈRx¹Cu¹Dl¾Fs¹8w²„¬B‡¸8}³/v¯5u¦/…Ÿ/…¢4±<19K08G?=C8=M>8G??FC4XL=JR4N]6FX1SKaEzfE~kGŠl?ŒjC‹tCŽF‰hB‘pO›cJkP‘`NžhH¦t;«jB§fD›k9¬iD¨dH­iL£hJ®xA±vE²uK¡yE¯xI¨NŸE£‘F¯ŠI¥€I¤}F§ƒ>™™KŽ•KžI¨‰D¡‡G¥ƒM¥†F¯”T¨—Q¢–Z¦œXªž]¹¥L·œG³•Oº¡Z±šK¹¤R½¤JÁ¥NĞT·«O´¯P¹§V¿P®’L¯™U³P³¤U´¦W¹¡O«®T¶§U²¢Y·¥T³ªb¥±Rž³P³³Y®°R¼ÂY²¿V¶¾Zµ¸Uº°`«¹c¯¹`±°]±¬V¼¶[¸À^´Ã`¯ÅT»Â\»ÆQ·ÇR¹Å\À·cµºf´¹e±±e¸®i­º^°¸R³²W®»Uª·[Ÿ¬W±R¡±M¢½RŽºJž´Už¿^œ¾Q–¹SÈ\–ÂM¢ÌQ¢ÀWÎ^ŸÎ\œÎb Å] ¼hªµlžÈp¨Ì^¤Êl–¾j¢Çh¡ÓaªÝ_ŸÖ^«Ïi­Ïa£ã\¨âl§Þ\£ç\¥Ód§ÐmœÒ\†ÕN‡×J‰ÚU|ÓX„ØX€Öa†ÈgÇ]†Íe|Å_†ÆkqËbeÓggÉfzÓWwÉQsÜVmÍHeÙDeÐPeÆLq½Nq·JpÂ?k¶:w«;zª=u£7x´Cz«Ko¥@}¡B}®6‰©/ˆ·6|¬:„©2{¨0…œ+Š©3z¦B{¬FuªAo¦@|¤Fx­Ho¤Ez¶Er´Su¾V{¸Uv¶Ul»Yq¶OgµJnÅRp¿Kb¾TeÊKb¸U`¸I`¸He·N`«WW·UZ°Zd¾]W°aYµad¸WVª_`ªafŸha c^£a+,(%(,/'150*/21+*/,45)5:)::.::6>F/6C<6H:6P@;HD9FB4RI6TE¨i9¡e?œkC¥cF¡jF¢jB±yA±y<«x? wE£…M¤ˆG«†B§ŒM­‹N§~I¦P ‹F£ŽB—–Iœ–N¦ŠBŸH§ˆB«O¶‰T»N³V¿šQºŸY´©V²¤Qª¨U±Q«¡R³¢O¹¤T¿˜SœS»¡O¼žN¶§V³›W¹™L¸œJ¾›R¾¢\°¬X³²]¥ªS§£U­ a´¤`¬¬a®­X¨µN¥¸U«¼T±¹X¾Ç_µËZ¼À_¶²g«°_­´W©ªYª¶\´µU¹¾]²Ãb±¾[±Á[¹ÉS´ÆX»½d¸Äa°Ëa·Âj¼¾d¸­`¶ª]¬µ\³®Xª²[£¹_›³R›¼VºT¶W“¿Xœ²Y¶_¥¶\¤¶T›ÆUœËRžÉP£È_ ÏX¤ÇZË^Ïc§ÄgªÅj©Áj¬Êd«ÅcšÉi¥ÕgªØd­Úk¨Öc«×g¤ào°ân«ág¬áf£äZàd£Ô_ äVŒâZ€ä\‚ÜNŠÞZØU‚×\ÊW{ÆVvÇb|Ìc}Äc|ÌdjÍcnÄYlÃ`wÊOqÑOmÕEoËJrÅMkÇFfºBh¾DpÂ4m¸4t¸>z©7|¥<°@u«:t¦E~©A†­5ˆ²8ˆ¸3‰¯.ƒ«+‹¯2£3y5¨@°8t®9z°6o¨BjµNk°Mm·Mt¼RzÇTxÀ^xÁ]pÀ^d¿Rd½OmÄLrÇTuÅRmÆOj¸Pa¸O[¹Q^±M]¸Wh°Yl»__»[c¿_^´Zb·YW¶bZ®gW§]X©RR§W()((+50+31444*,-.(,3+)?/.>)1D24D47;.+E@+@@:BH*I>:PB8EU,IT2NL+P\€XE‡eF‹mE|s=ŠqAyCˆkF†v;ˆmMeN„aI‘aX‹`F—mC^I¨a8¡k9›p<h>¢cG§kCqG¬p<³wC±v>¤†;°‡;²‚?©ŒC°„I­L ƒQ¤O˜ŠP‘‰B’’P•ŽH§‘Vž‚C©ƒ?ªŽQ±•Wµ”S´O¾“U±]¶¤Z¸™P²—Xµ’X¹–^ª¢Tµ˜X¶’S¼•UÙPºŸL¬—V¶ O®¢N¶¤LÀžT¯®Y¬¦^³¡]©šV¨X¬¥b«­W¯©Q£µQª³G¨ÃV¬ÄO¬ÀYÂÆa¸Ád»V¹µY©ªT±±X®®e¯¹Uª¶V­ÈU¸ÃXªËVµÇ^¸ÇQ·Ã\½ÌXÁÅc«»j©¸n¦¿h¬¶i¯»^ ¹U¦¬X£ÀU¦¸Tž¸Z˜³V—®SŸ¸Y˜½W“°b´]™¼W™ÇT¤ÃRËZ¤ËY™Óf£ÑeªÊj£Ç`šÓk¡Ìn³Ës±Ëb¯Äf¥¾` ÎuŸÊf¬Øf¤Ía¢Ýf®Ö`¢Öd¨Ù^¶æg­×WšçT•ØO¡Ï_ßY…äQƒÖYƒàN„ßV…ÓN‚ÔR„ÈWÔ_€Èa‚Î_yËi{Ì^uÊZjÁbrºarËOl¿FlÊDnÅKlÄ?p¾Eg¹Kkµ´=yªJ}«4„²:€¬-¼8Œµ*~§&} ,†©<‡¥?†­7u­Bo¤=v¥Am±DnµSr»Wv´XtµOhÃ^xÃir¾fmÇTm¿\qÎSjÎNgËMdÏVaÄXXÀKT½VcÁLU³Tb¸Zf¬Qb¶V_µ`W½\S°Y]ºXX°ZW©bS±`R§WKŸS.";24(8-'-.5-71%30*4.&A0#>'/=13?,&C0+<8/:=3;?*@=6?I9LP/HQ.F[2QZ0Jb/J\4IN8XQ+YW&JQ*[[%`[0dR/`T2ZK7cN/iV1xU*sV%sZ+vR,~O#W1€^:ƒc8‚cB„iF‹^C‰kF‚kE‚pN‚iM‡gFŽb<•_?hE†]Mˆ`O‘^IŽmJ‘c?že:—c6—m;œkD©gF±rB©l?¯v4©t:®z7«„5©}:®€9´}:¨~@¬†D¤‹MœŽL›I’C”“K“˜K ŒX­ŠM¨ŒC±•@­‘H¹‰AµI´‰T·’X¾˜X¸ŸL®•^±_°£V°¨]¯©]¯™T²“WĜQ¼–J³•N¹žT²œM³¨H±¦Rµ©P¶¬Z¹ªN°šS«¥W­¨cª¬R²©P©¶M£½N«¶M«»Y²Å\¾ÀU¼¿U¹¹Z«¹U®°L¯±T·¼_­À^¬ÄP¦Î\¬ÉX®ÊY´ÌY¸ÒS´ÐS¿ÐQ¹Ä]ª¶V§²`ª¹a¡¼g²Z¡«^¨®Z¬¼T¢³T–¬Y’­Y‘ªaŒ¬a—½`œ°V–°W‘¿M“ÇRžÃUœÍb¤Ò^šÎa­Ín±Ói¨Ðs¢Ìm¯Ìk¯Îo¯Èf¤»`ŸÀg Åp ÃnžÉ\¢Ðg¨Õb¤Éb¬Ë]ªÚ\²ß]¡ØVœØS˜×M”ÌS‡ÔO‰×S€×H‡äM×T{ÚI{ÛFÒNyË\ÕYyÊX~Ð]pÕVpÏ`mÇXsÂ`xÇYm¾KnÅDmÅMr·Pr·Bhº@l°=sº=zµ6x¿6¹4w¸4~§5t²>{¼B±<ƒ¬2‚²3À7~µ;‚­.£/z¨8Ÿ/…¦7‚§;vªAw¯Gq®En²Pt¶Vm­Yh´[fºfjÀbm¼YmÂVoÂToÍafË`lÄTgÊY`ËWb½XR½Z]Å\[¼Vb»SY¶PP³TR´U\³aU®^P¨]X³TQ²RH¶`MªXL¦_4(0!2= )3(&/'9/01 ?%(C5.831@;/44#72AC$EDDJ/>D09O*IJ6CL.FL,BX+BT3@\;NV1WQ3TW.HS-RQ&[WaY'dS*jV&kS+hU'z\*tW-}c"|b~P!…]2…W1~_5`9~Y<ˆf>…nK~oA‡nC‡hB~a@Œ^A~`CŽfGŠ_Q†\QnJ“iC–n@ k5žr9žm; jE©tE©l? f<£t=°w3¯x:­Š=²{?¨9¨:¥†;¡ƒJ˜—M”ˆH‰@œ•K‘’X–“U Y I£‡U¨‰Qµ‘D­ˆI¸‹S½‹T«“T·”O¾žWµ”VºŠf·—d²ªb·¤T¹™^Ä `ř]·šV»™W®”O¸“W·›Y°¢c´œ\²¢_¨§]«¡c«¨W°ª_¥ [««^ª¹P¥ºT´²[¸²P·Ã_¼ºNÂÁRÀµY·¿O¸¾H¾¾Z°º\¹¿_³¿P¯Áa®Ì\®Ã_¯ÄR®ËR¬×T®ÄT«ËX¨ÀY™¸]¤´e›ºj¡·`£µi¦¿e¦µYš¸\ §]œ´TŒ±dŸºeŸ²c˜°V›·`—·^—¹N¤Ë\§Ée£Ëa§Ô^¦Øc·Ùj¨Éb¤Ën®Ðm¯Éu¬Äcª³k¦½b¡»d¢Ãm§Ña Ê[§Ò[¡ÎX°×YµÙ_¤ÙT¢ÛW™Ô\ŸÍR‰Ï`…àY’ÕQ‡ØMÜR}âW„Ü[}âJ„ÞRƒØT„ÙXwÙ`ÒUpÖWuØTtËN{ÂO~»Vt»HoÇGwËLvÄ@q³Di·;p¸8jº4t¯<€±7u´@†´=w´8€µ2ÁCƒ³:ˆ·:}À7}¿4‚¿1€²6}¸-y±2ƒ°<|¢9„¥:~¶I²EpºAo´Js¼\m¹Pu´VrÃ]sÃatÌ`rÇ[sÇYnÒbbÑi`Ì\[Ï\WËe\ÂVL¾^OÃOZ¾\L¿YT¹NU¹UL·T\µ^U§^N¹RR¬LT¯RN¿ZQ®[Qª\;%)<,5 %7<$8?.!<-&E;A9(C@8>9B#=A5@>C)E?)AI+IW2BU7=V=CJ3FK0GT0L^)J`/La&H`%NUUQWV_VjK nLpYjV%qS y_%~V){]"t`-yU9†S9†Z<`;‚]C‰iGŠnB‡qCƒlAˆhB^@‡`F~jFjA‹eK‹gFŠeK–]E—b9žiF¢rFžz;¡s@£tB£mA«z4¨x8§v8¦…3ª‰@©€@¬ˆ@©…B£“9œ–@™ŠH’ŽHš‘T—Yž•\¤šT¥“P¯ŒU¸‹S¸‹N¼ŠO¶ŒN¹Q¯’U¯`³‹Z¶†e½`µ–`ºša¾–fǙaȝiÀ£c¶¥a·žZ¾•SÀ˜[º™e¯¢d°™k­šb°–d­žd´Ÿc«¨Z©¨_¨«[®­M§¸O¬¯[¸µX¹¾OºÀS¸ºT·ÁPµ¹S¾½N³ÅQ¸¿_¯ÁZ±Å^«Ñd®Í`¶Ç_¸É\±ÏP°ÑP®ÊL§ËS§ÉXšÇY›¼Z™·[žÄešÀe–¼ZŸ·[•²X˜­U›¯b˜¬]¤º] ¸_—²`–·\Ÿ¸bœºXœ¼d¢Ía¥ÐhªÍg©Êf¬Îf¨Éd§Æc¬Ém£ÇkœÂuž¹qŸÄg¤¿i›ÉkŸÐc¨Ïg§ÍYªØS¬ÒN£ÍM¦ËU£ÂaŸÈ[Õ_‹Ù\’ÛYŠàZŽÝT‡ØSŽå`‹â[…Ü\}ÜWzàU{ßV€ÒW{ÏW€ÔWuÐN}ÊU|ÀMz¿Nz¼AºJsÇGqÄBwµ¯J{±E{»E€½K{ºOuºWoÁXr¶RlÃTkÇ^sÏdoÓjmÑghÌf`Òf\Ñg_Æ^RÅaSÉ\TÀRP»WH¶SE°RE»SMÁSUºU\°SX°UZ°[K²UG¼NQ¼VW¶ZRµ`5 $9'=2:%0: !/,12.A)465'2;15&CB'4F;AH@%ID.JP%BE/AV19O@>Z;BQ8JN.FK)AV2D[+N]6A`.GZ.MJbZiW+kV*qN#iY'de%g_%vf+nU(rd0uY+y`1~ZEˆ\D~YA„g?‹^:~aE|f@†iL}mI^<~fF€aAŒ[KŒgKŒ`?•dJŠf<˜_>“jIŸpDŸk? l>§l<¦€D£|6®q? w3ª{?¤{G²„E²|I¡zPšŽH‰H–N›Tš™P¢e¥‘\¡YžŒY²‘O³“Z¹V¶‡MµJÀ”F¸M»’]²–b¾‘Y¹¡^°™f³•fºœ_ŗc¤aĚ^Á›i² d¸¢]¶“_¶ŸQ· S±¢b°™`¯_²¨d§®W¦¢a ®]§ªS©´[ ·[¸ÁN°°V¸ÂS¶Á`º½QÀ´XÁÀN¶¶O³¶Yµ¸S¯ÈYªÏV°ËWºËk³ÏY¬ÑX³ÎW¤ÌQ¬ÓGœÂK¡Ã\žÀZ–µc˜¼Z‘³b—Ã]ŸÅW˜Á^™º]Ÿ»L“§Xš±R˜¸X–²^˜¼\Ž³]‘µa‘´a—½`Ìk›Æ\«ÀY¡Èk§Çi¡Ë`±¿d¦Çj¨ºmŸ¾f©¾m¤ºk¢Åf§¸Z©¼`¥¾T§¿V¨ÁY¨ÌP§ÁR¦ÄS›Í\šÉZžÖT‘×U’ÕTÙU…ÛZ’ÍYÖYŠçNƒÖ\ƒÕZ|ÕXvÜ[t×MÍ^~ÍN~ÈLzÁMv½PpºOxÂG{ÂLpÃ@p½E{¹@vª3uªBf¹Gj»Jo±=†¹F‚¹;†´7Œµ2ŒÀ:¿5~Á8„´3wÁ7².¹.v³2‡²J†´L³Mz¨J€©?x­Fz²P…´Z{ºP}¼Xu´OhºYj»lb»aeÊkfÍgsÒ[iÍ_`ÒkSÂjWÌcM¸`Q¹RF½]N²]O±`H¸bXº`Uµ]_³SY°PQ©TM©KR²ZE¶aV®cN°_;'2<"*135%1|hEwjK}i@ˆ`?‡]>‘_?ZE”]<™b>’n@ŽmLšrA¡t?«jE¥pA§z@¤;¡{<¤{Cšƒ8>­G°yM¯tR£|O¤„KˆQ™ŒP¡–U›‘W “b§‰ež_†\«‹X²“O­R¾‘SÁ‹DºŠM¸šOÁ™\¹‘a³•[´¡c¼œg²–\µ—X½ž`¹¦e»žd·’j¼—b´—`¼šW¿˜N±—M¸–S¶ `©œU¦¤X¤ ^¥¬eŸ·Y£µX®¼_¨¹X®¶aµ¼\¿¿_¸Áaµ¼W»²[¹²^²½W«¹S¥¼UªÈ`´Ç[³Ëa´Éf±Ð[±ÈN«ÏK¤ÅI¡ÄO˜ÊMšÀQ¡½Z˜³`’¶a–Ád‘ÀY–»U”¾Y•½VŸ¸T“³TŽ©O©W‹¸R’¹P‘¬W—´W—³cºp˜Äk¢¿^ªº[­Ç\¢ÎdªÂ\«ºb¨¹f¨·m¬Át©Ãpªºd®Á]ª¶\¤³\¯´Oª¸R£½Už¼M§¼O¢ÅP›ÊK£ÑNšÈTŒÏV„ÚX…ÚUˆÑKŒÑO„ÛV~ÚQ‚ÏK…ÍK†×UvÏNÉX{Ò[vÁ\{ÀQuÅHs¼Il¿NoÌBlÆLrÀGs²8}°7x®4r«?z¨9s±Du¬=ƒ¬@‡¯@…¾@¾Dˆ·6xÀ1uÁt¹9t½.{»4€±;†¯Hˆ·N†¶U²P„¤I‹¦TªT…µY{²Uv¶Q{°Xw¹ec¶hd²ijºmp»]mÊ]\ÈbWÅjUËeNÉaR·bJ¶SBµWE®dL³_Lª_U¬]b±WY²QY­UN«SR¬MH«UD²_HµYN­V8(/F)12'.:#103-11&229:8?.851'$?-&9B*@9"@="GG4G=?H>+OA-B@'DE9PM4PV/GM.TM3II5NU3IS/PH3RG(_O(fP(qR'eO5hW'uT/ph1jb)pb(kY'ya-{e2yZ@€d;{lE†j:„g8†n=`I‡fHˆu8h<sCŠl=‰lM‡fC†eRŽkNŽo?˜iE’tE•lFšrAj@¡nD vF¦sF§<–yF£{K …D­}R®~O¢x[¥ƒOž‰Xœ‹W X‘O¤œ`£œY«ŽXª–Z°„]§”O­\¯ŒS±ˆM·…<ÖHǗU×Y¸–V´ž_±¤b«¤f²žj­¥^«¡`²˜h±•a± `±˜a°žYµ’M»—I²œI«‘\²”^®ŸW­¢P§ªbš§gœ±W¢µY¢º^°»SµÀa·Àb¼º]±Å]·¿h¦¯[¯­`«¼d«»`¢ºS¯¿_³Ãg²Åe¸Éd©Åa³¾N¦¿TªÁG™ÂIš¼Pœ¸N•ÅMŸ¶Zš¾SšÇW˜ÃY™ÅU‘¾`šºQŽ³R—´KµM‘¯XŠ¼N¶S¬Nˆ¬P»b¹]•ºi—Àa£Ä^žÈZ¥Í^¤Ëa°¼`¨Áe¬¿r£¼v«´n«¸`­·f¤±^®¶Y¤¶P¬­P¥²MŸ·R ¶O–»H¨ÈOœÔU¥ÄOžÔ\ŽÍXŠÙYÛS…ÙY„ÛZÛZÙJ‰ÎCyÄLrÐP‚ÌZsÑ_…É`†ÁOuÊWx½SvÉD}Á:t¿GzÃGy¸7´7€³:o¨Az¥Cn²Gv¨;°G‚ª=ƒ®Kµ8{¶CxÀ>pÀBpÀ9{º>}¹:t¾9·E¾G¶N´[„±S{¥Y~¯_{±W„¬Zw½Qy¸V{·Yf±hg³pd¯ajº_g½\cÃfWÇdY¼_LÉ\VÇ\F¾^GÂVC¼`D­dN±_R¡^\¦Zb±P`°X^¸]P§JM¯JU²ZN¬aS±ZS«bB%6>+7@+>:)5..92-+6-,576/103,%77%B5%<< G7'LD,R?7WF.O>,N@0JD(SH)UH.QF2LQ5RG+VM0RN2RM5YJ1\M+dR-jL0kM(hP1kS/sa,nf0t_&|^&s`5x_=ncGlj@xhE…n;ƒf?ƒh@‰l@‚jC„q9g:€k?}mL‰pN‡pHˆbQ†kMŽoQ‘vN™lKšiF jI¢mD¢lH§lDžsJžzN—…F–ƒM¥ŠV¢~Y£X™}UŸ„]–„cža§”S¦—Vž P£œW°•P®‹W¥“\¨U¸‚Q¶…Q³†S»DƔFōOƐT¿œZß]¶›h¯p®£gªŸc§£j¦ i«”f¬`¬šS®œT¼O¶ŠN®N±’V±™Q°—O¥¥Q©©P ¢]œ¨[©°bªºb©¸\¬¼V¶½^µ¶c±º]¨¾ežºcœ»_Ÿ«bž¨\ª¶Yª»^ªÄb¶¿W´ÈZ¹¿S­ÂT¯¸J¦±Pœ«G—µM›¼FÀH™ÃM›ÈVœÅPšÀR”¾Uœ¶a›¼Z¹Q‰³T‹¹O‡·T¼Q‰¾RŽ°QŒ¯VºUŠ½b–³lž¿m¢Â`¥¾c¦Äa°¾b«Á_ž¸n¡ºn¯¼h«­l²¹o³µaµµW¯¶U¯²OŸ¯Wœ·Y½L–»O™½DÈP¦ÇVœÉ_ ÉY˜Ç\‡ÑT‰ØQ}ØQˆÖY…ÍW‡ÒI|ÍL{ÇMxÅOrÑV|Í^zÁYÃ]tÌ[rÇOxÄM|¾=º9ƒÂ=³:‚±2ƒ«.|¨;}ª;x²>¶8x¯=tª:€®Du¸Ez³D¶EvÆ:lÍ;rÆ=xÆ?qÉD€ÁR‚»Q‚¬O„­]y©f{¨]|±]ªa~»X{ºRy¹Vl¬edµdi±lp¶^n¼_o¸af¼f]¿bV¸WZ¾PLÄWIÅXMÀYQ²]I­fF­XQ¦Y_­Oa³TW²SV¶SZ¬UN¦TW¦ON£YIªcH®_585A%2968D52?:26<0=;+A2895+>-8;.(A0)I@.I76R@,R@2R@+TB6ZI)YD#L>1OD&ZK7XV:\X:XW9WR7NUx_C‚gP„mF…b@„eA…gGŠpGs@~w9‚iD{i|¤Dˆ¤8€¥@z±>|°L‰»>}ÀJn¿F{¼Bn¹HzÃIyË={¸PŠ¼_©W­_ržU{£Q|by¤W³Yy¼Sk§ai¯Zm¢dp©wj²sn±ak¶_g½`_±fT³aYµWG¾LGµULÃXJµ\H³eS¬gL£^b¥XXµVVµZ^¸XV­VW [O«SH©\L¦TK¡W=399/.=0&G9)P>)HB,DB*=67816D9‹dIˆeM‰`T‘fXmY•qU—qW¡iZ§iKªtO¡|IŸN †P …T¡‚XžT¡tU˜tR}XžƒX”€^’c›‘^Ÿ S¬ S°Z®œS­—Wž‘TŸ•S¬‰P«J³˜Hª”F°—O±“\¾˜Y¬¡R« Z¨\®œg§’b®˜Z¥ ^§¦Pº U»–S°˜P°ŠY±‘b±“]ª˜V¬¤U¯£S¨œ`©™f™f¢ j dŸ ^š®c£²_§¯až¨hœ­a˜ªd£¬`§®T£±Y§¶\ ¬W¬·X©¹Xž¿^£¼Rœ·Z—±X•·\‘¶O³H›ªK›¼R–¾Z–¼^—ÇWŒÉS‘¾_œ¼a–Èf˜ËZ“ÈR‘ÇJˆÂL”ÈY’¾T“«U©^Ž®a­^™³]ž¶^¥²`¨³eªÁa£Çc¥Ãm¯Åo¨¸p­³q¨³r¯­h­¬f¶µY³¬T´´Q§¨Mª­T¤­S¥¾AœÁF¸Cž¸B”ÂN‘ÀE—ÃI‰ÊEƒÐLyÅYzÆY»M…¾E‡ÀD…ÇLxÉO|ÊP‡Å^‹Ë^¿_…¿S‚ºMzÁG{¾Q~ÂKˆÀI„´:‡§E…©>‡®C{§Cx±F}±HŒªD‰ ={¢>xªFƒª>‹¶G†²Hu¯Cw¬@t¸G{ÄG}ÂE{¼M„²^´do¥ZhžOn Tg£Sk¥Zu±Uy¬Xw¥[l§Wr¬iv¡rk¥lg­nh°n[°^V¾fXºgS»USµQNºZJ½UU°eO°eX¦cX¦VX©L\¬OS¦U[¬]Q©ZX¨UO®ZG´PW§YW¤P780A019@/F=&=K!EE)V11P38G<:NG4JL1P=4TL1WE/ZB8[A2]C3^F4`N8YJ@^S>YV:aS3oR3pWBvV:uG5sFEpPCnV?sXIoYJpP@bU9jd?sdJwdLr`Q‰`Pˆ]W‡bK†nV‡lVyeG{qV|rGw|L…tM{nC~eI€rKŒeQ‘_L™_KžsT“x_šyT–p`šuK›{T§€Pœ…R­€Tž„c¤za§‚e£o_€WŸU”zS˜†T™Y˜Q«—`°[ ™P«R¦˜Q›ŠP ‡W©‡Sµ—M¹¡N¼–R»¢I²–Nµ—_¹§Q«`¬¡Z¶šf´Ÿc²–Zµ V¬¬K´¢R¶”I©—Y­‘V¶›O±˜S©™S­ _¡™f¦’a“¡n›e˜—f”˜`”­^™°c”«b§¨fŸ¨aµb¡¥c ¥Rœ­S¨¶_£µO›©Y¦³Pª¯W¥¹T›°P—©Y¦^²[“¬YŽ£N‘§L¸Tˆ¶[”¿Y•½\†ÃOŠÃT“ÄV‘ÃgŽÇa’ÍR¿W…ÈKÂV‹¹Y’°c˜²c‘¸Vœ¯T–®\™µ[¨µ_¨¶^œ¿m¦Äa«Èl§Âi³²k²­q¯¬c¬«a©¼e»¿U±¸]µ¶K«¶T¦¬J²¼C§¹Fž»J¡ºJ˜¶F“¿T“ÊIŠ½AÌAƒÂI‚ÊS‚ÈOŠÁLŽµC}ºS~ÇGˆÂDŠÂG…¸PŽÄQƒ¼YÀJƒ·D|»JºE„¹O…«H‚ªD„´F³:‚°Cx¯I}¨KƒµHˆ£HŽª>«F…¥L«M“¬?„¹9„³Eu»;m²&DI,FG)=F+@N'II,GE3E?/J96U9?T:=H;:H>8R?/QA6SI;SGB\K;XS3_N:o[;m[4iT:gW8qV4o[;jPCtP~³=v±I†®J‡´KŒ²@ˆ¥=¡;‡§G‚¬@‹­>¬@‚¹:}´=v½?x±A~±Ay©Hs²X{§^x¦fm¡cl¤`i«ak£]e¢\p¦]{¨eu¡hz«gu£jo¡ad¦ef­f\§id«q`´j[¸iYº`c±[a³a]©`WªUXª_P©^V¯YU¤\SšUS RO§UV°ZW¦[V Q^¡JT¥R:591B&EE/DD)EI+E="EB%OA4L;6N;+X:1T@FY<7KE0RE3VP]^@cb@pa4vZ;zVo]Ay]Bf\MpU=mOCkVIbTBq]Jk`SqaQtdT}XQ{dTtb]‚me|f_|iV{hVslU{uQ~uPtQ|qU|iL„xQ‡rE”mQ–dL—aYkWŽdxVž€^›…c—zVš{X¦„gž‚b¢‚h¦xc¢nd•ƒZ’…X“}M“ˆT”ŒM˜F£šL©™[¢Œ\™–]¨™O¤¡Y«P© U²žP´›_­¢O¨œN©–W²šR¨œV§™]¶©`±Y§žc«žV±P­©Zº¤M«–L¯O»•\²Ÿ`¥›Yª”V¢^šŸ_˜œ_™ª\Œ£n‹¢a‹—eŠœ[™¥PžR’–Q–¨R¨d’²Rœ²V®W¢¬K”±X¥³Y¥¢Hœ±G¨§R¥²S‘®P“­LKŸV‘¨P‚¥`¶Z…ºS…²Oˆ¼O€·K‹¼S€ÇQƒ¿TƒÑ`‰Õ_ÐNÉL€¾Z~µX‰ºV’½b‘¿VÀg–²i¢ºi ´_™ºf›¾h¦Äq¢¼k›²`œ¼i ¬k¦½_¨²`¿R¡º\¥³P­¼R­ºN¯¹Lª¯H›µV¤­IŸ¶J–°Gˆ¼U‹ÀE¼F¼MŽÉT”ÉL†ÊUˆÄU„½O‰¼FŽ³K„»C±C‰»R„µZ‰¯LŠ¾@…ºO‹±H}´K~¤F‚©L}©>€¥Is«Kz«J‚²Qƒ²?}©@¨G†¦E†C…¦K€§B…¯;‚¯B{¼D{ºB€ºBw´H|°Fp±Tm«Zo°[|©cv¤WqªXp£dl›esœgyªez¬fr¦`s°dk¯np£ii¥cXªmdžkZ©dW±fY¿`[±gb³]a°V^¨Ua±aT«XLŸdU¡XX¥fS£^S™YZ­OOªUV¨N\ W^©WO§`>;,7D*5BAE#>;+@=%KB-FD.OI4MF/IJ0TC>V=:U;5Z<3XN.YQ)NI1LD2XJ2TE1MH/T[)Y]0Xa7\X@meGmg>k_CuT6~[GuZKmZMiXAaMB`Q=ZR=daBg]LkbNieLpdMunZ|iZvkYyjYug`|tdrySpuLplSmnJslGhQ‚vY|vO‡vO”gO‘^]Ž`a”r^ŒzUŽxf–yeœy_“yW‹€\”ˆi˜‘gž‰k¡b qX„[“ŠX’ŽRœ„I“‘N›“LœV¥•P ŒQŸ’SªœZ§žQ¬V¡Y®šc¯£]ªšWª¢Q³£Z·–V´›Q²¢Sµ›]ª£c¨¢b²¬]¯ [° V°š^²œ]»”W·Z®—Zª—`¦•X¥ž[Ÿ¨T™¡Zœ­]­cƒ¬h…œ]“¤_—§W’›^–™S™¡^’¯]Œ¤]”¨\Ÿ«S›°O—«Tž¤S¥¬K£¥B©D¢¯F“¢?Š¢H‡ª@¤EŽ¬L‡¯V~´J~´L‹©HŽ¬T‡­J‰¶MŒ¼TÅR}ÐO…ÑS‹ÅIÂNƒÇ]„»a‹¿cŒ¶Z¿[”¼b™ºm¬°o¨±f¥µg­·t©»v ¹h›®_Ÿ¨b¥±g™²X—¹Z•¶S™¹Vœ¯]Ÿ¬\ž®N¦³M£µL˜¨Sš³R›·K’µJ†­I”¶@•¶B•¼JÀQ—ÅKŒÇQ€ÆSƒ»L€½HŒ³D‰¶K„·N­IŒ®S“¹U•¶E‰­E€«F±K‹°M‹¦IœG„Mu My¬D‚¶J„§C{¡;,:DH:"LE"B>0P?.X<3W@BTC4\=>UG/ZT1[P,XS%NV'SM0JH2TW-NQ.Rf6\d5YX?faCj_Ioa7u\=fY@xcKu\?jUAdKBfM;jV25691*‡·=‰­C{¡OuœQ}šHt£Hv¦M„ªFŽ£@’§DŒªGžG‹¦<ƒ£<†¶:„º<|µ?€¸@}µ>~¾’¡; «9˜¥:’¨>¨H…·A‰¯?«UŽªS•¯H‰®R…µH¿?ˆËC|Ç>~Á=ˆ½P˜ÀT˜»Z’·a‚ÀV‰»c•¾d“Æi“³r§²m¶d¡·q¬¯hž§q§«o³c¢µc’ºX§]•¦T“¥a—´f• `— bŽ§U˜²`Š»P‘®K†»?‹²2†¥AŽ¨<‰¬G”°JŠ«@ ²E”·EŸ°A–µD«F•«;¨;Ž£Eœ§=¢¢B« =¢ªE—¢=¥B•´D–¬8‹¯K…¡D|¤Bs¦M†¤>§H‡ªI’ªM‹«@Ž­C‘œAž@†¤G‰¹Aƒ¶:„¾8ÂE„Â7¶Bt²Bn»El¸OyªZu¤\t«Qs¥Zz¥gq£ns«]n²[t¨\{¢j{¢`{«f~ªgo¦qx¨cq£kh¦ff±dU§nY«lW°rQ¨lL¥lPf^šaW¢[\“]O¡^J^NŸP\X^SXœHa¡MaªUe™QW™WA:;86:?<$A5:6!>H/:Q2;I)A@"O@([=8YHAPR6NO7PO8[O‹³4‰¬7¬:Š¶?’¯G’¨9œ§;¡«7™­@“¬A—¡; Ÿ8¦8˜¢6‘¤4¢¨9¨Ÿ9¥£:•ž7˜¥<’³;Œ®B‘¡Gˆ¤Nx«C©@†œE’¥;«>ˆ«C…¦H©J‘¨IŒ¥B„¨@‰·J¾D‡ÃAÁ9|¼=t¶=k¸Dn¯Mw®Xw§Ul²Zn°Zq²^{£o|¬st«er·`}±_uªXz­b‚±l¨kƒ§bu­it©ca§ee¥o[ s^¢rSžqM›iX¥cY™[TœcNaU•Y\“VQœVR¡QP¡UV£[U¡OR£H`¦MY›V_ŸY5;.54,:?":8EI$EG.>N1EM%DD&PK*GO;MN>\N:Z[2XU8]T0aX1eK3a\9dR?dV>\b2Wh?]f:ekDgY?pi>naCqg?nj9ugEyiLyiKxdHljFrfO{aTo^VrqTwnStwZyqV~p^za\vj`|tTomWrc`roitp_ycg|fdyglssdtogp|q}ossmy€f‡€uŠrdŽ‚g„€d‹za’Œb€ŒYƒ^„g‰ˆfƒŽ_ƒ€f‘ƒdŽ‰c™‹Y•\ \™—X¡V–ŽTœA§~N›„\£“^˜Vœ‘V•™V•aœX ”U§’^¥•\°˜U¶•`´›W§žU¢¨Y¬¬X¬ªU²¨[³©b°´`¢¡\œ®`­±a¡¤^¦§ZœžU–™Vœ˜fŠ¡n•“pˆq—•h”m’jk–“_™–^’¦f“©^¬U‘§WŒ®F‹°M‹§F™¢FŠ¥Kˆ©L‰¨G§A¦G;‡¡8–©7Ž£=‚µ@‰²9‹¨L‡¯DŽµL‹´E{µR{µO|ÁD€ÂJ|¾J|³SºYƒ¶`ˆ®cƒ½UÁg¸]œ³o•·j¡Ák§ºn ©h§­l¦¡kª£c©¡[ §d•ªa“ W‘¡d˜œg›ža™ŸWŒ–Yš©[“°^‰³Lˆ¯D‘¦=µ;Œ±?§:•°8“©>˜±Gž;“­4ž¨8ž¤<—ŸEŸš1™®>¢ª=¦˜6œ8©ž5œœ<›@–­H—®:–Ÿ=—¨O‚ž@„¥K…¯Gƒ£P†¤@–¤?‚¥Iˆ²I®NŽ¢M°L­E²H|½G€³Cu¹FvµGq²Nh¹Pr«Tm²V}¬\s¯Tw­Y‚«dv¬et¯oz©qp«`„®[´hx­h«l¯py­kw³me d`£ti›p[žp\—zZŸmY£kYªbO¦l[¢nN–aV¢aU˜bT‘TN£]J¥ZI˜IT¥Q_£T`«K[¬OW£PG3)94(;9*@B'7H#:C#9@GK)GX&BT1GS6MY8TX4\^1WY,ZR1eU9^J@_TDgV<`XB[Z=X^8^j5gl:f]Ce]Eg^BdbGna;neBniIpjRunL}sDumKupE|gMzoTr_‚sZzi\zl_xpTxybtu`rhZvfYpagqfkkqkpmiore{trr}srxqrtizvmzzq€€uŠ|oˆoˆƒsŒ|i†‹k}Œ\€Œb‹^ˆ’W„‰Z†“ZŠŽZ”•YŒŒQ‹‡P˜“W •N¡ŒU«€N¤ƒK›‹R“…Q›‹T—‹ZœˆYžŠ] ’Z›‘Z–[¡˜`©›d®b¤c©¤h¬Ÿ_ª \Ÿ¨]¤¨Q°ª_¯®[¯§_ «\¢§[Ÿ¥Sž¥_ až—g™œd–›jŠ•kŠ“i‹hŒj‹ˆlŒd”–b¢›b¡•`¤—Vœ¥Y«X‘¨MŠ§KŽ¥F¡C–›H—žAŽ¦Gˆ­@…¨DˆE9•¢/•Ÿ3‹£<Œ«>„«8|³?†¹A±Ly·G~ºM{ÄR~¿Lw´Ky±V‚¯W~µ^µ[ƒ±a€®hŽºeÀoœ¸j¨¸j¦·j«¬g¥©q«¢n¨§g¤£i  [›¢Wž˜W›¡b a•§eŽž]ˆžbŽ–c‘¤Y• Z–¤H¥CŠ¯Bˆ«@–­A“²9”¬7›±=–¤7¢ 9™£4˜Ÿ9¥¤;¡=¨Ÿ2¤¨8°¨2«—5£š8žš7›¨@ ¨D§Bš§IŽ¡Q¡I‹¢D„¬H§I­O…¬N‹©IŒ³@‰­G„³Eƒ¬G~±=„ªD|¯>{³By¼Ev¶AwÀFu¹Nv°Wm®PoªVx¶R…·\‚¹V„°bz©frªcp­my«m{«d}¦[{¨_vªfsªlm§cj¨gd›xn—wk}f’v[”w]‘lW™aRžcX¡`YkOŸnO¡eU—aU’cV”UKœQM›JS¢O[¦Na§Zb­]^¢T;'&52$J9/D?0;I"HQ DG5RM6KT)RS2RT3VW;XS:\S.\N7RU2RT7VX-dZ7]T5fP7`YAXa:av.bm6b^CnSBmW9m_?lZAna7vuJod?ufG{jKilWstKzr\~iSŠlYyn^uwaƒsZ{uWmm^quhoeeqdTxdiqjuwotniunuxw}rrmr~mzykj{nx{‚rt‰u…„p‚ƒyŽo“|f‚}pvŒ_€Ž\€ƒi„‡e}ƒZ‹i‘‚_Žˆ`š‹]ž]¥ƒX¡[¤Ž\—M–‹D›‚M™ˆO›€T“YŸ†P”•W“‘[”ˆ]¢‰Q£–Y¡—`´£[µ˜`«b¦™^¯™Xª¥]¦Wªœ`°¯^ª W™¨]›£dŸQ¡¢_œ£j—•b›Œgˆ“cŠgƒ–a‘k”jŠ”\˜lŒa›™g¡eš¢g“¢Y“¥W…¨R†ŸM¦Q©H£K‹—>¤?ŽžF“©>‹§G…4Œ 6Ž¤@Š¬6„¡>…±@²Ju¹B|½Kw¹M…µD´IwµN†±G†®Sy¬VŠ´d€©TŠ²`„·fŽ¿^³bŸ´k£ºm¤¾oš±lœ©f©ªeŸ¤i¨©j¥”bš›S –UŸ›]ª`’¥X¡S‹œX“œZ‹šR‘œP‹žL‘§>ŠŸIªFŒ«A•­<‹³9“ª:¦- £2—¥;œ6“˜:—¦8œ¢.›¢8¡ž4¨—+«ž,§’:©—@ ¥O•K››?‘£L§EªN¦E§J˜›RŸDŽ¨?Š¬AŽ¨G†¥=„Ÿ:€¦>€¬>­H€£D©A{®Nx¹Rw»Tt´Ls¨Nu«Rv¹Y{´X€°dƒ´]u«aƒ¤mzµe­`t³dx«Zwdxžbz§hj§oq¯gj¡lj mg uhŽuWŠra•cT•d]œ^aŸkZ–t\kK‘cT“bU‘\V•XPœ^X§U_œL[šN^¢XhœSl ZJ/3B)/A**K6)BK2DP-KN-LT9JK1XH/QL8SJ9[D4TF/U>5SG0MP(T\*WO1^N.T\6WY9em6ep2i]?g[<^]7fZ=o`5n_=rj4lo„ D‹¡E‰›M‚¢Mw§Pw©R‚µaƒ´^²O~­O‡¥Vªcy°j}®d„²b¤_‰§i°lt­av©eq¢bx¡azŸku¦nm¨pt¨`h¤ek ra™kc“md—bV‹dP‹_[‘ccn^l^ŠcT‘^VŸ[X›_P¦_S eY›a`œQYWX\e–Oi˜R?*0=$7K18M60JA/QE6RU;NSA^V2^Z8WQ1JP:ML,WK-PG,^H5\N4\\#ZK&QK%SR*d\>b\:fl.m]:cb5oc9p`;q^>lbCwj;qvAoh?urBysMvu_wp]vkd~cZ„db„cnrklk`{niqhiifcgl[lmdkdhqcvhiqkZvzekolt€po‹dq}nu€|wz|uw„wx…ot{p…†|…‚q|Št~j}r{|oƒl‚wd}ƒgƒaŒ~f›Ž\¤~g§Z¡…\ †^•Œ[”ŠG—ŽR•‰?›‘Q¢T•‘P•‘Pœ–X“L•ŽQ •I¥‘L¬V´›X¤œT¦˜Y£œ[®V«™S§¨Yª¤[¥ aŸi“Ÿf•—]˜™gŠmŒŽh–‰h‰Œ^‘`Š“g‡ˆb‰‹b•VŽŒj˜‘bœ—j“aŽ”n•‹h•›i£[”ŸOŠ£U‘œGF•¬;™¢I¥G¢?€¬I£D‡¥Dˆ§J†¦F‚žO{¤K~«Mw­Q}°N‰µ?„¶KŠ­?¯J€ºK‡³R…®Zˆ±c…³P}¯X­SŒµ[•¼i¹dž¶e£­hš°aœªnž¯a¨iŸ©c˜\—šS¢—OŸ—P™¤T‘—Y”`‹RŽ”V—N˜P‡¡=ƒ¦:ƒ¯={«8|¤4Œ¤,ˆ©1˜4’¤7••,¢8•“0™š+“”*šž3 “1§•5¨ -£—:£‹9¤‰>¤–;™•M™•BŒŽN‰™FŽ¡>”žJœH† F—A‘ªG‰¨Nˆ£@~šG‚¨@ˆ N‘œLˆ¦I’™M†«X~¯b|®b}¶\‚´^¨Xy«^ˆ²^¥ht²b­f‚ªg±d‚§o} utœpx¥n~ mo¬mo§ek®cj¬je£_m¤_jŸmfŠkW—_Y…d`b`l[•jb‡haŽcQ”k[›k[˜bTœbd˜Zfš]d›T^]k˜\c˜JkŽN90gc7nc:heBhe”7‹Œ,‹•)‹˜+š. ‹)—•0Ÿ“4¥ž5¬’4¨•3¡Š0 >ˆ=IŽ‘F‹B––@–™Bˆ¤=‡¢DŠœKžK“O„•G‹’NƒžH‰¡J¨K“¦N’ [‰ª\ƒ¬f…¨g†¬`~¦i„£i~¤f…ªg®fzªb…³j±h€¶kw©o{uv›pz›szŸx{tp«lh£dm¢cežf][^›]`Žca–cZŽk_‘fg‡fa„leŒnc‰oT‹q\ˆkV’hcˆbg‹]c–am—Xu”NmKdSjOH68=49;?;>G7KBBU?DSTEaTBN]DVR+JQ*UH!VS.RQ"SP.VN1PR VZ&Y[1WN)`W:_[9`e>k\*_i=n`7le9cnCpmAuk“CƒKŠ—E”—C˜D€Ÿ<Œ¢H‰˜R‰›Q•›\šYkŽ¡m‹ j§a~œn}¡d…£b‚¨l{¥kƒ¦g{°s~³b}¯ls«o~šlq˜hw¢lr¢ju _j¡ie™[mœ__œ]^›aX]Zˆ``‘icdd‰^df\‡nY•pQŠsZi\‰\Z˜an™cl›^f›\p•[q‹XjSbQD44?<7<:2GI5OA3TD@]M?XRKRRCKW2QX(US)^V.YX&O\MV#MX)\a$S\/RX.__2[b:ja7gc/bb5i^5hlCchBf`Ey`Gxc@sa>mKhFy`H}_X€_S‡_Sd]ˆ]aiiuhm{ccy]\w]RnbYqV_gU\j``w^_lXgmZryelvhp‚fk‹sp~iu}otƒ~qy}}‡|uxzŒww‡~to€n}mjzkiˆrfˆuo}d‰u^‘„U–„Z“{e˜}a›}[˜†K™ŠW ˜U¡•H›ˆJ ”Qž™RŸN L–•E—¡A§Ÿ@¥–D¤–<šE¯¥C¯¦J®§U¬¦P¤ªO  Vœ˜ež¡hš¤^¢šbš™g—–h“…j‚o}s‘ˆh“Œ[ƒ†^€„i‡Žg}mŽgˆbŒ‰]Œˆf–b“ŽZ‡Œbƒd˜`›Q¤KœNš£P§C§Cˆ¦>Š¡;‹§G€«K}§Hx¦Ut£Lw¤Pr¬S|¥]¬Zƒ¡Y‰©W¯TyµI}³C‡§I‚¦[z£b€­_†®VŠªU¢P’£Tˆœ^‰¢]–iœ¤gž§iœ¤[š_–›`—¡Y¤žZ¢T¡™[–š`‡¡Z‚¦[~šW~œT‹¢O’£O“ªG•¤E«M‘¬<­<{¤:}¨<ƒœ9†’8~“@†6}’3„ˆ!”‡+›Š*˜Ž%”š%˜š1 ›3§,«2ª9™”?–ŽB‘‹>’”5š9”•8•?‹A†˜A“EˆŽTS’ŽA…ŽF€‘@‚Q’–[Œ^ˆ™c XŠŸ^©cˆ¢lŸq‡šeƒšd†¥l‹®pŠªo‚¢jƒ¤m€¬kz°b}¤`x›bpœ[t«\y¡fz _o›[g’^r–dm”bj™``ŽaeŠaeƒhX‹[Zƒ_Z‹hc`g‹e^’ne_g^c–Ueš\^•[hœNk•Od–]a—Wi†\>1FG;BFA>EBDRQFNGJ^NA\YCPLCHK3K]4SU5X](RW&M[ RT/[U4`c,P^6Te2X]8]cFan@ja:dd6q_=f]=mZCf\Fx^BoiA]@„fF‹gI[SŠYTŽWU‰Za„da‡]i†imr]mt_dq`[kZVhXcsYZkYWjOckYgzZnsTu}ahyhv‹uu‘wg~wh‚q‡x{Žq’x|‹†sŠ||†‰p‰ƒwr}prwnjƒys{mzdqb‡^ŽYŒ„_Š…]›‰VŸ‰S–‡N—›O¥‹IŸ’Q£™W¦ŸQ¤V¤A¡Gœ—C–“F¥G˜–D —O¡¦M§£Qµ§F²¤W¢œM¡¢U¤›X¦¨kž™l£¤hžœoŒa—ˆo›‚p—‰dŠnŠ‡i…l‡Œc„†iŒˆ]‚Œb‰ˆd‰f…Žawaˆe†a„Z ^Š¤RŠ¦QŒ¨Jš˜R—«OŽ¦A“­<§9¦B¦D}¤Q|³]x°Qw JzžW~­\ƒ§Y}›Uy§\}¹O‚ªTv°J„­R€¯U|¤UŒ´ZŽ¬V§Y£[†¤V‹˜\“¤V”¤b”£f‘—c”’Yœ–h˜e ’jšœiŸ[œ›_‘ªSžX¦]š[…¨MŽL†²O…´L‘²B©>†¥G†ªA‡¬=ˆ¤F–2„–+Ž9(€•$ˆ'…* ’!›*›š$˜œ'›'¤š6©‘0¨”3¤<•‰7ŸŽ>•ˆD™“@•ŒC›?‹ŠO‚‘O‰—JŽ‹K‹“G‹Nˆ—D‡”A’•K™]ƒWŠ›k’dƒ¢h’’g‹—qŽ™r‡–q…Ÿh‹žrƒ¢p† l§w…©j}¥nv­fu¡hz«Y£Y|°b}ž]}£byŸTq•Yl”^l–brŠ\dfZŒcb„mj€\jƒh^Ž[iŒf`‰bdn`˜_j–\b“ac”_b“SgšWpœMdšae›QjVM9?K:HM:IHJAGRMSOMNWDYUKPRCPPBSU@KZ=Le1Ub,M]1M[,P^6Xd:Zabg‰“+‚š0Šš+„.(‰0¢Ž(¢*¥˜+¢›&ª+¨‰%¦“+ —/Ÿ‹8™’<Ÿ‡2ž‰6”HŠQM‹‹K‰“V”‘MŽ‹O–“E‘•I–œM•C‹O‰X‘Yˆ’cˆŒ_Š•eˆ™n“n•y‰w‹‰y…”yˆœu‡ w‚§k}¥nq«er¥bp©Y{«`y«ey§av¤ewœ]p“bt™Xt‘OvVm˜_a]_ˆh_ŒafŽZi…ac‚kegk–iq‘\i•]m˜cp‘Wg‘Zo’^s”Qr’QfœTmMl’W9>B=CJKYc6Yf0Y]7]gB^bGZd:a]9k_:j_:q]2y]>ri0€fC…gD€gF‡dGŠiJ’_[‰\NŽ\`Œd^yaezkZ{Zc{aXhZhxa`nXXhOSsTVoO]uSep]hrihu]l„qi}mn‹{jŒ{i‚}iyƒnw‚vozx‚sz‰t†xƒ}v|y}~€mt~zˆ‚k‚rŠql‚zZŠ€Uˆ`Š†Y”SŒM›ŽX šHž”GœŽL¡“O›™S˜¡X¥—J¥šNŸ’MœžR”—M—•T•V®›U°œO®”J°ŸY±”K­ŽV®•T¨£Z¥›h© d›•b”e”j›…b~d‹c„]œŒk›€`•€k•„^W~’a€ˆds‡dvŽb~gy“p `‹P„™MŽ—M†œE—¢BŠ­P…°S…®E†£J~­G|¯Lp£I¦Sy¥X}©W}¦_rž\w¦Vƒ°[x¦TlºPy§Zx«L‚¢Lz®JxµR‡®Z°]‹±[y«[}©[…£V X…›X—˜Q—œW˜œ\š“c˜–jš›c•e U—¢RŸ[Ž¤N„¨\~£U‰®]‚¦IªU„¯G†²BŒ¦A‡¨=ƒªHŒ :‹9—2Œ–)Œ—.…Š(—”+š”2š*•‡/£•*±“-­•&¤”&«•3©“$ª‡7¤”4 1¢Ž0‹A‘ŽK‹‹GQˆ†XŒŠR†•K€‹@ˆE”G™B‘ƒI‹†SŽŽT\‹–cmˆ’kŒ‡gŽ’kˆm‡‰p…‹n|Žr€Ÿq¦mˆ˜mv¥x}™slŸew c|®jx fz£pz˜jUw”Tx”Qs™Vw‘`v‹baŒQ]†T]Œ]Yƒ_[ƒia^cŽihŒalff‰Ymš[l–`l“Yn‹awŒMt“Qg—Ud“agV@=T;AK=CF;?K;LCKPFUPD`RDTWCXUA[]CTZ;OT6IX?HZ0JM.NO-T_1XY5`Y/\Z=c`Gb^BZg=aoGogHsj>q`;€`8b‰›B†•?““3’›+‰7ŽŠ4’0ž‰*¡5˜„8Ÿ‰*®Œ*¡Ž0žŒ.ª‚2ªƒ%«Œ$¦‹41™‹9•C’Hƒ‡L‡†V“…Y’‹J“‰=ƒA’†B‰R•~J‘K“{H”†I‰ŽP‰a‡†mŠŒhŒnŒvƒ”v‚kz†s€†m‰Šs‚žq§z~žyz™qs˜s{¡tt¦mwŸo‚£m‚—f‡–\~™_r’Rt‹WxŽbr‹]i“QiŽP\V\„U[„eZyce|[i…_ab`bnŠbj[d‹_k“\n’Xn‡Wp‡dgˆ`gˆf5@K>GR=FS9HO>LCCLJVOEYG@RZ=MW=NOAPXAMNA=Z9HS6AJ:AQ4V]+[S0U\9`bGI5IO;[S:\N@bZLb\NbVLhQSv]Py^TvbKtbNycS{XY‰^PŒ[G…fH…rG„oIŠtDˆkJ€sN{oYtb_}bhvgm{Zc{a^}WizZeyi^na`sfhpltxsqsty}€v€wpy{xzxzl€{gzr{xvu{n~kxh~‡k‹Žn‡Œw|Žsˆo‡ˆnŒp…upƒhq{e€„`‡wc‡y]ŽV‡†^T“MŠˆP‘‹OŒ†QŠ‘b‰•ZŽV˜—X™_“™^§•P§™R¬’M¬–EªˆJ¥’L¬“W¦•X›˜b“f˜™`›“ci—“h˜še–•Y–“\’…Qž…V˜†bŸ‰h˜’k““l†f‚‹oˆh††fˆf‡„\}“\”^}•^|–`yPx’Nq•Mx¡\€ªWƒªV¦Z†¨]~¯Sx§Q‚¤V~›YWvž[z¦Ut§S}«Uv³[i²\m¨[q¥Ws©[n®Wh²SfºYi±Qh¥_h©\k­at¯[€«Vz¥ax¨ažS†›R‚PŒ˜S„•a–T‰™T…¡LŽ«NŒ­TªK•®H‰¤O‰ Ox©Vs­Tt­Qm¹Ju¶<‚¸9…­4†¯1£/›/””8‰?—ƒ<™1™ƒ2šŽ/œŒ9£’9¦‹7ª…7¨{(¦{ yž‡&¢‰1ž„3—‡>™@Œ†O˜‰M’O–MŒ“R„ˆSŒŠHˆŠG‡~D–~S•|Q”Š^ž†Z—€W™ˆT—bŠh’h–ŠmŒ†rŠu‹‚t…†l{’t}‘{x•}z yn›qœst”|wz{xz™iy”g‡›_ya|Xp•Zi‹aq†Vh‡Zg‚^[ƒWY€PdxVayaY|[_€Z[x`cil„dqZf|^bde‚ZiŒ`n`xlpj@EE@PDANHKRJLWRNTQJN[FMLQ>\V?VDCJL5DS7JR=CILNTACR;UOA[X6eSEZ^Ig[FXJWdUIm]GpdJqaO|_LƒYK†cO€]LƒgUfVeKŠhO~sZylS~sRmg`u_]zchZ[y^Z}U`yWl{ek€i^rij|gpwqpƒtppmƒ|q~€p||qymvoxxp€vp€…qz‚w|py}syj„x|€rz‡iqƒlˆŒr‰†k‹zmzlvˆeozgwƒk‰rg|}cŠ†c’\ˆ‘V€ŠZW„ŒX’‘b““jŠX•X—–\ œUœ[¡˜S©›M°ŽO¨˜O©’U´™M§‘\Ÿd“YžVŠe—ˆ[£—_•–Y”–X™V’ˆZ‘Q¡†a‘˜h“m‘Œf†”o‡n…`‘ŒdŽŽT‡”]‘b~“_}™\‡’Sƒ–]o‘K|œJq›R¥R€£bˆ¬W‚¦\ˆ¬[}žP|œ\ˆ£_y—]p§^tcz¨Zs°]nµPt§_h©[g¢bk¨fq²\q®So¸Zq­Qn«Yp§cjªSr³b{«ct©kwª`ƒ[šM„ Lƒ[~š]–^†“W‡¥U­P¡OŽªL§O‚ QŠ¥Qy«F®Q}¯@~­Kz­Hz´@~¤1ƒ¦9ž6”ž9–Ž+—8˜“<•9›…1’„0Ž6 }3™…@ª},«ƒ0£v)©l"˜z" Œ/ƒ:“yA–€CšŠS‰ƒQ—’E•—K’RŒ…YƒN…ˆM~€JŠƒZŠsO–]¢}b•‡V•ƒ^‚a‹ƒ[Žhœƒ^št‘xŠo•|n…y|ƒv…•}~š~ržrtxw{w†~}ˆm{’i’c„iy“h~Œ^nˆ[c•`r]cƒ[\ƒZZ~`ZzTh[f|Q]€aX€Zg}_g€e^‚f\w]_xc`{\^ZfvdcŠlq…bo‹v=KN@KQ?=J9@TF9W:JRJIVIJUMANLLOWIQ\JLcEGKN5HS2OFCMTETIINJISOC\G7WX?aZIVUHaDRiKFnSQjSMn[R{cWpYSwdTˆ[O`PZW†_TŽa]}rZ€tawj]qg]zj]ol[|b[yrb\_at‚eazbe}hd|eguet}w{€xtŠthŠrf„|o€‚u†r|‡u‚w|}‚~y’~j~“{y‘t|’xt†kl™mo‹esŽks€puvvrqyrym~x{„oƒezc‚‹[z’Y~“a‚Ž[‡“cˆŽk–q•”a–Œf“`£–c¢›\®’X­‘Y±˜b°“Y¯ŽP¦†XšˆI¦‚Y«U©M«ˆH«ˆOª‘GŸŽU¡Ÿ^˜œS‘‹U“˜Vš’Y—™a•’fˆa›‘U‹P‘\“]… Tˆ‘N‘—VˆŠPŠŽX|“H™Fu—USo§Uw R|¤Vy UxŸSx O{Uu¥Xy bx«cl¥cp¥hq¡ht¥Vw¤^r©fr©le§sk£j^¡[m­Xj¯^q©bg·\o¤Wr©dl¡hn¨cqªarª\~š_‚—Z‚–c~ S‚¦ZyšS†¦I¢G…˜N„–N›DªCŒ£L}¥A}ªžƒ=’†?‘6¡ƒ0¡~+›v$¡j(¤{'”s%p.‡x2vDœ}E˜zG‰‚?”„P’„M‡ˆVˆ}_‚xR…yT‡}Tvcl^ŽiP™{Q—tZ”‚b„qeŽ{eY—‰eŒd•„q—xt’wl‹z|‹„~‚‰w~Œu…€p~v„|zŠy‹ƒr€ƒq‰‰qƒgkinjh‡ts•ii‹hf‹\d~[q~_hsWeuQa\cr]es^gpWVxdYn\euqaujXnoUox`usivuu‚mCDV7KQBGX>=YI9ZDENAFKOAOIGDNBDZHGYEASIFOO;UM8MNBLE;ZHAaA8VI@^IM\QHfSFaKMdPKiMWkXMj\ToSNmYU~\W‚gU}i_‚aW|e`‚c_‚sf€rf†ogzn_ty[lu[mr`oqcnih|enwfcwdf€_g„hxykp}xv{|sŠ{lpkƒvr†|s‚wxz{yu…‰{‚Œw‡ryzx“r{tvol’qk‹ok‚no†jtplƒutyx€w†x}„z€w‰g†g…l‰‡a†…l…‰iŒ‚q‹g’‘^“fš—qŸœk£œ]¤•_¡šd©`¥‹X¡‡MžˆDžŠJ¡ˆH¬„O¯‰D«‡E¯†Eª”J¢™H¡˜P™œH–˜MŒ“T’šYV“ŠdŒU’˜Q˜œK••Q“O™R›LŽ‘V…ŽK‰ŽKI‚›My˜Tw Pt¢YrSp—Pt—X‚™P~¤Vy§_o°\t°mr±nr°mk¥poŸjt¨do­bk¥^g ad©kc¨`\¥`h¬gh±fn®cm¬cj©dm¨h|£jy¥a€ªlw«hu°e€¤b}_| [€ŸP€¤KxŸNw™Fz˜G…›LŸA‰«Gƒ«={:x¡9y¤<}š2›/€™7z›4y=t–9sŽ4~‰1|•7’8ˆŽ8™Œ<™ŠC•„A›~<šƒ8•:œƒ/—s5¡p)™s$™v.˜z;‘t@–{C˜zE“{IC”yCM‚Y\z_|}[†x]„r]ŠwU‘mV“oV”v^•w]ŠtdŽ}]’aŒ~d‹j”xu—vr“xxŒ}o…|‹„xˆƒ}…†|Š€~ˆ€|ŒŒz€Žr|’|ƒ‹y{qrmjkkŠuj„le‹lc‹fl€amtdlu[es^k|]i€ek|[`^`q``vgZkranuYmsgo|djymqng|o?BV6DWDIW?FYO>UHFRCAQD>UQ>DMB>PCDUKJ[KKLREWGFJCKLTFWJGTHNYAKRPF]^Qd]UaXMZY[bUZmc]hfRvdVyY]uWV…bU‚Z\v\dv]eu_^wfn}hs}ngva_{gbuudyjmzqnvikycg~al}nrwgrzilurx}~xuxp~~iurztdw|n~‡s„ƒot|Œ€{—€‹yqt“p…—nrŽnz™`y‹nu‰cqˆk{†eokqv{}osƒ{y}yvŠzy~jŒd{^ya}‚mw†iƒc‹i•h†‘oššs™sŸ–n¡‡d¡ˆc ~h¤ŠS®‰[¦ƒS˜ƒC¦‡Q´‰L£‚P±ŒF„L¨‰I’TšŒX™—K–ŠM‘\˜“a…•_ƒ‘Z†‹S†‘L‡‹R‘Y’—\•]ˆQ‹X…“X‘’B„‹R€’G|ŽCv—It–Hp ]xžRpž`t¤Lx¥QRp©et£lt¯ht¬kpœrvŸcz±cp¬Xa®W`¬\]¦qa«`džjb°ep¨ti¬ok£hpª`h¤lt¡ipŸft¦cg¥d{«k}§hs˜Zy˜O‚¤Z}œU—Uw‘P}˜F{œK†ªE…¥K‰ªB}¤K¡=x¤FxœGy•;‡˜7„¡0zœ?{ ?r†2‡0ƒ„7„†B–“@œ‰>—“<ŒF—|=˜‰3œx0 +§v$¨t£q-q%žu/’q;y?’{6›x<Œ{D‹~;‹…C„‚Oyr[w]ˆrd…rTySnU‡rR”qYŽ{a‹zYŒ]”ƒl™vj’~gŽ{n‰ro|uŽst…h‘|n‹}Ž„–z‚ˆ‚€‹y|‡†~Š}Œ‰{‡ˆ{ƒ~q}~l{yq{†vi‚mfŒioŒok‹ih}[sx`dyghveqq`p{W_n^c€W_xn[epZhpbsklo{c|‚syriƒp=MYIQ>LE4VI;QQ=DY?H`GS^GP[FOWIKMLAJHCTHE]VRXUOXFIYKTY[NVe\\cXYZbb_]`h`ie]m]U€ZV„UV†\T‚b_yhhqjjw\ekcbn^nuemtdhuj`vlermm{gu{nmqoprjvthpyqisjmvsn}x}wxxm€rv{n|~ep}`t‰l{Œw}}qv{’xwš‚y …{¡y„“sz”b~•czdray{fr…c|‚k{ws|uzƒp{vwytz|x‰l}az„f}`z€i‹ƒnsŽq‡—k‹“s”l›‰oŠe |h¥{a¢V©zZxK ‡I­D¯O£’S§ŠW¤Mš€HšˆPŸƒXŽ‡S‡T‡’SŒ“]”f„‡]Ž\‰–V‚‹S‰‰XˆˆTŽ‡V—ƒV”Œd‰TŠ”J‹M|‰C|ˆL}’G~›Gv—XsŸ_x•Ws–\{¢O~ŸUxž`k¡ek›ij¢hg iq¦a~¨Ws®Th«]i§fa´g_¦rn§nv£un¦sx›rr¡or§ga§ci™Zh–`ošff£fug¥_¥Ru˜N~˜Xy“Yy•TPx’Ax¢=¡C‡¨?€©NƒªL|œDŸH€‘B‚‘H‚•Iœ8}“9w˜<„F€‚?ˆƒ5’„;™‹?‘Ž>•Š<‹;’ˆ5¢~9¨q5žp(Ÿm$žoœp&—l&žn)l8”t7{4Œu8’y6˜q6•zDˆsQ|oZ„nXŠwbs[†wYƒwa‡z^”qS’xW—{fŠe’}n˜wg‘tjŽu‡sprršvl˜„j—Žk’}š‰ƒ˜}‡~z„sq„zy’‡xŽˆ~ˆ€yzzxq~„xƒ„p}…jq~mwryŽgqdn„_nxbjtehmXdpV^pY`~WiwYcnljlt`zpd€wr}yowv‡kOKmŽ?|ƒB|ˆBƒ„?Šƒ8”€4‹‡AŽ“=‰ˆ0~2œu1§~/¢z,£o"¦kœo"©m. r5—o0’m5˜z-šy<™v.~FŽ}LŠyL~h_‚x\‚xXƒvW‘q]vVyf„`‰zV‹z\’wa‘sg˜vs•xf€r‹tlk—yk“‡nžˆv•Š~v˜x}™~n‡xum’‡q‰v|~~„}xwƒzvŽ€nvuƒ‚nƒˆbxetgs‡bm}gvpnjqWry`iwQcvTgu]ithr|ae…nkzo{…q€ˆ||„p=EiDBhQIiRSXVUUYONPM\WHYSLR\BYcJX[Ja]Mh]S^\W\ONLTIKdJNkZLeXS^]RaUYg_Ueg\scNqYNvTJw\TucZp\en[m|XdnS^p[^pXly_lrWrw_mrbxj`yrSypWsqWp€`s{ay‡bwŠhw{ht{h{yprtt|mqtxrkurplspr}gl|pv||{~~t‰ƒo†p„{€~ˆ q‰¥mŽ™ii‚†p…lˆnƒƒmz~utzm‚uq‚wsw‚{uˆ‚pŒˆo‡‹z‹‚z„ƒr€}jƒ…gzgƒ€q|…h†p‡—eˆ‘i‡dn”}h›t]œ|T¢sS¥~L›€Q—Pž‹Y£R ‹I“†I~M†O”}Q—‰Y’‹e‰^„c„Œ[ŠW’‹^ˆ†_€€V‰„]‡„[‰^Š™fš`‡a˜X‘™Lƒ‹MyŠP|‘G{–Ow–QvSr“Vl‘LtQuMlŠWp–`e–jk›he£^d¡ct¬Yo¨Xo¯dmµhj«^t®eu°[|±bs¨lu«ao¢cs“be“n_‹t]‹nj™ei˜^g–ei•\ray—Tx”Y|Z{—P~–O…–N‹‘N†–K‡žBƒ›B¡D¦Hx¢L€’?z:xŽ:vŒ„Œ?ˆ‹B‹…;™‹<•Š5“Š/¡|4¢y5«{.¯)ªs§k'«s4¤u/g5–i-–u/˜u96ŽyJŠ}PzO†qWŽrZ…t]‘maŒn\…{[†^‡z_‡}d‚{hŒv`€c“pŒucŽqgŒtn‹vmŽxp”{yx™‚|£‚›v}’wt”wm‘wj‡‚mˆ}nƒ}t€ys‰rŠzsƒt†{qƒ‹hzŽ\ŒY~}fzth}xgv~iov]k~^p{\q]r}ZzˆgrŠcvls‚Žs„z:EqMDlGQaWVV`VUZJ[[O`PQXMD_YM_SQ[cWc^NY]UU]QX\S\VRXb\P[X]g\XcfUeYTc_SfmdvicifS{\Y„\Nti`pelzf\‰\`€YfmV\uVdl[qkbun\}o^|rX{kUpv]s|cq„aoub|~c}€pk~pj|mrskktqompmjopvu|k€zhvv|yx€rz{uƒˆp‰q„œpŠž~ŒŸ{”o„•m“jˆ‘m‚dyixwtr~stˆyi€}hwvpq…wv‘{x‡|Ž’v‹Šp€{~v‹i‚‰r}„h~p€r€„s‡‹v|‚k„…q“~oŠth–zf•s[˜u[•y\–ƒV‘\˜c‰ƒY“E“~DŒuO„|QŠ…Mc‹‹k‚}Y’a„]]€Œ`ˆ‰]„^†P†…a‚†VŽŽV–“bŽQŽV‰O‡…HxŽCy˜@{™EvL{Lz‘Lx‡O€NwŒOu’Q_“dh^dšjf¡Yx©Wr°[{«b~©_u±Zo£bs°R}¥\n¤\{dp¡m{œhk›km“lhŒlg†bnhf—bb’Sm‰Os†Uv“IpŒJŽ\t–UŽP…ŒNŒRCŽœMˆ–Kƒ @uE”N~Jxƒ9|ˆAwBu…:}{/}‡=Š‚=‹…@†J…~?Œ‚8‘{C“y2Ÿv8¤j0 o.®p7ªl ´w¥d®g&­`(Ÿl3“g4Ÿt9›t1š…7›zJtMyR”nN‹nVzW‰~`ƒpSu]‹{W–€R“‚\‹ud•yX‰ri~c…xdƒonŽxg‹ml”soŸˆ{”†sŒqšz{¢{o’tw¤tj—tv‹qpssƒsp‚uxqqƒrt‚l†|mŒul~‚_ug}c|‡m|gƒ|govirwal…jxŠanzfuzdu‹`s‹^{}b}‹m|‡rŽ†ƒ‘Mt‹Mk†Oj•Te—QyœVu«Z‚¬Qƒ]}¦Zz¢ay¢Zn£\uœ\všgyap•ct¢Z{šf{Ÿov—iqbp–\v’gx”aw‹ZwŠ^pŒMuIq„RpStƒVƒ[zT…—Jz˜D|œ;q2n6uƒ>uEx…O~„I‚ƒ8‰„4x7{BŽpI”oFwG‡jJ‹w>Œ{>–r6™l9¦o(Ÿl4®e6­r/±a$¸d½g²m¨Y$¦[4–],¢iA—{B’xD’wF‘sB•pG›wS}MyT†€L”~J™RŠuMŽuTiVŽkXˆs^Œl_‡ua–tf‰}j•xk€u›†|Žp™‰qŸ„pˆq~m£sx˜‚o¢zt–nl™tgŠyf‡eŠxjˆ€fŽzj“…h€Š\…Šd‰Ž`Œz^|†b‰|c‚jwŒc}†efv‹js‹pu†mv‰r‡l~a€‰jzYH`XJgSVpWUjQ`bV[k_il^fuYpoZis_gvS[lRcbY]iT^rUZiXWqVen^rn`neotgpxaoz_~q`}gYzcV}hU}fa}d^†_bƒXfƒ^s~SvzXqtasob|ubzq]zsVxo\{rY‚we‚lZ{l`yy`{zio{mj}wmsznv‚mq‰iq€izŒir†rzˆup†ur‡‚t‚ƒt~ƒŒ|„ˆr‡•u’w…œ}}‰y}†~z~s‡…r„Šj„€`„€gupjyinpysv€rq{kz‚tsywˆ|Žˆ{„v„‚~}ˆ~ƒŠ‡yŠ€pŽ…x‰x{‹xv}zz~z‚p‚zk~‚^‘|f“x^Œx^…ka†iasSƒwWxpQttPvs]r^zx^}vSsuWxo_vt]wzh{ˆas_y‡[‚XWˆJ‰”LŒY„T‹‰IˆŽFƒŽD†?Ž—:‡‘FŒ‘<„–?}‰MzI‰CA†ŽP}ˆOtƒMf‹NlMr˜ZqŸZv¡YyVyšcs›hp§[u™W}”c€[x“azšZ{•d~˜_s–il“at’^}Š`z‹gz•k|is‚_{€WuT„Pw|Ms‚Z|Rw•NrœIy˜KoJu“9s…Au…’‚K”v:•x:”vAˆoJ…kEyB—v;›f6žm*¢h- k+£v,¥f&·g*°n"µi²h#¥`*Ÿd%¬\+¢\;g<št:r;ŽqIoD‘tAŸ}FšƒF‘‡I‹zIŠxK˜sY‘pW˜ggžs`“tq“wv‹rt‹nf›lŸwi›ƒzœ{qž|u¢ƒ|¢m¢‡u¢…o¢{~²~s°tl£|jšzh™‚pœešzj‚]“x[ž|`“^”Œ^ˆj‰uh…m~]’h’ˆi‡†l‹„k††n‡Œf€|j€‰lŒ`Œ‹k–‚h‹wTV~Q]wQ^uZfzekwafthd|_n„fcwdfoeUv^TtU^kVacQjdOhgbhrgmmloq_ske|`n|fjsqsknremtii‚rsƒxu~hi…dl‡_i‡Yn€V|yX|pSznSzt`~xgrhpwcovdvz[n]„pk{upvqqz|jv€p~„myˆr„Žn}lk“gj…ru‘lr‘uu‹}jŽsˆ‰o‚ˆsŽx|Œj…i‹qŒw†Šlˆ‹i…‚n‚k…‡pƒ€ozvp~vyuuuwywz|ƒ…v‡ƒ’}‡~ƒw„‹px„vx€x‡|y…}}xx€uv‚owŠorzz‚}|ukxp`um\‚kd}le‚~Zs|NqoOvoFs}M~nI|pPzsZr~Vrw]vmWwpRnyXwƒQy‚PwŒW€‰WƒƒT€‡Lr‰EuŒJqMm’RxŠPvRz|R†€K…’E‹“9y˜yŠA“DxŒGs†Fx‘Cm‰BrŒKmKr–Px‰UyŠ[wœdtŸ^u¡[y›T}¢St¢Ov•R{™Sy[€‹a”cƒo~Œg‚’p{ft‰j}`‡aˆ}h~nc‡|i„…b}‡^q‡Y}N€RxˆSrŠPz’Q|C~Eu?{x>yHy~T…ƒT‚S‚„Iƒ?‰r@„w?{J“rIŽzB˜y@™k:”x7”w&l*¨l¢s+¨i*¬e#¯`!®^#¯_1¤^9ªj2Ÿg8¢`A—d<œoA’vI™oF”|?—~H˜‚R‘†M”RtZ‘p\šr]›khnitv‘mtliŽso—qhyqœuvœxr—~|¢x¦ƒ|‹p©yq«xo¥qf­ue£pi¨qq¡tnš‚r„f¡xb£rd›zf¡†bœ„[“…_ˆ{i‘tcŒqf‹|hŽ…e’cˆo{p…~l~zl„c‘‚p’€nˆ|qŒˆrQIY[[a}Zc‰Zl~Zs€`ez`d^l\coZ^yi[nbfifcsQdhLkfSer_htkrvfylcwml|tqxlxko€xf|xgss„€}‡m|qpcu|aysRuxU„qT€nZxqVp[|}ZtoglsXt€a{wh†pwtm~lsttrry~tm~jjŽuu’t|wt†kxƒ~gˆtjwq’i‰{g‡ƒiy~d{…t„Šr‹kŠ„d‹mˆq€j‹‡m…cˆ}q{u|}t‚€w…w€~ƒ}r…{„‹}‚…€{…}…z}oz{py~ˆowƒzwyoxstˆw|xƒwƒ~ttm~v^|ocˆn^tsZtpX}~]ryLrrRwwHmvJ~mMutVj}UopUy|]wkYhxYz~Tt€Wv€OwIz‚Jz~Tv}DpŠDo„Ro‘\l‰Lt‹G}ˆEz{F‹€<„’@‡”A‚7rŒCx‹@wˆNw—Fp‡Pk“IsIrŽQv‘Ps‘PmSqƒ\jŽ`lŽUqPvŸU|žJu¢O‚”Jˆ•OŠ`~ˆc{e‹›i|˜r„iz_q…gyˆ[xƒi|pfŠpiŒvc†ƒl~ƒXt†Sz`‚ƒ\|YqŽTvŒY„Pƒ‚G†w=ˆw@…HyLƒ‚L{…U~O‹yPyN„vJ„T‹wOœDŸs=’n-Ÿz/šo*—j,ªt(Ÿi-¬f'¦k.¡j)°]1«c9ªn:°l6Ÿ^;£[H›jE—o;™eK“tK“nU¡zG H¢N‚LŽsM›r[‘pe”wo•mg˜mršqqžsj™{w›ut•vo£vŸ}z§†ƒ ž‹r¢‚yªƒp¤}w°tc¦€m¨qj§mq¡yk¡Œzª}q |k§wc¦€kž‚f•‚g”yeŠ|iŒwh‹re–yf_‰kŽˆk‘xg…}rŽ€sŒ~nwmŒ…hš…xŠo\X}eO„ja‡jh†lg~do„ao€\gƒ]]‚[Z}eaxdbsljwheqbmhXigZugZptfk|ksrtwuu~qrxu{ysynˆzlˆƒsƒ{y~x~tu€cwzawuV}pS„nS‰zX„x\{w_ux[poaup[v}d}|duws~sskltcpgkzkk†qj‹pvƒp}Šx~|w…xxŽpj’jd—vaŒ|]Œ{f€„^~†b‹b~j”‡dŽ†h“‚l•‚h‹Šm‰ƒcˆ~k{nx||x‚ƒŠ…ƒ‚{Œ}…ƒ|€„y}‡‰†|…zvvysvtooq’wqˆx|…vq}yt†uy{zy„{vqk‡s\|mYnl^mq_wvasxUl|TsyHpqOupHojKsrVyy^oy\ezcio]sq^xtPxvRs}Gy{Mw{Pr„Vg€J^‰WfŠUo“YkŒLn†D~IŒ‡M‡ˆB‚ƒ8}>yCz•Iu—Rn”MfˆNlŒSoˆMj„Ot€Mu|Iw~Pm„PbWh‰SpŽKs•Tt¢YtžLv™S„•T}b~‘b‹–q‡™nˆ–c~g}‚`s€]ruXwaŠxfˆn]„kh‚sf€xj„Š\}^w‡_u‚]|d€†e…†\‹}SŠtE‹nN‰wS…N}‚Tz‹J†ŠM‚S‡OŠ}V”„O•‚S›zE p6–r0u)–t0‘o4œk)¥r%¦p"¨l$žp0žn.¨h0£fB¯mB§lB£aEža@_AŸbB›iPœoZœmT›oM¢zD¥‚CœxQ‘w^–|i›tlwr˜pnst™j~n”}sœ~}•‰‚šˆ˜‹¥Šƒ¢Žy¡„}£y§‰m¢ƒn§{g¨g¥xo¨‡n¨„v¤‡m¦€n¡m«ƒa¢‚kŸzg’wk–n`‘rX›q_¤v[›gž~l—}jœ„w~rwmsl‹s“{r„v—ƒv^T}kS…qU}qbz^a‹[j„dp†hk†ae…[\}cathrvohnfmkbnoghq]qkipwmvxjz}fyyry€y|ƒxv€y}~„}z~z}|wytoƒxe‚yd„{c…{\‚v\„{c‡}ayx[xpZmxkvya{b}oyznx~krlpqwqnm€nvss€wyx{”nvŽt{ws•eiŒgg†to‘xo„zf‡€e‹ƒjƒv_“‰^ˆ~c‰l‘ŒfƒŠn‘iˆƒcyb„yo{†t|xƒ‰}~Šy‹ˆ‚|u‡†{Ž{ƒ†z‰}pr{‹pyurvuˆm~ˆw}ztt€}qpi„|kzro‚dg~ijtoWgq_fpPp|WxyNn„Nq~LhyOihDooKukVjoXou\jn[j{Tq{IytFj|RnuLyvI|{Pr~EfuQ]ƒQZ‡Kf„Hl~To…N‰€Ay‚G€ˆMy†HpEx–Ip‰LxQm’Um“Om“Xb~IqHn†RrtHsRo„Qh„PvŽWo‘To˜MyŸKr‘Oz‘X‡ZbŠ”gŽžd‰’h€œmˆ’g…†d|v[ƒb…tetiƒ{f†miws`}ƒVƒ„Q„„]x‚j~fy‚\ˆ[‚„Z„L‡tD‰}R…s\{{M|yP†N†‰K†ˆO‘‚G†~RˆƒQ”}H F™oA‘y;l-Ÿu*—t&Ÿt&©h&±s)¤y%¢z'£v.«a6¡m4°aH¦m>œb<žeB•h9£nJ£kSšlOœrP›tDžtKœL–~P”~[—xi•€fŒpkŒ|fžrxi‘~o•o¥uŸƒ„”‹‡¤‡†­ˆ¢†‹«~‚£‚t£Œs«‡n£rf¡j™vi¢‚o¯|g©|p¬ƒ`¤‡`¥Š` uk§tpŸ{i¡h\–ih¨s[©{c¥wn¢xqzvwgŒ‡mŽ€r“tp“ƒh˜…xŽ}w“zvm`ƒl^Šj^gY`fƒclƒbk~ehˆf_Žce‚ee|qt{jl{mrkaxgdlpantkwx^xz`|aˆl„‡h‰pu}|~‡~„…u}ƒw†{x…‚qykk†tdƒ{b~toŠrkˆub~ld~s\z}Zrvftl‚xi€|rƒyivvyszyr{yykuzos}zzp}k„jsŒkn‘in”pjfm‘qm{uˆzk‡xwŠ|q†zjŽ‡aŠ…f^…m‚˜s’q…„i‰€i€{kq~j‚jr„{y{}}‚‚†|…Šwzxx€{z~}{s‚psnoƒpu~|n}{g{qexkmzwnsthkyidqhefsXe|QpuVu}UvƒNl‚JfySkmKkpKnp[ryVt{\rwNtvJo€Gh{Jj|OtnM}xFxtBkvNbwKhwN_†JiMiqWz{I‚w>t˜h?”fHŸeD˜q>œsIžtI¦pG›zNšzRœwb–d˜€Z“y`re“urv–†mŸ„pŸ€v˜x}˜|~¤Œ‹§ŒŽ¬†¦ˆ„©}€ž}w¢ƒz£zt¥‡{š…p¨ym§~b €j¨‚a«„[©dª|nsj x]£s[¤wY¤id¬wp¨tm¥lo˜ls“mq“g™~q’€pˆu˜ƒt•v~˜x|cS}g`~scjV‹mZŒkc~bd„lp„ld‚imwlonmvrss‚vd}piqspxr`‰~d…_‡Œ[€gƒ’j‹‚m{ˆq}€n‘‹m‰†q~|yrs}n}|f}soƒwn‰uguoƒlh„uj…tb„k_vyb|ui}xlzyftvm}tw}qlvfyyyy{sux|Šh‚fw‹uv’sm‡mo’rl‰lo–ym”s‘|p’zw•€c„\‰cŽŽb‰‹hƒ‘gˆ•uƒk{n€ƒcryo}w_~}iwwt€~wz~}{…‚{ˆ‚ƒŒ~t|{}~w€vr†ro†oo{vx~wevpgrtqephdimkgotfrvjixYdXrVq]e†Ll„OpRnvDlmKqv]uoSvyYxxOpyPq|VdqGpsKnkSo{Srv=ouA`rFgFgwWetLhiLloS|~A~~;q€Iu‹CoŒAo†CwCv†Cd”EkŒIrˆXp„Mk‚Ru{QtˆTz†Pv„J€~Mv~OƒSySˆV‘\„T‹SŒ^’Y‘Ž_”–b’†g†€cf…qe‘{jss€{b{nˆpdxukszWx~_uƒd{{d~}ezzb„t^…v\‡xUzrMˆoJxwM…V~rMtK‰xSxE”sMp@ŽmD–lHsCœ}Kœu@žwA¢t1¢x5±m(¶s-·i:¯g1§u4§q4§j:¢`?­hI§gF¤mB jCžfB›oAŸfE”qM¢tN›|F¨~P¢wU¡|W“xY”€c•€[•‚]†o–€w‘k„r™y’ƒszv–„s˜~‰¤‚Ÿ‚€¥†ƒ£ztª|}¦{v Œn˜ƒqš~c ƒ[ª‰Y¦ƒi¤}i©‰c¯tp¤ro®€^²€]®}]§ijni¡kk¤jn£nq•}mŸƒhž‚qŸwh ‡q—}w•‚–z‡lSƒmZ€oZ~oZ…kVƒm^‰ujˆri‚um‚yjzym€xrzn}|o€ul„rrƒ{n~|_‰}Yƒ}aŠŒjb”d‹Ži…‰b…loˆ~t…q‚tswvxywn}‚v|x~tw„np‰loˆmg„ndŠphƒjjƒl_|wc…sd|dysf}sh}psxmqo{xtsyh|†lƒ‰rv€„mx‰qq“tm“€p‚k–€l–xl–€h“ƒc‰_•ˆ^‘‘l‹l†‡rˆnƒ†g~h|hsˆbtfw…ps~~r}ƒv„ˆ……z“„xŒwv‰‚qƒ~z~}sƒ}iqc‡ti‚mtƒporeiyjcnsnjnrplwmgs_j~ej€^_‚Wc€\`ŠRi„Qj}Lt~KqzStzPk~LowVvq\ryTk}VasPeoYdwSguSe|Hf~E^vM_tM]pTkiQqpOmlRutFps<{x=}„AvŠG~“Eu’Ir‡?kˆBp‡F{N~…GxˆOu†Iu†SsˆW‚~I|€D…ˆC|Q‡P‚`Žb‘Œf‰ˆ`„dŽ]˜ˆeŠe}hŠxgŠye“toŠuvˆlrŒnjseyt_|niydxzbwyj‚|m{}e|qhuxfvp[th_€oR{rPymV€tP‚uQ|{T„vS•|T”uEžzE™n>’yG–vHsM•nC£o:£p8°n>±y6¬r>°p4¬u:¢h<©l8¤e2©c?«f<¥^E¦gD¬lD¤h;§p:™iD”mA–zJ ‚N›{K sRyX˜}XŒYa“‡c‘‚g–ˆt‘k‹lŒ‡l‘Šy‹ww’Š†š……’ƒ…™…„ª„}©€v…|›r•‘q l¨„aŸˆbš‡j…b¬…^ª„f¥}b©{j­xm³€j©vl©v`¡j[ n[šh[mh™|h¦}mªxqŸ}n§yj¥zt§z|ž}€lW‚gN…pTŒjctd€n_glgg‹kr‹xnˆlxvxsw{uzh…€k~‚a‰‚k†g‡Žq‘‰l†“j}˜b€†h~‘q…i‘w~€l‚xz…‚tvyswtm‡~xŠu~{kw|qu…nk{zcxmr‚mk„lnzfswmcidrsdzsq{{vvnrsoulpt{qs~n€i|}uu~qƒks†{{e•‡g‘…n‘|cš‡k‘h“ŒfŠ‹]Œƒb†‹w‚lˆŽrˆŠp|Œ_‡|clx‡iq…hƒtzuƒˆƒˆ~„•‚t—nt’vqzv{~o‡wj†yr|mdwdtylmbilbiteinjsnpr^fmeivai}S[x[`ˆSg~^_zNlqZi}KjP~qDk{Kp|^evRk{PdMbwPexOfqPgpJh|?^w@[qHcwR[oMbqMlnSnzNi~?o|CxzLnvExzRn‚DsEi‚Me}Mp€E|ŠIu…JvRvƒTp„Sr{TzG|‡N}J}O~‚Nˆ~T’{iŒ‹W…‚a’„Xˆƒ_”~g‹ˆl_‰}_“mrve“grjoŠnh}ro~{f}lbp_o{U{ob‹sj„sa~k]€s^zia‡s\‚eQ†uO~rJŒqImCŠsQ|lKsNšoF—kO p<pA•{BtAŸo= hF¡j4¡p1«s*«p:°k?¬h4³d;¥e@›i0¦f/§d>¦e7¬iC¨b:§iG£nEŸiB£kF˜@•{B¥qV£zN£~TštW”ˆW•‚_›|a †t‘q–€{„~˜ƒy•„Š…rˆvqšˆ‚š~{‘‡ƒ¦u¤ƒvŸ{€Ÿ‡m¢€i•ˆe¥Š^›€m£g¡‰a•{g§‚m¦€a¥vl­vq£ta¥|h³v[°}Yªq^¡qi¡ej¦ma™nc«yeŸqg£v˜rq™p}£{€v†kOeQ’oVje„sg}qhtf‚lr‰jthxˆhwnw{x€r†zuˆg†„i„f†ˆf‰ƒqˆˆrˆŽm{Žpx•p€Žs‘pˆ‹{~ty€t|‡x‰€Šwp‡o|ƒnv†mwxjmvtg~vn}vo~wnrj‹gujvƒeuvhzv{qyuk€xtvyltuqu}rxx„jw†gv|fxˆsz…uq…vwƒq˜|bšƒ^–Žk—Œo˜Žk—”aƒeŽi‡‚pŠ‘qˆ‘k‚ƒgŽ‹dˆˆqƒ‰pyo~Œn‚{mŒ}‚“„v™yz™s€tu“xz”|yƒ{o€km‰okwfeurmsrltlgk_npdkx^woivcqv\dwRaqWXR]‚V[tRaqV_s\krYiyUvvIzmUpqWmoVfwG]rJYyV`~Z`vPkt?ms?`z>]zF^hG_cKfgU^{XdwTjvHd~UozTzvQwyT€zVxƒOx}NpXm€Zx…O€yR|wNsyRtwVvMy„H}ˆB€ƒMqtKquM}…Sˆƒ`~S„ˆT„‹O‰‚U„wbthƒlo‰peŽjf‘il’j^‹u`‡na‡wm}nn{tazl^vrU…pX‚rZrnbsvc~w]€l^dW‹eTˆoHŠrG”xI‘uDˆoI…iJbP’jW“bMšfF˜kNšuIŸv@˜q;™c9œe?¬]/®d-®h4¶i=¾g4µo8°l9žh7®k;®a6£i7¡d6žk7fC—pCŸmM—mCŸtD¨mR eQ§lR§vZ¯pb¥u]¥~e™xb“|qƒz¦z{¤uƒžz‹z‚wv{w‹{€‚¡¤€s¥w£{}¢Šw›e¡‹cŸ€a©Šc¬…l}hœ~o˜woœzdªrl¯nj¦y^žxa±zf³w]§jlœlo¦qt¡okžtf¤hmjo¢tw qwt{’zŽ{}mXŽnY”fXifrh‡mo„ft†or„ft‹`zi~‰mozsyˆdwŒp‚}r„}j†„e‚}j}Šz€uuŽxrˆlt—t}œp“dˆŽry†hw~mu‚|‡xsˆqm~jvˆjq‚wxhstpjquexpuƒvoŒpw‰pzkq€m~{pqvurz}wsrr|{sly|jw}pyxlvƒrz€u~vvŒmˆvy‚†u–ˆi“~`‰hš“fš‘g—k™‹fœfŽ’oŒf–o„‚gˆgŒh‘uƒ‘|ƒƒ{~‡ƒ‘~{œƒqš€y—zxmn•pr‘l~Œml€nj~^fw`pqerzitl`ojktlf|z_xxiwjqck|gk‚\]~^f|WjƒVf[fuaryXm~Mx}UqxTf|QdoRYrE[yM_{NXuUk|DkxHtmH_uJhFelVigTZrPQ~KY‚Mj{LauPlVysRtItrWluVo€Ovx`r|MxƒS‚IzzU†xZ„|Xt[{…TvN~†RtpXyzX~rNw€Q|…VŠvZŠ}ZsbƒmZˆi]„rWyxU†uiŠoaŒri‡t]v[„nq„~l|l_}{^~^{rPˆ}R€pOzu]}kY{nP‰nW]O–cSŽeE‰vMŠsM”kDŒjIŠjLcWŸgR¥iO¢cH§l<£d9œf2©n4¬q9«b6­n7¯g7¸i<¶lAµo9²a4£c:¥_/¨]@¢a=¯[:¦b4eAŸbJ¢_K¨gN«nG£fJ¦fY«qV¯mN¨u`«h\¥kd¥p`ª~w¡w‚¢w‚tˆ£s€ ~zzš||’xx–y€žz‚ž}x£€ž„s Œ} Œi§i~`yl¥Šn¤ym¦xmšsdžmd©pe­mm£u]gb¤ig²xi«vj›lj§erŸlk¤rqœqz wq¨x›s|–w|—„wŒ€‚_c˜eaŸv`˜u]”gjœie˜usoxŠg‚d‰n}ˆlr‡aoŠfvŽh…oŒ†sŒƒk}gxƒr|…w}„tt‡n‚”q€šrt”ex‰h|…m€„k„ysy}o~‰px…vs‰pvƒxlrsoqll~ug{qm|po‹h{Šqxtszj{tm{wrnvnsxwrqyrr~pxwy{vq€{w|wvŠvrŠos‰|v‡ƒy˜l™‰a˜•^Œ^˜`”Œg•’\š‰[£‘c ”nœg–m”‘m†˜nˆy‡‡|Ž}‚‹x{™rœ„t |rŸwtšrv”f|Šks‰lq„gs|`w‚dn|mrwersljvequd}|czvpukmk`|]d†]`|]azYc„cjbmsfru[u€NqOgIgvQZzP[yIWoK[uMYwKdwBoxEjoKbpMcwVhrOakQ[oMTvK^yJ\Rk}TpsLtzK}qMruPowLfq\k{ZxvXz€T}wTyL‚~O‡}Y|ƒS‚yZz^~|Ty|PvoTulLrrMrmYuZh^k]vlb~nY„iPzqTŠtYˆla|kXj_„njzvcwxd~s\‡qWˆzZ‰~Nˆ{O†|M|tQ…oTiL†`G‘aKŽ_M”iBšdI”pG™eR•]U˜ZX’]X‘\Už[J¥[I¤g:¦f0©b-¢f,ªm5°j5°s7»v-µk4¶j9¬b:§_:¨Y0ªd>£e;­h4¯`2¯d;§Y8ŸYB§bI²bU±lT©mZ¬cO§iR²cS¨__¯j`µtg­po¦x~¢rœn„›z„£~„¡v|—}“}z–us’y{ž€vŸwy£‚r£„zªˆx®‚x¦‡q©ƒb ‚b¡o§uw¤os¦jd¤mf¢tf¦ll¦dc«e^´l`«re¬ri«`eªbb `mšoršnw›hr¤pvœ€}”~y|s€}gdŸr]¨mhšr\›q_š`j‹qo“hz†ip’ntmolo‡hu‚q{ˆu„x‡Ždˆm‡q€gŠ€m„}vŽuw”mšfƒ›l„‡aƒc~ynw…hy~nz{ts‚ou‚ssŠsq~nvvyq|nawnkzjk‘duŽqx€itycqubvxiwvxvwqqwwk{xqy|vxqyjx€o…ƒr‹opŠli‹qo“qšŠgŽ‰j”‹V’‹^š‰Y˜Š_™‰`^–aœ‘f™”k––h‹ŸsŠ§l…o“ˆ|ƒ‡{z™u”}–qsšz| h‘lpb€gx‡a}}hvynp~_wokzjemtgl€c}nnqhp}fk€nd€di‹kb€gd€Xn|gr|gjqbwz`t€Nh~KgxI_oJhpPYuUVzOasSWjN_u?jsMjqIhjJgkRYiQdvN]nHUvLYM]vJ_|ThmSmnJ}lHyxHmvJz~St|Y}~NƒzUsxN}vS{W„sV|tS‚rYwnY}t\yf]~v^ygUn]~ocxndzqf‚cdƒkc…iUxr[vqX{aalbgdm\‚{auvp|u^tja€zQˆrSŠ}S„|LŠxEmU‰jV€_Nƒ^T‹YQ]H•h@”m>qF•_H‹iJWUŽXP_FžTJŸ[B¥oF«e7 a1¦^5¬b-°c,¹d8³j0¬b-°Z7¨X+¤S'§_,ªU.«W9°[2¶Y1§`7°^0®]=œiCªeS¯bG¥eL¢eP¯bQ«nV²nU­l]£qa©diŸe{¤kt¢v}œo€ u€šu{˜y|t|•uƒ•w~—usžpx¥s{žw{›†{¤wiª…l¤„a sp©€p­vv­ez©nl©pi¢j`£de£bl®`e§pm®ah¯hp¥]l«\yždr™^~žcz§fz©ct–yvœ~}yt’v„ma­v`¡k_§oa£hnhndzot’ov—rtvl‘hrˆh‚‡s‚‰oŽˆrŒo„“h†”f‚—g‹‰hŠŽt•j…•j|a}“g–d|fx|j|_~„ixrrytwuuqq€nlztesliskmwmhŒnp‹`}…hƒdqlv€gr|nwx{~pnzrlo~rz€jvsm„rg„‚kˆw~qo‹{i’wr—{o“Ž]—Œ[˜‹c“Š^›‘^’•f”˜g••j ‘sŸšo’“mš¢s”¤zŽ“q“p•›xŒ™tŠ¡z~uœrv›kr–fwže}“`ƒg}…_ŠesŠft}dumtrpr}huyp}piyegxmp„jl|qc€gfvda}[bw]qnctndoYqt`kmVnmUfuIc{FbqP]oPbnI`iK[cH]hTmmTccOafG^mNZzJdtP^vNdUcyNa~IdsKyvP}xT}uP|}PuzOsUQ~SyYvySs|\wr^qo^{o^tmX|f`„d_€k`zie„me{bg€eg|f\_^‡k[„fbƒeicdjn|fkwkk|ujupnpwnwk`vi_}eQ~qR~S€}P‹uLŠjH‚_X„dZ‹iS‘_O‡]G‰fM‘jQeC_DŽeJˆZI[HœaO™^DšjD§iB¤n?¦c/ª_1£U+¯`2²^/®Z/²b(¹T(®Q,·X(¯_&§\*¥T'·V)ºU.·Z)®a1¨d> iE kP§cK°fL§eF§eG®nWµh^ªid®gi¦bi©kp¨nx«wƒ£q‚ sŸv¡sq–ls•hw•q…¢kx£qs¢zw•{v—‚syfŸ|k¢yfž~e¦rk®otªho¨bqžci¤`d¨\c°cn¦hr¢mc®ae¨hs¯`}´Z€¬X~­_}¡i¨`¬cv¥jx“p{”pw˜s€ie h^Ÿim¨io¤ukœm~“v€”yy{r™voŽum˜ar‰p}˜hu–v‚{Ž‘uŠ—oˆ_‡’b’”`•iŽo‘o}Ÿd€”cƒh€‚_uƒerˆ_{…^s|qw~ov|go~cnzgjqslyirzroƒqlŠ]}‹bv‡ao…joyju`x‚esum„jt†oƒ†`wwlvn‹‚ok…†{}yt‡x‘usŒ…n‹‡fƒW•†[ŸŠf¢Šb¡”f”bœŽi˜•r—‘yš‘m›˜z©y‘¥|Ž£p–•}…›}§s}œv{›wr—kžh‡›jŒ’m‚—[Š^€‰gy‚bw‡h€|mzxs}zjvyh{fb†lq~dsz`rzeqzcon\orfoifeuV`kdp~`en]ewakx\\rWcnWbdN]gJeeRhcNfcWicLefNgsWapSYkQUrIdySfqTexUkk]mtTdwKmnKnvLyzIk}MztHs‡T|~Kt‰RqŠQn‚Sx{_l{a|mR€pW}lZƒX`ˆha‚a[ylf…d_`av\avY_ƒcZ‰X`~Za{[h‡_fiarnfyugvlb~wjnnitq_|d\~m_xnU~sZ{QˆjF“tPlV‚kW‹fO—dQ—_V‹fQ˜bJcIŠ]Gœ]N”WT‘^Fž_EŸ`D–f@¨i;¦fA Z:­W5¨W4¨P'´Q*ªX$²Q/¶R*¬V °Q*¸\*¶]­V#¸V(»K2¾^6·d8³_;«]:§\?§`J¶kP·jD¨mZ©vR¥o[§ob¯jh¨boªdl¹ey²op¢k}£jy zu¡nr—tz›v~›zŠ˜s†§s}“ju˜sz wg¤xqœvežvqžqo¨hmžfh§el¥pf©`f¡Ye¨\l¯ho¢gl°ku¬dr©ar²a†°Y¤\‡¢f‚¦f~b„­bˆ¤h r~¡n€Ÿohh¯kbªwm¡rvŸz€£t†—p€”v‚“v„ wz›rv—ju’c}’mt›q~t~•rhŽaŒ‹d_‘a•‰o–”k“s‚‹mŽc{Œe{‰kval…dsyfqwmw}cr}dh{dmxlp‚ni„st}ht€]v†ax†bwƒayhr|bt|a|‚myƒb|ƒb†ŠdŠŒi†…fŒ‹q†rƒo…qzzv~jŽj‚fŽyd”~c§}]«k§…h—…m”Žl—’n¡Œuž—|–šs›£p‘Ÿu˜¢|‹¥r©n‰Ÿo‹¡oz¨nz¤rŠ£hˆ›iŽšj‹–h‹Œ`€Œb~d††g}~o|xwmmzkgƒokop}lgw`esdqpbot\on`ir_bkZilTbv_f€Z_yaho]_vTbeOYdX[dYggSalQkdTjiW]iT[tKdsPYnO^uVep\fyUqk[qj]zl\rqMpfIokMvmPkvQp{Vy€I~ŒUw‰Zo\o\i\qyT}lVwhX„bfƒZc|Y_‚`f„ikzfarf\xXdyQ[[`„Vdƒ_d†dc…_cubovgklnksserxfynjvm\vh_j[|nZ…kQ„jNeG“pP“oJcOŒjWaVšcPš`M—TK—YT›YQšSQ˜QS›]Kš[FœfO¤fM›[D¨bH§[>±N@¬P1´V7­J-¬V-±Q(½R,»R¸Q²Q$¶R!¹Y%¼U1·O1¹Q7¹X;¸^?®_5­i5´dC·kMµbM°gX©p]¯o_°oa·nb´jq¯iy¹hs³n{±cs®jmªrt¦yq£ru¦uˆŸrŠžmŠ›i{—wt–utxt ol•ni›skœgg™go¢nb¡oa i\¥bg¢Wa§[d©ae¨fh¥av±^w¯X‡¶V‡©X§ZŠ [€¨b€«k‹ fŠœhƒ¢v‚¦yƒ˜x„sg¤gl­vlœrq¨{t–pvnz–y~–nœv}p{–`q‘h}™o™wuŸuyœl˜m”˜h•h‘˜d™Ža†o‹šu–ŸsŽ™f{•jx‹qy‰ku‰lw‚itdl~anxdvƒcq~jstnwdikuxeyvjtfxybx†]}†ft‹]ugy‘fpu‚Œp‰“tŒŽq†p„ˆjŒŠo‰ˆpŒ‚d‰lŠ„f…„mf‡c”ˆh£}f¤’b ‹g¦‡q¥—f¥—w•r›ž|—›x§¨w ¢s˜›l™¤sŠ¬o‹§s’§q‰Ÿg‚ªoˆa‡¥`‰˜_‹—^Ž–Z‰‰eŠˆl‡€k{†ksg{w_€ma…xZ„iaom\xi\wjdofaw_qzcfqmio`jsifthajmWwc]rajyTgoOl\Wb_TbsLfaUaeUYaXYePUf\YnQXiWSqUZlPamTpm`qf]ueYrfLiuLltPvkVuwKntMz{Ev‚QzOk†Sj|To]wwO}oU{eV‚X`|aczZ\ck…acxa[wae€c[€\WxNXƒ__^p†dbed[j{hnstnzxl„gb|igig{dZ…cc‚kRŠbVgIƒoM•n]ŽlY†lO`RŠ[Z’\T–aVŸcX™_TVX ]M§]W¤_T—fJžhM™gIŸ\C«XD§N>«X:ªG,«C1¡R)©T,§R&°O(¹K+ºS%±G½O ¬M'­N2µM2ºN5½T@°R=¬b2¬ZB³^<»ZG½fM±aY­mU°]f®ed±ik­ge²pjÀohºesµ]u¶_|¹s~¤dr¡l€švx¡jŠ›gŠmv•j{˜nvœoy¢oo¤gr¦mk©mtž]r­gq¯b`¦b\±Th§]l³\m°Uq±Vg©Vk®Yy©S€¥Z‚¨Q®X‰¢^‰¤YŠ˜k†i‹›sže€›{†¢pŠhg°ll¦rq§vz¥ww§tw˜uq”uziqˆiqkw¡gv¡my¤k|¤v{¡zk‡œd—cfœ”j“•iˆ˜h•¢ro„“o‚n|†lwŒl€‰kƒzfvƒdr}hoouwl}|h‚sgt|ipyaqvZw}fy…l}}r‚|j|}f‚Ž\y^x‘or’{x™u~—n…Šx—†uq–e…‘h‡Œg‰’f””i˜Œc”Œjž‹i €d¤ˆhªŒe®‹c­Žm°›m¦™l›œr›˜uš¢u¡§f“©c‘¤kŽžt‹¤rŽžo‘¨i•§m‡ p†§j jŽšY‰c”ˆcŒd†dˆcˆ„g~}i…~_‚~UƒyWynbuibnj_hkYnmaxrkwosrtlnnqiermkbvi_nehplmlbnm^nePpnXioRgfQaeVaa\UkQXkZZd\Vf^VfTYmRejYew_srWkrU`kObkUmkSsgMzjPtwQ~wQz{MrQvv[ryZysMtnOu]T]]rZ`sbQzgV^a~V]ƒZ\ˆaf‚]^zO\yP\[_~`k‡\e‹Y]‚\Ztghyrdlcy^h‚`\„a]xqa|dW‰aV’jYgN“mP‰h[pOgNVQŽU[Š^MŽbO•^O›d_¢Z_¡`W¥VK¦XKžZHžaH¡^G¬]DªW=¡QFªQ@¡C2¤C.¢R*«Q(®V#µN,²K0°C&¹D ±@)®I6ºG1¹D=®@E´HCªV:ªX9¶O8²OE·RC¹^P¹^J´YO»dW·^k·_g·lb¿inºji¼luÀ^|µaƒ·f~±]u¤d{¦c„¦q† a€˜b}•bx•o{“iz™ls¥kk¨qi¥og«`o¥Tf°WfµOb®Ua¸Sbµ[l¶[xªQv®Rs Qq¨Uv¤Xt©azµ^ˆ®^„žV‚›h‰–j‹˜fŽ£dˆ¤q‰¡yqe«is¦oh°~r²rxªst™wy–w…vqœwpšvp™kv›sƒªi‡ n€¡}ˆn†e‘m˜g’œe^‰Žk’”gŒ¢m„›d“^zf‚Œp€kx}at€`vis~s}ym{prhrl}w_‚€\|z\xj‹l|ylx…hyŠ`zŽ\{™dz‘s†”j’v‡‰{˜‹oˆy…p~›iŽ•i‘]Ž_’˜d’‘_”…eŸƒp­Œd¦ˆb³‰a¥Œ`¦ a­¢q §pžšhŸ­g©k£j¦d‹œx•¢qˆŸi”¢f”©mŠ¨d‰š_‡–d‹SŠP„]Tƒƒf‚}X‡ƒ\|†`†€]€yS{yQwnWvg_bsUeoZjobjmfk{gwofizldhkshpmr_slcrhhvmpi`liTmjL^nO_eQc_TTdSY]Y`]^QlXOh[VgYbaUfpUacJsoVinH[ePneEelOmgH}gDreLrfXwrYwQl}R}z^rs]|vRvh^xkVu[PjaPyWW„T^ƒOaˆU]~T^ŒO`ŠR[‡Vc}ZhŒ\i…[b‰Na‚^hƒZqvZbx^hƒ^W‰j^~gXƒb`„i^€a]ŽkUn]gUŽlYm\_O›bT O\’RU—_[™^RiV™]Y¢iZ¢\K¦SC¥SN¥\P«eHªZH¥\H QP›JB¤FB R/¢L1¦V/´^"ªN%¬U(»J+µA/²K3°L<´L1·K@¾EG¸OC»T?®W<®J8²N>¶QG´UH²IU²R[²S[¿ah¾Zn·lcÁoaÃkfÂ]r·[ÁWyÂf…¶ct¦k‚®o}£fŠ£gz¥h„¨hƒj€¡qrœps¢gk oh®cl¹jn®ao­Zf²Qg³^p³_k¹^p°Wm¨Kv®I{©PwªVo¤_q§[u¬X} \„¥Sy¤f„•l…œb‰—_ƒ›h t‘ds¦mq©kq²ym­~o¥z}¦z…¨w‚ž}s©}t§~y¡ot¢h~›rˆ£n‡¬n£u‹¢j‰’a–‹]””\”Z“’]‘—h›h†Ž\‹]’bˆm‚“g}†bŠdt‚g}…qƒzh€tl‰zl‚uj…xb‚r]~{a†}_‰`‚‰dƒˆg^~—g†h|šo€g’’h—t””t”oˆ™u…¡n‹žfŸ[‹—^‡ˆ[’‰[ ~c ƒa¬‚i±^­—^©›_±œd¯¡i®¤]«ªhª«eŸ¬`¤¥d—žf’™j¤d’§k“¥\™¥\¥\”˜SŽšZ†•V‡‰MŠŠNƒ…S€[„‹N„R~ˆXƒ€Uz‚NwRorOjyRdpM`tM`yMi}XpxSk{^g{nlvponhqweqrmwtmrntn^qvZmkNcfS[_HWcNVdZ^^[[^\RgMTiTWfOXaPViRekUbkGlr¸RC±IG³M<§KD¬@D®=E³FM·HP¹Ja¾Pb½[e¾XjÇfoÑ\rÊ_jÉWrºRz¿Z~¿Z|¶`y®f|«b‚®g‡²dˆ³i}±_‡¤e€¢r€žmvml¥jn²fkµdnµak´Ov¿Tw¼]r¶Up¶^p¯]g­Vm®Qo£G{°H€¬Ux®S€°Q{¡]t ]|]‹›_‰”f€’`ƒœn†™r‹kq°cq²lk²pw¥npªvq­zsŸs{œo}©m¯wn dƒ§r¤rƒªnˆ¤q—kˆ¤l„Ÿ_Ž™aŠX“žT’cŒ“q¥b’œV‚˜`„›\z^}’jƒ“awƒZtjƒ}oˆ†^}uh€uiŒ†d€b|yW€Wx‡Q‚„b‘`ˆ‹az‹g‹‘^ƒš_‡hŒ¡d‡ mŽ•{‹™{ˆ”j…£iŠ§n› bŒ¡j‹‘e—c–ša ‘cœŒa¤”f¸l±’_ª•X·˜^¸¥]®¨`©¥aŸ¢_Ÿ°g¥Y¡­f”¤a–¨XŽ¢W’¨b„¬YŽžY‡ Y˜›]‘—_‰”[‡‡[ƒ‹Q‚„TˆŒR‡ŒRq‹ZsKoŒIjJomLlnUlvShrMgnYbu_j‚T^yYachygjjalm`mflsmkobll]qhVppXjlNgbPO]\VaVRcaLfU[sTWkRcgRVoXYeJanTecDafDlnMjiCmg@l^OgeTofYqeZkiXnbQsl]tkUniTrs[qkVxgXuXUvbR†]`ŒSd}V`uT[‚U`XqXmXq„U^‡\eŒUkUj‡Re‘Z\†\d…Xg~eTdF‡_S}YVˆWP‚R^ˆRb“X_”^_šbS‘\`—Y`¢`[šKcšYW£[R c\‹ZS•_VŸbJ§RG­OH®MI±ZF¤UB¶SJ®[F­GB­JM HB¬DC¸H5§H>¢O;§U1¶K4°O-¶N5¹@5¿H9¾IHÈJ=¼@C¾D=¹K=ÀB>½G<¸HD¯MA¹LG¯PQ®@[ÀPb¼]eºTfÏa`ÆXcÂ^k¹_rÇJpµY}¾S‚¸]v´Z{´g|´]Œ¹e€¼_~´[ˆ°lŒ°j…¢m} f}®Yz³[m±]x¹Xv´Mu­Vn²Ww¼Ws³Ws°Ss®Uy±UvM„ J…¸[‚¯S{¸O‚¥]w¬f}¤^Ž•^‡ Uƒ¡e~–hŽ«i“ju©fh±mtªf{¤lm©km©el¬m|¦s|¢uq«hy¢c‚ªi†¥eŠ«g“®m–¥jŽœh‡£`‡®U‘¨O“ŸW–gœ˜j—¤`Œª[ƒ¤dž]}Ÿ\‡—g‰‘`‚ŒZwb…ƒ_‚„W…y_„~[~ƒX|‡RƒŠ]z€W{…SŠ[~ŠY{”]}”b‰‰b‹Ž`’Y|c„£u„¢wŽ˜xŽ r“ j›¥a›¡fžžo›“p©˜l¦™p¤•b£—`¥”h­Že°˜`µ—T¹¢Y¶©b°¡e ¨d®Ÿb®¢d¢§U›ªO££X ¨Uš¢QŠ©_†¡`ˆ¢Y˜W‘“^‰ŒVŒU…ƒYƒ]ŠV‹•R†‰Kp„LpŽRp‡Qv…JoxQu~WjxSt|LoqSp}\_€Sg‡[_‚]Ypg^ohWpjajn_nmjco`[kdafkTifU^_VV[ZY\\Q\bZfVSmVVqV_jW^nUcgO`eTldJp`FbiSffIksFfoIk_Zn_biaXs]YtZ[ud[|mVkfKk^Qs`Tm\_tYW€\\€^Y…Pb„MfvJZuRa|Th„Hf„Mm‰Zg~YcxX`‚\iYcR\‡Xab]‡eT†_KWN‰^P‰U^ŠNZˆK]”XY˜]_—VZžWi \fŸM[£L`ŸX[¨ZT™dW–^SžWQ RSžLI¨IMªIQ¯IG°US°WP¯GI°FE£=EŸ>H­FAµA0«B2¥H8²U;±Q3ÀW@¿LA¼VC¼QI¼F;ÅA>Å=C»?B¸DF½>IÉJBÃGIÂAK¸GK·?]´F]»I\¼NiÈSlÆKaºMh¼YgÆZiÄQw¸L‚´Q}·VxÀX{®c«]ˆµ[†»W†À]†³c‡°b³ez®`u«W{®QªJv¦Jr®Co¬Gm«XxµX²Z~ºPx·Ry¯SužD¨Kz³T„½O¹J~³^ƒ­`† X‹›W•ŸR†ŸZ†¢]Œ¬b–et¨ev§_}¡\}©cxŸhj´ps¬nx£r{­s{³fy³c„¨\Œ¯g“¥d…¯k’ª`¯_°_“«U›¶O•¡U›­WŸ£k”œbŒœZ‡œc¨fŠ¤[~n†‹XŒŽa…”a…‰]’‹\…†i‹ƒbˆ„^~Z…ŠTŠŒ_}‰[…ŽQŠXˆ•e‹g„Žc˜c‚œaŽ eŽŸm r¢k‘¡jž›`—©ežžkšm› m«¢o¤‘iª•j­”f¡’n§›e±–c´Ÿe¬¢\´²Vª¦Q³§\¨ W©©P¨©R¦®Uª­R¥°OœL¥QžUšWŽŸ\”’SŠ–Uƒ‹W~ˆZŠ‰MZ…ŠN‚ŒSo’Sw’Sn‹ClŠPo€MdxYhtSpuR_~W_ƒf^‰W]‹be^_~mYqi^r_hwekitnhike^nbdbgn`]bcTacbV[XYk`^kcaeV\kSZ]_X`Y_]LggMmeIj_KjqRgoMbeIq_OjgWt\PnaXq^WtUYx[Uw[SocRpVOqPOsOSsZ\tZU}SY|T[†U[yISwP\TeuJlzFm|Gk‚SgyZg{a[\\„Zb‰Uai`…^TŠ]U‚`LŠOTƒU[ŽVb‹[X”S`–Q`¡JeªPb©Z_§I\®IX¢PVœYU¥RU˜QS§ZY£TO¬KF¨SU¨ES¶PI±WH¯QV¬KR²BC±DN¢C@©?;­J5©I7³A7©S8³O7ºJCÁK9¿K@ÃNGÃQD¹IB¸?F¶EBÆHR»;P¸GM½DBÇAB²AN¾AN¯K]¿CYÂE[ÌIkÑDf¼J`ÆOcÃUjÈUw½Wu¹Zm´NqÇSy´Q…²WŠ»[~¼a·\Ž¾\ˆ¿f…µ_}ÂWx¾Uu¹V{§Ss¥Lr¨>i·Iz¯Lv©Lx±T|°L|²Tp§Kt¦Ls°N¬MtºJt¸Q|«M†³[Ž¬aŽ›]”©aŽŸV‹¦^Š²Y–q«oz¨o{§by¤iu¥dp®d{·kw®czµl|¶]z½\³\‰§W¬V”¦XŠ®]Ž¦\–­R”µY™´V ¸Y¡¬`“¨Z•¥b†¥`‡¢Y¡b‡¡\‰˜cg–_i‹ƒb‰\…ˆa‰ƒc‰Y‚ŠTˆˆW‰‰XŽ€U†„O‡TˆŒb„…dˆˆf“i‹™`Žšg‰˜e‰¥r™ o Ÿa§Ÿg¬˜c¤¢c¡¢m¨§n©¢n¯™n«a«ži­šd© f¤ªc©«_¤¤W®«N¬¥KµTµŸS©¤M­¢O§¢W¦¤Q¥¦Q“žX‘aŽ£X™Y‹]†ŒT‡V‚ˆQ|ˆV}ŽP‚’Q[‚“Vy˜In”KkMt‘EpƒGd„Si}Tgz__~\V„_Y†Xb€_`bdkbmhyaeznaijeildaakdfmdf`ckg[eca[djWlg]nWa`We_Q^`YY]V[bYhiXffQddSdgJjhHjhOf]OlbMp[Mr`Ys\Xh\Zm[WpYXgP]fSPbRXkMWhJYkK^uQ_{PbTc‚R]{DZ|F^wKU{K]ƒTXMbƒZhƒW]ƒb_Š\ZeR‹eR…hLˆ`R‰[LNO‰TL‹QZŒS^W[—OW¤L_¨F_¯NV«Cd­Ia¦EcžK_¢VV£OR¥NU¯QJ¸SH¯KM®J[¸NW±UO³LN¶HMµLIµIF®EC¹D;´L8´L9±I5­JD­FBµH@¸SAÄK>ÃPIÇTN¾FM½?U½CSÉFQÃ=Gºh‰Hh}Lf…N^ƒRf^\Š\S‚d_~c[zc^†i]†\\zc\id`fbjYhc`_ejeg\Zc^`ZVbdW^jWTjcTka`bUfcM^aQa^[icRa\PciZ\gVe^BefBmbHs\UnYRmfVv`_u^Sj^VuZ^l_Vga^jVTjU\AUvI[mAcoKV‡Zf|LaˆS\zGb|KY‡Ni‰HiˆUkMa‡L[ŽUT†^P‹iZ‡cPˆZZ…`]}[Z[LWPŒ\SˆK\ŠWQˆ]]VbžP\¢GUªUUžQV¬DZŸOg˜Lb–LQ¡RI©TH§KQ²LH®JF©@U«JI­ET²ILºGJ°GF¬?L±C<«K?­B8¥Q;±E0´K>³K8·D;¿T?ÅENÁCQÈRRºLL¼MGÆHUÇ@KÂDBÊDB¸AE·F>¼DNÁ:F½FT¾IW¼<^ÅHbÅGX¾T\ÀQg¶MfºIj³Mo¸Rs¸Nt¹Yv¼\r·S€¨\y³Z®[€²Sƒ¼Y‡Æ]¾Lt¶X|¶Wp¸So¼Lj²Cs±=zÁLt°Ds¹Rz¸S·GuµVªS}¬NzªSu¯T³N…²L‚©S„£Y˜[ˆ§dˆª^’§g•¢i•oz«s~£oƒ§b|¦cŸou¢t¤kŸeƒ¡iy¨h¨a~§]„¯R‰°Lˆ§G­L§Y˜¦V›¯]Ž¦gœ©eŸ«oœ¥kž¯jš¨`•Ÿj”ši‚šg|¡YœS‚™^““]…“]‚•^…‘_‰g‰Že‰ƒ`‰S„•_‚—Z‚‡O‹N†˜P‚ŒSƒ‹_„ˆZ€‹[`šœe¡Ÿe˜`Ÿ›fžl¨œe¯Z®•_°œZ§žd¬§g¥ž`¨žh¬˜n¥Ÿh¨˜h©œ_¥§]²¢\«£_±¡T¢”U¢•QªQ¦•Z¢–Vž—N™ŸQ–—W—”U›–Y—“WžTˆa‰ŽX‹‹]Š[ƒ‘Uw‘[p†Ou‡Fs„Dy€>n~HiŠJ`ˆV^†QcŠMl†UiŒb[‚`f€`exb`}]Z}dZph_gbX_k]XedVX`daagYY^[NZeTQ[YL]mXYlWX_Tca\edS`cOkW[d^Vi`WgWQ]^J][BlZHlWLz_X~bbz]_qbZp[ThUTk`Pw]TvW_wVUFPsE^uB[xP^‚R\†SWˆJ^~SZ€Lc‚Ga‹KfVo‡QfZcŠRX„WUŠdTŠYVy]\xbTcTƒjR‚`TŠXRQOJ[ŠRXŒJ[ŸJX¡LZ•Xa˜ScžJcšGY˜L\O]•LO›OK¡CF¡DH§>J7L¢@J«HX¹MU²JGµ:@³C;§>D£F:ªH@ŸB8¢E8±D2±F7·O:¾FIÆLFÁBM½NR¼LI¹BIÂFLÈGOÄHDÂMM¾JI·PÈCXÃ=T¼JV¹GZ»J`±Q_ºGf±Jk¨En­Pv¶Pl´SoªTm­Y{®Ut­T}¬Ry²S}ÀV¿Y{ºMq³Qu¹Kq½LvµQn³In²G¸Bƒ¼F~ºM¬Nx­By´Qp­OsªHo¶Rv©Pu¥O¨MƒªZƒžX„›Y‰œT¤WŸT–©b•u‰±m‰¤k…¬`{«b¬msžb†£d„šp„¤f{¦]‚¦f{²V‚²V~±KŠ¬A‹ªN©^•¥Y¥Yš°e«c¨¬j›¢nŸ«k›­]‘ b•¥fŠb“_‡“g…šaˆŽe„ˆm‡•k~—\„…]‹’^Ž’\‚™Rƒ”R‹ŽQ|LŽMˆ˜L•O€’Sˆ]Š‰^—’i£Ÿi˜Ÿa¢šc¨¥]°¢d¬—b§—`´¥`±¦^¥¡Z ®hªd§—k¦št©“mž‘hª¡b±—`ª¡bµ¥X¤š^ž”c£—Qª–MŽK£‘M¤™W••X›™Z“Ÿ\’–V——X™™ZŠžiŠ‘Z‡…L„ŠH{‹L{’P„Sy€L€Gn|VvyWmzQb‚TZ~Nb‚JlˆNa`e|ahvS`yX\r\]v[Unlb_c\ejYV`Y]QZR_WSTPZRYS]NSeYXcdQZeQg`VagYflUlb[bUSc\_h_SiaG`WRiUTnULqXXpa[XTy\X~Q\t\W{^[va^nP[qT[~EW€NU‚?XI`zK`}G^|U^ŠTh„JYTkƒWaŽSj„HoŽFnŠKcMP]Z€cW[XaZX[€\Z~XS‚^a}P[„XYŒYR†P[™\UY[”MX“TcŸHd”Qj Q\’RP”MT‘TP•NIšML¨HJŸFGŸIH¡IN£=VµMR´=Hµ4R¨>G³7I¦:L¨>P ME¨DJ¨PF°R@»IL´KM´DQÂ@Q½AJ¶NUÄEBËFG¼HAÃPDÆKOÂLQ¸=QÇ@Jº:TÅJQÂHMÀT¼EYÁFV¿JYºR[³Hk®Dk¹Nj¶[t¬Ww­Ty¥Qz§_‚¯^~¨R…­T‚²N|·Kƒ½HzµL{¬H€²P†­[‹¶[„¸^~ÂR}ÄT}¼DÆF„¾DŒ¾Eˆ®;Š­<†°G{²At¯Lx´N„¬P€²Q|¯I¤X}¨WŸ^†¤g†¡dš¤ižcŠ±p«`ˆ«p|¬n¬nˆ¨b†žhŒž_’ž[„¦cŠ¬X†«R|¢[Š­Yƒ©M¥[‰ Q—”S”œQŽ«e› l•¬iŸ¥e›Ÿdš­g–¥dŠe„¢pyowšgƒV‚ay›f~–b‹a—h€Ž[†ž`’•[„ Y‚œXƒŽK€—]ŒŒR‡–Wz†Yƒ‡e„Ž`›XŸZ™‘U–žX¥§S©Ÿe¬ t¨ªb¬¢h¦[¥«b¤_¢©\§™h“h‘lŸ—i°V©”W´œTŸ]›šažš^¨™_ž›K›”Pš‰J””[ O››_œ k•g—b— b€¡`€‘T‡—T†’D{J~ŽPx|FƒNv„WqUm}`hxUf{`_Z\~Q`T]ƒV`|Ri{UfiR[fUedXUbQUbSTed[]b[^aLQQTQTJUOGK`OGd^Sc]S]ZU`iO]iTbfZ`gXhjLhWLrSEh^LcVVjTXaZTg_YrZXn`UxWTy[MrUSw\Xq]X|P_xEW{GS}TM€JL€HJ„GUS`„M`ŠTd’WkJ_ŒV`ŽChŒU^•U[’RSPPŒZVVY†cJyXH~YT}XO~]Z~P[€U]‰U^†__“dI•f]Šj_•_ZœRVšN\¢YY¡PR™MI›MM˜HS LT˜9M IE—BN§AN¨E±GS¹KP¼ES»QYºATÀAP¾HF¼PT½H[¶URºSWÃHbÂH\¹Pn°Hs­Hp¯Hj«JoªNu§Jw±S}°X† Mˆ¨S§Kˆ¯M‡¬O€¨C…®M}»M‡¯V‚¹Y¶L{Á[ÆI~¿EŽµH‡¿F•°Gˆ°?ŠºA†³K|¬Pˆ±Sx¨Zµ`ƒ¯Q‰¬R±W‹·f‰µh‹¬h’±`šœo£eš¢h˜£a‰­eˆ¬hŠªm–£r”§g•¦[¡WŽ¦\¨Z|¬]z¨O…«[ŒžV†œ[ŒŸT—”R¡Y•¢]• q l¥dŸ¨rš¤t‰¤q} izžd€žjx›h€¡\ƒ¡d~”\}‘Sy–Z„›d’g‹“`•Y ^šS~˜S€•U’S’[‡‹X}c‚‘]„‘X‘›Z™šQ’˜V–œ]¢¥k§n£¬qœ b¢˜_•]¥¢a¡§Xª¡^¤–` •d¤e¯›V®•V¯ŽV®\£–Z¥S¢˜JœO™’T T Ž\ XŸš]Ÿ˜l–eš™[’•m‹—m{š_€˜Z€”PzC|ˆ>{…Hy{Vo€Zqz[l~_cz^T|aV‰PV{P_zT\vT_zSbqSfg`[o]alY`nNb_Q]cYYWaPWaJ\SGUUHMcOIbOO_SU`XVb_YZZPYfVWdKihToeMv]St[Hh^HfXPb`Yg\[vW_tcUn^QndQpdSsdMvlYoc[tbO„OO‚HS‚NO†VL‹YR”\R‹MRˆV[ŒNc„IhŒM^DY‰HY—VP–RV‘WSW\„VX…aS}VQ†[K„bI…_S}]N‚US†]`‹^cX`‹[Q’eRe`W[–VZ¢QWŸU[¥LT›FKšAHHI›GO£9OšFCœFB DHªAQ©9T¤6G£7O¢8M¤GI¤HP™KKžJF–RJ›LK›KU¬PS´CM¼?Q¾F]¹C^¶@T»MW·BP²>T¯CN­IN­MN´LU´DV¾DN»KFÄKJÄHQ½SZºU_¹Md·Ki¼Na½Aj­Ds¬?k´IhµKn¦R¬PŽ¨KŸK†G¨N¤Gˆ B~§Iƒ²K{·J}¶C‡¹I‚ÅY‚ÇZ{ÃPzÇR€¿V·J“¸E½Cƒ¹Pˆ¶MŠ¸R‚³Q‚¯Y±d…¯b•¶W”Á]”»e‹ºjŽ¶f§^¤d™^“mœl–­i®d•«qž¨l› c”¤k’­b›¬Q†°]ŠªMˆ°LˆªQƒ£Z‡£YŠ\—‘U›ž_‰•a‡Ÿp„dŽ¢d£˜ge¡c„§jm‚›oy©b¢kx§e{˜b€“Z†Y„ŸX†•ca{¢`†šU†¢Lvš^‡’X“X•‹T“~bˆa…•Y‰ZŽ”NŽšX‹_ž¢Z™¡[š jŸ¤a¦¦g¥”i¦ž]£¡S ža°šZ¨’d¨‘]¡•b°a©’U¯‡^«“d¦ŽS¡•X©ŽX¢•S¤’ZœƒV¥ŒVž‹\™™_–‹m•j‰‘h•–n†”nv\}™dr˜NuˆGn‡Th‹WtXe\oˆVn~Y[~]Uƒi[„TYJb}X[€S_pNghKfcV_kb]aRhaVeXT[bRLZ]OPZE\Z@KWJNfPO`KMcQPbOVgPSiSV]]K[eQ]fMt`Fs_Vs[WjZUcaQmUSn^XwhPg^Pk^SsgOlbRwaOp_KsaZycSwdN„]R…QJ„_F‘[RŠMQ‡GN‘NY–GX’T[“R\’L[…UOWW™VX™^N–bQ‰^PkOƒfZ…WQ|YKzeZ†eU|bT‰b_…^]Š]`—ZK”]V–^T˜VV‰P[“PU¥V^£NK£IJ•ND˜BM¡GJ¡4G¨@@¡HE£AL¤8WŸ@Q›>R£¡E‚­E‰³S‡±T~½U‰½M†ÃU‹ÉO‚ÅX{ÅNƒÆOŠ°K½Q‚¼P€¸S…¶P‘ÁTŒ±d•·`‘²b‹ºfµg’Ã^—¼hµjšµh’±cœ±Z”]Ÿ™h¢n «pš©r—°h¡¯f—²p™§i”¡b˜¤Y”§S‹«[Š©W‘ K›¤N”˜P—V˜_‰–k‰p‚˜e†—r””q—™k•œb¡\Œ¨g|¦c„ c‚«^­iy gu£h~šc’a•]‰œV•_—Y‚£\|›U}•a†•\Œ‹R‰QŽ[ˆY‹‹^’ƒZ•Š[œŠY‘‘Y›S”™YŸ¨_«¦a¯©g©ž]©—]§–_°•]¬”U®V¤[´T²‹^¨„`¯Žf«Že«•a¨‘XªŽQ ’[ž‰^›~[£„a‰a¤‘aœ‰f“d‘‰e‰“_ŠŽg|ˆkz‡drŠ^w‚Ql…Zn‹baa^_iŽ`fcY’lT„gZ‡fT‡UY|MWrTTvNXySblZllVg\^b[]W[ZZ_VKX_NV[KTYQR^GOjFNeSQnOKeOMaNSiORhYH_[LkUSgZLqdRs\Vi^QjZVnSWrXXsgSkfNmgYucYogNniRjmStaRseUvjY~gV_QŠ`IUHIUJP’EQ–PT”X]“OZ‹Z]VR’VR•[T˜\TlQ‘nRjZ„]V]Q|_Qe[Š`b…jYŽa`…hb‘lV’aT]T“_VWMYOšTU™JS£IV¢DL¦FMžCH¥CDšT©6\«;g´>]¶9d²A^µGdº>c´CY¬CYµATµCP³?MºBKºHR¾MK½NQ»KS¯MR©SM©RX±KVµGb¬>a¬El£=g©Fl£Mm P}¥D}œI‰œF“G‚‘Ež@¬>Š«LŠ¯R€±L€½M¿S¿Y¾NŠ¿RÄN‰¶L·Jˆ¼VÁ[†»VÂ]‰ÂbŽºf˜±_•·f“³d¿j¼j™¾m˜µkœ¯d±b’¯a•b¡cš©mšªuš¯lš°n££wœ¦pªvŒ§`—Ÿe‘¨_Š¢[ˆ©P‘¤W˜˜C——[•”`£—Zoˆ’_Žk—™nžžq¤g•›b”§ežot›oƒ©r¢a{¨ds•lƒŸ`{a–b‚¦d‰¡Y¡_‚©Z‚¤Xˆ¦UwžX–W‚š^„ŽXŒ~_‰W‚“Vƒ’N˜—Y‘–P˜œ]™T’¥V¢œT¥¢d³œf²˜X¬“U¶žP§’T­‡X®T«N¢‘I¶V¯‚]´Žh©•]§R©–Y©‹U©ZŸ…b ‘d¨‚_§Z‘Œf’ˆ^ŒZ–f‚‹Y}_ƒ†ixdsUv†QqwT_„fWY^c^ƒeg``‡bPj`„aWˆYMu`]wV[mXapZ]i_\gZgUYbTTNSPU][IYQHOYTDaGOWGGZNJlQPbPVcSIdUJ_NSfNSbXOn_KkUQrdUsh[u]UgYVvRNnXV|[OpVS|aVx\_tXUq[Vm^WnaXvj[}jS‰[RƒfD†TT–HE“LI„MT•QO‰SL…ZR†ZR_UŽ`K’dKWL˜cY™cQŽganT’l]Œg\‹^S‰[]Š]d~h\{adŒqb[V„]O]T‹^]_]–^XXS•OUJQ“BLœKEšAF–=@’7N”6D—>D¢2W©?K¦DJ¨W1LŸ5P;UœCZŸEe˜Hb’=b¦IZª7T§9[¥K^´I\µ8i±D^­Ec³Bgº>^¹9S®EU¹GZ¯JP±CL·CS¾EYÃ>[¨BT«N]©E`©Nc²S^­HX©Q˜KJŸHO¨;U£3W™Z¤?b I\¤Cc¯EgµEm´Ge²F]¯9Y­Cb®@Zº=R¶KX¯>T¯@V¼?\·ŽªE“²S“¯Q‚«KŒ°K­JŒ­M‚­Oƒ»Q‚ÂLŽ¼W‘°VŽµY~³XŒ»]ˆ¸]”²U˜±[¢¹bœ³n˜³h¶p—¯p‘­f¤µe¥¶h ¦i¢«^ ®\X¨žU c¦©e˜µa“«l“¥m—v’ j’¥l•c•ž_•¨\•¬`‘ªO’¢Pž^¤¤\©™c¦™b™›_¢–f¢›p¡™kœ¢rŒ™oŽ¦k‚£i€ o|–vsžg|šebt›aƒ“g‡¥n„ j†žkŽžg‚¢^ˆ«_…žY}¢X†”aˆ‘_œcŒˆi€–f†\ˆSˆ•R‰¡TœQ•›H›«Q­¬XµŸT¯–W±Rª”T±“N¯‰L¯—P´…A²‚H¥ŠJ¯’U¬“Y«“S¯‹`­•a¯•Q¦ŠWªŒ`¢„b©[¥c•Œeˆ[Œ‚f—’[•„[”‚_“R}“]vˆVo‰Qf†X`„Zf†\Y‰hS€iU†[T\^„_P‡iS‡eS{l_uXVlaSk[de\VkbYVSQQTRMZXHPOP^PSULTK[@VZN^OJaO?jHJgPL`WObWHoKJlZDuMJj]Ujb`vaXo`NoXUkWSr\[v\Rn`_€QZsUSMV~YUy[ZwRZ|_P‚YR†NK‡`C„^A‚ZIHUŒFTŒQKŠKO†OAˆ_I|YL^N‡mR‘_JšbEŸbU–cQ”pW‘fXˆaP‘m[ˆ[ZS^‹^Y{gaƒg[’jXŠcQ~aRTa•V]SRYM”MJ‹VFSM‹J?KIJE“JG‘HMW˜7[›:S 6V•9YŸG`=ZC]C_IV”EU˜HbœLX¤Jb¥Ae¦>aªD^«<`µXŽ@O’EVš>[™CW“Cc˜C]Œ>_šAe˜FY‘MX˜Qa’J`œI\©Kg¦y­Fy¦B|¨H}§J~šL˜B‹•<‚›?ˆ J•­P‘²L·SŒ¹^’®Y“ªX‹®K„¶Mƒ¶P‰°R¨]Š«WŠ¥[…§g‡ªa“¯f•´Yª]¢«`¥¦fœ£bœžZ™c©fª¥e¥¢c ¯d¤­`™¬P”X¤¢Vž«V™ž[š­a˜¬kš¦b£«p§±s ­p— m‘¥]™¯dŸe¡©cž¢^ žXž£W›•P¡R¡«V©¦]£š\¢šlŸ–q™m’žfƒ¢h}œuyœjt“g~“i†•cƒ–hx¨n†©l~ªq„›rz£l‰œg”eƒ›e‹§gˆ¥h’ hŒ˜\€ŽW€–i£d‡šN”™[’˜Rš“U˜V¡žP­—HµœL±›RµL¼ˆX°šX¯O¸ŠK®…C·…E´ˆJ ˜W£S¥^­‹N¨‘S¤†R¦†]ª_©€d£W¡~h–€^‹‚h”…Z—d’Z€\’[‚…X{…bzŽ]o‡\bƒTdˆ_f…`Z‚pUzhN‡eO}cR]V]^zgWybci]]qd]f\fRaZT\]U]UTjTP`WL\QMbSMZQO_QGQM=_PAhQI_RDhNU`YNmNSbPLlMNq[ZlOMvTOl]Tg\QrfWf`TbeOiQR|YH~MGŠUK}MUyKNƒVN{SG‚NN‡YMX@RK|ZR‰XIPN“FO‰U@PE“^B‚d?lG€kF‡cA“tPvP˜fM–gW‹iQ‹eUZO”]]ŽWX‡aXUX†eW™ZIŠVWŠTY’UR˜W_†XLQSZB†T>…]K„^HŠW>UCŠYCOF‰KE>QŠEGJPŒHYšCW˜>OžF_”F_žFWž·H²ˆE®“NºV¹ŒO±…W²‡N­ˆP¦‰C¤N§‘S«“I£ŽO«‹T­S²‹S·„a®c |Z }Xœ€^a”‰c”„]ƒ”Xƒ–\v–\t†ZkŽah’esˆWm}[j~]_‚kQwtQqmKoeQ|eVz]W€c[zcWmb`c_febcZnd\ic^^`X^`UjTTdVCeMBgP?hRBgIDVOCaNFeRL_JJcOT\QV`PW]Y[iTUkVNnLLrNYlSVxZQvcZvdZgYRlWKzXKˆ\C‰RGDG…GJwHFzVLŠSI‰_E„\@‰X@~OI‚PM†LH•HBG=”RA‘a?‘f?‰]@†a>gD”oF–jM“iSŒbaŠe`‘^T‡WR“`Yd]•[`Œ`V‹dU—WFŠSE†WRQQ‘WU]V\QˆSANB‚Y9‘X>—WKYJTJPAˆ?Gˆ>I‰?M—EU‹GUGYGVŸLd–Q^–L`–E_—GfŒG_…8i•6o“=lk™Fo =o¨8n¥Ch¬>^¯;e±FZ¢I]©8]¢4c§?dŸ;hª?t©Hq°DtªAr§>i¦3m¤>nŸCo§CsFl›;w¡8v“9z•@‡”>ŽŸ@Ž©L”±SŽ¨L“¥UŽ¡S‡¡P‹©M‘¤H•¨O‘¤X‚¤T£PŽ›R…X‹ŸYš­[—ª_’§jŽ `Œžb•§f•ªo¢«b™a——d¤ŸX®¤T¬¤V ¯^˜´W™d™¨d¤©i˜¢h”šg« n«°q¡®r «n £q¡ªh¡°d¥ªh£ [¡¥U¥¤a«ŸO™I¤ U¦šP©¥X¢£bšœe—™[Œ‘kˆšn’¢fƒ’nx’i{špx–js›mr£r…¦t{•o£wy›hƒ›e„¦c„žb£dª]|¨`|¤b…ž`‘d†Œ_ˆ‘a’¦U”—Zœ‘S˜˜E–‹R›‡A£˜D£–M¦Ž=¬Œ<½„I´ƒH·@º‚B¸‡K¸I­~K´ƒB­Œ@¥ŠS±ŽC¦…I·†F°’Q±ŒQ®†]·ŒY¨‡Wž‡g‘‰X˜Š\”b”d’_‡‘`‚…g|ˆdl”Ul–_rƒWf|[l_hxd\tsUufTslZ~oX\_th[ke[ggUnjkflbbhjYpZQbfTfdYdTWpRVoZNh[ClNH^PI_MF^LQhKPiRQcSPgLQdVZmU[h\XlVGvVKjWUjHZwPXveSj[YnQJqTDoXCzQKŽKK~LK‰PKƒKS}\I…QH‡g@SB‡\:~^M†MKTFRGŠV?P9˜P@[FŽfHŽi=‡a@‰hK™oJ’i\˜`^Ža\…c[‡SM‡dY†hZ‡^Z’WXSKžRG“QGŒXH‘OKŒ]R‰RP€TAˆZFˆO;‡S?T@‰[AŽTO‰VO’KH‡FEŽFMPU‘IUTU‰P\”GXšK`—EeR_DqŸAl“Dn‘=s”@iŒIg‡KyAp—Ai£Ic˜Dv›Ju¨LtœEc >^©5h¢=`Kb«Ah @rŸCk˜:gžKy¥=l©7x£?r2m¦/m›1s™CeœEu=v§9t›9s¦:|•9Œž7«=‹§A±O‘£P”­VŽŸU’œU’¢M‡¦JžW†¡T¡R‚¦WŽŸ`Œ \‘°[²kŽ¬d•¬l†¥j›¤h§ež¤iŸªršœp‘¡g¢¥T¬¥[­¡a¢©[¨´N©m’¥`™ªj˜®cŸ£g¯¢b­¨c®©m¨°pœ°pœ¬s˜©d£­]«¡^®¡W±š[ª U°—S±šQ­S¨£N¥¥X¢ W—¥c‘˜c–œfŠ›^‰že|˜]vžau’pœrx›wvt€t{¨qx¡rzk†g~¢_‡¤d‡™a„›eŠ d˜g{Ÿi€•h‚˜_‘œ`˜žU’ŽYŒ„P“ˆH›ˆBF¬‹H¬…B¶‹<¼…7´€B¹†D²€D¼€L»}Gµ„?¨D©ŠF«J«~P¨‰D±ŽQ·…Q¯ŒY¬‰V²‡^ª€d¦†aŸ‚_“…aeŽ^Ž‡g€…_€auat‘Xj–dgˆ`hˆngnhxw_xn^rgSkoRur]vkXqiXpvSml__rcUq_`ga[ifYoZRu]WkbWlgIs[KkNFiRKaLIdKFiUEaNNfGNiNQrPQlSKuZKrVQjaGpZNjVWqNZwZVxUMvOJuYP{ORrNFxE@LFŠDD…GC‹JF†STŒaK]D„`=ˆWC‰RKXE…OJ‡WA”W>“O@”V=ZF„Z=‰j@‚pG‹iDŒbR“gT˜[V[Z’^]‰UVŽ^_c]XP—XOOV”WN•SPˆ^A‹U>„TD…TJŽO@ŠM=…QEW8‘X<^ISH‹JQŽNK”HM–PD‘[LUW•R[‘OY’Dc–E\Ÿ@h™Gg’8m•:t›5p?n‰@kˆEs’;j’cJc¦Dg£LhžBoAz›Ew©Ao§AxŸ@¤2~§7|1qŸ,p”4h“1g™:o˜Ao¢m˜7hœ2mBx C‚¨@‚³It±H{¢O{ªJ~°GžG’§AŸPŽ•V…I€ªY¦U‡ªUŒœd‡œZ«eˆ³h­`—§c­d¦h“k§l”ªdš®h“§a ªY®§Z¯©eª³Z¨¨P¬o¨ªož©mœ¤t¦›q«¬g©¯m¥¨y§°k­­d£¯b–ªp˜¯q™´n¡°iª§c·ªa¸¥\´¦]®«cž°k±d‘¤a… o…™a…•Y…^•edzŸf~•fz^{›mw™j|¡c‡¤jƒ¬k†¯Z†¬eŠµe’¯d¨j‡¤a~šd•^ƒ—]ˆd£j˜dœ“dž—]•ˆY‘‰N”†L¢ŒR¬‰Gª†T¦‹R°T±„G¶xM¶C·ŠM¿|M¸|L¯„G¨ŒC¨B¤†;~Cš€@—†I£…R£Už†S“„_—Žl—g‘ŒX„ˆZˆ“X’cƒf}‘Zq‹Tk•Za’bkŽ[l[b†lX~qf„qb~o^{^WvcUknZeg`jkVlsPdsRcnMYePNcYPgYNtUJsUOqWSr^QkOChI?_ICVQBgONpERtCDuIEyFKlONmLKyZXmYKhPMoIPoNYxWZyUU|QTpSYl]Zw[IzNGƒPBŒS@P?”QQ‡VYŒSP‚K>ƒS>…`7€]F‡bEŠj>„c=‘W>“[@QB‚QF…VT‹gR„cOcD‚gRˆ[OŠaU‰eL„mV€hV‰`NŽcT’l`ŠhZ’eUŽaP†]QŠ^TƒaP{XBx];€`EƒV:€S;{IG€MR€FVŠMJSHƒHH€DTˆIRLQ€F[SS„PZ‰Ng˜EbšF_˜IdžLa™BbšNe—Mr“FqGs“OožHižDn‘>~…kGZA‰Z?Ž]@Šb;^?{OO{RSƒfX€aS]FƒYI‚iJ…ZEzfHŠfRˆnL…fRfKŒgYŽp_ŽgXŠe]ˆb]Œ\U|^JZIeCfN‡aL„\FO=~LK„SH{PKVKZP…RS…AI‚IQ‚HQƒO[PT€UV‡Sf•P^•Rl›FdŒG^šPkSo—Mz‘Km™Rg•Hr”ApŽ:„’E„¡E}™Lx˜Ks˜Np¢LmJo•Io‰Ru…LpœNo›Kz—Epœ0u3|•<}§:„(‚¨'†¦'š0x=t‘:{šE¡4w¥5{¡5|©;ƒ¤{AA{@G>Nƒ@QsIXkKToSQoLPuPYmPOxVPnGIxM>w]B„\K„_G|RA}TCƒMJŒGF}QG„R9|\A‚^=ƒd@Šd=Š\G’kK…hC†`G‰YIXOzcQv`SxZUx]E…ZR„gK†kD}`SwkMydK„nW‹zT‡|M{XvN‹u`‚c`‚d]…sK„kP{kO„cVeQ‘`F|RL}VAp\K`K}]Mˆ[_|YS…SW‚NM~[R…NY‰T[‹Ne‰Wj‘ah’T`ˆ`^„Xh’Xh”ZtNkŽTlŽUzš?|›HwžIxš9Š‹D{›@z¢Hp‘En›Ut–Sl‹[u“YuR’I€‘Ep–Cw˜B}Ž5v“B˜?¤>€9…¥/€›7„8{›8‚“=‰–C‹¤6Œ¡7‡ž;‰œ8ƒ§9ƒ :~§=›BŽ§A—ªG‰¬LƒŸR‰¡Yƒ¢\‘«X¥a„¤`\†—bŠšX”¤X‘­Q™§]“«`¤\‡ªV•°]›«X•£_œ§^¤Ÿ\¸[§¦d¨n ¬d§©qª¤o§¥u ¬jª«r™žu˜¡w”¥mš°t¥«q¥¯j¬©j¥¤k·®a»·a«²f¬µb«°X›®eŸ²g–±e¨l‘›^Ž¦Zˆ¤`¨[…§]}¥S…›d†œdˆ™]ˆ™W‰œ]‹«ZŽ®Tˆ¨T“±]–¥[‘¤j‹¢h–£iž¥e˜¡W¡šTœ£V§Ÿ^¥ž[§¥UššU•‹R–O“M …Oœ„[§ŽX›€VžƒKœ‚Q¦P«zT¨{^¥‚Y­‰L¨I°@µD¨F©R›~Sš€DŒxP^™{\’ˆU]ˆŒh‚’kvŒg{do–hpŒh|ˆpzŽmk‹ni‰_a…[Ye_}b\ta`j]anb\xcgt\fm\k]S`e[U\[T\\SSbQWcUScLMlO9gG;nJ>gB:eDEhGFhK;qG;oI6yH2tA6zL2oG;yE;w=K9Tƒ=P„HWwKSvQWvORnQ]sQVvKKzJBN8}V<ƒWF…RF|QD{OD}NB†JH‹JH‚T;Š\F‡[D_<‰Y?„dKŠiKiKiD~^OŒ\R†WS\Q}aQyeN|kW|cO|bM€hO}dDƒdEuQ‰}^‚s\zwOtkL|kVyeRlV‡qW}xK}uO‰`V‹ZLˆ`P€]OrZKn_JpVNr^N|XWzXOzOQ~LX{QO{U]ˆJZ“X]Œ[e“`j\`‰de€^a~caYe’Ym–Xq•OuŸAv™HsœAš>{=‡’H‡œHw£IlšOo–[u‹Un’Zy–W}‘Mp™Lj–Dl•Iu?o’•£Aˆ£K‚¦Wˆ«TŽ©YŽ¢Z‘ŸTŒ¦T–œ_’Ÿ^–žV›¤S¢¯`œ´^˜­d‹§fŠªc”¨f•ž^”¤X§ªT¬žaµ›\¬gŸ­j­¤g¥¨k±°b©£c««o¡¥o—¬j¡£r ¬i«¤t¯¢m¥°e®¬a²¸]º®f¶¶g¯·c¦«ZŸ«^›¨n›«n”©n•£b‘¨N’±XŽ§S|¯]‰¤Nˆ¥^‚ž]…”a™U£Q«^š©S˜¬S‘¨`Ž²`­`›¢p” _™œb¤žZ§ U§ªXžŸ_¯–`§œW¢•\”ŠV¢‚_œ‚U¨’^œ‹bš‘\—Š_š~M¦†K¢zS°‡W¬~Q³†a¦‰]©W²O£’PžŒG Ž\›~TšzN”tPU‰‚Xƒ‚QŽ‹]“hˆ‘iŽ[{Š^zŠ_j•gk†qvŠuilh„ob\_Šgg}c]ud^o[nrcpqVoxWerangVfWOQaUIXZSMWMHUIV]MAiFEoDa?=^I9lJ=lD1i?1m>1n=4l?8~B?v;M„:K|@PzDMyNMzRN|FEzHHwMZvTM€DJ{RJZ:†LC‚JMzH?ˆRE‡R;ƒJ?„U7ŠTF‡Y?ˆZC‚]Ag?ŠjFƒaH‡lG~gBŒiCdI€fI„`NzjNƒbV~dHkQz^V~mNxpJwhOzqO‚YtqMzqRlHxmJrfU€gXznK…~N~sQpV}iV‰jW{]Gz]GzYRtPFpVGxYTzMXnNV€[TsRYzX`K]†QZŽOaˆNe‘Rd‹]b~VeŠ\bƒ]oˆVo“Rz›Um£PvŸE|’RtšC|œ>„9|™KzJkFl—Ir™Zl•Pxš^vžXw›NiœGw‘Hv•Bs˜@}¤B|¨;‹¡A„˜9‚?zŸA‡§0‰Ÿ7”ž-ˆ“0˜>ˆ˜:† 8’œ<žBŽšE†ž@‡¨6€£7‡ D‹¢C‡©M…žL‹§X‘˜[•UŸ]”¢S‘ W•¢[•¤WŸ§`–³cŸ§_™­_ª^—¯Xœ¨\˜§T–®VªŸ\¡žc¨h°±j®«n³³e«ª`´¨i®£p«¬w¤¦x«¤j¡¬už¯qª£qª§d­´e·²c³³[¥¬Y¦°a¦­\™©X˜§e«\®a®X†¸O‹´Yƒ­R„¦Uƒ®T¦Uˆ X‚UŽ˜Q JŸT–©S“ U™¦Z”¢_›©^¡g˜›b¢›`§˜c«–[¡¥]¨ \­žg¨¤b¢œd¥—XŸŽZ¥‘b£Žjœ†a‚Xž|W˜Xœ€S¢ƒJ­€M¬†X¬Œ[¯[¶•T­ŠR©’Q¤ŽSŸ“W—‹M—zJ‹zUƒ~RƒV„„W…Z„ˆ\‡]v„`veq“du‘cj‰opkp}qn}womg~pi}cazd^}VixYb€VlxNovTgfRdbOQVYLLVLPTOVXMKiCKiJDpP9iM;iI5dF<^=>d@/l?5nE7gMAkK;nB;rB8|=;=D|BH„9OˆEQƒDKOE†HIwJTtNOuIKvFE}JH~QB~QD„NHH?†J9{K9W3‡Y8X?ˆcAˆ]@ˆfM‹jN“aK‰gJlF‰k=‚n>‡fE„kFkO`X^PyjU|jMrdRseNvmNuwI‚Jy|WouLvvHptCtkN|rHziP~jU†rW~rZwMwxU{jMqhPrYOpQTsVNwNLtTKpVIs\V|V_yXWxM`ƒR^„W_OjƒIn‡RbRd‚M^ŠYgƒXm‹Ru’Vx‹Ur•MvJs“QxžR{™A|‘;y=o=g“Kl¡LjMl–Xu•Ym bi›\hŽLs’Mx™Fw™Izž>z¡5‚¬;ˆ©B}¯7‹¨;Œ£8˜™/“”9ž—1›˜:’7Ž—C‹š>–ŸH”ŸA“™Gˆ¡; HƒEœA–§I‘¢PŠžT’¥L—žT‘Ÿ_˜£X—¤ZŽŸ`–Ÿc¢¨bœ¶Zœ²]™¬^–³\’«Q¢W•«[œªUŸ¥_£ f¡`®·m©°h§°`¤ªh§ªl¥¬jŸ¢u©v£¦g¨¢m¨¦r¬¨l¬²k³²k«ª]°¼` ¸Z˜­Vš¶S’®bŒ«dŽ¨aŠ²]‹µPƒªT¢\ƒª_~¤O¤R|¨VŒŸX‚¦^‡£]’¯RŽ¬^‰¤T‘®\“œ\•­c•¬c™®\™šf ¥^Ÿ›]ª¦b£«c¡žf³¨c§—g£œd¡[žŒWªcœ“_¥ŒU£”R¥‰S¥]¥Z°ŽK¥‹S£ŒN°•_¹˜O³“O¨R«‰GŸ†X ‰L£ˆHš‚Q’tV‹wZ‚‰S‚~TŠ[}UƒX„‹cY~huŠpn–xf“sdˆch‡unsg|m_zdYr^[}[iuTjyOdvP^rXbi[X^X^QYLTbGQXNUh\PqHBnMvI/z<8uN:sEA„CFzADƒ@@‡1EŽ@IJ>‰IH„JH„CBvAKtEJm@4~S:vQX3gC…rIcFŒ_K‰nAŒ^DŒa={Z8€cI~iDƒmKƒbW{`IviOtfCzhSplB‚sKtM…†KtrHrvRvvIniXwoYtmN|xRzyNvTwmLtoNtlTodVvZNzZNv[Jy_XpVSzVKyaWrbQzW]wVcRgŠ]e€Id€Ln…Zq†Ka†P^…YrƒTpŠ]u„K{’Nr”J~“S|ŠH|’Ky˜E€’Gw?{ž?yKg˜Uq›Tu–YiŒUp‘Ql™Xh—Ow”KsJ•B}’E…–<†£A‰«HªA‹¡7’‘0‘%–’(Žž.—’7‹š8œ7ˆ™CŽ =”š;‰ 5‹>~›C¨>’¢@Œ¤E•œW”žS–O—¢[‘¨PŽ¦T™¢T’­X™©a•¥[§ŸUžªe—®c•º[™¤`®]–£`•§Xª V¡¦d¨]±Äd³Áj¬¾c¦¯m¢²o¨¦q¬Ÿ|¥©zž§t¥£|¦£{¦¥l©«b±®b¥´a¦³[¦ºe™·a—²X’²]—¶_Œ¬Vª^…¯W‡¯Vƒ Vž]‰£]… V‡™UŒ–Y…¤\”§W‘¬\†¤\ˆ¬Z‰žZŸb”°Y•±U¤¬R¡ [¦ž[ž ]œa¥ l¨ªe«¢j­›c¬–Z¢–[¢“Z ‘[¦S«‹S®”P¥Ž[£‡[­‡S¯ˆX´”Xª‘X¯‘[³•Q®”R¬‹W¥ˆLªQ ‹NŸˆH¡‚F’xVŽ{\Œ}V‚|_~ŒUyV}…TuŠ_~”]ƒˆ`zŒem‘pkjl‹df…cg‚oonlqr`arifu`crWVcTZdTYldcpa_aU]]cNfcP^bQ^iZVnMKxD@j<@mCDkO=jJ?qOAuH9K4yJ5w=;}>8}ME~KG{=F8F~5@…8B>8ŒC;‚76;;}E>A@x?7mH1rI4~JB{M?}LBƒP…hJ‹`LŠfQŒmLŠbO‡_C}X8wZ8|k@wdQylRsfF~^B}_Dy_J„tH€zE{{?€„D†uI}qOtnQpuQywNzj[w{Tv|N~{XzlSvtP|lL{qXufXqiWpaTm[PuXTwX\o_SmaexVe€Xg{]_y[[‚S\{S`xZs{Lm}Mm€Mr€WwTl‚Lo…LwLx‹LwCy–HzGz™D€™A|–8p™@pQuŽ\zŠZsŒ`t”Um—On—Ql˜Oy•E‚—Jƒ“P€˜G£M…£B†•6‘“9•’+’*”-‘—/-™0—š1Ž?‡’?œ@…•:zŸ:ž@~¬@ƒœE‰Iˆ›V“›S˜œI™ŸPˆ¦Gƒ J‹ªY‰©[’ ZŸS §X¥¡b¦«_š¯Wž¯a’¬fŽ¢^” Z£¬W ­d¨e§ºb®»k²²a«ºb³³q°²p·´y´¨t«¦z°®v«·{³¶m¦·[£®[§²X›¿`§¹dž²Y—±Sµb¸lŒ¦l±j„¥V‚¢V{U~¨\…§R¥P‰¥`€›Z’«bƒªb”°S† [Œ¢U‘§UŽšL‘¥^Ÿ¶[›®X¡¤V©¥T©¡X¯¥_©Zµ­a¶žY©¦\³¦c¢žZ¢–a¢‰Y –_¨”O±“Y­[ªRªƒW®ŒQ¥Ža§ŒX±’R²”^©’Q­ˆVžK£ˆK¥|R’‰H“€SzL†y[„‡^~‚Ztƒ]y‰Os…S}‚Uu•_~‹bwƒfvˆrnfkƒguynvqglmfhs[hdccbe`obhbWdf[iki`lcblbZc\b`_][fWTm[WjYOHK}N=qAN|L

    AqJEw@>ƒI:z@=yM5‚B:}DE}A?ŠBN‚5A‹6HŒ99‰63>0‰<5}57??€<8qE/r9*tA-t?<{?AJD}?:lF+sM+~`-}W+€_4X-…d=„Z3‚l:‚gJ…eN`H}hEwgJvS>t]8~aC|eDtmKwlFx^H}`BndD€nK„w;ƒuFw…Dƒz=„|AlGvn[{o\{oV{x[p€Or~SzsJpjO|lWu^Tw]Zn^VuVRp_O|eSj^\hYWv]as`]|Y_t]_vY[nV^yKmuR|tYm|Uhs\oˆWz†Yv…Vy‡Mu“U†šSvIpJs™Ju‘:s•E‚‘>xŸ>y‘J}‹[s–`u•d{–Uj—Lq–Ns“PtŒK„˜FCv˜EˆŸHŒ§?C0›”-‘‘(•—+™‰'‡3•‹.ˆ‰8†ŽG’›<Š™C›8‰ž:§A©?~ŸAˆ¡PƒŸS‘¨I˜›N–¡P’¦R‘¬Q…­O„¨U…©SšœTš¢Tš¡_ª§U¡§Z¢¬_’¨l”¤i–¦f› f¨¨b¦r¶Âk¯Äa·¹h³¶r·²nº·pµ·‚¶±«·{«¹u¤»w®»p¨¸e£¿aŸ¼]ŸÂ\œÈS¢½R£»Z›¯e”¬hŠ°e„£mƒ¡\‡¢[}¢]{ŸVˆœ\†§R‚¥X©]¨^•¦]‰ª^ªSœU””M˜šH˜žS©X§œO¡[ž£Y¨¤R¬¤U¶¦Z¸¡\´¨b¨®d¨¤Z¦¢ZžŽ]¤‡b§Šb²Y­™a«šW¨‰T³‘V³‰\§ƒ^¦Ž]¯ŒVª”R‹T¡Wž†Vž€XšuI“yK˜†P„P€\}†[t[z†av~Uo†OtXxŠfw‡fxƒkp„gqlpj|v`sjbtfWwh\kck^dk]bpaahhjiimcdjedfdffcldkeYnmJjcL{UCzSG†TOHKzFŒH=‘@;A6’<0Œ@6Š?6„62v9=~8:w:1r>7n>3xB8x:5pE2qD*tL,~U+wS'zO'\1„^7€b<g9‰ZD…]L…gJ€eKxaLx^;zeJyeHnp>rjCvf;qkDwpErnJr~>}|AwF|{BƒxJ}vBvQzrW„qZ|tNƒMzUm~HltLkhSphPqaVj\Lp_SuYV~UUva]sabrZcr`]qf_te`idad_`ePfdXonPwv[wnZp\z‚]x~dyˆa~‡e~‘Wƒ›UƒSr•Lz–Es•Au“=Œ@ƒ•H…™O€Ž[w’V{‘]r†Yr…Qm‡IqŠGz‘DuŠIw”Jƒ™F€“I…›B8‘2—)ž…'—„3šŒ-Ž)’Š.†‡5ƒ>ŒF–™B¡A”£:’›A†œ8„˜?¢J‹«V“©PŽŸL” I§L„§H†¯E†¦GˆªVŽœTš–P¡Y¤šZš§d–¨]—¥f”¢h™¨p›©p¢¬pžtµÅp¿Âj¼Çr´¶t»ºe¸»r¶¸|½|¶¹z«»°·{­Åe§Àiž»gŸÆi¿[ž½U¡¶Z‘°e“«^Š³f¬jŒ¨pˆ­e‰¨d‚˜Zˆœf†•]~¦]£\‹©a‰­e‹®^“«V‘ŸN™©J¡R—¡Jš©X˜¨W¤«]˜¡M¨¥`¤¢Y¤¨Qµ¥T±¤_¯žX«Ÿ`¨žX®h¡–g¤—h±”d¶—\´U±”P°P©ŽJ¬N©‘O®…X¤S¯‹Oª’W¡‚_¢‚]¢…O¡‡T›}U‰Š[„ˆaƒ…gwvbubs‡U{\qˆS|‹Oz~Sv„W‚bpslvƒeixkmf[wieocgqjdrdk\WiWUkd^Y_khg^ggahZbh^eqafrebsiRxcOq^KsWLtWGKFtCEyBNy7E}3E„6LA‚A;77‘;6“71…8}77s@07.rA-}B-{A5…C9‚<&x9*tF!‡M)ƒT zO'tZ-~V5…XA…XEˆcJ‡b=dI}gC€cA€l?{eD{gwpCzc7p]HvfJzgP{nDtjHqs>m}>rzH}wHxLywMvqJ~yX}U~Hv‚Lj~FnsHkwOgwTfrWdjIkgNhjZicZmhYf`Yb^Rf]]`jj]kga\ncip\qehcqdVkjZwnOsuNwnMu{aovcx|[~„_‡…]…ŠXƒ‡N…J†ŽJu‚@tŒIo…Dw€Gw€?„‚Fˆ‘K}T~as‡SwŒS„…WŽPŠƒJ’‡JŽˆTˆ‰Vƒ‹Q‰@–Œ?“•7›Ž/“’3Œ(–‰,‹•:Š–A‘FŽŽ<Œ™C‡œI§D¢8ž©=”¤<–¦@— L†¥NªKŽ§K‹™J£Q…¨G‚¦SŠ¦PŸK• SšXQ¢™T•£^–˜`—b—Ÿg¨o”°y®qtÊÄ¿ÂvÄÂo½Ïl½½v¾ÇvºÆp¼¿z½Á{ÀÁ}®Æm³Ìq¤Êm¨Ìc˜Ãcž¼rŸÂv—Äjž½cˆ³l´j‡®c‚¥b„¡l‹¡`Š¨h†˜o‡¡g’—k‡˜j‘¡^ˆ±V‚¦Tˆ¥S“›`œ¦R‘£Y–§S‘®\›©U—±dœª_¤bª°Uª©e«©Y¬«\®Ÿ`²›Z©˜W³ ]³œY¶’a²•T³’U±–H»šW»šK±P¥ŒU°‘S¬—N¯V«T¡…`œ‚X‰]¦€R”‰`‰€d|\—€^„„\ƒyVƒy`wx\xxV|sbt~S~wZ{uYmxctxbopendet]cqfjydcgbgkSjo^hhY^fbUacX^`T[^l\cl\gzZbz`e„e_}^U|_\€LX€ONuKF€PR{:V€9N„9E‚A?„>?}@A€83~5.|73Œ*-‹*-7*Ž,:ˆ47Š/.Ž25;=Š:*†85ŒB/„6*ˆ?1…59}068/v4,w@+zA€J/|H/vI#‚P2ƒ[:tZ>YB|S<‡g>‚^Bƒd:vm5sk@xp7tp6qlEyj@ql@‚j?wo:qvAy}@{|@r„@psNnwPwoTtNn€QoxPrƒKgqGl{E]}V[lW[v\kmRcpZki[jkTclZacU\_Xahg\hd\lhj[tipw\li\aha^fm_nkWomWxo[uxY|T|t\…‚Q‹_~b|‘RzˆO‡ˆJ|†Ay€@w€Jt„=wwD~ƒI‹J|‰[yŒTyƒK‰K‹…J‘€LŠˆJ…”VˆL’XŽ†R”ŽF¡…@’˜?Ÿ—8¢;”“?Ž3˜ˆC™“@‹—@’L›P’G’—H ¦:—¢9˜©>”©Mˆ¥EŒ¢W†¤XˆŸFŠšCŠ¨?‚©H”¨S‘ U›©Y©N”šV£“V—Oœ[¤•\–™^—¡f¦q›o™¢tsȼzƽ}ÃÆxÂËpÊÅtÂÀp»Åx¿ÅxÅǼÄrÁÑu·Îw©Óz¤Ñq›ÍkžÇw¤ÉxŸÁ|šÄr¼k”­qŒªn‰¤aŒ©m’«g—©f™¨i‘Ÿm…™m…Ÿe‹œ]ŠªW†œS…ŸO’žX•ž^›–]žb¦Y«_¯e›§e™°_§®i«²b°©Z¯¥^­ž`¦¡\ªŸ\´š\¹’R´Y¶™P¯”O´žS¼L³Y³“[®‘V«X°”M²†P®‰P«Zœ‚W¤ƒSž†W wa‘yj˜ze”}^ŽzVŒ{Pƒ}[ƒtR{rW|r_vq^tudqxaet`cubiibnhgp]lj[lo^ja[_d\`ic`keSbdW_[b^_[a[^dYrV^pZ[v[btaa€_`a`|UW~\YxQK|IV?Sƒ:Jw9Lw=€=8}=,u<4}2/ˆ22‹0113Ž4)‘4/‰.&“5(71”2+‡=%†<"ƒ:*…+2z-2‚,,3,80x9$u9/zD(F)…F*ˆE.|N5‚N3|R9~b@ˆc9†g6‚a:ze:zp1wi1}sAu?wwB~tA{v@z€?|y?€wEFw„HqxEw‚Iv~NuzKlƒMdxEhvA`€EdyIfoK[pY`wUesWZpW`qVZfTcdUa`\ZkaUq\alajimbdsj`}blzcdnn^ppb|i\vrb„pbƒtc‰{V}R‡yR…ˆQ‰‰]’T„K~ŠUw‚N{IwˆCw~HuJs‚Km…TuZ}}R„{N†|I‰|P‰ƒOŽ’K‹QŠˆZŽŠR•‰S“„SœƒG¢G“OGŒ@œŠ=—„K–M–’H‘K’G™R•U¤žFš§Bš¢BŒœQ—¥O’™WŽœT‘›JŸH„£L‰ D”šJŽ T•¡U”£Rœ–Pœ’P›”O¤Œ_¢œ]—›hœe£aŸœ^¤£j—}ÁÍ{ÁÎy¾ÏxÈÂyƽuÃÄzÇÂmÉË{¿Êp¿ÈwÃÄnµÆx¶×s±ËhŸÌi­Ép­Ët¦ÊsšÅj›Ám“·h—ºd—¶gŽ·h—µf’®eŽ¥m“©e¤g†®mŒ«mŒ£e‚ _‹¥[Ž¥b˜™[’ Xˆ•c‡œX˜¤_š¡`’Ÿa¥§a¨£U°ªT­›V°š\§¨W£¤Y§š[º›^²žW½•a²¢U³•U¼“M¹•Z¸^¸’]¸‡c°—Y­‹S¯ŒG¨‘\¨‰Z›‡\©yX®X•{[ŠwhŠ{gš`”u_ƒx\Œwco\~lVzmWzv_wtYdm]jp\ht[^d\k_aigjoVusammdiu\ji[Xo^[p^^nOakUUfKjYOzXUw[YuV^|`drb[q`Ur`QrVWsPVyBMx@TsJKrB=xBAyDAƒ;2z;->14>‰4:‡75…9#‹7)†>#Œ94Ž1+‘B*?*ƒ9+€9"Š71…69y5;€+9=,sC5B's=.xD!}O.|G$zT.{R>~N5y[>†Z.†f<Že>~_-‚g4„s3€y9rs"ƒ44ŒB+ŒD/<3…7)…;3‹?3Š=8{35y27‚99€E6vC*zE!sHvJ vN&xT1yT;|]=„[2€U+…Z3ƒZ3‡j0p5n6tq@ws>v|Dpu?soDmkFvj8zh8€n9ufHmr@op;ksK_kL[vL]{NexN]rEb{HYyH[}J[|QcrVhvRdoMaxTkr[gjTbiVYcYUlfUjiYmp\`gQafUcvbjwddobSmdRviWxt\zq[v{_€{Y†~[ƒzP…vKvsIwUu‚P€|R€G…|I}|J{zMy€LyvQ„xR~qcvtc„…R…X…{M…ƒG‚P’ˆX˜‰NŠN}LŸˆAŸƒCŸ†?˜ƒG–€=“~=x;–~;˜zDŠƒIŠ~<‹†>’H”’D¡‘P˜ŸQ“šT¤J–O™•V™NS›[ˆ–T‰žP™Zˆ¦P”¡H–¤I•šP ›Q¤X—£Z”•`šZ™Z—©jœ§mv½ÊuÈÁxÇʆÅȅËÐ|ÄÏmпuËÈkÂÊvÇÆh¹ÅqµÆo²Íg²Ôi¥Îr³Êm¨Óf«Ìf¤»f›¸u¡Ål–¹u•µv¥·u¤®q£°q–±i›·mš¬bŠ´s‡ªlªwªqˆ£jˆ§mˆ£_Ž™`‹œa‘›]•Ÿfš™Z¡‘fšši¦¢_­ W¯™f¯¦a²X¶˜\¸–X¾’d®^»™^ª”R°–ZØT²Vº’g²\·…b¸€Y³T³J£{V |Z¡sV«zT²zX¡ue“rY˜wTwe…om{dgŽqfiZ‚gczndulOok[ql[maZf^big[`fdhc`gai|\jkcptSmqT_g^\rVaeTd`IYeIaYQwfFhdKng_uYPhVMn`ThZJhSUjSSlKEsXIrICqE*‡I*‡G)Š>+ƒC3‰9!ƒD+ƒ=1}E4‚7.w;6Š@=‚42u>2yD#oMvR/vO5ƒP-{\CzT8z`AyY6zXAzh/…k8xq3€rB{n=rz>px=i{Gqr;rv@tbCpg;yhLnlAmm:kg9on?jhA[t?U|FduH[zR^|FcqE\{UTtPXySgvTg}W^tXpm^aqVkk\^\Zde_Sad^`ldSgQZqZ`|aVufZwa`re\sgb€u]xwc|px\}p\~pYtrH‚vGulUsvW„tM€rRoH|tP„zH…|Qƒ|XŒlSvvinz[yƒS‚‚W€{Z~HŽ~R†L‹‰R‡ˆL€F›v@”}D˜{@¢wD™‡A=ˆ}<”yBƒJ•„C•u8•‚3•D˜Œ8šœ@”IšU‘¤T˜¡SˆšV…’N…‘L~NƒX‡˜N~—_“S• Kž O £T©¥O  ^šŸUœ—b£^Œš[œk“§a …ÃÈzÈÄ|ÑĆÍÏyÖÙqÑÒtÚÆqÑÆmÇËxÁÆyµÂqºÅp¹Çu­Êg°Ôe®Óo±Óh­Ðq¥Ái¨¼m­¸s£ÂpœÇx¤»u¥¹z¦³v˜³m™¶b—®f˜´sµo’®j‹ŸvŽœn“Ÿm‡žk…¤b‰˜]‘ e“šhŽ™n™Œe¡‡f§“d¢gªša¨–[´ f¿ž_ºX³‘^µ•W¶ŒV±^®Y¸‘]Á“X½ŠX„aµ~^²{W¬X²S«|M¨rX¬q[µwT¯sU§uc•sX›j^jbˆbf…_j„ah…i\†^_~d^uiSgfWh`Mh\QhbWh^_c`_iYfxdiv_doXilTrsQilR`oMafP^^KcYKpdLoeIimSmdTf^QoZJr^AqdIcYBf]Ki[AnZ>~M<|N9sD0zI4{L;ƒ=:‡:4zE=zE>|N/…D$€K)vF"zN#zF1~D1ŠK'ŠD&€D.‚D0ƒG.€;4x@094wB7}>+‚K1vQ)tS2vZ2†T9‰[:}U@{\?ydB{bA}l<|o6yr9}i>vsAmoDpsAoz=}w9|sAtpHufDmc>skHrqIpf—€DuD’tEy7š?¦‹<¢“E™˜N•”Yˆ–RŒžQ‡•Zƒ’]„ˆU€ŽX‡–J•F†”S…N“™V›šR—¤M£¯UŸ©\¢£S•›Y’˜\Š cžZ˜ž`¢„ÏՀÎՅÍ×{ÌÔqÓÔrÈËvÊÏzÑÇiÃÉm·Ív·ÉpÃÂ}¿Êw´Ôm³Ùb­ÝkªÍ`ªÔm Îq¢Íw­º{¡¿w®Ç}¥Ã…¦¿w™­u“®i˜½h’¿o˜¹hŽ¹l˜«sªoˆšsŒ˜y‚˜fŠ•jŽ[Œ\›šdš”h™˜_¦˜jªn¤˜o¥Ÿc¥šb«œe°˜hº¡f­’q¬—f®l°‡Y¶’^ª”_¶•fµŒ]·}kµ€`­†X±„Yµ…W«uP«pV¯uM®hV¥zYªvb r_šeYc^‘dl‡h^ŒfdŠndxp\bcjj[k__lYVcdbhaThZXlZZpbde`mkUom__tNcuZcsOkiNgeZb]DjbCc_DjcKu[JqjMrfGlkCf`OgeOpcEj]QmXzP:N>zO7sF.pM1}H;yF5vRBtQ6V4„O1‚L)~T+}G!€Q2|C9yA6|N,‚D4‡;,ŒA-ŽG4~B:x3-t4+s3.‚J$P.€V3€^'„T5Ša3|g6€Z;wm?t`>wgAqg1ƒkBuqGlxKekNiwAp7pzGt{;pgCllGshEddEon9sb0lk1jy:XsFO|QRtST€L`lUijPcyJZoZfyTex_jve[l\`hUseXjlUddUf]`iVcgSi`]gcUhg[yaau`[nSso`|t^€uh{zfzplknnrnZ|hWvwGymRxqPƒvN{}K„kG~qLyMŠ|P|Y’‚Z}uV|rXvƒU…ƒQ†…a‰]‡YL’†M•F’€P‰P–qI“€AvJš{Jw6w-Št<Žq>—yHœq=œr<‘„@‘~7—|;‡F”‰L—”UŽ“ZŠ‘OŠ_‡…X„…Wy’UšTŒ’\~’Syš[‹[”™L£ŸT— SšªV¡ªV›¢RœYš©[‹¢\ ¢i©…ÇՇÊ×}ÉÐ}ÑҀÔÇsÍÈl×ÊqÑÃoÏÑn¾ÍÁÎ~ÂÂpµÐq²Îq®Õ`¯Ý\¨Ùh¥ÕmªËw£Ïq­Ìv©¿~±Ç¨ÂŠ˜·„–±z ¾uš¼m—Âs’·{•±u‘¬kžoŽ¡l„ªt‹£l“•b˜‘\^œiš™g˜k——a¥˜f¡—j§šg£m©–a«™c·”rµ—r±Šy»pµ…l¯d«’g´•c®‹`´€l½wfµ{Pº‚JÀ~I¼{G¯mS²kS°nQ¬tW¬sU¤nZ‘bYg[‰rhwe…e‡we|bdx^fm[`_eek^cn\fj``gfff[be[kjaid\\tR`rXZjU_oXZcYc\S_cAca>pbKmYSeaNk`GrhHnmGkjOabI_SRkTIyTDwU;qJDuB=yO2nK*uH.kN:jNHqPFkQ1tU-tU.€J/vM0{N-€Q2ƒL6‡H2zH7zJ2‚”s2Œp1n;•kDŸhG›r;‘@‘x@–w;~E’€OŒˆU„‹aƒ‹`‰}S‹[~ŠY|”[z^…–YyŽ_~—ZˆžU™¨V£«L›¢Uš¡\–¦^’¨P˜°Q™¦V¥Vš›b¥‰É݇ÈށÆցÑÑyÕÈzÑÊtËÌpÉÃyÀÁsÀ͂½¿}»ÄmºÃl©Ëb«Ïj¢Ún±Ðl®Þw¨ÎwÊ|¥Óz¦Á}¨Ã¬Ãƒ ¿€›®…•¶³v“¯qŠ©€‡Ÿs„«oƒœl•˜h¤s…•eŽŸaŸb¢šW •fœžiª™d®šY¨Œh¦œm©Œl£’l©Žm¨’b±“q­ƒx¬Šq±u´Œn·€c´Žg¦†c±€aºƒc¹‚[»y[Ã}TµsN¾xS¸wQ°uU¯|Q¯qN±tZ tX•gW–if™rb˜{`‚}f‰tc|qfhehehglZej^gc^nn_ok`nahja[afZcbWrfZe\[e]^`^`^ShYU\`KdfI_hHeiYqiKfhHi\DkgN_^>`aFaZ;q]@eWFtT?wK8lC5wL)qA/sG+zL2tM5wKJnO=vP7wZ7‡U8{L3zV9~G+€O+‹L+L2…D-‹::‚72ŠI1xB+x:7=)z3.=&€D)…E-„U+~_;`0}f?ƒfEˆq?ƒe7}rCkB€p>xnMth>hl>tzGfnDck;heEjl9fe=kj@bd5Z`>jd5^o9]h;anNSyKRyFZsL[mN[uLbjXNiZbr_jybjnXXhUcbdm`bahg\U]ie[gVjback^fp_rp\{_^sXhzbYufPwpc}yevv_r}fym`qnayx]€qWzrW‚eO’lY†vLŠjPyR‘tU†ƒ_Ž‰dˆ{`~ycˆe}†UˆV|’^…Ža…ŽU”…R™N“‚DŠ‚BŽwL†q?†p=ƒxG…€;Žl4‘r,‰n2‘g>›r=iMœrO“}Lw?˜rDš{>’mTŒqP‡yeˆƒV~y[„‡\‰€Z€ŠX†Yƒe„Yˆ–S•–[—˜S—ªQ“«NœœW”¡^”¯Z”¬Zš§S™¥c”œ]¢‡×܇ÏԁÐ׃Ë܂ÃÍyÉÊyÍÄzÑƅÊÄ~ÄÆuËÌ|ÀÈq°ÈjªÓq¤Õm¦Öo¦Øh«Ûi¥ßsžÔƒžÏŸÇžÄƒ¤Á†©¹†œ»€“Á‚·ƒ˜­{’£‚Š–zƒšm€i”aˆ“h˜a™b˜‘Xœ_Ÿš`œ”cª—^µ[®‘Y²•_«Žg©•p§’m«rª€r±Šx·ƒq·|s´…q±}p¯‚v°|r±ƒk¹e³d³~U¼vX»nP¹qS³}Q¸wK¼tS±wa«v_©w[¡pb“pZœl`“ra‰xjƒrk…k_}nbzcagadhagelbokbrf]robii[mkXfk\`f^imako[`d_Zffe^chUahFbbGjjNplJiaIgZMcZJ`hK`g@`_:iU5nN7lJ;rD4lB+iC1iD0xR6wS0uP:yU<[2}Y4xM4‚N=~S;€T;ŽQ;K/”G/I+’D9‡;7}G:}A7xB2ƒ<,†8.='„@1‡H3J>ŠX7‰\;}e;‚j:ƒk@e5~l7ti3zj;ycIukGue>npBruAlp?sb:l^@hW7d_9]]:bd;fd=_d;d_AY`GcmN]mJcnF`vBcwQ\lO`m[TrbVve^rbfl^feamgkicnjXjj^hi_jmdfxjru`ln\mmWvbZq`^nd\}fX{dR…rZ€qlwwpz|kwqdwwa{qW…qX†gZ‹dO„mOŒtQ‰sZ’xW’†c‡Šd†aƒ‡]zˆ_‚‡aƒ’_Š–_ˆ‰W†ˆRŒP”•F’ˆ<‘ˆ9Žy>Œ{J’vD‡u9Œu5ˆk1ˆl7•k>”i>’cDšlDžoE“oM—tAœsEšhL—iJŽoP‹s\xVwX„~Rƒ~[‰w_ˆ}cŒ€W’‹W‰ŠW‹SšŸX—¡R—¥Yž ^˜¤\¯V’¦_¤[–¢^ª_—ŠÛâÙΉÐÏ|ÓÜ{ÎÌpÊÌzÆÑsÎЂÊÄvÏÍ|ÏȅËÓv»Ös´Øx³ÜnªÛt®Ôl¯×y£Ú}šÏ„ªÓ‚žÁž¿‚§¿„•¸“”º‡šª—¬€‘¯Š‹¤¨†›rˆ nŒx•i‹”j•Œq˜…d ›li¤—b©šk¬l®Žh¦Œb ƒl¡‰w®“t²u¯ƒm¯ˆo­ˆpª}o©{q¶|o´€s­q¨um®pl­qd´|c¹|X¯v[®nO»sU°}S»rV¸|c¦yb¥yf—sdŒoi–od—ej‚pfƒkd„d`~ekochnfadc\kmbge[sfgpiad`\igW`dbfnW^pUjf_bddbciiS]gJ`nDadNclJ]_OddN\YBX`BZ_JanH`^>kWFbZCpF8mD2uR;f?6fK+jP)~K8qO3vP9zK0‚X,zR3ƒU7†I?L.ƒO%L(B2ŒI/Š=/;447}39ŠD/Š9(ƒ@ yJ%|P$ƒL3‰O5X(ˆV*„`9u[?~_9ƒd1ƒu.{p=zl?wp@moHloEoe9uj;snImt6_d5fh4]h5ca5[`6\_1a`9YlBVe?ZcOSsEbjM^vC]pHakYckQ[h^[kWloWorXkg_chggeflineffrZjcdieimz[rm_nk]~qU{sYurUti]xqcnW|mexvmyoet~^smi…he‰o_‹jYŒm\ŠtQ†lR†i]“xW…‰f‡…V}vdŠ}W‚Ža„TŒ‰^‚M‹ŽYE‰ˆAˆA‰A‰}@ŒƒF‚w?†qDzsC‰q:†f7–o,’k4œk<o;Ÿr7œwJwDvM”m?wBxG‘mNsa•yRŒ|S~VvQ~Z•„\Œ\’S”‰S‘N”ŸH¢›W—O–ª_¡ž_˜ªZ§W› V¡¥V› X¦sÛÒxÝՂÙÏÊρÏÍvÌÌzÚÐvÖÉwÑÐzÏØwÑӁÊÔwÈÏw½Îy¶Òn«Õx­Ìq©Ër¬Ö|¡×{«Ê„ªÈŒ£¿‰žµˆ¢¸Ž•´”•¨ˆ’¦…†°‰¬ƒ‰ªŒ ˆ‰‘w–“y—‘y˜‘™•vŠp¢“r¦˜s²”i¬k¢‹n§Žo§ŽsŸ†v«†u¨’w·‘g´…t·}o­‚m¶zl­i§~v¨yw¡|p¨mp¥hb«ohµli®u[¸dY±bg¸kc®ub¹xa´vb£tažm]Œod…sg†jhŽbsŠ\nwfj€llyjl{oivcdviXk]emRblXbkYbd^Z]ecblbgtU`nVabhe[iq]bmR`lZ_oQ[pM]_LT_J\]A]i6WfoS9jB2rA#vM0uR.uO)|O1†U.€Q+zP.yP=‚U6}N'|M-ŠG&‹D'ˆ=2‹E;‰?6ˆ4)ƒ6-B.?+‹C,|K$vL$|R)yZ€S!P-~\2}Z-v`+€c+yl2}pcd5mh6rj=ntAbo?`l;Y`.Y`0\f1[].[X0b`4cf9_iG`fOZoJ_nFckJmsMfqUci]gd_ieUrk\ig_pqdpummggkgtlessgphadkgjmenw]qtZ~xZ}uWynW{kX€tUzr`xii|mf‡ymƒ{bzp]Œlfs]i^q]zqL…nWƒpPƒ{Z„|Y}UxU„wU…T‹\|R‚€P†…K‰‹@‡‡B|‚8€‰8}‡>…„F‚vB~uH|u;xj0ƒd0‹i'—j;”hA”r=u;™y@˜t@ŽvE†p@ŽuNŒxOŠt\“xZŒxS“€Pš‚F¢}M™ŒL’\˜’Q‘ŽV“‹Mš—M”U”‘Pš’T–£N ¨SšŸ`—¡Z›§Z ¤^¢™\¤†ÒمØ؂ÖÒzËÕsÍÒpÒÎqÎË{ØπÒÎy×à‚Ò߈ÍÎzÊÙ|ÉÏo³Ëx¬Éx¬×o±ÆzµÆx±É~¨ÌŒ¨¹€¨¾‡™³¢¸Ž²ˆ”¨~”¥€‰¤ƒ~®¡‰¥€‘•€˜–|‹v‘•v—–y‡s“Žr¤Œzª•o±–w¯‚i«Œt…}£‚s¨ˆx®‹y°h»…r³ˆf¢k¯ƒtªvj¬tq¤vlªjp›rt§hg©onªke©jc«mZªhY¤jkŸq_¡hl³y_ f`˜gj“pgŽkh„m]ƒhfŠds‚gpzdqvceyfb{a^u]Sg]S]PYh\a[]\e^cdml_sXjgbpahhabs\asYXoJXsGXfNVfN`lPZh=U`GTeEZcET\CSh=]g<]X@^\GfYHoM?j[=qW4vD(lB/rI1rP$~Q3sL6L)R6|R=xO1|R.ŠE(C'„N/‹@*’84ˆ=2~C+‚:5Œ:,F1ŒG ƒW#‰L#~U|Y*‚U[+ƒ]0Z#{a/sd-ps9vk5s}3cu5``0nl*ln.pk-`s9]p>er=bd5ba([m.dd,gk+hf:arXrKZiO_oHbnLduDooLmr]ig]xbcnqalhiqnjn]ivdfqcstmnv]nj`hgWjee{q\vuMvRuave[|qgoa}vboiˆik„qhƒqgykjygƒm\’ejˆoY‚mVcMoLkP…}_‚Q‰yPXƒ~Yˆ†^uW†€U„‚GƒBzwAƒˆI‚ƒAuz?yxEr?yqJ‡n:{t+{j(„s#™b2–k;‰f>“w5’zCˆzH‘pI“tH‡jSŠs[ŒyL–qZ~M–uN”zZ“|F¡‹L¤†[ŸŽK™~H›‹Oš’D¢ŒJœ‹T™”J¤˜DžY£V”£^˜šX¥™^™c¤€Ï܀×҂Í×yÓÔyÕÖzÜÕwÖÚtÕÞtÛÕyÑÜtÎЀÍÔ{ÊÓoÈÊo¹Òs´Ìp³Õt½Î|½Òƒ¶É¹Á‹¬±ˆ§«‹®~Ÿ®~—³|Š­‰©~‘ †Œ¤ˆŒŒ‹¡‡†˜~‘œ{™zšˆ“Œƒ•“‡œ›|£‘s¢‰vªŒm¤„m¢€p†w¦‹xª‘y­Šn­t±„i¤b§„eªtp©qp«ijžjr˜roŸoo¦to¦ps˜cjš`m¡be¢^l¥ae›`d¨op¤tf¦k`œcim`‹gbŠb^ˆgl‚hh€kpydf|g`|bbrg[a^X^UZbU\]VdY__Yjgbtd^oifgendim]aobed^YgO`cQUkM[eDUlCRdGS`ET[IQXGWZNQbLJgIT]*‡>&?/‚@,€D.‡N*‹I‹UŽJ…MuL&tS)w`&v_$qi'pf*zj0rj/fk.ku)`s,dm)jr,br#bl1_u1hp3_g5`k1[g,\d1\q$]k-cp/hv<`m=[oGfoFdqLngJtqGioIlhKukX|oSrn^qbg~^ruapv_sv^uzhwvfoubwsb…lXƒtW‚tPvY{i^vdhwgjw`brjewmfŠkqŒqzŽosjdŒuc‡qh“hf‘h]ˆdVŠbV‚bVƒeW„saypexWˆ„a€ZŠve…|^ŠvX†wSƒrG‹sKv@~€Cu~=|z?…~:Œs=ƒo7ˆq0ƒk0m+”n:Žh;Šc=†o=Œo:“pH‹mOrHŒgR‹mV“oLœnR—zOž{Z—x\œ…O¢…Iª{M¢IŸK•ŠPžJ•ŒF K›‡Oœ‹Iœ’T–W›—YŸ•b¡›c¢[ž‰Ð؆âÞ{ÐÙÒÒ}ÏÚzÛàsÍäzÍçvÎä{ÏßyÏÑ~ÒÙzÍÎvÌÅoÄÎxµÖs³ÊxÁÐ~­Â“­¾Š¶´‰¨·€£«…¦­|˜¨„–¯†‰¯|Ÿ…œ}‡©Œ”œ‹™‰š{Šœ‚Ž†sž}ƒ™ƒ}›†œ„Ÿ‘tž”}°’q¦ˆr¨ƒk¥‰oª‹k¬Šu±…i°†o²‚i¤‹c¦ƒjŸqs£rq›oh“og£ja˜kk˜qy¤oc¡hb¡i[£ZhšY^¦cdgnžqgžoo¡uf—lcˆh^„ec~gcŒ^e‰jr‰ik†mkuqjmeelnXod\`NPhUPXRZbYU`lYal^lmbjfbncXbeWn^`jQYgQ\vHKnQQnJPh>Xq?JiSQeO[aCVdHVkHT\GPe>`[CZ`CiX@mb1gY,l[#oV"sV"iHzGqN0vV-qK)uU3uQ6†P*‡P)‰V/K%†Q!‡B!‡=*?/‹I)C&†P+†P"ŽQQ‡R†K'~Y-uW)xa$qa+ej"l_+qm8od)me1ip-_r&_k"cq0[m,]m-Vh2dh>Vl&[]0Rf'Qd&Zl+dv4cp@]jDek:fhGadCfnJjfL\rJsjUll_liYyha{do}mh{e}u`up[xrdn}curczzUlPˆxU…}K{wW†g_€neufspeg~okwok‚ju‰cmskfi€tcƒpbŽpkŒcYŒ`Rb\ˆdOlXƒo_xjUˆpT{V‰†ZŠ|X„xZuM…lL‚}QxxMwsBss?|vC~tE~rEtC„p<v9‡e+€v%ƒj5qB„mJ‘qH‡kL’vH€qC‰sBuQŽyK}Tš~V—r[šp`¡„Mš‡R®W¥vG›ƒI ŠQV‘‰JˆK¢ƒW“ŠWVžŠQ’aŸ–a§‘c£]¡©W”ŠÝé|ÛÛzÛÏyØÍxÖÒ|ÍãyÙêwÕä†ØӇÉцÆ˂ÉÌÏԁÒÏwÆÒw¼Õz½Ïx¸ÉŒºÍ‘ªÀ”§¼…®º‚¥¬«¨‹™£ˆ‘¥†ƒª}ƒ£ˆ‹š„ŠŸ„‡‹“Ž†”‰”–|‡y—€w¤}„¢ˆŠ¤¡z›r¤y§„r£…t§q¤†i ˆn¬ˆl¤Ši©‰f®Šq«~pœvh•il”sm•tinaib™pq¡fcšg`žgc¡\`™UdžXe jpªnn¥mdšei™l`Žldnozmmbt‚iw‡qyzlrtmdrrgkg]l]^nXQiQQ\YXe_[kebea^hldcoXhdScd]fYXpYYpYUrUIvEMpH[qFMrOMtOUdOY]@RdCUfISeH]`:Tg@Z]9Vb6Xb:g^4p`#nU+jT$kS*jMrU$yM'Q2zL-~V&}[+za.\-€\'ŠJ “?(=*ŽD-‹I,„D1N*ŽH#…R'ŒK#†NOP${RuQi\&i]*j_._h/fk(^e'di*ai(Tc/Ra0Pf5Vc4Ql|l?ys>um?~l@}p2xm(ƒt2€sAŽuE…nNŠtH‰zK†|K‰zJ‚B}G›xK˜ƒY•„[–uY›xTž|S©yJ£xLŸ‚L˜‡V˜„NžŽM¤„Q†U›U ‰V¨’b©‘\§–_¬‰S¢–K•£S™€Þá~Öæ{Ðß~ÒÌxÊֆÖ؀ËêxÚê}ÔçÈىÐ̀ÒÎ|ÇLjÆÇzÇÐwÄ؁·Ì‰³Ò‡²Â†¯¾Œ©µ¬ºŒ±­|¦¥©«—›z£x‹–’„†‘„”ŠŒ–‰‹‰”™ˆ˜ˆ…š„„”…š†w Ž„¤‹ƒ˜†u›‚t ƒt x¤ˆy—yn§„x¬ƒu™u–„u¢twž|lžpe–nf›ii”mnbkak™i`ªad¥`d¨`^›Yg§bc¢[k§pv›fo˜er”mn’oh…pi~pxpzvus}kxzu{~qo{bjqfkec\maas]W`aJ[UPa]VidYh`XfaV`^VbY^jV\laTdXPp]LvFFsKF~IRrCYyLUvPUq=^_8TlAS]CN]IWhGM^4_c;Ma0Sb9X`&f[*m^*n\&iS'jLsUoVyQ)vX"X „`{^"zd/z\*ŠSˆG(ˆK#†I+–R#’L(ŽU%ƒZ)‰N(}U'‰R‡P#wTU|ZpW+fZ&`j0]l)X[$U`)Um.ed2_c[i>Uf2Uh/Qd.Yg-`\)h^&bf&Zf*Vh5]c@XfETn;SsARgFUl;bo=hfJhb]_kaXk^b^drWmtasuc€sj|hi~kWtiTrXrSƒwPwwV{z\}{\|s^yjevqf€zg‰rkŒth“ljˆdcƒ^iec‚bh†kl„jaƒeT}fWd[…[Q€_I‚`P…pYwp]yme}s`~lV{qO{|PmuPlwTltOrfNy`YrXYm_NghMri=qb3tc3qg2h7s?‰pJsPŽvKŽtG•oE•tRŠ}QˆzH˜€H˜}N‘„O›L™N ƒQ¤v\£v`©wZzPˆN’E¢‹F«ŒF®…N­ˆU¥ƒP£M£ˆO¡“H¤˜J¡ŸOž˜V§€éÝxàè…Ü×}ÜÞxÙÞ}Öã€Ôà|Ðà{×܃ÑßÞÑ~ÒǁØԈÑÓ}ÓÓ}Ñ́¾Å„¼¿„®È”§À‰¨¹ƒ««x«ž~¤¤}¦¥†ž£|žš‹›ƒ––‡’ƒ•†„„Œ‚“}†Œ†ˆŠ–~™€“{}™ƒ€™€v–|˜‚{ ƒs‘zt™uu¡€w¢€l‘pq”sy•po‘|o vdŸdg˜_i•_ežhs—Zbš_e˜fjšf`¢\h—_e˜Ve£hj dr•Zv™[z˜aq…gs„cqznpxnxrukztx}rhymkmVllVjj[Zh_a`\Xla]g_Rq[VqaRfa_c`[lZ^oNOjPZ`KYaNVsCWrELxNQtNE}@PyEbn:]c|`|gDysIvBjI‹yN‘~Y“yWžwM™‚V€N‰J‡ŽTŒŒ\—~_¡|`¢ƒh¤Šg¢†[¦„]˜|Y˜zS›€[ ‰K¡K°€R­PžU£ŠV¬Œ\¤…S¨‰L¨ŽV›„Þé‡æìƒÚí„Ùâ†Ùè€åââãqÙãvÛӄÑ×uÓӂÚρÐǎÓÍ{ØÌoÈÍwÂÐ}¿¹°¶¯ºŽ³±ŽŸ­y«©³™z«§zŸ¢šœƒ‹™ŒŠšŠ—‹‘’Š“†„Œ…”†‚˜|“‚™|Š|€˜uˆ†‰¥z›}ˆŸ~¡ƒ~Ÿ€‹p…£z|£lv¡rlŽxs’hz¡pl™``žXh¥Xo£bo¡_u˜Uh•dgšYfQm•Rc˜Rf§Pg˜Rm¡Ji•TyavS€€Vkvct|auyjtpjjp\u~Vkrbjlgke`mk]paer[ZbcVhhOZeNczVapZWlN\wKgkRYpCcgJVpLZj?]q=OzAWnGL}CUg@W_8bg;Sf@\]CXX?He=Qe;Kh3Vl1Z[+aU&eV&_d_X\_cWbYqSzOW^yS}P‡SuX-z\…K%zO…C"ƒR&|Z yN~W'oT&uRfY"fglcx]iSlZhehgWc+Jg)Oe9`Y1eb2Zd?a`=jjC_s7amFZh8cm;^m3k|3Yv4]|0Xn7VrIYmLcfB\pDad:TlM_^CZhG]cS_dYgfPgf^]kmalrhxzuwo{xvxttqm}pf„xc„wfxvV|x\xyaƒpgŠwdˆyd‚€W‰k“ljˆci’kg‹eo€btin\jh_–db“cQˆdDˆbP‹fH|eR†gKzmS~p]ŒxcŠg`ˆkXr[Œt[€sX†mR~mWzncthYud_waRvkGrgA~nJxm=†m;ˆm7‚mCˆtC„gO‡mIoPŽtV›sL’€Wœ{K“‡]š‚XŽ‚S‡Š[„[˜†`¥…^©‰a«Z©z^¢‰`™„T ƒT WªF­ŒR¢€P¤‹V¯‰X±‰ZŸŠZŠZŸY–ŽëìŽâî–êäççŠëކåۂÜÚxÝÝtàÚ|×ÍzÓӄÙNjÓЁÐʆÚÇyÒΆÇÁ†È…ÇŌ¸¿ƒ¸Á‰©±…ª§z©¤ƒ ¯ƒ’­‰‰§Œ¢Š–ª“”¢–Šš‡ˆŽ†ŠŒ‘€’x… }{¢{‚œ|‡¤ˆ£}¬~ƒª{¢Ž£{†ªnˆ­p{«w~£vƒ˜f|˜fs—_lŸdk£`c [k™cf [l˜OpŸSt™NmŠSu“Ln”Mp˜Lg¡P^˜Cf›GvRxŠS|†W|„Svt\uobnsawpckqcfvUilSombti]uidokes`_he_ihMllKdsSfq^]sYh|NdsM`hM_f?baAbeJcuKZwD\nBRrBRp:Wa>Ue;V]9IY=MV:HSBN_>VYdcD]e=Z`AYkLagGmtJoqQkpgksmluoi|wftutuurtzqvƒvm„xg|c|c}sg‰qc„{j‹ye…{k‰|a{`‹mg•bc“akŠdg’iknq•al“fa“a^š_\‘kNbS†hN†tM‡rS†wZx[‹|_•pg‘nm‡ya~_uT‚tZunbwxf‚q^€lR|iU~qK‚lR{qJxuH~v8€k9‰r>iJŒrP†jQŒpLˆvQ’{V{S˜…TŸ}\™xd„Z’z_~g”vj¡}ežƒa›‚a¥|bª…\Œ\«…OªŒM£‹Qª…Qª~Vª…T±„_§Œc¥…[Ÿˆ[¥†QŸêóêî…çàŠÜâˆåçŠå݋çå{âقÔÛzÒψÎʈÔƉÓÓ}ÐÐtÙÏzÑÀwÇÆyË΁»ÇˆµµŒ­¶‰µ®‚«°r«®ƒ¦°•¤‚›£}‡Š¥Œ˜›Ž“›ƒ“ŽŒ“‘œ‡˜†Š¤Ž–…Ž¤y„¤‚Š¤„Š¥€€£x…¨qŒž|¨p€ž~z™zu¢ws–pr—qx—b¢ei—hr XlRt¤ThžR{¤W{œQpNfNlšGb—Vm¡MfŸLcŒPb“Si…KkxJt{RnsUiuYtwMhz]tnZby\tzWjwYvgXq_eze_tmWzhOftGivMk~WXnU[{K`kSWpC]q9__?__I[dCWpMYm9Sr;Qo?[a@Q\:Pc@TV8O]6YN1H[8Ld:S]1Sc.OX(P[*SU%fZfZnbrTsNnYzRZy] sSZuMxQ~Y*qO)K!VOvO|Sl]sVcVnYeQ"jV)hd*YVdU+dX*gc%Rb'[`.\b2]a2Xb7cj7]l5Zw=_gEfhHeo@lmI`m9bs9c€BVI^z9Uv<]aGe`Nc`A\bFbeJY]JbhHcgRaaSmeTuoXpspo|pn|fn|itwppuxpntrw‚h„wmt|cv|[…pf‡nd‚tb{yqpsŠ~m‰vfŽgdimŒmq“bl™ir“Ynœ[]Ž_[ j[yTrLgQƒj]mSŽp_w[”mb”tiu_ŽxU…zQzwW{sS€je€h\ˆmaƒgV}hJxcMxoR{pR†tEiK{vElH€tO‚pKmW‡tQ–nO“yV”}asXŸYŸ…O›{Oœ…axk“{dŸ‹]œ}i „i›}m¤„eŸf¢[­^žˆT©€`¡ƒ^žU«‰S¢{\¨‚S¥‚\¢ƒR˜Ýñ~ãí{äìƒáڎß߉ë݅ßۄ×áÜӂØσÕȂÔ҉Ï̄ÌτÖÆtÕÃÇÃyÂÈ~ÈÀ„½³|±±|²¸v²·{¨±„›®€›¥ˆ’«~Œ£‡š|Œ•…•‘ƒ‘Ž–’œ’ˆ ’†ŸŒ† œ{Œ›v£yœwŠ¥p‡Ÿnƒ”z‡š~| }Ÿvy˜ry›wvškƒŸa„”cƒž]r¢^kžYq¨Sw WxLp”Tt’OfˆFbNj‘Um”UlŠOhŽQeƒPcReqEvtEvpAmnJdsKisIgzZo{Zqt[poSxadw_cxc_wvTz{SrqEp}J`xQ[vTZzGSuGReFWj9Te4Qh?UgIchG`k?\oGWp=X`6U^3Vd4J[3OV7SP0OW2MY5RX(Ph#J]-Ma%]W!fWob k[lRqUlY -paxfv\{Q -pQqV!xW |J(sN'xQ&V rNlJnIpUm[hYc[dQ!\N#Q\"]\)]Q'`Z&Z\-P\.Rb3Xd/Ob+Qb6Th9Tm=[q:co5ag>mfKglGgt9Zs:bxG]{Cb{IZt>\o9_eEUe@YlGgiNciLdfJedPn]Sid`piiutdsomlvfxpbrsgyoisqlyfkey„nvzirx^€s\‚s`xi{uj‡usŒzgxiŒkt˜`n’\q“hr“`j^jš^kžmZ”oN‘vJ…p[‡w[†s[uT“vRŽnYŒudˆx]‘vR…T‚|M†Sxayn]l]ˆuY‰gL}cNxkJkPƒqT…mP„iFxoI}pG„rV‡kUŠf[‹qS”qQ‘q^šs]’}TzQ€K•€O„\žy^˜ƒ^¡ˆf ‰f~k•{t™{k¢h ‚_¡€X_Ÿ–\œ‹]¡‚Z§€X yY§{W¨‹IJ¢’å߇èé‚èäîã‡íۀàßÚÒ~ÙÒäՂØ΁âՀÙ΅ÙʅÒÐvØÃsÑÍÇÃ~É…¾À{º¹z¸Á~µ¿¶°~Ÿ·{ž®„—ª‡—Ÿ„§x•¤‰•–|‰…‰“‘Š–†š†•’•“‡œ—‡˜§w¥sªl‡žx„š|€œs„—o„œu…—z}—xˆ–j{l‹Ÿcœ^†œZ{¡bz©cu Z| Tv—LoU|šXlŒMl‡Sl’Kj‘Rjˆ[`ˆTixW`pMgnBlvIuy?sqDszL|nBztT|vZwxWolStmZva]ziLtiTpxIlwJe{QdyIe~NVs?_mEWlCPp>Ik7MeELkDWl9ao9``6O^Tqan6gl=dnDhg=fsEWy@Y?f…IiKbwI]jLatL\nA`fLakGZdP[]Hd`Njd\gdeoebsj[pgelqkiwiordnulvilljux_qqdx{hmlesvhv~kvslqin|{l…yi‰gu‹al™anhg–hl™Yi¡l_iY‰iS•vU‡rS‡waŽqb‹}[•~Z’w^oW”rc~]”zRŽ}Zˆ~M‰|SxvR{nVymV†mV}kKƒbSaKŒmK_W…rV‚oK}jP€v[f_m_‰uV‡vI‘oY”p[o\™~W”}V¢†X–{a•ygœj‘aŒk“yr yc£„n§†oœƒh§hš`¢‰_Ÿi—…f˜ˆZšvVžrQ©„PžIœ”âܓäޏå؅ïà‰ìå†á؇æۈäԇãÈxçÊtÙÆvÙÉwÎÈxÑÐ}ÙÃ}ÒÅqÔ¾uÒ¼€Ï€ȼ~»Æ†µ¾‚¨µƒ§¶†ž±‹˜®Š’ ’œœ†™—‰‘’ŽŽ‡Œ”ŠŒ‘”‹†–šˆ‘œˆš—ƒ “¢w‰¦r¤p€žr‚šr†›jŽœnˆœxˆ¡xœsŠ–gƒœe‰ža^†£_xšVxXySv‘]wŒ_xOqHs„Ld‹Se‡Y[ƒT\†V`{HcqHfxGgsBjoHotArvG}zBsuFxnPwlGxiHllFqhRssNplHsmVjyRj~RbwCUs=XzE\@YzJQlIKk=I^CN_7Wh3Uf@[^[o@WlCYl;^vo€M{mLynUqoEpnDpcI|nKucMirKk|Cc€MlxEeyDRpDSw=SnHUl=TqHMg5Vi>Ii9Yl?UfEPo9F_7Hi+Dh0Kd3Bh*Ng5F]2GU0DP*QTBbUY -PP\RYO ]JbSiIgQ cK_FbX -uYdMlL#gGrR$kLjL!`N%gJ%^O^N&fCRD WN!]I+VQ(PI#TP!SB/GH7QL-[D/MA/OS&OP#SU&\b6bV5\a.[l;`i3f`BaiBYn=Zm>QsCXpBil:esIjgBcl>kgB_r;ggC`l?\iHSeTVh\WbXY\Zgfnol[ykexpjxue}sqrqovmbqodenft[ml^xdbzw^xt_‰op~}hwvw†tr…orzehhv‡hm—ad m^’l]ž_^—e^‹nhl[•ja‹mV}V‘qWœc’sežv\‘vf—uc‰~Z‰uZŽ~R†yPzRƒvOypR†xVƒyS€jF‚iT‚[E{gO‹mP€nXŒq[’jT€eT‰hctWˆr^—z[’}PzQ’wSyV•w^Ž|W˜‡Y›b™…l•i™†r–}u–€u–„u™ˆe¡‰h˜c›ŠTd‘†Tž|ašxU“{S—~S˜R£‡R§Šóðˆõëƒý߉öãŽð؋ôلëàƒè܃åã‚ð؅è͂쿂äʼnâІßˎϿ‡Ì¼~ÃÄ|ʾ}Æ´uǽz¾Âˆ¸¼„«³ƒ©­‚ž±‚¢§~ž¥}—œ‡— ›•ˆ™„™Œ†¢–¥Š˜™~•—‚Ž y¤u‡¦{Žªx¤s‡s„–o|œf„”h†‘m“™u˜r“‘c”j•™aˆc|œat—Wz[p›WrHwšKmSt”Rs‰NoƒTb‹bkŒcl}UpzKe€QlXguQvzCsv>j{Lg{Mt|HqqKgp?ej>uc8{f;rsHiqNbwHlzBh}AbwEPq?Kz3Mz>Oj=Rp9\h:On@Nh9Om6Vo8Jk;Cm3Mc#J_"TX,Na(Mc7Kc9NU)QV)PS%DWITPMNVZMUW `RcIgL^FZE_NnWoL_M#nTkW$k]#cS gJ dP ^P#`>%`B(YG^IRS%TI1NE+SE(GS)SN+WJ6]B2QJ,WS%T\+bb4`Y4QT-SW+[c4Wn4`m6_j>[sDVsAPpbd;fb@f`DbiC\`TTgSWlQUh_Qmb]jfac[ui^trctneuqcukxmfjffe\rqamlh|jk{jg€n\oaxp†wu€x}€gz|`iƒef•djša_œmcšm_Ÿda–daŒqbo]–h]’a^j^˜oZšxa™t[“oaxb‰vZq`—sUŽu_‡|Z€sV|iL€uY‚vW‡uQytMyfKbHƒeM‰nQ…{SŒvW’sV“j\‰ob†t]ŠwT“pV’tO‚X‰ŠSUŒ€][˜e™ˆg‘”e”qŠnŽ~o˜xk—~s’ƒq›Šh—†g™‘XœL›~Q›€U‘€PŒƒ\~Yž…Z¬Œ[¨‹õð€ðíõè‹óæ‰òå‘ôâ…úٍíæ‰îá…ì҅çāðŋßÁ~ÚʋÚÖÑȃž~¾Ç½Ä|ɺ{¿µ~ƽ€´ÄŒ°¿¦²…ª®«©Žœ£ƒ˜œ‹”’‡””œ †ž›{¨Ž§}›~‘œp†¡tŠšv†œ}‚Ÿv’ªo“¤tŽ™fˆ™p‹ŸhŒ”v“”q˜q•f™c“ži•U€‘T‹‰X‰L„•Tv•TzšIu“Uf‰Lu…Ze‡[g’]kŒ_i{Zly[mxPbwUjQw~LxuIlrJf~@pnEliDnv8noFyp7vl8np=elFoj:l{3as:fz=Yo/Pn7Nn6Xg0Ug>^h3No1NfAJn.Hk,Gh/Ri7Pb/SZ%T^([d$UZ-O[4Pf4R[$W_$IXIMLZ VJNMXUVKgQdR`N]M gW -mYfQbG$`R"eW#dQZ\&^R(_Dg@#b>,\;[;YD&TL&]QGR,KT"HR4HV8]L9SN+^W`]:iaHUeM`n\SjV_ifced_pb]pkmolseXxr`{gk€f_~ljto`gijghpa`liiymg„hctb‘ogŒsoŽkzŒtuz`z`oˆfl˜gnŽmeždežhY”i[–h[m`‰qb‹ef˜h_‹mT‘r\‹tZˆmW”qX…rQ‘}W–kX˜kZ—tex^„n\ˆhGƒiJ‚h[‡qO|fD‚iE{hP€nKrL‹w]–ySŽq`hg‹ob•}g†yZ‰„a†[‡x`‚†_‡`•~YŒ‡_šŒc}c‘Žg““i„zŠs‘k”ƒw—zj—…\—U“ŒU–†Y ‡MGŽ‡N™ƒWž‹Vš†Jª‘W©îæ‰ïæ€öí…ðå†ñè‡ûރ÷â…÷â€üà€ðׁ÷χíÄßÉȬÏӌÐ΍Ềľ…õÁ¼}¿¸{ÀÂ~¼Àƒº½‡Á·Š¸¹‰©©¨¤“«“–¢“Š ‰¤•~¥Œ}«Ž‚§†«zŒ›|—q‹žmƒ˜p„œgƒ¢c†žd—Ÿh’œe˜šk’Œk‹ŽmŠ…t—‡r›‡m‘cšˆV”‹MŒ„NŒ‹K„’S}šVršMq–Qk›^fŽ]cŒRe‡XbˆQ_‚Vc‡Pg|Tn}Oq{Gz}KuuMmzAmrBon7co:frDpk%aDg>#hBaQ^YPT#SP3QR1WS/QF0YP8\]:Tg5V`6^T2bS1eN.]Z,a_3]f.fi9`f=VmF[gEYgKQlD]h8_b:^h@]h;gc;ah>YjGXfVWea`ea_jbgfb`iajtjqpeno^skYyf_pk^xj_tqnkik_ajafm\kral…lh‚v`km—hq‘^r…dv…\y‡_l[m•al‘c]žl\œuZ›m`“f]’fT’rR›l]’fU…qS‚yR‚t[†pUˆuS‹{Y–tZŸkY¢pb™th‰sbxZŒvO‡kGkO†gS‹fL‡oQ}tJ‚xJƒzTŽuS‰l[’sjmgta˜`„_š‡^–…iš}bŒ‡_…Z”W—…U•†_œkœ‹e•‘p•–r‹v‰†q”‚l‘ˆi™~[š~TœŠ\O•”N”’M”ŒL•M•‰F£ŽFŸ…R xùãˆêã†çۀèæ}úÝóØ{úàƒôԊóã…ðۄñʓå͏á͍àƂÑǕØٍÕÀ‹Ì½ŠÁµ‹Å¼…ľ†¼´ƒ´¸|°»Œ²·‰µª¼§Ž©˜‰ªš¯•Ž¨‘”«˜†°ˆ§Š¬|ˆ§y‡¨ƒŒžsŒ˜oŽžp¥qŒ¦oŽ h”™b‘¢m— g™h‰“h•‡a‹“e’–m“[Š•S›…P–ˆS‘J‹‡[‹NQqœXdMdƒNcŒRk…Lf†Wa…[m~JtyVpzPguItpIyvMszCim8rwEck6ie6jh@dp=lh0so4sh;mm7bk6fq-Wp!Rq&LkVe)Zi \y-X‚9Ro.Ok,Ic,Hq(Wd'PZ-R^*J_NiY_,WkgkZjOc#Q\N^ XV -_XORRMUUOO -_JaT[UhZ _N_FeOVXUU"]SUKcL+bG&g@`@e5%^9&h>!fIbEQWF[OO#HL%TJ2M>-ZQ)\Z*d^,Yf;dY4dP5XU9Ma8V_ZsLNn>Si8Yb9dj9dd;[_G`lNa_N`qW\aYap_\fbXnb_j]kzgcvhoz\rnkuwbofmtkgpbpmog`jl[iebjqfg€oowa˜gb‘dvŽ_t‡ov†jnˆ\w‡cl‹[e_dšqc—uh mk¡tb›gf“m\Žuhn`…d\†d`Žic‹md‰w]‘pQ”lWžxU—sY tg’|nŒmYŒoX‡kNgN†hK‹sPŒoFˆxP‡yQ€zLŠxN’yd‡uXvfŽ€UŠ}Y†‰\‰b†…iŠ†^†ƒi…vWƒU“ŠX“Šd‘\ž‰p‘r—ŽeŠ—f‰q†…f‘|c‘uk¢‰_˜‘ažˆU›‹P¥”Y‘V‰G™•Tœ„R ^©sóävìã~éåîßxíÖvíÜzðҁúֈñáŒíەæՓäјîĒçĈàȌØԆÙɌÎÅȺŒ¿ºƒÆ½ƒ¾¶²¶‚´°Œ°¨ˆ½¨†Â¦†·—Š¸‘–²•©Š¯Ž“¨Š‹¥„‡¦Šƒ¤ˆ~Š§ˆ¢xŒ—t„£iƒ¥n‹žc˜hžd™ži•g“‹a•‰\Œ“hŽ“iŠ[—Š[–]Žc‘ŒXŠWŒP}To”\h–Yn†Gb…Nf…LcyXm}Up}LwxKjvRlkLuoGzqNrs>jv9ug;nd?ot5ar9av2co2pu3qq6ev5iu.Zu(Vp#SvWjcs_t&]|-S{&Ju$Jg+Qs1Sp-Pf$[h'QcOhKjWjcpcf!Wf$McKfP] -YZXGYE]OYJ\O`J^U ZTePjQbHZR$a[]P#[V[P$_N ]E]9\Ad9b6Y="YK"[JJLGQOFKH'GB!NETP_L'ZY0\a2Xb.[\2Yg8Nc=JaANc?Z[7W]9akHamFVrGYqGXmI^a;_]Aih;]`CVfOXnN]jW]fLcoMfiaZse`k^endol\nvcwv`qvmuvhkkknktnfmrldedhemmplzmn‹ja‘blˆfp†mk’moŽdi”bret‘_ngr‡msŽrv’tr op¢hj’jstoŠf`ƒf`‹keŠddˆsX”p]”rb’rX•nX–qYye—viŽqb†v_fX“eO†sSpL†rJuK‰lOŠpJmQŠt[‰uYxX“€X…T‹ƒV’‚g‡‹o‡†iƒ‚]ˆxa†y[†YY‰ŒY“‡_”Žp’c“a“‚^d|_‘|i¢„`©‰[§ŒSŸT¥‘S¡“V–›Y—’R›•`ª^©uöõ~ïã÷äîãrîéwõå{ù؄òօëӌîԘíՏãϒçԘä̊ÙÁ“×ːÖ̏Ë‹ÈǔøÂ°·½}²°…¸¬~²¨…Á¦‹´ªƒ¼”Ž®’—¶‰Œ°‰¦‡’§…Žž„€Ÿ„ˆ¯‹‹ª…‹¤w¥rŒ–u‘¢{‡›tŽšvš‘n”“n›”qœ—]•ŠZ™“[—•]•aŽ—_‡„bš“_—‹T–ŒQ’‹QŽyZy‡RtŒSw„PwwI|yGl‚Bl‰HuuMr€GpoNpsPjmIvsQvgDwn=jo1et?gm5ao/dc4cc,Zh%ds*ko"kg&eg#jh+`d"cpYlXs\i$`h*Rn$XgYi!Yp*KoMt!TjRk[m```hXleaYa^ZSV UWYP XG_DYM -XMVVVS[R^T -f`YPfN\JZUZSRM`TTNUDW7W9]B a@_8XKYHJRNQEGKG$OG#^K]F^R2]T%_^6_`:be3Lc5O[>Rk@Um8Uk8ObEShgf9a^6e`(bl$_o%_q'knbq$df!`ddbig^f_c`h$YoVl]f\i]k OlHgKjRfYqUo`_Vh[b -```W^PUNTQSI -QK -`QX[T^U\ [W aXW_P^ZXVR^N UU -XL[MSM _B]AV= -XG -XN -^C]=TBSNQITLQOWJ\G[D)`N0aP2Z^.^b,W^:V_?Qa - let name = sel#get_filename in - sel#destroy (); - callback name - end; - sel#show () - -let w = GWindow.window ~title:"Okaimono" () -let vb = GPack.vbox ~packing:w#add () - -let menubar = GMenu.menu_bar ~packing:vb#pack () -let factory = new GMenu.factory menubar -let file_menu = factory#add_submenu "File" -let edit_menu = factory#add_submenu "Edit" - -let sw = GBin.scrolled_window ~height:200 ~packing:vb#add - ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC () -let vp = GBin.viewport ~width:340 ~shadow_type:`NONE ~packing:sw#add () -let table = GPack.table ~columns:4 ~rows:256 ~packing:vp#add () -let _ = - table#focus#set_vadjustment (Some vp#vadjustment) - -let top = ref 0 -and left = ref 0 -let add_to_table w = - table#attach ~left:!left ~top:!top ~expand:`X w; - incr left; - if !left >= 4 then (incr top; left := 0) - -let entry_list = ref [] - -let add_entry () = - let entry = - List.map [40;200;40;60] - ~f:(fun width -> GEdit.entry ~packing:add_to_table ~width ()) - in entry_list := entry :: !entry_list - -let _ = - List.iter2 ["Number";"Name";"Count";"Price"] [40;200;40;60] ~f: - begin fun text width -> - ignore (GButton.button ~label:text ~width ~packing:add_to_table ()) - end; - for i = 1 to 9 do add_entry () done - -let split ~sep s = - let len = String.length s in - let rec loop pos = - let next = - try String.index_from s pos sep with Not_found -> len - in - let sub = String.sub s ~pos ~len:(next-pos) in - if next = len then [sub] else sub::loop (next+1) - in loop 0 - -let load name = - try - let ic = open_in name in - List.iter !entry_list - ~f:(fun l -> List.iter l ~f:(fun e -> e#set_text "")); - let entries = Stack.create () in - List.iter !entry_list ~f:(fun x -> Stack.push x entries); - try while true do - let line = input_line ic in - let fields = split ~sep:'\t' line in - let entry = - try Stack.pop entries - with Stack.Empty -> - add_entry (); List.hd !entry_list - in - List.fold_left fields ~init:entry ~f: - begin fun acc field -> - (List.hd acc)#set_text field; - List.tl acc - end - done - with End_of_file -> close_in ic - with Sys_error _ -> () - - -let save name = - try - let oc = open_out name in - List.iter (List.rev !entry_list) ~f: - begin fun entry -> - let l = List.map entry ~f:(fun e -> e#text) in - if List.exists l ~f:((<>) "") then - let rec loop = function - [] -> () - | [x] -> fprintf oc "%s\n" x - | x::l -> fprintf oc "%s\t" x; loop l - in loop l - end; - close_out oc - with Sys_error _ -> () - -open GdkKeysyms - -let _ = - w#connect#destroy ~callback:Main.quit; - w#event#connect#key_press ~callback: - begin fun ev -> - let key = GdkEvent.Key.keyval ev and adj = vp#vadjustment in - if key = _Page_Up then - adj#set_value (adj#value -. adj#page_increment) - else if key = _Page_Down then - adj#set_value (min (adj#value +. adj#page_increment) - (adj#upper -. adj#page_size)); - false - end; - w#add_accel_group factory#accel_group; - let ff = new GMenu.factory file_menu ~accel_group:factory#accel_group in - ff#add_item ~key:_O "Open..." - ~callback:(file_dialog ~title:"Open data file" ~callback:load); - ff#add_item ~key:_S "Save..." - ~callback:(file_dialog ~title:"Save data" ~callback:save); - ff#add_separator (); - ff#add_item ~key:_Q "Quit" ~callback:w#destroy; - let ef = new GMenu.factory edit_menu ~accel_group:factory#accel_group in - ef#add_item ~key:_A "Add line" ~callback:add_entry; - w#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/label.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/label.ml deleted file mode 100644 index b9829fb77..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/label.ml +++ /dev/null @@ -1,48 +0,0 @@ -(* $Id$ *) - -(* Embedding xpm data into an ML file *) - -let openfile = [| -(* width height num_colors chars_per_pixel *) -" 20 19 5 1"; -(* colors *) -". c None"; -"# c #000000"; -"i c #ffffff"; -"s c #7f7f00"; -"y c #ffff00"; -(* pixels *) -"...................."; -"...................."; -"...................."; -"...........###......"; -"..........#...#.#..."; -"...............##..."; -"...###........###..."; -"..#yiy#######......."; -"..#iyiyiyiyi#......."; -"..#yiyiyiyiy#......."; -"..#iyiy###########.."; -"..#yiy#sssssssss#..."; -"..#iy#sssssssss#...."; -"..#y#sssssssss#....."; -"..##sssssssss#......"; -"..###########......."; -"...................."; -"...................."; -"...................." |] - -open GMain - -let main () = - let w = GWindow.window ~border_width:2 () in - w#misc#realize (); - let hbox = GPack.hbox ~spacing:10 ~packing:w#add () in - let pm = GDraw.pixmap_from_xpm_d ~data:openfile ~window:w () in - GMisc.pixmap pm ~packing:hbox#add (); - GMisc.label ~text:"Embedded xpm" ~packing:hbox#add (); - w#show (); - w#connect#destroy ~callback:Main.quit; - Main.main () - -let () = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/lissajous.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/lissajous.ml deleted file mode 100644 index 9d6cf3b1b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/lissajous.ml +++ /dev/null @@ -1,48 +0,0 @@ -(* $Id$ *) -(* Lissajous $B?^7A(B *) - -open GMain - - -let main () = - let window = GWindow.window ~border_width: 10 () in - window#event#connect#delete - ~callback:(fun _ -> prerr_endline "Delete event occured"; true); - window#connect#destroy ~callback:Main.quit; - let vbx = GPack.vbox ~packing:window#add () in - let quit = GButton.button ~label:"Quit" ~packing:vbx#add () in - quit#connect#clicked ~callback:window#destroy; - let area = GMisc.drawing_area ~width:200 ~height:200 ~packing:vbx#add () in - let drawing = area#misc#realize (); new GDraw.drawable (area#misc#window) in - let m_pi = acos (-1.) in - let c = ref 0. in - let expose_event _ = - drawing#set_foreground `WHITE; - drawing#rectangle ~filled:true ~x:0 ~y:0 ~width:200 ~height:200 (); - drawing#set_foreground `BLACK; -(* drawing#line x:0 y:0 x:150 y:150; - drawing#polygon filled:true [10,100; 35,35; 100,10; 10, 100]; -*) - let n = 200 in - let r = 100. in - let a = 3 in let b = 5 in - for i=0 to n do - let theta0 = 2.*.m_pi*.(float (i-1))/. (float n) in - let x0 = 100 + (truncate (r*.sin ((float a)*.theta0))) in - let y0 = 100 - (truncate (r*.cos ((float b)*.(theta0+. !c)))) in - let theta1 = 2.*.m_pi*.(float i)/.(float n) in - let x1 = 100 + (truncate (r*.sin((float a)*.theta1))) in - let y1 = 100 - (truncate (r*.cos((float b)*.(theta1+. !c)))) in - drawing#line ~x:x0 ~y:y0 ~x:x1 ~y:y1 - done; - false - in - area#event#connect#expose ~callback:expose_event; - let timeout _ = c := !c +. 0.01*.m_pi; - expose_event (); - true in - Timeout.add ~ms:500 ~callback:timeout; - window#show (); - Main.main () - -let _ = Printexc.print main() diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/nihongo.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/nihongo.ml deleted file mode 100644 index 48f7d8c22..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/nihongo.ml +++ /dev/null @@ -1,31 +0,0 @@ -(* $Id$ *) - -(* ¤³¤ì¤ò¼Â¹Ô¤¹¤ëÁ°¤ËLC_CTYPE=ja_JP.EUC¤Ê¤É¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ *) - -(* cut-and-paste ¤âÂбþ¤·¤Æ¤¤¤Þ¤¹¤¬¡¢edit¤Ï¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó *) - -open GMain - -let window = GWindow.window () -let box = GPack.vbox ~packing: window#add () -let text = GEdit.text ~editable: true ~packing: box#add () -let font = Gdk.Font.load_fontset - "-*-fixed-medium-r-normal--24-*-c-120-iso8859-1, \ - -*-fixed-medium-r-normal--24-*-jisx0208.1983-0, \ - -*-fixed-medium-r-normal--24-*-jisx0201.1976-0" -let button = GButton.button ~label: "½ªÎ»" ~packing: box#add () -let label = GMisc.label ~text:"¤³¤ì¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤" ~packing: box#add () - -let _ = - window#connect#destroy ~callback:Main.quit; - text#misc#realize (); - text#insert "¤³¤ó¤Ë¤Á¤Ï" ~font; - let style = button#misc#style#copy in - button#misc#set_style style; - style#set_font font; - style#set_bg [`NORMAL,`NAME "green"; `PRELIGHT,`NAME "red"]; - button#connect#clicked ~callback:Main.quit - -let _ = - window#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/pousse.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/pousse.ml deleted file mode 100644 index ecf0dff3a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/pousse.ml +++ /dev/null @@ -1,199 +0,0 @@ -(* $Id$ *) - -(* The game logic *) - -type color = [`none|`white|`black] - -module type BoardSpec = sig - type t - val size : int - val get : t -> x:int -> y:int -> color - val set : t -> x:int -> y:int -> color:color -> unit -end - -module Board (Spec : BoardSpec) = struct - open Spec - let size = size - - let on_board x y = - x >= 0 && x < size && y >= 0 && y < size - - let rec string board ~x ~y ~dx ~dy ~color l = - let x = x+dx and y = y+dy in - if on_board x y then - let col = get board ~x ~y in - if col = (color : [`white|`black] :> color) then l else - if col = `none then [] else - string board ~x ~y ~dx ~dy ~color ((x,y)::l) - else [] - - let find_swaps board ~x ~y ~color = - if get board ~x ~y <> `none then [] else - List.fold_left [-1,-1; -1,0; -1,1; 0,-1; 0,1; 1,-1; 1,0; 1,1] - ~init:[] - ~f:(fun acc (dx,dy) -> string board ~x ~y ~dx ~dy ~color [] @ acc) - - let action board ~x ~y ~color = - let swaps = find_swaps board ~x ~y ~color in - if swaps = [] then false else begin - List.iter ((x,y)::swaps) - ~f:(fun (x,y) -> set board ~x ~y ~color:(color :> color)); - true - end - - let check_impossible board ~color = - try - for x = 0 to size - 1 do for y = 0 to size - 1 do - if find_swaps board ~x ~y ~color <> [] then raise Exit - done done; - true - with Exit -> false - - let count_cells board = - let w = ref 0 and b = ref 0 in - for x = 0 to size - 1 do for y = 0 to size - 1 do - match get board ~x ~y with - `white -> incr w - | `black -> incr b - | `none -> () - done done; - (!w,!b) -end - -(* GUI *) - -open GMain - -(* Toplevel window *) - -let window = GWindow.window ~title:"pousse" () - -(* Create pixmaps *) - -let pixdraw = - GDraw.pixmap ~window ~width:40 ~height:40 ~mask:true () -let pixdraw1 = - GDraw.pixmap ~window ~width:40 ~height:40 ~mask:true () -let pixdraw2 = - GDraw.pixmap ~window ~width:40 ~height:40 ~mask:true () - -let _ = - pixdraw1#set_foreground `BLACK; - pixdraw1#arc ~x:3 ~y:3 ~width:34 ~height:34 ~filled:true (); - pixdraw2#set_foreground `WHITE; - pixdraw2#arc ~x:3 ~y:3 ~width:34 ~height:34 ~filled:true (); - pixdraw2#set_foreground `BLACK; - pixdraw2#arc ~x:3 ~y:3 ~width:34 ~height:34 () - -(* The cell class: a button with a pixmap on it *) - -class cell ?packing ?show () = - let button = GButton.button ?packing ?show () in -object (self) - inherit GObj.widget button#as_widget - method connect = button#connect - val mutable color : color = `none - val pm = GMisc.pixmap pixdraw ~packing:button#add () - method color = color - method set_color col = - if col <> color then begin - color <- col; - pm#set_pixmap - (match col with `none -> pixdraw - | `black -> pixdraw1 - | `white -> pixdraw2) - end -end - -module RealBoard = Board ( - struct - type t = cell array array - let size = 8 - let get (board : t) ~x ~y = board.(x).(y)#color - let set (board : t) ~x ~y ~color = board.(x).(y)#set_color color - end -) - -(* Conducting a game *) - -open RealBoard - -class game ~(frame : #GContainer.container) ~(label : #GMisc.label) - ~(statusbar : #GMisc.statusbar) = - let table = GPack.table ~columns:size ~rows:size ~packing:frame#add () in -object (self) - val cells = - Array.init size - ~f:(fun i -> Array.init size - ~f:(fun j -> new cell ~packing:(table#attach ~top:i ~left:j) ())) - val label = label - val turn = statusbar#new_context ~name:"turn" - val messages = statusbar#new_context ~name:"messages" - val mutable current_color = `black - method board = cells - method table = table - method player = current_color - - method swap_players () = - current_color <- - match current_color with - `white -> turn#pop (); turn#push "Player is black"; `black - | `black -> turn#pop (); turn#push "Player is white"; `white - - method finish () = - turn#pop (); - let w, b = count_cells cells in - turn#push - (if w > b then "White wins" else - if w < b then "Black wins" else - "Game is a draw"); - () - - method update_label () = - let w, b = count_cells cells in - label#set_text (Printf.sprintf "White: %d Black: %d " w b) - - method play x y = - if action cells ~x ~y ~color:current_color then begin - self#update_label (); - self#swap_players (); - if check_impossible cells ~color:current_color then begin - self#swap_players (); - if check_impossible cells ~color:current_color then self#finish () - end - end else - messages#flash "You cannot play there" - - initializer - for i = 0 to size-1 do for j = 0 to size-1 do - let cell = cells.(i).(j) in - cell#connect#enter ~callback:cell#misc#grab_focus; - cell#connect#clicked ~callback:(fun () -> self#play i j) - done done; - List.iter ~f:(fun (x,y,col) -> cells.(x).(y)#set_color col) - [ 3,3,`black; 4,4,`black; 3,4,`white; 4,3,`white ]; - self#update_label (); - turn#push "Player is black"; - () -end - -(* Graphical elements *) - -let vbox = GPack.vbox ~packing:window#add () -let frame = GBin.frame ~shadow_type:`IN ~packing:vbox#add () -let hbox = GPack.hbox ~packing:vbox#pack () - -let bar = GMisc.statusbar ~packing:hbox#add () - -let frame2 = GBin.frame ~shadow_type:`IN ~packing:hbox#pack () -let label = - GMisc.label ~justify:`LEFT ~xpad:5 ~xalign:0.0 ~packing:frame2#add () - -let game = new game ~frame ~label ~statusbar:bar - -(* Start *) - -let _ = - window#connect#destroy ~callback:Main.quit; - window#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/progressbar.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/progressbar.ml deleted file mode 100644 index b614f08f8..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/progressbar.ml +++ /dev/null @@ -1,51 +0,0 @@ -(* $Id$ *) - -open GMain - -class bar bar = object - val bar : #GRange.progress = bar - val mutable pstat = true - method progress () = - let pvalue = bar#percentage in - let pvalue = - if pvalue > 0.99 || not pstat then (pstat <- true; 0.0) - else pvalue +. 0.01 - in - bar#set_percentage pvalue; - true - method reset () = - pstat <- false -end - -let main () = - - let window = GWindow.window ~border_width: 10 () in - window#connect#destroy ~callback:Main.quit; - - let table = GPack.table ~rows:3 ~columns:2 ~packing: window#add () in - - GMisc.label ~text:"Progress Bar Example" () - ~packing:(table#attach ~left:0 ~right:2 ~top:0 ~expand:`X ~shrink:`BOTH); - - let pbar = - GRange.progress_bar ~bar_style:`DISCRETE ~discrete_blocks:20 () - ~packing:(table#attach ~left:0 ~right:2 ~top:1 - ~expand:`BOTH ~fill:`X ~shrink:`BOTH) in - - let bar = new bar pbar in - let ptimer = Timeout.add ~ms:50 ~callback:bar#progress in - - let button = GButton.button ~label:"Reset" () - ~packing:(table#attach ~left:0 ~top:2 - ~expand:`NONE ~fill:`X ~shrink:`BOTH) in - button#connect#clicked ~callback:bar#reset; - - let button = GButton.button ~label:"Cancel" () - ~packing:(table#attach ~left:1 ~top:2 - ~expand:`NONE ~fill:`X ~shrink:`BOTH) in - button#connect#clicked ~callback:Main.quit; - - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/radiobuttons.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/radiobuttons.ml deleted file mode 100644 index 5743ee232..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/radiobuttons.ml +++ /dev/null @@ -1,39 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - - let window = GWindow.window ~title: "radio buttons" ~border_width: 0 () in - window#connect#destroy ~callback:Main.quit; - - let box1 = GPack.vbox ~packing: window#add () in - - let box2 = GPack.vbox ~spacing:10 ~border_width: 10 ~packing: box1#add () in - - let button1 = GButton.radio_button ~label:"button1" ~packing: box2#add () in - button1#connect#clicked ~callback:(fun () -> prerr_endline "button1"); - - let button2 = GButton.radio_button ~group:button1#group ~label:"button2" - ~active:true ~packing: box2#add () in - button2#connect#clicked ~callback:(fun () -> prerr_endline "button2"); - - let button3 = GButton.radio_button - ~group:button1#group ~label:"button3" ~packing: box2#add () in - button3#connect#clicked ~callback:(fun () -> prerr_endline "button3"); - - let separator = - GMisc.separator `HORIZONTAL ~packing: box1#pack () in - - let box3 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box3#add () in - button#connect#clicked ~callback:Main.quit; - button#grab_default (); - - window#show (); - - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/rpn.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/rpn.ml deleted file mode 100644 index e701f185c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/rpn.ml +++ /dev/null @@ -1,129 +0,0 @@ -(* $Id$ *) - -(* reverse polish calculator *) - -open GMain - -let wow _ = prerr_endline "Wow!"; () -let main () = - let stack = Stack.create () in - - (* toplevel window *) - let window = - GWindow.window ~border_width: 10 ~title:"Reverse Polish Calculator" () in - window#connect#destroy ~callback:Main.quit; - - - (* vbox *) - let vbx = GPack.vbox ~packing:window#add () in - - (* entry *) - let entry = - GEdit.entry ~text:"0" ~editable:false ~max_length: 20 ~packing: vbx#add () in - - (* BackSpace, Clear, All Clear, Quit *) - let table0 = GPack.table ~rows:1 ~columns:4 ~packing:vbx#add () in - let bs_clicked _ = begin - let txt = entry#text in - let len = String.length txt in - if len <= 1 then - entry#set_text "0" - else entry#set_text (String.sub txt ~pos:0 ~len:(len-1)) - end in - let c_clicked _ = entry#set_text("0") in - let ac_clicked _ = Stack.clear stack; entry#set_text("0") in - let labels0 = [("BS", bs_clicked) ; ("C", c_clicked); - ("AC", ac_clicked); ("Quit", window#destroy)] in - let rec loop0 labels n = - match labels - with [] -> () - | (lbl, cb) :: t -> - let button = - GButton.button ~label:lbl - ~packing:(table0#attach ~left:n ~top:1 ~expand:`BOTH) () in - button#connect#clicked ~callback:cb; - loop0 t (n+1) in - loop0 labels0 1; - - (* Numerals *) - let table1 = GPack.table ~rows:4 ~columns:5 ~packing:vbx#add () in - let labels1 = ["7"; "8"; "9"; "4"; "5"; "6"; "1"; "2"; "3"; "0"] in - let numClicked n _ = - let txt = entry#text in - if (txt = "0") then - entry#set_text n - else begin - entry#append_text n - end in - let rec loop1 labels n = - match labels with [] -> () - | lbl :: lbls -> - let button = GButton.button ~label:(" "^lbl^" ") - ~packing:(table1#attach ~left:(n mod 3) ~top:(n/3) ~expand:`BOTH) - () in - button#connect#clicked ~callback:(numClicked lbl); - loop1 lbls (n+1) in - loop1 labels1 0; - - (* Period *) - let periodClicked _ = - let txt = entry#text in - if (String.contains txt '.') then begin - Printf.printf "\a"; - flush stdout; - end - else - entry#append_text "." in - (GButton.button ~label:" . " - ~packing:(table1#attach ~left:1 ~top:3 ~expand:`BOTH) ()) - #connect#clicked ~callback:periodClicked; - - (* Enter (Push) *) - let enterClicked _ = - let txt = entry#text in - let n = float_of_string txt in begin - Stack.push n stack; - entry#set_text "0" - end in - (GButton.button ~label:"Ent" - ~packing:(table1#attach ~left:2 ~top:3 ~expand:`BOTH) ()) - #connect#clicked ~callback:enterClicked; - - (* Operators *) - let op2Clicked op _ = - let n1 = float_of_string (entry#text) in - let n2 = Stack.pop stack in - entry#set_text (string_of_float (op n2 n1)) - in - let op1Clicked op _ = - let n1 = float_of_string (entry#text) in - entry#set_text (string_of_float (op n1)) - in - let modClicked _ = - let n1 = int_of_string (entry#text) in - let n2 = truncate (Stack.pop stack) in - entry#set_text (string_of_int (n2 mod n1)) - in - let labels2 = [(" / ", op2Clicked (/.)); (" * ", op2Clicked ( *. )); - (" - ", op2Clicked (-.)); (" + ", op2Clicked (+.)); - ("mod", modClicked); (" ^ ", op2Clicked ( ** )); - ("+/-", op1Clicked (~-.)); - ("1/x", op1Clicked (fun x -> 1.0/.x))] in - let rec loop2 labels n = - match labels - with [] -> () - | (lbl, cb) :: t -> - let button = GButton.button ~label:lbl - ~packing:(table1#attach ~left:(3 + n/4) ~top: (n mod 4) - ~expand:`BOTH) - () in - button#connect#clicked ~callback:cb; - loop2 t (n+1) - in - loop2 labels2 0; - - (* show all and enter event loop *) - window#show (); - Main.main () - -let _ = Printexc.print main() diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/scrolledwin.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/scrolledwin.ml deleted file mode 100644 index 8f4bee21e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/scrolledwin.ml +++ /dev/null @@ -1,35 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let window = GWindow.dialog ~title: "dialog" - ~border_width: 10 ~width: 300 ~height: 300 () in - window#connect#destroy ~callback:Main.quit; - - let scrolled_window = GBin.scrolled_window - ~border_width: 10 ~hpolicy: `AUTOMATIC ~packing: window#vbox#add () - in - - let table = GPack.table ~rows:10 ~columns:10 - ~row_spacings: 10 ~col_spacings: 10 - ~packing: scrolled_window#add_with_viewport () - in - - for i = 0 to 9 do - for j = 0 to 9 do - let label = Printf.sprintf "button (%d,%d)\n" i j in - GButton.toggle_button ~label - ~packing:(table#attach ~left: i ~top: j ~expand: `BOTH) () - done - done; - - let button = - GButton.button ~label: "close" ~packing: window#action_area#add () in - button#connect#clicked ~callback: Main.quit; - button#grab_default (); - window#show (); - Main.main () - -let _ = main () - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/socket.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/socket.ml deleted file mode 100644 index 687389ca9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/socket.ml +++ /dev/null @@ -1,16 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let w = GWindow.window ~title:"Socket example" () in - w#connect#destroy ~callback:Main.quit; - let vbox = GPack.vbox ~packing:w#add () in - let label = GMisc.label ~packing:vbox#pack () in - let socket = GBin.socket ~packing:vbox#add ~height:40 () in - label#set_text ("XID to plug into this socket: 0x" ^ - Int32.format "%x" socket#xwindow); - w#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/test.xpm b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/test.xpm deleted file mode 100644 index 9b0d2efdb..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/test.xpm +++ /dev/null @@ -1,92 +0,0 @@ -/* XPM */ -static char *openfile[] = { -/* width height num_colors chars_per_pixel */ -" 20 19 66 2", -/* colors */ -".. c None", -".# c #000000", -".a c #dfdfdf", -".b c #7f7f7f", -".c c #006f6f", -".d c #00efef", -".e c #009f9f", -".f c #004040", -".g c #00bfbf", -".h c #ff0000", -".i c #ffffff", -".j c #7f0000", -".k c #007070", -".l c #00ffff", -".m c #00a0a0", -".n c #004f4f", -".o c #00cfcf", -".p c #8f8f8f", -".q c #6f6f6f", -".r c #a0a0a0", -".s c #7f7f00", -".t c #007f7f", -".u c #5f5f5f", -".v c #707070", -".w c #00f0f0", -".x c #009090", -".y c #ffff00", -".z c #0000ff", -".A c #00afaf", -".B c #00d0d0", -".C c #00dfdf", -".D c #005f5f", -".E c #00b0b0", -".F c #001010", -".G c #00c0c0", -".H c #000f0f", -".I c #00007f", -".J c #005050", -".K c #002f2f", -".L c #dfcfcf", -".M c #dfd0d0", -".N c #006060", -".O c #00e0e0", -".P c #00ff00", -".Q c #002020", -".R c #dfc0c0", -".S c #008080", -".T c #001f1f", -".U c #003f3f", -".V c #007f00", -".W c #00000f", -".X c #000010", -".Y c #00001f", -".Z c #000020", -".0 c #00002f", -".1 c #000030", -".2 c #00003f", -".3 c #000040", -".4 c #00004f", -".5 c #000050", -".6 c #00005f", -".7 c #000060", -".8 c #00006f", -".9 c #000070", -"#. c #7f7f80", -"## c #9f9f9f", -/* pixels */ -"........................................", -"........................................", -"........................................", -".......................#.#.#............", -".....................#.......#...#......", -"...............................#.#......", -".......#.#.#.................#.#.#......", -".....#.y.i.y.#.#.#.#.#.#.#..............", -".....#.i.y.i.y.i.y.i.y.i.#..............", -".....#.y.i.y.i.y.i.y.i.y.#..............", -".....#.i.y.i.y.#.#.#.#.#.#.#.#.#.#.#....", -".....#.y.i.y.#.s.s.s.s.s.s.s.s.s.#......", -".....#.i.y.#.s.s.s.s.s.s.s.s.s.#........", -".....#.y.#.s.s.s.s.s.s.s.s.s.#..........", -".....#.#.s.s.s.s.s.s.s.s.s.#............", -".....#.#.#.#.#.#.#.#.#.#.#..............", -"........................................", -"........................................", -"........................................" -}; diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testdnd.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testdnd.ml deleted file mode 100644 index 8c10f7b98..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testdnd.ml +++ /dev/null @@ -1,510 +0,0 @@ -(* this is a translation in Caml of the gtk+ example testdnd.c *) - - -open Gaux -open Gtk -open GObj -open GMain - -(* GtkThread.start() *) - -let drag_icon_xpm = [| -"36 48 9 1"; -" c None"; -". c #020204"; -"+ c #8F8F90"; -"@ c #D3D3D2"; -"# c #AEAEAC"; -"$ c #ECECEC"; -"% c #A2A2A4"; -"& c #FEFEFC"; -"* c #BEBEBC"; -" ....................."; -" ..&&&&&&&&&&&&&&&&&&&."; -" ...&&&&&&&&&&&&&&&&&&&."; -" ..&.&&&&&&&&&&&&&&&&&&&."; -" ..&&.&&&&&&&&&&&&&&&&&&&."; -" ..&&&.&&&&&&&&&&&&&&&&&&&."; -" ..&&&&.&&&&&&&&&&&&&&&&&&&."; -" ..&&&&&.&&&@&&&&&&&&&&&&&&&."; -" ..&&&&&&.*$%$+$&&&&&&&&&&&&&."; -" ..&&&&&&&.%$%$+&&&&&&&&&&&&&&."; -" ..&&&&&&&&.#&#@$&&&&&&&&&&&&&&."; -" ..&&&&&&&&&.#$**#$&&&&&&&&&&&&&."; -" ..&&&&&&&&&&.&@%&%$&&&&&&&&&&&&&."; -" ..&&&&&&&&&&&.&&&&&&&&&&&&&&&&&&&."; -" ..&&&&&&&&&&&&.&&&&&&&&&&&&&&&&&&&."; -"................&$@&&&@&&&&&&&&&&&&."; -".&&&&&&&+&&#@%#+@#@*$%$+$&&&&&&&&&&."; -".&&&&&&&+&&#@#@&&@*%$%$+&&&&&&&&&&&."; -".&&&&&&&+&$%&#@&#@@#&#@$&&&&&&&&&&&."; -".&&&&&&@#@@$&*@&@#@#$**#$&&&&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&@%&%$&&&&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&$#@@$&&&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&&+&$+&$&@&$@&&$@&&&&&&&&&&."; -".&&&&&&&&&+&&#@%#+@#@*$%&+$&&&&&&&&."; -".&&&&&&&&&+&&#@#@&&@*%$%$+&&&&&&&&&."; -".&&&&&&&&&+&$%&#@&#@@#&#@$&&&&&&&&&."; -".&&&&&&&&@#@@$&*@&@#@#$#*#$&&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&$%&%$&&&&&&&&."; -".&&&&&&&&&&$#@@$&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&&&&+&$%&$$@&$@&&$@&&&&&&&&."; -".&&&&&&&&&&&+&&#@%#+@#@*$%$+$&&&&&&."; -".&&&&&&&&&&&+&&#@#@&&@*#$%$+&&&&&&&."; -".&&&&&&&&&&&+&$+&*@&#@@#&#@$&&&&&&&."; -".&&&&&&&&&&$%@@&&*@&@#@#$#*#&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&$%&%$&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&&&&&&&$#@@$&&&&&&&&&&&&&&&."; -".&&&&&&&&&&&&&&&+&$%&$$@&$@&&$@&&&&."; -".&&&&&&&&&&&&&&&+&&#@%#+@#@*$%$+$&&."; -".&&&&&&&&&&&&&&&+&&#@#@&&@*#$%$+&&&."; -".&&&&&&&&&&&&&&&+&$+&*@&#@@#&#@$&&&."; -".&&&&&&&&&&&&&&$%@@&&*@&@#@#$#*#&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&$%&%$&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&."; -".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&."; -"...................................." |] - - - -let trashcan_closed_xpm = [| -"64 80 17 1"; -" c None"; -". c #030304"; -"+ c #5A5A5C"; -"@ c #323231"; -"# c #888888"; -"$ c #1E1E1F"; -"% c #767677"; -"& c #494949"; -"* c #9E9E9C"; -"= c #111111"; -"- c #3C3C3D"; -"; c #6B6B6B"; -"> c #949494"; -", c #282828"; -"' c #808080"; -") c #545454"; -"! c #AEAEAC"; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" ==......=$$...=== "; -" ..$------)+++++++++++++@$$... "; -" ..=@@-------&+++++++++++++++++++-.... "; -" =.$$@@@-&&)++++)-,$$$$=@@&+++++++++++++,..$ "; -" .$$$$@@&+++++++&$$$@@@@-&,$,-++++++++++;;;&.. "; -" $$$$,@--&++++++&$$)++++++++-,$&++++++;%%'%%;;$@ "; -" .-@@-@-&++++++++-@++++++++++++,-++++++;''%;;;%*-$ "; -" +------++++++++++++++++++++++++++++++;;%%%;;##*!. "; -" =+----+++++++++++++++++++++++;;;;;;;;;;;;%'>>). "; -" .=)&+++++++++++++++++;;;;;;;;;;;;;;%''>>#>#@. "; -" =..=&++++++++++++;;;;;;;;;;;;;%###>>###+%== "; -" .&....=-+++++%;;####''''''''''##'%%%)..#. "; -" .+-++@....=,+%#####'%%%%%%%%%;@$-@-@*++!. "; -" .+-++-+++-&-@$$=$=......$,,,@;&)+!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" =+-++-+++-+++++++++!++++!++++!+++!++!+++= "; -" $.++-+++-+++++++++!++++!++++!+++!++!+.$ "; -" =.++++++++++++++!++++!++++!+++!++.= "; -" $..+++++++++++++++!++++++...$ "; -" $$=.............=$$ "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" " |] - -let trashcan_open_xpm = [| -"64 80 17 1"; -" c None"; -". c #030304"; -"+ c #5A5A5C"; -"@ c #323231"; -"# c #888888"; -"$ c #1E1E1F"; -"% c #767677"; -"& c #494949"; -"* c #9E9E9C"; -"= c #111111"; -"- c #3C3C3D"; -"; c #6B6B6B"; -"> c #949494"; -", c #282828"; -"' c #808080"; -") c #545454"; -"! c #AEAEAC"; -" "; -" "; -" "; -" "; -" "; -" "; -" .=.==.,@ "; -" ==.,@-&&&)-= "; -" .$@,&++;;;%>*- "; -" $,-+)+++%%;;'#+. "; -" =---+++++;%%%;%##@. "; -" @)++++++++;%%%%'#%$ "; -" $&++++++++++;%%;%##@= "; -" ,-++++)+++++++;;;'#%) "; -" @+++&&--&)++++;;%'#'-. "; -" ,&++-@@,,,,-)++;;;'>'+, "; -" =-++&@$@&&&&-&+;;;%##%+@ "; -" =,)+)-,@@&+++++;;;;%##%&@ "; -" @--&&,,@&)++++++;;;;'#)@ "; -" ---&)-,@)+++++++;;;%''+, "; -" $--&)+&$-+++++++;;;%%'';- "; -" .,-&+++-$&++++++;;;%''%&= "; -" $,-&)++)-@++++++;;%''%), "; -" =,@&)++++&&+++++;%'''+$@&++++++ "; -" .$@-++++++++++++;'#';,........=$@&++++ "; -" =$@@&)+++++++++++'##-.................=&++ "; -" .$$@-&)+++++++++;%#+$.....................=)+ "; -" $$,@-)+++++++++;%;@=........................,+ "; -" .$$@@-++++++++)-)@=............................ "; -" $,@---)++++&)@===............................,. "; -" $-@---&)))-$$=..............................=)!. "; -" --&-&&,,$=,==...........................=&+++!. "; -" =,=$..=$+)+++++&@$=.............=$@&+++++!++!. "; -" .)-++-+++++++++++++++++++++++++++!++!++!. "; -" .+-++-+++++++++++++++++++++++!+++!++!++!. "; -" .+-++-+++-+++++++++!+++!!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" .+-++-+++-+++++++++!++++!++++!+++!++!++!. "; -" =+-++-+++-+++++++++!++++!++++!+++!++!+++= "; -" $.++-+++-+++++++++!++++!++++!+++!++!+.$ "; -" =.++++++++++++++!++++!++++!+++!++.= "; -" $..+++++++++++++++!++++++...$ "; -" $$==...........==$$ "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" "; -" " |] - -let window = GWindow.window ~title:"DnD Test" () -let _ = window#misc#realize () - -let drag_icon = - GDraw.pixmap_from_xpm_d ~data:drag_icon_xpm ~window () - -let trashcan_open = - GDraw.pixmap_from_xpm_d ~data:trashcan_open_xpm ~window () - -let trashcan_closed = - GDraw.pixmap_from_xpm_d ~data:trashcan_closed_xpm ~window () - -let targets = [ - { target = "STRING"; flags = []; info = 0}; - { target = "text/plain"; flags = []; info = 0}; - { target = "text/uri-list"; flags = []; info = 2}; - { target = "application/x-rootwin-drop"; flags = []; info = 1} -] - -class drag_handler = object - method private beginning (_ : drag_context) = () - method private data_delete (_ : drag_context) = () - method private data_get (_ : drag_context) (_ : selection_data) - ~info:(_ : int) ~time:(_ : int) = () - method private data_received (_ : drag_context) ~x:(_ : int) ~y:(_ : int) - (_ : selection_data) ~info:(_ : int) ~time:(_ : int) = () - method private drop (_ : drag_context) ~x:(_ : int) ~y:(_ : int) - ~time:(_ : int) = false - method private ending (_ : drag_context) = () - method private leave (_ : drag_context) ~time:(_ : int) = () - method private motion (_ : drag_context) ~x:(_ : int) ~y:(_ : int) - ~time:(_ : int) = false -end - - -class target_drag ?packing ?show () = - let pixmap = GMisc.pixmap trashcan_closed ?packing ?show () in -object (self) - inherit widget pixmap#as_widget - inherit drag_handler - val mutable have_drag = false - - method leave _ ~time = - print_endline "leave"; flush stdout; - have_drag <- false; - pixmap#set_pixmap trashcan_closed - - method motion context ~x ~y ~time = - if not have_drag then begin - have_drag <- true; - pixmap#set_pixmap trashcan_open - end; - let source_typename = - try - context#source_widget#misc#get_type - with Gpointer.Null -> "unknown" - in - Printf.printf "motion, source %s\n" source_typename; flush stdout; - context#status [context#suggested_action] ~time; - true - - method drop context ~x ~y ~time = - prerr_endline "drop"; flush stdout; - have_drag <- false; - pixmap#set_pixmap trashcan_closed; - match context#targets with - | [] -> false - | d :: _ -> pixmap#drag#get_data d ~context ~time; true - - method data_received context ~x ~y data ~info ~time = - if data#format = 8 then begin - Printf.printf "Received \"%s\" in trashcan\n" data#data; - flush stdout; - context#finish ~success:true ~del:false ~time - end - else context#finish ~success:false ~del:false ~time - - initializer - pixmap#drag#dest_set targets ~actions:[`COPY;`MOVE]; - pixmap#drag#connect#leave ~callback:self#leave; - pixmap#drag#connect#motion ~callback:self#motion; - pixmap#drag#connect#drop ~callback:self#drop; - pixmap#drag#connect#data_received ~callback:self#data_received; - () -end - -class label_drag ?packing ?show () = - let label = GMisc.label ~text:"Drop Here\n" ?packing ?show () in -object (self) - inherit widget label#as_widget - inherit drag_handler - method data_received context ~x ~y data ~info ~time = - if data#format = 8 then begin - Printf.printf "Received \"%s\" in label\n" data#data; - flush stdout; - context#finish ~success:true ~del:false ~time - end - else context#finish ~success:false ~del:false ~time - - initializer - label#drag#dest_set targets ~actions:[`COPY; `MOVE ]; - label#drag#connect#data_received ~callback:self#data_received; - () -end - -class source_drag ?packing ?show () = - let button = GButton.button ~label:"Drag Here\n" ?packing ?show () in -object (self) - inherit widget button#as_widget - inherit drag_handler - method data_get _ data ~info ~time = - if info = 1 then begin - print_endline "I was dropped on the rootwin"; flush stdout - end - else if info = 2 then - data#set ~typ:data#target ~format:8 - ~data:"file:///home/otaylor/images/weave.png" - else - data#set ~typ:data#target ~format:8 ~data:"I'm Data!" - - method data_delete _ = - print_endline "Delete the data!"; flush stdout - - initializer - button#drag#source_set targets - ~modi:[`BUTTON1; `BUTTON3 ] ~actions:[`COPY; `MOVE ]; - button#drag#source_set_icon drag_icon; - button#drag#connect#data_get ~callback:self#data_get; - button#drag#connect#data_delete ~callback:self#data_delete; - () -end - -class popup () = object (self) - inherit drag_handler - val mutable popup_window = (None : GWindow.window option) - val mutable popped_up = false - val mutable in_popup = false - val mutable popdown_timer = None - val mutable popup_timer = None - - method timer = popup_timer - method remove_timer () = - may popup_timer - ~f:(fun pdt -> Timeout.remove pdt; popup_timer <- None) - method add_timer time ~callback = - popup_timer <- Some (Timeout.add ~ms:time ~callback) - - method popdown () = - popdown_timer <- None; - may popup_window ~f:(fun w -> w#misc#hide ()); - popped_up <- false; - false - - method motion (_ : drag_context) ~x ~y ~time = - if not in_popup then begin - in_popup <- true; - may popdown_timer ~f: - begin fun pdt -> - print_endline "removed popdown"; flush stdout; - Timeout.remove pdt; - popdown_timer <- None - end - end; - true - - method leave (_ : drag_context) ~time = - if in_popup then begin - in_popup <- false; - if popdown_timer = None then begin - print_endline "added popdown"; flush stdout; - popdown_timer <- Some (Timeout.add ~ms:500 ~callback:self#popdown) - end - end - - method popup () = - if not popped_up then begin - if popup_window = None then begin - let w = GWindow.window ~kind:`POPUP ~position:`MOUSE () in - popup_window <- Some w; - let table = GPack.table ~rows:3 ~columns:3 ~packing:w#add () in - for i = 0 to 2 do - for j = 0 to 2 do - let button = - GButton.button ~label:(string_of_int i ^ "," ^ string_of_int j) - ~packing:(table#attach ~left:i ~top:j ~expand:`BOTH) () - in - button#drag#dest_set targets ~actions:[`COPY; `MOVE ]; - button#drag#connect#motion ~callback:self#motion; - button#drag#connect#leave ~callback:self#leave; - done - done - end; - may popup_window ~f:(fun w -> w#show ()); - popped_up <- true - end; - popdown_timer <- Some (Timeout.add ~ms:500 ~callback:self#popdown); - print_endline "added popdown"; flush stdout; - self#remove_timer (); - false -end - -class popsite ?packing ?show () = - let label = GMisc.label ~text:"Popup\n" ?packing ?show () - and popup = new popup () in -object (self) - inherit widget label#as_widget - inherit drag_handler - method motion _ ~x ~y ~time = - if popup#timer = None then begin - print_endline "added popdown"; flush stdout; - popup#add_timer 500 ~callback:popup#popup - end; - true - - method leave _ ~time = - popup#remove_timer () - - initializer - label#drag#dest_set targets ~actions:[`COPY; `MOVE ]; - label#drag#connect#motion ~callback:self#motion; - label#drag#connect#leave ~callback:self#leave; - () -end - -let main () = - window#connect#destroy ~callback: Main.quit; - let table = GPack.table ~rows:2 ~columns:2 ~packing:window#add () in - let attach = table#attach ~expand:`BOTH in - new label_drag ~packing:(attach ~left:0 ~top:0) (); - new target_drag ~packing:(attach ~left:1 ~top:0) (); - new source_drag ~packing:(attach ~left:0 ~top:1) (); - new popsite ~packing:(attach ~left:1 ~top:1) (); - - window#show (); - Main.main () - -let _ = - main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testgtk.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testgtk.ml deleted file mode 100644 index 6c937f56d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testgtk.ml +++ /dev/null @@ -1,1140 +0,0 @@ -(* $Id$ *) - -open GdkKeysyms -open GMain -open GObj - -let create_bbox direction title spacing child_w child_h layout = - let frame = GBin.frame ~label: title () in - let bbox = GPack.button_box direction ~border_width: 5 ~packing: frame#add - ~layout: layout ~child_height: child_h ~child_width: child_w - ~spacing: spacing () in - GButton.button ~label: "OK" ~packing: bbox#add (); - GButton.button ~label: "Cancel" ~packing: bbox#add (); - GButton.button ~label: "Help" ~packing: bbox#add (); - frame#coerce - -let create_button_box = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "Button Boxes" ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let main_vbox = GPack.vbox ~packing: (window#add) () in - - let frame_horz = GBin.frame ~label: "Horizontal Button Boxes" - ~packing:(main_vbox#pack ~expand:true ~fill:true ~padding:10) () in - - let vbox = GPack.vbox ~border_width: 10 ~packing: frame_horz#add () in - - vbox#add (create_bbox `HORIZONTAL "Spread" 40 85 20 `SPREAD); - vbox#pack (create_bbox `HORIZONTAL "Edge" 40 85 20 `EDGE) - ~expand: true ~fill: true ~padding: 5; - vbox#pack (create_bbox `HORIZONTAL "Start" 40 85 20 `START) - ~expand: true ~fill: true ~padding: 5; - vbox#pack (create_bbox `HORIZONTAL "End" 40 85 20 `END) - ~expand: true ~fill: true ~padding: 5; - - let frame_vert = GBin.frame ~label: "Vertical Button Boxes" - ~packing:(main_vbox#pack ~expand:true ~fill:true ~padding:10) () in - - let hbox = GPack.hbox ~border_width: 10 ~packing: frame_vert#add () in - hbox#add (create_bbox `VERTICAL "Spread" 30 85 20 `SPREAD); - hbox#pack (create_bbox `VERTICAL "Edge" 30 85 20 `EDGE) - ~expand: true ~fill: true ~padding: 5; - hbox#pack (create_bbox `VERTICAL "Start" 30 85 20 `START) - ~expand: true ~fill: true ~padding: 5; - hbox#pack (create_bbox `VERTICAL "End" 30 85 20 `END) - ~expand: true ~fill: true ~padding: 5; - window #show () - - | Some window -> window #destroy () -in aux - - -let button_window button _ = - if button #misc#visible then - button #misc#hide () - else - button #misc#show () - -let create_buttons = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "GtkButton" ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let box1 = GPack.vbox ~packing:window#add () in - - let table = GPack.table ~rows:3 ~columns:3 ~homogeneous:false - ~row_spacings:3 ~col_spacings:3 ~border_width:10 - ~packing:box1#add () in - - let button = Array.create 9 (GButton.button ~label:"button1" ()) in - for i = 2 to 9 do - button.(i-1) <- GButton.button ~label:("button" ^ string_of_int i) (); - done; - - let f i l r t b = - button.(i) #connect#clicked ~callback:(button_window button.(i+1)); - table #attach button.(i)#coerce ~left:l ~right:r ~top:t ~bottom:b - ~xpadding:0 ~ypadding:0 ~expand:`BOTH - in - f 0 0 1 0 1; - f 1 1 2 1 2; - f 2 2 3 2 3; - f 3 0 1 2 3; - f 4 2 3 0 1; - f 5 1 2 2 3; - f 6 1 2 0 1; - f 7 2 3 1 2; - button.(8) #connect#clicked ~callback:(button_window button.(0)); - table #attach button.(8)#coerce ~left:0 ~right:1 ~top:1 ~bottom:2 - ~xpadding:0 ~ypadding:0 ~expand:`BOTH; - - GMisc.separator `HORIZONTAL ~packing:box1#pack (); - - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () -in aux - - - -let create_check_buttons = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "GtkCheckButton" - ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let box1 = GPack.vbox ~packing:window#add () in - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - for i = 1 to 3 do - GButton.check_button ~label:("button" ^ (string_of_int i)) - ~packing: box2#add (); - done; - - GMisc.separator `HORIZONTAL ~packing: box1#pack (); - - let box2 = GPack.vbox ~spacing:10 ~border_width:10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing:box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () -in aux - - -let create_radio_buttons = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "radio buttons" - ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let box1 = GPack.vbox ~packing:window#add () in - - let box2 = GPack.vbox ~spacing:10 ~border_width:10 - ~packing: box1#pack () in - - let button = GButton.radio_button ~label:"button1" - ~packing: box2#add () in - - let button = GButton.radio_button ~label:"button2" ~group:button#group - ~packing: box2#add ~active:true () in - - let button = GButton.radio_button ~label:"button3" ~group:button#group - ~packing: box2#add () in - - GMisc.separator `HORIZONTAL ~packing: box1#pack (); - - let box2 = GPack.vbox ~spacing:10 ~border_width:10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box2#add () in - button #connect#clicked ~callback: window #destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () -in aux - - -let create_toggle_buttons = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "GtkToggleButton" - ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let box1 = GPack.vbox ~packing: window#add () in - - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - for i = 1 to 3 do - GButton.toggle_button ~label:("button" ^ (string_of_int i)) - ~packing: box2#add () - done; - - GMisc.separator `HORIZONTAL ~packing: box1#pack (); - - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing:box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () -in aux - - -(* Menus *) - -let create_menu depth tearoff = - let rec aux depth tearoff = - let menu = GMenu.menu () and group = ref None in - if tearoff then ignore (GMenu.tearoff_item ~packing: menu#append ()); - for i = 0 to 4 do - let menuitem = GMenu.radio_menu_item ?group:!group - ~label:("item " ^ string_of_int depth ^ " - " ^ string_of_int (i+1)) - ~packing:menu#append ~show_toggle:(depth mod 2 <> 0) - () in - group := Some (menuitem #group); - if i = 3 then menuitem #misc#set_sensitive false; - if depth > 1 then - menuitem #set_submenu (aux (depth-1) true) - done; - - menu - in aux depth tearoff - - -let create_menus = - let rw = ref None in - fun () -> - match !rw with - | None -> - let window = GWindow.window ~title: "menus" - ~border_width: 0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - window #event#connect#delete ~callback:(fun _ -> true); - - let accel_group = GtkData.AccelGroup.create () in - window #add_accel_group accel_group ; - - let box1 = GPack.vbox ~packing:window#add () in - - let menubar = GMenu.menu_bar ~packing: box1#pack () in - - let menuitem = GMenu.menu_item ~label:"test\nline2" - ~packing: menubar#append () in - menuitem #set_submenu (create_menu 2 true); - - let menuitem = GMenu.menu_item ~label:"foo" - ~packing: menubar#append () in - menuitem #set_submenu (create_menu 3 true); - menuitem #right_justify (); - - let box2 = GPack.vbox ~spacing: 10 ~packing: box1#add - ~border_width: 10 () in - - let menu = create_menu 1 false in - menu #set_accel_group accel_group; - - let menuitem = GMenu.check_menu_item ~label:"Accelerate Me" - ~packing:menu#append () in - menuitem #add_accelerator ~group:accel_group _M - ~flags:[`VISIBLE; `SIGNAL_VISIBLE]; - - let menuitem = GMenu.check_menu_item ~label:"Accelerator Locked" - ~packing:menu#append () in - menuitem #add_accelerator ~group:accel_group _L - ~flags:[`VISIBLE; `LOCKED]; - - let menuitem = GMenu.check_menu_item ~label:"Accelerators Frozen" - ~packing:menu#append () in - menuitem #add_accelerator ~group:accel_group _F - ~flags:[`VISIBLE]; - menuitem #misc#lock_accelerators (); - - let optionmenu = GMenu.option_menu ~packing: box2#add () in - optionmenu #set_menu menu; - optionmenu #set_history 3; - - GMisc.separator `HORIZONTAL ~packing: box1#pack (); - - let box2 = GPack.vbox ~spacing:10 ~border_width:10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () - - - -(* Modal windows *) - -let cmw_destroy_cb _ = - Main.quit () - -let cmw_color parent _ = - let csd = GWindow.color_selection_dialog ~modal:true - ~title:"This is a modal color selection dialog" () in - csd # set_transient_for parent; - csd # connect#destroy ~callback:cmw_destroy_cb; - csd # ok_button # connect#clicked ~callback:csd#destroy; - csd # cancel_button # connect#clicked ~callback:csd#destroy; - csd # show (); - Main.main () - -let cmw_file parent _ = - let fs = GWindow.file_selection ~modal:true - ~title:"This is a modal file selection dialog" () in - fs # set_transient_for parent; - fs # connect#destroy ~callback:cmw_destroy_cb; - fs # ok_button # connect#clicked ~callback:fs#destroy; - fs # cancel_button # connect#clicked ~callback:fs#destroy; - fs # show (); - Main.main () - -let create_modal_window () = - let window = GWindow.window ~modal:true ~title:"This window is modal" () in - let box1 = GPack.vbox ~spacing:5 ~border_width:3 ~packing:window#add () in - let frame1 = GBin.frame ~label:"Standard dialogs in modal form" - ~packing:(box1#pack ~expand:true ~padding:4) () in - let box2 = GPack.vbox ~homogeneous:true ~spacing:5 ~packing:frame1#add () in - let btnColor = GButton.button ~label:"Color" - ~packing:(box2#pack ~padding:4) () - and btnFile = GButton.button ~label:"File selection" - ~packing:(box2#pack ~padding:4) () - and btnClose = GButton.button ~label:"Close" - ~packing:(box2#pack ~padding:4) () in - GMisc.separator `HORIZONTAL - ~packing:(box1#pack ~padding:4) (); - - btnClose #connect#clicked ~callback:(fun _ -> window #destroy ()); - window #connect#destroy ~callback:cmw_destroy_cb; - btnColor #connect#clicked ~callback: (cmw_color window); - btnFile #connect#clicked ~callback: (cmw_file window); - window # show (); - Main.main () - - -(* corrected bug in testgtk.c *) -let scrolled_windows_remove, scrolled_windows_clean = - let parent = ref None and float_parent = ref None in - let remove (scrollwin : GBin.scrolled_window) () = - match !parent with - | None -> - parent := scrollwin#misc#parent; - let f = GWindow.window ~title:"new parent" () in - float_parent := Some f#coerce; - f #set_default_size ~width:200 ~height:200; - scrollwin #misc#reparent f#coerce; - f #show () - | Some p -> - scrollwin #misc#reparent p; - match !float_parent with - | None -> () - | Some f -> - f #destroy (); - float_parent := None; - parent := None - and clean () = - match !float_parent with - | None -> () - | Some p -> p #destroy (); parent := None; float_parent := None - in remove, clean - - -(* scrolled windows *) - -let create_scrolled_windows = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.dialog ~title:"dialog" ~border_width:0 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - window #connect#destroy ~callback:scrolled_windows_clean; - - let scrolled_window = GBin.scrolled_window ~border_width:10 - ~hpolicy: `AUTOMATIC ~vpolicy:`AUTOMATIC - ~packing: window#vbox#add () in - - let table = GPack.table ~rows:20 ~columns:20 ~row_spacings:10 - ~col_spacings:10 ~packing:scrolled_window#add_with_viewport () in - table #focus#set_hadjustment (Some scrolled_window # hadjustment); - table #focus#set_vadjustment (Some scrolled_window # vadjustment); - - for i = 0 to 19 do - for j=0 to 19 do - GButton.toggle_button - ~label:("button ("^ string_of_int i ^","^ string_of_int j ^")\n") - ~packing:(table #attach ~left:i ~top:j ~expand:`BOTH) () - done - done; - - let button = GButton.button ~label:"close" - ~packing:window#action_area#add () in - button #connect#clicked ~callback:(window #destroy); - button #grab_default (); - - let button = GButton.button ~label:"remove" - ~packing:window#action_area#add () in - button #connect#clicked - ~callback:(scrolled_windows_remove scrolled_window); - button #grab_default (); - - window #set_default_size ~width:300 ~height:300; - window #show () - - | Some window -> window #destroy () - in aux - - -(* Toolbar *) - -let make_toolbar (toolbar : GButton.toolbar) window = - let icon = - let info = GDraw.pixmap_from_xpm ~file:"test.xpm" ~window () in - fun () -> (GMisc.pixmap info ())#coerce - in - - toolbar #insert_button ~text:"Horizontal" - ~tooltip:"Horizontal toolbar layout" - ~tooltip_private:"Toolbar/Horizontal" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_orientation `HORIZONTAL) (); - - toolbar #insert_button ~text:"Vertical" - ~tooltip:"Vertical toolbar layout" - ~tooltip_private:"Toolbar/Vertical" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_orientation `VERTICAL) (); - - toolbar #insert_space (); - - toolbar #insert_button ~text:"Icons" - ~tooltip: "Only show toolbar icons" - ~tooltip_private:"Toolbar/IconsOnly" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_style `ICONS) (); - - toolbar #insert_button ~text:"Text" - ~tooltip: "Only show toolbar text" - ~tooltip_private:"Toolbar/TextOnly" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_style `TEXT) (); - - toolbar #insert_button ~text:"Both" - ~tooltip: "Show toolbar icons and text" - ~tooltip_private:"Toolbar/Both" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_style `BOTH) (); - - toolbar #insert_space (); - - GEdit.entry ~packing:(toolbar #insert_widget - ~tooltip:"This is an unusable GtkEntry" - ~tooltip_private: "Hey don't click me!!!") (); - - toolbar #insert_button ~text:"Small" - ~tooltip:"Use small spaces" - ~tooltip_private:"Toolbar/Small" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_space_size 5) (); - - toolbar #insert_button ~text:"Big" - ~tooltip:"Use big spaces" - ~tooltip_private:"Toolbar/Big" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_space_size 10) (); - - toolbar #insert_space (); - - toolbar #insert_button ~text:"Enable" - ~tooltip:"Enable tooltips" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_tooltips true) (); - - toolbar #insert_button ~text:"Disable" - ~tooltip:"Disable tooltips" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_tooltips false) (); - - toolbar #insert_space (); - - toolbar #insert_button ~text:"Borders" - ~tooltip:"Show borders" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_button_relief `NORMAL) (); - - toolbar #insert_button ~text:"Borderless" - ~tooltip:"Hide borders" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_button_relief `NONE) (); - - toolbar #insert_space (); - - toolbar #insert_button ~text:"Empty" - ~tooltip:"Empty spaces" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_space_style `EMPTY) (); - - toolbar #insert_button ~text:"Lines" - ~tooltip:"Lines in spaces" - ~icon:(icon ()) - ~callback:(fun _ -> toolbar #set_space_style `LINE) (); - () - -let create_toolbar = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "Toolbar test" - ~border_width: 0 ~allow_shrink: false ~allow_grow: true - ~auto_shrink: true () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - window #misc #realize (); - - let toolbar = GButton.toolbar ~packing: window#add () in - make_toolbar toolbar window; - - window #show () - - | Some window -> window #destroy () - in aux - - -(* Handlebox *) - -let handle_box_child_signal action (hb : GBin.handle_box) child = - Printf.printf "%s: child <%s> %s\n" hb#misc#get_type child#misc#get_type action - -let create_handle_box = - let rw = ref None in - let aux () = - match !rw with - | None -> - let window = GWindow.window ~title: "Handle box test" - ~border_width: 20 ~allow_shrink: false ~allow_grow: true - ~auto_shrink: true () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - window #misc #realize (); - - let vbox = GPack.vbox ~packing:window#add () in - - GMisc.label ~text:"Above" ~packing:vbox#add (); - GMisc.separator `HORIZONTAL ~packing:vbox#add (); - - let hbox = GPack.hbox ~spacing:10 ~packing:vbox#add () in - GMisc.separator `HORIZONTAL ~packing:vbox#add (); - - GMisc.label ~text:"Below" ~packing:vbox#add (); - let handle_box = GBin.handle_box ~packing:hbox#pack () in - handle_box #connect#child_attached - ~callback:(handle_box_child_signal "attached" handle_box); - handle_box #connect#child_detached - ~callback:(handle_box_child_signal "detached" handle_box); - - let toolbar = GButton.toolbar ~packing:handle_box#add () in - make_toolbar toolbar window; - toolbar #set_button_relief `NORMAL; - - let handle_box = GBin.handle_box ~packing:hbox#pack () in - handle_box #connect#child_attached - ~callback:(handle_box_child_signal "attached" handle_box); - handle_box #connect#child_detached - ~callback:(handle_box_child_signal "detached" handle_box); - - let handle_box2 = GBin.handle_box ~packing:handle_box#add () in - handle_box2 #connect#child_attached - ~callback:(handle_box_child_signal "attached" handle_box); - handle_box2 #connect#child_detached - ~callback:(handle_box_child_signal "detached" handle_box); - - GMisc.label ~text:"Fooo!" ~packing:handle_box2#add (); - window #show () - - | Some window -> window #destroy () - in aux - - - -(* Tree *) - -class tree_and_buttons () = -object - val tree = GTree.tree () - val add_button = GButton.button ~label: "Add Item" () - val remove_button = GButton.button ~label:"Remove Item(s)" () - val subtree_button = GButton.button ~label:"Remove Subtree" () - val mutable nb_item_add = 0 - - method tree = tree - method add_button = add_button - method remove_button = remove_button - method subtree_button = subtree_button - method nb_item_add = nb_item_add - method incr_nb_item_add = nb_item_add <- nb_item_add + 1 -end - -let cb_tree_destroy_event w = () - -let cb_add_new_item (treeb : tree_and_buttons) _ = - let subtree = - match treeb#tree#selection with - | [] -> treeb#tree - | selected_item :: _ -> - match selected_item#subtree with Some t -> t - | None -> - let t = GTree.tree () in - selected_item#set_subtree t; - t - in - let item_new = GTree.tree_item ~packing:(subtree#insert ~pos:0) - ~label:("item add " ^ string_of_int treeb # nb_item_add) () in - treeb #incr_nb_item_add - - -let cb_remove_item (treeb : tree_and_buttons) _ = - let tree = treeb#tree in - match tree #selection with - | [] -> () - | selected -> tree #remove_items selected - - -let cb_remove_subtree (treeb : tree_and_buttons) _ = - match treeb#tree #selection with - | [] -> () - | selected_item :: _ -> - try selected_item#subtree; selected_item#remove_subtree () - with Not_found -> () - -let cb_tree_changed (treeb : tree_and_buttons) _ = - let tree = treeb#tree in - let nb_selected = List.length (tree#selection) in - if nb_selected = 0 then begin - treeb # remove_button #misc#set_sensitive false; - treeb # subtree_button #misc#set_sensitive false; - end else begin - treeb # remove_button #misc#set_sensitive true; - treeb # subtree_button #misc#set_sensitive (nb_selected = 1); - treeb # add_button #misc#set_sensitive (nb_selected = 1); - end - - -let rec create_subtree (item : GTree.tree_item) level nb_item_max - recursion_level_max = - if level = recursion_level_max then () - else begin - let item_subtree = GTree.tree () in - for nb_item = 1 to nb_item_max do - let item_new = GTree.tree_item ~packing:(item_subtree#insert ~pos:0) - ~label:("item" ^ string_of_int level ^ "-" ^ string_of_int nb_item) () - in - create_subtree item_new (level + 1) nb_item_max recursion_level_max; - done; - item # set_subtree item_subtree - end - - -let create_tree_sample selection_mode draw_line view_line no_root_item - nb_item_max recursion_level_max = - let window = GWindow.window ~title:"Tree Sample" () in - let box1 = GPack.vbox ~packing:window#add () in - let box2 = GPack.vbox ~packing:box1#add ~border_width:5 () in - let scrolled_win = GBin.scrolled_window ~packing:box2#add - ~hpolicy: `AUTOMATIC ~vpolicy:`AUTOMATIC - ~width:200 ~height:200 () in - - let root_treeb = new tree_and_buttons () in - let root_tree = root_treeb#tree in - root_tree #connect#selection_changed ~callback:(cb_tree_changed root_treeb); - scrolled_win #add_with_viewport root_tree#coerce; - root_tree #set_selection_mode selection_mode; - root_tree #set_view_lines draw_line; - root_tree #set_view_mode - (match view_line with `LINE -> `ITEM | `ITEM -> `LINE); - - if no_root_item then - for nb_item = 1 to nb_item_max do - let item_new = GTree.tree_item ~label:("item0-" ^ string_of_int nb_item) - ~packing:(root_tree#insert ~pos:0) () in - create_subtree item_new 1 nb_item_max recursion_level_max; - done - else begin - let root_item = GTree.tree_item ~label:"root item" - ~packing:(root_tree #insert ~pos:0) () in - create_subtree root_item 0 nb_item_max recursion_level_max - end; - - let box2 = GPack.vbox ~border_width:5 ~packing:box1#pack () in - - let button = root_treeb #add_button in - button #misc#set_sensitive false; - button #connect#clicked ~callback:(cb_add_new_item root_treeb); - box2 #add button#coerce; - - let button = root_treeb #remove_button in - button #misc#set_sensitive false; - button #connect#clicked ~callback:(cb_remove_item root_treeb); - box2 #add button#coerce; - - let button = root_treeb #subtree_button in - button #misc#set_sensitive false; - button #connect#clicked ~callback:(cb_remove_subtree root_treeb); - box2 #add button#coerce; - - GMisc.separator `HORIZONTAL ~packing:box1#pack (); - - let button = GButton.button ~label:"Close" ~packing:box2#add () in - button #connect#clicked ~callback:window#destroy; - - window #show () - - -let create_tree_mode_window = - let rw = ref None in - let aux () = - let default_number_of_item = 3.0 in - let default_recursion_level = 3.0 in - let single_button = GButton.radio_button ~label:"SINGLE" () in - let browse_button = GButton.radio_button - ~group:single_button#group ~label:"BROWSE" () in - let multiple_button = GButton.radio_button - ~group:browse_button#group ~label:"MULTIPLE" () in - let draw_line_button = GButton.check_button ~label:"Draw line" () in - let view_line_button = GButton.check_button ~label:"View line mode" () in - let no_root_item_button = GButton.check_button - ~label:"Without Root item" () in - let nb_item_spinner = GEdit.spin_button - ~adjustment:(GData.adjustment ~value:default_number_of_item - ~lower:1.0 ~upper:255.0 ~step_incr:1.0 ~page_incr:5.0 - ~page_size:0.0 ()) ~rate:0. ~digits:0 () in - let recursion_spinner = GEdit.spin_button - ~adjustment:(GData.adjustment ~value:default_recursion_level - ~lower:0.0 ~upper:255.0 ~step_incr:1.0 ~page_incr:5.0 - ~page_size:0.0 ()) ~rate:0. ~digits:0 () in - let cb_create_tree _ = - let selection_mode = - if single_button #active then `SINGLE - else if browse_button #active then `BROWSE - else `MULTIPLE in - let nb_item = nb_item_spinner#value_as_int in - let recursion_level = recursion_spinner#value_as_int in - create_tree_sample selection_mode (draw_line_button #active) - (if (view_line_button #active) then `ITEM else `LINE) - (no_root_item_button #active) - nb_item recursion_level - in - match !rw with - | None -> - let window = GWindow.window ~title:"Set Tree Parameters" () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let box1 = GPack.vbox ~packing:window#add () in - - let box2 = GPack.vbox ~spacing:5 ~packing:box1#add - ~border_width:5 () in - - let box3 = GPack.hbox ~spacing:5 ~packing:box2#add () in - - let frame = GBin.frame ~label:"Selection Mode" ~packing:box3#add () - in - - let box4 = GPack.vbox ~packing:frame#add ~border_width:5 () in - - box4 #add single_button#coerce; - box4 #add browse_button#coerce; - box4 #add multiple_button#coerce; - - let frame = GBin.frame ~label:"Options" ~packing:box3#add () in - - let box4 = GPack.vbox ~packing:frame#add ~border_width:5 () in - box4 #add draw_line_button#coerce; - draw_line_button #set_active true; - - box4 #add view_line_button#coerce; - view_line_button #set_active true; - - box4 #add no_root_item_button#coerce; - - let frame = GBin.frame ~label:"Size Parameters" ~packing:box2#add () - in - - let box4 = GPack.hbox ~spacing:5 ~packing:frame#add ~border_width:5 () in - - let box5 = GPack.hbox ~spacing:5 ~packing:box4#add () in - let label = GMisc.label ~text:"Number of items : " - ~xalign:0. ~yalign:0.5 ~packing:box5#pack () in - box5 #pack nb_item_spinner#coerce; - - let label = GMisc.label ~text:"Depth : " ~xalign:0. ~yalign:0.5 - ~packing:box5#pack () in - box5 #pack recursion_spinner#coerce; - - GMisc.separator `HORIZONTAL ~packing:box1#pack (); - - let box2 = GPack.hbox ~homogeneous:true ~spacing:10 ~border_width:5 - ~packing:box1#pack () in - - let button = GButton.button ~label:"Create Tree" - ~packing:box2#add () in - button #connect#clicked ~callback:cb_create_tree; - - let button = GButton.button ~label: "close" ~packing:box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - window #show () - - | Some window -> window #destroy () - in aux - - - -(* Tooltips *) - -let tips_query_widget_entered (toggle : GButton.toggle_button) - (tq : GMisc.tips_query) _ ~text ~privat:_ = - if toggle #active then begin - tq #set_text - (match text with - | None -> "There is no tip!" | Some _ -> "There is a tip!"); - GtkSignal.stop_emit () - end - -let tips_query_widget_selected (w : #widget option) ~text ~privat:tp _ = - (match w with - | None -> () - | Some w -> - Printf.printf "Help \"%s\" requested for <%s>\n" - (match tp with None -> "None" | Some t -> t) - (w #misc#get_type)); - true - - -let create_tooltips = - let rw = ref None in - let aux () = - match !rw with - | None -> - - let window = GWindow.window ~title:"Tooltips" - ~border_width:0 ~allow_shrink:false ~allow_grow:false - ~auto_shrink:true () in - rw := Some window; - let tooltips = GData.tooltips () in - window #connect#destroy - ~callback:(fun _ -> tooltips #destroy (); rw := None); - - let box1 = GPack.vbox ~packing:window#add () in - - let box2 = GPack.vbox ~spacing:10 ~border_width:10 - ~packing:box1#add () in - - let button = GButton.toggle_button ~label:"button1" - ~packing:box2#add () - in - tooltips #set_tip button#coerce ~text:"This is button1" - ~privat:"ContextHelp/buttons/1"; - - let button = GButton.toggle_button ~label:"button2" - ~packing:box2#add () - in - tooltips #set_tip button#coerce - ~text:"This is button 2. This is also a really long tooltip which probably won't fit on a single line and will therefore need to be wrapped. Hopefully the wrapping will work correctly." - ~privat:"ContextHelp/buttons/2_long"; - - let toggle = GButton.toggle_button ~label:"Override TipsQuery Label" - ~packing:box2#add () in - tooltips #set_tip toggle#coerce ~text:"Toggle TipsQuery view." - ~privat:"Hi msw! ;)"; - - let box3 = GPack.vbox ~spacing:5 ~border_width:5 () in - - let button = GButton.button ~label:"[?]" - ~packing:box3#pack () in - - let tips_query = GMisc.tips_query ~packing:box3#add () in - button #connect#clicked ~callback:(tips_query #start); - - tooltips #set_tip button#coerce ~text:"Start the Tooltips Inspector" - ~privat:"ContextHelp/buttons/?"; - - tips_query #set_caller button#coerce; - tips_query #connect#widget_entered - ~callback:(tips_query_widget_entered toggle tips_query); - tips_query #connect#widget_selected ~callback:tips_query_widget_selected; - - let frame = GBin.frame ~label:"Tooltips Inspector" - ~border_width:0 ~packing:(box2#pack ~expand:true ~padding:10) - ~label_xalign:0.5 ~label_yalign:0.0 () in - frame #add box3#coerce; - - GMisc.separator `HORIZONTAL ~packing:box1#pack (); - - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - tooltips #set_tip button#coerce ~text:"Push this button to close window" - ~privat:"ContextHelp/buttons/Close"; - - window #show (); - - | Some window -> window #destroy () - in aux - - -(* Labels *) -let create_labels = - let rw = ref None in - let aux () = - match !rw with - | None -> - - let window = GWindow.window ~title:"Labels" ~border_width:5 () in - rw := Some window; - window #connect#destroy - ~callback:(fun _ -> rw := None); - - let hbox = GPack.hbox ~spacing:5 ~packing:window#add () in - let vbox = GPack.vbox ~spacing:5 ~packing:hbox#add () in - - let frame = GBin.frame ~label:"Normal Label" - ~packing:vbox#pack () in - GMisc.label ~text:"This is a normal label" ~packing:frame#add (); - - let frame = GBin.frame ~label:"Multi_line Label" - ~packing:vbox#pack () in - GMisc.label ~packing:frame#add - ~text:"This is a multi-line label.\nSecond line\nThird line" (); - - let frame = GBin.frame ~label:"Left Justified Label" - ~packing:vbox#pack () in - GMisc.label ~packing:frame#add ~justify:`LEFT - ~text:"This is a left justified\nmulti_line label\nThird line" (); - - let frame = GBin.frame ~label:"Right Justified Label" - ~packing:vbox#pack () in - GMisc.label ~packing:frame#add ~justify:`RIGHT - ~text:"This is a right justified\nmulti_line label\nThird line" (); - - let vbox = GPack.vbox ~spacing:5 ~packing:hbox#add () in - - let frame = GBin.frame ~label:"Line wrapped Label" - ~packing:vbox#pack () in - GMisc.label ~packing:frame#add ~line_wrap:true - ~text:"This is an example of a line-wrapped label. It should not be taking up the entire width allocated to it, but automatically wraps the words to fit. The time has come, for all good men, to come to the aid of their party. The sixth sheik's six sheep's sick.\n It supports multiple paragraphs correctly, and correctly adds many extra spaces. " (); - - let frame = GBin.frame ~label:"Underlined Label" - ~packing:vbox#pack () in - GMisc.label ~text:"This label is underlined!\nThis one is underlined in a quite a funky fashion" ~packing:frame#add - ~justify:`LEFT ~pattern:"_________________________ _ _________ _ _____ _ __ __ ___ ____ _____" (); - - window #show (); - - | Some window -> window #destroy () - in aux - - -(* reparent *) - - -let set_parent child old_parent = - let name_opt = function - | None -> "(NULL)" - | Some w -> w#misc#get_type in - Printf.printf - "set parent for \"%s\": new parent: \"%s\", old parent: \"%s\"\n" - child#misc#get_type - (match child#misc#parent with Some p -> p#misc#get_type | None -> "(NULL)") - (name_opt old_parent) - -let reparent_label (label : GMisc.label) new_parent _ = - label #misc#reparent new_parent - - - -let create_reparent = - let rw = ref None in - let aux () = - match !rw with - | None -> - - let window = GWindow.window ~title:"Reparent" ~border_width:5 () in - rw := Some window; - window #connect#destroy ~callback:(fun _ -> rw := None); - - let vbox = GPack.vbox ~packing:window#add () in - let hbox = GPack.hbox ~spacing:5 ~border_width:10 - ~packing:vbox#add () in - - let frame = GBin.frame ~label:"Frame1" ~packing:hbox#add () in - let vbox2 = GPack.vbox ~spacing:5 ~border_width:5 - ~packing:frame#add () in - let label = GMisc.label ~text:"Hello world" - ~packing:vbox2#pack () in - label #misc#connect#parent_set ~callback:(set_parent label); - let button = GButton.button ~label:"switch" - ~packing:vbox2#pack () in - button #connect#clicked ~callback:(reparent_label label vbox2#coerce); - - let frame = GBin.frame ~label:"Frame2" ~packing:hbox#add () in - let vbox2 = GPack.vbox ~spacing:5 ~packing:frame#add ~border_width:5 () in - let button = GButton.button ~label:"switch" - ~packing:vbox2#pack () in - button #connect#clicked ~callback:(reparent_label label vbox2#coerce); - - GMisc.separator `HORIZONTAL ~packing:vbox#pack (); - - let vbox = GPack.vbox ~spacing:10 ~border_width:10 - ~packing:vbox#pack () in - - let button = GButton.button ~label: "close" ~packing:vbox#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - - window #show (); - - | Some window -> window #destroy () - in aux - - - - -let create_main_window () = - let buttons = [ - "button box", Some create_button_box; - "buttons", Some create_buttons; - "check buttons", Some create_check_buttons; - "clist", None; - "color selection", None; - "ctree", None; - "cursors", None; - "dialog", None; - "entry", None; - "event watcher", None; - "file selection", None; - "font selection", None; - "gamma curve", None; - "handle box", Some create_handle_box; - "item factory", None; - "labels", Some create_labels; - "layout", None; - "list", None; - "menus", Some create_menus; - "modal windows", Some create_modal_window; - "notebooks", None; - "panes", None; - "pixmap", None; - "preview color", None; - "preview gray", None; - "progress bar", None; - "radio buttons", Some create_radio_buttons; - "range controls", None; - "rc file", None; - "reparent", Some create_reparent; - "rulers", None; - "saved position", None; - "scrolled windows", Some create_scrolled_windows; - "shapes", None; - "spinbutton", None; - "statusbar", None; - "test idle", None; - "test mainloop", None; - "test scrolling", None; - "test selection", None; - "test timeout", None; - "text", None; - "toggle buttons", Some create_toggle_buttons; - "toolbar", Some create_toolbar; - "tooltips", Some create_tooltips; - "tree", Some create_tree_mode_window; - "WM hints", None - ] in - - let window = GWindow.window ~title:"main window" ~allow_shrink:false - ~allow_grow:false ~auto_shrink:false ~width:200 ~height:400 ~x:20 ~y:20 () in - - window #connect#destroy ~callback: Main.quit; - - let box1 = GPack.vbox ~packing: window#add () in - - GMisc.label ~text: "Gtk+ v1.2" ~packing:box1#pack (); - - let scrolled_window = GBin.scrolled_window ~border_width: 10 - ~hpolicy: `AUTOMATIC ~vpolicy: `AUTOMATIC - ~packing:box1#add () in - - let box2 = GPack.vbox ~border_width: 10 - ~packing:scrolled_window#add_with_viewport () in - box2 #focus#set_vadjustment (Some scrolled_window#vadjustment); - - let rec aux = function - | [] -> () - | (_, None) :: tl -> aux tl - | (label, Some func) :: tl -> - let button = GButton.button ~label: label ~packing: box2#add () in - button #connect#clicked ~callback: func; - aux tl - in aux buttons; - - GMisc.separator `HORIZONTAL ~packing: box1#pack (); - - let box2 = GPack.vbox ~spacing: 10 ~border_width: 10 - ~packing: box1#pack () in - - let button = GButton.button ~label: "close" ~packing: box2#add () in - button #connect#clicked ~callback: window#destroy; - button #grab_default (); - - window #show (); - - Main.main () - -let _ = create_main_window () - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testinput.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testinput.ml deleted file mode 100644 index a6aceb825..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/testinput.ml +++ /dev/null @@ -1,43 +0,0 @@ -(* $Id$ *) - -open GMain - -let main () = - let window = GWindow.window () in - window#misc#set_name "Test input"; - window#connect#destroy ~callback:Main.quit; - - let vbox = GPack.vbox ~packing:window#add () in - - let drawing_area = - GMisc.drawing_area ~width:200 ~height:200 ~packing:vbox#add () in - - drawing_area#event#connect#key_press ~callback: - begin fun ev -> - let key = GdkEvent.Key.keyval ev in - if key >= 32 && key < 256 then - Printf.printf "I got a %c\n" (Char.chr key) - else - print_string "I got another key\n"; - flush stdout; - true - end; - - drawing_area#event#add - [`EXPOSURE;`LEAVE_NOTIFY;`BUTTON_PRESS; - `POINTER_MOTION;`POINTER_MOTION_HINT;`PROXIMITY_OUT]; - drawing_area#event#set_extensions `ALL; - drawing_area#misc#set_can_focus true; - drawing_area#misc#grab_focus (); - - GButton.button ~label:"Input Dialog" ~packing:vbox#pack (); - - let button = - GButton.button ~label:"Quit" ~packing:vbox#pack () in - - button#connect#clicked ~callback:window#destroy; - - window#show (); - Main.main () - -let _ = main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/tictactoe.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/tictactoe.ml deleted file mode 100644 index be01e19b9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/tictactoe.ml +++ /dev/null @@ -1,113 +0,0 @@ -(* $Id$ *) - -open GtkNew -open GtkBase - -(* To create a new widget: - create an array sig_array containing the signals defined by - the new widget; - call: - make_new_widget name parent:parent signal_array:sig_array - where name is the name of the new widget (a string) - parent is the type of the parent: of type Gtk.New.object_type - This call returns a triple: - (get_type_func, new_func, sig_array_num) - where get_type_func is the new widget get_type function, - new_func is the function returning a new widget of the new type - sig_array_num is an array containing the Gtk id of the signals - of the new widget. -*) - -module Tictactoe = struct - type t = [`widget|`container|`box|`tictactoe] - module Signals = struct - open GtkSignal - let tictactoe : ([>`tictactoe],_) t = - { name = "tictactoe"; marshaller = marshal_unit } - let emit_tictactoe = emit_unit ~sgn:tictactoe - end - let create : unit -> t Gtk.obj = - let _,tictactoe_new = make_new_widget - ~name:"Tictactoe" ~parent:VBOX ~signals:[Signals.tictactoe] - in fun () -> Object.try_cast (tictactoe_new ()) "Tictactoe" -end - -open GMain - -class tictactoe_signals obj = object - inherit GContainer.container_signals obj - method tictactoe = - GtkSignal.connect ~sgn:Tictactoe.Signals.tictactoe obj ~after -end - -exception Trouve - -class tictactoe ?packing ?show () = - let obj : Tictactoe.t Gtk.obj = Tictactoe.create () in - let box = new GPack.box_skel obj in -object (self) - inherit GObj.widget obj - val mutable buttons = [||] - val mutable buttons_handlers = [||] - val label = GMisc.label ~text:"Go on!" ~packing:box#add () - method clear () = - for i = 0 to 2 do - for j = 0 to 2 do - let button = buttons.(i).(j) - and handler = buttons_handlers.(i).(j) in - button#misc#handler_block handler; - button#set_active false; - button#misc#handler_unblock handler - done - done - method connect = new tictactoe_signals obj - method emit_tictactoe () = - GtkSignal.emit_unit obj ~sgn:Tictactoe.Signals.tictactoe - method toggle () = - let rwins = [| [| 0; 0; 0 |]; [| 1; 1; 1 |]; [| 2; 2; 2 |]; - [| 0; 1; 2 |]; [| 0; 1; 2 |]; [| 0; 1; 2 |]; - [| 0; 1; 2 |]; [| 0; 1; 2 |] |] - and cwins = [| [| 0; 1; 2 |]; [| 0; 1; 2 |]; [| 0; 1; 2 |]; - [| 0; 0; 0 |]; [| 1; 1; 1 |]; [| 2; 2; 2 |]; - [| 0; 1; 2 |]; [| 2; 1; 0 |] |] in - label#set_text"Go on!"; - try - for k = 0 to 7 do - let rec aux i = - (i = 3) || - (buttons.(rwins.(k).(i)).(cwins.(k).(i))#active) && (aux (i+1)) in - if aux 0 then raise Trouve - done - with Trouve -> label#set_text "Win!!"; self#emit_tictactoe () - - initializer - let table = - GPack.table ~rows:3 ~columns:3 ~homogeneous:true ~packing:box#add () in - buttons <- - Array.init 3 ~f: - (fun i -> Array.init 3 ~f: - (fun j -> - GButton.toggle_button ~width:20 ~height:20 - ~packing:(table#attach ~left:i ~top:j ~expand:`BOTH) ())); - buttons_handlers <- - Array.mapi buttons ~f: - (fun i -> Array.mapi ~f: - (fun j button -> button #connect#toggled ~callback:self#toggle)); - GObj.pack_return self ~packing ~show; - () -end - -let win (ttt : tictactoe) _ = - Printf.printf "Gagne!!\n" ; - ttt #clear () - -let essai () = - let window = GWindow.window ~title:"Tictactoe" ~border_width:10 () in - window #connect#destroy ~callback:Main.quit; - let ttt = new tictactoe ~packing:window#add () in - ttt #connect#tictactoe ~callback:(win ttt); - window #show (); - Main.main () - -let _ = essai () - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/tron.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/tron.ml deleted file mode 100644 index eced44a9c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/tron.ml +++ /dev/null @@ -1,204 +0,0 @@ -(* $Id$ *) - -(* Tron? Game *) -open GMain - -let m_pi = acos (-1.) -let clRed = `NAME "red" (* `BLACK *) -let clBlue = `NAME "blue" (* `WHITE *) -let clBlack = `BLACK - -type point = {mutable x: int; mutable y: int} - -let main () = -(* Game State *) - let gameSize = 64 in - let gameState = - Array.create_matrix ~dimx:(gameSize+2) ~dimy:(gameSize+2) 0 in - let gameInit _ = - for i=1 to gameSize do - for j=1 to gameSize do - gameState.(i).(j) <- 0; - done - done; - for i=0 to gameSize do - gameState.(0).(i) <- 3; (* left wall *) - gameState.(i).(gameSize+1) <- 3; (* floor *) - gameState.(gameSize+1).(i+1) <- 3; (* right wall *) - gameState.(i+1).(0) <- 3 (* ceiling *) - done in - gameInit (); - let lpos = {x=4; y=4} in - let lspeed = {x=0; y=1} in - let rpos = {x=gameSize-3; y=gameSize-3} in - let rspeed = {x=0; y= -1} in - let keys = "asdfhjkl" in - let keyMapL = [|(-1, 0); (0, -1); (0, 1); (1, 0)|] in - let keyMapR = [|(-1, 0); (0, 1); (0, -1); (1, 0)|] in - -(* User Interface *) - let window = GWindow.window ~border_width:10 ~title:"tron(?)" () in - window#event#connect#delete - ~callback:(fun _ -> prerr_endline "Delete event occured"; false); - window#connect#destroy ~callback:Main.quit; - let vbx = GPack.vbox ~packing:window#add () in - let area = GMisc.drawing_area ~width:((gameSize+2)*4) ~height:((gameSize+2)*4) - ~packing:vbx#add () in - let drawing = area#misc#realize (); new GDraw.drawable (area#misc#window) in - let style = area#misc#style#copy in - style#set_bg [`NORMAL,`WHITE]; - area#misc#set_style style; - drawing#set_background `WHITE; - let area_expose _ = - for i=0 to gameSize+1 do - for j=0 to gameSize+1 do - if gameState.(i).(j) = 1 then begin - drawing#set_foreground clRed; - drawing#rectangle ~filled:true ~x:(i*4) ~y:(j*4) ~width:4 ~height:4 () - end - else if gameState.(i).(j) = 2 then begin - drawing#set_foreground clBlue; - drawing#rectangle ~filled:true ~x:(i*4) ~y:(j*4) ~width:4 ~height:4 () - end - else if gameState.(i).(j) = 3 then begin - drawing#set_foreground clBlack; - drawing#rectangle ~filled:true ~x:(i*4) ~y:(j*4) ~width:4 ~height:4 () - end - done - done; - false - in - area#event#connect#expose ~callback:area_expose; - let control = GPack.table ~rows:3 ~columns:7 ~packing:vbx#pack () in - - let abuttonClicked num (lbl : GMisc.label) _ = begin - let dialog = - GWindow.window ~kind:`DIALOG ~border_width:10 ~title:"Key remap" () in - let dvbx = GPack.box `VERTICAL ~packing:dialog#add () in - let entry = GEdit.entry ~max_length:1 ~packing: dvbx#add () in - let txt = String.make 1 keys.[num] in - entry#set_text txt; - let dquit = GButton.button ~label:"OK" ~packing: dvbx#add () in - dquit#connect#clicked ~callback: - begin fun _ -> - let chr = entry#text.[0] in - let txt2 = String.make 1 chr in - lbl#set_text txt2; - keys.[num]<-chr; - dialog#destroy () - end; - dialog#show () - end in - let attach = control#attach ~expand:`BOTH in - let new_my_button ~label:label ~left:left ~top:top = - let str = String.make 1 keys.[label] in - let btn = GButton.button ~packing:(attach ~left:left ~top:top) () in - let lbl = GMisc.label ~text:str ~packing:(btn#add) () in - btn#connect#clicked ~callback:(abuttonClicked label lbl); - btn - in - new_my_button ~label:0 ~left:1 ~top:2; - new_my_button ~label:1 ~left:2 ~top:1; - new_my_button ~label:2 ~left:2 ~top:3; - new_my_button ~label:3 ~left:3 ~top:2; - new_my_button ~label:4 ~left:5 ~top:2; - new_my_button ~label:5 ~left:6 ~top:3; - new_my_button ~label:6 ~left:6 ~top:1; - new_my_button ~label:7 ~left:7 ~top:2; - let quit = - GButton.button ~label:"Quit" ~packing:(attach ~left:4 ~top:2) () in - quit#connect#clicked ~callback:window#destroy; - let message = GMisc.label ~text:"tron(?) game" ~packing:vbx#pack () in - - let game_step () = - let lx = lpos.x in let ly = lpos.y in - gameState.(lx).(ly) <- 1; - drawing#set_foreground clRed; - drawing#rectangle ~filled:true ~x:(lx*4) ~y:(ly*4) ~width:4 ~height:4 (); - let rx = rpos.x in let ry = rpos.y in - gameState.(rx).(ry) <- 2; - drawing#set_foreground clBlue; - drawing#rectangle ~filled:true ~x:(rx*4) ~y:(ry*4) ~width:4 ~height:4 () - in - game_step (); - let keyDown ev = begin - let key = GdkEvent.Key.keyval ev in - for i=0 to (Array.length keyMapL)-1 do - let (x, y) = keyMapL.(i) in - let k = keys.[i] in - if key = Char.code k then begin - lspeed.x <- x; - lspeed.y <- y - end; - let (x, y) = keyMapR.(i) in - let k = keys.[i+4] in - if key = Char.code k then begin - rspeed.x <- x; - rspeed.y <- y - end - done; - false end in - window#event#connect#key_press ~callback:keyDown; - let safe_check _ = - if lpos.x == rpos.x && lpos.y == rpos.y then - 3 - else - (* player 1 *) - (if gameState.(lpos.x).(lpos.y) != 0 then 2 else 0) - + - (* player 2 *) - (if gameState.(rpos.x).(rpos.y) != 0 then 1 else 0) - in - let timerID = ref (* dummy *) (Timeout.add ~ms:100 ~callback:(fun _ -> true)) in - let timerTimer _ = begin - lpos.x <- lpos.x+lspeed.x; - lpos.y <- lpos.y+lspeed.y; - rpos.x <- rpos.x+rspeed.x; - rpos.y <- rpos.y+rspeed.y; - let result = safe_check() in - if result!=0 then begin - Timeout.remove (!timerID); - message#set_text ("player "^string_of_int result^" won.") - end - else begin - game_step() - end; - true - end in - let count = ref 3 in - let timerTimer2 _ = begin -(* message#set_label (string_of_int (!count)); *) - if (!count==0) then begin - Timeout.remove (!timerID); - timerID := Timeout.add ~ms:100 ~callback:timerTimer - end - else begin - count := !count-1; - end; - true - end in - let restartClicked () = - Timeout.remove !timerID; - gameInit(); - lpos.x <- 4; lpos.y <- 4; - lspeed.x <- 0; lspeed.y <- 1; - rpos.x <- gameSize-3; rpos.y <- gameSize-3; - rspeed.x <- 0; rspeed.y <- -1; - drawing#set_foreground `WHITE; - drawing#rectangle ~filled:true ~x:0 ~y:0 - ~width:((gameSize+2)*4) ~height:((gameSize+2)*4) (); - area_expose(); - count := 3; - timerID := Timeout.add ~ms:300 ~callback:timerTimer2; - in - let restart = - GButton.button ~label: "Restart" ~packing:(attach ~left:4 ~top:3) () in - restart#connect#clicked ~callback:restartClicked; - restartClicked (); - - window#show (); - Main.main () - -let _ = Printexc.print main () - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/xmhtml/test.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/xmhtml/test.ml deleted file mode 100644 index 6c9d3715a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/xmhtml/test.ml +++ /dev/null @@ -1,38 +0,0 @@ -(* $Id$ *) - -let test_string2 = String.concat ~sep:"" [ - "\n"; - "The Gtk/XmHTML test\n"; - "This is the Gtk/XmHTML test program

    \n"; - "You can invoke this program with a command line argument, like this:\n"; - "


    "; - "./xtest filename.html"; - "
    "; - "Click here to load a different
    test message"; - ""; -] - -let read_file file = - let ic = open_in file in - let b = Buffer.create 16384 and s = String.create 1024 and len = ref 0 in - while len := input ic ~buf:s ~pos:0 ~len:1024; !len > 0 do - Buffer.add_substring b s ~pos:0 ~len:!len - done; - Buffer.contents b - -open GMain - -let _ = - let w = GWindow.window ~width:600 ~height:500 () in - w#connect#destroy ~callback:Main.quit; - let source = - if Array.length Sys.argv > 1 then begin - Sys.chdir (Filename.dirname Sys.argv.(1)); - read_file (Filename.basename Sys.argv.(1)) - end - else test_string2 in - let html = GHtml.xmhtml ~source ~packing:w#add () in - html#set_anchor_buttons false; - html#set_anchor_underline [`SINGLE;`DASHED]; - w#show (); - Main.main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gBin.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gBin.ml deleted file mode 100644 index f248ba0f8..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gBin.ml +++ /dev/null @@ -1,153 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkBin -open GObj -open GContainer - -class scrolled_window obj = object - inherit container_full (obj : Gtk.scrolled_window obj) - method hadjustment = - new GData.adjustment (ScrolledWindow.get_hadjustment obj) - method vadjustment = - new GData.adjustment (ScrolledWindow.get_vadjustment obj) - method set_hadjustment adj = - ScrolledWindow.set_hadjustment obj (GData.as_adjustment adj) - method set_vadjustment adj = - ScrolledWindow.set_vadjustment obj (GData.as_adjustment adj) - method set_hpolicy hpolicy = ScrolledWindow.set_policy' obj ~hpolicy - method set_vpolicy vpolicy = ScrolledWindow.set_policy' obj ~vpolicy - method set_placement = ScrolledWindow.set_placement obj - method add_with_viewport w = - ScrolledWindow.add_with_viewport obj (as_widget w) -end - -let scrolled_window ?hadjustment ?vadjustment ?hpolicy ?vpolicy - ?placement ?border_width ?width ?height ?packing ?show () = - let w = - ScrolledWindow.create () - ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment) - ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) in - ScrolledWindow.set w ?hpolicy ?vpolicy ?placement; - Container.set w ?border_width ?width ?height; - pack_return (new scrolled_window w) ~packing ~show - -class event_box obj = object - inherit container_full (obj : Gtk.event_box obj) - method event = new GObj.event_ops obj -end - -let event_box ?border_width ?width ?height ?packing ?show () = - let w = EventBox.create () in - Container.set w ?border_width ?width ?height; - pack_return (new event_box w) ~packing ~show - -class handle_box_signals obj = object - inherit container_signals obj - method child_attached ~callback = - GtkSignal.connect ~sgn:HandleBox.Signals.child_attached obj ~after - ~callback:(fun obj -> callback (new widget obj)) - method child_detached ~callback = - GtkSignal.connect ~sgn:HandleBox.Signals.child_detached obj ~after - ~callback:(fun obj -> callback (new widget obj)) -end - -class handle_box obj = object - inherit container (obj : Gtk.handle_box obj) - method set_shadow_type = HandleBox.set_shadow_type obj - method set_handle_position = HandleBox.set_handle_position obj - method set_snap_edge = HandleBox.set_snap_edge obj - method connect = new handle_box_signals obj - method event = new GObj.event_ops obj -end - -let handle_box ?border_width ?width ?height ?packing ?show () = - let w = HandleBox.create () in - let () = Container.set w ?border_width ?width ?height in - pack_return (new handle_box w) ~packing ~show - -class frame_skel obj = object - inherit container obj - method set_label = Frame.set_label obj - method set_label_align ?x ?y () = Frame.set_label_align' obj ?x ?y - method set_shadow_type = Frame.set_shadow_type obj -end - -class frame obj = object - inherit frame_skel (Frame.coerce obj) - method connect = new container_signals obj -end - -let frame ?(label="") ?label_xalign ?label_yalign ?shadow_type - ?border_width ?width ?height ?packing ?show () = - let w = Frame.create label in - Frame.set w ?label_xalign ?label_yalign ?shadow_type; - Container.set w ?border_width ?width ?height; - pack_return (new frame w) ~packing ~show - -class aspect_frame obj = object - inherit frame_skel (obj : Gtk.aspect_frame obj) - method connect = new container_signals obj - method set_alignment ?x ?y () = AspectFrame.set obj ?xalign:x ?yalign:y - method set_ratio ratio = AspectFrame.set obj ~ratio - method set_obey_child obey_child = AspectFrame.set obj ~obey_child -end - -let aspect_frame ?label ?xalign ?yalign ?ratio ?obey_child - ?label_xalign ?label_yalign ?shadow_type - ?border_width ?width ?height ?packing ?show () = - let w = - AspectFrame.create ?label ?xalign ?yalign ?ratio ?obey_child () in - Frame.set w ?label_xalign ?label_yalign ?shadow_type; - Container.set w ?border_width ?width ?height; - pack_return (new aspect_frame w) ~packing ~show - -class viewport obj = object - inherit container_full (obj : Gtk.viewport obj) - method event = new event_ops obj - method set_hadjustment adj = - Viewport.set_hadjustment obj (GData.as_adjustment adj) - method set_vadjustment adj = - Viewport.set_vadjustment obj (GData.as_adjustment adj) - method set_shadow_type = Viewport.set_shadow_type obj - method hadjustment = new GData.adjustment (Viewport.get_hadjustment obj) - method vadjustment = new GData.adjustment (Viewport.get_vadjustment obj) -end - -let viewport ?hadjustment ?vadjustment ?shadow_type - ?border_width ?width ?height ?packing ?show () = - let w = Viewport.create () - ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment) - ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) in - may shadow_type ~f:(Viewport.set_shadow_type w); - Container.set w ?border_width ?width ?height; - pack_return (new viewport w) ~packing ~show - -class alignment obj = object - inherit container_full (obj : Gtk.alignment obj) - method set_alignment ?x ?y () = Alignment.set ?x ?y obj - method set_scale ?x ?y () = Alignment.set ?xscale:x ?yscale:y obj -end - -let alignment ?x ?y ?xscale ?yscale - ?border_width ?width ?height ?packing ?show () = - let w = Alignment.create ?x ?y ?xscale ?yscale () in - Container.set w ?border_width ?width ?height; - pack_return (new alignment w) ~packing ~show - -let alignment_cast w = new alignment (Alignment.cast w#as_widget) - -class socket obj = object (self) - inherit container_full (obj : Gtk.socket obj) - method steal = Socket.steal obj - method xwindow = - self#misc#realize (); - Gdk.Window.get_xwindow self#misc#window -end - -let socket ?border_width ?width ?height ?packing ?show () = - let w = Socket.create () in - Container.set w ?border_width ?width ?height; - pack_return (new socket w) ?packing ?show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gBin.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gBin.mli deleted file mode 100644 index 9593650c3..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gBin.mli +++ /dev/null @@ -1,163 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class scrolled_window : Gtk.scrolled_window obj -> - object - inherit container_full - val obj : Gtk.scrolled_window obj - method add_with_viewport : widget -> unit - method hadjustment : GData.adjustment - method set_hadjustment : GData.adjustment -> unit - method set_hpolicy : Tags.policy_type -> unit - method set_placement : Tags.corner_type -> unit - method set_vadjustment : GData.adjustment -> unit - method set_vpolicy : Tags.policy_type -> unit - method vadjustment : GData.adjustment - end -val scrolled_window : - ?hadjustment:GData.adjustment -> - ?vadjustment:GData.adjustment -> - ?hpolicy:Tags.policy_type -> - ?vpolicy:Tags.policy_type -> - ?placement:Tags.corner_type -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> scrolled_window - -class event_box : Gtk.event_box obj -> - object - inherit container_full - val obj : Gtk.event_box obj - method event : event_ops - end -val event_box : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> event_box - -class handle_box_signals : 'a obj -> - object - inherit container_signals - constraint 'a = [>`handlebox|`container|`widget] - val obj : 'a obj - method child_attached : callback:(widget -> unit) -> GtkSignal.id - method child_detached : callback:(widget -> unit) -> GtkSignal.id - end - -class handle_box : Gtk.handle_box obj -> - object - inherit container - val obj : Gtk.handle_box obj - method event : event_ops - method connect : handle_box_signals - method set_handle_position : Tags.position -> unit - method set_shadow_type : Tags.shadow_type -> unit - method set_snap_edge : Tags.position -> unit - end -val handle_box : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> handle_box - -class frame_skel : 'a obj -> - object - inherit container - constraint 'a = [>`frame|`container|`widget] - val obj : 'a obj - method set_label : string -> unit - method set_label_align : ?x:clampf -> ?y:clampf -> unit -> unit - method set_shadow_type : Tags.shadow_type -> unit - end -class frame : [>`frame] obj -> - object - inherit frame_skel - val obj : Gtk.frame obj - method connect : GContainer.container_signals - end -val frame : - ?label:string -> - ?label_xalign:clampf -> - ?label_yalign:clampf -> - ?shadow_type:Tags.shadow_type -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> frame - -class aspect_frame : Gtk.aspect_frame obj -> - object - inherit frame - val obj : Gtk.aspect_frame obj - method set_alignment : ?x:clampf -> ?y:clampf -> unit -> unit - method set_obey_child : bool -> unit - method set_ratio : clampf -> unit - end -val aspect_frame : - ?label:string -> - ?xalign:clampf -> - ?yalign:clampf -> - ?ratio:float -> - ?obey_child:bool -> - ?label_xalign:clampf -> - ?label_yalign:clampf -> - ?shadow_type:Tags.shadow_type -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> aspect_frame - -class viewport : Gtk.viewport obj -> - object - inherit container_full - val obj : Gtk.viewport obj - method event : event_ops - method hadjustment : GData.adjustment - method set_hadjustment : GData.adjustment -> unit - method set_shadow_type : Gtk.Tags.shadow_type -> unit - method set_vadjustment : GData.adjustment -> unit - method vadjustment : GData.adjustment - end -val viewport : - ?hadjustment:GData.adjustment -> - ?vadjustment:GData.adjustment -> - ?shadow_type:Tags.shadow_type -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> viewport - -class alignment : Gtk.alignment obj -> - object - inherit container_full - val obj : Gtk.alignment obj - method set_alignment : ?x:Gtk.clampf -> ?y:Gtk.clampf -> unit -> unit - method set_scale : ?x:Gtk.clampf -> ?y:Gtk.clampf -> unit -> unit - end -val alignment : - ?x:Gtk.clampf -> - ?y:Gtk.clampf -> - ?xscale:Gtk.clampf -> - ?yscale:Gtk.clampf -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> alignment -val alignment_cast : < as_widget : 'a obj; .. > -> alignment - -class socket : Gtk.socket obj -> - object - inherit container_full - val obj : Gtk.socket obj - method steal : Gdk.xid -> unit - method xwindow : Gdk.xid - end - -val socket : - ?border_width:int -> ?width:int -> ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> socket diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gButton.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gButton.ml deleted file mode 100644 index 08ac70445..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gButton.ml +++ /dev/null @@ -1,124 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkButton -open GObj -open GContainer - -class button_skel obj = object (self) - inherit container obj - method clicked () = Button.clicked obj - method grab_default () = - Widget.set_can_default obj true; - Widget.grab_default obj -end - -class button_signals obj = object - inherit container_signals obj - method clicked = GtkSignal.connect ~sgn:Button.Signals.clicked ~after obj - method pressed = GtkSignal.connect ~sgn:Button.Signals.pressed ~after obj - method released = GtkSignal.connect ~sgn:Button.Signals.released ~after obj - method enter = GtkSignal.connect ~sgn:Button.Signals.enter ~after obj - method leave = GtkSignal.connect ~sgn:Button.Signals.leave ~after obj -end - -class button obj = object - inherit button_skel (Button.coerce obj) - method connect = new button_signals obj - method event = new GObj.event_ops obj -end - -let button ?label ?border_width ?width ?height ?packing ?show () = - let w = Button.create ?label () in - Container.set w ?border_width ?width ?height; - pack_return (new button w) ~packing ~show - -class toggle_button_signals obj = object - inherit button_signals obj - method toggled = - GtkSignal.connect ~sgn:ToggleButton.Signals.toggled obj ~after -end - -class toggle_button obj = object - inherit button_skel obj - method connect = new toggle_button_signals obj - method active = ToggleButton.get_active obj - method set_active = ToggleButton.set_active obj - method set_draw_indicator = ToggleButton.set_mode obj -end - -let toggle_button ?label ?active ?draw_indicator - ?border_width ?width ?height ?packing ?show () = - let w = ToggleButton.create_toggle ?label () in - ToggleButton.set w ?active ?draw_indicator; - Container.set w ?border_width ?width ?height; - pack_return (new toggle_button w) ~packing ~show - -let check_button ?label ?active ?draw_indicator - ?border_width ?width ?height ?packing ?show () = - let w = ToggleButton.create_check ?label () in - ToggleButton.set w ?active ?draw_indicator; - Container.set w ?border_width ?width ?height; - pack_return (new toggle_button w) ~packing ~show - -class radio_button obj = object - inherit toggle_button (obj : Gtk.radio_button obj) - method set_group = RadioButton.set_group obj - method group = Some obj -end - -let radio_button ?group ?label ?active ?draw_indicator - ?border_width ?width ?height ?packing ?show () = - let w = RadioButton.create ?group ?label () in - ToggleButton.set w ?active ?draw_indicator; - Container.set w ?border_width ?width ?height; - pack_return (new radio_button w) ~packing ~show - -class toolbar obj = object - inherit container_full (obj : Gtk.toolbar obj) - method insert_widget ?tooltip ?tooltip_private ?pos w = - Toolbar.insert_widget obj (as_widget w) ?tooltip ?tooltip_private ?pos - - method insert_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new button - (Toolbar.insert_button obj ~kind:`BUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ()) - - method insert_toggle_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new toggle_button - (ToggleButton.cast - (Toolbar.insert_button obj ~kind:`TOGGLEBUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ())) - - method insert_radio_button ?text ?tooltip ?tooltip_private ?icon - ?pos ?callback () = - let icon = may_map icon ~f:as_widget in - new radio_button - (RadioButton.cast - (Toolbar.insert_button obj ~kind:`RADIOBUTTON ?icon ?text - ?tooltip ?tooltip_private ?pos ?callback ())) - - method insert_space = Toolbar.insert_space obj - - method set_orientation = Toolbar.set_orientation obj - method set_style = Toolbar.set_style obj - method set_space_size = Toolbar.set_space_size obj - method set_space_style = Toolbar.set_space_style obj - method set_tooltips = Toolbar.set_tooltips obj - method set_button_relief = Toolbar.set_button_relief obj - method button_relief = Toolbar.get_button_relief obj -end - -let toolbar ?(orientation=`HORIZONTAL) ?style - ?space_size ?space_style ?tooltips ?button_relief - ?border_width ?width ?height ?packing ?show () = - let w = Toolbar.create orientation ?style () in - Toolbar.set w ?space_size ?space_style ?tooltips ?button_relief; - Container.set w ?border_width ?width ?height; - pack_return (new toolbar w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gButton.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gButton.mli deleted file mode 100644 index ee2653da1..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gButton.mli +++ /dev/null @@ -1,144 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class button_skel : - 'a obj -> - object - inherit container - constraint 'a = [>`widget|`button|`container] - val obj : 'a obj - method clicked : unit -> unit - method grab_default : unit -> unit - end -class button_signals : - 'b obj -> - object ('a) - inherit container_signals - constraint 'b = [>`button|`container|`widget] - val obj : 'b obj - method clicked : callback:(unit -> unit) -> GtkSignal.id - method enter : callback:(unit -> unit) -> GtkSignal.id - method leave : callback:(unit -> unit) -> GtkSignal.id - method pressed : callback:(unit -> unit) -> GtkSignal.id - method released : callback:(unit -> unit) -> GtkSignal.id - end - -class button : - [>`button] obj -> - object - inherit button_skel - val obj : Gtk.button obj - method event : event_ops - method connect : button_signals - end -val button : - ?label:string -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> button - -class toggle_button_signals : - 'b obj -> - object ('a) - inherit button_signals - constraint 'b = [>`toggle|`button|`container|`widget] - val obj : 'b obj - method toggled : callback:(unit -> unit) -> GtkSignal.id - end - -class toggle_button : - 'a obj -> - object - inherit button_skel - constraint 'a = [>`toggle|`button|`container|`widget] - val obj : 'a obj - method active : bool - method connect : toggle_button_signals - method set_active : bool -> unit - method set_draw_indicator : bool -> unit - end -val toggle_button : - ?label:string -> - ?active:bool -> - ?draw_indicator:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> toggle_button -val check_button : - ?label:string -> - ?active:bool -> - ?draw_indicator:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> toggle_button - -class radio_button : - Gtk.radio_button obj -> - object - inherit toggle_button - val obj : Gtk.radio_button obj - method group : Gtk.radio_button group - method set_group : Gtk.radio_button group -> unit - end -val radio_button : - ?group:Gtk.radio_button group -> - ?label:string -> - ?active:bool -> - ?draw_indicator:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> radio_button - -class toolbar : - Gtk.toolbar obj -> - object - inherit container_full - val obj : Gtk.toolbar obj - method button_relief : Tags.relief_style - method insert_button : - ?text:string -> - ?tooltip:string -> - ?tooltip_private:string -> - ?icon:widget -> - ?pos:int -> ?callback:(unit -> unit) -> unit -> button - method insert_radio_button : - ?text:string -> - ?tooltip:string -> - ?tooltip_private:string -> - ?icon:widget -> - ?pos:int -> ?callback:(unit -> unit) -> unit -> radio_button - method insert_space : ?pos:int -> unit -> unit - method insert_toggle_button : - ?text:string -> - ?tooltip:string -> - ?tooltip_private:string -> - ?icon:widget -> - ?pos:int -> ?callback:(unit -> unit) -> unit -> toggle_button - method insert_widget : - ?tooltip:string -> - ?tooltip_private:string -> ?pos:int -> widget -> unit - method set_button_relief : Tags.relief_style -> unit - method set_orientation : Tags.orientation -> unit - method set_space_size : int -> unit - method set_space_style : [`EMPTY|`LINE] -> unit - method set_style : Tags.toolbar_style -> unit - method set_tooltips : bool -> unit - end -val toolbar : - ?orientation:Tags.orientation -> - ?style:Tags.toolbar_style -> - ?space_size:int -> - ?space_style:[`EMPTY|`LINE] -> - ?tooltips:bool -> - ?button_relief:Tags.relief_style -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> toolbar diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gContainer.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gContainer.ml deleted file mode 100644 index 2ea765e83..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gContainer.ml +++ /dev/null @@ -1,75 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GObj -open GData - -class focus obj = object - val obj = obj - method circulate = Container.focus obj - method set (child : widget option) = - let child = may_map child ~f:(fun x -> x#as_widget) in - Container.set_focus_child obj (Gpointer.optboxed child) - method set_hadjustment adj = - Container.set_focus_hadjustment obj - (Gpointer.optboxed (may_map adj ~f:as_adjustment)) - method set_vadjustment adj = - Container.set_focus_vadjustment obj - (Gpointer.optboxed (may_map adj ~f:as_adjustment)) -end - -class container obj = object (self) - inherit widget obj - method add w = - (* Hack to avoid creating a bin class *) - if GtkBase.Object.is_a obj "GtkBin" && Container.children obj <> [] then - raise (Gtk.Error "GContainer.container#add: already full"); - Container.add obj (as_widget w) - method remove w = Container.remove obj (as_widget w) - method children = List.map ~f:(new widget) (Container.children obj) - method set_border_width = Container.set_border_width obj - method focus = new focus obj -end - -class container_signals obj = object - inherit widget_signals obj - method add ~callback = - GtkSignal.connect ~sgn:Container.Signals.add obj ~after - ~callback:(fun w -> callback (new widget w)) - method remove ~callback = - GtkSignal.connect ~sgn:Container.Signals.remove obj ~after - ~callback:(fun w -> callback (new widget w)) -end - -class container_full obj = object - inherit container obj - method connect = new container_signals obj -end - -let cast_container (w : widget) = - new container_full (GtkBase.Container.cast w#as_widget) - -class virtual ['a] item_container obj = object (self) - inherit widget obj - method add (w : 'a) = - Container.add obj w#as_item - method remove (w : 'a) = - Container.remove obj w#as_item - method private virtual wrap : Gtk.widget obj -> 'a - method children : 'a list = - List.map ~f:self#wrap (Container.children obj) - method set_border_width = Container.set_border_width obj - method focus = new focus obj - method virtual insert : 'a -> pos:int -> unit - method append (w : 'a) = self#insert w ~pos:(-1) - method prepend (w : 'a) = self#insert w ~pos:0 -end - -class item_signals obj = object - inherit container_signals obj - method select = GtkSignal.connect ~sgn:Item.Signals.select obj ~after - method deselect = GtkSignal.connect ~sgn:Item.Signals.deselect obj ~after - method toggle = GtkSignal.connect ~sgn:Item.Signals.toggle obj ~after -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gContainer.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gContainer.mli deleted file mode 100644 index 290982942..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gContainer.mli +++ /dev/null @@ -1,79 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj - -class focus : - 'a obj -> - object - constraint 'a = [>`container] - val obj : 'a obj - method circulate : Tags.direction_type -> bool - method set : widget option -> unit - method set_hadjustment : GData.adjustment option -> unit - method set_vadjustment : GData.adjustment option -> unit - end - -class container : - 'a obj -> - object - inherit widget - constraint 'a = [>`container|`widget] - val obj : 'a obj - method add : widget -> unit - method children : widget list - method remove : widget -> unit - method focus : focus - method set_border_width : int -> unit - end - -class container_signals : - 'a obj -> - object - inherit widget_signals - constraint 'a = [>`container|`widget] - val obj : 'a obj - method add : callback:(widget -> unit) -> GtkSignal.id - method remove : callback:(widget -> unit) -> GtkSignal.id - end - -class container_full : - 'a obj -> - object - inherit container - constraint 'a = [>`container|`widget] - val obj : 'a obj - method connect : container_signals - end - -val cast_container : widget -> container_full -(* may raise [Gtk.Cannot_cast "GtkContainer"] *) - -class virtual ['a] item_container : - 'c obj -> - object - constraint 'a = < as_item : [>`widget] obj; .. > - constraint 'c = [>`container|`widget] - inherit widget - val obj : 'c obj - method add : 'a -> unit - method append : 'a -> unit - method children : 'a list - method virtual insert : 'a -> pos:int -> unit - method prepend : 'a -> unit - method remove : 'a -> unit - method focus : focus - method set_border_width : int -> unit - method private virtual wrap : Gtk.widget obj -> 'a - end - -class item_signals : - 'a obj -> - object - inherit container_signals - constraint 'a = [>`container|`item|`widget] - val obj : 'a obj - method deselect : callback:(unit -> unit) -> GtkSignal.id - method select : callback:(unit -> unit) -> GtkSignal.id - method toggle : callback:(unit -> unit) -> GtkSignal.id - end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gData.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gData.ml deleted file mode 100644 index 52aa3f1f4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gData.ml +++ /dev/null @@ -1,60 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkData -open GObj - -class data_signals obj = object - inherit gtkobj_signals obj - method disconnect_data = - GtkSignal.connect ~sgn:Data.Signals.disconnect obj ~after -end - -class adjustment_signals obj = object - inherit data_signals obj - method changed = GtkSignal.connect ~sgn:Adjustment.Signals.changed obj ~after - method value_changed = - GtkSignal.connect ~sgn:Adjustment.Signals.value_changed obj ~after -end - -class adjustment obj = object - inherit gtkobj obj - 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 -end - -let adjustment ?(value=0.) ?(lower=0.) ?(upper=100.) - ?(step_incr=1.) ?(page_incr=10.) ?(page_size=10.) () = - let w = - Adjustment.create ~value ~lower ~upper ~step_incr ~page_incr ~page_size in - new adjustment w - -let as_adjustment (adj : adjustment) = adj#as_adjustment - -class tooltips obj = object - inherit gtkobj (obj : Gtk.tooltips obj) - method as_tooltips = obj - method connect = new data_signals obj - method enable () = Tooltips.enable obj - method disable () = Tooltips.disable obj - method set_tip ?text ?privat w = - Tooltips.set_tip obj (as_widget w) ?text ?privat - method set_delay = Tooltips.set_delay obj -end - -let tooltips ?delay () = - let tt = Tooltips.create () in - Tooltips.set tt ?delay; - new tooltips tt - - - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gData.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gData.mli deleted file mode 100644 index ae7b29eb5..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gData.mli +++ /dev/null @@ -1,60 +0,0 @@ -(* $Id$ *) - -open Gtk - -class data_signals : - 'a obj -> - object - inherit GObj.gtkobj_signals - constraint 'a = [>`data] - val obj : 'a obj - method disconnect_data : callback:(unit -> unit) -> GtkSignal.id - end - -class adjustment_signals : - 'a obj -> - object - inherit data_signals - constraint 'a = [>`adjustment|`data] - val obj : 'a obj - method changed : callback:(unit -> unit) -> GtkSignal.id - method value_changed : callback:(unit -> unit) -> GtkSignal.id - end - -class adjustment : Gtk.adjustment obj -> - object - inherit GObj.gtkobj - val obj : Gtk.adjustment obj - method as_adjustment : Gtk.adjustment obj - method clamp_page : lower:float -> upper:float -> unit - method connect : adjustment_signals - method set_value : float -> unit - method lower : float - method upper : float - method value : float - method step_increment : float - method page_increment : float - method page_size : float - end -val adjustment : - ?value:float -> - ?lower:float -> - ?upper:float -> - ?step_incr:float -> - ?page_incr:float -> ?page_size:float -> unit -> adjustment - -val as_adjustment : adjustment -> Gtk.adjustment obj - -class tooltips : - Gtk.tooltips obj -> - object - inherit GObj.gtkobj - val obj : Gtk.tooltips obj - method as_tooltips : Gtk.tooltips obj - method connect : data_signals - method disable : unit -> unit - method enable : unit -> unit - method set_delay : int -> unit - method set_tip : ?text:string -> ?privat:string -> GObj.widget -> unit - end -val tooltips : ?delay:int -> unit -> tooltips diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gDraw.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gDraw.ml deleted file mode 100644 index 5782079a0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gDraw.ml +++ /dev/null @@ -1,163 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gdk - -type color = [ - | `COLOR of Color.t - | `WHITE - | `BLACK - | `NAME of string - | `RGB of int * int * int -] - -let default_colormap = GtkBase.Widget.get_default_colormap - -let color ?(colormap = default_colormap ()) (c : color) = - match c with - | `COLOR col -> col - | #Gdk.Color.spec as def -> Color.alloc ~colormap def - -type optcolor = [ - | `COLOR of Color.t - | `WHITE - | `BLACK - | `NAME of string - | `RGB of int * int * int - | `DEFAULT -] - -let optcolor ?colormap (c : optcolor) = - match c with - | `DEFAULT -> None - | #color as c -> Some (color ?colormap c) - -class ['a] drawable ?(colormap = default_colormap ()) w = -object (self) - val colormap = colormap - val gc = GC.create w - val w : 'a Gdk.drawable = w - method color = color ~colormap - method set_foreground col = GC.set_foreground gc (self#color col) - method set_background col = GC.set_background gc (self#color col) - method gc_values = GC.get_values gc - method set_clip_region region = GC.set_clip_region gc region - method set_line_attributes ?width ?style ?cap ?join () = - let v = GC.get_values gc in - GC.set_line_attributes gc - ~width:(default v.GC.line_width ~opt:width) - ~style:(default v.GC.line_style ~opt:style) - ~cap:(default v.GC.cap_style ~opt:cap) - ~join:(default v.GC.join_style ~opt:join) - method point = Draw.point w gc - method line = Draw.line w gc - method rectangle = Draw.rectangle w gc - method arc = Draw.arc w gc - method polygon ?filled l = Draw.polygon w gc ?filled l - method string s = Draw.string w gc ~string:s - method image ~width ~height ?(xsrc=0) ?(ysrc=0) ?(xdest=0) ?(ydest=0) image = - Draw.image w gc ~image ~width ~height ~xsrc ~ysrc ~xdest ~ydest -end - -class pixmap ?colormap ?mask pm = object - inherit [[`pixmap]] drawable ?colormap pm as pixmap - val bitmap = may_map mask ~f: - begin fun x -> - let mask = new drawable x in - mask#set_foreground `WHITE; - mask - end - val mask : Gdk.bitmap option = mask - method pixmap = w - method mask = mask - method set_line_attributes ?width ?style ?cap ?join () = - pixmap#set_line_attributes ?width ?style ?cap ?join (); - may bitmap ~f:(fun m -> m#set_line_attributes ?width ?style ?cap ?join ()) - method point ~x ~y = - pixmap#point ~x ~y; - may bitmap ~f:(fun m -> m#point ~x ~y) - method line ~x ~y ~x:x' ~y:y' = - pixmap#line ~x ~y ~x:x' ~y:y'; - may bitmap ~f:(fun m -> m#line ~x ~y ~x:x' ~y:y') - method rectangle ~x ~y ~width ~height ?filled () = - pixmap#rectangle ~x ~y ~width ~height ?filled (); - may bitmap ~f:(fun m -> m#rectangle ~x ~y ~width ~height ?filled ()) - method arc ~x ~y ~width ~height ?filled ?start ?angle () = - pixmap#arc ~x ~y ~width ~height ?filled ?start ?angle (); - may bitmap - ~f:(fun m -> m#arc ~x ~y ~width ~height ?filled ?start ?angle ()); - method polygon ?filled l = - pixmap#polygon ?filled l; - may bitmap ~f:(fun m -> m#polygon ?filled l) - method string s ~font ~x ~y = - pixmap#string s ~font ~x ~y; - may bitmap ~f:(fun m -> m#string s ~font ~x ~y) -end - -class type misc_ops = object - method allocation : Gtk.rectangle - method colormap : colormap - method draw : Rectangle.t option -> unit - method hide : unit -> unit - method hide_all : unit -> unit - method intersect : Rectangle.t -> Rectangle.t option - method pointer : int * int - method realize : unit -> unit - method set_app_paintable : bool -> unit - method set_geometry : - ?x:int -> ?y:int -> ?width:int -> ?height:int -> unit -> unit - method show : unit -> unit - method unmap : unit -> unit - method unparent : unit -> unit - method unrealize : unit -> unit - method visible : bool - method visual : visual - method visual_depth : int - method window : window -end - -let pixmap ~(window : < misc : #misc_ops; .. >) - ~width ~height ?(mask=false) () = - window#misc#realize (); - let window = - try window#misc#window - with Gpointer.Null -> failwith "GDraw.pixmap : no window" - and depth = window#misc#visual_depth - and colormap = window#misc#colormap in - let mask = - if not mask then None else - let bm = Bitmap.create window ~width ~height in - let mask = new drawable bm in - mask#set_foreground `BLACK; - mask#rectangle ~x:0 ~y:0 ~width ~height ~filled:true (); - Some bm - in - new pixmap (Pixmap.create window ~width ~height ~depth) ~colormap ?mask - -let pixmap_from_xpm ~window ~file ?colormap ?transparent () = - window#misc#realize (); - let window = - try window#misc#window - with Gpointer.Null -> failwith "GDraw.pixmap_from_xpm : no window" in - let pm, mask = - try Pixmap.create_from_xpm window ~file ?colormap - ?transparent:(may_map transparent ~f:(fun c -> color c)) - with Gpointer.Null -> invalid_arg ("GDraw.pixmap_from_xpm : " ^ file) in - new pixmap pm ?colormap ~mask - -let pixmap_from_xpm_d ~window ~data ?colormap ?transparent () = - window#misc#realize (); - let window = - try window#misc#window - with Gpointer.Null -> failwith "GDraw.pixmap_from_xpm_d : no window" in - let pm, mask = - Pixmap.create_from_xpm_d window ~data ?colormap - ?transparent:(may_map transparent ~f:(fun c -> color c)) in - new pixmap pm ?colormap ~mask - -class drag_context context = object - val context = context - method status ?(time=0) act = DnD.drag_status context act ~time - method suggested_action = DnD.drag_context_suggested_action context - method targets = DnD.drag_context_targets context -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gDraw.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gDraw.mli deleted file mode 100644 index 2b5fc8627..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gDraw.mli +++ /dev/null @@ -1,107 +0,0 @@ -(* $Id$ *) - -open Gdk - -type color = - [ `COLOR of Color.t - | `WHITE - | `BLACK - | `NAME of string - | `RGB of int * int * int] - -val color : ?colormap:colormap -> color -> Color.t - -type optcolor = - [ `COLOR of Color.t - | `WHITE - | `BLACK - | `NAME of string - | `RGB of int * int * int - | `DEFAULT ] - -val optcolor : ?colormap:colormap -> optcolor -> Color.t option - -class ['a] drawable : ?colormap:colormap -> 'a Gdk.drawable -> - object - val gc : gc - val w : 'a Gdk.drawable - method arc : - x:int -> - y:int -> - width:int -> - height:int -> - ?filled:bool -> ?start:float -> ?angle:float -> unit -> unit - method color : color -> Color.t - method gc_values : GC.values - method image : - width:int -> - height:int -> - ?xsrc:int -> ?ysrc:int -> ?xdest:int -> ?ydest:int -> image -> unit - method line : x:int -> y:int -> x:int -> y:int -> unit - method point : x:int -> y:int -> unit - method polygon : ?filled:bool -> (int * int) list -> unit - method rectangle : - x:int -> - y:int -> width:int -> height:int -> ?filled:bool -> unit -> unit - method set_background : color -> unit - method set_foreground : color -> unit - method set_clip_region : region -> unit - method set_line_attributes : - ?width:int -> - ?style:GC.gdkLineStyle -> - ?cap:GC.gdkCapStyle -> ?join:GC.gdkJoinStyle -> unit -> unit - method string : string -> font:font -> x:int -> y:int -> unit - end - -class pixmap : - ?colormap:colormap -> ?mask:bitmap -> [ `pixmap] Gdk.drawable -> - object - inherit [[`pixmap]] drawable - val bitmap : [ `bitmap] drawable option - val mask : bitmap option - method mask : bitmap option - method pixmap : Gdk.pixmap - end - -class type misc_ops = - object - method allocation : Gtk.rectangle - method colormap : colormap - method draw : Rectangle.t option -> unit - method hide : unit -> unit - method hide_all : unit -> unit - method intersect : Rectangle.t -> Rectangle.t option - method pointer : int * int - method realize : unit -> unit - method set_app_paintable : bool -> unit - method set_geometry : - ?x:int -> ?y:int -> ?width:int -> ?height:int -> unit -> unit - method show : unit -> unit - method unmap : unit -> unit - method unparent : unit -> unit - method unrealize : unit -> unit - method visible : bool - method visual : visual - method visual_depth : int - method window : window - end - -val pixmap : - window:< misc : #misc_ops; .. > -> - width:int -> height:int -> ?mask:bool -> unit -> pixmap -val pixmap_from_xpm : - window:< misc : #misc_ops; .. > -> - file:string -> - ?colormap:colormap -> ?transparent:color -> unit -> pixmap -val pixmap_from_xpm_d : - window:< misc : #misc_ops; .. > -> - data:string array -> - ?colormap:colormap -> ?transparent:color -> unit -> pixmap - -class drag_context : Gdk.drag_context -> - object - val context : Gdk.drag_context - method status : ?time:int -> Tags.drag_action list -> unit - method suggested_action : Tags.drag_action - method targets : atom list - end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gEdit.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gEdit.ml deleted file mode 100644 index 467ee4505..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gEdit.ml +++ /dev/null @@ -1,147 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkEdit -open GObj - -class editable_signals obj = object - inherit widget_signals obj - method activate = GtkSignal.connect ~sgn:Editable.Signals.activate obj ~after - method changed = GtkSignal.connect ~sgn:Editable.Signals.changed obj ~after - method insert_text = - GtkSignal.connect ~sgn:Editable.Signals.insert_text obj ~after - method delete_text = - GtkSignal.connect ~sgn:Editable.Signals.delete_text obj ~after -end - -class editable obj = object - inherit widget obj - method connect = new editable_signals obj - method select_region = Editable.select_region obj - method insert_text = Editable.insert_text obj - method delete_text = Editable.delete_text obj - method get_chars = Editable.get_chars obj - method cut_clipboard () = Editable.cut_clipboard obj - method copy_clipboard () = Editable.copy_clipboard obj - method paste_clipboard () = Editable.paste_clipboard obj - method delete_selection () = Editable.delete_selection obj - method set_position = Editable.set_position obj - method position = Editable.get_position obj - method set_editable = Editable.set_editable obj - method selection = - if Editable.has_selection obj then - Some (Editable.selection_start_pos obj, Editable.selection_end_pos obj) - else None -end - -class entry obj = object - inherit editable obj - method event = new GObj.event_ops obj - method set_text = Entry.set_text obj - method append_text = Entry.append_text obj - method prepend_text = Entry.prepend_text obj - method set_visibility = Entry.set_visibility obj - method set_max_length = Entry.set_max_length obj - method text = Entry.get_text obj - method text_length = Entry.text_length obj -end - -let set_editable ?editable ?(width = -2) ?(height = -2) w = - may editable ~f:(Editable.set_editable w); - if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height - -let entry ?max_length ?text ?visibility ?editable - ?width ?height ?packing ?show () = - let w = Entry.create ?max_length () in - Entry.set w ?text ?visibility; - set_editable w ?editable ?width ?height; - pack_return (new entry w) ~packing ~show - -class spin_button obj = object - inherit entry (obj : Gtk.spin_button obj) - method adjustment = new GData.adjustment (SpinButton.get_adjustment obj) - method value = SpinButton.get_value obj - method value_as_int = SpinButton.get_value_as_int obj - method spin = SpinButton.spin obj - method update = SpinButton.update obj - method set_adjustment adj = - SpinButton.set_adjustment obj (GData.as_adjustment adj) - method set_digits = SpinButton.set_digits obj - method set_value = SpinButton.set_value obj - method set_update_policy = SpinButton.set_update_policy obj - method set_numeric = SpinButton.set_numeric obj - method set_wrap = SpinButton.set_wrap obj - method set_shadow_type = SpinButton.set_shadow_type obj - method set_snap_to_ticks = SpinButton.set_snap_to_ticks obj -end - -let spin_button ?adjustment ?rate ?digits ?value ?update_policy - ?numeric ?wrap ?shadow_type ?snap_to_ticks - ?width ?height ?packing ?show () = - let w = SpinButton.create ?rate ?digits - ?adjustment:(may_map ~f:GData.as_adjustment adjustment) () in - SpinButton.set w ?value ?update_policy - ?numeric ?wrap ?shadow_type ?snap_to_ticks; - set_editable w ?width ?height; - pack_return (new spin_button w) ~packing ~show - -class combo obj = object - inherit GObj.widget (obj : Gtk.combo obj) - method entry = new entry (Combo.entry obj) - method list = new GList.liste (Combo.list obj) - method set_popdown_strings = Combo.set_popdown_strings obj - method set_use_arrows = Combo.set_use_arrows' obj - method set_case_sensitive = Combo.set_case_sensitive obj - method set_value_in_list = Combo.set_value_in_list obj - method disable_activate () = Combo.disable_activate obj - method set_item_string (item : GList.list_item) = - Combo.set_item_string obj item#as_item -end - -let combo ?popdown_strings ?use_arrows - ?case_sensitive ?value_in_list ?ok_if_empty - ?border_width ?width ?height ?packing ?show () = - let w = Combo.create () in - Combo.set w ?popdown_strings ?use_arrows - ?case_sensitive ?value_in_list ?ok_if_empty; - Container.set w ?border_width ?width ?height; - pack_return (new combo w) ~packing ~show - -class text obj = object (self) - inherit editable (obj : Gtk.text obj) as super - method get_chars ~start ~stop:e = - if start < 0 || e > Text.get_length obj || e < start then - invalid_arg "GEdit.text#get_chars"; - super#get_chars ~start ~stop:e - method event = new GObj.event_ops obj - method set_point = Text.set_point obj - method set_hadjustment adj = - Text.set_adjustment obj ~horizontal:(GData.as_adjustment adj) () - method set_vadjustment adj = - Text.set_adjustment obj ~vertical:(GData.as_adjustment adj) () - method set_word_wrap = Text.set_word_wrap obj - method set_line_wrap = Text.set_line_wrap obj - method hadjustment = new GData.adjustment (Text.get_hadjustment obj) - method vadjustment = new GData.adjustment (Text.get_vadjustment obj) - method point = Text.get_point obj - method length = Text.get_length obj - method freeze () = Text.freeze obj - method thaw () = Text.thaw obj - method insert ?font ?foreground ?background text = - let colormap = try Some self#misc#colormap with _ -> None in - Text.insert obj text ?font - ?foreground:(may_map foreground ~f:(GDraw.color ?colormap)) - ?background:(may_map background ~f:(GDraw.color ?colormap)) -end - -let text ?hadjustment ?vadjustment ?editable - ?word_wrap ?line_wrap ?width ?height ?packing ?show () = - let w = Text.create () - ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment) - ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) in - may word_wrap ~f:(Text.set_word_wrap w); - may line_wrap ~f:(Text.set_line_wrap w); - set_editable w ?editable ?width ?height; - pack_return (new text w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gEdit.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gEdit.mli deleted file mode 100644 index 3b2c286ea..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gEdit.mli +++ /dev/null @@ -1,146 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj - -class editable_signals : 'a obj -> - object - inherit widget_signals - constraint 'a = [>`editable|`widget] - val obj : 'a obj - method activate : callback:(unit -> unit) -> GtkSignal.id - method changed : callback:(unit -> unit) -> GtkSignal.id - method delete_text : - callback:(start:int -> stop:int -> unit) -> GtkSignal.id - method insert_text : - callback:(string -> pos:int -> unit) -> GtkSignal.id - end - -class editable : 'a obj -> - object - inherit widget - constraint 'a = [>`editable|`widget] - val obj : 'a obj - method connect : editable_signals - method copy_clipboard : unit -> unit - method cut_clipboard : unit -> unit - method delete_selection : unit -> unit - method delete_text : start:int -> stop:int -> unit - method get_chars : start:int -> stop:int -> string - method insert_text : string -> pos:int -> int - method paste_clipboard : unit -> unit - method position : int - method select_region : start:int -> stop:int -> unit - method selection : (int * int) option - method set_editable : bool -> unit - method set_position : int -> unit - end - -class entry : 'a obj -> - object - inherit editable - constraint 'a = [>`entry|`editable|`widget] - val obj : 'a obj - method event : event_ops - method append_text : string -> unit - method prepend_text : string -> unit - method set_max_length : int -> unit - method set_text : string -> unit - method set_visibility : bool -> unit - method text : string - method text_length : int - end -val entry : - ?max_length:int -> - ?text:string -> - ?visibility:bool -> - ?editable:bool -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> entry - -class spin_button : Gtk.spin_button obj -> - object - inherit entry - val obj : Gtk.spin_button obj - method adjustment : GData.adjustment - method set_adjustment : GData.adjustment -> unit - method set_digits : int -> unit - method set_numeric : bool -> unit - method set_shadow_type : Tags.shadow_type -> unit - method set_snap_to_ticks : bool -> unit - method set_update_policy : [`ALWAYS|`IF_VALID] -> unit - method set_value : float -> unit - method set_wrap : bool -> unit - method spin : Tags.spin_type -> unit - method update : unit - method value : float - method value_as_int : int - end -val spin_button : - ?adjustment:GData.adjustment -> - ?rate:float -> - ?digits:int -> - ?value:float -> - ?update_policy:[`ALWAYS|`IF_VALID] -> - ?numeric:bool -> - ?wrap:bool -> - ?shadow_type:Tags.shadow_type -> - ?snap_to_ticks:bool -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> spin_button - -class combo : Gtk.combo obj -> - object - inherit widget - val obj : Gtk.combo obj - method disable_activate : unit -> unit - method entry : entry - method list : GList.liste - method set_case_sensitive : bool -> unit - method set_item_string : GList.list_item -> string -> unit - method set_popdown_strings : string list -> unit - method set_use_arrows : [`NEVER|`DEFAULT|`ALWAYS] -> unit - method set_value_in_list : - ?required:bool -> ?ok_if_empty:bool -> unit -> unit - end -val combo : - ?popdown_strings:string list -> - ?use_arrows:[`NEVER|`DEFAULT|`ALWAYS] -> - ?case_sensitive:bool -> - ?value_in_list:bool -> - ?ok_if_empty:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> combo - -class text : Gtk.text obj -> - object - inherit editable - val obj : Gtk.text obj - method event : event_ops - method freeze : unit -> unit - method hadjustment : GData.adjustment - method insert : - ?font:Gdk.font -> - ?foreground:GDraw.color -> ?background:GDraw.color -> string -> unit - method length : int - method point : int - method set_hadjustment : GData.adjustment -> unit - method set_point : int -> unit - method set_vadjustment : GData.adjustment -> unit - method set_word_wrap : bool -> unit - method set_line_wrap : bool -> unit - method thaw : unit -> unit - method vadjustment : GData.adjustment - end -val text : - ?hadjustment:GData.adjustment -> - ?vadjustment:GData.adjustment -> - ?editable:bool -> - ?word_wrap:bool -> - ?line_wrap:bool -> - ?width:int -> - ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> text diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gHtml.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gHtml.ml deleted file mode 100644 index 1150790c5..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gHtml.ml +++ /dev/null @@ -1,33 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GObj -open GtkXmHTML - -class xmhtml obj = object (self) - inherit widget_full (obj : GtkXmHTML.xmhtml obj) - method event = new GObj.event_ops obj - method freeze = freeze obj - method thaw = thaw obj - method source = source obj - method set_fonts = set_font_familty obj - method set_fonts_fixed = set_font_familty_fixed obj - method set_anchor_buttons = set_anchor_buttons obj - method set_anchor_cursor = set_anchor_cursor obj - method set_anchor_underline = set_anchor_underline_type obj - method set_anchor_visited_underline = set_anchor_visited_underline_type obj - method set_anchor_target_underline = set_anchor_target_underline_type obj - method set_topline = set_topline obj - method topline = get_topline obj - method set_strict_checking = set_strict_checking obj - method set_bad_html_warnings = set_bad_html_warnings obj - method set_imagemap_draw = set_imagemap_draw obj -end - -let xmhtml ?source ?border_width ?width ?height ?packing ?show () = - let w = create () in - Container.set w ?border_width ?width ?height; - may source ~f:(GtkXmHTML.source w); - pack_return (new xmhtml w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gList.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gList.ml deleted file mode 100644 index 3b1abe43b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gList.ml +++ /dev/null @@ -1,162 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkList -open GObj -open GContainer - -class list_item obj = object - inherit container (obj : Gtk.list_item obj) - method event = new GObj.event_ops obj - method as_item = obj - method select () = Item.select obj - method deselect () = Item.deselect obj - method toggle () = Item.toggle obj - method connect = new item_signals obj -end - -let list_item ?label ?border_width ?width ?height ?packing ?(show=true) () = - let w = ListItem.create ?label () in - Container.set w ?border_width ?width ?height; - let item = new list_item w in - may packing ~f:(fun f -> (f item : unit)); - if show then item#misc#show (); - item - -class liste obj = object - inherit [list_item] item_container (obj : Gtk.liste obj) - method private wrap w = new list_item (ListItem.cast w) - method insert w = Liste.insert_item obj w#as_item - method clear_items = Liste.clear_items obj - method select_item = Liste.select_item obj - method unselect_item = Liste.unselect_item obj - method child_position (w : list_item) = Liste.child_position obj w#as_item -end - -let liste ?selection_mode ?border_width ?width ?height - ?packing ?show () = - let w = Liste.create () in - may selection_mode ~f:(Liste.set_selection_mode w); - Container.set w ?border_width ?width ?height; - pack_return (new liste w) ~packing ~show - -(* Cell lists *) - -class clist_signals obj = object - inherit container_signals obj - method click_column = - GtkSignal.connect ~sgn:CList.Signals.click_column obj ~after - method select_row = - GtkSignal.connect ~sgn:CList.Signals.select_row obj ~after - method unselect_row = - GtkSignal.connect ~sgn:CList.Signals.unselect_row obj ~after - method scroll_vertical = - GtkSignal.connect ~sgn:CList.Signals.scroll_vertical obj ~after - method scroll_horizontal = - GtkSignal.connect ~sgn:CList.Signals.scroll_horizontal obj ~after -end - -class ['a] clist obj = object (self) - inherit widget (obj : Gtk.clist obj) - method set_border_width = Container.set_border_width obj - method event = new GObj.event_ops obj - method connect = new clist_signals obj - method rows = CList.get_rows obj - method columns = CList.get_columns obj - method focus_row = CList.get_focus_row obj - method hadjustment = new GData.adjustment (CList.get_hadjustment obj) - method vadjustment = new GData.adjustment (CList.get_vadjustment obj) - method set_button_actions = CList.set_button_actions obj - method freeze () = CList.freeze obj - method thaw () = CList.thaw obj - method column_title = CList.get_column_title obj - method column_widget col = - new widget (CList.get_column_widget obj col) - method columns_autosize () = CList.columns_autosize obj - method optimal_column_width = CList.optimal_column_width obj - method moveto ?(row_align=0.) ?(col_align=0.) row col = - CList.moveto obj row col ~row_align ~col_align - method row_is_visible = CList.row_is_visible obj - method cell_type = CList.get_cell_type obj - method cell_text = CList.get_text obj - method cell_pixmap row col = - let pm, mask = CList.get_pixmap obj row col in - may_map pm ~f:(fun x -> new GDraw.pixmap ?mask x) - method cell_style row col = - try Some (new style (CList.get_cell_style obj row col)) - with Gpointer.Null -> None - method row_selectable row = CList.get_selectable obj ~row - method row_style row = - try Some (new style (CList.get_row_style obj ~row)) - with Gpointer.Null -> None - method set_shift = CList.set_shift obj - method insert ~row texts = - let texts = List.map texts ~f:(fun x -> Some x) in - CList.insert obj ~row texts - method append = self#insert ~row:self#rows - method prepend = self#insert ~row:0 - method remove = CList.remove obj - method select = CList.select obj - method unselect = CList.unselect obj - method clear () = CList.clear obj - method get_row_column = CList.get_row_column obj - method select_all () = CList.select_all obj - method unselect_all () = CList.unselect_all obj - method swap_rows = CList.swap_rows obj - method row_move = CList.row_move obj - method sort () = CList.sort obj - method set_hadjustment adj = - CList.set_hadjustment obj (GData.as_adjustment adj) - method set_vadjustment adj = - CList.set_vadjustment obj (GData.as_adjustment adj) - method set_shadow_type = CList.set_shadow_type obj - method set_button_actions = CList.set_button_actions obj - method set_selection_mode = CList.set_selection_mode obj - method set_reorderable = CList.set_reorderable obj - method set_use_drag_icons = CList.set_use_drag_icons obj - method set_row_height = CList.set_row_height obj - method set_titles_show = CList.set_titles_show obj - method set_titles_active = CList.set_titles_active obj - method set_sort = CList.set_sort obj - method set_column ?widget = - CList.set_column obj ?widget:(may_map widget ~f:as_widget) - method set_row ?foreground ?background ?selectable ?style = - let color = may_map ~f:(fun c -> Gpointer.optboxed (GDraw.optcolor c)) - and style = may_map ~f:(fun (st : style) -> st#as_style) style in - CList.set_row obj - ?foreground:(color foreground) ?background:(color background) - ?selectable ?style - method set_cell ?text ?pixmap ?spacing ?style = - let pixmap, mask = - match pixmap with None -> None, None - | Some (pm : GDraw.pixmap) -> Some pm#pixmap, pm#mask - and style = may_map ~f:(fun (st : style) -> st#as_style) style in - CList.set_cell obj ?text ?pixmap ?mask ?spacing ?style - method set_row_data n ~data = - CList.set_row_data obj ~row:n (Obj.repr (data : 'a)) - method get_row_data n : 'a = Obj.obj (CList.get_row_data obj ~row:n) - method scroll_vertical = - CList.Signals.emit_scroll obj ~sgn:CList.Signals.scroll_vertical - method scroll_horizontal = - CList.Signals.emit_scroll obj ~sgn:CList.Signals.scroll_horizontal -end - -let clist ?(columns=1) ?titles ?hadjustment ?vadjustment - ?shadow_type ?button_actions ?selection_mode - ?reorderable ?use_drag_icons ?row_height - ?titles_show ?titles_active ?auto_sort ?sort_column ?sort_type - ?border_width ?width ?height ?packing ?show () = - let w = - match titles with None -> CList.create ~cols:columns - | Some titles -> CList.create_with_titles (Array.of_list titles) - in - CList.set w - ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment) - ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) - ?shadow_type ?button_actions ?selection_mode ?reorderable - ?use_drag_icons ?row_height ?titles_show ?titles_active; - CList.set_sort w ?auto:auto_sort ?column:sort_column ?dir:sort_type (); - Container.set w ?border_width ?width ?height; - pack_return (new clist w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gList.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gList.mli deleted file mode 100644 index 17f4cef96..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gList.mli +++ /dev/null @@ -1,158 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class list_item : Gtk.list_item obj -> - object - inherit container - val obj : Gtk.list_item obj - method event : event_ops - method as_item : Gtk.list_item obj - method connect : item_signals - method deselect : unit -> unit - method select : unit -> unit - method toggle : unit -> unit - end -val list_item : - ?label:string -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(list_item -> unit) -> ?show:bool -> unit -> list_item - -class liste : Gtk.liste obj -> - object - inherit [list_item] item_container - val obj : Gtk.liste obj - method child_position : list_item -> int - method clear_items : start:int -> stop:int -> unit - method insert : list_item -> pos:int -> unit - method select_item : pos:int -> unit - method unselect_item : pos:int -> unit - method private wrap : Gtk.widget obj -> list_item - end -val liste : - ?selection_mode:Tags.selection_mode -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> liste - -class clist_signals : 'a obj -> - object - inherit container_signals - constraint 'a = [>`clist|`container|`widget] - val obj : 'a obj - method click_column : callback:(int -> unit) -> GtkSignal.id - method select_row : - callback:(row:int -> - column:int -> event:GdkEvent.Button.t option -> unit) -> - GtkSignal.id - method unselect_row : - callback:(row:int -> - column:int -> event:GdkEvent.Button.t option -> unit) -> - GtkSignal.id - method scroll_horizontal : - callback:(Tags.scroll_type -> pos:clampf -> unit) -> GtkSignal.id - method scroll_vertical : - callback:(Tags.scroll_type -> pos:clampf -> unit) -> GtkSignal.id - end - -class ['a] clist : Gtk.clist obj -> - object - inherit widget - val obj : Gtk.clist obj - method event : event_ops - method append : string list -> int - method cell_pixmap : int -> int -> GDraw.pixmap option - method cell_style : int -> int -> style option - method cell_text : int -> int -> string - method cell_type : int -> int -> Tags.cell_type - method clear : unit -> unit - method column_title : int -> string - method column_widget : int -> widget - method columns : int - method columns_autosize : unit -> unit - method connect : clist_signals - method focus_row : int - method freeze : unit -> unit - method get_row_column : x:int -> y:int -> int * int - method get_row_data : int -> 'a - method hadjustment : GData.adjustment - method insert : row:int -> string list -> int - method moveto : - ?row_align:clampf -> ?col_align:clampf -> int -> int -> unit - method optimal_column_width : int -> int - method prepend : string list -> int - method remove : row:int -> unit - method row_is_visible : int -> Tags.visibility - method row_move : int -> dst:int -> unit - method row_selectable : int -> bool - method row_style : int -> style option - method rows : int - method scroll_vertical : Tags.scroll_type -> pos:clampf -> unit - method scroll_horizontal : Tags.scroll_type -> pos:clampf -> unit - method select : int -> int -> unit - method select_all : unit -> unit - method set_border_width : int -> unit - method set_button_actions : int -> Tags.button_action list -> unit - method set_cell : - ?text:string -> - ?pixmap:GDraw.pixmap -> - ?spacing:int -> ?style:style -> int -> int -> unit - method set_column : - ?widget:widget -> - ?title:string -> - ?title_active:bool -> - ?justification:Tags.justification -> - ?visibility:bool -> - ?resizeable:bool -> - ?auto_resize:bool -> - ?width:int -> ?min_width:int -> ?max_width:int -> int -> unit - method set_hadjustment : GData.adjustment -> unit - method set_reorderable : bool -> unit - method set_row : - ?foreground:GDraw.optcolor -> - ?background:GDraw.optcolor -> - ?selectable:bool -> - ?style:style -> int -> unit - method set_row_data : int -> data:'a -> unit - method set_row_height : int -> unit - method set_selection_mode : Tags.selection_mode -> unit - method set_shadow_type : Tags.shadow_type -> unit - method set_shift : int -> int -> vertical:int -> horizontal:int -> unit - method set_sort : - ?auto:bool -> ?column:int -> ?dir:Tags.sort_type -> unit -> unit - method set_titles_active : bool -> unit - method set_titles_show : bool -> unit - method set_use_drag_icons : bool -> unit - method set_vadjustment : GData.adjustment -> unit - method sort : unit -> unit - method swap_rows : int -> int -> unit - method thaw : unit -> unit - method unselect : int -> int -> unit - method unselect_all : unit -> unit - method vadjustment : GData.adjustment - end -val clist : - ?columns:int -> - ?titles:string list -> - ?hadjustment:GData.adjustment -> - ?vadjustment:GData.adjustment -> - ?shadow_type:Tags.shadow_type -> - ?button_actions:(int * Tags.button_action list) list -> - ?selection_mode:Tags.selection_mode -> - ?reorderable:bool -> - ?use_drag_icons:bool -> - ?row_height:int -> - ?titles_show:bool -> - ?titles_active:bool -> - ?auto_sort:bool -> - ?sort_column:int -> - ?sort_type:Tags.sort_type -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> 'a clist diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMain.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMain.ml deleted file mode 100644 index 811f490d4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMain.ml +++ /dev/null @@ -1,26 +0,0 @@ -(* $Id$ *) - -open Gtk -open GtkMain -open GObj - -module Main : sig - val init : unit -> string (* returns the locale name *) - val main : unit -> unit - val quit : unit -> unit - val version : int * int * int - val flush : unit -> unit -end = Main - -module Grab = struct - open Grab - let add (w : #widget) = add w#as_widget - let remove (w : #widget) = remove w#as_widget - let get_current () = new widget (get_current ()) -end - -module Timeout : sig - type id - val add : ms:int -> callback:(unit -> bool) -> id - val remove : id -> unit -end = Timeout diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMenu.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMenu.ml deleted file mode 100644 index 52f05a462..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMenu.ml +++ /dev/null @@ -1,199 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkData -open GtkBase -open GtkMenu -open GObj -open GContainer - -(* Menu type *) - -class menu_shell_signals obj = object - inherit container_signals obj - method deactivate = - GtkSignal.connect ~sgn:MenuShell.Signals.deactivate obj ~after -end - -class type virtual ['a] pre_menu = object - inherit ['a] item_container - method as_menu : Gtk.menu Gtk.obj - method deactivate : unit -> unit - method connect : menu_shell_signals - method event : event_ops - method popup : button:int -> time:int -> unit - method popdown : unit -> unit - method set_accel_group : accel_group -> unit -end - -(* Menu items *) - -class menu_item_signals obj = object - inherit item_signals obj - method activate = GtkSignal.connect ~sgn:MenuItem.Signals.activate obj -end - - -class ['a] pre_menu_item_skel obj = object - inherit container obj - method as_item = MenuItem.coerce obj - method set_submenu (w : 'a pre_menu) = MenuItem.set_submenu obj w#as_menu - method remove_submenu () = MenuItem.remove_submenu obj - method configure = MenuItem.configure obj - method activate () = MenuItem.activate obj - method right_justify () = MenuItem.right_justify obj - method add_accelerator ~group ?modi:m ?flags key= - Widget.add_accelerator obj ~sgn:MenuItem.Signals.activate group ?flags - ?modi:m ~key -end - -class menu_item obj = object - inherit [menu_item] pre_menu_item_skel obj - method connect = new menu_item_signals obj - method event = new GObj.event_ops obj -end - -class menu_item_skel = [menu_item] pre_menu_item_skel - -let pack_item self ~packing ~show = - may packing ~f:(fun f -> (f (self :> menu_item) : unit)); - if show <> Some false then self#misc#show (); - self - -let menu_item ?label ?border_width ?width ?height ?packing ?show () = - let w = MenuItem.create ?label () in - Container.set w ?border_width ?width ?height; - pack_item (new menu_item w) ?packing ?show - -let tearoff_item ?border_width ?width ?height ?packing ?show () = - let w = MenuItem.tearoff_create () in - Container.set w ?border_width ?width ?height; - pack_item (new menu_item w) ?packing ?show - -class check_menu_item_signals obj = object - inherit menu_item_signals obj - method toggled = - GtkSignal.connect ~sgn:CheckMenuItem.Signals.toggled obj ~after -end - -class check_menu_item obj = object - inherit menu_item_skel obj - method set_active = CheckMenuItem.set_active obj - method set_show_toggle = CheckMenuItem.set_show_toggle obj - method active = CheckMenuItem.get_active obj - method toggled () = CheckMenuItem.toggled obj - method connect = new check_menu_item_signals obj - method event = new GObj.event_ops obj -end - -let check_menu_item ?label ?active ?show_toggle - ?border_width ?width ?height ?packing ?show () = - let w = CheckMenuItem.create ?label () in - CheckMenuItem.set w ?active ?show_toggle; - Container.set w ?border_width ?width ?height; - pack_item (new check_menu_item w) ?packing ?show - -class radio_menu_item obj = object - inherit check_menu_item (obj : Gtk.radio_menu_item obj) - method group = Some obj - method set_group = RadioMenuItem.set_group obj -end - -let radio_menu_item ?group ?label ?active ?show_toggle - ?border_width ?width ?height ?packing ?show () = - let w = RadioMenuItem.create ?group ?label () in - CheckMenuItem.set w ?active ?show_toggle; - Container.set w ?border_width ?width ?height; - pack_item (new radio_menu_item w) ?packing ?show - -(* Menus *) - -class menu_shell obj = object - inherit [menu_item] item_container obj - method private wrap w = new menu_item (MenuItem.cast w) - method insert w = MenuShell.insert obj w#as_item - method deactivate () = MenuShell.deactivate obj - method connect = new menu_shell_signals obj - method event = new GObj.event_ops obj -end - -class menu obj = object - inherit menu_shell obj - method popup = Menu.popup obj - method popdown () = Menu.popdown obj - method as_menu : Gtk.menu obj = obj - method set_accel_group = Menu.set_accel_group obj -end - -let menu ?border_width ?packing ?show () = - let w = Menu.create () in - may border_width ~f:(Container.set_border_width w); - let self = new menu w in - may packing ~f:(fun f -> (f (self :> menu) : unit)); - if show <> Some false then self#misc#show (); - self - -(* Option Menu (GtkButton?) *) - -class option_menu obj = object - inherit GButton.button_skel obj - method connect = new GButton.button_signals obj - method event = new GObj.event_ops obj - method set_menu (menu : menu) = OptionMenu.set_menu obj menu#as_menu - method get_menu = new menu (OptionMenu.get_menu obj) - method remove_menu () = OptionMenu.remove_menu obj - method set_history = OptionMenu.set_history obj -end - -let option_menu ?border_width ?width ?height ?packing ?show () = - let w = OptionMenu.create () in - Container.set w ?border_width ?width ?height; - pack_return (new option_menu w) ~packing ~show - -(* Menu Bar *) - -let menu_bar ?border_width ?width ?height ?packing ?show () = - let w = MenuBar.create () in - Container.set w ?border_width ?width ?height; - pack_return (new menu_shell w) ~packing ~show - -(* Menu Factory *) - -class ['a] factory - ?(accel_group=AccelGroup.create ()) - ?(accel_modi=[`CONTROL]) - ?(accel_flags=[`VISIBLE]) (menu_shell : 'a) = - object (self) - val menu_shell : #menu_shell = menu_shell - val group = accel_group - val m = accel_modi - val flags = accel_flags - method menu = menu_shell - method accel_group = group - method private bind ?key ?callback (item : menu_item) = - menu_shell#append item; - may key ~f:(item#add_accelerator ~group ~modi:m ~flags); - may callback ~f:(fun callback -> item#connect#activate ~callback) - method add_item ?key ?callback ?submenu label = - let item = menu_item ~label () in - self#bind item ?key ?callback; - may (submenu : menu option) ~f:item#set_submenu; - item - method add_check_item ?active ?key ?callback label = - let item = check_menu_item ~label ?active () in - self#bind (item :> menu_item) ?key - ?callback:(may_map callback ~f:(fun f () -> f item#active)); - item - method add_radio_item ?group ?active ?key ?callback label = - let item = radio_menu_item ~label ?group ?active () in - self#bind (item :> menu_item) ?key - ?callback:(may_map callback ~f:(fun f () -> f item#active)); - item - method add_separator () = menu_item ~packing:menu_shell#append () - method add_submenu ?key label = - let item = menu_item ~label () in - self#bind item ?key; - menu ~packing:item#set_submenu (); - method add_tearoff () = tearoff_item ~packing:menu_shell#append () -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMenu.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMenu.mli deleted file mode 100644 index 505249bea..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMenu.mli +++ /dev/null @@ -1,196 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class menu_shell_signals : 'b obj -> - object ('a) - inherit container_signals - constraint 'b = [>`menushell|`container|`widget] - val obj : 'b obj - method deactivate : callback:(unit -> unit) -> GtkSignal.id - end - -class menu_item_signals : 'b obj -> - object ('a) - inherit item_signals - constraint 'b = [>`menuitem|`container|`item|`widget] - val obj : 'b obj - method activate : callback:(unit -> unit) -> GtkSignal.id - end - -class menu_item_skel : - 'a obj -> - object - inherit container - constraint 'a = [>`widget|`container|`menuitem] - val obj : 'a obj - method activate : unit -> unit - method add_accelerator : - group:accel_group -> - ?modi:Gdk.Tags.modifier list -> - ?flags:Tags.accel_flag list -> Gdk.keysym -> unit - method as_item : Gtk.menu_item obj - method configure : show_toggle:bool -> show_indicator:bool -> unit - method remove_submenu : unit -> unit - method right_justify : unit -> unit - method set_submenu : menu -> unit - end -and menu_item : 'a obj -> - object - inherit menu_item_skel - constraint 'a = [>`widget|`container|`item|`menuitem] - val obj : 'a obj - method event : event_ops - method connect : menu_item_signals - end -and menu : Gtk.menu obj -> - object - inherit [menu_item] item_container - val obj : Gtk.menu obj - method add : menu_item -> unit - method event : event_ops - method append : menu_item -> unit - method as_menu : Gtk.menu obj - method children : menu_item list - method connect : menu_shell_signals - method deactivate : unit -> unit - method insert : menu_item -> pos:int -> unit - method popdown : unit -> unit - method popup : button:int -> time:int -> unit - method prepend : menu_item -> unit - method remove : menu_item -> unit - method set_accel_group : accel_group -> unit - method set_border_width : int -> unit - method private wrap : Gtk.widget obj -> menu_item - end - -val menu : - ?border_width:int -> ?packing:(menu -> unit) -> ?show:bool -> unit -> menu -val menu_item : - ?label:string -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(menu_item -> unit) -> ?show:bool -> unit -> menu_item -val tearoff_item : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(menu_item -> unit) -> ?show:bool -> unit -> menu_item - -class check_menu_item_signals : 'a obj -> - object - inherit menu_item_signals - constraint 'a = [>`checkmenuitem|`container|`item|`menuitem|`widget] - val obj : 'a obj - method toggled : callback:(unit -> unit) -> GtkSignal.id - end - -class check_menu_item : 'a obj -> - object - inherit menu_item_skel - constraint 'a = [>`widget|`checkmenuitem|`container|`item|`menuitem] - val obj : 'a obj - method active : bool - method event : event_ops - method connect : check_menu_item_signals - method set_active : bool -> unit - method set_show_toggle : bool -> unit - method toggled : unit -> unit - end -val check_menu_item : - ?label:string -> - ?active:bool -> - ?show_toggle:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(menu_item -> unit) -> ?show:bool -> unit -> check_menu_item - -class radio_menu_item : Gtk.radio_menu_item obj -> - object - inherit check_menu_item - val obj : Gtk.radio_menu_item obj - method group : Gtk.radio_menu_item group - method set_group : Gtk.radio_menu_item group -> unit - end -val radio_menu_item : - ?group:Gtk.radio_menu_item group -> - ?label:string -> - ?active:bool -> - ?show_toggle:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(menu_item -> unit) -> ?show:bool -> unit -> radio_menu_item - -class menu_shell : 'a obj -> - object - inherit [menu_item] item_container - constraint 'a = [>`widget|`container|`menushell] - val obj : 'a obj - method event : event_ops - method deactivate : unit -> unit - method connect : menu_shell_signals - method insert : menu_item -> pos:int -> unit - method private wrap : Gtk.widget obj -> menu_item - end - -val menu_bar : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> menu_shell - -class option_menu : 'a obj -> - object - inherit GButton.button_skel - constraint 'a = [>`optionmenu|`button|`container|`widget] - val obj : 'a obj - method event : event_ops - method connect : GButton.button_signals - method get_menu : menu - method remove_menu : unit -> unit - method set_history : int -> unit - method set_menu : menu -> unit - end -val option_menu : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> option_menu - -class ['a] factory : - ?accel_group:accel_group -> - ?accel_modi:Gdk.Tags.modifier list -> - ?accel_flags:Tags.accel_flag list -> - 'a -> - object - constraint 'a = #menu_shell - val flags : Tags.accel_flag list - val group : accel_group - val m : Gdk.Tags.modifier list - val menu_shell : 'a - method accel_group : accel_group - method add_check_item : - ?active:bool -> - ?key:Gdk.keysym -> - ?callback:(bool -> unit) -> string -> check_menu_item - method add_item : - ?key:Gdk.keysym -> - ?callback:(unit -> unit) -> - ?submenu:menu -> string -> menu_item - method add_radio_item : - ?group:Gtk.radio_menu_item group -> - ?active:bool -> - ?key:Gdk.keysym -> - ?callback:(bool -> unit) -> string -> radio_menu_item - method add_separator : unit -> menu_item - method add_submenu : ?key:Gdk.keysym -> string -> menu - method add_tearoff : unit -> menu_item - method private bind : - ?key:Gdk.keysym -> ?callback:(unit -> unit) -> menu_item -> unit - method menu : 'a - end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMisc.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMisc.ml deleted file mode 100644 index 13fd7b4dd..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMisc.ml +++ /dev/null @@ -1,217 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkMisc -open GObj - -let separator dir ?(width = -2) ?(height = -2) ?packing ?show () = - let w = Separator.create dir in - if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height; - pack_return (new widget_full w) ~packing ~show - -class statusbar_context obj ctx = object (self) - val obj : statusbar obj = obj - val context : Gtk.statusbar_context = ctx - method context = context - method push text = Statusbar.push obj context ~text - method pop () = Statusbar.pop obj context - method remove = Statusbar.remove obj context - method flash ?(delay=1000) text = - let msg = self#push text in - GtkMain.Timeout.add ~ms:delay ~callback:(fun () -> self#remove msg; false); - () -end - -class statusbar obj = object - inherit GContainer.container_full (obj : Gtk.statusbar obj) - method new_context ~name = - new statusbar_context obj (Statusbar.get_context obj name) -end - -let statusbar ?border_width ?width ?height ?packing ?show () = - let w = Statusbar.create () in - Container.set w ?border_width ?width ?height; - pack_return (new statusbar w) ~packing ~show - -class calendar_signals obj = object - inherit widget_signals obj - method month_changed = - GtkSignal.connect obj ~sgn:Calendar.Signals.month_changed ~after - method day_selected = - GtkSignal.connect obj ~sgn:Calendar.Signals.day_selected ~after - method day_selected_double_click = - GtkSignal.connect obj - ~sgn:Calendar.Signals.day_selected_double_click ~after - method prev_month = - GtkSignal.connect obj ~sgn:Calendar.Signals.prev_month ~after - method next_month = - GtkSignal.connect obj ~sgn:Calendar.Signals.next_month ~after - method prev_year = - GtkSignal.connect obj ~sgn:Calendar.Signals.prev_year ~after - method next_year = - GtkSignal.connect obj ~sgn:Calendar.Signals.next_year ~after -end - -class calendar obj = object - inherit widget (obj : Gtk.calendar obj) - method event = new GObj.event_ops obj - method connect = new calendar_signals obj - method select_month = Calendar.select_month obj - method select_day = Calendar.select_day obj - method mark_day = Calendar.mark_day obj - method unmark_day = Calendar.unmark_day obj - method clear_marks = Calendar.clear_marks obj - method display_options = Calendar.display_options obj - method date = Calendar.get_date obj - method freeze () = Calendar.freeze obj - method thaw () = Calendar.thaw obj -end - -let calendar ?options ?(width = -2) ?(height = -2) ?packing ?show () = - let w = Calendar.create () in - if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height; - may options ~f:(Calendar.display_options w); - pack_return (new calendar w) ~packing ~show - -class drawing_area obj = object - inherit widget_full (obj : Gtk.drawing_area obj) - method event = new GObj.event_ops obj - method set_size = DrawingArea.size obj -end - -let drawing_area ?(width=0) ?(height=0) ?packing ?show () = - let w = DrawingArea.create () in - if width <> 0 || height <> 0 then DrawingArea.size w ~width ~height; - pack_return (new drawing_area w) ~packing ~show - -class misc obj = object - inherit widget obj - method set_alignment = Misc.set_alignment obj - method set_padding = Misc.set_padding obj -end - -class arrow obj = object - inherit misc obj - method set_arrow kind ~shadow = Arrow.set obj ~kind ~shadow -end - -let arrow ~kind ~shadow - ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () = - let w = Arrow.create ~kind ~shadow in - Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height; - pack_return (new arrow w) ~packing ~show - -class image obj = object - inherit misc obj - method set_image ?mask image = Image.set obj image ?mask -end - -let image image ?mask - ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () = - let w = Image.create image ?mask in - Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height; - pack_return (new image w) ~packing ~show - -class label_skel obj = object - inherit misc obj - method set_text = Label.set_text obj - method set_justify = Label.set_justify obj - method set_pattern = Label.set_pattern obj - method set_line_wrap = Label.set_line_wrap obj - method text = Label.get_text obj -end - -class label obj = object - inherit label_skel (Label.coerce obj) - method connect = new widget_signals obj -end - -let label ?(text="") ?justify ?line_wrap ?pattern - ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () = - let w = Label.create text in - Label.set w ?justify ?line_wrap ?pattern; - Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height; - pack_return (new label w) ~packing ~show - -let label_cast w = new label (Label.cast w#as_widget) - -class tips_query_signals obj = object - inherit widget_signals obj - method widget_entered ~callback = - GtkSignal.connect ~sgn:TipsQuery.Signals.widget_entered obj ~after - ~callback:(function None -> callback None - | Some w -> callback (Some (new widget w))) - method widget_selected ~callback = - GtkSignal.connect ~sgn:TipsQuery.Signals.widget_selected obj ~after - ~callback:(function None -> callback None - | Some w -> callback (Some (new widget w))) -end - -class tips_query obj = object - inherit label_skel (obj : Gtk.tips_query obj) - method start () = TipsQuery.start obj - method stop () = TipsQuery.stop obj - method set_caller (w : widget) = TipsQuery.set_caller obj w#as_widget - method set_emit_always = TipsQuery.set_emit_always obj - method set_label_inactive inactive = TipsQuery.set_labels obj ~inactive - method set_label_no_tip no_tip = TipsQuery.set_labels obj ~no_tip - method connect = new tips_query_signals obj -end - -let tips_query ?caller ?emit_always ?label_inactive ?label_no_tip - ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () = - let w = TipsQuery.create () in - let caller = may_map caller ~f:(fun (w : #widget) -> w#as_widget) in - TipsQuery.set w ?caller ?emit_always ?label_inactive ?label_no_tip; - Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height; - pack_return (new tips_query w) ~packing ~show - -class color_selection obj = object - inherit GObj.widget_full (obj : Gtk.color_selection obj) - method set_update_policy = ColorSelection.set_update_policy obj - method set_opacity = ColorSelection.set_opacity obj - method set_color ~red ~green ~blue ?opacity () = - ColorSelection.set_color obj ~red ~green ~blue ?opacity - method get_color = ColorSelection.get_color obj -end - -let color_selection ?border_width ?width ?height ?packing ?show () = - let w = ColorSelection.create () in - Container.set w ?border_width ?width ?height; - pack_return (new color_selection w) ~packing ~show - -class pixmap obj = object - inherit misc (obj : Gtk.pixmap obj) - method connect = new widget_signals obj - method set_pixmap (pm : GDraw.pixmap) = - Pixmap.set obj ~pixmap:pm#pixmap ?mask:pm#mask - method pixmap = - new GDraw.pixmap (Pixmap.pixmap obj) - ?mask:(try Some(Pixmap.mask obj) with Gpointer.Null -> None) -end - -let pixmap (pm : #GDraw.pixmap) ?xalign ?yalign ?xpad ?ypad - ?(width = -2) ?(height = -2) ?packing ?show () = - let w = Pixmap.create pm#pixmap ?mask:pm#mask in - Misc.set w ?xalign ?yalign ?xpad ?ypad; - if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height; - pack_return (new pixmap w) ~packing ~show - -class font_selection obj = object - inherit widget_full (obj : Gtk.font_selection obj) - method notebook = new GPack.notebook obj - method event = new event_ops obj - method font = FontSelection.get_font obj - method font_name = FontSelection.get_font_name obj - method set_font_name = FontSelection.set_font_name obj - method preview_text = FontSelection.get_preview_text obj - method set_preview_text = FontSelection.set_preview_text obj - method set_filter = FontSelection.set_filter obj -end - -let font_selection ?border_width ?width ?height ?packing ?show () = - let w = FontSelection.create () in - Container.set w ?border_width ?width ?height; - pack_return (new font_selection w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMisc.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMisc.mli deleted file mode 100644 index 7008369b7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gMisc.mli +++ /dev/null @@ -1,263 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -val separator : - Tags.orientation -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> widget_full - -class statusbar_context : - Gtk.statusbar obj -> Gtk.statusbar_context -> - object - val context : Gtk.statusbar_context - val obj : Gtk.statusbar obj - method context : Gtk.statusbar_context - method flash : ?delay:int -> string -> unit - method pop : unit -> unit - method push : string -> statusbar_message - method remove : statusbar_message -> unit - end - -class statusbar : Gtk.statusbar obj -> - object - inherit container_full - val obj : Gtk.statusbar obj - method new_context : name:string -> statusbar_context - end -val statusbar : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> statusbar - -class calendar_signals : 'a obj -> - object - inherit widget_signals - constraint 'a = [>`calendar|`widget] - val obj : 'a obj - method day_selected : callback:(unit -> unit) -> GtkSignal.id - method day_selected_double_click : - callback:(unit -> unit) -> GtkSignal.id - method month_changed : callback:(unit -> unit) -> GtkSignal.id - method next_month : callback:(unit -> unit) -> GtkSignal.id - method next_year : callback:(unit -> unit) -> GtkSignal.id - method prev_month : callback:(unit -> unit) -> GtkSignal.id - method prev_year : callback:(unit -> unit) -> GtkSignal.id - end - -class calendar : Gtk.calendar obj -> - object - inherit widget - val obj : Gtk.calendar obj - method event : event_ops - method clear_marks : unit - method connect : calendar_signals - method date : int * int * int - method display_options : Tags.calendar_display_options list -> unit - method freeze : unit -> unit - method mark_day : int -> unit - method select_day : int -> unit - method select_month : month:int -> year:int -> unit - method thaw : unit -> unit - method unmark_day : int -> unit - end -val calendar : - ?options:Tags.calendar_display_options list -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> calendar - -class drawing_area : Gtk.drawing_area obj -> - object - inherit widget_full - val obj : Gtk.drawing_area obj - method event : event_ops - method set_size : width:int -> height:int -> unit - end -val drawing_area : - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> drawing_area - -class misc : 'a obj -> - object - inherit widget - constraint 'a = [>`misc|`widget] - val obj : 'a obj - method set_alignment : ?x:float -> ?y:float -> unit -> unit - method set_padding : ?x:int -> ?y:int -> unit -> unit - end - -class arrow : 'a obj -> - object - inherit misc - constraint 'a = [>`arrow|`misc|`widget] - val obj : 'a obj - method set_arrow : Tags.arrow_type -> shadow:Tags.shadow_type -> unit - end - -val arrow : - kind:Tags.arrow_type -> - shadow:Tags.shadow_type -> - ?xalign:float -> - ?yalign:float -> - ?xpad:int -> - ?ypad:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> arrow - -class image : 'a obj -> - object - inherit misc - constraint 'a = [>`image|`misc|`widget] - val obj : 'a obj - method set_image : ?mask:Gdk.bitmap -> Gdk.image -> unit - end - -val image : - Gdk.image -> - ?mask:Gdk.bitmap -> - ?xalign:float -> - ?yalign:float -> - ?xpad:int -> - ?ypad:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> image - -class label_skel : 'a obj -> - object - inherit misc - constraint 'a = [>`label|`misc|`widget] - val obj : 'a obj - method set_justify : Tags.justification -> unit - method set_line_wrap : bool -> unit - method set_pattern : string -> unit - method set_text : string -> unit - method text : string - end - -class label : [>`label] obj -> - object - inherit label_skel - val obj : Gtk.label obj - method connect : widget_signals - end -val label : - ?text:string -> - ?justify:Tags.justification -> - ?line_wrap:bool -> - ?pattern:string -> - ?xalign:float -> - ?yalign:float -> - ?xpad:int -> - ?ypad:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> label -val label_cast : < as_widget : 'a obj ; .. > -> label - -class tips_query_signals : 'a obj -> - object - inherit widget_signals - constraint 'a = [>`tipsquery|`widget] - val obj : 'a obj - method widget_entered : - callback:(widget option -> - text:string option -> privat:string option -> unit) -> - GtkSignal.id - method widget_selected : - callback:(widget option -> text:string option -> - privat:string option -> GdkEvent.Button.t option -> bool) -> - GtkSignal.id - end - -class tips_query : Gtk.tips_query obj -> - object - inherit label_skel - val obj : Gtk.tips_query obj - method connect : tips_query_signals - method set_caller : widget -> unit - method set_emit_always : bool -> unit - method set_label_inactive : string -> unit - method set_label_no_tip : string -> unit - method start : unit -> unit - method stop : unit -> unit - end -val tips_query : - ?caller:#widget -> - ?emit_always:bool -> - ?label_inactive:string -> - ?label_no_tip:string -> - ?xalign:float -> - ?yalign:float -> - ?xpad:int -> - ?ypad:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> tips_query - -class pixmap : Gtk.pixmap Gtk.obj -> - object - inherit misc - val obj : Gtk.pixmap Gtk.obj - method connect : GObj.widget_signals - method pixmap : GDraw.pixmap - method set_pixmap : GDraw.pixmap -> unit - end -val pixmap : - #GDraw.pixmap -> - ?xalign:float -> - ?yalign:float -> - ?xpad:int -> - ?ypad:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> pixmap - -class color_selection : Gtk.color_selection obj -> - object - inherit widget_full - val obj : Gtk.color_selection obj - method get_color : Gtk.color - method set_color : - red:float -> green:float -> blue:float -> ?opacity:float -> unit -> unit - method set_opacity : bool -> unit - method set_update_policy : Tags.update_type -> unit - end -val color_selection : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> color_selection - -class font_selection : Gtk.font_selection obj -> - object - inherit widget_full - val obj : Gtk.font_selection obj - method event : event_ops - method notebook : GPack.notebook - method font : Gdk.font option - method font_name : string option - method preview_text : string - method set_filter : - ?kind:Tags.font_type list -> - ?foundry:string list -> - ?weight:string list -> - ?slant:string list -> - ?setwidth:string list -> - ?spacing:string list -> - ?charset:string list -> Tags.font_filter_type -> unit - method set_font_name : string -> unit - method set_preview_text : string -> unit - end -val font_selection : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> font_selection diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gObj.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gObj.ml deleted file mode 100644 index 5c4819fa0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gObj.ml +++ /dev/null @@ -1,292 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkData -open GtkBase - -(* Object *) - -class gtkobj obj = object - val obj = obj - method destroy () = Object.destroy obj - method get_id = Object.get_id obj -end - -class gtkobj_misc obj = object - val obj = obj - method get_type = Type.name (Object.get_type obj) - method disconnect = GtkSignal.disconnect obj - method handler_block = GtkSignal.handler_block obj - method handler_unblock = GtkSignal.handler_unblock obj -end - -class gtkobj_signals ?(after=false) obj = object - val obj = obj - val after = after - method after = {< after = true >} - method destroy = GtkSignal.connect ~sgn:Object.Signals.destroy obj -end - -(* Widget *) - -class event_signals ?(after=false) obj = object - val obj = Widget.coerce obj - val after = after - method after = {< after = true >} - method any = GtkSignal.connect ~sgn:Widget.Signals.Event.any ~after obj - method button_press = - GtkSignal.connect ~sgn:Widget.Signals.Event.button_press ~after obj - method button_release = - GtkSignal.connect ~sgn:Widget.Signals.Event.button_release ~after obj - method configure = - GtkSignal.connect ~sgn:Widget.Signals.Event.configure ~after obj - method delete = - GtkSignal.connect ~sgn:Widget.Signals.Event.delete ~after obj - method destroy = - GtkSignal.connect ~sgn:Widget.Signals.Event.destroy ~after obj - method enter_notify = - GtkSignal.connect ~sgn:Widget.Signals.Event.enter_notify ~after obj - method expose = - GtkSignal.connect ~sgn:Widget.Signals.Event.expose ~after obj - method focus_in = - GtkSignal.connect ~sgn:Widget.Signals.Event.focus_in ~after obj - method focus_out = - GtkSignal.connect ~sgn:Widget.Signals.Event.focus_out ~after obj - method key_press = - GtkSignal.connect ~sgn:Widget.Signals.Event.key_press ~after obj - method key_release = - GtkSignal.connect ~sgn:Widget.Signals.Event.key_release ~after obj - method leave_notify = - GtkSignal.connect ~sgn:Widget.Signals.Event.leave_notify ~after obj - method map = GtkSignal.connect ~sgn:Widget.Signals.Event.map ~after obj - method motion_notify = - GtkSignal.connect ~sgn:Widget.Signals.Event.motion_notify ~after obj - method property_notify = - GtkSignal.connect ~sgn:Widget.Signals.Event.property_notify ~after obj - method proximity_in = - GtkSignal.connect ~sgn:Widget.Signals.Event.proximity_in ~after obj - method proximity_out = - GtkSignal.connect ~sgn:Widget.Signals.Event.proximity_out ~after obj - method selection_clear = - GtkSignal.connect ~sgn:Widget.Signals.Event.selection_clear ~after obj - method selection_notify = - GtkSignal.connect ~sgn:Widget.Signals.Event.selection_notify ~after obj - method selection_request = - GtkSignal.connect ~sgn:Widget.Signals.Event.selection_request ~after obj - method unmap = GtkSignal.connect ~sgn:Widget.Signals.Event.unmap ~after obj -end - -class event_ops obj = object - val obj = Widget.coerce obj - method add = Widget.add_events obj - method connect = new event_signals obj - method send : Gdk.Tags.event_type Gdk.event -> bool = Widget.event obj - method set_extensions = Widget.set_extension_events obj -end - -class style st = object - val style = st - method as_style = style - method copy = {< style = Style.copy style >} - method bg state = Style.get_bg style ~state - method colormap = Style.get_colormap style - method font = Style.get_font style - method set_bg = - List.iter ~f: - (fun (state,c) -> Style.set_bg style ~state ~color:(GDraw.color c)) - method set_font = Style.set_font style - method set_background = Style.set_background style -end - -class selection_data (sel : Selection.t) = object - val sel = sel - method selection = Selection.selection sel - method target = Selection.target sel - method seltype = Selection.seltype sel - method format = Selection.format sel - method data = Selection.get_data sel - method set = Selection.set sel -end - -class drag_signals ?(after=false) obj = object - val obj = Widget.coerce obj - val after = after - method after = {< after = true >} - method beginning ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_begin ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method ending ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_end ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method data_delete ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_data_delete ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method leave ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_leave ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method motion ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_motion ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method drop ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_drop ~after obj - ~callback:(fun context -> callback (new drag_context context)) - method data_get ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_data_get ~after obj - ~callback:(fun context data -> callback (new drag_context context) - (new selection_data data)) - method data_received ~callback = - GtkSignal.connect ~sgn:Widget.Signals.drag_data_received ~after obj - ~callback:(fun context ~x ~y data -> callback (new drag_context context) - ~x ~y (new selection_data data)) - -end - -and drag_ops obj = object - val obj = Widget.coerce obj - method connect = new drag_signals obj - method dest_set ?(flags=[`ALL]) ?(actions=[]) targets = - DnD.dest_set obj ~flags ~actions ~targets:(Array.of_list targets) - method dest_unset () = DnD.dest_unset obj - method get_data ?(time=0) ~context:(context : drag_context) target = - DnD.get_data obj (context : < context : Gdk.drag_context; .. >)#context - ~target ~time - method highlight () = DnD.highlight obj - method unhighlight () = DnD.unhighlight obj - method source_set ?modi:m ?(actions=[]) targets = - DnD.source_set obj ?modi:m ~actions ~targets:(Array.of_list targets) - method source_set_icon ?(colormap = Gdk.Color.get_system_colormap ()) - (pix : GDraw.pixmap) = - DnD.source_set_icon obj ~colormap pix#pixmap ?mask:pix#mask - method source_unset () = DnD.source_unset obj -end - -and drag_context context = object - inherit GDraw.drag_context context - method context = context - method finish = DnD.finish context - method source_widget = - new widget (Object.unsafe_cast (DnD.get_source_widget context)) - method set_icon_widget (w : widget) = - DnD.set_icon_widget context (w#as_widget) - method set_icon_pixmap ?(colormap = Gdk.Color.get_system_colormap ()) - (pix : GDraw.pixmap) = - DnD.set_icon_pixmap context ~colormap pix#pixmap ?mask:pix#mask -end - -and misc_signals ?after obj = object - inherit gtkobj_signals ?after obj - method draw ~callback = - GtkSignal.connect obj ~sgn:Widget.Signals.draw ~after ~callback: - begin fun rect -> - callback - { x = Gdk.Rectangle.x rect ; y = Gdk.Rectangle.y rect; - width = Gdk.Rectangle.width rect; - height = Gdk.Rectangle.height rect } - end - method show = GtkSignal.connect ~sgn:Widget.Signals.show ~after obj - method hide = GtkSignal.connect ~sgn:Widget.Signals.hide ~after obj - method map = GtkSignal.connect ~sgn:Widget.Signals.map ~after obj - method unmap = GtkSignal.connect ~sgn:Widget.Signals.unmap ~after obj - method realize = GtkSignal.connect ~sgn:Widget.Signals.realize ~after obj - method state_changed = - GtkSignal.connect ~sgn:Widget.Signals.state_changed ~after obj - method parent_set ~callback = - GtkSignal.connect obj ~sgn:Widget.Signals.parent_set ~after ~callback: - begin function - None -> callback None - | Some w -> callback (Some (new widget (Object.unsafe_cast w))) - end - method style_set ~callback = - GtkSignal.connect obj ~sgn:Widget.Signals.style_set ~after ~callback: - (fun opt -> callback (may opt ~f:(new style))) -end - -and misc_ops obj = object - inherit gtkobj_misc (Widget.coerce obj) - method connect = new misc_signals obj - method show () = Widget.show obj - method unparent () = Widget.unparent obj - method show_all () = Widget.show_all obj - method hide () = Widget.hide obj - method hide_all () = Widget.hide_all obj - method map () = Widget.map obj - method unmap () = Widget.unmap obj - method realize () = Widget.realize obj - method unrealize () = Widget.unrealize obj - method draw = Widget.draw obj - method activate () = Widget.activate obj - method reparent (w : widget) = Widget.reparent obj w#as_widget - method popup = Widget.popup obj - method intersect = Widget.intersect obj - method grab_focus () = Widget.grab_focus obj - method grab_default () = Widget.grab_default obj - 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 remove_accelerator ~group ?modi key = - Widget.remove_accelerator obj group ~key ?modi - method lock_accelerators () = Widget.lock_accelerators obj - method set_name = Widget.set_name obj - method set_state = Widget.set_state obj - method set_sensitive = Widget.set_sensitive obj - method set_can_default = Widget.set_can_default obj - method set_can_focus = Widget.set_can_focus obj - method set_geometry ?(x = -2) ?(y = -2) ?(width = -2) ?(height = -2) () = - if x+y <> -4 then Widget.set_uposition obj ~x ~y; - if width+height <> -4 then Widget.set_usize obj ~width ~height - method set_style (style : style) = Widget.set_style obj style#as_style - (* get functions *) - method name = Widget.get_name obj - method toplevel = - try Some (new widget (Object.unsafe_cast (Widget.get_toplevel obj))) - with Gpointer.Null -> None - method window = Widget.window obj - method colormap = Widget.get_colormap obj - method visual = Widget.get_visual obj - method visual_depth = Gdk.Window.visual_depth (Widget.get_visual obj) - method pointer = Widget.get_pointer obj - method style = new style (Widget.get_style obj) - method visible = Widget.visible obj - method has_focus = Widget.has_focus obj - method parent = - try Some (new widget (Object.unsafe_cast (Widget.parent obj))) - with Gpointer.Null -> None - method set_app_paintable = Widget.set_app_paintable obj - method allocation = Widget.allocation obj -end - -and widget obj = object (self) - inherit gtkobj obj - method as_widget = Widget.coerce obj - method misc = new misc_ops obj - method drag = new drag_ops (Object.unsafe_cast obj) - method coerce = - (self :> < destroy : _; get_id : _; as_widget : _; misc : _; - drag : _; coerce : _ >) -end - -(* just to check that GDraw.misc_ops is compatible with misc_ops *) -let _ = fun (x : #GDraw.misc_ops) -> (x : misc_ops) - -class widget_signals ?after (obj : [> `widget] obj) = - gtkobj_signals ?after obj - -(* -class widget_coerce obj = object - inherit widget obj - method coerce = (self :> widget) -end -*) - -class widget_full obj = object - inherit widget obj - method connect = new widget_signals obj -end - -let as_widget (w : widget) = w#as_widget - -let pack_return self ~packing ~show = - may packing ~f:(fun f -> (f (self :> widget) : unit)); - if show <> Some false then self#misc#show (); - self diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gObj.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gObj.mli deleted file mode 100644 index 7c37cf124..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gObj.mli +++ /dev/null @@ -1,267 +0,0 @@ -(* $Id$ *) - -open Gtk - -(* Object *) - -class gtkobj : - 'a obj -> - object - val obj : 'a obj - method destroy : unit -> unit - method get_id : int - end - -class gtkobj_signals : - ?after:bool -> 'a obj -> - object ('b) - val obj : 'a obj - val after : bool - method after : 'b - method destroy : callback:(unit -> unit) -> GtkSignal.id - end - -class gtkobj_misc : 'a obj -> - object - method get_type : string - method disconnect : GtkSignal.id -> unit - method handler_block : GtkSignal.id -> unit - method handler_unblock : GtkSignal.id -> unit - end - -(* Widget *) - -class event_signals : - ?after:bool -> [>`widget] obj -> - object ('a) - method after : 'a - method any : - callback:(Gdk.Tags.event_type Gdk.event -> bool) -> GtkSignal.id - method button_press : callback:(GdkEvent.Button.t -> bool) -> GtkSignal.id - method button_release : - callback:(GdkEvent.Button.t -> bool) -> GtkSignal.id - method configure : callback:(GdkEvent.Configure.t -> bool) -> GtkSignal.id - method delete : callback:([`DELETE] Gdk.event -> bool) -> GtkSignal.id - method destroy : callback:([`DESTROY] Gdk.event -> bool) -> GtkSignal.id - method enter_notify : - callback:(GdkEvent.Crossing.t -> bool) -> GtkSignal.id - method expose : callback:(GdkEvent.Expose.t -> bool) -> GtkSignal.id - method focus_in : callback:(GdkEvent.Focus.t -> bool) -> GtkSignal.id - method focus_out : callback:(GdkEvent.Focus.t -> bool) -> GtkSignal.id - method key_press : callback:(GdkEvent.Key.t -> bool) -> GtkSignal.id - method key_release : callback:(GdkEvent.Key.t -> bool) -> GtkSignal.id - method leave_notify : - callback:(GdkEvent.Crossing.t -> bool) -> GtkSignal.id - method map : callback:([`MAP] Gdk.event -> bool) -> GtkSignal.id - method motion_notify : - callback:(GdkEvent.Motion.t -> bool) -> GtkSignal.id - method property_notify : - callback:(GdkEvent.Property.t -> bool) -> GtkSignal.id - method proximity_in : - callback:(GdkEvent.Proximity.t -> bool) -> GtkSignal.id - method proximity_out : - callback:(GdkEvent.Proximity.t -> bool) -> GtkSignal.id - method selection_clear : - callback:(GdkEvent.Selection.t -> bool) -> GtkSignal.id - method selection_notify : - callback:(GdkEvent.Selection.t -> bool) -> GtkSignal.id - method selection_request : - callback:(GdkEvent.Selection.t -> bool) -> GtkSignal.id - method unmap : callback:([`UNMAP] Gdk.event -> bool) -> GtkSignal.id - end - -class event_ops : [>`widget] obj -> - object - method add : Gdk.Tags.event_mask list -> unit - method connect : event_signals - method send : Gdk.Tags.event_type Gdk.event -> bool - method set_extensions : Gdk.Tags.extension_events -> unit - end - -class style : Gtk.style -> - object ('a) - val style : Gtk.style - method as_style : Gtk.style - method bg : Tags.state_type -> Gdk.Color.t - method colormap : Gdk.colormap - method copy : 'a - method font : Gdk.font - method set_background : Gdk.window -> Tags.state_type -> unit - method set_bg : (Tags.state_type * GDraw.color) list -> unit - method set_font : Gdk.font -> unit - end - -class selection_data : - GtkData.Selection.t -> - object - val sel : GtkData.Selection.t - method data : string (* May raise Null_pointer *) - method format : int - method selection : Gdk.atom - method seltype : Gdk.atom - method target : Gdk.atom - method set : typ:Gdk.atom -> format:int -> ?data:string -> unit - end - -class drag_ops : [>`widget] obj -> - object - method connect : drag_signals - method dest_set : - ?flags:Tags.dest_defaults list -> - ?actions:Gdk.Tags.drag_action list -> target_entry list -> unit - method dest_unset : unit -> unit - method get_data : ?time:int -> context:drag_context -> Gdk.atom ->unit - method highlight : unit -> unit - method source_set : - ?modi:Gdk.Tags.modifier list -> - ?actions:Gdk.Tags.drag_action list -> target_entry list -> unit - method source_set_icon : ?colormap:Gdk.colormap -> GDraw.pixmap -> unit - method source_unset : unit -> unit - method unhighlight : unit -> unit - end - -and misc_ops : - [>`widget] obj -> - object - inherit gtkobj_misc - val obj : Gtk.widget obj - method activate : unit -> bool - method add_accelerator : - sgn:(Gtk.widget, unit -> unit) GtkSignal.t -> - group:accel_group -> ?modi:Gdk.Tags.modifier list -> - ?flags:Tags.accel_flag list -> Gdk.keysym -> unit - method allocation : rectangle - method colormap : Gdk.colormap - method connect : misc_signals - method draw : Gdk.Rectangle.t option -> unit - method grab_default : unit -> unit - method grab_focus : unit -> unit - method has_focus : bool - method hide : unit -> unit - method hide_all : unit -> unit - method intersect : Gdk.Rectangle.t -> Gdk.Rectangle.t option - method is_ancestor : widget -> bool - method lock_accelerators : unit -> unit - method map : unit -> unit - method name : string - method parent : widget option - method pointer : int * int - method popup : x:int -> y:int -> unit - method realize : unit -> unit - method remove_accelerator : - group:accel_group -> ?modi:Gdk.Tags.modifier list -> Gdk.keysym -> unit - method reparent : widget -> unit - method set_app_paintable : bool -> unit - method set_can_default : bool -> unit - method set_can_focus : bool -> unit - method set_name : string -> unit - method set_sensitive : bool -> unit - method set_state : Tags.state_type -> unit - method set_style : style -> unit - method set_geometry : - ?x:int -> ?y:int -> ?width:int -> ?height:int -> unit -> unit - method show : unit -> unit - method show_all : unit -> unit - method style : style - method toplevel : widget option - method unmap : unit -> unit - method unparent : unit -> unit - method unrealize : unit -> unit - method visible : bool - method visual : Gdk.visual - method visual_depth : int - method window : Gdk.window - end - -and widget : - 'a obj -> - object - inherit gtkobj - constraint 'a = [>`widget] - val obj : 'a obj - method as_widget : Gtk.widget obj - method coerce : widget - method drag : drag_ops - method misc : misc_ops - end - -and misc_signals : - ?after:bool -> Gtk.widget obj -> - object ('b) - inherit gtkobj_signals - val obj : Gtk.widget obj - method after : 'b - method draw : callback:(Gtk.rectangle -> unit) -> GtkSignal.id - method hide : callback:(unit -> unit) -> GtkSignal.id - method map : callback:(unit -> unit) -> GtkSignal.id - method parent_set : callback:(widget option -> unit) -> GtkSignal.id - method realize : callback:(unit -> unit) -> GtkSignal.id - method show : callback:(unit -> unit) -> GtkSignal.id - method state_changed : - callback:(Gtk.Tags.state_type -> unit) -> GtkSignal.id - method style_set : callback:(unit -> unit) -> GtkSignal.id - method unmap : callback:(unit -> unit) -> GtkSignal.id - end - -and drag_context : - Gdk.drag_context -> - object - val context : Gdk.drag_context - method context : Gdk.drag_context - method finish : success:bool -> del:bool -> time:int -> unit - method source_widget : widget - method set_icon_pixmap : - ?colormap:Gdk.colormap -> GDraw.pixmap -> hot_x:int -> hot_y:int -> unit - method set_icon_widget : widget -> hot_x:int -> hot_y:int -> unit - method status : ?time:int -> Gdk.Tags.drag_action list -> unit - method suggested_action : Gdk.Tags.drag_action - method targets : Gdk.atom list - end - -and drag_signals : - ?after:bool -> Gtk.widget obj -> - object ('a) - method after : 'a - method beginning : - callback:(drag_context -> unit) -> GtkSignal.id - method data_delete : - callback:(drag_context -> unit) -> GtkSignal.id - method data_get : - callback:(drag_context -> selection_data -> info:int -> time:int -> unit) - -> GtkSignal.id - method data_received : - callback:(drag_context -> x:int -> y:int -> - selection_data -> info:int -> time:int -> unit) -> GtkSignal.id - method drop : - callback:(drag_context -> x:int -> y:int -> time:int -> bool) -> - GtkSignal.id - method ending : - callback:(drag_context -> unit) -> GtkSignal.id - method leave : - callback:(drag_context -> time:int -> unit) -> GtkSignal.id - method motion : - callback:(drag_context -> x:int -> y:int -> time:int -> bool) -> - GtkSignal.id - end - -class widget_signals : ?after:bool -> 'a obj -> - object - inherit gtkobj_signals - constraint 'a = [>`widget] - val obj : 'a obj - end - -class widget_full : 'a obj -> - object - inherit widget - constraint 'a = [>`widget] - val obj : 'a obj - method connect : widget_signals - end - -val as_widget : widget -> Gtk.widget obj - -val pack_return : - (#widget as 'a) -> - packing:(widget -> unit) option -> show:bool option -> 'a - (* To use in initializers to provide a ?packing: option *) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gPack.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gPack.ml deleted file mode 100644 index 3641349a9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gPack.ml +++ /dev/null @@ -1,217 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkPack -open GObj -open GContainer - -class box_skel obj = object - inherit container obj - method pack ?from:f ?expand ?fill ?padding w = - Box.pack obj (as_widget w) ?from:f ?expand ?fill ?padding - method set_homogeneous = Box.set_homogeneous obj - method set_spacing = Box.set_spacing obj - method set_child_packing ?from:f ?expand ?fill ?padding w = - Box.set_child_packing obj (as_widget w) ?from:f ?expand ?fill ?padding - method reorder_child w = Box.reorder_child obj (as_widget w) -end - -class box obj = object - inherit box_skel obj - method connect = new container_signals obj -end - -let box dir ?homogeneous ?spacing ?border_width ?width ?height - ?packing ?show () = - let w = Box.create dir ?homogeneous ?spacing () in - Container.set w ?border_width ?width ?height; - pack_return (new box w) ~packing ~show - -let vbox = box `VERTICAL -let hbox = box `HORIZONTAL - -class button_box obj = object - inherit box_skel (obj : Gtk.button_box obj) - method connect = new container_signals obj - method set_layout = BBox.set_layout obj - method set_spacing = BBox.set_spacing obj - method set_child_size = BBox.set_child_size obj - method set_child_ipadding = BBox.set_child_ipadding obj -end - -let button_box dir ?spacing ?child_width ?child_height ?child_ipadx - ?child_ipady ?layout ?border_width ?width ?height ?packing ?show ()= - let w = BBox.create dir in - BBox.set w ?spacing ?child_width ?child_height ?child_ipadx - ?child_ipady ?layout; - Container.set w ?border_width ?width ?height; - pack_return (new button_box w) ~packing ~show - -class table obj = object - inherit container_full (obj : Gtk.table obj) - method attach ~left ~top ?right ?bottom ?expand ?fill ?shrink - ?xpadding ?ypadding w = - Table.attach obj (as_widget w) ~left ~top ?right ?bottom ?expand - ?fill ?shrink ?xpadding ?ypadding - method set_row_spacing = Table.set_row_spacing obj - method set_col_spacing = Table.set_col_spacing obj - method set_row_spacings = Table.set_row_spacings obj - method set_col_spacings = Table.set_col_spacings obj - method set_homogeneous = Table.set_homogeneous obj -end - -let table ~rows ~columns ?homogeneous ?row_spacings ?col_spacings - ?border_width ?width ?height ?packing ?show () = - let w = Table.create ~rows ~columns ?homogeneous () in - Table.set w ?row_spacings ?col_spacings; - Container.set w ?border_width ?width ?height; - pack_return (new table w) ~packing ~show - -class fixed obj = object - inherit container_full (obj : Gtk.fixed obj) - method event = new GObj.event_ops obj - method put w = Fixed.put obj (as_widget w) - method move w = Fixed.move obj (as_widget w) -end - -let fixed ?border_width ?width ?height ?packing ?show () = - let w = Fixed.create () in - Container.set w ?border_width ?width ?height; - pack_return (new fixed w) ~packing ~show - -class layout obj = object - inherit container_full (obj : Gtk.layout obj) - method event = new GObj.event_ops obj - method put w = Layout.put obj (as_widget w) - method move w = Layout.move obj (as_widget w) - method set_hadjustment adj = - Layout.set_hadjustment obj (GData.as_adjustment adj) - method set_vadjustment adj = - Layout.set_vadjustment obj (GData.as_adjustment adj) - method set_width width = Layout.set_size obj ~width - method set_height height = Layout.set_size obj ~height - method hadjustment = new GData.adjustment (Layout.get_hadjustment obj) - method vadjustment = new GData.adjustment (Layout.get_vadjustment obj) - method freeze () = Layout.freeze obj - method thaw () = Layout.thaw obj - method width = Layout.get_width obj - method height = Layout.get_height obj -end - -let layout ?hadjustment ?vadjustment ?layout_width ?layout_height - ?border_width ?width ?height ?packing ?show () = - let w = Layout.create - (Gpointer.optboxed (may_map ~f:GData.as_adjustment hadjustment)) - (Gpointer.optboxed (may_map ~f:GData.as_adjustment vadjustment)) in - if layout_width <> None || layout_height <> None then - Layout.set_size w ?width:layout_width ?height:layout_height; - Container.set w ?border_width ?width ?height; - pack_return (new layout w) ~packing ~show - - -class packer obj = object - inherit container_full (obj : Gtk.packer obj) - method pack ?side ?anchor ?expand ?fill - ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y w = - let options = Packer.build_options ?expand ?fill () in - if border_width == None && pad_x == None && pad_y == None && - i_pad_x == None && i_pad_y == None - then Packer.add_defaults obj (as_widget w) ?side ?anchor ~options - else Packer.add obj (as_widget w) ?side ?anchor ~options - ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y - method set_child_packing ?side ?anchor ?expand ?fill - ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y w = - Packer.set_child_packing obj (as_widget w) ?side ?anchor - ~options:(Packer.build_options ?expand ?fill ()) - ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y - method reorder_child w = Packer.reorder_child obj (as_widget w) - method set_spacing = Packer.set_spacing obj - method set_defaults = Packer.set_defaults obj -end - -let packer ?spacing ?border_width ?width ?height ?packing ?show () = - let w = Packer.create () in - may spacing ~f:(Packer.set_spacing w); - Container.set w ?border_width ?width ?height; - pack_return (new packer w) ~packing ~show - -class paned obj = object - inherit container_full (obj : Gtk.paned obj) - method event = new GObj.event_ops obj - method add w = - if List.length (Container.children obj) = 2 then - raise(Error "Gpack.paned#add: already full"); - Container.add obj (as_widget w) - method add1 w = - try ignore(Paned.child1 obj); raise(Error "GPack.paned#add1: already full") - with _ -> Paned.add1 obj (as_widget w) - method add2 w = - try ignore(Paned.child2 obj); raise(Error "GPack.paned#add2: already full") - with _ -> Paned.add2 obj (as_widget w) - method set_handle_size = Paned.set_handle_size obj - method set_gutter_size = Paned.set_gutter_size obj - method child1 = new widget (Paned.child1 obj) - method child2 = new widget (Paned.child2 obj) - method handle_size = Paned.handle_size obj - method gutter_size = Paned.gutter_size obj -end - -let paned dir ?handle_size ?gutter_size - ?border_width ?width ?height ?packing ?show () = - let w = Paned.create dir in - Paned.set w ?handle_size ?gutter_size; - Container.set w ?border_width ?width ?height; - pack_return (new paned w) ~packing ~show - -class notebook_signals obj = object - inherit GContainer.container_signals obj - method switch_page = - GtkSignal.connect obj ~sgn:Notebook.Signals.switch_page ~after -end - -class notebook obj = object (self) - inherit GContainer.container obj - method event = new GObj.event_ops obj - method connect = new notebook_signals obj - method insert_page ?tab_label ?menu_label ~pos child = - Notebook.insert_page obj (as_widget child) ~pos - ~tab_label:(Gpointer.may_box tab_label ~f:as_widget) - ~menu_label:(Gpointer.may_box menu_label ~f:as_widget) - method append_page = self#insert_page ~pos:(-1) - method prepend_page = self#insert_page ~pos:0 - method remove_page = Notebook.remove_page obj - method current_page = Notebook.get_current_page obj - method goto_page = Notebook.set_page obj - method previous_page () = Notebook.prev_page obj - method next_page () = Notebook.next_page obj - method set_tab_pos = Notebook.set_tab_pos obj - method set_show_tabs = Notebook.set_show_tabs obj - method set_homogeneous_tabs = Notebook.set_homogeneous_tabs obj - method set_show_border = Notebook.set_show_border obj - method set_scrollable = Notebook.set_scrollable obj - method set_tab_border = Notebook.set_tab_border obj - method set_popup = Notebook.set_popup obj - method page_num w = Notebook.page_num obj (as_widget w) - method get_nth_page n = new widget (Notebook.get_nth_page obj n) - method get_tab_label w = - new widget (Notebook.get_tab_label obj (as_widget w)) - method get_menu_label w = - new widget (Notebook.get_tab_label obj (as_widget w)) - method set_page ?tab_label ?menu_label page = - let child = as_widget page in - may tab_label - ~f:(fun lbl -> Notebook.set_tab_label obj child (as_widget lbl)); - may menu_label - ~f:(fun lbl -> Notebook.set_menu_label obj child (as_widget lbl)) -end - -let notebook ?tab_pos ?tab_border ?show_tabs ?homogeneous_tabs - ?show_border ?scrollable ?popup - ?border_width ?width ?height ?packing ?show () = - let w = Notebook.create () in - Notebook.set w ?tab_pos ?tab_border ?show_tabs - ?homogeneous_tabs ?show_border ?scrollable ?popup; - Container.set w ?border_width ?width ?height; - pack_return (new notebook w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gPack.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gPack.mli deleted file mode 100644 index 994c8b87f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gPack.mli +++ /dev/null @@ -1,267 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class box_skel : - 'a obj -> - object - inherit container - constraint 'a = [>`box|`container|`widget] - val obj : 'a obj - method pack : - ?from:Tags.pack_type -> - ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit - method reorder_child : widget -> pos:int -> unit - method set_child_packing : - ?from:Tags.pack_type -> - ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit - method set_homogeneous : bool -> unit - method set_spacing : int -> unit - end -class box : - 'a obj -> - object - inherit box_skel - constraint 'a = [>`box|`container|`widget] - val obj : 'a obj - method connect : GContainer.container_signals - end - -val box : - Tags.orientation -> - ?homogeneous:bool -> - ?spacing:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> box -val vbox : - ?homogeneous:bool -> - ?spacing:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> box -val hbox : - ?homogeneous:bool -> - ?spacing:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> box - -class button_box : - Gtk.button_box obj -> - object - inherit container_full - val obj : Gtk.button_box obj - method pack : - ?from:Tags.pack_type -> - ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit - method reorder_child : widget -> pos:int -> unit - method set_child_ipadding : ?x:int -> ?y:int -> unit -> unit - method set_child_packing : - ?from:Tags.pack_type -> - ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit - method set_child_size : ?width:int -> ?height:int -> unit -> unit - method set_homogeneous : bool -> unit - method set_layout : GtkPack.BBox.bbox_style -> unit - method set_spacing : int -> unit - end -val button_box : - Tags.orientation -> - ?spacing:int -> - ?child_width:int -> - ?child_height:int -> - ?child_ipadx:int -> - ?child_ipady:int -> - ?layout:GtkPack.BBox.bbox_style -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> button_box - -class table : - Gtk.table obj -> - object - inherit container_full - val obj : Gtk.table obj - method attach : - left:int -> - top:int -> - ?right:int -> - ?bottom:int -> - ?expand:Tags.expand_type -> - ?fill:Tags.expand_type -> - ?shrink:Tags.expand_type -> - ?xpadding:int -> ?ypadding:int -> widget -> unit - method set_col_spacing : int -> int -> unit - method set_col_spacings : int -> unit - method set_homogeneous : bool -> unit - method set_row_spacing : int -> int -> unit - method set_row_spacings : int -> unit - end -val table : - rows:int -> - columns:int -> - ?homogeneous:bool -> - ?row_spacings:int -> - ?col_spacings:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> table - -class fixed : - Gtk.fixed obj -> - object - inherit container_full - val obj : Gtk.fixed obj - method event : event_ops - method move : widget -> x:int -> y:int -> unit - method put : widget -> x:int -> y:int -> unit - end -val fixed : - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> fixed - -class layout : - Gtk.layout obj -> - object - inherit container_full - val obj : Gtk.layout obj - method event : event_ops - method freeze : unit -> unit - method hadjustment : GData.adjustment - method height : int - method move : widget -> x:int -> y:int -> unit - method put : widget -> x:int -> y:int -> unit - method set_hadjustment : GData.adjustment -> unit - method set_height : int -> unit - method set_vadjustment : GData.adjustment -> unit - method set_width : int -> unit - method thaw : unit -> unit - method vadjustment : GData.adjustment - method width : int - end -val layout : - ?hadjustment:GData.adjustment -> - ?vadjustment:GData.adjustment -> - ?layout_width:int -> - ?layout_height:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> layout - -class notebook_signals : 'a obj -> - object - inherit container_signals - constraint 'a = [>`notebook|`container|`widget] - val obj : 'a obj - method switch_page : callback:(int -> unit) -> GtkSignal.id - end - -class notebook : ([> `widget | `container | `notebook] as 'a) obj -> - object - inherit container - val obj : 'a obj - method event : event_ops - method append_page : - ?tab_label:widget -> ?menu_label:widget -> widget -> unit - method connect : notebook_signals - method current_page : int - method get_menu_label : widget -> widget - method get_nth_page : int -> widget - method get_tab_label : widget -> widget - method goto_page : int -> unit - method insert_page : - ?tab_label:widget -> ?menu_label:widget -> pos:int -> widget -> unit - method next_page : unit -> unit - method page_num : widget -> int - method prepend_page : - ?tab_label:widget -> ?menu_label:widget -> widget -> unit - method previous_page : unit -> unit - method remove_page : int -> unit - method set_homogeneous_tabs : bool -> unit - method set_page : - ?tab_label:widget -> ?menu_label:widget -> widget -> unit - method set_popup : bool -> unit - method set_scrollable : bool -> unit - method set_show_border : bool -> unit - method set_show_tabs : bool -> unit - method set_tab_border : int -> unit - method set_tab_pos : Tags.position -> unit - end -val notebook : - ?tab_pos:Tags.position -> - ?tab_border:int -> - ?show_tabs:bool -> - ?homogeneous_tabs:bool -> - ?show_border:bool -> - ?scrollable:bool -> - ?popup:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> notebook - -class packer : - Gtk.packer obj -> - object - inherit container_full - val obj : Gtk.packer obj - method pack : - ?side:Tags.side_type -> - ?anchor:Tags.anchor_type -> - ?expand:bool -> - ?fill:Tags.expand_type -> - ?border_width:int -> - ?pad_x:int -> - ?pad_y:int -> ?i_pad_x:int -> ?i_pad_y:int -> widget -> unit - method reorder_child : widget -> pos:int -> unit - method set_child_packing : - ?side:Tags.side_type -> - ?anchor:Tags.anchor_type -> - ?expand:bool -> - ?fill:Tags.expand_type -> - ?border_width:int -> - ?pad_x:int -> - ?pad_y:int -> ?i_pad_x:int -> ?i_pad_y:int -> widget -> unit - method set_defaults : - ?border_width:int -> - ?pad_x:int -> - ?pad_y:int -> ?i_pad_x:int -> ?i_pad_y:int -> unit -> unit - method set_spacing : int -> unit - end -val packer : - ?spacing:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> packer - -class paned : - Gtk.paned obj -> - object - inherit container_full - val obj : Gtk.paned obj - method add1 : widget -> unit - method add2 : widget -> unit - method event : event_ops - method child1 : widget - method child2 : widget - method gutter_size : int - method handle_size : int - method set_gutter_size : int -> unit - method set_handle_size : int -> unit - end -val paned : - Tags.orientation -> - ?handle_size:int -> - ?gutter_size:int -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> paned diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gRange.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gRange.ml deleted file mode 100644 index 7df53ced1..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gRange.ml +++ /dev/null @@ -1,83 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkRange -open GObj - -class progress obj = object - inherit widget_full obj - method set_adjustment adj = - Progress.set_adjustment obj (GData.as_adjustment adj) - method set_show_text = Progress.set_show_text obj - method set_format_string = Progress.set_format_string obj - method set_text_alignment = Progress.set_text_alignment obj - method set_activity_mode = Progress.set_activity_mode obj - method set_value = Progress.set_value obj - method set_percentage = Progress.set_percentage obj - method configure = Progress.configure obj - method value = Progress.get_value obj - method percentage = Progress.get_percentage obj - method current_text = Progress.get_current_text obj - method adjustment = new GData.adjustment (Progress.get_adjustment obj) -end - -class progress_bar obj = object - inherit progress (obj : Gtk.progress_bar obj) - method event = new GObj.event_ops obj - method set_bar_style = ProgressBar.set_bar_style obj - method set_discrete_blocks = ProgressBar.set_discrete_blocks obj - method set_activity_step = ProgressBar.set_activity_step obj - method set_activity_blocks = ProgressBar.set_activity_blocks obj - method set_orientation = ProgressBar.set_orientation obj -end - -let progress_bar ?adjustment ?bar_style ?discrete_blocks - ?activity_step ?activity_blocks ?value ?percentage ?activity_mode - ?show_text ?format_string ?text_xalign ?text_yalign - ?packing ?show () = - let w = - match adjustment with None -> ProgressBar.create () - | Some adj -> - ProgressBar.create_with_adjustment (GData.as_adjustment adj) - in - ProgressBar.set w ?bar_style ?discrete_blocks - ?activity_step ?activity_blocks; - Progress.set w ?value ?percentage ?activity_mode - ?show_text ?format_string ?text_xalign ?text_yalign; - pack_return (new progress_bar w) ~packing ~show - -class range obj = object - inherit widget_full obj - method adjustment = new GData.adjustment (Range.get_adjustment obj) - method set_adjustment adj = - Range.set_adjustment obj (GData.as_adjustment adj) - method set_update_policy = Range.set_update_policy obj -end - -class scale obj = object - inherit range (obj : Gtk.scale obj) - method set_digits = Scale.set_digits obj - method set_draw_value = Scale.set_draw_value obj - method set_value_pos = Scale.set_value_pos obj -end - -let scale dir ?adjustment ?digits ?draw_value ?value_pos - ?packing ?show () = - let w = - Scale.create dir ?adjustment:(may_map ~f:GData.as_adjustment adjustment) - in - let () = Scale.set w ?digits ?draw_value ?value_pos in - pack_return (new scale w) ~packing ~show - -class scrollbar obj = object - inherit range (obj : Gtk.scrollbar obj) - method event = new GObj.event_ops obj -end - -let scrollbar dir ?adjustment ?update_policy ?packing ?show () = - let w = Scrollbar.create dir - ?adjustment:(may_map ~f:GData.as_adjustment adjustment) in - let () = may update_policy ~f:(Range.set_update_policy w) in - pack_return (new scrollbar w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gRange.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gRange.mli deleted file mode 100644 index ac9b38c27..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gRange.mli +++ /dev/null @@ -1,87 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj - -class progress : 'a obj -> - object - inherit widget_full - constraint 'a = [>`progress|`widget] - val obj : 'a obj - method adjustment : GData.adjustment - method configure : current:float -> min:float -> max:float -> unit - method current_text : string - method percentage : float - method set_activity_mode : bool -> unit - method set_adjustment : GData.adjustment -> unit - method set_format_string : string -> unit - method set_percentage : float -> unit - method set_show_text : bool -> unit - method set_text_alignment : ?x:float -> ?y:float -> unit -> unit - method set_value : float -> unit - method value : float - end - -class progress_bar : Gtk.progress_bar obj -> - object - inherit progress - val obj : Gtk.progress_bar obj - method event : event_ops - method set_activity_blocks : int -> unit - method set_activity_step : int -> unit - method set_bar_style : [`CONTINUOUS|`DISCRETE] -> unit - method set_discrete_blocks : int -> unit - method set_orientation : Tags.progress_bar_orientation -> unit - end -val progress_bar : - ?adjustment:GData.adjustment -> - ?bar_style:[`CONTINUOUS|`DISCRETE] -> - ?discrete_blocks:int -> - ?activity_step:int -> - ?activity_blocks:int -> - ?value:float -> - ?percentage:float -> - ?activity_mode:bool -> - ?show_text:bool -> - ?format_string:string -> - ?text_xalign:float -> - ?text_yalign:float -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> progress_bar - -class range : 'a obj -> - object - inherit widget_full - constraint 'a = [>`range|`widget] - val obj : 'a obj - method adjustment : GData.adjustment - method set_adjustment : GData.adjustment -> unit - method set_update_policy : Tags.update_type -> unit - end - -class scale : Gtk.scale obj -> - object - inherit range - val obj : Gtk.scale obj - method set_digits : int -> unit - method set_draw_value : bool -> unit - method set_value_pos : Tags.position -> unit - end -val scale : - Tags.orientation -> - ?adjustment:GData.adjustment -> - ?digits:int -> - ?draw_value:bool -> - ?value_pos:Tags.position -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> scale - -class scrollbar : Gtk.scrollbar obj -> - object - inherit range - val obj : Gtk.scrollbar obj - method event : event_ops - end -val scrollbar : - Tags.orientation -> - ?adjustment:GData.adjustment -> - ?update_policy:Tags.update_type -> - ?packing:(widget -> unit) -> ?show:bool -> unit -> scrollbar diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gTree.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gTree.ml deleted file mode 100644 index 80dab7be6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gTree.ml +++ /dev/null @@ -1,76 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkTree -open GObj -open GContainer - -class tree_item_signals obj = object - inherit item_signals obj - method expand = GtkSignal.connect obj ~sgn:TreeItem.Signals.expand ~after - method collapse = GtkSignal.connect obj ~sgn:TreeItem.Signals.collapse ~after -end - -class tree_item obj = object - inherit container obj - method event = new GObj.event_ops obj - method as_item : Gtk.tree_item obj = obj - method connect = new tree_item_signals obj - method set_subtree (w : tree) = TreeItem.set_subtree obj w#as_tree - method remove_subtree () = TreeItem.remove_subtree obj - method expand () = TreeItem.expand obj - method collapse () = TreeItem.collapse obj - method subtree = - try Some(new tree (TreeItem.subtree obj)) with Gpointer.Null -> None -end - -and tree_signals obj = object - inherit container_signals obj - method selection_changed = - GtkSignal.connect obj ~sgn:Tree.Signals.selection_changed ~after - method select_child ~callback = - GtkSignal.connect obj ~sgn:Tree.Signals.select_child ~after - ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) - method unselect_child ~callback = - GtkSignal.connect obj ~sgn:Tree.Signals.unselect_child ~after - ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) -end - -and tree obj = object (self) - inherit [tree_item] item_container obj - method event = new GObj.event_ops obj - method as_tree = Tree.coerce obj - method insert w ~pos = Tree.insert obj w#as_item ~pos - method connect = new tree_signals obj - method clear_items = Tree.clear_items obj - method select_item = Tree.select_item obj - method unselect_item = Tree.unselect_item obj - method child_position (w : tree_item) = Tree.child_position obj w#as_item - method remove_items items = - Tree.remove_items obj - (List.map ~f:(fun (t : tree_item) -> t#as_item) items) - method set_selection_mode = Tree.set_selection_mode obj - method set_view_mode = Tree.set_view_mode obj - method set_view_lines = Tree.set_view_lines obj - method selection = - List.map ~f:(fun w -> self#wrap (Widget.coerce w)) (Tree.selection obj) - method private wrap w = - new tree_item (TreeItem.cast w) -end - -let tree_item ?label ?border_width ?width ?height ?packing ?show () = - let w = TreeItem.create ?label () in - Container.set w ?border_width ?width ?height; - let self = new tree_item w in - may packing ~f:(fun f -> (f self : unit)); - if show <> Some false then self#misc#show (); - self - -let tree ?selection_mode ?view_mode ?view_lines - ?border_width ?width ?height ?packing ?show () = - let w = Tree.create () in - Tree.set w ?selection_mode ?view_mode ?view_lines; - Container.set w ?border_width ?width ?height; - pack_return (new tree w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gTree.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gTree.mli deleted file mode 100644 index d48e09b2a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gTree.mli +++ /dev/null @@ -1,72 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj -open GContainer - -class tree_item_signals : 'a obj -> - object - inherit item_signals - constraint 'a = [>`treeitem|`container|`item|`widget] - val obj : 'a obj - method collapse : callback:(unit -> unit) -> GtkSignal.id - method expand : callback:(unit -> unit) -> GtkSignal.id - end - -class tree_item : Gtk.tree_item obj -> - object - inherit GContainer.container - val obj : Gtk.tree_item obj - method event : event_ops - method as_item : Gtk.tree_item obj - method collapse : unit -> unit - method connect : tree_item_signals - method expand : unit -> unit - method remove_subtree : unit -> unit - method set_subtree : tree -> unit - method subtree : tree option - end - -and tree_signals : Gtk.tree obj -> - object - inherit container_signals - val obj : Gtk.tree obj - method select_child : callback:(tree_item -> unit) -> GtkSignal.id - method selection_changed : callback:(unit -> unit) -> GtkSignal.id - method unselect_child : callback:(tree_item -> unit) -> GtkSignal.id - end - -and tree : Gtk.tree obj -> - object - inherit [tree_item] item_container - val obj : Gtk.tree obj - method event : event_ops - method as_tree : Gtk.tree obj - method child_position : tree_item -> int - method clear_items : start:int -> stop:int -> unit - method connect : tree_signals - method insert : tree_item -> pos:int -> unit - method remove_items : tree_item list -> unit - method select_item : pos:int -> unit - method selection : tree_item list - method set_selection_mode : Tags.selection_mode -> unit - method set_view_lines : bool -> unit - method set_view_mode : [`LINE|`ITEM] -> unit - method unselect_item : pos:int -> unit - method private wrap : Gtk.widget obj -> tree_item - end - -val tree_item : - ?label:string -> - ?border_width:int -> - ?width:int -> - ?height:int -> - ?packing:(tree_item -> unit) -> ?show:bool -> unit -> tree_item - -val tree : - ?selection_mode:Tags.selection_mode -> - ?view_mode:[`LINE|`ITEM] -> - ?view_lines:bool -> - ?border_width:int -> - ?width:int -> - ?height:int -> ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> tree diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gUtil.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gUtil.ml deleted file mode 100644 index 260c2acee..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gUtil.ml +++ /dev/null @@ -1,80 +0,0 @@ -(* $Id$ *) - -open GObj - -class ['a] memo () = object - constraint 'a = #widget - val tbl = Hashtbl.create 7 - method add (obj : 'a) = - Hashtbl.add tbl ~key:obj#get_id ~data:obj - method find (obj : widget) = Hashtbl.find tbl obj#get_id - method remove (obj : widget) = Hashtbl.remove tbl obj#get_id -end - -let signal_id = ref 0 - -let next_callback_id () : GtkSignal.id = - decr signal_id; Obj.magic (!signal_id : int) - -class ['a] signal () = object (self) - val mutable callbacks : (GtkSignal.id * ('a -> unit)) list = [] - method callbacks = callbacks - method connect ~after ~callback = - let id = next_callback_id () in - callbacks <- - if after then callbacks @ [id,callback] else (id,callback)::callbacks; - id - method call arg = - List.exists callbacks ~f: - begin fun (_,f) -> - let old = GtkSignal.push_callback () in - try f arg; GtkSignal.pop_callback old - with exn -> GtkSignal.pop_callback old; raise exn - end; - () - method disconnect key = - List.mem_assoc key callbacks && - (callbacks <- List.remove_assoc key callbacks; true) -end - -class virtual ml_signals disconnectors = - object (self) - val after = false - method after = {< after = true >} - val mutable disconnectors : (GtkSignal.id -> bool) list = disconnectors - method disconnect key = - ignore (List.exists disconnectors ~f:(fun f -> f key)) - end - -class virtual add_ml_signals obj disconnectors = - object (self) - val mutable disconnectors : (GtkSignal.id -> bool) list = disconnectors - method disconnect key = - if List.exists disconnectors ~f:(fun f -> f key) then () - else GtkSignal.disconnect obj key - end - -class ['a] variable_signals ~(set : 'a signal) ~(changed : 'a signal) = - object - inherit ml_signals [changed#disconnect; set#disconnect] - method changed = changed#connect ~after - method set = set#connect ~after - end - -class ['a] variable x = - object (self) - val changed = new signal () - val set = new signal () - method connect = new variable_signals ~set ~changed - val mutable x : 'a = x - method get = x - method set = set#call - method private equal : 'a -> 'a -> bool = (=) - method private real_set y = - let x0 = x in x <- y; - if changed#callbacks <> [] && not (self#equal x x0) - then changed#call y - initializer - ignore (set#connect ~after:false ~callback:self#real_set) - end - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gUtil.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gUtil.mli deleted file mode 100644 index cd88d8697..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gUtil.mli +++ /dev/null @@ -1,109 +0,0 @@ -(* $Id$ *) - -open GObj - -(* The memo class provides an easy way to remember the real class of - a widget. - Insert all widgets of class in one single t memo, and you can then - recover their original ML object with #find. -*) - -class ['a] memo : unit -> - object - constraint 'a = #widget - val tbl : (int, 'a) Hashtbl.t - method add : 'a -> unit - method find : widget -> 'a - method remove : widget -> unit - end - -(* The ML signal mechanism allows one to add GTK-like signals to - arbitrary objects. -*) - -val next_callback_id : unit -> GtkSignal.id - -class ['a] signal : - unit -> - object - val mutable callbacks : (GtkSignal.id * ('a -> unit)) list - method callbacks : (GtkSignal.id * ('a -> unit)) list - method call : 'a -> unit - method connect : after:bool -> callback:('a -> unit) -> GtkSignal.id - method disconnect : GtkSignal.id -> bool - end -(* As with GTK signals, you can use [GtkSignal.stop_emit] inside a - callback to prevent other callbacks from being called. *) - -class virtual ml_signals : (GtkSignal.id -> bool) list -> - object ('a) - val after : bool - method after : 'a - method disconnect : GtkSignal.id -> unit - val mutable disconnectors : (GtkSignal.id -> bool) list - end -class virtual add_ml_signals : - 'a Gtk.obj -> (GtkSignal.id -> bool) list -> - object - method disconnect : GtkSignal.id -> unit - val mutable disconnectors : (GtkSignal.id -> bool) list - end - -(* To add ML signals to a LablGTK object: - - class mywidget_signals obj ~mysignal1 ~mysignal2 = object - inherit somewidget_signals obj - inherit add_ml_signals obj [mysignal1#disconnect; mysignal2#disconnect] - method mysignal1 = mysignal1#connect ~after - method mysignal2 = mysignal2#connect ~after - end - - class mywidget obj = object (self) - inherit somewidget obj - val mysignal1 = new signal obj - val mysignal2 = new signal obj - method connect = new mywidget_signals obj ~mysignal1 ~mysignal2 - method call1 = mysignal1#call - method call2 = mysignal2#call - end - - You can also add ML signals to an arbitrary object; just inherit - from [ml_signals] in place of [widget_signals]+[add_ml_signals]. - - class mysignals ~mysignal1 ~mysignal2 = object - inherit ml_signals [mysignal1#disconnect; mysignal2#disconnect] - method mysignal1 = mysignal1#connect ~after - method mysignal2 = mysignal2#connect ~after - end -*) - -(* The variable class provides an easy way to propagate state modifications. - A new variable is created by [new variable init]. The [#set] method just - calls the [set] signal, which by default only calls [real_set]. - [real_set] sets the variable and calls [changed] when needed. - Deep equality is used to compare values, but check is only done if - there are callbacks for [changed]. -*) - -class ['a] variable_signals : - set:'a signal -> changed:'a signal -> - object ('b) - val after : bool - method after : 'b - method set : callback:('a -> unit) -> GtkSignal.id - method changed : callback:('a -> unit) -> GtkSignal.id - method disconnect : GtkSignal.id -> unit - val mutable disconnectors : (GtkSignal.id -> bool) list - end - -class ['a] variable : 'a -> - object - val set : 'a signal - val changed : 'a signal - val mutable x : 'a - method connect : 'a variable_signals - method get : 'a - method set : 'a -> unit - method private equal : 'a -> 'a -> bool - method private real_set : 'a -> unit - end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gWindow.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gWindow.ml deleted file mode 100644 index 9ee313647..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gWindow.ml +++ /dev/null @@ -1,151 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase -open GtkWindow -open GtkMisc -open GObj -open GContainer - -class ['a] window_skel obj = object - constraint 'a = _ #window_skel - inherit container obj - method event = new GObj.event_ops obj - method as_window = Window.coerce obj - method activate_focus () = Window.activate_focus obj - method activate_default () = Window.activate_default obj - method add_accel_group = Window.add_accel_group obj - method set_modal = Window.set_modal obj - method set_default_size = Window.set_default_size obj - method set_position = Window.set_position obj - method set_resize_mode = Container.set_resize_mode obj - method set_transient_for (w : 'a) = - Window.set_transient_for obj w#as_window - method set_title = Window.set_title obj - method set_wm_name name = Window.set_wmclass obj ~name - method set_wm_class cls = Window.set_wmclass obj ~clas:cls - method set_allow_shrink allow_shrink = Window.set_policy obj ~allow_shrink - method set_allow_grow allow_grow = Window.set_policy obj ~allow_grow - method set_auto_shrink auto_shrink = Window.set_policy obj ~auto_shrink - method show () = Widget.show obj -end - -class window obj = object - inherit [window] window_skel (Window.coerce obj) - method connect = new container_signals obj -end - -let window ?kind:(t=`TOPLEVEL) ?title ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y - ?border_width ?width ?height ?(show=false) () = - let w = Window.create t in - Window.set w ?title ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y; - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new window w - -class dialog obj = object - inherit [window] window_skel (Dialog.coerce obj) - method connect = new container_signals obj - method action_area = new GPack.box (Dialog.action_area obj) - method vbox = new GPack.box (Dialog.vbox obj) -end - -let dialog ?title ?wm_name ?wm_class ?position ?allow_shrink - ?allow_grow ?auto_shrink ?modal ?x ?y ?border_width ?width ?height - ?(show=false) () = - let w = Dialog.create () in - Window.set w ?title ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y; - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new dialog w - -class color_selection_dialog obj = object - inherit [window] window_skel (obj : Gtk.color_selection_dialog obj) - method connect = new container_signals obj - method ok_button = - new GButton.button (ColorSelection.ok_button obj) - method cancel_button = - new GButton.button (ColorSelection.cancel_button obj) - method help_button = - new GButton.button (ColorSelection.help_button obj) - method colorsel = - new GMisc.color_selection (ColorSelection.colorsel obj) -end - -let color_selection_dialog ?(title="Pick a color") - ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y - ?border_width ?width ?height ?(show=false) () = - let w = ColorSelection.create_dialog title in - Window.set w ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y; - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new color_selection_dialog w - -class file_selection obj = object - inherit [window] window_skel (obj : Gtk.file_selection obj) - method connect = new container_signals obj - method set_filename = FileSelection.set_filename obj - method get_filename = FileSelection.get_filename obj - method set_fileop_buttons = FileSelection.set_fileop_buttons obj - method ok_button = new GButton.button (FileSelection.get_ok_button obj) - method cancel_button = - new GButton.button (FileSelection.get_cancel_button obj) - method help_button = new GButton.button (FileSelection.get_help_button obj) -end - -let file_selection ?(title="Choose a file") ?filename - ?(fileop_buttons=false) - ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y - ?border_width ?width ?height ?(show=false) () = - let w = FileSelection.create title in - FileSelection.set w ?filename ~fileop_buttons; - Window.set w ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y; - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new file_selection w - -class font_selection_dialog obj = object - inherit [window] window_skel (obj : Gtk.font_selection_dialog obj) - method connect = new container_signals obj -(* - method font = FontSelectionDialog.get_font obj - method font_name = FontSelectionDialog.get_font_name obj - method set_font_name = FontSelectionDialog.set_font_name obj - method preview_text = FontSelectionDialog.get_preview_text obj - method set_preview_text = FontSelectionDialog.set_preview_text obj - method set_filter = FontSelectionDialog.set_filter obj -*) - method selection = - new GMisc.font_selection (FontSelectionDialog.font_selection obj) - method ok_button = new GButton.button (FontSelectionDialog.ok_button obj) - method apply_button = - new GButton.button (FontSelectionDialog.apply_button obj) - method cancel_button = - new GButton.button (FontSelectionDialog.cancel_button obj) -end - -let font_selection_dialog ?title ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y - ?border_width ?width ?height ?(show=false) () = - let w = FontSelectionDialog.create ?title () in - Window.set w ?wm_name ?wm_class ?position - ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y; - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new font_selection_dialog w - -class plug (obj : Gtk.plug obj) = window obj - -let plug ~window:xid ?border_width ?width ?height ?(show=false) () = - let w = Plug.create xid in - Container.set w ?border_width ?width ?height; - if show then Widget.show w; - new plug w diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gWindow.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gWindow.mli deleted file mode 100644 index 4c89a76b6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gWindow.mli +++ /dev/null @@ -1,156 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj - -class ['a] window_skel : 'b obj -> - object - inherit GContainer.container - constraint 'a = 'a #window_skel - constraint 'b = [>`widget|`container|`window] - val obj : 'b obj - method activate_default : unit -> unit - method activate_focus : unit -> unit - method add_accel_group : accel_group -> unit - method event : event_ops - method as_window : Gtk.window obj - method set_allow_grow : bool -> unit - method set_allow_shrink : bool -> unit - method set_auto_shrink : bool -> unit - method set_default_size : width:int -> height:int -> unit - method set_modal : bool -> unit - method set_position : Tags.window_position -> unit - method set_resize_mode : Tags.resize_mode -> unit - method set_title : string -> unit - method set_transient_for : 'a -> unit - method set_wm_class : string -> unit - method set_wm_name : string -> unit - method show : unit -> unit - end - -class window : [>`window] obj -> - object - inherit [window] window_skel - val obj : Gtk.window obj - method connect : GContainer.container_signals - end -val window : - ?kind:Tags.window_type -> - ?title:string -> - ?wm_name:string -> - ?wm_class:string -> - ?position:Tags.window_position -> - ?allow_shrink:bool -> - ?allow_grow:bool -> - ?auto_shrink:bool -> - ?modal:bool -> - ?x:int -> - ?y:int -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> window - -class dialog : [>`dialog] obj -> - object - inherit [window] window_skel - val obj : Gtk.dialog obj - method action_area : GPack.box - method connect : GContainer.container_signals - method event : event_ops - method vbox : GPack.box - end -val dialog : - ?title:string -> - ?wm_name:string -> - ?wm_class:string -> - ?position:Tags.window_position -> - ?allow_shrink:bool -> - ?allow_grow:bool -> - ?auto_shrink:bool -> - ?modal:bool -> - ?x:int -> - ?y:int -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> dialog - -class color_selection_dialog : Gtk.color_selection_dialog obj -> - object - inherit [window] window_skel - val obj : Gtk.color_selection_dialog obj - method cancel_button : GButton.button - method colorsel : GMisc.color_selection - method connect : GContainer.container_signals - method help_button : GButton.button - method ok_button : GButton.button - end -val color_selection_dialog : - ?title:string -> - ?wm_name:string -> - ?wm_class:string -> - ?position:Tags.window_position -> - ?allow_shrink:bool -> - ?allow_grow:bool -> - ?auto_shrink:bool -> - ?modal:bool -> - ?x:int -> - ?y:int -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> color_selection_dialog - -class file_selection : Gtk.file_selection obj -> - object - inherit [window] window_skel - val obj : Gtk.file_selection obj - method cancel_button : GButton.button - method connect : GContainer.container_signals - method get_filename : string - method help_button : GButton.button - method ok_button : GButton.button - method set_filename : string -> unit - method set_fileop_buttons : bool -> unit - end -val file_selection : - ?title:string -> - ?filename:string -> - ?fileop_buttons:bool -> - ?wm_name:string -> - ?wm_class:string -> - ?position:Tags.window_position -> - ?allow_shrink:bool -> - ?allow_grow:bool -> - ?auto_shrink:bool -> - ?modal:bool -> - ?x:int -> - ?y:int -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> file_selection - -class font_selection_dialog : Gtk.font_selection_dialog obj -> - object - inherit [window] window_skel - val obj : Gtk.font_selection_dialog obj - method apply_button : GButton.button - method cancel_button : GButton.button - method connect : GContainer.container_signals - method selection : GMisc.font_selection - method ok_button : GButton.button - end -val font_selection_dialog : - ?title:string -> - ?wm_name:string -> - ?wm_class:string -> - ?position:Tags.window_position -> - ?allow_shrink:bool -> - ?allow_grow:bool -> - ?auto_shrink:bool -> - ?modal:bool -> - ?x:int -> - ?y:int -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> font_selection_dialog - -class plug : Gtk.plug obj -> window - -val plug : - window:Gdk.xid -> - ?border_width:int -> - ?width:int -> ?height:int -> ?show:bool -> unit -> plug diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gaux.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gaux.ml deleted file mode 100644 index a1172915b..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gaux.ml +++ /dev/null @@ -1,17 +0,0 @@ -(* $Id$ *) - -(* Option handling *) - -let may ~f x = - match x with None -> () - | Some x -> let _ = f x in () - -let may_map ~f x = - match x with None -> None - | Some x -> Some (f x) - -let default x ~opt = - match opt with None -> x | Some y -> y - -let may_default f x ~opt = - match opt with None -> f x | Some y -> y diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk.ml deleted file mode 100644 index c22c4b55c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk.ml +++ /dev/null @@ -1,535 +0,0 @@ -(* $Id$ *) - -open Gaux - -type colormap -type visual -type region -type gc -type 'a drawable -type window = [`window] drawable -type pixmap = [`pixmap] drawable -type bitmap = [`bitmap] drawable -type font -type image -type atom = int -type keysym = int -type 'a event -type drag_context -type cursor -type xid = int32 - -exception Error of string -let _ = Callback.register_exception "gdkerror" (Error"") - -module Tags = struct - type event_type = - [ `NOTHING|`DELETE|`DESTROY|`EXPOSE|`MOTION_NOTIFY|`BUTTON_PRESS - |`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS - |`BUTTON_RELEASE|`KEY_PRESS - |`KEY_RELEASE|`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE - |`CONFIGURE|`MAP|`UNMAP|`PROPERTY_NOTIFY|`SELECTION_CLEAR - |`SELECTION_REQUEST|`SELECTION_NOTIFY|`PROXIMITY_IN - |`PROXIMITY_OUT|`DRAG_ENTER|`DRAG_LEAVE|`DRAG_MOTION|`DRAG_STATUS - |`DROP_START|`DROP_FINISHED|`CLIENT_EVENT|`VISIBILITY_NOTIFY - |`NO_EXPOSE ] - - type event_mask = - [ `EXPOSURE - |`POINTER_MOTION|`POINTER_MOTION_HINT - |`BUTTON_MOTION|`BUTTON1_MOTION|`BUTTON2_MOTION|`BUTTON3_MOTION - |`BUTTON_PRESS|`BUTTON_RELEASE - |`KEY_PRESS|`KEY_RELEASE - |`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE - |`STRUCTURE|`PROPERTY_CHANGE|`VISIBILITY_NOTIFY - |`PROXIMITY_IN|`PROXIMITY_OUT|`SUBSTRUCTURE - |`ALL_EVENTS ] - - type extension_events = - [ `NONE|`ALL|`CURSOR ] - - type visibility_state = - [ `UNOBSCURED|`PARTIAL|`FULLY_OBSCURED ] - - type input_source = - [ `MOUSE|`PEN|`ERASER|`CURSOR ] - - type notify_type = - [ `ANCESTOR|`VIRTUAL|`INFERIOR|`NONLINEAR|`NONLINEAR_VIRTUAL|`UNKNOWN ] - - type crossing_mode = - [ `NORMAL|`GRAB|`UNGRAB ] - - type modifier = - [ `SHIFT|`LOCK|`CONTROL|`MOD1|`MOD2|`MOD3|`MOD4|`MOD5|`BUTTON1 - |`BUTTON2|`BUTTON3|`BUTTON4|`BUTTON5 ] - - type drag_action = - [ `DEFAULT|`COPY|`MOVE|`LINK|`PRIVATE|`ASK ] - -end -open Tags - -module Convert = struct - external test_modifier : modifier -> int -> bool - = "ml_test_GdkModifier_val" - let modifier i = - List.filter [`SHIFT;`LOCK;`CONTROL;`MOD1;`MOD2;`MOD3;`MOD4;`MOD5; - `BUTTON1;`BUTTON2;`BUTTON3;`BUTTON4;`BUTTON5] - ~f:(fun m -> test_modifier m i) -end - -module Screen = struct - external width : unit -> int = "ml_gdk_screen_width" - external height : unit -> int = "ml_gdk_screen_height" -end - -module Visual = struct - type visual_type = - [ `STATIC_GRAY|`GRAYSCALE|`STATIC_COLOR - |`PSEUDO_COLOR|`TRUE_COLOR|`DIRECT_COLOR ] - - external get_best : ?depth:int -> ?kind:visual_type -> unit -> visual - = "ml_gdk_visual_get_best" - external get_type : visual -> visual_type = "ml_GdkVisual_type" - external depth : visual -> int = "ml_GdkVisual_depth" - external red_mask : visual -> int = "ml_GdkVisual_red_mask" - external red_shift : visual -> int = "ml_GdkVisual_red_shift" - external red_prec : visual -> int = "ml_GdkVisual_red_prec" - external green_mask : visual -> int = "ml_GdkVisual_green_mask" - external green_shift : visual -> int = "ml_GdkVisual_green_shift" - external green_prec : visual -> int = "ml_GdkVisual_green_prec" - external blue_mask : visual -> int = "ml_GdkVisual_blue_mask" - external blue_shift : visual -> int = "ml_GdkVisual_blue_shift" - external blue_prec : visual -> int = "ml_GdkVisual_blue_prec" -end - -module Image = struct - type image_type = - [ `NORMAL|`SHARED|`FASTEST ] - - external create_bitmap : visual: visual -> data: string -> - width: int -> height: int -> image - = "ml_gdk_image_new_bitmap" - external create : kind: image_type -> visual: visual -> - width: int -> height: int -> image - = "ml_gdk_image_new" - external get : - 'a drawable -> x: int -> y: int -> width: int -> height: int -> image - = "ml_gdk_image_get" - external put_pixel : image -> x: int -> y: int -> pixel: int -> unit - = "ml_gdk_image_put_pixel" - external get_pixel : image -> x: int -> y: int -> int - = "ml_gdk_image_get_pixel" - external destroy : image -> unit - = "ml_gdk_image_destroy" -end - -module Color = struct - type t - - external color_white : colormap -> t = "ml_gdk_color_white" - external color_black : colormap -> t = "ml_gdk_color_black" - external color_parse : string -> t = "ml_gdk_color_parse" - external color_alloc : colormap -> t -> bool = "ml_gdk_color_alloc" - external color_create : red:int -> green:int -> blue:int -> t - = "ml_GdkColor" - - external get_system_colormap : unit -> colormap - = "ml_gdk_colormap_get_system" - external colormap_new : visual -> privat:bool -> colormap - = "ml_gdk_colormap_new" - let get_colormap ?(privat=false) vis = colormap_new vis ~privat - - type spec = [ `BLACK | `NAME of string | `RGB of int * int * int | `WHITE] - let color_alloc ~colormap color = - if not (color_alloc colormap color) then raise (Error"Color.alloc"); - color - let alloc ~colormap color = - match color with - `WHITE -> color_white colormap - | `BLACK -> color_black colormap - | `NAME s -> color_alloc ~colormap (color_parse s) - | `RGB (red,green,blue) -> - color_alloc ~colormap (color_create ~red ~green ~blue) - - external red : t -> int = "ml_GdkColor_red" - external blue : t -> int = "ml_GdkColor_blue" - external green : t -> int = "ml_GdkColor_green" - external pixel : t -> int = "ml_GdkColor_pixel" -end - -module Rectangle = struct - type t - external create : x:int -> y:int -> width:int -> height:int -> t - = "ml_GdkRectangle" - external x : t -> int = "ml_GdkRectangle_x" - external y : t -> int = "ml_GdkRectangle_y" - external width : t -> int = "ml_GdkRectangle_width" - external height : t -> int = "ml_GdkRectangle_height" -end - -module Window = struct - type background_pixmap = [ `NONE | `PARENT_RELATIVE | `PIXMAP of pixmap] - external visual_depth : visual -> int = "ml_gdk_visual_get_depth" - external get_visual : window -> visual = "ml_gdk_window_get_visual" - external get_parent : window -> window = "ml_gdk_window_get_parent" - external get_size : window -> int * int = "ml_gdk_window_get_size" - external get_position : window -> int * int = - "ml_gdk_window_get_position" - external root_parent : unit -> window = "ml_GDK_ROOT_PARENT" - external set_back_pixmap : window -> pixmap -> int -> unit = - "ml_gdk_window_set_back_pixmap" - external clear : window -> unit = "ml_gdk_window_clear" - external get_xwindow : window -> xid = "ml_GDK_WINDOW_XWINDOW" - - let set_back_pixmap w pix = - let null_pixmap = (Obj.magic Gpointer.boxed_null : pixmap) in - match pix with - `NONE -> set_back_pixmap w null_pixmap 0 - | `PARENT_RELATIVE -> set_back_pixmap w null_pixmap 1 - | `PIXMAP(pixmap) -> set_back_pixmap w pixmap 0 - (* anything OK, Maybe... *) -end - -module PointArray = struct - type t = { len: int} - external create : len:int -> t = "ml_point_array_new" - external set : t -> pos:int -> x:int -> y:int -> unit = "ml_point_array_set" - let set arr ~pos = - if pos < 0 || pos >= arr.len then invalid_arg "PointArray.set"; - set arr ~pos -end - -module Region = struct - type gdkFillRule = [ `EVEN_ODD_RULE|`WINDING_RULE ] - type gdkOverlapType = [ `IN|`OUT|`PART ] - external create : unit -> region = "ml_gdk_region_new" - external destroy : region -> unit = "ml_gdk_region_destroy" - external polygon : PointArray.t -> gdkFillRule -> region - = "ml_gdk_region_polygon" - let polygon l = - let len = List.length l in - let arr = PointArray.create ~len in - List.fold_left l ~init:0 - ~f:(fun pos (x,y) -> PointArray.set arr ~pos ~x ~y; pos+1); - polygon arr - external intersect : region -> region -> region - = "ml_gdk_regions_intersect" - external union : region -> region -> region - = "ml_gdk_regions_union" - external subtract : region -> region -> region - = "ml_gdk_regions_subtract" - external xor : region -> region -> region - = "ml_gdk_regions_xor" - external union_with_rect : region -> Rectangle.t -> region - = "ml_gdk_region_union_with_rect" - external offset : region -> x:int -> y:int -> unit = "ml_gdk_region_offset" - external shrink : region -> x:int -> y:int -> unit = "ml_gdk_region_shrink" - external empty : region -> bool = "ml_gdk_region_empty" - external equal : region -> region -> bool = "ml_gdk_region_equal" - external point_in : region -> x:int -> y:int -> bool - = "ml_gdk_region_point_in" - external rect_in : region -> Rectangle.t -> gdkOverlapType - = "ml_gdk_region_rect_in" - external get_clipbox : region -> Rectangle.t -> unit - = "ml_gdk_region_get_clipbox" -end - - -module GC = struct - type gdkFunction = [ `COPY|`INVERT|`XOR ] - type gdkFill = [ `SOLID|`TILED|`STIPPLED|`OPAQUE_STIPPLED ] - type gdkSubwindowMode = [ `CLIP_BY_CHILDREN|`INCLUDE_INFERIORS ] - type gdkLineStyle = [ `SOLID|`ON_OFF_DASH|`DOUBLE_DASH ] - type gdkCapStyle = [ `NOT_LAST|`BUTT|`ROUND|`PROJECTING ] - type gdkJoinStyle = [ `MITER|`ROUND|`BEVEL ] - external create : 'a drawable -> gc = "ml_gdk_gc_new" - external set_foreground : gc -> Color.t -> unit = "ml_gdk_gc_set_foreground" - external set_background : gc -> Color.t -> unit = "ml_gdk_gc_set_background" - external set_font : gc -> font -> unit = "ml_gdk_gc_set_font" - external set_function : gc -> gdkFunction -> unit = "ml_gdk_gc_set_function" - external set_fill : gc -> gdkFill -> unit = "ml_gdk_gc_set_fill" - external set_tile : gc -> pixmap -> unit = "ml_gdk_gc_set_tile" - external set_stipple : gc -> pixmap -> unit = "ml_gdk_gc_set_stipple" - external set_ts_origin : gc -> x:int -> y:int -> unit - = "ml_gdk_gc_set_ts_origin" - external set_clip_origin : gc -> x:int -> y:int -> unit - = "ml_gdk_gc_set_clip_origin" - external set_clip_mask : gc -> bitmap -> unit = "ml_gdk_gc_set_clip_mask" - external set_clip_rectangle : gc -> Rectangle.t -> unit - = "ml_gdk_gc_set_clip_rectangle" - external set_clip_region : gc -> region -> unit = "ml_gdk_gc_set_clip_region" - external set_subwindow : gc -> gdkSubwindowMode -> unit - = "ml_gdk_gc_set_subwindow" - external set_exposures : gc -> bool -> unit = "ml_gdk_gc_set_exposures" - external set_line_attributes : - gc -> width:int -> style:gdkLineStyle -> cap:gdkCapStyle -> - join:gdkJoinStyle -> unit - = "ml_gdk_gc_set_line_attributes" - external copy : dst:gc -> gc -> unit = "ml_gdk_gc_copy" - type values = { - foreground : Color.t; - background : Color.t; - font : font option; - fonction : gdkFunction; - fill : gdkFill; - tile : pixmap option; - stipple : pixmap option; - clip_mask : bitmap option; - subwindow_mode : gdkSubwindowMode; - ts_x_origin : int; - ts_y_origin : int; - clip_x_origin : int; - clip_y_origin : int; - graphics_exposures : bool; - line_width : int; - line_style : gdkLineStyle; - cap_style : gdkCapStyle; - join_style : gdkJoinStyle; - } - external get_values : gc -> values = "ml_gdk_gc_get_values" -end - -module Pixmap = struct - external create : window -> width:int -> height:int -> depth:int -> pixmap - = "ml_gdk_pixmap_new" - external create_from_data : - window -> string -> width:int -> height:int -> depth:int -> - fg:Color.t -> bg:Color.t -> pixmap - = "ml_gdk_pixmap_create_from_data_bc" "ml_gk_pixmap_create_from_data" - external create_from_xpm : - window -> ?colormap:colormap -> ?transparent:Color.t -> - file:string -> pixmap * bitmap - = "ml_gdk_pixmap_colormap_create_from_xpm" - external create_from_xpm_d : - window -> ?colormap:colormap -> ?transparent:Color.t -> - data:string array -> pixmap * bitmap - = "ml_gdk_pixmap_colormap_create_from_xpm_d" -end - -module Bitmap = struct - let create : window -> width:int -> height:int -> bitmap = - Obj.magic (Pixmap.create ~depth:1) - external create_from_data : - window -> string -> width:int -> height:int -> bitmap - = "ml_gdk_bitmap_create_from_data" -end - -module Font = struct - external load : string -> font = "ml_gdk_font_load" - external load_fontset : string -> font = "ml_gdk_fontset_load" - external string_width : font -> string -> int = "ml_gdk_string_width" - external char_width : font -> char -> int = "ml_gdk_char_width" - external string_height : font -> string -> int = "ml_gdk_string_height" - external char_height : font -> char -> int = "ml_gdk_char_height" - external string_measure : font -> string -> int = "ml_gdk_string_measure" - external char_measure : font -> char -> int = "ml_gdk_char_measure" - external get_type : font -> [`FONT | `FONTSET] = "ml_GdkFont_type" - external ascent : font -> int = "ml_GdkFont_ascent" - external descent : font -> int = "ml_GdkFont_descent" -end - -module Draw = struct - external point : 'a drawable -> gc -> x:int -> y:int -> unit - = "ml_gdk_draw_point" - external line : 'a drawable -> gc -> x:int -> y:int -> x:int -> y:int -> unit - = "ml_gdk_draw_line_bc" "ml_gdk_draw_line" - external rectangle : - 'a drawable -> gc -> - filled:bool -> x:int -> y:int -> width:int -> height:int -> unit - = "ml_gdk_draw_rectangle_bc" "ml_gdk_draw_rectangle" - let rectangle w gc ~x ~y ~width ~height ?(filled=false) () = - rectangle w gc ~x ~y ~width ~height ~filled - external arc : - 'a drawable -> gc -> filled:bool -> x:int -> y:int -> - width:int -> height:int -> start:int -> angle:int -> unit - = "ml_gdk_draw_arc_bc" "ml_gdk_draw_arc" - let arc w gc ~x ~y ~width ~height ?(filled=false) ?(start=0.) - ?(angle=360.) () = - arc w gc ~x ~y ~width ~height ~filled - ~start:(truncate(start *. 64.)) - ~angle:(truncate(angle *. 64.)) - external polygon : 'a drawable -> gc -> filled:bool -> PointArray.t -> unit - = "ml_gdk_draw_polygon" - let polygon w gc ?(filled=false) l = - let len = List.length l in - let arr = PointArray.create ~len in - List.fold_left l ~init:0 - ~f:(fun pos (x,y) -> PointArray.set arr ~pos ~x ~y; pos+1); - polygon w gc ~filled arr - external string : 'a drawable -> font: font -> gc -> x: int -> y: int -> - string: string -> unit - = "ml_gdk_draw_string_bc" "ml_gdk_draw_string" - external image : 'a drawable -> gc -> image: image -> - xsrc: int -> ysrc: int -> xdest: int -> ydest: int -> - width: int -> height: int -> unit - = "ml_gdk_draw_image_bc" "ml_gdk_draw_image" -end - -module Rgb = struct - external init : unit -> unit = "ml_gdk_rgb_init" - external get_visual : unit -> visual = "ml_gdk_rgb_get_visual" - external get_cmap : unit -> colormap = "ml_gdk_rgb_get_cmap" -end - -module DnD = struct - external drag_status : drag_context -> drag_action list -> time:int -> unit - = "ml_gdk_drag_status" - external drag_context_suggested_action : drag_context -> drag_action - = "ml_GdkDragContext_suggested_action" - external drag_context_targets : drag_context -> atom list - = "ml_GdkDragContext_targets" -end - -module Truecolor = struct - (* Truecolor quick color query *) - - type visual_shift_prec = { - red_shift : int; - red_prec : int; - green_shift : int; - green_prec : int; - blue_shift : int; - blue_prec : int - } - - let shift_prec visual = { - red_shift = Visual.red_shift visual; - red_prec = Visual.red_prec visual; - green_shift = Visual.green_shift visual; - green_prec = Visual.green_prec visual; - blue_shift = Visual.blue_shift visual; - blue_prec = Visual.blue_prec visual; - } - - let color_creator visual = - match Visual.get_type visual with - `TRUE_COLOR | `DIRECT_COLOR -> - let shift_prec = shift_prec visual in - Format.eprintf "red : %d %d, " - shift_prec.red_shift shift_prec.red_prec; - Format.eprintf "green : %d %d, " - shift_prec.green_shift shift_prec.green_prec; - Format.eprintf "blue : %d %d" - shift_prec.blue_shift shift_prec.blue_prec; - Format.pp_print_newline Format.err_formatter (); - let red_lsr = 16 - shift_prec.red_prec - and green_lsr = 16 - shift_prec.green_prec - and blue_lsr = 16 - shift_prec.blue_prec in - fun ~red: red ~green: green ~blue: blue -> - (((red lsr red_lsr) lsl shift_prec.red_shift) lor - ((green lsr green_lsr) lsl shift_prec.green_shift) lor - ((blue lsr blue_lsr) lsl shift_prec.blue_shift)) - | _ -> raise (Invalid_argument "Gdk.Truecolor.color_creator") - - let color_parser visual = - match Visual.get_type visual with - `TRUE_COLOR | `DIRECT_COLOR -> - let shift_prec = shift_prec visual in - let red_lsr = 16 - shift_prec.red_prec - and green_lsr = 16 - shift_prec.green_prec - and blue_lsr = 16 - shift_prec.blue_prec in - let mask = 1 lsl 16 - 1 in - fun pixel -> - ((pixel lsr shift_prec.red_shift) lsl red_lsr) land mask, - ((pixel lsr shift_prec.green_shift) lsl green_lsr) land mask, - ((pixel lsr shift_prec.blue_shift) lsl blue_lsr) land mask - | _ -> raise (Invalid_argument "Gdk.Truecolor.color_parser") -end - -module X = struct - (* X related functions *) - external flush : unit -> unit - = "ml_gdk_flush" - external beep : unit -> unit - = "ml_gdk_beep" -end - -module Cursor = struct - type cursor_type = [ - | `X_CURSOR - | `ARROW - | `BASED_ARROW_DOWN - | `BASED_ARROW_UP - | `BOAT - | `BOGOSITY - | `BOTTOM_LEFT_CORNER - | `BOTTOM_RIGHT_CORNER - | `BOTTOM_SIDE - | `BOTTOM_TEE - | `BOX_SPIRAL - | `CENTER_PTR - | `CIRCLE - | `CLOCK - | `COFFEE_MUG - | `CROSS - | `CROSS_REVERSE - | `CROSSHAIR - | `DIAMOND_CROSS - | `DOT - | `DOTBOX - | `DOUBLE_ARROW - | `DRAFT_LARGE - | `DRAFT_SMALL - | `DRAPED_BOX - | `EXCHANGE - | `FLEUR - | `GOBBLER - | `GUMBY - | `HAND1 - | `HAND2 - | `HEART - | `ICON - | `IRON_CROSS - | `LEFT_PTR - | `LEFT_SIDE - | `LEFT_TEE - | `LEFTBUTTON - | `LL_ANGLE - | `LR_ANGLE - | `MAN - | `MIDDLEBUTTON - | `MOUSE - | `PENCIL - | `PIRATE - | `PLUS - | `QUESTION_ARROW - | `RIGHT_PTR - | `RIGHT_SIDE - | `RIGHT_TEE - | `RIGHTBUTTON - | `RTL_LOGO - | `SAILBOAT - | `SB_DOWN_ARROW - | `SB_H_DOUBLE_ARROW - | `SB_LEFT_ARROW - | `SB_RIGHT_ARROW - | `SB_UP_ARROW - | `SB_V_DOUBLE_ARROW - | `SHUTTLE - | `SIZING - | `SPIDER - | `SPRAYCAN - | `STAR - | `TARGET - | `TCROSS - | `TOP_LEFT_ARROW - | `TOP_LEFT_CORNER - | `TOP_RIGHT_CORNER - | `TOP_SIDE - | `TOP_TEE - | `TREK - | `UL_ANGLE - | `UMBRELLA - | `UR_ANGLE - | `WATCH - | `XTERM - ] - external create : cursor_type -> cursor = "ml_gdk_cursor_new" - external create_from_pixmap : - pixmap -> mask:bitmap -> - fg:Color.t -> bg:Color.t -> x:int -> y:int -> cursor - = "ml_gdk_cursor_new_from_pixmap_bc" "ml_gdk_cursor_new_from_pixmap" - external destroy : cursor -> unit = "ml_gdk_cursor_destroy" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk.mli deleted file mode 100644 index 2914b60ce..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk.mli +++ /dev/null @@ -1,447 +0,0 @@ -(* $Id$ *) - -type colormap -type visual -type region -type gc -type 'a drawable -type window = [`window] drawable -type pixmap = [`pixmap] drawable -type bitmap = [`bitmap] drawable -type font -type image -type atom = int -type keysym = int -type 'a event -type drag_context -type cursor -type xid = int32 - -exception Error of string - -module Tags : sig - type event_type = - [ `NOTHING|`DELETE|`DESTROY|`EXPOSE|`MOTION_NOTIFY|`BUTTON_PRESS - |`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS - |`BUTTON_RELEASE|`KEY_PRESS - |`KEY_RELEASE|`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE - |`CONFIGURE|`MAP|`UNMAP|`PROPERTY_NOTIFY|`SELECTION_CLEAR - |`SELECTION_REQUEST|`SELECTION_NOTIFY|`PROXIMITY_IN - |`PROXIMITY_OUT|`DRAG_ENTER|`DRAG_LEAVE|`DRAG_MOTION|`DRAG_STATUS - |`DROP_START|`DROP_FINISHED|`CLIENT_EVENT|`VISIBILITY_NOTIFY - |`NO_EXPOSE ] - type event_mask = - [ `EXPOSURE - |`POINTER_MOTION|`POINTER_MOTION_HINT - |`BUTTON_MOTION|`BUTTON1_MOTION|`BUTTON2_MOTION|`BUTTON3_MOTION - |`BUTTON_PRESS|`BUTTON_RELEASE - |`KEY_PRESS|`KEY_RELEASE - |`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE - |`STRUCTURE|`PROPERTY_CHANGE|`VISIBILITY_NOTIFY - |`PROXIMITY_IN|`PROXIMITY_OUT|`SUBSTRUCTURE - |`ALL_EVENTS ] - type extension_events = [ `NONE|`ALL|`CURSOR ] - type visibility_state = [ `UNOBSCURED|`PARTIAL|`FULLY_OBSCURED ] - type input_source = [ `MOUSE|`PEN|`ERASER|`CURSOR ] - type notify_type = - [ `ANCESTOR|`VIRTUAL|`INFERIOR|`NONLINEAR|`NONLINEAR_VIRTUAL|`UNKNOWN ] - type crossing_mode = [ `NORMAL|`GRAB|`UNGRAB ] - type modifier = - [ `SHIFT|`LOCK|`CONTROL|`MOD1|`MOD2|`MOD3|`MOD4|`MOD5|`BUTTON1 - |`BUTTON2|`BUTTON3|`BUTTON4|`BUTTON5 ] - type drag_action = [ `DEFAULT|`COPY|`MOVE|`LINK|`PRIVATE|`ASK ] -end - -module Convert : - sig - val modifier : int -> Tags.modifier list - end - -module Screen : - sig - external width : unit -> int = "ml_gdk_screen_width" - external height : unit -> int = "ml_gdk_screen_height" - end - -module Visual : - sig - type visual_type = - [ `STATIC_GRAY|`GRAYSCALE|`STATIC_COLOR - |`PSEUDO_COLOR|`TRUE_COLOR|`DIRECT_COLOR ] - external get_best : ?depth:int -> ?kind:visual_type -> unit -> visual - = "ml_gdk_visual_get_best" - external get_type : visual -> visual_type = "ml_GdkVisual_type" - external depth : visual -> int = "ml_GdkVisual_depth" - external red_mask : visual -> int = "ml_GdkVisual_red_mask" - external red_shift : visual -> int = "ml_GdkVisual_red_shift" - external red_prec : visual -> int = "ml_GdkVisual_red_prec" - external green_mask : visual -> int = "ml_GdkVisual_green_mask" - external green_shift : visual -> int = "ml_GdkVisual_green_shift" - external green_prec : visual -> int = "ml_GdkVisual_green_prec" - external blue_mask : visual -> int = "ml_GdkVisual_blue_mask" - external blue_shift : visual -> int = "ml_GdkVisual_blue_shift" - external blue_prec : visual -> int = "ml_GdkVisual_blue_prec" - end - -module Image : - sig - type image_type = [ `FASTEST|`NORMAL|`SHARED ] - external create_bitmap : - visual:visual -> data:string -> width:int -> height:int -> image - = "ml_gdk_image_new_bitmap" - external create : - kind:image_type -> - visual:visual -> width:int -> height:int -> image = "ml_gdk_image_new" - external get : - 'a drawable -> x:int -> y:int -> width:int -> height:int -> image - = "ml_gdk_image_get" - external put_pixel : image -> x:int -> y:int -> pixel:int -> unit - = "ml_gdk_image_put_pixel" - external get_pixel : image -> x:int -> y:int -> int - = "ml_gdk_image_get_pixel" - external destroy : image -> unit = "ml_gdk_image_destroy" - end - -module Color : - sig - external get_system_colormap : unit -> colormap - = "ml_gdk_colormap_get_system" - val get_colormap : ?privat:bool -> visual -> colormap - - type t - type spec = [ - | `BLACK - | `NAME of string - | `RGB of int * int * int - | `WHITE - ] - val alloc : colormap:colormap -> spec -> t - external red : t -> int = "ml_GdkColor_red" - external blue : t -> int = "ml_GdkColor_blue" - external green : t -> int = "ml_GdkColor_green" - external pixel : t -> int = "ml_GdkColor_pixel" - end - -module Rectangle : - sig - type t - external create : x:int -> y:int -> width:int -> height:int -> t - = "ml_GdkRectangle" - external x : t -> int = "ml_GdkRectangle_x" - external y : t -> int = "ml_GdkRectangle_y" - external width : t -> int = "ml_GdkRectangle_width" - external height : t -> int = "ml_GdkRectangle_height" - end - -module Window : - sig - type background_pixmap = [ `NONE|`PARENT_RELATIVE|`PIXMAP of pixmap ] - external visual_depth : visual -> int = "ml_gdk_visual_get_depth" - external get_visual : window -> visual = "ml_gdk_window_get_visual" - external get_parent : window -> window = "ml_gdk_window_get_parent" - external get_size : window -> int * int = "ml_gdk_window_get_size" - external get_position : window -> int * int - = "ml_gdk_window_get_position" - external root_parent : unit -> window = "ml_GDK_ROOT_PARENT" - external clear : window -> unit = "ml_gdk_window_clear" - external get_xwindow : window -> xid = "ml_GDK_WINDOW_XWINDOW" - val set_back_pixmap : window -> background_pixmap -> unit - end - -module PointArray : - sig - type t = { len: int } - external create : len:int -> t = "ml_point_array_new" - val set : t -> pos:int -> x:int -> y:int -> unit - end - -module Region : - sig - type gdkFillRule = [ `EVEN_ODD_RULE|`WINDING_RULE ] - type gdkOverlapType = [ `IN|`OUT|`PART ] - external create : unit -> region = "ml_gdk_region_new" - external destroy : region -> unit = "ml_gdk_region_destroy" - val polygon : (int * int) list -> gdkFillRule -> region - external intersect : region -> region -> region - = "ml_gdk_regions_intersect" - external union : region -> region -> region - = "ml_gdk_regions_union" - external subtract : region -> region -> region - = "ml_gdk_regions_subtract" - external xor : region -> region -> region - = "ml_gdk_regions_xor" - external union_with_rect : region -> Rectangle.t -> region - = "ml_gdk_region_union_with_rect" - external offset : region -> x:int -> y:int -> unit = "ml_gdk_region_offset" - external shrink : region -> x:int -> y:int -> unit = "ml_gdk_region_shrink" - external empty : region -> bool = "ml_gdk_region_empty" - external equal : region -> region -> bool = "ml_gdk_region_equal" - external point_in : region -> x:int -> y:int -> bool - = "ml_gdk_region_point_in" - external rect_in : region -> Rectangle.t -> gdkOverlapType - = "ml_gdk_region_rect_in" - external get_clipbox : region -> Rectangle.t -> unit - = "ml_gdk_region_get_clipbox" - end - -module GC : - sig - type gdkFunction = [ `COPY|`INVERT|`XOR ] - type gdkFill = [ `SOLID|`TILED|`STIPPLED|`OPAQUE_STIPPLED ] - type gdkSubwindowMode = [ `CLIP_BY_CHILDREN|`INCLUDE_INFERIORS ] - type gdkLineStyle = [ `SOLID|`ON_OFF_DASH|`DOUBLE_DASH ] - type gdkCapStyle = [ `NOT_LAST|`BUTT|`ROUND|`PROJECTING ] - type gdkJoinStyle = [ `MITER|`ROUND|`BEVEL ] - external create : 'a drawable -> gc = "ml_gdk_gc_new" - external set_foreground : gc -> Color.t -> unit - = "ml_gdk_gc_set_foreground" - external set_background : gc -> Color.t -> unit - = "ml_gdk_gc_set_background" - external set_font : gc -> font -> unit = "ml_gdk_gc_set_font" - external set_function : gc -> gdkFunction -> unit - = "ml_gdk_gc_set_function" - external set_fill : gc -> gdkFill -> unit = "ml_gdk_gc_set_fill" - external set_tile : gc -> pixmap -> unit = "ml_gdk_gc_set_tile" - external set_stipple : gc -> pixmap -> unit = "ml_gdk_gc_set_stipple" - external set_ts_origin : gc -> x:int -> y:int -> unit - = "ml_gdk_gc_set_ts_origin" - external set_clip_origin : gc -> x:int -> y:int -> unit - = "ml_gdk_gc_set_clip_origin" - external set_clip_mask : gc -> bitmap -> unit = "ml_gdk_gc_set_clip_mask" - external set_clip_rectangle : gc -> Rectangle.t -> unit - = "ml_gdk_gc_set_clip_rectangle" - external set_clip_region : gc -> region -> unit - = "ml_gdk_gc_set_clip_region" - external set_subwindow : gc -> gdkSubwindowMode -> unit - = "ml_gdk_gc_set_subwindow" - external set_exposures : gc -> bool -> unit = "ml_gdk_gc_set_exposures" - external set_line_attributes : - gc -> - width:int -> - style:gdkLineStyle -> cap:gdkCapStyle -> join:gdkJoinStyle -> unit - = "ml_gdk_gc_set_line_attributes" - external copy : dst:gc -> gc -> unit = "ml_gdk_gc_copy" - type values = { - foreground : Color.t; - background : Color.t; - font : font option; - fonction : gdkFunction; - fill : gdkFill; - tile : pixmap option; - stipple : pixmap option; - clip_mask : bitmap option; - subwindow_mode : gdkSubwindowMode; - ts_x_origin : int; - ts_y_origin : int; - clip_x_origin : int; - clip_y_origin : int; - graphics_exposures : bool; - line_width : int; - line_style : gdkLineStyle; - cap_style : gdkCapStyle; - join_style : gdkJoinStyle; - } - external get_values : gc -> values = "ml_gdk_gc_get_values" - end - -module Pixmap : - sig - external create : - window -> width:int -> height:int -> depth:int -> pixmap - = "ml_gdk_pixmap_new" - external create_from_data : - window -> - string -> - width:int -> - height:int -> depth:int -> fg:Color.t -> bg:Color.t -> pixmap - = "ml_gdk_pixmap_create_from_data_bc" "ml_gk_pixmap_create_from_data" - external create_from_xpm : - window -> - ?colormap:colormap -> - ?transparent:Color.t -> file:string -> pixmap * bitmap - = "ml_gdk_pixmap_colormap_create_from_xpm" - external create_from_xpm_d : - window -> - ?colormap:colormap -> - ?transparent:Color.t -> data:string array -> pixmap * bitmap - = "ml_gdk_pixmap_colormap_create_from_xpm_d" - end - -module Bitmap : - sig - val create : window -> width:int -> height:int -> bitmap - external create_from_data : - window -> string -> width:int -> height:int -> bitmap - = "ml_gdk_bitmap_create_from_data" - end - -module Font : - sig - external load : string -> font = "ml_gdk_font_load" - external load_fontset : string -> font = "ml_gdk_fontset_load" - external string_width : font -> string -> int = "ml_gdk_string_width" - external char_width : font -> char -> int = "ml_gdk_char_width" - external string_height : font -> string -> int = "ml_gdk_string_height" - external char_height : font -> char -> int = "ml_gdk_char_height" - external string_measure : font -> string -> int = "ml_gdk_string_measure" - external char_measure : font -> char -> int = "ml_gdk_char_measure" - external get_type : font -> [`FONT | `FONTSET] = "ml_GdkFont_type" - external ascent : font -> int = "ml_GdkFont_ascent" - external descent : font -> int = "ml_GdkFont_descent" - end - -module Draw : - sig - external point : 'a drawable -> gc -> x:int -> y:int -> unit - = "ml_gdk_draw_point" - external line : - 'a drawable -> gc -> x:int -> y:int -> x:int -> y:int -> unit - = "ml_gdk_draw_line_bc" "ml_gdk_draw_line" - val rectangle : - 'a drawable -> gc -> - x:int -> y:int -> width:int -> height:int -> ?filled:bool -> unit -> unit - val arc : - 'a drawable -> gc -> - x:int -> y:int -> width:int -> height:int -> - ?filled:bool -> ?start:float -> ?angle:float -> unit -> unit - val polygon : - 'a drawable -> gc -> ?filled:bool ->(int * int) list -> unit - external string : - 'a drawable -> - font:font -> gc -> x:int -> y:int -> string:string -> unit - = "ml_gdk_draw_string_bc" "ml_gdk_draw_string" - external image : - 'a drawable -> - gc -> - image:image -> - xsrc:int -> - ysrc:int -> xdest:int -> ydest:int -> width:int -> height:int -> unit - = "ml_gdk_draw_image_bc" "ml_gdk_draw_image" - end - -module Rgb : - sig - external init : unit -> unit = "ml_gdk_rgb_init" - external get_visual : unit -> visual = "ml_gdk_rgb_get_visual" - external get_cmap : unit -> colormap = "ml_gdk_rgb_get_cmap" - end - -module DnD : - sig - external drag_status : - drag_context -> Tags.drag_action list -> time:int -> unit - = "ml_gdk_drag_status" - external drag_context_suggested_action : drag_context -> Tags.drag_action - = "ml_GdkDragContext_suggested_action" - external drag_context_targets : drag_context -> atom list - = "ml_GdkDragContext_targets" - end - -module Truecolor : - sig - val color_creator : visual -> (red: int -> green: int -> blue: int -> int) - (* [color_creator visual] creates a function to calculate - the pixel color id for given red, green and blue component - value ([0..65535]) at the client side. [visual] must have - `TRUE_COLOR or `DIRECT_COLOR type. This function improves - the speed of the color query of true color visual greatly. *) - (* WARN: this approach is not theoretically correct for true color - visual, because we need gamma correction. *) - - val color_parser : visual -> int -> int * int * int - end - -module X : - (* X related functions *) - sig - val flush : unit -> unit (* also in GtkMain *) - val beep : unit -> unit - end - -module Cursor : sig - type cursor_type = [ - | `X_CURSOR - | `ARROW - | `BASED_ARROW_DOWN - | `BASED_ARROW_UP - | `BOAT - | `BOGOSITY - | `BOTTOM_LEFT_CORNER - | `BOTTOM_RIGHT_CORNER - | `BOTTOM_SIDE - | `BOTTOM_TEE - | `BOX_SPIRAL - | `CENTER_PTR - | `CIRCLE - | `CLOCK - | `COFFEE_MUG - | `CROSS - | `CROSS_REVERSE - | `CROSSHAIR - | `DIAMOND_CROSS - | `DOT - | `DOTBOX - | `DOUBLE_ARROW - | `DRAFT_LARGE - | `DRAFT_SMALL - | `DRAPED_BOX - | `EXCHANGE - | `FLEUR - | `GOBBLER - | `GUMBY - | `HAND1 - | `HAND2 - | `HEART - | `ICON - | `IRON_CROSS - | `LEFT_PTR - | `LEFT_SIDE - | `LEFT_TEE - | `LEFTBUTTON - | `LL_ANGLE - | `LR_ANGLE - | `MAN - | `MIDDLEBUTTON - | `MOUSE - | `PENCIL - | `PIRATE - | `PLUS - | `QUESTION_ARROW - | `RIGHT_PTR - | `RIGHT_SIDE - | `RIGHT_TEE - | `RIGHTBUTTON - | `RTL_LOGO - | `SAILBOAT - | `SB_DOWN_ARROW - | `SB_H_DOUBLE_ARROW - | `SB_LEFT_ARROW - | `SB_RIGHT_ARROW - | `SB_UP_ARROW - | `SB_V_DOUBLE_ARROW - | `SHUTTLE - | `SIZING - | `SPIDER - | `SPRAYCAN - | `STAR - | `TARGET - | `TCROSS - | `TOP_LEFT_ARROW - | `TOP_LEFT_CORNER - | `TOP_RIGHT_CORNER - | `TOP_SIDE - | `TOP_TEE - | `TREK - | `UL_ANGLE - | `UMBRELLA - | `UR_ANGLE - | `WATCH - | `XTERM - ] - external create : cursor_type -> cursor = "ml_gdk_cursor_new" - external create_from_pixmap : - pixmap -> mask:bitmap -> - fg:Color.t -> bg:Color.t -> x:int -> y:int -> cursor - = "ml_gdk_cursor_new_from_pixmap_bc" "ml_gdk_cursor_new_from_pixmap" - external destroy : cursor -> unit = "ml_gdk_cursor_destroy" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdkEvent.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdkEvent.ml deleted file mode 100644 index 87c0e888f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdkEvent.ml +++ /dev/null @@ -1,159 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gdk -open Tags - -external coerce : 'a event -> event_type event = "%identity" -external unsafe_copy : Gpointer.boxed -> #event_type event - = "ml_gdk_event_copy" -external copy : (#event_type as 'a) event -> 'a event - = "ml_gdk_event_copy" -external get_type : 'a event -> 'a = "ml_GdkEventAny_type" -external get_window : 'a event -> window = "ml_GdkEventAny_window" -external get_send_event : 'a event -> bool = "ml_GdkEventAny_send_event" - -external create : (#event_type as 'a) -> 'a event - = "ml_gdk_event_new" -external set_window : 'a event -> window -> unit - = "ml_gdk_event_set_window" - -module Expose = struct - type t = [ `EXPOSE ] event - let cast (ev : event_type event) : t = - match get_type ev with `EXPOSE -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Expose.cast" - external area : t -> Rectangle.t = "ml_GdkEventExpose_area" - external count : t -> int = "ml_GdkEventExpose_count" -end - -module Visibility = struct - type t = [ `VISIBILITY_NOTIFY ] event - let cast (ev : event_type event) : t = - match get_type ev with `VISIBILITY_NOTIFY -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Visibility.cast" - external visibility : t -> visibility_state - = "ml_GdkEventVisibility_state" -end - -module Motion = struct - type t = [ `MOTION_NOTIFY ] event - let cast (ev : event_type event) : t = - match get_type ev with `MOTION_NOTIFY -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Motion.cast" - external time : t -> int = "ml_GdkEventMotion_time" - external x : t -> float = "ml_GdkEventMotion_x" - external y : t -> float = "ml_GdkEventMotion_y" - external pressure : t -> float = "ml_GdkEventMotion_pressure" - external xtilt : t -> float = "ml_GdkEventMotion_xtilt" - external ytilt : t -> float = "ml_GdkEventMotion_ytilt" - external state : t -> int = "ml_GdkEventMotion_state" - external is_hint : t -> bool = "ml_GdkEventMotion_is_hint" - external source : t -> input_source = "ml_GdkEventMotion_source" - external deviceid : t -> int = "ml_GdkEventMotion_deviceid" - external x_root : t -> float = "ml_GdkEventMotion_x_root" - external y_root : t -> float = "ml_GdkEventMotion_y_root" -end - -module Button = struct - type types = - [ `BUTTON_PRESS|`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS|`BUTTON_RELEASE ] - type t = types event - let cast (ev : event_type event) : t = - match get_type ev with - `BUTTON_PRESS|`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS|`BUTTON_RELEASE - -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Button.cast" - external time : t -> int = "ml_GdkEventButton_time" - external x : t -> float = "ml_GdkEventButton_x" - external y : t -> float = "ml_GdkEventButton_y" - external pressure : t -> float = "ml_GdkEventButton_pressure" - external xtilt : t -> float = "ml_GdkEventButton_xtilt" - external ytilt : t -> float = "ml_GdkEventButton_ytilt" - external state : t -> int = "ml_GdkEventButton_state" - external button : t -> int = "ml_GdkEventButton_button" - external source : t -> input_source = "ml_GdkEventButton_source" - external deviceid : t -> int = "ml_GdkEventButton_deviceid" - external x_root : t -> float = "ml_GdkEventButton_x_root" - external y_root : t -> float = "ml_GdkEventButton_y_root" - external set_type : t -> #types -> unit - = "ml_gdk_event_set_type" - external set_button : t -> int -> unit - = "ml_gdk_event_button_set_button" -end - -module Key = struct - type t = [ `KEY_PRESS|`KEY_RELEASE ] event - let cast (ev : event_type event) : t = - match get_type ev with - `KEY_PRESS|`KEY_RELEASE -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Key.cast" - external time : t -> int = "ml_GdkEventKey_time" - external state : t -> int = "ml_GdkEventKey_state" - external keyval : t -> keysym = "ml_GdkEventKey_keyval" - external string : t -> string = "ml_GdkEventKey_string" - let state ev = Convert.modifier (state ev) -end - -module Crossing = struct - type t = [ `ENTER_NOTIFY|`LEAVE_NOTIFY ] event - let cast (ev : event_type event) : t = - match get_type ev with - `ENTER_NOTIFY|`LEAVE_NOTIFY -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Crossing.cast" - external subwindow : t -> window = "ml_GdkEventCrossing_subwindow" - external detail : t -> notify_type = "ml_GdkEventCrossing_detail" -end - -module Focus = struct - type t = [ `FOCUS_CHANGE ] event - let cast (ev : event_type event) : t = - match get_type ev with `FOCUS_CHANGE -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Focus.cast" - external focus_in : t -> bool = "ml_GdkEventFocus_in" -end - -module Configure = struct - type t = [ `CONFIGURE ] event - let cast (ev : event_type event) : t = - match get_type ev with `CONFIGURE -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Configure.cast" - external x : t -> int = "ml_GdkEventConfigure_x" - external y : t -> int = "ml_GdkEventConfigure_y" - external width : t -> int = "ml_GdkEventConfigure_width" - external height : t -> int = "ml_GdkEventConfigure_height" -end - -module Property = struct - type t = [ `PROPERTY_NOTIFY ] event - let cast (ev : event_type event) : t = - match get_type ev with `PROPERTY_NOTIFY -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Property.cast" - external atom : t -> atom = "ml_GdkEventProperty_atom" - external time : t -> int = "ml_GdkEventProperty_time" - external state : t -> int = "ml_GdkEventProperty_state" -end - -module Selection = struct - type t = [ `SELECTION_CLEAR|`SELECTION_REQUEST|`SELECTION_NOTIFY ] event - let cast (ev : event_type event) : t = - match get_type ev with - `SELECTION_CLEAR|`SELECTION_REQUEST|`SELECTION_NOTIFY -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Selection.cast" - external selection : t -> atom = "ml_GdkEventSelection_selection" - external target : t -> atom = "ml_GdkEventSelection_target" - external property : t -> atom = "ml_GdkEventSelection_property" - external requestor : t -> int = "ml_GdkEventSelection_requestor" - external time : t -> int = "ml_GdkEventSelection_time" -end - -module Proximity = struct - type t = [ `PROXIMITY_IN|`PROXIMITY_OUT ] event - let cast (ev : event_type event) : t = - match get_type ev with - `PROXIMITY_IN|`PROXIMITY_OUT -> Obj.magic ev - | _ -> invalid_arg "GdkEvent.Proximity.cast" - external time : t -> int = "ml_GdkEventProximity_time" - external source : t -> input_source = "ml_GdkEventProximity_source" - external deviceid : t -> int = "ml_GdkEventProximity_deviceid" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdkKeysyms.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdkKeysyms.ml deleted file mode 100644 index b0257b439..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdkKeysyms.ml +++ /dev/null @@ -1,1320 +0,0 @@ -(* $Id$ *) - -open Gdk -let _VoidSymbol : keysym = 0xFFFFFF -let _BackSpace : keysym = 0xFF08 -let _Tab : keysym = 0xFF09 -let _Linefeed : keysym = 0xFF0A -let _Clear : keysym = 0xFF0B -let _Return : keysym = 0xFF0D -let _Pause : keysym = 0xFF13 -let _Scroll_Lock : keysym = 0xFF14 -let _Sys_Req : keysym = 0xFF15 -let _Escape : keysym = 0xFF1B -let _Delete : keysym = 0xFFFF -let _Multi_key : keysym = 0xFF20 -let _SingleCandidate : keysym = 0xFF3C -let _MultipleCandidate : keysym = 0xFF3D -let _PreviousCandidate : keysym = 0xFF3E -let _Kanji : keysym = 0xFF21 -let _Muhenkan : keysym = 0xFF22 -let _Henkan_Mode : keysym = 0xFF23 -let _Henkan : keysym = 0xFF23 -let _Romaji : keysym = 0xFF24 -let _Hiragana : keysym = 0xFF25 -let _Katakana : keysym = 0xFF26 -let _Hiragana_Katakana : keysym = 0xFF27 -let _Zenkaku : keysym = 0xFF28 -let _Hankaku : keysym = 0xFF29 -let _Zenkaku_Hankaku : keysym = 0xFF2A -let _Touroku : keysym = 0xFF2B -let _Massyo : keysym = 0xFF2C -let _Kana_Lock : keysym = 0xFF2D -let _Kana_Shift : keysym = 0xFF2E -let _Eisu_Shift : keysym = 0xFF2F -let _Eisu_toggle : keysym = 0xFF30 -let _Zen_Koho : keysym = 0xFF3D -let _Mae_Koho : keysym = 0xFF3E -let _Home : keysym = 0xFF50 -let _Left : keysym = 0xFF51 -let _Up : keysym = 0xFF52 -let _Right : keysym = 0xFF53 -let _Down : keysym = 0xFF54 -let _Prior : keysym = 0xFF55 -let _Page_Up : keysym = 0xFF55 -let _Next : keysym = 0xFF56 -let _Page_Down : keysym = 0xFF56 -let _End : keysym = 0xFF57 -let _Begin : keysym = 0xFF58 -let _Select : keysym = 0xFF60 -let _Print : keysym = 0xFF61 -let _Execute : keysym = 0xFF62 -let _Insert : keysym = 0xFF63 -let _Undo : keysym = 0xFF65 -let _Redo : keysym = 0xFF66 -let _Menu : keysym = 0xFF67 -let _Find : keysym = 0xFF68 -let _Cancel : keysym = 0xFF69 -let _Help : keysym = 0xFF6A -let _Break : keysym = 0xFF6B -let _Mode_switch : keysym = 0xFF7E -let _script_switch : keysym = 0xFF7E -let _Num_Lock : keysym = 0xFF7F -let _KP_Space : keysym = 0xFF80 -let _KP_Tab : keysym = 0xFF89 -let _KP_Enter : keysym = 0xFF8D -let _KP_F1 : keysym = 0xFF91 -let _KP_F2 : keysym = 0xFF92 -let _KP_F3 : keysym = 0xFF93 -let _KP_F4 : keysym = 0xFF94 -let _KP_Home : keysym = 0xFF95 -let _KP_Left : keysym = 0xFF96 -let _KP_Up : keysym = 0xFF97 -let _KP_Right : keysym = 0xFF98 -let _KP_Down : keysym = 0xFF99 -let _KP_Prior : keysym = 0xFF9A -let _KP_Page_Up : keysym = 0xFF9A -let _KP_Next : keysym = 0xFF9B -let _KP_Page_Down : keysym = 0xFF9B -let _KP_End : keysym = 0xFF9C -let _KP_Begin : keysym = 0xFF9D -let _KP_Insert : keysym = 0xFF9E -let _KP_Delete : keysym = 0xFF9F -let _KP_Equal : keysym = 0xFFBD -let _KP_Multiply : keysym = 0xFFAA -let _KP_Add : keysym = 0xFFAB -let _KP_Separator : keysym = 0xFFAC -let _KP_Subtract : keysym = 0xFFAD -let _KP_Decimal : keysym = 0xFFAE -let _KP_Divide : keysym = 0xFFAF -let _KP_0 : keysym = 0xFFB0 -let _KP_1 : keysym = 0xFFB1 -let _KP_2 : keysym = 0xFFB2 -let _KP_3 : keysym = 0xFFB3 -let _KP_4 : keysym = 0xFFB4 -let _KP_5 : keysym = 0xFFB5 -let _KP_6 : keysym = 0xFFB6 -let _KP_7 : keysym = 0xFFB7 -let _KP_8 : keysym = 0xFFB8 -let _KP_9 : keysym = 0xFFB9 -let _F1 : keysym = 0xFFBE -let _F2 : keysym = 0xFFBF -let _F3 : keysym = 0xFFC0 -let _F4 : keysym = 0xFFC1 -let _F5 : keysym = 0xFFC2 -let _F6 : keysym = 0xFFC3 -let _F7 : keysym = 0xFFC4 -let _F8 : keysym = 0xFFC5 -let _F9 : keysym = 0xFFC6 -let _F10 : keysym = 0xFFC7 -let _F11 : keysym = 0xFFC8 -let _L1 : keysym = 0xFFC8 -let _F12 : keysym = 0xFFC9 -let _L2 : keysym = 0xFFC9 -let _F13 : keysym = 0xFFCA -let _L3 : keysym = 0xFFCA -let _F14 : keysym = 0xFFCB -let _L4 : keysym = 0xFFCB -let _F15 : keysym = 0xFFCC -let _L5 : keysym = 0xFFCC -let _F16 : keysym = 0xFFCD -let _L6 : keysym = 0xFFCD -let _F17 : keysym = 0xFFCE -let _L7 : keysym = 0xFFCE -let _F18 : keysym = 0xFFCF -let _L8 : keysym = 0xFFCF -let _F19 : keysym = 0xFFD0 -let _L9 : keysym = 0xFFD0 -let _F20 : keysym = 0xFFD1 -let _L10 : keysym = 0xFFD1 -let _F21 : keysym = 0xFFD2 -let _R1 : keysym = 0xFFD2 -let _F22 : keysym = 0xFFD3 -let _R2 : keysym = 0xFFD3 -let _F23 : keysym = 0xFFD4 -let _R3 : keysym = 0xFFD4 -let _F24 : keysym = 0xFFD5 -let _R4 : keysym = 0xFFD5 -let _F25 : keysym = 0xFFD6 -let _R5 : keysym = 0xFFD6 -let _F26 : keysym = 0xFFD7 -let _R6 : keysym = 0xFFD7 -let _F27 : keysym = 0xFFD8 -let _R7 : keysym = 0xFFD8 -let _F28 : keysym = 0xFFD9 -let _R8 : keysym = 0xFFD9 -let _F29 : keysym = 0xFFDA -let _R9 : keysym = 0xFFDA -let _F30 : keysym = 0xFFDB -let _R10 : keysym = 0xFFDB -let _F31 : keysym = 0xFFDC -let _R11 : keysym = 0xFFDC -let _F32 : keysym = 0xFFDD -let _R12 : keysym = 0xFFDD -let _F33 : keysym = 0xFFDE -let _R13 : keysym = 0xFFDE -let _F34 : keysym = 0xFFDF -let _R14 : keysym = 0xFFDF -let _F35 : keysym = 0xFFE0 -let _R15 : keysym = 0xFFE0 -let _Shift_L : keysym = 0xFFE1 -let _Shift_R : keysym = 0xFFE2 -let _Control_L : keysym = 0xFFE3 -let _Control_R : keysym = 0xFFE4 -let _Caps_Lock : keysym = 0xFFE5 -let _Shift_Lock : keysym = 0xFFE6 -let _Meta_L : keysym = 0xFFE7 -let _Meta_R : keysym = 0xFFE8 -let _Alt_L : keysym = 0xFFE9 -let _Alt_R : keysym = 0xFFEA -let _Super_L : keysym = 0xFFEB -let _Super_R : keysym = 0xFFEC -let _Hyper_L : keysym = 0xFFED -let _Hyper_R : keysym = 0xFFEE -let _ISO_Lock : keysym = 0xFE01 -let _ISO_Level2_Latch : keysym = 0xFE02 -let _ISO_Level3_Shift : keysym = 0xFE03 -let _ISO_Level3_Latch : keysym = 0xFE04 -let _ISO_Level3_Lock : keysym = 0xFE05 -let _ISO_Group_Shift : keysym = 0xFF7E -let _ISO_Group_Latch : keysym = 0xFE06 -let _ISO_Group_Lock : keysym = 0xFE07 -let _ISO_Next_Group : keysym = 0xFE08 -let _ISO_Next_Group_Lock : keysym = 0xFE09 -let _ISO_Prev_Group : keysym = 0xFE0A -let _ISO_Prev_Group_Lock : keysym = 0xFE0B -let _ISO_First_Group : keysym = 0xFE0C -let _ISO_First_Group_Lock : keysym = 0xFE0D -let _ISO_Last_Group : keysym = 0xFE0E -let _ISO_Last_Group_Lock : keysym = 0xFE0F -let _ISO_Left_Tab : keysym = 0xFE20 -let _ISO_Move_Line_Up : keysym = 0xFE21 -let _ISO_Move_Line_Down : keysym = 0xFE22 -let _ISO_Partial_Line_Up : keysym = 0xFE23 -let _ISO_Partial_Line_Down : keysym = 0xFE24 -let _ISO_Partial_Space_Left : keysym = 0xFE25 -let _ISO_Partial_Space_Right : keysym = 0xFE26 -let _ISO_Set_Margin_Left : keysym = 0xFE27 -let _ISO_Set_Margin_Right : keysym = 0xFE28 -let _ISO_Release_Margin_Left : keysym = 0xFE29 -let _ISO_Release_Margin_Right : keysym = 0xFE2A -let _ISO_Release_Both_Margins : keysym = 0xFE2B -let _ISO_Fast_Cursor_Left : keysym = 0xFE2C -let _ISO_Fast_Cursor_Right : keysym = 0xFE2D -let _ISO_Fast_Cursor_Up : keysym = 0xFE2E -let _ISO_Fast_Cursor_Down : keysym = 0xFE2F -let _ISO_Continuous_Underline : keysym = 0xFE30 -let _ISO_Discontinuous_Underline : keysym = 0xFE31 -let _ISO_Emphasize : keysym = 0xFE32 -let _ISO_Center_Object : keysym = 0xFE33 -let _ISO_Enter : keysym = 0xFE34 -let _dead_grave : keysym = 0xFE50 -let _dead_acute : keysym = 0xFE51 -let _dead_circumflex : keysym = 0xFE52 -let _dead_tilde : keysym = 0xFE53 -let _dead_macron : keysym = 0xFE54 -let _dead_breve : keysym = 0xFE55 -let _dead_abovedot : keysym = 0xFE56 -let _dead_diaeresis : keysym = 0xFE57 -let _dead_abovering : keysym = 0xFE58 -let _dead_doubleacute : keysym = 0xFE59 -let _dead_caron : keysym = 0xFE5A -let _dead_cedilla : keysym = 0xFE5B -let _dead_ogonek : keysym = 0xFE5C -let _dead_iota : keysym = 0xFE5D -let _dead_voiced_sound : keysym = 0xFE5E -let _dead_semivoiced_sound : keysym = 0xFE5F -let _dead_belowdot : keysym = 0xFE60 -let _First_Virtual_Screen : keysym = 0xFED0 -let _Prev_Virtual_Screen : keysym = 0xFED1 -let _Next_Virtual_Screen : keysym = 0xFED2 -let _Last_Virtual_Screen : keysym = 0xFED4 -let _Terminate_Server : keysym = 0xFED5 -let _AccessX_Enable : keysym = 0xFE70 -let _AccessX_Feedback_Enable : keysym = 0xFE71 -let _RepeatKeys_Enable : keysym = 0xFE72 -let _SlowKeys_Enable : keysym = 0xFE73 -let _BounceKeys_Enable : keysym = 0xFE74 -let _StickyKeys_Enable : keysym = 0xFE75 -let _MouseKeys_Enable : keysym = 0xFE76 -let _MouseKeys_Accel_Enable : keysym = 0xFE77 -let _Overlay1_Enable : keysym = 0xFE78 -let _Overlay2_Enable : keysym = 0xFE79 -let _AudibleBell_Enable : keysym = 0xFE7A -let _Pointer_Left : keysym = 0xFEE0 -let _Pointer_Right : keysym = 0xFEE1 -let _Pointer_Up : keysym = 0xFEE2 -let _Pointer_Down : keysym = 0xFEE3 -let _Pointer_UpLeft : keysym = 0xFEE4 -let _Pointer_UpRight : keysym = 0xFEE5 -let _Pointer_DownLeft : keysym = 0xFEE6 -let _Pointer_DownRight : keysym = 0xFEE7 -let _Pointer_Button_Dflt : keysym = 0xFEE8 -let _Pointer_Button1 : keysym = 0xFEE9 -let _Pointer_Button2 : keysym = 0xFEEA -let _Pointer_Button3 : keysym = 0xFEEB -let _Pointer_Button4 : keysym = 0xFEEC -let _Pointer_Button5 : keysym = 0xFEED -let _Pointer_DblClick_Dflt : keysym = 0xFEEE -let _Pointer_DblClick1 : keysym = 0xFEEF -let _Pointer_DblClick2 : keysym = 0xFEF0 -let _Pointer_DblClick3 : keysym = 0xFEF1 -let _Pointer_DblClick4 : keysym = 0xFEF2 -let _Pointer_DblClick5 : keysym = 0xFEF3 -let _Pointer_Drag_Dflt : keysym = 0xFEF4 -let _Pointer_Drag1 : keysym = 0xFEF5 -let _Pointer_Drag2 : keysym = 0xFEF6 -let _Pointer_Drag3 : keysym = 0xFEF7 -let _Pointer_Drag4 : keysym = 0xFEF8 -let _Pointer_Drag5 : keysym = 0xFEFD -let _Pointer_EnableKeys : keysym = 0xFEF9 -let _Pointer_Accelerate : keysym = 0xFEFA -let _Pointer_DfltBtnNext : keysym = 0xFEFB -let _Pointer_DfltBtnPrev : keysym = 0xFEFC -let _3270_Duplicate : keysym = 0xFD01 -let _3270_FieldMark : keysym = 0xFD02 -let _3270_Right2 : keysym = 0xFD03 -let _3270_Left2 : keysym = 0xFD04 -let _3270_BackTab : keysym = 0xFD05 -let _3270_EraseEOF : keysym = 0xFD06 -let _3270_EraseInput : keysym = 0xFD07 -let _3270_Reset : keysym = 0xFD08 -let _3270_Quit : keysym = 0xFD09 -let _3270_PA1 : keysym = 0xFD0A -let _3270_PA2 : keysym = 0xFD0B -let _3270_PA3 : keysym = 0xFD0C -let _3270_Test : keysym = 0xFD0D -let _3270_Attn : keysym = 0xFD0E -let _3270_CursorBlink : keysym = 0xFD0F -let _3270_AltCursor : keysym = 0xFD10 -let _3270_KeyClick : keysym = 0xFD11 -let _3270_Jump : keysym = 0xFD12 -let _3270_Ident : keysym = 0xFD13 -let _3270_Rule : keysym = 0xFD14 -let _3270_Copy : keysym = 0xFD15 -let _3270_Play : keysym = 0xFD16 -let _3270_Setup : keysym = 0xFD17 -let _3270_Record : keysym = 0xFD18 -let _3270_ChangeScreen : keysym = 0xFD19 -let _3270_DeleteWord : keysym = 0xFD1A -let _3270_ExSelect : keysym = 0xFD1B -let _3270_CursorSelect : keysym = 0xFD1C -let _3270_PrintScreen : keysym = 0xFD1D -let _3270_Enter : keysym = 0xFD1E -let _space : keysym = 0x020 -let _exclam : keysym = 0x021 -let _quotedbl : keysym = 0x022 -let _numbersign : keysym = 0x023 -let _dollar : keysym = 0x024 -let _percent : keysym = 0x025 -let _ampersand : keysym = 0x026 -let _apostrophe : keysym = 0x027 -let _quoteright : keysym = 0x027 -let _parenleft : keysym = 0x028 -let _parenright : keysym = 0x029 -let _asterisk : keysym = 0x02a -let _plus : keysym = 0x02b -let _comma : keysym = 0x02c -let _minus : keysym = 0x02d -let _period : keysym = 0x02e -let _slash : keysym = 0x02f -let _0 : keysym = 0x030 -let _1 : keysym = 0x031 -let _2 : keysym = 0x032 -let _3 : keysym = 0x033 -let _4 : keysym = 0x034 -let _5 : keysym = 0x035 -let _6 : keysym = 0x036 -let _7 : keysym = 0x037 -let _8 : keysym = 0x038 -let _9 : keysym = 0x039 -let _colon : keysym = 0x03a -let _semicolon : keysym = 0x03b -let _less : keysym = 0x03c -let _equal : keysym = 0x03d -let _greater : keysym = 0x03e -let _question : keysym = 0x03f -let _at : keysym = 0x040 -let _A : keysym = 0x041 -let _B : keysym = 0x042 -let _C : keysym = 0x043 -let _D : keysym = 0x044 -let _E : keysym = 0x045 -let _F : keysym = 0x046 -let _G : keysym = 0x047 -let _H : keysym = 0x048 -let _I : keysym = 0x049 -let _J : keysym = 0x04a -let _K : keysym = 0x04b -let _L : keysym = 0x04c -let _M : keysym = 0x04d -let _N : keysym = 0x04e -let _O : keysym = 0x04f -let _P : keysym = 0x050 -let _Q : keysym = 0x051 -let _R : keysym = 0x052 -let _S : keysym = 0x053 -let _T : keysym = 0x054 -let _U : keysym = 0x055 -let _V : keysym = 0x056 -let _W : keysym = 0x057 -let _X : keysym = 0x058 -let _Y : keysym = 0x059 -let _Z : keysym = 0x05a -let _bracketleft : keysym = 0x05b -let _backslash : keysym = 0x05c -let _bracketright : keysym = 0x05d -let _asciicircum : keysym = 0x05e -let _underscore : keysym = 0x05f -let _grave : keysym = 0x060 -let _quoteleft : keysym = 0x060 -let _a : keysym = 0x061 -let _b : keysym = 0x062 -let _c : keysym = 0x063 -let _d : keysym = 0x064 -let _e : keysym = 0x065 -let _f : keysym = 0x066 -let _g : keysym = 0x067 -let _h : keysym = 0x068 -let _i : keysym = 0x069 -let _j : keysym = 0x06a -let _k : keysym = 0x06b -let _l : keysym = 0x06c -let _m : keysym = 0x06d -let _n : keysym = 0x06e -let _o : keysym = 0x06f -let _p : keysym = 0x070 -let _q : keysym = 0x071 -let _r : keysym = 0x072 -let _s : keysym = 0x073 -let _t : keysym = 0x074 -let _u : keysym = 0x075 -let _v : keysym = 0x076 -let _w : keysym = 0x077 -let _x : keysym = 0x078 -let _y : keysym = 0x079 -let _z : keysym = 0x07a -let _braceleft : keysym = 0x07b -let _bar : keysym = 0x07c -let _braceright : keysym = 0x07d -let _asciitilde : keysym = 0x07e -let _nobreakspace : keysym = 0x0a0 -let _exclamdown : keysym = 0x0a1 -let _cent : keysym = 0x0a2 -let _sterling : keysym = 0x0a3 -let _currency : keysym = 0x0a4 -let _yen : keysym = 0x0a5 -let _brokenbar : keysym = 0x0a6 -let _section : keysym = 0x0a7 -let _diaeresis : keysym = 0x0a8 -let _copyright : keysym = 0x0a9 -let _ordfeminine : keysym = 0x0aa -let _guillemotleft : keysym = 0x0ab -let _notsign : keysym = 0x0ac -let _hyphen : keysym = 0x0ad -let _registered : keysym = 0x0ae -let _macron : keysym = 0x0af -let _degree : keysym = 0x0b0 -let _plusminus : keysym = 0x0b1 -let _twosuperior : keysym = 0x0b2 -let _threesuperior : keysym = 0x0b3 -let _acute : keysym = 0x0b4 -let _mu : keysym = 0x0b5 -let _paragraph : keysym = 0x0b6 -let _periodcentered : keysym = 0x0b7 -let _cedilla : keysym = 0x0b8 -let _onesuperior : keysym = 0x0b9 -let _masculine : keysym = 0x0ba -let _guillemotright : keysym = 0x0bb -let _onequarter : keysym = 0x0bc -let _onehalf : keysym = 0x0bd -let _threequarters : keysym = 0x0be -let _questiondown : keysym = 0x0bf -let _Agrave : keysym = 0x0c0 -let _Aacute : keysym = 0x0c1 -let _Acircumflex : keysym = 0x0c2 -let _Atilde : keysym = 0x0c3 -let _Adiaeresis : keysym = 0x0c4 -let _Aring : keysym = 0x0c5 -let _AE : keysym = 0x0c6 -let _Ccedilla : keysym = 0x0c7 -let _Egrave : keysym = 0x0c8 -let _Eacute : keysym = 0x0c9 -let _Ecircumflex : keysym = 0x0ca -let _Ediaeresis : keysym = 0x0cb -let _Igrave : keysym = 0x0cc -let _Iacute : keysym = 0x0cd -let _Icircumflex : keysym = 0x0ce -let _Idiaeresis : keysym = 0x0cf -let _ETH : keysym = 0x0d0 -let _Eth : keysym = 0x0d0 -let _Ntilde : keysym = 0x0d1 -let _Ograve : keysym = 0x0d2 -let _Oacute : keysym = 0x0d3 -let _Ocircumflex : keysym = 0x0d4 -let _Otilde : keysym = 0x0d5 -let _Odiaeresis : keysym = 0x0d6 -let _multiply : keysym = 0x0d7 -let _Ooblique : keysym = 0x0d8 -let _Ugrave : keysym = 0x0d9 -let _Uacute : keysym = 0x0da -let _Ucircumflex : keysym = 0x0db -let _Udiaeresis : keysym = 0x0dc -let _Yacute : keysym = 0x0dd -let _THORN : keysym = 0x0de -let _Thorn : keysym = 0x0de -let _ssharp : keysym = 0x0df -let _agrave : keysym = 0x0e0 -let _aacute : keysym = 0x0e1 -let _acircumflex : keysym = 0x0e2 -let _atilde : keysym = 0x0e3 -let _adiaeresis : keysym = 0x0e4 -let _aring : keysym = 0x0e5 -let _ae : keysym = 0x0e6 -let _ccedilla : keysym = 0x0e7 -let _egrave : keysym = 0x0e8 -let _eacute : keysym = 0x0e9 -let _ecircumflex : keysym = 0x0ea -let _ediaeresis : keysym = 0x0eb -let _igrave : keysym = 0x0ec -let _iacute : keysym = 0x0ed -let _icircumflex : keysym = 0x0ee -let _idiaeresis : keysym = 0x0ef -let _eth : keysym = 0x0f0 -let _ntilde : keysym = 0x0f1 -let _ograve : keysym = 0x0f2 -let _oacute : keysym = 0x0f3 -let _ocircumflex : keysym = 0x0f4 -let _otilde : keysym = 0x0f5 -let _odiaeresis : keysym = 0x0f6 -let _division : keysym = 0x0f7 -let _oslash : keysym = 0x0f8 -let _ugrave : keysym = 0x0f9 -let _uacute : keysym = 0x0fa -let _ucircumflex : keysym = 0x0fb -let _udiaeresis : keysym = 0x0fc -let _yacute : keysym = 0x0fd -let _thorn : keysym = 0x0fe -let _ydiaeresis : keysym = 0x0ff -let _Aogonek : keysym = 0x1a1 -let _breve : keysym = 0x1a2 -let _Lstroke : keysym = 0x1a3 -let _Lcaron : keysym = 0x1a5 -let _Sacute : keysym = 0x1a6 -let _Scaron : keysym = 0x1a9 -let _Scedilla : keysym = 0x1aa -let _Tcaron : keysym = 0x1ab -let _Zacute : keysym = 0x1ac -let _Zcaron : keysym = 0x1ae -let _Zabovedot : keysym = 0x1af -let _aogonek : keysym = 0x1b1 -let _ogonek : keysym = 0x1b2 -let _lstroke : keysym = 0x1b3 -let _lcaron : keysym = 0x1b5 -let _sacute : keysym = 0x1b6 -let _caron : keysym = 0x1b7 -let _scaron : keysym = 0x1b9 -let _scedilla : keysym = 0x1ba -let _tcaron : keysym = 0x1bb -let _zacute : keysym = 0x1bc -let _doubleacute : keysym = 0x1bd -let _zcaron : keysym = 0x1be -let _zabovedot : keysym = 0x1bf -let _Racute : keysym = 0x1c0 -let _Abreve : keysym = 0x1c3 -let _Lacute : keysym = 0x1c5 -let _Cacute : keysym = 0x1c6 -let _Ccaron : keysym = 0x1c8 -let _Eogonek : keysym = 0x1ca -let _Ecaron : keysym = 0x1cc -let _Dcaron : keysym = 0x1cf -let _Dstroke : keysym = 0x1d0 -let _Nacute : keysym = 0x1d1 -let _Ncaron : keysym = 0x1d2 -let _Odoubleacute : keysym = 0x1d5 -let _Rcaron : keysym = 0x1d8 -let _Uring : keysym = 0x1d9 -let _Udoubleacute : keysym = 0x1db -let _Tcedilla : keysym = 0x1de -let _racute : keysym = 0x1e0 -let _abreve : keysym = 0x1e3 -let _lacute : keysym = 0x1e5 -let _cacute : keysym = 0x1e6 -let _ccaron : keysym = 0x1e8 -let _eogonek : keysym = 0x1ea -let _ecaron : keysym = 0x1ec -let _dcaron : keysym = 0x1ef -let _dstroke : keysym = 0x1f0 -let _nacute : keysym = 0x1f1 -let _ncaron : keysym = 0x1f2 -let _odoubleacute : keysym = 0x1f5 -let _udoubleacute : keysym = 0x1fb -let _rcaron : keysym = 0x1f8 -let _uring : keysym = 0x1f9 -let _tcedilla : keysym = 0x1fe -let _abovedot : keysym = 0x1ff -let _Hstroke : keysym = 0x2a1 -let _Hcircumflex : keysym = 0x2a6 -let _Iabovedot : keysym = 0x2a9 -let _Gbreve : keysym = 0x2ab -let _Jcircumflex : keysym = 0x2ac -let _hstroke : keysym = 0x2b1 -let _hcircumflex : keysym = 0x2b6 -let _idotless : keysym = 0x2b9 -let _gbreve : keysym = 0x2bb -let _jcircumflex : keysym = 0x2bc -let _Cabovedot : keysym = 0x2c5 -let _Ccircumflex : keysym = 0x2c6 -let _Gabovedot : keysym = 0x2d5 -let _Gcircumflex : keysym = 0x2d8 -let _Ubreve : keysym = 0x2dd -let _Scircumflex : keysym = 0x2de -let _cabovedot : keysym = 0x2e5 -let _ccircumflex : keysym = 0x2e6 -let _gabovedot : keysym = 0x2f5 -let _gcircumflex : keysym = 0x2f8 -let _ubreve : keysym = 0x2fd -let _scircumflex : keysym = 0x2fe -let _kra : keysym = 0x3a2 -let _kappa : keysym = 0x3a2 -let _Rcedilla : keysym = 0x3a3 -let _Itilde : keysym = 0x3a5 -let _Lcedilla : keysym = 0x3a6 -let _Emacron : keysym = 0x3aa -let _Gcedilla : keysym = 0x3ab -let _Tslash : keysym = 0x3ac -let _rcedilla : keysym = 0x3b3 -let _itilde : keysym = 0x3b5 -let _lcedilla : keysym = 0x3b6 -let _emacron : keysym = 0x3ba -let _gcedilla : keysym = 0x3bb -let _tslash : keysym = 0x3bc -let _ENG : keysym = 0x3bd -let _eng : keysym = 0x3bf -let _Amacron : keysym = 0x3c0 -let _Iogonek : keysym = 0x3c7 -let _Eabovedot : keysym = 0x3cc -let _Imacron : keysym = 0x3cf -let _Ncedilla : keysym = 0x3d1 -let _Omacron : keysym = 0x3d2 -let _Kcedilla : keysym = 0x3d3 -let _Uogonek : keysym = 0x3d9 -let _Utilde : keysym = 0x3dd -let _Umacron : keysym = 0x3de -let _amacron : keysym = 0x3e0 -let _iogonek : keysym = 0x3e7 -let _eabovedot : keysym = 0x3ec -let _imacron : keysym = 0x3ef -let _ncedilla : keysym = 0x3f1 -let _omacron : keysym = 0x3f2 -let _kcedilla : keysym = 0x3f3 -let _uogonek : keysym = 0x3f9 -let _utilde : keysym = 0x3fd -let _umacron : keysym = 0x3fe -let _overline : keysym = 0x47e -let _kana_fullstop : keysym = 0x4a1 -let _kana_openingbracket : keysym = 0x4a2 -let _kana_closingbracket : keysym = 0x4a3 -let _kana_comma : keysym = 0x4a4 -let _kana_conjunctive : keysym = 0x4a5 -let _kana_middledot : keysym = 0x4a5 -let _kana_WO : keysym = 0x4a6 -let _kana_a : keysym = 0x4a7 -let _kana_i : keysym = 0x4a8 -let _kana_u : keysym = 0x4a9 -let _kana_e : keysym = 0x4aa -let _kana_o : keysym = 0x4ab -let _kana_ya : keysym = 0x4ac -let _kana_yu : keysym = 0x4ad -let _kana_yo : keysym = 0x4ae -let _kana_tsu : keysym = 0x4af -let _kana_tu : keysym = 0x4af -let _prolongedsound : keysym = 0x4b0 -let _kana_A : keysym = 0x4b1 -let _kana_I : keysym = 0x4b2 -let _kana_U : keysym = 0x4b3 -let _kana_E : keysym = 0x4b4 -let _kana_O : keysym = 0x4b5 -let _kana_KA : keysym = 0x4b6 -let _kana_KI : keysym = 0x4b7 -let _kana_KU : keysym = 0x4b8 -let _kana_KE : keysym = 0x4b9 -let _kana_KO : keysym = 0x4ba -let _kana_SA : keysym = 0x4bb -let _kana_SHI : keysym = 0x4bc -let _kana_SU : keysym = 0x4bd -let _kana_SE : keysym = 0x4be -let _kana_SO : keysym = 0x4bf -let _kana_TA : keysym = 0x4c0 -let _kana_CHI : keysym = 0x4c1 -let _kana_TI : keysym = 0x4c1 -let _kana_TSU : keysym = 0x4c2 -let _kana_TU : keysym = 0x4c2 -let _kana_TE : keysym = 0x4c3 -let _kana_TO : keysym = 0x4c4 -let _kana_NA : keysym = 0x4c5 -let _kana_NI : keysym = 0x4c6 -let _kana_NU : keysym = 0x4c7 -let _kana_NE : keysym = 0x4c8 -let _kana_NO : keysym = 0x4c9 -let _kana_HA : keysym = 0x4ca -let _kana_HI : keysym = 0x4cb -let _kana_FU : keysym = 0x4cc -let _kana_HU : keysym = 0x4cc -let _kana_HE : keysym = 0x4cd -let _kana_HO : keysym = 0x4ce -let _kana_MA : keysym = 0x4cf -let _kana_MI : keysym = 0x4d0 -let _kana_MU : keysym = 0x4d1 -let _kana_ME : keysym = 0x4d2 -let _kana_MO : keysym = 0x4d3 -let _kana_YA : keysym = 0x4d4 -let _kana_YU : keysym = 0x4d5 -let _kana_YO : keysym = 0x4d6 -let _kana_RA : keysym = 0x4d7 -let _kana_RI : keysym = 0x4d8 -let _kana_RU : keysym = 0x4d9 -let _kana_RE : keysym = 0x4da -let _kana_RO : keysym = 0x4db -let _kana_WA : keysym = 0x4dc -let _kana_N : keysym = 0x4dd -let _voicedsound : keysym = 0x4de -let _semivoicedsound : keysym = 0x4df -let _kana_switch : keysym = 0xFF7E -let _Arabic_comma : keysym = 0x5ac -let _Arabic_semicolon : keysym = 0x5bb -let _Arabic_question_mark : keysym = 0x5bf -let _Arabic_hamza : keysym = 0x5c1 -let _Arabic_maddaonalef : keysym = 0x5c2 -let _Arabic_hamzaonalef : keysym = 0x5c3 -let _Arabic_hamzaonwaw : keysym = 0x5c4 -let _Arabic_hamzaunderalef : keysym = 0x5c5 -let _Arabic_hamzaonyeh : keysym = 0x5c6 -let _Arabic_alef : keysym = 0x5c7 -let _Arabic_beh : keysym = 0x5c8 -let _Arabic_tehmarbuta : keysym = 0x5c9 -let _Arabic_teh : keysym = 0x5ca -let _Arabic_theh : keysym = 0x5cb -let _Arabic_jeem : keysym = 0x5cc -let _Arabic_hah : keysym = 0x5cd -let _Arabic_khah : keysym = 0x5ce -let _Arabic_dal : keysym = 0x5cf -let _Arabic_thal : keysym = 0x5d0 -let _Arabic_ra : keysym = 0x5d1 -let _Arabic_zain : keysym = 0x5d2 -let _Arabic_seen : keysym = 0x5d3 -let _Arabic_sheen : keysym = 0x5d4 -let _Arabic_sad : keysym = 0x5d5 -let _Arabic_dad : keysym = 0x5d6 -let _Arabic_tah : keysym = 0x5d7 -let _Arabic_zah : keysym = 0x5d8 -let _Arabic_ain : keysym = 0x5d9 -let _Arabic_ghain : keysym = 0x5da -let _Arabic_tatweel : keysym = 0x5e0 -let _Arabic_feh : keysym = 0x5e1 -let _Arabic_qaf : keysym = 0x5e2 -let _Arabic_kaf : keysym = 0x5e3 -let _Arabic_lam : keysym = 0x5e4 -let _Arabic_meem : keysym = 0x5e5 -let _Arabic_noon : keysym = 0x5e6 -let _Arabic_ha : keysym = 0x5e7 -let _Arabic_heh : keysym = 0x5e7 -let _Arabic_waw : keysym = 0x5e8 -let _Arabic_alefmaksura : keysym = 0x5e9 -let _Arabic_yeh : keysym = 0x5ea -let _Arabic_fathatan : keysym = 0x5eb -let _Arabic_dammatan : keysym = 0x5ec -let _Arabic_kasratan : keysym = 0x5ed -let _Arabic_fatha : keysym = 0x5ee -let _Arabic_damma : keysym = 0x5ef -let _Arabic_kasra : keysym = 0x5f0 -let _Arabic_shadda : keysym = 0x5f1 -let _Arabic_sukun : keysym = 0x5f2 -let _Arabic_switch : keysym = 0xFF7E -let _Serbian_dje : keysym = 0x6a1 -let _Macedonia_gje : keysym = 0x6a2 -let _Cyrillic_io : keysym = 0x6a3 -let _Ukrainian_ie : keysym = 0x6a4 -let _Ukranian_je : keysym = 0x6a4 -let _Macedonia_dse : keysym = 0x6a5 -let _Ukrainian_i : keysym = 0x6a6 -let _Ukranian_i : keysym = 0x6a6 -let _Ukrainian_yi : keysym = 0x6a7 -let _Ukranian_yi : keysym = 0x6a7 -let _Cyrillic_je : keysym = 0x6a8 -let _Serbian_je : keysym = 0x6a8 -let _Cyrillic_lje : keysym = 0x6a9 -let _Serbian_lje : keysym = 0x6a9 -let _Cyrillic_nje : keysym = 0x6aa -let _Serbian_nje : keysym = 0x6aa -let _Serbian_tshe : keysym = 0x6ab -let _Macedonia_kje : keysym = 0x6ac -let _Byelorussian_shortu : keysym = 0x6ae -let _Cyrillic_dzhe : keysym = 0x6af -let _Serbian_dze : keysym = 0x6af -let _numerosign : keysym = 0x6b0 -let _Serbian_DJE : keysym = 0x6b1 -let _Macedonia_GJE : keysym = 0x6b2 -let _Cyrillic_IO : keysym = 0x6b3 -let _Ukrainian_IE : keysym = 0x6b4 -let _Ukranian_JE : keysym = 0x6b4 -let _Macedonia_DSE : keysym = 0x6b5 -let _Ukrainian_I : keysym = 0x6b6 -let _Ukranian_I : keysym = 0x6b6 -let _Ukrainian_YI : keysym = 0x6b7 -let _Ukranian_YI : keysym = 0x6b7 -let _Cyrillic_JE : keysym = 0x6b8 -let _Serbian_JE : keysym = 0x6b8 -let _Cyrillic_LJE : keysym = 0x6b9 -let _Serbian_LJE : keysym = 0x6b9 -let _Cyrillic_NJE : keysym = 0x6ba -let _Serbian_NJE : keysym = 0x6ba -let _Serbian_TSHE : keysym = 0x6bb -let _Macedonia_KJE : keysym = 0x6bc -let _Byelorussian_SHORTU : keysym = 0x6be -let _Cyrillic_DZHE : keysym = 0x6bf -let _Serbian_DZE : keysym = 0x6bf -let _Cyrillic_yu : keysym = 0x6c0 -let _Cyrillic_a : keysym = 0x6c1 -let _Cyrillic_be : keysym = 0x6c2 -let _Cyrillic_tse : keysym = 0x6c3 -let _Cyrillic_de : keysym = 0x6c4 -let _Cyrillic_ie : keysym = 0x6c5 -let _Cyrillic_ef : keysym = 0x6c6 -let _Cyrillic_ghe : keysym = 0x6c7 -let _Cyrillic_ha : keysym = 0x6c8 -let _Cyrillic_i : keysym = 0x6c9 -let _Cyrillic_shorti : keysym = 0x6ca -let _Cyrillic_ka : keysym = 0x6cb -let _Cyrillic_el : keysym = 0x6cc -let _Cyrillic_em : keysym = 0x6cd -let _Cyrillic_en : keysym = 0x6ce -let _Cyrillic_o : keysym = 0x6cf -let _Cyrillic_pe : keysym = 0x6d0 -let _Cyrillic_ya : keysym = 0x6d1 -let _Cyrillic_er : keysym = 0x6d2 -let _Cyrillic_es : keysym = 0x6d3 -let _Cyrillic_te : keysym = 0x6d4 -let _Cyrillic_u : keysym = 0x6d5 -let _Cyrillic_zhe : keysym = 0x6d6 -let _Cyrillic_ve : keysym = 0x6d7 -let _Cyrillic_softsign : keysym = 0x6d8 -let _Cyrillic_yeru : keysym = 0x6d9 -let _Cyrillic_ze : keysym = 0x6da -let _Cyrillic_sha : keysym = 0x6db -let _Cyrillic_e : keysym = 0x6dc -let _Cyrillic_shcha : keysym = 0x6dd -let _Cyrillic_che : keysym = 0x6de -let _Cyrillic_hardsign : keysym = 0x6df -let _Cyrillic_YU : keysym = 0x6e0 -let _Cyrillic_A : keysym = 0x6e1 -let _Cyrillic_BE : keysym = 0x6e2 -let _Cyrillic_TSE : keysym = 0x6e3 -let _Cyrillic_DE : keysym = 0x6e4 -let _Cyrillic_IE : keysym = 0x6e5 -let _Cyrillic_EF : keysym = 0x6e6 -let _Cyrillic_GHE : keysym = 0x6e7 -let _Cyrillic_HA : keysym = 0x6e8 -let _Cyrillic_I : keysym = 0x6e9 -let _Cyrillic_SHORTI : keysym = 0x6ea -let _Cyrillic_KA : keysym = 0x6eb -let _Cyrillic_EL : keysym = 0x6ec -let _Cyrillic_EM : keysym = 0x6ed -let _Cyrillic_EN : keysym = 0x6ee -let _Cyrillic_O : keysym = 0x6ef -let _Cyrillic_PE : keysym = 0x6f0 -let _Cyrillic_YA : keysym = 0x6f1 -let _Cyrillic_ER : keysym = 0x6f2 -let _Cyrillic_ES : keysym = 0x6f3 -let _Cyrillic_TE : keysym = 0x6f4 -let _Cyrillic_U : keysym = 0x6f5 -let _Cyrillic_ZHE : keysym = 0x6f6 -let _Cyrillic_VE : keysym = 0x6f7 -let _Cyrillic_SOFTSIGN : keysym = 0x6f8 -let _Cyrillic_YERU : keysym = 0x6f9 -let _Cyrillic_ZE : keysym = 0x6fa -let _Cyrillic_SHA : keysym = 0x6fb -let _Cyrillic_E : keysym = 0x6fc -let _Cyrillic_SHCHA : keysym = 0x6fd -let _Cyrillic_CHE : keysym = 0x6fe -let _Cyrillic_HARDSIGN : keysym = 0x6ff -let _Greek_ALPHAaccent : keysym = 0x7a1 -let _Greek_EPSILONaccent : keysym = 0x7a2 -let _Greek_ETAaccent : keysym = 0x7a3 -let _Greek_IOTAaccent : keysym = 0x7a4 -let _Greek_IOTAdiaeresis : keysym = 0x7a5 -let _Greek_OMICRONaccent : keysym = 0x7a7 -let _Greek_UPSILONaccent : keysym = 0x7a8 -let _Greek_UPSILONdieresis : keysym = 0x7a9 -let _Greek_OMEGAaccent : keysym = 0x7ab -let _Greek_accentdieresis : keysym = 0x7ae -let _Greek_horizbar : keysym = 0x7af -let _Greek_alphaaccent : keysym = 0x7b1 -let _Greek_epsilonaccent : keysym = 0x7b2 -let _Greek_etaaccent : keysym = 0x7b3 -let _Greek_iotaaccent : keysym = 0x7b4 -let _Greek_iotadieresis : keysym = 0x7b5 -let _Greek_iotaaccentdieresis : keysym = 0x7b6 -let _Greek_omicronaccent : keysym = 0x7b7 -let _Greek_upsilonaccent : keysym = 0x7b8 -let _Greek_upsilondieresis : keysym = 0x7b9 -let _Greek_upsilonaccentdieresis : keysym = 0x7ba -let _Greek_omegaaccent : keysym = 0x7bb -let _Greek_ALPHA : keysym = 0x7c1 -let _Greek_BETA : keysym = 0x7c2 -let _Greek_GAMMA : keysym = 0x7c3 -let _Greek_DELTA : keysym = 0x7c4 -let _Greek_EPSILON : keysym = 0x7c5 -let _Greek_ZETA : keysym = 0x7c6 -let _Greek_ETA : keysym = 0x7c7 -let _Greek_THETA : keysym = 0x7c8 -let _Greek_IOTA : keysym = 0x7c9 -let _Greek_KAPPA : keysym = 0x7ca -let _Greek_LAMDA : keysym = 0x7cb -let _Greek_LAMBDA : keysym = 0x7cb -let _Greek_MU : keysym = 0x7cc -let _Greek_NU : keysym = 0x7cd -let _Greek_XI : keysym = 0x7ce -let _Greek_OMICRON : keysym = 0x7cf -let _Greek_PI : keysym = 0x7d0 -let _Greek_RHO : keysym = 0x7d1 -let _Greek_SIGMA : keysym = 0x7d2 -let _Greek_TAU : keysym = 0x7d4 -let _Greek_UPSILON : keysym = 0x7d5 -let _Greek_PHI : keysym = 0x7d6 -let _Greek_CHI : keysym = 0x7d7 -let _Greek_PSI : keysym = 0x7d8 -let _Greek_OMEGA : keysym = 0x7d9 -let _Greek_alpha : keysym = 0x7e1 -let _Greek_beta : keysym = 0x7e2 -let _Greek_gamma : keysym = 0x7e3 -let _Greek_delta : keysym = 0x7e4 -let _Greek_epsilon : keysym = 0x7e5 -let _Greek_zeta : keysym = 0x7e6 -let _Greek_eta : keysym = 0x7e7 -let _Greek_theta : keysym = 0x7e8 -let _Greek_iota : keysym = 0x7e9 -let _Greek_kappa : keysym = 0x7ea -let _Greek_lamda : keysym = 0x7eb -let _Greek_lambda : keysym = 0x7eb -let _Greek_mu : keysym = 0x7ec -let _Greek_nu : keysym = 0x7ed -let _Greek_xi : keysym = 0x7ee -let _Greek_omicron : keysym = 0x7ef -let _Greek_pi : keysym = 0x7f0 -let _Greek_rho : keysym = 0x7f1 -let _Greek_sigma : keysym = 0x7f2 -let _Greek_finalsmallsigma : keysym = 0x7f3 -let _Greek_tau : keysym = 0x7f4 -let _Greek_upsilon : keysym = 0x7f5 -let _Greek_phi : keysym = 0x7f6 -let _Greek_chi : keysym = 0x7f7 -let _Greek_psi : keysym = 0x7f8 -let _Greek_omega : keysym = 0x7f9 -let _Greek_switch : keysym = 0xFF7E -let _leftradical : keysym = 0x8a1 -let _topleftradical : keysym = 0x8a2 -let _horizconnector : keysym = 0x8a3 -let _topintegral : keysym = 0x8a4 -let _botintegral : keysym = 0x8a5 -let _vertconnector : keysym = 0x8a6 -let _topleftsqbracket : keysym = 0x8a7 -let _botleftsqbracket : keysym = 0x8a8 -let _toprightsqbracket : keysym = 0x8a9 -let _botrightsqbracket : keysym = 0x8aa -let _topleftparens : keysym = 0x8ab -let _botleftparens : keysym = 0x8ac -let _toprightparens : keysym = 0x8ad -let _botrightparens : keysym = 0x8ae -let _leftmiddlecurlybrace : keysym = 0x8af -let _rightmiddlecurlybrace : keysym = 0x8b0 -let _topleftsummation : keysym = 0x8b1 -let _botleftsummation : keysym = 0x8b2 -let _topvertsummationconnector : keysym = 0x8b3 -let _botvertsummationconnector : keysym = 0x8b4 -let _toprightsummation : keysym = 0x8b5 -let _botrightsummation : keysym = 0x8b6 -let _rightmiddlesummation : keysym = 0x8b7 -let _lessthanequal : keysym = 0x8bc -let _notequal : keysym = 0x8bd -let _greaterthanequal : keysym = 0x8be -let _integral : keysym = 0x8bf -let _therefore : keysym = 0x8c0 -let _variation : keysym = 0x8c1 -let _infinity : keysym = 0x8c2 -let _nabla : keysym = 0x8c5 -let _approximate : keysym = 0x8c8 -let _similarequal : keysym = 0x8c9 -let _ifonlyif : keysym = 0x8cd -let _implies : keysym = 0x8ce -let _identical : keysym = 0x8cf -let _radical : keysym = 0x8d6 -let _includedin : keysym = 0x8da -let _includes : keysym = 0x8db -let _intersection : keysym = 0x8dc -let _union : keysym = 0x8dd -let _logicaland : keysym = 0x8de -let _logicalor : keysym = 0x8df -let _partialderivative : keysym = 0x8ef -let _function : keysym = 0x8f6 -let _leftarrow : keysym = 0x8fb -let _uparrow : keysym = 0x8fc -let _rightarrow : keysym = 0x8fd -let _downarrow : keysym = 0x8fe -let _blank : keysym = 0x9df -let _soliddiamond : keysym = 0x9e0 -let _checkerboard : keysym = 0x9e1 -let _ht : keysym = 0x9e2 -let _ff : keysym = 0x9e3 -let _cr : keysym = 0x9e4 -let _lf : keysym = 0x9e5 -let _nl : keysym = 0x9e8 -let _vt : keysym = 0x9e9 -let _lowrightcorner : keysym = 0x9ea -let _uprightcorner : keysym = 0x9eb -let _upleftcorner : keysym = 0x9ec -let _lowleftcorner : keysym = 0x9ed -let _crossinglines : keysym = 0x9ee -let _horizlinescan1 : keysym = 0x9ef -let _horizlinescan3 : keysym = 0x9f0 -let _horizlinescan5 : keysym = 0x9f1 -let _horizlinescan7 : keysym = 0x9f2 -let _horizlinescan9 : keysym = 0x9f3 -let _leftt : keysym = 0x9f4 -let _rightt : keysym = 0x9f5 -let _bott : keysym = 0x9f6 -let _topt : keysym = 0x9f7 -let _vertbar : keysym = 0x9f8 -let _emspace : keysym = 0xaa1 -let _enspace : keysym = 0xaa2 -let _em3space : keysym = 0xaa3 -let _em4space : keysym = 0xaa4 -let _digitspace : keysym = 0xaa5 -let _punctspace : keysym = 0xaa6 -let _thinspace : keysym = 0xaa7 -let _hairspace : keysym = 0xaa8 -let _emdash : keysym = 0xaa9 -let _endash : keysym = 0xaaa -let _signifblank : keysym = 0xaac -let _ellipsis : keysym = 0xaae -let _doubbaselinedot : keysym = 0xaaf -let _onethird : keysym = 0xab0 -let _twothirds : keysym = 0xab1 -let _onefifth : keysym = 0xab2 -let _twofifths : keysym = 0xab3 -let _threefifths : keysym = 0xab4 -let _fourfifths : keysym = 0xab5 -let _onesixth : keysym = 0xab6 -let _fivesixths : keysym = 0xab7 -let _careof : keysym = 0xab8 -let _figdash : keysym = 0xabb -let _leftanglebracket : keysym = 0xabc -let _decimalpoint : keysym = 0xabd -let _rightanglebracket : keysym = 0xabe -let _marker : keysym = 0xabf -let _oneeighth : keysym = 0xac3 -let _threeeighths : keysym = 0xac4 -let _fiveeighths : keysym = 0xac5 -let _seveneighths : keysym = 0xac6 -let _trademark : keysym = 0xac9 -let _signaturemark : keysym = 0xaca -let _trademarkincircle : keysym = 0xacb -let _leftopentriangle : keysym = 0xacc -let _rightopentriangle : keysym = 0xacd -let _emopencircle : keysym = 0xace -let _emopenrectangle : keysym = 0xacf -let _leftsinglequotemark : keysym = 0xad0 -let _rightsinglequotemark : keysym = 0xad1 -let _leftdoublequotemark : keysym = 0xad2 -let _rightdoublequotemark : keysym = 0xad3 -let _prescription : keysym = 0xad4 -let _minutes : keysym = 0xad6 -let _seconds : keysym = 0xad7 -let _latincross : keysym = 0xad9 -let _hexagram : keysym = 0xada -let _filledrectbullet : keysym = 0xadb -let _filledlefttribullet : keysym = 0xadc -let _filledrighttribullet : keysym = 0xadd -let _emfilledcircle : keysym = 0xade -let _emfilledrect : keysym = 0xadf -let _enopencircbullet : keysym = 0xae0 -let _enopensquarebullet : keysym = 0xae1 -let _openrectbullet : keysym = 0xae2 -let _opentribulletup : keysym = 0xae3 -let _opentribulletdown : keysym = 0xae4 -let _openstar : keysym = 0xae5 -let _enfilledcircbullet : keysym = 0xae6 -let _enfilledsqbullet : keysym = 0xae7 -let _filledtribulletup : keysym = 0xae8 -let _filledtribulletdown : keysym = 0xae9 -let _leftpointer : keysym = 0xaea -let _rightpointer : keysym = 0xaeb -let _club : keysym = 0xaec -let _diamond : keysym = 0xaed -let _heart : keysym = 0xaee -let _maltesecross : keysym = 0xaf0 -let _dagger : keysym = 0xaf1 -let _doubledagger : keysym = 0xaf2 -let _checkmark : keysym = 0xaf3 -let _ballotcross : keysym = 0xaf4 -let _musicalsharp : keysym = 0xaf5 -let _musicalflat : keysym = 0xaf6 -let _malesymbol : keysym = 0xaf7 -let _femalesymbol : keysym = 0xaf8 -let _telephone : keysym = 0xaf9 -let _telephonerecorder : keysym = 0xafa -let _phonographcopyright : keysym = 0xafb -let _caret : keysym = 0xafc -let _singlelowquotemark : keysym = 0xafd -let _doublelowquotemark : keysym = 0xafe -let _cursor : keysym = 0xaff -let _leftcaret : keysym = 0xba3 -let _rightcaret : keysym = 0xba6 -let _downcaret : keysym = 0xba8 -let _upcaret : keysym = 0xba9 -let _overbar : keysym = 0xbc0 -let _downtack : keysym = 0xbc2 -let _upshoe : keysym = 0xbc3 -let _downstile : keysym = 0xbc4 -let _underbar : keysym = 0xbc6 -let _jot : keysym = 0xbca -let _quad : keysym = 0xbcc -let _uptack : keysym = 0xbce -let _circle : keysym = 0xbcf -let _upstile : keysym = 0xbd3 -let _downshoe : keysym = 0xbd6 -let _rightshoe : keysym = 0xbd8 -let _leftshoe : keysym = 0xbda -let _lefttack : keysym = 0xbdc -let _righttack : keysym = 0xbfc -let _hebrew_doublelowline : keysym = 0xcdf -let _hebrew_aleph : keysym = 0xce0 -let _hebrew_bet : keysym = 0xce1 -let _hebrew_beth : keysym = 0xce1 -let _hebrew_gimel : keysym = 0xce2 -let _hebrew_gimmel : keysym = 0xce2 -let _hebrew_dalet : keysym = 0xce3 -let _hebrew_daleth : keysym = 0xce3 -let _hebrew_he : keysym = 0xce4 -let _hebrew_waw : keysym = 0xce5 -let _hebrew_zain : keysym = 0xce6 -let _hebrew_zayin : keysym = 0xce6 -let _hebrew_chet : keysym = 0xce7 -let _hebrew_het : keysym = 0xce7 -let _hebrew_tet : keysym = 0xce8 -let _hebrew_teth : keysym = 0xce8 -let _hebrew_yod : keysym = 0xce9 -let _hebrew_finalkaph : keysym = 0xcea -let _hebrew_kaph : keysym = 0xceb -let _hebrew_lamed : keysym = 0xcec -let _hebrew_finalmem : keysym = 0xced -let _hebrew_mem : keysym = 0xcee -let _hebrew_finalnun : keysym = 0xcef -let _hebrew_nun : keysym = 0xcf0 -let _hebrew_samech : keysym = 0xcf1 -let _hebrew_samekh : keysym = 0xcf1 -let _hebrew_ayin : keysym = 0xcf2 -let _hebrew_finalpe : keysym = 0xcf3 -let _hebrew_pe : keysym = 0xcf4 -let _hebrew_finalzade : keysym = 0xcf5 -let _hebrew_finalzadi : keysym = 0xcf5 -let _hebrew_zade : keysym = 0xcf6 -let _hebrew_zadi : keysym = 0xcf6 -let _hebrew_qoph : keysym = 0xcf7 -let _hebrew_kuf : keysym = 0xcf7 -let _hebrew_resh : keysym = 0xcf8 -let _hebrew_shin : keysym = 0xcf9 -let _hebrew_taw : keysym = 0xcfa -let _hebrew_taf : keysym = 0xcfa -let _Hebrew_switch : keysym = 0xFF7E -let _Thai_kokai : keysym = 0xda1 -let _Thai_khokhai : keysym = 0xda2 -let _Thai_khokhuat : keysym = 0xda3 -let _Thai_khokhwai : keysym = 0xda4 -let _Thai_khokhon : keysym = 0xda5 -let _Thai_khorakhang : keysym = 0xda6 -let _Thai_ngongu : keysym = 0xda7 -let _Thai_chochan : keysym = 0xda8 -let _Thai_choching : keysym = 0xda9 -let _Thai_chochang : keysym = 0xdaa -let _Thai_soso : keysym = 0xdab -let _Thai_chochoe : keysym = 0xdac -let _Thai_yoying : keysym = 0xdad -let _Thai_dochada : keysym = 0xdae -let _Thai_topatak : keysym = 0xdaf -let _Thai_thothan : keysym = 0xdb0 -let _Thai_thonangmontho : keysym = 0xdb1 -let _Thai_thophuthao : keysym = 0xdb2 -let _Thai_nonen : keysym = 0xdb3 -let _Thai_dodek : keysym = 0xdb4 -let _Thai_totao : keysym = 0xdb5 -let _Thai_thothung : keysym = 0xdb6 -let _Thai_thothahan : keysym = 0xdb7 -let _Thai_thothong : keysym = 0xdb8 -let _Thai_nonu : keysym = 0xdb9 -let _Thai_bobaimai : keysym = 0xdba -let _Thai_popla : keysym = 0xdbb -let _Thai_phophung : keysym = 0xdbc -let _Thai_fofa : keysym = 0xdbd -let _Thai_phophan : keysym = 0xdbe -let _Thai_fofan : keysym = 0xdbf -let _Thai_phosamphao : keysym = 0xdc0 -let _Thai_moma : keysym = 0xdc1 -let _Thai_yoyak : keysym = 0xdc2 -let _Thai_rorua : keysym = 0xdc3 -let _Thai_ru : keysym = 0xdc4 -let _Thai_loling : keysym = 0xdc5 -let _Thai_lu : keysym = 0xdc6 -let _Thai_wowaen : keysym = 0xdc7 -let _Thai_sosala : keysym = 0xdc8 -let _Thai_sorusi : keysym = 0xdc9 -let _Thai_sosua : keysym = 0xdca -let _Thai_hohip : keysym = 0xdcb -let _Thai_lochula : keysym = 0xdcc -let _Thai_oang : keysym = 0xdcd -let _Thai_honokhuk : keysym = 0xdce -let _Thai_paiyannoi : keysym = 0xdcf -let _Thai_saraa : keysym = 0xdd0 -let _Thai_maihanakat : keysym = 0xdd1 -let _Thai_saraaa : keysym = 0xdd2 -let _Thai_saraam : keysym = 0xdd3 -let _Thai_sarai : keysym = 0xdd4 -let _Thai_saraii : keysym = 0xdd5 -let _Thai_saraue : keysym = 0xdd6 -let _Thai_sarauee : keysym = 0xdd7 -let _Thai_sarau : keysym = 0xdd8 -let _Thai_sarauu : keysym = 0xdd9 -let _Thai_phinthu : keysym = 0xdda -let _Thai_maihanakat_maitho : keysym = 0xdde -let _Thai_baht : keysym = 0xddf -let _Thai_sarae : keysym = 0xde0 -let _Thai_saraae : keysym = 0xde1 -let _Thai_sarao : keysym = 0xde2 -let _Thai_saraaimaimuan : keysym = 0xde3 -let _Thai_saraaimaimalai : keysym = 0xde4 -let _Thai_lakkhangyao : keysym = 0xde5 -let _Thai_maiyamok : keysym = 0xde6 -let _Thai_maitaikhu : keysym = 0xde7 -let _Thai_maiek : keysym = 0xde8 -let _Thai_maitho : keysym = 0xde9 -let _Thai_maitri : keysym = 0xdea -let _Thai_maichattawa : keysym = 0xdeb -let _Thai_thanthakhat : keysym = 0xdec -let _Thai_nikhahit : keysym = 0xded -let _Thai_leksun : keysym = 0xdf0 -let _Thai_leknung : keysym = 0xdf1 -let _Thai_leksong : keysym = 0xdf2 -let _Thai_leksam : keysym = 0xdf3 -let _Thai_leksi : keysym = 0xdf4 -let _Thai_lekha : keysym = 0xdf5 -let _Thai_lekhok : keysym = 0xdf6 -let _Thai_lekchet : keysym = 0xdf7 -let _Thai_lekpaet : keysym = 0xdf8 -let _Thai_lekkao : keysym = 0xdf9 -let _Hangul : keysym = 0xff31 -let _Hangul_Start : keysym = 0xff32 -let _Hangul_End : keysym = 0xff33 -let _Hangul_Hanja : keysym = 0xff34 -let _Hangul_Jamo : keysym = 0xff35 -let _Hangul_Romaja : keysym = 0xff36 -let _Hangul_Codeinput : keysym = 0xff37 -let _Hangul_Jeonja : keysym = 0xff38 -let _Hangul_Banja : keysym = 0xff39 -let _Hangul_PreHanja : keysym = 0xff3a -let _Hangul_PostHanja : keysym = 0xff3b -let _Hangul_SingleCandidate : keysym = 0xff3c -let _Hangul_MultipleCandidate : keysym = 0xff3d -let _Hangul_PreviousCandidate : keysym = 0xff3e -let _Hangul_Special : keysym = 0xff3f -let _Hangul_switch : keysym = 0xFF7E -let _Hangul_Kiyeog : keysym = 0xea1 -let _Hangul_SsangKiyeog : keysym = 0xea2 -let _Hangul_KiyeogSios : keysym = 0xea3 -let _Hangul_Nieun : keysym = 0xea4 -let _Hangul_NieunJieuj : keysym = 0xea5 -let _Hangul_NieunHieuh : keysym = 0xea6 -let _Hangul_Dikeud : keysym = 0xea7 -let _Hangul_SsangDikeud : keysym = 0xea8 -let _Hangul_Rieul : keysym = 0xea9 -let _Hangul_RieulKiyeog : keysym = 0xeaa -let _Hangul_RieulMieum : keysym = 0xeab -let _Hangul_RieulPieub : keysym = 0xeac -let _Hangul_RieulSios : keysym = 0xead -let _Hangul_RieulTieut : keysym = 0xeae -let _Hangul_RieulPhieuf : keysym = 0xeaf -let _Hangul_RieulHieuh : keysym = 0xeb0 -let _Hangul_Mieum : keysym = 0xeb1 -let _Hangul_Pieub : keysym = 0xeb2 -let _Hangul_SsangPieub : keysym = 0xeb3 -let _Hangul_PieubSios : keysym = 0xeb4 -let _Hangul_Sios : keysym = 0xeb5 -let _Hangul_SsangSios : keysym = 0xeb6 -let _Hangul_Ieung : keysym = 0xeb7 -let _Hangul_Jieuj : keysym = 0xeb8 -let _Hangul_SsangJieuj : keysym = 0xeb9 -let _Hangul_Cieuc : keysym = 0xeba -let _Hangul_Khieuq : keysym = 0xebb -let _Hangul_Tieut : keysym = 0xebc -let _Hangul_Phieuf : keysym = 0xebd -let _Hangul_Hieuh : keysym = 0xebe -let _Hangul_A : keysym = 0xebf -let _Hangul_AE : keysym = 0xec0 -let _Hangul_YA : keysym = 0xec1 -let _Hangul_YAE : keysym = 0xec2 -let _Hangul_EO : keysym = 0xec3 -let _Hangul_E : keysym = 0xec4 -let _Hangul_YEO : keysym = 0xec5 -let _Hangul_YE : keysym = 0xec6 -let _Hangul_O : keysym = 0xec7 -let _Hangul_WA : keysym = 0xec8 -let _Hangul_WAE : keysym = 0xec9 -let _Hangul_OE : keysym = 0xeca -let _Hangul_YO : keysym = 0xecb -let _Hangul_U : keysym = 0xecc -let _Hangul_WEO : keysym = 0xecd -let _Hangul_WE : keysym = 0xece -let _Hangul_WI : keysym = 0xecf -let _Hangul_YU : keysym = 0xed0 -let _Hangul_EU : keysym = 0xed1 -let _Hangul_YI : keysym = 0xed2 -let _Hangul_I : keysym = 0xed3 -let _Hangul_J_Kiyeog : keysym = 0xed4 -let _Hangul_J_SsangKiyeog : keysym = 0xed5 -let _Hangul_J_KiyeogSios : keysym = 0xed6 -let _Hangul_J_Nieun : keysym = 0xed7 -let _Hangul_J_NieunJieuj : keysym = 0xed8 -let _Hangul_J_NieunHieuh : keysym = 0xed9 -let _Hangul_J_Dikeud : keysym = 0xeda -let _Hangul_J_Rieul : keysym = 0xedb -let _Hangul_J_RieulKiyeog : keysym = 0xedc -let _Hangul_J_RieulMieum : keysym = 0xedd -let _Hangul_J_RieulPieub : keysym = 0xede -let _Hangul_J_RieulSios : keysym = 0xedf -let _Hangul_J_RieulTieut : keysym = 0xee0 -let _Hangul_J_RieulPhieuf : keysym = 0xee1 -let _Hangul_J_RieulHieuh : keysym = 0xee2 -let _Hangul_J_Mieum : keysym = 0xee3 -let _Hangul_J_Pieub : keysym = 0xee4 -let _Hangul_J_PieubSios : keysym = 0xee5 -let _Hangul_J_Sios : keysym = 0xee6 -let _Hangul_J_SsangSios : keysym = 0xee7 -let _Hangul_J_Ieung : keysym = 0xee8 -let _Hangul_J_Jieuj : keysym = 0xee9 -let _Hangul_J_Cieuc : keysym = 0xeea -let _Hangul_J_Khieuq : keysym = 0xeeb -let _Hangul_J_Tieut : keysym = 0xeec -let _Hangul_J_Phieuf : keysym = 0xeed -let _Hangul_J_Hieuh : keysym = 0xeee -let _Hangul_RieulYeorinHieuh : keysym = 0xeef -let _Hangul_SunkyeongeumMieum : keysym = 0xef0 -let _Hangul_SunkyeongeumPieub : keysym = 0xef1 -let _Hangul_PanSios : keysym = 0xef2 -let _Hangul_KkogjiDalrinIeung : keysym = 0xef3 -let _Hangul_SunkyeongeumPhieuf : keysym = 0xef4 -let _Hangul_YeorinHieuh : keysym = 0xef5 -let _Hangul_AraeA : keysym = 0xef6 -let _Hangul_AraeAE : keysym = 0xef7 -let _Hangul_J_PanSios : keysym = 0xef8 -let _Hangul_J_KkogjiDalrinIeung : keysym = 0xef9 -let _Hangul_J_YeorinHieuh : keysym = 0xefa -let _Korean_Won : keysym = 0xeff diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk_tags.var b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk_tags.var deleted file mode 100644 index 2c244a79c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gdk_tags.var +++ /dev/null @@ -1,163 +0,0 @@ -(* $Id$ *) - -type gdkEventType = "GDK_" - [ `NOTHING | `DELETE | `DESTROY | `EXPOSE | `MOTION_NOTIFY | `BUTTON_PRESS - | `TWO_BUTTON_PRESS "GDK_2BUTTON_PRESS" - | `THREE_BUTTON_PRESS "GDK_3BUTTON_PRESS" - | `BUTTON_RELEASE | `KEY_PRESS - | `KEY_RELEASE | `ENTER_NOTIFY | `LEAVE_NOTIFY | `FOCUS_CHANGE - | `CONFIGURE | `MAP | `UNMAP | `PROPERTY_NOTIFY | `SELECTION_CLEAR - | `SELECTION_REQUEST | `SELECTION_NOTIFY | `PROXIMITY_IN - | `PROXIMITY_OUT - | `DRAG_ENTER | `DRAG_LEAVE | `DRAG_MOTION | `DRAG_STATUS - | `DROP_START | `DROP_FINISHED | `CLIENT_EVENT | `VISIBILITY_NOTIFY - | `NO_EXPOSE ] - -type event_mask = "GDK_" - [ `EXPOSURE - | `POINTER_MOTION | `POINTER_MOTION_HINT - | `BUTTON_MOTION | `BUTTON1_MOTION | `BUTTON2_MOTION | `BUTTON3_MOTION - | `BUTTON_PRESS | `BUTTON_RELEASE - | `KEY_PRESS | `KEY_RELEASE - | `ENTER_NOTIFY | `LEAVE_NOTIFY | `FOCUS_CHANGE - | `STRUCTURE | `PROPERTY_CHANGE | `VISIBILITY_NOTIFY - | `PROXIMITY_IN | `PROXIMITY_OUT | `SUBSTRUCTURE - | `ALL_EVENTS ] "_MASK" - -type extension_events = "GDK_EXTENSION_EVENTS_" - [ `NONE | `ALL | `CURSOR ] - -type gdkVisibilityState = "GDK_VISIBILITY_" - [ `UNOBSCURED | `PARTIAL | `FULLY_OBSCURED ] - -type gdkInputSource = "GDK_SOURCE_" - [ `MOUSE | `PEN | `ERASER | `CURSOR ] - -type gdkCrossingMode = "GDK_CROSSING_" - [ `NORMAL | `GRAB | `UNGRAB ] - -type gdkNotifyType = "GDK_NOTIFY_" - [ `ANCESTOR | `VIRTUAL | `INFERIOR | `NONLINEAR | `NONLINEAR_VIRTUAL - | `UNKNOWN ] - -type gdkFillRule = "GDK_" - [ `EVEN_ODD_RULE | `WINDING_RULE ] - -type gdkOverlapType = "GDK_OVERLAP_RECTANGLE_" - [ `IN | `OUT | `PART ] - -type gdkFunction = "GDK_" - [ `COPY | `INVERT | `XOR ] - -type gdkFill = "GDK_" - [ `SOLID | `TILED | `STIPPLED | `OPAQUE_STIPPLED ] - -type gdkSubwindowMode = "GDK_" - [ `CLIP_BY_CHILDREN | `INCLUDE_INFERIORS ] - -type gdkLineStyle = "GDK_LINE_" - [ `SOLID | `ON_OFF_DASH | `DOUBLE_DASH ] - -type gdkCapStyle = "GDK_CAP_" - [ `NOT_LAST | `BUTT | `ROUND | `PROJECTING ] - -type gdkJoinStyle = "GDK_JOIN_" - [ `MITER | `ROUND | `BEVEL ] - -type gdkModifier = "GDK_" - [ `SHIFT | `LOCK | `CONTROL | `MOD1 | `MOD2 | `MOD3 | `MOD4 | `MOD5 - | `BUTTON1 | `BUTTON2 | `BUTTON3 | `BUTTON4 | `BUTTON5 ] "_MASK" - -type gdkImageType = "GDK_IMAGE_" - [ `NORMAL | `SHARED | `FASTEST ] - -type gdkVisualType = "GDK_VISUAL_" - [ `STATIC_GRAY | `GRAYSCALE | `STATIC_COLOR | `PSEUDO_COLOR - | `TRUE_COLOR | `DIRECT_COLOR ] - -type gdkFontType = "GDK_FONT_" - [ `FONT | `FONTSET ] - -type gdkDragAction = "GDK_ACTION_" - [ `DEFAULT | `COPY | `MOVE | `LINK | `PRIVATE | `ASK ] - -type gdkCursorType = "GDK_" [ - | `NUM_GLYPHS - | `X_CURSOR - | `ARROW - | `BASED_ARROW_DOWN - | `BASED_ARROW_UP - | `BOAT - | `BOGOSITY - | `BOTTOM_LEFT_CORNER - | `BOTTOM_RIGHT_CORNER - | `BOTTOM_SIDE - | `BOTTOM_TEE - | `BOX_SPIRAL - | `CENTER_PTR - | `CIRCLE - | `CLOCK - | `COFFEE_MUG - | `CROSS - | `CROSS_REVERSE - | `CROSSHAIR - | `DIAMOND_CROSS - | `DOT - | `DOTBOX - | `DOUBLE_ARROW - | `DRAFT_LARGE - | `DRAFT_SMALL - | `DRAPED_BOX - | `EXCHANGE - | `FLEUR - | `GOBBLER - | `GUMBY - | `HAND1 - | `HAND2 - | `HEART - | `ICON - | `IRON_CROSS - | `LEFT_PTR - | `LEFT_SIDE - | `LEFT_TEE - | `LEFTBUTTON - | `LL_ANGLE - | `LR_ANGLE - | `MAN - | `MIDDLEBUTTON - | `MOUSE - | `PENCIL - | `PIRATE - | `PLUS - | `QUESTION_ARROW - | `RIGHT_PTR - | `RIGHT_SIDE - | `RIGHT_TEE - | `RIGHTBUTTON - | `RTL_LOGO - | `SAILBOAT - | `SB_DOWN_ARROW - | `SB_H_DOUBLE_ARROW - | `SB_LEFT_ARROW - | `SB_RIGHT_ARROW - | `SB_UP_ARROW - | `SB_V_DOUBLE_ARROW - | `SHUTTLE - | `SIZING - | `SPIDER - | `SPRAYCAN - | `STAR - | `TARGET - | `TCROSS - | `TOP_LEFT_ARROW - | `TOP_LEFT_CORNER - | `TOP_RIGHT_CORNER - | `TOP_SIDE - | `TOP_TEE - | `TREK - | `UL_ANGLE - | `UMBRELLA - | `UR_ANGLE - | `WATCH - | `XTERM - ] diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glGtk.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glGtk.ml deleted file mode 100644 index c7020a4fd..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glGtk.ml +++ /dev/null @@ -1,86 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk - -type visual_options = [ - | `USE_GL - | `BUFFER_SIZE of int - | `LEVEL of int - | `RGBA - | `DOUBLEBUFFER - | `STEREO - | `AUX_BUFFERS of int - | `RED_SIZE of int - | `GREEN_SIZE of int - | `BLUE_SIZE of int - | `ALPHA_SIZE of int - | `DEPTH_SIZE of int - | `STENCIL_SIZE of int - | `ACCUM_GREEN_SIZE of int - | `ACCUM_ALPHA_SIZE of int -] - -type gl_area = [`widget|`drawing|`glarea] - -module Raw = struct - external create : - visual_options list -> share:[>`glarea] optobj -> gl_area obj - = "ml_gtk_gl_area_new" - - external swap_buffers : [>`glarea] obj -> unit - = "ml_gtk_gl_area_swapbuffers" - - external make_current : [>`glarea] obj -> bool - = "ml_gtk_gl_area_make_current" -end - -class area_signals obj = -object (connect) - inherit GObj.widget_signals obj - method display ~callback = - (new GObj.event_signals ~after obj)#expose ~callback: - begin fun ev -> - if GdkEvent.Expose.count ev = 0 then - if Raw.make_current obj then callback () - else prerr_endline "GlGtk-WARNING **: could not make current"; - true - end - method reshape ~callback = - (new GObj.event_signals ~after obj)#configure ~callback: - begin fun ev -> - if Raw.make_current obj then begin - callback ~width:(GdkEvent.Configure.width ev) - ~height:(GdkEvent.Configure.height ev) - end - else prerr_endline "GlGtk-WARNING **: could not make current"; - true - end - method realize ~callback = - let connect = new GObj.misc_signals ~after (GtkBase.Widget.coerce obj) in - connect#realize ~callback: - begin fun ev -> - if Raw.make_current obj then callback () - else prerr_endline "GlGtk-WARNING **: could not make current" - end -end - -class area obj = object (self) - inherit GObj.widget (obj : gl_area obj) - method as_area = obj - method event = new GObj.event_ops obj - method connect = new area_signals obj - method set_size = GtkMisc.DrawingArea.size obj - method swap_buffers () = Raw.swap_buffers obj - method make_current () = - if not (Raw.make_current obj) then - raise (Gl.GLerror "make_current") -end - -let area options ?share ?(width=0) ?(height=0) ?packing ?show () = - let share = - match share with Some (x : area) -> Some x#as_area | None -> None in - let w = Raw.create options ~share:(Gpointer.optboxed share) in - if width <> 0 || height <> 0 then GtkMisc.DrawingArea.size w ~width ~height; - GtkBase.Widget.add_events w [`EXPOSURE]; - GObj.pack_return (new area w) ~packing ~show diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glGtk.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glGtk.mli deleted file mode 100644 index 599f24a09..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glGtk.mli +++ /dev/null @@ -1,63 +0,0 @@ -(* $Id$ *) - -open Gtk -open GObj - -type visual_options = [ - `USE_GL - | `BUFFER_SIZE of int - | `LEVEL of int - | `RGBA - | `DOUBLEBUFFER - | `STEREO - | `AUX_BUFFERS of int - | `RED_SIZE of int - | `GREEN_SIZE of int - | `BLUE_SIZE of int - | `ALPHA_SIZE of int - | `DEPTH_SIZE of int - | `STENCIL_SIZE of int - | `ACCUM_GREEN_SIZE of int - | `ACCUM_ALPHA_SIZE of int -] -type gl_area = [`widget|`drawing|`glarea] - -module Raw : - sig - external create : - visual_options list -> share:[>`glarea] optobj -> gl_area obj - = "ml_gtk_gl_area_new" - external swap_buffers : [>`glarea] obj -> unit - = "ml_gtk_gl_area_swapbuffers" - external make_current : [>`glarea] obj -> bool - = "ml_gtk_gl_area_make_current" - end - -class area_signals : 'a obj -> - object - inherit widget_signals - constraint 'a = [>`glarea|`widget] - val obj : 'a obj - method display : callback:(unit -> unit) -> GtkSignal.id - method realize : callback:(unit -> unit) -> GtkSignal.id - method reshape : - callback:(width:int -> height:int -> unit) -> GtkSignal.id - end - -class area : gl_area obj -> - object - inherit widget - val obj : gl_area obj - method event : event_ops - method as_area : gl_area obj - method connect : area_signals - method make_current : unit -> unit - method set_size : width:int -> height:int -> unit - method swap_buffers : unit -> unit - end - -val area : - visual_options list -> - ?share:area -> - ?width:int -> - ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> area diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glib.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glib.ml deleted file mode 100644 index 2fd014099..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/glib.ml +++ /dev/null @@ -1,21 +0,0 @@ -(* $Id$ *) - -type warning_func = string -> unit - -external set_warning_handler : (string -> unit) -> warning_func - = "ml_g_set_warning_handler" - -type print_func = string -> unit - -external set_print_handler : (string -> unit) -> print_func - = "ml_g_set_print_handler" - -module Main = struct - type t - external create : bool -> t = "ml_g_main_new" - external iteration : bool -> bool = "ml_g_main_iteration" - external pending : unit -> bool = "ml_g_main_pending" - external is_running : t -> bool = "ml_g_main_is_running" - external quit : t -> unit = "ml_g_main_quit" - external destroy : t -> unit = "ml_g_main_destroy" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gpointer.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gpointer.ml deleted file mode 100644 index 7d28a1f9d..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gpointer.ml +++ /dev/null @@ -1,41 +0,0 @@ -(* $Id$ *) - -(* marked pointers *) -type 'a optaddr - -let optaddr : 'a option -> 'a optaddr = - function - None -> Obj.magic 0 - | Some x -> Obj.magic x - -(* naked pointers *) -type optstring - -external get_null : unit -> optstring = "ml_get_null" -let raw_null = get_null () - -let optstring : string option -> optstring = - function - None -> raw_null - | Some x -> Obj.magic x - -(* boxed pointers *) -type boxed -let boxed_null : boxed = Obj.magic (0, raw_null) - -type 'a optboxed - -let optboxed : 'a option -> 'a optboxed = - function - None -> Obj.magic boxed_null - | Some obj -> Obj.magic obj - -let may_box ~f obj : 'a optboxed = - match obj with - None -> Obj.magic boxed_null - | Some obj -> Obj.magic (f obj : 'a) - -(* Exceptions *) - -exception Null -let _ = Callback.register_exception "null_pointer" Null diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtk.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtk.ml deleted file mode 100644 index 0c7892e6f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtk.ml +++ /dev/null @@ -1,158 +0,0 @@ -(* $Id$ *) - -exception Error of string -exception Warning of string -exception Cannot_cast of string * string -type 'a obj -type 'a optobj = 'a obj Gpointer.optboxed -type clampf = float - -module Tags = struct - type arrow_type = [ `UP|`DOWN|`LEFT|`RIGHT ] - type attach_options = [ `EXPAND|`SHRINK|`FILL ] - type direction_type = [ `TAB_FORWARD|`TAB_BACKWARD|`UP|`DOWN|`LEFT|`RIGHT ] - type justification = [ `LEFT|`RIGHT|`CENTER|`FILL ] - type match_type = [ `ALL|`ALL_TAIL|`HEAD|`TAIL|`EXACT|`LAST ] - type metric_type = [ `PIXELS|`INCHES|`CENTIMETERS ] - type orientation = [ `HORIZONTAL|`VERTICAL ] - type corner_type = [ `TOP_LEFT|`BOTTOM_LEFT|`TOP_RIGHT|`BOTTOM_RIGHT ] - type pack_type = [ `START|`END ] - type path_type = [ `WIDGET|`WIDGET_CLASS|`CLASS ] - type policy_type = [ `ALWAYS|`AUTOMATIC|`NEVER ] - type position = [ `LEFT|`RIGHT|`TOP|`BOTTOM ] - type preview_type = [ `COLOR|`GRAYSCALE ] - type relief_style = [ `NORMAL|`HALF|`NONE ] - type resize_mode = [ `PARENT|`QUEUE|`IMMEDIATE ] - type signal_run_type = [ `FIRST|`LAST|`BOTH|`NO_RECURSE|`ACTION|`NO_HOOKS ] - type scroll_type = - [ `NONE|`STEP_FORWARD|`STEP_BACKWARD|`PAGE_BACKWARD|`PAGE_FORWARD|`JUMP ] - type selection_mode = [ `SINGLE|`BROWSE|`MULTIPLE|`EXTENDED ] - type shadow_type = [ `NONE|`IN|`OUT|`ETCHED_IN|`ETCHED_OUT ] - type state_type = [ `NORMAL|`ACTIVE|`PRELIGHT|`SELECTED|`INSENSITIVE ] - type submenu_direction = [ `LEFT|`RIGHT ] - type submenu_placement = [ `TOP_BOTTOM|`LEFT_RIGHT ] - type toolbar_style = [ `ICONS|`TEXT|`BOTH ] - type trough_type = [ `NONE|`START|`END|`JUMP ] - type update_type = [ `CONTINUOUS|`DISCONTINUOUS|`DELAYED ] - type visibility = [ `NONE|`PARTIAL|`FULL ] - type window_position = [ `NONE|`CENTER|`MOUSE|`CENTER_ALWAYS ] - type window_type = [ `TOPLEVEL|`DIALOG|`POPUP ] - type sort_type = [ `ASCENDING|`DESCENDING ] - type fundamental_type = - [ `INVALID|`NONE|`CHAR|`BOOL|`INT|`UINT|`LONG|`ULONG|`FLOAT|`DOUBLE - |`STRING|`ENUM|`FLAGS|`BOXED|`FOREIGN|`CALLBACK|`ARGS|`POINTER - |`SIGNAL|`C_CALLBACK|`OBJECT ] - - type accel_flag = [ `VISIBLE|`SIGNAL_VISIBLE|`LOCKED ] - type button_box_style = [ `DEFAULT_STYLE|`SPREAD|`EDGE|`START|`END ] - type expand_type = [ `X|`Y|`BOTH|`NONE ] - type packer_options = [ `PACK_EXPAND|`FILL_X|`FILL_Y ] - type side_type = [ `TOP|`BOTTOM|`LEFT|`RIGHT ] - type anchor_type = [ `CENTER|`NORTH|`NW|`NE|`SOUTH|`SW|`SE|`WEST|`EAST ] - type update_policy = [ `ALWAYS|`IF_VALID|`SNAP_TO_TICKS ] - type cell_type = [ `EMPTY|`TEXT|`PIXMAP|`PIXTEXT|`WIDGET ] - type button_action = [ `SELECTS|`DRAGS|`EXPANDS ] - type calendar_display_options = - [ `SHOW_HEADING|`SHOW_DAY_NAMES|`NO_MONTH_CHANGE|`SHOW_WEEK_NUMBERS - |`WEEK_START_MONDAY ] - type spin_button_update_policy = [ `ALWAYS|`IF_VALID ] - type spin_type = - [ `STEP_FORWARD|`STEP_BACKWARD|`PAGE_FORWARD|`PAGE_BACKWARD - |`HOME|`END|`USER_DEFINED of float ] - type progress_bar_style = [ `CONTINUOUS|`DISCRETE ] - type progress_bar_orientation = - [ `LEFT_TO_RIGHT|`RIGHT_TO_LEFT|`BOTTOM_TO_TOP|`TOP_TO_BOTTOM ] - type dest_defaults = [ `MOTION|`HIGHLIGHT|`DROP|`ALL ] - type target_flags = [ `SAME_APP|`SAME_WIDGET ] - type font_metric_type = [ `PIXELS|`POINTS ] - type font_type = [ `BITMAP|`SCALABLE|`SCALABLE_BITMAP|`ALL ] - type font_filter_type = [ `BASE|`USER ] -end -open Tags - -type gtk_type -type gtk_class - -type accel_group - -type style -type 'a group = 'a obj option - -type statusbar_message -type statusbar_context - -type color = { red: float; green: float; blue: float; opacity: float } -type rectangle = { x: int; y: int; width: int; height: int } -type target_entry = { target: string; flags: target_flags list; info: int } - -type data = [`data] -type adjustment = [`data|`adjustment] -type tooltips = [`data|`tooltips] -type widget = [`widget] -type container = [`widget|`container] -type alignment = [`widget|`container|`bin|`alignment] -type event_box = [`widget|`container|`bin|`eventbox] -type frame = [`widget|`container|`bin|`frame] -type aspect_frame = [`widget|`container|`bin|`frame|`aspect] -type handle_box = [`widget|`container|`bin|`handlebox] -type invisible = [`widget|`container|`bin|`invisible] -type item = [`widget|`container|`bin|`item] -type list_item = [`widget|`container|`bin|`item|`listitem] -type menu_item = [`widget|`container|`bin|`item|`menuitem] -type check_menu_item = [`widget|`container|`bin|`item|`menuitem|`checkmenuitem] -type radio_menu_item = - [`widget|`container|`bin|`item|`menuitem|`checkmenuitem|`radiomenuitem] -type tree_item = [`widget|`container|`bin|`item|`treeitem] -type viewport = [`widget|`container|`bin|`viewport] -type window = [`widget|`container|`bin|`window] -type color_selection_dialog = [`widget|`container|`window|`colorseldialog] -type dialog = [`widget|`container|`bin|`window|`dialog] -type input_dialog = [`widget|`container|`bin|`window|`dialog|`inputdialog] -type file_selection = [`widget|`container|`bin|`window|`filesel] -type font_selection_dialog = [`widget|`container|`bin|`window|`fontseldialog] -type plug = [`widget|`container|`bin|`window|`plug] -type box = [`widget|`container|`box] -type button_box = [`widget|`container|`box|`bbox] -type gamma_curve = [`widget|`container|`bbox|`gamma] -type color_selection = [`widget|`container|`box|`colorsel] -type combo = [`widget|`container|`box|`combo] -type statusbar = [`widget|`container|`box|`statusbar] -type button = [`widget|`container|`button] -type toggle_button = [`widget|`container|`button|`toggle] -type radio_button = [`widget|`container|`button|`toggle|`radio] -type option_menu = [`widget|`container|`button|`optionmenu] -type clist = [`widget|`container|`clist] -type fixed = [`widget|`container|`fixed] -type layout = [`widget|`container|`layout] -type liste = [`widget|`container|`list] -type menu_shell = [`widget|`container|`menushell] -type menu = [`widget|`container|`menushell|`menu] -type menu_bar = [`widget|`container|`menushell|`menubar] -type notebook = [`widget|`container|`notebook] -type font_selection = [`widget|`container|`notebook|`fontsel] -type packer = [`widget|`container|`packer] -type paned = [`widget|`container|`paned] -type scrolled_window = [`widget|`container|`scrolled] -type socket = [`widget|`container|`socket] -type table = [`widget|`container|`table] -type toolbar = [`widget|`container|`toolbar] -type tree = [`widget|`container|`tree] -type calendar = [`widget|`calendar] -type drawing_area = [`widget|`drawing] -type editable = [`widget|`editable] -type entry = [`widget|`editable|`entry] -type spin_button = [`widget|`editable|`entry|`spinbutton] -type text = [`widget|`editable|`text] -type misc = [`widget|`misc] -type arrow = [`widget|`misc|`arrow] -type image = [`widget|`misc|`image] -type label = [`widget|`misc|`label] -type tips_query = [`widget|`misc|`label|`tipsquery] -type pixmap = [`widget|`misc|`pixmap] -type progress = [`widget|`progress] -type progress_bar = [`widget|`progress|`progressbar] -type range = [`widget|`range] -type scale = [`widget|`range|`scale] -type scrollbar = [`widget|`range|`scrollbar] -type ruler = [`widget|`ruler] -type separator = [`widget|`separator] diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkArgv.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkArgv.ml deleted file mode 100644 index 5e60c8d5e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkArgv.ml +++ /dev/null @@ -1,106 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk - -type data = - | NONE - | CHAR of char - | BOOL of bool - | INT of int - | FLOAT of float - | STRING of string option - | OBJECT of unit obj option - | POINTER of Gpointer.boxed option - -type 'a result = - [ `NONE - | `CHAR of char | `BOOL of bool | `INT of int - | `UINT of int32 | `LONG of nativeint | `ULONG of nativeint - | `FLOAT of float | `DOUBLE of float - | `STRING of string option | `ENUM of int | `FLAGS of int32 - | `BOXED of Gpointer.boxed option - | `POINTER of Gpointer.boxed option - | `OBJECT of 'a obj option ] - -module Arg = struct - type t - external shift : t -> pos:int -> t = "ml_gtk_arg_shift" - external get_type : t -> gtk_type = "ml_gtk_arg_get_type" - external get : t -> data = "ml_gtk_arg_get" - external set_retloc : t -> 'a result -> unit = "ml_gtk_arg_set_retloc" - external get_pointer : t -> Gpointer.boxed = "ml_gtk_arg_get_pointer" - external get_nativeint : t -> nativeint = "ml_gtk_arg_get_nativeint" - - (* Safely get an argument *) - (* - external get_char : t -> char = "ml_gtk_arg_get_char" - external get_bool : t -> bool = "ml_gtk_arg_get_bool" - external get_int : t -> int = "ml_gtk_arg_get_int" - external get_float : t -> float = "ml_gtk_arg_get_float" - external get_string : t -> string option = "ml_gtk_arg_get_string" - external get_object : t -> unit obj option = "ml_gtk_arg_get_object" - *) - (* Safely set a result - Beware: this is not the opposite of get, arguments and results - are two different ways to use GtkArg. *) - (* - external set_char : t -> char -> unit = "ml_gtk_arg_set_char" - external set_bool : t -> bool -> unit = "ml_gtk_arg_set_bool" - external set_int : t -> int -> unit = "ml_gtk_arg_set_int" - external set_nativeint : t -> nativeint -> unit = "ml_gtk_arg_set_nativeint" - external set_float : t -> float -> unit = "ml_gtk_arg_set_float" - external set_string : t -> string -> unit = "ml_gtk_arg_set_string" - external set_pointer : t -> Gpointer.boxed -> unit = "ml_gtk_arg_set_pointer" - external set_object : t -> 'a obj -> unit = "ml_gtk_arg_set_object" - *) -end - -open Arg -type raw_obj -type t = { referent: raw_obj; nargs: int; args: Arg.t } -let nth arg ~pos = - if pos < 0 || pos >= arg.nargs then invalid_arg "GtkArg.Vect.nth"; - shift arg.args ~pos -let result arg = - if arg.nargs < 0 then invalid_arg "GtkArgv.result"; - shift arg.args ~pos:arg.nargs -external wrap_object : raw_obj -> unit obj = "Val_GtkObject" -let referent arg = - if arg.referent == Obj.magic (-1) then invalid_arg "GtkArgv.referent"; - wrap_object arg.referent -let get_result_type arg = get_type (result arg) -let get_type arg ~pos = get_type (nth arg ~pos) -let get arg ~pos = get (nth arg ~pos) -let set_result arg = set_retloc (result arg) - -let get_args arg = - let rec loop args ~pos = - if pos < 0 then args - else loop (get arg ~pos :: args) ~pos:(pos-1) - in loop [] ~pos:(arg.nargs - 1) - -let get_pointer arg ~pos = get_pointer (nth arg ~pos) -let get_nativeint arg ~pos = get_nativeint (nth arg ~pos) - -(* -let get_char arg ~pos = get_char (nth arg ~pos) -let get_bool arg ~pos = get_bool (nth arg ~pos) -let get_int arg ~pos = get_int (nth arg ~pos) -let get_float arg ~pos = get_float (nth arg ~pos) -let get_string arg ~pos = get_string (nth arg ~pos) -let get_object arg ~pos = get_object (nth arg ~pos) -let set_result_char arg = set_char (result arg) -let set_result_bool arg = set_bool (result arg) -let set_result_int arg = set_int (result arg) -let set_result_nativeint arg = set_nativeint (result arg) -let set_result_float arg = set_float (result arg) -let set_result_string arg = set_string (result arg) -let set_result_pointer arg = set_pointer (result arg) -let set_result_object arg = set_object (result arg) -*) - -external string_at_pointer : ?pos:int -> ?len:int -> Gpointer.boxed -> string - = "ml_string_at_pointer" -external int_at_pointer : Gpointer.boxed -> int - = "ml_int_at_pointer" diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkBase.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkBase.ml deleted file mode 100644 index 3b1a00fdf..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkBase.ml +++ /dev/null @@ -1,414 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags - -module Type = struct - external name : gtk_type -> string = "ml_gtk_type_name" - external from_name : string -> gtk_type = "ml_gtk_type_from_name" - external parent : gtk_type -> gtk_type = "ml_gtk_type_parent" - external get_class : gtk_type -> gtk_class = "ml_gtk_type_class" - external parent_class : gtk_type -> gtk_class = "ml_gtk_type_parent_class" - external is_a : gtk_type -> gtk_type -> bool = "ml_gtk_type_is_a" - external fundamental : gtk_type -> fundamental_type - = "ml_gtk_type_fundamental" -end - -module Object = struct - external get_type : 'a obj -> gtk_type = "ml_gtk_object_type" - let is_a obj name = - Type.is_a (get_type obj) (Type.from_name name) - external destroy : 'a obj -> unit = "ml_gtk_object_destroy" - external coerce : 'a obj -> unit obj = "%identity" - external unsafe_cast : 'a obj -> 'b obj = "%identity" - let try_cast w name = - if is_a w name then unsafe_cast w - else raise (Cannot_cast(Type.name(get_type w), name)) - let get_id (obj : 'a obj) : int = (snd (Obj.magic obj) lor 0) - module Signals = struct - open GtkSignal - let destroy : (_,_) t = - { name = "destroy"; marshaller = marshal_unit } - end -end - -module Widget = struct - let cast w : widget obj = Object.try_cast w "GtkWidget" - external coerce : [>`widget] obj -> widget obj = "%identity" - external unparent : [>`widget] obj -> unit = "ml_gtk_widget_unparent" - external show : [>`widget] obj -> unit = "ml_gtk_widget_show" - external show_now : [>`widget] obj -> unit = "ml_gtk_widget_show_now" - external show_all : [>`widget] obj -> unit = "ml_gtk_widget_show_all" - external hide : [>`widget] obj -> unit = "ml_gtk_widget_hide" - external hide_all : [>`widget] obj -> unit = "ml_gtk_widget_hide_all" - external map : [>`widget] obj -> unit = "ml_gtk_widget_map" - external unmap : [>`widget] obj -> unit = "ml_gtk_widget_unmap" - external realize : [>`widget] obj -> unit = "ml_gtk_widget_realize" - external unrealize : [>`widget] obj -> unit = "ml_gtk_widget_unrealize" - external queue_draw : [>`widget] obj -> unit = "ml_gtk_widget_queue_draw" - external queue_resize : [>`widget] obj -> unit = "ml_gtk_widget_queue_resize" - external draw : [>`widget] obj -> Gdk.Rectangle.t option -> unit - = "ml_gtk_widget_draw" - external draw_focus : [>`widget] obj -> unit - = "ml_gtk_widget_draw_focus" - external draw_default : [>`widget] obj -> unit - = "ml_gtk_widget_draw_default" - external event : [>`widget] obj -> 'a Gdk.event -> bool - = "ml_gtk_widget_event" - external activate : [>`widget] obj -> bool - = "ml_gtk_widget_activate" - external reparent : [>`widget] obj -> [>`widget] obj -> unit - = "ml_gtk_widget_reparent" - external popup : [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_widget_popup" - external intersect : - [>`widget] obj -> Gdk.Rectangle.t -> Gdk.Rectangle.t option - = "ml_gtk_widget_intersect" - external set_can_default : [>`widget] obj -> bool -> unit - = "ml_gtk_widget_set_can_default" - external set_can_focus : [>`widget] obj -> bool -> unit - = "ml_gtk_widget_set_can_focus" - external grab_focus : [>`widget] obj -> unit - = "ml_gtk_widget_grab_focus" - external grab_default : [>`widget] obj -> unit - = "ml_gtk_widget_grab_default" - external set_name : [>`widget] obj -> string -> unit - = "ml_gtk_widget_set_name" - external get_name : [>`widget] obj -> string - = "ml_gtk_widget_get_name" - external set_state : [>`widget] obj -> state_type -> unit - = "ml_gtk_widget_set_state" - external set_sensitive : [>`widget] obj -> bool -> unit - = "ml_gtk_widget_set_sensitive" - external set_uposition : [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_widget_set_uposition" - external set_usize : [>`widget] obj -> width:int -> height:int -> unit - = "ml_gtk_widget_set_usize" - external add_events : [>`widget] obj -> Gdk.Tags.event_mask list -> unit - = "ml_gtk_widget_add_events" - external set_events : [>`widget] obj -> Gdk.Tags.event_mask list -> unit - = "ml_gtk_widget_set_events" - external set_extension_events : - [>`widget] obj -> Gdk.Tags.extension_events -> unit - = "ml_gtk_widget_set_extension_events" - external get_toplevel : [>`widget] obj -> widget obj - = "ml_gtk_widget_get_toplevel" - external get_ancestor : [>`widget] obj -> gtk_type -> widget obj - = "ml_gtk_widget_get_ancestor" - external get_colormap : [>`widget] obj -> Gdk.colormap - = "ml_gtk_widget_get_colormap" - external get_visual : [>`widget] obj -> Gdk.visual - = "ml_gtk_widget_get_visual" - external get_pointer : [>`widget] obj -> int * int - = "ml_gtk_widget_get_pointer" - external is_ancestor : [>`widget] obj -> [>`widget] obj -> bool - = "ml_gtk_widget_is_ancestor" - external set_style : [>`widget] obj -> style -> unit - = "ml_gtk_widget_set_style" - external set_rc_style : [>`widget] obj -> unit - = "ml_gtk_widget_set_rc_style" - external ensure_style : [>`widget] obj -> unit - = "ml_gtk_widget_ensure_style" - external get_style : [>`widget] obj -> style - = "ml_gtk_widget_get_style" - external restore_default_style : [>`widget] obj -> unit - = "ml_gtk_widget_restore_default_style" - external add_accelerator : - ([>`widget] as 'a) obj -> sgn:('a,unit->unit) GtkSignal.t -> - accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> - ?flags:accel_flag list -> unit - = "ml_gtk_widget_add_accelerator_bc" "ml_gtk_widget_add_accelerator" - external remove_accelerator : - [>`widget] obj -> accel_group -> - key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> unit - = "ml_gtk_widget_remove_accelerator" - external lock_accelerators : [>`widget] obj -> unit - = "ml_gtk_widget_lock_accelerators" - external unlock_accelerators : [>`widget] obj -> unit - = "ml_gtk_widget_unlock_accelerators" - external accelerators_locked : [>`widget] obj -> bool - = "ml_gtk_widget_accelerators_locked" - external window : [>`widget] obj -> Gdk.window - = "ml_GtkWidget_window" - external visible : [>`widget] obj -> bool - = "ml_GTK_WIDGET_VISIBLE" - external has_focus : [>`widget] obj -> bool - = "ml_GTK_WIDGET_HAS_FOCUS" - external parent : [>`widget] obj -> widget obj - = "ml_gtk_widget_parent" - external set_app_paintable : [>`widget] obj -> bool -> unit - = "ml_gtk_widget_set_app_paintable" - external allocation : [>`widget] obj -> rectangle - = "ml_gtk_widget_allocation" - external set_colormap : [>`widget] obj -> Gdk.colormap -> unit - = "ml_gtk_widget_set_colormap" - external set_visual : [>`widget] obj -> Gdk.visual -> unit - = "ml_gtk_widget_set_visual" - external set_default_colormap : Gdk.colormap -> unit - = "ml_gtk_widget_set_default_colormap" - external set_default_visual : Gdk.visual -> unit - = "ml_gtk_widget_set_default_visual" - external get_default_colormap : unit -> Gdk.colormap - = "ml_gtk_widget_get_default_colormap" - external get_default_visual : unit -> Gdk.visual - = "ml_gtk_widget_get_default_visual" - external push_colormap : Gdk.colormap -> unit - = "ml_gtk_widget_push_colormap" - external push_visual : Gdk.visual -> unit - = "ml_gtk_widget_push_visual" - external pop_colormap : unit -> unit - = "ml_gtk_widget_pop_colormap" - external pop_visual : unit -> unit - = "ml_gtk_widget_pop_visual" - module Signals = struct - open GtkArgv - open GtkSignal - let marshal f _ = function - | OBJECT(Some p) :: _ -> f (cast p) - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal" - let marshal_opt f _ = function - | OBJECT(Some obj) :: _ -> f (Some (cast obj)) - | OBJECT None :: _ -> f None - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_opt" - let marshal_style f _ = function - | POINTER p :: _ -> f (Obj.magic p : Gtk.style option) - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_opt" - let marshal_drag1 f _ = function - | POINTER(Some p) :: _ -> f (Obj.magic p : Gdk.drag_context) - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag1" - let marshal_drag2 f _ = function - | POINTER(Some p) :: INT time :: _ -> - f (Obj.magic p : Gdk.drag_context) ~time - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag2" - let marshal_drag3 f argv = function - | POINTER(Some p) :: INT x :: INT y :: INT time :: _ -> - let res = f (Obj.magic p : Gdk.drag_context) ~x ~y ~time - in GtkArgv.set_result argv (`BOOL res) - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag3" - let show : ([>`widget],_) t = - { name = "show"; marshaller = marshal_unit } - let hide : ([>`widget],_) t = - { name = "hide"; marshaller = marshal_unit } - let map : ([>`widget],_) t = - { name = "map"; marshaller = marshal_unit } - let unmap : ([>`widget],_) t = - { name = "unmap"; marshaller = marshal_unit } - let realize : ([>`widget],_) t = - { name = "realize"; marshaller = marshal_unit } - let draw : ([>`widget],_) t = - let marshal f _ = function - | POINTER(Some p) :: _ -> f (Obj.magic p : Gdk.Rectangle.t) - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_draw" - in { name = "draw"; marshaller = marshal } - let draw_focus : ([>`widget],_) t = - { name = "draw_focus"; marshaller = marshal_unit } - let draw_default : ([>`widget],_) t = - { name = "draw_default"; marshaller = marshal_unit } - external val_state : int -> state_type = "ml_Val_state_type" - let state_changed : ([>`widget],_) t = - let marshal f = marshal_int (fun x -> f (val_state x)) in - { name = "state_changed"; marshaller = marshal } - let parent_set : ([>`widget],_) t = - { name = "parent_set"; marshaller = marshal_opt } - let style_set : ([>`widget],_) t = - { name = "style_set"; marshaller = marshal_style } - let drag_begin : ([>`widget],_) t = - { name = "drag_begin"; marshaller = marshal_drag1 } - let drag_end : ([>`widget],_) t = - { name = "drag_end"; marshaller = marshal_drag1 } - let drag_data_delete : ([>`widget],_) t = - { name = "drag_data_delete"; marshaller = marshal_drag1 } - let drag_leave : ([>`widget],_) t = - { name = "drag_leave"; marshaller = marshal_drag2 } - let drag_motion : ([>`widget],_) t = - { name = "drag_motion"; marshaller = marshal_drag3 } - let drag_drop : ([>`widget],_) t = - { name = "drag_drop"; marshaller = marshal_drag3 } - let drag_data_get : ([>`widget],_) t = - let marshal f argv = function - | POINTER(Some p) :: POINTER(Some q) :: INT info :: INT time :: _ -> - f (Obj.magic p : Gdk.drag_context) - (Obj.magic q : GtkData.Selection.t) - ~info - ~time - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag_data_get" - in - { name = "drag_data_get"; marshaller = marshal } - let drag_data_received : ([>`widget],_) t = - let marshal f _ = function - | POINTER(Some p) :: INT x :: INT y :: POINTER(Some q) :: - INT info :: INT time :: _ -> - f (Obj.magic p : Gdk.drag_context) ~x ~y - (Obj.magic q : GtkData.Selection.t) - ~info ~time - | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag_data_received" - in - { name = "drag_data_received"; marshaller = marshal } - - module Event = struct - let marshal f argv = function - | [POINTER(Some p)] -> - let ev = GdkEvent.unsafe_copy p in - GtkArgv.set_result argv (`BOOL(f ev)) - | _ -> invalid_arg "GtkBase.Widget.Event.marshal" - let any : ([>`widget], Gdk.Tags.event_type Gdk.event -> bool) t = - { name = "event"; marshaller = marshal } - let button_press : ([>`widget], GdkEvent.Button.t -> bool) t = - { name = "button_press_event"; marshaller = marshal } - let button_release : ([>`widget], GdkEvent.Button.t -> bool) t = - { name = "button_release_event"; marshaller = marshal } - let motion_notify : ([>`widget], GdkEvent.Motion.t -> bool) t = - { name = "motion_notify_event"; marshaller = marshal } - let delete : ([>`widget], [`DELETE] Gdk.event -> bool) t = - { name = "delete_event"; marshaller = marshal } - let destroy : ([>`widget], [`DESTROY] Gdk.event -> bool) t = - { name = "destroy_event"; marshaller = marshal } - let expose : ([>`widget], GdkEvent.Expose.t -> bool) t = - { name = "expose_event"; marshaller = marshal } - let key_press : ([>`widget], GdkEvent.Key.t -> bool) t = - { name = "key_press_event"; marshaller = marshal } - let key_release : ([>`widget], GdkEvent.Key.t -> bool) t = - { name = "key_release_event"; marshaller = marshal } - let enter_notify : ([>`widget], GdkEvent.Crossing.t -> bool) t = - { name = "enter_notify_event"; marshaller = marshal } - let leave_notify : ([>`widget], GdkEvent.Crossing.t -> bool) t = - { name = "leave_notify_event"; marshaller = marshal } - let configure : ([>`widget], GdkEvent.Configure.t -> bool) t = - { name = "configure_event"; marshaller = marshal } - let focus_in : ([>`widget], GdkEvent.Focus.t -> bool) t = - { name = "focus_in_event"; marshaller = marshal } - let focus_out : ([>`widget], GdkEvent.Focus.t -> bool) t = - { name = "focus_out_event"; marshaller = marshal } - let map : ([>`widget], [`MAP] Gdk.event -> bool) t = - { name = "map_event"; marshaller = marshal } - let unmap : ([>`widget], [`UNMAP] Gdk.event -> bool) t = - { name = "unmap_event"; marshaller = marshal } - let property_notify : ([>`widget], GdkEvent.Property.t -> bool) t = - { name = "property_notify_event"; marshaller = marshal } - let selection_clear : ([>`widget], GdkEvent.Selection.t -> bool) t = - { name = "selection_clear_event"; marshaller = marshal } - let selection_request : ([>`widget], GdkEvent.Selection.t -> bool) t = - { name = "selection_request_event"; marshaller = marshal } - let selection_notify : ([>`widget], GdkEvent.Selection.t -> bool) t = - { name = "selection_notify_event"; marshaller = marshal } - let proximity_in : ([>`widget], GdkEvent.Proximity.t -> bool) t = - { name = "proximity_in_event"; marshaller = marshal } - let proximity_out : ([>`widget], GdkEvent.Proximity.t -> bool) t = - { name = "proximity_out_event"; marshaller = marshal } - end - end -end - -module Container = struct - let cast w : container obj = Object.try_cast w "GtkContainer" - external coerce : [>`container] obj -> container obj = "%identity" - external set_border_width : [>`container] obj -> int -> unit - = "ml_gtk_container_set_border_width" - external set_resize_mode : [>`container] obj -> resize_mode -> unit - = "ml_gtk_container_set_resize_mode" - external add : [>`container] obj -> [>`widget] obj -> unit - = "ml_gtk_container_add" - external remove : [>`container] obj -> [>`widget] obj -> unit - = "ml_gtk_container_remove" - let set ?border_width ?(width = -2) ?(height = -2) w = - may border_width ~f:(set_border_width w); - if width <> -2 || height <> -2 then - Widget.set_usize w ?width ?height - external foreach : [>`container] obj -> f:(widget obj-> unit) -> unit - = "ml_gtk_container_foreach" - let children w = - let l = ref [] in - foreach w ~f:(fun c -> l := c :: !l); - List.rev !l - external focus : [>`container] obj -> direction_type -> bool - = "ml_gtk_container_focus" - (* Called by Widget.grab_focus *) - external set_focus_child : [>`container] obj -> [>`widget] optobj -> unit - = "ml_gtk_container_set_focus_child" - external set_focus_vadjustment : - [>`container] obj -> [>`adjustment] optobj -> unit - = "ml_gtk_container_set_focus_vadjustment" - external set_focus_hadjustment : - [>`container] obj -> [>`adjustment] optobj -> unit - = "ml_gtk_container_set_focus_hadjustment" - module Signals = struct - open GtkSignal - let add : ([>`container],_) t = - { name = "add"; marshaller = Widget.Signals.marshal } - let remove : ([>`container],_) t = - { name = "remove"; marshaller = Widget.Signals.marshal } - let need_resize : ([>`container],_) t = - let marshal f argv _ = GtkArgv.set_result argv (`BOOL(f ())) in - { name = "need_resize"; marshaller = marshal } - external val_direction : int -> direction_type = "ml_Val_direction_type" - let focus : ([>`container],_) t = - let marshal f argv = function - | GtkArgv.INT dir :: _ -> - GtkArgv.set_result argv (`BOOL(f (val_direction dir))) - | _ -> invalid_arg "GtkBase.Container.Signals.marshal_focus" - in { name = "focus"; marshaller = marshal } - end -end - -module Item = struct - let cast w : item obj = Object.try_cast w "GtkItem" - external coerce : [>`item] obj -> item obj = "%identity" - external select : [>`item] obj -> unit = "ml_gtk_item_select" - external deselect : [>`item] obj -> unit = "ml_gtk_item_deselect" - external toggle : [>`item] obj -> unit = "ml_gtk_item_toggle" - module Signals = struct - open GtkSignal - let select : ([>`item],_) t = - { name = "select"; marshaller = marshal_unit } - let deselect : ([>`item],_) t = - { name = "deselect"; marshaller = marshal_unit } - let toggle : ([>`item],_) t = - { name = "toggle"; marshaller = marshal_unit } - end -end - - -module DnD = struct - external dest_set : - [>`widget] obj -> flags:dest_defaults list -> - targets:target_entry array -> actions:Gdk.Tags.drag_action list -> unit - = "ml_gtk_drag_dest_set" - external dest_unset : [>`widget] obj -> unit - = "ml_gtk_drag_dest_unset" - external finish : - Gdk.drag_context -> success:bool -> del:bool -> time:int -> unit - = "ml_gtk_drag_finish" - external get_data : - [>`widget] obj -> Gdk.drag_context -> target:Gdk.atom -> time:int -> unit - = "ml_gtk_drag_get_data" - external get_source_widget : Gdk.drag_context -> widget obj - = "ml_gtk_drag_get_source_widget" - external highlight : [>`widget] obj -> unit = "ml_gtk_drag_highlight" - external unhighlight : [>`widget] obj -> unit = "ml_gtk_drag_unhighlight" - external set_icon_widget : - Gdk.drag_context -> [>`widget] obj -> hot_x:int -> hot_y:int -> unit - = "ml_gtk_drag_set_icon_widget" - external set_icon_pixmap : - Gdk.drag_context -> colormap:Gdk.colormap -> - Gdk.pixmap -> ?mask:Gdk.bitmap -> hot_x:int -> hot_y:int -> unit - = "ml_gtk_drag_set_icon_pixmap_bc" "ml_gtk_drag_set_icon_pixmap" - external set_icon_default : Gdk.drag_context -> unit - = "ml_gtk_drag_set_icon_default" - external set_default_icon : - colormap:Gdk.colormap -> Gdk.pixmap -> - ?mask:Gdk.bitmap -> hot_x:int -> hot_y:int -> unit - = "ml_gtk_drag_set_default_icon" - external source_set : - [>`widget] obj -> ?modi:Gdk.Tags.modifier list -> - targets:target_entry array -> actions:Gdk.Tags.drag_action list -> unit - = "ml_gtk_drag_source_set" - external source_set_icon : - [>`widget] obj -> colormap:Gdk.colormap -> - Gdk.pixmap -> ?mask:Gdk.bitmap -> unit - = "ml_gtk_drag_source_set_icon" - external source_unset : [>`widget] obj -> unit - = "ml_gtk_drag_source_unset" -(* external dest_handle_event : [>`widget] -> *) -end - diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkBin.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkBin.ml deleted file mode 100644 index ab4cc7e85..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkBin.ml +++ /dev/null @@ -1,170 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Alignment = struct - let cast w : alignment obj = Object.try_cast w "GtkAlignment" - external create : - x:clampf -> y:clampf -> xscale:clampf -> yscale:clampf -> alignment obj - = "ml_gtk_alignment_new" - let create ?(x=0.5) ?(y=0.5) ?(xscale=1.) ?(yscale=1.) () = - create ~x ~y ~xscale ~yscale - external set : - ?x:clampf -> ?y:clampf -> ?xscale:clampf -> ?yscale:clampf -> - [>`alignment] obj -> unit - = "ml_gtk_alignment_set" -end - -module EventBox = struct - let cast w : event_box obj = Object.try_cast w "GtkEventBox" - external create : unit -> event_box obj = "ml_gtk_event_box_new" -end - -module Frame = struct - let cast w : frame obj = Object.try_cast w "GtkFrame" - external coerce : [>`frame] obj -> frame obj = "%identity" - external create : string -> frame obj = "ml_gtk_frame_new" - external set_label : [>`frame] obj -> string -> unit - = "ml_gtk_frame_set_label" - external set_label_align : [>`frame] obj -> x:clampf -> y:clampf -> unit - = "ml_gtk_frame_set_label_align" - external set_shadow_type : [>`frame] obj -> shadow_type -> unit - = "ml_gtk_frame_set_shadow_type" - external get_label_xalign : [>`frame] obj -> float - = "ml_gtk_frame_get_label_xalign" - external get_label_yalign : [>`frame] obj -> float - = "ml_gtk_frame_get_label_yalign" - let set_label_align' ?x ?y w = - set_label_align w - ~x:(may_default get_label_xalign w ~opt:x) - ~y:(may_default get_label_yalign w ~opt:y) - let set ?label ?label_xalign ?label_yalign ?shadow_type w = - may label ~f:(set_label w); - if label_xalign <> None || label_yalign <> None then - set_label_align' w ?x:label_xalign ?y:label_yalign; - may shadow_type ~f:(set_shadow_type w) -end - -module AspectFrame = struct - let cast w : aspect_frame obj = Object.try_cast w "GtkAspectFrame" - external create : - label:string -> xalign:clampf -> - yalign:clampf -> ratio:float -> obey_child:bool -> aspect_frame obj - = "ml_gtk_aspect_frame_new" - let create ?(label="") ?(xalign=0.5) ?(yalign=0.5) - ?(ratio=1.0) ?(obey_child=true) () = - create ~label ~xalign ~yalign ~ratio ~obey_child - external set : - [>`aspect] obj -> - xalign:clampf -> yalign:clampf -> ratio:float -> obey_child:bool -> unit - = "ml_gtk_aspect_frame_set" - external get_xalign : [>`aspect] obj -> clampf - = "ml_gtk_aspect_frame_get_xalign" - external get_yalign : [>`aspect] obj -> clampf - = "ml_gtk_aspect_frame_get_yalign" - external get_ratio : [>`aspect] obj -> clampf - = "ml_gtk_aspect_frame_get_ratio" - external get_obey_child : [>`aspect] obj -> bool - = "ml_gtk_aspect_frame_get_obey_child" - let set ?xalign ?yalign ?ratio ?obey_child w = - if xalign <> None || yalign <> None || ratio <> None || obey_child <> None - then set w - ~xalign:(may_default get_xalign w ~opt:xalign) - ~yalign:(may_default get_yalign w ~opt:yalign) - ~ratio:(may_default get_ratio w ~opt:ratio) - ~obey_child:(may_default get_obey_child w ~opt:obey_child) -end - -module HandleBox = struct - let cast w : handle_box obj = Object.try_cast w "GtkHandleBox" - external create : unit -> handle_box obj = "ml_gtk_handle_box_new" - external set_shadow_type : [>`handlebox] obj -> shadow_type -> unit = - "ml_gtk_handle_box_set_shadow_type" - external set_handle_position : [>`handlebox] obj -> position -> unit = - "ml_gtk_handle_box_set_handle_position" - external set_snap_edge : [>`handlebox] obj -> position -> unit = - "ml_gtk_handle_box_set_snap_edge" - module Signals = struct - open GtkSignal - let child_attached : ([>`handlebox],_) t = - { name = "child_attached"; marshaller = Widget.Signals.marshal } - let child_detached : ([>`handlebox],_) t = - { name = "child_detached"; marshaller = Widget.Signals.marshal } - end -end - -module Viewport = struct - let cast w : viewport obj = Object.try_cast w "GtkViewport" - external create : - [>`adjustment] optobj -> [>`adjustment] optobj -> viewport obj - = "ml_gtk_viewport_new" - let create ?hadjustment ?vadjustment () = - create (Gpointer.optboxed hadjustment) (Gpointer.optboxed vadjustment) - external get_hadjustment : [>`viewport] obj -> adjustment obj - = "ml_gtk_viewport_get_hadjustment" - external get_vadjustment : [>`viewport] obj -> adjustment obj - = "ml_gtk_viewport_get_vadjustment" - external set_hadjustment : [>`viewport] obj -> [>`adjustment] obj -> unit - = "ml_gtk_viewport_set_hadjustment" - external set_vadjustment : [>`viewport] obj -> [>`adjustment] obj -> unit - = "ml_gtk_viewport_set_vadjustment" - external set_shadow_type : [>`viewport] obj -> shadow_type -> unit - = "ml_gtk_viewport_set_shadow_type" - let set ?hadjustment ?vadjustment ?shadow_type w = - may hadjustment ~f:(set_hadjustment w); - may vadjustment ~f:(set_vadjustment w); - may shadow_type ~f:(set_shadow_type w) -end - -module ScrolledWindow = struct - let cast w : scrolled_window obj = Object.try_cast w "GtkScrolledWindow" - external create : - [>`adjustment] optobj -> [>`adjustment] optobj -> scrolled_window obj - = "ml_gtk_scrolled_window_new" - let create ?hadjustment ?vadjustment () = - create (Gpointer.optboxed hadjustment) (Gpointer.optboxed vadjustment) - external set_hadjustment : [>`scrolled] obj -> [>`adjustment] obj -> unit - = "ml_gtk_scrolled_window_set_hadjustment" - external set_vadjustment : [>`scrolled] obj -> [>`adjustment] obj -> unit - = "ml_gtk_scrolled_window_set_vadjustment" - external get_hadjustment : [>`scrolled] obj -> adjustment obj - = "ml_gtk_scrolled_window_get_hadjustment" - external get_vadjustment : [>`scrolled] obj -> adjustment obj - = "ml_gtk_scrolled_window_get_vadjustment" - external set_policy : [>`scrolled] obj -> policy_type -> policy_type -> unit - = "ml_gtk_scrolled_window_set_policy" - external add_with_viewport : [>`scrolled] obj -> [>`widget] obj -> unit - = "ml_gtk_scrolled_window_add_with_viewport" - external get_hscrollbar_policy : [>`scrolled] obj -> policy_type - = "ml_gtk_scrolled_window_get_hscrollbar_policy" - external get_vscrollbar_policy : [>`scrolled] obj -> policy_type - = "ml_gtk_scrolled_window_get_vscrollbar_policy" - external set_placement : [>`scrolled] obj -> corner_type -> unit - = "ml_gtk_scrolled_window_set_placement" - let set_policy' ?hpolicy ?vpolicy w = - set_policy w - (may_default get_hscrollbar_policy w ~opt:hpolicy) - (may_default get_vscrollbar_policy w ~opt:vpolicy) - let set ?hpolicy ?vpolicy ?placement w = - if hpolicy <> None || vpolicy <> None then - set_policy' w ?hpolicy ?vpolicy; - may placement ~f:(set_placement w) -end - -module Socket = struct - let cast w : socket obj = Object.try_cast w "GtkSocket" - external coerce : [>`socket] obj -> socket obj = "%identity" - external create : unit -> socket obj = "ml_gtk_socket_new" - external steal : [>`socket] obj -> Gdk.xid -> unit = "ml_gtk_socket_steal" -end - -(* -module Invisible = struct - let cast w : socket obj = Object.try_cast w "GtkInvisible" - external coerce : [>`invisible] obj -> invisible obj = "%identity" - external create : unit -> invisible obj = "ml_gtk_invisible_new" -end -*) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkButton.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkButton.ml deleted file mode 100644 index 6d9ddf500..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkButton.ml +++ /dev/null @@ -1,148 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Button = struct - let cast w : button obj = Object.try_cast w "GtkButton" - external coerce : [>`button] obj -> button obj = "%identity" - external create : unit -> button obj = "ml_gtk_button_new" - external create_with_label : string -> button obj - = "ml_gtk_button_new_with_label" - let create ?label () = - match label with None -> create () - | Some x -> create_with_label x - external pressed : [>`button] obj -> unit = "ml_gtk_button_pressed" - external released : [>`button] obj -> unit = "ml_gtk_button_released" - external clicked : [>`button] obj -> unit = "ml_gtk_button_clicked" - external enter : [>`button] obj -> unit = "ml_gtk_button_enter" - external leave : [>`button] obj -> unit = "ml_gtk_button_leave" - module Signals = struct - open GtkSignal - let pressed : ([>`button],_) t = - { name = "pressed"; marshaller = marshal_unit } - let released : ([>`button],_) t = - { name = "released"; marshaller = marshal_unit } - let clicked : ([>`button],_) t = - { name = "clicked"; marshaller = marshal_unit } - let enter : ([>`button],_) t = - { name = "enter"; marshaller = marshal_unit } - let leave : ([>`button],_) t = - { name = "leave"; marshaller = marshal_unit } - end -end - -module ToggleButton = struct - let cast w : toggle_button obj = Object.try_cast w "GtkToggleButton" - external coerce : [>`toggle] obj -> toggle_button obj = "%identity" - external toggle_button_create : unit -> toggle_button obj - = "ml_gtk_toggle_button_new" - external toggle_button_create_with_label : string -> toggle_button obj - = "ml_gtk_toggle_button_new_with_label" - external check_button_create : unit -> toggle_button obj - = "ml_gtk_check_button_new" - external check_button_create_with_label : string -> toggle_button obj - = "ml_gtk_check_button_new_with_label" - let create_toggle ?label () = - match label with None -> toggle_button_create () - | Some label -> toggle_button_create_with_label label - let create_check ?label () = - match label with None -> check_button_create () - | Some label -> check_button_create_with_label label - external set_mode : [>`toggle] obj -> bool -> unit - = "ml_gtk_toggle_button_set_mode" - external set_active : [>`toggle] obj -> bool -> unit - = "ml_gtk_toggle_button_set_active" - let set ?active ?draw_indicator w = - may ~f:(set_mode w) draw_indicator; - may ~f:(set_active w) active - external get_active : [>`toggle] obj -> bool - = "ml_gtk_toggle_button_get_active" - external toggled : [>`toggle] obj -> unit - = "ml_gtk_toggle_button_toggled" - module Signals = struct - open GtkSignal - let toggled : ([>`toggle],_) t = - { name = "toggled"; marshaller = marshal_unit } - end -end - -module RadioButton = struct - let cast w : radio_button obj = Object.try_cast w "GtkRadioButton" - external create : radio_button group -> radio_button obj - = "ml_gtk_radio_button_new" - external create_with_label : radio_button group -> string -> radio_button obj - = "ml_gtk_radio_button_new_with_label" - external set_group : [>`radio] obj -> radio_button group -> unit - = "ml_gtk_radio_button_set_group" - let create ?(group = None) ?label () = - match label with None -> create group - | Some label -> create_with_label group label -end - -module Toolbar = struct - let cast w : toolbar obj = Object.try_cast w "GtkToolbar" - external create : orientation -> style:toolbar_style -> toolbar obj - = "ml_gtk_toolbar_new" - let create dir ?(style=`BOTH) () = create dir ~style - external insert_space : [>`toolbar] obj -> pos:int -> unit - = "ml_gtk_toolbar_insert_space" - let insert_space w ?(pos = -1) () = insert_space w ~pos - external insert_button : - [>`toolbar] obj -> kind:[`BUTTON|`TOGGLEBUTTON|`RADIOBUTTON] -> - text:string -> tooltip:string -> - tooltip_private:string -> - icon:[>`widget] optobj -> pos:int -> button obj - = "ml_gtk_toolbar_insert_element_bc" "ml_gtk_toolbar_insert_element" - let insert_button w ?(kind=`BUTTON) ?(text="") ?(tooltip="") - ?(tooltip_private="") ?icon ?(pos = -1) ?callback () = - let b =insert_button w ~kind ~text ~tooltip ~tooltip_private ~pos - ~icon:(Gpointer.optboxed icon) - in - match callback with - | None -> b - | Some c -> GtkSignal.connect b ~sgn:Button.Signals.clicked - ~callback: c; b - external insert_widget : - [>`toolbar] obj -> [>`widget] obj -> - tooltip:string -> tooltip_private:string -> pos:int -> unit - = "ml_gtk_toolbar_insert_widget" - let insert_widget w ?(tooltip="") ?(tooltip_private="") ?(pos = -1) w' = - insert_widget w w' ~tooltip ~tooltip_private ~pos - external set_orientation : [>`toolbar] obj -> orientation -> unit = - "ml_gtk_toolbar_set_orientation" - external set_style : [>`toolbar] obj -> toolbar_style -> unit = - "ml_gtk_toolbar_set_style" - external set_space_size : [>`toolbar] obj -> int -> unit = - "ml_gtk_toolbar_set_space_size" - external set_space_style : [>`toolbar] obj -> [ `EMPTY|`LINE ] -> unit = - "ml_gtk_toolbar_set_space_style" - external set_tooltips : [>`toolbar] obj -> bool -> unit = - "ml_gtk_toolbar_set_tooltips" - external set_button_relief : [>`toolbar] obj -> relief_style -> unit = - "ml_gtk_toolbar_set_button_relief" - external get_button_relief : [>`toolbar] obj -> relief_style = - "ml_gtk_toolbar_get_button_relief" - let set ?orientation ?style ?space_size - ?space_style ?tooltips ?button_relief w = - may orientation ~f:(set_orientation w); - may style ~f:(set_style w); - may space_size ~f:(set_space_size w); - may space_style ~f:(set_space_style w); - may tooltips ~f:(set_tooltips w); - may button_relief ~f:(set_button_relief w) - module Signals = struct - open GtkSignal - external val_orientation : int -> orientation = "ml_Val_orientation" - external val_toolbar_style : int -> toolbar_style - = "ml_Val_toolbar_style" - let orientation_changed : ([>`toolbar],_) t = - let marshal f = marshal_int (fun x -> f (val_orientation x)) in - { name = "orientation_changed"; marshaller = marshal } - let style_changed : ([>`toolbar],_) t = - let marshal f = marshal_int (fun x -> f (val_toolbar_style x)) in - { name = "style_changed"; marshaller = marshal } - end -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkData.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkData.ml deleted file mode 100644 index 5b7f90ec0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkData.ml +++ /dev/null @@ -1,148 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags - -module AccelGroup = struct - external create : unit -> accel_group = "ml_gtk_accel_group_new" - external activate : - accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool - = "ml_gtk_accel_group_activate" - external groups_activate : - 'a obj -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool - = "ml_gtk_accel_groups_activate" - external attach : accel_group -> 'a obj -> unit - = "ml_gtk_accel_group_attach" - external detach : accel_group -> 'a obj -> unit - = "ml_gtk_accel_group_detach" - external lock : accel_group -> unit - = "ml_gtk_accel_group_lock" - external unlock : accel_group -> unit - = "ml_gtk_accel_group_unlock" - external lock_entry : - accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool - = "ml_gtk_accel_group_lock_entry" - external add : - accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> - ?flags:accel_flag list -> - call:'a obj -> sgn:('a,unit->unit) GtkSignal.t -> unit - = "ml_gtk_accel_group_add_bc" "ml_gtk_accel_group_add" - external remove : - accel_group -> - key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> call:'a obj -> unit - = "ml_gtk_accel_group_remove" - external valid : key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool - = "ml_gtk_accelerator_valid" - external set_default_mod_mask : Gdk.Tags.modifier list option -> unit - = "ml_gtk_accelerator_set_default_mod_mask" -end - -module Style = struct - external create : unit -> style = "ml_gtk_style_new" - external copy : style -> style = "ml_gtk_style_copy" - external attach : style -> Gdk.window -> style = "ml_gtk_style_attach" - external detach : style -> unit = "ml_gtk_style_detach" - external set_background : style -> Gdk.window -> state_type -> unit - = "ml_gtk_style_set_background" - external draw_hline : - style -> Gdk.window -> state_type -> x:int -> x:int -> y:int -> unit - = "ml_gtk_draw_hline_bc" "ml_gtk_draw_hline" - external draw_vline : - style -> Gdk.window -> state_type -> y:int -> y:int -> x:int -> unit - = "ml_gtk_draw_vline_bc" "ml_gtk_draw_vline" - external get_bg : style -> state:state_type -> Gdk.Color.t - = "ml_gtk_style_get_bg" - external set_bg : style -> state:state_type -> color:Gdk.Color.t -> unit - = "ml_gtk_style_set_bg" - external get_dark_gc : style -> state:state_type -> Gdk.gc - = "ml_gtk_style_get_dark_gc" - external get_light_gc : style -> state:state_type -> Gdk.gc - = "ml_gtk_style_get_light_gc" - external get_colormap : style -> Gdk.colormap = "ml_gtk_style_get_colormap" - external get_font : style -> Gdk.font = "ml_gtk_style_get_font" - external set_font : style -> Gdk.font -> unit = "ml_gtk_style_set_font" -(* - let set st ?:background ?:font = - let may_set f = may fun:(f st) in - may_set set_background background; - may_set set_font font -*) -end - -module Data = struct - module Signals = struct - open GtkSignal - let disconnect : ([>`data],_) t = - { name = "disconnect"; marshaller = marshal_unit } - end -end - -module Adjustment = struct - external create : - 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" - module Signals = struct - open GtkSignal - let changed : ([>`adjustment],_) t = - { name = "changed"; marshaller = marshal_unit } - let value_changed : ([>`adjustment],_) t = - { name = "value_changed"; marshaller = marshal_unit } - end -end - -module Tooltips = struct - external create : unit -> tooltips obj = "ml_gtk_tooltips_new" - external enable : [>`tooltips] obj -> unit = "ml_gtk_tooltips_enable" - external disable : [>`tooltips] obj -> unit = "ml_gtk_tooltips_disable" - external set_delay : [>`tooltips] obj -> int -> unit - = "ml_gtk_tooltips_set_delay" - external set_tip : - [>`tooltips] obj -> - [>`widget] obj -> ?text:string -> ?privat:string -> unit - = "ml_gtk_tooltips_set_tip" - external set_colors : - [>`tooltips] obj -> - ?foreground:Gdk.Color.t -> ?background:Gdk.Color.t -> unit -> unit - = "ml_gtk_tooltips_set_colors" - let set ?delay ?foreground ?background tt = - may ~f:(set_delay tt) delay; - if foreground <> None || background <> None then - set_colors tt ?foreground ?background () -end - - -module Selection = struct - type t - external selection : t -> Gdk.atom - = "ml_gtk_selection_data_selection" - external target : t -> Gdk.atom - = "ml_gtk_selection_data_target" - external seltype : t -> Gdk.atom - = "ml_gtk_selection_data_type" - external format : t -> int - = "ml_gtk_selection_data_format" - external get_data : t -> string - = "ml_gtk_selection_data_get_data" (* May raise Gpointer.null *) - external set : - t -> typ:Gdk.atom -> format:int -> ?data:string -> unit - = "ml_gtk_selection_data_set" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkEdit.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkEdit.ml deleted file mode 100644 index bef2fedb9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkEdit.ml +++ /dev/null @@ -1,223 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Editable = struct - let cast w : editable obj = Object.try_cast w "GtkEditable" - external coerce : [>`editable] obj -> editable obj = "%identity" - external select_region : [>`editable] obj -> start:int -> stop:int -> unit - = "ml_gtk_editable_select_region" - external insert_text : [>`editable] obj -> string -> pos:int -> int - = "ml_gtk_editable_insert_text" - external delete_text : [>`editable] obj -> start:int -> stop:int -> unit - = "ml_gtk_editable_delete_text" - external get_chars : [>`editable] obj -> start:int -> stop:int -> string - = "ml_gtk_editable_get_chars" - external cut_clipboard : [>`editable] obj -> unit - = "ml_gtk_editable_cut_clipboard" - external copy_clipboard : [>`editable] obj -> unit - = "ml_gtk_editable_copy_clipboard" - external paste_clipboard : [>`editable] obj -> unit - = "ml_gtk_editable_paste_clipboard" - external claim_selection : - [>`editable] obj -> claim:bool -> time:int -> unit - = "ml_gtk_editable_claim_selection" - external delete_selection : [>`editable] obj -> unit - = "ml_gtk_editable_delete_selection" - external changed : [>`editable] obj -> unit = "ml_gtk_editable_changed" - external set_position : [>`editable] obj -> int -> unit - = "ml_gtk_editable_set_position" - external get_position : [>`editable] obj -> int - = "ml_gtk_editable_get_position" - external set_editable : [>`editable] obj -> bool -> unit - = "ml_gtk_editable_set_editable" - external selection_start_pos : [>`editable] obj -> int - = "ml_gtk_editable_selection_start_pos" - external selection_end_pos : [>`editable] obj -> int - = "ml_gtk_editable_selection_end_pos" - external has_selection : [>`editable] obj -> bool - = "ml_gtk_editable_has_selection" - module Signals = struct - open GtkArgv - open GtkSignal - let activate : ([>`editable],_) t = - { name = "activate"; marshaller = marshal_unit } - let changed : ([>`editable],_) t = - { name = "changed"; marshaller = marshal_unit } - let marshal_insert f argv = function - | STRING _ :: INT len :: POINTER(Some pos) :: _ -> - (* XXX These two accesses are implementation-dependent *) - let s = string_at_pointer (get_pointer argv ~pos:0) ~len - and pos = int_at_pointer pos in - f s ~pos - | _ -> invalid_arg "GtkEdit.Editable.Signals.marshal_insert" - let insert_text : ([>`editable],_) t = - { name = "insert_text"; marshaller = marshal_insert } - let marshal_delete f _ = function - | INT start :: INT stop :: _ -> - f ~start ~stop - | _ -> invalid_arg "GtkEdit.Editable.Signals.marshal_delete" - let delete_text : ([>`editable],_) t = - { name = "delete_text"; marshaller = marshal_delete } - end -end - -module Entry = struct - let cast w : entry obj = Object.try_cast w "GtkEntry" - external coerce : [>`entry] obj -> entry obj = "%identity" - external create : unit -> entry obj = "ml_gtk_entry_new" - external create_with_max_length : int -> entry obj - = "ml_gtk_entry_new_with_max_length" - let create ?max_length () = - match max_length with None -> create () - | Some len -> create_with_max_length len - external set_text : [>`entry] obj -> string -> unit - = "ml_gtk_entry_set_text" - external append_text : [>`entry] obj -> string -> unit - = "ml_gtk_entry_append_text" - external prepend_text : [>`entry] obj -> string -> unit - = "ml_gtk_entry_prepend_text" - external get_text : [>`entry] obj -> string = "ml_gtk_entry_get_text" - external set_visibility : [>`entry] obj -> bool -> unit - = "ml_gtk_entry_set_visibility" - external set_max_length : [>`entry] obj -> int -> unit - = "ml_gtk_entry_set_max_length" - let set ?text ?visibility ?max_length w = - let may_set f = may ~f:(f w) in - may_set set_text text; - may_set set_visibility visibility; - may_set set_max_length max_length - external text_length : [>`entry] obj -> int - = "ml_GtkEntry_text_length" -end - -module SpinButton = struct - let cast w : spin_button obj = Object.try_cast w "GtkSpinButton" - external create : - [>`adjustment] optobj -> rate:float -> digits:int -> spin_button obj - = "ml_gtk_spin_button_new" - let create ?adjustment ?(rate=0.5) ?(digits=0) () = - create (Gpointer.optboxed adjustment) ~rate ~digits - external configure : - [>`spinbutton] obj -> adjustment:[>`adjustment] obj -> - rate:float -> digits:int -> unit - = "ml_gtk_spin_button_configure" - external set_adjustment : [>`spinbutton] obj -> [>`adjustment] obj -> unit - = "ml_gtk_spin_button_set_adjustment" - external get_adjustment : [>`spinbutton] obj -> adjustment obj - = "ml_gtk_spin_button_get_adjustment" - external set_digits : [>`spinbutton] obj -> int -> unit - = "ml_gtk_spin_button_set_digits" - external get_value : [>`spinbutton] obj -> float - = "ml_gtk_spin_button_get_value_as_float" - let get_value_as_int w = truncate (get_value w +. 0.5) - external set_value : [>`spinbutton] obj -> float -> unit - = "ml_gtk_spin_button_set_value" - external set_update_policy : - [>`spinbutton] obj -> [`ALWAYS|`IF_VALID] -> unit - = "ml_gtk_spin_button_set_update_policy" - external set_numeric : [>`spinbutton] obj -> bool -> unit - = "ml_gtk_spin_button_set_numeric" - external spin : [>`spinbutton] obj -> spin_type -> unit - = "ml_gtk_spin_button_spin" - external set_wrap : [>`spinbutton] obj -> bool -> unit - = "ml_gtk_spin_button_set_wrap" - external set_shadow_type : [>`spinbutton] obj -> shadow_type -> unit - = "ml_gtk_spin_button_set_shadow_type" - external set_snap_to_ticks : [>`spinbutton] obj -> bool -> unit - = "ml_gtk_spin_button_set_snap_to_ticks" - external update : [>`spinbutton] obj -> unit - = "ml_gtk_spin_button_update" - let set ?adjustment ?digits ?value ?update_policy - ?numeric ?wrap ?shadow_type ?snap_to_ticks w = - let may_set f = may ~f:(f w) in - may_set set_adjustment adjustment; - may_set set_digits digits; - may_set set_value value; - may_set set_update_policy update_policy; - may_set set_numeric numeric; - may_set set_wrap wrap; - may_set set_shadow_type shadow_type; - may_set set_snap_to_ticks snap_to_ticks -end - -module Text = struct - let cast w : text obj = Object.try_cast w "GtkText" - external create : [>`adjustment] optobj -> [>`adjustment] optobj -> text obj - = "ml_gtk_text_new" - let create ?hadjustment ?vadjustment () = - create (Gpointer.optboxed hadjustment) (Gpointer.optboxed vadjustment) - external set_word_wrap : [>`text] obj -> bool -> unit - = "ml_gtk_text_set_word_wrap" - external set_line_wrap : [>`text] obj -> bool -> unit - = "ml_gtk_text_set_line_wrap" - external set_adjustment : - [>`text] obj -> ?horizontal:[>`adjustment] obj -> - ?vertical:[>`adjustment] obj -> unit -> unit - = "ml_gtk_text_set_adjustments" - external get_hadjustment : [>`text] obj -> adjustment obj - = "ml_gtk_text_get_hadj" - external get_vadjustment : [>`text] obj -> adjustment obj - = "ml_gtk_text_get_vadj" - external set_point : [>`text] obj -> int -> unit - = "ml_gtk_text_set_point" - external get_point : [>`text] obj -> int = "ml_gtk_text_get_point" - external get_length : [>`text] obj -> int = "ml_gtk_text_get_length" - external freeze : [>`text] obj -> unit = "ml_gtk_text_freeze" - external thaw : [>`text] obj -> unit = "ml_gtk_text_thaw" - external insert : - [>`text] obj -> ?font:Gdk.font -> ?foreground:Gdk.Color.t -> - ?background:Gdk.Color.t -> string -> unit - = "ml_gtk_text_insert" - let set ?hadjustment ?vadjustment ?word_wrap w = - if hadjustment <> None || vadjustment <> None then - set_adjustment w ?horizontal: hadjustment ?vertical: vadjustment (); - may word_wrap ~f:(set_word_wrap w) -end - -module Combo = struct - let cast w : combo obj = Object.try_cast w "GtkCombo" - external create : unit -> combo obj = "ml_gtk_combo_new" - external set_value_in_list : - [>`combo] obj -> ?required:bool -> ?ok_if_empty:bool -> unit -> unit - = "ml_gtk_combo_set_value_in_list" - external set_use_arrows : [>`combo] obj -> bool -> unit - = "ml_gtk_combo_set_use_arrows" - external set_use_arrows_always : [>`combo] obj -> bool -> unit - = "ml_gtk_combo_set_use_arrows_always" - external set_case_sensitive : [>`combo] obj -> bool -> unit - = "ml_gtk_combo_set_case_sensitive" - external set_item_string : [>`combo] obj -> [>`item] obj -> string -> unit - = "ml_gtk_combo_set_item_string" - external entry : [>`combo] obj -> entry obj= "ml_gtk_combo_entry" - external list : [>`combo] obj -> liste obj= "ml_gtk_combo_list" - let set_popdown_strings combo strings = - GtkList.Liste.clear_items (list combo) ~start:0 ~stop:(-1); - List.iter strings ~f: - begin fun s -> - let li = GtkList.ListItem.create_with_label s in - Widget.show li; - Container.add (list combo) li - end - let set_use_arrows' w (mode : [`NEVER|`DEFAULT|`ALWAYS]) = - let def,always = - match mode with - `NEVER -> false, false - | `DEFAULT -> true, false - | `ALWAYS -> true, true - in - set_use_arrows w def; - set_use_arrows_always w always - let set ?popdown_strings ?use_arrows - ?case_sensitive ?value_in_list ?ok_if_empty w = - may popdown_strings ~f:(set_popdown_strings w); - may use_arrows ~f:(set_use_arrows' w); - may case_sensitive ~f:(set_case_sensitive w); - if value_in_list <> None || ok_if_empty <> None then - set_value_in_list w ?required:value_in_list ?ok_if_empty () - external disable_activate : [>`combo] obj -> unit - = "ml_gtk_combo_disable_activate" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkInit.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkInit.ml deleted file mode 100644 index 5ce40db5f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkInit.ml +++ /dev/null @@ -1,5 +0,0 @@ -(* $Id$ *) - -(* Does the initialization for toplevels *) - -let locale = GtkMain.Main.init () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkList.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkList.ml deleted file mode 100644 index 4d2ae0951..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkList.ml +++ /dev/null @@ -1,294 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module ListItem = struct - let cast w : list_item obj = Object.try_cast w "GtkListItem" - external create : unit -> list_item obj = "ml_gtk_list_item_new" - external create_with_label : string -> list_item obj - = "ml_gtk_list_item_new_with_label" - let create ?label () = - match label with None -> create () - | Some label -> create_with_label label -end - -module Liste = struct - let cast w : liste obj = Object.try_cast w "GtkList" - external create : unit -> liste obj = "ml_gtk_list_new" - external insert_item : - [>`list] obj -> [>`listitem] obj -> pos:int -> unit - = "ml_gtk_list_insert_item" - let insert_items l wl ~pos = - let wl = if pos < 0 then wl else List.rev wl in - List.iter wl ~f:(insert_item l ~pos) - let append_items l = insert_items l ~pos:(-1) - let prepend_items l = insert_items l ~pos:0 - external clear_items : [>`list] obj -> start:int -> stop:int -> unit = - "ml_gtk_list_clear_items" - external select_item : [>`list] obj -> pos:int -> unit - = "ml_gtk_list_select_item" - external unselect_item : [>`list] obj -> pos:int -> unit - = "ml_gtk_list_unselect_item" - external select_child : [>`list] obj -> [>`listitem] obj -> unit - = "ml_gtk_list_select_child" - external unselect_child : [>`list] obj -> [>`listitem] obj -> unit - = "ml_gtk_list_unselect_child" - external child_position : [>`list] obj -> [>`listitem] obj -> int - = "ml_gtk_list_child_position" - external set_selection_mode : [>`list] obj -> selection_mode -> unit - = "ml_gtk_list_set_selection_mode" - module Signals = struct - open GtkSignal - let selection_changed : ([>`list],_) t = - { name = "selection_changed"; marshaller = marshal_unit } - let select_child : ([>`list],_) t = - { name = "select_child"; marshaller = Widget.Signals.marshal } - let unselect_child : ([>`list],_) t = - { name = "unselect_child"; marshaller = Widget.Signals.marshal } - end -end - -module CList = struct - let cast w : clist obj = Object.try_cast w "GtkCList" - external create : cols:int -> clist obj = "ml_gtk_clist_new" - external create_with_titles : string array -> clist obj - = "ml_gtk_clist_new_with_titles" - external get_rows : [>`clist] obj -> int = "ml_gtk_clist_get_rows" - external get_columns : [>`clist] obj -> int = "ml_gtk_clist_get_columns" - external get_focus_row : [>`clist] obj -> int - = "ml_gtk_clist_get_focus_row" - external set_hadjustment : [>`clist] obj -> [>`adjustment] obj -> unit - = "ml_gtk_clist_set_hadjustment" - external set_vadjustment : [>`clist] obj -> [>`adjustment] obj -> unit - = "ml_gtk_clist_set_vadjustment" - external get_hadjustment : [>`clist] obj -> adjustment obj - = "ml_gtk_clist_get_hadjustment" - external get_vadjustment : [>`clist] obj -> adjustment obj - = "ml_gtk_clist_get_vadjustment" - external set_shadow_type : [>`clist] obj -> shadow_type -> unit - = "ml_gtk_clist_set_shadow_type" - external set_selection_mode : [>`clist] obj -> selection_mode -> unit - = "ml_gtk_clist_set_selection_mode" - external set_reorderable : [>`clist] obj -> bool -> unit - = "ml_gtk_clist_set_reorderable" - external set_use_drag_icons : [>`clist] obj -> bool -> unit - = "ml_gtk_clist_set_use_drag_icons" - external set_button_actions : - [>`clist] obj -> int -> button_action list -> unit - = "ml_gtk_clist_set_button_actions" - external freeze : [>`clist] obj -> unit = "ml_gtk_clist_freeze" - external thaw : [>`clist] obj -> unit = "ml_gtk_clist_thaw" - external column_titles_show : [>`clist] obj -> unit - = "ml_gtk_clist_column_titles_show" - external column_titles_hide : [>`clist] obj -> unit - = "ml_gtk_clist_column_titles_hide" - external column_title_active : [>`clist] obj -> int -> unit - = "ml_gtk_clist_column_title_active" - external column_title_passive : [>`clist] obj -> int -> unit - = "ml_gtk_clist_column_title_passive" - external column_titles_active : [>`clist] obj -> unit - = "ml_gtk_clist_column_titles_active" - external column_titles_passive : [>`clist] obj -> unit - = "ml_gtk_clist_column_titles_passive" - external set_column_title : [>`clist] obj -> int -> string -> unit - = "ml_gtk_clist_set_column_title" - external get_column_title : [>`clist] obj -> int -> string - = "ml_gtk_clist_get_column_title" - external set_column_widget : [>`clist] obj -> int -> [>`widget] obj -> unit - = "ml_gtk_clist_set_column_widget" - external get_column_widget : [>`clist] obj -> int -> widget obj - = "ml_gtk_clist_get_column_widget" - external set_column_justification : - [>`clist] obj -> int -> justification -> unit - = "ml_gtk_clist_set_column_justification" - external set_column_visibility : [>`clist] obj -> int -> bool -> unit - = "ml_gtk_clist_set_column_visibility" - external set_column_resizeable : [>`clist] obj -> int -> bool -> unit - = "ml_gtk_clist_set_column_resizeable" - external set_column_auto_resize : [>`clist] obj -> int -> bool -> unit - = "ml_gtk_clist_set_column_auto_resize" - external columns_autosize : [>`clist] obj -> unit - = "ml_gtk_clist_columns_autosize" - external optimal_column_width : [>`clist] obj -> int -> int - = "ml_gtk_clist_optimal_column_width" - external set_column_width : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_set_column_width" - external set_column_min_width : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_set_column_min_width" - external set_column_max_width : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_set_column_max_width" - external set_row_height : [>`clist] obj -> int -> unit - = "ml_gtk_clist_set_row_height" - external moveto : - [>`clist] obj -> - int -> int -> row_align:clampf -> col_align:clampf -> unit - = "ml_gtk_clist_moveto" - external row_is_visible : [>`clist] obj -> int -> visibility - = "ml_gtk_clist_row_is_visible" - external get_cell_type : [>`clist] obj -> int -> int -> cell_type - = "ml_gtk_clist_get_cell_type" - external set_text : [>`clist] obj -> int -> int -> string -> unit - = "ml_gtk_clist_set_text" - external get_text : [>`clist] obj -> int -> int -> string - = "ml_gtk_clist_get_text" - external set_pixmap : - [>`clist] obj -> - int -> int -> Gdk.pixmap -> Gdk.bitmap Gpointer.optboxed -> unit - = "ml_gtk_clist_set_pixmap" - external get_pixmap : - [>`clist] obj -> int -> int -> Gdk.pixmap option * Gdk.bitmap option - = "ml_gtk_clist_get_pixmap" - external set_pixtext : - [>`clist] obj -> int -> int -> - string -> int -> Gdk.pixmap -> Gdk.bitmap Gpointer.optboxed -> unit - = "ml_gtk_clist_set_pixtext_bc" "ml_gtk_clist_set_pixtext" - external set_foreground : - [>`clist] obj -> row:int -> Gdk.Color.t Gpointer.optboxed -> unit - = "ml_gtk_clist_set_foreground" - external set_background : - [>`clist] obj -> row:int -> Gdk.Color.t Gpointer.optboxed -> unit - = "ml_gtk_clist_set_background" - external get_cell_style : [>`clist] obj -> int -> int -> Gtk.style - = "ml_gtk_clist_get_cell_style" - external set_cell_style : [>`clist] obj -> int -> int -> Gtk.style -> unit - = "ml_gtk_clist_set_cell_style" - external get_row_style : [>`clist] obj -> row:int -> Gtk.style - = "ml_gtk_clist_get_row_style" - external set_row_style : [>`clist] obj -> row:int -> Gtk.style -> unit - = "ml_gtk_clist_set_row_style" - external set_selectable : [>`clist] obj -> row:int -> bool -> unit - = "ml_gtk_clist_set_selectable" - external get_selectable : [>`clist] obj -> row:int -> bool - = "ml_gtk_clist_get_selectable" - external set_shift : - [>`clist] obj -> int -> int -> vertical:int -> horizontal:int -> unit - = "ml_gtk_clist_set_shift" - external insert : [>`clist] obj -> row:int -> Gpointer.optstring array -> int - = "ml_gtk_clist_insert" - let insert w ~row texts = - let len = get_columns w in - if List.length texts > len then invalid_arg "CList.insert"; - let arr = Array.create (get_columns w) None in - List.fold_left texts ~init:0 - ~f:(fun pos text -> arr.(pos) <- text; pos+1); - let r = insert w ~row (Array.map ~f:Gpointer.optstring arr) in - if r = -1 then invalid_arg "GtkCList::insert"; - r - external remove : [>`clist] obj -> row:int -> unit - = "ml_gtk_clist_remove" - external set_row_data : [>`clist] obj -> row:int -> Obj.t -> unit - = "ml_gtk_clist_set_row_data" - external get_row_data : [>`clist] obj -> row:int -> Obj.t - = "ml_gtk_clist_get_row_data" - external select : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_select_row" - external unselect : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_unselect_row" - external clear : [>`clist] obj -> unit = "ml_gtk_clist_clear" - external get_row_column : [>`clist] obj -> x:int -> y:int -> int * int - = "ml_gtk_clist_get_selection_info" - external select_all : [>`clist] obj -> unit = "ml_gtk_clist_select_all" - external unselect_all : [>`clist] obj -> unit = "ml_gtk_clist_unselect_all" - external swap_rows : [>`clist] obj -> int -> int -> unit - = "ml_gtk_clist_swap_rows" - external row_move : [>`clist] obj -> int -> dst:int -> unit - = "ml_gtk_clist_row_move" - external set_sort_column : [>`clist] obj -> int -> unit - = "ml_gtk_clist_set_sort_column" - external set_sort_type : [>`clist] obj -> sort_type -> unit - = "ml_gtk_clist_set_sort_type" - external sort : [>`clist] obj -> unit - = "ml_gtk_clist_sort" - external set_auto_sort : [>`clist] obj -> bool -> unit - = "ml_gtk_clist_set_auto_sort" - let set_titles_show w = function - true -> column_titles_show w - | false -> column_titles_hide w - let set_titles_active w = function - true -> column_titles_active w - | false -> column_titles_passive w - let set ?hadjustment ?vadjustment ?shadow_type - ?(button_actions=[]) ?selection_mode ?reorderable - ?use_drag_icons ?row_height ?titles_show ?titles_active w = - let may_set f param = may param ~f:(f w) in - may_set set_hadjustment hadjustment; - may_set set_vadjustment vadjustment; - may_set set_shadow_type shadow_type; - List.iter button_actions ~f:(fun (n,act) -> set_button_actions w n act); - may_set set_selection_mode selection_mode; - may_set set_reorderable reorderable; - may_set set_use_drag_icons use_drag_icons; - may_set set_row_height row_height; - may_set set_titles_show titles_show; - may_set set_titles_active titles_active - let set_sort w ?auto ?column ?dir:sort_type () = - may auto ~f:(set_auto_sort w); - may column ~f:(set_sort_column w); - may sort_type ~f:(set_sort_type w) - let set_cell w ?text ?pixmap ?mask ?(spacing=0) ?style row col = - begin match text, pixmap with - | Some text, None -> - set_text w row col text - | None, Some pm -> - set_pixmap w row col pm (Gpointer.optboxed mask) - | Some text, Some pm -> - set_pixtext w row col text spacing pm (Gpointer.optboxed mask) - | _ -> () - end; - may style ~f:(set_cell_style w row col) - let set_column w ?widget ?title ?title_active ?justification - ?visibility ?resizeable ?auto_resize ?width ?min_width ?max_width - col = - let may_set f param = may param ~f:(f w col) in - may_set set_column_widget widget; - may_set set_column_title title; - may title_active - ~f:(fun active -> if active then column_title_active w col - else column_title_passive w col); - may_set set_column_justification justification; - may_set set_column_visibility visibility; - may_set set_column_resizeable resizeable; - may_set set_column_auto_resize auto_resize; - may_set set_column_width width; - may_set set_column_min_width min_width; - may_set set_column_max_width max_width - let set_row w ?foreground ?background ?selectable ?style row = - let may_set f = may ~f:(f w ~row) in - may_set set_foreground foreground; - may_set set_background background; - may_set set_selectable selectable; - may_set set_row_style style - module Signals = struct - open GtkArgv - open GtkSignal - let marshal_select f argv = function - | INT row :: INT column :: POINTER p :: _ -> - let event : GdkEvent.Button.t option = - may_map ~f:GdkEvent.unsafe_copy p - in - f ~row ~column ~event - | _ -> invalid_arg "GtkList.CList.Signals.marshal_select" - let select_row : ([>`clist],_) t = - { name = "select_row"; marshaller = marshal_select } - let unselect_row : ([>`clist],_) t = - { name = "unselect_row"; marshaller = marshal_select } - let click_column : ([>`clist],_) t = - { name = "click_column"; marshaller = marshal_int } - external val_scroll_type : int -> scroll_type = "ml_Val_scroll_type" - let marshal_scroll f argv = function - | INT st :: FLOAT (pos : clampf) :: _ -> - f (val_scroll_type st) ~pos - | _ -> invalid_arg "GtkList.CList.Signals.marshal_scroll" - let scroll_horizontal : ([>`clist],_) t = - { name = "scroll_horizontal"; marshaller = marshal_scroll } - let scroll_vertical : ([>`clist],_) t = - { name = "scroll_vertical"; marshaller = marshal_scroll } - external emit_scroll : - 'a obj -> name:string -> Tags.scroll_type -> pos:clampf -> unit - = "ml_gtk_signal_emit_scroll" - let emit_scroll = emit ~emitter:emit_scroll - end -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMain.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMain.ml deleted file mode 100644 index 3c4561429..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMain.ml +++ /dev/null @@ -1,49 +0,0 @@ -(* $Id$ *) - -open Gtk - -let _ = Callback.register_exception "gtkerror" (Error"") - -module Timeout = struct - type id - external add : ms:int -> callback:(GtkArgv.t -> unit) -> id - = "ml_gtk_timeout_add" - let add ~ms ~callback = - add ~ms ~callback:(fun arg -> GtkArgv.set_result arg (`BOOL(callback ()))) - external remove : id -> unit = "ml_gtk_timeout_remove" -end - -module Main = struct - external init : string array -> string array = "ml_gtk_init" - (* external exit : int -> unit = "ml_gtk_exit" *) - external set_locale : unit -> string = "ml_gtk_set_locale" - (* external main : unit -> unit = "ml_gtk_main" *) - let init () = - let locale = set_locale () in - let argv = init Sys.argv in - Array.blit ~src:argv ~dst:Sys.argv ~len:(Array.length argv) - ~src_pos:0 ~dst_pos:0; - Obj.truncate (Obj.repr Sys.argv) ~len:(Array.length argv); - locale - open Glib - let loops = ref [] - let main () = - let loop = (Main.create true) in - loops := loop :: !loops; - while Main.is_running loop do Main.iteration true done; - loops := List.tl !loops - and quit () = Main.quit (List.hd !loops) - external get_version : unit -> int * int * int = "ml_gtk_get_version" - let version = get_version () - - let flush = Gdk.X.flush -end - -module Grab = struct - external add : [>`widget] obj -> unit = "ml_gtk_grab_add" - external remove : [>`widget] obj -> unit = "ml_gtk_grab_remove" - external get_current : unit -> widget obj= "ml_gtk_grab_get_current" -end - -let _ = Glib.set_warning_handler (fun msg -> raise (Warning msg)) -let _ = Glib.set_print_handler (fun msg -> print_string msg) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMenu.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMenu.ml deleted file mode 100644 index 2f1eb30f0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMenu.ml +++ /dev/null @@ -1,144 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open GtkBase - -module MenuItem = struct - let cast w : menu_item obj = Object.try_cast w "GtkMenuItem" - external coerce : [>`menuitem] obj -> menu_item obj = "%identity" - external create : unit -> menu_item obj = "ml_gtk_menu_item_new" - external create_with_label : string -> menu_item obj - = "ml_gtk_menu_item_new_with_label" - external tearoff_create : unit -> menu_item obj - = "ml_gtk_tearoff_menu_item_new" - let create ?label () = - match label with None -> create () - | Some label -> create_with_label label - external set_submenu : [>`menuitem] obj -> [>`menu] obj -> unit - = "ml_gtk_menu_item_set_submenu" - external remove_submenu : [>`menuitem] obj -> unit - = "ml_gtk_menu_item_remove_submenu" - external configure : - [>`menuitem] obj -> show_toggle:bool -> show_indicator:bool -> unit - = "ml_gtk_menu_item_configure" - external activate : [>`menuitem] obj -> unit - = "ml_gtk_menu_item_activate" - external right_justify : [>`menuitem] obj -> unit - = "ml_gtk_menu_item_right_justify" - module Signals = struct - open GtkSignal - let activate : ([>`menuitem],_) t = - { name = "activate"; marshaller = marshal_unit } - let activate_item : ([>`menuitem],_) t = - { name = "activate_item"; marshaller = marshal_unit } - end -end - -module CheckMenuItem = struct - let cast w : check_menu_item obj = Object.try_cast w "GtkCheckMenuItem" - external coerce : [>`checkmenuitem] obj -> check_menu_item obj = "%identity" - external create : unit -> check_menu_item obj = "ml_gtk_check_menu_item_new" - external create_with_label : string -> check_menu_item obj - = "ml_gtk_check_menu_item_new_with_label" - let create ?label () = - match label with None -> create () - | Some label -> create_with_label label - external set_active : [>`checkmenuitem] obj -> bool -> unit - = "ml_gtk_check_menu_item_set_active" - external get_active : [>`checkmenuitem] obj -> bool - = "ml_gtk_check_menu_item_get_active" - external set_show_toggle : [>`checkmenuitem] obj -> bool -> unit - = "ml_gtk_check_menu_item_set_show_toggle" - let set ?active ?show_toggle w = - may active ~f:(set_active w); - may show_toggle ~f:(set_show_toggle w) - external toggled : [>`checkmenuitem] obj -> unit - = "ml_gtk_check_menu_item_toggled" - module Signals = struct - open GtkSignal - let toggled : ([>`checkmenuitem],_) t = - { name = "toggled"; marshaller = marshal_unit } - end -end - -module RadioMenuItem = struct - let cast w : radio_menu_item obj = Object.try_cast w "GtkRadioMenuItem" - external create : radio_menu_item group -> radio_menu_item obj - = "ml_gtk_radio_menu_item_new" - external create_with_label : - radio_menu_item group -> string -> radio_menu_item obj - = "ml_gtk_radio_menu_item_new_with_label" - let create ?(group = None) ?label () = - match label with None -> create group - | Some label -> create_with_label group label - external set_group : [>`radiomenuitem] obj -> radio_menu_item group -> unit - = "ml_gtk_radio_menu_item_set_group" -end - -module OptionMenu = struct - let cast w : option_menu obj = Object.try_cast w "GtkOptionMenu" - external create : unit -> option_menu obj = "ml_gtk_option_menu_new" - external get_menu : [>`optionmenu] obj -> menu obj - = "ml_gtk_option_menu_get_menu" - external set_menu : [>`optionmenu] obj -> [>`menu] obj -> unit - = "ml_gtk_option_menu_set_menu" - external remove_menu : [>`optionmenu] obj -> unit - = "ml_gtk_option_menu_remove_menu" - external set_history : [>`optionmenu] obj -> int -> unit - = "ml_gtk_option_menu_set_history" - let set ?menu ?history w = - may menu ~f:(set_menu w); - may history ~f:(set_history w) -end - -module MenuShell = struct - let cast w : menu_shell obj = Object.try_cast w "GtkMenuShell" - external coerce : [>`menushell] obj -> menu_shell obj = "%identity" - external append : [>`menushell] obj -> [>`widget] obj -> unit - = "ml_gtk_menu_shell_append" - external prepend : [>`menushell] obj -> [>`widget] obj -> unit - = "ml_gtk_menu_shell_prepend" - external insert : [>`menushell] obj -> [>`widget] obj -> pos:int -> unit - = "ml_gtk_menu_shell_insert" - external deactivate : [>`menushell] obj -> unit - = "ml_gtk_menu_shell_deactivate" - module Signals = struct - open GtkSignal - let deactivate : ([>`menushell],_) t = - { name = "deactivate"; marshaller = marshal_unit } - end -end - -module Menu = struct - let cast w : menu obj = Object.try_cast w "GtkMenu" - external create : unit -> menu obj = "ml_gtk_menu_new" - external popup : - [>`menu] obj -> [>`menushell] optobj -> - [>`menuitem] optobj -> button:int -> time:int -> unit - = "ml_gtk_menu_popup" - let popup ?parent_menu ?parent_item w = - popup w (Gpointer.optboxed parent_menu) (Gpointer.optboxed parent_item) - external popdown : [>`menu] obj -> unit = "ml_gtk_menu_popdown" - external get_active : [>`menu] obj -> widget obj= "ml_gtk_menu_get_active" - external set_active : [>`menu] obj -> int -> unit = "ml_gtk_menu_set_active" - external set_accel_group : [>`menu] obj -> accel_group -> unit - = "ml_gtk_menu_set_accel_group" - external get_accel_group : [>`menu] obj -> accel_group - = "ml_gtk_menu_get_accel_group" - external ensure_uline_accel_group : [>`menu] obj -> accel_group - = "ml_gtk_menu_ensure_uline_accel_group" - external attach_to_widget : [>`menu] obj -> [>`widget] obj -> unit - = "ml_gtk_menu_attach_to_widget" - external get_attach_widget : [>`menu] obj -> widget obj - = "ml_gtk_menu_get_attach_widget" - external detach : [>`menu] obj -> unit = "ml_gtk_menu_detach" - let set ?active ?accel_group w = - may active ~f:(set_active w); - may accel_group ~f:(set_accel_group w) -end - -module MenuBar = struct - let cast w : menu_bar obj = Object.try_cast w "GtkMenuBar" - external create : unit -> menu_bar obj = "ml_gtk_menu_bar_new" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMisc.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMisc.ml deleted file mode 100644 index ded7f487a..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkMisc.ml +++ /dev/null @@ -1,323 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module GammaCurve = struct - let cast w : gamma_curve obj = Object.try_cast w "GtkGammaCurve" - external create : unit -> gamma_curve obj = "ml_gtk_gamma_curve_new" - external get_gamma : [>`gamma] obj -> float = "ml_gtk_gamma_curve_get_gamma" -end - -module ColorSelection = struct - let cast w : color_selection obj = Object.try_cast w "GtkColorSelection" - external create : unit -> color_selection obj = "ml_gtk_color_selection_new" - external create_dialog : string -> color_selection_dialog obj - = "ml_gtk_color_selection_dialog_new" - external set_update_policy : [>`colorsel] obj -> update_type -> unit - = "ml_gtk_color_selection_set_update_policy" - external set_opacity : [>`colorsel] obj -> bool -> unit - = "ml_gtk_color_selection_set_opacity" - let set ?update_policy ?opacity w = - may update_policy ~f:(set_update_policy w); - may opacity ~f:(set_opacity w) - external set_color : - [>`colorsel] obj -> - red:float -> green:float -> blue:float -> ?opacity:float -> unit - = "ml_gtk_color_selection_set_color" - external get_color : [>`colorsel] obj -> color - = "ml_gtk_color_selection_get_color" - - external ok_button : [>`colorseldialog] obj -> button obj = - "ml_gtk_color_selection_dialog_ok_button" - external cancel_button : [>`colorseldialog] obj -> button obj = - "ml_gtk_color_selection_dialog_cancel_button" - external help_button : [>`colorseldialog] obj -> button obj = - "ml_gtk_color_selection_dialog_help_button" - external colorsel : [>`colorseldialog] obj -> color_selection obj = - "ml_gtk_color_selection_dialog_colorsel" - module Signals = struct - open GtkSignal - let color_changed : ([>`colorsel],_) t = - { name = "color_changed"; marshaller = marshal_unit } - end -end - -module Statusbar = struct - let cast w : statusbar obj = Object.try_cast w "GtkStatusbar" - external create : unit -> statusbar obj = "ml_gtk_statusbar_new" - external get_context : [>`statusbar] obj -> string -> statusbar_context - = "ml_gtk_statusbar_get_context_id" - external push : - [>`statusbar] obj -> - statusbar_context -> text:string -> statusbar_message - = "ml_gtk_statusbar_push" - external pop : [>`statusbar] obj -> statusbar_context -> unit - = "ml_gtk_statusbar_pop" - external remove : - [>`statusbar] obj -> statusbar_context -> statusbar_message -> unit - = "ml_gtk_statusbar_remove" - module Signals = struct - open GtkSignal - let text_pushed : ([>`statusbar],_) t = - let marshal f _ = function - | GtkArgv.INT ctx :: GtkArgv.STRING s :: _ -> - f (Obj.magic ctx : statusbar_context) s - | _ -> invalid_arg "GtkMisc.Statusbar.Signals.marshal_text" - in - { name = "text_pushed"; marshaller = marshal } - end -end - -module Calendar = struct - let cast w : calendar obj = Object.try_cast w "GtkCalendar" - external create : unit -> calendar obj = "ml_gtk_calendar_new" - external select_month : [>`calendar] obj -> month:int -> year:int -> unit - = "ml_gtk_calendar_select_month" - external select_day : [>`calendar] obj -> int -> unit - = "ml_gtk_calendar_select_day" - external mark_day : [>`calendar] obj -> int -> unit - = "ml_gtk_calendar_mark_day" - external unmark_day : [>`calendar] obj -> int -> unit - = "ml_gtk_calendar_unmark_day" - external clear_marks : [>`calendar] obj -> unit - = "ml_gtk_calendar_clear_marks" - external display_options : - [>`calendar] obj -> Tags.calendar_display_options list -> unit - = "ml_gtk_calendar_display_options" - external get_date : [>`calendar] obj -> int * int * int - = "ml_gtk_calendar_get_date" (* year * month * day *) - external freeze : [>`calendar] obj -> unit - = "ml_gtk_calendar_freeze" - external thaw : [>`calendar] obj -> unit - = "ml_gtk_calendar_thaw" - module Signals = struct - open GtkSignal - let month_changed : ([>`calendar],_) t = - { name = "month_changed"; marshaller = marshal_unit } - let day_selected : ([>`calendar],_) t = - { name = "day_selected"; marshaller = marshal_unit } - let day_selected_double_click : ([>`calendar],_) t = - { name = "day_selected_double_click"; marshaller = marshal_unit } - let prev_month : ([>`calendar],_) t = - { name = "prev_month"; marshaller = marshal_unit } - let next_month : ([>`calendar],_) t = - { name = "next_month"; marshaller = marshal_unit } - let prev_year : ([>`calendar],_) t = - { name = "prev_year"; marshaller = marshal_unit } - let next_year : ([>`calendar],_) t = - { name = "next_year"; marshaller = marshal_unit } - end -end - -module DrawingArea = struct - let cast w : drawing_area obj = Object.try_cast w "GtkDrawingArea" - external create : unit -> drawing_area obj = "ml_gtk_drawing_area_new" - external size : [>`drawing] obj -> width:int -> height:int -> unit - = "ml_gtk_drawing_area_size" -end - -(* Does not seem very useful ... -module Curve = struct - type t = [widget drawing curve] obj - let cast w : t = Object.try_cast w "GtkCurve" - external create : unit -> t = "ml_gtk_curve_new" - external reset : [>`curve] obj -> unit = "ml_gtk_curve_reset" - external set_gamma : [>`curve] obj -> float -> unit - = "ml_gtk_curve_set_gamma" - external set_range : - [>`curve] obj -> min_x:float -> max_x:float -> - min_y:float -> max_y:float -> unit - = "ml_gtk_curve_set_gamma" -end -*) - -module Misc = struct - let cast w : misc obj = Object.try_cast w "GtkMisc" - external coerce : [>`misc] obj -> misc obj = "%identity" - external set_alignment : [>`misc] obj -> x:float -> y:float -> unit - = "ml_gtk_misc_set_alignment" - external set_padding : [>`misc] obj -> x:int -> y:int -> unit - = "ml_gtk_misc_set_padding" - external get_xalign : [>`misc] obj -> float = "ml_gtk_misc_get_xalign" - external get_yalign : [>`misc] obj -> float = "ml_gtk_misc_get_yalign" - external get_xpad : [>`misc] obj -> int = "ml_gtk_misc_get_xpad" - external get_ypad : [>`misc] obj -> int = "ml_gtk_misc_get_ypad" - let set_alignment w ?x ?y () = - set_alignment w ~x:(may_default get_xalign w ~opt:x) - ~y:(may_default get_yalign w ~opt:y) - let set_padding w ?x ?y () = - set_padding w ~x:(may_default get_xpad w ~opt:x) - ~y:(may_default get_ypad w ~opt:y) - let set ?xalign ?yalign ?xpad ?ypad ?(width = -2) ?(height = -2) w = - if xalign <> None || yalign <> None then - set_alignment w ?x:xalign ?y:yalign (); - if xpad <> None || ypad <> None then - set_padding w ?x:xpad ?y:ypad (); - if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height -end - -module Arrow = struct - let cast w : arrow obj = Object.try_cast w "GtkArrow" - external create : kind:arrow_type -> shadow:shadow_type -> arrow obj - = "ml_gtk_arrow_new" - external set : [>`arrow] obj -> kind:arrow_type -> shadow:shadow_type -> unit - = "ml_gtk_arrow_set" -end - -module Image = struct - let cast w : image obj = Object.try_cast w "GtkImage" - external create : Gdk.image -> ?mask:Gdk.bitmap -> image obj - = "ml_gtk_image_new" - let create ?mask img = create img ?mask - external set : [>`image] obj -> Gdk.image -> ?mask:Gdk.bitmap -> unit - = "ml_gtk_image_set" -end - -module Label = struct - let cast w : label obj = Object.try_cast w "GtkLabel" - external coerce : [>`label] obj -> label obj = "%identity" - external create : string -> label obj = "ml_gtk_label_new" - external set_text : [>`label] obj -> string -> unit = "ml_gtk_label_set_text" - external set_justify : [>`label] obj -> justification -> unit - = "ml_gtk_label_set_justify" - external set_pattern : [>`label] obj -> string -> unit - = "ml_gtk_label_set_pattern" - external set_line_wrap : [>`label] obj -> bool -> unit - = "ml_gtk_label_set_line_wrap" - let set ?text ?justify ?line_wrap ?pattern w = - may ~f:(set_text w) text; - may ~f:(set_justify w) justify; - may ~f:(set_line_wrap w) line_wrap; - may ~f:(set_pattern w) pattern - external get_text : [>`label] obj -> string = "ml_gtk_label_get_label" -end - -module TipsQuery = struct - let cast w : tips_query obj = Object.try_cast w "GtkTipsQuery" - external create : unit -> tips_query obj = "ml_gtk_tips_query_new" - external start : [>`tipsquery] obj -> unit = "ml_gtk_tips_query_start_query" - external stop : [>`tipsquery] obj -> unit = "ml_gtk_tips_query_stop_query" - external set_caller : [>`tipsquery] obj -> [>`widget] obj -> unit - = "ml_gtk_tips_query_set_caller" - external set_labels : - [>`tipsquery] obj -> inactive:string -> no_tip:string -> unit - = "ml_gtk_tips_query_set_labels" - external set_emit_always : [>`tipsquery] obj -> bool -> unit - = "ml_gtk_tips_query_set_emit_always" - external get_caller : [>`tipsquery] obj -> widget obj - = "ml_gtk_tips_query_get_caller" - external get_label_inactive : [>`tipsquery] obj -> string - = "ml_gtk_tips_query_get_label_inactive" - external get_label_no_tip : [>`tipsquery] obj -> string - = "ml_gtk_tips_query_get_label_no_tip" - external get_emit_always : [>`tipsquery] obj -> bool - = "ml_gtk_tips_query_get_emit_always" - let set_labels ?inactive ?no_tip w = - set_labels w - ~inactive:(may_default get_label_inactive w ~opt:inactive) - ~no_tip:(may_default get_label_no_tip w ~opt:no_tip) - let set ?caller ?emit_always ?label_inactive ?label_no_tip w = - may caller ~f:(set_caller w); - may emit_always ~f:(set_emit_always w); - if label_inactive <> None || label_no_tip <> None then - set_labels w ?inactive:label_inactive ?no_tip:label_no_tip - module Signals = struct - open GtkArgv - open GtkSignal - let start_query : ([>`tipsquery],_) t = - { name = "start_query"; marshaller = marshal_unit } - let stop_query : ([>`tipsquery],_) t = - { name = "stop_query"; marshaller = marshal_unit } - let widget_entered : - ([>`tipsquery], - widget obj option -> - text:string option -> privat:string option -> unit) t = - let marshal f _ = function - | OBJECT opt :: STRING text :: STRING privat :: _ -> - f (may_map ~f:Widget.cast opt) ~text ~privat - | _ -> invalid_arg "GtkMisc.TipsQuery.Signals.marshal_entered" - in - { name = "widget_entered"; marshaller = marshal } - let widget_selected : - ([>`tipsquery], - widget obj option -> - text:string option -> - privat:string option -> GdkEvent.Button.t option -> bool) t = - let marshal f argv = function - | OBJECT obj :: STRING text :: STRING privat :: POINTER p :: _ -> - let stop = - f (may_map ~f:Widget.cast obj) ~text ~privat - (may_map ~f:GdkEvent.unsafe_copy p) - in set_result argv (`BOOL stop) - | _ -> invalid_arg "GtkMisc.TipsQuery.Signals.marshal_selected" - in - { name = "widget_selected"; marshaller = marshal } - end -end - -module Pixmap = struct - let cast w : pixmap obj = Object.try_cast w "GtkPixmap" - external create : Gdk.pixmap -> ?mask:Gdk.bitmap -> pixmap obj - = "ml_gtk_pixmap_new" - let create ?mask img = create img ?mask - external set : - [>`pixmap] obj -> ?pixmap:Gdk.pixmap -> ?mask:Gdk.bitmap -> unit - = "ml_gtk_pixmap_set" - external pixmap : [>`pixmap] obj -> Gdk.pixmap = "ml_GtkPixmap_pixmap" - external mask : [>`pixmap] obj -> Gdk.bitmap = "ml_GtkPixmap_mask" -end - -module Separator = struct - let cast w : separator obj = Object.try_cast w "GtkSeparator" - external hseparator_new : unit -> separator obj = "ml_gtk_hseparator_new" - external vseparator_new : unit -> separator obj = "ml_gtk_vseparator_new" - let create (dir : Tags.orientation) = - if dir = `HORIZONTAL then hseparator_new () else vseparator_new () -end - -module FontSelection = struct - type null_terminated - let null_terminated arg : null_terminated = - match arg with None -> Obj.magic Gpointer.raw_null - | Some l -> - let len = List.length l in - let arr = Array.create (len + 1) "" in - let rec loop i = function - [] -> arr.(i) <- Obj.magic Gpointer.raw_null - | s::l -> arr.(i) <- s; loop (i+1) l - in loop 0 l; - Obj.magic (arr : string array) - let cast w : font_selection obj = - Object.try_cast w "GtkFontSelection" - external create : unit -> font_selection obj - = "ml_gtk_font_selection_new" - external get_font : [>`fontsel] obj -> Gdk.font - = "ml_gtk_font_selection_get_font" - let get_font w = - try Some (get_font w) with Gpointer.Null -> None - external get_font_name : [>`fontsel] obj -> string - = "ml_gtk_font_selection_get_font_name" - let get_font_name w = - try Some (get_font_name w) with Gpointer.Null -> None - external set_font_name : [>`fontsel] obj -> string -> unit - = "ml_gtk_font_selection_set_font_name" - external set_filter : - [>`fontsel] obj -> font_filter_type -> font_type list -> - null_terminated -> null_terminated -> null_terminated -> - null_terminated -> null_terminated -> null_terminated -> unit - = "ml_gtk_font_selection_set_filter_bc" - "ml_gtk_font_selection_set_filter" - let set_filter w ?kind:(tl=[`ALL]) ?foundry - ?weight ?slant ?setwidth ?spacing ?charset filter = - set_filter w filter tl (null_terminated foundry) - (null_terminated weight) (null_terminated slant) - (null_terminated setwidth) (null_terminated spacing) - (null_terminated charset) - external get_preview_text : [>`fontsel] obj -> string - = "ml_gtk_font_selection_get_preview_text" - external set_preview_text : [>`fontsel] obj -> string -> unit - = "ml_gtk_font_selection_set_preview_text" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkNew.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkNew.ml deleted file mode 100644 index 532a709d7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkNew.ml +++ /dev/null @@ -1,56 +0,0 @@ -(* $Id$ *) - -open Gtk - -type t - -(* if you modify this type modify widget_info_array - in ml_gtk.c in accordance *) -type object_type = - | OBJECT | WIDGET | MISC | LABEL | ACCELLABEL | TIPSQUERY | ARROW - | IMAGE | PIXMAP | CONTAINER | BIN | ALIGNMENT | FRAME | ASPECTFRAME - | BUTTON | TOGGLEBUTTON | CHECKBUTTON | RADIOBUTTON | OPTIONMENU - | ITEM | MENUITEM | CHECKMENUITEM | RADIOMENUITEM | TEAROFFMENUITEM - | LISTITEM | TREEITEM | WINDOW | COLORSELECTIONDIALOG | DIALOG - | INPUTDIALOG | FILESELECTION | FONTSELECTIONDIALOG | PLUG - | EVENTBOX | HANDLEBOX | SCROLLEDWINDOW | VIEWPORT | BOX - | BUTTONBOX | HBUTTONBOX | VBUTTONBOX | VBOX | COLORSELECTION - | GAMMACURVE | HBOX | COMBO | STATUSBAR | CLIST | CTREE | FIXED - | NOTEBOOK | FONTSELECTION | PANED | HPANED | VPANED | LAYOUT - | LIST | MENUSHELL | MENUBAR | MENU | PACKER | SOCKET | TABLE - | TOOLBAR | TREE | CALENDAR | DRAWINGAREA | CURVE | EDITABLE - | ENTRY | SPINBUTTON | TEXT | RULER | HRULER | VRULER | RANGE - | SCALE | HSCALE | VSCALE | SCROLLBAR | HSCROLLBAR | VSCROLLBAR - | SEPARATOR | HSEPARATOR | VSEPARATOR | PREVIEW | PROGRESS - | PROGRESSBAR | DATA | ADJUSTMENT | TOOLTIPS | ITEMFACTORY - -external set_ml_class_init : (t -> unit) -> unit = "set_ml_class_init" -external signal_new : string -> int -> t -> object_type -> int -> int - = "ml_gtk_signal_new" -external object_class_add_signals : t -> int array -> int -> unit - = "ml_gtk_object_class_add_signals" -external type_unique : - name:string -> parent:object_type -> nsignals:int -> gtk_type - = "ml_gtk_type_unique" -external type_new : gtk_type -> unit obj - = "ml_gtk_type_new" - -open GtkSignal - -let make_new_widget ~name ~parent - ~(signals : ('a, unit -> unit) GtkSignal.t list) = - let nsignals = List.length signals in - let new_type = type_unique ~name ~parent ~nsignals in - let signal_num_array = Array.create nsignals 0 in - let class_init_func classe = - List.fold_left signals ~init:0 ~f: - (fun i signal -> - signal_num_array.(i) <- signal_new signal.name 1 classe parent i; - i+1); - object_class_add_signals classe signal_num_array nsignals - in - new_type, - (fun () -> - set_ml_class_init class_init_func; - type_new new_type) - (* , signal_num_array *) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkPack.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkPack.ml deleted file mode 100644 index 20adb0505..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkPack.ml +++ /dev/null @@ -1,318 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Box = struct - let cast w : box obj = Object.try_cast w "GtkBox" - external coerce : [>`box] obj -> box obj = "%identity" - external pack_start : - [>`box] obj -> [>`widget] obj -> - expand:bool -> fill:bool -> padding:int -> unit - = "ml_gtk_box_pack_start" - external pack_end : - [>`box] obj -> [>`widget] obj -> - expand:bool -> fill:bool -> padding:int -> unit - = "ml_gtk_box_pack_end" - let pack box ?from:( dir = (`START : pack_type)) - ?(expand=false) ?(fill=true) ?(padding=0) child = - (match dir with `START -> pack_start | `END -> pack_end) - box child ~expand ~fill ~padding - external reorder_child : [>`box] obj -> [>`widget] obj -> pos:int -> unit - = "ml_gtk_box_reorder_child" - external set_homogeneous : [>`box] obj -> bool -> unit - = "ml_gtk_box_set_homogeneous" - external set_spacing : [>`box] obj -> int -> unit - = "ml_gtk_box_set_spacing" - let set ?homogeneous ?spacing w = - may homogeneous ~f:(set_homogeneous w); - may spacing ~f:(set_spacing w) - type packing = - { expand: bool; fill: bool; padding: int; pack_type: pack_type } - external query_child_packing : [>`box] obj -> [>`widget] obj -> packing - = "ml_gtk_box_query_child_packing" - external set_child_packing : - [>`box] obj -> [>`widget] obj -> - ?expand:bool -> ?fill:bool -> ?padding:int -> ?from:pack_type -> unit - = "ml_gtk_box_set_child_packing_bc" "ml_gtk_box_set_child_packing" - external hbox_new : homogeneous:bool -> spacing:int -> box obj - = "ml_gtk_hbox_new" - external vbox_new : homogeneous:bool -> spacing:int -> box obj - = "ml_gtk_vbox_new" - let create (dir : orientation) ?(homogeneous=false) ?(spacing=0) () = - (match dir with `HORIZONTAL -> hbox_new | `VERTICAL -> vbox_new) - ~homogeneous ~spacing -end - -module BBox = struct - (* Omitted defaults setting *) - let cast w : button_box obj = Object.try_cast w "GtkBBox" - external coerce : [>`bbox] obj -> button_box obj = "%identity" - type bbox_style = [ `DEFAULT_STYLE|`SPREAD|`EDGE|`START|`END ] - external get_spacing : [>`bbox] obj -> int = "ml_gtk_button_box_get_spacing" - external get_child_width : [>`bbox] obj -> int - = "ml_gtk_button_box_get_child_min_width" - external get_child_height : [>`bbox] obj -> int - = "ml_gtk_button_box_get_child_min_height" - external get_child_ipadx : [>`bbox] obj -> int - = "ml_gtk_button_box_get_child_ipad_x" - external get_child_ipady : [>`bbox] obj -> int - = "ml_gtk_button_box_get_child_ipad_y" - external get_layout : [>`bbox] obj -> bbox_style - = "ml_gtk_button_box_get_layout_style" - external set_spacing : [>`bbox] obj -> int -> unit - = "ml_gtk_button_box_set_spacing" - external set_child_size : [>`bbox] obj -> width:int -> height:int -> unit - = "ml_gtk_button_box_set_child_size" - external set_child_ipadding : [>`bbox] obj -> x:int -> y:int -> unit - = "ml_gtk_button_box_set_child_ipadding" - external set_layout : [>`bbox] obj -> bbox_style -> unit - = "ml_gtk_button_box_set_layout" - let set_child_size w ?width ?height () = - set_child_size w ~width:(may_default get_child_width w ~opt:width) - ~height:(may_default get_child_height w ~opt:height) - let set_child_ipadding w ?x ?y () = - set_child_ipadding w - ~x:(may_default get_child_ipadx w ~opt:x) - ~y:(may_default get_child_ipady w ~opt:y) - let set ?spacing ?child_width ?child_height ?child_ipadx - ?child_ipady ?layout w = - may spacing ~f:(set_spacing w); - if child_width <> None || child_height <> None then - set_child_size w ?width:child_width ?height:child_height (); - if child_ipadx <> None || child_ipady <> None then - set_child_ipadding w ?x:child_ipadx ?y:child_ipady (); - may layout ~f:(set_layout w) - external set_child_size_default : width:int -> height:int -> unit - = "ml_gtk_button_box_set_child_size_default" - external set_child_ipadding_default : x:int -> y:int -> unit - = "ml_gtk_button_box_set_child_ipadding_default" - external create_hbbox : unit -> button_box obj = "ml_gtk_hbutton_box_new" - external create_vbbox : unit -> button_box obj = "ml_gtk_vbutton_box_new" - let create (dir : orientation) = - if dir = `HORIZONTAL then create_hbbox () else create_vbbox () -end - -module Fixed = struct - let cast w : fixed obj = Object.try_cast w "GtkFixed" - external create : unit -> fixed obj = "ml_gtk_fixed_new" - external put : [>`fixed] obj -> [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_fixed_put" - external move : [>`fixed] obj -> [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_fixed_move" -end - -module Layout = struct - let cast w : layout obj = Object.try_cast w "GtkLayout" - external create : - [>`adjustment] optobj -> [>`adjustment] optobj -> layout obj - = "ml_gtk_layout_new" - external put : [>`layout] obj -> [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_layout_put" - external move : [>`layout] obj -> [>`widget] obj -> x:int -> y:int -> unit - = "ml_gtk_layout_move" - external set_size : [>`layout] obj -> width:int -> height:int -> unit - = "ml_gtk_layout_set_size" - external get_hadjustment : [>`layout] obj -> adjustment obj - = "ml_gtk_layout_get_hadjustment" - external get_vadjustment : [>`layout] obj -> adjustment obj - = "ml_gtk_layout_get_vadjustment" - external set_hadjustment : [>`layout] obj -> [>`adjustment] obj -> unit - = "ml_gtk_layout_set_hadjustment" - external set_vadjustment : [>`layout] obj -> [>`adjustment] obj -> unit - = "ml_gtk_layout_set_vadjustment" - external freeze : [>`layout] obj -> unit - = "ml_gtk_layout_freeze" - external thaw : [>`layout] obj -> unit - = "ml_gtk_layout_thaw" - external get_height : [>`layout] obj -> int - = "ml_gtk_layout_get_height" - external get_width : [>`layout] obj -> int - = "ml_gtk_layout_get_width" - let set_size ?width ?height w = - set_size w ~width:(may_default get_width w ~opt:width) - ~height:(may_default get_height w ~opt:height) -end - - -module Packer = struct - let cast w : packer obj = Object.try_cast w "GtkPacker" - external create : unit -> packer obj = "ml_gtk_packer_new" - external add : - [>`packer] obj -> [>`widget] obj -> - ?side:side_type -> ?anchor:anchor_type -> - ?options:packer_options list -> - ?border_width:int -> ?pad_x:int -> ?pad_y:int -> - ?i_pad_x:int -> ?i_pad_y:int -> unit - = "ml_gtk_packer_add_bc" "ml_gtk_packer_add" - external add_defaults : - [>`packer] obj -> [>`widget] obj -> - ?side:side_type -> ?anchor:anchor_type -> - ?options:packer_options list -> unit - = "ml_gtk_packer_add_defaults" - external set_child_packing : - [>`packer] obj -> [>`widget] obj -> - ?side:side_type -> ?anchor:anchor_type -> - ?options:packer_options list -> - ?border_width:int -> ?pad_x:int -> ?pad_y:int -> - ?i_pad_x:int -> ?i_pad_y:int -> unit - = "ml_gtk_packer_set_child_packing_bc" "ml_gtk_packer_set_child_packing" - external reorder_child : [>`packer] obj -> [>`widget] obj -> pos:int -> unit - = "ml_gtk_packer_reorder_child" - external set_spacing : [>`packer] obj -> int -> unit - = "ml_gtk_packer_set_spacing" - external set_defaults : - [>`packer] obj -> ?border_width:int -> ?pad_x:int -> ?pad_y:int -> - ?i_pad_x:int -> ?i_pad_y:int -> unit -> unit - = "ml_gtk_packer_set_defaults_bc" "ml_gtk_packer_set_defaults" - - let build_options ?(expand=false) ?(fill=`BOTH) () = - (if expand then [`PACK_EXPAND] else []) @ - (match (fill : expand_type) with `NONE -> [] - | `X -> [`FILL_X] - | `Y -> [`FILL_Y] - | `BOTH -> [`FILL_X;`FILL_Y]) -end - -module Paned = struct - let cast w : paned obj = Object.try_cast w "GtkPaned" - external add1 : [>`paned] obj -> [>`widget] obj -> unit - = "ml_gtk_paned_add1" - external add2 : [>`paned] obj -> [>`widget] obj -> unit - = "ml_gtk_paned_add2" - external set_handle_size : [>`paned] obj -> int -> unit - = "ml_gtk_paned_set_handle_size" - external set_gutter_size : [>`paned] obj -> int -> unit - = "ml_gtk_paned_set_gutter_size" - let set ?handle_size ?gutter_size w = - may ~f:(set_handle_size w) handle_size; - may ~f:(set_gutter_size w) gutter_size - external child1 : [>`paned] obj -> widget obj = "ml_gtk_paned_child1" - external child2 : [>`paned] obj -> widget obj = "ml_gtk_paned_child2" - external handle_size : [>`paned] obj -> int = "ml_gtk_paned_handle_size" - external gutter_size : [>`paned] obj -> int = "ml_gtk_paned_handle_size" - external hpaned_new : unit -> paned obj = "ml_gtk_hpaned_new" - external vpaned_new : unit -> paned obj = "ml_gtk_vpaned_new" - let create (dir : orientation) = - if dir = `HORIZONTAL then hpaned_new () else vpaned_new () -end - -module Table = struct - let cast w : table obj = Object.try_cast w "GtkTable" - external create : int -> int -> homogeneous:bool -> table obj - = "ml_gtk_table_new" - let create ~rows:r ~columns:c ?(homogeneous=false) () = - create r c ~homogeneous - external attach : - [>`table] obj -> [>`widget] obj -> left:int -> right:int -> - top:int -> bottom:int -> xoptions:attach_options list -> - yoptions:attach_options list -> xpadding:int -> ypadding:int -> unit - = "ml_gtk_table_attach_bc" "ml_gtk_table_attach" - let has_x : expand_type -> bool = - function `X|`BOTH -> true | `Y|`NONE -> false - let has_y : expand_type -> bool = - function `Y|`BOTH -> true | `X|`NONE -> false - let attach t ~left ~top ?(right=left+1) ?(bottom=top+1) - ?(expand=`NONE) ?(fill=`BOTH) ?(shrink=`NONE) - ?(xpadding=0) ?(ypadding=0) w = - let xoptions = if has_x shrink then [`SHRINK] else [] in - let xoptions = if has_x fill then `FILL::xoptions else xoptions in - let xoptions = if has_x expand then `EXPAND::xoptions else xoptions in - let yoptions = if has_y shrink then [`SHRINK] else [] in - let yoptions = if has_y fill then `FILL::yoptions else yoptions in - let yoptions = if has_y expand then `EXPAND::yoptions else yoptions in - attach t w ~left ~top ~right ~bottom ~xoptions ~yoptions - ~xpadding ~ypadding - external set_row_spacing : [>`table] obj -> int -> int -> unit - = "ml_gtk_table_set_row_spacing" - external set_col_spacing : [>`table] obj -> int -> int -> unit - = "ml_gtk_table_set_col_spacing" - external set_row_spacings : [>`table] obj -> int -> unit - = "ml_gtk_table_set_row_spacings" - external set_col_spacings : [>`table] obj -> int -> unit - = "ml_gtk_table_set_col_spacings" - external set_homogeneous : [>`table] obj -> bool -> unit - = "ml_gtk_table_set_homogeneous" - let set ?homogeneous ?row_spacings ?col_spacings w = - may row_spacings ~f:(set_row_spacings w); - may col_spacings ~f:(set_col_spacings w); - may homogeneous ~f:(set_homogeneous w) -end - -module Notebook = struct - let cast w : notebook obj = Object.try_cast w "GtkNotebook" - external create : unit -> notebook obj = "ml_gtk_notebook_new" - external insert_page : - [>`notebook] obj -> [>`widget] obj -> tab_label:[>`widget] optobj -> - menu_label:[>`widget] optobj -> pos:int -> unit - = "ml_gtk_notebook_insert_page_menu" - (* default is append to end *) - external remove_page : [>`notebook] obj -> int -> unit - = "ml_gtk_notebook_remove_page" - external get_current_page : [>`notebook] obj -> int - = "ml_gtk_notebook_get_current_page" - external set_page : [>`notebook] obj -> int -> unit - = "ml_gtk_notebook_set_page" - external set_tab_pos : [>`notebook] obj -> position -> unit - = "ml_gtk_notebook_set_tab_pos" - external set_homogeneous_tabs : [>`notebook] obj -> bool -> unit - = "ml_gtk_notebook_set_homogeneous_tabs" - external set_show_tabs : [>`notebook] obj -> bool -> unit - = "ml_gtk_notebook_set_show_tabs" - external set_show_border : [>`notebook] obj -> bool -> unit - = "ml_gtk_notebook_set_show_border" - external set_scrollable : [>`notebook] obj -> bool -> unit - = "ml_gtk_notebook_set_scrollable" - external set_tab_border : [>`notebook] obj -> int -> unit - = "ml_gtk_notebook_set_tab_border" - external popup_enable : [>`notebook] obj -> unit - = "ml_gtk_notebook_popup_enable" - external popup_disable : [>`notebook] obj -> unit - = "ml_gtk_notebook_popup_disable" - external get_nth_page : [>`notebook] obj -> int -> widget obj - = "ml_gtk_notebook_get_nth_page" - external page_num : [>`notebook] obj -> [>`widget] obj -> int - = "ml_gtk_notebook_page_num" - external next_page : [>`notebook] obj -> unit - = "ml_gtk_notebook_next_page" - external prev_page : [>`notebook] obj -> unit - = "ml_gtk_notebook_prev_page" - external get_tab_label : [>`notebook] obj -> [>`widget] obj -> widget obj - = "ml_gtk_notebook_get_tab_label" - external set_tab_label : - [>`notebook] obj -> [>`widget] obj -> [>`widget] obj -> unit - = "ml_gtk_notebook_set_tab_label" - external get_menu_label : [>`notebook] obj -> [>`widget] obj -> widget obj - = "ml_gtk_notebook_get_menu_label" - external set_menu_label : - [>`notebook] obj -> [>`widget] obj -> [>`widget] obj -> unit - = "ml_gtk_notebook_set_menu_label" - external reorder_child : [>`notebook] obj -> [>`widget] obj -> int -> unit - = "ml_gtk_notebook_reorder_child" - - let set_popup w = function - true -> popup_enable w - | false -> popup_disable w - let set ?page ?tab_pos ?show_tabs ?homogeneous_tabs - ?show_border ?scrollable ?tab_border ?popup w = - let may_set f = may ~f:(f w) in - may_set set_page page; - may_set set_tab_pos tab_pos; - may_set set_show_tabs show_tabs; - may_set set_homogeneous_tabs homogeneous_tabs; - may_set set_show_border show_border; - may_set set_scrollable scrollable; - may_set set_tab_border tab_border; - may_set set_popup popup - module Signals = struct - open GtkArgv - open GtkSignal - let marshal_page f argv = function - | _ :: INT page :: _ -> f page - | _ -> invalid_arg "GtkPack.Notebook.Signals.marshal_page" - let switch_page : ([>`notebook],_) t = - { name = "switch_page"; marshaller = marshal_page } - end -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkRange.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkRange.ml deleted file mode 100644 index b67e49b2e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkRange.ml +++ /dev/null @@ -1,147 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Progress = struct - let cast w : progress obj = Object.try_cast w "GtkProgress" - external set_show_text : [>`progress] obj -> bool -> unit - = "ml_gtk_progress_set_show_text" - external set_text_alignment : - [>`progress] obj -> ?x:float -> ?y:float -> unit -> unit - = "ml_gtk_progress_set_show_text" - external set_format_string : [>`progress] obj -> string -> unit - = "ml_gtk_progress_set_format_string" - external set_adjustment : [>`progress] obj -> [>`adjustment] obj -> unit - = "ml_gtk_progress_set_adjustment" - external configure : - [>`progress] obj -> current:float -> min:float -> max:float -> unit - = "ml_gtk_progress_configure" - external set_percentage : [>`progress] obj -> float -> unit - = "ml_gtk_progress_set_percentage" - external set_value : [>`progress] obj -> float -> unit - = "ml_gtk_progress_set_value" - external get_value : [>`progress] obj -> float - = "ml_gtk_progress_get_value" - external get_percentage : [>`progress] obj -> float - = "ml_gtk_progress_get_current_percentage" - external set_activity_mode : [>`progress] obj -> bool -> unit - = "ml_gtk_progress_set_activity_mode" - external get_current_text : [>`progress] obj -> string - = "ml_gtk_progress_get_current_text" - external get_adjustment : [>`progress] obj -> adjustment obj - = "ml_gtk_progress_get_adjustment" - let set ?value ?percentage ?activity_mode - ?show_text ?format_string ?text_xalign ?text_yalign w = - may value ~f:(set_value w); - may percentage ~f:(set_percentage w); - may activity_mode ~f:(set_activity_mode w); - may show_text ~f:(set_show_text w); - may format_string ~f:(set_format_string w); - if text_xalign <> None || text_yalign <> None then - set_text_alignment w ?x:text_xalign ?y:text_yalign () -end - -module ProgressBar = struct - let cast w : progress_bar obj = Object.try_cast w "GtkProgressBar" - external create : unit -> progress_bar obj = "ml_gtk_progress_bar_new" - external create_with_adjustment : [>`adjustment] obj -> progress_bar obj - = "ml_gtk_progress_bar_new_with_adjustment" - external set_bar_style : - [>`progressbar] obj -> [`CONTINUOUS|`DISCRETE] -> unit - = "ml_gtk_progress_bar_set_bar_style" - external set_discrete_blocks : [>`progressbar] obj -> int -> unit - = "ml_gtk_progress_bar_set_discrete_blocks" - external set_activity_step : [>`progressbar] obj -> int -> unit - = "ml_gtk_progress_bar_set_activity_step" - external set_activity_blocks : [>`progressbar] obj -> int -> unit - = "ml_gtk_progress_bar_set_activity_blocks" - external set_orientation : - [>`progressbar] obj -> Tags.progress_bar_orientation -> unit - = "ml_gtk_progress_bar_set_orientation" - let set ?bar_style ?discrete_blocks ?activity_step ?activity_blocks w = - let may_set f opt = may opt ~f:(f w) in - may_set set_bar_style bar_style; - may_set set_discrete_blocks discrete_blocks; - may_set set_activity_step activity_step; - may_set set_activity_blocks activity_blocks -end - -module Range = struct - let cast w : range obj = Object.try_cast w "GtkRange" - external coerce : [>`range] obj -> range obj = "%identity" - external get_adjustment : [>`range] obj -> adjustment obj - = "ml_gtk_range_get_adjustment" - external set_adjustment : [>`range] obj -> [>`adjustment] obj -> unit - = "ml_gtk_range_set_adjustment" - external set_update_policy : [>`range] obj -> update_type -> unit - = "ml_gtk_range_set_update_policy" - let set ?adjustment ?update_policy w = - may adjustment ~f:(set_adjustment w); - may update_policy ~f:(set_update_policy w) -end - -module Scale = struct - let cast w : scale obj = Object.try_cast w "GtkScale" - external hscale_new : [>`adjustment] optobj -> scale obj - = "ml_gtk_hscale_new" - external vscale_new : [>`adjustment] optobj -> scale obj - = "ml_gtk_vscale_new" - let create ?adjustment (dir : orientation) = - let create = if dir = `HORIZONTAL then hscale_new else vscale_new in - create (Gpointer.optboxed adjustment) - external set_digits : [>`scale] obj -> int -> unit - = "ml_gtk_scale_set_digits" - external set_draw_value : [>`scale] obj -> bool -> unit - = "ml_gtk_scale_set_draw_value" - external set_value_pos : [>`scale] obj -> position -> unit - = "ml_gtk_scale_set_value_pos" - external get_value_width : [>`scale] obj -> int - = "ml_gtk_scale_get_value_width" - external draw_value : [>`scale] obj -> unit - = "ml_gtk_scale_draw_value" - let set ?digits ?draw_value ?value_pos w = - may digits ~f:(set_digits w); - may draw_value ~f:(set_draw_value w); - may value_pos ~f:(set_value_pos w) -end - -module Scrollbar = struct - let cast w : scrollbar obj = Object.try_cast w "GtkScrollbar" - external hscrollbar_new : [>`adjustment] optobj -> scrollbar obj - = "ml_gtk_hscrollbar_new" - external vscrollbar_new : [>`adjustment] optobj -> scrollbar obj - = "ml_gtk_vscrollbar_new" - let create ?adjustment (dir : orientation) = - let create = if dir = `HORIZONTAL then hscrollbar_new else vscrollbar_new - in create (Gpointer.optboxed adjustment) -end - -module Ruler = struct - let cast w : ruler obj = Object.try_cast w "GtkRuler" - external hruler_new : unit -> ruler obj = "ml_gtk_hruler_new" - external vruler_new : unit -> ruler obj = "ml_gtk_vruler_new" - let create (dir : orientation) = - if dir = `HORIZONTAL then hruler_new () else vruler_new () - external set_metric : [>`ruler] obj -> metric_type -> unit - = "ml_gtk_ruler_set_metric" - external set_range : - [>`ruler] obj -> - lower:float -> upper:float -> position:float -> max_size:float -> unit - = "ml_gtk_ruler_set_range" - external get_lower : [>`ruler] obj -> float = "ml_gtk_ruler_get_lower" - external get_upper : [>`ruler] obj -> float = "ml_gtk_ruler_get_upper" - external get_position : [>`ruler] obj -> float = "ml_gtk_ruler_get_position" - external get_max_size : [>`ruler] obj -> float = "ml_gtk_ruler_get_max_size" - let set_range ?lower ?upper ?position ?max_size w = - set_range w ~lower:(may_default get_lower w ~opt:lower) - ~upper:(may_default get_upper w ~opt:upper) - ~position:(may_default get_position w ~opt:position) - ~max_size:(may_default get_max_size w ~opt:max_size) - let set ?metric ?lower ?upper ?position ?max_size w = - may metric ~f:(set_metric w); - if lower <> None || upper <> None || position <> None || max_size <> None - then set_range w ?lower ?upper ?position ?max_size -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkSignal.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkSignal.ml deleted file mode 100644 index 8fa460288..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkSignal.ml +++ /dev/null @@ -1,65 +0,0 @@ -(* $Id$ *) - -open Gtk - -type id -type ('a,'b) t = - { name: string; - marshaller: ('b -> GtkArgv.t -> GtkArgv.data list -> unit) } - -let enter_callback = ref (fun () -> ()) -and exit_callback = ref (fun () -> ()) - -let stop_emit_ref = ref false -let stop_emit () = stop_emit_ref := true - -type saved_state = State of bool -let push_callback () = - !enter_callback (); - let old = !stop_emit_ref in - stop_emit_ref := false; - State old - -let pop_callback (State old) = - let res = !stop_emit_ref in - stop_emit_ref := old; - !exit_callback (); - res - -external connect : - 'a obj -> name:string -> callback:(GtkArgv.t -> unit) -> after:bool -> id - = "ml_gtk_signal_connect" -external emit_stop_by_name : 'a obj -> name:string -> unit - = "ml_gtk_signal_emit_stop_by_name" -let connect ~(sgn : ('a, _) t) ~callback ?(after=false) (obj : 'a obj) = - let callback argv = - let old = push_callback () in - let exn = - try sgn.marshaller callback argv (GtkArgv.get_args argv); None - with exn -> Some exn - in - if pop_callback old then emit_stop_by_name obj ~name:sgn.name; - Gaux.may ~f:raise exn - in - connect obj ~name:sgn.name ~callback ~after -external disconnect : 'a obj -> id -> unit - = "ml_gtk_signal_disconnect" -external handler_block : 'a obj -> id -> unit - = "ml_gtk_signal_handler_block" -external handler_unblock : 'a obj -> id -> unit - = "ml_gtk_signal_handler_unblock" - -let marshal_unit f _ _ = f () -let marshal_int f _ = function - | GtkArgv.INT n :: _ -> f n - | _ -> invalid_arg "GtkSignal.marshal_int" - -let emit (obj : 'a obj) ~(sgn : ('a, 'b) t) - ~(emitter : 'a obj -> name:string -> 'b) = - emitter obj ~name:sgn.name -external emit_none : 'a obj -> name:string -> unit -> unit - = "ml_gtk_signal_emit_none" -let emit_unit obj ~sgn = emit obj ~emitter:emit_none ~sgn () -external emit_int : 'a obj -> name:string -> int -> unit - = "ml_gtk_signal_emit_int" -let emit_int = emit ~emitter:emit_int diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkSignal.mli b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkSignal.mli deleted file mode 100644 index 0ef2ab2ea..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkSignal.mli +++ /dev/null @@ -1,45 +0,0 @@ -(* $Id$ *) - -open Gtk - -type id -type ('a,'b) t = - { name: string; - marshaller: ('b -> GtkArgv.t -> GtkArgv.data list -> unit) } - -val stop_emit : unit -> unit - (* Call [stop_emit ()] in a callback to prohibit further handling - of the current signal invocation, by calling [emit_stop_by_name]. - Be careful about where you use it, since the concept of current - signal may be tricky. *) - -val connect : - sgn:('a, 'b) t -> callback:'b -> ?after:bool -> 'a obj -> id - (* You may use [stop_emit] inside the callback *) - -external disconnect : 'a obj -> id -> unit - = "ml_gtk_signal_disconnect" -external emit_stop_by_name : 'a obj -> name:string -> unit - = "ml_gtk_signal_emit_stop_by_name" - (* Unsafe: use [stop_emit] instead. *) -external handler_block : 'a obj -> id -> unit - = "ml_gtk_signal_handler_block" -external handler_unblock : 'a obj -> id -> unit - = "ml_gtk_signal_handler_unblock" - -(* Some marshaller functions, to build signals *) -val marshal_unit : (unit -> unit) -> GtkArgv.t -> GtkArgv.data list -> unit -val marshal_int : (int -> unit) -> GtkArgv.t -> GtkArgv.data list -> unit - -(* Emitter functions *) -val emit : - 'a obj -> sgn:('a, 'b) t -> emitter:('a obj -> name:string -> 'b) -> 'b -val emit_unit : 'a obj -> sgn:('a, unit -> unit) t -> unit -val emit_int : 'a obj -> sgn:('a, int -> unit) t -> int -> unit - -(* Internal functions. *) -val enter_callback : (unit -> unit) ref -val exit_callback : (unit -> unit) ref -type saved_state -val push_callback : unit -> saved_state -val pop_callback : saved_state -> bool diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkThInit.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkThInit.ml deleted file mode 100644 index 517f80be4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkThInit.ml +++ /dev/null @@ -1,5 +0,0 @@ -(* $Id$ *) - -(* Start the main thread in a threaded toplevel *) - -let thread = GtkThread.start () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkThread.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkThread.ml deleted file mode 100644 index 3ab577e3e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkThread.ml +++ /dev/null @@ -1,33 +0,0 @@ -(* $Id$ *) - -open GtkMain - -(* We check first whether there are some event pending, and run - some iterations. We then need to delay, thus focing a thread switch. *) - -let main () = - try - let loop = (Glib.Main.create true) in - Main.loops := loop :: !Main.loops; - while Glib.Main.is_running loop do - let i = ref 0 in - while !i < 100 && Glib.Main.pending () do - Glib.Main.iteration true; - incr i - done; - Thread.delay 0.001 - done; - Main.loops := List.tl !Main.loops - with exn -> - Main.loops := List.tl !Main.loops; - raise exn - -let start = Thread.create main - -let _ = - let mutex = Mutex.create () in - let depth = ref 0 in - GtkSignal.enter_callback := - (fun () -> if !depth = 0 then Mutex.lock mutex; incr depth); - GtkSignal.exit_callback := - (fun () -> decr depth; if !depth = 0 then Mutex.unlock mutex) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkTree.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkTree.ml deleted file mode 100644 index 926074167..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkTree.ml +++ /dev/null @@ -1,122 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module TreeItem = struct - let cast w : tree_item obj = Object.try_cast w "GtkTreeItem" - external create : unit -> tree_item obj = "ml_gtk_tree_item_new" - external create_with_label : string -> tree_item obj - = "ml_gtk_tree_item_new_with_label" - let create ?label () = - match label with None -> create () - | Some label -> create_with_label label - external set_subtree : [>`treeitem] obj -> [>`widget] obj -> unit - = "ml_gtk_tree_item_set_subtree" - external remove_subtree : [>`treeitem] obj -> unit - = "ml_gtk_tree_item_remove_subtree" - external expand : [>`treeitem] obj -> unit - = "ml_gtk_tree_item_expand" - external collapse : [>`treeitem] obj -> unit - = "ml_gtk_tree_item_collapse" - external subtree : [>`treeitem] obj -> tree obj - = "ml_GTK_TREE_ITEM_SUBTREE" - module Signals = struct - open GtkSignal - let expand : ([>`treeitem],_) t = - { name = "expand"; marshaller = marshal_unit } - let collapse : ([>`treeitem],_) t = - { name = "collapse"; marshaller = marshal_unit } - end -end - -module Tree = struct - let cast w : tree obj = Object.try_cast w "GtkTree" - external coerce : [>`tree] obj -> tree obj = "%identity" - external create : unit -> tree obj = "ml_gtk_tree_new" - external insert : [>`tree] obj -> [>`treeitem] obj -> pos:int -> unit - = "ml_gtk_tree_insert" - external remove_items : [>`tree] obj -> [>`treeitem] obj list -> unit - = "ml_gtk_tree_remove_items" - external clear_items : [>`tree] obj -> start:int -> stop:int -> unit - = "ml_gtk_tree_clear_items" - external select_item : [>`tree] obj -> pos:int -> unit - = "ml_gtk_tree_select_item" - external unselect_item : [>`tree] obj -> pos:int -> unit - = "ml_gtk_tree_unselect_item" - external child_position : [>`tree] obj -> [>`treeitem] obj -> int - = "ml_gtk_tree_child_position" - external set_selection_mode : [>`tree] obj -> selection_mode -> unit - = "ml_gtk_tree_set_selection_mode" - external set_view_mode : [>`tree] obj -> [`LINE|`ITEM] -> unit - = "ml_gtk_tree_set_view_mode" - external set_view_lines : [>`tree] obj -> bool -> unit - = "ml_gtk_tree_set_view_lines" - external selection : [>`tree] obj -> tree_item obj list = - "ml_gtk_tree_selection" - let set ?selection_mode ?view_mode ?view_lines w = - let may_set f = may ~f:(f w) in - may_set set_selection_mode selection_mode; - may_set set_view_mode view_mode; - may_set set_view_lines view_lines - module Signals = struct - open GtkSignal - let selection_changed : ([>`tree],_) t = - { name = "selection_changed"; marshaller = marshal_unit } - let select_child : ([>`tree],_) t = - { name = "select_child"; marshaller = Widget.Signals.marshal } - let unselect_child : ([>`tree],_) t = - { name = "unselect_child"; marshaller = Widget.Signals.marshal } - end -end -(* -module CTree = struct - type t - type node = [`ctree] obj * t - let cast w : ctree obj = Object.try_cast w "GtkCTree" - external create : cols:int -> treecol:int -> ctree obj = "ml_gtk_ctree_new" - external insert_node : - [>`ctree] obj -> ?parent:node -> ?sibling:node -> - titles:optstring array -> - spacing:int -> ?pclosed:Gdk.pixmap -> ?mclosed:Gdk.bitmap obj -> - ?popened:Gdk.pixmap -> ?mopened:Gdk.bitmap obj -> - is_leaf:bool -> expanded:bool -> node - = "ml_gtk_ctree_insert_node_bc" "ml_gtk_ctree_insert_node" - let insert_node' - w ?parent ?sibling ?(spacing = 0) ?(is_leaf = true) - ?(expanded = false) - ?pclosed ?mclosed ?popened ?mopened titles = - let len = GtkList.CList.get_columns w in - if List.length titles > len then invalid_arg "CTree.insert_node"; - let arr = Array.create ~len None in - List.fold_left titles ~acc:0 - ~f:(fun ~acc text -> arr.(acc) <- Some text; acc+1); - insert_node w - ?parent ?sibling ~titles:(Array.map ~f:optstring arr) - ~spacing ~is_leaf ~expanded - ?pclosed ?mclosed ?popened ?mopened - external node_set_row_data : [>`ctree] obj -> node:node -> Obj.t -> unit - = "ml_gtk_ctree_node_set_row_data" - external node_get_row_data : [>`ctree] obj -> node:node -> Obj.t - = "ml_gtk_ctree_node_get_row_data" - external set_indent : [>`ctree] obj -> int -> unit - = "ml_gtk_ctree_set_indent" - module Signals = struct - open GtkSignal - let marshal_select f argv = - let node : node = - match GtkArgv.get_pointer argv ~pos:0 with - Some p -> Obj.magic p - | None -> invalid_arg "GtkTree.CTree.Signals.marshal_select" - in - f ~node ~column:(GtkArgv.get_int argv ~pos:1) - - let tree_select_row : ([>`ctree],_) t = - { name = "tree_select_row"; marshaller = marshal_select } - let tree_unselect_row : ([>`ctree],_) t = - { name = "tree_unselect_row"; marshaller = marshal_select } - end -end -*) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkWindow.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkWindow.ml deleted file mode 100644 index ffe00e921..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkWindow.ml +++ /dev/null @@ -1,189 +0,0 @@ -(* $Id$ *) - -open Gaux -open Gtk -open Tags -open GtkBase - -module Window = struct - let cast w : window obj = Object.try_cast w "GtkWindow" - external coerce : [>`window] obj -> window obj = "%identity" - external create : window_type -> window obj = "ml_gtk_window_new" - external set_title : [>`window] obj -> string -> unit - = "ml_gtk_window_set_title" - external set_wmclass : [>`window] obj -> name:string -> clas:string -> unit - = "ml_gtk_window_set_title" - external get_wmclass_name : [>`window] obj -> string - = "ml_gtk_window_get_wmclass_name" - external get_wmclass_class : [>`window] obj -> string - = "ml_gtk_window_get_wmclass_class" - (* set_focus/default are called by Widget.grab_focus/default *) - external set_focus : [>`window] obj -> [>`widget] obj -> unit - = "ml_gtk_window_set_focus" - external set_default : [>`window] obj -> [>`widget] obj -> unit - = "ml_gtk_window_set_default" - external set_policy : - [>`window] obj -> - allow_shrink:bool -> allow_grow:bool -> auto_shrink:bool -> unit - = "ml_gtk_window_set_policy" - external get_allow_shrink : [>`window] obj -> bool - = "ml_gtk_window_get_allow_shrink" - external get_allow_grow : [>`window] obj -> bool - = "ml_gtk_window_get_allow_grow" - external get_auto_shrink : [>`window] obj -> bool - = "ml_gtk_window_get_auto_shrink" - external activate_focus : [>`window] obj -> bool - = "ml_gtk_window_activate_focus" - external activate_default : [>`window] obj -> bool - = "ml_gtk_window_activate_default" - external set_modal : [>`window] obj -> bool -> unit - = "ml_gtk_window_set_modal" - external set_default_size : - [>`window] obj -> width:int -> height:int -> unit - = "ml_gtk_window_set_default_size" - external set_position : [>`window] obj -> window_position -> unit - = "ml_gtk_window_set_position" - external set_transient_for : [>`window] obj ->[>`window] obj -> unit - = "ml_gtk_window_set_transient_for" - - let set_wmclass ?name ?clas:wm_class w = - set_wmclass w ~name:(may_default get_wmclass_name w ~opt:name) - ~clas:(may_default get_wmclass_class w ~opt:wm_class) - let set_policy ?allow_shrink ?allow_grow ?auto_shrink w = - set_policy w - ~allow_shrink:(may_default get_allow_shrink w ~opt:allow_shrink) - ~allow_grow:(may_default get_allow_grow w ~opt:allow_grow) - ~auto_shrink:(may_default get_auto_shrink w ~opt:auto_shrink) - let set ?title ?wm_name ?wm_class ?position ?allow_shrink ?allow_grow - ?auto_shrink ?modal ?(x = -2) ?(y = -2) w = - may title ~f:(set_title w); - if wm_name <> None || wm_class <> None then - set_wmclass w ?name:wm_name ?clas:wm_class; - may position ~f:(set_position w); - if allow_shrink <> None || allow_grow <> None || auto_shrink <> None then - set_policy w ?allow_shrink ?allow_grow ?auto_shrink; - may ~f:(set_modal w) modal; - if x <> -2 || y <> -2 then Widget.set_uposition w ~x ~y - external add_accel_group : [>`window] obj -> accel_group -> unit - = "ml_gtk_window_add_accel_group" - external remove_accel_group : - [>`window] obj -> accel_group -> unit - = "ml_gtk_window_remove_accel_group" - external activate_focus : [>`window] obj -> unit - = "ml_gtk_window_activate_focus" - external activate_default : [>`window] obj -> unit - = "ml_gtk_window_activate_default" - module Signals = struct - open GtkSignal - let move_resize : ([>`window],_) t = - { name = "move_resize"; marshaller = marshal_unit } - let set_focus : ([>`window],_) t = - { name = "set_focus"; marshaller = Widget.Signals.marshal_opt } - end -end - -module Dialog = struct - let cast w : dialog obj = Object.try_cast w "GtkDialog" - external coerce : [>`dialog] obj -> dialog obj = "%identity" - external create : unit -> dialog obj = "ml_gtk_dialog_new" - external action_area : [>`dialog] obj -> box obj - = "ml_GtkDialog_action_area" - external vbox : [>`dialog] obj -> box obj - = "ml_GtkDialog_vbox" -end - -module InputDialog = struct - let cast w : input_dialog obj = Object.try_cast w "GtkInputDialog" - external create : unit -> input_dialog obj = "ml_gtk_input_dialog_new" - module Signals = struct - open GtkSignal - let enable_device : ([>`inputdialog],_) t = - { name = "enable_device"; marshaller = marshal_int } - let disable_device : ([>`inputdialog],_) t = - { name = "disable_device"; marshaller = marshal_int } - end -end - -module FileSelection = struct - let cast w : file_selection obj = Object.try_cast w "GtkFileSelection" - external create : string -> file_selection obj = "ml_gtk_file_selection_new" - external set_filename : [>`filesel] obj -> string -> unit - = "ml_gtk_file_selection_set_filename" - external get_filename : [>`filesel] obj -> string - = "ml_gtk_file_selection_get_filename" - external show_fileop_buttons : [>`filesel] obj -> unit - = "ml_gtk_file_selection_show_fileop_buttons" - external hide_fileop_buttons : [>`filesel] obj -> unit - = "ml_gtk_file_selection_hide_fileop_buttons" - external get_ok_button : [>`filesel] obj -> button obj - = "ml_gtk_file_selection_get_ok_button" - external get_cancel_button : [>`filesel] obj -> button obj - = "ml_gtk_file_selection_get_cancel_button" - external get_help_button : [>`filesel] obj -> button obj - = "ml_gtk_file_selection_get_help_button" - let set_fileop_buttons w = function - true -> show_fileop_buttons w - | false -> hide_fileop_buttons w - let set ?filename ?fileop_buttons w = - may filename ~f:(set_filename w); - may fileop_buttons ~f:(set_fileop_buttons w) -end - -module FontSelectionDialog = struct - let cast w : font_selection_dialog obj = - Object.try_cast w "GtkFontSelectionDialog" - external create : ?title:string -> unit -> font_selection_dialog obj - = "ml_gtk_font_selection_dialog_new" - external font_selection : [>`fontseldialog] obj -> font_selection obj - = "ml_gtk_font_selection_dialog_fontsel" - external ok_button : [>`fontseldialog] obj -> button obj - = "ml_gtk_font_selection_dialog_ok_button" - external apply_button : [>`fontseldialog] obj -> button obj - = "ml_gtk_font_selection_dialog_apply_button" - external cancel_button : [>`fontseldialog] obj -> button obj - = "ml_gtk_font_selection_dialog_cancel_button" -(* - type null_terminated - let null_terminated arg : null_terminated = - match arg with None -> Obj.magic Gpointer.raw_null - | Some l -> - let len = List.length l in - let arr = Array.create (len + 1) "" in - let rec loop i = function - [] -> arr.(i) <- Obj.magic Gpointer.raw_null - | s::l -> arr.(i) <- s; loop (i+1) l - in loop 0 l; - Obj.magic (arr : string array) - external get_font : [>`fontseldialog] obj -> Gdk.font - = "ml_gtk_font_selection_dialog_get_font" - let get_font w = - try Some (get_font w) with Gpointer.Null -> None - external get_font_name : [>`fontseldialog] obj -> string - = "ml_gtk_font_selection_dialog_get_font_name" - let get_font_name w = - try Some (get_font_name w) with Gpointer.Null -> None - external set_font_name : [>`fontseldialog] obj -> string -> unit - = "ml_gtk_font_selection_dialog_set_font_name" - external set_filter : - [>`fontseldialog] obj -> font_filter_type -> font_type list -> - null_terminated -> null_terminated -> null_terminated -> - null_terminated -> null_terminated -> null_terminated -> unit - = "ml_gtk_font_selection_dialog_set_filter_bc" - "ml_gtk_font_selection_dialog_set_filter" - let set_filter w ?kind:(tl=[`ALL]) ?foundry - ?weight ?slant ?setwidth ?spacing ?charset filter = - set_filter w filter tl (null_terminated foundry) - (null_terminated weight) (null_terminated slant) - (null_terminated setwidth) (null_terminated spacing) - (null_terminated charset) - external get_preview_text : [>`fontseldialog] obj -> string - = "ml_gtk_font_selection_dialog_get_preview_text" - external set_preview_text : [>`fontseldialog] obj -> string -> unit - = "ml_gtk_font_selection_dialog_set_preview_text" -*) -end - -module Plug = struct - let cast w : plug obj = Object.try_cast w "GtkPlug" - external create : Gdk.xid -> plug obj = "ml_gtk_plug_new" -end diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkXmHTML.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkXmHTML.ml deleted file mode 100644 index 3bf5791a4..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkXmHTML.ml +++ /dev/null @@ -1,109 +0,0 @@ -(* $Id$ *) - -open Gtk - -type string_direction = [ - | `R_TO_L - | `L_TO_R -] - -type position = [ - | `END - | `CENTER - | `BEGINNING -] - -type line_type = [ - | `SOLID - | `DASHED - | `SINGLE - | `DOUBLE - | `STRIKE - | `UNDER - | `NONE -] - -type dither_type = [ - | `QUICK - | `BEST - | `FAST - | `SLOW - | `DISABLED -] - -type xmhtml = [`widget|`container|`xmhtml] - -external create : unit -> xmhtml obj = "ml_gtk_xmhtml_new" -external freeze : [> `xmhtml] obj -> unit = "ml_gtk_xmhtml_freeze" -external thaw : [> `xmhtml] obj -> unit = "ml_gtk_xmhtml_thaw" -external source : [> `xmhtml] obj -> string -> unit = "ml_gtk_xmhtml_source" -(* external get_source : [> `xmhtml] obj -> string = "ml_gtk_xmhtml_get_source" *) -external set_string_direction : [> `xmhtml] obj -> string_direction -> unit - = "ml_gtk_xmhtml_set_string_direction" -external set_alignment : [> `xmhtml] obj -> position -> unit - = "ml_gtk_xmhtml_set_alignment" -(* external set_outline : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_outline" *) -external set_font_familty : - [> `xmhtml] obj -> family:string -> sizes:string -> unit - = "ml_gtk_xmhtml_set_font_familty" -external set_font_familty_fixed : - [> `xmhtml] obj -> family:string -> sizes:string -> unit - = "ml_gtk_xmhtml_set_font_familty_fixed" -external set_font_charset : [> `xmhtml] obj -> string -> unit - = "ml_gtk_xmhtml_set_font_charset" -external set_allow_body_colors : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_allow_body_colors" -external set_hilight_on_enter : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_hilight_on_enter" -external set_anchor_underline_type : [> `xmhtml] obj -> line_type list -> unit - = "ml_gtk_xmhtml_set_anchor_underline_type" -external set_anchor_visited_underline_type : - [> `xmhtml] obj -> line_type list -> unit - = "ml_gtk_xmhtml_set_anchor_visited_underline_type" -external set_anchor_target_underline_type : - [> `xmhtml] obj -> line_type list -> unit - = "ml_gtk_xmhtml_set_anchor_target_underline_type" -external set_allow_color_switching : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_allow_color_switching" -external set_dithering : [> `xmhtml] obj -> dither_type -> unit - = "ml_gtk_xmhtml_set_dithering" -external set_allow_font_switching : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_allow_font_switching" -external set_max_image_colors : [> `xmhtml] obj -> int -> unit - = "ml_gtk_xmhtml_set_max_image_colors" -external set_allow_images : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_allow_images" -external set_plc_intervals : - [> `xmhtml] obj -> min:int -> max:int -> default:int -> unit - = "ml_gtk_xmhtml_set_plc_intervals" -(* -external set_def_body_image_url : [> `xmhtml] obj -> string -> unit - = "ml_gtk_xmhtml_set_def_body_image_url" -*) -external set_anchor_buttons : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_anchor_buttons" -external set_anchor_cursor : [> `xmhtml] obj -> Gdk.cursor option -> unit - = "ml_gtk_xmhtml_set_anchor_cursor" -external set_topline : [> `xmhtml] obj -> int -> unit - = "ml_gtk_xmhtml_set_topline" -external get_topline : [> `xmhtml] obj -> int - = "ml_gtk_xmhtml_get_topline" -external set_freeze_animations : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_freeze_animations" -external set_screen_gamma : [> `xmhtml] obj -> float -> unit - = "ml_gtk_xmhtml_set_screen_gamma" -external set_perfect_colors : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_perfect_colors" -external set_uncompress_command : [> `xmhtml] obj -> string -> unit - = "ml_gtk_xmhtml_set_uncompress_command" -external set_strict_checking : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_strict_checking" -external set_bad_html_warnings : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_bad_html_warnings" -external set_allow_form_coloring : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_allow_form_coloring" -external set_imagemap_draw : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_imagemap_draw" -external set_alpha_processing : [> `xmhtml] obj -> bool -> unit - = "ml_gtk_xmhtml_set_alpha_processing" diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtk_tags.var b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtk_tags.var deleted file mode 100644 index b2a7d2a80..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtk_tags.var +++ /dev/null @@ -1,169 +0,0 @@ -(* $Id$ *) - -type arrow_type = "GTK_ARROW_" - [ `UP | `DOWN | `LEFT | `RIGHT ] - -type attach_options = "GTK_" - [ `EXPAND | `SHRINK | `FILL ] - -type button_box_style = "GTK_BUTTONBOX_" - [ `DEFAULT_STYLE | `SPREAD | `EDGE | `START | `END ] - -type direction_type = "GTK_DIR_" - [ `TAB_FORWARD | `TAB_BACKWARD | `UP | `DOWN | `LEFT | `RIGHT ] - -type justification = "GTK_JUSTIFY_" - [ `LEFT | `RIGHT | `CENTER | `FILL ] - -type match_type = "GTK_MATCH_" - [ `ALL | `ALL_TAIL | `HEAD | `TAIL | `EXACT | `LAST ] - -type metric_type = "GTK_" - [ `PIXELS | `INCHES | `CENTIMETERS ] - -type orientation = "GTK_ORIENTATION_" - [ `HORIZONTAL | `VERTICAL ] - -type corner_type = "GTK_CORNER_" - [ `TOP_LEFT | `BOTTOM_LEFT | `TOP_RIGHT | `BOTTOM_RIGHT ] - -type pack_type = "GTK_PACK_" - [ `START | `END ] - -type path_type = "GTK_PATH_" - [ `WIDGET | `WIDGET_CLASS | `CLASS ] - -type policy_type = "GTK_POLICY_" - [ `ALWAYS | `AUTOMATIC | `NEVER ] - -type position = "GTK_POS_" - [ `LEFT | `RIGHT | `TOP | `BOTTOM ] - -type preview_type = "GTK_PREVIEW_" - [ `COLOR | `GRAYSCALE ] - -type relief_style = "GTK_RELIEF_" - [ `NORMAL | `HALF | `NONE ] - -type resize_mode = "GTK_RESIZE_" - [ `PARENT | `QUEUE | `IMMEDIATE ] - -type signal_run_type = "GTK_RUN_" - [ `FIRST | `LAST | `BOTH | `NO_RECURSE | `ACTION | `NO_HOOKS ] - -type scroll_type = "GTK_SCROLL_" - [ `NONE | `STEP_FORWARD | `STEP_BACKWARD | `PAGE_BACKWARD - | `PAGE_FORWARD | `JUMP ] - -type selection_mode = "GTK_SELECTION_" - [ `SINGLE | `BROWSE | `MULTIPLE | `EXTENDED ] - -type shadow_type = "GTK_SHADOW_" - [ `NONE | `IN | `OUT | `ETCHED_IN | `ETCHED_OUT ] - -type state_type = "GTK_STATE_" - [ `NORMAL | `ACTIVE | `PRELIGHT | `SELECTED | `INSENSITIVE ] - -type submenu_direction = "GTK_DIRECTION_" - [ `LEFT | `RIGHT ] - -type submenu_placement = "GTK_" - [ `TOP_BOTTOM | `LEFT_RIGHT ] - -type toolbar_style = "GTK_TOOLBAR_" - [ `ICONS | `TEXT | `BOTH ] - -type trough_type = "GTK_TROUGH_" - [ `NONE | `START | `END | `JUMP ] - -type update_type = "GTK_UPDATE_" - [ `CONTINUOUS | `DISCONTINUOUS | `DELAYED ] - -type visibility = "GTK_VISIBILITY_" - [ `NONE | `PARTIAL | `FULL ] - -type window_position = "GTK_WIN_POS_" - [ `NONE | `CENTER | `MOUSE | `CENTER_ALWAYS ] - -type window_type = "GTK_WINDOW_" - [ `TOPLEVEL | `DIALOG | `POPUP ] - -type sort_type = "GTK_SORT_" - [ `ASCENDING | `DESCENDING ] - - -type fundamental_type = "GTK_TYPE_" - [ `INVALID | `NONE | `CHAR | `BOOL | `INT | `UINT | `LONG | `ULONG - | `FLOAT | `DOUBLE | `STRING | `ENUM | `FLAGS | `BOXED | `FOREIGN - | `CALLBACK | `ARGS | `POINTER | `SIGNAL | `C_CALLBACK | `OBJECT ] - -type cell_type = "GTK_CELL_" - [ `EMPTY | `TEXT | `PIXMAP | `PIXTEXT | `WIDGET ] - -type toolbar_child = "GTK_TOOLBAR_CHILD_" - [ `SPACE | `BUTTON | `TOGGLEBUTTON | `RADIOBUTTON | `WIDGET ] - -type toolbar_space_style = "GTK_TOOLBAR_SPACE_" - [ `EMPTY | `LINE ] - -type tree_view_mode = "GTK_TREE_VIEW_" - [ `LINE | `ITEM ] - -type spin_type = "GTK_SPIN_" - [ `STEP_FORWARD | `STEP_BACKWARD | `PAGE_FORWARD | `PAGE_BACKWARD - | `HOME | `END | `USER_DEFINED ] - -type accel_flag = "GTK_ACCEL_" - [ `VISIBLE | `SIGNAL_VISIBLE | `LOCKED ] - -type packer_options = "GTK_" - [ `PACK_EXPAND | `FILL_X | `FILL_Y ] - -type side_type = "GTK_SIDE_" - [ `TOP | `BOTTOM | `LEFT | `RIGHT ] - -type anchor_type = "GTK_ANCHOR_" - [ `CENTER | `NORTH | `NW | `NE | `SOUTH | `SW | `SE | `WEST | `EAST ] - -type button_action = "GTK_BUTTON_" - [ `SELECTS | `DRAGS | `EXPANDS ] - -type calendar_display_options = "GTK_CALENDAR_" - [ `SHOW_HEADING | `SHOW_DAY_NAMES | `NO_MONTH_CHANGE | `SHOW_WEEK_NUMBERS - | `WEEK_START_MONDAY ] - -type progress_bar_style = "GTK_PROGRESS_" - [ `CONTINUOUS | `DISCRETE ] - -type progress_bar_orientation = "GTK_PROGRESS_" - [ `LEFT_TO_RIGHT | `RIGHT_TO_LEFT | `BOTTOM_TO_TOP | `TOP_TO_BOTTOM ] - -type dest_defaults = "GTK_DEST_DEFAULT_" - [ `MOTION | `HIGHLIGHT | `DROP | `ALL ] - -type target_flags = "GTK_TARGET_" - [ `SAME_APP | `SAME_WIDGET ] - -type font_metric_type = "GTK_FONT_METRIC_" - [ `PIXELS | `POINTS ] - -type font_type = "GTK_FONT_" - [ `BITMAP | `SCALABLE | `SCALABLE_BITMAP | `ALL ] - -type font_filter_type = "GTK_FONT_FILTER_" - [ `BASE | `USER ] - -(* -type tree_pos = "GTK_CTREE_POS_" - [ `BEFORE | `AS_CHILD | `AFTER ] - -type tree_line_style = "GTK_CTREE_LINES_" - [ `NONE | `SOLID | `DOTTED | `TABBED ] - -type tree_expander_style = "GTK_CTREE_EXPANDER_" - [ `NONE | `SQUARE | `TRIANGLE | `CIRCULAR ] - -type tree_expansion_type = "GTK_CTREE_EXPANSION_" - [ `EXPAND | `EXPAND_RECURSIVE | `COLLAPSE | `COLLAPSE_RECURSIVE - | `TOGGLE | `TOGGLE_RECURSIVE ] -*) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkgl_tags.var b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkgl_tags.var deleted file mode 100644 index 57a9f7365..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkgl_tags.var +++ /dev/null @@ -1,19 +0,0 @@ -(* $Id$ *) - -type visual_options = "GDK_GL_" [ - | `USE_GL - | `BUFFER_SIZE - | `LEVEL - | `RGBA - | `DOUBLEBUFFER - | `STEREO - | `AUX_BUFFERS - | `RED_SIZE - | `GREEN_SIZE - | `BLUE_SIZE - | `ALPHA_SIZE - | `DEPTH_SIZE - | `STENCIL_SIZE - | `ACCUM_GREEN_SIZE - | `ACCUM_ALPHA_SIZE -] diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkxmhtml_tags.var b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkxmhtml_tags.var deleted file mode 100644 index f26206ecf..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/gtkxmhtml_tags.var +++ /dev/null @@ -1,30 +0,0 @@ -(* $Id$ *) - -type string_direction = "TSTRING_DIRECTION_" [ - | `R_TO_L - | `L_TO_R -] - -type alignment = "TALIGNMENT_" [ - | `END - | `CENTER - | `BEGINNING -] - -type line_type = "LINE_" [ - | `SOLID - | `DASHED - | `SINGLE - | `DOUBLE - | `STRIKE - | `UNDER - | `NONE "NO_LINE" -] - -type dither_type = "Xm" [ - | `QUICK - | `BEST - | `FAST - | `SLOW - | `DISABLED -] diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/lablgl.patch b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/lablgl.patch deleted file mode 100644 index c48de24d7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/lablgl.patch +++ /dev/null @@ -1,112 +0,0 @@ -Index: Makefile -=================================================================== -RCS file: /staff2/garrigue/repos/lablGL/Makefile,v -retrieving revision 1.33 -retrieving revision 1.34 -diff -c -r1.33 -r1.34 -*** Makefile 1998/09/17 03:16:06 1.33 ---- Makefile 1999/06/18 07:39:08 1.34 -*************** -*** 12,22 **** - OTHERLIBS=-L$(LABLTKDIR) -llabltk41 $(LIBS) - - # Files -! MLOBJS = raw.cmo togl.cmo \ - gl.cmo glLight.cmo glList.cmo glMap.cmo \ - glMat.cmo glMisc.cmo glPix.cmo glClear.cmo \ - glTex.cmo glDraw.cmo glFunc.cmo gluMisc.cmo \ - gluNurbs.cmo gluQuadric.cmo gluTess.cmo gluMat.cmo - OPTOBJS = $(MLOBJS:.cmo=.cmx) - COBJS = ml_gl.o ml_glu.o ml_togl.o ml_raw.o \ - $(TOGLDIR)/togl.o ---- 12,23 ---- - OTHERLIBS=-L$(LABLTKDIR) -llabltk41 $(LIBS) - - # Files -! LIBOBJS = raw.cmo \ - gl.cmo glLight.cmo glList.cmo glMap.cmo \ - glMat.cmo glMisc.cmo glPix.cmo glClear.cmo \ - glTex.cmo glDraw.cmo glFunc.cmo gluMisc.cmo \ - gluNurbs.cmo gluQuadric.cmo gluTess.cmo gluMat.cmo -+ MLOBJS = $(LIBOBJS) togl.cmo - OPTOBJS = $(MLOBJS:.cmo=.cmx) - COBJS = ml_gl.o ml_glu.o ml_togl.o ml_raw.o \ - $(TOGLDIR)/togl.o -*************** -*** 53,60 **** - var2switch: var2switch.cmo - $(LINKER) var2switch.cmo -o $@ - -! lablgl.cma: $(MLOBJS) -! $(LIBRARIAN) -o lablgl.cma $(MLOBJS) - - lablgl.cmxa: $(OPTOBJS) - $(OPTLIB) -o lablgl.cmxa $(OPTOBJS) ---- 54,61 ---- - var2switch: var2switch.cmo - $(LINKER) var2switch.cmo -o $@ - -! lablgl.cma: $(LIBOBJS) -! $(LIBRARIAN) -o lablgl.cma $(LIBOBJS) - - lablgl.cmxa: $(OPTOBJS) - $(OPTLIB) -o lablgl.cmxa $(OPTOBJS) -*************** -*** 66,74 **** - $(TOGLDIR)/togl.o: - cd $(TOGLDIR) && $(MAKE) togl.o - -! lablgltop: lablgl.cma liblablgl.a - olablmktop $(OLABLINC) -custom -o lablgltop \ -! unix.cma tk41.cma lablgl.cma \ - -cclib "-L. -llablgl -lunix $(OTHERLIBS)" - - lablgl: lablgl.in Makefile.config ---- 67,75 ---- - $(TOGLDIR)/togl.o: - cd $(TOGLDIR) && $(MAKE) togl.o - -! lablgltop: lablgl.cma togl.cmo liblablgl.a - olablmktop $(OLABLINC) -custom -o lablgltop \ -! unix.cma tk41.cma lablgl.cma togl.cmo \ - -cclib "-L. -llablgl -lunix $(OTHERLIBS)" - - lablgl: lablgl.in Makefile.config -*************** -*** 107,113 **** - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(MLOBJS:.cmo=.cmi) $(INSTALLDIR) - cp $(MLOBJS:.cmo=.mli) $(INSTALLDIR) -! cp lablgl.cma liblablgl.a $(INSTALLDIR) - cp lablgltop $(INSTALLDIR) - cp lablgl lablgllink $(BINDIR) - if test -f lablgl.cmxa; then : ; \ ---- 108,114 ---- - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(MLOBJS:.cmo=.cmi) $(INSTALLDIR) - cp $(MLOBJS:.cmo=.mli) $(INSTALLDIR) -! cp lablgl.cma togl.cmo liblablgl.a $(INSTALLDIR) - cp lablgltop $(INSTALLDIR) - cp lablgl lablgllink $(BINDIR) - if test -f lablgl.cmxa; then : ; \ -Index: lablgllink.in -=================================================================== -RCS file: /staff2/garrigue/repos/lablGL/lablgllink.in,v -retrieving revision 1.2 -retrieving revision 1.3 -diff -c -r1.2 -r1.3 -*** lablgllink.in 1998/09/16 10:26:17 1.2 ---- lablgllink.in 1999/06/18 07:39:09 1.3 -*************** -*** 1,5 **** - #!/bin/sh - - exec olablc -custom @INCLUDES@ -I @INSTALLDIR@ \ -! tk41.cma lablgl.cma $* -cclib "-L@INSTALLDIR@ -llablgl" \ - -cclib "@OTHERLIBS@" ---- 1,5 ---- - #!/bin/sh - - exec olablc -custom @INCLUDES@ -I @INSTALLDIR@ \ -! tk41.cma lablgl.cma togl.cmo $* -cclib "-L@INSTALLDIR@ -llablgl" \ - -cclib "@OTHERLIBS@" diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/lablgtk.in b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/lablgtk.in deleted file mode 100644 index 98015140c..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/lablgtk.in +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -thread="no" - -case $1 in --help) - echo "Usage: lablgtk [-thread] [script-file]" - echo " -thread use the threaded version of the toplevel" - ;; --thread) - thread=yes - shift - ;; -esac - -if test $thread = yes; then - toplevel="@INSTALLDIR@/lablgtktop_t -I @LIBDIR@/threads" -else - toplevel=@INSTALLDIR@/lablgtktop -fi - -exec $toplevel -w s \ - -I @LABLGLDIR@ \ - -I @INSTALLDIR@ $* diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gdk.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gdk.c deleted file mode 100644 index 052625888..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gdk.c +++ /dev/null @@ -1,522 +0,0 @@ -/* $Id$ */ - -#include -#include -#ifdef _WIN32 -#include -#else -#include -#endif -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "gdk_tags.h" - -void ml_raise_gdk (const char *errmsg) -{ - static value * exn = NULL; - if (exn == NULL) - exn = caml_named_value ("gdkerror"); - raise_with_string (*exn, (char*)errmsg); -} - -#include "gdk_tags.c" - -Make_OptFlags_val (GdkModifier_val) -Make_Flags_val (Event_mask_val) - -#define Make_test(conv) \ -value ml_test_##conv (value mask, value test) \ -{ return Val_bool (conv(mask) & Int_val(test)); } - -Make_test(GdkModifier_val) - -/* Colormap */ - -Make_Val_final_pointer (GdkColormap, gdk_colormap_ref, gdk_colormap_unref, 0) -ML_0 (gdk_colormap_get_system, Val_GdkColormap) - -/* Screen geometry */ -ML_0 (gdk_screen_width, Val_int) -ML_0 (gdk_screen_height, Val_int) - -/* Visual */ -value ml_gdk_visual_get_best (value depth, value type) -{ - GdkVisual *vis; - if (type == Val_unit) - if (depth == Val_unit) vis = gdk_visual_get_best (); - else vis = gdk_visual_get_best_with_depth (Int_val(Field(depth,0))); - else - if (depth == Val_unit) - vis = gdk_visual_get_best_with_type - (GdkVisualType_val(Field(type,0))); - else vis = gdk_visual_get_best_with_both - (Int_val(Field(depth,0)),GdkVisualType_val(Field(type,0))); - if (!vis) ml_raise_gdk("Gdk.Visual.get_best"); - return Val_GdkVisual(vis); -} - -Make_Extractor (GdkVisual,GdkVisual_val,type,Val_gdkVisualType) -Make_Extractor (GdkVisual,GdkVisual_val,depth,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,red_mask,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,red_shift,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,red_prec,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,green_mask,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,green_shift,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,green_prec,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,blue_mask,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,blue_shift,Val_int) -Make_Extractor (GdkVisual,GdkVisual_val,blue_prec,Val_int) - -/* Image */ - -Make_Val_final_pointer (GdkImage, Ignore, gdk_image_destroy, 0) -GdkImage *GdkImage_val(value val) -{ - if (!Field(val,1)) ml_raise_gdk ("attempt to use destroyed GdkImage"); - return (GdkImage*)(Field(val,1)); -} -value ml_gdk_image_destroy (value val) -{ - if (Field(val,1)) gdk_image_destroy((GdkImage*)(Field(val,1))); - Field(val,1) = 0; - return Val_unit; -} -ML_4 (gdk_image_new_bitmap, GdkVisual_val, String_val, Int_val, Int_val, - Val_GdkImage) -ML_4 (gdk_image_new, GdkImageType_val, GdkVisual_val, Int_val, Int_val, - Val_GdkImage) -ML_5 (gdk_image_get, GdkWindow_val, Int_val, Int_val, Int_val, Int_val, - Val_GdkImage) -ML_4 (gdk_image_put_pixel, GdkImage_val, Int_val, Int_val, Int_val, Unit) -ML_3 (gdk_image_get_pixel, GdkImage_val, Int_val, Int_val, Val_int) - -/* Color */ - -ML_2 (gdk_colormap_new, GdkVisual_val, Bool_val, Val_GdkColormap) - -value ml_gdk_color_white (value cmap) -{ - GdkColor color; - gdk_color_white (GdkColormap_val(cmap), &color); - return Val_copy(color); -} - -value ml_gdk_color_black (value cmap) -{ - GdkColor color; - gdk_color_black (GdkColormap_val(cmap), &color); - return Val_copy(color); -} - -value ml_gdk_color_parse (char *spec) -{ - GdkColor color; - if (!gdk_color_parse (spec, &color)) - ml_raise_gdk ("color_parse"); - return Val_copy(color); -} - -ML_2 (gdk_color_alloc, GdkColormap_val, GdkColor_val, Val_bool) - -value ml_GdkColor (value red, value green, value blue) -{ - GdkColor color; - color.red = Int_val(red); - color.green = Int_val(green); - color.blue = Int_val(blue); - color.pixel = 0; - return Val_copy(color); -} - -Make_Extractor (GdkColor, GdkColor_val, red, Val_int) -Make_Extractor (GdkColor, GdkColor_val, green, Val_int) -Make_Extractor (GdkColor, GdkColor_val, blue, Val_int) -Make_Extractor (GdkColor, GdkColor_val, pixel, Val_int) - -/* Rectangle */ - -value ml_GdkRectangle (value x, value y, value width, value height) -{ - GdkRectangle rectangle; - rectangle.x = Int_val(x); - rectangle.y = Int_val(y); - rectangle.width = Int_val(width); - rectangle.height = Int_val(height); - return Val_copy(rectangle); -} - -Make_Extractor (GdkRectangle, GdkRectangle_val, x, Val_int) -Make_Extractor (GdkRectangle, GdkRectangle_val, y, Val_int) -Make_Extractor (GdkRectangle, GdkRectangle_val, width, Val_int) -Make_Extractor (GdkRectangle, GdkRectangle_val, height, Val_int) - -/* Window */ - -Make_Val_final_pointer (GdkWindow, gdk_window_ref, gdk_window_unref, 0) -Make_Extractor (gdk_visual_get, GdkVisual_val, depth, Val_int) -ML_1 (gdk_window_get_visual, GdkWindow_val, Val_GdkVisual) -ML_3 (gdk_window_set_back_pixmap, GdkWindow_val, GdkPixmap_val, Int_val, Unit) -ML_1 (gdk_window_clear, GdkWindow_val, Unit) -ML_0 (GDK_ROOT_PARENT, Val_GdkWindow) -ML_1 (gdk_window_get_parent, GdkWindow_val, Val_GdkWindow) -ML_1 (GDK_WINDOW_XWINDOW, GdkWindow_val, Val_XID) -value ml_gdk_window_get_position (value window) -{ - int x, y; - value ret; - - gdk_window_get_position (GdkWindow_val(window), &x, &y); - - ret = alloc_small (2,0); - Field(ret,0) = Val_int(x); - Field(ret,1) = Val_int(y); - return ret; -} - -value ml_gdk_window_get_size (value window) -{ - int x, y; - value ret; - - gdk_window_get_size (GdkWindow_val(window), &x, &y); - - ret = alloc_small (2,0); - Field(ret,0) = Val_int(x); - Field(ret,1) = Val_int(y); - return ret; -} - -/* Cursor */ - -ML_1 (gdk_cursor_new, GdkCursorType_val, Val_GdkCursor) -ML_6 (gdk_cursor_new_from_pixmap, GdkPixmap_val, GdkPixmap_val, - GdkColor_val, GdkColor_val, Int_val, Int_val, Val_GdkCursor) -ML_bc6 (ml_gdk_cursor_new_from_pixmap) -ML_1 (gdk_cursor_destroy, GdkCursor_val, Unit) - -/* Pixmap */ - -Make_Val_final_pointer (GdkPixmap, gdk_pixmap_ref, gdk_pixmap_unref, 0) -Make_Val_final_pointer (GdkBitmap, gdk_bitmap_ref, gdk_bitmap_unref, 0) -Make_Val_final_pointer_ext (GdkPixmap, _no_ref, Ignore, gdk_pixmap_unref, 20) -Make_Val_final_pointer_ext (GdkBitmap, _no_ref, Ignore, gdk_bitmap_unref, 20) -ML_4 (gdk_pixmap_new, GdkWindow_val, Int_val, Int_val, Int_val, - Val_GdkPixmap_no_ref) -ML_4 (gdk_bitmap_create_from_data, GdkWindow_val, - String_val, Int_val, Int_val, Val_GdkBitmap_no_ref) -ML_7 (gdk_pixmap_create_from_data, GdkWindow_val, String_val, - Int_val, Int_val, Int_val, GdkColor_val, GdkColor_val, - Val_GdkPixmap_no_ref) -ML_bc7 (ml_gdk_pixmap_create_from_data) - -value ml_gdk_pixmap_colormap_create_from_xpm - (value window, value colormap, value transparent, char *filename) -{ - CAMLparam0(); - GdkBitmap *mask; - CAMLlocal2(vpixmap, vmask); - value ret; - - vpixmap = Val_GdkPixmap_no_ref - (gdk_pixmap_colormap_create_from_xpm - (GdkWindow_val(window), Option_val(colormap,GdkColormap_val,NULL), - &mask, Option_val(transparent,GdkColor_val,NULL), filename)); - vmask = Val_GdkBitmap_no_ref (mask); - - ret = alloc_small (2,0); - Field(ret,0) = vpixmap; - Field(ret,1) = vmask; - CAMLreturn(ret); -} - -value ml_gdk_pixmap_colormap_create_from_xpm_d - (value window, value colormap, value transparent, char **data) -{ - CAMLparam0(); - GdkBitmap *mask; - CAMLlocal2(vpixmap, vmask); - value ret; - - vpixmap = Val_GdkPixmap_no_ref - (gdk_pixmap_colormap_create_from_xpm_d - (GdkWindow_val(window), Option_val(colormap,GdkColormap_val,NULL), - &mask, Option_val(transparent,GdkColor_val,NULL), data)); - vmask = Val_GdkBitmap_no_ref (mask); - - ret = alloc_small (2, 0); - Field(ret,0) = vpixmap; - Field(ret,1) = vmask; - CAMLreturn(ret); -} - -/* Font */ - -Make_Val_final_pointer (GdkFont, gdk_font_ref, gdk_font_unref, 0) -Make_Val_final_pointer_ext (GdkFont, _no_ref, Ignore, gdk_font_unref, 20) -ML_1 (gdk_font_load, String_val, Val_GdkFont_no_ref) -ML_1 (gdk_fontset_load, String_val, Val_GdkFont_no_ref) -ML_2 (gdk_string_width, GdkFont_val, String_val, Val_int) -ML_2 (gdk_char_width, GdkFont_val, (gchar)Long_val, Val_int) -ML_2 (gdk_string_height, GdkFont_val, String_val, Val_int) -ML_2 (gdk_char_height, GdkFont_val, (gchar)Long_val, Val_int) -ML_2 (gdk_string_measure, GdkFont_val, String_val, Val_int) -ML_2 (gdk_char_measure, GdkFont_val, (char)Long_val, Val_int) -Make_Extractor (GdkFont, GdkFont_val, type, Val_gdkFontType) -Make_Extractor (GdkFont, GdkFont_val, ascent, Val_int) -Make_Extractor (GdkFont, GdkFont_val, descent, Val_int) - -/* Region */ - -#define PointArray_val(val) ((GdkPoint*)&Field(val,1)) -#define PointArrayLen_val(val) Int_val(Field(val,0)) -Make_Val_final_pointer (GdkRegion, Ignore, gdk_region_destroy, 0) -GdkRegion *GdkRegion_val(value val) -{ - if (!Field(val,1)) ml_raise_gdk ("attempt to use destroyed GdkRegion"); - return (GdkRegion*)(Field(val,1)); -} -value ml_gdk_region_destroy (value val) -{ - if (Field(val,1)) gdk_region_destroy((GdkRegion*)(Field(val,1))); - Field(val,1) = 0; - return Val_unit; -} -ML_0 (gdk_region_new, Val_GdkRegion) -ML_2 (gdk_region_polygon, Insert(PointArray_val(arg1)) PointArrayLen_val, - GdkFillRule_val, Val_GdkRegion) -ML_2 (gdk_regions_intersect, GdkRegion_val, GdkRegion_val, Val_GdkRegion) -ML_2 (gdk_regions_union, GdkRegion_val, GdkRegion_val, Val_GdkRegion) -ML_2 (gdk_regions_subtract, GdkRegion_val, GdkRegion_val, Val_GdkRegion) -ML_2 (gdk_regions_xor, GdkRegion_val, GdkRegion_val, Val_GdkRegion) -ML_2 (gdk_region_union_with_rect, GdkRegion_val, GdkRectangle_val, - Val_GdkRegion) -ML_3 (gdk_region_offset, GdkRegion_val, Int_val, Int_val, Unit) -ML_3 (gdk_region_shrink, GdkRegion_val, Int_val, Int_val, Unit) -ML_1 (gdk_region_empty, GdkRegion_val, Val_bool) -ML_2 (gdk_region_equal, GdkRegion_val, GdkRegion_val, Val_bool) -ML_3 (gdk_region_point_in, GdkRegion_val, Int_val, Int_val, Val_bool) -ML_2 (gdk_region_rect_in, GdkRegion_val, GdkRectangle_val, Val_gdkOverlapType) -ML_2 (gdk_region_get_clipbox, GdkRegion_val, GdkRectangle_val, Unit) - - -/* GC */ - -Make_Val_final_pointer (GdkGC, gdk_gc_ref, gdk_gc_unref, 0) -Make_Val_final_pointer_ext (GdkGC, _no_ref, Ignore, gdk_gc_unref, 20) -ML_1 (gdk_gc_new, GdkWindow_val, Val_GdkGC_no_ref) -ML_2 (gdk_gc_set_foreground, GdkGC_val, GdkColor_val, Unit) -ML_2 (gdk_gc_set_background, GdkGC_val, GdkColor_val, Unit) -ML_2 (gdk_gc_set_font, GdkGC_val, GdkFont_val, Unit) -ML_2 (gdk_gc_set_function, GdkGC_val, GdkFunction_val, Unit) -ML_2 (gdk_gc_set_fill, GdkGC_val, GdkFill_val, Unit) -ML_2 (gdk_gc_set_tile, GdkGC_val, GdkPixmap_val, Unit) -ML_2 (gdk_gc_set_stipple, GdkGC_val, GdkPixmap_val, Unit) -ML_3 (gdk_gc_set_ts_origin, GdkGC_val, Int_val, Int_val, Unit) -ML_3 (gdk_gc_set_clip_origin, GdkGC_val, Int_val, Int_val, Unit) -ML_2 (gdk_gc_set_clip_mask, GdkGC_val, GdkBitmap_val, Unit) -ML_2 (gdk_gc_set_clip_rectangle, GdkGC_val, GdkRectangle_val, Unit) -ML_2 (gdk_gc_set_clip_region, GdkGC_val, GdkRegion_val, Unit) -ML_2 (gdk_gc_set_subwindow, GdkGC_val, GdkSubwindowMode_val, Unit) -ML_2 (gdk_gc_set_exposures, GdkGC_val, Bool_val, Unit) -ML_5 (gdk_gc_set_line_attributes, GdkGC_val, Int_val, GdkLineStyle_val, - GdkCapStyle_val, GdkJoinStyle_val, Unit) -ML_2 (gdk_gc_copy, GdkGC_val, GdkGC_val, Unit) -value ml_gdk_gc_get_values (value gc) -{ - CAMLparam0(); - GdkGCValues values; - int i; - CAMLlocal2(ret, tmp); - - gdk_gc_get_values (GdkGC_val(gc), &values); - ret = alloc (18, 0); - tmp = Val_copy(values.foreground); Store_field(ret, 0, tmp); - tmp = Val_copy(values.background); Store_field(ret, 1, tmp); - if (values.font) { - tmp = ml_some(Val_GdkFont(values.font)); - Store_field(ret, 2, tmp); - } - Field(ret,3) = Val_gdkFunction(values.function); - Field(ret,4) = Val_gdkFill(values.fill); - if (values.tile) { - tmp = ml_some(Val_GdkPixmap(values.tile)); - Store_field(ret, 5, tmp); - } - if (values.tile) { - tmp = ml_some(Val_GdkPixmap(values.stipple)); - Store_field(ret, 6, tmp); - } - if (values.tile) { - tmp = ml_some(Val_GdkPixmap(values.clip_mask)); - Store_field(ret, 7, tmp); - } - Field(ret,8) = Val_gdkSubwindowMode(values.subwindow_mode); - Field(ret,9) = Val_int(values.ts_x_origin); - Field(ret,10) = Val_int(values.ts_y_origin); - Field(ret,11) = Val_int(values.clip_x_origin); - Field(ret,12) = Val_int(values.clip_y_origin); - Field(ret,13) = Val_bool(values.graphics_exposures); - Field(ret,14) = Val_int(values.line_width); - Field(ret,15) = Val_gdkLineStyle(values.line_style); - Field(ret,16) = Val_gdkCapStyle(values.cap_style); - Field(ret,17) = Val_gdkJoinStyle(values.join_style); - CAMLreturn(ret); -} - -/* Draw */ - -value ml_point_array_new (value len) -{ - value ret = alloc (1 + Wosize_asize(Int_val(len)*sizeof(GdkPoint)), - Abstract_tag); - Field(ret,0) = len; - return ret; -} -value ml_point_array_set (value arr, value pos, value x, value y) -{ - GdkPoint *pt = PointArray_val(arr) + Int_val(pos); - pt->x = Int_val(x); - pt->y = Int_val(y); - return Val_unit; -} - -ML_4 (gdk_draw_point, GdkDrawable_val, GdkGC_val, Int_val, Int_val, Unit) -ML_6 (gdk_draw_line, GdkDrawable_val, GdkGC_val, Int_val, Int_val, - Int_val, Int_val, Unit) -ML_bc6 (ml_gdk_draw_line) -ML_7 (gdk_draw_rectangle, GdkDrawable_val, GdkGC_val, Bool_val, - Int_val, Int_val, Int_val, Int_val, Unit) -ML_bc7 (ml_gdk_draw_rectangle) -ML_9 (gdk_draw_arc, GdkDrawable_val, GdkGC_val, Bool_val, Int_val, Int_val, - Int_val, Int_val, Int_val, Int_val, Unit) -ML_bc9 (ml_gdk_draw_arc) -ML_4 (gdk_draw_polygon, GdkDrawable_val, GdkGC_val, Bool_val, - Insert(PointArray_val(arg4)) PointArrayLen_val, Unit) -ML_6 (gdk_draw_string, GdkDrawable_val, GdkFont_val, GdkGC_val, Int_val, Int_val, String_val, Unit) -ML_bc6 (ml_gdk_draw_string) - -ML_9 (gdk_draw_image, GdkDrawable_val, GdkGC_val, GdkImage_val, Int_val, Int_val, Int_val, Int_val, Int_val, Int_val, Unit) -ML_bc9 (ml_gdk_draw_image) - -/* RGB */ - -ML_0 (gdk_rgb_init, Unit) -ML_0 (gdk_rgb_get_visual, Val_GdkVisual) -ML_0 (gdk_rgb_get_cmap, Val_GdkColormap) - -/* Events */ - -/* Have a major collection every 1000 events */ -Make_Val_final_pointer (GdkEvent, Ignore, gdk_event_free, 1) -ML_1 (gdk_event_copy, GdkEvent_val, Val_GdkEvent) - -value ml_gdk_event_new (value event_type) -{ - GdkEvent event; - memset (&event, 0, sizeof(GdkEvent)); - event.type = GdkEventType_val(event_type); - event.any.send_event = TRUE; - return Val_copy(event); -} - -#define GdkEvent_arg(type) (GdkEvent##type*)GdkEvent_val - -Make_Extractor (GdkEventAny, GdkEvent_arg(Any), type, Val_gdkEventType) -Make_Extractor (GdkEventAny, GdkEvent_arg(Any), window, Val_GdkWindow) -Make_Extractor (GdkEventAny, GdkEvent_arg(Any), send_event, Val_bool) -Make_Setter (gdk_event_set, GdkEvent_arg(Any), GdkEventType_val, type) -Make_Setter (gdk_event_set, GdkEvent_arg(Any), GdkWindow_val, window) - -Make_Extractor (GdkEventExpose, GdkEvent_arg(Expose), area, Val_copy) -Make_Extractor (GdkEventExpose, GdkEvent_arg(Expose), count, Val_int) - -Make_Extractor (GdkEventVisibility, GdkEvent_arg(Visibility), state, - Val_gdkVisibilityState) - -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), time, Val_int) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), x, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), y, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), pressure, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), xtilt, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), ytilt, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), state, Val_int) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), is_hint, Val_int) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), source, Val_gdkInputSource) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), deviceid, Val_int) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), x_root, copy_double) -Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), y_root, copy_double) - -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), time, Val_int) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), x, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), y, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), pressure, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), xtilt, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), ytilt, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), state, Val_int) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), button, Val_int) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), source, Val_gdkInputSource) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), deviceid, Val_int) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), x_root, copy_double) -Make_Extractor (GdkEventButton, GdkEvent_arg(Button), y_root, copy_double) - -Make_Setter (gdk_event_button_set, GdkEvent_arg(Button), Int_val, button) - -Make_Extractor (GdkEventKey, GdkEvent_arg(Key), time, Val_int) -Make_Extractor (GdkEventKey, GdkEvent_arg(Key), state, Val_int) -Make_Extractor (GdkEventKey, GdkEvent_arg(Key), keyval, Val_int) -Make_Extractor (GdkEventKey, GdkEvent_arg(Key), string, Val_string) - -Make_Extractor (GdkEventCrossing, GdkEvent_arg(Crossing), subwindow, - Val_GdkWindow) -Make_Extractor (GdkEventCrossing, GdkEvent_arg(Crossing), detail, - Val_gdkNotifyType) - -Make_Extractor (GdkEventFocus, GdkEvent_arg(Focus), in, Val_int) - -Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), x, Val_int) -Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), y, Val_int) -Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), width, Val_int) -Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), height, Val_int) - -Make_Extractor (GdkEventProperty, GdkEvent_arg(Property), atom, Val_int) -Make_Extractor (GdkEventProperty, GdkEvent_arg(Property), time, Val_int) -Make_Extractor (GdkEventProperty, GdkEvent_arg(Property), state, Val_int) - -Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), selection, Val_int) -Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), target, Val_int) -Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), property, Val_int) -Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), requestor, Val_int) -Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), time, Val_int) - -Make_Extractor (GdkEventProximity, GdkEvent_arg(Proximity), time, Val_int) -Make_Extractor (GdkEventProximity, GdkEvent_arg(Proximity), source, - Val_gdkInputSource) -Make_Extractor (GdkEventProximity, GdkEvent_arg(Proximity), deviceid, Val_int) - -/* DnD */ -Make_Val_final_pointer (GdkDragContext, gdk_drag_context_ref, gdk_drag_context_unref, 0) -Make_Flags_val (GdkDragAction_val) -ML_3 (gdk_drag_status, GdkDragContext_val, Flags_GdkDragAction_val, Int_val, Unit) -Make_Extractor (GdkDragContext, GdkDragContext_val, suggested_action, Val_gdkDragAction) -value val_int(gpointer i) -{ - return Val_int (GPOINTER_TO_INT(i)); -} -value ml_GdkDragContext_targets (value c) -{ - GList *t; - - t = (GdkDragContext_val(c))->targets; - return Val_GList (t, val_int); -} - -/* Misc */ -ML_0 (gdk_flush, Unit) -ML_0 (gdk_beep, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gdk.h b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gdk.h deleted file mode 100644 index 5d699ace2..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gdk.h +++ /dev/null @@ -1,53 +0,0 @@ -/* $Id$ */ - -#define GdkColormap_val(val) ((GdkColormap*)Pointer_val(val)) -extern value Val_GdkColormap (GdkColormap *); - -#define GdkColor_val(val) ((GdkColor*)MLPointer_val(val)) -#define Val_GdkColor Val_pointer - -#define GdkRectangle_val(val) ((GdkRectangle*)MLPointer_val(val)) -#define Val_GdkRectangle Val_pointer - -#define GdkDrawable_val(val) ((GdkDrawable*)Pointer_val(val)) - -#define GdkWindow_val(val) ((GdkWindow*)Pointer_val(val)) -extern value Val_GdkWindow (GdkWindow *); - -#define GdkCursor_val(val) ((GdkCursor*)Pointer_val(val)) -#define Val_GdkCursor Val_pointer - -#define GdkPixmap_val(val) ((GdkPixmap*)Pointer_val(val)) -extern value Val_GdkPixmap (GdkPixmap *); - -#define GdkBitmap_val(val) ((GdkBitmap*)Pointer_val(val)) -extern value Val_GdkBitmap (GdkBitmap *); - -extern GdkImage *GdkImage_val (value); /* check argument */ -extern value Val_GdkImage (GdkImage *); /* finalizer is destroy! */ - -#define GdkFont_val(val) ((GdkFont*)Pointer_val(val)) -extern value Val_GdkFont (GdkFont *); - -extern GdkRegion *GdkRegion_val (value); /* check argument */ -extern value Val_GdkRegion (GdkRegion *); /* finalizer is destroy! */ - -#define GdkGC_val(val) ((GdkGC*)Pointer_val(val)) -extern value Val_GdkGC (GdkGC *); - -#define GdkEvent_val (GdkEvent*)MLPointer_val - -#define GdkVisual_val(val) ((GdkVisual*) val) -#define Val_GdkVisual(visual) ((value) visual) - -#define Val_XID copy_int32 -#define XID_val Int32_val - -extern int OptFlags_GdkModifier_val (value); -extern int Flags_Event_mask_val (value); -extern lookup_info ml_table_extension_events[]; -#define Extension_events_val(key) ml_lookup_to_c (ml_table_extension_events, key) - -#define GdkDragContext_val(val) ((GdkDragContext*)Pointer_val(val)) -extern value Val_GdkDragContext (GdkDragContext *); -extern int Flags_GdkDragAction_val (value); diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_glib.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_glib.c deleted file mode 100644 index a93bb586f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_glib.c +++ /dev/null @@ -1,143 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" - -value copy_string_and_free (char *str) -{ - value res; - res = copy_string_check (str); - g_free (str); - return res; -} - -value Val_GList (GList *list, value (*func)(gpointer)) -{ - value new_cell, result, last_cell, cell; - - if (list == NULL) return Val_unit; - - last_cell = cell = Val_unit; - result = func(list->data); - Begin_roots3 (last_cell, cell, result); - cell = last_cell = alloc_small(2,0); - Field(cell,0) = result; - Field(cell,1) = Val_unit; - list = list->next; - while (list != NULL) { - result = func(list->data); - new_cell = alloc_small(2,0); - Field(new_cell,0) = result; - Field(new_cell,1) = Val_unit; - modify(&Field(last_cell,1), new_cell); - last_cell = new_cell; - list = list->next; - } - End_roots (); - return cell; -} - -GList *GList_val (value list, gpointer (*func)(value)) -{ - CAMLparam1(list); - GList *res = NULL; - if (list == Val_unit) CAMLreturn (res); - for (; Is_block(list); list = Field(list,1)) - res = g_list_append (res, func(Field(list,0))); - CAMLreturn (res); -} - -static value ml_warning_handler = 0L; - -static void ml_warning_wrapper (const gchar *msg) -{ - value arg = copy_string ((char*)msg); - callback (ml_warning_handler, arg); -} - -value ml_g_set_warning_handler (value clos) -{ - value old_handler = ml_warning_handler ? ml_warning_handler : clos; - if (!ml_warning_handler) register_global_root (&ml_warning_handler); - g_set_warning_handler (ml_warning_wrapper); - ml_warning_handler = clos; - return old_handler; -} - -static value ml_print_handler = 0L; - -static void ml_print_wrapper (const gchar *msg) -{ - value arg = copy_string ((char*)msg); - callback (ml_print_handler, arg); -} - -value ml_g_set_print_handler (value clos) -{ - value old_handler = ml_print_handler ? ml_print_handler : clos; - if (!ml_print_handler) register_global_root (&ml_print_handler); - g_set_print_handler (ml_print_wrapper); - ml_print_handler = clos; - return old_handler; -} - -value ml_get_null (value unit) { return 0L; } - -#define GMainLoop_val(val) ((GMainLoop*)Addr_val(val)) -ML_1 (g_main_new, Bool_val, Val_addr) -ML_1 (g_main_iteration, Bool_val, Val_bool) -ML_0 (g_main_pending, Val_bool) -ML_1 (g_main_is_running, GMainLoop_val, Val_bool) -ML_1 (g_main_quit, GMainLoop_val, Unit) -ML_1 (g_main_destroy, GMainLoop_val, Unit) - -/* -value Val_GSList (GSList *list, value (*func)(gpointer)) -{ - value new_cell, result, last_cell, cell; - - if (list == NULL) return Val_unit; - - last_cell = cell = Val_unit; - result = func(list->data); - Begin_roots3 (last_cell, cell, result); - cell = last_cell = alloc_tuple (2); - Field(cell,0) = result; - Field(cell,1) = Val_unit; - list = list->next; - while (list != NULL) { - result = func(list->data); - new_cell = alloc_tuple(2); - Field(new_cell,0) = result; - Field(new_cell,1) = Val_unit; - modify(&Field(last_cell,1), new_cell); - last_cell = new_cell; - list = list->next; - } - End_roots (); - return cell; -} - -GSList *GSList_val (value list, gpointer (*func)(value)) -{ - GSList *res = NULL; - GSList **current = &res; - value cell = list; - if (list == Val_unit) return res; - Begin_root (cell); - while (cell != Val_unit) { - *current = g_slist_alloc (); - (*current)->data = func(Field(cell,0)); - cell = Field(cell,1); - current = &(*current)->next; - } - End_roots (); - return res; -} -*/ diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_glib.h b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_glib.h deleted file mode 100644 index 10f31ca7f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_glib.h +++ /dev/null @@ -1,10 +0,0 @@ -/* $Id$ */ - -value copy_string_and_free (char *str); /* for g_strings only */ -value Val_GList (GList *list, value (*func)(gpointer)); -GList *GList_val (value list, gpointer (*func)(value)); - -/* -value Val_GSList (GSList *list, value (*func)(gpointer)); -GSList *GSList_val (value list, gpointer (*func)(value)); -*/ diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtk.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtk.c deleted file mode 100644 index 271f09405..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtk.c +++ /dev/null @@ -1,1013 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -void ml_raise_gtk (const char *errmsg) -{ - static value * exn = NULL; - if (exn == NULL) - exn = caml_named_value ("gtkerror"); - raise_with_string (*exn, (char*)errmsg); -} - -/* conversion functions */ - -#include "gtk_tags.c" - -ML_1 (Val_direction_type, Int_val, Id) -ML_1 (Val_orientation, Int_val, Id) -ML_1 (Val_toolbar_style, Int_val, Id) -ML_1 (Val_state_type, Int_val, Id) -ML_1 (Val_scroll_type, Int_val, Id) - -static Make_Flags_val (Dest_defaults_val) -static Make_Flags_val (Target_flags_val) -static Make_Flags_val (Font_type_val) - -/* gtkobject.h */ - -Make_Val_final_pointer(GtkObject, gtk_object_ref, gtk_object_unref, 0) - -#define gtk_object_ref_and_sink(w) (gtk_object_ref(w), gtk_object_sink(w)) -Make_Val_final_pointer_ext(GtkObject, _sink , gtk_object_ref_and_sink, - gtk_object_unref, 20) - -/* gtkaccelgroup.h */ - -Make_Val_final_pointer (GtkAccelGroup, gtk_accel_group_ref, - gtk_accel_group_unref, 0) -Make_Val_final_pointer_ext (GtkAccelGroup, _no_ref, Ignore, - gtk_accel_group_unref, 20) -Make_OptFlags_val (Accel_flag_val) - -#define Signal_name_val(val) String_val(Field(val,0)) - -ML_0 (gtk_accel_group_new, Val_GtkAccelGroup_no_ref) -ML_0 (gtk_accel_group_get_default, Val_GtkAccelGroup) -ML_3 (gtk_accel_group_activate, GtkAccelGroup_val, Int_val, - OptFlags_GdkModifier_val, Val_bool) -ML_3 (gtk_accel_groups_activate, GtkObject_val, Int_val, - OptFlags_GdkModifier_val, Val_bool) -ML_2 (gtk_accel_group_attach, GtkAccelGroup_val, GtkObject_val, Unit) -ML_2 (gtk_accel_group_detach, GtkAccelGroup_val, GtkObject_val, Unit) -ML_1 (gtk_accel_group_lock, GtkAccelGroup_val, Unit) -ML_1 (gtk_accel_group_unlock, GtkAccelGroup_val, Unit) -ML_3 (gtk_accel_group_lock_entry, GtkAccelGroup_val, Int_val, - OptFlags_GdkModifier_val, Unit) -ML_3 (gtk_accel_group_unlock_entry, GtkAccelGroup_val, Int_val, - OptFlags_GdkModifier_val, Unit) -ML_6 (gtk_accel_group_add, GtkAccelGroup_val, Int_val, - OptFlags_GdkModifier_val, OptFlags_Accel_flag_val, - GtkObject_val, Signal_name_val, Unit) -ML_bc6 (ml_gtk_accel_group_add) -ML_4 (gtk_accel_group_remove, GtkAccelGroup_val, Int_val, - OptFlags_GdkModifier_val, GtkObject_val, Unit) -ML_2 (gtk_accelerator_valid, Int_val, OptFlags_GdkModifier_val, Val_bool) -ML_1 (gtk_accelerator_set_default_mod_mask, OptFlags_GdkModifier_val, Unit) - -/* gtkstyle.h */ - -Make_Val_final_pointer (GtkStyle, gtk_style_ref, gtk_style_unref, 0) -Make_Val_final_pointer_ext (GtkStyle, _no_ref, Ignore, gtk_style_unref, 20) -ML_0 (gtk_style_new, Val_GtkStyle_no_ref) -ML_1 (gtk_style_copy, GtkStyle_val, Val_GtkStyle_no_ref) -ML_2 (gtk_style_attach, GtkStyle_val, GdkWindow_val, Val_GtkStyle) -ML_1 (gtk_style_detach, GtkStyle_val, Unit) -ML_3 (gtk_style_set_background, GtkStyle_val, GdkWindow_val, State_type_val, Unit) -ML_6 (gtk_draw_hline, GtkStyle_val, GdkWindow_val, State_type_val, - Int_val, Int_val, Int_val, Unit) -ML_bc6 (ml_gtk_draw_hline) -ML_6 (gtk_draw_vline, GtkStyle_val, GdkWindow_val, State_type_val, - Int_val, Int_val, Int_val, Unit) -ML_bc6 (ml_gtk_draw_vline) -Make_Array_Extractor (gtk_style_get, GtkStyle_val, State_type_val, bg, Val_copy) -Make_Array_Setter (gtk_style_set, GtkStyle_val, State_type_val, *GdkColor_val, bg) -Make_Extractor (gtk_style_get, GtkStyle_val, colormap, Val_GdkColormap) -Make_Extractor (gtk_style_get, GtkStyle_val, depth, Val_int) -Make_Extractor (gtk_style_get, GtkStyle_val, font, Val_GdkFont) -/* Make_Setter (gtk_style_set, GtkStyle_val, GdkFont_val, font) */ -value ml_gtk_style_set_font (value st, value font) -{ - GtkStyle *style = GtkStyle_val(st); - if (style->font) gdk_font_unref(style->font); - style->font = GdkFont_val(font); - gdk_font_ref(style->font); - return Val_unit; -} -Make_Array_Extractor (gtk_style_get, GtkStyle_val, State_type_val, dark_gc, Val_GdkGC) -Make_Array_Extractor (gtk_style_get, GtkStyle_val, State_type_val, light_gc, Val_GdkGC) - -/* gtktypeutils.h */ - -ML_1 (gtk_type_name, Int_val, Val_string) -ML_1 (gtk_type_from_name, String_val, Val_int) -ML_1 (gtk_type_parent, Int_val, Val_int) -ML_1 (gtk_type_class, Int_val, (value)) -ML_1 (gtk_type_parent_class, Int_val, (value)) -ML_2 (gtk_type_is_a, Int_val, Int_val, Val_bool) -value ml_gtk_type_fundamental (value type) -{ - return Val_fundamental_type (GTK_FUNDAMENTAL_TYPE (Int_val(type))); -} - -/* gtkobject.h */ - -/* ML_1 (GTK_OBJECT_TYPE, GtkObject_val, Val_int) */ -value ml_gtk_object_type (value val) -{ - return Val_int (GtkObject_val(val)->klass->type); -} - -ML_1 (gtk_object_destroy, GtkObject_val, Unit) -ML_1 (gtk_object_ref, GtkObject_val, Unit) -ML_1 (gtk_object_unref, GtkObject_val, Unit) -ML_1 (gtk_object_sink, GtkObject_val, Unit) - -Make_Extractor (gtk_class,(GtkObjectClass *),type,Val_int) - -/* gtkdata.h */ - -/* gtkadjustment.h */ - -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) -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) -Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, step_increment, - copy_double) -Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, page_increment, - copy_double) -Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, page_size, copy_double) - -/* gtktooltips.h */ - -#define GtkTooltips_val(val) check_cast(GTK_TOOLTIPS,val) -ML_0 (gtk_tooltips_new, Val_GtkAny) -ML_1 (gtk_tooltips_enable, GtkTooltips_val, Unit) -ML_1 (gtk_tooltips_disable, GtkTooltips_val, Unit) -ML_2 (gtk_tooltips_set_delay, GtkTooltips_val, Int_val, Unit) -ML_4 (gtk_tooltips_set_tip, GtkTooltips_val, GtkWidget_val, - String_option_val, String_option_val, Unit) -ML_3 (gtk_tooltips_set_colors, GtkTooltips_val, - Option_val(arg2, GdkColor_val, NULL) Ignore, - Option_val(arg3, GdkColor_val, NULL) Ignore, - Unit) - -/* gtkwidget.h */ - -value ml_gtk_widget_set_can_default (value val, value bool) -{ - GtkWidget *w = GtkWidget_val(val); - guint32 saved_flags = GTK_WIDGET_FLAGS(w); - if (Bool_val(bool)) GTK_WIDGET_SET_FLAGS(w, GTK_CAN_DEFAULT); - else GTK_WIDGET_UNSET_FLAGS(w, GTK_CAN_DEFAULT); - if (saved_flags != GTK_WIDGET_FLAGS(w)) - gtk_widget_queue_resize (w); - return Val_unit; -} -value ml_gtk_widget_set_can_focus (value val, value bool) -{ - GtkWidget *w = GtkWidget_val(val); - guint32 saved_flags = GTK_WIDGET_FLAGS(w); - if (Bool_val(bool)) GTK_WIDGET_SET_FLAGS(w, GTK_CAN_FOCUS); - else GTK_WIDGET_UNSET_FLAGS(w, GTK_CAN_FOCUS); - if (saved_flags != GTK_WIDGET_FLAGS(w)) - gtk_widget_queue_resize (w); - return Val_unit; -} -ML_1 (gtk_widget_unparent, GtkWidget_val, Unit) -ML_1 (gtk_widget_show, GtkWidget_val, Unit) -ML_1 (gtk_widget_show_now, GtkWidget_val, Unit) -ML_1 (gtk_widget_show_all, GtkWidget_val, Unit) -ML_1 (gtk_widget_hide, GtkWidget_val, Unit) -ML_1 (gtk_widget_hide_all, GtkWidget_val, Unit) -ML_1 (gtk_widget_map, GtkWidget_val, Unit) -ML_1 (gtk_widget_unmap, GtkWidget_val, Unit) -ML_1 (gtk_widget_realize, GtkWidget_val, Unit) -ML_1 (gtk_widget_unrealize, GtkWidget_val, Unit) -ML_1 (gtk_widget_queue_draw, GtkWidget_val, Unit) -ML_1 (gtk_widget_queue_resize, GtkWidget_val, Unit) -ML_2 (gtk_widget_draw, GtkWidget_val, - Option_val(arg2,GdkRectangle_val,NULL) Ignore, Unit) -ML_1 (gtk_widget_draw_focus, GtkWidget_val, Unit) -ML_1 (gtk_widget_draw_default, GtkWidget_val, Unit) -/* ML_1 (gtk_widget_draw_children, GtkWidget_val, Unit) */ -ML_2 (gtk_widget_event, GtkWidget_val, GdkEvent_val, Val_bool) -ML_1 (gtk_widget_activate, GtkWidget_val, Val_bool) -ML_2 (gtk_widget_reparent, GtkWidget_val, GtkWidget_val, Unit) -ML_3 (gtk_widget_popup, GtkWidget_val, Int_val, Int_val, Unit) -value ml_gtk_widget_intersect (value w, value area) -{ - GdkRectangle inter; - if (gtk_widget_intersect(GtkWidget_val(w), GdkRectangle_val(area), &inter)) - return ml_some (Val_copy (inter)); - return Val_unit; -} -/* ML_1 (gtk_widget_basic, GtkWidget_val, Val_bool) */ -ML_1 (gtk_widget_grab_focus, GtkWidget_val, Unit) -ML_1 (gtk_widget_grab_default, GtkWidget_val, Unit) -ML_2 (gtk_widget_set_name, GtkWidget_val, String_val, Unit) -ML_1 (gtk_widget_get_name, GtkWidget_val, Val_string) -ML_2 (gtk_widget_set_state, GtkWidget_val, State_type_val, Unit) -ML_2 (gtk_widget_set_sensitive, GtkWidget_val, Bool_val, Unit) -ML_3 (gtk_widget_set_uposition, GtkWidget_val, Int_val, Int_val, Unit) -ML_3 (gtk_widget_set_usize, GtkWidget_val, Int_val, Int_val, Unit) -ML_2 (gtk_widget_add_events, GtkWidget_val, Flags_Event_mask_val, Unit) -ML_2 (gtk_widget_set_events, GtkWidget_val, Flags_Event_mask_val, Unit) -ML_2 (gtk_widget_set_extension_events, GtkWidget_val, Extension_events_val, - Unit) -ML_1 (gtk_widget_get_toplevel, GtkWidget_val, Val_GtkWidget) -ML_2 (gtk_widget_get_ancestor, GtkWidget_val, Int_val, Val_GtkWidget) -ML_1 (gtk_widget_get_colormap, GtkWidget_val, Val_GdkColormap) -ML_1 (gtk_widget_get_visual, GtkWidget_val, (value)) -value ml_gtk_widget_get_pointer (value w) -{ - int x,y; - value ret; - gtk_widget_get_pointer (GtkWidget_val(w), &x, &y); - ret = alloc_small (2,0); - Field(ret,0) = Val_int(x); - Field(ret,1) = Val_int(y); - return ret; -} -ML_2 (gtk_widget_is_ancestor, GtkWidget_val, GtkWidget_val, Val_bool) -/* ML_2 (gtk_widget_is_child, GtkWidget_val, GtkWidget_val, Val_bool) */ -ML_2 (gtk_widget_set_style, GtkWidget_val, GtkStyle_val, Unit) -ML_1 (gtk_widget_set_rc_style, GtkWidget_val, Unit) -ML_1 (gtk_widget_ensure_style, GtkWidget_val, Unit) -ML_1 (gtk_widget_get_style, GtkWidget_val, Val_GtkStyle) -ML_1 (gtk_widget_restore_default_style, GtkWidget_val, Unit) - -ML_6 (gtk_widget_add_accelerator, GtkWidget_val, Signal_name_val, - GtkAccelGroup_val, Char_val, OptFlags_GdkModifier_val, - OptFlags_Accel_flag_val, Unit) -ML_bc6 (ml_gtk_widget_add_accelerator) -ML_4 (gtk_widget_remove_accelerator, GtkWidget_val, GtkAccelGroup_val, - Char_val, OptFlags_GdkModifier_val, Unit) -ML_1 (gtk_widget_lock_accelerators, GtkWidget_val, Unit) -ML_1 (gtk_widget_unlock_accelerators, GtkWidget_val, Unit) -ML_1 (gtk_widget_accelerators_locked, GtkWidget_val, Val_bool) - -ML_1 (GTK_WIDGET_VISIBLE, GtkWidget_val, Val_bool) -ML_1 (GTK_WIDGET_HAS_FOCUS, GtkWidget_val, Val_bool) - -Make_Extractor (GtkWidget, GtkWidget_val, window, Val_GdkWindow) -Make_Extractor (gtk_widget, GtkWidget_val, parent, Val_GtkWidget) -static value Val_GtkAllocation (GtkAllocation allocation) -{ - value ret = alloc_small (4, 0); - Field(ret,0) = Val_int(allocation.x); - Field(ret,1) = Val_int(allocation.y); - Field(ret,2) = Val_int(allocation.width); - Field(ret,3) = Val_int(allocation.height); - return ret; -} -Make_Extractor (gtk_widget, GtkWidget_val, allocation, Val_GtkAllocation) -/* -#define GtkAllocation_val(val) ((GtkAllocation*)Pointer_val(val)) -Make_Extractor (gtk_allocation, GtkAllocation_val, x, Val_int) -Make_Extractor (gtk_allocation, GtkAllocation_val, y, Val_int) -Make_Extractor (gtk_allocation, GtkAllocation_val, width, Val_int) -Make_Extractor (gtk_allocation, GtkAllocation_val, height, Val_int) -*/ - -ML_2 (gtk_widget_set_app_paintable, GtkWidget_val, Bool_val, Unit) - -ML_2 (gtk_widget_set_visual, GtkWidget_val, GdkVisual_val, Unit) -ML_2 (gtk_widget_set_colormap, GtkWidget_val, GdkColormap_val, Unit) -ML_1 (gtk_widget_set_default_visual, GdkVisual_val, Unit) -ML_1 (gtk_widget_set_default_colormap, GdkColormap_val, Unit) -ML_0 (gtk_widget_get_default_visual, Val_GdkVisual) -ML_0 (gtk_widget_get_default_colormap, Val_GdkColormap) -ML_1 (gtk_widget_push_visual, GdkVisual_val, Unit) -ML_1 (gtk_widget_push_colormap, GdkColormap_val, Unit) -ML_0 (gtk_widget_pop_visual, Unit) -ML_0 (gtk_widget_pop_colormap, Unit) - -/* gtkdnd.h */ - -value ml_gtk_drag_dest_set (value w, value f, value t, value a) -{ - GtkTargetEntry *targets = (GtkTargetEntry *)Val_unit; - int n_targets, i; - - CAMLparam4 (w,f,t,a); - n_targets = Wosize_val(t); - if (n_targets) - targets = (GtkTargetEntry *) - alloc (Wosize_asize(n_targets * sizeof(GtkTargetEntry)), - Abstract_tag); - for (i=0; ilength < 0) ml_raise_null_pointer(); - ret = alloc_string (data->length); - if (data->length) memcpy ((void*)ret, data->data, data->length); - return ret; -} - -ML_4 (gtk_selection_data_set, GtkSelectionData_val, Int_val, Int_val, - Insert((guchar*)String_option_val(arg4)) - Option_val(arg4, string_length, -1) Ignore, - Unit) - -/* gtkcontainer.h */ - -#define GtkContainer_val(val) check_cast(GTK_CONTAINER,val) -ML_2 (gtk_container_set_border_width, GtkContainer_val, Int_val, Unit) -ML_2 (gtk_container_set_resize_mode, GtkContainer_val, Resize_mode_val, Unit) -ML_2 (gtk_container_add, GtkContainer_val, GtkWidget_val, Unit) -ML_2 (gtk_container_remove, GtkContainer_val, GtkWidget_val, Unit) -static void ml_gtk_simple_callback (GtkWidget *w, gpointer data) -{ - value val, *clos = (value*)data; - val = Val_GtkWidget(w); - callback (*clos, val); -} -value ml_gtk_container_foreach (value w, value clos) -{ - CAMLparam1(clos); - gtk_container_foreach (GtkContainer_val(w), ml_gtk_simple_callback, - &clos); - CAMLreturn(Val_unit); -} -ML_1 (gtk_container_register_toplevel, GtkContainer_val, Unit) -ML_1 (gtk_container_unregister_toplevel, GtkContainer_val, Unit) -ML_2 (gtk_container_focus, GtkContainer_val, Direction_type_val, Val_bool) -ML_2 (gtk_container_set_focus_child, GtkContainer_val, GtkWidget_val, Unit) -ML_2 (gtk_container_set_focus_vadjustment, GtkContainer_val, - GtkAdjustment_val, Unit) -ML_2 (gtk_container_set_focus_hadjustment, GtkContainer_val, - GtkAdjustment_val, Unit) - -/* gtkdialog.h */ - -static void window_unref (GtkObject *w) -{ - /* If the window exists and is still not visible, then unreference twice. - This should be enough to destroy it. */ - if (!GTK_OBJECT_DESTROYED(w) && !GTK_WIDGET_VISIBLE(w)) - gtk_object_unref (w); - gtk_object_unref (w); -} -Make_Val_final_pointer_ext (GtkObject, _window, gtk_object_ref, window_unref, - 20) -#define Val_GtkWidget_window(w) Val_GtkObject_window((GtkObject*)w) - -#define GtkDialog_val(val) check_cast(GTK_DIALOG,val) -ML_0 (gtk_dialog_new, Val_GtkWidget_window) -Make_Extractor (GtkDialog, GtkDialog_val, action_area, Val_GtkWidget) -Make_Extractor (GtkDialog, GtkDialog_val, vbox, Val_GtkWidget) - -/* gtkinputdialog.h */ - -ML_0 (gtk_input_dialog_new, Val_GtkWidget_window) - -/* gtkfileselection.h */ - -#define GtkFileSelection_val(val) check_cast(GTK_FILE_SELECTION,val) -ML_1 (gtk_file_selection_new, String_val, Val_GtkWidget_window) -ML_2 (gtk_file_selection_set_filename, GtkFileSelection_val, String_val, Unit) -ML_1 (gtk_file_selection_get_filename, GtkFileSelection_val, Val_string) -ML_1 (gtk_file_selection_show_fileop_buttons, GtkFileSelection_val, Unit) -ML_1 (gtk_file_selection_hide_fileop_buttons, GtkFileSelection_val, Unit) -Make_Extractor (gtk_file_selection_get, GtkFileSelection_val, ok_button, - Val_GtkWidget) -Make_Extractor (gtk_file_selection_get, GtkFileSelection_val, cancel_button, - Val_GtkWidget) -Make_Extractor (gtk_file_selection_get, GtkFileSelection_val, help_button, - Val_GtkWidget) - -/* gtkwindow.h */ - -#define GtkWindow_val(val) check_cast(GTK_WINDOW,val) -ML_1 (gtk_window_new, Window_type_val, Val_GtkWidget_window) -ML_2 (gtk_window_set_title, GtkWindow_val, String_val, Unit) -ML_3 (gtk_window_set_wmclass, GtkWindow_val, String_val, String_val, Unit) -Make_Extractor (gtk_window_get, GtkWindow_val, wmclass_name, Val_optstring) -Make_Extractor (gtk_window_get, GtkWindow_val, wmclass_class, Val_optstring) -ML_2 (gtk_window_set_focus, GtkWindow_val, GtkWidget_val, Unit) -ML_2 (gtk_window_set_default, GtkWindow_val, GtkWidget_val, Unit) -ML_4 (gtk_window_set_policy, GtkWindow_val, Bool_val, Bool_val, Bool_val, Unit) -Make_Extractor (gtk_window_get, GtkWindow_val, allow_shrink, Val_bool) -Make_Extractor (gtk_window_get, GtkWindow_val, allow_grow, Val_bool) -Make_Extractor (gtk_window_get, GtkWindow_val, auto_shrink, Val_bool) -ML_2 (gtk_window_add_accel_group, GtkWindow_val, - GtkAccelGroup_val, Unit) -ML_2 (gtk_window_remove_accel_group, GtkWindow_val, - GtkAccelGroup_val, Unit) -ML_1 (gtk_window_activate_focus, GtkWindow_val, Val_bool) -ML_1 (gtk_window_activate_default, GtkWindow_val, Val_bool) -ML_2 (gtk_window_set_modal, GtkWindow_val, Bool_val, Unit) -ML_3 (gtk_window_set_default_size, GtkWindow_val, Int_val, Int_val, Unit) -ML_2 (gtk_window_set_position, GtkWindow_val, Window_position_val, Unit) -ML_2 (gtk_window_set_transient_for, GtkWindow_val, GtkWindow_val, Unit) - -/* gtkcolorsel.h */ - -#define GtkColorSelection_val(val) check_cast(GTK_COLOR_SELECTION,val) -#define GtkColorSelectionDialog_val(val) check_cast(GTK_COLOR_SELECTION_DIALOG,val) -ML_0 (gtk_color_selection_new, Val_GtkWidget_sink) -ML_2 (gtk_color_selection_set_update_policy, GtkColorSelection_val, - Update_type_val, Unit) -ML_2 (gtk_color_selection_set_opacity, GtkColorSelection_val, - Bool_val, Unit) -value ml_gtk_color_selection_set_color (value w, value red, value green, - value blue, value opacity) -{ - double color[4]; - color[0] = Double_val(red); - color[1] = Double_val(green); - color[2] = Double_val(blue); - color[3] = Option_val(opacity,Double_val,0.0); - gtk_color_selection_set_color (GtkColorSelection_val(w), color); - return Val_unit; -} -value ml_gtk_color_selection_get_color (value w) -{ - value ret; - double color[4]; - color[3] = 0.0; - gtk_color_selection_get_color (GtkColorSelection_val(w), color); - ret = alloc (4*Double_wosize, Double_array_tag); - Store_double_field (ret, 0, color[0]); - Store_double_field (ret, 1, color[1]); - Store_double_field (ret, 2, color[2]); - Store_double_field (ret, 3, color[3]); - return ret; -} -ML_1 (gtk_color_selection_dialog_new, String_val, Val_GtkWidget_window) -Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, ok_button, Val_GtkWidget) -Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, cancel_button, Val_GtkWidget) -Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, help_button, Val_GtkWidget) -Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, colorsel, Val_GtkWidget) - -/* gtkfontsel.h */ - -#define GtkFontSelection_val(val) \ - check_cast(GTK_FONT_SELECTION,val) -ML_0 (gtk_font_selection_new, Val_GtkWidget_sink) -ML_1 (gtk_font_selection_get_font, GtkFontSelection_val, - Val_GdkFont) -ML_1 (gtk_font_selection_get_font_name, GtkFontSelection_val, - copy_string_check) -ML_2 (gtk_font_selection_set_font_name, GtkFontSelection_val, - String_val, Val_bool) -ML_9 (gtk_font_selection_set_filter, GtkFontSelection_val, - Font_filter_type_val, Flags_Font_type_val, - (gchar**), (gchar**), (gchar**), - (gchar**), (gchar**), (gchar**), Unit) -ML_bc9 (ml_gtk_font_selection_set_filter) -ML_1 (gtk_font_selection_get_preview_text, GtkFontSelection_val, - copy_string) -ML_2 (gtk_font_selection_set_preview_text, GtkFontSelection_val, - String_val, Unit) - -#define GtkFontSelectionDialog_val(val) \ - check_cast(GTK_FONT_SELECTION_DIALOG,val) -ML_1 (gtk_font_selection_dialog_new, String_option_val, Val_GtkWidget_window) -/* -ML_1 (gtk_font_selection_dialog_get_font, GtkFontSelectionDialog_val, - Val_GdkFont) -ML_1 (gtk_font_selection_dialog_get_font_name, GtkFontSelectionDialog_val, - copy_string_check) -ML_2 (gtk_font_selection_dialog_set_font_name, GtkFontSelectionDialog_val, - String_val, Val_bool) -ML_9 (gtk_font_selection_dialog_set_filter, GtkFontSelectionDialog_val, - Font_filter_type_val, Flags_Font_type_val, - (gchar**), (gchar**), (gchar**), - (gchar**), (gchar**), (gchar**), Unit) -ML_bc9 (ml_gtk_font_selection_dialog_set_filter) -ML_1 (gtk_font_selection_dialog_get_preview_text, GtkFontSelectionDialog_val, - copy_string) -ML_2 (gtk_font_selection_dialog_set_preview_text, GtkFontSelectionDialog_val, - String_val, Unit) -*/ -Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val, - fontsel, Val_GtkWidget) -Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val, - ok_button, Val_GtkWidget) -Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val, - apply_button, Val_GtkWidget) -Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val, - cancel_button, Val_GtkWidget) - -/* gtkplug.h */ - -ML_1 (gtk_plug_new, XID_val, Val_GtkWidget_window) - -/* gtkctree.h */ -#define GtkCTree_val(val) check_cast(GTK_CTREE,val) -/* Beware: this definition axpects arg1 to be a GtkCTree */ -/* -#define GtkCTreeNode_val(val) \ - (gtk_ctree_find(GtkCTree_val(arg1),NULL,(GtkCTreeNode*)(val-1)) \ - ? (GtkCTreeNode*)(val-1) : (ml_raise_gtk ("Bad GtkCTreeNode"), NULL)) -#define Val_GtkCTreeNode Val_addr -ML_2 (gtk_ctree_new, Int_val, Int_val, Val_GtkWidget_sink) -ML_3 (gtk_ctree_new_with_titles, Int_val, Int_val, (char **), - Val_GtkWidget_sink) -ML_11 (gtk_ctree_insert_node, GtkCTree_val, GtkCTreeNode_val, - GtkCTreeNode_val, (char**), Int_val, GdkPixmap_val, GdkBitmap_val, - GdkPixmap_val, GdkBitmap_val, Bool_val, Bool_val, - Val_GtkCTreeNode) -ML_2 (gtk_ctree_remove_node, GtkCTree_val, GtkCTreeNode_val, Unit) -ML_2 (gtk_ctree_is_viewable, GtkCTree_val, GtkCTreeNode_val, Val_bool) -*/ - -/* gtkpreview.h */ -/* -#define GtkPreview_val(val) GTK_PREVIEW(Pointer_val(val)) -ML_1 (gtk_preview_new, Preview_val, Val_GtkWidget_sink) -ML_3 (gtk_preview_size, GtkPreview_val, Int_val, Int_val, Unit) -ML_9 (gtk_preview_put, GtkPreview_val, GdkWindow_val, GdkGC_val, - Int_val, Int_val, Int_val, Int_val, Int_val, Int_val, Unit) -ML_bc9 (ml_gtk_preview_put) -*/ - -/* gtkmain.h */ - -value ml_gtk_init (value argv) -{ - CAMLparam1 (argv); - int argc = Wosize_val(argv), i; - CAMLlocal1 (copy); - - copy = (argc ? alloc (argc, Abstract_tag) : Atom(0)); - for (i = 0; i < argc; i++) Field(copy,i) = Field(argv,i); - gtk_init (&argc, (char ***)©); - - argv = (argc ? alloc (argc, 0) : Atom(0)); - for (i = 0; i < argc; i++) modify(&Field(argv,i), Field(copy,i)); - CAMLreturn (argv); -} -ML_1 (gtk_exit, Int_val, Unit) -ML_0 (gtk_set_locale, Val_string) -ML_0 (gtk_main, Unit) -ML_1 (gtk_main_iteration_do, Bool_val, Val_bool) -ML_0 (gtk_main_quit, Unit) -ML_1 (gtk_grab_add, GtkWidget_val, Unit) -ML_1 (gtk_grab_remove, GtkWidget_val, Unit) -ML_0 (gtk_grab_get_current, Val_GtkWidget) -value ml_gtk_get_version (value unit) -{ - value ret = alloc_small(3,0); - Field(ret,0) = Val_int(gtk_major_version); - Field(ret,1) = Val_int(gtk_minor_version); - Field(ret,2) = Val_int(gtk_micro_version); - return ret; -} - -/* Marshalling */ - -void ml_gtk_callback_marshal (GtkObject *object, gpointer data, - guint nargs, GtkArg *args) -{ - value vargs = alloc_small(3,0); - - CAMLparam1 (vargs); - Field(vargs,0) = (value) object; - Field(vargs,1) = Val_int(nargs); - Field(vargs,2) = (value) args; - - callback (*(value*)data, vargs); - - Field(vargs,0) = Val_int(-1); - Field(vargs,1) = Val_int(-1); - CAMLreturn0; -} - -value ml_gtk_arg_shift (GtkArg *args, value index) -{ - return (value) (&args[Int_val(index)]); -} - -value ml_gtk_arg_get_type (GtkArg *arg) -{ - return Val_int (arg->type); -} - -value ml_gtk_arg_get (GtkArg *arg) -{ - CAMLparam0(); - CAMLlocal1(tmp); - value ret = Val_unit; - GtkFundamentalType type = GTK_FUNDAMENTAL_TYPE(arg->type); - int tag; - - switch (type) { - case GTK_TYPE_CHAR: - tag = 0; - tmp = Int_val(GTK_VALUE_CHAR(*arg)); - break; - case GTK_TYPE_BOOL: - tag = 1; - tmp = Val_bool(GTK_VALUE_BOOL(*arg)); - break; - case GTK_TYPE_INT: - case GTK_TYPE_ENUM: - case GTK_TYPE_UINT: - case GTK_TYPE_FLAGS: - tag = 2; - tmp = Val_int (GTK_VALUE_INT(*arg)); break; - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: - tag = 2; - tmp = Val_int (GTK_VALUE_LONG(*arg)); break; - case GTK_TYPE_FLOAT: - tag = 3; - tmp = copy_double ((double)GTK_VALUE_FLOAT(*arg)); break; - case GTK_TYPE_DOUBLE: - tag = 3; - tmp = copy_double (GTK_VALUE_DOUBLE(*arg)); break; - case GTK_TYPE_STRING: - tag = 4; - tmp = Val_option (GTK_VALUE_STRING(*arg), copy_string); break; - case GTK_TYPE_OBJECT: - tag = 5; - tmp = Val_option (GTK_VALUE_OBJECT(*arg), Val_GtkObject); break; - case GTK_TYPE_BOXED: - case GTK_TYPE_POINTER: - tag = 6; - tmp = Val_option (GTK_VALUE_POINTER(*arg), Val_pointer); break; - default: - tag = -1; - } - if (tag != -1) { - ret = alloc_small(1,tag); - Field(ret,0) = tmp; - } - CAMLreturn(ret); -} - -value ml_gtk_arg_set_retloc (GtkArg *arg, value val) -{ - value type = Fundamental_type_val(Is_block(val) ? Field(val,0) : val); - value data = (Is_block(val) ? Field(val,1) : 0); - if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_POINTER - && GTK_FUNDAMENTAL_TYPE(arg->type) != type) - ml_raise_gtk ("GtkArgv.Arg.set : argument type mismatch"); - switch (type) { - case GTK_TYPE_CHAR: *GTK_RETLOC_CHAR(*arg) = Int_val(data); break; - case GTK_TYPE_BOOL: *GTK_RETLOC_BOOL(*arg) = Int_val(data); break; - case GTK_TYPE_INT: - case GTK_TYPE_ENUM: *GTK_RETLOC_INT(*arg) = Int_val(data); break; - case GTK_TYPE_UINT: - case GTK_TYPE_FLAGS: *GTK_RETLOC_UINT(*arg) = Int32_val(data); break; - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: *GTK_RETLOC_LONG(*arg) = Nativeint_val(data); break; - case GTK_TYPE_FLOAT: *GTK_RETLOC_FLOAT(*arg) = Float_val(data); break; - case GTK_TYPE_DOUBLE: *GTK_RETLOC_DOUBLE(*arg) = Double_val(data); break; - case GTK_TYPE_STRING: - *GTK_RETLOC_STRING(*arg) = Option_val(data, String_val, NULL); - break; - case GTK_TYPE_BOXED: - case GTK_TYPE_POINTER: - case GTK_TYPE_OBJECT: - *GTK_RETLOC_POINTER(*arg) = Option_val(data, Pointer_val, NULL); - break; - } - return Val_unit; -} - -/* -value ml_gtk_arg_get_char (GtkArg *arg) -{ - if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_CHAR) - ml_raise_gtk ("argument type mismatch"); - return Val_char (GTK_VALUE_CHAR(*arg)); -} - -value ml_gtk_arg_get_bool (GtkArg *arg) -{ - if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_BOOL) - ml_raise_gtk ("argument type mismatch"); - return Val_bool (GTK_VALUE_BOOL(*arg)); -} - -value ml_gtk_arg_get_int (GtkArg *arg) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_INT: - case GTK_TYPE_UINT: - return Val_int (GTK_VALUE_INT(*arg)); - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: - return Val_long (GTK_VALUE_LONG(*arg)); - case GTK_TYPE_ENUM: - return Val_int (GTK_VALUE_ENUM(*arg)); - case GTK_TYPE_FLAGS: - return Val_int (GTK_VALUE_FLAGS(*arg)); - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} -*/ -value ml_gtk_arg_get_nativeint(GtkArg *arg) { - - switch(GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_INT: - case GTK_TYPE_UINT: - return copy_nativeint (GTK_VALUE_INT(*arg)); - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: - return copy_nativeint (GTK_VALUE_LONG(*arg)); - case GTK_TYPE_ENUM: - return copy_nativeint (GTK_VALUE_ENUM(*arg)); - case GTK_TYPE_FLAGS: - return copy_nativeint (GTK_VALUE_FLAGS(*arg)); - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} -/* -value ml_gtk_arg_get_float (GtkArg *arg) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_FLOAT: - return copy_double ((double)GTK_VALUE_FLOAT(*arg)); - case GTK_TYPE_DOUBLE: - return copy_double (GTK_VALUE_DOUBLE(*arg)); - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_get_string (GtkArg *arg) -{ - char *p; - if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_STRING) - ml_raise_gtk ("argument type mismatch"); - p = GTK_VALUE_STRING(*arg); - return Val_option (p, copy_string); -} -*/ -value ml_gtk_arg_get_pointer (GtkArg *arg) -{ - gpointer p = NULL; - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_STRING: - case GTK_TYPE_BOXED: - case GTK_TYPE_POINTER: - case GTK_TYPE_OBJECT: - p = GTK_VALUE_POINTER(*arg); break; - default: - ml_raise_gtk ("GtkArgv.get_pointer : argument type mismatch"); - } - return Val_pointer(p); -} -/* -value ml_gtk_arg_get_object (GtkArg *arg) -{ - GtkObject *p; - if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_OBJECT) - ml_raise_gtk ("argument type mismatch"); - p = GTK_VALUE_OBJECT(*arg); - return Val_option (p, Val_GtkObject); -} -*/ - -value ml_string_at_pointer (value ofs, value len, value ptr) -{ - char *start = ((char*)Pointer_val(ptr)) + Option_val(ofs, Int_val, 0); - int length = Option_val(len, Int_val, strlen(start)); - value ret = alloc_string(length); - memcpy ((char*)ret, start, length); - return ret; -} - -value ml_int_at_pointer (value ptr) -{ - return Val_int(*(int*)Pointer_val(ptr)); -} - -/* -value ml_gtk_arg_set_char (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_CHAR: - *GTK_RETLOC_CHAR(*arg) = Char_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_bool (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_BOOL: - *GTK_RETLOC_BOOL(*arg) = Bool_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_int (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_INT: - case GTK_TYPE_UINT: - *GTK_RETLOC_INT(*arg) = Int_val(val); break; - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: - *GTK_RETLOC_LONG(*arg) = Long_val(val); break; - case GTK_TYPE_ENUM: - *GTK_RETLOC_ENUM(*arg) = Int_val(val); break; - case GTK_TYPE_FLAGS: - *GTK_RETLOC_FLAGS(*arg) = Int_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_nativeint (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_INT: - case GTK_TYPE_UINT: - *GTK_RETLOC_INT(*arg) = Nativeint_val(val); break; - case GTK_TYPE_LONG: - case GTK_TYPE_ULONG: - *GTK_RETLOC_LONG(*arg) = Nativeint_val(val); break; - case GTK_TYPE_ENUM: - *GTK_RETLOC_ENUM(*arg) = Nativeint_val(val); break; - case GTK_TYPE_FLAGS: - *GTK_RETLOC_FLAGS(*arg) = Nativeint_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_float (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_FLOAT: - *GTK_RETLOC_FLOAT(*arg) = (float) Double_val(val); break; - case GTK_TYPE_DOUBLE: - *GTK_RETLOC_DOUBLE(*arg) = Double_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_string (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_STRING: - *GTK_RETLOC_STRING(*arg) = String_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_pointer (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_BOXED: - *GTK_RETLOC_BOXED(*arg) = Pointer_val(val); break; - case GTK_TYPE_POINTER: - *GTK_RETLOC_POINTER(*arg) = Pointer_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} - -value ml_gtk_arg_set_object (GtkArg *arg, value val) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_POINTER: - case GTK_TYPE_OBJECT: - *GTK_RETLOC_OBJECT(*arg) = GtkObject_val(val); break; - default: - ml_raise_gtk ("argument type mismatch"); - } - return Val_unit; -} -*/ - -/* gtksignal.h */ - -value ml_gtk_signal_connect (value object, value name, value clos, value after) -{ - value *clos_p = ml_global_root_new (clos); - return Val_int (gtk_signal_connect_full - (GtkObject_val(object), String_val(name), NULL, - ml_gtk_callback_marshal, clos_p, - ml_global_root_destroy, FALSE, Bool_val(after))); -} - -ML_2 (gtk_signal_disconnect, GtkObject_val, Int_val, Unit) -ML_2 (gtk_signal_emit_stop_by_name, GtkObject_val, String_val, Unit) -ML_2 (gtk_signal_handler_block, GtkObject_val, Int_val, Unit) -ML_2 (gtk_signal_handler_unblock, GtkObject_val, Int_val, Unit) -ML_2_name (ml_gtk_signal_emit_none, gtk_signal_emit_by_name, - GtkObject_val, String_val, Unit) -ML_3_name (ml_gtk_signal_emit_int, gtk_signal_emit_by_name, - GtkObject_val, String_val, Int_val, Unit) -ML_4_name (ml_gtk_signal_emit_scroll, gtk_signal_emit_by_name, - GtkObject_val, String_val, Scroll_type_val, Double_val, Unit) - -/* gtkmain.h (again) */ - -value ml_gtk_timeout_add (value interval, value clos) -{ - value *clos_p = ml_global_root_new (clos); - return Val_int (gtk_timeout_add_full - (Int_val(interval), NULL, ml_gtk_callback_marshal, clos_p, - ml_global_root_destroy)); -} -ML_1 (gtk_timeout_remove, Int_val, Unit) - -ML_1 (gtk_rc_add_default_file, String_val, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtk.h b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtk.h deleted file mode 100644 index eac3f6ea5..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtk.h +++ /dev/null @@ -1,24 +0,0 @@ -/* $Id$ */ - -#define GtkObject_val(obj) ((GtkObject*)Field(obj,1)) -value Val_GtkObject (GtkObject *w); -value Val_GtkObject_sink (GtkObject *w); -#define GtkAccelGroup_val(val) ((GtkAccelGroup*)Pointer_val(val)) -value Val_GtkAccelGroup (GtkAccelGroup *); -#define GtkStyle_val(val) ((GtkStyle*)Pointer_val(val)) -value Val_GtkStyle (GtkStyle *); - -#define Val_GtkAny(w) Val_GtkObject((GtkObject*)w) -#define Val_GtkAny_sink(w) Val_GtkObject_sink((GtkObject*)w) -#define Val_GtkWidget Val_GtkAny -#define Val_GtkWidget_sink Val_GtkAny_sink - -#ifdef GTK_NO_CHECK_CASTS -#define check_cast(f,v) f(Pointer_val(v)) -#else -#define check_cast(f,v) (Pointer_val(v) == NULL ? NULL : f(Pointer_val(v))) -#endif - -#define GtkWidget_val(val) check_cast(GTK_WIDGET,val) -#define GtkAdjustment_val(val) check_cast(GTK_ADJUSTMENT,val) -#define GtkItem_val(val) check_cast(GTK_ITEM,val) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkbin.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkbin.c deleted file mode 100644 index 9b797a6c9..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkbin.c +++ /dev/null @@ -1,118 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -/* gtkalignment.h */ - -#define GtkAlignment_val(val) check_cast(GTK_ALIGNMENT,val) -ML_4 (gtk_alignment_new, Float_val, Float_val, Float_val, Float_val, - Val_GtkWidget_sink) -value ml_gtk_alignment_set (value x, value y, - value xscale, value yscale, value val) -{ - GtkAlignment *alignment = GtkAlignment_val(val); - gtk_alignment_set (alignment, - Option_val(x, Float_val, alignment->xalign), - Option_val(y, Float_val, alignment->yalign), - Option_val(xscale, Float_val, alignment->xscale), - Option_val(yscale, Float_val, alignment->xscale)); - return Val_unit; -} - -/* gtkeventbox.h */ - -ML_0 (gtk_event_box_new, Val_GtkWidget_sink) - -/* gtkframe.h */ - -#define GtkFrame_val(val) check_cast(GTK_FRAME,val) -ML_1 (gtk_frame_new, Optstring_val, Val_GtkWidget_sink) -ML_2 (gtk_frame_set_label, GtkFrame_val, Optstring_val, Unit) -ML_3 (gtk_frame_set_label_align, GtkFrame_val, Float_val, Float_val, Unit) -ML_2 (gtk_frame_set_shadow_type, GtkFrame_val, Shadow_type_val, Unit) -Make_Extractor (gtk_frame_get, GtkFrame_val, label_xalign, copy_double) -Make_Extractor (gtk_frame_get, GtkFrame_val, label_yalign, copy_double) - -/* gtkaspectframe.h */ - -#define GtkAspectFrame_val(val) check_cast(GTK_ASPECT_FRAME,val) -ML_5 (gtk_aspect_frame_new, Optstring_val, - Float_val, Float_val, Float_val, Bool_val, Val_GtkWidget_sink) -ML_5 (gtk_aspect_frame_set, GtkAspectFrame_val, Float_val, Float_val, - Float_val, Bool_val, Unit) -Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, xalign, copy_double) -Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, yalign, copy_double) -Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, ratio, copy_double) -Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, obey_child, Val_bool) - -/* gtkhandlebox.h */ - -#define GtkHandleBox_val(val) check_cast(GTK_HANDLE_BOX,val) -ML_0 (gtk_handle_box_new, Val_GtkWidget_sink) -ML_2 (gtk_handle_box_set_shadow_type, GtkHandleBox_val, Shadow_type_val, Unit) -ML_2 (gtk_handle_box_set_handle_position, GtkHandleBox_val, Position_val, Unit) -ML_2 (gtk_handle_box_set_snap_edge, GtkHandleBox_val, Position_val, Unit) - -/* gtkinvisible.h */ -/* private class -ML_0 (gtk_invisible_new, Val_GtkWidget_sink) -*/ - -/* gtkitem.h */ - -ML_1 (gtk_item_select, GtkItem_val, Unit) -ML_1 (gtk_item_deselect, GtkItem_val, Unit) -ML_1 (gtk_item_toggle, GtkItem_val, Unit) - -/* gtkviewport.h */ - -#define GtkViewport_val(val) check_cast(GTK_VIEWPORT,val) -ML_2 (gtk_viewport_new, GtkAdjustment_val, GtkAdjustment_val, - Val_GtkWidget_sink) -ML_1 (gtk_viewport_get_hadjustment, GtkViewport_val, Val_GtkWidget_sink) -ML_1 (gtk_viewport_get_vadjustment, GtkViewport_val, Val_GtkWidget) -ML_2 (gtk_viewport_set_hadjustment, GtkViewport_val, GtkAdjustment_val, Unit) -ML_2 (gtk_viewport_set_vadjustment, GtkViewport_val, GtkAdjustment_val, Unit) -ML_2 (gtk_viewport_set_shadow_type, GtkViewport_val, Shadow_type_val, Unit) - -/* gtkscrolledwindow.h */ - -#define GtkScrolledWindow_val(val) check_cast(GTK_SCROLLED_WINDOW,val) -ML_2 (gtk_scrolled_window_new, GtkAdjustment_val ,GtkAdjustment_val, - Val_GtkWidget_sink) -ML_2 (gtk_scrolled_window_set_hadjustment, GtkScrolledWindow_val , - GtkAdjustment_val, Unit) -ML_2 (gtk_scrolled_window_set_vadjustment, GtkScrolledWindow_val , - GtkAdjustment_val, Unit) -ML_1 (gtk_scrolled_window_get_hadjustment, GtkScrolledWindow_val, - Val_GtkWidget) -ML_1 (gtk_scrolled_window_get_vadjustment, GtkScrolledWindow_val, - Val_GtkWidget) -ML_3 (gtk_scrolled_window_set_policy, GtkScrolledWindow_val, - Policy_type_val, Policy_type_val, Unit) -Make_Extractor (gtk_scrolled_window_get, GtkScrolledWindow_val, - hscrollbar_policy, Val_policy_type) -Make_Extractor (gtk_scrolled_window_get, GtkScrolledWindow_val, - vscrollbar_policy, Val_policy_type) -ML_2 (gtk_scrolled_window_set_placement, GtkScrolledWindow_val, - Corner_type_val, Unit) -ML_2 (gtk_scrolled_window_add_with_viewport, GtkScrolledWindow_val, - GtkWidget_val, Unit) - -/* gtksocket.h */ - -#define GtkSocket_val(val) check_cast(GTK_SOCKET,val) -ML_0 (gtk_socket_new, Val_GtkWidget_sink) -ML_2 (gtk_socket_steal, GtkSocket_val, XID_val, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkbutton.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkbutton.c deleted file mode 100644 index a718305e6..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkbutton.c +++ /dev/null @@ -1,75 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -/* gtkbutton.h */ - -#define GtkButton_val(val) check_cast(GTK_BUTTON,val) -ML_0 (gtk_button_new, Val_GtkWidget_sink) -ML_1 (gtk_button_new_with_label, String_val, Val_GtkWidget_sink) -ML_1 (gtk_button_pressed, GtkButton_val, Unit) -ML_1 (gtk_button_released, GtkButton_val, Unit) -ML_1 (gtk_button_clicked, GtkButton_val, Unit) -ML_1 (gtk_button_enter, GtkButton_val, Unit) -ML_1 (gtk_button_leave, GtkButton_val, Unit) - -/* gtktogglebutton.h */ - -#define GtkToggleButton_val(val) check_cast(GTK_TOGGLE_BUTTON,val) -ML_0 (gtk_toggle_button_new, Val_GtkWidget_sink) -ML_1 (gtk_toggle_button_new_with_label, String_val, Val_GtkWidget_sink) -ML_2 (gtk_toggle_button_set_mode, GtkToggleButton_val, Bool_val, Unit) -ML_2 (gtk_toggle_button_set_active, GtkToggleButton_val, Bool_val, Unit) -ML_1 (gtk_toggle_button_toggled, GtkToggleButton_val, Unit) -Make_Extractor (gtk_toggle_button_get, GtkToggleButton_val, active, Val_bool) - -/* gtkcheckbutton.h */ - -#define GtkCheckButton_val(val) check_cast(GTK_CHECK_BUTTON,val) -ML_0 (gtk_check_button_new, Val_GtkWidget_sink) -ML_1 (gtk_check_button_new_with_label, String_val, Val_GtkWidget_sink) - -/* gtkradiobutton.h */ - -#define GtkRadioButton_val(val) check_cast(GTK_RADIO_BUTTON,val) -static GSList* button_group_val(value val) -{ - return (val == Val_unit ? NULL : - gtk_radio_button_group(GtkRadioButton_val(Field(val,0)))); -} -ML_1 (gtk_radio_button_new, button_group_val, - Val_GtkWidget_sink) -ML_2 (gtk_radio_button_new_with_label, button_group_val, - String_val, Val_GtkWidget_sink) -ML_2 (gtk_radio_button_set_group, GtkRadioButton_val, button_group_val, Unit) - -/* gtktoolbar.h */ - -#define GtkToolbar_val(val) check_cast(GTK_TOOLBAR,val) -ML_2 (gtk_toolbar_new, Orientation_val, Toolbar_style_val, Val_GtkWidget_sink) -ML_2 (gtk_toolbar_insert_space, GtkToolbar_val, Int_val, Unit) -ML_7 (gtk_toolbar_insert_element, GtkToolbar_val, Toolbar_child_val, - Insert(NULL) Optstring_val, Optstring_val, Optstring_val, GtkWidget_val, - Insert(NULL) Insert(NULL) Int_val, Val_GtkWidget) -ML_bc7 (ml_gtk_toolbar_insert_element) -ML_5 (gtk_toolbar_insert_widget, GtkToolbar_val, GtkWidget_val, - Optstring_val, Optstring_val, Int_val, Unit) -ML_2 (gtk_toolbar_set_orientation, GtkToolbar_val, Orientation_val, Unit) -ML_2 (gtk_toolbar_set_style, GtkToolbar_val, Toolbar_style_val, Unit) -ML_2 (gtk_toolbar_set_space_size, GtkToolbar_val, Int_val, Unit) -ML_2 (gtk_toolbar_set_space_style, GtkToolbar_val, Toolbar_space_style_val, Unit) -ML_2 (gtk_toolbar_set_tooltips, GtkToolbar_val, Bool_val, Unit) -ML_2 (gtk_toolbar_set_button_relief, GtkToolbar_val, Relief_style_val, Unit) -ML_1 (gtk_toolbar_get_button_relief, GtkToolbar_val, Val_relief_style) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkedit.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkedit.c deleted file mode 100644 index 1c64ec2c7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkedit.c +++ /dev/null @@ -1,126 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -/* gtkeditable.h */ - -#define GtkEditable_val(val) check_cast(GTK_EDITABLE,val) -ML_3 (gtk_editable_select_region, GtkEditable_val, Int_val, Int_val, Unit) -value ml_gtk_editable_insert_text (value w, value s, value pos) -{ - int position = Int_val(pos); - gtk_editable_insert_text (GtkEditable_val(w), String_val(s), - string_length(s), &position); - return Val_int(position); -} -ML_3 (gtk_editable_delete_text, GtkEditable_val, Int_val, Int_val, Unit) -ML_3 (gtk_editable_get_chars, GtkEditable_val, Int_val, Int_val, - copy_string_and_free) -ML_1 (gtk_editable_cut_clipboard, GtkEditable_val, Unit) -ML_1 (gtk_editable_copy_clipboard, GtkEditable_val, Unit) -ML_1 (gtk_editable_paste_clipboard, GtkEditable_val, Unit) -ML_3 (gtk_editable_claim_selection, GtkEditable_val, Bool_val, Int_val, Unit) -ML_1 (gtk_editable_delete_selection, GtkEditable_val, Unit) -ML_1 (gtk_editable_changed, GtkEditable_val, Unit) -ML_2 (gtk_editable_set_position, GtkEditable_val, Int_val, Unit) -ML_1 (gtk_editable_get_position, GtkEditable_val, Val_int) -ML_2 (gtk_editable_set_editable, GtkEditable_val, Bool_val, Unit) -Make_Extractor (gtk_editable, GtkEditable_val, selection_start_pos, Val_int) -Make_Extractor (gtk_editable, GtkEditable_val, selection_end_pos, Val_int) -Make_Extractor (gtk_editable, GtkEditable_val, has_selection, Val_bool) - -/* gtkentry.h */ - -#define GtkEntry_val(val) check_cast(GTK_ENTRY,val) -ML_0 (gtk_entry_new, Val_GtkWidget_sink) -ML_1 (gtk_entry_new_with_max_length, (gint16)Long_val, Val_GtkWidget_sink) -ML_2 (gtk_entry_set_text, GtkEntry_val, String_val, Unit) -ML_2 (gtk_entry_append_text, GtkEntry_val, String_val, Unit) -ML_2 (gtk_entry_prepend_text, GtkEntry_val, String_val, Unit) -ML_1 (gtk_entry_get_text, GtkEntry_val, Val_string) -ML_3 (gtk_entry_select_region, GtkEntry_val, Int_val, Int_val, Unit) -ML_2 (gtk_entry_set_visibility, GtkEntry_val, Bool_val, Unit) -ML_2 (gtk_entry_set_max_length, GtkEntry_val, (gint16)Long_val, Unit) -Make_Extractor (GtkEntry, GtkEntry_val, text_length, Val_int) - -/* gtkspinbutton.h */ - -#define GtkSpinButton_val(val) check_cast(GTK_SPIN_BUTTON,val) -ML_3 (gtk_spin_button_new, GtkAdjustment_val, - Float_val, Int_val, Val_GtkWidget_sink) -ML_2 (gtk_spin_button_set_adjustment, GtkSpinButton_val, GtkAdjustment_val, - Unit) -ML_1 (gtk_spin_button_get_adjustment, GtkSpinButton_val, Val_GtkAny) -ML_2 (gtk_spin_button_set_digits, GtkSpinButton_val, Int_val, Unit) -ML_1 (gtk_spin_button_get_value_as_float, GtkSpinButton_val, copy_double) -ML_2 (gtk_spin_button_set_value, GtkSpinButton_val, Float_val, Unit) -ML_2 (gtk_spin_button_set_update_policy, GtkSpinButton_val, - Update_type_val, Unit) -ML_2 (gtk_spin_button_set_numeric, GtkSpinButton_val, Bool_val, Unit) -ML_2 (gtk_spin_button_spin, GtkSpinButton_val, - Insert (Is_long(arg2) ? Spin_type_val(arg2) : GTK_SPIN_USER_DEFINED) - (Is_long(arg2) ? 0.0 : Float_val(Field(arg2,1))) Ignore, Unit) -ML_2 (gtk_spin_button_set_wrap, GtkSpinButton_val, Bool_val, Unit) -ML_2 (gtk_spin_button_set_shadow_type, GtkSpinButton_val, Shadow_type_val, Unit) -ML_2 (gtk_spin_button_set_snap_to_ticks, GtkSpinButton_val, Bool_val, Unit) -ML_4 (gtk_spin_button_configure, GtkSpinButton_val, GtkAdjustment_val, - Float_val, Int_val, Unit) -ML_1 (gtk_spin_button_update, GtkSpinButton_val, Unit) - -/* gtktext.h */ - -#define GtkText_val(val) check_cast(GTK_TEXT,val) -ML_2 (gtk_text_new, GtkAdjustment_val, GtkAdjustment_val, Val_GtkWidget_sink) -ML_2 (gtk_text_set_word_wrap, GtkText_val, Bool_val, Unit) -ML_2 (gtk_text_set_line_wrap, GtkText_val, Bool_val, Unit) -ML_3 (gtk_text_set_adjustments, GtkText_val, - Option_val(arg2,GtkAdjustment_val,GtkText_val(arg1)->hadj) Ignore, - Option_val(arg3,GtkAdjustment_val,GtkText_val(arg1)->vadj) Ignore, - Unit) -Make_Extractor (gtk_text_get, GtkText_val, hadj, Val_GtkWidget) -Make_Extractor (gtk_text_get, GtkText_val, vadj, Val_GtkWidget) -ML_2 (gtk_text_set_point, GtkText_val, Int_val, Unit) -ML_1 (gtk_text_get_point, GtkText_val, Val_int) -ML_1 (gtk_text_get_length, GtkText_val, Val_int) -ML_1 (gtk_text_freeze, GtkText_val, Unit) -ML_1 (gtk_text_thaw, GtkText_val, Unit) -value ml_gtk_text_insert (value text, value font, value fore, value back, - value str) -{ - gtk_text_insert (GtkText_val(text), - Option_val(font,GdkFont_val,NULL), - Option_val(fore,GdkColor_val,NULL), - Option_val(back,GdkColor_val,NULL), - String_val(str), string_length(str)); - return Val_unit; -} -ML_2 (gtk_text_forward_delete, GtkText_val, Int_val, Val_int) -ML_2 (gtk_text_backward_delete, GtkText_val, Int_val, Val_int) - -/* gtkcombo.h */ - -#define GtkCombo_val(val) check_cast(GTK_COMBO,val) -ML_0 (gtk_combo_new, Val_GtkWidget_sink) -ML_3 (gtk_combo_set_value_in_list, GtkCombo_val, - Option_val(arg2, Bool_val, GtkCombo_val(arg1)->value_in_list) Ignore, - Option_val(arg3, Bool_val, GtkCombo_val(arg1)->ok_if_empty) Ignore, - Unit) -ML_2 (gtk_combo_set_use_arrows, GtkCombo_val, Bool_val, Unit) -ML_2 (gtk_combo_set_use_arrows_always, GtkCombo_val, Bool_val, Unit) -ML_2 (gtk_combo_set_case_sensitive, GtkCombo_val, Bool_val, Unit) -ML_3 (gtk_combo_set_item_string, GtkCombo_val, GtkItem_val, String_val, Unit) -ML_1 (gtk_combo_disable_activate, GtkCombo_val, Unit) -Make_Extractor (gtk_combo, GtkCombo_val, entry, Val_GtkWidget) -Make_Extractor (gtk_combo, GtkCombo_val, list, Val_GtkWidget) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkgl.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkgl.c deleted file mode 100644 index 5e0efd718..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkgl.c +++ /dev/null @@ -1,54 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtkgl_tags.h" - -/* Conversion functions */ -#include "gtkgl_tags.c" - -#define GtkGLArea_val(val) ((GtkGLArea*)GtkObject_val(val)) - -value ml_gtk_gl_area_new (value list, value share) -{ - value cursor, res; - int len, i; - int *attrs; - - for (len = 0, cursor = list; cursor != Val_unit; cursor = Field(cursor,1)) - { - if (Is_block(Field(cursor,0))) len += 2; - else len++; - } - - attrs = (int*) stat_alloc ((len+1)*sizeof(int)); - - for (i = 0, cursor = list; cursor != Val_unit; cursor = Field(cursor,1)) - { - value option = Field(cursor,0); - if (Is_block(option)) { - attrs[i++] = Visual_options_val(Field(option,0)); - attrs[i++] = Int_val(Field(option,1)); - } - else attrs[i++] = Visual_options_val(option); - } - attrs[i] = GDK_GL_NONE; - - res = Val_GtkObject - ((GtkObject*)gtk_gl_area_share_new(attrs,GtkGLArea_val(share))); - stat_free(attrs); - return res; -} - -ML_1 (gtk_gl_area_make_current, GtkGLArea_val, Val_bool) -ML_1 (gtk_gl_area_swapbuffers, GtkGLArea_val, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtklist.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtklist.c deleted file mode 100644 index d651ca3ab..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtklist.c +++ /dev/null @@ -1,168 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -static Make_Flags_val (Button_action_val) - -/* gtklistitem.h */ - -ML_0 (gtk_list_item_new, Val_GtkWidget_sink) -ML_1 (gtk_list_item_new_with_label, String_val, Val_GtkWidget_sink) - -/* gtklist.h */ - -#define GtkList_val(val) check_cast(GTK_LIST,val) -ML_0 (gtk_list_new, Val_GtkWidget_sink) -value ml_gtk_list_insert_item (value list, value item, value pos) -{ - GList *tmp_list = g_list_alloc (); - tmp_list->data = GtkWidget_val(item); - tmp_list->next = NULL; - tmp_list->prev = NULL; - gtk_list_insert_items (GtkList_val(list), tmp_list, Int_val(pos)); - return Val_unit; -} -ML_3 (gtk_list_clear_items, GtkList_val, Int_val, Int_val, Unit) -ML_2 (gtk_list_select_item, GtkList_val, Int_val, Unit) -ML_2 (gtk_list_unselect_item, GtkList_val, Int_val, Unit) -ML_2 (gtk_list_select_child, GtkList_val, GtkWidget_val, Unit) -ML_2 (gtk_list_unselect_child, GtkList_val, GtkWidget_val, Unit) -ML_2 (gtk_list_child_position, GtkList_val, GtkWidget_val, Val_int) -ML_2 (gtk_list_set_selection_mode, GtkList_val, Selection_mode_val, Unit) - -/* gtkclist.h */ - -#define GtkCList_val(val) check_cast(GTK_CLIST,val) -ML_1 (gtk_clist_new, Int_val, Val_GtkWidget_sink) -ML_1 (gtk_clist_new_with_titles, Insert(Wosize_val(arg1)) (char **), - Val_GtkWidget_sink) -Make_Extractor (gtk_clist_get, GtkCList_val, rows, Val_int) -Make_Extractor (gtk_clist_get, GtkCList_val, columns, Val_int) -Make_Extractor (gtk_clist_get, GtkCList_val, focus_row, Val_int) -ML_2 (gtk_clist_set_hadjustment, GtkCList_val, GtkAdjustment_val, Unit) -ML_2 (gtk_clist_set_vadjustment, GtkCList_val, GtkAdjustment_val, Unit) -ML_1 (gtk_clist_get_hadjustment, GtkCList_val, Val_GtkAny) -ML_1 (gtk_clist_get_vadjustment, GtkCList_val, Val_GtkAny) -ML_2 (gtk_clist_set_shadow_type, GtkCList_val, Shadow_type_val, Unit) -ML_2 (gtk_clist_set_selection_mode, GtkCList_val, Selection_mode_val, Unit) -ML_2 (gtk_clist_set_reorderable, GtkCList_val, Bool_val, Unit) -ML_2 (gtk_clist_set_use_drag_icons, GtkCList_val, Bool_val, Unit) -ML_3 (gtk_clist_set_button_actions, GtkCList_val, Int_val, - (guint8)Flags_Button_action_val, Unit) -ML_1 (gtk_clist_freeze, GtkCList_val, Unit) -ML_1 (gtk_clist_thaw, GtkCList_val, Unit) -ML_1 (gtk_clist_column_titles_show, GtkCList_val, Unit) -ML_1 (gtk_clist_column_titles_hide, GtkCList_val, Unit) -ML_2 (gtk_clist_column_title_active, GtkCList_val, Int_val, Unit) -ML_2 (gtk_clist_column_title_passive, GtkCList_val, Int_val, Unit) -ML_1 (gtk_clist_column_titles_active, GtkCList_val, Unit) -ML_1 (gtk_clist_column_titles_passive, GtkCList_val, Unit) -ML_3 (gtk_clist_set_column_title, GtkCList_val, Int_val, String_val, Unit) -ML_2 (gtk_clist_get_column_title, GtkCList_val, Int_val, Val_string) -ML_3 (gtk_clist_set_column_widget, GtkCList_val, Int_val, GtkWidget_val, Unit) -ML_2 (gtk_clist_get_column_widget, GtkCList_val, Int_val, Val_GtkWidget) -ML_3 (gtk_clist_set_column_justification, GtkCList_val, Int_val, - Justification_val, Unit) -ML_3 (gtk_clist_set_column_visibility, GtkCList_val, Int_val, Bool_val, Unit) -ML_3 (gtk_clist_set_column_resizeable, GtkCList_val, Int_val, Bool_val, Unit) -ML_3 (gtk_clist_set_column_auto_resize, GtkCList_val, Int_val, Bool_val, Unit) -ML_1 (gtk_clist_columns_autosize, GtkCList_val, Unit) -ML_2 (gtk_clist_optimal_column_width, GtkCList_val, Int_val, Val_int) -ML_3 (gtk_clist_set_column_width, GtkCList_val, Int_val, Int_val, Unit) -ML_3 (gtk_clist_set_column_min_width, GtkCList_val, Int_val, Int_val, Unit) -ML_3 (gtk_clist_set_column_max_width, GtkCList_val, Int_val, Int_val, Unit) -ML_2 (gtk_clist_set_row_height, GtkCList_val, Int_val, Unit) -ML_5 (gtk_clist_moveto, GtkCList_val, Int_val, Int_val, - Double_val, Double_val, Unit) -ML_2 (gtk_clist_row_is_visible, GtkCList_val, Int_val, Val_visibility) -ML_3 (gtk_clist_get_cell_type, GtkCList_val, Int_val, Int_val, Val_cell_type) -ML_4 (gtk_clist_set_text, GtkCList_val, Int_val, Int_val, Optstring_val, Unit) -value ml_gtk_clist_get_text (value clist, value row, value column) -{ - char *text; - if (!gtk_clist_get_text (GtkCList_val(clist), Int_val(row), - Int_val(column), &text)) - invalid_argument ("Gtk.Clist.get_text"); - return Val_optstring(text); -} -ML_5 (gtk_clist_set_pixmap, GtkCList_val, Int_val, Int_val, GdkPixmap_val, - GdkBitmap_val, Unit) -value ml_gtk_clist_get_pixmap (value clist, value row, value column) -{ - CAMLparam0 (); - GdkPixmap *pixmap; - GdkBitmap *bitmap; - CAMLlocal2 (vpixmap,vbitmap); - value ret; - - if (!gtk_clist_get_pixmap (GtkCList_val(clist), Int_val(row), - Int_val(column), &pixmap, &bitmap)) - invalid_argument ("Gtk.Clist.get_pixmap"); - vpixmap = Val_option (pixmap, Val_GdkPixmap); - vbitmap = Val_option (bitmap, Val_GdkBitmap); - - ret = alloc_small (2,0); - Field(ret,0) = vpixmap; - Field(ret,1) = vbitmap; - CAMLreturn(ret); -} -ML_7 (gtk_clist_set_pixtext, GtkCList_val, Int_val, Int_val, String_val, - (guint8)Long_val, GdkPixmap_val, GdkBitmap_val, Unit) -ML_bc7 (ml_gtk_clist_set_pixtext) -ML_3 (gtk_clist_set_foreground, GtkCList_val, Int_val, GdkColor_val, Unit) -ML_3 (gtk_clist_set_background, GtkCList_val, Int_val, GdkColor_val, Unit) -ML_3 (gtk_clist_get_cell_style, GtkCList_val, Int_val, Int_val, Val_GtkStyle) -ML_4 (gtk_clist_set_cell_style, GtkCList_val, Int_val, Int_val, GtkStyle_val, - Unit) -ML_2 (gtk_clist_get_row_style, GtkCList_val, Int_val, Val_GtkStyle) -ML_3 (gtk_clist_set_row_style, GtkCList_val, Int_val, GtkStyle_val, Unit) -ML_3 (gtk_clist_set_selectable, GtkCList_val, Int_val, Bool_val, Unit) -ML_2 (gtk_clist_get_selectable, GtkCList_val, Int_val, Val_bool) -ML_5 (gtk_clist_set_shift, GtkCList_val, Int_val, Int_val, Int_val, Int_val, - Unit) -/* ML_2 (gtk_clist_append, GtkCList_val, (char **), Val_int) */ -ML_3 (gtk_clist_insert, GtkCList_val, Int_val, (char **), Val_int) -ML_2 (gtk_clist_remove, GtkCList_val, Int_val, Unit) -value ml_gtk_clist_set_row_data (value w, value row, value data) -{ - value *data_p = ml_global_root_new (data); - gtk_clist_set_row_data_full (GtkCList_val(w), Int_val(row), - data_p, ml_global_root_destroy); - return Val_unit; -} -ML_2 (gtk_clist_get_row_data, GtkCList_val, Int_val, *(value*)Check_null) -ML_3 (gtk_clist_select_row, GtkCList_val, Int_val, Int_val, Unit) -ML_3 (gtk_clist_unselect_row, GtkCList_val, Int_val, Int_val, Unit) -ML_1 (gtk_clist_clear, GtkCList_val, Unit) -value ml_gtk_clist_get_selection_info (value clist, value x, value y) -{ - int row, column; - value ret; - if (!gtk_clist_get_selection_info (GtkCList_val(clist), Int_val(x), - Int_val(y), &row, &column)) - invalid_argument ("Gtk.Clist.get_selection_info"); - ret = alloc_small (2,0); - Field(ret,0) = row; - Field(ret,1) = column; - return ret; -} -ML_1 (gtk_clist_select_all, GtkCList_val, Unit) -ML_1 (gtk_clist_unselect_all, GtkCList_val, Unit) -ML_3 (gtk_clist_swap_rows, GtkCList_val, Int_val, Int_val, Unit) -ML_3 (gtk_clist_row_move, GtkCList_val, Int_val, Int_val, Unit) -ML_2 (gtk_clist_set_sort_column, GtkCList_val, Int_val, Unit) -ML_2 (gtk_clist_set_sort_type, GtkCList_val, Sort_type_val, Unit) -ML_1 (gtk_clist_sort, GtkCList_val, Unit) -ML_2 (gtk_clist_set_auto_sort, GtkCList_val, Bool_val, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkmenu.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkmenu.c deleted file mode 100644 index 355b9fea1..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkmenu.c +++ /dev/null @@ -1,97 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -/* gtkmenuitem.h */ - -#define GtkMenuItem_val(val) check_cast(GTK_MENU_ITEM,val) -ML_0 (gtk_menu_item_new, Val_GtkWidget_sink) -ML_0 (gtk_tearoff_menu_item_new, Val_GtkWidget_sink) -ML_1 (gtk_menu_item_new_with_label, String_val, Val_GtkWidget_sink) -ML_2 (gtk_menu_item_set_submenu, GtkMenuItem_val, GtkWidget_val, Unit) -ML_1 (gtk_menu_item_remove_submenu, GtkMenuItem_val, Unit) -ML_2 (gtk_menu_item_set_placement, GtkMenuItem_val, - Submenu_placement_val, Unit) -ML_3 (gtk_menu_item_configure, GtkMenuItem_val, Bool_val, Bool_val, Unit) -ML_1 (gtk_menu_item_activate, GtkMenuItem_val, Unit) -ML_1 (gtk_menu_item_right_justify, GtkMenuItem_val, Unit) - -/* gtkcheckmenuitem.h */ - -#define GtkCheckMenuItem_val(val) check_cast(GTK_CHECK_MENU_ITEM,val) -ML_0 (gtk_check_menu_item_new, Val_GtkWidget_sink) -ML_1 (gtk_check_menu_item_new_with_label, String_val, Val_GtkWidget_sink) -ML_2 (gtk_check_menu_item_set_active, GtkCheckMenuItem_val, Bool_val, Unit) -ML_2 (gtk_check_menu_item_set_show_toggle, GtkCheckMenuItem_val, - Bool_val, Unit) -ML_1 (gtk_check_menu_item_toggled, GtkCheckMenuItem_val, Unit) -Make_Extractor (gtk_check_menu_item_get, GtkCheckMenuItem_val, - active, Val_bool) - -/* gtkradiomenuitem.h */ - -#define GtkRadioMenuItem_val(val) check_cast(GTK_RADIO_MENU_ITEM,val) -static GSList* item_group_val(value val) -{ - return (val == Val_unit ? NULL : - gtk_radio_menu_item_group(GtkRadioMenuItem_val(Field(val,0)))); -} -ML_1 (gtk_radio_menu_item_new, item_group_val, Val_GtkWidget_sink) -ML_2 (gtk_radio_menu_item_new_with_label, item_group_val, - String_val, Val_GtkWidget_sink) -ML_2 (gtk_radio_menu_item_set_group, GtkRadioMenuItem_val, - item_group_val, Unit) - -/* gtkoptionmenu.h */ - -#define GtkOptionMenu_val(val) check_cast(GTK_OPTION_MENU,val) -ML_0 (gtk_option_menu_new, Val_GtkWidget_sink) -ML_1 (gtk_option_menu_get_menu, GtkOptionMenu_val, Val_GtkWidget_sink) -ML_2 (gtk_option_menu_set_menu, GtkOptionMenu_val, GtkWidget_val, Unit) -ML_1 (gtk_option_menu_remove_menu, GtkOptionMenu_val, Unit) -ML_2 (gtk_option_menu_set_history, GtkOptionMenu_val, Int_val, Unit) - -/* gtkmenushell.h */ - -#define GtkMenuShell_val(val) check_cast(GTK_MENU_SHELL,val) -ML_2 (gtk_menu_shell_append, GtkMenuShell_val, GtkWidget_val, Unit) -ML_2 (gtk_menu_shell_prepend, GtkMenuShell_val, GtkWidget_val, Unit) -ML_3 (gtk_menu_shell_insert, GtkMenuShell_val, GtkWidget_val, Int_val, Unit) -ML_1 (gtk_menu_shell_deactivate, GtkMenuShell_val, Unit) - -/* gtkmenu.h */ - -#define GtkMenu_val(val) check_cast(GTK_MENU,val) -ML_0 (gtk_menu_new, Val_GtkWidget_sink) -ML_5 (gtk_menu_popup, GtkMenu_val, GtkWidget_val, GtkWidget_val, - Insert(NULL) Insert(NULL) Int_val, Int_val, Unit) -ML_1 (gtk_menu_popdown, GtkMenu_val, Unit) -ML_1 (gtk_menu_get_active, GtkMenu_val, Val_GtkWidget) -ML_2 (gtk_menu_set_active, GtkMenu_val, Int_val, Unit) -ML_2 (gtk_menu_set_accel_group, GtkMenu_val, GtkAccelGroup_val, Unit) -ML_1 (gtk_menu_get_accel_group, GtkMenu_val, Val_GtkAccelGroup) -ML_1 (gtk_menu_ensure_uline_accel_group, GtkMenu_val, Val_GtkAccelGroup) -value ml_gtk_menu_attach_to_widget (value menu, value widget) -{ - gtk_menu_attach_to_widget (GtkMenu_val(menu), GtkWidget_val(widget), NULL); - return Val_unit; -} -ML_1 (gtk_menu_get_attach_widget, GtkMenu_val, Val_GtkWidget) -ML_1 (gtk_menu_detach, GtkMenu_val, Unit) - -/* gtkmenubar.h */ - -#define GtkMenuBar_val(val) check_cast(GTK_MENU_BAR,val) -ML_0 (gtk_menu_bar_new, Val_GtkWidget_sink) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkmisc.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkmisc.c deleted file mode 100644 index f69f34390..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkmisc.c +++ /dev/null @@ -1,139 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -/* gtkgamma.h */ - -#define GtkGammaCurve_val(val) check_cast(GTK_GAMMA_CURVE,val) -ML_0 (gtk_gamma_curve_new, Val_GtkWidget_sink) -Make_Extractor (gtk_gamma_curve_get, GtkGammaCurve_val, gamma, copy_double) - -/* gtkstatusbar.h */ - -#define GtkStatusbar_val(val) check_cast(GTK_STATUSBAR,val) -ML_0 (gtk_statusbar_new, Val_GtkWidget_sink) -ML_2 (gtk_statusbar_get_context_id, GtkStatusbar_val, String_val, Val_int) -ML_3 (gtk_statusbar_push, GtkStatusbar_val, Int_val, String_val, Val_int) -ML_2 (gtk_statusbar_pop, GtkStatusbar_val, Int_val, Unit) -ML_3 (gtk_statusbar_remove, GtkStatusbar_val, Int_val, Int_val, Unit) - -/* gtkcalendar.h */ - -#define GtkCalendar_val(val) check_cast(GTK_CALENDAR,val) -ML_0 (gtk_calendar_new, Val_GtkWidget_sink) -ML_3 (gtk_calendar_select_month, GtkCalendar_val, Int_val, Int_val, Unit) -ML_2 (gtk_calendar_select_day, GtkCalendar_val, Int_val, Unit) -ML_2 (gtk_calendar_mark_day, GtkCalendar_val, Int_val, Unit) -ML_2 (gtk_calendar_unmark_day, GtkCalendar_val, Int_val, Unit) -ML_1 (gtk_calendar_clear_marks, GtkCalendar_val, Unit) -Make_Flags_val (Calendar_display_options_val) -ML_2 (gtk_calendar_display_options, GtkCalendar_val, - Flags_Calendar_display_options_val, Unit) -value ml_gtk_calendar_get_date (value w) -{ - guint year, month, day; - value ret; - - gtk_calendar_get_date (GtkCalendar_val(w), &year, &month, &day); - ret = alloc_small (3, 0); - Field(ret,0) = Val_int(year); - Field(ret,1) = Val_int(month); - Field(ret,2) = Val_int(day); - return ret; -} -ML_1 (gtk_calendar_freeze, GtkCalendar_val, Unit) -ML_1 (gtk_calendar_thaw, GtkCalendar_val, Unit) - -/* gtkdrawingarea.h */ - -#define GtkDrawingArea_val(val) check_cast(GTK_DRAWING_AREA,val) -ML_0 (gtk_drawing_area_new, Val_GtkWidget_sink) -ML_3 (gtk_drawing_area_size, GtkDrawingArea_val, Int_val, Int_val, Unit) - -/* gtkmisc.h */ - -#define GtkMisc_val(val) check_cast(GTK_MISC,val) -ML_3 (gtk_misc_set_alignment, GtkMisc_val, Double_val, Double_val, Unit) -ML_3 (gtk_misc_set_padding, GtkMisc_val, Int_val, Int_val, Unit) -Make_Extractor (gtk_misc_get, GtkMisc_val, xalign, copy_double) -Make_Extractor (gtk_misc_get, GtkMisc_val, yalign, copy_double) -Make_Extractor (gtk_misc_get, GtkMisc_val, xpad, Val_int) -Make_Extractor (gtk_misc_get, GtkMisc_val, ypad, Val_int) - -/* gtkarrow.h */ - -#define GtkArrow_val(val) check_cast(GTK_ARROW,val) -ML_2 (gtk_arrow_new, Arrow_type_val, Shadow_type_val, Val_GtkWidget_sink) -ML_3 (gtk_arrow_set, GtkArrow_val, Arrow_type_val, Shadow_type_val, Unit) - -/* gtkimage.h */ - -#define GtkImage_val(val) check_cast(GTK_IMAGE,val) -ML_2 (gtk_image_new, GdkImage_val, - Option_val (arg2, GdkBitmap_val, NULL) Ignore, Val_GtkWidget_sink) -ML_3 (gtk_image_set, GtkImage_val, GdkImage_val, - Option_val (arg2, GdkBitmap_val, NULL) Ignore, Unit) - -/* gtklabel.h */ - -#define GtkLabel_val(val) check_cast(GTK_LABEL,val) -ML_1 (gtk_label_new, String_val, Val_GtkWidget_sink) -ML_2 (gtk_label_set_text, GtkLabel_val, String_val, Unit) -ML_2 (gtk_label_set_pattern, GtkLabel_val, String_val, Unit) -ML_2 (gtk_label_set_justify, GtkLabel_val, Justification_val, Unit) -ML_2 (gtk_label_set_line_wrap, GtkLabel_val, Bool_val, Unit) -Make_Extractor (gtk_label_get, GtkLabel_val, label, Val_string) - -/* gtktipsquery.h */ - -#define GtkTipsQuery_val(val) check_cast(GTK_TIPS_QUERY,val) -ML_0 (gtk_tips_query_new, Val_GtkWidget_sink) -ML_1 (gtk_tips_query_start_query, GtkTipsQuery_val, Unit) -ML_1 (gtk_tips_query_stop_query, GtkTipsQuery_val, Unit) -ML_2 (gtk_tips_query_set_caller, GtkTipsQuery_val, GtkWidget_val, Unit) -ML_3 (gtk_tips_query_set_labels, GtkTipsQuery_val, - String_val, String_val, Unit) -value ml_gtk_tips_query_set_emit_always (value w, value arg) -{ - GtkTipsQuery_val(w)->emit_always = Bool_val(arg); - return Val_unit; -} -Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, emit_always, Val_bool) -Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, caller, Val_GtkWidget) -Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, label_inactive, - Val_string) -Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, label_no_tip, - Val_string) - -/* gtkpixmap.h */ - -#define GtkPixmap_val(val) check_cast(GTK_PIXMAP,val) -ML_2 (gtk_pixmap_new, GdkPixmap_val, - Option_val (arg2, GdkBitmap_val, NULL) Ignore, - Val_GtkWidget_sink) -value ml_gtk_pixmap_set (value val, value pixmap, value mask) -{ - GtkPixmap *w = GtkPixmap_val(val); - gtk_pixmap_set (w, Option_val(pixmap,GdkPixmap_val,w->pixmap), - Option_val(mask,GdkBitmap_val,w->mask)); - return Val_unit; -} -Make_Extractor (GtkPixmap, GtkPixmap_val, pixmap, Val_GdkPixmap) -Make_Extractor (GtkPixmap, GtkPixmap_val, mask, Val_GdkBitmap) - -/* gtk[hv]separator.h */ - -ML_0 (gtk_hseparator_new, Val_GtkWidget_sink) -ML_0 (gtk_vseparator_new, Val_GtkWidget_sink) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtknew.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtknew.c deleted file mode 100644 index a75c1fb1f..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtknew.c +++ /dev/null @@ -1,180 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" - -static value ml_class_init=0; - -static void class_init (value class) -{ - callback(ml_class_init, class); -} - - -value set_ml_class_init (value class_func) -{ - if (!ml_class_init) register_global_root (&ml_class_init); - ml_class_init = class_func; - return Val_unit; -} - -value ml_gtk_type_new (value type) -{ - return Val_GtkWidget_sink(gtk_type_new(Int_val(type))); -} - - -struct widget_info { - guint size; - guint class_size; - guint (*get_type_func)(void); -} -widget_info_array[] = { - { sizeof(GtkObject), sizeof(GtkObjectClass), gtk_object_get_type }, - { sizeof(GtkWidget), sizeof(GtkWidgetClass), gtk_widget_get_type }, - { sizeof(GtkMisc), sizeof(GtkMiscClass), gtk_misc_get_type }, - { sizeof(GtkLabel), sizeof(GtkLabelClass), gtk_label_get_type }, - { sizeof(GtkAccelLabel), sizeof(GtkAccelLabelClass), gtk_accel_label_get_type }, - { sizeof(GtkTipsQuery), sizeof(GtkTipsQueryClass), gtk_tips_query_get_type }, - { sizeof(GtkArrow), sizeof(GtkArrowClass), gtk_arrow_get_type }, - { sizeof(GtkImage), sizeof(GtkImageClass), gtk_image_get_type }, - { sizeof(GtkPixmap), sizeof(GtkPixmapClass), gtk_pixmap_get_type }, - { sizeof(GtkContainer), sizeof(GtkContainerClass), gtk_container_get_type }, - { sizeof(GtkBin), sizeof(GtkBinClass), gtk_bin_get_type }, - { sizeof(GtkAlignment), sizeof(GtkAlignmentClass), gtk_alignment_get_type }, - { sizeof(GtkFrame), sizeof(GtkFrameClass), gtk_frame_get_type }, - { sizeof(GtkAspectFrame), sizeof(GtkAspectFrameClass), gtk_aspect_frame_get_type }, - { sizeof(GtkButton), sizeof(GtkButtonClass), gtk_button_get_type }, - { sizeof(GtkToggleButton), sizeof(GtkToggleButtonClass), gtk_toggle_button_get_type }, - { sizeof(GtkCheckButton), sizeof(GtkCheckButtonClass), gtk_check_button_get_type }, - { sizeof(GtkRadioButton), sizeof(GtkRadioButtonClass), gtk_radio_button_get_type }, - { sizeof(GtkOptionMenu), sizeof(GtkOptionMenuClass), gtk_option_menu_get_type }, - { sizeof(GtkItem), sizeof(GtkItemClass), gtk_item_get_type }, - { sizeof(GtkMenuItem), sizeof(GtkMenuItemClass), gtk_menu_item_get_type }, - { sizeof(GtkCheckMenuItem), sizeof(GtkCheckMenuItemClass), gtk_check_menu_item_get_type }, - { sizeof(GtkRadioMenuItem), sizeof(GtkRadioMenuItemClass), gtk_radio_menu_item_get_type }, - { sizeof(GtkTearoffMenuItem), sizeof(GtkTearoffMenuItemClass), gtk_tearoff_menu_item_get_type }, - { sizeof(GtkListItem), sizeof(GtkListItemClass), gtk_list_item_get_type }, - { sizeof(GtkTreeItem), sizeof(GtkTreeItemClass), gtk_tree_item_get_type }, - { sizeof(GtkWindow), sizeof(GtkWindowClass), gtk_window_get_type }, - { sizeof(GtkColorSelectionDialog), sizeof(GtkColorSelectionDialogClass), gtk_color_selection_dialog_get_type }, - { sizeof(GtkDialog), sizeof(GtkDialogClass), gtk_dialog_get_type }, - { sizeof(GtkInputDialog), sizeof(GtkInputDialogClass), gtk_input_dialog_get_type }, - { sizeof(GtkFileSelection), sizeof(GtkFileSelectionClass), gtk_file_selection_get_type }, - { sizeof(GtkFontSelectionDialog), sizeof(GtkFontSelectionDialogClass), gtk_font_selection_dialog_get_type }, - { sizeof(GtkPlug), sizeof(GtkPlugClass), gtk_plug_get_type }, - { sizeof(GtkEventBox), sizeof(GtkEventBoxClass), gtk_event_box_get_type }, - { sizeof(GtkHandleBox), sizeof(GtkHandleBoxClass), gtk_handle_box_get_type }, - { sizeof(GtkScrolledWindow), sizeof(GtkScrolledWindowClass), gtk_scrolled_window_get_type }, - { sizeof(GtkViewport), sizeof(GtkViewportClass), gtk_viewport_get_type }, - { sizeof(GtkBox), sizeof(GtkBoxClass), gtk_box_get_type }, - { sizeof(GtkButtonBox), sizeof(GtkButtonBoxClass), gtk_button_box_get_type }, - { sizeof(GtkHButtonBox), sizeof(GtkHButtonBoxClass), gtk_hbutton_box_get_type }, - { sizeof(GtkVButtonBox), sizeof(GtkVButtonBoxClass), gtk_vbutton_box_get_type }, - { sizeof(GtkVBox), sizeof(GtkVBoxClass), gtk_vbox_get_type }, - { sizeof(GtkColorSelection), sizeof(GtkColorSelectionClass), gtk_color_selection_get_type }, - { sizeof(GtkGammaCurve), sizeof(GtkGammaCurveClass), gtk_gamma_curve_get_type }, - { sizeof(GtkHBox), sizeof(GtkHBoxClass), gtk_hbox_get_type }, - { sizeof(GtkCombo), sizeof(GtkComboClass), gtk_combo_get_type }, - { sizeof(GtkStatusbar), sizeof(GtkStatusbarClass), gtk_statusbar_get_type }, - { sizeof(GtkCList), sizeof(GtkCListClass), gtk_clist_get_type }, - { sizeof(GtkCTree), sizeof(GtkCTreeClass), gtk_ctree_get_type }, - { sizeof(GtkFixed), sizeof(GtkFixedClass), gtk_fixed_get_type }, - { sizeof(GtkNotebook), sizeof(GtkNotebookClass), gtk_notebook_get_type }, - { sizeof(GtkFontSelection), sizeof(GtkFontSelectionClass), gtk_font_selection_get_type }, - { sizeof(GtkPaned), sizeof(GtkPanedClass), gtk_paned_get_type }, - { sizeof(GtkHPaned), sizeof(GtkHPanedClass), gtk_hpaned_get_type }, - { sizeof(GtkVPaned), sizeof(GtkVPanedClass), gtk_vpaned_get_type }, - { sizeof(GtkLayout), sizeof(GtkLayoutClass), gtk_layout_get_type }, - { sizeof(GtkList), sizeof(GtkListClass), gtk_list_get_type }, - { sizeof(GtkMenuShell), sizeof(GtkMenuShellClass), gtk_menu_shell_get_type }, - { sizeof(GtkMenuBar), sizeof(GtkMenuBarClass), gtk_menu_bar_get_type }, - { sizeof(GtkMenu), sizeof(GtkMenuClass), gtk_menu_get_type }, - { sizeof(GtkPacker), sizeof(GtkPackerClass), gtk_packer_get_type }, - { sizeof(GtkSocket), sizeof(GtkSocketClass), gtk_socket_get_type }, - { sizeof(GtkTable), sizeof(GtkTableClass), gtk_table_get_type }, - { sizeof(GtkToolbar), sizeof(GtkToolbarClass), gtk_toolbar_get_type }, - { sizeof(GtkTree), sizeof(GtkTreeClass), gtk_tree_get_type }, - { sizeof(GtkCalendar), sizeof(GtkCalendarClass), gtk_calendar_get_type }, - { sizeof(GtkDrawingArea), sizeof(GtkDrawingAreaClass), gtk_drawing_area_get_type }, - { sizeof(GtkCurve), sizeof(GtkCurveClass), gtk_curve_get_type }, - { sizeof(GtkEditable), sizeof(GtkEditableClass), gtk_editable_get_type }, - { sizeof(GtkEntry), sizeof(GtkEntryClass), gtk_entry_get_type }, - { sizeof(GtkSpinButton), sizeof(GtkSpinButtonClass), gtk_spin_button_get_type }, - { sizeof(GtkText), sizeof(GtkTextClass), gtk_text_get_type }, - { sizeof(GtkRuler), sizeof(GtkRulerClass), gtk_ruler_get_type }, - { sizeof(GtkHRuler), sizeof(GtkHRulerClass), gtk_hruler_get_type }, - { sizeof(GtkVRuler), sizeof(GtkVRulerClass), gtk_vruler_get_type }, - { sizeof(GtkRange), sizeof(GtkRangeClass), gtk_range_get_type }, - { sizeof(GtkScale), sizeof(GtkScaleClass), gtk_scale_get_type }, - { sizeof(GtkHScale), sizeof(GtkHScaleClass), gtk_hscale_get_type }, - { sizeof(GtkVScale), sizeof(GtkVScaleClass), gtk_vscale_get_type }, - { sizeof(GtkScrollbar), sizeof(GtkScrollbarClass), gtk_scrollbar_get_type }, - { sizeof(GtkHScrollbar), sizeof(GtkHScrollbarClass), gtk_hscrollbar_get_type }, - { sizeof(GtkVScrollbar), sizeof(GtkVScrollbarClass), gtk_vscrollbar_get_type }, - { sizeof(GtkSeparator), sizeof(GtkSeparatorClass), gtk_separator_get_type }, - { sizeof(GtkHSeparator), sizeof(GtkHSeparatorClass), gtk_hseparator_get_type }, - { sizeof(GtkVSeparator), sizeof(GtkVSeparatorClass), gtk_vseparator_get_type }, - { sizeof(GtkPreview), sizeof(GtkPreviewClass), gtk_preview_get_type }, - { sizeof(GtkProgress), sizeof(GtkProgressClass), gtk_progress_get_type }, - { sizeof(GtkProgressBar), sizeof(GtkProgressBarClass), gtk_progress_bar_get_type }, - { sizeof(GtkData), sizeof(GtkDataClass), gtk_data_get_type }, - { sizeof(GtkAdjustment), sizeof(GtkAdjustmentClass), gtk_adjustment_get_type }, - { sizeof(GtkTooltips), sizeof(GtkTooltipsClass), gtk_tooltips_get_type }, - { sizeof(GtkItemFactory), sizeof(GtkItemFactoryClass), gtk_item_factory_get_type } -}; - - -value ml_gtk_type_unique (value name, value parent, value nsignals) -{ - struct widget_info * wi; - GtkTypeInfo ttt_info; - - wi = widget_info_array + Int_val(parent); - ttt_info.type_name = String_val(name); - ttt_info.object_size = wi->size; - ttt_info.class_size = wi->class_size + Int_val(nsignals)*sizeof(void *); - ttt_info.class_init_func = (GtkClassInitFunc) class_init; - ttt_info.object_init_func = (GtkObjectInitFunc) NULL; - ttt_info.reserved_1 = NULL; - ttt_info.reserved_2 = NULL; - ttt_info.base_class_init_func = (GtkClassInitFunc) NULL; - - return Val_int(gtk_type_unique(wi->get_type_func (), &ttt_info)); -} - -static guint sig[100]; - -value ml_gtk_object_class_add_signals (value class, value signals, - value nsignals) -{ - int i; - for (i=0; iclass_size+Int_val(num)*sizeof(void *); - return Val_int(gtk_signal_new (String_val(name), Int_val(run_type), - ((GtkObjectClass *)classe)->type, offset, - gtk_signal_default_marshaller, GTK_TYPE_NONE, 0)); - *(((int *)classe)+offset) = 0; -} diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkpack.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkpack.c deleted file mode 100644 index b089b882e..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkpack.c +++ /dev/null @@ -1,229 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -static Make_Flags_val (Attach_options_val) - -/* gtkbox.h */ - -#define GtkBox_val(val) check_cast(GTK_BOX,val) -ML_5 (gtk_box_pack_start, GtkBox_val, GtkWidget_val, Bool_val, Bool_val, - Int_val, Unit) -ML_5 (gtk_box_pack_end, GtkBox_val, GtkWidget_val, Bool_val, Bool_val, - Int_val, Unit) -ML_2 (gtk_box_set_homogeneous, GtkBox_val, Bool_val, Unit) -ML_2 (gtk_box_set_spacing, GtkBox_val, Int_val, Unit) -ML_3 (gtk_box_reorder_child, GtkBox_val, GtkWidget_val, Int_val, Unit) -value ml_gtk_box_query_child_packing (value box, value child) -{ - int expand, fill; - unsigned int padding; - GtkPackType pack_type; - value ret; - gtk_box_query_child_packing (GtkBox_val(box), GtkWidget_val(child), - &expand, &fill, &padding, &pack_type); - ret = alloc_small(4,0); - Field(ret,0) = Val_bool(expand); - Field(ret,1) = Val_bool(fill); - Field(ret,2) = Val_int(padding); - Field(ret,3) = Val_pack_type(pack_type); - return ret; -} -value ml_gtk_box_set_child_packing (value vbox, value vchild, value vexpand, - value vfill, value vpadding, value vpack) -{ - GtkBox *box = GtkBox_val(vbox); - GtkWidget *child = GtkWidget_val(vchild); - int expand, fill; - unsigned int padding; - GtkPackType pack; - gtk_box_query_child_packing (box, child, &expand, &fill, &padding, &pack); - gtk_box_set_child_packing (box, child, - Option_val(vexpand, Bool_val, expand), - Option_val(vfill, Bool_val, fill), - Option_val(vpadding, Int_val, padding), - Option_val(vpack, Pack_type_val, pack)); - return Val_unit; -} -ML_bc6 (ml_gtk_box_set_child_packing) - -ML_2 (gtk_hbox_new, Bool_val, Int_val, Val_GtkWidget_sink) -ML_2 (gtk_vbox_new, Bool_val, Int_val, Val_GtkWidget_sink) - -/* gtkbbox.h */ - -#define GtkButtonBox_val(val) check_cast(GTK_BUTTON_BOX,val) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, spacing, Val_int) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_min_width, Val_int) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_min_height, - Val_int) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_ipad_x, Val_int) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_ipad_y, Val_int) -Make_Extractor (gtk_button_box_get, GtkButtonBox_val, layout_style, - Val_button_box_style) -ML_2 (gtk_button_box_set_spacing, GtkButtonBox_val, Int_val, Unit) -ML_3 (gtk_button_box_set_child_size, GtkButtonBox_val, - Int_val, Int_val, Unit) -ML_3 (gtk_button_box_set_child_ipadding, GtkButtonBox_val, - Int_val, Int_val, Unit) -ML_2 (gtk_button_box_set_layout, GtkButtonBox_val, Button_box_style_val, Unit) -ML_2 (gtk_button_box_set_child_size_default, Int_val, Int_val, Unit) -ML_2 (gtk_button_box_set_child_ipadding_default, Int_val, Int_val, Unit) - -ML_0 (gtk_hbutton_box_new, Val_GtkWidget_sink) -ML_0 (gtk_vbutton_box_new, Val_GtkWidget_sink) - -/* gtkfixed.h */ - -#define GtkFixed_val(val) check_cast(GTK_FIXED,val) -ML_0 (gtk_fixed_new, Val_GtkWidget_sink) -ML_4 (gtk_fixed_put, GtkFixed_val, GtkWidget_val, (gint16)Long_val, (gint16)Long_val, Unit) -ML_4 (gtk_fixed_move, GtkFixed_val, GtkWidget_val, (gint16)Long_val, (gint16)Long_val, Unit) - -/* gtklayout.h */ - -#define GtkLayout_val(val) check_cast(GTK_LAYOUT,val) -ML_2 (gtk_layout_new, GtkAdjustment_val, GtkAdjustment_val, Val_GtkWidget_sink) -ML_4 (gtk_layout_put, GtkLayout_val, GtkWidget_val, Int_val, Int_val, Unit) -ML_4 (gtk_layout_move, GtkLayout_val, GtkWidget_val, Int_val, Int_val, Unit) -ML_3 (gtk_layout_set_size, GtkLayout_val, Int_val, Int_val, Unit) -ML_1 (gtk_layout_get_hadjustment, GtkLayout_val, Val_GtkAny) -ML_1 (gtk_layout_get_vadjustment, GtkLayout_val, Val_GtkAny) -ML_2 (gtk_layout_set_hadjustment, GtkLayout_val, GtkAdjustment_val, Unit) -ML_2 (gtk_layout_set_vadjustment, GtkLayout_val, GtkAdjustment_val, Unit) -ML_1 (gtk_layout_freeze, GtkLayout_val, Unit) -ML_1 (gtk_layout_thaw, GtkLayout_val, Unit) -Make_Extractor (gtk_layout_get, GtkLayout_val, width, Val_int) -Make_Extractor (gtk_layout_get, GtkLayout_val, height, Val_int) - -/* gtknotebook.h */ - -#define GtkNotebook_val(val) check_cast(GTK_NOTEBOOK,val) -ML_0 (gtk_notebook_new, Val_GtkWidget_sink) - -ML_5 (gtk_notebook_insert_page_menu, GtkNotebook_val, GtkWidget_val, - GtkWidget_val, GtkWidget_val, Int_val, Unit) -ML_2 (gtk_notebook_remove_page, GtkNotebook_val, Int_val, Unit) - -ML_2 (gtk_notebook_set_tab_pos, GtkNotebook_val, Position_val, Unit) -ML_2 (gtk_notebook_set_homogeneous_tabs, GtkNotebook_val, Bool_val, Unit) -ML_2 (gtk_notebook_set_show_tabs, GtkNotebook_val, Bool_val, Unit) -ML_2 (gtk_notebook_set_show_border, GtkNotebook_val, Bool_val, Unit) -ML_2 (gtk_notebook_set_scrollable, GtkNotebook_val, Bool_val, Unit) -ML_2 (gtk_notebook_set_tab_border, GtkNotebook_val, Int_val, Unit) -ML_1 (gtk_notebook_popup_enable, GtkNotebook_val, Unit) -ML_1 (gtk_notebook_popup_disable, GtkNotebook_val, Unit) - -ML_1 (gtk_notebook_get_current_page, GtkNotebook_val, Val_int) -ML_2 (gtk_notebook_set_page, GtkNotebook_val, Int_val, Unit) -ML_2 (gtk_notebook_get_nth_page, GtkNotebook_val, Int_val, Val_GtkWidget) -ML_2 (gtk_notebook_page_num, GtkNotebook_val, GtkWidget_val, Val_int) -ML_1 (gtk_notebook_next_page, GtkNotebook_val, Unit) -ML_1 (gtk_notebook_prev_page, GtkNotebook_val, Unit) - -ML_2 (gtk_notebook_get_tab_label, GtkNotebook_val, GtkWidget_val, - Val_GtkWidget) -ML_3 (gtk_notebook_set_tab_label, GtkNotebook_val, GtkWidget_val, - GtkWidget_val, Unit) -ML_2 (gtk_notebook_get_menu_label, GtkNotebook_val, GtkWidget_val, - Val_GtkWidget) -ML_3 (gtk_notebook_set_menu_label, GtkNotebook_val, GtkWidget_val, - GtkWidget_val, Unit) -ML_3 (gtk_notebook_reorder_child, GtkNotebook_val, GtkWidget_val, - Int_val, Unit) - - -/* gtkpacker.h */ - -Make_OptFlags_val(Packer_options_val) - -#define GtkPacker_val(val) check_cast(GTK_PACKER,val) -ML_0 (gtk_packer_new, Val_GtkWidget_sink) -ML_10 (gtk_packer_add, GtkPacker_val, GtkWidget_val, - Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore, - Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore, - OptFlags_Packer_options_val, - Option_val(arg6,Int_val,GtkPacker_val(arg1)->default_border_width) Ignore, - Option_val(arg7,Int_val,GtkPacker_val(arg1)->default_pad_x) Ignore, - Option_val(arg8,Int_val,GtkPacker_val(arg1)->default_pad_y) Ignore, - Option_val(arg9,Int_val,GtkPacker_val(arg1)->default_i_pad_x) Ignore, - Option_val(arg10,Int_val,GtkPacker_val(arg1)->default_i_pad_y) Ignore, - Unit) -ML_bc10 (ml_gtk_packer_add) -ML_5 (gtk_packer_add_defaults, GtkPacker_val, GtkWidget_val, - Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore, - Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore, - OptFlags_Packer_options_val, Unit) -ML_10 (gtk_packer_set_child_packing, GtkPacker_val, GtkWidget_val, - Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore, - Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore, - OptFlags_Packer_options_val, - Option_val(arg6,Int_val,GtkPacker_val(arg1)->default_border_width) Ignore, - Option_val(arg7,Int_val,GtkPacker_val(arg1)->default_pad_x) Ignore, - Option_val(arg8,Int_val,GtkPacker_val(arg1)->default_pad_y) Ignore, - Option_val(arg9,Int_val,GtkPacker_val(arg1)->default_i_pad_x) Ignore, - Option_val(arg10,Int_val,GtkPacker_val(arg1)->default_i_pad_y) Ignore, - Unit) -ML_bc10 (ml_gtk_packer_set_child_packing) -ML_3 (gtk_packer_reorder_child, GtkPacker_val, GtkWidget_val, - Int_val, Unit) -ML_2 (gtk_packer_set_spacing, GtkPacker_val, Int_val, Unit) -value ml_gtk_packer_set_defaults (value w, value border_width, - value pad_x, value pad_y, - value i_pad_x, value i_pad_y) -{ - GtkPacker *p = GtkPacker_val(w); - if (Is_block(border_width)) - gtk_packer_set_default_border_width (p,Int_val(Field(border_width,0))); - if (Is_block(pad_x) || Is_block(pad_y)) - gtk_packer_set_default_pad - (p, Option_val(pad_x,Int_val,p->default_pad_x), - Option_val(pad_y,Int_val,p->default_pad_y)); - if (Is_block(i_pad_x) || Is_block(i_pad_y)) - gtk_packer_set_default_ipad - (p, Option_val(pad_x,Int_val,p->default_i_pad_x), - Option_val(pad_y,Int_val,p->default_i_pad_y)); - return Val_unit; -} -ML_bc6 (ml_gtk_packer_set_defaults) - -/* gtkpaned.h */ - -#define GtkPaned_val(val) check_cast(GTK_PANED,val) -ML_0 (gtk_hpaned_new, Val_GtkWidget_sink) -ML_0 (gtk_vpaned_new, Val_GtkWidget_sink) -ML_2 (gtk_paned_add1, GtkPaned_val, GtkWidget_val, Unit) -ML_2 (gtk_paned_add2, GtkPaned_val, GtkWidget_val, Unit) -ML_2 (gtk_paned_set_handle_size, GtkPaned_val, (gint16)Int_val, Unit) -ML_2 (gtk_paned_set_gutter_size, GtkPaned_val, (gint16)Int_val, Unit) -Make_Extractor (gtk_paned, GtkPaned_val, child1, Val_GtkWidget) -Make_Extractor (gtk_paned, GtkPaned_val, child2, Val_GtkWidget) -Make_Extractor (gtk_paned, GtkPaned_val, handle_size, Val_int) -Make_Extractor (gtk_paned, GtkPaned_val, gutter_size, Val_int) - -/* gtktable.h */ - -#define GtkTable_val(val) check_cast(GTK_TABLE,val) -ML_3 (gtk_table_new, Int_val, Int_val, Int_val, Val_GtkWidget_sink) -ML_10 (gtk_table_attach, GtkTable_val, GtkWidget_val, - Int_val, Int_val, Int_val, Int_val, - Flags_Attach_options_val, Flags_Attach_options_val, - Int_val, Int_val, Unit) -ML_bc10 (ml_gtk_table_attach) -ML_3 (gtk_table_set_row_spacing, GtkTable_val, Int_val, Int_val, Unit) -ML_3 (gtk_table_set_col_spacing, GtkTable_val, Int_val, Int_val, Unit) -ML_2 (gtk_table_set_row_spacings, GtkTable_val, Int_val, Unit) -ML_2 (gtk_table_set_col_spacings, GtkTable_val, Int_val, Unit) -ML_2 (gtk_table_set_homogeneous, GtkTable_val, Bool_val, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkrange.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkrange.c deleted file mode 100644 index 642d26909..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkrange.c +++ /dev/null @@ -1,88 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -/* gtkprogress.h */ - -#define GtkProgress_val(val) check_cast(GTK_PROGRESS,val) -ML_2 (gtk_progress_set_show_text, GtkProgress_val, Bool_val, Unit) -ML_3 (gtk_progress_set_text_alignment, GtkProgress_val, - Option_val(arg2,Float_val,(GtkProgress_val(arg1))->x_align) Ignore, - Option_val(arg3,Float_val,(GtkProgress_val(arg1))->y_align) Ignore, Unit) -ML_2 (gtk_progress_set_format_string, GtkProgress_val, String_val, Unit) -ML_2 (gtk_progress_set_adjustment, GtkProgress_val, GtkAdjustment_val, Unit) -ML_4 (gtk_progress_configure, GtkProgress_val, - Float_val, Float_val, Float_val, Unit) -ML_2 (gtk_progress_set_percentage, GtkProgress_val, Float_val, Unit) -ML_2 (gtk_progress_set_value, GtkProgress_val, Float_val, Unit) -ML_1 (gtk_progress_get_value, GtkProgress_val, copy_double) -ML_1 (gtk_progress_get_current_percentage, GtkProgress_val, copy_double) -ML_2 (gtk_progress_set_activity_mode, GtkProgress_val, Bool_val, Unit) -ML_1 (gtk_progress_get_current_text, GtkProgress_val, Val_string) -Make_Extractor (gtk_progress_get, GtkProgress_val, adjustment, - Val_GtkAny) - -/* gtkprogressbar.h */ - -#define GtkProgressBar_val(val) check_cast(GTK_PROGRESS_BAR,val) -ML_0 (gtk_progress_bar_new, Val_GtkWidget_sink) -ML_1 (gtk_progress_bar_new_with_adjustment, GtkAdjustment_val, - Val_GtkWidget_sink) -ML_2 (gtk_progress_bar_set_bar_style, GtkProgressBar_val, - Progress_bar_style_val, Unit) -ML_2 (gtk_progress_bar_set_discrete_blocks, GtkProgressBar_val, Int_val, Unit) -ML_2 (gtk_progress_bar_set_activity_step, GtkProgressBar_val, Int_val, Unit) -ML_2 (gtk_progress_bar_set_activity_blocks, GtkProgressBar_val, Int_val, Unit) -ML_2 (gtk_progress_bar_set_orientation, GtkProgressBar_val, - Progress_bar_orientation_val, Unit) -/* ML_2 (gtk_progress_bar_update, GtkProgressBar_val, Float_val, Unit) */ - -/* gtkrange.h */ - -#define GtkRange_val(val) check_cast(GTK_RANGE,val) -ML_1 (gtk_range_get_adjustment, GtkRange_val, Val_GtkAny) -ML_2 (gtk_range_set_adjustment, GtkRange_val, GtkAdjustment_val, Unit) -ML_2 (gtk_range_set_update_policy, GtkRange_val, Update_type_val, Unit) - -/* gtkscale.h */ - -#define GtkScale_val(val) check_cast(GTK_SCALE,val) -ML_2 (gtk_scale_set_digits, GtkScale_val, Int_val, Unit) -ML_2 (gtk_scale_set_draw_value, GtkScale_val, Bool_val, Unit) -ML_2 (gtk_scale_set_value_pos, GtkScale_val, Position_val, Unit) -ML_1 (gtk_scale_get_value_width, GtkScale_val, Val_int) -ML_1 (gtk_scale_draw_value, GtkScale_val, Unit) -ML_1 (gtk_hscale_new, GtkAdjustment_val, Val_GtkWidget_sink) -ML_1 (gtk_vscale_new, GtkAdjustment_val, Val_GtkWidget_sink) - -/* gtkscrollbar.h */ - -ML_1 (gtk_hscrollbar_new, GtkAdjustment_val, Val_GtkWidget_sink) -ML_1 (gtk_vscrollbar_new, GtkAdjustment_val, Val_GtkWidget_sink) - -/* gtkruler.h */ - -#define GtkRuler_val(val) check_cast(GTK_RULER,val) -ML_2 (gtk_ruler_set_metric, GtkRuler_val, Metric_type_val, Unit) -ML_5 (gtk_ruler_set_range, GtkRuler_val, Float_val, - Float_val, Float_val, Float_val, Unit) -Make_Extractor (gtk_ruler_get, GtkRuler_val, lower, copy_double) -Make_Extractor (gtk_ruler_get, GtkRuler_val, upper, copy_double) -Make_Extractor (gtk_ruler_get, GtkRuler_val, position, copy_double) -Make_Extractor (gtk_ruler_get, GtkRuler_val, max_size, copy_double) -ML_1 (gtk_ruler_draw_ticks, GtkRuler_val, Unit) -ML_1 (gtk_ruler_draw_pos, GtkRuler_val, Unit) -ML_0 (gtk_hruler_new, Val_GtkWidget_sink) -ML_0 (gtk_vruler_new, Val_GtkWidget_sink) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtktree.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtktree.c deleted file mode 100644 index a1239c2a7..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtktree.c +++ /dev/null @@ -1,53 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtk_tags.h" - -/* gtktreeitem.h */ - -#define GtkTreeItem_val(val) check_cast(GTK_TREE_ITEM,val) -ML_0 (gtk_tree_item_new, Val_GtkWidget_sink) -ML_1 (gtk_tree_item_new_with_label, String_val, Val_GtkWidget_sink) -ML_2 (gtk_tree_item_set_subtree, GtkTreeItem_val, GtkWidget_val, Unit) -ML_1 (gtk_tree_item_remove_subtree, GtkTreeItem_val, Unit) -ML_1 (gtk_tree_item_expand, GtkTreeItem_val, Unit) -ML_1 (gtk_tree_item_collapse, GtkTreeItem_val, Unit) -ML_1 (GTK_TREE_ITEM_SUBTREE, GtkTreeItem_val, Val_GtkWidget) - -/* gtktree.h */ - -#define GtkTree_val(val) check_cast(GTK_TREE,val) -ML_0 (gtk_tree_new, Val_GtkWidget_sink) -ML_3 (gtk_tree_insert, GtkTree_val, GtkWidget_val, Int_val, Unit) -ML_3 (gtk_tree_clear_items, GtkTree_val, Int_val, Int_val, Unit) -ML_2 (gtk_tree_select_item, GtkTree_val, Int_val, Unit) -ML_2 (gtk_tree_unselect_item, GtkTree_val, Int_val, Unit) -ML_2 (gtk_tree_child_position, GtkTree_val, GtkWidget_val, Val_int) -ML_2 (gtk_tree_set_selection_mode, GtkTree_val, Selection_mode_val, Unit) -ML_2 (gtk_tree_set_view_mode, GtkTree_val, Tree_view_mode_val, Unit) -ML_2 (gtk_tree_set_view_lines, GtkTree_val, Bool_val, Unit) - -static value val_gtkany (gpointer p) { return Val_GtkAny(p); } -value ml_gtk_tree_selection (value tree) -{ - GList *selection = GTK_TREE_SELECTION(GtkTree_val(tree)); - return Val_GList(selection, val_gtkany); -} -static gpointer gtkobject_val (value val) { return GtkObject_val(val); } -value ml_gtk_tree_remove_items (value tree, value items) -{ - GList *items_list = GList_val (items, gtkobject_val); - gtk_tree_remove_items (GtkTree_val(tree), items_list); - return Val_unit; -} diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkxmhtml.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkxmhtml.c deleted file mode 100644 index 54bd51ed0..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkxmhtml.c +++ /dev/null @@ -1,76 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" -#include "ml_glib.h" -#include "ml_gdk.h" -#include "ml_gtk.h" -#include "gtkxmhtml_tags.h" - -/* conversion functions */ - -#include "gtkxmhtml_tags.c" - -Make_Flags_val (Line_type_val) - -#define GtkXmHTML_val(val) ((GtkXmHTML*)GtkObject_val(val)) - -ML_0 (gtk_xmhtml_new, Val_GtkAny_sink) -ML_1 (gtk_xmhtml_freeze, GtkXmHTML_val, Unit) -ML_1 (gtk_xmhtml_thaw, GtkXmHTML_val, Unit) -ML_2 (gtk_xmhtml_source, GtkXmHTML_val, String_val, Unit) -ML_2 (gtk_xmhtml_set_string_direction, GtkXmHTML_val, String_direction_val, - Unit) -ML_2 (gtk_xmhtml_set_alignment, GtkXmHTML_val, Alignment_val, Unit) -/* ML_2 (gtk_xmhtml_outline, GtkXmHTML_val, Bool_val, Unit) */ -ML_3 (gtk_xmhtml_set_font_familty, GtkXmHTML_val, String_val, String_val, Unit) -ML_3 (gtk_xmhtml_set_font_familty_fixed, GtkXmHTML_val, String_val, String_val, - Unit) -ML_2 (gtk_xmhtml_set_font_charset, GtkXmHTML_val, String_val, Unit) -ML_2 (gtk_xmhtml_set_allow_body_colors, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_hilight_on_enter, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_anchor_underline_type, GtkXmHTML_val, Flags_Line_type_val, - Unit) -ML_2 (gtk_xmhtml_set_anchor_visited_underline_type, GtkXmHTML_val, - Flags_Line_type_val, Unit) -ML_2 (gtk_xmhtml_set_anchor_target_underline_type, GtkXmHTML_val, - Flags_Line_type_val, Unit) -ML_2 (gtk_xmhtml_set_allow_color_switching, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_dithering, GtkXmHTML_val, Dither_type_val, Unit) -ML_2 (gtk_xmhtml_set_allow_font_switching, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_max_image_colors, GtkXmHTML_val, Int_val, Unit) -ML_2 (gtk_xmhtml_set_allow_images, GtkXmHTML_val, Bool_val, Unit) -ML_4 (gtk_xmhtml_set_plc_intervals, GtkXmHTML_val, Int_val, Int_val, Int_val, - Unit) -/* ML_2 (gtk_xmhtml_set_def_body_image_url, GtkXmHTML_val, String_val, Unit) */ -ML_2 (gtk_xmhtml_set_anchor_buttons, GtkXmHTML_val, Bool_val, Unit) -value ml_gtk_xmhtml_set_anchor_cursor(value html, value cursor) -{ - gtk_xmhtml_set_anchor_cursor - (GtkXmHTML_val(html), Option_val(cursor, GdkCursor_val, NULL), - Bool_val(cursor)); - return Val_unit; -} -ML_2 (gtk_xmhtml_set_topline, GtkXmHTML_val, Int_val, Unit) -ML_1 (gtk_xmhtml_get_topline, GtkXmHTML_val, Val_int) -ML_2 (gtk_xmhtml_set_freeze_animations, GtkXmHTML_val, Bool_val, Unit) -/* ML_1 (gtk_xmhtml_get_source, GtkXmHTML_val, copy_string) */ -ML_2 (gtk_xmhtml_set_screen_gamma, GtkXmHTML_val, Float_val, Unit) -/* ML_2 (gtk_xmhtml_set_event_proc, GtkXmHTML_val, ???, Unit) */ -ML_2 (gtk_xmhtml_set_perfect_colors, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_uncompress_command, GtkXmHTML_val, String_val, Unit) -ML_2 (gtk_xmhtml_set_strict_checking, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_bad_html_warnings, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_allow_form_coloring, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_imagemap_draw, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_mime_type, GtkXmHTML_val, String_val, Unit) -ML_2 (gtk_xmhtml_set_alpha_processing, GtkXmHTML_val, Bool_val, Unit) -ML_2 (gtk_xmhtml_set_rgb_conv_mode, GtkXmHTML_val, Dither_type_val, Unit) diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/varcc.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/varcc.ml deleted file mode 100644 index 100bee331..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/varcc.ml +++ /dev/null @@ -1,157 +0,0 @@ -(* $Id$ *) - -(* Compile a list of variant tags into CPP defines *) - -(* hash_variant, from ctype.ml *) - -let hash_variant s = - let accu = ref 0 in - for i = 0 to String.length s - 1 do - accu := 223 * !accu + Char.code s.[i] - done; - (* reduce to 31 bits *) - accu := !accu land (1 lsl 31 - 1); - (* make it signed for 64 bits architectures *) - if !accu > 0x3FFFFFFF then !accu - (1 lsl 31) else !accu - -open Genlex - -let lexer = make_lexer ["type"; "public"; "="; "["; "]"; "`"; "|"] - -let may_string = parser - [< ' String s >] -> s - | [< >] -> "" - -let may_bar = parser - [< ' Kwd "|" >] -> () - | [< >] -> () - -let rec ident_list = parser - [< ' Kwd "`"; ' Ident x; trans = may_string; _ = may_bar; s >] -> - (x, trans) :: ident_list s - | [< >] -> [] - -let static = ref false -let may_public = parser - [< ' Kwd "public" >] -> true - | [< ' Kwd "private" >] -> false - | [< >] -> not !static - -open Printf - -let hashes = Hashtbl.create 57 - -let declaration ~hc ~cc = parser - [< ' Kwd "type"; public = may_public; ' Ident name; ' Kwd "="; - prefix = may_string; ' Kwd "["; _ = may_bar; - tags = ident_list; ' Kwd "]"; suffix = may_string >] -> - let oh x = fprintf hc x and oc x = fprintf cc x in - (* Output tag values to headers *) - let first = ref true in - List.iter tags ~f: - begin fun (tag, _) -> - let hash = hash_variant tag in - try - let tag' = Hashtbl.find hashes hash in - if tag <> tag' then - failwith (String.concat ~sep:" " ["Doublon tag:";tag;"and";tag']) - with Not_found -> - Hashtbl.add ~key:hash ~data:tag hashes; - if !first then begin - oh "/* %s : tags and macros */\n" name; first := false - end; - oh "#define MLTAG_%s\tVal_int(%d)\n" tag hash; - end; - (* compute C name *) - let ctag tag trans = - if trans <> "" then trans else - let tag = - if tag.[0] = '_' then - String.sub tag ~pos:1 ~len:(String.length tag -1) - else tag - in - match - if prefix = "" then None, "" - else - Some (prefix.[String.length prefix - 1]), - String.sub prefix ~pos:0 ~len:(String.length prefix - 1) - with - Some '#', prefix -> - prefix ^ String.uncapitalize tag ^ suffix - | Some '^', prefix -> - prefix ^ String.uppercase tag ^ suffix - | _ -> - prefix ^ tag ^ suffix - and cname = - String.capitalize name - in - let tags = - Sort.list tags - ~order:(fun (tag1,_) (tag2,_) -> hash_variant tag1 < hash_variant tag2) - in - (* Output table to code file *) - oc "/* %s : conversion table */\n" name; - let static = if not public then "static " else "" in - oc "%slookup_info ml_table_%s[] = {\n" static name; - oc " { 0, %d },\n" (List.length tags); - List.iter tags ~f: - begin fun (tag,trans) -> - oc " { MLTAG_%s, %s },\n" tag (ctag tag trans) - end; - oc "};\n\n"; - (* Output macros to headers *) - if not !first then oh "\n"; - if public then oh "extern lookup_info ml_table_%s[];\n" name; - oh "#define Val_%s(data) ml_lookup_from_c (ml_table_%s, data)\n" - name name; - oh "#define %s_val(key) ml_lookup_to_c (ml_table_%s, key)\n\n" - cname name; - | [< >] -> raise End_of_file - - -let process ic ~hc ~cc = - let chars = Stream.of_channel ic in - let s = lexer chars in - try - while true do declaration s ~hc ~cc done - with End_of_file -> () - | Stream.Error err -> - failwith - (Printf.sprintf "Parsing error \"%s\" at character %d on input stream" - err (Stream.count chars)) - -let main () = - let inputs = ref [] in - let header = ref "" in - let code = ref "" in - Arg.parse ~errmsg:"usage: varcc [options] file.var" ~keywords: - [ "-h", Arg.String ((:=) header), "file to output macros (file.h)"; - "-c", Arg.String ((:=) code), - "file to output conversion tables (file.c)"; - "-static", Arg.Set static, "do not export conversion tables" ] - ~others:(fun s -> inputs := s :: !inputs); - let inputs = List.rev !inputs in - begin match inputs with - | [] -> - if !header = "" then header := "a.h"; - if !code = "" then code := "a.c" - | ip :: _ -> - let rad = - if Filename.check_suffix ip ".var" then Filename.chop_extension ip - else ip in - if !header = "" then header := rad ^ ".h"; - if !code = "" then code := rad ^ ".c" - end; - let hc = open_out !header and cc = open_out !code in - let chars = Stream.of_channel stdin in - if inputs = [] then process stdin ~hc ~cc else begin - List.iter inputs ~f: - begin fun file -> - let ic = open_in file in - try process ic ~hc ~cc; close_in ic - with exn -> close_in ic; prerr_endline ("Error in " ^ file); raise exn - end - end; - close_out hc; close_out cc - -let _ = Printexc.print main () diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/wrappers.c b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/wrappers.c deleted file mode 100644 index ee0f56797..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/wrappers.c +++ /dev/null @@ -1,90 +0,0 @@ -/* $Id$ */ - -#include -#include -#include -#include -#include -#include - -#include "wrappers.h" - -value copy_memblock_indirected (void *src, asize_t size) -{ - value ret = alloc (Wosize_asize(size)+2, Abstract_tag); - if (!src) ml_raise_null_pointer (); - - Field(ret,1) = 2; - memcpy (&Field(ret,2), src, size); - return ret; -} - -value ml_some (value v) -{ - CAMLparam1(v); - value ret = alloc_small(1,0); - Field(ret,0) = v; - CAMLreturn(ret); -} - -void ml_raise_null_pointer () -{ - static value * exn = NULL; - if (exn == NULL) - exn = caml_named_value ("null_pointer"); - raise_constant (*exn); -} - -value Val_pointer (void *ptr) -{ - value ret = alloc_small (2, Abstract_tag); - if (!ptr) ml_raise_null_pointer (); - Field(ret,1) = (value)ptr; - return ret; -} - -value copy_string_check (const char*str) -{ - if (!str) ml_raise_null_pointer (); - return copy_string ((char*) str); -} - -value copy_string_or_null (const char*str) -{ - return copy_string (str ? (char*) str : ""); -} - -value *ml_global_root_new (value v) -{ - value *p = stat_alloc(sizeof(value)); - *p = v; - register_global_root (p); - return p; -} - -void ml_global_root_destroy (void *data) -{ - remove_global_root ((value *)data); - stat_free (data); -} - -value ml_lookup_from_c (lookup_info *table, int data) -{ - int i; - for (i = table[0].data; i > 0; i--) - if (table[i].data == data) return table[i].key; - invalid_argument ("ml_lookup_from_c"); -} - -int ml_lookup_to_c (lookup_info *table, value key) -{ - int first = 1, last = table[0].data, current; - - while (first < last) { - current = (first+last)/2; - if (table[current].key >= key) last = current; - else first = current + 1; - } - if (table[first].key == key) return table[first].data; - invalid_argument ("ml_lookup_to_c"); -} diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/wrappers.h b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/wrappers.h deleted file mode 100644 index 2006bcbd5..000000000 --- a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/wrappers.h +++ /dev/null @@ -1,225 +0,0 @@ -/* $Id$ */ - -#ifndef _wrappers_ -#define _wrappers_ - -#include -#include - -value copy_memblock_indirected (void *src, asize_t size); -value ml_some (value); -void ml_raise_null_pointer (void) Noreturn; -value Val_pointer (void *); -value copy_string_check (const char*); -value copy_string_or_null (const char *); - -value *ml_global_root_new (value v); -void ml_global_root_destroy (void *data); - -typedef struct { value key; int data; } lookup_info; -value ml_lookup_from_c (lookup_info *table, int data); -int ml_lookup_to_c (lookup_info *table, value key); - -/* Wrapper generators */ - -#define ML_0(cname, conv) \ -value ml_##cname (value unit) { return conv (cname ()); } -#define ML_1(cname, conv1, conv) \ -value ml_##cname (value arg1) { return conv (cname (conv1 (arg1))); } -#define ML_1_post(cname, conv1, conv, post) \ -value ml_##cname (value arg1) \ -{ value ret = conv (cname (conv1(arg1))); post; return ret; } -#define ML_2(cname, conv1, conv2, conv) \ -value ml_##cname (value arg1, value arg2) \ -{ return conv (cname (conv1(arg1), conv2(arg2))); } -#define ML_2_name(mlname, cname, conv1, conv2, conv) \ -value mlname (value arg1, value arg2) \ -{ return conv (cname (conv1(arg1), conv2(arg2))); } -#define ML_3(cname, conv1, conv2, conv3, conv) \ -value ml_##cname (value arg1, value arg2, value arg3) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3))); } -#define ML_3_name(mlname, cname, conv1, conv2, conv3, conv) \ -value mlname (value arg1, value arg2, value arg3) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3))); } -#define ML_4(cname, conv1, conv2, conv3, conv4, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4))); } -#define ML_4_name(mlname, cname, conv1, conv2, conv3, conv4, conv) \ -value mlname (value arg1, value arg2, value arg3, value arg4) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4))); } -#define ML_5(cname, conv1, conv2, conv3, conv4, conv5, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5))); } -#define ML_6(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6))); } -#define ML_7(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7))); } -#define ML_8(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \ - conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7, value arg8) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8))); } -#define ML_9(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \ - conv9, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7, value arg8, value arg9) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \ - conv9(arg9))); } -#define ML_10(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \ - conv9, conv10, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7, value arg8, value arg9, value arg10)\ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \ - conv9(arg9), conv10(arg10))); } -#define ML_11(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \ - conv9, conv10, conv11, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7, value arg8, value arg9, value arg10,\ - value arg11) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \ - conv9(arg9), conv10(arg10), conv11(arg11))); } -#define ML_12(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \ - conv9, conv10, conv11, conv12, conv) \ -value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \ - value arg6, value arg7, value arg8, value arg9, value arg10,\ - value arg11, value arg12) \ -{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \ - conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \ - conv9(arg9), conv10(arg10), conv11(arg11), \ - conv12(arg12))); } - -/* Use with care: needs the argument index */ -#define Ignore(x) -#define Insert(x) (x), -#define Split(x,f,g) f(x), g(x) Ignore -#define Split3(x,f,g,h) f(x), g(x), h(x) Ignore -#define Pair(x,f,g) f(Field(x,0)), g(Field(x,1)) Ignore -#define Triple(x,f,g,h) f(Field(x,0)), g(Field(x,1)), h(Field(x,2)) Ignore - -/* For more than 5 arguments */ -#define ML_bc6(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5]); } -#define ML_bc7(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6]); } -#define ML_bc8(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \ - argv[7]); } -#define ML_bc9(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \ - argv[7],argv[8]); } -#define ML_bc10(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \ - argv[7],argv[8],argv[9]); } -#define ML_bc11(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \ - argv[7],argv[8],argv[9],argv[10]); } -#define ML_bc12(cname) \ -value cname##_bc (value *argv, int argn) \ -{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \ - argv[7],argv[8],argv[9],argv[10],argv[11]); } - -/* result conversion */ -#define Unit(x) ((x), Val_unit) -#define Id(x) x -#define Val_char Val_int - -/* parameter conversion */ -#define Bool_ptr(x) ((long) x - 1) -#define Char_val Int_val -#define Float_val(x) ((float)Double_val(x)) - -#define Option_val(val,unwrap,default) \ -((long)val-1 ? unwrap(Field(val,0)) : default) -#define String_option_val(s) Option_val(s,String_val,NULL) - -/* Utility */ - -#define Copy_array(ret,l,src,conv) \ - if (!l) ret = Atom(0); \ - else if (l <= Max_young_wosize) { int i; ret = alloc_tuple(l); \ - for(i=0;ifield); } - -#define Make_Setter(name,conv1,conv2,field) \ -value ml_##name##_##field (value val, value new) \ -{ (conv1(val))->field = conv2(new); return Val_unit; } - -#define Make_Array_Extractor(name,conv1,conv2,field,conv) \ -value ml_##name##_##field (value val, value index) \ -{ return conv ((conv1(val))->field[conv2(index)]); } - -#define Make_Array_Setter(name,conv1,conv2,conv3,field) \ -value ml_##name##_##field (value val, value index, value new) \ -{ (conv1(val))->field[conv2(index)] = conv3(new); return Val_unit; } - -/* ML value is [flag list] */ -#define Make_Flags_val(conv) \ -int Flags_##conv (value list) \ -{ int flags = 0L; \ - while Is_block(list) { flags |= conv(Field(list,0)); list = Field(list,1); }\ - return flags; } - -/* ML value is [flag list option] */ -#define Make_OptFlags_val(conv) \ -int OptFlags_##conv (value list) \ -{ int flags = 0L; \ - if Is_block(list) list = Field(list,0); \ - while Is_block(list) { flags |= conv(Field(list,0)); list = Field(list,1); }\ - return flags; } - -#define Val_copy(val) copy_memblock_indirected (&val, sizeof(val)) -#define Val_string copy_string_check -#define Val_optstring copy_string_or_null -#define Optstring_val(v) (string_length(v) ? String_val(v) : (char*)NULL) -#define Val_option(v,f) (v ? ml_some(f(v)) : Val_unit) - -#define Check_null(v) (v ? v : (ml_raise_null_pointer (), v)) - -#endif /* _wrappers_ */ diff --git a/helm/DEVEL/lablgtk_gtkmathview/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/.cvsignore deleted file mode 100644 index 8e6f4f936..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmi *.cmo *.cmx *.cma *.cmxa test test.opt diff --git a/helm/DEVEL/lablgtk_gtkmathview/.depend b/helm/DEVEL/lablgtk_gtkmathview/.depend deleted file mode 100644 index 600449bb8..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/.depend +++ /dev/null @@ -1,4 +0,0 @@ -gMathView.cmo: gtkMathView.cmo gtk_mathview.cmo -gMathView.cmx: gtkMathView.cmx gtk_mathview.cmx -gtkMathView.cmo: gtk_mathview.cmo -gtkMathView.cmx: gtk_mathview.cmx diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.i386.rpm b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.i386.rpm deleted file mode 100644 index e759a668b59b21fc56addbe331bfc3f81f8aa944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16862 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 diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0.tar.gz b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0.tar.gz deleted file mode 100644 index 73f44b3641b51a61bb03a72124437196596ec844..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5777 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 diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/.depend b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/.depend deleted file mode 100644 index 600449bb8..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/.depend +++ /dev/null @@ -1,4 +0,0 @@ -gMathView.cmo: gtkMathView.cmo gtk_mathview.cmo -gMathView.cmx: gtkMathView.cmx gtk_mathview.cmx -gtkMathView.cmo: gtk_mathview.cmo -gtkMathView.cmx: gtk_mathview.cmx diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/COPYING b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/COPYING deleted file mode 100644 index 20b480a10..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/COPYING +++ /dev/null @@ -1,11 +0,0 @@ -This library is made available under the LGPL. -You should have got a copy of the LGPL with Objective Caml. -The LGPL applies to all the files in this directory, but not in -subdirectories. - -For the test subdirectory, there is no specific licensing policy, -but you may freely take inspiration from the code, and copy parts of -it in your application. - -Author: - Claudio Sacerdoti Coen diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/Makefile deleted file mode 100644 index 1195de528..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/Makefile +++ /dev/null @@ -1,98 +0,0 @@ -# Makefile for lablgtk_mathview. - -LABLGTKDIR = /usr/local/lib/ocaml/lablgtk -MLFLAGS += -I $(LABLGTKDIR) - -TARGETS = ml_gtk_mathview.o lablgtkmathview.cma - -all: $(TARGETS) - -opt: lablgtkmathviewopt - -configure: - @rm -f config.make - @$(MAKE) --no-print-directory -f configure.mk - -depend: - @rm -f .depend - @$(MAKE) --no-print-directory -f configure.mk .depend - -.depend config.make: - @$(MAKE) --no-print-directory -f configure.mk - -COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -include config.make - -INSTALLDIR = $(LIBDIR)/lablgtk/mathview - -MLLIBS = lablgtkmathview.cma -CLIBS = -MLLINK = unix.cma str.cma - -ifdef DEBUG -CFLAGS = -g $(GTKCFLAGS) -MLLINK += -cclib -lcamlrund -MLFLAGS += -g -else -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -endif - -THFLAGS = -thread -THLINK = unix.cma threads.cma - -ifdef USE_CC -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -endif - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.c.o: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< -.var.h: - ./var2def < $< > $@ -.var.c: - ./var2conv < $< > $@ - -# Targets -COBJS = ml_gtk_mathview.o -MLOBJS = gtk_mathview.cmo gtkMathView.cmo gMathView.cmo -ALLOBJS = $(MLOBJS) - -lablgtkmathviewopt: $(CLIBS) $(MLLIBS:.cma=.cmxa) - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR) - if test -f *.mli ; then cp *.mli $(INSTALLDIR) ; fi - cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR) - cp $(MLLIBS) $(INSTALLDIR) - cp $(COBJS) $(INSTALLDIR) - if test ! -z "$(CLIBS)" ; then cp $(CLIBS) $(INSTALLDIR) ; fi - if test -f lablgtkmathview.cmxa; then \ - cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \ - $(INSTALLDIR); fi - -lablgtkmathview.cma: $(MLOBJS) - $(LINKER) -a -custom -o $@ $(MLOBJS) $(GTKLIBS) $(GTKMATHVIEWLIBS) -lablgtkmathview.cmxa: $(MLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) $(GTKLIBS) $(GTKMATHVIEWLIBS) - -ml_gtk.o: $(LABLGTKDIR)/gtk_tags.c $(LABLGTKDIR)/gtk_tags.h \ - $(LABLGTKDIR)/ml_gtk.h $(LABLGTKDIR)/ml_gdk.h $(LABLGTKDIR)/wrappers.h - -clean: - rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS) - -include .depend diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/config.make b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/config.make deleted file mode 100644 index d50ffb585..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/config.make +++ /dev/null @@ -1,15 +0,0 @@ -CAMLC=ocamlc -CAMLOPT=ocamlopt -USE_GL= -USE_GNOME= -USE_CC= -DEBUG= -CC=cc -RANLIB=ranlib -LIBDIR=/usr/lib/ocaml -BINDIR=/usr/bin -INSTALLDIR=/usr/lib/ocaml/lablgtk/mathview -GTKCFLAGS=-I/usr/lib/glib/include -I/usr/X11R6/include -I/usr/lib/ocaml/lablgtk -GTKLIBS=-ccopt -L/usr/lib -ccopt -L/usr/X11R6/lib -cclib -lgtk -cclib -lgdk -ccopt -rdynamic -cclib -lgmodule -cclib -lglib -cclib -ldl -cclib -lXi -cclib -lXext -cclib -lX11 -cclib -lm -GTKMATHVIEWLIBS=-ccopt -L/usr/local/lib/gtkmathview -cclib -lgtkmathview -GNOMELIBS= diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/configure.mk b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/configure.mk deleted file mode 100644 index 73cfc3d35..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/configure.mk +++ /dev/null @@ -1,53 +0,0 @@ -# makefile for configuring lablGTK_mathview - -# Default compilers -CAMLC = ocamlc -CAMLOPT = ocamlopt - -# Default installation directories -BINDIR = `$(GETBINDIR)` -INSTALLDIR = $(LIBDIR)/lablgtk/mathview - -# Autoconf -GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//' -LIBDIR = `$(GETLIBDIR)` -GETBINDIR = $(GETLIBDIR) | sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|' -GETRANLIB = which ranlib 2>/dev/null | sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/' - -ifdef USE_GNOME -GTKGETCFLAGS = gtk-config --cflags`" -I"`gnome-config --includedir -GNOMELIBS = `gnome-config --libs gtkxmhtml` -else -GTKGETCFLAGS = gtk-config --cflags -endif - -GTKGETLIBS = gtk-config --libs - -configure: .depend config.make - -.depend: - ocamldep *.ml *.mli > .depend - -config.make: - @echo CAMLC=$(CAMLC) > config.make - @echo CAMLOPT=$(CAMLOPT) >> config.make - @echo USE_GL=$(USE_GL) >> config.make - @echo USE_GNOME=$(USE_GNOME) >> config.make - @echo USE_CC=$(USE_CC) >> config.make - @echo DEBUG=$(DEBUG) >> config.make - @echo CC=$(CC) >> config.make - @echo RANLIB=`$(GETRANLIB)` >> config.make - @echo LIBDIR=$(LIBDIR) >> config.make - @echo BINDIR=`$(GETBINDIR)` >> config.make - @echo INSTALLDIR=$(INSTALLDIR) >> config.make - @echo GTKCFLAGS=`$(GTKGETCFLAGS)` -I/usr/lib/ocaml/lablgtk >> config.make - @echo GTKLIBS=`$(GTKGETLIBS)` | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - # - echo GTKMATHVIEWLIBS="-ccopt -L/usr/local/lib/gtkmathview -cclib -lgtkmathview " >> config.make - # - @echo GNOMELIBS=$(GNOMELIBS) | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - cat config.make diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gMathView.ml deleted file mode 100644 index b79c81244..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gMathView.ml +++ /dev/null @@ -1,50 +0,0 @@ -open Gaux -open Gtk -open Gtk_mathview -open GtkBase -open GtkMathView -open GObj - -exception ErrorLoadingFile of string;; - -class math_view_signals obj = object - inherit GContainer.container_signals obj - method jump = GtkSignal.connect ~sgn:MathView.Signals.jump obj ~after - method clicked = GtkSignal.connect ~sgn:MathView.Signals.clicked obj ~after -end - -class math_view obj = object - inherit GContainer.container (obj : Gtk_mathview.math_view obj) - method connect = new math_view_signals obj - method load ~filename = - if not (MathView.load obj ~filename) then raise (ErrorLoadingFile filename) - method get_selection = MathView.get_selection obj - method unload = MathView.unload obj - method dump = MathView.dump obj - method get_width = MathView.get_width obj - method get_height = MathView.get_height obj - method set_adjustments = - fun adj1 adj2 -> - MathView.set_adjustments obj (GData.as_adjustment adj1) - (GData.as_adjustment adj2) - method get_hadjustment = new GData.adjustment (MathView.get_hadjustment obj) - method get_vadjustment = new GData.adjustment (MathView.get_vadjustment obj) - method get_buffer = MathView.get_buffer obj - method get_frame = new GBin.frame (MathView.get_frame obj) - method set_font_size = MathView.set_font_size obj - (*method get_top = MathView.get_top obj - method set_top = MathView.set_top obj*) -end - -let math_view ?adjustmenth ?adjustmentv ?border_width ?width ?height - ?packing ?show () -= - let w = - MathView.create - ?adjustmenth:(may_map ~f:GData.as_adjustment adjustmenth) - ?adjustmentv:(may_map ~f:GData.as_adjustment adjustmentv) - () - in - Container.set w ?border_width ?width ?height; - pack_return (new math_view w) ~packing ~show -;; diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtkMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtkMathView.ml deleted file mode 100644 index 9ed42b8b7..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtkMathView.ml +++ /dev/null @@ -1,61 +0,0 @@ -open Gtk -open Gtk_mathview -open Tags -open GtkBase -open Gpointer - -module MathView = struct - let cast w : math_view obj = Object.try_cast w "GtkMathView" - external create : Gtk.adjustment optobj -> Gtk.adjustment optobj -> - math_view obj = "ml_gtk_math_view_new" - let create ~adjustmenth ~adjustmentv () = - create (optboxed adjustmenth) (optboxed adjustmentv) - external load : [>`math_view] obj -> filename:string -> bool = - "ml_gtk_math_view_load" - external get_selection : [>`math_view] obj -> string option = - "ml_gtk_math_view_get_selection" - external unload : [>`math_view] obj -> unit = - "ml_gtk_math_view_unload" - external dump : [>`math_view] obj -> unit = - "ml_gtk_math_view_dump" - external get_width : [>`math_view] obj -> int = - "ml_gtk_math_view_get_width" - external get_height : [>`math_view] obj -> int = - "ml_gtk_math_view_get_height" - external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit = - "ml_gtk_math_view_set_adjustments" - external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj = - "ml_gtk_math_view_get_hadjustment" - external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj = - "ml_gtk_math_view_get_vadjustment" - external get_buffer : [>`math_view] obj -> Gdk.pixmap = - "ml_gtk_math_view_get_buffer" - external get_frame : [>`math_view] obj -> [`frame] obj = - "ml_gtk_math_view_get_frame" - external set_font_size : [>`math_view] obj -> int -> unit = - "ml_gtk_math_view_set_font_size" - (*external get_top : [>`math_view] obj -> (int * int) = - "ml_gtk_math_view_get_top" - external set_top : [>`math_view] obj -> int -> int -> unit = - "ml_gtk_math_view_set_top"*) - - module Signals = struct - open GtkSignal - - let jump : ([>`math_view],_) t = - let marshal_jump f _ = - function - [GtkArgv.STRING (Some str)] -> f str - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_jump" - in - { name = "jump"; marshaller = marshal_jump } - - let clicked : ([>`math_view],_) t = - let marshal_clicked f _ = - function - [] -> f () - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked" - in - { name = "clicked"; marshaller = marshal_clicked } - end -end diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtk_mathview.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtk_mathview.ml deleted file mode 100644 index 745a1ba82..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtk_mathview.ml +++ /dev/null @@ -1 +0,0 @@ -type math_view = [`widget|`container|`bin|`eventbox|`math_view] diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/ml_gtk_mathview.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/ml_gtk_mathview.c deleted file mode 100644 index b16f68e50..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/ml_gtk_mathview.c +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include - -/* : Next row should be put in a .h of lablgtk. */ -#define GtkAdjustment_val(val) check_cast(GTK_ADJUSTMENT,val) - -#define GtkMathView_val(val) check_cast(GTK_MATH_VIEW,val) -ML_2 (gtk_math_view_new,GtkAdjustment_val, GtkAdjustment_val,Val_GtkWidget_sink) -ML_2 (gtk_math_view_load, GtkMathView_val, String_val, Val_bool) -ML_1 (gtk_math_view_unload, GtkMathView_val, Unit) -ML_1 (gtk_math_view_dump, GtkMathView_val, Unit) -ML_1 (gtk_math_view_get_width, GtkMathView_val, Val_int) -ML_1 (gtk_math_view_get_height, GtkMathView_val, Val_int) -//ML_3 (gtk_math_view_set_top, GtkMathView_val, Int_val, Int_val, Unit) -ML_3 (gtk_math_view_set_adjustments, GtkMathView_val, GtkAdjustment_val, GtkAdjustment_val, Unit) -ML_1 (gtk_math_view_get_hadjustment, GtkMathView_val, Val_GtkWidget) -ML_1 (gtk_math_view_get_vadjustment, GtkMathView_val, Val_GtkWidget) -ML_1 (gtk_math_view_get_buffer, GtkMathView_val, Val_GdkPixmap) -ML_1 (gtk_math_view_get_frame, GtkMathView_val, Val_GtkWidget) -ML_2 (gtk_math_view_set_font_size, GtkMathView_val, Int_val, Unit) - -/* -value ml_gtk_math_view_get_top (value arg1) -{ - CAMLparam1(arg1); - CAMLlocal1 (result); - int x, y; - gtk_math_view_get_top(GtkMathView_val (arg1), &x, &y); - result = alloc(2, 0); - Store_field(result, 0, Val_int(x)); - Store_field(result, 0, Val_int(y)); - CAMLreturn (result); -} -*/ - -value ml_gtk_math_view_get_selection (value arg1) -{ - const char *stringa; - stringa = gtk_math_view_get_selection (GtkMathView_val (arg1)); - return Val_option (stringa, Val_string); -} diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/Makefile deleted file mode 100644 index cc5bd50f5..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -LABLGTK_DIR = ../../lablgtk-20000829 -LABLGTK_MATHVIEW_DIR = .. -OCAMLC = ocamlc -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) -I mlmathview -OCAMLOPT = ocamlopt -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) -I mlmathview - -all: test -opt: test.opt - -test: test.cmo - $(OCAMLC) -custom -o test lablgtk.cma gtkInit.cmo \ - $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cma \ - test.cmo \ - -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \ - -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \ - -L/usr/local/lib/gtkmathview -lgtkmathview \ - $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o" - -test.opt: test.cmx - $(OCAMLOPT) -o test.opt lablgtk.cmxa gtkInit.cmx \ - $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cmxa \ - test.cmx \ - -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \ - -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \ - -L/usr/local/lib/gtkmathview -lgtkmathview \ - $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o" - -.SUFFIXES: .ml .mli .cmo .cmi .cmx -.ml.cmo: - $(OCAMLC) -c $< -.mli.cmi: - $(OCAMLC) -c $< -.ml.cmx: - $(OCAMLOPT) -c $< - -clean: - rm -f *.cm[iox] *.o test test.opt diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.ml deleted file mode 100644 index e914f4d6b..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.ml +++ /dev/null @@ -1,141 +0,0 @@ -(******************************************************************************) -(* Claudio Sacerdoti Coen *) -(* 25/09/2000 *) -(* *) -(* This is a simple test for the OCaml (LablGtk indeed) binding of the *) -(* MathView widget *) -(******************************************************************************) - -(* Callbacks *) -let jump s = - print_string ("jump: " ^ s ^ "\n") ; - flush stdout -;; - -let clicked () = - print_string "clicked: IT WORKS\n" ; - flush stdout -;; - -let load mathview () = - mathview#load "test.xml" ; - print_string "load: SEEMS TO WORK\n" ; - flush stdout -;; - -exception Ok;; -let get_selection mathview () = - let selection = - match mathview#get_selection with - None -> "NO SELECTION" - | Some s -> s - in - print_string ("get_selection: " ^ selection ^ "\n") ; - flush stdout -;; - -let unload mathview () = - mathview#unload ; - print_string "unload: SEEMS TO WORK\n" ; - flush stdout -;; - -let dump mathview () = - mathview#dump ; - print_string "dump: SEEMS TO WORK\n" ; - flush stdout -;; - -let get_width mathview () = - print_string ("get_width: " ^ string_of_int (mathview#get_width) ^ "\n") ; - flush stdout -;; - -let get_height mathview () = - print_string ("get_height: " ^ string_of_int (mathview#get_height) ^ "\n") ; - flush stdout -;; - -let set_adjustments mathview () = - let adj1 = GData.adjustment () in - let adj2 = GData.adjustment () in - mathview#set_adjustments adj1 adj2 ; - adj1#set_value ((adj1#lower +. adj1#upper) /. 2.0) ; - adj2#set_value ((adj2#lower +. adj2#upper) /. 2.0) ; - print_string "set_adjustments: SEEM TO WORK\n" ; - flush stdout -;; - -let get_hadjustment mathview () = - let adj = mathview#get_hadjustment in - adj#set_value ((adj#lower +. adj#upper) /. 2.0) ; - print_string "get_hadjustment: SEEM TO WORK\n" ; - flush stdout -;; - -let get_vadjustment mathview () = - let adj = mathview#get_vadjustment in - adj#set_value ((adj#lower +. adj#upper) /. 2.0) ; - print_string "get_vadjustment: SEEM TO WORK\n" ; - flush stdout -;; - -let get_buffer mathview () = - let buffer = mathview#get_buffer in - Gdk.Draw.rectangle buffer (Gdk.GC.create buffer) ~x:0 ~y:0 - ~width:50 ~height:50 ~filled:true () ; - print_string "get_buffer: SEEMS TO WORK (hint: force the widget redrawing)\n"; - flush stdout -;; - -let get_frame mathview () = - let frame = mathview#get_frame in - frame#set_shadow_type `NONE ; - print_string "get_frame: SEEMS TO WORK\n" ; - flush stdout -;; - -let set_font_size mathview () = - mathview#set_font_size 24 ; - print_string "set_font_size: FONT IS NOW 24\n" ; - flush stdout -;; - -(* Widget creation *) -let main_window = GWindow.window ~title:"GtkMathView test" () in -let vbox = GPack.vbox ~packing:main_window#add () in -let sw = GBin.scrolled_window ~width:50 ~height:50 ~packing:vbox#pack () in -(*let mathview = GMathView.math_view ~packing:sw#add_with_viewport ~width:50 ~height:50 () in*) -let mathview = GMathView.math_view ~packing:sw#add ~width:50 ~height:50 () in -let hbox = GPack.hbox ~packing:vbox#pack () in -let button_load = GButton.button ~label:"load" ~packing:hbox#pack () in -let button_get_selection = GButton.button ~label:"get_selection" ~packing:hbox#pack () in -let button_unload = GButton.button ~label:"unload" ~packing:hbox#pack () in -let button_dump = GButton.button ~label:"dump" ~packing:hbox#pack () in -let button_get_width = GButton.button ~label:"get_width" ~packing:hbox#pack () in -let button_get_height = GButton.button ~label:"get_height" ~packing:hbox#pack () in -let button_set_adjustments = GButton.button ~label:"set_adjustments" ~packing:hbox#pack () in -let button_get_hadjustment = GButton.button ~label:"get_hadjustment" ~packing:hbox#pack () in -let button_get_vadjustment = GButton.button ~label:"get_vadjustment" ~packing:hbox#pack () in -let button_get_buffer = GButton.button ~label:"get_buffer" ~packing:hbox#pack () in -let button_get_frame = GButton.button ~label:"get_frame" ~packing:hbox#pack () in -let button_set_font_size = GButton.button ~label:"set_font_size" ~packing:hbox#pack () in -(* Signals connection *) -ignore(button_load#connect#clicked (load mathview)) ; -ignore(button_get_selection#connect#clicked (get_selection mathview)) ; -ignore(button_unload#connect#clicked (unload mathview)) ; -ignore(button_dump#connect#clicked (dump mathview)) ; -ignore(button_get_width#connect#clicked (get_width mathview)) ; -ignore(button_get_height#connect#clicked (get_height mathview)) ; -ignore(button_set_adjustments#connect#clicked (set_adjustments mathview)) ; -ignore(button_get_hadjustment#connect#clicked (get_hadjustment mathview)) ; -ignore(button_get_vadjustment#connect#clicked (get_vadjustment mathview)) ; -ignore(button_get_buffer#connect#clicked (get_buffer mathview)) ; -ignore(button_get_frame#connect#clicked (get_frame mathview)) ; -ignore(button_set_font_size#connect#clicked (set_font_size mathview)) ; -ignore(mathview#connect#jump jump) ; -ignore(mathview#connect#clicked clicked) ; -(* Main Loop *) -main_window#show () ; -GMain.Main.main () -;; diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.xml deleted file mode 100644 index b0f8c1563..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - a - - x - - + - b - - - - x - 2 - - + - - p - - x - - + - q - - - - d - x - = - - - a2 - - - ln - - - ( - - x2 - + - - p - - x - - + - q - - ) - - - - + - - - - - 2 - - b - - - - - a - - p - - - - - - 4 - - q - - - - - p - 2 - - - - - - - arctg - - - - - 2 - - x - - + - p - - - - - 4 - - q - - - - - p - 2 - - - - - - - + - c - - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0-1.spec b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0-1.spec deleted file mode 100644 index 59a3298b3..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0-1.spec +++ /dev/null @@ -1,25 +0,0 @@ -Summary: GtkMathView : the binding for lablgtk of the GtkMathView widget -Name: lablgtk-20000829_gtkmathview -Version: 0.2.0 -Release: 1 -Copyright: LGPL -Group: Development/Libraries -Requires: lablgtk_20000829 gtkmathview -Source: www.cs.unibo.it:/~lpadovan/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0.tar.gz -%description -GtkMathView is the binding for lablgtk of the GtkMathView widget. - -%prep -%setup - -%build -make -make opt - -%install -make install - -%files -%doc COPYING - -/usr/lib/ocaml/lablgtk/mathview diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0.tar.gz b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0.tar.gz deleted file mode 100644 index 489f3c727d5e1f5ffd3eb5028820e03d4eb49dd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14050 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 o{d;5(()sS-0!~T^g9WXe&V*`O diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/Makefile deleted file mode 100644 index d5a1685d2..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/Makefile +++ /dev/null @@ -1,107 +0,0 @@ -# Makefile for lablgtk_mathview. - -LABLGTKDIR = /usr/lib/ocaml/lablgtk -MINIDOMDIR = ./minidom -MLFLAGS += -I $(LABLGTKDIR) -I $(MINIDOMDIR) - -TARGETS = ml_gtk_mathview.o lablgtkmathview.cma - -all: Minidom $(TARGETS) - -opt: Minidom.opt lablgtkmathviewopt - -Minidom: - cd minidom ; make - -Minidom.opt: - cd minidom ; make opt - -configure: - @rm -f config.make - @$(MAKE) --no-print-directory -f configure.mk - -depend: - @rm -f .depend - @$(MAKE) --no-print-directory -f configure.mk .depend - -.depend config.make: - @$(MAKE) --no-print-directory -f configure.mk - -COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -include config.make - -INSTALLDIR = $(LIBDIR)/lablgtk/mathview - -MLLIBS = lablgtkmathview.cma -CLIBS = -MLLINK = unix.cma str.cma - -ifdef DEBUG -CFLAGS = -g $(GTKCFLAGS) -MLLINK += -cclib -lcamlrund -MLFLAGS += -g -else -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -endif - -THFLAGS = -thread -THLINK = unix.cma threads.cma - -ifdef USE_CC -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -endif - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.c.o: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< -.var.h: - ./var2def < $< > $@ -.var.c: - ./var2conv < $< > $@ - -# Targets -COBJS = ml_gtk_mathview.o -MLOBJS = gtk_mathview.cmo gtkMathView.cmo gMathView.cmo -ALLOBJS = $(MLOBJS) - -lablgtkmathviewopt: $(CLIBS) $(MLLIBS:.cma=.cmxa) - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR) - if test -f *.mli ; then cp *.mli $(INSTALLDIR) ; fi - cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR) - cp $(MLLIBS) $(INSTALLDIR) - cp $(COBJS) $(INSTALLDIR) - if test ! -z "$(CLIBS)" ; then cp $(CLIBS) $(INSTALLDIR) ; fi - if test -f lablgtkmathview.cmxa; then \ - cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \ - $(INSTALLDIR); fi - cd minidom ; make install - -lablgtkmathview.cma: $(MLOBJS) - $(LINKER) -a -custom -o $@ $(MLOBJS) $(GTKLIBS) $(GTKMATHVIEWLIBS) -lablgtkmathview.cmxa: $(MLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) $(GTKLIBS) $(GTKMATHVIEWLIBS) - -ml_gtk.o: $(LABLGTKDIR)/gtk_tags.c $(LABLGTKDIR)/gtk_tags.h \ - $(LABLGTKDIR)/ml_gtk.h $(LABLGTKDIR)/ml_gdk.h $(LABLGTKDIR)/wrappers.h - -clean: - rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS) - cd minidom ; make clean - -include .depend diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/configure.mk b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/configure.mk deleted file mode 100644 index c5fd71121..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/configure.mk +++ /dev/null @@ -1,53 +0,0 @@ -# makefile for configuring lablGTK_mathview - -# Default compilers -CAMLC = ocamlc -CAMLOPT = ocamlopt - -# Default installation directories -BINDIR = `$(GETBINDIR)` -INSTALLDIR = $(LIBDIR)/lablgtk/mathview - -# Autoconf -GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//' -LIBDIR = `$(GETLIBDIR)` -GETBINDIR = $(GETLIBDIR) | sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|' -GETRANLIB = which ranlib 2>/dev/null | sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/' - -ifdef USE_GNOME -GTKGETCFLAGS = gtk-config --cflags`" -I"`gnome-config --includedir" "`xml-config --cflags`" "`gtkmathview-config --cflags -GNOMELIBS = `gnome-config --libs gtkxmhtml` -else -GTKGETCFLAGS = gtk-config --cflags`" "`xml-config --cflags`" "`gtkmathview-config --cflags -endif - -GTKGETLIBS = gtk-config --libs - -configure: .depend config.make - -.depend: - ocamldep *.ml *.mli > .depend - -config.make: - @echo CAMLC=$(CAMLC) > config.make - @echo CAMLOPT=$(CAMLOPT) >> config.make - @echo USE_GL=$(USE_GL) >> config.make - @echo USE_GNOME=$(USE_GNOME) >> config.make - @echo USE_CC=$(USE_CC) >> config.make - @echo DEBUG=$(DEBUG) >> config.make - @echo CC=$(CC) >> config.make - @echo RANLIB=`$(GETRANLIB)` >> config.make - @echo LIBDIR=$(LIBDIR) >> config.make - @echo BINDIR=`$(GETBINDIR)` >> config.make - @echo INSTALLDIR=$(INSTALLDIR) >> config.make - @echo GTKCFLAGS=`$(GTKGETCFLAGS)` -I/usr/lib/ocaml/lablgtk >> config.make - @echo GTKLIBS=`$(GTKGETLIBS)` | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - # - echo GTKMATHVIEWLIBS="-ccopt \""`gtkmathview-config --libs`"\"" >> config.make - # - @echo GNOMELIBS=$(GNOMELIBS) | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - cat config.make diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gMathView.ml deleted file mode 100644 index 87f0d5035..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gMathView.ml +++ /dev/null @@ -1,64 +0,0 @@ -open Gaux -open Gtk -open Gtk_mathview -open GtkBase -open GtkMathView -open GObj - -exception ErrorLoadingFile of string;; -exception ErrorWritingFile of string;; - -class math_view_signals obj = object - inherit GContainer.container_signals obj - method clicked = GtkSignal.connect ~sgn:MathView.Signals.clicked obj ~after - method jump = GtkSignal.connect ~sgn:MathView.Signals.jump obj ~after - method selection_changed = - GtkSignal.connect ~sgn:MathView.Signals.selection_changed obj ~after -end - -class math_view obj = object - inherit GContainer.container (obj : Gtk_mathview.math_view obj) - method connect = new math_view_signals obj - method load ~filename = - if not (MathView.load obj ~filename) then raise (ErrorLoadingFile filename) - method unload = MathView.unload obj - method get_selection = MathView.get_selection obj - method set_selection = MathView.set_selection obj - method get_width = MathView.get_width obj - method get_height = MathView.get_height obj - method get_top = MathView.get_top obj - method set_top = MathView.set_top obj - method set_adjustments = - fun adj1 adj2 -> - MathView.set_adjustments obj (GData.as_adjustment adj1) - (GData.as_adjustment adj2) - method get_hadjustment = new GData.adjustment (MathView.get_hadjustment obj) - method get_vadjustment = new GData.adjustment (MathView.get_vadjustment obj) - method get_buffer = MathView.get_buffer obj - method get_frame = new GBin.frame (MathView.get_frame obj) - method set_font_size = MathView.set_font_size obj - method get_font_size = MathView.get_font_size obj - method set_anti_aliasing = MathView.set_anti_aliasing obj - method get_anti_aliasing = MathView.get_anti_aliasing obj - method set_kerning = MathView.set_kerning obj - method get_kerning = MathView.get_kerning obj - method set_log_verbosity = MathView.set_log_verbosity obj - method get_log_verbosity = MathView.get_log_verbosity obj - method export_to_postscript ~filename = - if not (MathView.export_to_postscript obj ~filename) then - raise (ErrorWritingFile filename) -end - -let math_view ?adjustmenth ?adjustmentv ?(use_t1_lib=false) ?border_width - ?width ?height ?packing ?show () -= - let w = - MathView.create - ?adjustmenth:(may_map ~f:GData.as_adjustment adjustmenth) - ?adjustmentv:(may_map ~f:GData.as_adjustment adjustmentv) - ?use_t1_lib - () - in - Container.set w ?border_width ?width ?height; - pack_return (new math_view w) ~packing ~show -;; diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtkMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtkMathView.ml deleted file mode 100644 index 97ae38e32..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtkMathView.ml +++ /dev/null @@ -1,93 +0,0 @@ -open Gtk -open Gtk_mathview -open Tags -open GtkBase -open Gpointer - -external mDOMNode_of_boxed_option : - Gpointer.boxed option -> Minidom.mDOMNode = - "ml_gtk_math_view_mDOMNode_of_bodex_option" - -external mDOMNode_option_of_boxed_option : - Gpointer.boxed option -> Minidom.mDOMNode option = - "ml_gtk_math_view_mDOMNode_option_of_bodex_option" - -module MathView = struct - let cast w : math_view obj = Object.try_cast w "GtkMathView" - external create : Gtk.adjustment optobj -> Gtk.adjustment optobj -> bool -> - math_view obj = "ml_gtk_math_view_new" - let create ~adjustmenth ~adjustmentv ~use_t1_lib () = - create (optboxed adjustmenth) (optboxed adjustmentv) use_t1_lib - external load : [>`math_view] obj -> filename:string -> bool = - "ml_gtk_math_view_load" - external unload : [>`math_view] obj -> unit = - "ml_gtk_math_view_unload" - external get_selection : [>`math_view] obj -> Minidom.mDOMNode option = - "ml_gtk_math_view_get_selection" - external set_selection : [>`math_view] obj -> Minidom.mDOMNode option -> unit= - "ml_gtk_math_view_set_selection" - external get_width : [>`math_view] obj -> int = - "ml_gtk_math_view_get_width" - external get_height : [>`math_view] obj -> int = - "ml_gtk_math_view_get_height" - external get_top : [>`math_view] obj -> (int * int) = - "ml_gtk_math_view_get_top" - external set_top : [>`math_view] obj -> int -> int -> unit = - "ml_gtk_math_view_set_top" - external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit = - "ml_gtk_math_view_set_adjustments" - external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj = - "ml_gtk_math_view_get_hadjustment" - external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj = - "ml_gtk_math_view_get_vadjustment" - external get_buffer : [>`math_view] obj -> Gdk.pixmap = - "ml_gtk_math_view_get_buffer" - external get_frame : [>`math_view] obj -> [`frame] obj = - "ml_gtk_math_view_get_frame" - external set_font_size : [>`math_view] obj -> int -> unit = - "ml_gtk_math_view_set_font_size" - external get_font_size : [>`math_view] obj -> int = - "ml_gtk_math_view_get_font_size" - external set_anti_aliasing : [>`math_view] obj -> bool -> unit = - "ml_gtk_math_view_set_anti_aliasing" - external get_anti_aliasing : [>`math_view] obj -> bool = - "ml_gtk_math_view_get_anti_aliasing" - external set_kerning : [>`math_view] obj -> bool -> unit = - "ml_gtk_math_view_set_kerning" - external get_kerning : [>`math_view] obj -> bool = - "ml_gtk_math_view_get_kerning" - external set_log_verbosity : [>`math_view] obj -> int -> unit = - "ml_gtk_math_view_set_log_verbosity" - external get_log_verbosity : [>`math_view] obj -> int = - "ml_gtk_math_view_get_log_verbosity" - external export_to_postscript : [>`math_view] obj -> filename:string -> bool = - "ml_gtk_math_view_export_to_postscript" - - module Signals = struct - open GtkSignal - - let clicked : ([>`math_view],_) t = - let marshal_clicked f _ = - function - [GtkArgv.POINTER node] -> f (mDOMNode_of_boxed_option node) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked" - in - { name = "clicked"; marshaller = marshal_clicked } - - let jump : ([>`math_view],_) t = - let marshal_jump f _ = - function - [GtkArgv.POINTER node] -> f (mDOMNode_of_boxed_option node) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_jump" - in - { name = "jump"; marshaller = marshal_jump } - - let selection_changed : ([>`math_view],_) t = - let marshal_selection_changed f _ = - function - [GtkArgv.POINTER node] -> f (mDOMNode_option_of_boxed_option node) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_selection_changed" - in - { name = "selection_changed"; marshaller = marshal_selection_changed } - end -end diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtk_mathview.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtk_mathview.ml deleted file mode 100644 index 745a1ba82..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtk_mathview.ml +++ /dev/null @@ -1 +0,0 @@ -type math_view = [`widget|`container|`bin|`eventbox|`math_view] diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/.cvsignore deleted file mode 100644 index 84bdd8eff..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmi *.cmo *.cmx test test.opt diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/Makefile deleted file mode 100644 index 7463870b8..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -LIBDIR = /usr/lib/ocaml -INSTALLDIR = $(LIBDIR)/lablgtk/mathview/minidom -OBJECTS = minidom.cmi minidom.cmo minidom.cmx minidom.mli ml_minidom.h \ - ml_minidom.o minidom.o - -all: test - -opt: test.opt - -ml_minidom.o: ml_minidom.c - gcc -c -I/usr/lib/ocaml/caml/ `glib-config --cflags` `xml-config --cflags` `gtkmathview-config --cflags` $< - -minidom.cmi: minidom.mli - ocamlc -c $< - -minidom.cmo: minidom.ml minidom.cmi - ocamlc -c $< - -minidom.cmx: minidom.ml minidom.cmi - ocamlopt -c $< - -test.cmo: test.ml minidom.cmo - ocamlc -c test.ml - -test.cmx: test.ml minidom.cmx - ocamlopt -c test.ml - -test: test.cmo minidom.cmo ml_minidom.o - ocamlc -custom -o test minidom.cmo test.cmo ml_minidom.o \ - -cclib "`xml-config --libs`" -cclib "`glib-config --libs`" \ - -cclib "`gtkmathview-config --libs`" - -test.opt: test.cmx minidom.cmx ml_minidom.o - ocamlopt -o test.opt minidom.cmx test.cmx ml_minidom.o \ - -cclib "`xml-config --libs`" -cclib "`glib-config --libs`" \ - -cclib "`gtkmathview-config --libs`" - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(OBJECTS) $(INSTALLDIR) - -clean: - rm -f *.o *.cm? test test.opt diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.ml deleted file mode 100644 index 31e677b3f..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.ml +++ /dev/null @@ -1,61 +0,0 @@ - -type mDOMString -type mDOMDoc -type mDOMNode -type mDOMAttr -type mDOMEntity - -external string_of_mDOMString : mDOMString -> string = "ml_string_of_mDOMString" -external mDOMString_of_string : string -> mDOMString = "ml_mDOMString_of_string" -external mDOMString_eq : string -> string -> bool = "ml_mDOMString_eq" - -external doc_load : string -> mDOMDoc = "ml_doc_load" -external doc_unload : mDOMDoc -> unit = "ml_doc_unload" - -external doc_new : mDOMString -> mDOMDoc = "ml_doc_new" -external doc_get_root_node : mDOMDoc -> mDOMNode = "ml_doc_get_root_node" - -external doc_add_entity : mDOMDoc -> mDOMString -> mDOMString -> mDOMEntity = "ml_doc_add_entity" -external doc_get_entity : mDOMDoc -> mDOMString -> mDOMEntity option = "ml_doc_get_entity" -external doc_get_predefined_entity : mDOMDoc -> mDOMString -> mDOMEntity option = "ml_doc_get_predefined_entity" -external entity_get_content : mDOMEntity -> mDOMString = "ml_entity_get_content" - -external node_is_text : mDOMNode -> bool = "ml_node_is_text" -external node_is_element : mDOMNode -> bool = "ml_node_is_element" -external node_is_blank : mDOMNode -> bool = "ml_node_is_blank" -external node_is_entity_ref : mDOMNode -> bool = "ml_node_is_entity_ref" -external node_get_type : mDOMNode -> int = "ml_node_get_type" -external node_get_name : mDOMNode -> mDOMString option = "ml_node_get_name" -external node_get_ns_uri : mDOMNode -> mDOMString option = "ml_node_get_ns_uri" -external node_get_attribute : mDOMNode -> mDOMString -> mDOMString option = "ml_node_get_attribute" -external node_get_attribute_ns : mDOMNode -> mDOMString -> mDOMString -> mDOMString option = "ml_node_get_attribute_ns" -external node_get_content : mDOMNode -> mDOMString option = "ml_node_get_content" -external node_get_parent : mDOMNode -> mDOMNode option = "ml_node_get_parent" -external node_get_prev_sibling : mDOMNode -> mDOMNode option = "ml_node_get_prev_sibling" -external node_get_next_sibling : mDOMNode -> mDOMNode option = "ml_node_get_next_sibling" -external node_get_first_child : mDOMNode -> mDOMNode option = "ml_node_get_first_child" -external node_get_first_attribute : mDOMNode -> mDOMAttr option = "ml_node_get_first_attribute" -external node_is_first : mDOMNode -> bool = "ml_node_is_first" -external node_is_last : mDOMNode -> bool = "ml_node_is_last" - -external attr_get_name : mDOMAttr -> mDOMString option = "ml_attr_get_name" -external attr_get_ns_uri : mDOMAttr -> mDOMString option = "ml_attr_get_ns_uri" -external attr_get_value : mDOMAttr -> mDOMString option = "ml_attr_get_value" -external attr_get_prev_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_prev_sibling" -external attr_get_next_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_next_sibling" -external attr_get_parent : mDOMAttr -> mDOMNode option = "ml_attr_get_parent" - -let rec node_list_of_node_first = - function None -> [] - | Some node -> node :: (node_list_of_node_first (node_get_next_sibling node)) - -let rec attr_list_of_attr_first = - function None -> [] - | Some attr -> attr :: (attr_list_of_attr_first (attr_get_next_sibling attr)) - -let node_get_children node = - (node_list_of_node_first (node_get_first_child node)) - -let node_get_attributes node = - (attr_list_of_attr_first (node_get_first_attribute node)) - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.mli b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.mli deleted file mode 100644 index 0b655955b..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.mli +++ /dev/null @@ -1,50 +0,0 @@ - -type mDOMString -type mDOMDoc -type mDOMNode -type mDOMAttr -type mDOMEntity - -external string_of_mDOMString : mDOMString -> string = "ml_string_of_mDOMString" -external mDOMString_of_string : string -> mDOMString = "ml_mDOMString_of_string" -external mDOMString_eq : string -> string -> bool = "ml_mDOMString_eq" - -external doc_load : string -> mDOMDoc = "ml_doc_load" -external doc_unload : mDOMDoc -> unit = "ml_doc_unload" - -external doc_new : mDOMString -> mDOMDoc = "ml_doc_new" -external doc_get_root_node : mDOMDoc -> mDOMNode = "ml_doc_get_root_node" - -external doc_add_entity : doc:mDOMDoc -> name:mDOMString -> content:mDOMString -> mDOMEntity = "ml_doc_add_entity" -external doc_get_entity : doc:mDOMDoc -> name:mDOMString -> mDOMEntity option = "ml_doc_get_entity" -external doc_get_predefined_entity : doc:mDOMDoc -> name:mDOMString -> mDOMEntity option = "ml_doc_get_predefined_entity" -external entity_get_content : mDOMEntity -> mDOMString = "ml_entity_get_content" - -external node_is_text : mDOMNode -> bool = "ml_node_is_text" -external node_is_element : mDOMNode -> bool = "ml_node_is_element" -external node_is_blank : mDOMNode -> bool = "ml_node_is_blank" -external node_is_entity_ref : mDOMNode -> bool = "ml_node_is_entity_ref" -external node_get_type : mDOMNode -> int = "ml_node_get_type" -external node_get_name : mDOMNode -> mDOMString option = "ml_node_get_name" -external node_get_ns_uri : mDOMNode -> mDOMString option = "ml_node_get_ns_uri" -external node_get_attribute : node:mDOMNode -> name:mDOMString -> mDOMString option = "ml_node_get_attribute" -external node_get_attribute_ns : node:mDOMNode -> name:mDOMString -> ns_uri:mDOMString -> mDOMString option = "ml_node_get_attribute_ns" -external node_get_content : mDOMNode -> mDOMString option = "ml_node_get_content" -external node_get_parent : mDOMNode -> mDOMNode option = "ml_node_get_parent" -external node_get_prev_sibling : mDOMNode -> mDOMNode option = "ml_node_get_prev_sibling" -external node_get_next_sibling : mDOMNode -> mDOMNode option = "ml_node_get_next_sibling" -external node_get_first_child : mDOMNode -> mDOMNode option = "ml_node_get_first_child" -external node_get_first_attribute : mDOMNode -> mDOMAttr option = "ml_node_get_first_attribute" -external node_is_first : mDOMNode -> bool = "ml_node_is_first" -external node_is_last : mDOMNode -> bool = "ml_node_is_last" - -external attr_get_name : mDOMAttr -> mDOMString option = "ml_attr_get_name" -external attr_get_ns_uri : mDOMAttr -> mDOMString option = "ml_attr_get_ns_uri" -external attr_get_value : mDOMAttr -> mDOMString option = "ml_attr_get_value" -external attr_get_prev_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_prev_sibling" -external attr_get_next_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_next_sibling" -external attr_get_parent : mDOMAttr -> mDOMNode option = "ml_attr_get_parent" - -val node_get_children : mDOMNode -> mDOMNode list -val node_get_attributes : mDOMNode -> mDOMAttr list - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.c deleted file mode 100644 index 10626143c..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.c +++ /dev/null @@ -1,288 +0,0 @@ - -#include -#include -#include - -#include "minidom.h" - -#define Val_ptr(p) ((value) (p)) -#define Val_option(p,f) ((p != NULL) ? ml_some(f(p)) : Val_unit) -#define Val_mDOMString(s) (copy_string((char*) (s))) -#define mDOMString_val(v) ((mDOMStringRef) String_val(v)) - -static value -ml_some(value v) -{ - CAMLparam1(v); - value ret = alloc_small(1,0); - Field(ret,0) = v; - CAMLreturn(ret); -} - -value -ml_string_of_mDOMString(value s) -{ - CAMLparam1(s); - CAMLreturn(s); -} - -value -ml_mDOMString_of_string(value s) -{ - CAMLparam1(s); - CAMLreturn(s); -} - -value -ml_doc_load(value file_name) -{ - mDOMDocRef doc_ref; - - CAMLparam1(file_name); - - doc_ref = mdom_load(String_val(file_name), FALSE, NULL); - if (doc_ref == NULL) failwith("minidom: could not load document"); - - CAMLreturn((value) doc_ref); -} - -value -ml_doc_unload(value doc) -{ - CAMLparam1(doc); - - mdom_unload((mDOMDocRef) doc); - - CAMLreturn(Val_unit); -} - -value -ml_doc_new(value s) -{ - mDOMDocRef doc_ref; - - CAMLparam1(s); - - doc_ref = mdom_doc_new(mDOMString_val(s)); - if (doc_ref == NULL) failwith("minidom: could not create new document"); - - CAMLreturn((value) doc_ref); -} - - -value -ml_doc_get_root_node(value doc) -{ - mDOMNodeRef root; - - CAMLparam1(doc); - root = mdom_doc_get_root_node((mDOMDocRef) doc); - if (root == NULL) failwith("minidom: document has no root node!"); - - CAMLreturn((value) root); -} - -value -ml_doc_add_entity(value doc, value name, value content) -{ - mDOMEntityRef ent; - - CAMLparam3(doc, name, content); - ent = mdom_doc_add_entity((mDOMDocRef) doc, mDOMString_val(name), mDOMString_val(content)); - if (ent == NULL) failwith("minidom: could not add entity"); - - CAMLreturn((value) ent); -} - -value -ml_doc_get_entity(value doc, value name) -{ - mDOMEntityRef ent; - - CAMLparam2(doc, name); - ent = mdom_doc_get_entity((mDOMDocRef) doc, mDOMString_val(name)); - - CAMLreturn(Val_option(ent, Val_ptr)); -} - -value -ml_doc_get_predefined_entity(value name) -{ - mDOMEntityRef ent; - - CAMLparam1(name); - ent = mdom_get_predefined_entity(mDOMString_val(name)); - - CAMLreturn(Val_option(ent, Val_ptr)); -} - -value -ml_entity_get_content(value ent) -{ - CAMLparam1(ent); - CAMLreturn(Val_mDOMString(mdom_entity_get_content((mDOMEntityRef) ent))); -} - -value -ml_node_is_text(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_text((mDOMNodeRef) node))); -} - -value -ml_node_is_element(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_element((mDOMNodeRef) node))); -} - -value -ml_node_is_blank(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_blank((mDOMNodeRef) node))); -} - -value -ml_node_is_entity_ref(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_entity_ref((mDOMNodeRef) node))); -} - -value -ml_node_get_type(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_int(mdom_node_get_type((mDOMNodeRef) node))); -} - -value -ml_node_get_name(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_name((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_content(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_content((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_ns_uri(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_ns_uri((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_attribute(value node, value name) -{ - CAMLparam2(node,name); - CAMLreturn(Val_option(mdom_node_get_attribute((mDOMNodeRef) node, String_val(name)), Val_mDOMString)); -} - -value -ml_node_get_attribute_ns(value node, value name, value ns_uri) -{ - CAMLparam2(node,name); - CAMLreturn(Val_option(mdom_node_get_attribute_ns((mDOMNodeRef) node, - String_val(name), - String_val(ns_uri)), Val_mDOMString)); -} - -value -ml_node_get_parent(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_parent((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_prev_sibling(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_prev_sibling((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_next_sibling(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_next_sibling((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_first_child(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_first_child((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_first_attribute(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_first_attribute((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_is_first(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_first((mDOMNodeRef) node))); -} - -value -ml_node_is_last(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_last((mDOMNodeRef) node))); -} - -value -ml_attr_get_name(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_name((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_ns_uri(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_ns_uri((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_value(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_value((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_prev_sibling(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_prev_sibling((mDOMAttrRef) attr), Val_ptr)); -} - -value -ml_attr_get_next_sibling(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_next_sibling((mDOMAttrRef) attr), Val_ptr)); -} - -value -ml_attr_get_parent(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_parent((mDOMAttrRef) attr), Val_ptr)); -} - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.h b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.h deleted file mode 100644 index cf1be3a4a..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.h +++ /dev/null @@ -1,10 +0,0 @@ -#define Val_ptr(p) ((value) (p)) -#define Val_option(p,f) ((p != NULL) ? ml_some(f(p)) : Val_unit) -#define Val_mDOMString(s) (copy_string((char*) (s))) -#define mDOMString_val(v) ((mDOMStringRef) String_val(v)) -#define mDOMNode_val(v) ((mDOMNodeRef) v) - -#define mDOMNode_option_mDOMNodeRef(p) (((p) != NULL) ? ml_some((value) (p)) : Val_unit) -#define mDOMNodeRef_mDOMNode_option(v) ((v == Val_unit) ? NULL : (mDOMNodeRef)Field((v),0)) -#define Val_mDOMNodeRef(p) (mDOMNode_option_mDOMNodeRef(p)) -#define mDOMNodeRef_val(v) (mDOMNodeRef_mDOMNode_option(v)) diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.ml deleted file mode 100644 index 3c7a092e9..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.ml +++ /dev/null @@ -1,84 +0,0 @@ - -let doc = Minidom.doc_load "test.xml" - -let root = Minidom.doc_get_root_node doc - -let check_attribute_ns attr = - Printf.printf "\n\n"; - let ns_uri = Minidom.attr_get_ns_uri attr - and attr_name = Minidom.attr_get_name attr - and attr_value = Minidom.attr_get_value attr - and parent = Minidom.attr_get_parent attr - in - match parent,ns_uri,attr_name,attr_value with - Some parent_node,Some uri,Some attribute_name,Some attribute_value -> - let attr_value = Minidom.node_get_attribute_ns parent_node attribute_name uri - in begin - match attr_value with - Some attr1 -> - Printf.printf "found the attribute with ns %s (was %s)\n" - (Minidom.string_of_mDOMString attr1) (Minidom.string_of_mDOMString attribute_value) - | None -> - Printf.printf "attribute not found (uri was %s)!!!!\n" (Minidom.string_of_mDOMString uri) - end - | _ -> - Printf.printf "parent_node == NULL || uri == NULL || attribute_name == NULL || attribute_value == NULL\n" -;; - -let print_attribute attr = - check_attribute_ns attr; - let ns_uri = Minidom.attr_get_ns_uri attr - in - begin - match ns_uri with - Some uri -> Printf.printf " %s:" (Minidom.string_of_mDOMString uri); - | None -> () - end; - match ((Minidom.attr_get_name attr), (Minidom.attr_get_value attr)) with - (Some attr_name, Some attr_value) -> - Printf.printf " %s=\"%s\"" (Minidom.string_of_mDOMString attr_name) (Minidom.string_of_mDOMString attr_value) - | (Some attr_name, _) -> - Printf.printf " ??? attribute %s has no value !!!" (Minidom.string_of_mDOMString attr_name) - | (_,_) -> - Printf.printf " ??? very strange attribute !!!" -;; - -let rec print_node n node = - if Minidom.node_is_blank node then () - else if Minidom.node_is_element node then begin - match Minidom.node_get_name node with - Some node_name -> - begin - let children = Minidom.node_get_children node - and attributes = Minidom.node_get_attributes node - and ns_uri = Minidom.node_get_ns_uri node - and is_first,is_last = (Minidom.node_is_first node), (Minidom.node_is_last node) - in - for i = 1 to n do print_char ' ' done; - Printf.printf "<"; - begin - match ns_uri with - Some uri -> Printf.printf "%s:" (Minidom.string_of_mDOMString uri) - | None -> () - end; - Printf.printf "%s" (Minidom.string_of_mDOMString node_name); - List.iter print_attribute attributes; - Printf.printf ">\n"; - List.iter (print_node (n + 2)) children; - for i = 1 to n do print_char ' ' done; - Printf.printf "\n" (Minidom.string_of_mDOMString node_name) - end - | None -> Printf.printf "??? this node has no name !!!\n" - end else if Minidom.node_is_text node then begin - match Minidom.node_get_content node with - Some node_content -> - for i = 1 to n do print_char ' ' done; - Printf.printf "%s\n" (Minidom.string_of_mDOMString node_content) - | None -> Printf.printf "??? this node has no content !!!\n" - end else begin - Printf.printf "don't know how to manage a node with type %d\n" (Minidom.node_get_type node) - end -;; - -print_node 0 root;; - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.xml deleted file mode 100644 index 83d2eef68..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.xml +++ /dev/null @@ -1,505 +0,0 @@ - - - - - - - - DEFINITION and_ind() OF TYPE - - - - - - - - __ - - - - - - - - ( - - - - - Π - A - : - - Prop - - - - - - - . - - - - - Π - B - : - - Prop - - - - - - - . - - - - - Π - P - : - - Prop - - - - - - - . - - - - - Π - f - : - - ( - A - - - ( - B - - P - ) - - ) - - - - - - - . - - Π - a - : - - ( - and - - _ - - A - - _ - - B - ) - - . - P - - - - - - - - - - - - - - - - - - - - - - - - - - - - :> - - Prop - - - - - - - - ) - - - - - - - - cast - - prod - - A - - - Prop - - - - - prod - - B - - - Prop - - - - - prod - - P - - - Prop - - - - - prod - - f - - - arrow - A - - arrow - B - P - - - - - - prod - - a - - - app - and - A - B - - - - P - - - - - - - Prop - - - - - - - - - - - AS - - - - - - - - __ - - - - - - - λ - A - : - - Prop - - - - - - - . - - - - - λ - B - : - - Prop - - - - - - - . - - - - - λ - P - : - - Prop - - - - - - - . - - - - - λ - f - : - - ( - A - - - ( - B - - P - ) - - ) - - - - - - - . - - - - - λ - a - : - - ( - and - - _ - - A - - _ - - B - ) - - - - - - - . - - < - P - > - CASES - - _ - - a - - _ - - OF - - ( - conj - - _ - - $1 - - _ - - $2 - ) - - - - ( - f - - _ - - $1 - - _ - - $2 - ) - - - _ - - END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A - - - Prop - - - - - - B - - - Prop - - - - - - P - - - Prop - - - - - - f - - - arrow - A - - arrow - B - P - - - - - - - a - - - app - and - A - B - - - - - mutcase - P - a - - app - conj - $1 - $2 - - - app - f - $1 - $2 - - - - - - - - - - - - - - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/ml_gtk_mathview.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/ml_gtk_mathview.c deleted file mode 100644 index 39f3d74c4..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/ml_gtk_mathview.c +++ /dev/null @@ -1,120 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include - -#include "minidom/ml_minidom.h" - -/* : Next row should be put in a .h of lablgtk. */ -#define GtkAdjustment_val(val) check_cast(GTK_ADJUSTMENT,val) - -#define GtkMathView_val(val) check_cast(GTK_MATH_VIEW,val) -ML_3 (gtk_math_view_new,GtkAdjustment_val, GtkAdjustment_val, Bool_val, Val_GtkWidget_sink) -ML_2 (gtk_math_view_load, GtkMathView_val, String_val, Val_bool) -ML_1 (gtk_math_view_unload, GtkMathView_val, Unit) -/*ML_1 (gtk_math_view_dump, GtkMathView_val, Unit)*/ -ML_1 (gtk_math_view_get_selection, GtkMathView_val, Val_mDOMNodeRef) -ML_2 (gtk_math_view_set_selection, GtkMathView_val, mDOMNodeRef_val, Unit) -ML_1 (gtk_math_view_get_width, GtkMathView_val, Val_int) -ML_1 (gtk_math_view_get_height, GtkMathView_val, Val_int) -ML_3 (gtk_math_view_set_top, GtkMathView_val, Int_val, Int_val, Unit) -ML_3 (gtk_math_view_set_adjustments, GtkMathView_val, GtkAdjustment_val, GtkAdjustment_val, Unit) -ML_1 (gtk_math_view_get_hadjustment, GtkMathView_val, Val_GtkWidget) -ML_1 (gtk_math_view_get_vadjustment, GtkMathView_val, Val_GtkWidget) -ML_1 (gtk_math_view_get_buffer, GtkMathView_val, Val_GdkPixmap) -ML_1 (gtk_math_view_get_frame, GtkMathView_val, Val_GtkWidget) -ML_2 (gtk_math_view_set_font_size, GtkMathView_val, Int_val, Unit) -ML_1 (gtk_math_view_get_font_size, GtkMathView_val, Val_int) -ML_2 (gtk_math_view_set_anti_aliasing, GtkMathView_val, Bool_val, Unit) -ML_1 (gtk_math_view_get_anti_aliasing, GtkMathView_val, Val_bool) -ML_2 (gtk_math_view_set_kerning, GtkMathView_val, Bool_val, Unit) -ML_1 (gtk_math_view_get_kerning, GtkMathView_val, Val_bool) -ML_2 (gtk_math_view_set_log_verbosity, GtkMathView_val, Int_val, Unit) -ML_1 (gtk_math_view_get_log_verbosity, GtkMathView_val, Val_int) - - -value ml_gtk_math_view_export_to_postscript (value arg1, value arg2) -{ - CAMLparam1(arg1); - char *filename; - FILE *fd; - int res; - filename = String_val (arg2); - if ((fd = fopen(filename, "w"))) { - gtk_math_view_export_to_postscript (GtkMathView_val (arg1), fd); - fclose (fd); - res = 1; - } else { - fprintf(stderr, "Error opening file %s for writing\n", filename); - res = 0; - } - CAMLreturn (Val_bool(res)); -} - -value ml_gtk_math_view_get_top (value arg1) -{ - CAMLparam1(arg1); - CAMLlocal1 (result); - int x, y; - gtk_math_view_get_top(GtkMathView_val (arg1), &x, &y); - result = alloc(2, 0); - Store_field(result, 0, Val_int(x)); - Store_field(result, 0, Val_int(y)); - CAMLreturn (result); -} - - -value ml_gtk_math_view_mDOMNode_of_bodex_option (value arg1) -{ - CAMLparam1(arg1); - - mDOMNodeRef nr; - CAMLlocal1 (tmp); - CAMLlocal1 (optval); - CAMLlocal1 (res); - - if (arg1==Val_int(0)) { - assert(0); - } else { - tmp = Field(arg1, 0); - nr = (mDOMNodeRef) Field(tmp, 1); - } - optval = Val_mDOMNodeRef(nr); - if (optval==Val_int(0)) { - assert(0); - } else { - res = Field(optval, 0); - } - - CAMLreturn(res); -} - -value ml_gtk_math_view_mDOMNode_option_of_bodex_option (value arg1) -{ - CAMLparam1(arg1); - - mDOMNodeRef nr; - CAMLlocal1 (tmp); - - if (arg1==Val_int(0)) { - nr=NULL; - } else { - tmp = Field(arg1, 0); - nr = (mDOMNodeRef) Field(tmp, 1); - } - - CAMLreturn(Val_mDOMNodeRef(nr)); -} diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/.cvsignore deleted file mode 100644 index 1968614b7..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmo *.cmi *.cmx t1lib.log test test.opt test.ps test.o diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/Makefile deleted file mode 100644 index 1d5f5e1f3..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -LABLGTK_DIR = /usr/lib/ocaml/lablgtk -LABLGTK_MATHVIEW_DIR = .. -MINIDOM_DIR = ../minidom -OCAMLC = ocamlc -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) \ - -I $(MINIDOM_DIR) -I mlmathview -OCAMLOPT = ocamlopt -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) \ - -I $(MINIDOM_DIR) -I mlmathview - -all: test -opt: test.opt - -test: test.cmo - $(OCAMLC) -custom -o test lablgtk.cma gtkInit.cmo \ - $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cma \ - $(MINIDOM_DIR)/minidom.cmo \ - -cclib "$(MINIDOM_DIR)/ml_minidom.o" \ - test.cmo \ - -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \ - -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \ - -L/usr/local/lib/gtkmathview -lgtkmathview \ - $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o" - -test.opt: test.cmx - $(OCAMLOPT) -o test.opt lablgtk.cmxa gtkInit.cmx \ - $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cmxa \ - $(MINIDOM_DIR)/minidom.cmx \ - -cclib "$(MINIDOM_DIR)/ml_minidom.o" \ - test.cmx \ - -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \ - -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \ - -L/usr/local/lib/gtkmathview -lgtkmathview \ - $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o" - -.SUFFIXES: .ml .mli .cmo .cmi .cmx -.ml.cmo: - $(OCAMLC) -c $< -.mli.cmi: - $(OCAMLC) -c $< -.ml.cmx: - $(OCAMLOPT) -c $< - -clean: - rm -f *.cm[iox] *.o test test.opt t1lib.log diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/t1.config b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/t1.config deleted file mode 100644 index afb669e95..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/t1.config +++ /dev/null @@ -1,3 +0,0 @@ -ENCODING=. -AFM=/usr/share/texmf/fonts/afm/ -TYPE1=/usr/share/texmf/fonts/type1/bluesky/cm/:/usr/X11R6/lib/X11/fonts/Type1/:. diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.ml deleted file mode 100644 index af65d7485..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.ml +++ /dev/null @@ -1,278 +0,0 @@ -(******************************************************************************) -(* Claudio Sacerdoti Coen *) -(* 25/09/2000 *) -(* *) -(* This is a simple test for the OCaml (LablGtk indeed) binding of the *) -(* MathView widget *) -(******************************************************************************) - -(* Callbacks *) -let jump node = - let module M = Minidom in - print_string ("jump: " ^ - (match - M.node_get_attribute node - (M.mDOMString_of_string "href") - with - None -> "DOES NOT WORKS (if you have clicked on the hyperlink)!!!!!" - | Some s -> M.string_of_mDOMString s - ) ^ "\n"); - flush stdout -;; - -let selection_changed node = - let module M = Minidom in - print_string ("selection_changed: " ^ - (match node with - None -> "selection_changed on nothing" - | Some node -> - match M.node_get_name node with - None -> "selection_changed on a node without name" - | Some s -> "selection changed on " ^ M.string_of_mDOMString s - ) ^ "\n"); - flush stdout -;; - - -let clicked node = - let module M = Minidom in - print_string ("clicked: " ^ - (match M.node_get_name node with - None -> "Nothing clicked (???)" - | Some s -> M.string_of_mDOMString s ^ " clicked" - ) ^ "\n"); - flush stdout -;; - - -let activate_t1 mathview sw () = - sw#remove !mathview#coerce ; - mathview := - (GMathView.math_view ~packing:sw#add ~width:50 ~height:50 - ~use_t1_lib:true ()) ; - ignore(!mathview#connect#jump jump) ; - ignore(!mathview#connect#clicked clicked) ; - ignore(!mathview#connect#selection_changed selection_changed) ; - print_string "WIDGET RECREATED WITH T1 FONTS ACTIVATED\n" ; -;; - -let load mathview () = - !mathview#load "test.xml" ; - print_string "load: SEEMS TO WORK\n" ; - flush stdout -;; - -let get_selection mathview () = - let selection = - match !mathview#get_selection with - None -> "NO SELECTION" - | Some node -> - match Minidom.node_get_name node with - None -> "selection is on nothing" - | Some s -> "selection is on " ^ Minidom.string_of_mDOMString s - in - print_string ("get_selection: " ^ selection ^ "\n") ; - flush stdout -;; - -let set_selection mathview () = - begin - try - match !mathview#get_selection with - None -> raise Not_found - | Some node -> - match Minidom.node_get_parent node with - None -> raise Not_found - | Some node -> - !mathview#set_selection (Some node) ; - print_string "set_selection: SEEMS TO WORK\n" - with - Not_found -> - print_string "set_selection: YOU MUST PREVIOUSLY SELECT A NON-ROOT NODE" - end ; - flush stdout -;; - -let unload mathview () = - !mathview#unload ; - print_string "unload: SEEMS TO WORK\n" ; - flush stdout -;; - -let get_width mathview () = - print_string ("get_width: " ^ string_of_int (!mathview#get_width) ^ "\n") ; - flush stdout -;; - -let get_height mathview () = - print_string ("get_height: " ^ string_of_int (!mathview#get_height) ^ "\n") ; - flush stdout -;; - -let get_top mathview () = - let (x,y) = !mathview#get_top in - print_string ("get_top: ("^ string_of_int x ^ "," ^ string_of_int y ^ ")\n") ; - flush stdout -;; - -let set_top mathview () = - !mathview#set_top 0 0; - print_string "set_top: SEEM TO WORK\n" ; - flush stdout -;; - -let set_adjustments mathview () = - let adj1 = GData.adjustment () in - let adj2 = GData.adjustment () in - !mathview#set_adjustments adj1 adj2 ; - adj1#set_value ((adj1#lower +. adj1#upper) /. 2.0) ; - adj2#set_value ((adj2#lower +. adj2#upper) /. 2.0) ; - print_string "set_adjustments: SEEM TO WORK\n" ; - flush stdout -;; - -let get_hadjustment mathview () = - let adj = !mathview#get_hadjustment in - adj#set_value ((adj#lower +. adj#upper) /. 2.0) ; - print_string "get_hadjustment: SEEM TO WORK\n" ; - flush stdout -;; - -let get_vadjustment mathview () = - let adj = !mathview#get_vadjustment in - adj#set_value ((adj#lower +. adj#upper) /. 2.0) ; - print_string "get_vadjustment: SEEM TO WORK\n" ; - flush stdout -;; - -let get_buffer mathview () = - let buffer = !mathview#get_buffer in - Gdk.Draw.rectangle buffer (Gdk.GC.create buffer) ~x:0 ~y:0 - ~width:50 ~height:50 ~filled:true () ; - print_string "get_buffer: SEEMS TO WORK (hint: force the widget redrawing)\n"; - flush stdout -;; - -let get_frame mathview () = - let frame = !mathview#get_frame in - frame#set_shadow_type `NONE ; - print_string "get_frame: SEEMS TO WORK\n" ; - flush stdout -;; - -let set_font_size mathview () = - !mathview#set_font_size 24 ; - print_string "set_font_size: FONT IS NOW 24\n" ; - flush stdout -;; - -let get_font_size mathview () = - print_string ("get_font_size: " ^ string_of_int (!mathview#get_font_size) ^ "\n") ; - flush stdout -;; - -let set_anti_aliasing mathview () = - !mathview#set_anti_aliasing true ; - print_string "set_anti_aliasing: ON\n" ; - flush stdout -;; - -let get_anti_aliasing mathview () = - print_string ("get_anti_aliasing: " ^ - (match !mathview#get_anti_aliasing with true -> "ON" | false -> "OFF") ^ - "\n") ; - flush stdout -;; - -let set_kerning mathview () = - !mathview#set_kerning true ; - print_string "set_kerning: ON\n" ; - flush stdout -;; - -let get_kerning mathview () = - print_string ("get_kerning: " ^ - (match !mathview#get_kerning with true -> "ON" | false -> "OFF") ^ - "\n") ; - flush stdout -;; - -let set_log_verbosity mathview () = - !mathview#set_log_verbosity 3 ; - print_string "set_log_verbosity: NOW IS 3\n" ; - flush stdout -;; - -let get_log_verbosity mathview () = - print_string ("get_log_verbosity: " ^ - string_of_int !mathview#get_log_verbosity ^ - "\n") ; - flush stdout -;; - -let export_to_postscript mathview () = - !mathview#export_to_postscript "test.ps" ; - print_string "expor_to_postscript: SEEMS TO WORK (hint: look at test.ps)\n"; - flush stdout -;; - -(* Widget creation *) -let main_window = GWindow.window ~title:"GtkMathView test" () in -let vbox = GPack.vbox ~packing:main_window#add () in -let sw = GBin.scrolled_window ~width:50 ~height:50 ~packing:vbox#pack () in -let mathview= ref (GMathView.math_view ~packing:sw#add ~width:50 ~height:50 ()) in -let table = GPack.table ~rows:5 ~columns:5 ~packing:vbox#pack () in -let button_t1=GButton.button ~label:"activate t1 fonts" ~packing:(table#attach ~left:0 ~top:0) () in -let button_load = GButton.button ~label:"load" ~packing:(table#attach ~left:1 ~top:0) () in -let button_unload = GButton.button ~label:"unload" ~packing:(table#attach ~left:2 ~top:0) () in -let button_get_selection = GButton.button ~label:"get_selection" ~packing:(table#attach ~left:3 ~top:0) () in -let button_set_selection = GButton.button ~label:"set_selection" ~packing:(table#attach ~left:4 ~top:0) () in -let button_get_width = GButton.button ~label:"get_width" ~packing:(table#attach ~left:0 ~top:1) () in -let button_get_height = GButton.button ~label:"get_height" ~packing:(table#attach ~left:1 ~top:1) () in -let button_get_top = GButton.button ~label:"get_top" ~packing:(table#attach ~left:2 ~top:1) () in -let button_set_top = GButton.button ~label:"set_top" ~packing:(table#attach ~left:3 ~top:1) () in -let button_set_adjustments = GButton.button ~label:"set_adjustments" ~packing:(table#attach ~left:4 ~top:1) () in -let button_get_hadjustment = GButton.button ~label:"get_hadjustment" ~packing:(table#attach ~left:0 ~top:2) () in -let button_get_vadjustment = GButton.button ~label:"get_vadjustment" ~packing:(table#attach ~left:1 ~top:2) () in -let button_get_buffer = GButton.button ~label:"get_buffer" ~packing:(table#attach ~left:2 ~top:2) () in -let button_get_frame = GButton.button ~label:"get_frame" ~packing:(table#attach ~left:3 ~top:2) () in -let button_set_font_size = GButton.button ~label:"set_font_size" ~packing:(table#attach ~left:4 ~top:2) () in -let button_get_font_size = GButton.button ~label:"get_font_size" ~packing:(table#attach ~left:0 ~top:3) () in -let button_set_anti_aliasing = GButton.button ~label:"set_anti_aliasing" ~packing:(table#attach ~left:1 ~top:3) () in -let button_get_anti_aliasing = GButton.button ~label:"get_anti_aliasing" ~packing:(table#attach ~left:2 ~top:3) () in -let button_set_kerning = GButton.button ~label:"set_kerning" ~packing:(table#attach ~left:3 ~top:3) () in -let button_get_kerning = GButton.button ~label:"get_kerning" ~packing:(table#attach ~left:4 ~top:3) () in -let button_set_log_verbosity = GButton.button ~label:"set_log_verbosity" ~packing:(table#attach ~left:0 ~top:4) () in -let button_get_log_verbosity = GButton.button ~label:"get_log_verbosity" ~packing:(table#attach ~left:1 ~top:4) () in -let button_export_to_postscript = GButton.button ~label:"export_to_postscript" ~packing:(table#attach ~left:2 ~top:4) () in -(* Signals connection *) -ignore(button_t1#connect#clicked (activate_t1 mathview sw)) ; -ignore(button_load#connect#clicked (load mathview)) ; -ignore(button_unload#connect#clicked (unload mathview)) ; -ignore(button_get_selection#connect#clicked (get_selection mathview)) ; -ignore(button_set_selection#connect#clicked (set_selection mathview)) ; -ignore(button_get_width#connect#clicked (get_width mathview)) ; -ignore(button_get_height#connect#clicked (get_height mathview)) ; -ignore(button_get_top#connect#clicked (get_top mathview)) ; -ignore(button_set_top#connect#clicked (set_top mathview)) ; -ignore(button_set_adjustments#connect#clicked (set_adjustments mathview)) ; -ignore(button_get_hadjustment#connect#clicked (get_hadjustment mathview)) ; -ignore(button_get_vadjustment#connect#clicked (get_vadjustment mathview)) ; -ignore(button_get_buffer#connect#clicked (get_buffer mathview)) ; -ignore(button_get_frame#connect#clicked (get_frame mathview)) ; -ignore(button_set_font_size#connect#clicked (set_font_size mathview)) ; -ignore(button_get_font_size#connect#clicked (get_font_size mathview)) ; -ignore(button_set_anti_aliasing#connect#clicked (set_anti_aliasing mathview)) ; -ignore(button_get_anti_aliasing#connect#clicked (get_anti_aliasing mathview)) ; -ignore(button_set_kerning#connect#clicked (set_kerning mathview)) ; -ignore(button_get_kerning#connect#clicked (get_kerning mathview)) ; -ignore(button_set_log_verbosity#connect#clicked (set_log_verbosity mathview)) ; -ignore(button_get_log_verbosity#connect#clicked (get_log_verbosity mathview)) ; -ignore(button_export_to_postscript#connect#clicked (export_to_postscript mathview)) ; -ignore(!mathview#connect#jump jump) ; -ignore(!mathview#connect#clicked clicked) ; -ignore(!mathview#connect#selection_changed selection_changed) ; -(* Main Loop *) -main_window#show () ; -GMain.Main.main () -;; diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.xml deleted file mode 100644 index b0f8c1563..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - a - - x - - + - b - - - - x - 2 - - + - - p - - x - - + - q - - - - d - x - = - - - a2 - - - ln - - - ( - - x2 - + - - p - - x - - + - q - - ) - - - - + - - - - - 2 - - b - - - - - a - - p - - - - - - 4 - - q - - - - - p - 2 - - - - - - - arctg - - - - - 2 - - x - - + - p - - - - - 4 - - q - - - - - p - 2 - - - - - - - + - c - - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1-1.spec b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1-1.spec deleted file mode 100644 index f6381e9e1..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1-1.spec +++ /dev/null @@ -1,25 +0,0 @@ -Summary: GtkMathView : the binding for lablgtk of the GtkMathView widget -Name: lablgtk-20000829_gtkmathview -Version: 0.2.1 -Release: 1 -Copyright: LGPL -Group: Development/Libraries -Requires: lablgtk_20000829 gtkmathview -Source: www.cs.unibo.it:/~lpadovan/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1.tar.gz -%description -GtkMathView is the binding for lablgtk of the GtkMathView widget. - -%prep -%setup - -%build -make -make opt - -%install -make install - -%files -%doc COPYING - -/usr/lib/ocaml/lablgtk/mathview diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/.cvsignore deleted file mode 100644 index cd9e25037..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmi *.cmo *.cmx *.cma *.cmxa config.make diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/.depend b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/.depend deleted file mode 100644 index 600449bb8..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/.depend +++ /dev/null @@ -1,4 +0,0 @@ -gMathView.cmo: gtkMathView.cmo gtk_mathview.cmo -gMathView.cmx: gtkMathView.cmx gtk_mathview.cmx -gtkMathView.cmo: gtk_mathview.cmo -gtkMathView.cmx: gtk_mathview.cmx diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/COPYING b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/COPYING deleted file mode 100644 index 20b480a10..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/COPYING +++ /dev/null @@ -1,11 +0,0 @@ -This library is made available under the LGPL. -You should have got a copy of the LGPL with Objective Caml. -The LGPL applies to all the files in this directory, but not in -subdirectories. - -For the test subdirectory, there is no specific licensing policy, -but you may freely take inspiration from the code, and copy parts of -it in your application. - -Author: - Claudio Sacerdoti Coen diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/Makefile deleted file mode 100644 index b8adbb47b..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/Makefile +++ /dev/null @@ -1,109 +0,0 @@ -# Makefile for lablgtk_mathview. - -LABLGTKDIR = /usr/lib/ocaml/lablgtk -MINIDOMDIR = ./minidom -TESTDIR = ./test -MLFLAGS += -I $(LABLGTKDIR) -I $(MINIDOMDIR) - -TARGETS = ml_gtk_mathview.o lablgtkmathview.cma - -all: Minidom $(TARGETS) - -opt: Minidom.opt lablgtkmathviewopt - -Minidom: - cd $(MINIDOMDIR); make - -Minidom.opt: - cd $(MINIDOMDIR); make opt - -configure: - @rm -f config.make - @$(MAKE) --no-print-directory -f configure.mk - -depend: - @rm -f .depend - @$(MAKE) --no-print-directory -f configure.mk .depend - -.depend config.make: - @$(MAKE) --no-print-directory -f configure.mk - -COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -include config.make - -INSTALLDIR = $(LIBDIR)/lablgtk/mathview - -MLLIBS = lablgtkmathview.cma -CLIBS = -MLLINK = unix.cma str.cma - -ifdef DEBUG -CFLAGS = -g $(GTKCFLAGS) -MLLINK += -cclib -lcamlrund -MLFLAGS += -g -else -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -endif -CFLAGS += $(MINIDOMCFLAGS) $(GTKMATHVIEWCFLAGS) - -THFLAGS = -thread -THLINK = unix.cma threads.cma - -ifdef USE_CC -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -endif - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.c.o: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< -.var.h: - ./var2def < $< > $@ -.var.c: - ./var2conv < $< > $@ - -# Targets -COBJS = ml_gtk_mathview.o -MLOBJS = gtk_mathview.cmo gtkMathView.cmo gMathView.cmo -ALLOBJS = $(MLOBJS) - -lablgtkmathviewopt: $(CLIBS) $(MLLIBS:.cma=.cmxa) - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR) - if test -f *.mli ; then cp *.mli $(INSTALLDIR) ; fi - cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR) - cp $(MLLIBS) $(INSTALLDIR) - cp $(COBJS) $(INSTALLDIR) - if test ! -z "$(CLIBS)" ; then cp $(CLIBS) $(INSTALLDIR) ; fi - if test -f lablgtkmathview.cmxa; then \ - cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \ - $(INSTALLDIR); fi - -lablgtkmathview.cma: $(MLOBJS) - $(LINKER) -a -custom -o $@ $(MLOBJS) $(GTKLIBS) -cclib "$(GTKMATHVIEWLIBS)" -cclib "$(MINIDOMLIBS)" -lablgtkmathview.cmxa: $(MLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) $(GTKLIBS) -cclib "$(GTKMATHVIEWLIBS)" -cclib "$(MINIDOMLIBS)" - -ml_gtk.o: $(LABLGTKDIR)/gtk_tags.c $(LABLGTKDIR)/gtk_tags.h \ - $(LABLGTKDIR)/ml_gtk.h $(LABLGTKDIR)/ml_gdk.h $(LABLGTKDIR)/wrappers.h - -clean: - rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS) - cd $(MINIDOMDIR); make clean - cd $(TESTDIR); make clean - -include .depend diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/configure.mk b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/configure.mk deleted file mode 100644 index 8982371ee..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/configure.mk +++ /dev/null @@ -1,59 +0,0 @@ -# makefile for configuring lablGTK_mathview - -# Default compilers -CAMLC = ocamlc -CAMLOPT = ocamlopt - -# Default installation directories -BINDIR = `$(GETBINDIR)` -INSTALLDIR = $(LIBDIR)/lablgtk/mathview - -# Autoconf -GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//' -LIBDIR = `$(GETLIBDIR)` -GETBINDIR = $(GETLIBDIR) | sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|' -GETRANLIB = which ranlib 2>/dev/null | sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/' - -ifdef USE_GNOME -GTKGETCFLAGS = gtk-config --cflags`" -I"`gnome-config --includedir -GNOMELIBS = `gnome-config --libs gtkxmhtml` -else -GTKGETCFLAGS = gtk-config --cflags -endif - -GTKGETLIBS = gtk-config --libs - -configure: .depend config.make - -.depend: - ocamldep *.ml *.mli > .depend - -config.make: - @echo CAMLC=$(CAMLC) > config.make - @echo CAMLOPT=$(CAMLOPT) >> config.make - @echo USE_GL=$(USE_GL) >> config.make - @echo USE_GNOME=$(USE_GNOME) >> config.make - @echo USE_CC=$(USE_CC) >> config.make - @echo DEBUG=$(DEBUG) >> config.make - @echo CC=$(CC) >> config.make - @echo RANLIB=`$(GETRANLIB)` >> config.make - @echo LIBDIR=$(LIBDIR) >> config.make - @echo BINDIR=`$(GETBINDIR)` >> config.make - @echo INSTALLDIR=$(INSTALLDIR) >> config.make -# Luca: was -# @echo GTKCFLAGS=`$(GTKGETCFLAGS)` -I/usr/lib/ocaml/lablgtk >> config.make -# Luca: now - @echo GTKCFLAGS=`$(GTKGETCFLAGS)` -I$(LIBDIR)/lablgtk >> config.make - @echo GTKLIBS=`$(GTKGETLIBS)` | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make -# Luca: GtkMathView configuration - @echo GTKMATHVIEWCFLAGS=`gtkmathview-config --cflags` >> config.make - @echo MINIDOMCFLAGS=`minidom-config --cflags` >> config.make - @echo GTKMATHVIEWLIBS=`gtkmathview-config --libs` >> config.make - @echo MINIDOMLIBS=`minidom-config --libs` >> config.make -# Luca: end of GtkMathView configuration - @echo GNOMELIBS=$(GNOMELIBS) | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - cat config.make diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gMathView.ml deleted file mode 100644 index 951b8d46c..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gMathView.ml +++ /dev/null @@ -1,79 +0,0 @@ -open Gaux -open Gtk -open Gtk_mathview -open GtkBase -open GtkMathView -open GObj - -exception ErrorLoadingFile of string;; -exception ErrorWritingFile of string;; -exception NoSelection;; - -class math_view_signals obj = object - inherit GContainer.container_signals obj - method clicked = GtkSignal.connect ~sgn:MathView.Signals.clicked obj ~after - method jump = GtkSignal.connect ~sgn:MathView.Signals.jump obj ~after - method selection_changed = - GtkSignal.connect ~sgn:MathView.Signals.selection_changed obj ~after -end - -class math_view obj = object - inherit GContainer.container (obj : Gtk_mathview.math_view obj) - method connect = new math_view_signals obj - method load ~filename = - if not (MathView.load obj ~filename) then raise (ErrorLoadingFile filename) - method unload = MathView.unload obj - method get_selection = MathView.get_selection obj - method set_selection (node : Ominidom.o_mDOMNode option) = MathView.set_selection obj node - method get_width = MathView.get_width obj - method get_height = MathView.get_height obj - method get_top = MathView.get_top obj - method set_top = MathView.set_top obj - method set_adjustments = - fun adj1 adj2 -> - MathView.set_adjustments obj (GData.as_adjustment adj1) - (GData.as_adjustment adj2) - method get_hadjustment = new GData.adjustment (MathView.get_hadjustment obj) - method get_vadjustment = new GData.adjustment (MathView.get_vadjustment obj) - method get_buffer = MathView.get_buffer obj - method get_frame = new GBin.frame (MathView.get_frame obj) - method set_font_size = MathView.set_font_size obj - method get_font_size = MathView.get_font_size obj - method set_anti_aliasing = MathView.set_anti_aliasing obj - method get_anti_aliasing = MathView.get_anti_aliasing obj - method set_kerning = MathView.set_kerning obj - method get_kerning = MathView.get_kerning obj - method set_log_verbosity = MathView.set_log_verbosity obj - method get_log_verbosity = MathView.get_log_verbosity obj - method export_to_postscript - ?(width = 595) ?(height = 822) ?(x_margin = 72) ?(y_margin = 72) - ?(disable_colors = false) ~filename () = - let result = MathView.export_to_postscript obj - ~width ~height ~x_margin ~y_margin ~disable_colors ~filename - in - if not result then raise (ErrorWritingFile filename) - method get_font_manager_type = MathView.get_font_manager_type obj - method set_font_manager_type ~fm_type = MathView.set_font_manager_type obj ~fm_type -end - -let math_view ?adjustmenth ?adjustmentv ?font_size ?font_manager ?border_width - ?width ?height ?packing ?show () = - let w = - MathView.create - ?adjustmenth:(may_map ~f:GData.as_adjustment adjustmenth) - ?adjustmentv:(may_map ~f:GData.as_adjustment adjustmentv) - () - in - Container.set w ?border_width ?width ?height; - let mathview = pack_return (new math_view w) ~packing ~show in - begin - match font_size with - | Some size -> mathview#set_font_size size - | None -> () - end; - begin - match font_manager with - | Some manager -> mathview#set_font_manager_type ~fm_type:manager - | None -> () - end; -;; diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gtkMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gtkMathView.ml deleted file mode 100644 index 4c893fab4..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gtkMathView.ml +++ /dev/null @@ -1,118 +0,0 @@ -open Gtk -open Gtk_mathview -open Tags -open GtkBase -open Gpointer - -external mDOMNode_of_boxed_option : - Gpointer.boxed option -> Minidom.mDOMNode = - "ml_gtk_math_view_mDOMNode_of_bodex_option" - -external mDOMNode_option_of_boxed_option : - Gpointer.boxed option -> Minidom.mDOMNode option = - "ml_gtk_math_view_mDOMNode_option_of_bodex_option" - -let o_mDOMNode_of_mDOMNode node = new Ominidom.o_mDOMNode node - -let o_mDOMNode_option_of_mDOMNode_option = - function - | Some x -> Some (o_mDOMNode_of_mDOMNode x) - | None -> None - -let mDOMNode_option_of_o_mDOMNode_option = - function - | Some x -> Some (x#get_dom_node) - | None -> None - -module MathView = struct - exception NoSelection - - let cast w : math_view obj = Object.try_cast w "GtkMathView" - external create : Gtk.adjustment optobj -> Gtk.adjustment optobj -> - math_view obj = "ml_gtk_math_view_new" - let create ~adjustmenth ~adjustmentv () = - create (optboxed adjustmenth) (optboxed adjustmentv) - external load : [>`math_view] obj -> filename:string -> bool = - "ml_gtk_math_view_load" - external unload : [>`math_view] obj -> unit = - "ml_gtk_math_view_unload" - external raw_get_selection : [>`math_view] obj -> Minidom.mDOMNode option = - "ml_gtk_math_view_get_selection" - let get_selection obj = - o_mDOMNode_option_of_mDOMNode_option (raw_get_selection obj) - external raw_set_selection : [>`math_view] obj -> Minidom.mDOMNode option -> unit= - "ml_gtk_math_view_set_selection" - let set_selection obj node = - raw_set_selection obj (mDOMNode_option_of_o_mDOMNode_option node) - external get_width : [>`math_view] obj -> int = - "ml_gtk_math_view_get_width" - external get_height : [>`math_view] obj -> int = - "ml_gtk_math_view_get_height" - external get_top : [>`math_view] obj -> (int * int) = - "ml_gtk_math_view_get_top" - external set_top : [>`math_view] obj -> int -> int -> unit = - "ml_gtk_math_view_set_top" - external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit = - "ml_gtk_math_view_set_adjustments" - external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj = - "ml_gtk_math_view_get_hadjustment" - external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj = - "ml_gtk_math_view_get_vadjustment" - external get_buffer : [>`math_view] obj -> Gdk.pixmap = - "ml_gtk_math_view_get_buffer" - external get_frame : [>`math_view] obj -> [`frame] obj = - "ml_gtk_math_view_get_frame" - external set_font_size : [>`math_view] obj -> int -> unit = - "ml_gtk_math_view_set_font_size" - external get_font_size : [>`math_view] obj -> int = - "ml_gtk_math_view_get_font_size" - external set_anti_aliasing : [>`math_view] obj -> bool -> unit = - "ml_gtk_math_view_set_anti_aliasing" - external get_anti_aliasing : [>`math_view] obj -> bool = - "ml_gtk_math_view_get_anti_aliasing" - external set_kerning : [>`math_view] obj -> bool -> unit = - "ml_gtk_math_view_set_kerning" - external get_kerning : [>`math_view] obj -> bool = - "ml_gtk_math_view_get_kerning" - external set_log_verbosity : [>`math_view] obj -> int -> unit = - "ml_gtk_math_view_set_log_verbosity" - external get_log_verbosity : [>`math_view] obj -> int = - "ml_gtk_math_view_get_log_verbosity" - external export_to_postscript : - [>`math_view] obj -> width:int -> height:int -> x_margin:int -> y_margin:int -> disable_colors:bool -> filename:string -> bool = - "ml_gtk_math_view_export_to_postscript_bytecode" "ml_gtk_math_view_export_to_postscript_native" - external get_font_manager_type : [>`math_view] obj -> - [`font_manager_gtk | `font_manager_t1] = - "ml_gtk_math_view_get_font_manager_type" - external set_font_manager_type : [>`math_view] obj -> - fm_type:[`font_manager_gtk | `font_manager_t1] -> unit = - "ml_gtk_math_view_set_font_manager_type" - - module Signals = struct - open GtkSignal - - let clicked : ([>`math_view],_) t = - let marshal_clicked f _ = - function - [GtkArgv.POINTER node] -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed_option node)) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked" - in - { name = "clicked"; marshaller = marshal_clicked } - - let jump : ([>`math_view],_) t = - let marshal_jump f _ = - function - [GtkArgv.POINTER node] -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed_option node)) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_jump" - in - { name = "jump"; marshaller = marshal_jump } - - let selection_changed : ([>`math_view],_) t = - let marshal_selection_changed f _ = - function - [GtkArgv.POINTER node] -> f (o_mDOMNode_option_of_mDOMNode_option (mDOMNode_option_of_boxed_option node)) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_selection_changed" - in - { name = "selection_changed"; marshaller = marshal_selection_changed } - end -end diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gtk_mathview.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gtk_mathview.ml deleted file mode 100644 index 745a1ba82..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/gtk_mathview.ml +++ /dev/null @@ -1 +0,0 @@ -type math_view = [`widget|`container|`bin|`eventbox|`math_view] diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/.cvsignore deleted file mode 100644 index 84bdd8eff..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmi *.cmo *.cmx test test.opt diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/Makefile deleted file mode 100644 index 6fe73af6a..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/Makefile +++ /dev/null @@ -1,51 +0,0 @@ -LIBDIR = /usr/lib/ocaml -INSTALLDIR = $(LIBDIR)/minidom -OBJECTS = minidom.cmi minidom.cmo ml_minidom.o ominidom.cmi ominidom.cmo -OBJECTS_OPT = minidom.cmx ominidom.cmx -INST = minidom.o ominidom.o ml_minidom.h minidom.mli - -all: $(OBJECTS) test - -opt: $(OBJECTS_OPT) test.opt - -ml_minidom.o: ml_minidom.c - gcc -c -I/usr/lib/ocaml/caml/ `glib-config --cflags` `minidom-config --cflags` $< - -minidom.cmi: minidom.mli - ocamlc -c $< - -minidom.cmo: minidom.ml minidom.cmi - ocamlc -c $< - -minidom.cmx: minidom.ml minidom.cmi - ocamlopt -c $< - -ominidom.cmi: ominidom.mli - ocamlc -c $< - -ominidom.cmo: ominidom.ml - ocamlc -c $< - -ominidom.cmx: ominidom.ml - ocamlopt -c $< - -test.cmo: test.ml minidom.cmo - ocamlc -c test.ml - -test.cmx: test.ml minidom.cmx - ocamlopt -c test.ml - -test: test.cmo minidom.cmo ml_minidom.o - ocamlc -custom -o test minidom.cmo test.cmo ml_minidom.o \ - -cclib "`glib-config --libs` `minidom-config --libs`" - -test.opt: test.cmx minidom.cmx ml_minidom.o - ocamlopt -o test.opt minidom.cmx test.cmx ml_minidom.o \ - -cclib "`glib-config --libs` `minidom-config --libs`" - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(OBJECTS) $(OBJECTS_OPT) $(INST) $(INSTALLDIR) - -clean: - rm -f *.o *.cm? test test.opt diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/minidom.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/minidom.ml deleted file mode 100644 index 31e677b3f..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/minidom.ml +++ /dev/null @@ -1,61 +0,0 @@ - -type mDOMString -type mDOMDoc -type mDOMNode -type mDOMAttr -type mDOMEntity - -external string_of_mDOMString : mDOMString -> string = "ml_string_of_mDOMString" -external mDOMString_of_string : string -> mDOMString = "ml_mDOMString_of_string" -external mDOMString_eq : string -> string -> bool = "ml_mDOMString_eq" - -external doc_load : string -> mDOMDoc = "ml_doc_load" -external doc_unload : mDOMDoc -> unit = "ml_doc_unload" - -external doc_new : mDOMString -> mDOMDoc = "ml_doc_new" -external doc_get_root_node : mDOMDoc -> mDOMNode = "ml_doc_get_root_node" - -external doc_add_entity : mDOMDoc -> mDOMString -> mDOMString -> mDOMEntity = "ml_doc_add_entity" -external doc_get_entity : mDOMDoc -> mDOMString -> mDOMEntity option = "ml_doc_get_entity" -external doc_get_predefined_entity : mDOMDoc -> mDOMString -> mDOMEntity option = "ml_doc_get_predefined_entity" -external entity_get_content : mDOMEntity -> mDOMString = "ml_entity_get_content" - -external node_is_text : mDOMNode -> bool = "ml_node_is_text" -external node_is_element : mDOMNode -> bool = "ml_node_is_element" -external node_is_blank : mDOMNode -> bool = "ml_node_is_blank" -external node_is_entity_ref : mDOMNode -> bool = "ml_node_is_entity_ref" -external node_get_type : mDOMNode -> int = "ml_node_get_type" -external node_get_name : mDOMNode -> mDOMString option = "ml_node_get_name" -external node_get_ns_uri : mDOMNode -> mDOMString option = "ml_node_get_ns_uri" -external node_get_attribute : mDOMNode -> mDOMString -> mDOMString option = "ml_node_get_attribute" -external node_get_attribute_ns : mDOMNode -> mDOMString -> mDOMString -> mDOMString option = "ml_node_get_attribute_ns" -external node_get_content : mDOMNode -> mDOMString option = "ml_node_get_content" -external node_get_parent : mDOMNode -> mDOMNode option = "ml_node_get_parent" -external node_get_prev_sibling : mDOMNode -> mDOMNode option = "ml_node_get_prev_sibling" -external node_get_next_sibling : mDOMNode -> mDOMNode option = "ml_node_get_next_sibling" -external node_get_first_child : mDOMNode -> mDOMNode option = "ml_node_get_first_child" -external node_get_first_attribute : mDOMNode -> mDOMAttr option = "ml_node_get_first_attribute" -external node_is_first : mDOMNode -> bool = "ml_node_is_first" -external node_is_last : mDOMNode -> bool = "ml_node_is_last" - -external attr_get_name : mDOMAttr -> mDOMString option = "ml_attr_get_name" -external attr_get_ns_uri : mDOMAttr -> mDOMString option = "ml_attr_get_ns_uri" -external attr_get_value : mDOMAttr -> mDOMString option = "ml_attr_get_value" -external attr_get_prev_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_prev_sibling" -external attr_get_next_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_next_sibling" -external attr_get_parent : mDOMAttr -> mDOMNode option = "ml_attr_get_parent" - -let rec node_list_of_node_first = - function None -> [] - | Some node -> node :: (node_list_of_node_first (node_get_next_sibling node)) - -let rec attr_list_of_attr_first = - function None -> [] - | Some attr -> attr :: (attr_list_of_attr_first (attr_get_next_sibling attr)) - -let node_get_children node = - (node_list_of_node_first (node_get_first_child node)) - -let node_get_attributes node = - (attr_list_of_attr_first (node_get_first_attribute node)) - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/minidom.mli b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/minidom.mli deleted file mode 100644 index 0b655955b..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/minidom.mli +++ /dev/null @@ -1,50 +0,0 @@ - -type mDOMString -type mDOMDoc -type mDOMNode -type mDOMAttr -type mDOMEntity - -external string_of_mDOMString : mDOMString -> string = "ml_string_of_mDOMString" -external mDOMString_of_string : string -> mDOMString = "ml_mDOMString_of_string" -external mDOMString_eq : string -> string -> bool = "ml_mDOMString_eq" - -external doc_load : string -> mDOMDoc = "ml_doc_load" -external doc_unload : mDOMDoc -> unit = "ml_doc_unload" - -external doc_new : mDOMString -> mDOMDoc = "ml_doc_new" -external doc_get_root_node : mDOMDoc -> mDOMNode = "ml_doc_get_root_node" - -external doc_add_entity : doc:mDOMDoc -> name:mDOMString -> content:mDOMString -> mDOMEntity = "ml_doc_add_entity" -external doc_get_entity : doc:mDOMDoc -> name:mDOMString -> mDOMEntity option = "ml_doc_get_entity" -external doc_get_predefined_entity : doc:mDOMDoc -> name:mDOMString -> mDOMEntity option = "ml_doc_get_predefined_entity" -external entity_get_content : mDOMEntity -> mDOMString = "ml_entity_get_content" - -external node_is_text : mDOMNode -> bool = "ml_node_is_text" -external node_is_element : mDOMNode -> bool = "ml_node_is_element" -external node_is_blank : mDOMNode -> bool = "ml_node_is_blank" -external node_is_entity_ref : mDOMNode -> bool = "ml_node_is_entity_ref" -external node_get_type : mDOMNode -> int = "ml_node_get_type" -external node_get_name : mDOMNode -> mDOMString option = "ml_node_get_name" -external node_get_ns_uri : mDOMNode -> mDOMString option = "ml_node_get_ns_uri" -external node_get_attribute : node:mDOMNode -> name:mDOMString -> mDOMString option = "ml_node_get_attribute" -external node_get_attribute_ns : node:mDOMNode -> name:mDOMString -> ns_uri:mDOMString -> mDOMString option = "ml_node_get_attribute_ns" -external node_get_content : mDOMNode -> mDOMString option = "ml_node_get_content" -external node_get_parent : mDOMNode -> mDOMNode option = "ml_node_get_parent" -external node_get_prev_sibling : mDOMNode -> mDOMNode option = "ml_node_get_prev_sibling" -external node_get_next_sibling : mDOMNode -> mDOMNode option = "ml_node_get_next_sibling" -external node_get_first_child : mDOMNode -> mDOMNode option = "ml_node_get_first_child" -external node_get_first_attribute : mDOMNode -> mDOMAttr option = "ml_node_get_first_attribute" -external node_is_first : mDOMNode -> bool = "ml_node_is_first" -external node_is_last : mDOMNode -> bool = "ml_node_is_last" - -external attr_get_name : mDOMAttr -> mDOMString option = "ml_attr_get_name" -external attr_get_ns_uri : mDOMAttr -> mDOMString option = "ml_attr_get_ns_uri" -external attr_get_value : mDOMAttr -> mDOMString option = "ml_attr_get_value" -external attr_get_prev_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_prev_sibling" -external attr_get_next_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_next_sibling" -external attr_get_parent : mDOMAttr -> mDOMNode option = "ml_attr_get_parent" - -val node_get_children : mDOMNode -> mDOMNode list -val node_get_attributes : mDOMNode -> mDOMAttr list - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ml_minidom.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ml_minidom.c deleted file mode 100644 index 10626143c..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ml_minidom.c +++ /dev/null @@ -1,288 +0,0 @@ - -#include -#include -#include - -#include "minidom.h" - -#define Val_ptr(p) ((value) (p)) -#define Val_option(p,f) ((p != NULL) ? ml_some(f(p)) : Val_unit) -#define Val_mDOMString(s) (copy_string((char*) (s))) -#define mDOMString_val(v) ((mDOMStringRef) String_val(v)) - -static value -ml_some(value v) -{ - CAMLparam1(v); - value ret = alloc_small(1,0); - Field(ret,0) = v; - CAMLreturn(ret); -} - -value -ml_string_of_mDOMString(value s) -{ - CAMLparam1(s); - CAMLreturn(s); -} - -value -ml_mDOMString_of_string(value s) -{ - CAMLparam1(s); - CAMLreturn(s); -} - -value -ml_doc_load(value file_name) -{ - mDOMDocRef doc_ref; - - CAMLparam1(file_name); - - doc_ref = mdom_load(String_val(file_name), FALSE, NULL); - if (doc_ref == NULL) failwith("minidom: could not load document"); - - CAMLreturn((value) doc_ref); -} - -value -ml_doc_unload(value doc) -{ - CAMLparam1(doc); - - mdom_unload((mDOMDocRef) doc); - - CAMLreturn(Val_unit); -} - -value -ml_doc_new(value s) -{ - mDOMDocRef doc_ref; - - CAMLparam1(s); - - doc_ref = mdom_doc_new(mDOMString_val(s)); - if (doc_ref == NULL) failwith("minidom: could not create new document"); - - CAMLreturn((value) doc_ref); -} - - -value -ml_doc_get_root_node(value doc) -{ - mDOMNodeRef root; - - CAMLparam1(doc); - root = mdom_doc_get_root_node((mDOMDocRef) doc); - if (root == NULL) failwith("minidom: document has no root node!"); - - CAMLreturn((value) root); -} - -value -ml_doc_add_entity(value doc, value name, value content) -{ - mDOMEntityRef ent; - - CAMLparam3(doc, name, content); - ent = mdom_doc_add_entity((mDOMDocRef) doc, mDOMString_val(name), mDOMString_val(content)); - if (ent == NULL) failwith("minidom: could not add entity"); - - CAMLreturn((value) ent); -} - -value -ml_doc_get_entity(value doc, value name) -{ - mDOMEntityRef ent; - - CAMLparam2(doc, name); - ent = mdom_doc_get_entity((mDOMDocRef) doc, mDOMString_val(name)); - - CAMLreturn(Val_option(ent, Val_ptr)); -} - -value -ml_doc_get_predefined_entity(value name) -{ - mDOMEntityRef ent; - - CAMLparam1(name); - ent = mdom_get_predefined_entity(mDOMString_val(name)); - - CAMLreturn(Val_option(ent, Val_ptr)); -} - -value -ml_entity_get_content(value ent) -{ - CAMLparam1(ent); - CAMLreturn(Val_mDOMString(mdom_entity_get_content((mDOMEntityRef) ent))); -} - -value -ml_node_is_text(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_text((mDOMNodeRef) node))); -} - -value -ml_node_is_element(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_element((mDOMNodeRef) node))); -} - -value -ml_node_is_blank(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_blank((mDOMNodeRef) node))); -} - -value -ml_node_is_entity_ref(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_entity_ref((mDOMNodeRef) node))); -} - -value -ml_node_get_type(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_int(mdom_node_get_type((mDOMNodeRef) node))); -} - -value -ml_node_get_name(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_name((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_content(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_content((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_ns_uri(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_ns_uri((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_attribute(value node, value name) -{ - CAMLparam2(node,name); - CAMLreturn(Val_option(mdom_node_get_attribute((mDOMNodeRef) node, String_val(name)), Val_mDOMString)); -} - -value -ml_node_get_attribute_ns(value node, value name, value ns_uri) -{ - CAMLparam2(node,name); - CAMLreturn(Val_option(mdom_node_get_attribute_ns((mDOMNodeRef) node, - String_val(name), - String_val(ns_uri)), Val_mDOMString)); -} - -value -ml_node_get_parent(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_parent((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_prev_sibling(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_prev_sibling((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_next_sibling(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_next_sibling((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_first_child(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_first_child((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_first_attribute(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_first_attribute((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_is_first(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_first((mDOMNodeRef) node))); -} - -value -ml_node_is_last(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_last((mDOMNodeRef) node))); -} - -value -ml_attr_get_name(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_name((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_ns_uri(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_ns_uri((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_value(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_value((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_prev_sibling(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_prev_sibling((mDOMAttrRef) attr), Val_ptr)); -} - -value -ml_attr_get_next_sibling(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_next_sibling((mDOMAttrRef) attr), Val_ptr)); -} - -value -ml_attr_get_parent(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_parent((mDOMAttrRef) attr), Val_ptr)); -} - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ml_minidom.h b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ml_minidom.h deleted file mode 100644 index d22479964..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ml_minidom.h +++ /dev/null @@ -1,18 +0,0 @@ - -#ifndef ml_minidom_h -#define ml_minidom_h - -#define Val_ptr(p) ((value) (p)) -#ifndef Val_option -#define Val_option(p,f) ((p != NULL) ? ml_some(f(p)) : Val_unit) -#endif /* Val_option */ -#define Val_mDOMString(s) (copy_string((char*) (s))) -#define mDOMString_val(v) ((mDOMStringRef) String_val(v)) -#define mDOMNode_val(v) ((mDOMNodeRef) v) - -#define mDOMNode_option_mDOMNodeRef(p) (((p) != NULL) ? ml_some((value) (p)) : Val_unit) -#define mDOMNodeRef_mDOMNode_option(v) ((v == Val_unit) ? NULL : (mDOMNodeRef)Field((v),0)) -#define Val_mDOMNodeRef(p) (mDOMNode_option_mDOMNodeRef(p)) -#define mDOMNodeRef_val(v) (mDOMNodeRef_mDOMNode_option(v)) - -#endif /* ml_minidom_h */ diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ominidom.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ominidom.ml deleted file mode 100644 index 85ad2e4ed..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/ominidom.ml +++ /dev/null @@ -1,156 +0,0 @@ - -exception Node_has_no_parent;; -exception Node_has_no_sibling of string;; -exception Node_has_no_children;; -exception Node_has_no_attributes;; -exception Attribute_has_no_sibling of string;; -exception Attribute_has_no_parent;; -exception Undefined_entity;; - -let option_to_exception v e = - match v with - Some x -> x - | None -> raise e -;; - -class o_mDOMString (str: Minidom.mDOMString) = - object - method get_dom_string = str - method get_string = Minidom.string_of_mDOMString str - end;; - -let o_mDOMString_of_string str = - new o_mDOMString (Minidom.mDOMString_of_string str) - -class o_mDOMEntity (ent : Minidom.mDOMEntity) = - object - method get_dom_entity = ent - method get_content = - new o_mDOMString (Minidom.entity_get_content ent) - end -;; - -class o_mDOMDoc (doc : Minidom.mDOMDoc) = - object - method get_dom_doc = doc - - method get_root_node = - new o_mDOMNode (Minidom.doc_get_root_node doc) - method add_entity (name : o_mDOMString) (value : o_mDOMString) = - new o_mDOMEntity - (Minidom.doc_add_entity doc - (name#get_dom_string) (value#get_dom_string) - ) - method get_entity (name : o_mDOMString) = - match Minidom.doc_get_entity doc (name#get_dom_string) with - | Some x -> new o_mDOMEntity x - | None -> raise Undefined_entity - method get_predefined_entity (name : o_mDOMString) = - match Minidom.doc_get_predefined_entity doc (name#get_dom_string) with - | Some x -> new o_mDOMEntity x - | None -> raise Undefined_entity - end -and o_mDOMNode (node : Minidom.mDOMNode) = - object - method get_dom_node = node - - method is_text = Minidom.node_is_text node - method is_element = Minidom.node_is_element node - method is_blank = Minidom.node_is_blank node - method is_entity_ref = Minidom.node_is_entity_ref node - - method get_type = Minidom.node_get_type node - method get_name = - match Minidom.node_get_name node with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_ns_uri = - match Minidom.node_get_ns_uri node with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_attribute (name : o_mDOMString) = - match Minidom.node_get_attribute node (name#get_dom_string) with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_attribute_ns (name : o_mDOMString) (uri : o_mDOMString) = - match - Minidom.node_get_attribute_ns node - (name#get_dom_string) (uri#get_dom_string) - with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_content = - match Minidom.node_get_content node with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_parent = - new o_mDOMNode - (option_to_exception (Minidom.node_get_parent node) Node_has_no_parent) - method get_prev_sibling = - new o_mDOMNode - (option_to_exception - (Minidom.node_get_prev_sibling node) - (Node_has_no_sibling "left") - ) - method get_next_sibling = - new o_mDOMNode - (option_to_exception - (Minidom.node_get_next_sibling node) - (Node_has_no_sibling "right") - ) - method get_first_child = - new o_mDOMNode - (option_to_exception - (Minidom.node_get_first_child node) - (Node_has_no_children) - ) - method get_first_attribute = - new o_mDOMAttr - (option_to_exception - (Minidom.node_get_first_attribute node) - (Node_has_no_attributes) - ) - method is_first = Minidom.node_is_first node - method is_last = Minidom.node_is_last node - - method get_children = - List.map (function x -> new o_mDOMNode x) (Minidom.node_get_children node) - method get_attributes = List.map - (function x -> new o_mDOMAttr x) (Minidom.node_get_attributes node) - end -and o_mDOMAttr (attr : Minidom.mDOMAttr) = - object - method get_dom_attr = attr - - method get_name = - match Minidom.attr_get_name attr with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_ns_uri = - match Minidom.attr_get_ns_uri attr with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_value = - match Minidom.attr_get_value attr with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_prev_sibling = - new o_mDOMAttr - (option_to_exception - (Minidom.attr_get_prev_sibling attr) - (Attribute_has_no_sibling "left") - ) - method get_next_sibling = - new o_mDOMAttr - (option_to_exception - (Minidom.attr_get_next_sibling attr) - (Attribute_has_no_sibling "right") - ) - method get_parent = - new o_mDOMNode - (option_to_exception - (Minidom.attr_get_parent attr) Attribute_has_no_parent - ) - end -;; - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/test.ml deleted file mode 100644 index 3c7a092e9..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/test.ml +++ /dev/null @@ -1,84 +0,0 @@ - -let doc = Minidom.doc_load "test.xml" - -let root = Minidom.doc_get_root_node doc - -let check_attribute_ns attr = - Printf.printf "\n\n"; - let ns_uri = Minidom.attr_get_ns_uri attr - and attr_name = Minidom.attr_get_name attr - and attr_value = Minidom.attr_get_value attr - and parent = Minidom.attr_get_parent attr - in - match parent,ns_uri,attr_name,attr_value with - Some parent_node,Some uri,Some attribute_name,Some attribute_value -> - let attr_value = Minidom.node_get_attribute_ns parent_node attribute_name uri - in begin - match attr_value with - Some attr1 -> - Printf.printf "found the attribute with ns %s (was %s)\n" - (Minidom.string_of_mDOMString attr1) (Minidom.string_of_mDOMString attribute_value) - | None -> - Printf.printf "attribute not found (uri was %s)!!!!\n" (Minidom.string_of_mDOMString uri) - end - | _ -> - Printf.printf "parent_node == NULL || uri == NULL || attribute_name == NULL || attribute_value == NULL\n" -;; - -let print_attribute attr = - check_attribute_ns attr; - let ns_uri = Minidom.attr_get_ns_uri attr - in - begin - match ns_uri with - Some uri -> Printf.printf " %s:" (Minidom.string_of_mDOMString uri); - | None -> () - end; - match ((Minidom.attr_get_name attr), (Minidom.attr_get_value attr)) with - (Some attr_name, Some attr_value) -> - Printf.printf " %s=\"%s\"" (Minidom.string_of_mDOMString attr_name) (Minidom.string_of_mDOMString attr_value) - | (Some attr_name, _) -> - Printf.printf " ??? attribute %s has no value !!!" (Minidom.string_of_mDOMString attr_name) - | (_,_) -> - Printf.printf " ??? very strange attribute !!!" -;; - -let rec print_node n node = - if Minidom.node_is_blank node then () - else if Minidom.node_is_element node then begin - match Minidom.node_get_name node with - Some node_name -> - begin - let children = Minidom.node_get_children node - and attributes = Minidom.node_get_attributes node - and ns_uri = Minidom.node_get_ns_uri node - and is_first,is_last = (Minidom.node_is_first node), (Minidom.node_is_last node) - in - for i = 1 to n do print_char ' ' done; - Printf.printf "<"; - begin - match ns_uri with - Some uri -> Printf.printf "%s:" (Minidom.string_of_mDOMString uri) - | None -> () - end; - Printf.printf "%s" (Minidom.string_of_mDOMString node_name); - List.iter print_attribute attributes; - Printf.printf ">\n"; - List.iter (print_node (n + 2)) children; - for i = 1 to n do print_char ' ' done; - Printf.printf "\n" (Minidom.string_of_mDOMString node_name) - end - | None -> Printf.printf "??? this node has no name !!!\n" - end else if Minidom.node_is_text node then begin - match Minidom.node_get_content node with - Some node_content -> - for i = 1 to n do print_char ' ' done; - Printf.printf "%s\n" (Minidom.string_of_mDOMString node_content) - | None -> Printf.printf "??? this node has no content !!!\n" - end else begin - Printf.printf "don't know how to manage a node with type %d\n" (Minidom.node_get_type node) - end -;; - -print_node 0 root;; - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/test.xml deleted file mode 100644 index 83d2eef68..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/minidom/test.xml +++ /dev/null @@ -1,505 +0,0 @@ - - - - - - - - DEFINITION and_ind() OF TYPE - - - - - - - - __ - - - - - - - - ( - - - - - Π - A - : - - Prop - - - - - - - . - - - - - Π - B - : - - Prop - - - - - - - . - - - - - Π - P - : - - Prop - - - - - - - . - - - - - Π - f - : - - ( - A - - - ( - B - - P - ) - - ) - - - - - - - . - - Π - a - : - - ( - and - - _ - - A - - _ - - B - ) - - . - P - - - - - - - - - - - - - - - - - - - - - - - - - - - - :> - - Prop - - - - - - - - ) - - - - - - - - cast - - prod - - A - - - Prop - - - - - prod - - B - - - Prop - - - - - prod - - P - - - Prop - - - - - prod - - f - - - arrow - A - - arrow - B - P - - - - - - prod - - a - - - app - and - A - B - - - - P - - - - - - - Prop - - - - - - - - - - - AS - - - - - - - - __ - - - - - - - λ - A - : - - Prop - - - - - - - . - - - - - λ - B - : - - Prop - - - - - - - . - - - - - λ - P - : - - Prop - - - - - - - . - - - - - λ - f - : - - ( - A - - - ( - B - - P - ) - - ) - - - - - - - . - - - - - λ - a - : - - ( - and - - _ - - A - - _ - - B - ) - - - - - - - . - - < - P - > - CASES - - _ - - a - - _ - - OF - - ( - conj - - _ - - $1 - - _ - - $2 - ) - - - - ( - f - - _ - - $1 - - _ - - $2 - ) - - - _ - - END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A - - - Prop - - - - - - B - - - Prop - - - - - - P - - - Prop - - - - - - f - - - arrow - A - - arrow - B - P - - - - - - - a - - - app - and - A - B - - - - - mutcase - P - a - - app - conj - $1 - $2 - - - app - f - $1 - $2 - - - - - - - - - - - - - - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/ml_gtk_mathview.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/ml_gtk_mathview.c deleted file mode 100644 index 3c86f0057..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/ml_gtk_mathview.c +++ /dev/null @@ -1,159 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include - -#include -#include "minidom/ml_minidom.h" - -/* : Next row should be put in a .h of lablgtk. */ -#define GtkAdjustment_val(val) check_cast(GTK_ADJUSTMENT,val) - -#define GtkMathView_val(val) check_cast(GTK_MATH_VIEW,val) - -#define FontManagerId_val(val) Int_val(val) -#define Val_FontManagerId(val) Val_int(val) - -FontManagerId -font_manager_id_of_value(value v) -{ - if (v == hash_variant("font_manager_gtk")) return FONT_MANAGER_GTK; - else if (v == hash_variant("font_manager_t1")) return FONT_MANAGER_T1; - else assert(0); -} - -value -value_of_font_manager_id(FontManagerId id) -{ - switch (id) { - case FONT_MANAGER_GTK: - return hash_variant("font_manager_gtk"); - case FONT_MANAGER_T1: - return hash_variant("font_manager_t1"); - default: - assert(0); - break; - } -} - -ML_2 (gtk_math_view_new,GtkAdjustment_val, GtkAdjustment_val, Val_GtkWidget_sink) -ML_2 (gtk_math_view_load, GtkMathView_val, String_val, Val_bool) -ML_1 (gtk_math_view_unload, GtkMathView_val, Unit) -/*ML_1 (gtk_math_view_dump, GtkMathView_val, Unit)*/ -ML_1 (gtk_math_view_get_selection, GtkMathView_val, Val_mDOMNodeRef) -ML_2 (gtk_math_view_set_selection, GtkMathView_val, mDOMNodeRef_val, Unit) -ML_1 (gtk_math_view_get_width, GtkMathView_val, Val_int) -ML_1 (gtk_math_view_get_height, GtkMathView_val, Val_int) -ML_3 (gtk_math_view_set_top, GtkMathView_val, Int_val, Int_val, Unit) -ML_3 (gtk_math_view_set_adjustments, GtkMathView_val, GtkAdjustment_val, GtkAdjustment_val, Unit) -ML_1 (gtk_math_view_get_hadjustment, GtkMathView_val, Val_GtkWidget) -ML_1 (gtk_math_view_get_vadjustment, GtkMathView_val, Val_GtkWidget) -ML_1 (gtk_math_view_get_buffer, GtkMathView_val, Val_GdkPixmap) -ML_1 (gtk_math_view_get_frame, GtkMathView_val, Val_GtkWidget) -ML_2 (gtk_math_view_set_font_size, GtkMathView_val, Int_val, Unit) -ML_1 (gtk_math_view_get_font_size, GtkMathView_val, Val_int) -ML_2 (gtk_math_view_set_anti_aliasing, GtkMathView_val, Bool_val, Unit) -ML_1 (gtk_math_view_get_anti_aliasing, GtkMathView_val, Val_bool) -ML_2 (gtk_math_view_set_kerning, GtkMathView_val, Bool_val, Unit) -ML_1 (gtk_math_view_get_kerning, GtkMathView_val, Val_bool) -ML_2 (gtk_math_view_set_log_verbosity, GtkMathView_val, Int_val, Unit) -ML_1 (gtk_math_view_get_log_verbosity, GtkMathView_val, Val_int) -ML_2 (gtk_math_view_set_font_manager_type, GtkMathView_val, font_manager_id_of_value, Unit) -ML_1 (gtk_math_view_get_font_manager_type, GtkMathView_val, value_of_font_manager_id) - -value -ml_gtk_math_view_export_to_postscript_native(value arg1, - value w, value h, value x0, value y0, value disable_colors, value arg2) -{ - CAMLparam5(arg1,w,h,x0,y0); - CAMLxparam2(disable_colors, arg2); - - char *filename; - FILE *fd; - int res; - filename = String_val (arg2); - if ((fd = fopen(filename, "w"))) { - gtk_math_view_export_to_postscript(GtkMathView_val (arg1), - Int_val(w), Int_val(h), Int_val(x0), Int_val(y0), Bool_val(disable_colors), fd); - fclose (fd); - res = 1; - } else { - fprintf(stderr, "Error opening file %s for writing\n", filename); - res = 0; - } - CAMLreturn (Val_bool(res)); -} - -value ml_gtk_math_view_export_to_postscript_bytecode (value* arg, int argn) -{ - return ml_gtk_math_view_export_to_postscript_native(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]); -} - -value ml_gtk_math_view_get_top (value arg1) -{ - CAMLparam1(arg1); - CAMLlocal1 (result); - int x, y; - gtk_math_view_get_top(GtkMathView_val (arg1), &x, &y); - result = alloc(2, 0); - Store_field(result, 0, Val_int(x)); - Store_field(result, 0, Val_int(y)); - CAMLreturn (result); -} - - -value ml_gtk_math_view_mDOMNode_of_bodex_option (value arg1) -{ - CAMLparam1(arg1); - - mDOMNodeRef nr; - CAMLlocal1 (tmp); - CAMLlocal1 (optval); - CAMLlocal1 (res); - - if (arg1==Val_int(0)) { - assert(0); - } else { - tmp = Field(arg1, 0); - nr = (mDOMNodeRef) Field(tmp, 1); - } - optval = Val_mDOMNodeRef(nr); - if (optval==Val_int(0)) { - assert(0); - } else { - res = Field(optval, 0); - } - - CAMLreturn(res); -} - -value ml_gtk_math_view_mDOMNode_option_of_bodex_option (value arg1) -{ - CAMLparam1(arg1); - - mDOMNodeRef nr; - CAMLlocal1 (tmp); - - if (arg1==Val_int(0)) { - nr=NULL; - } else { - tmp = Field(arg1, 0); - nr = (mDOMNodeRef) Field(tmp, 1); - } - - CAMLreturn(Val_mDOMNodeRef(nr)); -} diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/.cvsignore deleted file mode 100644 index 1968614b7..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmo *.cmi *.cmx t1lib.log test test.opt test.ps test.o diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/Makefile deleted file mode 100644 index d631d239f..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -LABLGTK_DIR = /usr/lib/ocaml/lablgtk -LABLGTK_MATHVIEW_DIR = .. -MINIDOM_DIR = ../minidom -OCAMLC = ocamlc -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) \ - -I $(MINIDOM_DIR) -I mlmathview -OCAMLOPT = ocamlopt -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) \ - -I $(MINIDOM_DIR) -I mlmathview - -all: test -opt: test.opt - -test: test.cmo - $(OCAMLC) -custom -o test lablgtk.cma gtkInit.cmo \ - $(MINIDOM_DIR)/minidom.cmo \ - $(MINIDOM_DIR)/ominidom.cmo \ - $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cma \ - -cclib "$(MINIDOM_DIR)/ml_minidom.o" \ - test.cmo \ - -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \ - -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \ - -L/usr/local/lib/gtkmathview -lgtkmathview \ - $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o" - -test.opt: test.cmx - $(OCAMLOPT) -o test.opt lablgtk.cmxa gtkInit.cmx \ - $(MINIDOM_DIR)/minidom.cmx \ - $(MINIDOM_DIR)/ominidom.cmx \ - $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cmxa \ - -cclib "$(MINIDOM_DIR)/ml_minidom.o" \ - test.cmx \ - -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \ - -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \ - -L/usr/local/lib/gtkmathview -lgtkmathview \ - $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o" - -.SUFFIXES: .ml .mli .cmo .cmi .cmx -.ml.cmo: - $(OCAMLC) -c $< -.mli.cmi: - $(OCAMLC) -c $< -.ml.cmx: - $(OCAMLOPT) -c $< - -clean: - rm -f *.cm[iox] *.o test test.opt t1lib.log test.ps diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/t1.config b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/t1.config deleted file mode 100644 index afb669e95..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/t1.config +++ /dev/null @@ -1,3 +0,0 @@ -ENCODING=. -AFM=/usr/share/texmf/fonts/afm/ -TYPE1=/usr/share/texmf/fonts/type1/bluesky/cm/:/usr/X11R6/lib/X11/fonts/Type1/:. diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/test.ml deleted file mode 100644 index dd66d3885..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/test.ml +++ /dev/null @@ -1,297 +0,0 @@ -(******************************************************************************) -(* Claudio Sacerdoti Coen *) -(* 25/09/2000 *) -(* *) -(* This is a simple test for the OCaml (LablGtk indeed) binding of the *) -(* MathView widget *) -(******************************************************************************) - -(* Callbacks *) -let jump (node : Ominidom.o_mDOMNode) = - let module O = Ominidom in - print_string ("jump: " ^ - (match node#get_attribute (O.o_mDOMString_of_string "href") with - | Some x -> x#get_string - | None -> "NO HREF FOR THIS NODE" - ) ^ "\n"); - flush stdout -;; - -let selection_changed mathview (node : Ominidom.o_mDOMNode option) = - let module O = Ominidom in - print_string ("selection_changed: " ^ - (match node with - None -> "selection_changed on nothing" - | Some node -> - match node#get_name with - | Some x -> x#get_string - | None -> "on element without name" - ) ^ "\n"); - mathview#set_selection node; - flush stdout -;; - - -let clicked (node : Ominidom.o_mDOMNode) = - let module O = Ominidom in - print_string ("clicked: " ^ - (match node#get_name with - | Some x -> x#get_string - | None -> "no name" - ) ^ "\n"); - flush stdout -;; - - -let activate_t1 mathview () = - mathview#set_font_manager_type `font_manager_t1; - print_string "WIDGET SET WITH T1 FONTS\n" ; - flush stdout -;; - -let activate_gtk mathview () = - mathview#set_font_manager_type `font_manager_gtk; - print_string "WIDGET SET WITH GTK FONTS\n" ; - flush stdout -;; - -let get_font_manager_type mathview () = - print_string "CURRENT FONT MANAGER TYPE: "; - begin - match mathview#get_font_manager_type with - | `font_manager_t1 -> print_string "T1" - | `font_manager_gtk -> print_string "GTK" - end; - print_newline(); - flush stdout -;; - -let load mathview () = - mathview#load "test.xml" ; - print_string "load: SEEMS TO WORK\n" ; - flush stdout -;; - -let get_selection mathview () = - let module O = Ominidom in - let selection = - match mathview#get_selection with - | Some node -> - begin - match node#get_name with - | Some name -> name#get_string - | None -> "element with no name!" - end - | None -> "no selection!" - in - print_string ("get_selection: " ^ selection ^ "\n") ; - flush stdout -;; - -let set_selection mathview () = - let module O = Ominidom in - begin - match mathview#get_selection with - | Some node -> - begin - try - let parent_node = node#get_parent in - mathview#set_selection (Some parent_node); - print_string "set selection: SEEMS TO WORK\n" - with - _ -> print_string "EXCEPTION: no parent\n" - end - | None -> - mathview#set_selection None; - print_string "no selection\n" - end ; - flush stdout -;; - -let unload mathview () = - mathview#unload ; - print_string "unload: SEEMS TO WORK\n" ; - flush stdout -;; - -let get_width mathview () = - print_string ("get_width: " ^ string_of_int (mathview#get_width) ^ "\n") ; - flush stdout -;; - -let get_height mathview () = - print_string ("get_height: " ^ string_of_int (mathview#get_height) ^ "\n") ; - flush stdout -;; - -let get_top mathview () = - let (x,y) = mathview#get_top in - print_string ("get_top: ("^ string_of_int x ^ "," ^ string_of_int y ^ ")\n") ; - flush stdout -;; - -let set_top mathview () = - mathview#set_top 0 0; - print_string "set_top: SEEM TO WORK\n" ; - flush stdout -;; - -let set_adjustments mathview () = - let adj1 = GData.adjustment () in - let adj2 = GData.adjustment () in - mathview#set_adjustments adj1 adj2 ; - adj1#set_value ((adj1#lower +. adj1#upper) /. 2.0) ; - adj2#set_value ((adj2#lower +. adj2#upper) /. 2.0) ; - print_string "set_adjustments: SEEM TO WORK\n" ; - flush stdout -;; - -let get_hadjustment mathview () = - let adj = mathview#get_hadjustment in - adj#set_value ((adj#lower +. adj#upper) /. 2.0) ; - print_string "get_hadjustment: SEEM TO WORK\n" ; - flush stdout -;; - -let get_vadjustment mathview () = - let adj = mathview#get_vadjustment in - adj#set_value ((adj#lower +. adj#upper) /. 2.0) ; - print_string "get_vadjustment: SEEM TO WORK\n" ; - flush stdout -;; - -let get_buffer mathview () = - let buffer = mathview#get_buffer in - Gdk.Draw.rectangle buffer (Gdk.GC.create buffer) ~x:0 ~y:0 - ~width:50 ~height:50 ~filled:true () ; - print_string "get_buffer: SEEMS TO WORK (hint: force the widget redrawing)\n"; - flush stdout -;; - -let get_frame mathview () = - let frame = mathview#get_frame in - frame#set_shadow_type `NONE ; - print_string "get_frame: SEEMS TO WORK\n" ; - flush stdout -;; - -let set_font_size mathview () = - mathview#set_font_size 24 ; - print_string "set_font_size: FONT IS NOW 24\n" ; - flush stdout -;; - -let get_font_size mathview () = - print_string ("get_font_size: " ^ string_of_int (mathview#get_font_size) ^ "\n") ; - flush stdout -;; - -let set_anti_aliasing mathview () = - mathview#set_anti_aliasing true ; - print_string "set_anti_aliasing: ON\n" ; - flush stdout -;; - -let get_anti_aliasing mathview () = - print_string ("get_anti_aliasing: " ^ - (match mathview#get_anti_aliasing with true -> "ON" | false -> "OFF") ^ - "\n") ; - flush stdout -;; - -let set_kerning mathview () = - mathview#set_kerning true ; - print_string "set_kerning: ON\n" ; - flush stdout -;; - -let get_kerning mathview () = - print_string ("get_kerning: " ^ - (match mathview#get_kerning with true -> "ON" | false -> "OFF") ^ - "\n") ; - flush stdout -;; - -let set_log_verbosity mathview () = - mathview#set_log_verbosity 3 ; - print_string "set_log_verbosity: NOW IS 3\n" ; - flush stdout -;; - -let get_log_verbosity mathview () = - print_string ("get_log_verbosity: " ^ - string_of_int mathview#get_log_verbosity ^ - "\n") ; - flush stdout -;; - -let export_to_postscript (mathview : GMathView.math_view) () = - mathview#export_to_postscript ~filename:"test.ps" (); - print_string "expor_to_postscript: SEEMS TO WORK (hint: look at test.ps)\n"; - flush stdout -;; - -(* Widget creation *) -let main_window = GWindow.window ~title:"GtkMathView test" () in -let vbox = GPack.vbox ~packing:main_window#add () in -let sw = GBin.scrolled_window ~width:50 ~height:50 ~packing:vbox#pack () in -let mathview= GMathView.math_view ~packing:sw#add ~width:50 ~height:50 () in -let table = GPack.table ~rows:6 ~columns:5 ~packing:vbox#pack () in -let button_gtk=GButton.button ~label:"activate Gtk fonts" ~packing:(table#attach ~left:0 ~top:0) () in -let button_load = GButton.button ~label:"load" ~packing:(table#attach ~left:1 ~top:0) () in -let button_unload = GButton.button ~label:"unload" ~packing:(table#attach ~left:2 ~top:0) () in -let button_get_selection = GButton.button ~label:"get_selection" ~packing:(table#attach ~left:3 ~top:0) () in -let button_set_selection = GButton.button ~label:"set_selection" ~packing:(table#attach ~left:4 ~top:0) () in -let button_get_width = GButton.button ~label:"get_width" ~packing:(table#attach ~left:0 ~top:1) () in -let button_get_height = GButton.button ~label:"get_height" ~packing:(table#attach ~left:1 ~top:1) () in -let button_get_top = GButton.button ~label:"get_top" ~packing:(table#attach ~left:2 ~top:1) () in -let button_set_top = GButton.button ~label:"set_top" ~packing:(table#attach ~left:3 ~top:1) () in -let button_set_adjustments = GButton.button ~label:"set_adjustments" ~packing:(table#attach ~left:4 ~top:1) () in -let button_get_hadjustment = GButton.button ~label:"get_hadjustment" ~packing:(table#attach ~left:0 ~top:2) () in -let button_get_vadjustment = GButton.button ~label:"get_vadjustment" ~packing:(table#attach ~left:1 ~top:2) () in -let button_get_buffer = GButton.button ~label:"get_buffer" ~packing:(table#attach ~left:2 ~top:2) () in -let button_get_frame = GButton.button ~label:"get_frame" ~packing:(table#attach ~left:3 ~top:2) () in -let button_set_font_size = GButton.button ~label:"set_font_size" ~packing:(table#attach ~left:4 ~top:2) () in -let button_get_font_size = GButton.button ~label:"get_font_size" ~packing:(table#attach ~left:0 ~top:3) () in -let button_set_anti_aliasing = GButton.button ~label:"set_anti_aliasing" ~packing:(table#attach ~left:1 ~top:3) () in -let button_get_anti_aliasing = GButton.button ~label:"get_anti_aliasing" ~packing:(table#attach ~left:2 ~top:3) () in -let button_set_kerning = GButton.button ~label:"set_kerning" ~packing:(table#attach ~left:3 ~top:3) () in -let button_get_kerning = GButton.button ~label:"get_kerning" ~packing:(table#attach ~left:4 ~top:3) () in -let button_set_log_verbosity = GButton.button ~label:"set_log_verbosity" ~packing:(table#attach ~left:0 ~top:4) () in -let button_get_log_verbosity = GButton.button ~label:"get_log_verbosity" ~packing:(table#attach ~left:1 ~top:4) () in -let button_export_to_postscript = GButton.button ~label:"export_to_postscript" ~packing:(table#attach ~left:2 ~top:4) () in -let button_t1 = GButton.button ~label:"activate T1 fonts" ~packing:(table#attach ~left:3 ~top:4) () in -let button_get_font_manager_type = GButton.button ~label:"get_font_manager" ~packing:(table#attach ~left:4 ~top:4) () in -(* Signals connection *) -ignore(button_gtk#connect#clicked (activate_gtk mathview)) ; -ignore(button_load#connect#clicked (load mathview)) ; -ignore(button_unload#connect#clicked (unload mathview)) ; -ignore(button_get_selection#connect#clicked (get_selection mathview)) ; -ignore(button_set_selection#connect#clicked (set_selection mathview)) ; -ignore(button_get_width#connect#clicked (get_width mathview)) ; -ignore(button_get_height#connect#clicked (get_height mathview)) ; -ignore(button_get_top#connect#clicked (get_top mathview)) ; -ignore(button_set_top#connect#clicked (set_top mathview)) ; -ignore(button_set_adjustments#connect#clicked (set_adjustments mathview)) ; -ignore(button_get_hadjustment#connect#clicked (get_hadjustment mathview)) ; -ignore(button_get_vadjustment#connect#clicked (get_vadjustment mathview)) ; -ignore(button_get_buffer#connect#clicked (get_buffer mathview)) ; -ignore(button_get_frame#connect#clicked (get_frame mathview)) ; -ignore(button_set_font_size#connect#clicked (set_font_size mathview)) ; -ignore(button_get_font_size#connect#clicked (get_font_size mathview)) ; -ignore(button_set_anti_aliasing#connect#clicked (set_anti_aliasing mathview)) ; -ignore(button_get_anti_aliasing#connect#clicked (get_anti_aliasing mathview)) ; -ignore(button_set_kerning#connect#clicked (set_kerning mathview)) ; -ignore(button_get_kerning#connect#clicked (get_kerning mathview)) ; -ignore(button_set_log_verbosity#connect#clicked (set_log_verbosity mathview)) ; -ignore(button_get_log_verbosity#connect#clicked (get_log_verbosity mathview)) ; -ignore(button_export_to_postscript#connect#clicked (export_to_postscript mathview)) ; -ignore(button_t1#connect#clicked (activate_t1 mathview)) ; -ignore(button_get_font_manager_type#connect#clicked (get_font_manager_type mathview)) ; -ignore(mathview#connect#jump jump) ; -ignore(mathview#connect#clicked clicked) ; -ignore(mathview#connect#selection_changed (selection_changed mathview)) ; -(* Main Loop *) -main_window#show () ; -GMain.Main.main () -;; diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/test.xml deleted file mode 100644 index b0f8c1563..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.1/test/test.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - a - - x - - + - b - - - - x - 2 - - + - - p - - x - - + - q - - - - d - x - = - - - a2 - - - ln - - - ( - - x2 - + - - p - - x - - + - q - - ) - - - - + - - - - - 2 - - b - - - - - a - - p - - - - - - 4 - - q - - - - - p - 2 - - - - - - - arctg - - - - - 2 - - x - - + - p - - - - - 4 - - q - - - - - p - 2 - - - - - - - + - c - - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1-1.spec b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1-1.spec deleted file mode 100644 index ed7e49232..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1-1.spec +++ /dev/null @@ -1,25 +0,0 @@ -Summary: GtkMathView : the binding for lablgtk of the GtkMathView widget -Name: lablgtk-20001129_gtkmathview -Version: 0.2.1 -Release: 1 -Copyright: LGPL -Group: Development/Libraries -Requires: lablgtk_20001129 gtkmathview -Source: www.cs.unibo.it:/~lpadovan/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1.tar.gz -%description -GtkMathView is the binding for lablgtk of the GtkMathView widget. - -%prep -%setup - -%build -make -make opt - -%install -make install - -%files -%doc COPYING - -/usr/lib/ocaml/lablgtk/mathview diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/.cvsignore deleted file mode 100644 index cd9e25037..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmi *.cmo *.cmx *.cma *.cmxa config.make diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/.depend b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/.depend deleted file mode 100644 index 600449bb8..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/.depend +++ /dev/null @@ -1,4 +0,0 @@ -gMathView.cmo: gtkMathView.cmo gtk_mathview.cmo -gMathView.cmx: gtkMathView.cmx gtk_mathview.cmx -gtkMathView.cmo: gtk_mathview.cmo -gtkMathView.cmx: gtk_mathview.cmx diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/COPYING b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/COPYING deleted file mode 100644 index 20b480a10..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/COPYING +++ /dev/null @@ -1,11 +0,0 @@ -This library is made available under the LGPL. -You should have got a copy of the LGPL with Objective Caml. -The LGPL applies to all the files in this directory, but not in -subdirectories. - -For the test subdirectory, there is no specific licensing policy, -but you may freely take inspiration from the code, and copy parts of -it in your application. - -Author: - Claudio Sacerdoti Coen diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/Makefile deleted file mode 100644 index 0bdfed0af..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/Makefile +++ /dev/null @@ -1,108 +0,0 @@ -# Makefile for lablgtk_mathview. - -MINIDOMDIR = ./minidom -TESTDIR = ./test -MLFLAGS += -I $(LABLGTKDIR) -I $(MINIDOMDIR) - -TARGETS = ml_gtk_mathview.o lablgtkmathview.cma - -all: Minidom $(TARGETS) - -opt: Minidom.opt lablgtkmathviewopt - -Minidom: - cd $(MINIDOMDIR); make - -Minidom.opt: - cd $(MINIDOMDIR); make opt - -configure: - @rm -f config.make - @$(MAKE) --no-print-directory -f configure.mk - -depend: - @rm -f .depend - @$(MAKE) --no-print-directory -f configure.mk .depend - -.depend config.make: - @$(MAKE) --no-print-directory -f configure.mk - -COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -include config.make - -INSTALLDIR = $(LIBDIR)/lablgtk/mathview - -MLLIBS = lablgtkmathview.cma -CLIBS = -MLLINK = unix.cma str.cma - -ifdef DEBUG -CFLAGS = -g $(GTKCFLAGS) -MLLINK += -cclib -lcamlrund -MLFLAGS += -g -else -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -endif -CFLAGS += $(MINIDOMCFLAGS) $(GTKMATHVIEWCFLAGS) - -THFLAGS = -thread -THLINK = unix.cma threads.cma - -ifdef USE_CC -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -endif - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.c.o: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< -.var.h: - ./var2def < $< > $@ -.var.c: - ./var2conv < $< > $@ - -# Targets -COBJS = ml_gtk_mathview.o -MLOBJS = gtk_mathview.cmo gtkMathView.cmo gMathView.cmo -ALLOBJS = $(MLOBJS) - -lablgtkmathviewopt: $(CLIBS) $(MLLIBS:.cma=.cmxa) - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR) - if test -f *.mli ; then cp *.mli $(INSTALLDIR) ; fi - cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR) - cp $(MLLIBS) $(INSTALLDIR) - cp $(COBJS) $(INSTALLDIR) - if test ! -z "$(CLIBS)" ; then cp $(CLIBS) $(INSTALLDIR) ; fi - if test -f lablgtkmathview.cmxa; then \ - cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \ - $(INSTALLDIR); fi - -lablgtkmathview.cma: $(MLOBJS) - $(LINKER) -a -custom -o $@ $(MLOBJS) $(GTKLIBS) -cclib "$(GTKMATHVIEWLIBS)" -cclib "$(MINIDOMLIBS)" -lablgtkmathview.cmxa: $(MLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) $(GTKLIBS) -cclib "$(GTKMATHVIEWLIBS)" -cclib "$(MINIDOMLIBS)" - -ml_gtk.o: $(LABLGTKDIR)/gtk_tags.c $(LABLGTKDIR)/gtk_tags.h \ - $(LABLGTKDIR)/ml_gtk.h $(LABLGTKDIR)/ml_gdk.h $(LABLGTKDIR)/wrappers.h - -clean: - rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS) - cd $(MINIDOMDIR); make clean - cd $(TESTDIR); make clean - -include .depend diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/configure.mk b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/configure.mk deleted file mode 100644 index 15e2c3735..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/configure.mk +++ /dev/null @@ -1,62 +0,0 @@ -# makefile for configuring lablGTK_mathview - -# Default compilers -CAMLC = ocamlc -CAMLOPT = ocamlopt - -# Default installation directories -BINDIR = `$(GETBINDIR)` -INSTALLDIR = $(LIBDIR)/lablgtk/mathview - -# Autoconf -GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//' -LIBDIR = `$(GETLIBDIR)` -GETBINDIR = $(GETLIBDIR) | sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|' -GETRANLIB = which ranlib 2>/dev/null | sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/' - -LABLGTKDIR = $(LIBDIR)/lablgtk - -ifdef USE_GNOME -GTKGETCFLAGS = gtk-config --cflags`" -I"`gnome-config --includedir -GNOMELIBS = `gnome-config --libs gtkxmhtml` -else -GTKGETCFLAGS = gtk-config --cflags -endif - -GTKGETLIBS = gtk-config --libs - -configure: .depend config.make - -.depend: - ocamldep *.ml *.mli > .depend - -config.make: - @echo CAMLC=$(CAMLC) > config.make - @echo CAMLOPT=$(CAMLOPT) >> config.make - @echo USE_GL=$(USE_GL) >> config.make - @echo USE_GNOME=$(USE_GNOME) >> config.make - @echo USE_CC=$(USE_CC) >> config.make - @echo DEBUG=$(DEBUG) >> config.make - @echo CC=$(CC) >> config.make - @echo RANLIB=`$(GETRANLIB)` >> config.make - @echo LIBDIR=$(LIBDIR) >> config.make - @echo BINDIR=`$(GETBINDIR)` >> config.make - @echo INSTALLDIR=$(INSTALLDIR) >> config.make - @echo LABLGTKDIR=$(LABLGTKDIR) >> config.make -# Luca: was -# @echo GTKCFLAGS=`$(GTKGETCFLAGS)` -I/usr/lib/ocaml/lablgtk >> config.make -# Luca: now - @echo GTKCFLAGS=`$(GTKGETCFLAGS)` -I$(LIBDIR)/lablgtk >> config.make - @echo GTKLIBS=`$(GTKGETLIBS)` | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make -# Luca: GtkMathView configuration - @echo GTKMATHVIEWCFLAGS=`gtkmathview-config --cflags` >> config.make - @echo MINIDOMCFLAGS=`minidom-config --cflags` >> config.make - @echo GTKMATHVIEWLIBS=`gtkmathview-config --libs` >> config.make - @echo MINIDOMLIBS=`minidom-config --libs` >> config.make -# Luca: end of GtkMathView configuration - @echo GNOMELIBS=$(GNOMELIBS) | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - cat config.make diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gMathView.ml deleted file mode 100644 index e897ccfdb..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gMathView.ml +++ /dev/null @@ -1,80 +0,0 @@ -open Gaux -open Gtk -open Gtk_mathview -open GtkBase -open GtkMathView -open GObj - -exception ErrorLoadingFile of string;; -exception ErrorWritingFile of string;; -exception NoSelection;; - -class math_view_signals obj = object - inherit GContainer.container_signals obj - method clicked = GtkSignal.connect ~sgn:MathView.Signals.clicked obj ~after - method jump = GtkSignal.connect ~sgn:MathView.Signals.jump obj ~after - method selection_changed = - GtkSignal.connect ~sgn:MathView.Signals.selection_changed obj ~after -end - -class math_view obj = object - inherit GContainer.container (obj : Gtk_mathview.math_view obj) - method connect = new math_view_signals obj - method load ~filename = - if not (MathView.load obj ~filename) then raise (ErrorLoadingFile filename) - method unload = MathView.unload obj - method get_selection = MathView.get_selection obj - method set_selection (node : Ominidom.o_mDOMNode option) = MathView.set_selection obj node - method get_width = MathView.get_width obj - method get_height = MathView.get_height obj - method get_top = MathView.get_top obj - method set_top = MathView.set_top obj - method set_adjustments = - fun adj1 adj2 -> - MathView.set_adjustments obj (GData.as_adjustment adj1) - (GData.as_adjustment adj2) - method get_hadjustment = new GData.adjustment (MathView.get_hadjustment obj) - method get_vadjustment = new GData.adjustment (MathView.get_vadjustment obj) - method get_buffer = MathView.get_buffer obj - method get_frame = new GBin.frame (MathView.get_frame obj) - method set_font_size = MathView.set_font_size obj - method get_font_size = MathView.get_font_size obj - method set_anti_aliasing = MathView.set_anti_aliasing obj - method get_anti_aliasing = MathView.get_anti_aliasing obj - method set_kerning = MathView.set_kerning obj - method get_kerning = MathView.get_kerning obj - method set_log_verbosity = MathView.set_log_verbosity obj - method get_log_verbosity = MathView.get_log_verbosity obj - method export_to_postscript - ?(width = 595) ?(height = 822) ?(x_margin = 72) ?(y_margin = 72) - ?(disable_colors = false) ~filename () = - let result = MathView.export_to_postscript obj - ~width ~height ~x_margin ~y_margin ~disable_colors ~filename - in - if not result then raise (ErrorWritingFile filename) - method get_font_manager_type = MathView.get_font_manager_type obj - method set_font_manager_type ~fm_type = MathView.set_font_manager_type obj ~fm_type -end - -let math_view ?adjustmenth ?adjustmentv ?font_size ?font_manager ?border_width - ?width ?height ?packing ?show () = - let w = - MathView.create - ?adjustmenth:(may_map ~f:GData.as_adjustment adjustmenth) - ?adjustmentv:(may_map ~f:GData.as_adjustment adjustmentv) - () - in - Container.set w ?border_width ?width ?height; - let mathview = pack_return (new math_view w) ~packing ~show in - begin - match font_size with - | Some size -> mathview#set_font_size size - | None -> () - end; - begin - match font_manager with - | Some manager -> mathview#set_font_manager_type ~fm_type:manager - | None -> () - end; - mathview -;; diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gtkMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gtkMathView.ml deleted file mode 100644 index 4c893fab4..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gtkMathView.ml +++ /dev/null @@ -1,118 +0,0 @@ -open Gtk -open Gtk_mathview -open Tags -open GtkBase -open Gpointer - -external mDOMNode_of_boxed_option : - Gpointer.boxed option -> Minidom.mDOMNode = - "ml_gtk_math_view_mDOMNode_of_bodex_option" - -external mDOMNode_option_of_boxed_option : - Gpointer.boxed option -> Minidom.mDOMNode option = - "ml_gtk_math_view_mDOMNode_option_of_bodex_option" - -let o_mDOMNode_of_mDOMNode node = new Ominidom.o_mDOMNode node - -let o_mDOMNode_option_of_mDOMNode_option = - function - | Some x -> Some (o_mDOMNode_of_mDOMNode x) - | None -> None - -let mDOMNode_option_of_o_mDOMNode_option = - function - | Some x -> Some (x#get_dom_node) - | None -> None - -module MathView = struct - exception NoSelection - - let cast w : math_view obj = Object.try_cast w "GtkMathView" - external create : Gtk.adjustment optobj -> Gtk.adjustment optobj -> - math_view obj = "ml_gtk_math_view_new" - let create ~adjustmenth ~adjustmentv () = - create (optboxed adjustmenth) (optboxed adjustmentv) - external load : [>`math_view] obj -> filename:string -> bool = - "ml_gtk_math_view_load" - external unload : [>`math_view] obj -> unit = - "ml_gtk_math_view_unload" - external raw_get_selection : [>`math_view] obj -> Minidom.mDOMNode option = - "ml_gtk_math_view_get_selection" - let get_selection obj = - o_mDOMNode_option_of_mDOMNode_option (raw_get_selection obj) - external raw_set_selection : [>`math_view] obj -> Minidom.mDOMNode option -> unit= - "ml_gtk_math_view_set_selection" - let set_selection obj node = - raw_set_selection obj (mDOMNode_option_of_o_mDOMNode_option node) - external get_width : [>`math_view] obj -> int = - "ml_gtk_math_view_get_width" - external get_height : [>`math_view] obj -> int = - "ml_gtk_math_view_get_height" - external get_top : [>`math_view] obj -> (int * int) = - "ml_gtk_math_view_get_top" - external set_top : [>`math_view] obj -> int -> int -> unit = - "ml_gtk_math_view_set_top" - external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit = - "ml_gtk_math_view_set_adjustments" - external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj = - "ml_gtk_math_view_get_hadjustment" - external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj = - "ml_gtk_math_view_get_vadjustment" - external get_buffer : [>`math_view] obj -> Gdk.pixmap = - "ml_gtk_math_view_get_buffer" - external get_frame : [>`math_view] obj -> [`frame] obj = - "ml_gtk_math_view_get_frame" - external set_font_size : [>`math_view] obj -> int -> unit = - "ml_gtk_math_view_set_font_size" - external get_font_size : [>`math_view] obj -> int = - "ml_gtk_math_view_get_font_size" - external set_anti_aliasing : [>`math_view] obj -> bool -> unit = - "ml_gtk_math_view_set_anti_aliasing" - external get_anti_aliasing : [>`math_view] obj -> bool = - "ml_gtk_math_view_get_anti_aliasing" - external set_kerning : [>`math_view] obj -> bool -> unit = - "ml_gtk_math_view_set_kerning" - external get_kerning : [>`math_view] obj -> bool = - "ml_gtk_math_view_get_kerning" - external set_log_verbosity : [>`math_view] obj -> int -> unit = - "ml_gtk_math_view_set_log_verbosity" - external get_log_verbosity : [>`math_view] obj -> int = - "ml_gtk_math_view_get_log_verbosity" - external export_to_postscript : - [>`math_view] obj -> width:int -> height:int -> x_margin:int -> y_margin:int -> disable_colors:bool -> filename:string -> bool = - "ml_gtk_math_view_export_to_postscript_bytecode" "ml_gtk_math_view_export_to_postscript_native" - external get_font_manager_type : [>`math_view] obj -> - [`font_manager_gtk | `font_manager_t1] = - "ml_gtk_math_view_get_font_manager_type" - external set_font_manager_type : [>`math_view] obj -> - fm_type:[`font_manager_gtk | `font_manager_t1] -> unit = - "ml_gtk_math_view_set_font_manager_type" - - module Signals = struct - open GtkSignal - - let clicked : ([>`math_view],_) t = - let marshal_clicked f _ = - function - [GtkArgv.POINTER node] -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed_option node)) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked" - in - { name = "clicked"; marshaller = marshal_clicked } - - let jump : ([>`math_view],_) t = - let marshal_jump f _ = - function - [GtkArgv.POINTER node] -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed_option node)) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_jump" - in - { name = "jump"; marshaller = marshal_jump } - - let selection_changed : ([>`math_view],_) t = - let marshal_selection_changed f _ = - function - [GtkArgv.POINTER node] -> f (o_mDOMNode_option_of_mDOMNode_option (mDOMNode_option_of_boxed_option node)) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_selection_changed" - in - { name = "selection_changed"; marshaller = marshal_selection_changed } - end -end diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gtk_mathview.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gtk_mathview.ml deleted file mode 100644 index 745a1ba82..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/gtk_mathview.ml +++ /dev/null @@ -1 +0,0 @@ -type math_view = [`widget|`container|`bin|`eventbox|`math_view] diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/.cvsignore deleted file mode 100644 index 84bdd8eff..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmi *.cmo *.cmx test test.opt diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/Makefile deleted file mode 100644 index cacfccacb..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//' -LIBDIR = `$(GETLIBDIR)` -INSTALLDIR = $(LIBDIR)/minidom -OBJECTS = minidom.cmi minidom.cmo ml_minidom.o ominidom.cmi ominidom.cmo -OBJECTS_OPT = minidom.cmx ominidom.cmx -INST = minidom.o ominidom.o ml_minidom.h minidom.mli - -all: $(OBJECTS) test - -opt: $(OBJECTS_OPT) test.opt - -ml_minidom.o: ml_minidom.c - gcc -c -I$(LIBDIR)/caml/ `glib-config --cflags` `minidom-config --cflags` $< - -minidom.cmi: minidom.mli - ocamlc -c $< - -minidom.cmo: minidom.ml minidom.cmi - ocamlc -c $< - -minidom.cmx: minidom.ml minidom.cmi - ocamlopt -c $< - -ominidom.cmi: ominidom.mli - ocamlc -c $< - -ominidom.cmo: ominidom.ml - ocamlc -c $< - -ominidom.cmx: ominidom.ml - ocamlopt -c $< - -test.cmo: test.ml minidom.cmo - ocamlc -c test.ml - -test.cmx: test.ml minidom.cmx - ocamlopt -c test.ml - -test: test.cmo minidom.cmo ml_minidom.o - ocamlc -custom -o test minidom.cmo test.cmo ml_minidom.o \ - -cclib "`glib-config --libs` `minidom-config --libs`" - -test.opt: test.cmx minidom.cmx ml_minidom.o - ocamlopt -o test.opt minidom.cmx test.cmx ml_minidom.o \ - -cclib "`glib-config --libs` `minidom-config --libs`" - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(OBJECTS) $(OBJECTS_OPT) $(INST) $(INSTALLDIR) - -clean: - rm -f *.o *.cm? test test.opt diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/minidom.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/minidom.ml deleted file mode 100644 index 31e677b3f..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/minidom.ml +++ /dev/null @@ -1,61 +0,0 @@ - -type mDOMString -type mDOMDoc -type mDOMNode -type mDOMAttr -type mDOMEntity - -external string_of_mDOMString : mDOMString -> string = "ml_string_of_mDOMString" -external mDOMString_of_string : string -> mDOMString = "ml_mDOMString_of_string" -external mDOMString_eq : string -> string -> bool = "ml_mDOMString_eq" - -external doc_load : string -> mDOMDoc = "ml_doc_load" -external doc_unload : mDOMDoc -> unit = "ml_doc_unload" - -external doc_new : mDOMString -> mDOMDoc = "ml_doc_new" -external doc_get_root_node : mDOMDoc -> mDOMNode = "ml_doc_get_root_node" - -external doc_add_entity : mDOMDoc -> mDOMString -> mDOMString -> mDOMEntity = "ml_doc_add_entity" -external doc_get_entity : mDOMDoc -> mDOMString -> mDOMEntity option = "ml_doc_get_entity" -external doc_get_predefined_entity : mDOMDoc -> mDOMString -> mDOMEntity option = "ml_doc_get_predefined_entity" -external entity_get_content : mDOMEntity -> mDOMString = "ml_entity_get_content" - -external node_is_text : mDOMNode -> bool = "ml_node_is_text" -external node_is_element : mDOMNode -> bool = "ml_node_is_element" -external node_is_blank : mDOMNode -> bool = "ml_node_is_blank" -external node_is_entity_ref : mDOMNode -> bool = "ml_node_is_entity_ref" -external node_get_type : mDOMNode -> int = "ml_node_get_type" -external node_get_name : mDOMNode -> mDOMString option = "ml_node_get_name" -external node_get_ns_uri : mDOMNode -> mDOMString option = "ml_node_get_ns_uri" -external node_get_attribute : mDOMNode -> mDOMString -> mDOMString option = "ml_node_get_attribute" -external node_get_attribute_ns : mDOMNode -> mDOMString -> mDOMString -> mDOMString option = "ml_node_get_attribute_ns" -external node_get_content : mDOMNode -> mDOMString option = "ml_node_get_content" -external node_get_parent : mDOMNode -> mDOMNode option = "ml_node_get_parent" -external node_get_prev_sibling : mDOMNode -> mDOMNode option = "ml_node_get_prev_sibling" -external node_get_next_sibling : mDOMNode -> mDOMNode option = "ml_node_get_next_sibling" -external node_get_first_child : mDOMNode -> mDOMNode option = "ml_node_get_first_child" -external node_get_first_attribute : mDOMNode -> mDOMAttr option = "ml_node_get_first_attribute" -external node_is_first : mDOMNode -> bool = "ml_node_is_first" -external node_is_last : mDOMNode -> bool = "ml_node_is_last" - -external attr_get_name : mDOMAttr -> mDOMString option = "ml_attr_get_name" -external attr_get_ns_uri : mDOMAttr -> mDOMString option = "ml_attr_get_ns_uri" -external attr_get_value : mDOMAttr -> mDOMString option = "ml_attr_get_value" -external attr_get_prev_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_prev_sibling" -external attr_get_next_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_next_sibling" -external attr_get_parent : mDOMAttr -> mDOMNode option = "ml_attr_get_parent" - -let rec node_list_of_node_first = - function None -> [] - | Some node -> node :: (node_list_of_node_first (node_get_next_sibling node)) - -let rec attr_list_of_attr_first = - function None -> [] - | Some attr -> attr :: (attr_list_of_attr_first (attr_get_next_sibling attr)) - -let node_get_children node = - (node_list_of_node_first (node_get_first_child node)) - -let node_get_attributes node = - (attr_list_of_attr_first (node_get_first_attribute node)) - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/minidom.mli b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/minidom.mli deleted file mode 100644 index 0b655955b..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/minidom.mli +++ /dev/null @@ -1,50 +0,0 @@ - -type mDOMString -type mDOMDoc -type mDOMNode -type mDOMAttr -type mDOMEntity - -external string_of_mDOMString : mDOMString -> string = "ml_string_of_mDOMString" -external mDOMString_of_string : string -> mDOMString = "ml_mDOMString_of_string" -external mDOMString_eq : string -> string -> bool = "ml_mDOMString_eq" - -external doc_load : string -> mDOMDoc = "ml_doc_load" -external doc_unload : mDOMDoc -> unit = "ml_doc_unload" - -external doc_new : mDOMString -> mDOMDoc = "ml_doc_new" -external doc_get_root_node : mDOMDoc -> mDOMNode = "ml_doc_get_root_node" - -external doc_add_entity : doc:mDOMDoc -> name:mDOMString -> content:mDOMString -> mDOMEntity = "ml_doc_add_entity" -external doc_get_entity : doc:mDOMDoc -> name:mDOMString -> mDOMEntity option = "ml_doc_get_entity" -external doc_get_predefined_entity : doc:mDOMDoc -> name:mDOMString -> mDOMEntity option = "ml_doc_get_predefined_entity" -external entity_get_content : mDOMEntity -> mDOMString = "ml_entity_get_content" - -external node_is_text : mDOMNode -> bool = "ml_node_is_text" -external node_is_element : mDOMNode -> bool = "ml_node_is_element" -external node_is_blank : mDOMNode -> bool = "ml_node_is_blank" -external node_is_entity_ref : mDOMNode -> bool = "ml_node_is_entity_ref" -external node_get_type : mDOMNode -> int = "ml_node_get_type" -external node_get_name : mDOMNode -> mDOMString option = "ml_node_get_name" -external node_get_ns_uri : mDOMNode -> mDOMString option = "ml_node_get_ns_uri" -external node_get_attribute : node:mDOMNode -> name:mDOMString -> mDOMString option = "ml_node_get_attribute" -external node_get_attribute_ns : node:mDOMNode -> name:mDOMString -> ns_uri:mDOMString -> mDOMString option = "ml_node_get_attribute_ns" -external node_get_content : mDOMNode -> mDOMString option = "ml_node_get_content" -external node_get_parent : mDOMNode -> mDOMNode option = "ml_node_get_parent" -external node_get_prev_sibling : mDOMNode -> mDOMNode option = "ml_node_get_prev_sibling" -external node_get_next_sibling : mDOMNode -> mDOMNode option = "ml_node_get_next_sibling" -external node_get_first_child : mDOMNode -> mDOMNode option = "ml_node_get_first_child" -external node_get_first_attribute : mDOMNode -> mDOMAttr option = "ml_node_get_first_attribute" -external node_is_first : mDOMNode -> bool = "ml_node_is_first" -external node_is_last : mDOMNode -> bool = "ml_node_is_last" - -external attr_get_name : mDOMAttr -> mDOMString option = "ml_attr_get_name" -external attr_get_ns_uri : mDOMAttr -> mDOMString option = "ml_attr_get_ns_uri" -external attr_get_value : mDOMAttr -> mDOMString option = "ml_attr_get_value" -external attr_get_prev_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_prev_sibling" -external attr_get_next_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_next_sibling" -external attr_get_parent : mDOMAttr -> mDOMNode option = "ml_attr_get_parent" - -val node_get_children : mDOMNode -> mDOMNode list -val node_get_attributes : mDOMNode -> mDOMAttr list - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ml_minidom.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ml_minidom.c deleted file mode 100644 index 10626143c..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ml_minidom.c +++ /dev/null @@ -1,288 +0,0 @@ - -#include -#include -#include - -#include "minidom.h" - -#define Val_ptr(p) ((value) (p)) -#define Val_option(p,f) ((p != NULL) ? ml_some(f(p)) : Val_unit) -#define Val_mDOMString(s) (copy_string((char*) (s))) -#define mDOMString_val(v) ((mDOMStringRef) String_val(v)) - -static value -ml_some(value v) -{ - CAMLparam1(v); - value ret = alloc_small(1,0); - Field(ret,0) = v; - CAMLreturn(ret); -} - -value -ml_string_of_mDOMString(value s) -{ - CAMLparam1(s); - CAMLreturn(s); -} - -value -ml_mDOMString_of_string(value s) -{ - CAMLparam1(s); - CAMLreturn(s); -} - -value -ml_doc_load(value file_name) -{ - mDOMDocRef doc_ref; - - CAMLparam1(file_name); - - doc_ref = mdom_load(String_val(file_name), FALSE, NULL); - if (doc_ref == NULL) failwith("minidom: could not load document"); - - CAMLreturn((value) doc_ref); -} - -value -ml_doc_unload(value doc) -{ - CAMLparam1(doc); - - mdom_unload((mDOMDocRef) doc); - - CAMLreturn(Val_unit); -} - -value -ml_doc_new(value s) -{ - mDOMDocRef doc_ref; - - CAMLparam1(s); - - doc_ref = mdom_doc_new(mDOMString_val(s)); - if (doc_ref == NULL) failwith("minidom: could not create new document"); - - CAMLreturn((value) doc_ref); -} - - -value -ml_doc_get_root_node(value doc) -{ - mDOMNodeRef root; - - CAMLparam1(doc); - root = mdom_doc_get_root_node((mDOMDocRef) doc); - if (root == NULL) failwith("minidom: document has no root node!"); - - CAMLreturn((value) root); -} - -value -ml_doc_add_entity(value doc, value name, value content) -{ - mDOMEntityRef ent; - - CAMLparam3(doc, name, content); - ent = mdom_doc_add_entity((mDOMDocRef) doc, mDOMString_val(name), mDOMString_val(content)); - if (ent == NULL) failwith("minidom: could not add entity"); - - CAMLreturn((value) ent); -} - -value -ml_doc_get_entity(value doc, value name) -{ - mDOMEntityRef ent; - - CAMLparam2(doc, name); - ent = mdom_doc_get_entity((mDOMDocRef) doc, mDOMString_val(name)); - - CAMLreturn(Val_option(ent, Val_ptr)); -} - -value -ml_doc_get_predefined_entity(value name) -{ - mDOMEntityRef ent; - - CAMLparam1(name); - ent = mdom_get_predefined_entity(mDOMString_val(name)); - - CAMLreturn(Val_option(ent, Val_ptr)); -} - -value -ml_entity_get_content(value ent) -{ - CAMLparam1(ent); - CAMLreturn(Val_mDOMString(mdom_entity_get_content((mDOMEntityRef) ent))); -} - -value -ml_node_is_text(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_text((mDOMNodeRef) node))); -} - -value -ml_node_is_element(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_element((mDOMNodeRef) node))); -} - -value -ml_node_is_blank(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_blank((mDOMNodeRef) node))); -} - -value -ml_node_is_entity_ref(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_entity_ref((mDOMNodeRef) node))); -} - -value -ml_node_get_type(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_int(mdom_node_get_type((mDOMNodeRef) node))); -} - -value -ml_node_get_name(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_name((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_content(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_content((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_ns_uri(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_ns_uri((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_attribute(value node, value name) -{ - CAMLparam2(node,name); - CAMLreturn(Val_option(mdom_node_get_attribute((mDOMNodeRef) node, String_val(name)), Val_mDOMString)); -} - -value -ml_node_get_attribute_ns(value node, value name, value ns_uri) -{ - CAMLparam2(node,name); - CAMLreturn(Val_option(mdom_node_get_attribute_ns((mDOMNodeRef) node, - String_val(name), - String_val(ns_uri)), Val_mDOMString)); -} - -value -ml_node_get_parent(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_parent((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_prev_sibling(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_prev_sibling((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_next_sibling(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_next_sibling((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_first_child(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_first_child((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_first_attribute(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_first_attribute((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_is_first(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_first((mDOMNodeRef) node))); -} - -value -ml_node_is_last(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_last((mDOMNodeRef) node))); -} - -value -ml_attr_get_name(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_name((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_ns_uri(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_ns_uri((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_value(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_value((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_prev_sibling(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_prev_sibling((mDOMAttrRef) attr), Val_ptr)); -} - -value -ml_attr_get_next_sibling(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_next_sibling((mDOMAttrRef) attr), Val_ptr)); -} - -value -ml_attr_get_parent(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_parent((mDOMAttrRef) attr), Val_ptr)); -} - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ml_minidom.h b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ml_minidom.h deleted file mode 100644 index d22479964..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ml_minidom.h +++ /dev/null @@ -1,18 +0,0 @@ - -#ifndef ml_minidom_h -#define ml_minidom_h - -#define Val_ptr(p) ((value) (p)) -#ifndef Val_option -#define Val_option(p,f) ((p != NULL) ? ml_some(f(p)) : Val_unit) -#endif /* Val_option */ -#define Val_mDOMString(s) (copy_string((char*) (s))) -#define mDOMString_val(v) ((mDOMStringRef) String_val(v)) -#define mDOMNode_val(v) ((mDOMNodeRef) v) - -#define mDOMNode_option_mDOMNodeRef(p) (((p) != NULL) ? ml_some((value) (p)) : Val_unit) -#define mDOMNodeRef_mDOMNode_option(v) ((v == Val_unit) ? NULL : (mDOMNodeRef)Field((v),0)) -#define Val_mDOMNodeRef(p) (mDOMNode_option_mDOMNodeRef(p)) -#define mDOMNodeRef_val(v) (mDOMNodeRef_mDOMNode_option(v)) - -#endif /* ml_minidom_h */ diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ominidom.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ominidom.ml deleted file mode 100644 index 85ad2e4ed..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ominidom.ml +++ /dev/null @@ -1,156 +0,0 @@ - -exception Node_has_no_parent;; -exception Node_has_no_sibling of string;; -exception Node_has_no_children;; -exception Node_has_no_attributes;; -exception Attribute_has_no_sibling of string;; -exception Attribute_has_no_parent;; -exception Undefined_entity;; - -let option_to_exception v e = - match v with - Some x -> x - | None -> raise e -;; - -class o_mDOMString (str: Minidom.mDOMString) = - object - method get_dom_string = str - method get_string = Minidom.string_of_mDOMString str - end;; - -let o_mDOMString_of_string str = - new o_mDOMString (Minidom.mDOMString_of_string str) - -class o_mDOMEntity (ent : Minidom.mDOMEntity) = - object - method get_dom_entity = ent - method get_content = - new o_mDOMString (Minidom.entity_get_content ent) - end -;; - -class o_mDOMDoc (doc : Minidom.mDOMDoc) = - object - method get_dom_doc = doc - - method get_root_node = - new o_mDOMNode (Minidom.doc_get_root_node doc) - method add_entity (name : o_mDOMString) (value : o_mDOMString) = - new o_mDOMEntity - (Minidom.doc_add_entity doc - (name#get_dom_string) (value#get_dom_string) - ) - method get_entity (name : o_mDOMString) = - match Minidom.doc_get_entity doc (name#get_dom_string) with - | Some x -> new o_mDOMEntity x - | None -> raise Undefined_entity - method get_predefined_entity (name : o_mDOMString) = - match Minidom.doc_get_predefined_entity doc (name#get_dom_string) with - | Some x -> new o_mDOMEntity x - | None -> raise Undefined_entity - end -and o_mDOMNode (node : Minidom.mDOMNode) = - object - method get_dom_node = node - - method is_text = Minidom.node_is_text node - method is_element = Minidom.node_is_element node - method is_blank = Minidom.node_is_blank node - method is_entity_ref = Minidom.node_is_entity_ref node - - method get_type = Minidom.node_get_type node - method get_name = - match Minidom.node_get_name node with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_ns_uri = - match Minidom.node_get_ns_uri node with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_attribute (name : o_mDOMString) = - match Minidom.node_get_attribute node (name#get_dom_string) with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_attribute_ns (name : o_mDOMString) (uri : o_mDOMString) = - match - Minidom.node_get_attribute_ns node - (name#get_dom_string) (uri#get_dom_string) - with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_content = - match Minidom.node_get_content node with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_parent = - new o_mDOMNode - (option_to_exception (Minidom.node_get_parent node) Node_has_no_parent) - method get_prev_sibling = - new o_mDOMNode - (option_to_exception - (Minidom.node_get_prev_sibling node) - (Node_has_no_sibling "left") - ) - method get_next_sibling = - new o_mDOMNode - (option_to_exception - (Minidom.node_get_next_sibling node) - (Node_has_no_sibling "right") - ) - method get_first_child = - new o_mDOMNode - (option_to_exception - (Minidom.node_get_first_child node) - (Node_has_no_children) - ) - method get_first_attribute = - new o_mDOMAttr - (option_to_exception - (Minidom.node_get_first_attribute node) - (Node_has_no_attributes) - ) - method is_first = Minidom.node_is_first node - method is_last = Minidom.node_is_last node - - method get_children = - List.map (function x -> new o_mDOMNode x) (Minidom.node_get_children node) - method get_attributes = List.map - (function x -> new o_mDOMAttr x) (Minidom.node_get_attributes node) - end -and o_mDOMAttr (attr : Minidom.mDOMAttr) = - object - method get_dom_attr = attr - - method get_name = - match Minidom.attr_get_name attr with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_ns_uri = - match Minidom.attr_get_ns_uri attr with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_value = - match Minidom.attr_get_value attr with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_prev_sibling = - new o_mDOMAttr - (option_to_exception - (Minidom.attr_get_prev_sibling attr) - (Attribute_has_no_sibling "left") - ) - method get_next_sibling = - new o_mDOMAttr - (option_to_exception - (Minidom.attr_get_next_sibling attr) - (Attribute_has_no_sibling "right") - ) - method get_parent = - new o_mDOMNode - (option_to_exception - (Minidom.attr_get_parent attr) Attribute_has_no_parent - ) - end -;; - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ominidom.mli b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ominidom.mli deleted file mode 100644 index 24329544d..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/ominidom.mli +++ /dev/null @@ -1,64 +0,0 @@ -exception Node_has_no_parent -exception Node_has_no_sibling of string -exception Node_has_no_children -exception Node_has_no_attributes -exception Attribute_has_no_sibling of string -exception Attribute_has_no_parent -exception Undefined_entity - -class o_mDOMString : Minidom.mDOMString -> - object - method get_dom_string : Minidom.mDOMString - method get_string : string - end - -val o_mDOMString_of_string : string -> o_mDOMString - -class o_mDOMEntity : Minidom.mDOMEntity -> - object - method get_content : o_mDOMString - method get_dom_entity : Minidom.mDOMEntity - end - -class o_mDOMDoc : Minidom.mDOMDoc -> - object - method add_entity : o_mDOMString -> o_mDOMString -> o_mDOMEntity - method get_dom_doc : Minidom.mDOMDoc - method get_entity : o_mDOMString -> o_mDOMEntity - method get_predefined_entity : o_mDOMString -> o_mDOMEntity - method get_root_node : o_mDOMNode - end -and o_mDOMNode : Minidom.mDOMNode -> - object - method get_attribute : o_mDOMString -> o_mDOMString option - method get_attribute_ns : - o_mDOMString -> o_mDOMString -> o_mDOMString option - method get_attributes : o_mDOMAttr list - method get_children : o_mDOMNode list - method get_content : o_mDOMString option - method get_dom_node : Minidom.mDOMNode - method get_first_attribute : o_mDOMAttr - method get_first_child : o_mDOMNode - method get_name : o_mDOMString option - method get_next_sibling : o_mDOMNode - method get_ns_uri : o_mDOMString option - method get_parent : o_mDOMNode - method get_prev_sibling : o_mDOMNode - method get_type : int - method is_blank : bool - method is_element : bool - method is_entity_ref : bool - method is_first : bool - method is_last : bool - method is_text : bool - end -and o_mDOMAttr : Minidom.mDOMAttr -> - object - method get_dom_attr : Minidom.mDOMAttr - method get_name : o_mDOMString option - method get_next_sibling : o_mDOMAttr - method get_ns_uri : o_mDOMString option - method get_parent : o_mDOMNode - method get_prev_sibling : o_mDOMAttr - method get_value : o_mDOMString option - end diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/test.ml deleted file mode 100644 index 3c7a092e9..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/test.ml +++ /dev/null @@ -1,84 +0,0 @@ - -let doc = Minidom.doc_load "test.xml" - -let root = Minidom.doc_get_root_node doc - -let check_attribute_ns attr = - Printf.printf "\n\n"; - let ns_uri = Minidom.attr_get_ns_uri attr - and attr_name = Minidom.attr_get_name attr - and attr_value = Minidom.attr_get_value attr - and parent = Minidom.attr_get_parent attr - in - match parent,ns_uri,attr_name,attr_value with - Some parent_node,Some uri,Some attribute_name,Some attribute_value -> - let attr_value = Minidom.node_get_attribute_ns parent_node attribute_name uri - in begin - match attr_value with - Some attr1 -> - Printf.printf "found the attribute with ns %s (was %s)\n" - (Minidom.string_of_mDOMString attr1) (Minidom.string_of_mDOMString attribute_value) - | None -> - Printf.printf "attribute not found (uri was %s)!!!!\n" (Minidom.string_of_mDOMString uri) - end - | _ -> - Printf.printf "parent_node == NULL || uri == NULL || attribute_name == NULL || attribute_value == NULL\n" -;; - -let print_attribute attr = - check_attribute_ns attr; - let ns_uri = Minidom.attr_get_ns_uri attr - in - begin - match ns_uri with - Some uri -> Printf.printf " %s:" (Minidom.string_of_mDOMString uri); - | None -> () - end; - match ((Minidom.attr_get_name attr), (Minidom.attr_get_value attr)) with - (Some attr_name, Some attr_value) -> - Printf.printf " %s=\"%s\"" (Minidom.string_of_mDOMString attr_name) (Minidom.string_of_mDOMString attr_value) - | (Some attr_name, _) -> - Printf.printf " ??? attribute %s has no value !!!" (Minidom.string_of_mDOMString attr_name) - | (_,_) -> - Printf.printf " ??? very strange attribute !!!" -;; - -let rec print_node n node = - if Minidom.node_is_blank node then () - else if Minidom.node_is_element node then begin - match Minidom.node_get_name node with - Some node_name -> - begin - let children = Minidom.node_get_children node - and attributes = Minidom.node_get_attributes node - and ns_uri = Minidom.node_get_ns_uri node - and is_first,is_last = (Minidom.node_is_first node), (Minidom.node_is_last node) - in - for i = 1 to n do print_char ' ' done; - Printf.printf "<"; - begin - match ns_uri with - Some uri -> Printf.printf "%s:" (Minidom.string_of_mDOMString uri) - | None -> () - end; - Printf.printf "%s" (Minidom.string_of_mDOMString node_name); - List.iter print_attribute attributes; - Printf.printf ">\n"; - List.iter (print_node (n + 2)) children; - for i = 1 to n do print_char ' ' done; - Printf.printf "\n" (Minidom.string_of_mDOMString node_name) - end - | None -> Printf.printf "??? this node has no name !!!\n" - end else if Minidom.node_is_text node then begin - match Minidom.node_get_content node with - Some node_content -> - for i = 1 to n do print_char ' ' done; - Printf.printf "%s\n" (Minidom.string_of_mDOMString node_content) - | None -> Printf.printf "??? this node has no content !!!\n" - end else begin - Printf.printf "don't know how to manage a node with type %d\n" (Minidom.node_get_type node) - end -;; - -print_node 0 root;; - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/test.xml deleted file mode 100644 index 83d2eef68..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/minidom/test.xml +++ /dev/null @@ -1,505 +0,0 @@ - - - - - - - - DEFINITION and_ind() OF TYPE - - - - - - - - __ - - - - - - - - ( - - - - - Π - A - : - - Prop - - - - - - - . - - - - - Π - B - : - - Prop - - - - - - - . - - - - - Π - P - : - - Prop - - - - - - - . - - - - - Π - f - : - - ( - A - - - ( - B - - P - ) - - ) - - - - - - - . - - Π - a - : - - ( - and - - _ - - A - - _ - - B - ) - - . - P - - - - - - - - - - - - - - - - - - - - - - - - - - - - :> - - Prop - - - - - - - - ) - - - - - - - - cast - - prod - - A - - - Prop - - - - - prod - - B - - - Prop - - - - - prod - - P - - - Prop - - - - - prod - - f - - - arrow - A - - arrow - B - P - - - - - - prod - - a - - - app - and - A - B - - - - P - - - - - - - Prop - - - - - - - - - - - AS - - - - - - - - __ - - - - - - - λ - A - : - - Prop - - - - - - - . - - - - - λ - B - : - - Prop - - - - - - - . - - - - - λ - P - : - - Prop - - - - - - - . - - - - - λ - f - : - - ( - A - - - ( - B - - P - ) - - ) - - - - - - - . - - - - - λ - a - : - - ( - and - - _ - - A - - _ - - B - ) - - - - - - - . - - < - P - > - CASES - - _ - - a - - _ - - OF - - ( - conj - - _ - - $1 - - _ - - $2 - ) - - - - ( - f - - _ - - $1 - - _ - - $2 - ) - - - _ - - END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A - - - Prop - - - - - - B - - - Prop - - - - - - P - - - Prop - - - - - - f - - - arrow - A - - arrow - B - P - - - - - - - a - - - app - and - A - B - - - - - mutcase - P - a - - app - conj - $1 - $2 - - - app - f - $1 - $2 - - - - - - - - - - - - - - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/ml_gtk_mathview.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/ml_gtk_mathview.c deleted file mode 100644 index 185d9f04f..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/ml_gtk_mathview.c +++ /dev/null @@ -1,159 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include - -#include -#include "minidom/ml_minidom.h" - -/* : Next row should be put in a .h of lablgtk. */ -#define GtkAdjustment_val(val) check_cast(GTK_ADJUSTMENT,val) - -#define GtkMathView_val(val) check_cast(GTK_MATH_VIEW,val) - -#define FontManagerId_val(val) Int_val(val) -#define Val_FontManagerId(val) Val_int(val) - -FontManagerId -font_manager_id_of_value(value v) -{ - if (v == hash_variant("font_manager_gtk")) return FONT_MANAGER_GTK; - else if (v == hash_variant("font_manager_t1")) return FONT_MANAGER_T1; - else assert(0); -} - -value -value_of_font_manager_id(FontManagerId id) -{ - switch (id) { - case FONT_MANAGER_GTK: - return hash_variant("font_manager_gtk"); - case FONT_MANAGER_T1: - return hash_variant("font_manager_t1"); - default: - assert(0); - break; - } -} - -ML_2 (gtk_math_view_new,GtkAdjustment_val, GtkAdjustment_val, Val_GtkWidget_sink) -ML_2 (gtk_math_view_load, GtkMathView_val, String_val, Val_bool) -ML_1 (gtk_math_view_unload, GtkMathView_val, Unit) -/*ML_1 (gtk_math_view_dump, GtkMathView_val, Unit)*/ -ML_1 (gtk_math_view_get_selection, GtkMathView_val, Val_mDOMNodeRef) -ML_2 (gtk_math_view_set_selection, GtkMathView_val, mDOMNodeRef_val, Unit) -ML_1 (gtk_math_view_get_width, GtkMathView_val, Val_int) -ML_1 (gtk_math_view_get_height, GtkMathView_val, Val_int) -ML_3 (gtk_math_view_set_top, GtkMathView_val, Int_val, Int_val, Unit) -ML_3 (gtk_math_view_set_adjustments, GtkMathView_val, GtkAdjustment_val, GtkAdjustment_val, Unit) -ML_1 (gtk_math_view_get_hadjustment, GtkMathView_val, Val_GtkWidget) -ML_1 (gtk_math_view_get_vadjustment, GtkMathView_val, Val_GtkWidget) -ML_1 (gtk_math_view_get_buffer, GtkMathView_val, Val_GdkPixmap) -ML_1 (gtk_math_view_get_frame, GtkMathView_val, Val_GtkWidget) -ML_2 (gtk_math_view_set_font_size, GtkMathView_val, Int_val, Unit) -ML_1 (gtk_math_view_get_font_size, GtkMathView_val, Val_int) -ML_2 (gtk_math_view_set_anti_aliasing, GtkMathView_val, Bool_val, Unit) -ML_1 (gtk_math_view_get_anti_aliasing, GtkMathView_val, Val_bool) -ML_2 (gtk_math_view_set_kerning, GtkMathView_val, Bool_val, Unit) -ML_1 (gtk_math_view_get_kerning, GtkMathView_val, Val_bool) -ML_2 (gtk_math_view_set_log_verbosity, GtkMathView_val, Int_val, Unit) -ML_1 (gtk_math_view_get_log_verbosity, GtkMathView_val, Val_int) -ML_2 (gtk_math_view_set_font_manager_type, GtkMathView_val, font_manager_id_of_value, Unit) -ML_1 (gtk_math_view_get_font_manager_type, GtkMathView_val, value_of_font_manager_id) - -value -ml_gtk_math_view_export_to_postscript_native(value arg1, - value w, value h, value x0, value y0, value disable_colors, value arg2) -{ - CAMLparam5(arg1,w,h,x0,y0); - CAMLxparam2(disable_colors, arg2); - - char *filename; - FILE *fd; - int res; - filename = String_val (arg2); - if ((fd = fopen(filename, "w"))) { - gtk_math_view_export_to_postscript(GtkMathView_val (arg1), - Int_val(w), Int_val(h), Int_val(x0), Int_val(y0), Bool_val(disable_colors), fd); - fclose (fd); - res = 1; - } else { - fprintf(stderr, "Error opening file %s for writing\n", filename); - res = 0; - } - CAMLreturn (Val_bool(res)); -} - -value ml_gtk_math_view_export_to_postscript_bytecode (value* arg, int argn) -{ - return ml_gtk_math_view_export_to_postscript_native(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]); -} - -value ml_gtk_math_view_get_top (value arg1) -{ - CAMLparam1(arg1); - CAMLlocal1 (result); - int x, y; - gtk_math_view_get_top(GtkMathView_val (arg1), &x, &y); - result = alloc(2, 0); - Store_field(result, 0, Val_int(x)); - Store_field(result, 0, Val_int(y)); - CAMLreturn (result); -} - - -value ml_gtk_math_view_mDOMNode_of_bodex_option (value arg1) -{ - CAMLparam1(arg1); - - mDOMNodeRef nr; - CAMLlocal1 (tmp); - CAMLlocal1 (optval); - CAMLlocal1 (res); - - if (arg1==Val_int(0)) { - assert(0); - } else { - tmp = Field(arg1, 0); - nr = (mDOMNodeRef) Field(tmp, 1); - } - optval = Val_mDOMNodeRef(nr); - if (optval==Val_int(0)) { - assert(0); - } else { - res = Field(optval, 0); - } - - CAMLreturn(res); -} - -value ml_gtk_math_view_mDOMNode_option_of_bodex_option (value arg1) -{ - CAMLparam1(arg1); - - mDOMNodeRef nr; - CAMLlocal1 (tmp); - - if (arg1==Val_int(0)) { - nr=NULL; - } else { - tmp = Field(arg1, 0); - nr = (mDOMNodeRef) Field(tmp, 1); - } - - CAMLreturn(Val_mDOMNodeRef(nr)); -} diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/.cvsignore deleted file mode 100644 index 1968614b7..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmo *.cmi *.cmx t1lib.log test test.opt test.ps test.o diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/Makefile deleted file mode 100644 index d631d239f..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -LABLGTK_DIR = /usr/lib/ocaml/lablgtk -LABLGTK_MATHVIEW_DIR = .. -MINIDOM_DIR = ../minidom -OCAMLC = ocamlc -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) \ - -I $(MINIDOM_DIR) -I mlmathview -OCAMLOPT = ocamlopt -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) \ - -I $(MINIDOM_DIR) -I mlmathview - -all: test -opt: test.opt - -test: test.cmo - $(OCAMLC) -custom -o test lablgtk.cma gtkInit.cmo \ - $(MINIDOM_DIR)/minidom.cmo \ - $(MINIDOM_DIR)/ominidom.cmo \ - $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cma \ - -cclib "$(MINIDOM_DIR)/ml_minidom.o" \ - test.cmo \ - -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \ - -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \ - -L/usr/local/lib/gtkmathview -lgtkmathview \ - $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o" - -test.opt: test.cmx - $(OCAMLOPT) -o test.opt lablgtk.cmxa gtkInit.cmx \ - $(MINIDOM_DIR)/minidom.cmx \ - $(MINIDOM_DIR)/ominidom.cmx \ - $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cmxa \ - -cclib "$(MINIDOM_DIR)/ml_minidom.o" \ - test.cmx \ - -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \ - -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \ - -L/usr/local/lib/gtkmathview -lgtkmathview \ - $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o" - -.SUFFIXES: .ml .mli .cmo .cmi .cmx -.ml.cmo: - $(OCAMLC) -c $< -.mli.cmi: - $(OCAMLC) -c $< -.ml.cmx: - $(OCAMLOPT) -c $< - -clean: - rm -f *.cm[iox] *.o test test.opt t1lib.log test.ps diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/t1.config b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/t1.config deleted file mode 100644 index afb669e95..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/t1.config +++ /dev/null @@ -1,3 +0,0 @@ -ENCODING=. -AFM=/usr/share/texmf/fonts/afm/ -TYPE1=/usr/share/texmf/fonts/type1/bluesky/cm/:/usr/X11R6/lib/X11/fonts/Type1/:. diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/test.ml deleted file mode 100644 index dd66d3885..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/test.ml +++ /dev/null @@ -1,297 +0,0 @@ -(******************************************************************************) -(* Claudio Sacerdoti Coen *) -(* 25/09/2000 *) -(* *) -(* This is a simple test for the OCaml (LablGtk indeed) binding of the *) -(* MathView widget *) -(******************************************************************************) - -(* Callbacks *) -let jump (node : Ominidom.o_mDOMNode) = - let module O = Ominidom in - print_string ("jump: " ^ - (match node#get_attribute (O.o_mDOMString_of_string "href") with - | Some x -> x#get_string - | None -> "NO HREF FOR THIS NODE" - ) ^ "\n"); - flush stdout -;; - -let selection_changed mathview (node : Ominidom.o_mDOMNode option) = - let module O = Ominidom in - print_string ("selection_changed: " ^ - (match node with - None -> "selection_changed on nothing" - | Some node -> - match node#get_name with - | Some x -> x#get_string - | None -> "on element without name" - ) ^ "\n"); - mathview#set_selection node; - flush stdout -;; - - -let clicked (node : Ominidom.o_mDOMNode) = - let module O = Ominidom in - print_string ("clicked: " ^ - (match node#get_name with - | Some x -> x#get_string - | None -> "no name" - ) ^ "\n"); - flush stdout -;; - - -let activate_t1 mathview () = - mathview#set_font_manager_type `font_manager_t1; - print_string "WIDGET SET WITH T1 FONTS\n" ; - flush stdout -;; - -let activate_gtk mathview () = - mathview#set_font_manager_type `font_manager_gtk; - print_string "WIDGET SET WITH GTK FONTS\n" ; - flush stdout -;; - -let get_font_manager_type mathview () = - print_string "CURRENT FONT MANAGER TYPE: "; - begin - match mathview#get_font_manager_type with - | `font_manager_t1 -> print_string "T1" - | `font_manager_gtk -> print_string "GTK" - end; - print_newline(); - flush stdout -;; - -let load mathview () = - mathview#load "test.xml" ; - print_string "load: SEEMS TO WORK\n" ; - flush stdout -;; - -let get_selection mathview () = - let module O = Ominidom in - let selection = - match mathview#get_selection with - | Some node -> - begin - match node#get_name with - | Some name -> name#get_string - | None -> "element with no name!" - end - | None -> "no selection!" - in - print_string ("get_selection: " ^ selection ^ "\n") ; - flush stdout -;; - -let set_selection mathview () = - let module O = Ominidom in - begin - match mathview#get_selection with - | Some node -> - begin - try - let parent_node = node#get_parent in - mathview#set_selection (Some parent_node); - print_string "set selection: SEEMS TO WORK\n" - with - _ -> print_string "EXCEPTION: no parent\n" - end - | None -> - mathview#set_selection None; - print_string "no selection\n" - end ; - flush stdout -;; - -let unload mathview () = - mathview#unload ; - print_string "unload: SEEMS TO WORK\n" ; - flush stdout -;; - -let get_width mathview () = - print_string ("get_width: " ^ string_of_int (mathview#get_width) ^ "\n") ; - flush stdout -;; - -let get_height mathview () = - print_string ("get_height: " ^ string_of_int (mathview#get_height) ^ "\n") ; - flush stdout -;; - -let get_top mathview () = - let (x,y) = mathview#get_top in - print_string ("get_top: ("^ string_of_int x ^ "," ^ string_of_int y ^ ")\n") ; - flush stdout -;; - -let set_top mathview () = - mathview#set_top 0 0; - print_string "set_top: SEEM TO WORK\n" ; - flush stdout -;; - -let set_adjustments mathview () = - let adj1 = GData.adjustment () in - let adj2 = GData.adjustment () in - mathview#set_adjustments adj1 adj2 ; - adj1#set_value ((adj1#lower +. adj1#upper) /. 2.0) ; - adj2#set_value ((adj2#lower +. adj2#upper) /. 2.0) ; - print_string "set_adjustments: SEEM TO WORK\n" ; - flush stdout -;; - -let get_hadjustment mathview () = - let adj = mathview#get_hadjustment in - adj#set_value ((adj#lower +. adj#upper) /. 2.0) ; - print_string "get_hadjustment: SEEM TO WORK\n" ; - flush stdout -;; - -let get_vadjustment mathview () = - let adj = mathview#get_vadjustment in - adj#set_value ((adj#lower +. adj#upper) /. 2.0) ; - print_string "get_vadjustment: SEEM TO WORK\n" ; - flush stdout -;; - -let get_buffer mathview () = - let buffer = mathview#get_buffer in - Gdk.Draw.rectangle buffer (Gdk.GC.create buffer) ~x:0 ~y:0 - ~width:50 ~height:50 ~filled:true () ; - print_string "get_buffer: SEEMS TO WORK (hint: force the widget redrawing)\n"; - flush stdout -;; - -let get_frame mathview () = - let frame = mathview#get_frame in - frame#set_shadow_type `NONE ; - print_string "get_frame: SEEMS TO WORK\n" ; - flush stdout -;; - -let set_font_size mathview () = - mathview#set_font_size 24 ; - print_string "set_font_size: FONT IS NOW 24\n" ; - flush stdout -;; - -let get_font_size mathview () = - print_string ("get_font_size: " ^ string_of_int (mathview#get_font_size) ^ "\n") ; - flush stdout -;; - -let set_anti_aliasing mathview () = - mathview#set_anti_aliasing true ; - print_string "set_anti_aliasing: ON\n" ; - flush stdout -;; - -let get_anti_aliasing mathview () = - print_string ("get_anti_aliasing: " ^ - (match mathview#get_anti_aliasing with true -> "ON" | false -> "OFF") ^ - "\n") ; - flush stdout -;; - -let set_kerning mathview () = - mathview#set_kerning true ; - print_string "set_kerning: ON\n" ; - flush stdout -;; - -let get_kerning mathview () = - print_string ("get_kerning: " ^ - (match mathview#get_kerning with true -> "ON" | false -> "OFF") ^ - "\n") ; - flush stdout -;; - -let set_log_verbosity mathview () = - mathview#set_log_verbosity 3 ; - print_string "set_log_verbosity: NOW IS 3\n" ; - flush stdout -;; - -let get_log_verbosity mathview () = - print_string ("get_log_verbosity: " ^ - string_of_int mathview#get_log_verbosity ^ - "\n") ; - flush stdout -;; - -let export_to_postscript (mathview : GMathView.math_view) () = - mathview#export_to_postscript ~filename:"test.ps" (); - print_string "expor_to_postscript: SEEMS TO WORK (hint: look at test.ps)\n"; - flush stdout -;; - -(* Widget creation *) -let main_window = GWindow.window ~title:"GtkMathView test" () in -let vbox = GPack.vbox ~packing:main_window#add () in -let sw = GBin.scrolled_window ~width:50 ~height:50 ~packing:vbox#pack () in -let mathview= GMathView.math_view ~packing:sw#add ~width:50 ~height:50 () in -let table = GPack.table ~rows:6 ~columns:5 ~packing:vbox#pack () in -let button_gtk=GButton.button ~label:"activate Gtk fonts" ~packing:(table#attach ~left:0 ~top:0) () in -let button_load = GButton.button ~label:"load" ~packing:(table#attach ~left:1 ~top:0) () in -let button_unload = GButton.button ~label:"unload" ~packing:(table#attach ~left:2 ~top:0) () in -let button_get_selection = GButton.button ~label:"get_selection" ~packing:(table#attach ~left:3 ~top:0) () in -let button_set_selection = GButton.button ~label:"set_selection" ~packing:(table#attach ~left:4 ~top:0) () in -let button_get_width = GButton.button ~label:"get_width" ~packing:(table#attach ~left:0 ~top:1) () in -let button_get_height = GButton.button ~label:"get_height" ~packing:(table#attach ~left:1 ~top:1) () in -let button_get_top = GButton.button ~label:"get_top" ~packing:(table#attach ~left:2 ~top:1) () in -let button_set_top = GButton.button ~label:"set_top" ~packing:(table#attach ~left:3 ~top:1) () in -let button_set_adjustments = GButton.button ~label:"set_adjustments" ~packing:(table#attach ~left:4 ~top:1) () in -let button_get_hadjustment = GButton.button ~label:"get_hadjustment" ~packing:(table#attach ~left:0 ~top:2) () in -let button_get_vadjustment = GButton.button ~label:"get_vadjustment" ~packing:(table#attach ~left:1 ~top:2) () in -let button_get_buffer = GButton.button ~label:"get_buffer" ~packing:(table#attach ~left:2 ~top:2) () in -let button_get_frame = GButton.button ~label:"get_frame" ~packing:(table#attach ~left:3 ~top:2) () in -let button_set_font_size = GButton.button ~label:"set_font_size" ~packing:(table#attach ~left:4 ~top:2) () in -let button_get_font_size = GButton.button ~label:"get_font_size" ~packing:(table#attach ~left:0 ~top:3) () in -let button_set_anti_aliasing = GButton.button ~label:"set_anti_aliasing" ~packing:(table#attach ~left:1 ~top:3) () in -let button_get_anti_aliasing = GButton.button ~label:"get_anti_aliasing" ~packing:(table#attach ~left:2 ~top:3) () in -let button_set_kerning = GButton.button ~label:"set_kerning" ~packing:(table#attach ~left:3 ~top:3) () in -let button_get_kerning = GButton.button ~label:"get_kerning" ~packing:(table#attach ~left:4 ~top:3) () in -let button_set_log_verbosity = GButton.button ~label:"set_log_verbosity" ~packing:(table#attach ~left:0 ~top:4) () in -let button_get_log_verbosity = GButton.button ~label:"get_log_verbosity" ~packing:(table#attach ~left:1 ~top:4) () in -let button_export_to_postscript = GButton.button ~label:"export_to_postscript" ~packing:(table#attach ~left:2 ~top:4) () in -let button_t1 = GButton.button ~label:"activate T1 fonts" ~packing:(table#attach ~left:3 ~top:4) () in -let button_get_font_manager_type = GButton.button ~label:"get_font_manager" ~packing:(table#attach ~left:4 ~top:4) () in -(* Signals connection *) -ignore(button_gtk#connect#clicked (activate_gtk mathview)) ; -ignore(button_load#connect#clicked (load mathview)) ; -ignore(button_unload#connect#clicked (unload mathview)) ; -ignore(button_get_selection#connect#clicked (get_selection mathview)) ; -ignore(button_set_selection#connect#clicked (set_selection mathview)) ; -ignore(button_get_width#connect#clicked (get_width mathview)) ; -ignore(button_get_height#connect#clicked (get_height mathview)) ; -ignore(button_get_top#connect#clicked (get_top mathview)) ; -ignore(button_set_top#connect#clicked (set_top mathview)) ; -ignore(button_set_adjustments#connect#clicked (set_adjustments mathview)) ; -ignore(button_get_hadjustment#connect#clicked (get_hadjustment mathview)) ; -ignore(button_get_vadjustment#connect#clicked (get_vadjustment mathview)) ; -ignore(button_get_buffer#connect#clicked (get_buffer mathview)) ; -ignore(button_get_frame#connect#clicked (get_frame mathview)) ; -ignore(button_set_font_size#connect#clicked (set_font_size mathview)) ; -ignore(button_get_font_size#connect#clicked (get_font_size mathview)) ; -ignore(button_set_anti_aliasing#connect#clicked (set_anti_aliasing mathview)) ; -ignore(button_get_anti_aliasing#connect#clicked (get_anti_aliasing mathview)) ; -ignore(button_set_kerning#connect#clicked (set_kerning mathview)) ; -ignore(button_get_kerning#connect#clicked (get_kerning mathview)) ; -ignore(button_set_log_verbosity#connect#clicked (set_log_verbosity mathview)) ; -ignore(button_get_log_verbosity#connect#clicked (get_log_verbosity mathview)) ; -ignore(button_export_to_postscript#connect#clicked (export_to_postscript mathview)) ; -ignore(button_t1#connect#clicked (activate_t1 mathview)) ; -ignore(button_get_font_manager_type#connect#clicked (get_font_manager_type mathview)) ; -ignore(mathview#connect#jump jump) ; -ignore(mathview#connect#clicked clicked) ; -ignore(mathview#connect#selection_changed (selection_changed mathview)) ; -(* Main Loop *) -main_window#show () ; -GMain.Main.main () -;; diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/test.xml deleted file mode 100644 index b0f8c1563..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.1/test/test.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - a - - x - - + - b - - - - x - 2 - - + - - p - - x - - + - q - - - - d - x - = - - - a2 - - - ln - - - ( - - x2 - + - - p - - x - - + - q - - ) - - - - + - - - - - 2 - - b - - - - - a - - p - - - - - - 4 - - q - - - - - p - 2 - - - - - - - arctg - - - - - 2 - - x - - + - p - - - - - 4 - - q - - - - - p - 2 - - - - - - - + - c - - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2-1.spec b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2-1.spec deleted file mode 100644 index cad3d0626..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2-1.spec +++ /dev/null @@ -1,26 +0,0 @@ -Summary: GtkMathView : the binding for lablgtk of the GtkMathView widget -Name: lablgtk-20001129_gtkmathview -Version: 0.2.2 -Release: 1 -Copyright: LGPL -Group: Development/Libraries -Requires: lablgtk_20001129 gtkmathview -Source: www.cs.unibo.it:/~lpadovan/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2.tar.gz -%description -GtkMathView is the binding for lablgtk of the GtkMathView widget. - -%prep -%setup - -%build -make -make opt - -%install -make install - -%files -%doc COPYING - -/usr/lib/ocaml/lablgtk/mathview -/usr/lib/ocaml/minidom diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2.tar.gz b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2.tar.gz deleted file mode 100644 index 96d86308f2e956315b4ea584400b93ddf6b4d544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15150 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 F{{Xo9PI3SM diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/.cvsignore deleted file mode 100644 index cd9e25037..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmi *.cmo *.cmx *.cma *.cmxa config.make diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/.depend b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/.depend deleted file mode 100644 index 600449bb8..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/.depend +++ /dev/null @@ -1,4 +0,0 @@ -gMathView.cmo: gtkMathView.cmo gtk_mathview.cmo -gMathView.cmx: gtkMathView.cmx gtk_mathview.cmx -gtkMathView.cmo: gtk_mathview.cmo -gtkMathView.cmx: gtk_mathview.cmx diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/COPYING b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/COPYING deleted file mode 100644 index 20b480a10..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/COPYING +++ /dev/null @@ -1,11 +0,0 @@ -This library is made available under the LGPL. -You should have got a copy of the LGPL with Objective Caml. -The LGPL applies to all the files in this directory, but not in -subdirectories. - -For the test subdirectory, there is no specific licensing policy, -but you may freely take inspiration from the code, and copy parts of -it in your application. - -Author: - Claudio Sacerdoti Coen diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/Makefile deleted file mode 100644 index b8adbb47b..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/Makefile +++ /dev/null @@ -1,109 +0,0 @@ -# Makefile for lablgtk_mathview. - -LABLGTKDIR = /usr/lib/ocaml/lablgtk -MINIDOMDIR = ./minidom -TESTDIR = ./test -MLFLAGS += -I $(LABLGTKDIR) -I $(MINIDOMDIR) - -TARGETS = ml_gtk_mathview.o lablgtkmathview.cma - -all: Minidom $(TARGETS) - -opt: Minidom.opt lablgtkmathviewopt - -Minidom: - cd $(MINIDOMDIR); make - -Minidom.opt: - cd $(MINIDOMDIR); make opt - -configure: - @rm -f config.make - @$(MAKE) --no-print-directory -f configure.mk - -depend: - @rm -f .depend - @$(MAKE) --no-print-directory -f configure.mk .depend - -.depend config.make: - @$(MAKE) --no-print-directory -f configure.mk - -COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c -LINKER = $(CAMLC) $(MLFLAGS) -COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c -LINKOPT = $(CAMLOPT) $(MLFLAGS) - -include config.make - -INSTALLDIR = $(LIBDIR)/lablgtk/mathview - -MLLIBS = lablgtkmathview.cma -CLIBS = -MLLINK = unix.cma str.cma - -ifdef DEBUG -CFLAGS = -g $(GTKCFLAGS) -MLLINK += -cclib -lcamlrund -MLFLAGS += -g -else -CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS) -endif -CFLAGS += $(MINIDOMCFLAGS) $(GTKMATHVIEWCFLAGS) - -THFLAGS = -thread -THLINK = unix.cma threads.cma - -ifdef USE_CC -CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS) -else -CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)" -endif - -# Rules -.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def -.c.o: - $(CCOMPILER) $< -.ml.cmo: - $(COMPILER) $< -.mli.cmi: - $(COMPILER) $< -.ml.cmx: - $(COMPOPT) $< -.var.h: - ./var2def < $< > $@ -.var.c: - ./var2conv < $< > $@ - -# Targets -COBJS = ml_gtk_mathview.o -MLOBJS = gtk_mathview.cmo gtkMathView.cmo gMathView.cmo -ALLOBJS = $(MLOBJS) - -lablgtkmathviewopt: $(CLIBS) $(MLLIBS:.cma=.cmxa) - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR) - if test -f *.mli ; then cp *.mli $(INSTALLDIR) ; fi - cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR) - cp $(MLLIBS) $(INSTALLDIR) - cp $(COBJS) $(INSTALLDIR) - if test ! -z "$(CLIBS)" ; then cp $(CLIBS) $(INSTALLDIR) ; fi - if test -f lablgtkmathview.cmxa; then \ - cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \ - $(INSTALLDIR); fi - -lablgtkmathview.cma: $(MLOBJS) - $(LINKER) -a -custom -o $@ $(MLOBJS) $(GTKLIBS) -cclib "$(GTKMATHVIEWLIBS)" -cclib "$(MINIDOMLIBS)" -lablgtkmathview.cmxa: $(MLOBJS:.cmo=.cmx) - $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) $(GTKLIBS) -cclib "$(GTKMATHVIEWLIBS)" -cclib "$(MINIDOMLIBS)" - -ml_gtk.o: $(LABLGTKDIR)/gtk_tags.c $(LABLGTKDIR)/gtk_tags.h \ - $(LABLGTKDIR)/ml_gtk.h $(LABLGTKDIR)/ml_gdk.h $(LABLGTKDIR)/wrappers.h - -clean: - rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS) - cd $(MINIDOMDIR); make clean - cd $(TESTDIR); make clean - -include .depend diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/configure.mk b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/configure.mk deleted file mode 100644 index 8982371ee..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/configure.mk +++ /dev/null @@ -1,59 +0,0 @@ -# makefile for configuring lablGTK_mathview - -# Default compilers -CAMLC = ocamlc -CAMLOPT = ocamlopt - -# Default installation directories -BINDIR = `$(GETBINDIR)` -INSTALLDIR = $(LIBDIR)/lablgtk/mathview - -# Autoconf -GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//' -LIBDIR = `$(GETLIBDIR)` -GETBINDIR = $(GETLIBDIR) | sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|' -GETRANLIB = which ranlib 2>/dev/null | sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/' - -ifdef USE_GNOME -GTKGETCFLAGS = gtk-config --cflags`" -I"`gnome-config --includedir -GNOMELIBS = `gnome-config --libs gtkxmhtml` -else -GTKGETCFLAGS = gtk-config --cflags -endif - -GTKGETLIBS = gtk-config --libs - -configure: .depend config.make - -.depend: - ocamldep *.ml *.mli > .depend - -config.make: - @echo CAMLC=$(CAMLC) > config.make - @echo CAMLOPT=$(CAMLOPT) >> config.make - @echo USE_GL=$(USE_GL) >> config.make - @echo USE_GNOME=$(USE_GNOME) >> config.make - @echo USE_CC=$(USE_CC) >> config.make - @echo DEBUG=$(DEBUG) >> config.make - @echo CC=$(CC) >> config.make - @echo RANLIB=`$(GETRANLIB)` >> config.make - @echo LIBDIR=$(LIBDIR) >> config.make - @echo BINDIR=`$(GETBINDIR)` >> config.make - @echo INSTALLDIR=$(INSTALLDIR) >> config.make -# Luca: was -# @echo GTKCFLAGS=`$(GTKGETCFLAGS)` -I/usr/lib/ocaml/lablgtk >> config.make -# Luca: now - @echo GTKCFLAGS=`$(GTKGETCFLAGS)` -I$(LIBDIR)/lablgtk >> config.make - @echo GTKLIBS=`$(GTKGETLIBS)` | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make -# Luca: GtkMathView configuration - @echo GTKMATHVIEWCFLAGS=`gtkmathview-config --cflags` >> config.make - @echo MINIDOMCFLAGS=`minidom-config --cflags` >> config.make - @echo GTKMATHVIEWLIBS=`gtkmathview-config --libs` >> config.make - @echo MINIDOMLIBS=`minidom-config --libs` >> config.make -# Luca: end of GtkMathView configuration - @echo GNOMELIBS=$(GNOMELIBS) | \ - sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \ - >> config.make - cat config.make diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gMathView.ml deleted file mode 100644 index e897ccfdb..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gMathView.ml +++ /dev/null @@ -1,80 +0,0 @@ -open Gaux -open Gtk -open Gtk_mathview -open GtkBase -open GtkMathView -open GObj - -exception ErrorLoadingFile of string;; -exception ErrorWritingFile of string;; -exception NoSelection;; - -class math_view_signals obj = object - inherit GContainer.container_signals obj - method clicked = GtkSignal.connect ~sgn:MathView.Signals.clicked obj ~after - method jump = GtkSignal.connect ~sgn:MathView.Signals.jump obj ~after - method selection_changed = - GtkSignal.connect ~sgn:MathView.Signals.selection_changed obj ~after -end - -class math_view obj = object - inherit GContainer.container (obj : Gtk_mathview.math_view obj) - method connect = new math_view_signals obj - method load ~filename = - if not (MathView.load obj ~filename) then raise (ErrorLoadingFile filename) - method unload = MathView.unload obj - method get_selection = MathView.get_selection obj - method set_selection (node : Ominidom.o_mDOMNode option) = MathView.set_selection obj node - method get_width = MathView.get_width obj - method get_height = MathView.get_height obj - method get_top = MathView.get_top obj - method set_top = MathView.set_top obj - method set_adjustments = - fun adj1 adj2 -> - MathView.set_adjustments obj (GData.as_adjustment adj1) - (GData.as_adjustment adj2) - method get_hadjustment = new GData.adjustment (MathView.get_hadjustment obj) - method get_vadjustment = new GData.adjustment (MathView.get_vadjustment obj) - method get_buffer = MathView.get_buffer obj - method get_frame = new GBin.frame (MathView.get_frame obj) - method set_font_size = MathView.set_font_size obj - method get_font_size = MathView.get_font_size obj - method set_anti_aliasing = MathView.set_anti_aliasing obj - method get_anti_aliasing = MathView.get_anti_aliasing obj - method set_kerning = MathView.set_kerning obj - method get_kerning = MathView.get_kerning obj - method set_log_verbosity = MathView.set_log_verbosity obj - method get_log_verbosity = MathView.get_log_verbosity obj - method export_to_postscript - ?(width = 595) ?(height = 822) ?(x_margin = 72) ?(y_margin = 72) - ?(disable_colors = false) ~filename () = - let result = MathView.export_to_postscript obj - ~width ~height ~x_margin ~y_margin ~disable_colors ~filename - in - if not result then raise (ErrorWritingFile filename) - method get_font_manager_type = MathView.get_font_manager_type obj - method set_font_manager_type ~fm_type = MathView.set_font_manager_type obj ~fm_type -end - -let math_view ?adjustmenth ?adjustmentv ?font_size ?font_manager ?border_width - ?width ?height ?packing ?show () = - let w = - MathView.create - ?adjustmenth:(may_map ~f:GData.as_adjustment adjustmenth) - ?adjustmentv:(may_map ~f:GData.as_adjustment adjustmentv) - () - in - Container.set w ?border_width ?width ?height; - let mathview = pack_return (new math_view w) ~packing ~show in - begin - match font_size with - | Some size -> mathview#set_font_size size - | None -> () - end; - begin - match font_manager with - | Some manager -> mathview#set_font_manager_type ~fm_type:manager - | None -> () - end; - mathview -;; diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gtkMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gtkMathView.ml deleted file mode 100644 index 4c893fab4..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gtkMathView.ml +++ /dev/null @@ -1,118 +0,0 @@ -open Gtk -open Gtk_mathview -open Tags -open GtkBase -open Gpointer - -external mDOMNode_of_boxed_option : - Gpointer.boxed option -> Minidom.mDOMNode = - "ml_gtk_math_view_mDOMNode_of_bodex_option" - -external mDOMNode_option_of_boxed_option : - Gpointer.boxed option -> Minidom.mDOMNode option = - "ml_gtk_math_view_mDOMNode_option_of_bodex_option" - -let o_mDOMNode_of_mDOMNode node = new Ominidom.o_mDOMNode node - -let o_mDOMNode_option_of_mDOMNode_option = - function - | Some x -> Some (o_mDOMNode_of_mDOMNode x) - | None -> None - -let mDOMNode_option_of_o_mDOMNode_option = - function - | Some x -> Some (x#get_dom_node) - | None -> None - -module MathView = struct - exception NoSelection - - let cast w : math_view obj = Object.try_cast w "GtkMathView" - external create : Gtk.adjustment optobj -> Gtk.adjustment optobj -> - math_view obj = "ml_gtk_math_view_new" - let create ~adjustmenth ~adjustmentv () = - create (optboxed adjustmenth) (optboxed adjustmentv) - external load : [>`math_view] obj -> filename:string -> bool = - "ml_gtk_math_view_load" - external unload : [>`math_view] obj -> unit = - "ml_gtk_math_view_unload" - external raw_get_selection : [>`math_view] obj -> Minidom.mDOMNode option = - "ml_gtk_math_view_get_selection" - let get_selection obj = - o_mDOMNode_option_of_mDOMNode_option (raw_get_selection obj) - external raw_set_selection : [>`math_view] obj -> Minidom.mDOMNode option -> unit= - "ml_gtk_math_view_set_selection" - let set_selection obj node = - raw_set_selection obj (mDOMNode_option_of_o_mDOMNode_option node) - external get_width : [>`math_view] obj -> int = - "ml_gtk_math_view_get_width" - external get_height : [>`math_view] obj -> int = - "ml_gtk_math_view_get_height" - external get_top : [>`math_view] obj -> (int * int) = - "ml_gtk_math_view_get_top" - external set_top : [>`math_view] obj -> int -> int -> unit = - "ml_gtk_math_view_set_top" - external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit = - "ml_gtk_math_view_set_adjustments" - external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj = - "ml_gtk_math_view_get_hadjustment" - external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj = - "ml_gtk_math_view_get_vadjustment" - external get_buffer : [>`math_view] obj -> Gdk.pixmap = - "ml_gtk_math_view_get_buffer" - external get_frame : [>`math_view] obj -> [`frame] obj = - "ml_gtk_math_view_get_frame" - external set_font_size : [>`math_view] obj -> int -> unit = - "ml_gtk_math_view_set_font_size" - external get_font_size : [>`math_view] obj -> int = - "ml_gtk_math_view_get_font_size" - external set_anti_aliasing : [>`math_view] obj -> bool -> unit = - "ml_gtk_math_view_set_anti_aliasing" - external get_anti_aliasing : [>`math_view] obj -> bool = - "ml_gtk_math_view_get_anti_aliasing" - external set_kerning : [>`math_view] obj -> bool -> unit = - "ml_gtk_math_view_set_kerning" - external get_kerning : [>`math_view] obj -> bool = - "ml_gtk_math_view_get_kerning" - external set_log_verbosity : [>`math_view] obj -> int -> unit = - "ml_gtk_math_view_set_log_verbosity" - external get_log_verbosity : [>`math_view] obj -> int = - "ml_gtk_math_view_get_log_verbosity" - external export_to_postscript : - [>`math_view] obj -> width:int -> height:int -> x_margin:int -> y_margin:int -> disable_colors:bool -> filename:string -> bool = - "ml_gtk_math_view_export_to_postscript_bytecode" "ml_gtk_math_view_export_to_postscript_native" - external get_font_manager_type : [>`math_view] obj -> - [`font_manager_gtk | `font_manager_t1] = - "ml_gtk_math_view_get_font_manager_type" - external set_font_manager_type : [>`math_view] obj -> - fm_type:[`font_manager_gtk | `font_manager_t1] -> unit = - "ml_gtk_math_view_set_font_manager_type" - - module Signals = struct - open GtkSignal - - let clicked : ([>`math_view],_) t = - let marshal_clicked f _ = - function - [GtkArgv.POINTER node] -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed_option node)) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked" - in - { name = "clicked"; marshaller = marshal_clicked } - - let jump : ([>`math_view],_) t = - let marshal_jump f _ = - function - [GtkArgv.POINTER node] -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed_option node)) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_jump" - in - { name = "jump"; marshaller = marshal_jump } - - let selection_changed : ([>`math_view],_) t = - let marshal_selection_changed f _ = - function - [GtkArgv.POINTER node] -> f (o_mDOMNode_option_of_mDOMNode_option (mDOMNode_option_of_boxed_option node)) - | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_selection_changed" - in - { name = "selection_changed"; marshaller = marshal_selection_changed } - end -end diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gtk_mathview.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gtk_mathview.ml deleted file mode 100644 index 745a1ba82..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/gtk_mathview.ml +++ /dev/null @@ -1 +0,0 @@ -type math_view = [`widget|`container|`bin|`eventbox|`math_view] diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/.cvsignore deleted file mode 100644 index 84bdd8eff..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmi *.cmo *.cmx test test.opt diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/Makefile deleted file mode 100644 index 6fe73af6a..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/Makefile +++ /dev/null @@ -1,51 +0,0 @@ -LIBDIR = /usr/lib/ocaml -INSTALLDIR = $(LIBDIR)/minidom -OBJECTS = minidom.cmi minidom.cmo ml_minidom.o ominidom.cmi ominidom.cmo -OBJECTS_OPT = minidom.cmx ominidom.cmx -INST = minidom.o ominidom.o ml_minidom.h minidom.mli - -all: $(OBJECTS) test - -opt: $(OBJECTS_OPT) test.opt - -ml_minidom.o: ml_minidom.c - gcc -c -I/usr/lib/ocaml/caml/ `glib-config --cflags` `minidom-config --cflags` $< - -minidom.cmi: minidom.mli - ocamlc -c $< - -minidom.cmo: minidom.ml minidom.cmi - ocamlc -c $< - -minidom.cmx: minidom.ml minidom.cmi - ocamlopt -c $< - -ominidom.cmi: ominidom.mli - ocamlc -c $< - -ominidom.cmo: ominidom.ml - ocamlc -c $< - -ominidom.cmx: ominidom.ml - ocamlopt -c $< - -test.cmo: test.ml minidom.cmo - ocamlc -c test.ml - -test.cmx: test.ml minidom.cmx - ocamlopt -c test.ml - -test: test.cmo minidom.cmo ml_minidom.o - ocamlc -custom -o test minidom.cmo test.cmo ml_minidom.o \ - -cclib "`glib-config --libs` `minidom-config --libs`" - -test.opt: test.cmx minidom.cmx ml_minidom.o - ocamlopt -o test.opt minidom.cmx test.cmx ml_minidom.o \ - -cclib "`glib-config --libs` `minidom-config --libs`" - -install: - if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi - cp $(OBJECTS) $(OBJECTS_OPT) $(INST) $(INSTALLDIR) - -clean: - rm -f *.o *.cm? test test.opt diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/minidom.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/minidom.ml deleted file mode 100644 index 31e677b3f..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/minidom.ml +++ /dev/null @@ -1,61 +0,0 @@ - -type mDOMString -type mDOMDoc -type mDOMNode -type mDOMAttr -type mDOMEntity - -external string_of_mDOMString : mDOMString -> string = "ml_string_of_mDOMString" -external mDOMString_of_string : string -> mDOMString = "ml_mDOMString_of_string" -external mDOMString_eq : string -> string -> bool = "ml_mDOMString_eq" - -external doc_load : string -> mDOMDoc = "ml_doc_load" -external doc_unload : mDOMDoc -> unit = "ml_doc_unload" - -external doc_new : mDOMString -> mDOMDoc = "ml_doc_new" -external doc_get_root_node : mDOMDoc -> mDOMNode = "ml_doc_get_root_node" - -external doc_add_entity : mDOMDoc -> mDOMString -> mDOMString -> mDOMEntity = "ml_doc_add_entity" -external doc_get_entity : mDOMDoc -> mDOMString -> mDOMEntity option = "ml_doc_get_entity" -external doc_get_predefined_entity : mDOMDoc -> mDOMString -> mDOMEntity option = "ml_doc_get_predefined_entity" -external entity_get_content : mDOMEntity -> mDOMString = "ml_entity_get_content" - -external node_is_text : mDOMNode -> bool = "ml_node_is_text" -external node_is_element : mDOMNode -> bool = "ml_node_is_element" -external node_is_blank : mDOMNode -> bool = "ml_node_is_blank" -external node_is_entity_ref : mDOMNode -> bool = "ml_node_is_entity_ref" -external node_get_type : mDOMNode -> int = "ml_node_get_type" -external node_get_name : mDOMNode -> mDOMString option = "ml_node_get_name" -external node_get_ns_uri : mDOMNode -> mDOMString option = "ml_node_get_ns_uri" -external node_get_attribute : mDOMNode -> mDOMString -> mDOMString option = "ml_node_get_attribute" -external node_get_attribute_ns : mDOMNode -> mDOMString -> mDOMString -> mDOMString option = "ml_node_get_attribute_ns" -external node_get_content : mDOMNode -> mDOMString option = "ml_node_get_content" -external node_get_parent : mDOMNode -> mDOMNode option = "ml_node_get_parent" -external node_get_prev_sibling : mDOMNode -> mDOMNode option = "ml_node_get_prev_sibling" -external node_get_next_sibling : mDOMNode -> mDOMNode option = "ml_node_get_next_sibling" -external node_get_first_child : mDOMNode -> mDOMNode option = "ml_node_get_first_child" -external node_get_first_attribute : mDOMNode -> mDOMAttr option = "ml_node_get_first_attribute" -external node_is_first : mDOMNode -> bool = "ml_node_is_first" -external node_is_last : mDOMNode -> bool = "ml_node_is_last" - -external attr_get_name : mDOMAttr -> mDOMString option = "ml_attr_get_name" -external attr_get_ns_uri : mDOMAttr -> mDOMString option = "ml_attr_get_ns_uri" -external attr_get_value : mDOMAttr -> mDOMString option = "ml_attr_get_value" -external attr_get_prev_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_prev_sibling" -external attr_get_next_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_next_sibling" -external attr_get_parent : mDOMAttr -> mDOMNode option = "ml_attr_get_parent" - -let rec node_list_of_node_first = - function None -> [] - | Some node -> node :: (node_list_of_node_first (node_get_next_sibling node)) - -let rec attr_list_of_attr_first = - function None -> [] - | Some attr -> attr :: (attr_list_of_attr_first (attr_get_next_sibling attr)) - -let node_get_children node = - (node_list_of_node_first (node_get_first_child node)) - -let node_get_attributes node = - (attr_list_of_attr_first (node_get_first_attribute node)) - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/minidom.mli b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/minidom.mli deleted file mode 100644 index 0b655955b..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/minidom.mli +++ /dev/null @@ -1,50 +0,0 @@ - -type mDOMString -type mDOMDoc -type mDOMNode -type mDOMAttr -type mDOMEntity - -external string_of_mDOMString : mDOMString -> string = "ml_string_of_mDOMString" -external mDOMString_of_string : string -> mDOMString = "ml_mDOMString_of_string" -external mDOMString_eq : string -> string -> bool = "ml_mDOMString_eq" - -external doc_load : string -> mDOMDoc = "ml_doc_load" -external doc_unload : mDOMDoc -> unit = "ml_doc_unload" - -external doc_new : mDOMString -> mDOMDoc = "ml_doc_new" -external doc_get_root_node : mDOMDoc -> mDOMNode = "ml_doc_get_root_node" - -external doc_add_entity : doc:mDOMDoc -> name:mDOMString -> content:mDOMString -> mDOMEntity = "ml_doc_add_entity" -external doc_get_entity : doc:mDOMDoc -> name:mDOMString -> mDOMEntity option = "ml_doc_get_entity" -external doc_get_predefined_entity : doc:mDOMDoc -> name:mDOMString -> mDOMEntity option = "ml_doc_get_predefined_entity" -external entity_get_content : mDOMEntity -> mDOMString = "ml_entity_get_content" - -external node_is_text : mDOMNode -> bool = "ml_node_is_text" -external node_is_element : mDOMNode -> bool = "ml_node_is_element" -external node_is_blank : mDOMNode -> bool = "ml_node_is_blank" -external node_is_entity_ref : mDOMNode -> bool = "ml_node_is_entity_ref" -external node_get_type : mDOMNode -> int = "ml_node_get_type" -external node_get_name : mDOMNode -> mDOMString option = "ml_node_get_name" -external node_get_ns_uri : mDOMNode -> mDOMString option = "ml_node_get_ns_uri" -external node_get_attribute : node:mDOMNode -> name:mDOMString -> mDOMString option = "ml_node_get_attribute" -external node_get_attribute_ns : node:mDOMNode -> name:mDOMString -> ns_uri:mDOMString -> mDOMString option = "ml_node_get_attribute_ns" -external node_get_content : mDOMNode -> mDOMString option = "ml_node_get_content" -external node_get_parent : mDOMNode -> mDOMNode option = "ml_node_get_parent" -external node_get_prev_sibling : mDOMNode -> mDOMNode option = "ml_node_get_prev_sibling" -external node_get_next_sibling : mDOMNode -> mDOMNode option = "ml_node_get_next_sibling" -external node_get_first_child : mDOMNode -> mDOMNode option = "ml_node_get_first_child" -external node_get_first_attribute : mDOMNode -> mDOMAttr option = "ml_node_get_first_attribute" -external node_is_first : mDOMNode -> bool = "ml_node_is_first" -external node_is_last : mDOMNode -> bool = "ml_node_is_last" - -external attr_get_name : mDOMAttr -> mDOMString option = "ml_attr_get_name" -external attr_get_ns_uri : mDOMAttr -> mDOMString option = "ml_attr_get_ns_uri" -external attr_get_value : mDOMAttr -> mDOMString option = "ml_attr_get_value" -external attr_get_prev_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_prev_sibling" -external attr_get_next_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_next_sibling" -external attr_get_parent : mDOMAttr -> mDOMNode option = "ml_attr_get_parent" - -val node_get_children : mDOMNode -> mDOMNode list -val node_get_attributes : mDOMNode -> mDOMAttr list - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ml_minidom.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ml_minidom.c deleted file mode 100644 index 10626143c..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ml_minidom.c +++ /dev/null @@ -1,288 +0,0 @@ - -#include -#include -#include - -#include "minidom.h" - -#define Val_ptr(p) ((value) (p)) -#define Val_option(p,f) ((p != NULL) ? ml_some(f(p)) : Val_unit) -#define Val_mDOMString(s) (copy_string((char*) (s))) -#define mDOMString_val(v) ((mDOMStringRef) String_val(v)) - -static value -ml_some(value v) -{ - CAMLparam1(v); - value ret = alloc_small(1,0); - Field(ret,0) = v; - CAMLreturn(ret); -} - -value -ml_string_of_mDOMString(value s) -{ - CAMLparam1(s); - CAMLreturn(s); -} - -value -ml_mDOMString_of_string(value s) -{ - CAMLparam1(s); - CAMLreturn(s); -} - -value -ml_doc_load(value file_name) -{ - mDOMDocRef doc_ref; - - CAMLparam1(file_name); - - doc_ref = mdom_load(String_val(file_name), FALSE, NULL); - if (doc_ref == NULL) failwith("minidom: could not load document"); - - CAMLreturn((value) doc_ref); -} - -value -ml_doc_unload(value doc) -{ - CAMLparam1(doc); - - mdom_unload((mDOMDocRef) doc); - - CAMLreturn(Val_unit); -} - -value -ml_doc_new(value s) -{ - mDOMDocRef doc_ref; - - CAMLparam1(s); - - doc_ref = mdom_doc_new(mDOMString_val(s)); - if (doc_ref == NULL) failwith("minidom: could not create new document"); - - CAMLreturn((value) doc_ref); -} - - -value -ml_doc_get_root_node(value doc) -{ - mDOMNodeRef root; - - CAMLparam1(doc); - root = mdom_doc_get_root_node((mDOMDocRef) doc); - if (root == NULL) failwith("minidom: document has no root node!"); - - CAMLreturn((value) root); -} - -value -ml_doc_add_entity(value doc, value name, value content) -{ - mDOMEntityRef ent; - - CAMLparam3(doc, name, content); - ent = mdom_doc_add_entity((mDOMDocRef) doc, mDOMString_val(name), mDOMString_val(content)); - if (ent == NULL) failwith("minidom: could not add entity"); - - CAMLreturn((value) ent); -} - -value -ml_doc_get_entity(value doc, value name) -{ - mDOMEntityRef ent; - - CAMLparam2(doc, name); - ent = mdom_doc_get_entity((mDOMDocRef) doc, mDOMString_val(name)); - - CAMLreturn(Val_option(ent, Val_ptr)); -} - -value -ml_doc_get_predefined_entity(value name) -{ - mDOMEntityRef ent; - - CAMLparam1(name); - ent = mdom_get_predefined_entity(mDOMString_val(name)); - - CAMLreturn(Val_option(ent, Val_ptr)); -} - -value -ml_entity_get_content(value ent) -{ - CAMLparam1(ent); - CAMLreturn(Val_mDOMString(mdom_entity_get_content((mDOMEntityRef) ent))); -} - -value -ml_node_is_text(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_text((mDOMNodeRef) node))); -} - -value -ml_node_is_element(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_element((mDOMNodeRef) node))); -} - -value -ml_node_is_blank(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_blank((mDOMNodeRef) node))); -} - -value -ml_node_is_entity_ref(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_entity_ref((mDOMNodeRef) node))); -} - -value -ml_node_get_type(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_int(mdom_node_get_type((mDOMNodeRef) node))); -} - -value -ml_node_get_name(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_name((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_content(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_content((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_ns_uri(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_ns_uri((mDOMNodeRef) node), Val_mDOMString)); -} - -value -ml_node_get_attribute(value node, value name) -{ - CAMLparam2(node,name); - CAMLreturn(Val_option(mdom_node_get_attribute((mDOMNodeRef) node, String_val(name)), Val_mDOMString)); -} - -value -ml_node_get_attribute_ns(value node, value name, value ns_uri) -{ - CAMLparam2(node,name); - CAMLreturn(Val_option(mdom_node_get_attribute_ns((mDOMNodeRef) node, - String_val(name), - String_val(ns_uri)), Val_mDOMString)); -} - -value -ml_node_get_parent(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_parent((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_prev_sibling(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_prev_sibling((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_next_sibling(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_next_sibling((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_first_child(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_first_child((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_get_first_attribute(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_option(mdom_node_get_first_attribute((mDOMNodeRef) node), Val_ptr)); -} - -value -ml_node_is_first(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_first((mDOMNodeRef) node))); -} - -value -ml_node_is_last(value node) -{ - CAMLparam1(node); - CAMLreturn(Val_bool(mdom_node_is_last((mDOMNodeRef) node))); -} - -value -ml_attr_get_name(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_name((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_ns_uri(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_ns_uri((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_value(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_value((mDOMAttrRef) attr), Val_mDOMString)); -} - -value -ml_attr_get_prev_sibling(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_prev_sibling((mDOMAttrRef) attr), Val_ptr)); -} - -value -ml_attr_get_next_sibling(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_next_sibling((mDOMAttrRef) attr), Val_ptr)); -} - -value -ml_attr_get_parent(value attr) -{ - CAMLparam1(attr); - CAMLreturn(Val_option(mdom_attr_get_parent((mDOMAttrRef) attr), Val_ptr)); -} - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ml_minidom.h b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ml_minidom.h deleted file mode 100644 index d22479964..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ml_minidom.h +++ /dev/null @@ -1,18 +0,0 @@ - -#ifndef ml_minidom_h -#define ml_minidom_h - -#define Val_ptr(p) ((value) (p)) -#ifndef Val_option -#define Val_option(p,f) ((p != NULL) ? ml_some(f(p)) : Val_unit) -#endif /* Val_option */ -#define Val_mDOMString(s) (copy_string((char*) (s))) -#define mDOMString_val(v) ((mDOMStringRef) String_val(v)) -#define mDOMNode_val(v) ((mDOMNodeRef) v) - -#define mDOMNode_option_mDOMNodeRef(p) (((p) != NULL) ? ml_some((value) (p)) : Val_unit) -#define mDOMNodeRef_mDOMNode_option(v) ((v == Val_unit) ? NULL : (mDOMNodeRef)Field((v),0)) -#define Val_mDOMNodeRef(p) (mDOMNode_option_mDOMNodeRef(p)) -#define mDOMNodeRef_val(v) (mDOMNodeRef_mDOMNode_option(v)) - -#endif /* ml_minidom_h */ diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ominidom.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ominidom.ml deleted file mode 100644 index 85ad2e4ed..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ominidom.ml +++ /dev/null @@ -1,156 +0,0 @@ - -exception Node_has_no_parent;; -exception Node_has_no_sibling of string;; -exception Node_has_no_children;; -exception Node_has_no_attributes;; -exception Attribute_has_no_sibling of string;; -exception Attribute_has_no_parent;; -exception Undefined_entity;; - -let option_to_exception v e = - match v with - Some x -> x - | None -> raise e -;; - -class o_mDOMString (str: Minidom.mDOMString) = - object - method get_dom_string = str - method get_string = Minidom.string_of_mDOMString str - end;; - -let o_mDOMString_of_string str = - new o_mDOMString (Minidom.mDOMString_of_string str) - -class o_mDOMEntity (ent : Minidom.mDOMEntity) = - object - method get_dom_entity = ent - method get_content = - new o_mDOMString (Minidom.entity_get_content ent) - end -;; - -class o_mDOMDoc (doc : Minidom.mDOMDoc) = - object - method get_dom_doc = doc - - method get_root_node = - new o_mDOMNode (Minidom.doc_get_root_node doc) - method add_entity (name : o_mDOMString) (value : o_mDOMString) = - new o_mDOMEntity - (Minidom.doc_add_entity doc - (name#get_dom_string) (value#get_dom_string) - ) - method get_entity (name : o_mDOMString) = - match Minidom.doc_get_entity doc (name#get_dom_string) with - | Some x -> new o_mDOMEntity x - | None -> raise Undefined_entity - method get_predefined_entity (name : o_mDOMString) = - match Minidom.doc_get_predefined_entity doc (name#get_dom_string) with - | Some x -> new o_mDOMEntity x - | None -> raise Undefined_entity - end -and o_mDOMNode (node : Minidom.mDOMNode) = - object - method get_dom_node = node - - method is_text = Minidom.node_is_text node - method is_element = Minidom.node_is_element node - method is_blank = Minidom.node_is_blank node - method is_entity_ref = Minidom.node_is_entity_ref node - - method get_type = Minidom.node_get_type node - method get_name = - match Minidom.node_get_name node with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_ns_uri = - match Minidom.node_get_ns_uri node with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_attribute (name : o_mDOMString) = - match Minidom.node_get_attribute node (name#get_dom_string) with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_attribute_ns (name : o_mDOMString) (uri : o_mDOMString) = - match - Minidom.node_get_attribute_ns node - (name#get_dom_string) (uri#get_dom_string) - with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_content = - match Minidom.node_get_content node with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_parent = - new o_mDOMNode - (option_to_exception (Minidom.node_get_parent node) Node_has_no_parent) - method get_prev_sibling = - new o_mDOMNode - (option_to_exception - (Minidom.node_get_prev_sibling node) - (Node_has_no_sibling "left") - ) - method get_next_sibling = - new o_mDOMNode - (option_to_exception - (Minidom.node_get_next_sibling node) - (Node_has_no_sibling "right") - ) - method get_first_child = - new o_mDOMNode - (option_to_exception - (Minidom.node_get_first_child node) - (Node_has_no_children) - ) - method get_first_attribute = - new o_mDOMAttr - (option_to_exception - (Minidom.node_get_first_attribute node) - (Node_has_no_attributes) - ) - method is_first = Minidom.node_is_first node - method is_last = Minidom.node_is_last node - - method get_children = - List.map (function x -> new o_mDOMNode x) (Minidom.node_get_children node) - method get_attributes = List.map - (function x -> new o_mDOMAttr x) (Minidom.node_get_attributes node) - end -and o_mDOMAttr (attr : Minidom.mDOMAttr) = - object - method get_dom_attr = attr - - method get_name = - match Minidom.attr_get_name attr with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_ns_uri = - match Minidom.attr_get_ns_uri attr with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_value = - match Minidom.attr_get_value attr with - | Some x -> Some (new o_mDOMString x) - | None -> None - method get_prev_sibling = - new o_mDOMAttr - (option_to_exception - (Minidom.attr_get_prev_sibling attr) - (Attribute_has_no_sibling "left") - ) - method get_next_sibling = - new o_mDOMAttr - (option_to_exception - (Minidom.attr_get_next_sibling attr) - (Attribute_has_no_sibling "right") - ) - method get_parent = - new o_mDOMNode - (option_to_exception - (Minidom.attr_get_parent attr) Attribute_has_no_parent - ) - end -;; - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ominidom.mli b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ominidom.mli deleted file mode 100644 index 24329544d..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/ominidom.mli +++ /dev/null @@ -1,64 +0,0 @@ -exception Node_has_no_parent -exception Node_has_no_sibling of string -exception Node_has_no_children -exception Node_has_no_attributes -exception Attribute_has_no_sibling of string -exception Attribute_has_no_parent -exception Undefined_entity - -class o_mDOMString : Minidom.mDOMString -> - object - method get_dom_string : Minidom.mDOMString - method get_string : string - end - -val o_mDOMString_of_string : string -> o_mDOMString - -class o_mDOMEntity : Minidom.mDOMEntity -> - object - method get_content : o_mDOMString - method get_dom_entity : Minidom.mDOMEntity - end - -class o_mDOMDoc : Minidom.mDOMDoc -> - object - method add_entity : o_mDOMString -> o_mDOMString -> o_mDOMEntity - method get_dom_doc : Minidom.mDOMDoc - method get_entity : o_mDOMString -> o_mDOMEntity - method get_predefined_entity : o_mDOMString -> o_mDOMEntity - method get_root_node : o_mDOMNode - end -and o_mDOMNode : Minidom.mDOMNode -> - object - method get_attribute : o_mDOMString -> o_mDOMString option - method get_attribute_ns : - o_mDOMString -> o_mDOMString -> o_mDOMString option - method get_attributes : o_mDOMAttr list - method get_children : o_mDOMNode list - method get_content : o_mDOMString option - method get_dom_node : Minidom.mDOMNode - method get_first_attribute : o_mDOMAttr - method get_first_child : o_mDOMNode - method get_name : o_mDOMString option - method get_next_sibling : o_mDOMNode - method get_ns_uri : o_mDOMString option - method get_parent : o_mDOMNode - method get_prev_sibling : o_mDOMNode - method get_type : int - method is_blank : bool - method is_element : bool - method is_entity_ref : bool - method is_first : bool - method is_last : bool - method is_text : bool - end -and o_mDOMAttr : Minidom.mDOMAttr -> - object - method get_dom_attr : Minidom.mDOMAttr - method get_name : o_mDOMString option - method get_next_sibling : o_mDOMAttr - method get_ns_uri : o_mDOMString option - method get_parent : o_mDOMNode - method get_prev_sibling : o_mDOMAttr - method get_value : o_mDOMString option - end diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/test.ml deleted file mode 100644 index 3c7a092e9..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/test.ml +++ /dev/null @@ -1,84 +0,0 @@ - -let doc = Minidom.doc_load "test.xml" - -let root = Minidom.doc_get_root_node doc - -let check_attribute_ns attr = - Printf.printf "\n\n"; - let ns_uri = Minidom.attr_get_ns_uri attr - and attr_name = Minidom.attr_get_name attr - and attr_value = Minidom.attr_get_value attr - and parent = Minidom.attr_get_parent attr - in - match parent,ns_uri,attr_name,attr_value with - Some parent_node,Some uri,Some attribute_name,Some attribute_value -> - let attr_value = Minidom.node_get_attribute_ns parent_node attribute_name uri - in begin - match attr_value with - Some attr1 -> - Printf.printf "found the attribute with ns %s (was %s)\n" - (Minidom.string_of_mDOMString attr1) (Minidom.string_of_mDOMString attribute_value) - | None -> - Printf.printf "attribute not found (uri was %s)!!!!\n" (Minidom.string_of_mDOMString uri) - end - | _ -> - Printf.printf "parent_node == NULL || uri == NULL || attribute_name == NULL || attribute_value == NULL\n" -;; - -let print_attribute attr = - check_attribute_ns attr; - let ns_uri = Minidom.attr_get_ns_uri attr - in - begin - match ns_uri with - Some uri -> Printf.printf " %s:" (Minidom.string_of_mDOMString uri); - | None -> () - end; - match ((Minidom.attr_get_name attr), (Minidom.attr_get_value attr)) with - (Some attr_name, Some attr_value) -> - Printf.printf " %s=\"%s\"" (Minidom.string_of_mDOMString attr_name) (Minidom.string_of_mDOMString attr_value) - | (Some attr_name, _) -> - Printf.printf " ??? attribute %s has no value !!!" (Minidom.string_of_mDOMString attr_name) - | (_,_) -> - Printf.printf " ??? very strange attribute !!!" -;; - -let rec print_node n node = - if Minidom.node_is_blank node then () - else if Minidom.node_is_element node then begin - match Minidom.node_get_name node with - Some node_name -> - begin - let children = Minidom.node_get_children node - and attributes = Minidom.node_get_attributes node - and ns_uri = Minidom.node_get_ns_uri node - and is_first,is_last = (Minidom.node_is_first node), (Minidom.node_is_last node) - in - for i = 1 to n do print_char ' ' done; - Printf.printf "<"; - begin - match ns_uri with - Some uri -> Printf.printf "%s:" (Minidom.string_of_mDOMString uri) - | None -> () - end; - Printf.printf "%s" (Minidom.string_of_mDOMString node_name); - List.iter print_attribute attributes; - Printf.printf ">\n"; - List.iter (print_node (n + 2)) children; - for i = 1 to n do print_char ' ' done; - Printf.printf "\n" (Minidom.string_of_mDOMString node_name) - end - | None -> Printf.printf "??? this node has no name !!!\n" - end else if Minidom.node_is_text node then begin - match Minidom.node_get_content node with - Some node_content -> - for i = 1 to n do print_char ' ' done; - Printf.printf "%s\n" (Minidom.string_of_mDOMString node_content) - | None -> Printf.printf "??? this node has no content !!!\n" - end else begin - Printf.printf "don't know how to manage a node with type %d\n" (Minidom.node_get_type node) - end -;; - -print_node 0 root;; - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/test.xml deleted file mode 100644 index 83d2eef68..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/minidom/test.xml +++ /dev/null @@ -1,505 +0,0 @@ - - - - - - - - DEFINITION and_ind() OF TYPE - - - - - - - - __ - - - - - - - - ( - - - - - Π - A - : - - Prop - - - - - - - . - - - - - Π - B - : - - Prop - - - - - - - . - - - - - Π - P - : - - Prop - - - - - - - . - - - - - Π - f - : - - ( - A - - - ( - B - - P - ) - - ) - - - - - - - . - - Π - a - : - - ( - and - - _ - - A - - _ - - B - ) - - . - P - - - - - - - - - - - - - - - - - - - - - - - - - - - - :> - - Prop - - - - - - - - ) - - - - - - - - cast - - prod - - A - - - Prop - - - - - prod - - B - - - Prop - - - - - prod - - P - - - Prop - - - - - prod - - f - - - arrow - A - - arrow - B - P - - - - - - prod - - a - - - app - and - A - B - - - - P - - - - - - - Prop - - - - - - - - - - - AS - - - - - - - - __ - - - - - - - λ - A - : - - Prop - - - - - - - . - - - - - λ - B - : - - Prop - - - - - - - . - - - - - λ - P - : - - Prop - - - - - - - . - - - - - λ - f - : - - ( - A - - - ( - B - - P - ) - - ) - - - - - - - . - - - - - λ - a - : - - ( - and - - _ - - A - - _ - - B - ) - - - - - - - . - - < - P - > - CASES - - _ - - a - - _ - - OF - - ( - conj - - _ - - $1 - - _ - - $2 - ) - - - - ( - f - - _ - - $1 - - _ - - $2 - ) - - - _ - - END - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A - - - Prop - - - - - - B - - - Prop - - - - - - P - - - Prop - - - - - - f - - - arrow - A - - arrow - B - P - - - - - - - a - - - app - and - A - B - - - - - mutcase - P - a - - app - conj - $1 - $2 - - - app - f - $1 - $2 - - - - - - - - - - - - - - diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/ml_gtk_mathview.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/ml_gtk_mathview.c deleted file mode 100644 index 3c86f0057..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/ml_gtk_mathview.c +++ /dev/null @@ -1,159 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include - -#include -#include "minidom/ml_minidom.h" - -/* : Next row should be put in a .h of lablgtk. */ -#define GtkAdjustment_val(val) check_cast(GTK_ADJUSTMENT,val) - -#define GtkMathView_val(val) check_cast(GTK_MATH_VIEW,val) - -#define FontManagerId_val(val) Int_val(val) -#define Val_FontManagerId(val) Val_int(val) - -FontManagerId -font_manager_id_of_value(value v) -{ - if (v == hash_variant("font_manager_gtk")) return FONT_MANAGER_GTK; - else if (v == hash_variant("font_manager_t1")) return FONT_MANAGER_T1; - else assert(0); -} - -value -value_of_font_manager_id(FontManagerId id) -{ - switch (id) { - case FONT_MANAGER_GTK: - return hash_variant("font_manager_gtk"); - case FONT_MANAGER_T1: - return hash_variant("font_manager_t1"); - default: - assert(0); - break; - } -} - -ML_2 (gtk_math_view_new,GtkAdjustment_val, GtkAdjustment_val, Val_GtkWidget_sink) -ML_2 (gtk_math_view_load, GtkMathView_val, String_val, Val_bool) -ML_1 (gtk_math_view_unload, GtkMathView_val, Unit) -/*ML_1 (gtk_math_view_dump, GtkMathView_val, Unit)*/ -ML_1 (gtk_math_view_get_selection, GtkMathView_val, Val_mDOMNodeRef) -ML_2 (gtk_math_view_set_selection, GtkMathView_val, mDOMNodeRef_val, Unit) -ML_1 (gtk_math_view_get_width, GtkMathView_val, Val_int) -ML_1 (gtk_math_view_get_height, GtkMathView_val, Val_int) -ML_3 (gtk_math_view_set_top, GtkMathView_val, Int_val, Int_val, Unit) -ML_3 (gtk_math_view_set_adjustments, GtkMathView_val, GtkAdjustment_val, GtkAdjustment_val, Unit) -ML_1 (gtk_math_view_get_hadjustment, GtkMathView_val, Val_GtkWidget) -ML_1 (gtk_math_view_get_vadjustment, GtkMathView_val, Val_GtkWidget) -ML_1 (gtk_math_view_get_buffer, GtkMathView_val, Val_GdkPixmap) -ML_1 (gtk_math_view_get_frame, GtkMathView_val, Val_GtkWidget) -ML_2 (gtk_math_view_set_font_size, GtkMathView_val, Int_val, Unit) -ML_1 (gtk_math_view_get_font_size, GtkMathView_val, Val_int) -ML_2 (gtk_math_view_set_anti_aliasing, GtkMathView_val, Bool_val, Unit) -ML_1 (gtk_math_view_get_anti_aliasing, GtkMathView_val, Val_bool) -ML_2 (gtk_math_view_set_kerning, GtkMathView_val, Bool_val, Unit) -ML_1 (gtk_math_view_get_kerning, GtkMathView_val, Val_bool) -ML_2 (gtk_math_view_set_log_verbosity, GtkMathView_val, Int_val, Unit) -ML_1 (gtk_math_view_get_log_verbosity, GtkMathView_val, Val_int) -ML_2 (gtk_math_view_set_font_manager_type, GtkMathView_val, font_manager_id_of_value, Unit) -ML_1 (gtk_math_view_get_font_manager_type, GtkMathView_val, value_of_font_manager_id) - -value -ml_gtk_math_view_export_to_postscript_native(value arg1, - value w, value h, value x0, value y0, value disable_colors, value arg2) -{ - CAMLparam5(arg1,w,h,x0,y0); - CAMLxparam2(disable_colors, arg2); - - char *filename; - FILE *fd; - int res; - filename = String_val (arg2); - if ((fd = fopen(filename, "w"))) { - gtk_math_view_export_to_postscript(GtkMathView_val (arg1), - Int_val(w), Int_val(h), Int_val(x0), Int_val(y0), Bool_val(disable_colors), fd); - fclose (fd); - res = 1; - } else { - fprintf(stderr, "Error opening file %s for writing\n", filename); - res = 0; - } - CAMLreturn (Val_bool(res)); -} - -value ml_gtk_math_view_export_to_postscript_bytecode (value* arg, int argn) -{ - return ml_gtk_math_view_export_to_postscript_native(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]); -} - -value ml_gtk_math_view_get_top (value arg1) -{ - CAMLparam1(arg1); - CAMLlocal1 (result); - int x, y; - gtk_math_view_get_top(GtkMathView_val (arg1), &x, &y); - result = alloc(2, 0); - Store_field(result, 0, Val_int(x)); - Store_field(result, 0, Val_int(y)); - CAMLreturn (result); -} - - -value ml_gtk_math_view_mDOMNode_of_bodex_option (value arg1) -{ - CAMLparam1(arg1); - - mDOMNodeRef nr; - CAMLlocal1 (tmp); - CAMLlocal1 (optval); - CAMLlocal1 (res); - - if (arg1==Val_int(0)) { - assert(0); - } else { - tmp = Field(arg1, 0); - nr = (mDOMNodeRef) Field(tmp, 1); - } - optval = Val_mDOMNodeRef(nr); - if (optval==Val_int(0)) { - assert(0); - } else { - res = Field(optval, 0); - } - - CAMLreturn(res); -} - -value ml_gtk_math_view_mDOMNode_option_of_bodex_option (value arg1) -{ - CAMLparam1(arg1); - - mDOMNodeRef nr; - CAMLlocal1 (tmp); - - if (arg1==Val_int(0)) { - nr=NULL; - } else { - tmp = Field(arg1, 0); - nr = (mDOMNodeRef) Field(tmp, 1); - } - - CAMLreturn(Val_mDOMNodeRef(nr)); -} diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/.cvsignore deleted file mode 100644 index 1968614b7..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.cmo *.cmi *.cmx t1lib.log test test.opt test.ps test.o diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/Makefile deleted file mode 100644 index d631d239f..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -LABLGTK_DIR = /usr/lib/ocaml/lablgtk -LABLGTK_MATHVIEW_DIR = .. -MINIDOM_DIR = ../minidom -OCAMLC = ocamlc -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) \ - -I $(MINIDOM_DIR) -I mlmathview -OCAMLOPT = ocamlopt -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) \ - -I $(MINIDOM_DIR) -I mlmathview - -all: test -opt: test.opt - -test: test.cmo - $(OCAMLC) -custom -o test lablgtk.cma gtkInit.cmo \ - $(MINIDOM_DIR)/minidom.cmo \ - $(MINIDOM_DIR)/ominidom.cmo \ - $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cma \ - -cclib "$(MINIDOM_DIR)/ml_minidom.o" \ - test.cmo \ - -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \ - -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \ - -L/usr/local/lib/gtkmathview -lgtkmathview \ - $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o" - -test.opt: test.cmx - $(OCAMLOPT) -o test.opt lablgtk.cmxa gtkInit.cmx \ - $(MINIDOM_DIR)/minidom.cmx \ - $(MINIDOM_DIR)/ominidom.cmx \ - $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cmxa \ - -cclib "$(MINIDOM_DIR)/ml_minidom.o" \ - test.cmx \ - -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \ - -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \ - -L/usr/local/lib/gtkmathview -lgtkmathview \ - $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o" - -.SUFFIXES: .ml .mli .cmo .cmi .cmx -.ml.cmo: - $(OCAMLC) -c $< -.mli.cmi: - $(OCAMLC) -c $< -.ml.cmx: - $(OCAMLOPT) -c $< - -clean: - rm -f *.cm[iox] *.o test test.opt t1lib.log test.ps diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/t1.config b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/t1.config deleted file mode 100644 index afb669e95..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/t1.config +++ /dev/null @@ -1,3 +0,0 @@ -ENCODING=. -AFM=/usr/share/texmf/fonts/afm/ -TYPE1=/usr/share/texmf/fonts/type1/bluesky/cm/:/usr/X11R6/lib/X11/fonts/Type1/:. diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/test.ml deleted file mode 100644 index dd66d3885..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/test.ml +++ /dev/null @@ -1,297 +0,0 @@ -(******************************************************************************) -(* Claudio Sacerdoti Coen *) -(* 25/09/2000 *) -(* *) -(* This is a simple test for the OCaml (LablGtk indeed) binding of the *) -(* MathView widget *) -(******************************************************************************) - -(* Callbacks *) -let jump (node : Ominidom.o_mDOMNode) = - let module O = Ominidom in - print_string ("jump: " ^ - (match node#get_attribute (O.o_mDOMString_of_string "href") with - | Some x -> x#get_string - | None -> "NO HREF FOR THIS NODE" - ) ^ "\n"); - flush stdout -;; - -let selection_changed mathview (node : Ominidom.o_mDOMNode option) = - let module O = Ominidom in - print_string ("selection_changed: " ^ - (match node with - None -> "selection_changed on nothing" - | Some node -> - match node#get_name with - | Some x -> x#get_string - | None -> "on element without name" - ) ^ "\n"); - mathview#set_selection node; - flush stdout -;; - - -let clicked (node : Ominidom.o_mDOMNode) = - let module O = Ominidom in - print_string ("clicked: " ^ - (match node#get_name with - | Some x -> x#get_string - | None -> "no name" - ) ^ "\n"); - flush stdout -;; - - -let activate_t1 mathview () = - mathview#set_font_manager_type `font_manager_t1; - print_string "WIDGET SET WITH T1 FONTS\n" ; - flush stdout -;; - -let activate_gtk mathview () = - mathview#set_font_manager_type `font_manager_gtk; - print_string "WIDGET SET WITH GTK FONTS\n" ; - flush stdout -;; - -let get_font_manager_type mathview () = - print_string "CURRENT FONT MANAGER TYPE: "; - begin - match mathview#get_font_manager_type with - | `font_manager_t1 -> print_string "T1" - | `font_manager_gtk -> print_string "GTK" - end; - print_newline(); - flush stdout -;; - -let load mathview () = - mathview#load "test.xml" ; - print_string "load: SEEMS TO WORK\n" ; - flush stdout -;; - -let get_selection mathview () = - let module O = Ominidom in - let selection = - match mathview#get_selection with - | Some node -> - begin - match node#get_name with - | Some name -> name#get_string - | None -> "element with no name!" - end - | None -> "no selection!" - in - print_string ("get_selection: " ^ selection ^ "\n") ; - flush stdout -;; - -let set_selection mathview () = - let module O = Ominidom in - begin - match mathview#get_selection with - | Some node -> - begin - try - let parent_node = node#get_parent in - mathview#set_selection (Some parent_node); - print_string "set selection: SEEMS TO WORK\n" - with - _ -> print_string "EXCEPTION: no parent\n" - end - | None -> - mathview#set_selection None; - print_string "no selection\n" - end ; - flush stdout -;; - -let unload mathview () = - mathview#unload ; - print_string "unload: SEEMS TO WORK\n" ; - flush stdout -;; - -let get_width mathview () = - print_string ("get_width: " ^ string_of_int (mathview#get_width) ^ "\n") ; - flush stdout -;; - -let get_height mathview () = - print_string ("get_height: " ^ string_of_int (mathview#get_height) ^ "\n") ; - flush stdout -;; - -let get_top mathview () = - let (x,y) = mathview#get_top in - print_string ("get_top: ("^ string_of_int x ^ "," ^ string_of_int y ^ ")\n") ; - flush stdout -;; - -let set_top mathview () = - mathview#set_top 0 0; - print_string "set_top: SEEM TO WORK\n" ; - flush stdout -;; - -let set_adjustments mathview () = - let adj1 = GData.adjustment () in - let adj2 = GData.adjustment () in - mathview#set_adjustments adj1 adj2 ; - adj1#set_value ((adj1#lower +. adj1#upper) /. 2.0) ; - adj2#set_value ((adj2#lower +. adj2#upper) /. 2.0) ; - print_string "set_adjustments: SEEM TO WORK\n" ; - flush stdout -;; - -let get_hadjustment mathview () = - let adj = mathview#get_hadjustment in - adj#set_value ((adj#lower +. adj#upper) /. 2.0) ; - print_string "get_hadjustment: SEEM TO WORK\n" ; - flush stdout -;; - -let get_vadjustment mathview () = - let adj = mathview#get_vadjustment in - adj#set_value ((adj#lower +. adj#upper) /. 2.0) ; - print_string "get_vadjustment: SEEM TO WORK\n" ; - flush stdout -;; - -let get_buffer mathview () = - let buffer = mathview#get_buffer in - Gdk.Draw.rectangle buffer (Gdk.GC.create buffer) ~x:0 ~y:0 - ~width:50 ~height:50 ~filled:true () ; - print_string "get_buffer: SEEMS TO WORK (hint: force the widget redrawing)\n"; - flush stdout -;; - -let get_frame mathview () = - let frame = mathview#get_frame in - frame#set_shadow_type `NONE ; - print_string "get_frame: SEEMS TO WORK\n" ; - flush stdout -;; - -let set_font_size mathview () = - mathview#set_font_size 24 ; - print_string "set_font_size: FONT IS NOW 24\n" ; - flush stdout -;; - -let get_font_size mathview () = - print_string ("get_font_size: " ^ string_of_int (mathview#get_font_size) ^ "\n") ; - flush stdout -;; - -let set_anti_aliasing mathview () = - mathview#set_anti_aliasing true ; - print_string "set_anti_aliasing: ON\n" ; - flush stdout -;; - -let get_anti_aliasing mathview () = - print_string ("get_anti_aliasing: " ^ - (match mathview#get_anti_aliasing with true -> "ON" | false -> "OFF") ^ - "\n") ; - flush stdout -;; - -let set_kerning mathview () = - mathview#set_kerning true ; - print_string "set_kerning: ON\n" ; - flush stdout -;; - -let get_kerning mathview () = - print_string ("get_kerning: " ^ - (match mathview#get_kerning with true -> "ON" | false -> "OFF") ^ - "\n") ; - flush stdout -;; - -let set_log_verbosity mathview () = - mathview#set_log_verbosity 3 ; - print_string "set_log_verbosity: NOW IS 3\n" ; - flush stdout -;; - -let get_log_verbosity mathview () = - print_string ("get_log_verbosity: " ^ - string_of_int mathview#get_log_verbosity ^ - "\n") ; - flush stdout -;; - -let export_to_postscript (mathview : GMathView.math_view) () = - mathview#export_to_postscript ~filename:"test.ps" (); - print_string "expor_to_postscript: SEEMS TO WORK (hint: look at test.ps)\n"; - flush stdout -;; - -(* Widget creation *) -let main_window = GWindow.window ~title:"GtkMathView test" () in -let vbox = GPack.vbox ~packing:main_window#add () in -let sw = GBin.scrolled_window ~width:50 ~height:50 ~packing:vbox#pack () in -let mathview= GMathView.math_view ~packing:sw#add ~width:50 ~height:50 () in -let table = GPack.table ~rows:6 ~columns:5 ~packing:vbox#pack () in -let button_gtk=GButton.button ~label:"activate Gtk fonts" ~packing:(table#attach ~left:0 ~top:0) () in -let button_load = GButton.button ~label:"load" ~packing:(table#attach ~left:1 ~top:0) () in -let button_unload = GButton.button ~label:"unload" ~packing:(table#attach ~left:2 ~top:0) () in -let button_get_selection = GButton.button ~label:"get_selection" ~packing:(table#attach ~left:3 ~top:0) () in -let button_set_selection = GButton.button ~label:"set_selection" ~packing:(table#attach ~left:4 ~top:0) () in -let button_get_width = GButton.button ~label:"get_width" ~packing:(table#attach ~left:0 ~top:1) () in -let button_get_height = GButton.button ~label:"get_height" ~packing:(table#attach ~left:1 ~top:1) () in -let button_get_top = GButton.button ~label:"get_top" ~packing:(table#attach ~left:2 ~top:1) () in -let button_set_top = GButton.button ~label:"set_top" ~packing:(table#attach ~left:3 ~top:1) () in -let button_set_adjustments = GButton.button ~label:"set_adjustments" ~packing:(table#attach ~left:4 ~top:1) () in -let button_get_hadjustment = GButton.button ~label:"get_hadjustment" ~packing:(table#attach ~left:0 ~top:2) () in -let button_get_vadjustment = GButton.button ~label:"get_vadjustment" ~packing:(table#attach ~left:1 ~top:2) () in -let button_get_buffer = GButton.button ~label:"get_buffer" ~packing:(table#attach ~left:2 ~top:2) () in -let button_get_frame = GButton.button ~label:"get_frame" ~packing:(table#attach ~left:3 ~top:2) () in -let button_set_font_size = GButton.button ~label:"set_font_size" ~packing:(table#attach ~left:4 ~top:2) () in -let button_get_font_size = GButton.button ~label:"get_font_size" ~packing:(table#attach ~left:0 ~top:3) () in -let button_set_anti_aliasing = GButton.button ~label:"set_anti_aliasing" ~packing:(table#attach ~left:1 ~top:3) () in -let button_get_anti_aliasing = GButton.button ~label:"get_anti_aliasing" ~packing:(table#attach ~left:2 ~top:3) () in -let button_set_kerning = GButton.button ~label:"set_kerning" ~packing:(table#attach ~left:3 ~top:3) () in -let button_get_kerning = GButton.button ~label:"get_kerning" ~packing:(table#attach ~left:4 ~top:3) () in -let button_set_log_verbosity = GButton.button ~label:"set_log_verbosity" ~packing:(table#attach ~left:0 ~top:4) () in -let button_get_log_verbosity = GButton.button ~label:"get_log_verbosity" ~packing:(table#attach ~left:1 ~top:4) () in -let button_export_to_postscript = GButton.button ~label:"export_to_postscript" ~packing:(table#attach ~left:2 ~top:4) () in -let button_t1 = GButton.button ~label:"activate T1 fonts" ~packing:(table#attach ~left:3 ~top:4) () in -let button_get_font_manager_type = GButton.button ~label:"get_font_manager" ~packing:(table#attach ~left:4 ~top:4) () in -(* Signals connection *) -ignore(button_gtk#connect#clicked (activate_gtk mathview)) ; -ignore(button_load#connect#clicked (load mathview)) ; -ignore(button_unload#connect#clicked (unload mathview)) ; -ignore(button_get_selection#connect#clicked (get_selection mathview)) ; -ignore(button_set_selection#connect#clicked (set_selection mathview)) ; -ignore(button_get_width#connect#clicked (get_width mathview)) ; -ignore(button_get_height#connect#clicked (get_height mathview)) ; -ignore(button_get_top#connect#clicked (get_top mathview)) ; -ignore(button_set_top#connect#clicked (set_top mathview)) ; -ignore(button_set_adjustments#connect#clicked (set_adjustments mathview)) ; -ignore(button_get_hadjustment#connect#clicked (get_hadjustment mathview)) ; -ignore(button_get_vadjustment#connect#clicked (get_vadjustment mathview)) ; -ignore(button_get_buffer#connect#clicked (get_buffer mathview)) ; -ignore(button_get_frame#connect#clicked (get_frame mathview)) ; -ignore(button_set_font_size#connect#clicked (set_font_size mathview)) ; -ignore(button_get_font_size#connect#clicked (get_font_size mathview)) ; -ignore(button_set_anti_aliasing#connect#clicked (set_anti_aliasing mathview)) ; -ignore(button_get_anti_aliasing#connect#clicked (get_anti_aliasing mathview)) ; -ignore(button_set_kerning#connect#clicked (set_kerning mathview)) ; -ignore(button_get_kerning#connect#clicked (get_kerning mathview)) ; -ignore(button_set_log_verbosity#connect#clicked (set_log_verbosity mathview)) ; -ignore(button_get_log_verbosity#connect#clicked (get_log_verbosity mathview)) ; -ignore(button_export_to_postscript#connect#clicked (export_to_postscript mathview)) ; -ignore(button_t1#connect#clicked (activate_t1 mathview)) ; -ignore(button_get_font_manager_type#connect#clicked (get_font_manager_type mathview)) ; -ignore(mathview#connect#jump jump) ; -ignore(mathview#connect#clicked clicked) ; -ignore(mathview#connect#selection_changed (selection_changed mathview)) ; -(* Main Loop *) -main_window#show () ; -GMain.Main.main () -;; diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/test.xml deleted file mode 100644 index b0f8c1563..000000000 --- a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20001129_gtkmathview-0.2.2/test/test.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - a - - x - - + - b - - - - x - 2 - - + - - p - - x - - + - q - - - - d - x - = - - - a2 - - - ln - - - ( - - x2 - + - - p - - x - - + - q - - ) - - - - + - - - - - 2 - - b - - - - - a - - p - - - - - - 4 - - q - - - - - p - 2 - - - - - - - arctg - - - - - 2 - - x - - + - p - - - - - 4 - - q - - - - - p - 2 - - - - - - - + - c - - -- 2.39.2

sq(#LK79C80qDxOBpas`h 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 diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0.tar.gz b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0.tar.gz deleted file mode 100644 index ba7056f6298e40a9035c696ee13f8b4910974e2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419688 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