12008-05-01 Andy Wingo <wingo@pobox.com> 2 3 * gnome/gw/support/defs.scm (load-defs): Remove the 4 bad-method-name tracking code, as we no longer write logs. 5 62008-04-27 Andy Wingo <wingo@pobox.com> 7 8 * gnome/gw/support/defs.scm: Flesh out docs, from the tutorial. 9 (load-defs): Remove logfile-writing foo. 10 11 * gnome/gobject/generics.scm: Fix docs. 12 13 * gnome/gobject.scm: Add tutorial-style docs to the module 14 commentary, taken from the tutorial. 15 16 * gnome.scm.in: Add the API_VERSION docs from the tutorial into 17 the gnome-N module commentary, so they will end up in the 18 reference documentation. 19 20 * doc/gobject/guile-gnome-gobject.scm: Add a type index. Add 21 (gnome-2) and (gnome gobject). 22 232008-04-25 Andy Wingo <wingo@pobox.com> 24 25 * == Released guile-gnome-platform version 2.15.98 == 26 272008-04-25 Andy Wingo <wingo@pobox.com> 28 29 * VERSION: Bumped to 2.15.98. 30 312008-04-25 Andy Wingo <wingo@pobox.com> 32 33 * test-suite/wrapset.api: Regenerate. 34 * test-suite/gobject.api: Regenerate. 35 36 * examples/main-loop.scm: 37 * examples/example-1.scm: Update examples to gnome-2. 38 39 * gnome/gw/support/gtk-doc.scm (zap-whitespace) 40 (docbook->sdocbook): Zap any whitespace-only strings coming out of 41 xml->sxml. 42 (class-signal-stexi-docs): Only doc the class' own signals. 43 (gobject-class-stexi-docs): Reword. 44 45 * gnome/gobject/gsignal.c (gtype-class-get-signals): Only query 46 instantiatable types. 47 48 * gnome/gobject/gparameter.scm (<gparam-value-array>): Allow #f 49 for the element-spec. 50 (<gparam-unichar>): 51 * gnome/gobject/gparameter.c (scm_c_gparam_initialize_scm) 52 (scm_c_gparam_construct): Re-add unichar param support. 53 54 * gnome/gobject/gobject.scm (compute-slots): A bit of a hack to 55 make sure that the direct-slots slot mentions the GObject 56 properties. 57 (<gparam-object>): Change to accept <ginterface> as well. 58 59 * doc/gobject/guile-gnome-gobject.texi: Update version. 60 61 * doc/gobject/guile-gnome-gobject.scm (*updated*, *version*) 62 (*years*); Updated. 63 64 * doc/glib/defuns-*.texi: Regenerated. Lost the whitespace due to 65 change in gtk-doc.scm. 66 672008-04-25 Andy Wingo <wingo@pobox.com> 68 69 * gnome/gw/support/gtk-doc.scm (gobject-class-stexi-docs): Cope 70 with gw:wct, which is not a <class>. Sigh. 71 72 * gnome/gobject/gtype.h: Remove unimplemented foo 73 74 * gnome/gobject/gtype.c (gtype-instance-destroy!): Renamed from 75 %gtype-instance-destroy!, because really it's not that private; 76 its semantics are necessary. 77 (especify-metaclass!): Removed, as the only user -- 78 <gtk-message-dialog> -- was fixed. yay1 79 80 * gnome/gw/support/gtk-doc.scm: 81 * gnome/gobject/gvalue.scm: 82 (<gboxed>): 83 * gnome/gobject/gvalue.c (genum-register-static) 84 (gflags-register-static): 85 * gnome/gobject/gtype.scm: 86 * gnome/gobject/gtype.c (gtype-name->class): 87 * gnome/gobject/gsignal.scm: 88 (gtype-class-create-signal): 89 * gnome/gobject/gparameter.scm: 90 * gnome/gobject/gobject.scm (<gobject>) 91 (gobject-class-find-property): 92 * gnome/gobject/gclosure.scm: Updated docs. 93 94 * doc/glib/defuns-*.texi: Regenerated. Lots of extra crap 95 whitespace because SSAX changed to not ignore whitespace-only 96 strings. 97 982008-04-24 Andy Wingo <wingo@pobox.com> 99 100 * test-suite/gobject.test ("gflags values"): Add test for 101 scm_c_scm_to_flags_value fix. 102 103 * gnome/gobject/gvalue.c (scm_c_gvalue_ref): Whoops, handle the 104 string-is-null case. 105 (scm_c_scm_to_flags_value): Accept single 'foo or "foo" to mean 106 '(foo) or '("foo"), respectively. Thanks to Gregory Benison for 107 the report. 108 109 * gnome/gobject/guile-support.h: 110 * gnome/gobject/guile-support.c (scm_symbol_chars) 111 (scm_symbol_chars_dynwind, scm_keyword_chars) 112 (scm_keyword_chars_dynwind): New functions. 113 114 * gnome/gobject/gvalue.c (scm_c_gvalue_ref, scm_c_gvalue_set) 115 (scm_c_scm_to_enum_value, scm_c_scm_to_flags_value) 116 (unwrap_gvalue_array, genum-register-static) 117 (genum-class->value-table, gflags-register-static) 118 (gflags-class->value-table): 119 * gnome/gobject/gsignal.c (gsignal-query, gsignal-create) 120 (gtype-instance-signal-emit) 121 (gtype-instance-signal-connect-closure): 122 * gnome/gobject/gparameter.c (SCM_ERROR_NOT_YET_IMPLEMENTED): 123 Fix deprecation warnings. 124 125 * gnome/gobject/gobject.c (gobject-get-data, gobject-set-data!): 126 Remove unused functions. 127 (scm_c_gobject_construct) 128 (scm_with_c_gtype_instance_instance_init, gobject-get-property) 129 (gobject-set-property) 130 (SCM_DEFINE): Fix deprecation warnings. Untabify the file. 131 1322008-04-10 Andy Wingo <wingo@unquote> 133 134 * == Released guile-gnome-platform version 2.15.97 == 135 1362008-04-10 Andy Wingo <wingo@unquote> 137 138 * VERSION: Bumped to 2.15.97. 139 1402008-04-10 Andy Wingo <wingo@unquote> 141 142 * NEWS: Update NEWS. 143 1442008-04-10 Andy Wingo <wingo@pobox.com> 145 146 * gnome/gobject/gvalue.c: 147 * gnome/gobject/gtype.c: 148 * gnome/gobject/gsignal.c (scm_c_gsignal_query): 149 * gnome/gobject/gparameter.c: 150 * gnome/gobject/gobject.c: Disable debugging printouts. 151 152 * gnome/gobject/gtype.c (scm_c_gtype_class_to_gtype) 153 (scm_c_scm_to_gtype_instance): Avoid scm_slot_ref on 'u' slots on 154 broken versions of Guile. 155 156 * gnome/gobject/gparameter.scm (compute-get-n-set): Use our new 157 %hacky-* struct accessors. (The accessors are not exported.) 158 159 * gnome/gobject/gparameter.c (scm_sys_hacky_struct_ref) 160 (scm_sys_hacky_struct_set_x): New functions, equivalent to 161 struct-ref and struct-set! from guile, except that they don't 162 check permissions or allocation, because we know them, and, more 163 crucially, they understand how to calculate n_fields for the 164 so-called "light structs". Should be unnecessary once the patches 165 submitted to guile-devel on 10 April 2008 are accepted. 166 167 Reminiscent of %get-struct-slot and %set-struct-slot! from gtype.c 168 before my rewrite, which were probably written in part to 169 compensate for this problem, under the haze of ignorance. 170 1712008-04-09 Andy Wingo <wingo@pobox.com> 172 173 * gnome/gobject/gtype.c (%gtype-class-bind) 174 (%gtype-class-inherit-magic) 175 * gnome/gobject/gtype.scm (initialize on <gtype-class>): We do 176 need to bind the gtype to the class before calling next-method, 177 but also we have to munge the class' free function after the 178 next-method. Therefore split %gtype-class-inherit-magic out of 179 %gtype-class-bind. Fixes things not being freed because the base 180 %inherit-magic overwrite our struct free function. 181 182 * test-suite/gobject.test ("genum values", "gflags values"): Add 183 some tests. 184 185 * gnome/gobject/gvalue.scm: (gflags->element-list, genum->enum): 186 Use the ->value functions defined in C. 187 188 * gnome/gobject/gvalue.c (scm_c_gvalue_ref): Don't turn <genum> 189 and <gflags> values into ints, leave them as gvalues. 190 (genum->value, gflags->value): Implemented in C. The latter 191 function is new. 192 193 * gnome/gobject/private.h: 194 * gnome/gobject/gtype.c (scm_sys_gtype_instance_construct): Export 195 scm_c_gtype_instance_bind_to_object instead. Allow for the 196 possibility that construct() bound the instance. 197 198 * gnome/gobject/gobject.c 199 (scm_with_c_gtype_instance_instance_init): Use bind_to_object; the 200 incomplete set_cached() is insufficient if e.g. the 201 gobject:set-property calls API on the object. 202 203 * test-suite/gobject.test ("defining custom gobject type"): Add a 204 test for the construct arg behaviour. 205 206 * gnome/gobject/private.h: 207 * gnome/gobject/gtype.c (scm_c_gtype_instance_set_cached): Expose 208 this internal piece to gobject.c. 209 210 * gnome/gobject/gobject.c (push_in_construction_from_scheme) 211 (pop_in_construction_from_scheme, in_construction_from_scheme): 212 Keep a stack of SCM objects under construction. 213 (scm_with_c_gtype_instance_instance_init): If there is an object 214 under construction, associate it with the GTypeInstance*, so that 215 gobject:set-property calls for construct properties see the same 216 SCM as the one under construction. 217 218 * gnome/gobject/gvalue.scm (<gboxed-scm>, <gvalue-array>): 219 * gnome/gobject/gclosure.scm (<gclosure>): Inherit from <gboxed>, 220 because that's how they roll. 221 2222008-04-08 Andy Wingo <wingo@pobox.com> 223 224 * gnome/gobject/gtype.h: 225 * gnome/gobject/gtype.c: Rewrite to never expose GTypes on the 226 Scheme side, rather wrapping GTypes directly as <gtype-class> 227 instances. The GType is stored in a <read-only-slot>, which stores 228 a raw (untagged) word -- the perfect size for a GType. Hence much 229 gtype<->class API has been removed. 230 231 Because a GType is isomorphic to GTypeClass*, the <%gtype-class> 232 smob is also gone. 233 234 On the instance side, I also removed the need for 235 <%gtype-instance> smobs as well, through interesting trickery: the 236 GOOPS objects directly store the GTypeInstance* pointer in a 237 <read-only-slot>, as with the <gtype-class> instances. The 238 trickery is that we can be notified when the struct is collected, 239 via monkeypatching the <gtype-class> objects to free via a custom 240 function, scm_gtype_instance_struct_free. This allows us to unref 241 the object. 242 243 This low-level trickery happens as part of the object allocation 244 and initialization protocol. 245 246 (scm_c_gtype_get_direct_supers): C function to determine the 247 superclasses of a given GType: the union of the type's parents and 248 the type's interfaces. 249 (scm_c_gtype_to_class): Dispatch down to `make-class' with the 250 right #:gtype-name. 251 (%gtype_to_class): New function corresponding to the old 252 gtype->class, but for such things as g-wrap's latent class 253 binding. Not really public. 254 (scm_gtype_name_to_class): Replaces the old gtype->class. In the 255 new world order gtypes can be summoned by name only. 256 (gtype_struct_offset): Helper to compute the offset within the 257 class struct in which to store the gtype. 258 (scm_sys_gtype_bind): Deep magic to shove a GType into a 259 <gtype-class>, called during <gtype-class>'s `initialize' 260 function. Also sets the struct free functions in the classes with 261 a sketchy heuristic. 262 (scm_c_gtype_class_to_gtype): New function for C. 263 (scm_c_gtype_class_is_a_p): New function for C. 264 (scm_c_gtype_instance_get_cached): Remove the smob/goops glue 265 code: there is just one cache for an instance. 266 267 (scm_t_gtype_instance_funcs): Add construct() and initialize_scm() 268 methods. 269 270 (scm_c_gtype_instance_construct): New function, called as the 271 first thing that <gtype-instance>'s `initialize' does. 272 (scm_c_gtype_instance_bind_to_object): 273 (scm_gtype_instance_unbind): 274 (scm_gtype_instance_struct_free): Corresponding trickery to bind 275 <gtype-instance> values to refcounted C pointers. 276 277 (%gtype-instance-construct): <gtype-instance>'s `initialize' 278 bottoms out here, normally resulting in the construction of the 279 instance, e.g. via g_object_newv(). There is another codepath to 280 initialize a SCM instead of the pointer, but I think the idea is a 281 bit flaky. See e.g. gparameter.c. 282 (%gtype-instance-destroy!): Forcibly drop the GOOPS object's 283 reference on the type instance. 284 (scm_c_scm_to_gtype_instance): No longer takes two arguments. The 285 two-arg version is... 286 (scm_c_scm_to_gtype_instance_typed): ...here. 287 (%get-struct-slot, %set-struct-slot!): Removed, no longer 288 necessary. 289 290 * gnome/gobject/gtype.scm: A rewrite corresponding to that 291 described in gtype.[ch]. 292 (initialize <gtype-class>): Base mechanics to bind a class to a 293 GType, looked up by name. 294 (initialize <gtype-instance>): Base mechanics to construct a 295 GTypeInstance, if the instance is not yet bound. 296 297 * gnome/gobject/gvalue.c: Rewrite to represent GValue objects as 298 instances of GOOPS classes, bound to C GValue* values in the same 299 way as <gtype-instance> objects are bound to GTypeInstance* 300 values. (They used to be SMOBs.) 301 302 (scm_gvalue_struct_free): A <gvalue> free function, like 303 scm_gtype_instance_struct_free. 304 (scm_sys_bless_gvalue_class): Magic like %gtype-class-bind. 305 (scm_sys_allocate_gvalue): <gvalue>'s `allocate-instance' bottoms 306 out here, which allocates the C GValue* object. 307 (scm_c_make_gvalue): Redone on top of GOOPS allocation protocol. 308 The case in which the <gtype-class> is not a <gvalue-class> is a 309 bit hacky, unfortunately. 310 (scm_c_gvalue_peek_value): New function. 311 (scm_c_gvalue_ref): New function, factored out of 312 scm_gvalue_primitive_get, but operating on GValue*. 313 (scm_c_gvalue_set): New function, factored out of 314 scm_gvalue_primitive_set, but operating on GValue*. 315 (scm_c_scm_to_enum_value, scm_c_scm_to_flags_value): New 316 functions, factored out gvalue.scm. 317 (%gvalue-set!): New hackiness, for <gvalue>'s `initialize'. 318 (scm_c_gvalue_to_scm, scm_c_scm_to_gvalue): Implemented on top of 319 ref() and set(). 320 ( 321 (scm_genum_class_to_value_table, scm_gflags_class_to_value_table): 322 Rename from foo-type-get-values, remove the old SCM wrappers. 323 (scm_c_gvalue_holds, scm_c_gvalue_new_from_boxed) 324 (scm_c_gvalue_new_take_boxed, scm_c_gvalue_peek_boxed) 325 (scm_c_gvalue_dup_boxed, scm_c_gvalue_dup_value) 326 (scm_c_gvalue_from_value, scm_c_gvalue_take_value): New C helper 327 functions. 328 (scm_init_gnome_gobject_values): Register SCM-gvalue wrappers for 329 boxeds and value arrays just like other non-core boxed types. 330 331 * gnome/gobject/gvalue.scm (gnome): Also export <gvalue>. Remove 332 {genum,gflags}-type-get-value, use the foo-class->value-table 333 functions instead. Define all <gvalue> subclasses (<gchar>, 334 <gfloat>, etc.) using normal subclassing foo. 335 (<genum>, <gflags>): Rework to be more like other <gtype-class> 336 instances. Don't store a value table on the class object, that's 337 not necessary. 338 339 * gnome/gobject/utils.scm (unless): New macro. 340 (with-accessors): New macro, defines procedures-with-setters in 341 its body that map to particular slot accessors. Very interesting; 342 needs more docs. 343 344 * gnome/gobject/gclosure.scm: 345 * gnome/gobject/gclosure.h: 346 * gnome/gobject/gclosure.c (scm_gclosure_marshal_with_guile): 347 Perform the C<->GValue conversions here, not in a Scheme wrapper. 348 (struct _GuileGClosure, %gclosure-construct): Store the closure 349 metadata in the C closure instead of in the SCM, which is just a 350 boxed value anyway. Perhaps avoid a leaked ref -- there was a very 351 crufty-looking comment that might need checking up on in the 352 future. 353 (scm_gclosure_invoke): Renamed from gclosure-primitive-invoke. 354 Require typed <gvalue> instances, because otherwise we don't know 355 what GValues to use to invoke the closure. 356 (<gclosure>): Derive from <gvalue>, yay. Don't store 357 things (return type, etc) on the SCM object, because if we get a 358 closure from C, we have no way of knowing those things. 359 (initialize): Don't chain up, because we do our own construction. 360 Hacky, but it gets the job done. 361 362 * gnome/gobject/gparameter.scm: 363 * gnome/gobject/gparameter.h: 364 * gnome/gobject/gparameter.c: Parameters are now GOOPS objects 365 only, not GOOPS objects augmented by strange structs. 366 (scm_c_gparam_initialize_scm): New function, called when wrapping 367 an existing parameter as a SCM to initialize the SCM's slots. It's 368 pretty silly though to actually allocate slots, it would be better 369 to use accessors instead. Oh well, perhaps in the future. 370 (scm_c_gparam_construct): New function to create a GParamSpec via 371 e.g. 372 (make <gparam-char> #:name ...) 373 (<gparam>): Define slots for each attribute: name, nick, etc... 374 (<gparam-char>, etc): Define manually. 375 376 * gnome/gobject/gsignal.scm: 377 * gnome/gobject/gsignal.h: 378 * gnome/gobject/gsignal.c: Signals are now GOOPS objects, not 379 structs. 380 (scm_c_gsignal_query, scm_gsignal_query): Make a <gsignal> out of 381 an integer signal ID. 382 (scm_gtype_class_get_signals): Change from gtype-get-signals; 383 return a list of <gsignal> objects. 384 (scm_gsignal_create): Change from gsignal-primitive-create; 385 otherwise basically the same. 386 (scm_gtype_instance_signal_emit): Change from 387 gtype-instance-primitive-signal-emit. 388 (scm_gtype_instance_signal_connect_closure): Renamed from 389 gtype-instance-primitive-signal-connect. 390 (scm_gsignal_handler_block, scm_gsignal_handler_unblock) 391 (scm_gsignal_handler_disconnect, scm_gsignal_handler_connected_p): 392 De-primitivize. 393 394 * gnome/gobject/gobject.scm: 395 * gnome/gobject/gobject.h: 396 * gnome/gobject/gobject.c: Adapt to <gtype-class>/<gtype-instance> 397 changes. 398 (scm_c_gobject_construct): Move construction logic into C; this 399 function is called by <gtype-instance>'s `initialize'. Some 400 trickery to know whether construction was initialized by Scheme) 401 (and thus the initialization protocol is in progress, or whether 402 we need to allocate and initialize a new SCM object. 403 (scm_with_c_gtype_instance_instance_init): Second part of the 404 trickery. 405 (scm_gtype_register_static): Return the type name instead of a 406 GType object. 407 (scm_gobject_class_get_properties): Rename and rework from 408 gobject-type-get-properties. 409 (scm_gobject_class_get_property_names): Crackily duplicated code) 410 (but allows slots to be computed during class initialization 411 without forcing initialization cycles, e.g. <gtk-container> <-> 412 <gtk-widget>. 413 (scm_gobject_class_install_property): No need to update a 414 #:properties slot. 415 (scm_gobject_get_property, scm_gobject_set_property): 416 Deprimitivize. 417 418 * gnome/gobject/gobject.scm (compute-slots on <gobject-class>): 419 Excellent cleverness to declare, but not allocate, slots for each 420 GObject property, even for C types. 421 (compute-get-n-set): Use gobject-{get,set}-property for the slot 422 accessors. 423 (initialize on <gobject-class>): Adapt to gtype.scm protocols. 424 (<gobject>): No more #:gsignals and #:gobject-properties slots; 425 use getter functions instead. 426 (<gparam-object>): Define here, because <gobject> is only defined 427 here. 428 429 * examples/example-1.scm: Update to the new <gclosure> API, and to 430 avoid gtypes. 431 432 * gnome/glib.scm: 433 * examples/main-loop.scm: Avoid gtypes. 434 435 * gnome/gw/support/defs.scm (load-defs): 436 s/wrap-object!/wrap-instance!/. 437 438 * gnome/gw/support/gobject.scm: 439 * gnome/gw/gobject-spec.scm: Wrap <gtype> as <gtype-class>. Remove 440 wrappers for primitive <gtype-instance> objects. Use two-arg 441 scm_c_scm_to_gtype_instance_typed when needed. Remove redundant 442 casts. Use new GValue* helpers. Rename wrap-object! to 443 wrap-instance!, as it works on all GTypeInstance* types that we 444 know about. 445 (initializations-cg on <gobject-classed-type>): Perform the latent 446 binding via (%gtype->class gtype-as-int), instead of on gtype 447 objects. Be more clever about avoiding GValue allocation. 448 449 * gnome/gw/support/gtk-doc.scm (signal-stexi-args) 450 (class-signal-stexi-docs, gobject-class-stexi-docs): Cursory 451 changes that might work; needs more testing. Looks much nicer) 452 (though. 453 454 * test-suite/gobject.api: Update for new API. Yay! 455 456 * test-suite/gobject.test: Remove some GType tests. Adapt others 457 to new API. 458 459 * test-suite/gw-gobject.test: Adapt to new API. 460 461 * test-suite/test-gobject.c (test_obj_class_init): Properly 462 declare the value array parameter. 463 4642008-04-04 Andy Wingo <wingo@pobox.com> 465 466 * gnome/gobject/gc.c: Gcc started throwing warnings about the 467 locking foo, at which point I realized that we never actually 468 initialized gthreads, or linked to it. Fix to use normal mutexen 469 and initialize threads. Perhaps in the future we will do something 470 clever with gdk_thread_funcs. 471 472 * package.ac: Check for gthreads. 473 474 * gnome/gobject/Makefile.am (C_FILES): Reorder to reflect correct 475 dependency ordering. 476 (libguile_gnome_gobject_@API_VERSION@_la_CFLAGS): 477 (libguile_gnome_gobject_@API_VERSION@_la_LIBADD): Link to 478 gthreads. 479 (DOT_DOC_FILES): Remove gparameter.doc from the list, as soon it 480 will have nothing to say. 481 4822007-12-14 Andy Wingo <wingo@pobox.com> 483 484 * gnome/gobject/gtype.h: 485 * gnome/gobject/gtype.c: 486 * gnome/gobject/gobject.c (gobject-primitive-create-instance): 487 (scm_c_gtype_instance_get_cached_goops) 488 (scm_c_gtype_instance_set_cached_goops) 489 (scm_c_gtype_instance_to_scm_typed) 490 (scm_init_gnome_gobject_types): Because we don't really have any 491 guarantee on the order that the SMOB and the GOOPS object are 492 collected, change from caching the GOOPS object on the instance to 493 caching it on a weak hash table, keyed on the SMOB itself. 494 495 * gnome/gobject/gtype.c (scm_c_gtype_instance_get_cached_smob) 496 (scm_c_gtype_instance_get_cached_goops): Crazily, with Guile 1.8 497 there is a window between mark and sweep in which a value has not 498 been collected, but is marked for collecting. If we try to get a 499 cached SCM value in this window, re-mark it so that when lazy 500 sweeping happens, we don't get the newly-alive value freed out 501 from under us. Quite a tough bug! 502 (scm_c_scm_to_gtype_instance): More debugging if we have a bad 503 %gtype-instance. 504 5052007-12-13 Andy Wingo <wingo@pobox.com> 506 507 * gnome/gobject/gtype.c (scm_gtype_instance_free): Add debug. 508 509 * gnome/gobject/gvalue.c (free_gboxed_scm): 510 * gnome/gobject/gparameter.c (gparam->param-struct): 511 * gnome/gobject/gobject.c (scm_with_c_gtype_instance_class_init): 512 * gnome/gobject/gclosure.c (free_closure, gclosure-primitive-new): 513 Update for gc_protect_object changes. 514 515 * gnome/gobject/gc.h: 516 * gnome/gobject/gc.c (scm_glib_gc_protect_object) 517 (scm_glib_gc_unprotect_object): Change prototypes to reflect these 518 functions' nature as a bridge between C and scheme. Note that 519 unprotect_object looks mightily dodgy. 520 5212007-12-12 Andy Wingo <wingo@pobox.com> 522 523 * gnome/gobject/gobject.c (scm_c_gtype_instance_class_init): Enter 524 guile mode. 525 (scm_c_gtype_instance_class_init): Enter guile mode. 526 527 * gnome/gobject/guile-support.h: 528 * gnome/gobject/guile-support.c (scm_dynwind_guile_v__p_u_c_p) 529 (scm_dynwind_guile_v__p_u_p_p, scm_dynwind_guile_v__p_p): Factor 530 some common scm_with_guile/scm_without_guile code into a separate 531 file. Ick. 532 533 * gnome/gobject/gobject.c (scm_c_gobject_set_property) 534 (scm_c_gobject_get_property): Enter guile mode. Icky icky ick. 535 536 * gnome/gobject/gclosure.c 537 (scm_closure_primitive_invoke_without_guile) 538 (scm_closure_primitive_invoke): Leave Guile mode when invoking 539 closures. 540 5412007-12-10 Andy Wingo <wingo@pobox.com> 542 543 * == Released guile-gnome-platform version 2.15.96 == 544 5452007-12-10 Andy Wingo <wingo@pobox.com> 546 547 * VERSION: Bumped to 2.15.96. 548 5492007-12-10 Andy Wingo <wingo@pobox.com> 550 551 * gnome/overrides/glib.defs (g_io_channel_read_line): 552 * gnome/gw/glib-support.h: 553 * gnome/gw/glib-support.c (_wrap_g_io_channel_read_line): Restore 554 this wrapper. 555 556 * gnome/gw/glib-support.c (g_io_add_watch): Enter guile mode in 557 the callback. What a pain in the ass. 558 559 * gnome/gobject/guile-support.h: 560 * gnome/gobject/guile-support.c (scm_to_locale_string_dynwind): 561 New helper, allocates a string to be freed within the current 562 dynwind. 563 564 * gnome/gobject/gvalue.c (scm_gvalue_primitive_set) 565 (scm_genum_register_static, scm_gflags_register_static): 566 * gnome/gobject/gtype.c (scm_gtype_from_name) 567 (scm_c_define_and_export_gtype_x): 568 * gnome/gobject/gparameter.c (SCM_GPARAM_STRUCT_BLURB) 569 (SCM_GPARAM_STRUCT_NICK, scm_gparam_primitive_create): 570 * gnome/gobject/gobject.c (scm_gtype_register_static): Use the 571 scm_to_locale_string_dynwind instead of SCM_STRING_CHARS. 572 573 * examples/fifo.scm (fifo-callback): Update for new 574 io-channel-read-line behavior. 575 (main): primitive-exit from the subthread. Adapt to 576 io-channel-new-file argument change. 577 5782007-12-08 Andy Wingo <wingo@pobox.com> 579 580 * gnome/overrides/glib.defs (run): 581 * gnome/gw/glib-support.c (_wrap_g_main_loop_run): Don't leave 582 guile mode before calling main_loop_run, because we still have to 583 do some SCM-calling things. Instead leave guile mode from inside 584 the wrapper. Fixes some lockups. 585 5862007-12-06 Andy Wingo <wingo@pobox.com> 587 588 * test-suite/wrapset.api: 589 * test-suite/gobject.api: Regenerate. 590 591 * gnome/gw/support/gtk-doc.scm (generate-undocumented-texi): New 592 exported function, generates undocumented.texi. 593 594 * doc/glib/undocumented.texi: 595 * doc/glib/guile-gnome-glib.texi (Top): Add undocumented 596 functions. 597 598 * doc/glib/defuns-unicode.xml.texi: Regenerated docs removed some 599 functions. 600 6012007-11-30 Andy Wingo <wingo@pobox.com> 602 603 * gnome/gw/support/defs.scm (type-lookup): Ignore functions that 604 would force opaque types to be wrapped. 605 6062007-11-25 Andy Wingo <wingo@pobox.com> 607 608 * gnome/gw/support/defs.scm (type-lookup) 609 (construct-argument-list): Add another arg, #:for-proc, that will 610 be used when we warn about making opaque types. 611 (load-defs): Set #:for-proc on lookup-type. 612 613 * doc/glib/defuns-main.xml.texi: 614 * doc/glib/defuns-iochannels.xml.texi: 615 * doc/glib/defuns-bookmarkfile.xml.texi: Regenerated, adds entries 616 for the opaque types. 617 618 * gnome/gw/support/gtk-doc.scm (superclasses) 619 (gobject-class-stexi-docs): Document superclasses. 620 (check-documentation-coverage): Print out "spurious" symbols, 621 those that we think are documented but are not in the wrapper. 622 623 * gnome/gw/support/gobject.scm (initializations-cg) 624 (wrap-opaque-pointer!): Do define and export the wct variable, as 625 other wrapsets that use this type need to get at the wct. Doh. 626 627 * doc/gobject/guile-gnome-gobject.texi (Top): 628 * doc/glib/guile-gnome-glib.texi (Top): Remove the concept index, 629 and add a type index. 630 631 * gnome/gw/support/gtk-doc.scm (gobject-class-stexi-docs): Don't 632 error if the class is not defined in the module. 633 634 * gnome/gw/support/gobject.scm (wrap-freeable-pointer!) 635 (wrap-refcounted-pointer!): Accept the ctype as the name of the 636 type without a star, so that the type name becomes e.g. 637 <g-main-loop> instead of <g-main-loop*>. This means that only 638 truly opaque pointers will have a * in their names. 639 640 * gnome/gw/gobject-spec.scm (initialize): Specialize on 641 <g-source>, not <g-source*> -- fallout from the changes to 642 gobject.scm. 643 644 * gnome/gw/glib-spec.scm (initialize): Adapt to changes in 645 wrap-freeable-pointer and wrap-refcounted-pointer. 646 647 * doc/glib/defuns-*.xml.texi: Regenerated. 648 6492007-11-24 Andy Wingo <wingo@pobox.com> 650 651 * gnome/gw/support/gobject.scm (unwrap-value-cg): Fix a typo, my 652 bads yo. 653 (<gobject-structure-type>, check-typespec-options, c-type-name) 654 (make-typespec, unwrap-value-cg, call-arg-cg, wrap-value-cg) 655 (wrap-structure!): New public function, wrap-structure!, which 656 wraps a C structure as a Scheme value. Parameters of the form 657 "StructName*" are interpreted as "out" parameters, while 658 "const-StructName*" are treated as "in" parameters. 659 6602007-11-23 Andy Wingo <wingo@pobox.com> 661 662 * test-suite/wrapset.api: Update for the changes resulting from 663 the API review. Neat! 664 665 * bin/Makefile.am: Rework; in the future perhaps we will not make 666 a local guile-gnome binary. 667 668 * gnome/overrides/glib.defs: Add lots of custom function wrapper 669 definitions, backed by code in glib-support. Ignore a number of 670 other functions of dubious utility, or that cannot be wrapped 671 safely in scheme. 672 673 * gnome/gw/support/gobject.scm (<gobject-opaque-pointer>): Pull in 674 Guile's wct implementation, as it is not public, and does some 675 things that we don't want to do (e.g. defining the wct classes as 676 variables, that is useless.) 677 (wrap-opaque-pointer!): Use <gobject-opaque-pointer>. 678 (<gobject-freeable-pointer>): New class, a pointer that has a free 679 function. 680 (wrap-freeable-pointer!): New public function. 681 (<gobject-ref-pointer>): New class, a pointer that can be reffed 682 or unreffed. 683 (wrap-refcounted-pointer!): New function. 684 685 * gnome/gw/glib-support.h: 686 * gnome/gw/glib-support.c: Expand, providing better scheme 687 wrappers for a number of functions. 688 689 * gnome/gw/glib-spec.scm (initialize): Wrap a number of types as 690 freeable or refcounted pointers. 691 692 * doc/glib/section-strings.xml.texi (Strings): Add docs for 693 g-string-get-str. 694 695 * doc/glib/overrides.texi: Added some overrides. 696 697 * doc/glib/defuns-unicode.xml.texi: 698 * doc/glib/defuns-misc_utils.xml.texi: 699 * doc/glib/defuns-main.xml.texi: 700 * doc/glib/defuns-iochannels.xml.texi: 701 * doc/glib/defuns-fileutils.xml.texi: 702 * doc/glib/defuns-conversions.xml.texi: 703 * doc/glib/defuns-bookmarkfile.xml.texi: Regenerated with all of 704 the wrapset changes. 705 706 * doc/gobject/Makefile.am: 707 * doc/gobject/guile-gnome-gobject.texi: Added to bzr, because I 708 can't figure out how to get automake to deal with it otherwise. 709 Not such a bad idea though to have this in VC. 710 711 * doc/glib/Makefile.am (docbook_xml): 712 * doc/glib/guile-gnome-glib.texi (Base64 Encoding): 713 * doc/glib/defuns-base64.xml.texi: 714 * doc/glib/section-base64.xml.texi: Removed, the base64 functions 715 were removed. 716 7172007-11-15 Andy Wingo <wingo@pobox.com> 718 719 * gnome/gw/support/gtk-doc.scm (lambda): Fix some texi because the 720 upstream xml is bad. 721 (make-type-docs?, gtk-doc-sdocbook->class-list/g-wrap): Don't 722 generate docs for types that g-wrap does not define, fixes e.g. 723 <gst-element-class>. 724 7252007-11-10 Andy Wingo <wingo@pobox.com> 726 727 * == Released guile-gnome-platform version 2.15.95 == 728 7292007-11-10 Andy Wingo <wingo@pobox.com> 730 731 * VERSION: Bumped to 2.15.95. 732 7332007-11-10 Andy Wingo <wingo@pobox.com> 734 735 * test-suite/Makefile.am: Add makefile foo for the wrapset api 736 check. 737 738 * test-suite/wrapset.scm: New check for api stability in the 739 g-wrap-generated glib wrapset. 740 741 * test-suite/wrapset.api: New file, defines the glib API. 742 743 * gnome/gw/support/gtk-doc.scm (extract-defs) 744 (check-documentation-coverage): New export, 745 check-documentation-coverage, which looks at a texinfo file and a 746 set of modules to determine which exports of the modules are 747 undocumented. 748 (check-documentation-coverage): Sort the undocumented symbol list. 749 (check-documentation-coverage): Don't error out if a module cannot 750 be resolved. 751 7522007-11-01 Andy Wingo <wingo@pobox.com> 753 754 * gnome/gw/support/gtk-doc.scm (gobject-class-stexi-docs): Put 755 prop descriptions in a para. 756 7572007-09-25 Andy Wingo <wingo@pobox.com> 758 759 * == Released guile-gnome-platform version 2.15.94 == 760 7612007-09-25 Andy Wingo <wingo@pobox.com> 762 763 * VERSION: Bumped to 2.15.94. 764 7652007-09-25 Andy Wingo <wingo@pobox.com> 766 767 * NEWS: Updated. 768 7692007-09-24 Andy Wingo <wingo@pobox.com> 770 771 * test-suite/Makefile.am: Update for gobject docs moving. 772 773 * doc/gobject/docs.mk: Update a bit. 774 775 * test-suite/gobject.api: Regenerate for gtk-doc.scm changes, an 776 incompatible change but not in any released version. 777 778 * gnome/gw/support/gtk-doc.scm: Document the module, and reduce 779 the number of exports to just two. Move around some definitions. 780 (gtk-doc->texi-defuns): Rework to handle either the heuristics 781 mode or g-wrap, and document. 782 (gtk-doc->texi-stubs): Document. 783 784 * doc/gobject/make-texinfo.scm: Add spaces between args to deal 785 with fixed guile-lib serialization. 786 787 * doc/glib/: 788 * doc/gobject/: GLib and GObject docs moved to separate 789 directories. 790 7912007-09-07 Andy Wingo <wingo@pobox.com> 792 793 * gnome/gw/support/gtk-doc.scm: Import gobject and goops so that 794 we can do some runtime introspection of classes. 795 (sdocbook-fold-structs): New function, folds over struct 796 definitions. 797 (signal-doc-name, signal-doc-docs, signal-refsect2-list) 798 (signal-docs-alist, signal-stexi-args, class-signal-stexi-docs) 799 (gobject-class-stexi-docs, gtk-doc-sdocbook->class-list/g-wrap): 800 New functions to document classes, with their properties and 801 signals. 802 (gtk-doc->texi-defuns): Put class documentation before functions. 803 804 * doc/section-*.texi: 805 * doc/defuns-*.texi: Regenerated. 806 807 * gnome/gw/support/gtk-doc.scm (c-arguments->scheme-arguments) 808 (function-stexi-arguments): Use @tie{} instead of a space where 809 appropriate. 810 (*gtk-doc-sdocbook->stexi-rules*): Translate FALSE and TRUE. 811 (gtk-doc->texi-stubs): Put the subtitle in a subparagraph, not the 812 title. 813 (function-stexi-arguments): Don't wrap the var in @var, that makes 814 it to be @tt font, which we don't want or need. 815 (make-defs/g-wrap): Doc generics using @deffnx, not @deffn. 816 817 * doc/Makefile.am: Factor out automatic g-wrap docs stuff into 818 common makefile routines. 819 8202007-09-02 Andy Wingo <wingo@pobox.com> 821 822 * doc/guile-gnome-glib.texi: New file, includes all the rest to 823 make glib docs. 824 825 * doc/Makefile.am: Add rules to regenerate guile-gnome-glib.texi's 826 dependencies. Add guile-gnome-glib manual. 827 828 * gnome/gw/support/gtk-doc.scm: Add a couple of public methods and 829 hacks to get GLib docbook to work. Will document more later. 830 831 * doc/defuns-*.texi: 832 * doc/section-*.texi: Add generated documentation. 833 8342007-09-01 Andy Wingo <wingo@pobox.com> 835 836 * test-suite/Makefile.am: Add some hairyness for the api check 837 test. 838 839 * gnome/gw/support/gobject.scm: Don't export wrap-enum!; we just 840 add a method on the wrap-enum! from (g-wrap enumeration). 841 842 * test-suite/gobject.api: An apicheck description of the gobject 843 api. 844 845 * test-suite/api.scm: New test, tests that our API has not 846 regressed. 847 848 * gnome/gobject/gobject.scm (make-gobject-instance): Fix bug 849 introduced by doc (define placement). 850 851 * gnome/gw/generics.scm: Document, and re-export (gnome gobject 852 generics). 853 854 * doc/guile-gnome-gobject.scm (*modules*): Add the (gnome gw 855 generics) module to the list. 856 857 * gnome/gw/support/modules.scm: 858 * gnome/gw/support/defs.scm: Document. 859 860 * doc/guile-gnome-gobject.scm: Remove the concept index; we 861 defined no concepts. 862 863 * gnome/gw/support/gobject.scm: Document. Removed the undefined 864 construct-argument-list. 865 866 * gnome/gobject/utils.scm: Document. 867 868 * gnome/gobject/gobject.scm: Move around some docs, looks better 869 with newer guile-lib. 870 871 * gnome/gobject/generics.scm: Write a bunch about the place of 872 generics in guile-gnome. Redefine docs as being on methods; needs 873 latest guile-lib to understand, thouh. 874 8752007-08-28 Andy Wingo <wingo@pobox.com> 876 877 * gnome/gobject/generics.scm: Rewrite to export the generics 878 normally instead of molesting the root module. 879 8802007-08-26 Andy Wingo <wingo@pobox.com> 881 882 * gnome/gobject/gtype.scm: Fix a URL. 883 884 * gnome/gobject/gsignal.c: 885 * gnome/gobject/gsignal.scm: 886 * gnome/gobject/gobject.c: 887 * gnome/gobject/gobject.scm: Document. 888 889 * gnome/gobject/gvalue.scm: 890 * gnome/gobject/gvalue.c: Document. 891 892 * gnome/gobject/gclosure.scm: Document. Change gclosure-invoke to 893 be a procedure rather than a method/generic. 894 895 * gnome/gobject/gparameter.scm: 896 * gnome/gobject/gparameter.c: Document. Remove 897 gparam-struct-arg-info from the exports list. 898 899 * doc/guile-gnome-gobject.scm (*modules*): Reorder the modules so 900 gvalue is before gparameter. 901 902 * gnome/gobject/utils.scm (define-class-with-docs): New exported 903 macro. 904 905 * gnome/gobject/gtype.scm: Add a commentary, lots of doc fixups. 906 907 * gnome/gobject/gtype.c: Lots of doc fixups. 908 909 * doc/Makefile.am (doc): Define DOT_DOC_FILES so that we actually 910 pick up the .doc files. 911 912 * gnome/gobject/gtype.scm: 913 * gnome/gobject/gtype.c (%function->method-public): Removed, this 914 hack is no longer necessary (or used). 915 9162007-08-25 Andy Wingo <wingo@pobox.com> 917 918 * doc/make-texinfo.scm (main): Don't search the load path for the 919 file, we know where it is. 920 921 * doc/docs.mk ($(doc).texi): Use the right environments. 922 923 * doc/Makefile.am (nodist_info_TEXINFOS): Make automake happy. 924 925 * doc/guile-gnome-gobject.texi: Remove, I found the trick to make 926 automake happy. 927 928 * gnome/gobject/Makefile.am: Add .doc files to the makefile, so 929 they get built 930 931 * TODO: Add something of a TODO 932 933 * Makefile.am: Recurse into doc/. 934 935 * doc/guile-gnome-gobject.texi: Add this file so that automake is 936 happy. 937 938 * doc/make-texinfo.scm: 939 * doc/guile-gnome-gobject.scm: 940 * doc/docs.mk: 941 * doc/Makefile.am: Added doc infrastructure. make-texinfo.scm has 942 been augmented with Ludovic's code to parse out docs snarfed from 943 C files. 944 945 * gnome/gw/support/modules.scm (export-all-lazy!): Export all 946 non-lazy variables explicitly so that things like module frisking 947 and tab completion work. 948 949 * gnome/gobject/gsignal.c (scm_init_gnome_gobject_signals): Define 950 <gsignal> as the struct vtable. It was always exported but never 951 defined. 952 9532007-08-15 Andreas Rottmann <a.rottmann@gmx.at> 954 955 * gnome/gw/support/gobject.scm (<gobject-object-type>) 956 (<gobject-boxed-type>, <gobject-interface-type>): Properly set 957 allowed-options via class declaration keyword instead of explicit 958 slot access. 959 9602007-08-13 Andy Wingo <wingo@pobox.com> 961 962 * gnome/gw/support/gobject.scm (generate-wrapset): Make generated 963 SCM wrappers use the (gnome gobject) library, which in the change 964 to generics.scm is no longer unintentionally exported. Use the 965 generics' public interface, not its private interface. 966 967 * gnome/gw/support/modules.scm (export-all-lazy!): 968 * gnome/gw/generics.scm: Instead of making the public interface 969 use the module, which unintentionally re-exports imported 970 bindings in addition to the local bindings, install a module 971 binder proc on the public interface to export only local 972 variables. 973 9742007-07-28 Andy Wingo <wingo@pobox.com> 975 976 * gnome/gw/support/gtk-doc.scm: Expand and document, depending on 977 the latest in guile-lib. I believe the interface is sufficient 978 now, at least for guile-cairo's purposes. 979 9802007-07-17 Andy Wingo <wingo@pobox.com> 981 982 * gnome/gw/support/gtk-doc.scm: Checkpoint some new developments. 983 9842007-07-01 Andy Wingo <wingo@pobox.com> 985 986 * gnome/gw/support/Makefile.am: 987 * gnome/gw/support/gtk-doc.scm: New module, useful for generating 988 docs from gtk-doc-generated docbook. Currently used in 989 guile-cairo. 990 9912007-06-15 Andy Wingo <wingo@pobox.com> 992 993 * == Released guile-gnome-platform version 2.15.93 == 994 9952007-06-15 Andy Wingo <wingo@pobox.com> 996 997 * VERSION: Bumped to 2.15.93. 998 9992007-06-15 Andy Wingo <wingo@pobox.com> 1000 1001 * gnome/gw/support/defs.scm (construct-argument-list): Fix parsing 1002 of argument options like (callee-owned), broken on 2007-05-05. 1003 10042007-05-26 Andy Wingo <wingo@pobox.com> 1005 1006 * gnome/overrides/glib.defs (g_string_get_str): Fix generated 1007 wrapper name. 1008 1009 * gnome/gw/support/modules.scm: New function. If we have a fixed 1010 guile, exports everything to the public interface, with the effect 1011 that the module binder proc will be active on the public 1012 interface. However, this causes huge slowdowns on most guile 1.8 1013 versions; if we detect an old version, export all symbols 1014 explicitly, forcing the lazy bindings to be constructed. Otherwise 1015 it takes much more time than the baseline 16 seconds. 1016 1017 * gnome/gw/support/gobject.scm (generate-wrapset): Fix bug in our 1018 SCM generator: wrap generic functions that are not backed by RTI. 1019 (generate-wrapset): Instead of unconditionally exporting 1020 everything, go export-all-lazy!. 1021 1022 * gnome/overrides/glib.defs: Recover some default values lost when 1023 glib.defs was regenerated. 1024 1025 * gnome/gw/support/gobject.scm (generate-wrapset): Override 1026 g-wrap's creation of the SCM module, so that we just export 1027 "everything" instead of enumerating the exports. Allows lazy 1028 binding to work, dropping (gnome gtk) load time down to a 1029 manageable 2 seconds. 1030 10312007-05-24 Andy Wingo <wingo@pobox.com> 1032 1033 * == Released guile-gnome-platform version 2.15.92 == 1034 10352007-05-24 Andy Wingo <wingo@pobox.com> 1036 1037 * VERSION: Bumped to 2.15.92. 1038 10392007-05-19 Andy Wingo <wingo@pobox.com> 1040 1041 * gnome/gobject/guile-support.h: 1042 * gnome/gobject/guile-support.c (scm_with_guile): Add a guile 1.6 1043 shim of dubious correctness. 1044 10452007-05-13 Andy Wingo <wingo@pobox.com> 1046 1047 * gnome/overrides/glib.defs-type-ignores: 1048 * gnome/overrides/Makefile.am: Add type ignores for GLib. 1049 1050 * package.ac: Update GLib requirement to 2.10, corresponding to 1051 the 2.16 release of the Gnome Developer Platform. 1052 1053 * gnome/overrides/glib.defs: Update ignores for new autogenerated 1054 glib.defs in the defs module. I have mostly ignored everything; 1055 the notable addition is GBookmarkFile. I also didn't ignore the 1056 unicode functions, figuring they will be useful while Guile 1057 doesn't have any of its own. 1058 1059 * gnome/gw/glib-spec.scm (initialize): Add alias for time_t as 1060 long. 1061 10622007-05-10 Andy Wingo <wingo@pobox.com> 1063 1064 * gnome/gw/glib-support.c (_wrap_g_main_loop_run): Rework signal 1065 handling code to use a special gsource. The source is woken when 1066 SIGINT is delivered, via writing a byte on an fd, which is what 1067 g_main_context_wakeup does; however it also does some locking. 1068 Unsure about the safety of all of this, we'll see how it works 1069 out. 1070 1071 * == Released guile-gnome-platform version 2.15.91 == 1072 10732007-05-10 Andy Wingo <wingo@pobox.com> 1074 1075 * VERSION: Bumped to 2.15.91. 1076 10772007-05-06 Andy Wingo <wingo@pobox.com> 1078 1079 * examples/example-1.scm: Put in a modeline. 1080 1081 * gnome/gw/support/gobject.scm (find-type-rule): Look up type 1082 rules recursively, fixes a very old bug in which out parameters 1083 are only recognized automatically within the same wrapset that 1084 defines the rule. 1085 1086 * gnome/gw/glib-spec.scm (initialize): Fix char* being marked for 1087 automatic 'out aliasing. 1088 10892007-05-05 Andy Wingo <wingo@pobox.com> 1090 1091 * gnome/gw/support/gobject.scm: New export, lookup-type-by-alias. 1092 (add-type-alias!): Simplify. 1093 (lookup-type-by-alias): Renamed from lookup-type, which was a name 1094 collision with g-wrap.scm, which confused me for quite some time. 1095 (add-type-rule!, find-type-rule): Simplify so that a type rule is 1096 simply a string, which maps to a g-wrap typespec as a list of 1097 symbols. 1098 1099 * gnome/gw/support/defs.scm (type-lookup): Always return a list; 1100 lists are always valid as typespecs on the g-wrap side. 1101 (construct-argument-list): Simplify (?), assuming that type-lookup 1102 gives us a list, and for the update in type rules. Removes 1103 theoretical ability for multiple C arguments to be given from one 1104 Scheme object, but that wasn't used, and if it goes in again some 1105 documentation would be good. (This capability still exists via 1106 custom wrappers.) 1107 (load-defs): lookup-type-by-alias, not lookup-type. 1108 1109 * gnome/gw/glib-spec.scm (initialize): Add "out" type aliases for 1110 all scalar types for which it makes sense. gunichar is a guint32. 1111 11122007-05-04 Andy Wingo <wingo@pobox.com> 1113 1114 * gnome/gobject/gvalue.h: New public function, 1115 scm_c_register_gtype_instance_gvalue_wrappers. Long name! 1116 1117 * gnome/gobject/gvalue.c 1118 (scm_c_register_gtype_instance_gvalue_wrappers) 1119 (scm_gvalue_to_scm, scm_gvalue_primitive_set, scm_c_gvalue_to_scm) 1120 (scm_scm_to_gvalue): Handle GTypeInstances in GValues via a 1121 generic wrapper mechanism; allows GStreamer's miniobjects to hook 1122 into this system. 1123 1124 * gnome/gobject/private.h: 1125 * gnome/gobject/gtype.c (scm_c_gtype_instance_to_scm_typed): New 1126 function, made to solve the `initialize' bug of gobject.c, 1127 described below. Private. 1128 1129 * gnome/gobject/gparameter.c (scm_init_gnome_gobject_parameters): 1130 Register GValue wrappers for GParamSpec. 1131 1132 * gnome/gobject/gobject.c (scm_c_gtype_instance_instance_init): 1133 Fix a longstanding bug (3.5 years) whereby double-derived scheme 1134 classes were always had `initialize' called with an instance of 1135 the most specific class. 1136 (scm_init_gnome_gobject): Register GValue wrappers for GObject. 1137 1138 * gnome/overrides/glib.defs (g_io_add_watch, string): Don't leave 1139 guile mode for functions that deal in SCM. 1140 11412007-02-02 Andy Wingo <wingo@pobox.com> 1142 1143 * gnome/gw/support/gobject.scm (wrap-gobject-class!): Add a type 1144 alias for classes; fixes class parameters to wrapped functions. 1145 1146 * gnome/gw/support/defs.scm (load-defs): Support new parameter, 1147 `leave-guile-mode'. Takes one boolean argument, defaults to #t. If 1148 #t, g-wrap will leave guile mode when the function is called. 1149 Requires new g-wrap. 1150 1151 * gnome/gobject/gvalue.scm (initialize): Untabify. 1152 (gtype-instance:write): Untabify. Use gflags->symbol-list to write 1153 flags. 1154 (find-enum, genum->symbol, genum->name, genum->value): Untabify. 1155 (gflags->element-list): Untabify; fix a bug so that 0x3 does not 1156 match 0x1. 1157 (gflags->symbol-list, gflags->name-list, gflags->value-list): 1158 Untabify. 1159 1160 * gnome/gobject/gtype.c (scm_init_gnome_gobject_types): Don't 1161 install a log handler; not only does the scm_throw corrupt 1162 libraries' internal state, it is dangerous because now it is 1163 likely that we are not in guile mode. 1164 11652006-12-17 Andy Wingo <wingo@pobox.com> 1166 1167 * gnome/gobject/gclosure.c ("%scm-gclosure-marshal"): Enter guile 1168 via scm_with_guile when invoking a closure; along with a patch I'm 1169 mailing to the g-wrap list this makes callbacks from other threads 1170 work. 1171 11722006-12-15 Andy Wingo <wingo@pobox.com> 1173 1174 * == Released guile-gnome-platform version 2.15.90 == 1175 11762006-12-15 Andy Wingo <wingo@pobox.com> 1177 1178 * VERSION: Bumped to 2.15.90. 1179 11802006-12-15 Andy Wingo <wingo@pobox.com> 1181 1182 * test-suite/gw-test-gobject-spec.scm (gw-test-gobject-spec): 1183 * test-suite/gw-test-glib-spec.scm (gw-test-glib-spec): Fix up 1184 includes. 1185 1186 * test-suite/gobject.test ("basic values"): Fix the check for 1187 out-of-range errors, using the "value out of range" variant 1188 instead of "argument N out of range". 1189 1190 * test-suite/Makefile.am (libgw_guile_test_glib_la_LIBADD): Link 1191 to GLib. 1192 1193 * gnome/gw/support/gobject.scm (wrap-value-cg): Use the 1194 scm_c_gtype_instance_unref generic function instead of 1195 g_object_unref, so that we can support other classed objects. 1196 1197 * gnome/gobject/gtype.c: 1198 (get_gtype_instance_instance_funcs) 1199 (scm_register_gtype_instance_funcs, scm_c_gtype_instance_ref) 1200 (scm_c_gtype_instance_unref) 1201 (scm_c_gtype_instance_get_cached_smob) 1202 (scm_c_gtype_instance_set_cached_smob) 1203 (scm_c_gtype_instance_get_cached_goops) 1204 (scm_c_gtype_instance_set_cached_goops): Keep a registry of 1205 fundamental classed gtypes that we know how to deal with, with 1206 function pointers on how to ref, unref, get qdata, and set qdata 1207 on them. This gets g_object_* code out of gtype.c, and allows for 1208 external modules to define wrappers for new fundamental classed 1209 types, like GStreamer's miniobjects. 1210 (scm_gtype_instance_free, scm_c_gtype_instance_to_scm) 1211 (scm_c_make_gtype_instance): Use the generic functions instead of 1212 type-specific switch blocks. 1213 1214 * gnome/gobject/gparameter.c (scm_init_gnome_gobject_parameters): 1215 Register the paramspec ref/sink/qdata functions with gtype.c. 1216 1217 * gnome/gobject/gobject.c (scm_init_gnome_gobject): Register the 1218 gobject ref/sink/qdata functions with gtype.c. 1219 (s_scm_gobject_primitive_create_instance): use 1220 scm_c_gtype_instance_set_cached_goops instead of mucking about 1221 with qdata ourselves. 1222 12232006-12-09 Andy Wingo <wingo@pobox.com> 1224 1225 * gnome/gw/support/gobject.scm (wrap-value-cg): If a boxed value 1226 is caller-owned, then use g_value_take_boxed instead of 1227 g_value_set_boxed. 1228 1229 * gnome/gobject/gvalue.c (s_scm_scm_to_gvalue): If a custom 1230 unwrapper fails to set the gvalue, signal a wrong-type-arg 1231 exception. 1232 12332006-12-08 Andy Wingo <wingo@pobox.com> 1234 1235 * gnome/gw/support/gobject.scm (wrap-custom-gvalue!): New public 1236 macro, allows new fundamental GTypes to be represented as native 1237 scheme values. For example, GstIntRange as a pair of ints. 1238 1239 * gnome/gobject/guile-gnome-gobject.h: Add gc.h so people using 1240 this header get everything. 1241 1242 * gnome/gobject/gvalue.c (scm_init_gnome_gobject_values): Don't 1243 export enum and flags gtypes here, that's already done by gtype.c. 1244 I'm not sure if this is the right change though; it seems that all 1245 of the gtype:foo exports should be done in the same file. Dunno. 1246 12472006-11-05 Andy Wingo <wingo@pobox.com> 1248 1249 * gnome/gw/gobject-spec.scm: Use (gnome gw support g-wrap), the 1250 g-wrap compatibility wrapper. 1251 1252 * gnome/gw/glib-spec.scm: Use (gnome gw support g-wrap), the 1253 g-wrap compatibility wrapper. 1254 1255 * gnome/gw/support/Makefile.am (support_DATA): 1256 * gnome/gw/support/g-wrap.scm: New module, (gnome gw support 1257 g-wrap), added to the dist. The idea is for wrapsets to have 1258 access to all g-wrap generics from one module. 1259 12602006-10-30 Andy Wingo <wingo@pobox.com> 1261 1262 * gnome/gobject/gc.h: 1263 * gnome/gobject/gc.c (scm_glib_gc_protect_object) 1264 (scm_glib_gc_unprotect_object): New functions, like 1265 scm_gc_[un]protect_object, but can be called from inside the gc's 1266 sweep phase. 1267 1268 * gnome/gobject/gparameter.c (s_scm_gparam_to_param_struct): 1269 * gnome/gobject/gvalue.c (copy_gboxed_scm, free_gboxed_scm): 1270 * gnome/gobject/gobject.c (s_scm_gobject_set_data_x) 1271 (scm_c_gtype_instance_class_init): 1272 * gnome/gobject/gclosure.c (free_closure) 1273 (s_scm_gclosure_primitive_new): Use scm_glib_gc_protect_object 1274 instead of guile's scm_gc_protect_object. 1275 1276 * gnome/gobject/Makefile.am (C_FILES): Add gc.c. 1277 12782006-10-27 Andy Wingo <wingo@pobox.com> 1279 1280 * gnome/gw/support/defs.scm (construct-argument-list): Don't throw 1281 away typespec options, like 'null-ok, when there are extras 1282 arguments. Fixes cases like this: 1283 '("GMainContext*" "context" (null-ok) (default "NULL")). 1284 12852006-10-26 Andy Wingo <wingo@pobox.com> 1286 1287 * gnome/gw/support/gobject.scm (add-type!): Only export classes 1288 that are actually defined. Fixes guile-gnome on guile 1.8. 1289 1290 * gnome/gw/generics.scm (gnome): Use (gnome gobject), so that any 1291 methods we define hang off the same generics as the base gobject 1292 library. 1293 12942006-10-20 Andy Wingo <wingo@pobox.com> 1295 1296 * gnome/gw/support/gobject.scm (initializations-cg): Tell g-wrap 1297 to work with generic functions in the (gnome gw generics) module. 1298 Makes it so that we don't pollute the root namespace. 1299 1300 * gnome/gw/Makefile.am (guilegwmodule_DATA): Autotoolage. 1301 1302 * gnome/gw/generics.scm: New file, created to hold guile-gnome's 1303 generic functions. 1304 13052005-12-22 Andy Wingo <wingo@pobox.com> 1306 1307 * AUTHORS: Updated. 1308 1309 * gnome/gw/support/Makefile.am (support_DATA): Updated 1310 accordingly. 1311 1312 * gnome/gw/support/slib.scm: New module, provides printf and 1313 glob:make-matcher. This removes the build dependency on slib. 1314 1315 * gnome/gw/support/printf.scm: 1316 * gnome/gw/support/glob.scm: 1317 * gnome/gw/support/genwrite.scm: Pulled in from SLIB. Without 1318 modifications. 1319 13202005-10-13 Andy Wingo <wingo@pobox.com> 1321 1322 * gnome/gobject/gtype.c (scm_gtype_interfaces): Signedness fix. 1323 13242005-09-17 Andreas Rottmann <a.rottmann@gmx.at> 1325 1326 * gnome/gobject/gtype.c (s_scm_gtype_interfaces): Fix GCC 4.0 1327 warnings. 1328 13292005-04-20 Andreas Rottmann <a.rottmann@gmx.at> 1330 1331 * gnome/glib.scm (g-error-domain, g-error-code, g-error-message): 1332 New public functions. 1333 13342005-04-10 Andreas Rottmann <a.rottmann@gmx.at> 1335 1336 * gnome/gobject/gobject.c, gnome/gobject/gvalue.c, 1337 * gnome/gw/glib-support.c: Use the new macros. 1338 * gnome/gobject/gutil.h (GPOINTER_TO_SCM, SCM_TO_GPOINTER): New 1339 macros. 1340 13412005-04-09 Andreas Rottmann <a.rottmann@gmx.at> 1342 1343 * gnome/gw/glib-spec.scm (initialize): Fix gsize, gssize in- and 1344 out-arguments. 1345 1346 * gnome/gw/glib-spec.scm (post-call-arg-cg): Use newly-added function 1347 scm_c_raise_gerror. 1348 * gnome/gobject/Makefile.am (C_FILES): Added gutil.c 1349 * gnome/gobject/gobject.h: #include gutil.h 1350 * gnome/gobject/gutil.c, gnome/gobject/gutil.h: New files. 1351 13522005-04-07 Andreas Rottmann <a.rottmann@gmx.at> 1353 1354 * test-suite/gw-gobject.test, test-suite/gobject.test: Added a few 1355 tests relevant to the gvalue fixes. 1356 1357 * gnome/gw/support/defs.scm (load-defs): Improve error handling a 1358 bit by re-raising stacked conditions where appropriate. 1359 1360 * gnome/gobject/gvalue.c (scm_gvalue_primitive_get): Return a full 1361 goops instance when the gvalue contains an object. 1362 1363 * gnome/gobject/gvalue.c (scm_gvalue_primitive_set): Fix 1364 scm_list_p() check, needs to wrapped with SCM_BOOL(). 1365 (scm_gvalue_primitive_set): Also handle goops gobject instances. 1366 13672005-03-17 Andreas Rottmann <a.rottmann@gmx.at> 1368 1369 * gnome/gobject/gvalue.c (scm_gvalue_primitive_set): Fix memleak 1370 when setting a string value. 1371 13722005-03-01 Andreas Rottmann <a.rottmann@gmx.at> 1373 1374 * gnome/overrides/glib.defs: Added g_io_add_watch_full to ignore 1375 list. 1376 1377 * examples/fifo.scm: Polished a bit. 1378 1379 * gnome/gw/support/defs.scm (load-defs): Re-enable logging of 1380 opaque types. 1381 13822005-03-06 Andy Wingo <wingo@pobox.com> 1383 1384 * == Released guile-gnome-platform version 2.7.99 == 1385 13862005-03-06 Andy Wingo <wingo@pobox.com> 1387 1388 * VERSION: Bumped to 2.7.99. 1389 13902005-03-06 Andy Wingo <wingo@pobox.com> 1391 1392 * gnome/gw/support/defs.scm: Don't make generics if the of-object 1393 is an enum, flags, boxed, or custom boxed. This is a nasty nasty 1394 hack to make sure generics aren't created with unspecialized args, 1395 to prevent e.g. (foo-append <top> <top>) -> (append <top> <top>). 1396 13972005-01-29 Andreas Rottmann <a.rottmann@gmx.at> 1398 1399 * gnome/gw/support/gobject.scm (make-typespec): Make the methods 1400 specialized on <gobject-enum-type>, <gobject-boxed-type> and 1401 <gobject-custom-boxed-type> add the 'unspecialized option to the 1402 created typespec (needed for G-Wrap 1.9.4). 1403 14042005-01-11 Andy Wingo <wingo@pobox.com> 1405 1406 * == Released platform version 2.7.98 == 1407 14082005-01-11 Andy Wingo <wingo@pobox.com> 1409 1410 * VERSION: Bumped to 2.7.98. 1411 14122004-12-06 Andy Wingo <wingo@pobox.com> 1413 1414 * VERSION: Bumped. 1415 1416 * == Released platform version 2.7.97 == 1417 1418 * gnome/gobject/gvalue.c (scm_c_register_gvalue_wrappers): 1419 DAMMMIT, g_int_hash doesn't do what you think it does! 1420 14212004-12-05 Andy Wingo <wingo@pobox.com> 1422 1423 * gnome/gw/support/gobject.scm (wrap-custom-boxed!): New exported 1424 macro, replaces wrap-custom-pointer! and custom-wrapper-decls. 1425 (<gobject-custom-boxed-type>, gen-c-tmp, global-definitions-cg) 1426 (global-declarations-cg, initializations-cg, make-custom-wrapper) 1427 (make-custom-unwrapper, unwrap-value-cg, wrap-value-cg): Support 1428 for the new custom wrapper. Will create GValue wrapper functions, 1429 use them from the wrap/unwrap procedures, and registers them with 1430 gvalue.c. 1431 1432 * gnome/gobject/gvalue.c (s_scm_gvalue_primitive_get) 1433 (scm_c_gvalue_to_scm, s_scm_gvalue_to_scm): Remove casts to 1434 GTypeInstance. 1435 1436 * gnome/gobject/gtype.c (scm_c_make_gtype_instance) 1437 (scm_gtype_instance_free, scm_gtype_instance_print) 1438 (sink_type_instance, scm_register_gtype_instance_sinkfunc) 1439 (scm_c_gtype_instance_to_scm, scm_c_make_gtype_instance) 1440 (guile_gobject_log_handler) 1441 (scm_c_scm_to_gtype_instance, scm_c_gtype_instance_to_scm): Use 1442 gpointer instead of GTypeInstance* as the type declaration, since 1443 we never actually deal with GTypeInstance, only their subclasses. 1444 Eliminates the need for many casts, because we have to check at 1445 runtime anyway. 1446 14472004-12-02 Andy Wingo <wingo@pobox.com> 1448 1449 * gnome/gobject/utils.scm (gnome): Export GStudlyCapsExpand so 1450 that (gnome gw support gobject) can use it. 1451 1452 * gnome/gobject/gvalue.c (s_scm_scm_to_gvalue) 1453 (s_scm_gvalue_to_scm): Use the new gvalue wrappers as appropriate. 1454 (scm_c_register_gvalue_wrappers): New procedure, registers a pair 1455 of procedures to make a custom mapping between scheme values and 1456 gvalues. 1457 14582004-11-29 Andy Wingo <wingo@pobox.com> 1459 1460 * gnome.scm.in (gnome): Define the module before resolving it, so 1461 as to avoid guile 1.6 trying to load a binary module. Thanks to 1462 David Pirotte for the bug report. Define the version as 1463 `gnome-version' because the core already exports `version'. 1464 (add-to-load-path!): New proc, tries to order environment-variable 1465 load paths first so that hacking the load path during compilation 1466 works. 1467 14682004-11-21 Andy Wingo <wingo@pobox.com> 1469 1470 * examples/Makefile.am (EXTRA_DIST): Dist all scm files. 1471 14722004-11-16 Andy Wingo <wingo@pobox.com> 1473 1474 * gnome/gw/glib-support.c: Indentation, only get iochannel_type 1475 when the func is first called. 1476 14772004-11-15 Andy Wingo <wingo@pobox.com> 1478 1479 * gnome/gw/glib-support.c: Fix includes. 1480 (scm_init_glib): Lookup the iochannel type when glib is 1481 initialized. 1482 (g_io_func): Don't lookup the type all the time. 1483 14842004-10-30 Jan Nieuwenhuizen <janneke@gnu.org> 1485 1486 * examples/fifo.scm: Update. 1487 1488 * gnome/gw/glib-support.scm: Add return parameter overrides (Rotty). 1489 1490 * gnome/gw/glib-support.c: Remove _wrap_g_io_channel_read_line wrapper. 1491 14922004-10-22 Jan Nieuwenhuizen <janneke@gnu.org> 1493 1494 * examples/fifo.scm: New file. 1495 14962004-10-21 Jan Nieuwenhuizen <janneke@gnu.org> 1497 1498 * gnome/gw/glib-support.c (_wrap_g_io_add_watch): New wrapper. 1499 1500 * gnome/overrides/glib.defs (g_io_add_watch): New override. 1501 15022004-11-15 Andy Wingo <wingo@pobox.com> 1503 1504 * Makefile.am: Don't install into guile's path, just use $prefix. 1505 1506 * gnome.scm.in: Don't hack /usr/local. Add some comments. 1507 1508 * package.ac: Add record_check. 1509 15102004-11-13 Andy Wingo <wingo@pobox.com> 1511 1512 * Makefile.am (EXTRA_DIST): Dist VERSION. 1513 * VERSION: New file. 1514 15152004-11-11 Andy Wingo <wingo@pobox.com> 1516 1517 * gnome.scm.in (usr-local-hack): Fix.. 1518 1519 * Makefile.am (guilesite): Argh, get the inst dir right. 1520 1521 * package.ac: Avoid readlink -f, be more portable. 1522 1523 * gnome.scm.in: New file, basically does what guile-gnome-0 does, 1524 but from within scheme. 1525 1526 * Makefile.am: Add rules so that gnome-$version.scm looks right 1527 both installed and uninstalled. Install to the system guile path, 1528 regardless of the $prefix of guile-gnome. Build . before subdirs. 1529 1530 * gnome/gw/glib-spec.scm (unwrap-value-cg): Whoops, fix parens. 1531 1532 * gnome/gw/support/defs.scm (type-lookup): Assume that the caller 1533 owns generated container types (i.e. GList) if 'const isn't set. 1534 Prevents some invalid frees, hanks to Patrick Bernaud for the 1535 report. 1536 1537 * gnome/gw/glib-spec.scm (unwrap-value-cg): Use destroy-value-cg 1538 to free the list after unwrapping. 1539 15402004-11-09 Andy Wingo <wingo@pobox.com> 1541 1542 * gnome/gw/support/gobject.scm (custom-wrap-decls) 1543 (wrap-custom-pointer!): New exported macros, designed to simplify 1544 wrappings of c types represented by native scheme values. 1545 15462004-10-28 Andy Wingo <wingo@pobox.com> 1547 1548 * defs-checks.ac: Versioned pkg-config check. 1549 1550 * Makefile.am (all-local): Versioned pkg-config files. 1551 1552 * examples/main-loop.scm: 1553 * examples/example-1.scm: Use guile-gnome-0. 1554 1555 * bin/guile-gnome.in (localpath): Add /usr/local include dirs to 1556 the guile loadpath, so that users aren't surprised when they have 1557 g-wrap installed in /usr/local/guile/site. A hack for guile 1.6. 1558 15592004-10-26 Andy Wingo <wingo@pobox.com> 1560 1561 * package.ac (GUILE_GLIB_LIBS): Link to the versioned lib. 1562 1563 * guile-gnome-glib-uninstalled.pc.in, guile-gnome-glib.pc.in: Link 1564 to the versioned lib. 1565 1566 * gnome/gobject/config.scm.in: New file, exports 1567 *guile-gnome-gobject-lib-path*. 1568 1569 * gnome/gobject/gobject.scm, gtype.scm, gvalue.scm, 1570 gparameter.scm, gsignal.scm, gclosure.scm: dynamic-link the path 1571 from (gnome gobject config). 1572 1573 * gnome/gobject/Makefile.am: Version the libguile-gnome-gobject 1574 lib. Make config.scm work in the source tree and in the 1575 installdir. Define GUILE_GOBJECT_DIR to be $guilegnomedir. 1576 1577 * bin/Makefile.am: New file. Will install a versioned 1578 guile-gnome-$apiversion into $bindir. 1579 1580 * bin/guile-gnome.in: New script, wraps guile with a munged load 1581 path for modules and libraries. 1582 1583 * Makefile.am (SUBDIRS): Add bin/. 1584 1585 * gnome/gw/Makefile.am (guilegnomelib_LTLIBRARIES): Install to 1586 versioned directory. 1587 15882004-10-12 Andreas Rottmann <a.rottmann@gmx.at> 1589 1590 * shlib-dirs.ac: New file, to be used by dev-environ. 1591 15922004-10-14 Andy Wingo <wingo@pobox.com> 1593 1594 * gnome/gobject/gvalue.c (s_scm_gvalue_primitive_set): For 1595 objects, interpret a #f value as NULL. 1596 (s_scm_gvalue_primitive_set): Bugfix: convert SCM return value of 1597 scm_list_p into a C boolean. 1598 1599 * gnome/gobject/gtype.c (scm_c_make_gtype_instance): Return #f if 1600 the instance argument is NULL. 1601 16022004-10-13 Andy Wingo <wingo@pobox.com> 1603 1604 * gnome/gobject/gvalue.c (s_scm_gvalue_primitive_set): For 1605 objects, assert that the type is compatible with the GValue type. 1606 16072004-10-11 Andy Wingo <wingo@pobox.com> 1608 1609 * gnome/gobject/gobject.scm (make-gobject-instance): Set the fluid 1610 %gobject_initargs to the init-keyword kwargs for the duration of 1611 the gobject-primitive-create-instance. This allows the call back 1612 into scheme for `initialize' to pass the kwargs. However, if (not 1613 (scheme-gclass? class), call `initialize' manually. Also, in the 1614 error message, "No such s/property/property or init-keyword/ ...". 1615 1616 * gnome/gobject/gtype.scm (initialize): For <gtype-instance>, no 1617 need to provide a method that does nothing, and no need to avoid 1618 the <gobject> initialize method. Removed. 1619 1620 * gnome/gobject/gobject.h: 1621 * gnome/gobject/gobject.c (s_scm_scheme_gclass_p): New predicate, 1622 returns #t iff `class' is derived from within scheme. Normally it 1623 doesn't matter, but we want to avoid calling `initialize' twice on 1624 the instance. 1625 (scm_init_gnome_gobject): Initialize the _gobject_initargs_fluid 1626 to '(), define it for scheme. 1627 (scm_c_gtype_instance_instance_init): Call initialize with the 1628 proper initargs. 1629 16302004-10-10 Andy Wingo <wingo@pobox.com> 1631 1632 * gnome/gobject/gtype.c (scm_c_gtype_instance_to_scm): Don't error 1633 out if ginstance is NULL, we're probably going to scheme anyway. 1634 Better to just return #f and stay quiet. 1635 1636 * gnome/gw/support/defs.scm (load-defs): Better error when a 1637 symbolic include isn't file isn't found. 1638 1639 * gnome/gobject/gsignal.scm (gtype-class-get-signal-names): Copy 1640 vector-map from gobject.scm. 1641 1642 * gnome/gw/glib-spec.scm (initialize): GTime -> int32. 1643 1644 * gnome/gobject/gvalue.[ch] (scm_c_gboxed_to_scm) 1645 (scm_c_dup_gboxed_to_scm): New helper functions. Take a pointer to 1646 an object along with its GType and return a SCM gvalue. 1647 16482004-10-09 Andy Wingo <wingo@pobox.com> 1649 1650 * gnome/gw/support/gobject.scm (unwrap-value-cg, wrap-value-cg): 1651 Define c-var, scm-var, and gtype-id within the body of the 1652 wrap-pointer! value wrappers. 1653 16542004-10-07 Andy Wingo <wingo@pobox.com> 1655 1656 * gnome/gw/support/defs.scm (construct-argument-list): Fail 1657 correctly if there is an unknown rest arg, but warn. 1658 (load-defs:scan-type!): Catch a throw to 'ignored. Get the ctype 1659 as a string, not a list of one element. Throw to 'ignored if the 1660 ctype is in the ignored-types list. 1661 (load-defs:ignore-types): New procedure, adds all of its arguments 1662 to the ignored types list. 1663 (load-defs): Add a hook to interpret ignore-types. Also interpret 1664 the form (include SYMBOL) to mean (include 1665 "gnome/overrides/BASENAME-SYMBOL"). 1666 16672004-09-27 Andy Wingo <wingo@pobox.com> 1668 1669 * test-suite/exceptions.scm, gnome/gw/Makefile.am 1670 * test-suite/test-gobject.c, examples/example-1.scm 1671 * test-suite/gw-glib.test, test-suite/gw-gobject.test 1672 * test-suite/gobject.test, test-suite/gw-test-gobject-spec.scm 1673 * test-suite/guile-gobject-test, test-suite/gw-test-glib-spec.scm 1674 * test-suite/test-glib.defs, test-suite/test-gobject.h: Added 1675 license blocks. 1676 16772004-09-19 Andy Wingo <wingo@pobox.com> 1678 1679 * gnome/gw/Makefile.am (libgw_guile_gnome_glib_la_LIBADD): Not 1680 G_WRAP_LINK_ARGS, it's G_WRAP_LIBS. 1681 1682 * gnome/gobject/Makefile.am (libguile_gnome_gobject_la_LIBADD): 1683 Don't link to g-wrap. 1684 1685 * gnome/gobject/guile-support.h: Don't include 1686 g-wrap/guile-compatibility.h -- no reason to depend on g-wrap. 1687 1688 * guile-gnome-glib.pc.in (includedir): Point to the versioned 1689 directory. 1690 1691 * gnome/gobject/Makefile.am: Install headers to a versioned 1692 directory. 1693 16942004-09-16 Andy Wingo <wingo@pobox.com> 1695 1696 * Makefile.am (SUBDIRS): Dist fixes. 1697 1698 * README: Added. 1699 1700 * NEWS: All pre-guile-gnome stuff elided. 1701 1702 * NEWS.guile-gobject: Added the old news here. 1703 17042004-09-15 Andy Wingo <wingo@pobox.com> 1705 1706 * gnome/gw/support/defs.scm (load-defs): Ignore varargs functions, 1707 like we used to before the rewrite. 1708 17092004-09-12 Andy Wingo <wingo@pobox.com> 1710 1711 * gnome/gobject.scm: Real keywords, avoid deprecated modules. 1712 1713 * gnome/glib.scm: Real keywords, avoid deprecated modules. 1714 1715 * gnome/gw/gobject-spec.scm (gnome, gnome): Adapt to new module 1716 names. 1717 1718 * package.ac (GUILE_GLIB_LIBS): Use readlink, not realpath, for 1719 portability. 1720 17212004-09-08 Andy Wingo <wingo@pobox.com> 1722 1723 * AUTHORS: Updated. 1724 1725 * NEWS: Updated, and put in a more Guile-like format. 1726 1727 * TODO: Removed many items. 1728 17292004-09-07 Andy Wingo <wingo@pobox.com> 1730 1731 * gnome/gw/support/defs.scm (load-defs): Change out a `cond' with 1732 a series of and=> statements. Fixes some problems. 1733 17342004-09-06 Andy Wingo <wingo@pobox.com> 1735 1736 * Makefile.am: Er, it's not in this module. I'm stupid. 1737 1738 * Makefile.am: Install the -defs pkg-config file. 1739 17402004-09-05 Andy Wingo <wingo@pobox.com> 1741 1742 * gnome/gobject/Makefile.am (CLEANFILES): Clean the .x files. 1743 1744 * package.ac (GUILE_GLIB_CFLAGS): Include the builddir's gobject 1745 dir as well. 1746 1747 * gnome/gw/Makefile.am (libgw_guile_gnome_gobject_la_CFLAGS): Add 1748 the builddir to the CFLAGS as well: the link is placed in the 1749 builddir. 1750 1751 * package.ac: Fix the link creation for non-srcdir builds. 1752 1753 * gnome/overrides/Makefile.am, gnome/Makefile.am: Add the 1754 overrides to the dist. 1755 1756 * package.ac: Create the gnome/gobject/guile-gnome-gobject link 1757 when config.status is created. 1758 1759 * guile-gnome-glib.pc.in, guile-gnome-glib-uninstalled.pc.in: 1760 Moved from guile-gobject*.pc.in. 1761 1762 * gnome/overrides/glib.defs: Moved from glib-overrides in the defs 1763 module. Otherwise unchanged. 1764 1765 * defs-checks.ac: New file. We depend on the defs module. 1766 1767 * For each of the files below, deprecated versions were left in 1768 the original locations. 1769 1770 * gnome/gw/support/modules.scm: Moved from (gnome gobject 1771 gw-utils). Otherwise unchanged. 1772 1773 * gnome/gw/support/gobject.scm: Moved from (gnome gobject 1774 gw-spec-utils). Otherwise unchanged. 1775 1776 * gnome/gw/support/defs.scm: Moved from (gnome gobject 1777 defs-support). The parser was rewritten as an interpreter, rather 1778 than using guile as the interpreter. 1779 (load-defs): Take an optional argument, overrides, which should be 1780 the path within %load-path of the overrides file. Handle (ignore 1781 overrides). 1782 (load-defs-with-overrides): New procedure, wraps load-defs. 1783 17842004-07-28 Andreas Rottmann <a.rottmann@gmx.at> 1785 1786 * gnome/gw/glib-spec.scm (make-typespec): Use raise instead of throw. 1787 1788 * gnome/gw/glib-spec.scm: Adapt for destruct-value-cg -> 1789 destroy-value-cg G-Wrap API change. 1790 17912004-08-29 Andy Wingo <wingo@pobox.com> 1792 1793 * gnome/gobject/gclosure.c (%scm-gclosure-marshal): A non-NULL 1794 return_value of type G_TYPE_NONE or G_TYPE_INVALID does not need 1795 to be filled. 1796 17972004-09-14 Andy Wingo <wingo@pobox.com> 1798 1799 * gnome/gw/glib-spec.scm: Wrap unsigned-char. 1800 18012004-07-28 Andreas Rottmann <a.rottmann@gmx.at> 1802 1803 * gnome/gw/glib-spec.scm (make-typespec): Use raise instead of throw. 1804 1805 * gnome/gw/glib-spec.scm: Adapt for destruct-value-cg -> 1806 destroy-value-cg G-Wrap API change. 1807 18082004-08-29 Andy Wingo <wingo@pobox.com> 1809 1810 * gnome/gobject/gclosure.c (%scm-gclosure-marshal): A non-NULL 1811 return_value of type G_TYPE_NONE or G_TYPE_INVALID does not need 1812 to be filled. 1813 18142004-07-18 Andy Wingo <wingo@pobox.com> 1815 1816 * gnome/gw/glib-spec.scm (<glist-of-type>): Added #:type-cname and 1817 #:func prefix slots, so that <glist-of-type> can be used for 1818 slists as well. The wrap/destruct methods were changed 1819 accordingly, and "GSList*" now maps to the gslist-of type. 1820 18212004-07-11 Andy Wingo <wingo@pobox.com> 1822 1823 * gnome/gobject/gvalue.scm (gtype-instance:write): Use logand, not 1824 logior for flags. 1825 18262004-07-07 Andy Wingo <wingo@pobox.com> 1827 1828 * gnome/gw/gobject-spec.scm (unwrap-value-cg): Whoops, call 1829 wrapped-var on the right thing. 1830 1831 * gnome/gobject/gw-spec-utils.scm (unwrap-value-cg): For enums and 1832 flags, use scm_scm_to_gvalue() instead of rolling our own 1833 conversion. Also fixes problems when the current module doesn't 1834 import GOOPS. 1835 18362004-07-06 Andy Wingo <wingo@pobox.com> 1837 1838 * gnome/gw/gobject-spec.scm: Same. 1839 1840 * gnome/gobject/gw-spec-utils.scm: Make sure that gw:error is 1841 passed the wrapped var, not the scm var -- they are of different 1842 types. 1843 18442004-07-01 Andreas Rottmann <a.rottmann@gmx.at> 1845 1846 * gnome/glib.scm: Include #:use-module (gnome gobject) before the 1847 generated wrapsets (fixes segfault). 1848 1849 * gnome/gobject/gw-spec-utils.scm (unwrap-null-check): Bugfix; 1850 conversion code was always executed, even when null-ok and the 1851 pointer actually was NULL. This is now named unwrap-null-checked 1852 and takes the actual unwrap code as extra parameter. 1853 18542004-06-30 Andy Wingo <wingo@pobox.com> 1855 1856 * gnome/gobject/gtype.c (scm_gtype_instance_print): Same bug. 1857 1858 * gnome/gobject/gvalue.c (scm_gvalue_print): I got bit by !SCM. 1859 Use SCM_FALSEP instead. 1860 1861 * gnome/gobject/gtype.c: Yikes, somehow Martin's copyright notice 1862 got lost in the file split! Put back on all files. 1863 1864 * gnome/gobject/gvalue.c (scm_gvalue_print): Indentation fix. 1865 18662004-06-24 Andreas Rottmann <a.rottmann@gmx.at> 1867 1868 * test-suite/guile-gobject-test: Include (gnome gobject) in 1869 use-modules before the generated wrapset (fixes segfault). 1870 1871 * gnome/gw/glib-spec.scm, gnome/gw/gobject-spec.scm, 1872 * test-suite/gw-test-gobject-spec.scm, 1873 * test-suite/gw-test-glib-spec.scm: Adapted for G-Wrap "depends-on!" 1874 API change. 1875 18762004-05-19 Andy Wingo <wingo@pobox.com> 1877 1878 * ChangeLog: All changelogs have been merged, and the entries that 1879 don't deal with the GLib/GObject wrapper have been elided. Some 1880 directories were corrected. 1881 1882 * gnome/gobject/gparameter.scm (gnome): Export gparameter: limits. 1883 1884 * gnome/gobject/gparameter.c (scm_init_gnome_gobject_parameters): 1885 Changed gruntime:int-max and friends to be gparameter:int-max, 1886 etc. 1887 1888 * Makefile.am, files.ac, guile-gobject-uninstalled.pc.in: Revive 1889 this pkg-config file. See pkg-config(1) for more info. 1890 1891 * gnome/gobject/gw-spec-utils.scm: Wrap GObjectClass. This is used 1892 in GStreamer, at least, and should be used in GTK. 1893 1894 * gnome/gw/Makefile.am: Don't link the glib wrapper to the gobject 1895 runtime, there's no need. 1896 18972004-05-15 Andy Wingo <wingo@pobox.com> 1898 1899 * gnome/gobject/gtype.c (scm_c_gtype_to_class): Try to prevent a 1900 rount-trip to SCM by calling scm_c_lookup_class first. 1901 1902 * gnome/gobject/gw-spec-utils.scm (unwrap-value-cg for enums and 1903 flags): Use scm_c_gtype_to_class instead of lookup_class, because 1904 with latent bindings the class might not exist yet. 1905 19062004-05-14 Andy Wingo <wingo@pobox.com> 1907 1908 * gnome/gobject/gtype.c (scm_gtype_to_class): Now exported as part 1909 of the C API (formerly static SCM _gtype_to_class). 1910 19112004-05-10 Andy Wingo <wingo@pobox.com> 1912 1913 * test-suite/gobject-primitives.test: Removed, this interface is 1914 no longer exported. Yay! 1915 19162004-05-09 Andy Wingo <wingo@pobox.com> 1917 1918 * gnome/gobject/gw-gobject-spec.scm (ws): Don't wrap gtype 1919 functions. I'm trying to move away from unnecessary g-wrap usage. 1920 1921 * gnome/gobject/gtype.c (s_scm_gtype_to_class_name, 1922 s_scm_gtype_to_method_name): Implemented in scheme now. 1923 1924 * gnome/gobject/gw-spec-utils.scm: removed the type name mangling 1925 code, going to put it in types.scm. 1926 1927 * gnome/gobject/gtype.c (s_scm_gtype_children): Changed to return 1928 a list instead of a vector. 1929 1930 * gnome/gobject/gparameter.c (s_scm_gparam_spec_p): Removed, it 1931 wasn't used anywhere. (s_scm_gparam_primitive_create): Doesn't 1932 pre-cache the param struct any more -- should be constructed on 1933 demand, i.e. when gparam->param-struct is called. 1934 19352004-05-04 Andreas Rottmann <a.rottmann@gmx.at> 1936 1937 * gnome/gw/glib-support.c, glib-support.c 1938 (_wrap_g_string_get_str): New function. 1939 19402004-04-30 Andreas Rottmann <a.rottmann@gmx.at> 1941 1942 * package.ac: Depend on glib-2.0 >= 2.4.0. 1943 19442004-04-27 Andreas Rottmann <a.rottmann@gmx.at> 1945 1946 * gnome/gw/Makefile.am: Also distribute and install glib.scm. 1947 1948 * gnome/gw/glib-spec.scm (initialize): Added a few type aliases 1949 for basic C types. Fixed for changed defs directory. 1950 19512004-04-12 Andreas Rottmann <a.rottmann@gmx.at> 1952 1953 * h2def.py: Quick hack to fix G_*_DECLS misparsing. 1954 19552004-04-11 Andy Wingo <wingo@pobox.com> 1956 1957 * gnome/gobject/defs-support.scm (load-defs): Cope with slib 3 1958 (and hopefully 2 as well) by changing the glob:match?? call to 1959 glob:make-matcher. 1960 19612004-04-03 Andreas Rottmann <a.rottmann@gmx.at> 1962 1963 * gnome/gobject/defs-support.scm (type-lookup): Recognize "[]" in 1964 type strings and treat it like a pointer. 1965 19662004-04-03 Andreas Rottmann <a.rottmann@gmx.at> 1967 1968 * configure.in: Depend on libgnomeui >= 2.6.0 and gtk+ >= 2.4.0. 1969 19702004-04-02 Andreas Rottmann <a.rottmann@gmx.at> 1971 1972 * gnome/gobject.scm (gtype-instance:write): Typo fix: logor -> 1973 logior. 1974 19752004-03-29 Andreas Rottmann <a.rottmann@gmx.at> 1976 1977 * test-suite/Makefile.am (libgw_test_gobject_la_LIBADD): Link 1978 against core instead of wrapset. 1979 19802004-03-29 Andreas Rottmann <a.rottmann@gmx.at> 1981 1982 * guile-gobject.pc.in, guile-gobject-uninstalled.pc.in: Moved to 1983 gnome/gobject, where they belong. Makefiles adapted. 1984 1985 * guile-gobject.pc.in (Libs): Link against against the core 1986 support code, not a wrapset. Remove have_gtk= line and FIXME 1987 comment, since these do not fall in the realm of pkg-config (no 1988 headers or regular shared libs installed). * 1989 guile-gobject-uninstalled.pc.in: Ditto. 1990 19912004-03-28 Andreas Rottmann <a.rottmann@gmx.at> 1992 1993 * gnome/gobject/defs-support.scm (load-defs): The glob:* functions 1994 are not existant anymore in SLIB3, and were aliased to filename:* 1995 anyway. 1996 19972004-03-26 Andreas Rottmann <a.rottmann@gmx.at> 1998 1999 * gnome/gobject.scm (gtype-class-define-signal): Use 2000 procedure->memoizing-macro instead of procedure->macro, which is 2001 deprecated. 2002 20032004-02-22 Andy Wingo <wingo@pobox.com> 2004 2005 * gnome/gobject/guile-gnome-gobject.c (s_scm_gobject_get_data) 2006 (s_scm_gobject_set_data_x): Use SCM_UNBOUND to indicate an unbound 2007 slot. 2008 20092004-02-22 Andy Wingo <wingo@pobox.com> 2010 2011 * gnome/gobject.scm (make-gparam-instance): Make params (read 2012 write) by default. (make-gobject-instance): Allow keyword initargs 2013 that are defined via :init-keyword. Call the <object> initializer 2014 directly to set these. Somewhat hacky, but doesn't really break 2015 any rules. (scm->gvalue): Work with closures. 2016 20172004-02-21 Andy Wingo <wingo@pobox.com> 2018 2019 * gnome/gobject.scm (gtype-instance:write): If we get a GValue 2020 from somewhere else, the "primitive" code doesn't know how to make 2021 the class. So we have a new hacky method to accept a gtype as the 2022 arg and do the gtype->class in gobject.scm now. 2023 20242004-02-12 Andy Wingo <wingo@pobox.com> 2025 2026 * gnome/gobject/guile-gnome-gobject-primitives.c 2027 (guile_gobject_log_handler): Handle a NULL for log_domain. 2028 2029 * gnome/gobject/primitives.scm (gparam-spec-type-args): Add a pair for 2030 GParamValueArray, but there's probably more work to do before you 2031 can make the param in scheme. 2032 2033 * gnome/gobject/guile-gnome-gobject-primitives.h: GuileGClosure 2034 struct moved to the .c file to make it private. 2035 2036 * gnome/gobject/guile-gnome-gobject-primitives.c 2037 (scm_c_debug_print): Removed. (scm_c_get_enum): Removed. 2038 (scm_c_make_genum): Removed. 2039 2040 * gnome/gobject/guile-gnome-gobject-primitives.h: No more 2041 exporting (as C api) gparam-primitive-create-pspec-struct. 2042 2043 * gnome/gobject/guile-gnome-gobject-primitives.c 2044 (s_scm_gvalue_primitive_set): Accept object and interface types as 2045 well. (s_scm_gtype_instance_primitive_to_value): Replaced by 2046 gvalue-primitive-new then gvalue-primitive-set. 2047 (s_scm_gvalue_primitive_set): Also handle gboxed-scm. 2048 (s_scm_gvalue_primitive_get): Handle gboxed-scm. 2049 (s_scm_gboxed_scm_primitive_new): Removed, now redundant. 2050 (s_scm_gboxed_scm_primitive_to_scm): Same. 2051 (s_scm_gtype_is_basic_p): Changed name to include -is and remove 2052 -primitive, like the standard GLib functions. Documented what a 2053 basic type is. (s_scm_gtype_is_basic_p): Boxed SCM is a basic 2054 type. (s_scm_gtype_is_valued_p): New function. Predicate that's 2055 true when you can make a GValue with (make class :value val). 2056 (scm_gvalue_array_primitive_new): Remove, just use 2057 gvalue-primitive-new. (scm_gvalue_array_primitive_append): 2058 Removed. There are no value array manipulation procedures any 2059 more. Use gvalue-primitive-set with a list as the argument. 2060 2061 * gnome/gobject/primitives.scm (gflags->element-list): Replace 2062 gflags-primitive-bit-set?. 2063 2064 * gnome/gobject/guile-gnome-gobject-primitives.c 2065 (s_scm_gvalue_primitive_set_enum): Functionality moved to 2066 gvalue-primitive-set. (s_scm_gvalue_primitive_set): Accept enum 2067 and flags types. (s_scm_gvalue_primitive_set_flags): Removed, like 2068 set-enum. (s_scm_gflags_primitive_bit_set_p): Removed, it's the 2069 same as (positive? (logand value bit)). 2070 2071 * gnome/gobject/guile-gnome-gobject-primitives.h 2072 (scm_gtype_instance_primitive): Undefined function, somehow in the 2073 API? Removed. (scm_sys_gtype_instance_primitive_destroy_x): Since 2074 we export it to scheme, we can export it to C. 2075 2076 * gnome/gobject/guile-gnome-gobject-primitives.c 2077 (genum_type_get_values): Changed name, from 2078 genum_primitive_get_values. (s_scm_gflags_type_get_values): Same. 2079 (scm_init_gnome_gobject_primitives): Organized and documented 2080 export list. The source file could also use such a reorganization. 2081 (s_scm_gtype_primitive_create_basic_instance): Removed, it does 2082 the same thing as gvalue-primitive-new. 2083 2084 * gnome/gobject/guile-gnome-gobject-primitives.h 2085 (scm_tc16_gvalue_array): Gone. 2086 2087 * gnome/gobject/guile-gnome-gobject-primitives.c 2088 (scm_gvalue_array_primitive_new): Just allocate GValueArray as a 2089 standard boxed type. (scm_gvalue_array_print): Removed, use just 2090 normal GValue printing. (scm_gvalue_array_free): Removed, no more 2091 tc16_gvalue_array. 2092 20932004-02-12 Andy Wingo <wingo@pobox.com> 2094 2095 * gnome/gobject.scm (scm->gvalue): Add a case for setting flags. 2096 (allocate-instance): Use gvalue-primitive-new for basic types. 2097 (gvalue->scm, scm->gvalue): Simplifications based on basic types. 2098 All over: adapt to primitives changes. 2099 21002004-02-08 Andy Wingo <wingo@pobox.com> 2101 2102 * gnome/gobject/primitives.scm (genum->value): New public function. 2103 (genum->value-table): Removed. Use genum-class->value-table from 2104 gobject.scm. 2105 2106 * gnome/gobject/guile-gnome-gobject-primitives.c 2107 (scm_c_make_gvalue): Add some more debugging. 2108 2109 * gnome/gw/glib-support.h: Add copyright notice. Still need to 2110 change all these to FSF. 2111 21122004-02-08 Andy Wingo <wingo@pobox.com> 2113 2114 * gnome/gobject.scm: Removed most of the commentary. Instead, 2115 refer to the tutorial. 2116 2117 (exports): No more genum->value-table. New functions 2118 genum-class->value-table, gflags-class->value-table. New function 2119 genum->value. (initialize for <gtype-class>): Allow subclassing of 2120 <genum> and <gflags> to create new GTypes. You must pass #:vtable 2121 as an initarg. (gtype-instance-primitive): New helper (private). 2122 (initialize for <gclosure>): Allow either parameters and return 2123 val to be either <gtype> or <gtype-class> instances. If no return 2124 type is specified, set the slot to gtype:void, not #f. 2125 (make-pspec-args): Accept <gtype-class> when gtype? is the 2126 predicate. (gtype-class-create-signal): Accept <gtype-class> 2127 instances in the param types. 2128 21292004-01-29 Andy Wingo <wingo@pobox.com> 2130 2131 * gnome/gobject/defs-support.scm (load-defs): Parse a (callee-owned) 2132 option in parameter definitions. 2133 2134 * gnome/gw/gw-gobject-spec.scm (GValue wrapping): Support 2135 'callee-owned values. 2136 2137 * gnome/gobject/gw-spec-utils.scm (gobject:gwrap-boxed): Support 2138 'callee-owned arguments (call g_value_dup_boxed instead of 2139 _get_boxed). 2140 21412004-01-28 Andy Wingo <wingo@pobox.com> 2142 2143 * gnome/gw/gw-gobject-spec.scm (ws): Check for a NULL return for 2144 GValues. 2145 21462004-01-22 Andreas Rottmann <a.rottmann@gmx.at> 2147 2148 * gnome/gobject/guile-gnome-gobject-primitives.c 2149 (s_scm_gvalue_array_primitive_new) 2150 (s_scm_gvalue_array_primitive_append): Don't wrap SCM_DEFINE 2151 invocation too much, since it seems to confuse older snarfers. 2152 21532004-01-22 Andreas Rottmann <a.rottmann@gmx.at> 2154 2155 * configure.in: Check for GLib >= 2.2.0, since 2.1.X has no 2156 g_{set,get}_application_name. 2157 2158 * configure.in: Use pkg-config to check for g-wrap. 2159 21602004-01-20 Andreas Rottmann <a.rottmann@gmx.at> 2161 2162 * guile-gobject.pc.in: Require g-wrap and drop @GUILE_LIBS@. 2163 2164 * autogen.sh: Require automake 1.7. 2165 21662004-01-20 Andreas Rottmann <a.rottmann@gmx.at> 2167 2168 * gnome/gobject/defs-support.scm (load-defs): The glob:* functions are 2169 not existant anymore in SLIB3, and were aliased to filename:* 2170 anyway. 2171 21722004-01-14 Andy Wingo <wingo@pobox.com> 2173 2174 * gnome/gobject/primitives.scm (<gtype-instance-class>): There's no 2175 special get-n-set here any more, that's done with qdata. See 2176 gobject.scm for more details. 2177 2178 * gnome/gobject/gw-spec-utils.scm (gobject:gwrap-object): Don't ref 2179 returned objects here, only unref them if we own them. This 2180 complements the change in make_gtype_instance. 2181 (gobject:gwrap-interface): Same. 2182 2183 * gnome/gobject/guile-gnome-gobject.c (s_scm_gobject_set_data_x, 2184 s_scm_gobject_get_data): New functions implementing object 2185 properties using qdata so the state persists for all wrappers. 2186 (scm_c_gobject_get_property): Use scm_c_gtype_instance_to_scm to 2187 get the object -- will retrieve a cached object. 2188 (scm_c_gobject_set_property): Same. (remove_object_quark, 2189 free_object_quark): Removed. 2190 (s_scm_sys_function_to_method_public): Set the generic's name. A 2191 bit slower, but necessary for debugging. 2192 2193 * gnome/gobject/guile-gnome-gobject-primitives.c 2194 (s_scm_gclosure_primitive_new): Make free_closure the invalidate 2195 notifier, not the finalize notifier. 2196 (s_scm_gclosure_primitive_new): Don't actually hold a ref on the 2197 closure by using g_value_set_static_boxed. This is to compensate 2198 for an over-conservative GC. (everywhere): Add some more debugging 2199 printouts (not enabled by default). (scm_gtype_instance_free): 2200 Remove vestigial finalize_func code, set the SMOB's data to NULL, 2201 and remove cached wrapper info. Can be called multiple times. 2202 (s_scm_sys_gtype_instance_primitive_destroy_x): New function, 2203 analogous to gtk_object_destroy, called by gtk.scm in response to 2204 the ::destroy signal. (line 710): A couple of pages of comment on 2205 the design of the GObject wrapper. (scm_c_make_gtype_instance): 2206 Check for a cached wrapper before sinking object. Cache the 2207 primitive wrapper separately from the GOOPS wrapper. Actually ref 2208 the object, in accordance with the design doc. Ref params too. 2209 (s_scm_gobject_primitive_get_properties): Don't ref the param 2210 here, it's done in make_gtype_instance. 2211 (s_scm_gparam_primitive_create): Remove floating reference, still 2212 holding the one from make_gtype_instance. 2213 (s_scm_gobject_primitive_create_instance): Remove extra ref on 2214 object, as we own the one given by g_object_new. Cache the 2215 wrapper. (s_scm_gvalue_primitive_get): Don't ref the objects or 2216 params here, it's done in make_gtype_instance. 2217 22182004-01-14 Andy Wingo <wingo@pobox.com> 2219 2220 * gnome/gobject.scm (make-gobject-instance): Now a method so that 2221 <gtk-object> can implement explicit destruction. Exported. 2222 (<gobject-class>): New class whose get-n-set uses gobject-get-data 2223 and gobject-set-data! to implement instance-allocated slots. 2224 (gvalue->scm): Use %gtype-instance-value->scm to convert GObject 2225 GValues into GOOPS objects. An optimization to prevent excessive 2226 allocation and reffing. 2227 22282004-01-14 Andy Wingo <wingo@pobox.com> 2229 2230 * WARTS: You've been able to subclass with define-class for a 2231 while now... 2232 22332004-01-13 Andy Wingo <wingo@pobox.com> 2234 2235 * gnome/gobject/guile-gnome-gobject.c 2236 (scm_c_scm_to_gtype_instance): Error if the SMOB's data is NULL 2237 (meaning the object has been destroyed). 2238 (scm_c_gtype_instance_to_scm): Cache return values as qdata on the 2239 objects. The qdata is removed when the SMOB is freed. 2240 (s_scm_sys_gtype_instance_value_to_scm): New function. An 2241 optimization so that callbacks can use existing object wrappers. 2242 2243 * gnome/gobject/gw-utils.scm: Remove re-export-bindings in favor of 2244 re-export-module. Add a copyright notice. 2245 22462003-12-30 Andreas Rottmann <a.rottmann@gmx.at> 2247 2248 * gnome/gobject/guile-gnome-gobject-primitives.c 2249 (scm_c_make_gtype_name) (s_scm_gtype_primitive_get_signals): 2250 Plugged memory leaks. 2251 22522003-12-17 Andreas Rottmann <a.rottmann@gmx.at> 2253 2254 * TODO: Added entry on procedure->macro usage. 2255 22562003-12-13 Andreas Rottmann <a.rottmann@gmx.at> 2257 2258 * gnome/gw/gw-glib-spec.scm (GSList): Initialize the c-var in the 2259 scm->c-ccg with NULL. 2260 22612003-12-13 Andreas Rottmann <a.rottmann@gmx.at> 2262 2263 * gnome/gw/guile-support.h: Build upon g-wrap-compatibilty.h. 2264 22652003-12-09 Andy Wingo <wingo@pobox.com> 2266 2267 * gnome/gobject/guile-gnome-gobject.c 2268 (scm_c_gtype_instance_instance_init): Switch on the type from the 2269 class, not the instance, as the instance's type changes in 2270 different phases of initialization. Check to see if we have a 2271 servant already before making another one. Fixes some bugs in 2272 doubly-derived gobject classes. 2273 2274 * gnome/gobject/guile-gnome-gobject-primitives.c 2275 (scm_c_make_gtype_instance): Sink objects after checking to see if 2276 we have a wrapper. 2277 22782003-12-07 Andreas Rottmann <a.rottmann@gmx.at> 2279 2280 * gnome/gobject/guile-gnome-gobject-primitives.h 2281 (scm_init_gnome_gobject_helper): Added declaration. 2282 22832003-12-06 Andreas Rottmann <a.rottmann@gmx.at> 2284 2285 * gnome/gobject/guile-gnome-gobject-primitives.c 2286 (guile_gobject_log_handler): Always issue error, even with NULL 2287 domain/message. 2288 22892003-12-03 Andy Wingo <wingo@pobox.com> 2290 2291 * gnome/gw/gw-glib-spec.scm: Fixed some longstanding bugs, 2292 embarassingly enough related to the size of fundamental types. 2293 Also added gshort and gushort as types. 2294 22952003-12-03 Andreas Rottmann <a.rottmann@gmx.at> 2296 2297 * gnome/gobject/guile-gnome-gobject-primitives.c 2298 (guile_gobject_log_handler): Protect against NULL arguments. 2299 23002003-12-02 Andreas Rottmann <a.rottmann@gmx.at> 2301 2302 * gnome/gw/gw-glib-spec.scm (GError): Ignore null-ok typespec 2303 option (we always pass a pointer). 2304 23052003-11-30 Andreas Rottmann <a.rottmann@gmx.at> 2306 2307 * gnome/gw/gw-glib-spec.scm: Register gshort and gushort type 2308 aliases. 2309 23102003-11-22 Andreas Rottmann <a.rottmann@gmx.at> 2311 2312 * gnome/gw/Makefile.am: Use $(G_WRAP_LIBS) and $(G_WRAP_CFLAGS). 2313 2314 * gnome/gw/gw-glib-spec.scm: Adapted for new g-wrap. Implemented 2315 transparent GError handling (throw expection and hide argument). 2316 2317 * gnome/gobject/gw-spec-utils.scm, gw-gobject-spec.scm: Reworked for 2318 new g-wrap. 2319 2320 * gnome/gw/Makefile.am: Removed gw-standard sections. * 2321 gnome/gw/gw-standard-spec.scm: Removed, since g-wrap now has an 2322 up-to-date copy. All uses changed back to "(g-wrap 2323 gw-standard-spec)". 2324 2325 * gnome/gobject/guile-gnome-gobject.c, guile-gnome-gobject.h 2326 (scm_sys_function_to_method_public): Removed, functionality is now 2327 in g-wrap. 2328 2329 * gnome/gobject/guile-gnome-gobject.c, guile-gnome-gobject.h 2330 (g_type_from_instance, g_type_is_instantiatable) 2331 (g_type_is_classed): New macro-workalike functions. 2332 2333 * gnome/gw/glib-support.h: Added #include guards. * 2334 gnome/gw/glib-support.c: Quick-fixed to work with Guile 1.7. 2335 2336 * gnome/gw/guile-support.h (scm_gc_free): Fixed parameter list. * 2337 gnome/gobject/guile-gnome-gobject-primitives.c (scm_gvalue_free): 2338 Fix scm_gc_free() invocation. 2339 23402003-11-18 Andy Wingo <wingo@pobox.com> 2341 2342 * gnome/gobject/guile-gnome-gobject-primitives.c 2343 (s_scm_gboxed_scm_primitive_to_scm): If the boxed value is NULL, 2344 we return SCM_UNSPECIFIED to prevent a segfault when the value is 2345 printed. (s_scm_gvalue_primitive_set): If we don't know how to 2346 handle the GValue, signal a wrong type arg on the GValue, not the 2347 value we are trying to set. 2348 23492003-11-09 Andy Wingo <wingo@pobox.com> 2350 2351 * gnome/gobject/guile-gnome-gobject-primitives.c 2352 (s_scm_especify_metaclass_x): New function. Makes the metaclass of 2353 an existing GTypeClass more specific, hence the novel new word 2354 `especify'. Exists to hack around GOOPS' lack of class methods. 2355 23562003-11-08 Andy Wingo <wingo@pobox.com> 2357 2358 * gnome/gobject.scm (make-instance): New implementation for 2359 gtype-instances. `initialize' for gobjects is now called by the 2360 gobject system, not by goops. For params and interfaces, it is the 2361 same as before. (gtype-instance:initialize): Gone, replaced by the 2362 normal `initialize'. 2363 23642003-11-06 Andy Wingo <wingo@pobox.com> 2365 2366 * gnome/gobject/guile-gnome-gobject.c 2367 (s_scm_sys_function_to_method_public): Don't set the name keyword 2368 when making the generic, it's faster according to Andreas. 2369 23702003-11-01 Andy Wingo <wingo@pobox.com> 2371 2372 * gnome/gobject/guile-gnome-gobject.[ch] (scm_c_gvalue_to_scm): 2373 This one is const now. 2374 2375 * gnome/gobject/guile-gnome-gobject-primitives.c 2376 (%scm-gclosure-marshal): Add some hacky prototypes to allow us to 2377 use scm_c_gvalue_to_scm in the marshaller. 2378 23792003-10-31 Andreas Rottmann <a.rottmann@gmx.at> 2380 2381 * test-suite/guile-test-env: Drop support of Guile 1.3 and fix 2382 left-over g-wrap reference. 2383 2384 * test-suite/exceptions.scm: Renamed gruntime-wrong-number-of-args 2385 to wrong-number-of args again, since the exception in lib.scm is 2386 called wrong-num-args, so there is no conflict. Users adapted 2387 accordingly. 2388 2389 * test-suite/exceptions.scm: Get rid of out-of-range, as this is 2390 already in lib.scm. 2391 2392 * test-suite/gw-test-gobject-spec.scm: Depend on "gw-standard". * 2393 test-suite/test-gobject.h, test-gobject.c, test-gobject.defs, 2394 gw-gobject.test: Added method invocation testcase. 2395 23962003-10-29 Andy Wingo <wingo@pobox.com> 2397 2398 * gnome/gobject.scm (initialize): Allow a single symbol again as a 2399 flags #:value. 2400 24012003-10-27 Andy Wingo <wingo@pobox.com> 2402 2403 * gnome/gobject.scm (initialize): For <gflags>, if the #:value is 2404 an integer, process it correctly. 2405 24062003-10-26 Andy Wingo <wingo@pobox.com> 2407 2408 * gnome/gw/gw-glib-spec.scm (gslist-of): Fix some const pointer 2409 warnings. 2410 2411 * gnome/gobject/gw-spec-utils.scm (gobject:gwrap-class): Use slot-ref, 2412 not slot-ref-using-class. 2413 2414 * gnome/gobject/guile-gnome-gobject-primitives.c 2415 (slot_definition_using_name): Removed. 2416 2417 * gnome/gobject/primitives.scm (define-with-docs): Renamed from 2418 define-public-with-docs, doesn't export the binding any more 2419 (let's just use the :export option when defining the module). 2420 (gruntime-debug): Removed. (%gruntime-debug): Removed. 2421 2422 * gnome/gobject/guile-gnome-gobject.c (scm_gobject_register_type): 2423 Removed. Just use (define foo (gtype-from-name name)). 2424 (scm_c_gtype_instance_class_init): Don't call the 2425 gobject:class-init, just initialize after you define your class. 2426 This prevents custom initialization of scheme classes further 2427 subclassed in C, but that's a corner case that is maybe better 2428 left out. (scm_sys_gobject_get_refcount): Only define if 2429 DEBUG_REFCOUNTING is defined. 2430 (scm_c_gtype_instance_instance_init): Only call 2431 gtype-instance:initialize (was :instance-init), not a specific one 2432 for gobject. 2433 24342003-10-26 Andy Wingo <wingo@pobox.com> 2435 2436 * gnome/gobject.scm There were a lot of general cleanups and 2437 reorganizations here. The file should be more readable now. 2438 2439 (gobject-get-property): Not a method anymore. We don't want people 2440 mistakenly overriding this function (override gobject:get-property 2441 instead). (gobject-set-property): Same. (gobject:set-property): 2442 Added docstring. (gobject:get-property): Same. (<gobject>): No 2443 more servant properties. (gobject:instance-init): Gone, use 2444 gtype-instance:instance-init. (gobject:class-init): Gone, 2445 initialize after you make the class. 2446 (gobject-class:install-property): Gone, the C code does The Right 2447 Thing now. (gtype-instance:class-init): Gone, like 2448 gobject:class-init. (class-is-a?): Gone. 2449 (gobject-type-register-static): Gone. Use gtype-register-static if 2450 you want to, but subclassing should be good enough. (initialize): 2451 For <gvalue>, we never see closures, so we remove that piece of 2452 code. 2453 24542003-10-26 Andy Wingo <wingo@pobox.com> 2455 2456 * examples/gobject/example-1.scm: Updated to the new 2457 property/signal/subclassing API. 2458 24592003-10-25 Andy Wingo <wingo@pobox.com> 2460 2461 * gnome/gobject/primitives.scm (<gtype-instance-class>): A new 2462 metaclass descending from <gtype-class>. <gtype-instance> is now 2463 an instance of this class. (compute-get-n-set): For 2464 <gtype-instance-class>, overrides #:instance allocation to set 2465 properties on the <%gtype-instance> smob. 2466 2467 * gnome/gobject/guile-gnome-gobject.c (scm_gtype_eq_p): Removed. 2468 Just use eq?. 2469 24702003-10-25 Andy Wingo <wingo@pobox.com> 2471 2472 * gnome/gobject.scm (get-direct-supers): Only add <gtype-instance> 2473 to the hierarchy if the type is instantiatable, not classed. 2474 (gobject-class-set-properties!): New function, split out of 2475 init-gobject class. (init-gobject-class): Expose slots described 2476 with #:param-spec options as gobject properties. (let-params): 2477 Removed, you can do all of this with GOOPS now. 2478 (make-gobject-property): Removed, GOOPS handles this now. 2479 (define-gobject-class): Removed, just use define-class. 2480 (initialize): For <gtype-class>, do most of the things we did in 2481 gtype->class here. If no #:gtype argument is passed, subclass the 2482 parent type. (gtype->class): Just make the class, no more voodoo 2483 here. (write): for <gparam>, don't try to write the pspec struct 2484 if it isn't set yet. (gtype-class-create-signal): Take a list of 2485 param types instead of a vector. 2486 24872003-10-25 Andreas Rottmann <a.rottmann@gmx.at> 2488 2489 * test-suite/gobject.test: Fixed for recent API changes. 2490 24912003-10-25 Andreas Rottmann <a.rottmann@gmx.at> 2492 2493 * gnome/gobject/guile-gnome-gobject-primitives.c 2494 (s_scm_gparam_primitive_create_pspec_struct, 2495 s_scm_gparam_primitive_create): GValue support for param specs. * 2496 gnome/gobject/guile-gnome-gobject-primitives.h 2497 (SCM_G_IS_PARAM_SPEC_VALUE_ARRAY): New macro. 2498 24992003-10-25 Andreas Rottmann <a.rottmann@gmx.at> 2500 2501 * gnome/gobject.scm (scm->gvalue): Fixed wrt gvalue-array (recent 2502 changes broke this). 2503 25042003-10-24 Andreas Rottmann <a.rottmann@gmx.at> 2505 2506 * test-suite/gobject.test: Comment out tests failing due to API 2507 regression. 2508 2509 * test-suite/Makefile.am: 'make distcheck' fixes. 2510 2511 * test-suite/test-gobject.c, test-gobject.h, test-gobject.defs, 2512 gw-test-gobject-spec.scm, gw-gobject.test: Testcase framework for 2513 wrapping, including test for GValue arrays. 2514 2515 * test-suite/guile-test-env: New shell script - runs guile with 2516 the right environment for the tests. 2517 2518 * test-suite/Makefile.am: New - we want to run the test-suite with 2519 'make check'. 2520 2521 * test-suite/guile-gobject-test: Also stolen from Guile CVS 2522 (guile-test) and adapted. * test-suite/lib.scm: Stolen from Guile 2523 CVS, as this is not installed. 2524 2525 * test-suite/exceptions.scm: New module, defines common 2526 exceptions. 2527 2528 * test-suite/gobject.test, gobject-primitives.test: Brought on par 2529 with the current API and molded into modules. 2530 25312003-10-24 Andreas Rottmann <a.rottmann@gmx.at> 2532 2533 * gnome/gobject.scm (gclosure-invoke): Fixed for closures without 2534 return type. 2535 25362003-10-23 Andy Wingo <wingo@pobox.com> 2537 2538 * gnome/gobject/guile-gnome-gobject.c (%gobject-get-property): Use 2539 scm->gvalue to process the return from gobject:get-property. 2540 25412003-10-23 Andy Wingo <wingo@pobox.com> 2542 2543 * gnome/gobject.scm (gobject-get-property): Use gvalue->scm. 2544 (allocate-instance): Allocate GBoxedSCM instances in the 2545 <gtype-class> allocate-instance method. (let-params): #:name, not 2546 :name. 2547 25482003-10-22 Andy Wingo <wingo@pobox.com> 2549 2550 * gnome/gobject/primitives.scm: The big changes! There's no more 2551 <gtype-class-meta>. (<set-once-class>): New metaclass implementing 2552 set-once slots. (<gtype-class>): Now a metaclass. Its metaclass is 2553 <set-once-class>, so it has set-once slots for gtype and 2554 gtype-class. All gtype classes are now instances of this 2555 metaclass. (<gtype-instance>): New class, has a set-once slot for 2556 the gtype-instance. Instance of <gtype-class>. Parent class of all 2557 instantiatable types (like <gobject>). 2558 2559 * gnome/gw/gw-gobject-spec.scm: New wrappers for gtype-is-classed? 2560 and gtype-is-instantiatable?. 2561 2562 * gnome/gobject/guile-gnome-gobject.h (SCM_GOBJECTP): Use new 2563 SUBCLASSP macro. (SCM_GOBJECT_CLASSP): Use SUBCLASSP macro. 2564 (SCM_VALIDATE_GOBJECT_CLASS_GET_TYPE): Get the gtype by a 2565 slot-ref, not a class-slot-ref. 2566 2567 * gnome/gobject/guile-gnome-gobject-primitives.h 2568 (SCM_GPARAM_SPEC_P): Allow SCM_BOOL_F for owner-type. 2569 (SCM_GTYPE_CLASS_SUBCLASSP): New macro. 2570 2571 * gnome/gobject/guile-gnome-gobject-primitives.c 2572 (s_scm_sys_gtype_bind_to_class): Re-set the 'signals slot on 2573 implemented interfaces after g_type_class_ref()ing an implementor. 2574 Hackery, but that's the GObject system for you! 2575 (scm_gtype_class_print): Print gtype-class smobs with a %. 2576 (s_scm_sys_gtype_bind_to_class): Set the gtype and gtype-class 2577 slots using slot-set!, in accordance with the new hierarchy. Also 2578 loop through the implemented interfaces to re-set 'gsignals, 2579 because they aren't there until after a g_type_class_ref () on an 2580 implementor. (s_scm_sys_get_struct_slot): Work on any instance. 2581 (s_scm_sys_set_struct_slot): Same. 2582 (s_scm_gtype_primitive_get_signals): Rename from 2583 gobject-primitive-get-signals, because it works on interfaces too. 2584 (s_scm_gtype_instance_primitive_signal_emit): Renamed. 2585 (s_scm_gtype_instance_primitive_signal_connect): Renamed. 2586 2587 * gnome/gobject/generics.scm (all functions): Updated to the new 2588 class hierarchy. 2589 2590 * gnome/gobject/guile-gnome-gobject.h 2591 (SCM_VALIDATE_GOBJECT_CLASS_COPY): Renamed to 2592 SCM_VALIDATE_GOBJECT_CLASS_GET_GTYPE, since that's what it 2593 actually does. 2594 25952003-10-22 Andy Wingo <wingo@pobox.com> 2596 2597 * gnome/gobject.scm: (get-metaclass): Removed, we always use 2598 <gtype-class> as a metaclass. (gtype->class): Always use 2599 <gtype-class> as a metaclass. Add some initialization for 2600 interfaces, but this can't be completed until an implementor has 2601 been initialized as well. So the job is finished in 2602 %gtype-bind-to-class for implementors. (gtype-instance:write): 2603 Work on <%gtype-instance>. This will probably move somewhere else 2604 in the future. (gtype-instance:write): Why we have implementations 2605 for <gtype>s is unknown to me. These will likely be removed. 2606 (gtype-class-get-vector-slot): Robustified to deal with strange 2607 objects in the CPL (like interfaces). 2608 (gtype-instance-signal-emit): Name changed from 2609 gobject-signal-emit, because it can operate on any gtype-instance. 2610 (gtype-instance-signal-connect-data): Same. 2611 (gtype-instance-signal-connect): Same. 2612 (gtype-instance-signal-connect-after): Same. 2613 (gtype-class-create-signal): Same. 2614 26152003-10-22 Andreas Rottmann <a.rottmann@gmx.at> 2616 2617 * gnome/gobject/guile-gnome-gobject-primitives.c, 2618 guile-gnome-gobject-primitives.h, guile-gnome-gobject.c: Implement 2619 GValue array support. 2620 2621 * gnome/gobject/guile-gnome-gobject-primitives.c 2622 (scm_c_make_gvalue) (scm_gvalue_free): Replaced deprecated 2623 scm_must_malloc/free invokations with scm_gc_malloc/free. 2624 2625 * gnome/gw/guile-support.h (SCM_VECTOR_REF, SCM_VECTOR_SET): New 2626 compat macros, to be used instead of SCM_VELTS(). (scm_gc_malloc, 2627 scm_gc_free): New compat macros, to be used instead of 2628 scm_must_malloc/free. (scm_gc_unregister_collectable_memory) 2629 (scm_gc_register_collectable_memory): New compat macros. 2630 26312003-10-21 Andy Wingo <wingo@pobox.com> 2632 2633 * gnome/gobject/guile-gnome-gobject-primitives.c 2634 (scm_pre_init_gnome_gobject_primitives): Make the smob for 2635 GTypeClass called "%gtype-class" to avoid conflicts between the 2636 GOOPS smob class and the real wrapper class. 2637 2638 * gnome/gw/gw-gobject-spec.scm: New wrapped function: 2639 gtype-is-classed?. 2640 2641 * gnome/gobject/guile-gnome-gobject-primitives.c 2642 (scm_gtype_interfaces): New function, returns the interfaces 2643 implemented by a type. (scm_gtype_primitive_get_signals): Renamed 2644 from gobject-primitive-get-signals, although no code change is 2645 required. 2646 26472003-10-21 Andy Wingo <wingo@pobox.com> 2648 2649 * gnome/gobject.scm: General reorganizations. (get-parent-types): 2650 Removed, we only have one direct parent now (as well as interfaces 2651 if they're not already there). (gtype-class-ancestry): Removed, 2652 all this information is already encapsulated in the class 2653 precedence list. (make-class-slots): Change the name of 2654 gobject-signals to gsignals, and add it to all classed GTypes. 2655 (gtype-ancestry): Removed, either get this from the class 2656 precedence list or loop on gtype-parent yourself. 2657 (init-gobject-class): Only store signals from the class itself in 2658 the gsignals slot. (gtype-class-get-signal-names): New function. 2659 (get-direct-supers): New function, replaces get-parent-types. I'm 2660 schizophrenic ;) (gtype->class): Also initialize GObject (dunno 2661 why this wasn't done). 2662 26632003-10-21 Andreas Rottmann <a.rottmann@gmx.at> 2664 2665 * configure.in: Disable ORBit check, since the code needs internal 2666 API headers that are not installed by default. 2667 26682003-10-16 Andy Wingo <wingo@pobox.com> 2669 2670 * gnome/gobject/gw-spec-utils.scm: Export 2671 gobject:gwrap-helper-with-class. 2672 26732003-10-15 Andy Wingo <wingo@pobox.com> 2674 2675 * gnome/gobject/guile-gnome-gobject.c 2676 (scm_c_gtype_instance_instance_init): Only call the instance-inits 2677 with one argument, the object. 2678 26792003-10-15 Andy Wingo <wingo@pobox.com> 2680 2681 * gnome/gobject.scm (gobject:instance-init): Remove class 2682 argument. (gtype-instance:instance-init): Remove class argument. 2683 26842003-10-13 Andy Wingo <wingo@pobox.com> 2685 2686 * gnome/gobject/guile-gnome-gobject.c (scm_c_gvalue_to_scm): Copy 2687 the incoming GValue so that we have our own. 2688 26892003-10-13 Andy Wingo <wingo@pobox.com> 2690 2691 * configure.in: -Wall always. -Werror unless you pass 2692 --disable-Werror. --disable-Wall is gone. Put in debugging symbols 2693 unless --disable-debug is passed. 2694 26952003-10-12 Andy Wingo <wingo@pobox.com> 2696 2697 * gnome/gobject/guile-gnome-gobject.c (scm_c_scm_to_gvalue): New 2698 function, calls scm->gvalue. (scm_c_gvalue_to_scm): New function, 2699 calls gvalue->scm. 2700 2701 * gnome/gobject/gw-spec-utils.scm (gobject:gwrap-interface): Wrap 2702 interfaces properly, now that we use them. 2703 27042003-10-12 Andy Wingo <wingo@pobox.com> 2705 2706 * gnome/gobject.scm (scm->gvalue): renamed from 2707 make-value-from-scm. Also deals with interfaces. 2708 (make-ginterface): Wrap interfaces using the standard 2709 goops<->GTypeInstance SMOB pairing. (exports): Export classes for 2710 <ginterface>, <gint64>, and <guint64>. 2711 27122003-10-12 Andy Wingo <wingo@pobox.com> 2713 2714 * configure.in: We do -Wall by default (--disable-Wall to disable) 2715 27162003-10-11 Andy Wingo <wingo@pobox.com> 2717 2718 * gnome/gobject/defs-support.scm (load-defs): Ignore .defs entries 2719 where there is a (varargs ...) line. 2720 2721 * gnome/gobject/guile-gnome-gobject.c 2722 (s_scm_sys_function_to_method_public): Some cleanups. Use the same 2723 coding style as the rest of the file. Use static variables to 2724 reference the-root-module and module-add!. Don't check to see if 2725 objects are actually classes, that's done by g-wrap now. We still 2726 have to make a new closure for the procedure, due to a bug in 2727 Guile 1.6.4. 2728 27292003-10-07 Kevin Ryde <user42@zip.com.au> 2730 2731 * gnome/gobject/guile-gnome-gobject.c 2732 (scm_sys_function_to_method_public): Don't put variable 2733 declarations in the middle of the function, that's a c99-ism. 2734 27352003-10-01 Andy Wingo <wingo@pobox.com> 2736 2737 * gnome/gobject/gw-spec-utils.scm: General cleanups all around... 2738 (GStudlyCapsExpand): New function, based on StudlyCapsExpand from 2739 slib's strcase.scm (public domain). Given a C type name, returns 2740 the appropriate scheme type name. Normally a lower case letter 2741 preceded by one capital letter forces a hyphenation before the 2742 capital letter: GSource => g-source, GtkIMContext => 2743 gtk-im-context. However, a lower case letter preceded by exactly 2744 two capital letters that is not at the beginning of the string is 2745 treated specially: GtkHBox => gtk-hbox (like the C api). 2746 (glib:type-cname->symbol-alist): New alist of overrides for 2747 converting C type names to scheme names. 2748 (glib:type-cname->symbol): uses GStudlyCapsExpand, mapping 2749 underscores to hyphens. GSource* => <g-source*>. (print-info): 2750 Gives more feedback when the bindings are being created. This uses 2751 slib's printf. (gwrap-helper): New argument HOW-WRAPPED. If not 2752 false, will cause gwrap-helper to call print-info for the type. 2753 (gwrap-helper-with-class): New argument HOW-WRAPPED, passed on to 2754 gwrap-helper. Cleanups. (gobject:gwrap-*): Pass appropriate values 2755 for HOW-WRAPPED. 2756 2757 * gnome/gw/gw-gobject-spec.scm: use the new 2758 glib:type-cname->symbol-alist to override scheme names for 2759 <gobject>, <gvalue>, <gclosure>, and <gparam>. When wrapping 2760 g-source-set-closure, use the new name for GSource (<g-source*>). 2761 2762 * gnome/gobject/defs-support.scm (register-type): Removed last argument 2763 relating to information printing -- that's done in gw-spec-utils 2764 now. (load-defs): When checking to see if a method has a bad name, 2765 don't ignore asterisks at the end of the type name. Thus we avoid 2766 creating methods for opaque pointers. 2767 27682003-10-01 Andy Wingo <wingo@pobox.com> 2769 2770 * configure.in: Check to see if glade is installed. 2771 27722003-09-22 Andy Wingo <wingo@pobox.com> 2773 2774 * autogen.sh: remove build-dependency on gnome2-dev by using 2775 gstreamer's build system * autogen-support.sh: gstreamer's build 2776 system (new file) 2777 27782003-08-26 Andreas Rottmann <a.rottmann@gmx.at> 2779 2780 * gnome/gobject/gw-utils.scm (function->method-public) 2781 (functions->methods-public): Unecessary now, removed. 2782 2783 * gnome/gobject/defs-support.scm (load-defs): Make sym_of_object and 2784 sym_generic_name static. (load-defs): Create generic functions 2785 immediatly instead of setting the of-object procedure property. 2786 2787 * gnome/gobject/guile-gnome-gobject.c, guile-gnome-gobject.h 2788 (scm_sys_function_to_method_public): New function. 2789 2790 * gnome/gobject/defs-support.scm (recursive-type-find): Fixed behavior 2791 for empty type-hashes. 2792 2793 * gnome/gobject/defs-support.scm, gw-spec-utils.scm: Support for 2794 enums/flags without gtype-id. 2795 2796 * gnome/gw/Makefile.am (GUILE_FLAGS): New variable. 2797 27982003-07-27 Andy Wingo <wingo@pobox.com> 2799 2800 * gnome/gobject/guile-gnome-gobject-primitives.[ch] 2801 (G_TYPE_BOXED_SCM): renamed from G_TYPE_GBOXED_SCM. There have 2802 been other changes recently that I haven't been putting in the 2803 changelogs... 2804 28052003-07-27 Andy Wingo <wingo@pobox.com> 2806 2807 * gnome/gobject.scm (make-value-from-scm): Make gboxed-scms when 2808 needed. 2809 28102003-06-21 Andy Wingo <wingo@pobox.com> 2811 2812 * gnome/gobject/gw-spec-utils.scm (gobject:gwrap-class): New function. 2813 28142003-06-19 Andy Wingo <wingo@pobox.com> 2815 2816 * gnome/gobject/guile-gnome-gobject.c 2817 (scm_c_gtype_instance_instance_init): Call 2818 scm_c_make_gtype_instance to get the primitive GTypeInstance 2819 wrapper for the servant. That way we really only have one 2820 primitive wrapper, however many high level wrappers there are. 2821 Seems to fix some flaky bugs as well, as a side effect. 2822 28232003-06-18 Andy Wingo <wingo@pobox.com> 2824 2825 * gnome/gobject.scm (make-gparam-instance): Fix typo (name->nick). 2826 (make-gparam-instance): Make the pspec->flags actually set, with a 2827 #:flags initarg -- also required some changes in -primitives.c. 2828 28292003-06-14 Andy Wingo <wingo@pobox.com> 2830 2831 * gnome/gobject/guile-gnome-gobject-primitives.c 2832 (scm_c_make_gtype_instance): Cache the primitive gtype instance 2833 smob. 2834 28352003-06-07 Andy Wingo <wingo@pobox.com> 2836 2837 * gnome/gobject/primitives.scm (gparam-spec:args): Fix to actually 2838 return the full list of args. Zip up the returned list with 2839 descriptive keywords. 2840 28412003-06-07 Andy Wingo <wingo@pobox.com> 2842 2843 * gnome/gobject.scm: Made the commentary retrievable with 2844 file-commentary, see (ice-9 documentation) for more details. 2845 2846 * gnome/glib.scm (g-timeout-add, g-idle-add): As it turns out, 2847 g-idle-source-new creates an idle source, but with priority 2848 G_PRIORITY_DEFAULT instead of G_PRIORITY_DEFAULT_IDLE. This means 2849 that after g-idle-add is called, no Gtk events get processed (Bad 2850 Thing (tm)). Now we set the priority manually to DEFAULT_IDLE. 2851 Thanks to Owen Taylor for pointers on this one. 2852 28532003-05-30 Andy Wingo <wingo@pobox.com> 2854 2855 * gw-standard-spec.scm (<gw:long-long>, <gw:unsigned-long-long>): 2856 Add LL to the end of the max/min 64 bit constants to appease gcc 2857 3.3. However, gcc-3.3 fails to compile the gtk bindings, at least 2858 on my machine. gcc 3.2 does work. 2859 28602003-05-30 Andy Wingo <wingo@pobox.com> 2861 2862 * gnome/gobject/defs-support.scm (type-lookup): Without an explicit 2863 value for ownership, we only assume that we own non-const strings. 2864 Other things represented by pointers are treated conservatively. 2865 This is so that a function returning a GObject* has its return 2866 g_object_ref'd; non-const is not the same as caller-owned. 2867 28682003-05-26 Andy Wingo <wingo@pobox.com> 2869 2870 * gnome/gobject/defs-support.scm (load-defs): Add support for null-ok 2871 in defs files, e.g. '("GdkWindow*" "window" (null-ok)). 2872 2873 * gnome/gobject/gw-spec-utils.scm: Only allow NULL values for objects, 2874 pointers, boxeds, and interfaces if 'null-ok appears in the 2875 typespec. 2876 2877 * gnome/gw/gw-gobject-spec.scm: Added input checks for generic 2878 GValue type wrapper. Only allow NULL for closures if 'null-ok 2879 appears in the typespec. 2880 28812003-05-08 Andy Wingo <wingo@pobox.com> 2882 2883 * gnome/gobject/guile-gnome-gobject-primitives.[ch]: Added and 2884 exported log handler for g_logv messages. I don't thing it 2885 returns, however, which can cause recursion... dunno what to do 2886 about that. 2887 2888 * gnome/gw/gw-gobject-spec.scm: wrap closures and 2889 g-source-set-closure. 2890 2891 * gnome/gw/gw-glib-spec.scm: wrap main loops and some things from 2892 gutils.h. Steal GList/GSList wrapper from g-wrap. 2893 2894 * gnome/gobject/defs-support.scm: prettify output, log opaque types and 2895 bad methods to a file. We now wrap opaque types as <gw:wct>. Add 2896 support for GList*-of-GtkWindow*. Support new commands "ignore", 2897 "ignore-glob", and function attribute "overrides". 2898 28992003-05-08 Andy Wingo <wingo@pobox.com> 2900 2901 * gnome/glib.scm: new file. Imports gobject/gw-glib and defines 2902 g-idle-add and g-timeout-add (in scheme). 2903 29042003-05-03 Andy Wingo <wingo@pobox.com> 2905 2906 * gnome/gw/gobject.scm: Cleanups. Also changed a few 2907 gtype-instance-primitive function calls with (slot-ref obj 2908 'gtype-instance). With the new directory structure, gobject.scm 2909 moves into gnome/. 2910 2911 * gnome/gobject/primitives.scm: Don't hold extra data in the 2912 slot-definition, it's needed by the latest guile 1.6. Change the 2913 old slot allocation for gtype and gtype-instance to rely on a new 2914 kind of allocation, #:set-once. Adapt to the new method of library 2915 initialization with g-wrap. 2916 2917 * gnome/gobject/gw-utils.scm: New file. Provides utility syntax 2918 re-export-bindings and functions->methods-public. 2919 2920 * gnome/gobject/gw-spec-utils.scm: New file. Provides utility functions 2921 for spec files, such as gobject:wrap-object, gobject:wrap-enum, 2922 and the like. 2923 2924 * gnome/gobject/defs-support.scm: New file. Provides support for 2925 natively loading .defs-style api definitions into g-wrap wrapsets. 2926 2927 * gnome/gw/gw-glib-spec.scm: New file. Will eventually wrap glib 2928 functions, but for now just provides type wrappings for other 2929 wrapsets. 2930 2931 * gnome/gw/gnome-gobject.gwp: Deleted. Functionality moved to 2932 gw-gobject-spec.scm. 2933 2934 * gnome/gw/gw-gobject-spec.scm: New file. Wraps functions to 2935 initialize gnome-gobject, as well as wrapping some fundamental 2936 types for g-wrap. 2937 2938 * gnome/gw/generics.scm: New file. Provides generic functions for 2939 gobject.scm. 2940 2941 * gnome/gobject/guile-gnome-gobject.c: Added diagnostic macros to 2942 debug allocation problems. Adapted to new slot allocation for 2943 'gtype and 'gtype-instance. Return a a goops object of class 2944 (gtype->class [type of gtypeinstance]) in 2945 scm_c_gtype_instance_to_scm. Exported (to C) 2946 scm_sym_gtype_to_class, the symbol for gtype->class. Adapted to 2947 new initialization via g-wrap. 2948 2949 * gnome/gobject/guile-gnome-gobject-primitives.c: Muck about with 2950 refcounting. Provide guile_gobject_register_sinkfunc(), much like 2951 what pygtk does, to deal with GTK_OBJECT_FLOATING. Provide getters 2952 and setters for #:set-once allocation and adapt accordingly for 2953 'gtype and 'gtype-instance. Refcounting is still not in a coherent 2954 state, needs a bit of work. 2955 29562002-11-08 Ariel Rios <ariel@gnu.org> 2957 2958 * gnome/gobject/guile-gnome-gobject-primitives.c 2959 (s_scm_gobject_primitive_signal_emit): Rewrite the function being 2960 more clever, more readable and hey! it works. 2961 2962 * gnome/gobject.scm (gobject-signal-emit): Do some cleanup. 2963 2964 29652002-08-01 Ariel Rios <ariel@gnu.org> 2966 2967 * gnome/gobject/guile-gnome-gobject-primitives.c 2968 (s_scm_gparam_primitive_create_pspec_struct): Some cleanup 2969 29702002-08-01 Ariel Rios <ariel@gnu.org> 2971 2972 * gnome/gobject/guile-gnome-gobject-primitives.c 2973 (s_scm_gparam_primitive_create): Use the new macros thus doing the 2974 right thing (TM) 2975 2976 * gnome/gobject/guile-gnome-gobject-primitives.h 2977 (SCM_G_IS_PARAM_SPEC_BOOLEAN) (SCM_G_IS_PARAM_SPEC_STRING, 2978 SCM_G_IS_PARAM_SPEC_OBJECT) (SCM_G_IS_PARAM_SPEC_BOXED, 2979 SCM_G_IS_PARAM_SPEC_CHAR) (SCM_G_IS_PARAM_SPEC_UCHAR, 2980 SCM_G_IS_PARAM_SPEC_INT) (SCM_G_IS_PARAM_SPEC_UINT, 2981 SCM_G_IS_PARAM_SPEC_LONG) (SCM_G_IS_PARAM_SPEC_ULONG, 2982 SCM_G_IS_PARAM_SPEC_FLOAT) (SCM_G_IS_PARAM_SPEC_DOUBLE, 2983 SCM_G_IS_PARAM_SPEC_POINTER) (SCM_G_IS_PARAM_SPEC_ENUM, 2984 SCM_G_IS_PARAM_SPEC_FLAGS): New macros 2985 29862002-07-30 Ariel Rios <ariel@gnu.org> 2987 2988 * guile-gnome-gobject.c : Add string.h to make compiler happy 2989 2990 * gnome/gobject/guile-gnome-gobject-primitives.c: Ditto 2991 2992 * gnome/gw/guile-support.c: Ditto 2993 29942002-07-30 Ariel Rios <ariel@gnu.org> 2995 2996 * gnome/gobject/guile-gnome-gobject.c (scm_init_gnome_gobject): 2997 Some cleanup of unused code. 2998 29992002-07-30 Ariel Rios <ariel@gnu.org> 3000 3001 * gnome/gobject/guile-gnome-gobject.c (scm_init_gnome_gobject): Do 3002 the right thing. 3003 30042002-04-13 Ariel Rios <ariel@gnu.org> 3005 3006 * gnome/gobject/guile-gnome-gobject-primitives.c 3007 (s_scm_gparam_primitive_create_pspec_struct): 3008 s/g_param_get_*/g_param_spec_get. 3009 30102002-01-28 Ariel Rios <ariel@gnu.org> 3011 3012 * configure.in: Bump version number to 0.3.0 3013 3014 * NEWS: What's new =) 3015 30162002-01-23 Ariel Rios <ariel@gnu.org> 3017 3018 * guile-gnome-gobject-primitives.c: glib-object.h 3019 3020 * gnome/gobject/guile-gnome-gobject-primitives.h: Ditto. 3021 3022 * gnome/gobject/guile-gnome-gobject.c (scm_init_gnome_gobject): Do 3023 not use G_TYPE_FUNDAMENTAL_LAST and other deprecated stuff, this 3024 hack is a workaround and it is not guaranteed to work yet. We now 3025 only include glib-object.h 3026 30272002-01-23 Ariel Rios <ariel@gnu.org> 3028 3029 * gnome/gobject/guile-gnome-gobject-primitives.c 3030 (s_scm_gparam_primitive_create_pspec_struct): Functions now 3031 compiles. Still some work to do in some functions ahead. 3032 3033 30342002-01-23 Ariel Rios <ariel@gnu.org> 3035 3036 * gnome/gobject/guile-gnome-gobject-primitives.c 3037 (s_scm_gparam_primitive_create): More clean ups. Almost done. 3038 30392002-01-23 Ariel Rios <ariel@gnu.org> 3040 3041 * gnome/gobject/guile-gnome-gobject-primitives.c 3042 (s_scm_gparam_primitive_create): All fixes done. It compiles 3043 again. Need to check the fundamental stuff. 3044 30452001-09-21 Ariel Rios <ariel@gnu.org> 3046 3047 * gnome/gobject/guile-gnome-gobject-primitives.c 3048 (gboxed_scm_get_type): Use correct of arguments required by recent 3049 glib changes. (s_scm_gparam_primitive_create_pspec_struct): Do not 3050 access GParamSpec fields directly. 3051 (s_scm_gparam_primitive_create): Correct number of arguments 3052 passed to SCM_ASSERT 3053 30542001-09-10 Martin Baulig <baulig@suse.de> 3055 3056 Released guile-gobject 0.2.0 "The Great Barrier Reef". 3057 3058 * configure.in: Bump version number to 0.2.0. 3059 3060 * RELEASE-NOTES-0.2.0.txt: Preparing the release ... 3061 30622001-09-09 Martin Baulig <baulig@suse.de> 3063 3064 * gnome/gw/gobject.scm (vector-map): New private utility function. 3065 (<gparam>): Removed the `pspec-struct' slot. (<gparam-pointer> 3066 <gparam-string> <gparam-object> <gparam-boxed>): Added. 3067 (<gparam-enum> <gparam-flags>): Added. (gparam->pspec-struct): New 3068 public function. (allocate-instance <gtype-class>): Moved <gparam> 3069 and <gobject> initialization into (initialize <gtype-class>), only 3070 do the actual allocating here. 3071 3072 * gnome/gobject/guile-gnome-gobject-primitives.c 3073 (scm_c_debug_print): New utility function. (SCM_DEBUG_PRINT): New 3074 utility macro. (gparam-primitive->pspec-struct): Moved the 3075 functionality of this function into 3076 `gparam-primitive-create-pspec-struct' (not exported), store the 3077 pspec-struct as qdata in the param and return it. 3078 (SCM_ERROR_NOT_YET_IMPLEMENTED): Added `what' argument. 3079 3080 * gnome/gobject/guile-gnome-gobject.c (gtype?): New function. 3081 (gparam->value-type): New function. 3082 30832001-09-09 Martin Baulig <baulig@suse.de> 3084 3085 * gnome/gw/gobject.scm (gobject-class-find-property): New public 3086 function. 3087 30882001-09-08 Martin Baulig <baulig@suse.de> 3089 3090 * gnome/gw/gobject.scm (gtype-instance:class-init, 3091 gtype-instance:instance-init gobject:class-init 3092 gobject:instance-init gobject-class:install-property 3093 gobject:set-property gobject:get-property): Moved here from 3094 primitives.scm. (<gparam>): Added `pspec-struct' slot. 3095 (<gobject>): The `gobject-properties' vector now contains <gparam> 3096 objects. (make-gparam-instance): Added #:pspec-struct keyword to 3097 create a <gparam> object from a pspec-struct. 3098 (gobject:get-property, gobject:set-property): This now gets a 3099 <gparam> object as argument, not a pspec-struct. 3100 (gobject-class-install-property): Removed, implemented in C. 3101 3102 * gnome/gobject/guile-gnome-gobject-primitives.c 3103 (scm_c_gtype_lookup_class): New function. 3104 (scm_c_gtype_instance_bind_to_instance): New function. 3105 (gtype-primitive-register-static): Moved to guile-gnome-gobject.c 3106 and renamed to gtype-register-static. 3107 (gobject-class-primitive-install-property): Moved to 3108 guile-gnome-gobject.c and renamed to 3109 gobject-class-install-property. (scm_gparam_spec_vtable): Added 3110 "param-type" field. 3111 3112 * gnome/gobject/guile-gnome-gobject.c (gtype-register-static): 3113 Moved here. (gobject-class-install-property): Moved here. 3114 31152001-09-08 Martin Baulig <baulig@suse.de> 3116 3117 * gnome/gw/foo.[ch]: Removed. 3118 31192001-09-07 Martin Baulig <baulig@suse.de> 3120 3121 * gnome/gw/guile-support.[ch]: New files. This stuff may be moved 3122 into guile at a future time. 3123 31242001-09-07 Martin Baulig <baulig@suse.de> 3125 3126 * gnome/gobject/guile-gnome-gobject-primitives.c 3127 (scm_add_slot_closure): Removed. 3128 31292001-09-06 Martin Baulig <baulig@suse.de> 3130 3131 * gnome/gw/gobject.scm (<gparam-char> <gparam-uchar> 3132 <gparam-boolean> <gparam-int> <gparam-uint> <gparam-long> 3133 <gparam-ulong> <gparam-float> <gparam-double>): New classes. 3134 (gobject-class-install-property): New public function. 3135 (allocate-instance (<gtype-class>)): Added support for <gparam> 3136 subclasses. 3137 3138 * gnome/gobject/guile-gnome-gobject-primitives.c 3139 (gparam-primitive-create): This now takes 4 args like 3140 (gobject-primitive-create-instance). 3141 31422001-09-05 Martin Baulig <baulig@suse.de> 3143 3144 * gnome/gobject/primitives.scm (gparam-spec:name gparam-spec:nick 3145 gparam-spec:blurb gparam-spec:flags gparam-spec:value-type 3146 gparam-spec:owner-type gparam-spec:args): New accessor functions. 3147 3148 * gnome/gobject/guile-gnome-gobject-primitives.c 3149 (gobject-primitive-get-properties): Only return direct properties, 3150 not the ones from our parent types. 3151 3152 * gnome/gw/gobject.scm (gtype->class): Register parent classes if 3153 necessary. gsignal:id gsignal:name gsignal:interface-type 3154 gsignal:return-type gsignal:param-types gparam-spec:name 3155 gparam-spec:nick gparam-spec:blurb gparam-spec:flags 3156 gparam-spec:value-type gparam-spec:owner-type gparam-spec:args): 3157 Re-export them (from (gnome gobject primitives)). 3158 (gobject-class-get-property-names): New convenience function. 3159 3160 * gnome/gobject/guile-gnome-gobject.c 3161 (scm_c_gtype_instance_is_a_p): New function. 3162 (scm_c_scm_to_gtype_instance, scm_c_gtype_instance_to_scm): New 3163 functions. 3164 31652001-09-05 Martin Baulig <baulig@suse.de> 3166 3167 * gnome/gobject/guile-gnome-gobject-primitives.c (gparam-spec?): 3168 New func. (gobject-class-primitive-install-property): New 3169 function. Added support for properties. (scm_gtype_instance_free): 3170 Don't free the instance if we have a finalize func. 3171 3172 * gnome/gobject/primitives.scm (gobject:set-property 3173 gobject:get-property): New generic functions. 3174 3175 * gnome/gw/gobject.scm (gobject:set-property 3176 gobject:get-property): Provide default implementation. 3177 31782001-09-05 Martin Baulig <baulig@suse.de> 3179 3180 * configure.in: Bump version number to 0.1.0. 3181 31822001-09-03 Martin Baulig <baulig@suse.de> 3183 3184 Another batch of larger changes: 3185 3186 - improved gsignal support. - we can now derive GObject's in 3187 scheme. 3188 3189 More detailed, but a bit uncomplete list: 3190 3191 * gnome/gw/gobject.scm (gtype->class): For each class we create, 3192 use its parent class as metaclass. (<gboxed-scm>): New type. This 3193 is a GBoxed type to hold a scheme value. (gvalue->scm): Moved here 3194 from primitives.scm and export it. (gtype-instance:class-init): 3195 New generic function. (gtype-instance:instance-init): New generic 3196 function. (gobject-class-define-signal): New public macro. 3197 3198 * gnome/gobject/guile-gnome-gobject-primitives.[ch] 3199 (gvalue-primitive-get-basic): Renamed to gvalue-primitive-get. 3200 (gvalue-primitive-set-basic): Renamed to gvalue-primitive-set. 3201 (gtype-instance-primitive-type): Renamed to 3202 gtype-instance-primitive->type. 3203 (gtype-instance-primitive-to-value): New function. 3204 (scm_init_gnome_gobject_primitives): Don't export the "gsignal-*" 3205 symbols, except "gsignal-struct-vtable". (G_TYPE_GBOXED_SCM): New 3206 GBoxed type to hold a scheme value. (gboxed-scm-primitive-new): 3207 New function. (gboxed-scm-primitive->scm): New function. 3208 (gsignal-primitive-create): New function. (gtype-class->type): 3209 Removed. This is now implemented in scheme and correctly handles 3210 the case if you create a GOOPS subclass of a class. 3211 3212 * gnome/gobject/guile-gnome-gobject.[ch] (gtype->method-name): New 3213 function. 3214 3215 * gnome/gobject/primitives.scm (gsignal:id, gsignal:name, 3216 gsignal:return-type, gsignal:instance-type, 3217 gsignal:parameter-types): New accessor functions. 3218 32192001-09-03 Martin Baulig <baulig@suse.de> 3220 3221 * gnome/gobject/guile-gnome-gobject-primitives.c 3222 (gobject:class-init, gobject:instance-init): When deriving 3223 GObject's, use `gobject:class-init' and `gobject-instance-init' 3224 instead of `gtype-instance:class-init' and 3225 `gtype-instance:instance-init'. 3226 3227 * gnome/gobject/guile-gnome-gobject.c (gtype-fundamental?): New 3228 function. This isn't really necessary, but it's faster to do this 3229 in C. 3230 3231 * gnome/gobject/primitives.scm (define-public-with-docs): New macro. 3232 (define-generic-with-docs): New macro. 3233 3234 * gnome/gw/gobject.scm: Documentation ..... 3235 32362001-09-03 Martin Baulig <baulig@suse.de> 3237 3238 * gnome/gobject/guile-gnome-gobject-primitives.c 3239 (scm_c_register_gtype): Unmangle the type with 3240 G_TYPE_FLAG_RESERVED_ID_BIT. 3241 32422001-09-03 Martin Baulig <baulig@suse.de> 3243 3244 * gnome/gobject/guile-gnome-gobject-primitives.c 3245 (gtype-primitive-create-instance): Renamed to 3246 gobject-primitive-create-instance; its last argument is now a 3247 vector containing the properties. 3248 3249 * gnome/gw/gobject.scm: When creating new <gobject> instances, 3250 interpret all arguments as GObject properties. 3251 32522001-09-03 Martin Baulig <baulig@suse.de> 3253 3254 * gnome/gobject/guile-gnome-gobject-primitives.c 3255 (gsignal-primitive-create): Actually pass the `param-types' vector 3256 to g_signal_newv(). 3257 3258 * gnome/gw/gobject.scm (make-value-from-scm): Throw an exception 3259 if we got the unspecified value, but a non-void type. 3260 32612001-09-01 Martin Baulig <baulig@suse.de> 3262 3263 Added support for GParamSpec. 3264 3265 * gnome/gw/gobject.scm (gobject-get-property, 3266 gobject-set-property): New functions. 3267 3268 * gnome/gobject/guile-gnome-gobject-primitives.c 3269 (scm_gparam_spec_struct_vtable): New struct type. 3270 (scm_gtype_instance_primitive_to_instance): Renamed to 3271 scm_gtype_instance_primitive(). 3272 (scm_gtype_instance_primitive_type): New function. 3273 (scm_gobject_primitive_signal_emit, 3274 scm_gobject_primitive_signal_connect): Take a 3275 scm_tc16_gtype_instance smob, not a <gobject> object. 3276 (scm_gparam_primitive_to_pspec_struct): New function. 3277 (scm_gparam_primitive_create): New function. 3278 (s_scm_gobject_primitive_get_properties): New function. 3279 (scm_gobject_primitive_get_property): New function. 3280 (scm_gobject_primitive_set_property): New function. 3281 3282 * gnome/gw/foo.[ch]: Added properties. 3283 32842001-09-01 Martin Baulig <baulig@suse.de> 3285 3286 * gnome/gobject/primitives.scm (<gtype>): Removed, replaced with a 3287 smob. (gobject-error): Renamed to gruntime-error. 3288 3289 * gnome/gobject/guile-gnome-gobject-primitives.[ch]: Removed the 3290 <gtype> class and added new scm_tc16_gtype smob. 3291 3292 * gnome/gw/gobject.scm (gtype->class): Use <gtype-class> as 3293 metaclass and changed all <gtype-class-meta> to <gtype-class>. 3294 3295 * gnome/gobject/guile-gnome-gobject.c: Call the GType's 3296 "gtype:<type-name>" instead of "gtype-type-<type-name>". 3297 32982001-09-01 Martin Baulig <baulig@suse.de> 3299 3300 * gnome/gobject/guile-gnome-gobject-primitives.c 3301 (scm_gtype_primitive_register_static): New function. 3302 3303 * gnome/gobject/guile-gnome-gobject-primitives.h 3304 (SCM_VALIDATE_FLOAT_COPY): Make this actually work. 3305 33062001-09-01 Martin Baulig <baulig@suse.de> 3307 3308 * Makefile.am, configure.in: Don't build libgnome/ and orbit/ for 3309 the moment, nothing interesting in there. 3310 33112001-08-31 Martin Baulig <baulig@suse.de> 3312 3313 * test-suite/gobject-primitives.test: Added tests for gclosure 3314 primitives. 3315 3316 * test-suite/gobject.test: Added tests for gclosure. 3317 33182001-08-31 Martin Baulig <baulig@suse.de> 3319 3320 * gnome/gobject/guile-gnome-gobject-primitives.c 3321 (scm_tc16_gclosure_smob): Removed. 3322 (scm_gclosure_primitive_invoke): Correctly GC protect the 3323 GuileGClosure's `func' field. 3324 33252001-08-31 Martin Baulig <baulig@suse.de> 3326 3327 * gnome/gobject/guile-gnome-gobject-primitives.c 3328 (scm_gvalue_primitive_to_type): Removed, we already have 3329 scm_gvalue_to_type. 3330 33312001-08-31 Martin Baulig <baulig@suse.de> 3332 3333 * gnome/gw/gobject.scm (gtype-instance-write): Added method for 3334 `(type <gtype>) (obj <gvalue>) file)' - creates the class using 3335 (gtype->class type) and then calls the normal 3336 gtype-instance-write. 3337 3338 * gnome/gobject/guile-gnome-gobject-primitives.c 3339 (scm_gvalue_print): If the class doesn't exist yet, use the type 3340 as first argument of gtype-instance-write. 3341 33422001-08-31 Martin Baulig <baulig@suse.de> 3343 3344 * gnome/gw/gobject.scm (gobject-signal-connect-data): Use the new 3345 <gclosure> object. (gsignal-handler-block gsignal-handler-unblock 3346 gsignal-handler-disconnect gsignal-handler-connected?): New 3347 functions. 3348 3349 * gnome/gobject/guile-gnome-gobject-primitives.c 3350 (GuileGTypeInstance): Killed, use GTypeInstance directly. 3351 (scm_gtype_instance_primitive_to_instance): New func. 3352 (scm_gsignal_primitive_handler_block): New func. 3353 (scm_gsignal_primitive_handler_unblock): New func. 3354 (scm_gsignal_primitive_handler_disconnect): New func. 3355 (scm_gsignal_primitive_handler_connected_p): New func. 3356 33572001-08-31 Martin Baulig <baulig@suse.de> 3358 3359 * gnome/gw/gobject.scm (<gclosure>): Implement this as a GOOPS 3360 class, not as a GValue. (gclosure-invoke): New generic function. 3361 3362 * gnome/gobject/guile-gnome-gobject-primitives.c 3363 (scm_tc16_gclosure): Renamed to `scm_tc16_gclosure_smob'. 3364 (scm_gclosure_primitive_invoke): Added return_type argument. 3365 (scm_gvalue_primitive_to_type): New function. 3366 33672001-08-27 Martin Baulig <baulig@suse.de> 3368 3369 * test-suite/gobject.text: Testcase for `(gnome gobject)' module. 3370 3371 * test-suite/gobject-primitives.test: Testcase for `(gnome gobject 3372 primitives)'. 3373 33742001-08-27 Martin Baulig <baulig@suse.de> 3375 3376 * test-suite/: New directory. 3377 33782001-08-27 Martin Baulig <baulig@suse.de> 3379 3380 * gnome/gobject/primitives.scm, guile-gnome-gobject-primitives.[ch]: 3381 Moved some of the internal stuff into a new `(gnome gobject 3382 primitives)' module and exported most of the methods. 3383 33842001-08-27 Martin Baulig <baulig@suse.de> 3385 3386 * gnome/gobject/primitives.scm (gflags->element-list): New primitive 3387 function. (gflags->symbol-list gflags->name-list 3388 gflags->value-list): New functions. 3389 33902001-08-25 Martin Baulig <baulig@suse.de> 3391 3392 - added basic support for signals. 3393 33942001-08-23 Martin Baulig <baulig@suse.de> 3395 3396 - added basic gclosure support. 3397 3398 - added gchararray. 3399 3400 - added support for flags. 3401 3402 - added genum-register-static. 3403 3404 - added gchar, guchar, gint, guint, glong, gulong, gfloat and 3405 gdouble. 3406 3407 - added support for enums. 3408 34092001-08-21 Martin Baulig <baulig@suse.de> 3410 3411 * gnome/gobject/guile-gnome-gobject.c 3412 (scm_sys_gobject_scheme_dir): New func. 3413 (scm_gobject_register_type): New func. 3414 3415 * gnome/gw/Makefile.am: Create and install documentation. 3416 34172001-08-21 Martin Baulig <baulig@suse.de> 3418 3419 * gnome/gobject/guile-gnome-gobject.c (scm_gtype_children): New 3420 func. (scm_init_gnome_gobject): Register all fundamental and 3421 derived types. 3422 3423