This repository has been archived by the owner on Dec 8, 2021. It is now read-only.
/
ChangeLog
6979 lines (5226 loc) · 204 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2005-05-23 Andrei Zmievski <andrei@gravitonic.com>
* TODO2
ext/gtk+/gtktreeview.overrides:
Implement GtkTreeModel::iter_children(). (patch by Markus Fischer)
2005-05-20 Christian Weiske <cweiske@cweiske.de>
* generator/generator.php:
static functions have parameter reflection.
Overridden methods not.
* generator/generator.php:
constructor reflection is in now
* generator/generator.php:
Commented out conditional reflection generation
* TODO2:
some more missing things
2005-05-17 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtktreeview.overrides:
- Fix unboxing of parent iter in GtkTreeStore::append().
- Return iter unless setting the row fails.
Patch by Markus Fischer.
2005-05-16 Andrei Zmievski <andrei@gravitonic.com>
* TODO2
ext/gtk+/gtktreeview.overrides
ext/gtk+/php_gtk+.h
ext/gtk+/php_gtk+_types.c
generator/arg_types.php
main/phpg_support.c:
Implement support for GtkTreePath as arg type.
2005-05-15 Christian Weiske <cweiske@cweiske.de>
* generator/templates.php:
I forgot to commit the templates... thanks Markus
2005-05-13 Christian Weiske <cweiske@cweiske.de>
* generator/generator.php
generator/reflection.php
generator/reflection_class_checker.php:
The generator writes reflection information for normal
functions now. If you want to compile them, add
to config.h (Andrei, could you add a configure switch?)
The time difference between a build with and without reflection
is minimal (0.4s), so I vote for enabling it by default.
The reflection.php is a small helper script if you want to write
reflection code by hand (e.g. for phpg_object.c or so), and
reflection_class_checker.php checks the generated .c files
for unsupported classes which might cause php5 to behave
weird when reflection is used.
* main/phpg_gobject.c:
Created reflection info for GObject.
Has to be enabled with
Andrei, where could you extend the config file for this?
2005-05-10 Christian Weiske <cweiske@cweiske.de>
* generator/docgen.php:
same space stuff
2005-05-10 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gdk.overrides:
-** empty log message ***
* ext/gtk+/gtktreeview.overrides:
Commit an adjusted patch from Markus for some GtkTreeStore methods.
2005-05-09 Andrei Zmievski <andrei@gravitonic.com>
* main/phpg_gobject.c:
Expose signal name in the error message (patch from Markus Fischer).
* main/phpg_exceptions.c:
Make PhpGtkException the parent exception class for all other ones.
2005-05-08 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtk.overrides
ext/gtk+/gtktreeview.overrides
ext/gtk+/php_gtk+.h
ext/gtk+/php_gtk+_types.c:
- Make GtkTreeModel::append() accept an optional array with data values.
- Implement GtkRadioMenuItem constructor and set/get_group() methods.
2005-05-04 Christian Weiske <cweiske@cweiske.de>
* TODO2:
One new demo, php-gtk2demo embeds demos scrollable now
* TODO2:
some more missing things
* TODO2:
some problems
2005-05-03 Christian Weiske <cweiske@cweiske.de>
* TODO2:
thing
2005-04-28 Pablo Dall'Oglio <pablo@univates.br>
* TODO2:
-** empty log message ***
2005-04-28 Andrei Zmievski <andrei@gravitonic.com>
* main/php_gtk_util.c:
-** empty log message ***
2005-04-28 Pablo Dall'Oglio <pablo@univates.br>
* TODO2:
Included General Fixes section with some methods to fix.
2005-04-28 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtk.overrides:
Fix some NULL issues.
2005-04-28 Christian Weiske <cweiske@cweiske.de>
* generator/doc_templates.php
generator/docgen.php:
refentries for *-functions.xml are generated now
* generator/docgen.php:
Generates better signal callback signature now (with the widgets itself as
first parameter)
2005-04-28 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtk.overrides:
Fix GtkMenuItem constructor.
2005-04-26 Andrei Zmievski <andrei@gravitonic.com>
* TODO2
generator/generator.php:
Fix generation of static constructors without parameters.
* ext/gtk+/gtk.overrides
generator/arg_types.php
main/php_gtk.h
main/phpg_gtype.c
main/phpg_support.c:
Fix static property based constructors by using phpg_gtype_from_class()
since this_ptr is NULL.
2005-04-25 Andrei Zmievski <andrei@gravitonic.com>
* generator/arg_types.php
main/php_gtk.h
main/php_gtk_util.c:
Support utf8 conversion in property-based constructors. Optimize string
handling by avoiding strlen()'s.
* generator/arg_types.php
main/php_gtk_util.c:
Use 'u' specifier to force strings to be utf-8.
* TODO2
generator/arg_types.php
generator/generator.php
main/php_gtk.c
main/php_gtk.h
main/php_gtk_module.h
main/php_gtk_util.c:
Implement automatic conversion to/from UTF-8 when passing or receiving
strings. The conversion is based on php-gtk.codepage setting, which
defaults to ISO-8859-1 if not specified.
Note that Gtk+ expects all input string parameters to be in UTF-8, so we
do the conversion where we can, to save users trouble. However, if a
functions takes an array of strings as a parameter, we cannot convert it
automatically. The user should convert each value using iconv().
* generator/definitions.php:
Fix caller-owns-return output.
* ext/gtk+/gdk.defs
ext/gtk+/gtk.defs:
Fix caller-owns-return values.
* config.m4:
Check for CLI version.
* ext/gtk+/config.m4:
-** empty log message ***
2005-04-25 Jani Taskinen <jani.taskinen@sci.fi>
* ext/gtk+/config.m4:
- Fixed error messages to point at right package
2005-04-24 Andrei Zmievski <andrei@gravitonic.com>
* TODO
TODO2
ext/gtk+/gtk.defs
ext/gtk+/gtk.overrides:
-** empty log message ***
2005-04-22 Andrei Zmievski <andrei@gravitonic.com>
* build2/build2.mk:
aclocal.m4 depends on ext.m4.
2005-04-22 Christian Weiske <cweiske@cweiske.de>
* generator/doc_templates.php
generator/docgen.php:
- docgen generates signals now
- some stats when generating the docs from source:
we have
classes 10+17+146+8 =181
constructors 3+10+143+2 =158
functions 87+426+2072+111 =2696
properties 0+34+138+0 =172
signals 7+9+310+0 =326
now. That's really cool!
2005-04-18 Jani Taskinen <jani.taskinen@sci.fi>
* buildconf
cvsclean
makedist
build2/build.mk
build2/build2.mk:
- Added cvsclean script
- Fixed buildconf with new phpize which does not run aclocal anymore
* .cvsignore:
- php_gtk.m4 is not generated file, ext.m4 is.
* ext/gdkpixbuf/config.m4
ext/gtk+/config.m4
ext/gtkhtml/config.m4
ext/libglade/config.m4:
- Quote properly
2005-04-16 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/config0.m4:
Add Glib/Gtk+ macros.
* README.KNOWN-ISSUES
ext/gtk+/gtktreeview.overrides
main/php_gtk_util.c
main/phpg_gobject.c:
- Add GObject::get/set_data().
- Add GtkTreeSelection::get_selected().
- Fix a couple of bugs in parameter parsing.
2005-04-14 Andrei Zmievski <andrei@gravitonic.com>
* TODO2
ext/gtk+/Makefile.frag
ext/gtk+/gtk.overrides
ext/gtk+/gtktreeview.overrides
generator/override.php
main/php_gtk.h
main/php_gtk_util.c
main/phpg_closure.c
main/phpg_gobject.c
main/phpg_gvalue.c:
- Implement GObject::get/set_property()
- Add some helper functions for dealing with varargs functions and
simple callback marshalling.
- Implement some tree view stuff
damn, i need a beer and a cookie
2005-04-12 Andrei Zmievski <andrei@gravitonic.com>
* TODO2
ext/gtk+/gtk.overrides
generator/templates.php:
Static constructors should unref the created object after calling
phpg_gobject_new() since the refcount will be 2 after the call.
* config.m4:
Require PHP 5.1.0 or higher. Let's play with the latest toys.
* ext/gtk+/gtk.overrides:
Implement a few more tree view/store related methods.
* main/phpg_gvalue.c:
Support G_TYPE_INTERFACE in conversions to/from zval.
* generator/generator.php:
Register interface arg types.
2005-04-10 Christian Weiske <cweiske@cweiske.de>
* generator/doc_templates.php
generator/docgen.php:
Some more changes for php-gtk2-doc
2005-04-10 Andrei Zmievski <andrei@gravitonic.com>
* main/phpg_gobject.c:
Support interface too in signal querying.
2005-04-10 Christian Weiske <cweiske@cweiske.de>
* generator/doc_templates.php
generator/docgen.php:
Don't remember
2005-04-10 Andrei Zmievski <andrei@gravitonic.com>
* TODO2
main/phpg_gobject.c
main/phpg_gtype.c:
Implement GObject methods signal_list_ids(), signal_list_names(),
signal_query().
2005-04-08 Christian Weiske <cweiske@cweiske.de>
* generator/doc_templates.php
generator/docgen.php:
- XML requires <constructors> tag now
- fixed generation for classes with no constructor
2005-04-08 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtk.defs
ext/gtk+/gtk.overrides:
Implement some functions and crap.
2005-04-07 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtk.overrides:
- Register some fundamental GTypes as constants.
- Implement GtkListStore::append(), GtkListStore::set(), and
GtkTreeModel::get_value().
All this allows things like:
class mine {
var $a = 5;
var $b;
function __construct($b) {
$this->b = $b;
}
}
$store = new GtkListStore(Gtk::TYPE_PHP_VALUE);
$iter = $store->append();
$o = new Mine(99);
$store->set($iter, 0, $o);
var_dump($store->get_value($iter, 0));
* main/php_gtk.c
main/php_gtk.h
main/phpg_gtype.c
main/phpg_gvalue.c:
- Better detection of valid GTypes in phpg_gtype_from_zval().
* main/php_gtk.c
main/php_gtk.h
main/php_gtk_util.c
main/phpg_gboxed.c
main/phpg_gobject.c
main/phpg_gtype.c
main/phpg_gvalue.c:
Register our own boxed type to represent non-Gtk derived PHP objects.
2005-04-05 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtk.overrides:
Implement GtkListStore() constructor.
2005-04-04 Christian Weiske <cweiske@cweiske.de>
* generator/doc_templates.php
generator/docgen.php
generator/docmerger2.php:
modified docgen to create php-gtk2 docs
2005-04-04 Andrei Zmievski <andrei@gravitonic.com>
* generator/templates.php
main/Makefile.frag
main/phpg_gvalue.c:
- Fix phpg_parse_ctor_props() return value check.
- Fix phpg_gvalue_from_zval() to check the proper variable in some
cases.
* ext/gtk+/gtk-types.defs
ext/gtk+/gtk.defs
ext/gtk+/gtk.overrides:
Implement a few more constructors.
2005-03-31 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtk.overrides:
Implement override for GtkRadioToolButton constructor.
* TODO2
php_gtk.m4
ext/gtk+/gtk.defs
ext/gtk+/gtk.overrides
generator/override.php:
- Implement override version for GtkRadioButton() constructor.
- Fix silly bug in ignore-glob processing
2005-03-30 Andrei Zmievski <andrei@gravitonic.com>
* main/Makefile.frag:
Add clean-gen and clean-caches targets.
* generator/scheme.php:
Don't sort objects.
* ext/gtk+/gdk.defs
ext/gtk+/gtk-extrafuncs.defs
ext/gtk+/gtk-types.defs
ext/gtk+/gtk.defs
ext/gtk+/pango-types.defs:
Update Gtk+ defs to the latest (2.6).
2005-03-29 Andrei Zmievski <andrei@gravitonic.com>
* generator/merge_defs.php
generator/missing_defs.php:
Add scripts for merging and listing missing defs.
* generator/Getopt.php
generator/definitions.php
generator/scheme.php:
Framework for merging different sets of diffs.
2005-03-27 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtk.overrides:
-** empty log message ***
* generator/arg_types.php
generator/definitions.php
generator/generator.php
generator/templates.php:
Make most of GObject-derived classes use property constructors. This
allows for widget subclassing in the future.
* ext/gtk+/gtk.defs:
We do need constructor property information after all.
* main/phpg_gobject.c:
Throw an exception if unable to construct the object.
* main/php_gtk.h
main/phpg_support.c:
Implement phpg_parse_ctor_props() that is used to convert a list of PHP
function parameters to a form suitable for g_object_newv().
* main/phpg_gvalue.c:
Add enum and flags cases to phpg_gvalue_from_zval().
* main/php_gtk_util.c:
Fix ^ case for 'i' and 'l' specifiers.
2005-03-26 Andrei Zmievski <andrei@gravitonic.com>
* main/php_gtk_util.c:
Modify parameter parsing: if ^ is encountered before a specifier,
perform all the necessary checks, but return the parameter as zval. This
is necessary for property-based constructors.
* ext/gtk+/gtk.overrides:
Ignore gtk_true/false.
* ext/gtk+/gtk.overrides
main/php_gtk.h
main/phpg_gobject.c
main/phpg_support.c:
- Move generic phpg_handler_marshal() to phpg_support.c.
- Implement gtk::quit_add().
* generator/generator.php:
Typo.
* ext/gtk+/gtk.overrides:
Adjust to use g_object_new() for instantiation. First move towards
complete freedom of widget subclassing.
* ext/gtk+/config.m4:
Require newer versions of libraries.
* generator/generator.php:
-** empty log message ***
* generator/generator.php
generator/lineoutput.php:
Implementn coverage statistics.
* main/phpg_support.c:
Ah, what the hell, let's support interfaces too in phpg_create_class().
* main/php_gtk.h
main/phpg_support.c:
- Implement phpg_create_class() (no interface support yet).
- Use phpg_create_class() to register PHP class wrappers for those
GType's that are not listed in .defs files but can find their way to
userland.
2005-03-25 Andrei Zmievski <andrei@gravitonic.com>
* generator/generator.php:
- Allow addition of __construct method.
- Do not generate constructors for abstract types.
* main/php_gtk.h
main/phpg_gobject.c:
Implement default GObject constructor.
2005-03-24 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gdk.defs
ext/gtk+/gdk.overrides:
Implement GdkRectangle::intersect() and ::union().
* ext/gtk+/Makefile.frag:
Fix generation error that resulted in a wrong header file being created.
* php_gtk.m4
build2/build.mk
build2/build2.mk
build2/config-stubs:
Some modifications to the build system to avoid aclocal problems.
2005-03-22 Andrei Zmievski <andrei@gravitonic.com>
* TODO2
ext/gtk+/gtk.defs
ext/gtk+/gtk.overrides
ext/gtk+/php_gtk+.c
generator/definitions.php
generator/generator.php
generator/scheme.php
generator/templates.php
main/php_gtk.h
main/phpg_gobject.c
main/phpg_support.c:
Whew. It all started with because I had to
- Implement GtkFileChooserDialog
But then I reliazed that it implemented GtkFileChooser interface so I had
to:
- Put in support for interfaces and access to object's interface
implementations.
The rest was easy:
- Register stock item constants (Gtk::STOCK_OK, etc)
2005-03-20 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtk.overrides:
Implement GtkDialog constructor().
* ext/gtk+/gtk.overrides
generator/arg_types.php
generator/generator.php:
If any of the argument type handlers fail in constructors, we need to
throw an exception.
* ext/gtk+/Makefile.frag
generator/arg_types.php
generator/generator.php
generator/scheme.php:
Adjust Makefile slightly so that the #line directives refer to full path.
* ext/gtk+/gtk.overrides:
Implement GtkMessageDialog constructor.
2005-03-19 Andrei Zmievski <andrei@gravitonic.com>
* TODO2
generator/arg_types.php
main/php_gtk_util.c:
Make error messages display Class::method().
* TODO2
ext/gtk+/gdk.overrides
ext/gtk+/gtk.overrides
ext/gtk+/gtkstyle.overrides
ext/gtk+/pango.overrides
generator/generator.php
generator/override.php
test/fileselection.php:
Make it that "PHP_METHOD" in overrides only indicates the start of the
function and its class/method are provided by the generator.
* ext/gtk+/gtk.overrides:
Fix class naming.
* generator/generator.php
generator/lineoutput.php
generator/override.php
generator/templates.php:
- Make generator output '#line' references in the generated file, so
that we can much more easily pinpoint which line in overrides caused
the compilation error or warning.
- Get rid of large chunks of old/unused generator code.
2005-03-18 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gtk.overrides:
Register priority constants.
* main/php_gtk.h
main/phpg_support.c:
Add phpg_register_int_constant().
2005-03-17 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/Makefile.frag
generator/generator.php:
Finally make our generation display and logging better. Too many people
were apparently getting confused by "Could not write function..".
* main/phpg_gboxed.c:
Fix typo.
2005-03-16 Andrei Zmievski <andrei@gravitonic.com>
* main/php_gtk.c:
Move php_gtk_ext_registry init/destroy into module cycle.
2005-03-15 Andrei Zmievski <andrei@gravitonic.com>
* main/phpg_support.c:
Add phpg_support.c file. Please run ./buildconf again.
* ext/gtk+/gtkstyle.overrides:
-** empty log message ***
* ext/gtk+/gtk.overrides:
Implement gtk::timeout_add_priority().
* generator/generator.php
generator/override.php:
Implement ability to add extra methods in overrides.
* TODO2
php_gtk.m4
main/php_gtk_util.c
main/phpg_gobject.c:
Move some support functions to phpg_support.c.
* ext/gtk+/gtk.overrides
main/php_gtk.h:
Implement gtk::timeout_add();
2005-03-14 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/Makefile.frag
ext/gtk+/gtk.overrides
generator/override.php:
Make it possible to include files from inside overrides.
2005-03-13 Andrei Zmievski <andrei@gravitonic.com>
* generator/arg_types.php
generator/generator.php:
-** empty log message ***
* TODO2:
Update.
* ext/gtk+/php_gtk+.c
ext/gtk+/php_gtk+.h
ext/gtk+/php_gtk+_types.c
main/php_gtk.h
main/phpg_closure.c
main/phpg_gboxed.c
main/phpg_gvalue.c:
Implement support for fine-grained custom marshalling of boxed types,
which will usually happen when invoking callbacks.
2005-03-12 Andrei Zmievski <andrei@gravitonic.com>
* main/php_gtk.h
main/phpg_gobject.c:
Since we lack a garbage collector, we need to fake it. We need to override
del_ref handler on the object, which will make sure that our wrapper is
destroyed only if the referent gobject also has refcount of 1, which we
means
that only we own it. Otherwise, we need to keep our wrapper from being
destroyed and save a pointer to the wrapper in the gobject with
notification
turned on, so that when gobject is destroyed by Gtk+ our wrapper is
destroyed
as well.
2005-03-11 Andrei Zmievski <andrei@gravitonic.com>
* TODO2:
Thoughts on reference counting and wrappers.
2005-03-10 Andrei Zmievski <andrei@gravitonic.com>
* main/phpg_gobject.c:
If a closure is connected to the 'destroy' signal, then it will be
invalidated after the GObject is destroyed, so we cannot call
g_closure_invalidate() on it in phpg_free_gobject_storage(). Instead, we
install another invalidation notifier that will remove the closure from
the watched list.
* main/phpg_gobject.c:
In phpg_get_properties_helper() we need to set the refcount on read
zvals to 1 since the actual read_property handler sets them to 0.
2005-03-05 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/pango.overrides:
Implement PangoFontDescription() constructor and
PangoLayout::get_pixel_extents().
* ext/gtk+/php_gtk+_types.c:
- Use phpg_gboxed_check() with TRUE parameter for a complete check.
- Implement write_dimension and has_dimension handlers for style helper.
* generator/arg_types.php
generator/generator.php:
- Fix check for return value of phpg_gvalue_get_enum/flags().
- Call phpg_gboxed_check() with FALSE parameter for a quick check only.
* main/phpg_closure.c
main/phpg_gboxed.c
main/phpg_gobject.c:
Use our own phpg_return_* macros.
* main/php_gtk.h:
Implement phpg_return_* macros, some of which mirror g_return_* ones,
but we sometimes need to be able to return a value quietly.
* ext/gtk+/gdk.defs:
Add deprecation notices.
* ext/gtk+/gtk.overrides:
PHP_GTK_GET() is no more. Use PHPG_GOBJECT().
* main/php_gtk_util.c:
Use instanceof_function() instead of our own one.
* ext/gtk+/gtk.overrides:
Make GtkStyle properties use the new style helper object.
* ext/gtk+/php_gtk+.h
ext/gtk+/php_gtk+_types.c:
Implement internal style helper object for access to style property
arrays.
2005-03-04 Andrei Zmievski <andrei@gravitonic.com>
* main/php_gtk.c
main/php_gtk.h
main/phpg_gboxed.c
main/phpg_gobject.c
main/phpg_gtype.c:
- Fix "Invalid library: php_gtk2.so" message.
- Pass TSRM parameters where needed.
* ext/gtk+/gdk.overrides
main/phpg_gboxed.c:
Implement EXPOSE event type in GdkEvent properties.
* ext/gtk+/gdk.overrides
ext/gtk+/gtk.overrides:
- Implement GdkFont::extents().
- Fix php_gtk_build_value() calls due to API changes.
* main/php_gtk.h
main/php_gtk_util.c:
Make php_gtk_build_value() behave like other functions: if a NULL zval*
is passed in, create a value, otherwise work on the passed in one.
Cleans up the mess it used to create before.
* generator/templates.php:
Fix boxed type access.
2005-03-01 Andrei Zmievski <andrei@gravitonic.com>
* php_gtk.m4
ext/gtk+/config.m4:
Make the build system produce php_gtk2.so instead of php_gtk.so.
* generator/arg_types.php
generator/templates.php
main/php_gtk.h
main/phpg_exceptions.c
main/phpg_gobject.c:
Implement support for GError type. This allows us to do something like:
try {
$pixbuf = GdkPixbuf::new_from_file($image_file);
} catch (PhpGtkGErrorException $e) {
echo $e->message, $e->code,"\n";
}
* ext/gtk+/gdk.defs:
Mark GdkPixbuf constructors.
* main/php_gtk_util.c:
Fix deprecation message.
* main/phpg_gvalue.c:
Fix type check.
* php_gtk.m4
ext/gtk+/gtk.overrides
ext/gtk+/php_gtk+.h
ext/gtk+/php_gtk+_types.c
generator/arg_types.php
main/php_gtk.h
main/phpg_gvalue.c:
Add a custom arg type for GdkRectangle* so that one can pass either a
full GdkRectangle object or 4-element array instead.
2005-02-27 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/gdk.overrides
generator/generator.php
main/php_gtk.h
main/phpg_gobject.c:
- Add support for accessing properties for a couple of event types.
- Also implement a way to easier get properties of classes that overrode
read_property handler.
* main/phpg_closure.c
main/phpg_gobject.c:
Fix a couple of egregious bugs.
- phpg_closure_marshal(): need to NULL-out the emalloc'ed parameter.
- phpg_free_object_storage(): have to remove the cached handle
information since the current object wrapper is going away.
* ext/gtk+/gdk.overrides
generator/generator.php
generator/override.php
generator/templates.php
main/php_gtk.h
main/phpg_gboxed.c
main/phpg_gobject.c
main/phpg_gvalue.c:
Implement infrastructure for overriding object handlers per-class. This
allows us to do things like custom read/write handler for all of
GdkEvent properties, and making objects behave like arrays when
necessary.
2005-02-26 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/atk.overrides:
Typo
* ext/gtk+/v1.gdk.overrides:
-** empty log message ***
* ext/gtk+/atk.overrides
ext/gtk+/gdk.overrides
ext/gtk+/pango.overrides
generator/arg_types.php
generator/definitions.php
generator/generator.php
generator/templates.php
main/php_gtk.h
main/phpg_gboxed.c
main/phpg_gobject.c
main/phpg_gtype.c:
Too much to describe.
* generator/arg_types.php:
Add fold markers.
* TODO2
generator/arg_types.php
main/php_gtk.h
main/phpg_closure.c
main/phpg_gvalue.c:
- Support GBoxed and GObject types in conversion from zval to the
GValue.
- Rework the underlying object access macros a bit.
* main/phpg_gvalue.c:
Support boxed type in converstion from GValue to zval.
* generator/arg_types.php
generator/templates.php
main/php_gtk.h
main/phpg_gobject.c:
Rename PHPG_GET() to PHPG_GOBJECT() to better reflect its function.
* main/phpg_gobject.c:
Implement the rest of connect_*() methods.
2005-02-24 Andrei Zmievski <andrei@gravitonic.com>
* main/php_gtk_util.c
main/phpg_closure.c
main/phpg_gobject.c:
- Implement GObject::connect().
- I guess the return value of read_property handler really does have to
have refcount = 0 since it's a temporary value.
* main/phpg_gvalue.c:
Make sure that a valid zval is returned even in an error case.
* main/php_gtk.h
main/phpg_closure.c
main/phpg_gobject.c
main/phpg_gvalue.c:
- Make pi_hash persistent.
- Change phpg_gvalue_to_zval() to operate on zval**, similar to
phpg_gobject_new().
- Implement closure marshalling and cleanup.
* main/php_gtk.c:
Move prop info hash handling into module init/shutdown function, since
it needs to be persistent.
2005-02-13 Andrei Zmievski <andrei@gravitonic.com>
* php_gtk.m4
main/php_gtk.h
main/phpg_closure.c
main/phpg_gobject.c:
Initial work on closures.
* main/phpg_gtype.c:
Fix exception throwing to return a value as well.
* main/phpg_gobject.c:
- Fix memory leaks with class constants.
- Fix premature object destruction for GtkWindow class. Argh. You cannot
imagine how long it took to figure out that GtkWindow needs to be
"sunk" after creation. After hours of wading through guts of
GLib's type and object system written entirely in C.. I should have
just looked at PyGTK implementation.
2005-02-06 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/php_gtk+.c:
Big oops. Can't call gtk_exit() here since it simply calls exit() on us
and does not return back to ZE.
* main/php_gtk.c:
Fix no_direct_constructor message.
* ext/gtk+/gtk.overrides:
Fix compilation warning.
* ext/gtk+/gdk.overrides:
Expose GdkDrawable->xid property.
* generator/generator.php
generator/templates.php:
We cannot simply mark classes without constructors as abstract, because
we may need to instantiate them internally. We just need to forbid the
users to use them directly.
2005-02-03 Andrei Zmievski <andrei@gravitonic.com>
* build2/build2.mk:
We do need to run aclocal to rebuild configure in case php_gtk.m4 or
other .m4 files changed.
* ext/gtk+/gtk.overrides:
Implement several properties of GtkTextAttributes.
2005-01-29 Andrei Zmievski <andrei@gravitonic.com>
* ext/gtk+/pango.defs
ext/gtk+/pango.overrides:
Fix Pango compilation for now.
2005-01-28 Andrei Zmievski <andrei@gravitonic.com>
* TODO2
main/phpg_closure.c:
Starting work on closures..
* main/php_gtk.c: