/
CHANGES
1852 lines (1616 loc) · 72.4 KB
/
CHANGES
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
CHANGES IN FLTK 1.1.0
- Fl_Text_Display::buffer() now calls resize() to show
the buffer.
CHANGES IN FLTK 1.1.0rc6
- Documentation updates.
- Fl::handle() didn't apply the modal tests for
FL_RELEASE events, which caused Fl_Tabs to allow users
to change tabs even when a modal window was open.
- Fl_Browser_, Fl_Input_, Fl_Slider now use the box
function to erase the background. This fixes some
long-standing redraw problems.
- More snprintf/strlcpy/strlcat changes where needed.
- Fl::get_font_name() would leak 128 bytes.
- Eliminated most of the "shadowed" variables to avoid
potential problems with using the wrong copy of "foo"
in a class method.
- Moved Fl_BMP_Image, Fl_GIF_Image, and Fl_PNM_Image to
the fltk_images library, so the only image formats
that are supported by the core library are XBM and XPM
files. This reduces the size of the FLTK core library
by about 16k...
- The Fl_Text_Display::resize() method was incorrectly
flagged as protected.
- Fixed some memory/initialization bugs in
Fl_File_Chooser that valgrind caught.
- The PNG library png_read_destroy() is deprecated and
does not free all of the memory allocated by
png_create_read_struct(). This caused a memory leak in
FLTK apps that loaded PNG images.
- Added uncache() method to Fl_Image and friends.
- Added image() methods to Fl_Menu_Item.
- Added default_cursor() method and data to Fl_Window.
- Fl_Group would send FL_ENTER events before FL_LEAVE
events, causing problems with adjacent widgets.
- Fixed filename problems with Fl_File_Chooser -
changing the filename field directly or choosing files
from the root directory could yield interesting
filenames.
- Fl_Input_ could crash if it received an empty paste
event.
- The mouse pointer now changes to the I beam
(FL_CURSOR_INSERT) when moved over an input field or
text widget.
- "make install" didn't automatically (re)compile the
FLUID executable.
- Added an Fl::get_boxtype() method to get the current
drawing function for a specific box type.
- Fl_Output and Fl_Multiline_Output didn't prevent
middle-mouse pastes.
- Fl_JPEG_Image didn't compile out-of-the-box with Cygwin
due to a bug in the Cygwin JPEG library headers.
- Fl_BMP_Image still didn't work with some old BMP files.
- "make distclean" didn't really clean out everything.
- Tweeked the look of the check button with a patch from
Albrecht Schlosser.
CHANGES IN FLTK 1.1.0rc5
- Added "wrap" type bit to Fl_Input_, so you can now
have a multiline text field that wraps text.
- Setting the value() of an output text field no longer
selects the text in it.
- Output text fields now show a caret for the cursor
instead of the vertical bar.
- The newButton and previewButton widgets are now public
members of the Fl_File_Chooser class. This allows
developers to disable or hide the "new directory" and
"preview" buttons as desired.
- Added new visible focus flag bit and methods to
Fl_Widget, so it is now possible to do both global and
per-widget keyboard focus control.
- Removed extra 3 pixel border around input fields.
- No longer quote characters from 0x80 to 0x9f in input
fields.
- Improved speed of Fl_Browser_::display() method with
large lists (patch from Stephen Davies.)
- Fl_Help_View didn't properly handle NULL from the link
callback (the original filename/directory name were
not preserved...)
- Fl_Help_View didn't use the boxtype border values when
clipping the page that was displayed.
- Added first steps to CodeWarrior/OS_X support (see
fltk-1.1.x/CodeWarrior/OS_X.sit)
- Cleaned up the WIN32 export definitions for some of
the widget classes.
- Fixed a filename completion bug when changing
directories.
- Fl_File_Chooser::value() would return directories with
a trailing slash, but would not accept a directory
without a trailing slash.
- When installing shared libraries, FLUID is now linked
against the shared libraries.
- MacOS: missing compile rule for .dylib files.
- Fl_Group::current(), Fl_Group::begin(), and
Fl_Group::end() are no longer inlined so that they are
properly exported in DLLs under WIN32. Similar
changes for all static inline methods in other
classes.
- MacOS: support for Mac system menu (Fl_Sys_Menu_Bar)
- MacOS: wait(0) would not handle all pending events
- Added new makeinclude file for MingW using GCC 3.1.x.
- Fl_Choice::value(n) didn't range check "n".
- The MingW and OS/2 makeinclude files didn't have the
new fltk_images library definitions.
- Fl_Text_Editor didn't scroll the text in the widget
when dragging text.
- Config header file changes for Borland C++.
- FLTK didn't provide a Fl::remove_handler() method.
CHANGES IN FLTK 1.1.0rc4
- Added new filter_value() methods to Fl_File_Chooser to
get and set the current file filters.
- Added support for custom filters to Fl_File_Chooser.
- Added Borland C++ Builder IDE project files from
Alexey Parshin.
- Resource leak fixes under WIN32 from Ori Berger.
- Now register a WIN32 message for thread messages.
- Fl_Window didn't initialize the min and max window
size fields.
- The JPEG and PNG image classes have been moved to the
fltk_images library, a la FLTK 2.0. You can register
all image file formats provided in fltk_images using
the new fl_register_images() function.
- Fl_XBM_Image didn't correctly load XBM files.
- MacOS: Added Greg Ercolano's file descriptor support.
- MacOS: Fixed text width bug.
- A change in fl_fix_focus() broken click-focus in FLWM.
- Cygwin with -mnocygwin didn't like the FL/math.h
header file.
- Fl_Browser_ cleared the click count unnecessarily.
- MacOS: Pixmap draw fix, gl_font implemented
FL_FOCUS fix, window type fix for modal and nonmodal
windows, glut uninitialised 'display' proc fix
- Now support FLTK_1_0_COMPAT symbol to define
compatibility macros for the old FLTK 1.0.x function
names to the 1.1.x names.
- Now translate the window coordinates when a window is
shown, moved, or resized. This should fix the "menus
showing up at the wrong position" bug under XFree86.
- Fixed some more problems with the Fl_BMP_Image file
loader.
- BC++ fixes.
- The pixmap_browser demo didn't check for a NULL image
pointer.
- Fl_File_Icon::find() now uses fl_filename_isdir()
under WIN32 to check for directories.
- Fl_File_Chooser's preview code called refcount()
on the deleted image's object.
- Fixed another problem with the Fl_BMP_Image loader.
- The fl_file_chooser() callback was being called with a
NULL filename.
- Documented that fl_push_clip() is preferred over
fl_clip(), with a corresponding source change.
- Minor changes to the MacOS X event handling code.
- Added syntax highlighting example code to the editor
test program.
- Fl_Text_Display didn't range check style buffer
values.
- Added "dark" color constants (FL_DARK_RED, etc.)
- The MacOS font code was missing definitions for
fl_font_ and fl_size_.
CHANGES IN FLTK 1.1.0rc3
- Documentation updates.
- New file chooser from design contest.
- Did some testing with Valgrind and fixed some memory
problems in Fl_Help_View::Fl_HelpView,
Fl_Menu_::remove(), Fl_Text_Display::draw_vline(), and
resizeform() (convenience dialogs).
- Fixed some redraw() bugs, and now redraw portions of
the parent widget when the label appears outside the
widget.
- The boolean (char) value methods in Fl_Preferences
have been removed since some C++ compilers can't
handle char and int value methods with the same name.
- Added fl_read_image() function.
- Fixed Fl_Valuator::format() so that the correct format
type is used when step == 1.0.
- Fl_Help_View didn't support the TT markup.
- Fl_Shared_Image used a double-pointer to the image
handler functions, which was unnecessary and
unintuitive.
- Fl_PNM_Image didn't load the height of the image
properly.
- Fl_BMP_Image, Fl_JPEG_Image, Fl_PNG_Image, and
Fl_Shared_Image didn't delete image data that was
allocated.
- Enabled the OpenGL and threads demos when compiling
for MingW.
- Fl_File_Input didn't update the directory buttons if a
callback was registered with the widget.
- The file chooser would return the last selected
file(s) when cancel was pressed.
- The file chooser limited the resizing of the chooser
window unnecessarily.
- Fixed WM_PAINT handling under WIN32.
- Minor tweeks to MingW and OS/2 config headers.
- Fl_Value_Input now correctly determines if step()
specifies an integer value.
- Fl_Help_View didn't add links inside PRE elements.
- OS/2 build fixes from Alexander Mai.
- Now use strlcat() instead of strncat() which could
cause buffer overflows.
- Now use of strlcpy() instead of strncpy() to simplify
the code.
- Drag-n-drop under WIN32 now shows a [+] cursor instead
of the link cursor.
- Fixed widget width tooltip and default argument
handling code in FLUID.
- Fixed colors used when drawing antialiased text using
Xft.
- Fl_Preferences::makePath() now uses access() instead
of stat() when checking to see if the destination
directory already exists.
- Fl_BMP_Image now supports older BMP files with the 12
byte header.
- Optimized the redrawing of tabs and radio/check
buttons when the keyboard focus changes.
- More tooltip fixes.
- DND text operations would loop under X11.
CHANGES IN FLTK 1.1.0rc2
- Portability fixes.
- Backported 2.0 tooltip changes.
- Several of the valuators did not support tooltips.
- The last menu item in a menu didn't pick up on font
changes.
- FLUID now properly handles default argument parameters
properly.
- Fixed WM_PAINT handling under WIN32 - didn't validate
the correct region that was drawn.
- Fl_Multiline_Output would insert the enter key.
- Fl_File_Browser didn't clip items to the column width.
- Fl_Window::draw() cleared the window label but didn't
restore it, so windows could lose their titles.
- Eliminated multiple definitions of dirent structure
when compiling under WIN32.
- Adjusted the size of the circle that is drawn inside
radio buttons to scale better for larger labels.
- FLUID was opening the display when it shouldn't have.
- Fl_File_Chooser.cxx defined the file chooser functions
again; they should only be defined in the header file.
- Wide arcs would draw with "teeth".
- The preferences demo included Fl/Fl_Preferences.H
instead of FL/Fl_Preferences.H.
CHANGES IN FLTK 1.1.0rc1
- The fl_file_chooser() and fl_dir_chooser() functions
now support an optional "relative" argument to get
relative pathnames; the default is to return absolute
pathnames.
- The backspace and delete keys now work as expected in
the file chooser when doing filename completion.
- FLUID now supports running shell commands.
- New Fl_File_Input widget that shows directory
separators with filename in input field.
- The Fl_File_Chooser dialog now shows the absolute path
in the filename field using the Fl_File_Input widget.
- FLUID now keeps track of grid, tooltip, and other
GUI options, along with the last 10 files opened.
- Tooltip windows would show up in the task bar under
WIN32.
- Now append trailing slash to directory names in names
in WIN32 version of scandir(). This takes care of a
file chooser performance problem with large
directories.
- Added Fl_Preferences class from Matthias Melcher,
including binary data support.
- FLUID now recognizes the "using" keyword in
declarations.
- fl_file_chooser() didn't highlight the requested file
the second time the file chooser dialog was shown.
- Fixed rendering of Fl_Light_Button with the plastic
scheme.
- Fixed a bug in the MacOS font enumeration code.
- Now show a "locked" icon next to static/private
elements in FLUID, and "unlocked" icon next to
global/public elements.
- Implemented Fl_Menu_Item image labels using older
1.0.x labeltype method.
- Updated the PNG library check to support both png.h
and libpng/png.h.
- Fixed a recursion bug in tooltips that was causing
random crashes.
- fl_file_chooser() could cause a segfault when passed a
NULL filename parameter in some situations.
- Added a "-g" option to fltk-config to support quick
compiling with debugging enabled.
- Fixed redraw problem with Fl_Input and anti-aliased
text.
- Added threading support for MacOS X and Darwin.
- The filesystem list in the file chooser now works under
MacOS X and Darwin.
- The fl_msg structure now contains all data passed to
the WndProc function under WIN32.
- Fixed some window focus/positioning problems under
MacOS X.
- Added fl_create_alphamask() function to create an alpha
mask from 8-bit data; currently this always generates a
1-bit screen-door bitmask, however in the future it will
allow us to generate N-bit masks as needed by various
OS's.
- Fl_File_Browser::load() didn't properly show drives
when compiled in Cygwin mode.
- Now pass correctly pass keyboard and mouse events to
widget under tooltip as needed...
- Added new Fl::dnd_text_ops() methods to enable/disable
drag-and-drop text operations.
- Fl_Input now supports clicking inside a selection to
set the new text position when drag-and-drop is
enabled.
- Added support of X resources for scheme, dnd_text_ops,
tooltips, and visible_focus...
- Fixed some case problems in includes for the MacOS X
code.
- Fl_Widget::handle() returned 1 for FL_ENTER and
FL_LEAVE events, which caused some compatibility
problems with 1.0 code.
- Fl_Box::handle() now returns 1 for FL_ENTER and
FL_LEAVE events so that tooltips will work with Fl_Box
widgets.
- Some source files still defined strcasecmp and
strncasecmp under WIN32.
- Some source files still used the "false" and "true"
C++ keywords, even though several of our "supported"
C++ compilers don't support them. Using 0 and 1 until
FLTK 2.0 (which uses the bool type instead of int for
any boolean values...)
- Minor Fl_Color revamping, so that color constants map
to the color cube and FL_FOREGROUND_COLOR,
FL_BACKGROUND_COLOR, FL_BACKGROUND2_COLOR,
FL_INACTIVE_COLOR, and FL_SELECTION_COLOR map to the
user-defined colors.
CHANGES IN FLTK 1.1.0b13
- Fixed a bug in the Xft support in Fl_Window::hide()
(the config header wasn't included, so the Xft code
wasn't getting called)
- Xdbe support must now be enabled explicitly using
--enable-xdbe due to inconsistent bugs in XFree86 and
others.
- Windows resized by a program would revert to their
original size when moved under WIN32.
- Cygwin can only compile the new WIN32 drag-n-drop code
using GCC 3.x.
- Tooltips now appear for inactive and output widgets.
- Tooltips no longer steal keyboard events other than
ESCape.
- Tooltips are no longer delayed when moving between
adjacent widgets.
- fl_beep(FL_BEEP_DEFAULT) now uses the PC speaker under
Windows (0xFFFFFFFF) rather than an event sound.
- The configure script didn't include the -mwindows or
-DWIN32 compiler options in the output of fltk-config
when using the Cygwin tools.
- Fl_Output didn't take input focus when needed, so it
was unable to support CTRL-C for copying text in the
field and did not unhighlight selections when the
widget lost focus.
- The fl_filename_name() function didn't handle a NULL
input string.
- The input field used by the fl_input() and
fl_password() functions was resized too small in
1.1.0b12.
- Added casts in fl_set_fonts_win32.cxx for VC++ 5.0.
- Fl_File_Icon::find() did not check the basename of a
filename for a match; this caused matches for a
specific filename (e.g. "fluid") to fail.
- The Fl_Shared_Image class now supports additional
image handling functions - this allows you to support
additional image file formats transparently.
CHANGES IN FLTK 1.1.0b12
- Documentation updates.
- Fl_Choice didn't clip the current value properly - it
wasn't accounting for the box border width.
- The forms compatibility functions are now placed in a
"fltk_forms" library to match FLTK 2.0.
- Renamed down() and frame() to fl_down() and
fl_frame(), filename_xyz() to fl_filename_xyz(), and
all of the define_FL_FOO() functions for the custom
boxtypes to fl_define_FL_FOO() to avoid namespace
clashes.
- Stereo OpenGL support (patch from Stuart Levy)
- All of the convenience functions defined in fl_ask.H
now resize the widgets and dialog window as needed for
the labels and prompt.
- Backported FLTK 2.0 dual cut/paste buffer code.
- Added support for Xft library to provide anti-aliased
text on X11.
- Fl_Help_View didn't keep track of the background color
of cells properly.
- Fl_Browser::item_width() didn't compute the width of
the item properly when column_widths() was set.
- Fl_Button didn't check to see if the widget could
accept focus before taking input focus.
- Fl_Help_View didn't preserve target names (e.g.
"filename.html#target") when following links.
- Drag-and-drop support for MacOS.
- Updated MacOS issues documentation.
CHANGES IN FLTK 1.1.0b11
- Now conditionally use the WIN32 TrackMouseEvent API
(default is no...)
- Fixed a table rendering bug in the Fl_Help_View
widget.
- The fltk-config script now recognizes all common C++
extensions.
- The menu code was using overlay visuals when the
scheme was set to "plastic".
- Fixed some drawing problems with Fl_Light_Button and
its subclasses.
- Fixed a minor event propagation bug in Fl_Group that
caused mousewheel events to be passed to scrollbars
that were not visible.
- The fl_file_chooser() function did not preserve the
old file/directory like the old file chooser did.
- The prototypes for fl_input() and fl_password() did
not default the "default value" to NULL.
- Fl_Tabs now draws tabs using the selection_color() of
the child groups; this allows the tabs to be colored
separately from the body. Selected tabs are a mix of
the Fl_Tabs selection_color() and the child group's
selection_color().
- Fl_Tabs didn't include images in the measurement of
the tabs if no label text was defined.
- The WIN32 code didn't return 0 from the window
procedure after handling WM_PAINT messages.
- fl_draw() would incorrectly test the clipping of
labels the lay outside the bounding box.
- filename_relative() didn't always return the correct
relative path.
- Updated the test makefile to work with more versions
of "make".
- Added new "--with-optim" configure option to set the
optimization flags to use when compiling FLTK.
- The fltk-config script no longer reports the
optimization flags that were used to compile FLTK.
- Initial port of FLTK 2.0 drag-and-drop support.
CHANGES IN FLTK 1.1.0b10
- Fixed the new WIN32 TrackMouseEvent code.
- Fixed the VC++ project files to link against
comctl32.lib.
CHANGES IN FLTK 1.1.0b9
- Better FL_LEAVE event handling for WIN32.
- The alpha mask was bit-reversed.
- Fl::scheme() applied the scheme tile image to overlay
and menu windows, which caused problems when the
overlay planes were in use.
- Fixed Fl::event_button() value when hiding tooltip on
some systems.
- Added Fl_BMP_Image class to support loading of Windows
bitmap (BMP) files.
- The shiny demo didn't work on some systems (no
single-buffered OpenGL visual), and the new box types
were reset when show(argc, argv) was called.
- Fl::scheme() didn't update windows that were not
shown.
- The fractals demo would get far ahead of the UI with
some Linux OpenGL drivers. Now use glFinish() instead
of glFlush() so we are at most 1 frame ahead.
- The fractals demo Y axis controls were backwards for
the "flying" mode.
- MacOS: cleaned up src/Fl_mac.cxx
- MacOS: fixed Fl::wait(0.0), fixed Cmd-Q handling
- Update CygWin support for Fl::add_fd().
- Update the plastic scheme to not override the default
colors - move the color code to the MacOS-specific
code. Also updates the tile image colormap to match
the current background color.
- Add fl_parse_color() to X11 as well, removing a bunch
of conditional code and providing a common interface
for looking up color values.
- Fixed the make problems in the test directory - some
make programs had trouble handling the recursive
dependencies on the FLUID files...
- Now use rint() to round floating-point coordinates.
- Demo cleanup - made sure they all worked with schemes.
- Fl_Tabs no longer clears the unused area of the tab
bar.
- Added show(argc, argv) method to Fl_Help_Dialog.
- MacOS: implemented cut/copy/paste.
- MacOS: improved keyboard handling, fixed keyboard
focus handling, fixed get_key, modified 'keyboard'
demo to show second mouse wheel and additional keys
'help' and FL_NK+'='
CHANGES IN FLTK 1.1.0b8
- OS/2 build fixes.
- fl_draw() didn't ignore symbol escapes properly for
the browsers...
- New Fl::scheme() methods from FLTK 2.0; currently only
the standard ("") and plastic ("plastic") methods are
supported. Schemes can be set on the command-line
("-scheme plastic") or using the FLTK_SCHEME
environment variable.
- MacOS: fixed iBook keyboard handling, moved
remaining message handling to Carbon, added mouse
capture support, added timer support, added overlay
support, fixed double-buffering side effects.
- The configure script wasn't using the -fpermissive or
-fno-exceptions options with GCC.
- Fl_JPEG_Image and friends didn't set the depth if the
image file couldn't be loaded; since Fl_RGB_Image
didn't check for this, it could fail when displaying
or copying these images.
- filename_absolute() did not always free its temporary
buffer.
- filename_relative() did not do a case-insensitive
comparison under MacOS, OS/2, and Windows.
- filename_isdir() didn't properly handle "D:L" under
WIN32.
- Fl_Shared_Image::get() did not check to see if the
image could not be loaded.
- Fl_Help_View didn't clear the line array in the
Fl_Help_Block structure; this causes erratic
formatting for some pages.
- The font and size members of Fl_Help_Block were never
used.
- The threading functions (Fl::lock() and friends) were
not exported under WIN32.
- The Fl_Text_Display destructor deleted the scrollbars
twice...
- Fl_Help_View didn't reset the horizontal scroll
position when showing a new page.
- Fl_Pack now allows any child widget to be the
resizable() widget, not just the last one.
- MacOS: opaque window resizing, all events except
Mac menus are now handled using Carbon, window
activation fixed, GL_SWAP_TYPE default changed to
make gl_overlay work.
- Fl_Help_View::resize() didn't resize the horizontal
scrollbar.
- MacOS: list all fonts, fixed clipping and mouse
pointer bugs.
- The Fl_File_Chooser widget now uses hotspot() to
position the dialog under the mouse pointer prior to
showing it.
- Added a configure check for *BSD - use -pthread option
instead of -lpthread.
- Fl_Text_Display could get in an infinite loop when
redrawing a portion of the screen. Added a check for
the return value from fl_clip_box() so that the
correct bounding box is used.
- Removed the Fl_Mutex and Fl_Signal_Mutex classes from
the threads example, since they weren't being used
and apparently are not very portable.
- Fl_Help_View now ignores links when the link callback
returns NULL, and displays a sensible error message
when an unhandled URI scheme is used (e.g. http:,
ftp:)
- Fl_File_Icon::load_system_icons() no longer complains
about missing icon files, just files that exist but
can't be loaded.
- FLUID didn't list the plastic box and frame types.
- Now hide the tooltip window whenever a window is
hidden. Otherwise a tooltip window could keep an
application running.
- Updated FLUID to only append a trailing semicolon to
code lines in a callback (so "#include" and friends
will work...)
- The Fl_Color_Chooser widget now supports keyboard
navigation.
- Fixed button and valuator widgets to call Fl::focus()
instead of take_focus().
- Tweeked the radio button drawing code for better
circles with different boxtypes.
- The Fl_File_Chooser widget did not provide a shown()
method, and fl_file_chooser() and fl_dir_chooser() did
not wait on shown(); this would cause them to return
prematurely if you switched desktops/workspaces.
- Cosmetic changes to plastic boxtypes. Now look much
better for large areas and the buttons now have a much
greater "3D" feeling to them.
- Added new Fl::draw_box_active() method so that
boxtypes can find out if the widget they are drawing
for is active or not.
- Fl_Button and its subclasses did not redraw the parent
when the boxtype was FL_NO_BOX and they lost keyboard
focus (the parent redraw clears the focus box.)
- Fixed the example program makefile - wasn't building
the mandelbrot and shiny demos right.
- Fl::set_font(Fl_Font, Fl_Font) was not implemented.
- Fixed the documentation Makefile commands; was not
using the fltk.book file for some reason...
CHANGES IN FLTK 1.1.0b7
- More documentation updates...
- Mac OS X support works 95%
- The Fl_Window::hotspot() off-screen avoidance code was
commented out.
- Mac OS X uses mostly Carbon event handling to support
Mousewheel, three buttons, all modifier keys, etc.
- Updated paragraph 4 of the FLTK license exceptions;
there was some question about the requirement to show
that a program uses FLTK, which is required by section
6 of the LGPL. The new exemption specifies that
inclusion of the FLTK license is not required, just a
statement that the program uses FLTK.
- Fl_Button::handle() was calling take_focus() for both
FL_PUSH and FL_DRAG.
- File and memory fixes for Fl_GIF_Image, Fl_PNG_Image,
Fl_PNM_Image, Fl_Shared_Image, Fl_Tiled_Image, and
Fl_XBM_Image.
- filename_match() didn't handle backslashes properly
under WIN32, and didn't use a case-insensitive
comparison under MacOS X.
- The Fl class was missing access methods for the
FL_MOUSEWHEEL event values - Fl::event_dx() and
Fl::event_dy().
- The default help string didn't include the -nokbd
option.
- "make uninstall" didn't uninstall the static OpenGL
widget library.
- Mac cursor shapes added...
- Fl_Text_Display would lockup when all text was
deleted; for example, when running the editor
demo, you couldn't load a second file.
- Added Fl::lock() and friends from FLTK 2.0 to
support multi-threaded applications; see the
"threads" demo for an example of this.
- Fl_Check_Button and Fl_Round_Button now use the
FL_NO_BOX box type to show the background of the
parent widget.
- Tweeked the plastic boxtype code to draw with the
right shading for narrow, but horizontal buttons.
- Fl_Progress now shades the bounding box instead of
drawing a polygon inside it.
- Fl::warning() under WIN32 defaults to no action. This
avoids warning dialogs when an image file cannot be
loaded.
- Some Win32 drivers would draw into wrong buffers
after OpenGL mode change
- The file chooser would cause a segfault if you
clicked in an empty area of the file list.
- Fl_File_Icon::labeltype() would cause a segfault
if the value pointer was NULL.
- Fl_File_Icon::load_image() could cause segfaults
(NULL data and incrementing the data pointer too
often.)
- Fl_File_Icon::load_image() now handles 2-byte
per color XPM files.
- Some Win32 drivers would draw into wrong buffers
after OpenGL mode change.
- Message handling and Resources for MacOS port.
- Fl_Help_View could get in an infinitely loop when
determining the maximum width of the page; this
was due to a bug in the get_length() method with
percentages (100% width would cause the bug.)
- Don't need -lgdi32 for CygWin, since -mwindows
does this for us.
- The WIN32 event handler did not properly handle
WM_SYNCPAINT messages.
- Fl_Tabs now uses the boxtype exclusively to draw
both the tabs and surrounding box, so alternate
box types actually work and the look is a little
nicer.
- Fixed the drawing of large areas with the new
plastic boxtypes.
- Updated the Visual C++ demo projects to use fluid
to generate the GUI files as needed.
- The demo program didn't load the right menu file
when compiled for debugging under WIN32.
- Added plastic box types to forms demo.
- Added mousewheel to keyboard demo.
- The Fl_Text_Editor widget caused an infinite loop
when it received keyboard focus.
- filename_isdir() didn't properly handle drive letters
properly; WIN32 needs a trailing slash for drive
letters by themselves, but cannot have a trailing
slash for directory names, go figure...
- The Fl_Text_Buffer and Fl_Text_Display classes did not
initialize all of their members.
- fl_normal_label() had a totally redundant set of
if/else tests, which the new code handles all from
fl_draw().
- The Fl_File_Chooser dialog contained two hotspots.
- The fl_draw_pixmap() function didn't free the 2-byte
color lookup table properly (delete instead of
delete[]).
- fl_draw() reset the text color under WIN32, causing
bitmaps to draw incorrectly.
- Fl::get_font_sizes() is now implemented under WIN32.
- Fl_Text_Display now uses the same default colors for
selection and text as Fl_Input_ and friends.
- Changed the default line scrolling in Fl_Text_Display
to 3 lines for the mouse wheel and scrollbar arrows.
CHANGES IN FLTK 1.1.0b6
- Documentation updates...
- The configure script now works within the CygWin
environment.
- Tooltips are now enabled by default, but are not
re-enabled when calling the Fl_Widget::tooltip()
method.
- Added new Fl::version() method to get the current
FLTK library version (for shared libraries/DLLs)
- Added new Fl::event() method to get the current
event that is being processed.
- Added new fl_beep() function to do audible
notifications of various types.
- Added new Fl_GIF_Image, Fl_JPEG_Image, Fl_PNG_Image,
Fl_PNM_Image, Fl_XBM_Image, and Fl_XPM_Image classes.
- Added new Fl_Shared_Image class, a la FLTK 2.0.
- Added new Fl_Tiled_Image class for tiled backgrounds.
- Added new copy(), desaturate(), inactive(), and
color_average() methods to the Fl_Image classes.
- Added a horizontal scrollbar to the Fl_Help_View
widget.
- Added new FL_PLASTIC_{UP/DOWN}_{BOX/FRAME} boxtypes
for a more "modern" look (sort of a cross between KDE
2.2 and Aqua.)
- Fl_Float_Input and Fl_Int_Input no longer accept
pasted text that is not a floating point or integer
value. Pasted numbers now replace text in these
widgets.
- Implemented the Fl_File_Icon::load_png() method.
- The Fl_File_Icon::load_system_icons() method now
supports KDE 2.x icons.
- Fixed PNG support in Fl_Help_View.
- Removed the "Microsoft" mode button from the menubar
demo.
- The browser demo now makes sure that the input field
contains a number.
- The Fl_Browser::make_visible() method now range checks
the input.
- Updated the fl_draw() and fl_measure() methods to
accept an optional draw_symbols argument, which
controls whether symbols are drawn in the text.
- Added new Fl::visible_focus() methods to control
whether the focus box is drawn.
- The focus box is now drawn using the contrast color.
- Fl_Repeat_Button didn't accept keyboard focus.
- Added new Fl::visible_focus() method and standard
"-kbd" and "-nokbd" options in Fl::args() processing
to control whether keyboard focus is shown and handled
by non-text widgets.
- The wrong tooltip could be shown if the user moved the
mouse over adjacent widgets with tooltips.
- The drop-down button on Fl_Choice widgets was not
limited in width.
- Tooltips could appear off the screen.
- Mouse wheel events are now sent to the focus widget
first, then to any other interested widget.
- The Fl_RGB_Image class now supports images with an
alpha channel. Images are currently drawn using
"screen door" transparency... See the "image" demo
for an example.
- Added new fl_create_bitmask() and fl_delete_bitmask()
functions that create bitmap objects for masking and
bitmap drawing.
- Was sending FL_RELEASE events for buttons 4 and 5
under X11, which are only for FL_MOUSEWHEEL.
- Fl_Help_View now supports the EM and STRONG elements.
- Didn't do callbacks when changing tabs via keyboard.
- FLUID didn't write tooltip strings to the message
catalog file.
- Fl_File_Icon now uses Fl_Shared_Image to load icon
images; the load_png() and load_xpm() methods have
been replaced by a single load_image() method.
- Fl_File_Icon::load_system_icons() now does a better
job of finding KDE icons.
- Now use Fl::warning() and Fl::error() in place of
printf's in some of the newer widgets.
- The default behavior of Fl::error() is now to display
an error but not to exit; Fl::fatal() still exits.
- FLUID now uses the Fl_Shared_Image class, so FLUID-
generated GUIs can embed any of the supported image
file formats.
- New filename_relative() function to convert an
absolute filename to a relative one.
- Updated the filename_absolute(), filename_expand(),
and filename_setext() functions to take the
destination string size, with inline functions for the
old FL_PATH_MAX size.
- fl_file_chooser() and fl_dir_chooser() now return a
relative path.
- Fl_Help_View now supports all ampersand escapes.
CHANGES IN FLTK 1.1.0b5
**** NOTE: DUE TO CHANGES IN THE WIDGET CLASSES, ****
**** YOU MUST RECOMPILE ALL SOURCE FILES ****
**** THAT USE FLTK!!! ****
- All FLTK color values are now 32-bits and support
both the legacy 8-bit color values as well as 24-bit
RGB values (0xRRGGBB00 for 24-bit RGB, 0x000000II
for indexed color).
- Fl::set_boxtype() and fl_internal_boxtype() now keep
track of when a boxtype is changed; this allows you to
override the "special" boxtypes without references to
those boxtypes causing them to be reset.
- Fl_Help_Func now takes a Fl_Widget pointer as well as
a pathname.
- Added code to support FL_KEYUP events.
- Focus did not return to the Fl_Text_Display and Editor
widgets when scrolling and then clicking inside the
editor window.
- Now set the line size of the vertical scrollbar in the
text editor to 1.
- The symbols demo didn't show the strings needed to
show the corresponding symbol (the label string was
not quoted...)
- FLTK should now compile with Cygwin cleanly.
- Shortcut changes were not being saved by FLUID.
- FLUID didn't write the deimage() static data.
CHANGES IN FLTK 1.1.0b4
**** NOTE: DUE TO CHANGES IN THE FL_WIDGET CLASS, ****
**** YOU MUST RECOMPILE ALL SOURCE FILES ****
**** THAT USE FLTK!!! ****
- Updated the flags_ member of Fl_Widget to be an
integer instead of uchar, to support the new
FL_OVERRIDE flag for Fl_Window.
- The parent() method of Fl_Widget now uses pointers to
Fl_Group instead of Fl_Widget.
- Fl_Window now provides the FLTK 2.0 "override()" and
"set_override()" methods for windows.
- Added a configure check (and warning) for GCC 3.0.x.
- Updated the configure script to check for the
png_set_tRNS_to_alpha() function.
- Updated the config.h files for all platforms for the
image and FLTK documentation defines.
- Updated the makeinclude files for all platforms to
match the current makeinclude.in file.
- FLUID would crash if you cleared an image for a
widget.
- Fl_Help_View::add_image() did not initialize the image
member of the base (unscaled) image.
- Fl_Help_View didn't support A elements with both a
NAME and HREF attribute - the HREF was ignored.
- Miscellaneous compile warning fixes.
- Tooltips were being reset by Fl::belowmouse(), which
caused problems with the FLUID main window (flashing
tooltip windows and serious problems with KDE 2.2)
- The editor demo had the save and discard button
actions reversed.
- The Fl_Help_View widget now uses
png_destroy_read_struct() if the older
png_read_destroy() function is not available.
- The WIN32 DLL library now includes the OpenGL widgets.
This is a simpler solution for the export/import
dillemma under WIN32, as OpenGL and non-OpenGL symbols
need to be exported at different times with the
separate library scheme. Since OpenGL is standard
under Windows, this is less of a problem than under
UNIX...
CHANGES IN FLTK 1.1.0b3
- The top-level makefile did not include the makeinclude
file, causing the fltk-config installation commands to
fail.
- The fl_file_chooser.cxx source file conflicted with
Fl_File_Chooser.cxx under Windows. Similarly, the
fl_file_chooser.H header file conflicts with the
Fl_File_Chooser.H header file.
- Now save and restore the GDI pen object when
responding to WIN32 paint messages.
- Documentation updates from A. Suatoni.
CHANGES IN FLTK 1.1.0b2
- New fltk-config script.
- Fixed image/text label handling; in b1 the label
needed a non-blank text string to display the image.
This bug also caused all sorts of crashes and display
problems.
- Added new filetype() method to Fl_FileBrowser to allow
for file or directory browsing.
- Fixed the drawing of the focus box around
Fl_Return_Button.
- Fixed menu item measurement bug (wasn't initializing
image pointers to 0...)
- Radio and checkbox menu items now draw with the new
style (round radio buttons with dots and square check
buttons with check marks.)
- Improved the appearance of Fl_Check_Button.
- Improved the Fl_HelpView table formatting code; now
dynamically sizes the table columns, and supports
COLSPAN.
- The FLUID keyboard shortcuts now work as expected
(CTRL-C copies, SHIFT-CTRL-C writes code, etc.)
- The FLTK_DOCDIR environment variable can now be
used to tell FLUID where to find the on-line
documentation files.
- FLUID now supports image labels in addition to text
labels + text over image alignment.
- FLUID now supports tooltips.
- The widget panel in FLUID is now tabbed, a la FLTK
2.0.
- The FLUID pixmap destructor tried to free 1 too many
lines of image data.
- FLUID now provides on-line help.
- Changed Fl_FileXYZ to Fl_File_XYZ.
- Changed Fl_HelpXYZ to Fl_Help_XYZ.
- Tooltip fixes for Fl_Browser_, Fl_Choice, and Fl_Input_.
- Added tooltips to FLUID, help dialog, and file chooser.
- Now load system icons in FLUID.
CHANGES IN FLTK 1.1.0b1
- Added new image() and deimage() methods to support
image + text labels more easily.
- Added new alignment bit FL_ALIGN_TEXT_OVER_IMAGE.
- Added tooltip support using Jacques Tremblay's tooltip
patch.
- Added keyboard navigation to all widgets.
- Added support for mouse wheels using the new
FL_MOUSEWHEEL event type. Get the mouse wheel
movement values from Fl::e_dx (horizontal) and
Fl::e_dy (vertical).
- Added the Fl_Check_Browser, Fl_FileBrowser,
Fl_FileChooser, Fl_FileIcon, Fl_HelpDialog,
Fl_HelpView, Fl_Progress, and Fl_Wizard widgets from
the bazaar.
- Added 2.0 Fl_Text_Display and Fl_Text_Editor widgets
based on NEdit.