XV-Display: introduce a new kind of docking panel for the play-control
While this is not strictly necessary for this experiment, this is something we should try to establish early: A »play control« should be handled as an independent UI element, without tying it logically with some viewer (or timeline); the reason is that such a play control needs a set of very well designed keyboard bindings, and thus we will attempt use a focus concept to link to some active viewer instead of creating one primary viewer, which gets the benefit of the well accessible keybindings. Basically we want to create an explicit association between - a timeline - some viewer - a play-control Introducing a new kind of panel shows again that the `PanelManager` needs a rework; everything there is way too much ''hard wired'' And the new panel with the play control needs an **Icon** — which is a challenge in itself; my proposal here is to build on the film metaphor, and combine the symbol of "Play / Pause" with an stylised film or tape player (with the secondary idea that this icon also somewhat looks like a owl face)
This commit is contained in:
parent
ac5a2f371d
commit
b0e8fa2ff6
10 changed files with 812 additions and 25 deletions
517
data/icons/svg/panel-play.svg
Normal file
517
data/icons/svg/panel-play.svg
Normal file
|
|
@ -0,0 +1,517 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="150"
|
||||||
|
height="100"
|
||||||
|
id="icon"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="panel-play.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<title
|
||||||
|
id="doctitle">Icon: play control</title>
|
||||||
|
<defs
|
||||||
|
id="defsz">
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
id="filter21"
|
||||||
|
x="-0.069065808"
|
||||||
|
y="-0.094578709"
|
||||||
|
width="1.1381316"
|
||||||
|
height="1.1891574">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.8775"
|
||||||
|
id="feGaussianBlur21" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
id="filter28"
|
||||||
|
x="-0.08906238"
|
||||||
|
y="-0.13716608"
|
||||||
|
width="1.1781248"
|
||||||
|
height="1.2743322">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="1.7338546"
|
||||||
|
id="feGaussianBlur28" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
id="filter1"
|
||||||
|
x="-0.078995671"
|
||||||
|
y="-0.10222452"
|
||||||
|
width="1.1579913"
|
||||||
|
height="1.204449">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.686925"
|
||||||
|
id="feGaussianBlur1" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
id="filter2"
|
||||||
|
x="-0.13502681"
|
||||||
|
y="-0.16314888"
|
||||||
|
width="1.2700536"
|
||||||
|
height="1.3262978">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.87631782"
|
||||||
|
id="feGaussianBlur2" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="5"
|
||||||
|
inkscape:cx="75"
|
||||||
|
inkscape:cy="40"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layerp"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:snap-nodes="true"
|
||||||
|
inkscape:snap-bbox="true"
|
||||||
|
inkscape:snap-global="true"
|
||||||
|
showguides="true"
|
||||||
|
inkscape:guide-bbox="true"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1061"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="pixelgrid"
|
||||||
|
visible="false"
|
||||||
|
enabled="true"
|
||||||
|
spacingx="0.5"
|
||||||
|
spacingy="0.5"
|
||||||
|
empspacing="2"
|
||||||
|
originx="0"
|
||||||
|
originy="0"
|
||||||
|
units="px" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<metadata
|
||||||
|
id="metadead">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title>Icon: play control</dc:title>
|
||||||
|
<cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||||
|
<dc:creator>
|
||||||
|
<cc:Agent>
|
||||||
|
<dc:title>Ichthyostega</dc:title>
|
||||||
|
</cc:Agent>
|
||||||
|
</dc:creator>
|
||||||
|
<dc:publisher>
|
||||||
|
<cc:Agent>
|
||||||
|
<dc:title>Lumiera.org</dc:title>
|
||||||
|
</cc:Agent>
|
||||||
|
</dc:publisher>
|
||||||
|
<dc:description>Icon to identify a play-control in the GUI
|
||||||
|
|
||||||
|
prepared for Lumiera build :: Icon rendering</dc:description>
|
||||||
|
<dc:identifier>icon:panel-play</dc:identifier>
|
||||||
|
<dc:date>2025</dc:date>
|
||||||
|
</cc:Work>
|
||||||
|
<cc:License
|
||||||
|
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||||
|
</cc:License>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
inkscape:label="artwork:panel-play"
|
||||||
|
id="aardvark"
|
||||||
|
style="display:inline">
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layerp"
|
||||||
|
inkscape:label="plate#1"
|
||||||
|
style="display:none"
|
||||||
|
sodipodi:insensitive="true">
|
||||||
|
<rect
|
||||||
|
id="bbox48"
|
||||||
|
x="8"
|
||||||
|
y="44"
|
||||||
|
width="48"
|
||||||
|
height="48"
|
||||||
|
style="fill:black;fill-opacity:0.5;stroke:#5a8fb2;stroke-width:0.1;stroke-opacity:1"
|
||||||
|
sodipodi:insensitive="true" />
|
||||||
|
<rect
|
||||||
|
id="bbox32"
|
||||||
|
x="60"
|
||||||
|
y="60"
|
||||||
|
width="32"
|
||||||
|
height="32"
|
||||||
|
style="fill:black;fill-opacity:0.5;stroke:#5a8fb2;stroke-width:0.1;stroke-opacity:1"
|
||||||
|
sodipodi:insensitive="true" />
|
||||||
|
<rect
|
||||||
|
id="bbox24"
|
||||||
|
x="96"
|
||||||
|
y="68"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
style="fill:black;fill-opacity:0.5;stroke:#5a8fb2;stroke-width:0.1;stroke-opacity:1"
|
||||||
|
sodipodi:insensitive="true" />
|
||||||
|
<rect
|
||||||
|
id="bbox22"
|
||||||
|
x="97"
|
||||||
|
y="69"
|
||||||
|
width="22"
|
||||||
|
height="22"
|
||||||
|
style="fill:black;fill-opacity:0.5;stroke:#5a8fb2;stroke-width:0.1;stroke-opacity:1"
|
||||||
|
sodipodi:insensitive="true" />
|
||||||
|
<rect
|
||||||
|
id="bbox16"
|
||||||
|
x="124"
|
||||||
|
y="76"
|
||||||
|
width="16"
|
||||||
|
height="16"
|
||||||
|
style="fill:black;fill-opacity:0.5;stroke:#5a8fb2;stroke-width:0.1;stroke-opacity:1"
|
||||||
|
sodipodi:insensitive="true" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="player48">
|
||||||
|
<g
|
||||||
|
id="shadow1"
|
||||||
|
style="display:inline;mix-blend-mode:normal;fill:#4d4d5a;fill-opacity:0.686957;filter:url(#filter28)"
|
||||||
|
transform="translate(0.55689404,1.6033577)">
|
||||||
|
<path
|
||||||
|
id="sh_f1"
|
||||||
|
style="display:inline"
|
||||||
|
d="m 43.920868,53.907033 a 11.68072,12 0 0 0 -11.68072,12 11.68072,12 0 0 0 11.68072,12 11.68072,12 0 0 0 11.680721,-12 11.68072,12 0 0 0 -11.680721,-12 z m 0,7.5 a 4.3802703,4.5 0 0 1 4.38027,4.5 4.3802703,4.5 0 0 1 -4.38027,4.5 4.3802703,4.5 0 0 1 -4.38027,-4.5 4.3802703,4.5 0 0 1 4.38027,-4.5 z m -23.361442,-7.5 a 11.68072,12 0 0 0 -11.6807199,12 11.68072,12 0 0 0 11.6807199,12 11.68072,12 0 0 0 11.680722,-12 11.68072,12 0 0 0 -11.680722,-12 z m 0,7.5 a 4.3802703,4.5 0 0 1 4.380271,4.5 4.3802703,4.5 0 0 1 -4.380271,4.5 4.3802703,4.5 0 0 1 -4.380269,-4.5 4.3802703,4.5 0 0 1 4.380269,-4.5 z" />
|
||||||
|
<path
|
||||||
|
id="sh_h1"
|
||||||
|
style="display:inline"
|
||||||
|
d="m 27.374586,76.244353 h 3 v 8 h -3 z m 5,-2e-6 8,4 -8,4 z" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="film1"
|
||||||
|
style="display:inline;stroke:#6c5d6f;stroke-opacity:1">
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#6c5d6f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 15.519846,76.588962 26,81 h 2"
|
||||||
|
id="filmpath11"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#6c5d6f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 39,81 h 2.5 l 8.677558,-5.30418"
|
||||||
|
id="filmpath12"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="spool11"
|
||||||
|
transform="translate(-22.970703,34)">
|
||||||
|
<path
|
||||||
|
id="film11"
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:#6c5d6f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
d="m 42.970703,20 a 12,12 0 0 0 -12,12 12,12 0 0 0 12,12 12,12 0 0 0 12,-12 12,12 0 0 0 -12,-12 z m 0,7.5 a 4.5,4.5 0 0 1 4.5,4.5 4.5,4.5 0 0 1 -4.5,4.5 4.5,4.5 0 0 1 -4.5,-4.5 4.5,4.5 0 0 1 4.5,-4.5 z" />
|
||||||
|
<circle
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="core11"
|
||||||
|
cx="42.970703"
|
||||||
|
cy="32"
|
||||||
|
r="4.5" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="spool12"
|
||||||
|
transform="translate(1.029297,34)">
|
||||||
|
<path
|
||||||
|
id="film12"
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:#6c5d6f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
d="m 42.970703,20 a 12,12 0 0 0 -12,12 12,12 0 0 0 12,12 12,12 0 0 0 12,-12 12,12 0 0 0 -12,-12 z m 0,7.5 a 4.5,4.5 0 0 1 4.5,4.5 4.5,4.5 0 0 1 -4.5,4.5 4.5,4.5 0 0 1 -4.5,-4.5 4.5,4.5 0 0 1 4.5,-4.5 z" />
|
||||||
|
<circle
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="core12"
|
||||||
|
cx="42.970703"
|
||||||
|
cy="32"
|
||||||
|
r="4.5" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="head1"
|
||||||
|
transform="translate(5.03,33)"
|
||||||
|
style="display:inline">
|
||||||
|
<path
|
||||||
|
style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 26.97,44.0 8.24,4.14 -8.24,3.86 z"
|
||||||
|
id="play1"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<rect
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="pause1"
|
||||||
|
width="3.3"
|
||||||
|
height="8"
|
||||||
|
x="21.97"
|
||||||
|
y="44"
|
||||||
|
ry="0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="player32">
|
||||||
|
<g
|
||||||
|
id="shadow2"
|
||||||
|
style="font-variation-settings:normal;opacity:1;mix-blend-mode:normal;vector-effect:none;fill:#4d4d5a;fill-opacity:0.686957;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter21);stop-color:black;stop-opacity:1"
|
||||||
|
transform="translate(0.95831709,1.0146887)">
|
||||||
|
<path
|
||||||
|
id="sh_f2"
|
||||||
|
style="display:inline;stroke-width:0.999995"
|
||||||
|
d="m 67.095397,66.394602 a 7.3772554,7.5 0 0 0 -7.377255,7.5 7.3772554,7.5 0 0 0 7.377255,7.5 7.3772554,7.5 0 0 0 7.377255,-7.5 7.3772554,7.5 0 0 0 -7.377255,-7.5 z m 0,4.6875 a 2.7664708,2.8125 0 0 1 2.766471,2.8125 2.7664708,2.8125 0 0 1 -2.766471,2.8125 2.7664708,2.8125 0 0 1 -2.766471,-2.8125 2.7664708,2.8125 0 0 1 2.766471,-2.8125 z m 15.738147,-4.6875 a 7.3772554,7.5 0 0 0 -7.377256,7.5 7.3772554,7.5 0 0 0 7.377256,7.5 7.3772554,7.5 0 0 0 7.377255,-7.5 7.3772554,7.5 0 0 0 -7.377255,-7.5 z m 0,4.6875 a 2.7664708,2.8125 0 0 1 2.766471,2.8125 2.7664708,2.8125 0 0 1 -2.766471,2.8125 2.7664708,2.8125 0 0 1 -2.766471,-2.8125 2.7664708,2.8125 0 0 1 2.766471,-2.8125 z" />
|
||||||
|
<path
|
||||||
|
id="sh_h2"
|
||||||
|
style="display:inline"
|
||||||
|
d="m 71.169115,80.66177 h 3.295818 v 8 h -3.295818 z m 5.000002,-2e-6 8.236654,4.13805 -8.236654,3.86195 z" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="film2"
|
||||||
|
style="display:inline;stroke:#6c5d6f;stroke-opacity:1"
|
||||||
|
transform="translate(44.26571,4)">
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#6c5d6f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 18.034986,74.181114 24.73429,81 h 3"
|
||||||
|
id="filmpath21"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#6c5d6f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 38.73429,81 h 1 l 5.39516,-7.755972"
|
||||||
|
id="filmpath22"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="spool21"
|
||||||
|
transform="matrix(0.625,0,0,0.625,40.643311,53.5)"
|
||||||
|
style="stroke-width:1.59999">
|
||||||
|
<path
|
||||||
|
id="film21"
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:#6c5d6f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.59999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
d="m 42.970703,20 a 12,12 0 0 0 -12,12 12,12 0 0 0 12,12 12,12 0 0 0 12,-12 12,12 0 0 0 -12,-12 z m 0,7.5 a 4.5,4.5 0 0 1 4.5,4.5 4.5,4.5 0 0 1 -4.5,4.5 4.5,4.5 0 0 1 -4.5,-4.5 4.5,4.5 0 0 1 4.5,-4.5 z" />
|
||||||
|
<circle
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.59999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="core21"
|
||||||
|
cx="42.970703"
|
||||||
|
cy="32"
|
||||||
|
r="4.800005" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="spool22"
|
||||||
|
transform="matrix(0.625,0,0,0.625,56.643314,53.5)"
|
||||||
|
style="stroke-width:1.59999">
|
||||||
|
<path
|
||||||
|
id="film22"
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:#6c5d6f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.59999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
d="m 42.970703,20 a 12,12 0 0 0 -12,12 12,12 0 0 0 12,12 12,12 0 0 0 12,-12 12,12 0 0 0 -12,-12 z m 0,7.5 a 4.5,4.5 0 0 1 4.5,4.5 4.5,4.5 0 0 1 -4.5,4.5 4.5,4.5 0 0 1 -4.5,-4.5 4.5,4.5 0 0 1 4.5,-4.5 z" />
|
||||||
|
<circle
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.59999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="core22"
|
||||||
|
cx="42.970703"
|
||||||
|
cy="32"
|
||||||
|
r="4.800005" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="head2">
|
||||||
|
<path
|
||||||
|
style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 76,81 8.24,4.14 -8.24,3.86 z"
|
||||||
|
id="play2"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<rect
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;vector-effect:none;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="pause2"
|
||||||
|
width="3.3"
|
||||||
|
height="8"
|
||||||
|
x="71"
|
||||||
|
y="81"
|
||||||
|
ry="0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="player22">
|
||||||
|
<g
|
||||||
|
id="shadow3"
|
||||||
|
style="opacity:1;mix-blend-mode:normal;fill:#4d4d5a;fill-opacity:0.686957;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter1);stop-color:black;stop-opacity:1"
|
||||||
|
transform="translate(0.84768657,0.28256219)">
|
||||||
|
<path
|
||||||
|
id="sh_f3"
|
||||||
|
style="display:inline;stroke-width:0.999999"
|
||||||
|
d="m 112.87836,74.017224 a 5.2174378,5.5 0 0 0 -5.21743,5.5 5.2174378,5.5 0 0 0 5.21743,5.5 5.2174378,5.5 0 0 0 5.21744,-5.5 5.2174378,5.5 0 0 0 -5.21744,-5.5 z m 0,3.4 a 1.9921126,2.1 0 0 1 1.99212,2.1 1.9921126,2.1 0 0 1 -1.99212,2.1 1.9921126,2.1 0 0 1 -1.99211,-2.1 1.9921126,2.1 0 0 1 1.99211,-2.1 z m -10.43487,-3.4 a 5.2174378,5.5 0 0 0 -5.217441,5.5 5.2174378,5.5 0 0 0 5.217441,5.5 5.2174378,5.5 0 0 0 5.21744,-5.5 5.2174378,5.5 0 0 0 -5.21744,-5.5 z m 0,3.4 a 1.9921126,2.1 0 0 1 1.99211,2.1 1.9921126,2.1 0 0 1 -1.99211,2.1 1.9921126,2.1 0 0 1 -1.99211,-2.1 1.9921126,2.1 0 0 1 1.99211,-2.1 z" />
|
||||||
|
<path
|
||||||
|
id="sh_h3"
|
||||||
|
style="display:inline"
|
||||||
|
d="m 107.7728,84.144666 5.16,3.18 -5.16,2.82 z m -3,0 h 2.16 v 6 h -2.16 z" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="film3"
|
||||||
|
style="display:inline;stroke:#6c5d6f;stroke-opacity:1"
|
||||||
|
transform="translate(81.211899,7.9246864)">
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#6c5d6f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 17.35566,73.66163 5.432441,5.413684 h 1.5"
|
||||||
|
id="filmpath31"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#6c5d6f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 30.788101,79.075314 c 0,0 0.371411,0.08901 0.568296,0 2.246177,-1.015505 3.708651,-3.792829 5.093206,-5.72838"
|
||||||
|
id="filmpath32"
|
||||||
|
sodipodi:nodetypes="csc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="spool31"
|
||||||
|
transform="matrix(0.625,0,0,0.625,77.5895,60.42469)"
|
||||||
|
style="display:inline;stroke-width:1.59999">
|
||||||
|
<path
|
||||||
|
id="film31"
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:#6c5d6f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.59999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
d="m 39.86,20.12 a 8.8,8.8 0 0 0 -8.8,8.8 8.8,8.8 0 0 0 8.8,8.8 8.8,8.8 0 0 0 8.8,-8.8 8.8,8.8 0 0 0 -8.8,-8.8 z m 0,5.5 a 3.3,3.3 0 0 1 3.3,3.3 3.3,3.3 0 0 1 -3.3,3.3 3.3,3.3 0 0 1 -3.3,-3.3 3.3,3.3 0 0 1 3.3,-3.3 z" />
|
||||||
|
<circle
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.59999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="core31"
|
||||||
|
cx="39.906609"
|
||||||
|
cy="28.970312"
|
||||||
|
r="3.2498157" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="spool32"
|
||||||
|
transform="matrix(0.625,0,0,0.625,88.5875,60.425004)"
|
||||||
|
style="display:inline;stroke-width:1.59999">
|
||||||
|
<path
|
||||||
|
id="film32"
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:#6c5d6f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.59999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
d="m 39.86,20.12 a 8.8,8.8 0 0 0 -8.8,8.8 8.8,8.8 0 0 0 8.8,8.8 8.8,8.8 0 0 0 8.8,-8.8 8.8,8.8 0 0 0 -8.8,-8.8 z m 0,5.5 a 3.3,3.3 0 0 1 3.3,3.3 3.3,3.3 0 0 1 -3.3,3.3 3.3,3.3 0 0 1 -3.3,-3.3 3.3,3.3 0 0 1 3.3,-3.3 z" />
|
||||||
|
<circle
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.59999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="core32"
|
||||||
|
cx="39.906609"
|
||||||
|
cy="28.970312"
|
||||||
|
r="3.2498157" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="head3">
|
||||||
|
<path
|
||||||
|
style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 108,84 5.16,3.18 L 108,90 Z"
|
||||||
|
id="play3"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<rect
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;vector-effect:none;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="pause3"
|
||||||
|
width="2.16"
|
||||||
|
height="6"
|
||||||
|
x="105"
|
||||||
|
y="84"
|
||||||
|
ry="0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="player16">
|
||||||
|
<g
|
||||||
|
id="shadow4"
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#4d4d5a;fill-opacity:0.686957;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter2);stop-color:black;stop-opacity:1"
|
||||||
|
transform="translate(0,1.2374369)">
|
||||||
|
<path
|
||||||
|
id="sh_f4"
|
||||||
|
style="display:inline;stroke-width:0.999997"
|
||||||
|
d="m 135.92968,77.955062 a 4.1296023,3.8080361 0 0 0 -4.12961,3.808036 4.1296023,3.8080361 0 0 0 4.12961,3.808037 4.1296023,3.8080361 0 0 0 4.1296,-3.808037 4.1296023,3.8080361 0 0 0 -4.1296,-3.808036 z m 0,1.962259 a 2.0016424,1.8457774 0 0 1 2.00164,1.845777 2.0016424,1.8457774 0 0 1 -2.00164,1.845778 2.0016424,1.8457774 0 0 1 -2.00164,-1.845778 2.0016424,1.8457774 0 0 1 2.00164,-1.845777 z m -7.31669,-2.11458 a 4.1296023,3.8080361 0 0 0 -4.1296,3.808036 4.1296023,3.8080361 0 0 0 4.1296,3.808036 4.1296023,3.8080361 0 0 0 4.12961,-3.808036 4.1296023,3.8080361 0 0 0 -4.12961,-3.808036 z m 0,1.962259 a 2.0016424,1.8457774 0 0 1 2.00165,1.845777 2.0016424,1.8457774 0 0 1 -2.00165,1.845777 2.0016424,1.8457774 0 0 1 -2.00163,-1.845777 2.0016424,1.8457774 0 0 1 2.00163,-1.845777 z" />
|
||||||
|
<path
|
||||||
|
id="sh_h4"
|
||||||
|
style="display:inline;stroke-width:0.999999"
|
||||||
|
d="m 129.63291,85.646447 h 2.18121 v 5.047358 h -2.18121 z m 2.96371,0 4.93951,2.700337 -4.93951,2.347021 z" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="film4">
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#6c5d6f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 124.9,83.48 3.05,5.51 h 1.5"
|
||||||
|
id="filmpath41"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#6c5d6f;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="m 135.82,89.04 c 0,0 0.62,0.08 1.04,-0.3 0.6,-0.55 1.34,-2.57 2.44,-5.59"
|
||||||
|
id="filmpath42"
|
||||||
|
sodipodi:nodetypes="csc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="spool41">
|
||||||
|
<path
|
||||||
|
id="film41"
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;vector-effect:none;fill:#6c5d6f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
d="m 128.22,77.5 a 4.25,4.25 0 0 0 -4.25,4.25 4.25,4.25 0 0 0 4.25,4.25 4.25,4.25 0 0 0 4.25,-4.25 4.25,4.25 0 0 0 -4.25,-4.25 z m 0,2.19 a 2.06,2.06 0 0 1 2.06,2.06 2.06,2.06 0 0 1 -2.06,2.06 2.06,2.06 0 0 1 -2.06,-2.06 2.06,2.06 0 0 1 2.06,-2.06 z" />
|
||||||
|
<circle
|
||||||
|
style="color:black;font-variation-settings:normal;display:inline;overflow:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="core41"
|
||||||
|
cx="128.25"
|
||||||
|
cy="81.75"
|
||||||
|
r="1.94" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="spool42"
|
||||||
|
transform="translate(0,0.16948494)">
|
||||||
|
<path
|
||||||
|
id="film42"
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;vector-effect:none;fill:#6c5d6f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
d="m 135.75,77.5 a 4.25,4.25 0 0 0 -4.25,4.25 4.25,4.25 0 0 0 4.25,4.25 4.25,4.25 0 0 0 4.25,-4.25 4.25,4.25 0 0 0 -4.25,-4.25 z m 0,2.19 a 2.06,2.06 0 0 1 2.06,2.06 2.06,2.06 0 0 1 -2.06,2.06 2.06,2.06 0 0 1 -2.06,-2.06 2.06,2.06 0 0 1 2.06,-2.06 z" />
|
||||||
|
<circle
|
||||||
|
style="color:black;font-variation-settings:normal;display:inline;overflow:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="core42"
|
||||||
|
cx="135.8"
|
||||||
|
cy="81.75"
|
||||||
|
r="1.9400001" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="head4">
|
||||||
|
<path
|
||||||
|
style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 132,86 5.0547,3.206326 L 132,92 Z"
|
||||||
|
id="play4"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<rect
|
||||||
|
style="color:black;font-variation-settings:normal;overflow:visible;vector-effect:none;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="pause4"
|
||||||
|
width="2.2329035"
|
||||||
|
height="6"
|
||||||
|
x="128.97"
|
||||||
|
y="86"
|
||||||
|
ry="0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 26 KiB |
|
|
@ -23,6 +23,8 @@
|
||||||
** As of 5/2017, it is not clear to what extent this might force us into additional
|
** As of 5/2017, it is not clear to what extent this might force us into additional
|
||||||
** "desktop integration" we do not need nor want (like automatically connecting to
|
** "desktop integration" we do not need nor want (like automatically connecting to
|
||||||
** D-Bus). For that reason, we'll postpone this transition for the time being /////////////////////TICKET #1068
|
** D-Bus). For that reason, we'll postpone this transition for the time being /////////////////////TICKET #1068
|
||||||
|
** @todo 5/2025 generally speaking, we use way too much registration relying on
|
||||||
|
** matching textual IDs; This is a "boilerplaty" approach, we can do better ///////////////////////TICKET #1405 : all this registration with matching IDs is way too much "boilerplaty"
|
||||||
**
|
**
|
||||||
** @see ui-manager.hpp
|
** @see ui-manager.hpp
|
||||||
** @see gtk-lumiera.cpp
|
** @see gtk-lumiera.cpp
|
||||||
|
|
@ -147,6 +149,10 @@ namespace ctrl {
|
||||||
viewerPanelAction->signal_toggled().connect( [&]() { onMenu_view_viewer(); });
|
viewerPanelAction->signal_toggled().connect( [&]() { onMenu_view_viewer(); });
|
||||||
actionGroup->add(viewerPanelAction);
|
actionGroup->add(viewerPanelAction);
|
||||||
|
|
||||||
|
playPanelAction = ToggleAction::create("ViewPlay", StockID("panel_play"));
|
||||||
|
playPanelAction->signal_toggled().connect( [&]() { onMenu_view_play(); });
|
||||||
|
actionGroup->add(playPanelAction);
|
||||||
|
|
||||||
uiManager.insert_action_group(actionGroup);
|
uiManager.insert_action_group(actionGroup);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -180,6 +186,7 @@ namespace ctrl {
|
||||||
<menuitem action='ViewInfoBox'/>
|
<menuitem action='ViewInfoBox'/>
|
||||||
<menuitem action='ViewTimeline'/>
|
<menuitem action='ViewTimeline'/>
|
||||||
<menuitem action='ViewViewer'/>
|
<menuitem action='ViewViewer'/>
|
||||||
|
<menuitem action='ViewPlay'/>
|
||||||
</menu>
|
</menu>
|
||||||
<menu action='SequenceMenu'>
|
<menu action='SequenceMenu'>
|
||||||
<menuitem action='SequenceAdd'/>
|
<menuitem action='SequenceAdd'/>
|
||||||
|
|
@ -250,6 +257,7 @@ namespace ctrl {
|
||||||
assetsPanelAction->set_active (currentWindow.assetsPanel->is_shown());
|
assetsPanelAction->set_active (currentWindow.assetsPanel->is_shown());
|
||||||
timelinePanelAction->set_active(currentWindow.timelinePanel->is_shown());
|
timelinePanelAction->set_active(currentWindow.timelinePanel->is_shown());
|
||||||
viewerPanelAction->set_active (currentWindow.viewerPanel->is_shown());
|
viewerPanelAction->set_active (currentWindow.viewerPanel->is_shown());
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1403 now we also have a playPanel
|
||||||
// is_updating_action_state = false;
|
// is_updating_action_state = false;
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
@ -340,6 +348,16 @@ namespace ctrl {
|
||||||
unimplemented ("view viewer");
|
unimplemented ("view viewer");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
onMenu_view_play()
|
||||||
|
{
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1403 added for sake of consistency : we have now also a palyer panel
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////////TODO defunct since GTK-3 transition
|
||||||
|
//if(!is_updating_action_state)
|
||||||
|
// workspaceWindow.playPanel->show(viewerPanelAction->get_active()); //////global -> InteractionDirector
|
||||||
|
unimplemented ("view player");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Temporary Junk
|
// Temporary Junk
|
||||||
void
|
void
|
||||||
|
|
@ -358,6 +376,7 @@ namespace ctrl {
|
||||||
Glib::RefPtr<Gtk::ToggleAction> infoboxPanelAction;
|
Glib::RefPtr<Gtk::ToggleAction> infoboxPanelAction;
|
||||||
Glib::RefPtr<Gtk::ToggleAction> timelinePanelAction;
|
Glib::RefPtr<Gtk::ToggleAction> timelinePanelAction;
|
||||||
Glib::RefPtr<Gtk::ToggleAction> viewerPanelAction;
|
Glib::RefPtr<Gtk::ToggleAction> viewerPanelAction;
|
||||||
|
Glib::RefPtr<Gtk::ToggleAction> playPanelAction;
|
||||||
|
|
||||||
|
|
||||||
private: /* ===== Internals ===== */
|
private: /* ===== Internals ===== */
|
||||||
|
|
|
||||||
57
src/stage/panel/play-panel.cpp
Normal file
57
src/stage/panel/play-panel.cpp
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
/*
|
||||||
|
PlayPanel - Dockable panel to hold the video display widgets and controls
|
||||||
|
|
||||||
|
Copyright (C)
|
||||||
|
2008, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||||
|
|
||||||
|
**Lumiera** is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
option) any later version. See the file COPYING for further details.
|
||||||
|
|
||||||
|
* *****************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/** @file play-panel.cpp
|
||||||
|
** Implementation of a dockable panel for player control and timecode display
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "stage/gtk-base.hpp"
|
||||||
|
#include "stage/panel/play-panel.hpp"
|
||||||
|
|
||||||
|
#include "stage/workspace/workspace-window.hpp"
|
||||||
|
#include "stage/ui-bus.hpp" ///////////////////////////////////TODO why are we forced to include this after workspace-window.hpp ?? Ambiguity between std::ref and boost::reference_wrapper
|
||||||
|
#include "stage/display-service.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
using namespace Gtk; ///////////////////////////////////////////////////////////////////////////////TICKET #1071 no wildcard includes please!
|
||||||
|
using namespace stage::widget; ///////////////////////////////////////////////////////////////////////////////TICKET #1071 no wildcard includes please!
|
||||||
|
using namespace stage::controller; ///////////////////////////////////////////////////////////////////////////////TICKET #1071 no wildcard includes please!
|
||||||
|
|
||||||
|
namespace stage {
|
||||||
|
namespace panel {
|
||||||
|
|
||||||
|
PlayPanel::PlayPanel (workspace::PanelManager& panelManager
|
||||||
|
,Gdl::DockItem& dockItem)
|
||||||
|
: Panel{panelManager, dockItem, getTitle(), getStockID()}
|
||||||
|
, display_{}
|
||||||
|
, demoPlayback_{[this](void * const buffer){ display_.pushFrame(buffer); }}
|
||||||
|
{
|
||||||
|
//----- Pack in the Widgets -----//
|
||||||
|
pack_start(display_, PACK_EXPAND_WIDGET);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char*
|
||||||
|
PlayPanel::getTitle()
|
||||||
|
{
|
||||||
|
return _("Play");
|
||||||
|
}
|
||||||
|
|
||||||
|
const gchar*
|
||||||
|
PlayPanel::getStockID()
|
||||||
|
{
|
||||||
|
return "panel_play";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}}// namespace stage::panel
|
||||||
47
src/stage/panel/play-panel.hpp
Normal file
47
src/stage/panel/play-panel.hpp
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
/*
|
||||||
|
VIEWER-PANEL.hpp - Dockable panel to hold the video display widgets and controls
|
||||||
|
|
||||||
|
Copyright (C)
|
||||||
|
2008, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||||
|
|
||||||
|
**Lumiera** is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
option) any later version. See the file COPYING for further details.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file play-panel.hpp
|
||||||
|
** Definition of a dockable panel for playback control //////////////////////////////////////////////TICKET #1097 : me can haz more play panelz? wanna chase teh rat
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef STAGE_PANEL_PLAY_PANEL_H
|
||||||
|
#define STAGE_PANEL_PLAY_PANEL_H
|
||||||
|
|
||||||
|
|
||||||
|
#include "stage/panel/panel.hpp"
|
||||||
|
#include "stage/widget/video-display-widget.hpp"
|
||||||
|
#include "stage/ctrl/demo-controller.hpp"
|
||||||
|
|
||||||
|
namespace stage {
|
||||||
|
namespace panel {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A panel to display the video output.
|
||||||
|
*/
|
||||||
|
class PlayPanel
|
||||||
|
: public Panel
|
||||||
|
{
|
||||||
|
widget::VideoDisplayWidget display_;
|
||||||
|
ctrl::DemoController demoPlayback_;
|
||||||
|
|
||||||
|
public:
|
||||||
|
PlayPanel (workspace::PanelManager&, Gdl::DockItem&);
|
||||||
|
|
||||||
|
static const char* getTitle();
|
||||||
|
static const gchar* getStockID();
|
||||||
|
};
|
||||||
|
|
||||||
|
}}// namespace stage::panel
|
||||||
|
#endif /*STAGE_PANEL_PLAY_PANEL_H*/
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
|
|
||||||
/** @file viewer-panel.cpp
|
/** @file viewer-panel.cpp
|
||||||
** Implementation of a dockable panel to hold the video viewers
|
** Implementation of a dockable panel with a video display widget
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stage/gtk-base.hpp"
|
#include "stage/gtk-base.hpp"
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @file viewer-panel.hpp
|
/** @file viewer-panel.hpp
|
||||||
** Definition of a dockable panel to hold the video viewers
|
** Definition of a dockable panel to hold a video viewer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@
|
||||||
#include "stage/workspace/panel-manager.hpp"
|
#include "stage/workspace/panel-manager.hpp"
|
||||||
|
|
||||||
#include "stage/panel/assets-panel.hpp"
|
#include "stage/panel/assets-panel.hpp"
|
||||||
#include "stage/panel/viewer-panel.hpp"
|
#include "stage/panel/play-panel.hpp" //////////////////////////////////////////////////////////TICKET #1097 : need multiple play controls
|
||||||
|
#include "stage/panel/viewer-panel.hpp" ///////////////////////////////////////////////////////////TICKET #1097 : need multiple viewers
|
||||||
#include "stage/panel/infobox-panel.hpp"
|
#include "stage/panel/infobox-panel.hpp"
|
||||||
#include "stage/panel/timeline-panel.hpp"
|
#include "stage/panel/timeline-panel.hpp"
|
||||||
|
|
||||||
|
|
@ -41,6 +42,7 @@ namespace workspace {
|
||||||
PanelManager::Panel<TimelinePanel>(),
|
PanelManager::Panel<TimelinePanel>(),
|
||||||
PanelManager::Panel<InfoBoxPanel>(),
|
PanelManager::Panel<InfoBoxPanel>(),
|
||||||
PanelManager::Panel<ViewerPanel>(),
|
PanelManager::Panel<ViewerPanel>(),
|
||||||
|
PanelManager::Panel<PlayPanel>(),
|
||||||
PanelManager::Panel<AssetsPanel>()
|
PanelManager::Panel<AssetsPanel>()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -183,13 +185,13 @@ namespace workspace {
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PanelManager::splitPanel (panel::Panel& panel, Gtk::Orientation split_direction)
|
PanelManager::splitPanel (panel::Panel& panel, Gtk::Orientation split_direction, panel::Panel* toAdd)
|
||||||
{
|
{
|
||||||
|
if (not toAdd)
|
||||||
// Create the new panel
|
{// then duplicate the panel to split...
|
||||||
const int index = getPanelType(&panel);
|
int index = getPanelType(&panel);
|
||||||
panel::Panel *new_panel = createPanel_by_index(index);
|
toAdd = createPanel_by_index(index);
|
||||||
|
}
|
||||||
// Dock the panel
|
// Dock the panel
|
||||||
Gdl::DockPlacement placement = Gdl::DOCK_NONE;
|
Gdl::DockPlacement placement = Gdl::DOCK_NONE;
|
||||||
switch(split_direction)
|
switch(split_direction)
|
||||||
|
|
@ -209,7 +211,7 @@ namespace workspace {
|
||||||
}
|
}
|
||||||
|
|
||||||
panel.getDockItem().dock(
|
panel.getDockItem().dock(
|
||||||
new_panel->getDockItem(),placement);
|
toAdd->getDockItem(),placement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -240,13 +242,15 @@ namespace workspace {
|
||||||
PanelManager::createPanels()
|
PanelManager::createPanels()
|
||||||
{
|
{
|
||||||
///////////////////////////////TICKET #1026 : code smell, use types directly instead
|
///////////////////////////////TICKET #1026 : code smell, use types directly instead
|
||||||
panel::Panel* assetsPanel = createPanel_by_name("AssetsPanel");
|
panel::Panel* playPanel = createPanel_by_name("PlayPanel");
|
||||||
panel::Panel* viewerPanel = createPanel_by_name("InfoBoxPanel");
|
panel::Panel* viewerPanel = createPanel_by_name("ViewerPanel");
|
||||||
|
panel::Panel* infoBoxPanel = createPanel_by_name("InfoBoxPanel");
|
||||||
panel::Panel* timelinePanel = createPanel_by_name("TimelinePanel");
|
panel::Panel* timelinePanel = createPanel_by_name("TimelinePanel");
|
||||||
|
|
||||||
dock_.add_item(assetsPanel->getDockItem(),Gdl::DOCK_LEFT);
|
dock_.add_item(viewerPanel->getDockItem(),Gdl::DOCK_LEFT);
|
||||||
dock_.add_item(timelinePanel->getDockItem(),Gdl::DOCK_BOTTOM);
|
dock_.add_item(timelinePanel->getDockItem(),Gdl::DOCK_BOTTOM);
|
||||||
dock_.add_item(viewerPanel->getDockItem(),Gdl::DOCK_RIGHT);
|
dock_.add_item(infoBoxPanel->getDockItem(),Gdl::DOCK_RIGHT);
|
||||||
|
splitPanel(*infoBoxPanel, ORIENTATION_VERTICAL, playPanel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ namespace workspace {
|
||||||
* @param panel The panel to split.
|
* @param panel The panel to split.
|
||||||
* @param split_direction The direction to split the panel in.
|
* @param split_direction The direction to split the panel in.
|
||||||
*/
|
*/
|
||||||
void splitPanel (panel::Panel& panel, Gtk::Orientation split_direction);
|
void splitPanel (panel::Panel& panel, Gtk::Orientation split_direction, panel::Panel* toAdd =nullptr);
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -190,10 +190,11 @@ namespace workspace {
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
UiStyle::registerStockItems()
|
UiStyle::registerStockItems()
|
||||||
{
|
{ ////////////////////////////////////////////////////////////////////TICKET #1405 : all this registration with matching IDs is way too much "boilerplaty"
|
||||||
Glib::RefPtr<IconFactory> factory = Gtk::IconFactory::create();
|
Glib::RefPtr<IconFactory> factory = Gtk::IconFactory::create();
|
||||||
|
|
||||||
addStockIconSet(factory, "panel-assets", "panel_assets", _("_Assets"));
|
addStockIconSet(factory, "panel-assets", "panel_assets", _("_Assets"));
|
||||||
|
addStockIconSet(factory, "panel-play", "panel_play", _("_Play"));
|
||||||
addStockIconSet(factory, "panel-viewer", "panel_viewer", _("_Viewer"));
|
addStockIconSet(factory, "panel-viewer", "panel_viewer", _("_Viewer"));
|
||||||
addStockIconSet(factory, "panel-infobox", "panel_infobox", _("_InfoBox"));
|
addStockIconSet(factory, "panel-infobox", "panel_infobox", _("_InfoBox"));
|
||||||
addStockIconSet(factory, "panel-timeline", "panel_timeline",_("_Timeline"));
|
addStockIconSet(factory, "panel-timeline", "panel_timeline",_("_Timeline"));
|
||||||
|
|
@ -246,7 +247,7 @@ namespace workspace {
|
||||||
// Add the icon set to the icon factory
|
// Add the icon set to the icon factory
|
||||||
const Gtk::StockID stock_id(id);
|
const Gtk::StockID stock_id(id);
|
||||||
factory->add(stock_id, icon_set);
|
factory->add(stock_id, icon_set);
|
||||||
Gtk::Stock::add(Gtk::StockItem(stock_id, uLabel)); //////////////////////TICKET #1030 : use "icon names" instead of Gtk::StockItem
|
Gtk::Stock::add(Gtk::StockItem(stock_id, uLabel)); //////////////////////////////////////////TICKET #1030 : use "icon names" instead of Gtk::StockItem
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -129797,6 +129797,124 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1746237886231" ID="ID_81175326" MODIFIED="1746237894236" TEXT="ein paar Buttons einbinden">
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1746237886231" ID="ID_81175326" MODIFIED="1746237894236" TEXT="ein paar Buttons einbinden">
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="flag-yellow"/>
|
||||||
|
<node CREATED="1746366500471" ID="ID_442660271" MODIFIED="1746366507224" TEXT="bloß wo?">
|
||||||
|
<node CREATED="1746366514666" ID="ID_414805814" MODIFIED="1746366526915" TEXT="könnte natürlich eine Button-Bar in den Viewer hängen"/>
|
||||||
|
<node CREATED="1746366527794" ID="ID_488665860" MODIFIED="1746366562250" TEXT="aber vertical Screen-Real-Estate ist bereits knapp">
|
||||||
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1746366544285" ID="ID_148444359" MODIFIED="1746366557240" TEXT="könnte die Button-Bar auch vertikal machen">
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1746366566357" ID="ID_669235936" MODIFIED="1746366588141" TEXT="geplant war aber ein Play-Control-Widget"/>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1746366589535" ID="ID_944511675" MODIFIED="1746366785144" TEXT="also ein neues Docking-Panel schaffen">
|
||||||
|
<icon BUILTIN="yes"/>
|
||||||
|
<node CREATED="1746366642490" ID="ID_997232477" MODIFIED="1746366650524" TEXT="bekommt in erster Näherung die Buttons direkt"/>
|
||||||
|
<node CREATED="1746366651348" ID="ID_1947097226" MODIFIED="1746366715461" TEXT="soll später mal auch den Timecode darstellen"/>
|
||||||
|
<node COLOR="#5b280f" CREATED="1746366631539" ID="ID_1644863113" MODIFIED="1746366893632" TEXT="PlayerPanel">
|
||||||
|
<icon BUILTIN="button_cancel"/>
|
||||||
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1746366854412" ID="ID_329913152" MODIFIED="1746366899251" TEXT="PlayPanel">
|
||||||
|
<icon BUILTIN="forward"/>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1746366860054" ID="ID_597519647" MODIFIED="1746366904498" TEXT="könnte nämlich auch Richtung Navigator gehen">
|
||||||
|
<font NAME="SansSerif" SIZE="11"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1746374503622" ID="ID_1680072042" MODIFIED="1746374522309" TEXT="grrr .... warum ist das so mühsam???">
|
||||||
|
<icon BUILTIN="smiley-angry"/>
|
||||||
|
<node CREATED="1746374525273" ID="ID_1538200585" MODIFIED="1746374534611" TEXT="muß »Stock-ID« registrieren"/>
|
||||||
|
<node CREATED="1746374535343" ID="ID_406063817" MODIFIED="1746489702760" TEXT="brauche ein Icon">
|
||||||
|
<arrowlink COLOR="#67647f" DESTINATION="ID_1569870904" ENDARROW="Default" ENDINCLINATION="-1095;296;" ID="Arrow_ID_1632100831" STARTARROW="None" STARTINCLINATION="-1256;195;"/>
|
||||||
|
<node CREATED="1746374590955" ID="ID_175519777" MODIFIED="1746374594839" TEXT="woher nehmen?"/>
|
||||||
|
<node CREATED="1746374595458" ID="ID_1292478720" LINK="notably https://github.com/shimmerproject/elementary-xfce" MODIFIED="1746383116727" TEXT="am Besten gleich stehlen">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
mal bei den Standard-Icons vom XFCE-Desktop nachschauen
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
... die Starter-Konfig-Box durchscrollen
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
.... mal bei Tango nachschauen...
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
..... XFCE hat doch diesen sehr sauber-minimalistischen Icon-Satz von »Elementary-OS« übernommen (den man dort wegwerfen wollte)
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<node COLOR="#435e98" CREATED="1746489774498" ID="ID_1118210967" MODIFIED="1746489931429" TEXT="Idee: ein Laufwerk">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Ausgangspunkt sind verschiedene Icons für Musik-Player, die eine stilisierte Compact-Kasette zeigen. Das bringt mich auf die Idee, auf die Steenbeck-Schneidemaschinen anzuspielen, mit den großen Rollen, bzw. auf eine Magnetton-Maschine ... und dann könnte man ein »Playhead« aus einem »Play/Pause«-Symbol erzeugen
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</richcontent>
|
||||||
|
<font NAME="SansSerif" SIZE="8"/>
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node COLOR="#5b280f" CREATED="1746374605761" ID="ID_1626786868" MODIFIED="1746374633750" TEXT="Vorsicht: GPL-3+">
|
||||||
|
<icon BUILTIN="stop-sign"/>
|
||||||
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#d90a15" CREATED="1746374883465" HGAP="30" ID="ID_335713990" MODIFIED="1746374915951" TEXT="wenns dumm läuft hat das »Konsequenzen«">
|
||||||
|
<edge STYLE="sharp_linear"/>
|
||||||
|
<font NAME="SansSerif" SIZE="8"/>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#d90a15" CREATED="1746374883465" HGAP="30" ID="ID_294861733" MODIFIED="1746383199394" TEXT="Einbahnstraße CC-BY-SA ⟶ GPL-3 (nicht umgekehrt)">
|
||||||
|
<edge STYLE="sharp_linear"/>
|
||||||
|
<font NAME="SansSerif" SIZE="8"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1746374734536" ID="ID_501174899" MODIFIED="1746490067343">
|
||||||
|
<richcontent TYPE="NODE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Tja ⟹ dann gibt's bloß <i>Inspiration</i> + Arbeit
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Ideen sind immer noch frei (sofern sie nicht patentiert sind) — nur der <i>konkrete gestalterische Ausruck</i> steht unter Copyright...
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html></richcontent>
|
||||||
|
<node COLOR="#632c48" CREATED="1746489632822" ID="ID_1733758969" MODIFIED="1746489674012" TEXT="ja es ist Arbeit">
|
||||||
|
<font NAME="SansSerif" SIZE="11"/>
|
||||||
|
<icon BUILTIN="ksmiletris"/>
|
||||||
|
</node>
|
||||||
|
<node COLOR="#632c48" CREATED="1746489638293" ID="ID_811033416" MODIFIED="1746489674012" TEXT="hab 5 Stunden gebraucht">
|
||||||
|
<font NAME="SansSerif" SIZE="11"/>
|
||||||
|
<icon BUILTIN="smiley-oh"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1746378431051" HGAP="29" ID="ID_1919752859" LINK="https://issues.lumiera.org/ticket/1405" MODIFIED="1746489711110" TEXT=" #1405 simplify UI ressource integration " VSHIFT="-30">
|
||||||
|
<icon BUILTIN="bell"/>
|
||||||
|
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1746378455815" HGAP="25" ID="ID_366179176" LINK="https://issues.lumiera.org/ticket/566" MODIFIED="1746378493624" TEXT="+ neue Meta-Kategorie: #566 Code Base Organisation" VSHIFT="6"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node COLOR="#338800" CREATED="1746488154956" ID="ID_116419305" MODIFIED="1746488255464" TEXT="Panel-Layout einrichten">
|
||||||
|
<icon BUILTIN="button_ok"/>
|
||||||
|
<node COLOR="#435e98" CREATED="1746488164339" ID="ID_278027101" MODIFIED="1746488236697" TEXT="muß hier explizit ein anderes Panel splitten">
|
||||||
|
<icon BUILTIN="yes"/>
|
||||||
|
<node CREATED="1746488238312" ID="ID_1496606411" MODIFIED="1746488245414" TEXT="möchte es rechts haben"/>
|
||||||
|
<node CREATED="1746488246255" ID="ID_1090098350" MODIFIED="1746488253027" TEXT="unter der InfoBox aber über der Timeline"/>
|
||||||
|
</node>
|
||||||
|
<node COLOR="#338800" CREATED="1746488179556" ID="ID_373436185" MODIFIED="1746488229099" TEXT="PanelManager::splitPanel() erweitern...">
|
||||||
|
<icon BUILTIN="button_ok"/>
|
||||||
|
<node CREATED="1746488200828" ID="ID_548215294" MODIFIED="1746488213246" TEXT="so daß man optional ein schon bestehendes Panel übergeben kann"/>
|
||||||
|
<node CREATED="1746488214025" ID="ID_307597163" MODIFIED="1746488224814" TEXT="denn sonst würde lediglich das aktuell gedockte Pannel aufgedoppelt"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1746321719549" ID="ID_1181117478" MODIFIED="1746321726590" TEXT="Buttons mit controller verdrahten">
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1746321719549" ID="ID_1181117478" MODIFIED="1746321726590" TEXT="Buttons mit controller verdrahten">
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="flag-yellow"/>
|
||||||
|
|
@ -154542,8 +154660,7 @@ std::cout << tmpl.render({"what", "World"}) << s
|
||||||
es ging darum, an die unterliegenden X-Windows ranzukommen, um sie dann auf dem Bidschirm zu positionierenl
|
es ging darum, an die unterliegenden X-Windows ranzukommen, um sie dann auf dem Bidschirm zu positionierenl
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1746313154700" ID="ID_1881885906" MODIFIED="1746313243780" TEXT="Wir haben entsprechenden Code in unserem XvDisplayer">
|
<node CREATED="1746313154700" ID="ID_1881885906" MODIFIED="1746313243780" TEXT="Wir haben entsprechenden Code in unserem XvDisplayer">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
|
@ -154575,8 +154692,7 @@ std::cout << tmpl.render({"what", "World"}) << s
|
||||||
dieser Code ist anscheinend <i>nicht deprecated</i>
|
dieser Code ist anscheinend <i>nicht deprecated</i>
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></richcontent>
|
||||||
</richcontent>
|
|
||||||
<arrowlink COLOR="#627b8f" DESTINATION="ID_748124734" ENDARROW="Default" ENDINCLINATION="83;412;" ID="Arrow_ID_1511868825" STARTARROW="None" STARTINCLINATION="342;-494;"/>
|
<arrowlink COLOR="#627b8f" DESTINATION="ID_748124734" ENDARROW="Default" ENDINCLINATION="83;412;" ID="Arrow_ID_1511868825" STARTARROW="None" STARTINCLINATION="342;-494;"/>
|
||||||
<node CREATED="1746313308823" ID="ID_586730227" MODIFIED="1746313316638" TEXT="aber man findet dazu nichts in der Doku"/>
|
<node CREATED="1746313308823" ID="ID_586730227" MODIFIED="1746313316638" TEXT="aber man findet dazu nichts in der Doku"/>
|
||||||
<node CREATED="1746313317267" ID="ID_580811889" MODIFIED="1746313423821" TEXT="das heißt, er gehört zur Implementierung, nicht zum Interface">
|
<node CREATED="1746313317267" ID="ID_580811889" MODIFIED="1746313423821" TEXT="das heißt, er gehört zur Implementierung, nicht zum Interface">
|
||||||
|
|
@ -157720,8 +157836,9 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
|
||||||
<node CREATED="1538838573613" ID="ID_1610361741" MODIFIED="1557498707241" TEXT="Graphic">
|
<node CREATED="1538838573613" ID="ID_1610361741" MODIFIED="1557498707241" TEXT="Graphic">
|
||||||
<node CREATED="1538838576956" ID="ID_1174319279" MODIFIED="1665346614450" TEXT="SVG-Icons">
|
<node CREATED="1538838576956" ID="ID_1174319279" MODIFIED="1665346614450" TEXT="SVG-Icons">
|
||||||
<linktarget COLOR="#668497" DESTINATION="ID_1174319279" ENDARROW="Default" ENDINCLINATION="-533;-310;" ID="Arrow_ID_1274211300" SOURCE="ID_465159869" STARTARROW="None" STARTINCLINATION="-2393;215;"/>
|
<linktarget COLOR="#668497" DESTINATION="ID_1174319279" ENDARROW="Default" ENDINCLINATION="-533;-310;" ID="Arrow_ID_1274211300" SOURCE="ID_465159869" STARTARROW="None" STARTINCLINATION="-2393;215;"/>
|
||||||
<node CREATED="1504201038435" ID="ID_1569870904" MODIFIED="1557498707241" TEXT="Anleitung">
|
<node CREATED="1504201038435" ID="ID_1569870904" MODIFIED="1746488128368" TEXT="Anleitung">
|
||||||
<linktarget COLOR="#8697d2" DESTINATION="ID_1569870904" ENDARROW="Default" ENDINCLINATION="-935;-133;" ID="Arrow_ID_421953450" SOURCE="ID_1898190659" STARTARROW="None" STARTINCLINATION="-861;94;"/>
|
<linktarget COLOR="#8697d2" DESTINATION="ID_1569870904" ENDARROW="Default" ENDINCLINATION="-935;-133;" ID="Arrow_ID_421953450" SOURCE="ID_1898190659" STARTARROW="None" STARTINCLINATION="-861;94;"/>
|
||||||
|
<linktarget COLOR="#67647f" DESTINATION="ID_1569870904" ENDARROW="Default" ENDINCLINATION="-1095;296;" ID="Arrow_ID_1632100831" SOURCE="ID_406063817" STARTARROW="None" STARTINCLINATION="-1256;195;"/>
|
||||||
<node CREATED="1504201044122" ID="ID_612955500" MODIFIED="1557498707241" TEXT="SVG in data/icons/svg"/>
|
<node CREATED="1504201044122" ID="ID_612955500" MODIFIED="1557498707241" TEXT="SVG in data/icons/svg"/>
|
||||||
<node CREATED="1504201192870" ID="ID_823572488" MODIFIED="1576282357932" TEXT="Dokument-Größe anscheinend egal">
|
<node CREATED="1504201192870" ID="ID_823572488" MODIFIED="1576282357932" TEXT="Dokument-Größe anscheinend egal">
|
||||||
<richcontent TYPE="NOTE"><html>
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
|
@ -157739,11 +157856,36 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
|
||||||
</body>
|
</body>
|
||||||
</html></richcontent>
|
</html></richcontent>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1504201055449" ID="ID_1652674635" MODIFIED="1557498707241" TEXT="braucht 'artwork:'-Layer"/>
|
<node CREATED="1504201055449" ID="ID_1652674635" MODIFIED="1557498707241" TEXT="braucht 'artwork:'-Layer">
|
||||||
|
<node CREATED="1746487790861" ID="ID_609916222" MODIFIED="1746487812558" TEXT="aus dem Namen hinter 'artwork:' ergibt sich der gerenderte Icon-Name"/>
|
||||||
|
</node>
|
||||||
<node CREATED="1504201074566" ID="ID_1803123712" MODIFIED="1557498707241" TEXT="braucht Sub-Layer 'plate'">
|
<node CREATED="1504201074566" ID="ID_1803123712" MODIFIED="1557498707241" TEXT="braucht Sub-Layer 'plate'">
|
||||||
<node CREATED="1504201085348" ID="ID_971103885" MODIFIED="1557498707241" TEXT="dort bounding-boxes"/>
|
<node CREATED="1504201085348" ID="ID_971103885" MODIFIED="1557498707241" TEXT="dort bounding-boxes"/>
|
||||||
<node CREATED="1504201089491" ID="ID_1411697919" MODIFIED="1557498707241" TEXT="deren Größe in PX ist die Icon-Größe"/>
|
<node CREATED="1504201089491" ID="ID_1411697919" MODIFIED="1557498707241" TEXT="deren Größe in PX ist die Icon-Größe"/>
|
||||||
<node CREATED="1504201101314" ID="ID_813225733" MODIFIED="1557498707241" TEXT="brauche 16, 22, 32"/>
|
<node CREATED="1504201101314" ID="ID_813225733" MODIFIED="1557498707241" TEXT="brauche 16, 22, 32">
|
||||||
|
<node CREATED="1746487870329" HGAP="24" ID="ID_1328260940" MODIFIED="1746487888167" TEXT="man kann weitere Größen rendern" VSHIFT="7">
|
||||||
|
<font NAME="SansSerif" SIZE="11"/>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1746487901880" ID="ID_1458780963" MODIFIED="1746488115881" TEXT="Tips">
|
||||||
|
<icon BUILTIN="idea"/>
|
||||||
|
<node CREATED="1746487947608" ID="ID_951309875" MODIFIED="1746487952957" TEXT="__Icon_TEMPLATE als Startpunkt verwenden"/>
|
||||||
|
<node CREATED="1746487953628" ID="ID_151495585" MODIFIED="1746487974488" TEXT="Bitte den Autor und die LIzenz korrekt ausfüllen (CC-BY-SA bevorzugt)"/>
|
||||||
|
<node CREATED="1746487993769" ID="ID_1785313960" MODIFIED="1746488037899" TEXT="Dokument ist so konfiguriert, daß 1:1-Anzeige das Icon in Originalgröße zeigt">
|
||||||
|
<richcontent TYPE="NOTE"><html>
|
||||||
|
<head/>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
Das ist essentiell; gute Icons zeichnen ist eine Kunst
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</richcontent>
|
||||||
|
</node>
|
||||||
|
<node CREATED="1746488049804" ID="ID_410833116" MODIFIED="1746488064098" TEXT="ggfs temporär einen farbigen / dunklen HIntergrund dahinter legen"/>
|
||||||
|
<node CREATED="1746488065232" ID="ID_428636762" MODIFIED="1746488081816" TEXT="Icons müssen sowohl auf hellem, alsauch auf dunklem HInterrund funktionieren"/>
|
||||||
|
<node CREATED="1746488082832" ID="ID_13749749" MODIFIED="1746488107790" TEXT="Schatteren bitte mögichst nur mit Transparenz + weiß / schwarz"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue