IUP

Check-in [46189b0ff5]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:CHICKEN bindings for IUP configuration file support
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 46189b0ff51511091a99ee780e798fc5c151dd78
User & Date: murphy 2015-05-03 17:32:04
Context
2015-05-03
17:45
Streamlined sections check-in: c2869d0d6d user: murphy tags: trunk
17:32
CHICKEN bindings for IUP configuration file support check-in: 46189b0ff5 user: murphy tags: trunk
02:57
Updated CHICKEN release information file check-in: d164df82c1 user: murphy tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Added chicken/iup-config.scm.































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
;; -*- mode: Scheme; tab-width: 2; -*- ;;

;; {{{ Data types

(foreign-declare
	"#include <iup.h>\n"
	"#include <iup_config.h>\n")
	
(include "iup-types.scm")

;; }}}

;; {{{ Configuration component

(define config
  (make-constructor-procedure
  	(foreign-lambda nonnull-ihandle "IupConfig")))

;; }}}

;; {{{ Configuration I/O

(define (config-error location handle status)
	(let ([message
				 (case status
					 [(-1) "Error opening configuration file"]
					 [(-2) "Error accessing configuration file"]
					 [(-3) "Error locating configuration file"]
					 [else "Error concerning configuration file"])])
		(raise
		 (make-composite-condition
			(make-property-condition
			 'exn 'message message 'arguments (list handle) 'location location)
			(make-property-condition
			 'i/o)
			(make-property-condition
			 'config 'status status)))))

(define (config-load! handle)
	(let ([status ((foreign-lambda int "IupConfigLoad" nonnull-ihandle) handle)])
		(unless (zero? status) (config-error 'config-load! handle status))))

(define (config-save! handle)
	(let ([status ((foreign-lambda int "IupConfigSave" nonnull-ihandle) handle)])
		(unless (zero? status) (config-error 'config-save! handle status))))

;; }}}

;; {{{ Configured Dialog Positions

(define config-dialog-show
	(foreign-safe-lambda void "IupConfigDialogShow" nonnull-ihandle nonnull-ihandle nonnull-c-string))

(define config-dialog-update!
	(foreign-safe-lambda void "IupConfigDialogClosed" nonnull-ihandle nonnull-ihandle nonnull-c-string))

;; }}}

;; {{{ Configured Recent Files

(define-external (recent_callback_entry [ihandle handle]) istatus
	(let ([callback (cond [(and handle (parent handle)) => (cut callback <> 'action)])])
		(if callback
				(callback handle)
				'continue)))

(define config-recent-menu
	(make-constructor-procedure
	  (lambda (handle max-recent)
			(let ([menu (foreign-value "IupMenu(NULL)" nonnull-ihandle)])
				((foreign-lambda* void ([nonnull-ihandle handle] [nonnull-ihandle menu] [int max_recent])
					 "IupConfigRecentInit(handle, menu, recent_callback_entry, max_recent);")
				 handle menu max-recent)
				menu))))

(define config-recent-update!
	(foreign-safe-lambda void "IupConfigRecentUpdate" nonnull-ihandle nonnull-c-string))

;; }}}

Changes to chicken/iup.meta.

1
2
3
4
5
6
7
8
;; -*- mode: Scheme; -*-
((category ui)
 (license "BSD")
 (author "Thomas Chust")
 (synopsis "Bindings to the IUP GUI library")
 (doc-from-wiki)
 (needs srfi-42)
 (files "iup.scm" "iup-types.scm" "iup-base.scm" "iup-controls.scm" "iup-dialogs.scm" "iup-glcanvas.scm" "iup-glcontrols.scm" "iup-plot.scm" "iup-mglplot.scm" "iup-pplot.scm" "iup-scintilla.scm" "iup-web.scm" "iup-ole.scm" "iup-dynamic.scm" "iup.setup" "iup.meta" "iup.release-info"))







|
1
2
3
4
5
6
7
8
;; -*- mode: Scheme; -*-
((category ui)
 (license "BSD")
 (author "Thomas Chust")
 (synopsis "Bindings to the IUP GUI library")
 (doc-from-wiki)
 (needs srfi-42)
 (files "iup.scm" "iup-types.scm" "iup-base.scm" "iup-controls.scm" "iup-dialogs.scm" "iup-glcanvas.scm" "iup-glcontrols.scm" "iup-plot.scm" "iup-mglplot.scm" "iup-pplot.scm" "iup-scintilla.scm" "iup-web.scm" "iup-ole.scm" "iup-config.scm" "iup-dynamic.scm" "iup.setup" "iup.meta" "iup.release-info"))

Changes to chicken/iup.scm.

150
151
152
153
154
155
156













157
158
159
160
161
162
163
164
165
166
167
		(ole-control)
		(import
		  scheme chicken foreign
			iup-base)
		(include "iup-ole.scm"))]
 [else])














(module iup
	()
	(import scheme chicken)
	(reexport
		(except iup-base
			ihandle->pointer pointer->ihandle ihandle-list->pointer-vector
			istatus->integer integer->istatus
			iname->string string->iname
			make-constructor-procedure optional-args)
		iup-controls
		iup-dialogs))







>
>
>
>
>
>
>
>
>
>
>
>
>











150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
		(ole-control)
		(import
		  scheme chicken foreign
			iup-base)
		(include "iup-ole.scm"))]
 [else])

(cond-expand
 [disable-iup-config]
 [else
	(module iup-config
		(config
		 config-load! config-save!
		 config-recent-menu config-recent-update!
		 config-dialog-show config-dialog-update!)
		(import
		  scheme chicken foreign
			iup-base (only srfi-18 raise))
		(include "iup-config.scm"))])

(module iup
	()
	(import scheme chicken)
	(reexport
		(except iup-base
			ihandle->pointer pointer->ihandle ihandle-list->pointer-vector
			istatus->integer integer->istatus
			iname->string string->iname
			make-constructor-procedure optional-args)
		iup-controls
		iup-dialogs))

Changes to chicken/iup.setup.

38
39
40
41
42
43
44
45





46
47
48
49
50
51
52
..
82
83
84
85
86
87
88
89





90
91
92
93
94
95
96
...
172
173
174
175
176
177
178




179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
				'()]
			 [else
				'(-j iup-web)])
		,@(cond-expand
			 [enable-iup-ole
				'(-j iup-ole)]
			 [else
				'()])))






(define import-libraries
	`("iup.import.so"
		"iup-base.import.so" "iup-controls.import.so" "iup-dialogs.import.so"
		,@(cond-expand
			 [disable-iup-glcanvas
				'()]
................................................................................
				'()]
			 [else
				'("iup-web.import.so")])
		,@(cond-expand
			 [enable-iup-ole
				'("iup-ole.import.so")]
			 [else
				'()])))






(define native-libraries
	`("-lcallback"
		"-liup" "-liupim" "-liupimglib" "-liupcontrols"
		,@(cond-expand
			 [disable-iup-matrixex
				'()]
................................................................................
 [disable-iup-web]
 [else
	(compile -s -O2 -d0 "iup-web.import.scm")])
(cond-expand
 [enable-iup-ole
	(compile -s -O2 -d0 "iup-ole.import.scm")]
 [else])





(install-extension
 'iup
 `("iup.so" "iup.o" "iup-types.scm" ,@import-libraries)
 `((version 1.5.0)
	 (static "iup-base.o")
	 (static-options ,(string-intersperse native-libraries))))

(compile -s -O2 -d1 "iup-dynamic.scm" -j iup-dynamic)
(compile -c -O2 -d1 "iup-dynamic.scm" -j iup-dynamic -unit iup-dynamic)
(compile -s -O2 -d0 "iup-dynamic.import.scm")

(install-extension
 'iup-dynamic
 '("iup-dynamic.so" "iup-dynamic.o" "iup-dynamic.import.so")
 '((version 1.5.0)
   (static "iup-dynamic.o")))







|
>
>
>
>
>







 







|
>
>
>
>
>







 







>
>
>
>




|










|

38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
..
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
...
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
				'()]
			 [else
				'(-j iup-web)])
		,@(cond-expand
			 [enable-iup-ole
				'(-j iup-ole)]
			 [else
				'()])
		,@(cond-expand
			 [disable-iup-config
				'()]
			 [else
				'(-j iup-config)])))

(define import-libraries
	`("iup.import.so"
		"iup-base.import.so" "iup-controls.import.so" "iup-dialogs.import.so"
		,@(cond-expand
			 [disable-iup-glcanvas
				'()]
................................................................................
				'()]
			 [else
				'("iup-web.import.so")])
		,@(cond-expand
			 [enable-iup-ole
				'("iup-ole.import.so")]
			 [else
				'()])
		,@(cond-expand
			 [disable-iup-config
				'()]
			 [else
				'("iup-config.import.so")])))

(define native-libraries
	`("-lcallback"
		"-liup" "-liupim" "-liupimglib" "-liupcontrols"
		,@(cond-expand
			 [disable-iup-matrixex
				'()]
................................................................................
 [disable-iup-web]
 [else
	(compile -s -O2 -d0 "iup-web.import.scm")])
(cond-expand
 [enable-iup-ole
	(compile -s -O2 -d0 "iup-ole.import.scm")]
 [else])
(cond-expand
 [disable-iup-config]
 [else
	(compile -s -O2 -d0 "iup-config.import.scm")])

(install-extension
 'iup
 `("iup.so" "iup.o" "iup-types.scm" ,@import-libraries)
 `((version 1.6.0)
	 (static "iup-base.o")
	 (static-options ,(string-intersperse native-libraries))))

(compile -s -O2 -d1 "iup-dynamic.scm" -j iup-dynamic)
(compile -c -O2 -d1 "iup-dynamic.scm" -j iup-dynamic -unit iup-dynamic)
(compile -s -O2 -d0 "iup-dynamic.import.scm")

(install-extension
 'iup-dynamic
 '("iup-dynamic.so" "iup-dynamic.o" "iup-dynamic.import.so")
 '((version 1.6.0)
   (static "iup-dynamic.o")))