forked from gansm/finalcut
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
2078 lines (1562 loc) · 73.5 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
2022-03-01 Markus Gans <[email protected]>
* A virtual window can now be placed above the virtual terminal
2022-02-14 Markus Gans <[email protected]>
* FVTerm::copyArea copies the data of the source area to the position
of the destination area
* FTermArea got methods to set the print position and to print data
* Added examples/xpmview to view X PixMap (XPM) images in a terminal
2022-02-02 Markus Gans <[email protected]>
* Depending on the number of dialog windows, FDialogListMenu
is now automatically enabled and disabled
* FFileDialog now shows the file filter in the title bar
2022-01-29 Markus Gans <[email protected]>
* Minor bug fix for resizing dialogs
* FTextView::FTextHighlight has received new constructors without
length information. That allows to highlight text up to the end
of the line
2022-01-21 Markus Gans <[email protected]>
* The trailing whitespaces in a FTextView line are now printed
in the line buffer. This allows you to make text highlighting
to the end of the line
2022-01-16 Markus Gans <[email protected]>
* Added examples/highlight-text to demonstrate text highlighting
in FTextView
2022-01-15 Markus Gans <[email protected]>
* Add text highlighting for FTextView.
Thanks to Michael Lehn for the idea
2022-01-12 Markus Gans <[email protected]>
* Dropdown menus are closed again on click outside the widget
if there is no widget at that position
(Broken since Nov 1, 2020)
2022-01-11 Markus Gans <[email protected]>
* Generalize the passing of the resize event to its parent dialog
2022-01-09 Markus Gans <[email protected]>
* Added a ring buffer to buffer unprocessed keyboard and mouse input
* Added a unit test for the FVTerm class
* The current mouse event is now cached in a shared_ptr
2022-01-05 Markus Gans <[email protected]>
* Sharing keyboard buffer length in FKeyboard and FMouse
2022-01-02 Markus Gans <[email protected]>
* Speed up UTF-8 input parsing
2022-01-02 Markus Gans <[email protected]>
* FTermArea now checks if there is a given terminal position
in its area
2021-12-30 Markus Gans <[email protected]>
* Resetting the terminal state on resizing
2021-12-27 Markus Gans <[email protected]>
* The number of cycles has been reduced to save CPU time
2021-12-18 Markus Gans <[email protected]>
* Move the border label methods from FButtonGroup to FScrollView
2021-12-13 Markus Gans <[email protected]>
* Faster string comparison between FString, char* std::string,
wchar_t and std:wstring
2021-12-11 Markus Gans <[email protected]>
* Correct mouse event after moving a window
2021-11-16 Markus Gans <[email protected]>
* A new example demonstrates parallax scrolling with multi-layered
stars
2021-11-11 Markus Gans <[email protected]>
* You can now use the constructor of the FVTerm class to specify
an alternative terminal output class that must be derived from
FOutput
2021-11-06 Markus Gans <[email protected]>
* Using the STL algorithms for the input fifo_buf
2021-11-01 Markus Gans <[email protected]>
* Switched to the language standard C++14
2021-10-31 Markus Gans <[email protected]>
* Version 0.8.0
2021-10-28 Markus Gans <[email protected]>
* The keyboard and timer examples now have flicker-free scrolling
2021-10-24 Markus Gans <[email protected]>
* Faster search for key strings through sorted arrays
2021-10-23 Markus Gans <[email protected]>
* Virtual windows now know their own window level
* String filter for FListBoxItem
2021-10-22 Markus Gans <[email protected]>
* Change FObjectList from std::list to std::vector
2021-10-21 Markus Gans <[email protected]>
* The tab stop printing was corrected
2021-10-20 Markus Gans <[email protected]>
* Implementation of the stringPrint() method in FTermcap
2021-10-18 Markus Gans <[email protected]>
* Speed up FTermcap::paddingPrint() by assigning the putchar function
only once
2021-10-12 Markus Gans <[email protected]>
* Speed up access to mouse objects in FMouseControl
* The predefined escape sequences for keyboard keys are now
functional again
* Now, FINAL CUT also runs under GNU Hurd
2021-10-08 Markus Gans <[email protected]>
* The visibility of the FDialog title bar buttons can now be disabled
2021-10-04 Markus Gans <[email protected]>
* Preventing the focus of a container widget
2021-10-01 Markus Gans <[email protected]>
* The output buffer is now flushed before the terminal is scrolled
2021-09-29 Markus Gans <[email protected]>
* Faster FUnicode comparisons
* Less string comparison in FKeyboard
2021-09-28 Markus Gans <[email protected]>
* Optimization of attribute comparisons
* Reset the rdbuf of clog after deleting the logger object to prevent
an invalid pointer in the rdbuf
* FTermcap::getNumber now returns -1 if there is no value in the termcap
database
2021-09-25 Markus Gans <[email protected]>
* New FString auxiliary function FStringCaseCompare as strcasecmp
replacement
* Move attribute handling from FVTerm to FVTermAttribute
2021-09-22 Markus Gans <[email protected]>
* The request for a terminal size change now occurs only once per
event loop cycle
2021-09-22 Markus Gans <[email protected]>
* The individual FINAL CUT components have been moved to directories
to provide a better code overview
* Renaming the class FTermBuffer to FVTermBuffer, because only
virtual terminal data is buffered here
2021-09-17 Markus Gans <[email protected]>
* Output optimization: Wide strings are now converted to
UTF-8 strings before they are inserted into the output buffer
* Key maps now store the length of the string to speed up
key string parsing
2021-09-15 Markus Gans <[email protected]>
* setExitMessage is now a function without object dependencies,
so it can be called from anywhere
* New internal function unicode_to_utf8 which allows to convert
a wchar_t to a utf-8 string
2021-09-14 Markus Gans <[email protected]>
* More local static variables are used to prevent repeated
value assignments
2021-09-12 Markus Gans <[email protected]>
* The detected terminal type is now stored in FTermData
2021-09-05 Markus Gans <[email protected]>
* The methods for the physical terminal output of class FVTerm
were extracted and moved to the new class FVTermOutput.
The class FVTermOutput is the implementation of the abstract
class FOutput. This abstraction layer can be the basis for
an alternative implementation.
2021-08-01 Markus Gans <[email protected]>
* Fixed mutex deadlock in FObject
2021-07-25 Markus Gans <[email protected]>
* Function setMinimizable() to minimize FDialog windows added
2021-07-18 Markus Gans <[email protected]>
* Improved the GNU autoconf-archive check
2021-06-26 Markus Gans <[email protected]>
* Global non-constant variables are now encapsulated in classes
2021-06-19 Markus Gans <[email protected]>
* Moving the creator methods from FTerm to its own class
2021-06-16 Markus Gans <[email protected]>
* Converted the internal timer from timeval
to std::chrono::time_point<system_clock>
2021-06-06 Markus Gans <[email protected]>
* Bug fixing in FString and FTermDetection
* FTermDetection now has clean code by using FString instead of char*
* Replace std::strlen with stringLength
2021-06-03 Markus Gans <[email protected]>
* Some FString optimizations
2021-05-30 Markus Gans <[email protected]>
* FString internally changed from wchar_t* to std::wstring
2021-05-24 Markus Gans <[email protected]>
* Using std::string for the attribute buffer
2021-05-22 Markus Gans <[email protected]>
* Convert FOptiMove from char[] to std::string
2021-05-13 Markus Gans <[email protected]>
* Prevent duplicate widget in the close widget list
2021-05-07 Markus Gans <[email protected]>
* Some pointers were replaced by references
2021-05-04 Markus Gans <[email protected]>
* Prevent flickering when resizing terminals or redrawing
the screen via ctrl-l
2021-05-02 Markus Gans <[email protected]>
* Bugfix for sending multiple SIGWINCH signals from
gnome-terminal under Wayland
2021-05-01 Markus Gans <[email protected]>
* Replace some std::bind with lambda functions
2021-04-30 Markus Gans <[email protected]>
* Fixes Linux console bug from February 20, 2021
2021-04-27 Markus Gans <[email protected]>
* Code optimization at widget focus
2021-04-24 Markus Gans <[email protected]>
* Fixed mutex deadlock in FLogger
2021-04-21 Markus Gans <[email protected]>
* Fixes the detection of the terminal size after a SIGWINCH signal
2021-04-18 Markus Gans <[email protected]>
* Decoupling the FWidget and FWindow classes from FVTerm
* Avoid redrawing widgets when show() is called multiple times
* Readjustment of the root widget when the terminal size is changed
2021-04-11 Markus Gans <[email protected]>
* Better support for kitty terminals
2021-03-31 Markus Gans <[email protected]>
* argv is now stored internally as a std::vector container
2021-03-30 Markus Gans <[email protected]>
* Stops terminal refresh during dialog resizing until all
child widgets have been redrawn
2021-03-28 Markus Gans <[email protected]>
* Widget now have the virtual method initLayout() to set
the widget layouts automatically before the first drawing
on the terminal is done. Also texts in full-width characters,
whose character width is determined automatically, should be
calculated here.
2021-03-15 Markus Gans <[email protected]>
* Dynamic adjustment of the terminal refresh rate between
5 and 60 Hz
2021-03-09 Markus Gans <[email protected]>
* Implementation of an own padding print method for sending
control codes to the terminal
2021-02-28 Markus Gans <[email protected]>
* Removing the termcap library from the header files so
that FINAL CUT programs are not affected by the preprocessor
#define macros.
Many thanks to Zhenyu Zhang for this optimization suggestion
2021-02-24 Markus Gans <[email protected]>
* Fixed the incorrect display on terminals without
UTF-8 character encoding
2021-02-20 Markus Gans <[email protected]>
* Optimize terminal output buffer queue with differencing
for strings, and control characters and control sequences
2021-02-09 Markus Gans <[email protected]>
* Added support for combined unicode characters
* Added a unit test for the FTermBuffer class
* Added a unit test for the FTterm functions
2020-12-31 Markus Gans <[email protected]>
* Refactoring to scoped enumerations
2020-11-18 Markus Gans <[email protected]>
* The terminal update rate is now limited to 60 Hz
2020-11-14 Markus Gans <[email protected]>
* Version 0.7.1
* Bugfix: The cursor position was not changed anymore
if there was no change to the content
* Forcing a direct update for faster terminal output
2020-11-07 Markus Gans <[email protected]>
* Version 0.7.0
2020-11-04 Markus Gans <[email protected]>
* Elimination of unnecessary terminal flushes
2020-11-03 Markus Gans <[email protected]>
* Use FIONREAD to get the number of characters available
for reading on stdin
2020-11-02 Markus Gans <[email protected]>
* Non-blocking reading before timeout after keystroke
* Every fourth event processing causes a terminal flush
* Call of TIOCLINUX only in the Linux console
2020-11-01 Markus Gans <[email protected]>
* Now FINAL CUT queues keyboard and mouse input to speed up
the processing of widget events
2020-10-22 Markus Gans <[email protected]>
* Repair terminal update skipping
2020-10-20 Markus Gans <[email protected]>
* For fast mouse movements the keyboard interval was increased
from 13.3 to 30 Hz
2020-10-19 Markus Gans <[email protected]>
* Optimize the terminal output speed
2020-10-17 Markus Gans <[email protected]>
* Fixes unit test segfault
2020-10-11 Markus Gans <[email protected]>
* Solaris build fix
* Added saving and restoring xterm titles to the stack
for vte terminals
* Menu key - activates the menu bar
* Shift-Menu - opens the dialog menu
2020-10-08 Markus Gans <[email protected]>
* Better keyboard support for urxvt terminals
* Screen reports (like Secondary DA) are now read directly
* Report Cursor Position (DECXCPR) support
* FListView and FListBox now have direct access to the list of client
elements via data()
2020-10-05 Markus Gans <[email protected]>
* Now hides the input cursor when a widget gets hidden
2020-10-04 Markus Gans <[email protected]>
* Replaces some C-style arrays with std::array
* Now you can use the arrow keys to move a window into the visible area
* Removes FData memory leak in FListBoxItem and FListViewItem
2020-09-27 Markus Gans <[email protected]>
* An explanation of the widget tree was added to the document
of the first steps
2020-09-26 Markus Gans <[email protected]>
* FData improvements
* The number of FObject children can now be limited with
setMaxChildren()
* FApplication can now have no more than one child widget
2020-09-25 Markus Gans <[email protected]>
* std::clog now streams everything to the FLogger object
* Added a unit test for the FData class
2020-09-23 Markus Gans <[email protected]>
* Bugfix: empty FString() + wchar_t
2020-09-22 Markus Gans <[email protected]>
* Bugfix in FDialog::setSize(): Automatic size adjustment and
simultaneous widget movement are now possible.
2020-09-18 Markus Gans <[email protected]>
* The generic data type FDataPtr is now deprecated and was
completely replaced by the template class FData
2020-09-11 Markus Gans <[email protected]>
* Fixes a problem with mouse input in Cygwin in non-blocking read mode
2020-09-08 Markus Gans <[email protected]>
* Speed up the reaction time of the gpm mouse
* FListView now correctly adjusts the size of the scrollbar,
when expanding and collapsing by double-clicking
2020-08-30 Markus Gans <[email protected]>
* Adding Windows Terminal detection
2020-08-15 Markus Gans <[email protected]>
* The call of the function setNonBlockingRead() resulted in
a high CPU load in idle mode.
Thanks to Pavel Stehule for reporting this problem.
2020-08-11 Markus Gans <[email protected]>
* New callback backend was implemented. Callback functions with any
number of arguments are now possible.
2020-07-19 Markus Gans <[email protected]>
* API: Some method name changes:
FObject::delOwnTimer() -> FObject::delOwnTimers()
FObject::delAllTimer() -> FObject::delAllTimers()
FWidget::delCallbacks() -> FWidget::delAllCallbacks()
2020-07-08 Markus Gans <[email protected]>
* New data wrapper class FData
2020-07-06 Markus Gans <[email protected]>
* Add a document that describes how to create user themes
2020-06-11 Markus Gans <[email protected]>
* New widget FBusyIndicator to indicate background activity
* Added example/busy to demonstrate the functionality of this widget
2020-06-07 Markus Gans <[email protected]>
* The --log-file parameter stores log output to any file. The file
can be viewed directly on another terminal with "tail -f".
2020-06-06 Markus Gans <[email protected]>
* Now, the terminal is not initialized before the method show()
is called. Or you force it explicitly via the FApplication object.
* Simplification of FMouse::createMouseObject()
2020-05-30 Markus Gans <[email protected]>
* With the two new methods FApplication::setDarkTheme() and
FApplication::setDefaultTheme() you can now change the theme
within an application. An example can be found in examples/ui
via the menu items "View" -> "Dark mode".
2020-05-29 Markus Gans <[email protected]>
* Adding a dark theme. Can be activated with the --dark-theme parameter.
2020-05-28 Markus Gans <[email protected]>
* FColorPalette now also uses polymorphism, so you can now
easily create your own color palette theme
2020-05-26 Markus Gans <[email protected]>
* FWidgetColors now uses polymorphism, so you can now easily
create your own widget color theme
* FApplication has got the new virtual method processExternalUserEvent()
for user code
2020-05-24 Markus Gans <[email protected]>
* New class FStringStream implements input and output operations
on FString based streams
* Fixed memory leak in FString move assignment operator
2020-05-21 Markus Gans <[email protected]>
* Fixed the event queue in FApplication
2020-05-16 Markus Gans <[email protected]>
* More direct access to the static FTerm functions
2020-05-13 Markus Gans <[email protected]>
* The new class FLogger for logging, which can be redirected
to different I/O channels
* Adding the event-log example to show the logging functionality
2020-05-02 Markus Gans <[email protected]>
* Transfer of all termcap functions into the FTermcap class
2020-04-28 Markus Gans <[email protected]>
* Adding the missing method getClientSize()
* Static code for the special built-in key sequences
2020-04-15 Markus Gans <[email protected]>
* Better support of general arrow keys
* Improved event handling code
2020-04-13 Markus Gans <[email protected]>
* Several small code improvements
2020-04-09 Markus Gans <[email protected]>
* A dialog can now be displayed without a framing border.
Many thanks to basedtho for this tip
2020-03-22 Markus Gans <[email protected]>
* A small benchmakt test was added to the Rotozoomer example
2020-03-08 Markus Gans <[email protected]>
* A rotozoomer example was added to demonstrate the drawing speed
of FINAL CUT
2020-03-07 Markus Gans <[email protected]>
* Fixes keyboard input buffer problem when opening a modal dialog
* Exit the move-resize-mode when the close confirmation dialog
is displayed
2020-03-05 Markus Gans <[email protected]>
* Unbuffered reading of keystrokes for better latency
* Mouse adjustments when resizing an rxvt terminal
2020-02-25 Markus Gans <[email protected]>
* New command line switch "--no-terminal-data-request" to disable
font and title determination
2020-02-19 Markus Gans <[email protected]>
* Some small code improvements
* SGRoptimizer improved
2020-02-16 Markus Gans <[email protected]>
* Printing a FStyle object allows you to change video attributes
2020-02-13 Markus Gans <[email protected]>
* Rename setTransShadow() to setColorOverlay()
2020-02-11 Markus Gans <[email protected]>
* Fix collapse() and expand() in FListViewItem()
2020-02-09 Markus Gans <[email protected]>
* Adding a tty check for stdin
* An application structure diagram was added to the document
of the first steps
2020-02-04 Markus Gans <[email protected]>
* Fix in FListViewIterator
* Add screenshorts to the first steps document
2020-02-02 Markus Gans <[email protected]>
* The methods clear() and remove() were added to FListView
* Add some const type qualifiers
* A small GNU autoconf-archive check
2020-01-12 Markus Gans <[email protected]>
* Add a "widget layout" chapter to the first steps document
2020-01-09 Markus Gans <[email protected]>
* With setText() and clearText() the text in the edit line can be changed
without changing the content of the combo box
* The setCurrentItem() method was added to the FComboBox widget class.
Thanks cybin for the sample code
2020-01-03 Markus Gans <[email protected]>
* Illustrations to explain the widget layout
2019-12-31 Markus Gans <[email protected]>
* The new SGRoptimizer class allows several consecutive parameters
from the SGR (Select Graphic Rendition) attributes to be combined
into one
2019-12-23 Markus Gans <[email protected]>
* Correction for height and width alignment in adjustSize()
* Better setSize() implementation in some widgets
2019-12-20 Markus Gans <[email protected]>
* Fixed the drawing of FLabel widget with the default size
of 1×1 character.
Thanks to terranpro for reporting this issue
2019-12-16 Markus Gans <[email protected]>
* New widget class FComboBox to provide a dropdown list
with an input field
2019-11-17 Markus Gans <[email protected]>
* Revision of FString number input stream
2019-11-16 Markus Gans <[email protected]>
* New widget class FSpinBox to provide spin boxes
2019-11-06 Markus Gans <[email protected]>
* Improved display of the NewFont midline
2019-11-03 Markus Gans <[email protected]>
* Newfont specialization for 8x16 and 9x16 pixel character
* Fixes the display of reverse characters on the 16 color
Linux console
2019-10-28 Markus Gans <[email protected]>
* Unicode support for 8x16graph font
2019-10-20 Markus Gans <[email protected]>
* New method setInputType() in FLineEdit that allows to obscure
password entries
* FAcceleratorList reimplemented as non-pointer
2019-10-15 Markus Gans <[email protected]>
* Version 0.6.0
2019-10-13 Markus Gans <[email protected]>
* Compile fix for Cygwin and Linux on arm architectures
* A small color palette optimization
* Corrected east asian ambiguous character width for OpenBSD, NetBSD,
FreeBSD and Solaris
2019-10-05 Markus Gans <[email protected]>
* Internal redesign of the callback call
* Mapping of key functions in an associative container to simplify
onKeyPress() in FListBox, FListView, FTextView and FScrollView
2019-10-01 Markus Gans <[email protected]>
* Replacing null-terminated wide strings with FString objects
* Fix for getColumnWidth() with newfont character
2019-09-29 Markus Gans <[email protected]>
* Streaming into an FTextView() object
* Fixes the streaming of empty FString objects into a stream with
a width > 0
* The FString operator [] now returns a null character ('\0')
if the position is equal to the string length
2019-09-28 Markus Gans <[email protected]>
* Support for displaying full-width characters (2 columns wide)
on the terminal. This is particularly important for the correct
display of CJK characters
2019-09-16 Markus Gans <[email protected]>
* Improve FStartOptions implementation
2019-09-08 Markus Gans <[email protected]>
* Remove the lines of the #pragma pack() directive from the code
because they caused a misaligned address
2019-09-06 Markus Gans <[email protected]>
* Outsourcing the initialization data to a separate struct
2019-09-04 Markus Gans <[email protected]>
* The Cygwin and Linux console do not use cp437 character encoding
by default anymore
2019-09-01 Markus Gans <[email protected]>
* Removing public + protected data members from classes
2019-08-25 Markus Gans <[email protected]>
* More use of direct initializations
2019-08-18 Markus Gans <[email protected]>
* Solved problem detecting terminal size on quick changes
* Update VTerm information only in case of changes
* Fixes print() << FPoint() behavior in FScrollView
2019-08-11 Markus Gans <[email protected]>
* FRect has now got a scaleBy() method
* Convert drawBorder() to a non-member function using FRect
* Converts getHotkeyPos() for sharing into a non-member function
2019-08-10 Markus Gans <[email protected]>
* Pitch and duration of system speaker can now be changed
on OpenBSD
2019-08-07 Markus Gans <[email protected]>
* Fixes the Cygwin build
2019-08-04 Markus Gans <[email protected]>
* Reduce the number of interface parameters
2019-07-31 Markus Gans <[email protected]>
* Unit test for the move assignment operator and move constructor
in FPoint, FSize and FRect
2019-07-28 Markus Gans <[email protected]>
* FreeBSD can now change the frequency and duration
of the pc speaker signal
* Added a unit test for the FTermFreeBSD class to test
the FreeBSD console
2019-07-21 Markus Gans <[email protected]>
* Reduce include entries in the header files
2019-07-14 Markus Gans <[email protected]>
* Reduces the use of raw loops
* Add a unit test for FTermOpenBSD to test the OpenBSD
and NetBSD console
2019-06-30 Markus Gans <[email protected]>
* Expanding the unit test for FTermLinux
* Update the cp437 unicode map
* Reducing the special cases for Solaris
2019-06-19 Markus Gans <[email protected]>
* Add a unit test for FTermLinux with a Linux console emulation
and a dedicated FSystem test instance
2019-06-12 Markus Gans <[email protected]>
* Fixes problem with scroll bar view after first draw
2019-06-02 Markus Gans <[email protected]>
* Avoid drawing the scroll bars if the widget is non-visible
2019-05-27 Markus Gans <[email protected]>
* Use the Singleton design pattern to get a single object instance
via FTerm
2019-05-26 Marek Habersack <[email protected]>
* Fix a segfault when processing input to empty FListView
2019-05-17 Markus Gans <[email protected]>
* Move system calls to the new class FSystem
2019-04-27 Markus Gans <[email protected]>
* Add the reserve() method to FListBox to increase the capacity
of the list
* Use shrink_to_fit() to save memory space
2019-03-24 Markus Gans <[email protected]>
* Add a "scroll view" chapter to the first steps document
2019-02-28 Markus Gans <[email protected]>
* Add an lambda expression callback example to the first steps document
2019-02-24 Markus Gans <[email protected]>
* FLineEdit now has the ability to define a character input filter
via regular expression (regex)
* Now FLineEdit can define a maximum character length for the input
* The cursor position can now be set directly in FLineEdit
* Added the 7-segment example to demonstrate the use of FTermBuffer
and FLineEdit input filters
2019-02-07 Markus Gans <[email protected]>
* Add a "dynamic layout" chapter into the first steps document
2019-01-30 Markus Gans <[email protected]>
* Printing an FColorPair object can change the foreground and
background color
2019-01-27 Markus Gans <[email protected]>
* The print command can now have an FPoint object as a parameter
to set the cursor position
* Refactoring of the FProgressbar drawing methods
2019-01-24 Markus Gans <[email protected]>
* Refactoring of some methods in FVTerm and FDialog
2019-01-21 Markus Gans <[email protected]>
* More accurate interfaces through the strict use of FPoint()
and FSize()
2019-01-16 Markus Gans <[email protected]>
* New class FSize for storing dimensions
2019-01-12 Markus Gans <[email protected]>
* Refactoring FFileDialog::fileOpenChooser
* Refactoring FFileDialog::fileSaveChooser
* Refactoring FListBox::init()
* Refactoring FListView::init()
* Refactoring FTextView::init()
* Refactoring FTermXTerminal::resetXTermForeground()
* Refactoring FTermXTerminal::resetXTermBackground()
* Refactoring FTermXTerminal::resetXTermCursorColor()
* Refactoring FTermXTerminal::resetXTermMouseForeground()
* Refactoring FTermXTerminal::resetXTermMouseBackground()
* Refactoring FTermXTerminal::resetXTermHighlightBackground()
2019-01-11 Markus Gans <[email protected]>
* Generalize hide() method
2019-01-09 Markus Gans <[email protected]>
* Improvement in widget focusing
* Better widget visibility handling with the methods hide() and show()
2019-01-05 Markus Gans <[email protected]>
* Use of initializer_list for FListBox, FListView and FTextView
2019-01-04 Markus Gans <[email protected]>
* Use the final specifier
2019-01-03 Markus Gans <[email protected]>
* Improved PC encoding for Cygwin and Linux
* Integration of an output filter to replace missing characters
* Better Linux console support for UTF-8 encoding
(Default is PC charset encoding)
* Better background color for all terminals with a fixed color palette
2018-12-31 Markus Gans <[email protected]>
* Use the override specifier
2018-12-30 Markus Gans <[email protected]>
* Cygwin compiled fix for C++11
2018-12-29 Markus Gans <[email protected]>
* Text scrolling in FTextView was broken since February 17th!
* Replace redundant FString code with templates
2018-12-28 Markus Gans <[email protected]>
* Add the assignment operator (=) for FButton to set the button text
* Corrected shortening of overlong texts in the title bar of FDialog
* Add a "signals and callbacks" chapter into the first steps document
2018-12-25 Markus Gans <[email protected]>
* Add a "event processing" chapter into the first steps document
2018-12-24 Markus Gans <[email protected]>
* Events can not only be sent to FWidgets, but also to FObjects
* New event FUserEvent for user-defined events
2018-12-19 Markus Gans <[email protected]>
* Use of smart pointers
* Add a "memory management" chapter into the first steps document
2018-12-17 Markus Gans <[email protected]>
* Improve FButton mouse click animation
* Minor data type corrections
* Reactivate the event queue
2018-12-15 Markus Gans <[email protected]>
* Use of the C++11 auto specifier in the program code
* Code reduction by using of range-based for loop
* The example program for video attributes now replaces
the switch statement with a vector of lambda expressions
2018-12-09 Markus Gans <[email protected]>
* Better handling of the scroll bar maximum
* Deactivate copy constructor and assignment operator with "= delete"
* Use nullptr instead of 0 to initialize a pointer values
2018-12-06 Markus Gans <[email protected]>
* Easier handling of fc::SpecialCharacter
2018-12-01 Markus Gans <[email protected]>
* Switched to the language standard C++11
* Use delegated constructors and in-class default member initializers
2018-12-01 Markus Gans <[email protected]>
* Improved gpm wheel mouse support
* Fix compile in optimization level 2 for newer gcc
2018-11-27 Markus Gans <[email protected]>
* Correct vertical scroll bar position after sorting in FListView
2018-11-25 Markus Gans <[email protected]>
* Version 0.5.0
* Namespace fix in FTermFreeBSD and FTermOpenBSD
* Fix compiler warning on non-x86 architectures
2018-11-24 Markus Gans <[email protected]>
* Improved Sun Microsystems workstation console quirks
* Handling environment variables with numbers in FTerm
* Memory management fix in example program transparent
2018-11-21 Markus Gans <[email protected]>
* New type FKey for key inputs
* The integer type of FPoint and FRect changed from short to int
2018-11-18 Markus Gans <[email protected]>
* The FListViewItem class now provides checkable list view items
* Adding the checklist example to demonstrate the checkable
FListViewItems
* A checkable FListViewItem now shows the input cursor
2018-11-12 Markus Gans <[email protected]>
* Clicking on the column header in FListView now changes the sort order
2018-11-10 Markus Gans <[email protected]>
* FListView now has a sort indicator to display the sort order
2018-11-07 Markus Gans <[email protected]>
* Use new type FColor for color values
2018-11-05 Markus Gans <[email protected]>
* FButton now uses the widget flags directly
2018-11-04 Markus Gans <[email protected]>
* Widget flags are now stored in a bit field
2018-11-03 Markus Gans <[email protected]>
* New method rgb2ColorIndex() to converts a 24-bit RGB color
to a 256-color compatible approximation
2018-11-01 Markus Gans <[email protected]>
* Moved FTerm debug access methods to FTermDebugData
2018-10-29 Markus Gans <[email protected]>
* FTerm is now a data member of FVTerm
* Fix FListBox prevListItem()
* Setting the value can_change_color_palette in FTermcapQuirks
2018-10-26 Markus Gans <[email protected]>
* Building Fix for a negative value check (gcc < 4.8)
* Adding the capacity() method to the FString class
2018-10-21 Markus Gans <[email protected]>
* Moving static attributes from FApplication to FWidget
2018-10-17 Markus Gans <[email protected]>
* Changed more variables from int to std::size_t
2018-10-14 Markus Gans <[email protected]>
* A width or height can not be negative.
For that reason the change from int to std::size_t
* FString fix for 32-bit architectures
2018-10-13 Markus Gans <[email protected]>
* Avoid using dynamic_cast so that you can compile Final Cut
without Run-Time Type Information (RTTI).
Thanks to user1095108 for reporting that.
2018-10-11 Markus Gans <[email protected]>
* FKeyboard now uses references for keyboard buffer passing
2018-10-09 Markus Gans <[email protected]>
* Terminal detection for newer vte libraries (>= 0.53.0)
2018-10-08 Markus Gans <[email protected]>
* Move all termcap code into FTermcap
* Some small code splits
2018-10-05 Markus Gans <[email protected]>
* Remove redundant program code from FString
2018-10-03 Markus Gans <[email protected]>
* At the end of the lifetime of an FMenuItem object,
delete its entry from the object list of the parent object
* Reduce the use of the new operators in the examples
* Adding a unit test for the FTermData class
2018-10-01 Markus Gans <[email protected]>
* Extract FTerm data members into the data class FTermData
2018-09-28 Markus Gans <[email protected]>
* FListView now has the ability to sort by columns
2018-09-27 Markus Gans <[email protected]>
* Move time event processing from FApplication to FObject
2018-09-26 Markus Gans <[email protected]>
* The FListViewItem class now has a getData() and a setData() method
similar to the FListBoxItem class.
2018-09-24 Markus Gans <[email protected]>
* Stricter use of the keyword virtual
* Add a first steps document
2018-09-20 Markus Gans <[email protected]>
* Added pkg-config file finalcut.pc
* The entire library source code is now encapsulated under
the namespace finalcut. All examples and tests have been
modified to fit the namespace.
2018-09-16 Markus Gans <[email protected]>
* Implement a ttytype test for the FTermDetection unit test
2018-09-14 Markus Gans <[email protected]>
* Added unit test for FTermDetection with a terminal simulation
for common terminals
* Some minor terminal detection bug fixes
2018-09-12 Markus Gans <[email protected]>
* Removes the deprecated keyword "register"
from the source code
2018-09-02 Markus Gans <[email protected]>
* Fix mouse wheel behavior over horizontal scroll bars
in FTextView
* Some small code improvements
2018-09-01 Markus Gans <[email protected]>
* Compiles now with newer gcc
2018-08-31 Markus Gans <[email protected]>
* Fixed a problem for a non-debug compilation
2018-08-08 Markus Gans <[email protected]>
* Added unit test for FTermcapQuirks
2018-07-29 Markus Gans <[email protected]>
* Added numeric Keypad [/], [*], [-], [+] support
* Handling of keys that are substrings of other keys
* More tests in FKeyboard unit test
2018-07-27 Markus Gans <[email protected]>
* The array for keyboard input of UTF-8 characters was
not long enough for 4 bytes of UTF-8 codes.
* More tests in FKeyboard unit test
2018-07-22 Markus Gans <[email protected]>
* Added unit test for FKeyboard
2018-07-15 Markus Gans <[email protected]>
* Keyboard functions are now in a separate class
* Fix Parameter passing in term::init_OptiAttr
2018-07-08 Markus Gans <[email protected]>
* Extension of the unit test of FOptiMove
2018-07-01 Markus Gans <[email protected]>
* All in FOptiMove required termcap values can now be passed
with a single struct
2018-06-25 Markus Gans <[email protected]>
* All termcap values required in FOptiAttr can now be passed
with a single struct
2018-06-17 Markus Gans <[email protected]>
* Added special console options for FreeBSD, NetBSD and OpenBSD
2018-06-12 Markus Gans <[email protected]>
* Linux functions from FTerm moved into the FTermLinux class
2018-05-27 Markus Gans <[email protected]>
* Move FreeBSD, NetBSD and OpenBSD functions to separate classes
2018-05-20 Markus Gans <[email protected]>
* Methods outsourcing from FTerm to FTermXTerminal