diff --git a/doc/final-cut-widget tree.svg b/doc/final-cut-widget tree.svg index e96d08d4..2b911b0b 100644 --- a/doc/final-cut-widget tree.svg +++ b/doc/final-cut-widget tree.svg @@ -5,11 +5,39 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg61" version="1.1" - width="189.15524mm" - viewBox="0 0 189.15524 79.081643" - height="79.081642mm"> + width="149.86537mm" + viewBox="0 0 149.86537 65.484895" + height="65.484894mm" + sodipodi:docname="final-cut-widget tree.svg" + inkscape:version="0.92.1 r15371"> + @@ -34,7 +62,8 @@ transform="matrix(-0.4,0,0,-0.4,-4,0)" style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" d="M 0,0 5,-5 -12.5,0 5,5 Z" - id="path4659" /> + id="path4659" + inkscape:connector-curvature="0" /> + id="path4671" + inkscape:connector-curvature="0" /> + id="path4650" + inkscape:connector-curvature="0" /> + id="path4659-6" + inkscape:connector-curvature="0" /> + id="path4659-6-0" + inkscape:connector-curvature="0" /> + id="path4659-6-0-3" + inkscape:connector-curvature="0" /> + id="path4659-6-0-3-2" + inkscape:connector-curvature="0" /> + transform="matrix(0.82806766,0,0,0.82760652,18.811674,-210.24741)" + style="stroke-width:1.20796716"> + style="opacity:1;fill:#f9f9f9;fill-opacity:1;stroke:#000000;stroke-width:0.5110532;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" /> + style="font-weight:bold;font-size:4.93888903px;font-family:FreeSans, Arial, 'Bitstream Vera Sans', 'DejaVu Sans', 'Open Sans', sans-serif;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0;word-spacing:0;writing-mode:lr-tb;text-anchor:middle;fill:#1a1a1a;stroke-width:0.51097012;stroke-opacity:0"> FApplication + id="tspan4512" + style="stroke-width:0.51097012">FApplication + transform="matrix(0.82806766,0,0,0.82760652,25.151866,-0.20330766)" + id="g4560" + style="stroke-width:1.20796716"> + style="opacity:1;fill:#f9f9f9;fill-opacity:1;stroke:#000000;stroke-width:0.51105309;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" /> + style="font-weight:bold;font-size:4.93888903px;font-family:FreeSans, Arial, 'Bitstream Vera Sans', 'DejaVu Sans', 'Open Sans', sans-serif;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0;word-spacing:0;writing-mode:lr-tb;text-anchor:middle;fill:#1a1a1a;stroke-width:0.51097012;stroke-opacity:0"> FDialog + y="26.275915" + style="stroke-width:0.51097012">FDialog + transform="matrix(0.82806766,0,0,0.82760652,38.120716,15.124655)" + style="stroke-width:1.20796716"> + style="opacity:1;fill:#f9f9f9;fill-opacity:1;stroke:#000000;stroke-width:0.51105309;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" /> + style="font-weight:bold;font-size:4.93888903px;font-family:FreeSans, Arial, 'Bitstream Vera Sans', 'DejaVu Sans', 'Open Sans', sans-serif;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0;word-spacing:0;writing-mode:lr-tb;text-anchor:middle;fill:#1a1a1a;stroke-width:0.51097012;stroke-opacity:0"> FDialog + y="26.275915" + style="stroke-width:0.51097012">FDialog + transform="matrix(0.82806766,0,0,0.82760652,12.006292,15.124655)" + style="stroke-width:1.20796716"> + style="opacity:1;fill:#f9f9f9;fill-opacity:1;stroke:#000000;stroke-width:0.51105309;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" /> + style="font-weight:bold;font-size:4.93888903px;font-family:FreeSans, Arial, 'Bitstream Vera Sans', 'DejaVu Sans', 'Open Sans', sans-serif;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0;word-spacing:0;writing-mode:lr-tb;text-anchor:middle;fill:#1a1a1a;stroke-width:0.51097012;stroke-opacity:0"> FLabel + id="tspan4610" + style="stroke-width:0.51097012">FLabel + transform="matrix(0.82806766,0,0,0.82760652,25.151866,-0.20330766)" + id="g6273" + style="stroke-width:1.20796716"> + style="opacity:1;fill:#f9f9f9;fill-opacity:1;stroke:#000000;stroke-width:0.51105309;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" /> + style="font-weight:bold;font-size:4.93888903px;font-family:FreeSans, Arial, 'Bitstream Vera Sans', 'DejaVu Sans', 'Open Sans', sans-serif;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0;word-spacing:0;writing-mode:lr-tb;text-anchor:middle;fill:#1a1a1a;stroke-width:0.51097012;stroke-opacity:0"> FButton + y="63.317585" + style="stroke-width:0.51097012">FButton + style="font-style:italic;font-weight:bold;font-size:4.08859491px;font-family:FreeSans, Arial, 'Bitstream Vera Sans', 'DejaVu Sans', 'Open Sans', sans-serif;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0;word-spacing:0;writing-mode:lr-tb;text-anchor:middle;fill:#1a1a1a;stroke-width:0.42300001;stroke-opacity:0" + x="62.287796" + y="65.409096" + id="text47-6-3-6-5" + transform="scale(1.0002786,0.99972148)"> etc. + d="M 49.251306,9.2100164 V 14.9971" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.42306879;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend)" + inkscape:connector-curvature="0" /> + d="m 42.679299,24.537976 v 5.779196" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.42306873;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend-9)" + inkscape:connector-curvature="0" /> + d="m 55.736511,24.537898 v 5.779196" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.42306867;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend-9-7)" + inkscape:connector-curvature="0" /> + d="m 62.369882,39.865938 v 5.548839" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.42306867;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend-9-7-1)" + inkscape:connector-curvature="0" /> + d="m 62.369882,55.193909 v 5.548839" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.42306867;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend-9-7-1-7)" + inkscape:connector-curvature="0" /> + transform="matrix(0.82806766,0,0,0.82760652,25.151866,-0.20330766)" + id="level" + style="stroke-width:1.20796716"> Parent: Child: Subchild: Sub-subchild: + transform="matrix(0.82806766,0,0,0.82760652,107.7173,-0.20330766)" + style="stroke-width:1.20796716"> Application widget (= 1) Main widget (= 1) Widget(s) of the main widget (≥ 0) Widget(s) from the parent widget (≥ 0) diff --git a/doc/first-steps.md b/doc/first-steps.md index b7d5bf52..172a4e64 100644 --- a/doc/first-steps.md +++ b/doc/first-steps.md @@ -89,9 +89,10 @@ unique and can not have a parent widget. The class `FApplication` manages all settings and assigns keyboard and mouse input to the different widgets.
- application structure + widget tree
Figure 2. Widget tree of a FINAL CUT application
+

The main widget of a FINAL CUT application is the only object that `FApplication` can have as a child. This main widget is usually a window diff --git a/src/include/final/foptiattr.h b/src/include/final/foptiattr.h index d0aa7abf..76c4d37b 100644 --- a/src/include/final/foptiattr.h +++ b/src/include/final/foptiattr.h @@ -337,26 +337,6 @@ inline void FOptiAttr::setDefaultColorSupport() inline void FOptiAttr::unsetDefaultColorSupport() { ansi_default_color = false; } - -// FChar operator functions -//---------------------------------------------------------------------- -inline bool operator == ( const FChar& lhs, - const FChar& rhs ) -{ - return lhs.ch == rhs.ch - && lhs.fg_color == rhs.fg_color - && lhs.bg_color == rhs.bg_color - && lhs.attr.byte[0] == rhs.attr.byte[0] - && lhs.attr.byte[1] == rhs.attr.byte[1] - && lhs.attr.bit.fullwidth_padding \ - == rhs.attr.bit.fullwidth_padding; -} - -//---------------------------------------------------------------------- -inline bool operator != ( const FChar& lhs, - const FChar& rhs ) -{ return ! ( lhs == rhs ); } - } // namespace finalcut #endif // FOPTIATTR_H diff --git a/src/include/final/ftypes.h b/src/include/final/ftypes.h index bf2947ab..f4c65fc2 100644 --- a/src/include/final/ftypes.h +++ b/src/include/final/ftypes.h @@ -187,6 +187,25 @@ FKeyName; } // namespace fc +// FChar operator functions +//---------------------------------------------------------------------- +inline constexpr bool operator == (const FChar& lhs, const FChar& rhs) +{ + return lhs.ch == rhs.ch + && lhs.fg_color == rhs.fg_color + && lhs.bg_color == rhs.bg_color + && lhs.attr.byte[0] == rhs.attr.byte[0] + && lhs.attr.byte[1] == rhs.attr.byte[1] + && lhs.attr.bit.fullwidth_padding \ + == rhs.attr.bit.fullwidth_padding; +} + +//---------------------------------------------------------------------- +inline constexpr bool operator != (const FChar& lhs, const FChar& rhs) +{ + return ! ( lhs == rhs ); +} + } // namespace finalcut #endif // FTYPES_H