From 2b9c64a445b5cd213256d0802a7d0dbc4dd4058a Mon Sep 17 00:00:00 2001 From: Markus Gans Date: Sun, 21 Jul 2019 23:31:21 +0200 Subject: [PATCH] Reduce include entries in the header files --- ChangeLog | 3 + examples/mouse.cpp | 8 +- src/fapplication.cpp | 5 + src/fbutton.cpp | 2 + src/fbuttongroup.cpp | 2 + src/fcheckbox.cpp | 1 + src/fcheckmenuitem.cpp | 3 +- src/fcolorpalette.cpp | 3 +- src/fdialog.cpp | 4 + src/fdialoglistmenu.cpp | 3 +- src/ffiledialog.cpp | 1 + src/fkey_map.cpp | 6 +- src/fkeyboard.cpp | 5 + src/flabel.cpp | 2 + src/flineedit.cpp | 5 + src/flistbox.cpp | 4 + src/flistview.cpp | 5 + src/fmenu.cpp | 5 + src/fmenubar.cpp | 4 + src/fmenuitem.cpp | 1 + src/fmenulist.cpp | 4 +- src/fmessagebox.cpp | 1 + src/fmouse.cpp | 4 + src/fobject.cpp | 5 +- src/foptiattr.cpp | 1 + src/fprogressbar.cpp | 4 + src/fradiomenuitem.cpp | 3 +- src/frect.cpp | 36 +++ src/fscrollbar.cpp | 3 + src/fscrollview.cpp | 2 + src/fstatusbar.cpp | 2 + src/fswitch.cpp | 3 + src/fterm.cpp | 496 +++++++++++++++++++++++++++-- src/ftermbuffer.cpp | 5 + src/ftermcap.cpp | 31 +- src/ftermcapquirks.cpp | 10 +- src/ftermdebugdata.cpp | 40 +++ src/ftermdetection.cpp | 25 ++ src/ftermfreebsd.cpp | 2 + src/ftermlinux.cpp | 9 +- src/ftermopenbsd.cpp | 1 + src/ftermxterminal.cpp | 6 + src/ftextview.cpp | 6 + src/ftogglebutton.cpp | 3 + src/ftooltip.cpp | 1 + src/fvterm.cpp | 32 +- src/fwidget.cpp | 6 +- src/fwidgetcolors.cpp | 1 + src/fwindow.cpp | 1 + src/include/final/fapplication.h | 19 +- src/include/final/fbutton.h | 1 + src/include/final/fbuttongroup.h | 1 + src/include/final/fcolorpair.h | 3 +- src/include/final/fcolorpalette.h | 2 - src/include/final/fconfig.h | 4 +- src/include/final/fdialog.h | 5 +- src/include/final/fevent.h | 9 +- src/include/final/ffiledialog.h | 2 + src/include/final/final.h | 31 +- src/include/final/fkeyboard.h | 8 +- src/include/final/flabel.h | 1 + src/include/final/flineedit.h | 4 +- src/include/final/flistbox.h | 6 +- src/include/final/flistview.h | 4 +- src/include/final/fmenu.h | 8 +- src/include/final/fmenubar.h | 6 +- src/include/final/fmessagebox.h | 8 +- src/include/final/fmouse.h | 2 - src/include/final/fobject.h | 20 +- src/include/final/foptiattr.h | 52 +-- src/include/final/foptimove.h | 2 - src/include/final/fpoint.h | 1 - src/include/final/frect.h | 30 +- src/include/final/fsize.h | 1 + src/include/final/fstatusbar.h | 3 +- src/include/final/fterm.h | 424 ++---------------------- src/include/final/ftermbuffer.h | 7 +- src/include/final/ftermcap.h | 9 +- src/include/final/ftermcapquirks.h | 10 +- src/include/final/ftermdata.h | 144 +++++---- src/include/final/ftermdebugdata.h | 29 +- src/include/final/ftermdetection.h | 15 - src/include/final/ftermfreebsd.h | 5 +- src/include/final/ftermlinux.h | 13 +- src/include/final/ftermopenbsd.h | 4 +- src/include/final/ftermxterminal.h | 10 +- src/include/final/ftextview.h | 7 +- src/include/final/ftypes.h | 46 +++ src/include/final/fvterm.h | 25 +- src/include/final/fwidget.h | 13 +- test/foptiattr-test.cpp | 48 ++- 91 files changed, 1094 insertions(+), 763 deletions(-) diff --git a/ChangeLog b/ChangeLog index f0ec253c..4958c213 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2019-07-21 Markus Gans + * Reduce include entries in the header files + 2019-07-14 Markus Gans * Reduces the use of raw loops * Add a unit test for FTermOpenBSD to test the OpenBSD diff --git a/examples/mouse.cpp b/examples/mouse.cpp index b94c143f..48279768 100644 --- a/examples/mouse.cpp +++ b/examples/mouse.cpp @@ -491,11 +491,13 @@ void MouseDraw::drawCanvas() for (int y = 0; y < y_end; y++) // line loop { - charData* canvaschar; // canvas character - charData* winchar; // window character + finalcut::charData* canvaschar; // canvas character + finalcut::charData* winchar; // window character canvaschar = &canvas->text[y * x_end]; winchar = &print_area->text[(ay + y) * w_line_len + ax]; - std::memcpy (winchar, canvaschar, sizeof(charData) * unsigned(x_end)); + std::memcpy ( winchar + , canvaschar + , sizeof(finalcut::charData) * unsigned(x_end) ); if ( int(print_area->changes[ay + y].xmin) > ax ) print_area->changes[ay + y].xmin = uInt(ax); diff --git a/src/fapplication.cpp b/src/fapplication.cpp index 5eaee5b9..e301b38b 100644 --- a/src/fapplication.cpp +++ b/src/fapplication.cpp @@ -24,9 +24,14 @@ #include #include "final/fapplication.h" +#include "final/fevent.h" #include "final/fmenu.h" +#include "final/fmenubar.h" #include "final/fmessagebox.h" +#include "final/fmouse.h" #include "final/fstatusbar.h" +#include "final/ftermios.h" +#include "final/fwidgetcolors.h" #include "final/fwindow.h" namespace finalcut diff --git a/src/fbutton.cpp b/src/fbutton.cpp index 4cf8779d..62a81d72 100644 --- a/src/fbutton.cpp +++ b/src/fbutton.cpp @@ -21,6 +21,8 @@ ***********************************************************************/ #include "final/fapplication.h" +#include "final/fcolorpair.h" +#include "final/fevent.h" #include "final/fbutton.h" #include "final/fstatusbar.h" diff --git a/src/fbuttongroup.cpp b/src/fbuttongroup.cpp index 0d460d0c..9a017676 100644 --- a/src/fbuttongroup.cpp +++ b/src/fbuttongroup.cpp @@ -23,6 +23,8 @@ #include "final/fapplication.h" #include "final/fbuttongroup.h" +#include "final/fevent.h" +#include "final/fsize.h" #include "final/fstatusbar.h" #include "final/ftogglebutton.h" diff --git a/src/fcheckbox.cpp b/src/fcheckbox.cpp index 469a1601..6d4e8630 100644 --- a/src/fcheckbox.cpp +++ b/src/fcheckbox.cpp @@ -20,6 +20,7 @@ * . * ***********************************************************************/ +#include "final/fc.h" #include "final/fcheckbox.h" namespace finalcut diff --git a/src/fcheckmenuitem.cpp b/src/fcheckmenuitem.cpp index de5f0276..0fa0c23c 100644 --- a/src/fcheckmenuitem.cpp +++ b/src/fcheckmenuitem.cpp @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2015-2018 Markus Gans * +* Copyright 2015-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -20,6 +20,7 @@ * . * ***********************************************************************/ +#include "final/fc.h" #include "final/fcheckmenuitem.h" #include "final/fmenu.h" diff --git a/src/fcolorpalette.cpp b/src/fcolorpalette.cpp index 99a9289c..249d25c1 100644 --- a/src/fcolorpalette.cpp +++ b/src/fcolorpalette.cpp @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2018 Markus Gans * +* Copyright 2018-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -20,6 +20,7 @@ * . * ***********************************************************************/ +#include "final/fc.h" #include "final/fcolorpalette.h" namespace finalcut diff --git a/src/fdialog.cpp b/src/fdialog.cpp index df78fb83..10ac314a 100644 --- a/src/fdialog.cpp +++ b/src/fdialog.cpp @@ -24,7 +24,11 @@ #include "final/fapplication.h" #include "final/fdialog.h" +#include "final/fevent.h" +#include "final/fmenuitem.h" #include "final/fstatusbar.h" +#include "final/ftooltip.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/fdialoglistmenu.cpp b/src/fdialoglistmenu.cpp index 7c322e40..627cbbe0 100644 --- a/src/fdialoglistmenu.cpp +++ b/src/fdialoglistmenu.cpp @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2016-2018 Markus Gans * +* Copyright 2016-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -20,6 +20,7 @@ * . * ***********************************************************************/ +#include "final/fc.h" #include "final/fdialoglistmenu.h" namespace finalcut diff --git a/src/ffiledialog.cpp b/src/ffiledialog.cpp index ab0a5aeb..4c41fa2d 100644 --- a/src/ffiledialog.cpp +++ b/src/ffiledialog.cpp @@ -27,6 +27,7 @@ #include +#include "final/fevent.h" #include "final/ffiledialog.h" namespace finalcut diff --git a/src/fkey_map.cpp b/src/fkey_map.cpp index 85f79a19..523d34ea 100644 --- a/src/fkey_map.cpp +++ b/src/fkey_map.cpp @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2018 Markus Gans * +* Copyright 2018-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -20,8 +20,8 @@ * . * ***********************************************************************/ -#include -#include +#include "final/fc.h" +#include "final/fkey_map.h" namespace finalcut { diff --git a/src/fkeyboard.cpp b/src/fkeyboard.cpp index 0e4c0251..ed70a105 100644 --- a/src/fkeyboard.cpp +++ b/src/fkeyboard.cpp @@ -30,9 +30,14 @@ #include "final/fkeyboard.h" #include "final/fkey_map.h" +#include "final/fobject.h" #include "final/fterm.h" #include "final/ftermios.h" +#if defined(__linux__) + #include "final/ftermlinux.h" +#endif + namespace finalcut { diff --git a/src/flabel.cpp b/src/flabel.cpp index c9b5221c..11891115 100644 --- a/src/flabel.cpp +++ b/src/flabel.cpp @@ -23,6 +23,8 @@ #include #include "final/fapplication.h" +#include "final/fcolorpair.h" +#include "final/fevent.h" #include "final/flabel.h" #include "final/fstatusbar.h" diff --git a/src/flineedit.cpp b/src/flineedit.cpp index 184e92e3..ec71ec77 100644 --- a/src/flineedit.cpp +++ b/src/flineedit.cpp @@ -23,8 +23,13 @@ #include #include "final/fapplication.h" +#include "final/fevent.h" +#include "final/flabel.h" #include "final/flineedit.h" +#include "final/fpoint.h" +#include "final/fsize.h" #include "final/fstatusbar.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/flistbox.cpp b/src/flistbox.cpp index 975d54de..c42e9f32 100644 --- a/src/flistbox.cpp +++ b/src/flistbox.cpp @@ -24,9 +24,13 @@ #include #include "final/fapplication.h" +#include "final/fcolorpair.h" +#include "final/fevent.h" #include "final/flistbox.h" #include "final/fscrollbar.h" +#include "final/fstring.h" #include "final/fstatusbar.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/flistview.cpp b/src/flistview.cpp index cc09e0a8..928055f7 100644 --- a/src/flistview.cpp +++ b/src/flistview.cpp @@ -27,11 +27,16 @@ #include #include +#include "final/emptyfstring.h" #include "final/fapplication.h" +#include "final/fcolorpair.h" +#include "final/fevent.h" #include "final/flistview.h" #include "final/fscrollbar.h" #include "final/fstatusbar.h" +#include "final/fstring.h" #include "final/ftermbuffer.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/fmenu.cpp b/src/fmenu.cpp index ebe78901..8602f52a 100644 --- a/src/fmenu.cpp +++ b/src/fmenu.cpp @@ -24,9 +24,14 @@ #include #include "final/fapplication.h" +#include "final/fcolorpair.h" #include "final/fdialog.h" +#include "final/fevent.h" #include "final/fmenu.h" +#include "final/fmenubar.h" +#include "final/fmenuitem.h" #include "final/fstatusbar.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/fmenubar.cpp b/src/fmenubar.cpp index a4ac2beb..008e2237 100644 --- a/src/fmenubar.cpp +++ b/src/fmenubar.cpp @@ -24,8 +24,12 @@ #include #include "final/fapplication.h" +#include "final/fevent.h" +#include "final/fmenu.h" #include "final/fmenubar.h" +#include "final/fmenuitem.h" #include "final/fstatusbar.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/fmenuitem.cpp b/src/fmenuitem.cpp index b488f726..098632ee 100644 --- a/src/fmenuitem.cpp +++ b/src/fmenuitem.cpp @@ -24,6 +24,7 @@ #include "final/fapplication.h" #include "final/fdialog.h" +#include "final/fevent.h" #include "final/fmenu.h" #include "final/fmenubar.h" #include "final/fmenulist.h" diff --git a/src/fmenulist.cpp b/src/fmenulist.cpp index 6836272b..dbe47e81 100644 --- a/src/fmenulist.cpp +++ b/src/fmenulist.cpp @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2015-2018 Markus Gans * +* Copyright 2015-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -22,7 +22,9 @@ #include +#include "final/fc.h" #include "final/fmenulist.h" +#include "final/fmenuitem.h" namespace finalcut { diff --git a/src/fmessagebox.cpp b/src/fmessagebox.cpp index ca00bad4..c4e80031 100644 --- a/src/fmessagebox.cpp +++ b/src/fmessagebox.cpp @@ -23,6 +23,7 @@ #include #include "final/fapplication.h" +#include "final/fbutton.h" #include "final/fmessagebox.h" namespace finalcut diff --git a/src/fmouse.cpp b/src/fmouse.cpp index 373cff92..8084cc4c 100644 --- a/src/fmouse.cpp +++ b/src/fmouse.cpp @@ -27,9 +27,13 @@ #include #include +#include "final/fconfig.h" +#include "final/fkeyboard.h" #include "final/fmouse.h" +#include "final/fobject.h" #include "final/fterm.h" #include "final/ftermxterminal.h" +#include "final/ftypes.h" namespace finalcut { diff --git a/src/fobject.cpp b/src/fobject.cpp index ed969f20..205a5020 100644 --- a/src/fobject.cpp +++ b/src/fobject.cpp @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2015-2018 Markus Gans * +* Copyright 2015-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -22,6 +22,9 @@ #include +#include "final/emptyfstring.h" +#include "final/fevent.h" +#include "final/fc.h" #include "final/fobject.h" namespace finalcut diff --git a/src/foptiattr.cpp b/src/foptiattr.cpp index d7cf0b57..84329b4a 100644 --- a/src/foptiattr.cpp +++ b/src/foptiattr.cpp @@ -22,6 +22,7 @@ #include +#include "final/fc.h" #include "final/foptiattr.h" namespace finalcut diff --git a/src/fprogressbar.cpp b/src/fprogressbar.cpp index c0dc7be7..3be23971 100644 --- a/src/fprogressbar.cpp +++ b/src/fprogressbar.cpp @@ -20,7 +20,11 @@ * . * ***********************************************************************/ +#include "final/fevent.h" +#include "final/fcolorpair.h" #include "final/fprogressbar.h" +#include "final/fstring.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/fradiomenuitem.cpp b/src/fradiomenuitem.cpp index 0b53e1dc..0e84ab7d 100644 --- a/src/fradiomenuitem.cpp +++ b/src/fradiomenuitem.cpp @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2015-2018 Markus Gans * +* Copyright 2015-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -20,6 +20,7 @@ * . * ***********************************************************************/ +#include "final/fc.h" #include "final/fradiomenuitem.h" #include "final/fmenu.h" diff --git a/src/frect.cpp b/src/frect.cpp index fa5d52a3..51d20ae3 100644 --- a/src/frect.cpp +++ b/src/frect.cpp @@ -22,7 +22,9 @@ #include +#include "final/fpoint.h" #include "final/frect.h" +#include "final/fsize.h" namespace finalcut { @@ -60,6 +62,40 @@ bool FRect::isEmpty() const return X2 == X1 - 1 && Y2 == Y1 - 1; } +//---------------------------------------------------------------------- +FPoint FRect::getPos() const +{ + return FPoint(X1, Y1); +} + +//---------------------------------------------------------------------- +FPoint FRect::getUpperLeftPos() const +{ + return FPoint(X1, Y1); +} + +//---------------------------------------------------------------------- +FPoint FRect::getUpperRightPos() const +{ + return FPoint(X2, Y1); +} + +//---------------------------------------------------------------------- +FPoint FRect::getLowerLeftPos() const +{ return FPoint(X1, Y2); } + +//---------------------------------------------------------------------- +FPoint FRect::getLowerRightPos() const +{ + return FPoint(X2, Y2); +} + +//---------------------------------------------------------------------- +FSize FRect::getSize() const +{ + return FSize(getWidth(), getHeight()); +} + //---------------------------------------------------------------------- void FRect::setX1 (int n) { diff --git a/src/fscrollbar.cpp b/src/fscrollbar.cpp index dd7149a3..f635fcb7 100644 --- a/src/fscrollbar.cpp +++ b/src/fscrollbar.cpp @@ -22,7 +22,10 @@ #include +#include "final/fevent.h" #include "final/fscrollbar.h" +#include "final/fsize.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/fscrollview.cpp b/src/fscrollview.cpp index 66c65ede..f460976e 100644 --- a/src/fscrollview.cpp +++ b/src/fscrollview.cpp @@ -23,8 +23,10 @@ #include +#include "final/fevent.h" #include "final/fscrollview.h" #include "final/fwindow.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/fstatusbar.cpp b/src/fstatusbar.cpp index 5a0c9dd5..d4f9b45f 100644 --- a/src/fstatusbar.cpp +++ b/src/fstatusbar.cpp @@ -22,7 +22,9 @@ #include +#include "final/fevent.h" #include "final/fstatusbar.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/fswitch.cpp b/src/fswitch.cpp index bb156d33..334f9b8b 100644 --- a/src/fswitch.cpp +++ b/src/fswitch.cpp @@ -20,7 +20,10 @@ * . * ***********************************************************************/ +#include "final/fcolorpair.h" +#include "final/fevent.h" #include "final/fswitch.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/fterm.cpp b/src/fterm.cpp index 56d7b941..45fa6c2a 100644 --- a/src/fterm.cpp +++ b/src/fterm.cpp @@ -25,8 +25,37 @@ #include #include -#include "final/fterm.h" +#include "final/fc.h" #include "final/fcharmap.h" +#include "final/fcolorpalette.h" +#include "final/fkey_map.h" +#include "final/fkeyboard.h" +#include "final/fmouse.h" +#include "final/foptiattr.h" +#include "final/foptimove.h" +#include "final/fstring.h" +#include "final/fsystem.h" +#include "final/fsystemimpl.h" +#include "final/fterm.h" +#include "final/ftermcap.h" +#include "final/ftermcapquirks.h" +#include "final/ftermdata.h" +#include "final/ftermdebugdata.h" +#include "final/ftermdetection.h" +#include "final/ftermios.h" +#include "final/ftermxterminal.h" + +#if defined(UNIT_TEST) + #include "final/ftermlinux.h" + #include "final/ftermfreebsd.h" + #include "final/ftermopenbsd.h" +#elif defined(__linux__) + #include "final/ftermlinux.h" +#elif defined(__FreeBSD__) || defined(__DragonFly__) + #include "final/ftermfreebsd.h" +#elif defined(__NetBSD__) || defined(__OpenBSD__) + #include "final/ftermopenbsd.h" +#endif namespace finalcut { @@ -42,35 +71,34 @@ int (*FTerm::Fputchar)(int); // static class attributes FTerm::initializationValues FTerm::init_values; -FTermData* FTerm::data = nullptr; -FSystem* FTerm::fsys = nullptr; -FOptiMove* FTerm::opti_move = nullptr; -FOptiAttr* FTerm::opti_attr = nullptr; -FTermDetection* FTerm::term_detection = nullptr; -FTermXTerminal* FTerm::xterm = nullptr; -FKeyboard* FTerm::keyboard = nullptr; -FMouseControl* FTerm::mouse = nullptr; +FTermData* FTerm::data = nullptr; +FSystem* FTerm::fsys = nullptr; +FOptiMove* FTerm::opti_move = nullptr; +FOptiAttr* FTerm::opti_attr = nullptr; +FTermDetection* FTerm::term_detection = nullptr; +FTermXTerminal* FTerm::xterm = nullptr; +FKeyboard* FTerm::keyboard = nullptr; +FMouseControl* FTerm::mouse = nullptr; #if defined(UNIT_TEST) - FTermLinux* FTerm::linux = nullptr; - FTermFreeBSD* FTerm::freebsd = nullptr; - FTermOpenBSD* FTerm::openbsd = nullptr; + FTermLinux* FTerm::linux = nullptr; + FTermFreeBSD* FTerm::freebsd = nullptr; + FTermOpenBSD* FTerm::openbsd = nullptr; #elif defined(__linux__) - FTermLinux* FTerm::linux = nullptr; + FTermLinux* FTerm::linux = nullptr; #elif defined(__FreeBSD__) || defined(__DragonFly__) - FTermFreeBSD* FTerm::freebsd = nullptr; + FTermFreeBSD* FTerm::freebsd = nullptr; #elif defined(__NetBSD__) || defined(__OpenBSD__) - FTermOpenBSD* FTerm::openbsd = nullptr; + FTermOpenBSD* FTerm::openbsd = nullptr; #endif #if DEBUG - FTermDebugData* FTerm::debug_data = nullptr; + FTermDebugData* FTerm::debug_data = nullptr; #endif // function prototypes uInt env2uint (const char*); - //---------------------------------------------------------------------- // class FTerm //---------------------------------------------------------------------- @@ -120,12 +148,414 @@ const FString FTerm::getKeyName (FKey keynum) return keyboard->getKeyName (keynum); } +//---------------------------------------------------------------------- +charSubstitution& FTerm::getCharSubstitutionMap() +{ + return data->getCharSubstitutionMap(); +} + +//---------------------------------------------------------------------- +int FTerm::getTTYFileDescriptor() +{ + return ( data ) ? data->getTTYFileDescriptor() : 0; +} + +//---------------------------------------------------------------------- +char* FTerm::getTermType() +{ + return data->getTermType(); +} + +//---------------------------------------------------------------------- +char* FTerm::getTermFileName() +{ + return data->getTermFileName(); +} + +//---------------------------------------------------------------------- +int FTerm::getTabstop() +{ + return FTermcap::tabstop; +} + +//---------------------------------------------------------------------- +int FTerm::getMaxColor() +{ + return FTermcap::max_color; +} + +//---------------------------------------------------------------------- +FTermData* FTerm::getFTermData() +{ + if ( data == 0 ) + { + try + { + data = new FTermData; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return data; +} + +//---------------------------------------------------------------------- +FSystem* FTerm::getFSystem() +{ + if ( fsys == 0 ) + { + try + { + fsys = new FSystemImpl; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return fsys; +} + +//---------------------------------------------------------------------- +FOptiMove* FTerm::getFOptiMove() +{ + if ( opti_move == 0 ) + { + try + { + opti_move = new FOptiMove; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return opti_move; +} + +//---------------------------------------------------------------------- +FOptiAttr* FTerm::getFOptiAttr() +{ + if ( opti_attr == 0 ) + { + try + { + opti_attr = new FOptiAttr; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return opti_attr; +} + +//---------------------------------------------------------------------- +FTermDetection* FTerm::getFTermDetection() +{ + if ( term_detection == 0 ) + { + try + { + term_detection = new FTermDetection; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return term_detection; +} + +//---------------------------------------------------------------------- +FTermXTerminal* FTerm::getFTermXTerminal() +{ + if ( xterm == 0 ) + { + try + { + xterm = new FTermXTerminal; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return xterm; +} + +//---------------------------------------------------------------------- +FKeyboard* FTerm::getFKeyboard() +{ + if ( keyboard == 0 ) + { + try + { + keyboard = new FKeyboard; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return keyboard; +} + +//---------------------------------------------------------------------- +FMouseControl* FTerm::getFMouseControl() +{ + if ( mouse == 0 ) + { + try + { + mouse = new FMouseControl; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return mouse; +} + +#if defined(__linux__) +//---------------------------------------------------------------------- +FTermLinux* FTerm::getFTermLinux() +{ + if ( linux == 0 ) + { + try + { + linux = new FTermLinux; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return linux; +} + +#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(UNIT_TEST) +//---------------------------------------------------------------------- +FTermFreeBSD* FTerm::getFTermFreeBSD() +{ + if ( freebsd == 0 ) + { + try + { + freebsd = new FTermFreeBSD; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return freebsd; +} + +#elif defined(__NetBSD__) || defined(__OpenBSD__) || defined(UNIT_TEST) +//---------------------------------------------------------------------- +FTermOpenBSD* FTerm::getFTermOpenBSD() +{ + if ( openbsd == 0 ) + { + try + { + openbsd = new FTermOpenBSD; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return openbsd; +} +#endif + +#if DEBUG +//---------------------------------------------------------------------- +FTermDebugData& FTerm::getFTermDebugData() +{ + if ( debug_data == 0 ) + { + try + { + debug_data = new FTermDebugData; + } + catch (const std::bad_alloc& ex) + { + std::cerr << bad_alloc_str << ex.what() << std::endl; + std::abort(); + } + } + + return *debug_data; +} +#endif // DEBUG + //---------------------------------------------------------------------- bool FTerm::isNormal (charData*& ch) { return opti_attr->isNormal(ch); } +//---------------------------------------------------------------------- +bool FTerm::hasUTF8() +{ + return data->hasUTF8Console(); +} + +//---------------------------------------------------------------------- +bool FTerm::isMonochron() +{ + return data->isMonochron(); +} + +//---------------------------------------------------------------------- +bool FTerm::isXTerminal() +{ + return term_detection->isXTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isAnsiTerminal() +{ + return term_detection->isAnsiTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isRxvtTerminal() +{ + return term_detection->isRxvtTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isUrxvtTerminal() +{ + return term_detection->isUrxvtTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isMltermTerminal() +{ + return term_detection->isMltermTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isPuttyTerminal() +{ + return term_detection->isPuttyTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isKdeTerminal() +{ + return term_detection->isKdeTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isGnomeTerminal() +{ + return term_detection->isGnomeTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isKtermTerminal() +{ + return term_detection->isKtermTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isTeraTerm() +{ + return term_detection->isTeraTerm(); +} + +//---------------------------------------------------------------------- +bool FTerm::isSunTerminal() +{ + return term_detection->isSunTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isCygwinTerminal() +{ + return term_detection->isCygwinTerminal(); +} + +//---------------------------------------------------------------------- +bool FTerm::isMinttyTerm() +{ + return term_detection->isMinttyTerm(); +} + +//---------------------------------------------------------------------- +bool FTerm::isLinuxTerm() +{ + return term_detection->isLinuxTerm(); +} + +//---------------------------------------------------------------------- +bool FTerm::isFreeBSDTerm() +{ + return term_detection->isFreeBSDTerm(); +} + +//---------------------------------------------------------------------- +bool FTerm::isNetBSDTerm() +{ + return term_detection->isNetBSDTerm(); +} + +//---------------------------------------------------------------------- +bool FTerm::isOpenBSDTerm() +{ + return term_detection->isOpenBSDTerm(); +} + +//---------------------------------------------------------------------- +bool FTerm::isScreenTerm() +{ + return term_detection->isScreenTerm(); +} + +//---------------------------------------------------------------------- +bool FTerm::isTmuxTerm() +{ + return term_detection->isTmuxTerm(); +} + +//---------------------------------------------------------------------- +bool FTerm::isNewFont() +{ + return data->isNewFont(); +} + //---------------------------------------------------------------------- bool FTerm::isCursorHideable() { @@ -137,6 +567,30 @@ bool FTerm::isCursorHideable() return false; } +//---------------------------------------------------------------------- +bool FTerm::hasChangedTermSize() +{ + return data->hasTermResized(); +} + +//---------------------------------------------------------------------- +bool FTerm::hasShadowCharacter() +{ + return data->hasShadowCharacter(); +} + +//---------------------------------------------------------------------- +bool FTerm::hasHalfBlockCharacter() +{ + return data->hasHalfBlockCharacter(); +} + +//---------------------------------------------------------------------- +bool FTerm::hasAlternateScreen() +{ + return data->hasAlternateScreen(); +} + //---------------------------------------------------------------------- bool FTerm::canChangeColorPalette() { @@ -917,6 +1371,12 @@ char* FTerm::changeAttribute ( charData*& term_attr return opti_attr->changeAttribute (term_attr, next_attr); } +//---------------------------------------------------------------------- +void FTerm::changeTermSizeFinished() +{ + data->setTermResized(false); +} + //---------------------------------------------------------------------- void FTerm::exitWithMessage (const FString& message) { @@ -1129,7 +1589,7 @@ void FTerm::init_cygwin_charmap() } // General encoding changes - characterSub& sub_map = data->getCharSubstitutionMap(); + charSubstitution& sub_map = data->getCharSubstitutionMap(); sub_map[L'•'] = L'*'; sub_map[L'●'] = L'*'; sub_map[L'◘'] = L'*'; diff --git a/src/ftermbuffer.cpp b/src/ftermbuffer.cpp index b65b8fd4..71c27619 100644 --- a/src/ftermbuffer.cpp +++ b/src/ftermbuffer.cpp @@ -23,7 +23,12 @@ #include #include +#include "final/fc.h" +#include "final/fcolorpair.h" +#include "final/fstring.h" #include "final/ftermbuffer.h" +#include "final/fvterm.h" +#include "final/ftypes.h" namespace finalcut { diff --git a/src/ftermcap.cpp b/src/ftermcap.cpp index b6966bcd..5f955151 100644 --- a/src/ftermcap.cpp +++ b/src/ftermcap.cpp @@ -24,26 +24,31 @@ #include #include +#include "final/emptyfstring.h" +#include "final/fc.h" +#include "final/fkey_map.h" #include "final/fterm.h" +#include "final/ftermdata.h" #include "final/ftermcap.h" +#include "final/ftermdetection.h" namespace finalcut { // static class attributes -bool FTermcap::background_color_erase = false; -bool FTermcap::can_change_color_palette = false; -bool FTermcap::automatic_left_margin = false; -bool FTermcap::automatic_right_margin = false; -bool FTermcap::eat_nl_glitch = false; -bool FTermcap::ansi_default_color = false; -bool FTermcap::osc_support = false; -bool FTermcap::no_utf8_acs_chars = false; -int FTermcap::max_color = 1; -int FTermcap::tabstop = 8; -int FTermcap::attr_without_color = 0; -FTermData* FTermcap::fterm_data = nullptr; -FTermDetection* FTermcap::term_detection = nullptr; +bool FTermcap::background_color_erase = false; +bool FTermcap::can_change_color_palette = false; +bool FTermcap::automatic_left_margin = false; +bool FTermcap::automatic_right_margin = false; +bool FTermcap::eat_nl_glitch = false; +bool FTermcap::ansi_default_color = false; +bool FTermcap::osc_support = false; +bool FTermcap::no_utf8_acs_chars = false; +int FTermcap::max_color = 1; +int FTermcap::tabstop = 8; +int FTermcap::attr_without_color = 0; +FTermData* FTermcap::fterm_data = nullptr; +FTermDetection* FTermcap::term_detection = nullptr; //---------------------------------------------------------------------- diff --git a/src/ftermcapquirks.cpp b/src/ftermcapquirks.cpp index ce6e7afb..3e7548cb 100644 --- a/src/ftermcapquirks.cpp +++ b/src/ftermcapquirks.cpp @@ -22,14 +22,20 @@ #include +#include "final/fc.h" +#include "final/fkey_map.h" +#include "final/fterm.h" +#include "final/ftermcap.h" #include "final/ftermcapquirks.h" +#include "final/ftermdata.h" +#include "final/ftermdetection.h" namespace finalcut { // static class attributes -FTermData* FTermcapQuirks::fterm_data = nullptr; -FTermDetection* FTermcapQuirks::term_detection = nullptr; +FTermData* FTermcapQuirks::fterm_data = nullptr; +FTermDetection* FTermcapQuirks::term_detection = nullptr; //---------------------------------------------------------------------- diff --git a/src/ftermdebugdata.cpp b/src/ftermdebugdata.cpp index 44014157..9183c26b 100644 --- a/src/ftermdebugdata.cpp +++ b/src/ftermdebugdata.cpp @@ -20,6 +20,7 @@ * . * ***********************************************************************/ +#include "final/fc.h" #include "final/fterm.h" #include "final/ftermdata.h" #include "final/ftermdetection.h" @@ -44,6 +45,45 @@ void FTermDebugData::init() data = FTerm::getFTermData(); term_detection = FTerm::getFTermDetection(); } + +//---------------------------------------------------------------------- +const FString& FTermDebugData::getAnswerbackString() +{ + return term_detection->getAnswerbackString(); +} + +//---------------------------------------------------------------------- +const FString& FTermDebugData::getSecDAString() +{ + return term_detection->getSecDAString(); +} + +//---------------------------------------------------------------------- +const char* FTermDebugData::getTermType_256color() +{ + return term_detection->getTermType_256color(); +} + +//---------------------------------------------------------------------- +const char* FTermDebugData::getTermType_Answerback() +{ + return term_detection->getTermType_Answerback(); +} + +//---------------------------------------------------------------------- +const char* FTermDebugData::getTermType_SecDA() +{ + return term_detection->getTermType_SecDA(); +} + +//---------------------------------------------------------------------- +#if defined(__linux__) +int FTermDebugData::getFramebufferBpp() +{ + return data->getFramebufferBpp(); +} +#endif // defined(__linux__) + #endif // DEBUG } // namespace finalcut diff --git a/src/ftermdetection.cpp b/src/ftermdetection.cpp index 19689ac8..c7056c7f 100644 --- a/src/ftermdetection.cpp +++ b/src/ftermdetection.cpp @@ -20,8 +20,19 @@ * . * ***********************************************************************/ +#include "final/emptyfstring.h" +#include "final/fc.h" +#include "final/fconfig.h" +#include "final/fsystem.h" #include "final/fterm.h" +#include "final/ftermdata.h" #include "final/ftermdetection.h" +#include "final/ftermios.h" +#include "final/ftypes.h" + +#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(UNIT_TEST) + #include "final/ftermopenbsd.h" +#endif namespace finalcut { @@ -85,6 +96,20 @@ FTermDetection::~FTermDetection() // destructor // public methods of FTermDetection +//---------------------------------------------------------------------- +#if DEBUG +const FString& FTermDetection::getAnswerbackString() +{ + return ( answer_back ) ? *answer_back : fc::emptyFString::get(); +} + +//---------------------------------------------------------------------- +const FString& FTermDetection::getSecDAString() +{ + return ( sec_da ) ? *sec_da : fc::emptyFString::get(); +} +#endif + //---------------------------------------------------------------------- void FTermDetection::setTtyTypeFileName (char ttytype_filename[]) { diff --git a/src/ftermfreebsd.cpp b/src/ftermfreebsd.cpp index 231a13ed..c9edcee5 100644 --- a/src/ftermfreebsd.cpp +++ b/src/ftermfreebsd.cpp @@ -21,8 +21,10 @@ ***********************************************************************/ #include "final/fcharmap.h" +#include "final/fsystem.h" #include "final/fterm.h" #include "final/ftermfreebsd.h" +#include "final/ftypes.h" namespace finalcut { diff --git a/src/ftermlinux.cpp b/src/ftermlinux.cpp index 91b97a10..91e97581 100644 --- a/src/ftermlinux.cpp +++ b/src/ftermlinux.cpp @@ -20,10 +20,17 @@ * . * ***********************************************************************/ +#include "final/fc.h" +#include "final/fcharmap.h" +#include "final/fsystem.h" #include "final/fterm.h" +#include "final/ftermcap.h" +#include "final/ftermdetection.h" #include "final/ftermlinux.h" +#include "final/ftypes.h" #if defined(__linux__) + #include // need keyboard modifiers #include "../fonts/newfont.h" #include "../fonts/unicodemap.h" #include "../fonts/vgafont.h" @@ -1276,7 +1283,7 @@ void FTermLinux::characterFallback ( wchar_t ucs , std::vector fallback ) { constexpr sInt16 NOT_FOUND = -1; - characterSub& sub_map = fterm_data->getCharSubstitutionMap(); + charSubstitution& sub_map = fterm_data->getCharSubstitutionMap(); if ( fallback.size() < 2 || ucs != fallback[0] ) return; diff --git a/src/ftermopenbsd.cpp b/src/ftermopenbsd.cpp index 1106e1ab..d7e68d43 100644 --- a/src/ftermopenbsd.cpp +++ b/src/ftermopenbsd.cpp @@ -20,6 +20,7 @@ * . * ***********************************************************************/ +#include "final/fsystem.h" #include "final/fterm.h" #include "final/ftermopenbsd.h" diff --git a/src/ftermxterminal.cpp b/src/ftermxterminal.cpp index 7ecdcaa8..a10a2eea 100644 --- a/src/ftermxterminal.cpp +++ b/src/ftermxterminal.cpp @@ -20,9 +20,15 @@ * . * ***********************************************************************/ +#include "final/fc.h" +#include "final/fstring.h" #include "final/fterm.h" +#include "final/ftermcap.h" +#include "final/ftermdetection.h" #include "final/ftermfreebsd.h" +#include "final/ftermios.h" #include "final/ftermxterminal.h" +#include "final/fsize.h" namespace finalcut { diff --git a/src/ftextview.cpp b/src/ftextview.cpp index 3488a52f..a15c91a5 100644 --- a/src/ftextview.cpp +++ b/src/ftextview.cpp @@ -22,9 +22,15 @@ #include +#include "final/fapplication.h" +#include "final/fc.h" #include "final/fdialog.h" +#include "final/fevent.h" +#include "final/fstring.h" +#include "final/fscrollbar.h" #include "final/fstatusbar.h" #include "final/ftextview.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/ftogglebutton.cpp b/src/ftogglebutton.cpp index 5b5f1069..0e98cbb8 100644 --- a/src/ftogglebutton.cpp +++ b/src/ftogglebutton.cpp @@ -22,8 +22,11 @@ #include "final/fapplication.h" #include "final/fbuttongroup.h" +#include "final/fevent.h" +#include "final/fpoint.h" #include "final/fstatusbar.h" #include "final/ftogglebutton.h" +#include "final/fwidget.h" namespace finalcut { diff --git a/src/ftooltip.cpp b/src/ftooltip.cpp index 7ef2469c..ec2d078f 100644 --- a/src/ftooltip.cpp +++ b/src/ftooltip.cpp @@ -22,6 +22,7 @@ #include "final/fapplication.h" #include "final/ftooltip.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/fvterm.cpp b/src/fvterm.cpp index 1f9e3ed7..c1bed783 100644 --- a/src/fvterm.cpp +++ b/src/fvterm.cpp @@ -25,8 +25,16 @@ #include #include "final/fapplication.h" +#include "final/fcolorpair.h" +#include "final/fkeyboard.h" +#include "final/foptiattr.h" +#include "final/foptimove.h" +#include "final/fsystem.h" #include "final/fterm.h" +#include "final/ftermdata.h" #include "final/ftermbuffer.h" +#include "final/ftermcap.h" +#include "final/ftypes.h" #include "final/fvterm.h" #include "final/fwidget.h" #include "final/fwindow.h" @@ -56,10 +64,10 @@ FVTerm::term_area* FVTerm::vterm = nullptr; FVTerm::term_area* FVTerm::vdesktop = nullptr; FVTerm::term_area* FVTerm::active_area = nullptr; FKeyboard* FVTerm::keyboard = nullptr; -FVTerm::charData FVTerm::term_attribute; -FVTerm::charData FVTerm::next_attribute; -FVTerm::charData FVTerm::s_ch; -FVTerm::charData FVTerm::i_ch; +charData FVTerm::term_attribute; +charData FVTerm::next_attribute; +charData FVTerm::s_ch; +charData FVTerm::i_ch; //---------------------------------------------------------------------- @@ -1632,7 +1640,7 @@ void FVTerm::clearArea (term_area* area, int fillchar) } //---------------------------------------------------------------------- -FVTerm::charData FVTerm::generateCharacter (const FPoint& pos) +charData FVTerm::generateCharacter (const FPoint& pos) { // Generates characters for a given position considering all areas @@ -1701,9 +1709,9 @@ FVTerm::charData FVTerm::generateCharacter (const FPoint& pos) } //---------------------------------------------------------------------- -FVTerm::charData FVTerm::getCharacter ( character_type char_type - , const FPoint& pos - , FVTerm* obj ) +charData FVTerm::getCharacter ( character_type char_type + , const FPoint& pos + , FVTerm* obj ) { // Gets the overlapped or the covered character for a given position @@ -1768,16 +1776,14 @@ FVTerm::charData FVTerm::getCharacter ( character_type char_type } //---------------------------------------------------------------------- -FVTerm::charData FVTerm::getCoveredCharacter ( const FPoint& pos - , FVTerm* obj ) +charData FVTerm::getCoveredCharacter (const FPoint& pos, FVTerm* obj) { // Gets the covered character for a given position return getCharacter (covered_character, pos, obj); } //---------------------------------------------------------------------- -FVTerm::charData FVTerm::getOverlappedCharacter ( const FPoint& pos - , FVTerm* obj ) +charData FVTerm::getOverlappedCharacter (const FPoint& pos, FVTerm* obj) { // Gets the overlapped character for a given position return getCharacter (overlapped_character, pos, obj); @@ -2797,7 +2803,7 @@ int FVTerm::appendLowerRight (charData*& screen_char) //---------------------------------------------------------------------- inline void FVTerm::characterFilter (charData*& next_char) { - FTerm::characterSub& sub_map = fterm->getCharSubstitutionMap(); + charSubstitution& sub_map = fterm->getCharSubstitutionMap(); if ( sub_map.find(next_char->encoded_code) != sub_map.end() ) next_char->encoded_code = sub_map[next_char->encoded_code]; diff --git a/src/fwidget.cpp b/src/fwidget.cpp index 0aaea38d..f6898777 100644 --- a/src/fwidget.cpp +++ b/src/fwidget.cpp @@ -23,9 +23,12 @@ #include #include "final/fapplication.h" +#include "final/fevent.h" #include "final/fmenubar.h" #include "final/fstatusbar.h" +#include "final/fstring.h" #include "final/fwidget.h" +#include "final/fwidgetcolors.h" namespace finalcut { @@ -47,7 +50,6 @@ bool FWidget::init_desktop; bool FWidget::hideable; uInt FWidget::modal_dialogs; - //---------------------------------------------------------------------- // class FWidget //---------------------------------------------------------------------- @@ -2171,7 +2173,7 @@ void FWidget::draw() void FWidget::drawWindows() { // redraw windows - FOptiAttr::charData default_char; + charData default_char; default_char.code = ' '; default_char.fg_color = fc::Black; default_char.bg_color = fc::Black; diff --git a/src/fwidgetcolors.cpp b/src/fwidgetcolors.cpp index 8a98bbc4..c5213af5 100644 --- a/src/fwidgetcolors.cpp +++ b/src/fwidgetcolors.cpp @@ -20,6 +20,7 @@ * . * ***********************************************************************/ +#include "final/fc.h" #include "final/fterm.h" #include "final/fwidgetcolors.h" diff --git a/src/fwindow.cpp b/src/fwindow.cpp index 95ce6b13..f7cd50f4 100644 --- a/src/fwindow.cpp +++ b/src/fwindow.cpp @@ -21,6 +21,7 @@ ***********************************************************************/ #include "final/fapplication.h" +#include "final/fevent.h" #include "final/fmenubar.h" #include "final/fstatusbar.h" #include "final/fwindow.h" diff --git a/src/include/final/fapplication.h b/src/include/final/fapplication.h index 028b50ba..e13a8e32 100644 --- a/src/include/final/fapplication.h +++ b/src/include/final/fapplication.h @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2013-2018 Markus Gans * +* Copyright 2013-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -66,13 +66,26 @@ #include #include -#include "final/fevent.h" +#include "final/ftypes.h" #include "final/fwidget.h" -#include "final/fwindow.h" namespace finalcut { +// class forward declaration +class FEvent; +class FAccelEvent; +class FCloseEvent; +class FFocusEvent; +class FKeyEvent; +class FMouseEvent; +class FTimerEvent; +class FWheelEvent; +class FMouseControl; +class FKeyboard; +class FPoint; +class FObject; + //---------------------------------------------------------------------- // class FApplication //---------------------------------------------------------------------- diff --git a/src/include/final/fbutton.h b/src/include/final/fbutton.h index 5ec9abad..12bf069b 100644 --- a/src/include/final/fbutton.h +++ b/src/include/final/fbutton.h @@ -53,6 +53,7 @@ #endif #include "final/fwidget.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/include/final/fbuttongroup.h b/src/include/final/fbuttongroup.h index 7d50c92b..a6370505 100644 --- a/src/include/final/fbuttongroup.h +++ b/src/include/final/fbuttongroup.h @@ -54,6 +54,7 @@ #endif #include "final/fscrollview.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/include/final/fcolorpair.h b/src/include/final/fcolorpair.h index c109b9e1..1be32b10 100644 --- a/src/include/final/fcolorpair.h +++ b/src/include/final/fcolorpair.h @@ -35,7 +35,8 @@ #error "Only can be included directly." #endif -//#include ... +#include "final/fc.h" +#include "final/ftypes.h" namespace finalcut { diff --git a/src/include/final/fcolorpalette.h b/src/include/final/fcolorpalette.h index c14e8569..e588d824 100644 --- a/src/include/final/fcolorpalette.h +++ b/src/include/final/fcolorpalette.h @@ -35,8 +35,6 @@ #error "Only can be included directly." #endif -#include "final/fc.h" - namespace finalcut { diff --git a/src/include/final/fconfig.h b/src/include/final/fconfig.h index a1ab15de..1c5275ff 100644 --- a/src/include/final/fconfig.h +++ b/src/include/final/fconfig.h @@ -50,9 +50,7 @@ #endif /* Define to 1 if GPM mouse is enabled */ -#ifndef F_HAVE_LIBGPM -#define F_HAVE_LIBGPM 1 -#endif +/* #undef HAVE_LIBGPM */ /* Define to 1 if you have the header file. */ #ifndef F_HAVE_LINUX_FB_H diff --git a/src/include/final/fdialog.h b/src/include/final/fdialog.h index e912c467..c30a60f8 100644 --- a/src/include/final/fdialog.h +++ b/src/include/final/fdialog.h @@ -57,13 +57,14 @@ #endif #include "final/fmenu.h" -#include "final/fmenuitem.h" -#include "final/ftooltip.h" #include "final/fwindow.h" namespace finalcut { +// class forward declaration +class FToolTip; + //---------------------------------------------------------------------- // class FDialog //---------------------------------------------------------------------- diff --git a/src/include/final/fevent.h b/src/include/final/fevent.h index 5d186224..87fe0b6e 100644 --- a/src/include/final/fevent.h +++ b/src/include/final/fevent.h @@ -65,7 +65,11 @@ * │ ▕▁▁▁▁▁▁▁▁▁▁▁▁▁▏ * │ * │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▔▏ - * └─────▏FTimerEvent ▏ + * ├─────▏FTimerEvent ▏ + * │ ▕▁▁▁▁▁▁▁▁▁▁▁▁▁▏ + * │ + * │ ▕▔▔▔▔▔▔▔▔▔▔▔▔▔▏ + * └─────▏FUserEvent ▏ * ▕▁▁▁▁▁▁▁▁▁▁▁▁▁▏ */ @@ -83,6 +87,9 @@ namespace finalcut { +// class forward declaration +class FPoint; + //---------------------------------------------------------------------- // class FEvent //---------------------------------------------------------------------- diff --git a/src/include/final/ffiledialog.h b/src/include/final/ffiledialog.h index 27b53b9e..6b40f57b 100644 --- a/src/include/final/ffiledialog.h +++ b/src/include/final/ffiledialog.h @@ -63,11 +63,13 @@ #endif #include +#include #include #include #include #include +#include #include #include diff --git a/src/include/final/final.h b/src/include/final/final.h index 21bdd84e..c90cddde 100644 --- a/src/include/final/final.h +++ b/src/include/final/final.h @@ -4,7 +4,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2014-2018 Markus Gans * +* Copyright 2014-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -26,15 +26,21 @@ #define USE_FINAL_H +#include #include #include #include #include +#include "final/fc.h" +#include "final/fcolorpair.h" +#include "final/fcharmap.h" #include #include #include #include +#include #include +#include #include #include #include @@ -43,6 +49,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -52,11 +61,31 @@ #include #include #include +#include #include +#include +#include +#include +#include +#include +#include #include #include +#include #include +#if defined(UNIT_TEST) + #include "final/ftermlinux.h" + #include "final/ftermfreebsd.h" + #include "final/ftermopenbsd.h" +#elif defined(__linux__) + #include "final/ftermlinux.h" +#elif defined(__FreeBSD__) || defined(__DragonFly__) + #include "final/ftermfreebsd.h" +#elif defined(__NetBSD__) || defined(__OpenBSD__) + #include "final/ftermopenbsd.h" +#endif + #undef USE_FINAL_H #endif // FINAL_H diff --git a/src/include/final/fkeyboard.h b/src/include/final/fkeyboard.h index efdea002..274a59d7 100644 --- a/src/include/final/fkeyboard.h +++ b/src/include/final/fkeyboard.h @@ -35,19 +35,15 @@ #error "Only can be included directly." #endif -#include "final/fobject.h" #include "final/ftypes.h" -#if defined(__linux__) - #include "final/ftermlinux.h" -#endif - namespace finalcut { // class forward declaration class FApplication; - +class FString; +class FTermLinux; //---------------------------------------------------------------------- // class FKeyboardCommand diff --git a/src/include/final/flabel.h b/src/include/final/flabel.h index 285d3e18..fcf52545 100644 --- a/src/include/final/flabel.h +++ b/src/include/final/flabel.h @@ -55,6 +55,7 @@ #include #include "final/fwidget.h" +#include "final/fwidgetcolors.h" namespace finalcut { diff --git a/src/include/final/flineedit.h b/src/include/final/flineedit.h index b108d673..f1144184 100644 --- a/src/include/final/flineedit.h +++ b/src/include/final/flineedit.h @@ -53,11 +53,13 @@ #endif #include "final/fwidget.h" -#include "final/flabel.h" namespace finalcut { +// class forward declaration +class FLabel; + //---------------------------------------------------------------------- // class FLineEdit //---------------------------------------------------------------------- diff --git a/src/include/final/flistbox.h b/src/include/final/flistbox.h index bd3c57ff..aa0cd6c7 100644 --- a/src/include/final/flistbox.h +++ b/src/include/final/flistbox.h @@ -56,13 +56,15 @@ e Copyright 2014-2019 Markus Gans * #include #include -#include "final/fscrollbar.h" -#include "final/fstring.h" #include "final/fwidget.h" namespace finalcut { +// class forward declaration +class FScrollbar; +class FString; + //---------------------------------------------------------------------- // class FListBoxItem //---------------------------------------------------------------------- diff --git a/src/include/final/flistview.h b/src/include/final/flistview.h index de69c091..6f6709be 100644 --- a/src/include/final/flistview.h +++ b/src/include/final/flistview.h @@ -57,8 +57,6 @@ #include #include -#include "final/fscrollbar.h" -#include "final/fstring.h" #include "final/ftermbuffer.h" #include "final/fwidget.h" @@ -67,6 +65,8 @@ namespace finalcut // class forward declaration class FListView; +class FScrollbar; +class FString; //---------------------------------------------------------------------- // class FListViewItem diff --git a/src/include/final/fmenu.h b/src/include/final/fmenu.h index 5f5f8da7..33566411 100644 --- a/src/include/final/fmenu.h +++ b/src/include/final/fmenu.h @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2015-2018 Markus Gans * +* Copyright 2015-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -60,13 +60,15 @@ #endif #include "final/fwindow.h" -#include "final/fmenubar.h" #include "final/fmenulist.h" -#include "final/fmenuitem.h" namespace finalcut { +// class forward declaration +class FMenuBar; +class FMenuItem; + //---------------------------------------------------------------------- // class FMenu //---------------------------------------------------------------------- diff --git a/src/include/final/fmenubar.h b/src/include/final/fmenubar.h index 144bf90c..b78be7fb 100644 --- a/src/include/final/fmenubar.h +++ b/src/include/final/fmenubar.h @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2015-2018 Markus Gans * +* Copyright 2015-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -59,13 +59,15 @@ #error "Only can be included directly." #endif -#include "final/fmenu.h" #include "final/fmenulist.h" #include "final/fwindow.h" namespace finalcut { +// class forward declaration +class FMenu; + //---------------------------------------------------------------------- // class FMenuBar //---------------------------------------------------------------------- diff --git a/src/include/final/fmessagebox.h b/src/include/final/fmessagebox.h index 829ae318..f938b586 100644 --- a/src/include/final/fmessagebox.h +++ b/src/include/final/fmessagebox.h @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2014-2018 Markus Gans * +* Copyright 2014-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -64,13 +64,15 @@ #include -#include "final/fbutton.h" #include "final/fdialog.h" -#include "final/fterm.h" +#include "final/fwidgetcolors.h" namespace finalcut { +// class forward declaration +class FButton; + //---------------------------------------------------------------------- // class FMessageBox //---------------------------------------------------------------------- diff --git a/src/include/final/fmouse.h b/src/include/final/fmouse.h index 221d5154..14368b65 100644 --- a/src/include/final/fmouse.h +++ b/src/include/final/fmouse.h @@ -63,10 +63,8 @@ #include #include -#include "final/fconfig.h" #include "final/fkeyboard.h" #include "final/fpoint.h" -#include "final/ftypes.h" #if defined(__linux__) #include // need for gpm keyboard modifiers diff --git a/src/include/final/fobject.h b/src/include/final/fobject.h index ca93937c..e0bbd1e5 100644 --- a/src/include/final/fobject.h +++ b/src/include/final/fobject.h @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2015-2018 Markus Gans * +* Copyright 2015-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -48,14 +48,22 @@ #include #include -#include "final/emptyfstring.h" -#include "final/fc.h" -#include "final/fevent.h" -#include "final/ftypes.h" - namespace finalcut { +// class forward declaration +class FEvent; +class FKeyEvent; +class FMouseEvent; +class FWheelEvent; +class FFocusEvent; +class FAccelEvent; +class FShowEvent; +class FHideEvent; +class FCloseEvent; +class FTimerEvent; +class FUserEvent; + //---------------------------------------------------------------------- // class FObject //---------------------------------------------------------------------- diff --git a/src/include/final/foptiattr.h b/src/include/final/foptiattr.h index 299c872d..23f670ce 100644 --- a/src/include/final/foptiattr.h +++ b/src/include/final/foptiattr.h @@ -58,9 +58,6 @@ #include // need for std::swap -#include "final/fc.h" -#include "final/ftypes.h" - namespace finalcut { @@ -74,46 +71,7 @@ namespace finalcut class FOptiAttr final { public: - // Typedefs - typedef struct - { - wchar_t code; // character code - wchar_t encoded_code; // encoded output character - FColor fg_color; // foreground color - FColor bg_color; // background color - - union attribute - { - struct - { - // Attribute byte #0 - uInt8 bold : 1; // bold - uInt8 dim : 1; // dim - uInt8 italic : 1; // italic - uInt8 underline : 1; // underline - uInt8 blink : 1; // blink - uInt8 reverse : 1; // reverse - uInt8 standout : 1; // standout - uInt8 invisible : 1; // invisible - // Attribute byte #1 - uInt8 protect : 1; // protect mode - uInt8 crossed_out : 1; // crossed out - uInt8 dbl_underline : 1; // double underline - uInt8 alt_charset : 1; // alternate character set (vt100) - uInt8 pc_charset : 1; // pc character set (CP437) - uInt8 transparent : 1; // transparent - uInt8 trans_shadow : 1; // transparent shadow - uInt8 inherit_bg : 1; // inherit background - // Attribute byte #2 - uInt8 no_changes : 1; // no changes required - uInt8 printed : 1; // is printed to VTerm - uInt8 : 6; // padding bits - } bit; - - uInt8 byte[3]; - } attr; - } charData; - + // Typedef typedef struct { bool ansi_default_color; @@ -381,8 +339,8 @@ class FOptiAttr final // FOptiAttr inline functions //---------------------------------------------------------------------- -inline bool operator == ( const FOptiAttr::charData& lhs, - const FOptiAttr::charData& rhs ) +inline bool operator == ( const charData& lhs, + const charData& rhs ) { return lhs.code == rhs.code && lhs.fg_color == rhs.fg_color @@ -392,8 +350,8 @@ inline bool operator == ( const FOptiAttr::charData& lhs, } //---------------------------------------------------------------------- -inline bool operator != ( const FOptiAttr::charData& lhs, - const FOptiAttr::charData& rhs ) +inline bool operator != ( const charData& lhs, + const charData& rhs ) { return ! ( lhs == rhs ); } //---------------------------------------------------------------------- diff --git a/src/include/final/foptimove.h b/src/include/final/foptimove.h index 772a91d0..dbd1d1f8 100644 --- a/src/include/final/foptimove.h +++ b/src/include/final/foptimove.h @@ -63,8 +63,6 @@ #include #include -#include "final/ftypes.h" - namespace finalcut { diff --git a/src/include/final/fpoint.h b/src/include/final/fpoint.h index e775e94d..ef86c8ee 100644 --- a/src/include/final/fpoint.h +++ b/src/include/final/fpoint.h @@ -36,7 +36,6 @@ #endif #include -#include "final/ftypes.h" namespace finalcut { diff --git a/src/include/final/frect.h b/src/include/final/frect.h index a9f7a0e2..5e1ae4dd 100644 --- a/src/include/final/frect.h +++ b/src/include/final/frect.h @@ -40,12 +40,14 @@ #endif #include -#include "final/fpoint.h" -#include "final/fsize.h" namespace finalcut { +// class forward declaration +class FPoint; +class FSize; + //---------------------------------------------------------------------- // class FRect //---------------------------------------------------------------------- @@ -186,26 +188,6 @@ inline int FRect::getX() const inline int FRect::getY() const { return Y1; } -//---------------------------------------------------------------------- -inline FPoint FRect::getPos() const -{ return FPoint(X1, Y1); } - -//---------------------------------------------------------------------- -inline FPoint FRect::getUpperLeftPos() const -{ return FPoint(X1, Y1); } - -//---------------------------------------------------------------------- -inline FPoint FRect::getUpperRightPos() const -{ return FPoint(X2, Y1); } - -//---------------------------------------------------------------------- -inline FPoint FRect::getLowerLeftPos() const -{ return FPoint(X1, Y2); } - -//---------------------------------------------------------------------- -inline FPoint FRect::getLowerRightPos() const -{ return FPoint(X2, Y2); } - //---------------------------------------------------------------------- inline std::size_t FRect::getWidth() const { @@ -220,10 +202,6 @@ inline std::size_t FRect::getHeight() const return ( h < 0 ) ? 0 : std::size_t(h); } -//---------------------------------------------------------------------- -inline FSize FRect::getSize() const -{ return FSize(getWidth(), getHeight()); } - //---------------------------------------------------------------------- inline int& FRect::x1_ref() { return X1; } diff --git a/src/include/final/fsize.h b/src/include/final/fsize.h index 1efd77e1..f424e78d 100644 --- a/src/include/final/fsize.h +++ b/src/include/final/fsize.h @@ -36,6 +36,7 @@ #endif #include + #include "final/ftypes.h" namespace finalcut diff --git a/src/include/final/fstatusbar.h b/src/include/final/fstatusbar.h index c5e6c7c8..925018a4 100644 --- a/src/include/final/fstatusbar.h +++ b/src/include/final/fstatusbar.h @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2014-2018 Markus Gans * +* Copyright 2014-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -61,6 +61,7 @@ #include +#include "final/fwidget.h" #include "final/fwindow.h" namespace finalcut diff --git a/src/include/final/fterm.h b/src/include/final/fterm.h index 5b0715ee..86706eda 100644 --- a/src/include/final/fterm.h +++ b/src/include/final/fterm.h @@ -115,41 +115,36 @@ #include #include "final/fc.h" -#include "final/fcolorpalette.h" -#include "final/fkey_map.h" -#include "final/fkeyboard.h" -#include "final/fmouse.h" -#include "final/foptiattr.h" -#include "final/foptimove.h" -#include "final/fpoint.h" -#include "final/frect.h" #include "final/fstring.h" -#include "final/fsystem.h" -#include "final/fsystemimpl.h" -#include "final/ftermcap.h" -#include "final/ftermcapquirks.h" -#include "final/ftermdata.h" -#include "final/ftermdebugdata.h" -#include "final/ftermdetection.h" - -#if defined(UNIT_TEST) - #include "final/ftermlinux.h" - #include "final/ftermfreebsd.h" - #include "final/ftermopenbsd.h" -#elif defined(__linux__) - #include "final/ftermlinux.h" -#elif defined(__FreeBSD__) || defined(__DragonFly__) - #include "final/ftermfreebsd.h" -#elif defined(__NetBSD__) || defined(__OpenBSD__) - #include "final/ftermopenbsd.h" -#endif - -#include "final/ftermios.h" -#include "final/ftermxterminal.h" namespace finalcut { +// class forward declaration +class FKeyboard; +class FMouseControl; +class FOptiAttr; +class FOptiMove; +class FSize; +class FString; +class FSystem; +class FTermData; +class FTermDebugData; +class FTermDetection; +class FTermXTerminal; + +#if defined(UNIT_TEST) + class FTermLinux; + class FTermFreeBSD; + class FTermOpenBSD; +#elif defined(__linux__) + class FTermLinux; +#elif defined(__FreeBSD__) || defined(__DragonFly__) + class FTermFreeBSD; +#elif defined(__NetBSD__) || defined(__OpenBSD__) + class FTermOpenBSD; +#endif + //---------------------------------------------------------------------- // class FTerm //---------------------------------------------------------------------- @@ -160,10 +155,6 @@ namespace finalcut class FTerm final { public: - // Typedefs - typedef FOptiAttr::charData charData; - typedef FTermData::characterSub characterSub; - struct initializationValues; // forward declaration // Constructor @@ -189,7 +180,7 @@ class FTerm final static int getTabstop(); static int getMaxColor(); initializationValues& getInitValues(); - characterSub& getCharSubstitutionMap(); + charSubstitution& getCharSubstitutionMap(); static FTermData* getFTermData(); static FSystem* getFSystem(); @@ -447,369 +438,10 @@ class FTerm final inline const char* FTerm::getClassName() const { return "FTerm"; } -//---------------------------------------------------------------------- -inline int FTerm::getTTYFileDescriptor() -{ return ( data ) ? data->getTTYFileDescriptor() : 0; } - -//---------------------------------------------------------------------- -inline char* FTerm::getTermType() -{ return data->getTermType(); } - -//---------------------------------------------------------------------- -inline char* FTerm::getTermFileName() -{ return data->getTermFileName(); } - -//---------------------------------------------------------------------- -inline int FTerm::getTabstop() -{ return FTermcap::tabstop; } - -//---------------------------------------------------------------------- -inline int FTerm::getMaxColor() -{ return FTermcap::max_color; } - //---------------------------------------------------------------------- inline FTerm::initializationValues& FTerm::getInitValues() { return init_values; } -//---------------------------------------------------------------------- -inline FTerm::characterSub& FTerm::getCharSubstitutionMap() -{ return data->getCharSubstitutionMap(); } - -//---------------------------------------------------------------------- -inline FTermData* FTerm::getFTermData() -{ - if ( data == 0 ) - { - try - { - data = new FTermData; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return data; -} - -//---------------------------------------------------------------------- -inline FSystem* FTerm::getFSystem() -{ - if ( fsys == 0 ) - { - try - { - fsys = new FSystemImpl; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return fsys; -} - -//---------------------------------------------------------------------- -inline FOptiMove* FTerm::getFOptiMove() -{ - if ( opti_move == 0 ) - { - try - { - opti_move = new FOptiMove; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return opti_move; -} - -//---------------------------------------------------------------------- -inline FOptiAttr* FTerm::getFOptiAttr() -{ - if ( opti_attr == 0 ) - { - try - { - opti_attr = new FOptiAttr; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return opti_attr; -} - -//---------------------------------------------------------------------- -inline FTermDetection* FTerm::getFTermDetection() -{ - if ( term_detection == 0 ) - { - try - { - term_detection = new FTermDetection; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return term_detection; -} -//---------------------------------------------------------------------- -inline FTermXTerminal* FTerm::getFTermXTerminal() -{ - if ( xterm == 0 ) - { - try - { - xterm = new FTermXTerminal; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return xterm; -} -//---------------------------------------------------------------------- -inline FKeyboard* FTerm::getFKeyboard() -{ - if ( keyboard == 0 ) - { - try - { - keyboard = new FKeyboard; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return keyboard; -} -//---------------------------------------------------------------------- -inline FMouseControl* FTerm::getFMouseControl() -{ - if ( mouse == 0 ) - { - try - { - mouse = new FMouseControl; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return mouse; -} - -#if defined(__linux__) -//---------------------------------------------------------------------- -inline FTermLinux* FTerm::getFTermLinux() -{ - if ( linux == 0 ) - { - try - { - linux = new FTermLinux; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return linux; -} - -#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(UNIT_TEST) -//---------------------------------------------------------------------- -inline FTermFreeBSD* FTerm::getFTermFreeBSD() -{ - if ( freebsd == 0 ) - { - try - { - freebsd = new FTermFreeBSD; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return freebsd; -} - -#elif defined(__NetBSD__) || defined(__OpenBSD__) || defined(UNIT_TEST) -//---------------------------------------------------------------------- -inline FTermOpenBSD* FTerm::getFTermOpenBSD() -{ - if ( openbsd == 0 ) - { - try - { - openbsd = new FTermOpenBSD; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return openbsd; -} -#endif - -#if DEBUG -//---------------------------------------------------------------------- -inline FTermDebugData& FTerm::getFTermDebugData() -{ - if ( debug_data == 0 ) - { - try - { - debug_data = new FTermDebugData; - } - catch (const std::bad_alloc& ex) - { - std::cerr << bad_alloc_str << ex.what() << std::endl; - std::abort(); - } - } - - return *debug_data; -} -#endif // DEBUG - -//---------------------------------------------------------------------- -inline bool FTerm::hasUTF8() -{ return data->hasUTF8Console(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isMonochron() -{ return data->isMonochron(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isXTerminal() -{ return term_detection->isXTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isAnsiTerminal() -{ return term_detection->isAnsiTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isRxvtTerminal() -{ return term_detection->isRxvtTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isUrxvtTerminal() -{ return term_detection->isUrxvtTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isMltermTerminal() -{ return term_detection->isMltermTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isPuttyTerminal() -{ return term_detection->isPuttyTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isKdeTerminal() -{ return term_detection->isKdeTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isGnomeTerminal() -{ return term_detection->isGnomeTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isKtermTerminal() -{ return term_detection->isKtermTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isTeraTerm() -{ return term_detection->isTeraTerm(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isSunTerminal() -{ return term_detection->isSunTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isCygwinTerminal() -{ return term_detection->isCygwinTerminal(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isMinttyTerm() -{ return term_detection->isMinttyTerm(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isLinuxTerm() -{ return term_detection->isLinuxTerm(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isFreeBSDTerm() -{ return term_detection->isFreeBSDTerm(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isNetBSDTerm() -{ return term_detection->isNetBSDTerm(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isOpenBSDTerm() -{ return term_detection->isOpenBSDTerm(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isScreenTerm() -{ return term_detection->isScreenTerm(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isTmuxTerm() -{ return term_detection->isTmuxTerm(); } - -//---------------------------------------------------------------------- -inline bool FTerm::isNewFont() -{ return data->isNewFont(); } - -//---------------------------------------------------------------------- -inline bool FTerm::hasChangedTermSize() -{ return data->hasTermResized(); } - -//---------------------------------------------------------------------- -inline bool FTerm::hasShadowCharacter() -{ return data->hasShadowCharacter(); } - -//---------------------------------------------------------------------- -inline bool FTerm::hasHalfBlockCharacter() -{ return data->hasHalfBlockCharacter(); } - -//---------------------------------------------------------------------- -inline bool FTerm::hasAlternateScreen() -{ return data->hasAlternateScreen(); } - //---------------------------------------------------------------------- inline void FTerm::setFSystem (FSystem* fsystem) { fsys = fsystem; } @@ -822,10 +454,6 @@ inline bool FTerm::setUTF8() inline bool FTerm::unsetUTF8() { return setUTF8(false); } -//---------------------------------------------------------------------- -inline void FTerm::changeTermSizeFinished() -{ data->setTermResized(false); } - } // namespace finalcut diff --git a/src/include/final/ftermbuffer.h b/src/include/final/ftermbuffer.h index 9005e54a..b5c667e5 100644 --- a/src/include/final/ftermbuffer.h +++ b/src/include/final/ftermbuffer.h @@ -39,12 +39,12 @@ #include #include -#include "final/fvterm.h" -#include "final/fstring.h" - namespace finalcut { +// class forward declaration +class FColorPair; + //---------------------------------------------------------------------- // class FTermBuffer //---------------------------------------------------------------------- @@ -56,7 +56,6 @@ class FTermBuffer { public: // Typedef - typedef FOptiAttr::charData charData; typedef std::vector charDataVector; // Constructor diff --git a/src/include/final/ftermcap.h b/src/include/final/ftermcap.h index c632d702..63d0b6d3 100644 --- a/src/include/final/ftermcap.h +++ b/src/include/final/ftermcap.h @@ -58,17 +58,16 @@ #include #include -#include "final/emptyfstring.h" -#include "final/fkey_map.h" -#include "final/ftermdetection.h" - - // FTermcap string macro #define TCAP(...) FTermcap::strings[__VA_ARGS__].string namespace finalcut { +// class forward declaration +class FTermData; +class FTermDetection; + //---------------------------------------------------------------------- // class FTermcap //---------------------------------------------------------------------- diff --git a/src/include/final/ftermcapquirks.h b/src/include/final/ftermcapquirks.h index a22c72e6..dd258276 100644 --- a/src/include/final/ftermcapquirks.h +++ b/src/include/final/ftermcapquirks.h @@ -35,15 +35,13 @@ #error "Only can be included directly." #endif -#include "final/fc.h" -#include "final/fterm.h" -#include "final/ftermcap.h" -#include "final/ftermdata.h" -#include "final/ftermdetection.h" - namespace finalcut { +// class forward declaration +class FTermData; +class FTermDetection; + //---------------------------------------------------------------------- // class FTermcapsQuirks //---------------------------------------------------------------------- diff --git a/src/include/final/ftermdata.h b/src/include/final/ftermdata.h index bce63091..80e78382 100644 --- a/src/include/final/ftermdata.h +++ b/src/include/final/ftermdata.h @@ -58,7 +58,6 @@ class FTermData final public: // Typedefs typedef std::unordered_map encodingMap; - typedef std::unordered_map characterSub; // Constructors FTermData() {} @@ -73,89 +72,88 @@ class FTermData final FTermData& operator = (const FTermData&) = delete; // Accessors - const char* getClassName() const; - encodingMap& getEncodingList(); - characterSub& getCharSubstitutionMap(); - fc::encoding getTermEncoding() const; - FRect& getTermGeometry(); - int getTTYFileDescriptor() const; - uInt getBaudrate() const; - char* getTermType(); - char* getTermFileName(); - const FString& getXtermFont() const; - const FString& getXtermTitle() const; + const char* getClassName() const; + encodingMap& getEncodingList(); + charSubstitution& getCharSubstitutionMap(); + fc::encoding getTermEncoding() const; + FRect& getTermGeometry(); + int getTTYFileDescriptor() const; + uInt getBaudrate() const; + char* getTermType(); + char* getTermFileName(); + const FString& getXtermFont() const; + const FString& getXtermTitle() const; #if DEBUG - int getFramebufferBpp() const; + int getFramebufferBpp() const; #endif // Inquiries - bool hasShadowCharacter() const; - bool hasHalfBlockCharacter() const; - bool hasCursorOptimisation() const; - bool isCursorHidden() const; - bool hasAlternateScreen() const; - bool hasASCIIConsole() const; - bool hasVT100Console() const; - bool hasUTF8Console() const; - bool isUTF8() const; - bool isNewFont() const; - bool isVGAFont() const; - bool isMonochron() const; - bool hasTermResized() const; + bool hasShadowCharacter() const; + bool hasHalfBlockCharacter() const; + bool hasCursorOptimisation() const; + bool isCursorHidden() const; + bool hasAlternateScreen() const; + bool hasASCIIConsole() const; + bool hasVT100Console() const; + bool hasUTF8Console() const; + bool isUTF8() const; + bool isNewFont() const; + bool isVGAFont() const; + bool isMonochron() const; + bool hasTermResized() const; // Mutators - void setTermEncoding(fc::encoding); - void setTTYFileDescriptor (int); - void setBaudrate (uInt); - void supportShadowCharacter (bool); - void supportHalfBlockCharacter (bool); - void supportCursorOptimisation (bool); - void setCursorHidden (bool); - void useAlternateScreen (bool); - void setASCIIConsole (bool); - void setVT100Console (bool); - void setUTF8Console (bool); - void setUTF8 (bool); - void setNewFont (bool); - void setVGAFont (bool); - void setMonochron (bool); - void setTermResized (bool); - void setTermType (const char[]); - void setTermFileName (const char[]); - void setXtermFont (const FString&); - void setXtermTitle (const FString&); + void setTermEncoding(fc::encoding); + void setTTYFileDescriptor (int); + void setBaudrate (uInt); + void supportShadowCharacter (bool); + void supportHalfBlockCharacter (bool); + void supportCursorOptimisation (bool); + void setCursorHidden (bool); + void useAlternateScreen (bool); + void setASCIIConsole (bool); + void setVT100Console (bool); + void setUTF8Console (bool); + void setUTF8 (bool); + void setNewFont (bool); + void setVGAFont (bool); + void setMonochron (bool); + void setTermResized (bool); + void setTermType (const char[]); + void setTermFileName (const char[]); + void setXtermFont (const FString&); + void setXtermTitle (const FString&); #if DEBUG - void setFramebufferBpp (int); + void setFramebufferBpp (int); #endif private: // Data Members - encodingMap encoding_list{}; - characterSub char_substitution_map{}; - fc::encoding term_encoding{fc::UNKNOWN}; - FRect term_geometry{}; // current terminal geometry - int fd_tty{-1}; // Teletype (tty) file descriptor is still undefined - uInt baudrate{0}; - bool shadow_character{true}; - bool half_block_character{true}; - bool cursor_optimisation{true}; - bool hidden_cursor{false}; // Global cursor hidden state - bool use_alternate_screen{true}; - bool ascii_console{false}; - bool vt100_console{false}; - bool utf8_console{false}; - bool utf8_state{false}; - bool new_font{false}; - bool vga_font{false}; - bool monochron{false}; - bool resize_term{false}; - char termtype[256]{'\0'}; - char termfilename[256]{'\0'}; - FString xterm_font{}; - FString xterm_title{}; - + encodingMap encoding_list{}; + charSubstitution char_substitution_map{}; + fc::encoding term_encoding{fc::UNKNOWN}; + FRect term_geometry{}; // current terminal geometry + int fd_tty{-1}; // Teletype (tty) file descriptor is still undefined + uInt baudrate{0}; + bool shadow_character{true}; + bool half_block_character{true}; + bool cursor_optimisation{true}; + bool hidden_cursor{false}; // Global cursor hidden state + bool use_alternate_screen{true}; + bool ascii_console{false}; + bool vt100_console{false}; + bool utf8_console{false}; + bool utf8_state{false}; + bool new_font{false}; + bool vga_font{false}; + bool monochron{false}; + bool resize_term{false}; + char termtype[256]{'\0'}; + char termfilename[256]{'\0'}; + FString xterm_font{}; + FString xterm_title{}; #if DEBUG - int framebuffer_bpp{-1}; + int framebuffer_bpp{-1}; #endif }; #pragma pack(pop) @@ -170,7 +168,7 @@ inline FTermData::encodingMap& FTermData::getEncodingList() { return encoding_list; } //---------------------------------------------------------------------- -inline FTermData::characterSub& FTermData::getCharSubstitutionMap() +inline charSubstitution& FTermData::getCharSubstitutionMap() { return char_substitution_map; } //---------------------------------------------------------------------- diff --git a/src/include/final/ftermdebugdata.h b/src/include/final/ftermdebugdata.h index 91081897..f6f36eb8 100644 --- a/src/include/final/ftermdebugdata.h +++ b/src/include/final/ftermdebugdata.h @@ -40,6 +40,8 @@ namespace finalcut // class forward declaration class FTerm; +class FTermData; +class FTermDetection; #if DEBUG //---------------------------------------------------------------------- @@ -79,33 +81,6 @@ class FTermDebugData final static FTermData* data; static FTermDetection* term_detection; }; - -//---------------------------------------------------------------------- -inline const FString& FTermDebugData::getAnswerbackString() -{ return term_detection->getAnswerbackString(); } - -//---------------------------------------------------------------------- -inline const FString& FTermDebugData::getSecDAString() -{ return term_detection->getSecDAString(); } - -//---------------------------------------------------------------------- -inline const char* FTermDebugData::getTermType_256color() -{ return term_detection->getTermType_256color(); } - -//---------------------------------------------------------------------- -inline const char* FTermDebugData::getTermType_Answerback() -{ return term_detection->getTermType_Answerback(); } - -//---------------------------------------------------------------------- -inline const char* FTermDebugData::getTermType_SecDA() -{ return term_detection->getTermType_SecDA(); } - -//---------------------------------------------------------------------- -#if defined(__linux__) -inline int FTermDebugData::getFramebufferBpp() -{ return data->getFramebufferBpp(); } -#endif // defined(__linux__) - #endif // DEBUG } // namespace finalcut diff --git a/src/include/final/ftermdetection.h b/src/include/final/ftermdetection.h index d071ea30..94451fd1 100644 --- a/src/include/final/ftermdetection.h +++ b/src/include/final/ftermdetection.h @@ -41,13 +41,6 @@ #include #include -#include "final/fc.h" -#include "final/fconfig.h" -#include "final/fsystem.h" -#include "final/ftermdata.h" -#include "final/ftermios.h" -#include "final/ftypes.h" - namespace finalcut { @@ -267,14 +260,6 @@ inline FTermDetection::terminalType& FTermDetection::getTermTypeStruct() { return terminal_type; } #if DEBUG -//---------------------------------------------------------------------- -inline const FString& FTermDetection::getAnswerbackString() -{ return ( answer_back ) ? *answer_back : fc::emptyFString::get(); } - -//---------------------------------------------------------------------- -inline const FString& FTermDetection::getSecDAString() -{ return ( sec_da ) ? *sec_da : fc::emptyFString::get(); } - //---------------------------------------------------------------------- inline const char* FTermDetection::getTermType_256color() { return termtype_256color; } diff --git a/src/include/final/ftermfreebsd.h b/src/include/final/ftermfreebsd.h index 331352b9..3fbac38e 100644 --- a/src/include/final/ftermfreebsd.h +++ b/src/include/final/ftermfreebsd.h @@ -36,8 +36,6 @@ #endif #include "final/fc.h" -#include "final/fsystem.h" -#include "final/ftypes.h" #if defined(__FreeBSD__) || defined(__DragonFly__) #undef mouse_info // consio.h @@ -50,6 +48,9 @@ namespace finalcut { +// class forward declaration +class FSystem; + //---------------------------------------------------------------------- // class FTermFreeBSD //---------------------------------------------------------------------- diff --git a/src/include/final/ftermlinux.h b/src/include/final/ftermlinux.h index f34b0fef..86812579 100644 --- a/src/include/final/ftermlinux.h +++ b/src/include/final/ftermlinux.h @@ -51,15 +51,16 @@ #include // need for sprintf #include -#include "final/fc.h" -#include "final/fcharmap.h" -#include "final/fsystem.h" -#include "final/ftermdetection.h" -#include "final/ftypes.h" +#include "final/ftermdata.h" namespace finalcut { +// class forward declaration +class FSystem; +class FTermData; +class FTermDetection; + //---------------------------------------------------------------------- // class FTermLinux //---------------------------------------------------------------------- @@ -134,8 +135,6 @@ class FTermLinux final rgb color[16]; } ColorMap; - typedef FTermData::characterSub characterSub; - // Accessors static int getFramebuffer_bpp(); static bool getScreenFont(); diff --git a/src/include/final/ftermopenbsd.h b/src/include/final/ftermopenbsd.h index 0be3b2e1..c21a4be0 100644 --- a/src/include/final/ftermopenbsd.h +++ b/src/include/final/ftermopenbsd.h @@ -36,7 +36,6 @@ #endif #include -#include "final/fsystem.h" #if defined(UNIT_TEST) #define WSKBDIO_GETENCODING uInt32(0x4004570F) @@ -50,6 +49,9 @@ namespace finalcut { +// class forward declaration +class FSystem; + //---------------------------------------------------------------------- // class FTermOpenBSD //---------------------------------------------------------------------- diff --git a/src/include/final/ftermxterminal.h b/src/include/final/ftermxterminal.h index b902cf72..c1911efd 100644 --- a/src/include/final/ftermxterminal.h +++ b/src/include/final/ftermxterminal.h @@ -35,14 +35,14 @@ #error "Only can be included directly." #endif -#include "final/fc.h" -#include "final/fstring.h" -#include "final/ftermcap.h" -#include "final/ftermdetection.h" - namespace finalcut { +// class forward declaration +class FString; +class FSystem; +class FTermDetection; + //---------------------------------------------------------------------- // class FTermXTerminal //---------------------------------------------------------------------- diff --git a/src/include/final/ftextview.h b/src/include/final/ftextview.h index 6aa709a0..f54309e8 100644 --- a/src/include/final/ftextview.h +++ b/src/include/final/ftextview.h @@ -55,15 +55,14 @@ #include #include -#include "final/fapplication.h" -#include "final/fscrollbar.h" -#include "final/fstatusbar.h" -#include "final/fstring.h" #include "final/fwidget.h" namespace finalcut { +// class forward declaration +class FString; + //---------------------------------------------------------------------- // class FTextView //---------------------------------------------------------------------- diff --git a/src/include/final/ftypes.h b/src/include/final/ftypes.h index 12020637..bc8a5990 100644 --- a/src/include/final/ftypes.h +++ b/src/include/final/ftypes.h @@ -32,6 +32,7 @@ #include #include +#include #include #define null nullptr @@ -103,6 +104,51 @@ struct getPrecision } }; +typedef std::unordered_map charSubstitution; + +#pragma pack(push) +#pragma pack(1) + +typedef struct +{ + wchar_t code; // character code + wchar_t encoded_code; // encoded output character + FColor fg_color; // foreground color + FColor bg_color; // background color + + union attribute + { + struct + { + // Attribute byte #0 + uInt8 bold : 1; // bold + uInt8 dim : 1; // dim + uInt8 italic : 1; // italic + uInt8 underline : 1; // underline + uInt8 blink : 1; // blink + uInt8 reverse : 1; // reverse + uInt8 standout : 1; // standout + uInt8 invisible : 1; // invisible + // Attribute byte #1 + uInt8 protect : 1; // protect mode + uInt8 crossed_out : 1; // crossed out + uInt8 dbl_underline : 1; // double underline + uInt8 alt_charset : 1; // alternate character set (vt100) + uInt8 pc_charset : 1; // pc character set (CP437) + uInt8 transparent : 1; // transparent + uInt8 trans_shadow : 1; // transparent shadow + uInt8 inherit_bg : 1; // inherit background + // Attribute byte #2 + uInt8 no_changes : 1; // no changes required + uInt8 printed : 1; // is printed to VTerm + uInt8 : 6; // padding bits + } bit; + + uInt8 byte[3]; + } attr; +} charData; +#pragma pack(pop) + namespace fc { #pragma pack(push) diff --git a/src/include/final/fvterm.h b/src/include/final/fvterm.h index d66364af..cfb07ce8 100644 --- a/src/include/final/fvterm.h +++ b/src/include/final/fvterm.h @@ -57,9 +57,8 @@ #include #include +#include "final/fc.h" #include "final/fterm.h" -#include "final/fcolorpair.h" - // Preprocessing handler macro #define F_PREPROC_HANDLER(i,h) \ @@ -70,10 +69,19 @@ namespace finalcut { // class forward declaration +class FColorPair; +class FKeyboard; +class FMouseControl; +class FPoint; +class FRect; +class FSize; +class FString; +class FSystem; +class FTerm; class FTermBuffer; +class FTermDebugData; class FWidget; - //---------------------------------------------------------------------- // class FVTerm //---------------------------------------------------------------------- @@ -92,7 +100,6 @@ class FVTerm uInt trans_count; // Number of transparent characters } line_changes; - typedef FOptiAttr::charData charData; typedef void (FVTerm::*FPreprocessingHandler)(); struct term_area; // forward declaration @@ -420,9 +427,7 @@ class FVTerm term_area* vwin{nullptr}; // virtual window private: - // Typedef and Enumeration - typedef FTermcap::tcap_map termcap_map; - + // Enumeration enum exit_state { not_used, @@ -431,8 +436,8 @@ class FVTerm }; // Constants + // Buffer size for character output on the terminal static constexpr uInt TERMINAL_OUTPUT_BUFFER_SIZE = 32768; - // Buffer size for character output on the terminal // Methods void init (bool); @@ -566,7 +571,7 @@ inline FVTerm& FVTerm::operator << (const std::string& string) //---------------------------------------------------------------------- inline FVTerm& FVTerm::operator << \ - (const std::vector& termString) + (const std::vector& termString) { print (termString); return *this; @@ -603,7 +608,7 @@ inline FVTerm::term_area* FVTerm::getVWin() const { return vwin; } //---------------------------------------------------------------------- -inline FVTerm::charData FVTerm::getAttribute() +inline charData FVTerm::getAttribute() { return next_attribute; } //---------------------------------------------------------------------- diff --git a/src/include/final/fwidget.h b/src/include/final/fwidget.h index 35652746..98951803 100644 --- a/src/include/final/fwidget.h +++ b/src/include/final/fwidget.h @@ -99,8 +99,11 @@ #include #include "final/fvterm.h" -#include "final/fwidgetcolors.h" - +#include "final/fobject.h" +#include "final/fpoint.h" +#include "final/frect.h" +#include "final/fsize.h" +#include "final/ftypes.h" // Callback macros #define F_FUNCTION_CALLBACK(h) \ @@ -114,8 +117,12 @@ namespace finalcut { // class forward declaration -class FStatusBar; class FMenuBar; +class FRect; +class FResizeEvent; +class FSize; +class FStatusBar; +class FWidgetColors; //---------------------------------------------------------------------- // class FWidget diff --git a/test/foptiattr-test.cpp b/test/foptiattr-test.cpp index 727ca059..fac9dd71 100644 --- a/test/foptiattr-test.cpp +++ b/test/foptiattr-test.cpp @@ -3,7 +3,7 @@ * * * This file is part of the Final Cut widget toolkit * * * -* Copyright 2018 Markus Gans * +* Copyright 2018-2019 Markus Gans * * * * The Final Cut is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public License * @@ -121,7 +121,7 @@ void FOptiAttrTest::classNameTest() //---------------------------------------------------------------------- void FOptiAttrTest::noArgumentTest() { - finalcut::FOptiAttr::charData* ch = new finalcut::FOptiAttr::charData(); + finalcut::charData* ch = new finalcut::charData(); finalcut::FOptiAttr oa; oa.initialize(); @@ -133,7 +133,7 @@ void FOptiAttrTest::noArgumentTest() CPPUNIT_ASSERT ( oa.isNormal(ch) ); // Null test - finalcut::FOptiAttr::charData* ch_null = nullptr; + finalcut::charData* ch_null = nullptr; CPPUNIT_ASSERT ( oa.changeAttribute(ch, ch) == 0 ); CPPUNIT_ASSERT_CSTRING ( oa.changeAttribute(ch, ch_null), C_STR("") ); CPPUNIT_ASSERT_CSTRING ( oa.changeAttribute(ch_null, ch), C_STR("") ); @@ -207,10 +207,8 @@ void FOptiAttrTest::fakeReverseTest() oa.set_orig_orig_colors (0); oa.initialize(); - finalcut::FOptiAttr::charData* from = \ - new finalcut::FOptiAttr::charData(); - finalcut::FOptiAttr::charData* to = \ - new finalcut::FOptiAttr::charData(); + finalcut::charData* from = new finalcut::charData(); + finalcut::charData* to = new finalcut::charData(); CPPUNIT_ASSERT ( oa.changeAttribute(from, to) == 0 ); // Gray text on blue background @@ -304,8 +302,8 @@ void FOptiAttrTest::ansiTest() oa.set_orig_orig_colors (0); oa.initialize(); - finalcut::FOptiAttr::charData* from = new finalcut::FOptiAttr::charData(); - finalcut::FOptiAttr::charData* to = new finalcut::FOptiAttr::charData(); + finalcut::charData* from = new finalcut::charData(); + finalcut::charData* to = new finalcut::charData(); CPPUNIT_ASSERT ( oa.changeAttribute(from, to) == 0 ); // Default color + bold @@ -769,8 +767,8 @@ void FOptiAttrTest::vt100Test() oa.set_orig_orig_colors (0); oa.initialize(); - finalcut::FOptiAttr::charData* from = new finalcut::FOptiAttr::charData(); - finalcut::FOptiAttr::charData* to = new finalcut::FOptiAttr::charData(); + finalcut::charData* from = new finalcut::charData(); + finalcut::charData* to = new finalcut::charData(); CPPUNIT_ASSERT ( oa.changeAttribute(from, to) == 0 ); // Default color + bold @@ -1240,8 +1238,8 @@ void FOptiAttrTest::xtermTest() oa.set_orig_orig_colors (0); oa.initialize(); - finalcut::FOptiAttr::charData* from = new finalcut::FOptiAttr::charData(); - finalcut::FOptiAttr::charData* to = new finalcut::FOptiAttr::charData(); + finalcut::charData* from = new finalcut::charData(); + finalcut::charData* to = new finalcut::charData(); CPPUNIT_ASSERT ( oa.changeAttribute(from, to) == 0 ); // Default color + bold @@ -1711,8 +1709,8 @@ void FOptiAttrTest::rxvtTest() oa.set_orig_orig_colors (0); oa.initialize(); - finalcut::FOptiAttr::charData* from = new finalcut::FOptiAttr::charData(); - finalcut::FOptiAttr::charData* to = new finalcut::FOptiAttr::charData(); + finalcut::charData* from = new finalcut::charData(); + finalcut::charData* to = new finalcut::charData(); CPPUNIT_ASSERT ( oa.changeAttribute(from, to) == 0 ); // Default color + bold @@ -2183,8 +2181,8 @@ void FOptiAttrTest::linuxTest() oa.set_orig_orig_colors (C_STR(OSC "R")); oa.initialize(); - finalcut::FOptiAttr::charData* from = new finalcut::FOptiAttr::charData(); - finalcut::FOptiAttr::charData* to = new finalcut::FOptiAttr::charData(); + finalcut::charData* from = new finalcut::charData(); + finalcut::charData* to = new finalcut::charData(); CPPUNIT_ASSERT ( oa.changeAttribute(from, to) == 0 ); // Default color + bold @@ -2666,8 +2664,8 @@ void FOptiAttrTest::puttyTest() oa.initialize(); - finalcut::FOptiAttr::charData* from = new finalcut::FOptiAttr::charData(); - finalcut::FOptiAttr::charData* to = new finalcut::FOptiAttr::charData(); + finalcut::charData* from = new finalcut::charData(); + finalcut::charData* to = new finalcut::charData(); CPPUNIT_ASSERT ( oa.changeAttribute(from, to) == 0 ); // Default color + bold @@ -3139,8 +3137,8 @@ void FOptiAttrTest::teratermTest() oa.initialize(); - finalcut::FOptiAttr::charData* from = new finalcut::FOptiAttr::charData(); - finalcut::FOptiAttr::charData* to = new finalcut::FOptiAttr::charData(); + finalcut::charData* from = new finalcut::charData(); + finalcut::charData* to = new finalcut::charData(); CPPUNIT_ASSERT ( oa.changeAttribute(from, to) == 0 ); // Default color + bold @@ -3614,8 +3612,8 @@ void FOptiAttrTest::ibmColorTest() oa.initialize(); - finalcut::FOptiAttr::charData* from = new finalcut::FOptiAttr::charData(); - finalcut::FOptiAttr::charData* to = new finalcut::FOptiAttr::charData(); + finalcut::charData* from = new finalcut::charData(); + finalcut::charData* to = new finalcut::charData(); CPPUNIT_ASSERT ( oa.changeAttribute(from, to) == 0 ); // Default color + bold @@ -4055,8 +4053,8 @@ void FOptiAttrTest::wyse50Test() oa.setTermEnvironment(optiattr_env); - finalcut::FOptiAttr::charData* from = new finalcut::FOptiAttr::charData(); - finalcut::FOptiAttr::charData* to = new finalcut::FOptiAttr::charData(); + finalcut::charData* from = new finalcut::charData(); + finalcut::charData* to = new finalcut::charData(); CPPUNIT_ASSERT ( oa.changeAttribute(from, to) == 0 ); // Default color + bold