Add media player for My Gtk UI

This commit is contained in:
daleclack 2024-03-16 22:44:24 +08:00
parent 205b29dc1a
commit da418698e4
7 changed files with 703 additions and 18 deletions

View File

@ -128,7 +128,35 @@ set(RESOURCE_LIST
icons/scalable/status/calcapp.svg
icons/scalable/status/calcapp_running.svg
icons/scalable/status/mines_app.svg
icons/scalable/status/mines_app_running.svg)
icons/scalable/status/mines_app_running.svg
icons/scalable/status/media-app.svg
icons/scalable/status/media-app-running.svg
icons/scalable/status/media-eject-dark.svg
icons/scalable/status/media-eject.svg
icons/scalable/status/media-mount-dark.svg
icons/scalable/status/media-mount.svg
icons/scalable/status/media-playback-pause-dark.svg
icons/scalable/status/media-playback-pause.svg
icons/scalable/status/media-playback-start-dark.svg
icons/scalable/status/media-playback-start.svg
icons/scalable/status/media-playback-stop-dark.svg
icons/scalable/status/media-playback-stop.svg
icons/scalable/status/media-playlist-append-dark.svg
icons/scalable/status/media-playlist-append.svg
icons/scalable/status/media-playlist-normal-dark.svg
icons/scalable/status/media-playlist-normal.svg
icons/scalable/status/media-playlist-play-dark.svg
icons/scalable/status/media-playlist-play.svg
icons/scalable/status/media-playlist-repeat-dark.svg
icons/scalable/status/media-playlist-repeat-one-dark.svg
icons/scalable/status/media-playlist-repeat.svg
icons/scalable/status/media-playlist-repeat-one.svg
icons/scalable/status/media-playlist-shuffle-dark.svg
icons/scalable/status/media-playlist-shuffle.svg
icons/scalable/status/media-seek-backward-dark.svg
icons/scalable/status/media-seek-backward.svg
icons/scalable/status/media-seek-forward-dark.svg
icons/scalable/status/media-seek-forward.svg)
compile_gresources(RESOURCE_FILE
XML_OUT

View File

@ -0,0 +1,454 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
id="svg3795"
width="48"
height="48"
version="1.0"
sodipodi:docname="media-app-running.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="17.979167"
inkscape:cx="23.97219"
inkscape:cy="23.97219"
inkscape:window-width="1856"
inkscape:window-height="1049"
inkscape:window-x="64"
inkscape:window-y="-3"
inkscape:window-maximized="1"
inkscape:current-layer="svg3795" />
<defs
id="defs3797">
<radialGradient
id="radialGradient3344"
cx="22.902"
cy="45.867"
r="7.9059"
gradientTransform="matrix(.69765 0 0 .29961 21.419 28.89)"
gradientUnits="userSpaceOnUse">
<stop
id="stop3197-4"
offset="0" />
<stop
id="stop3199-8"
style="stop-opacity:0"
offset="1" />
</radialGradient>
<radialGradient
id="radialGradient3254"
cx="22.902"
cy="45.867"
r="7.9059"
gradientTransform="matrix(.75875 0 0 .32584 8.1065 29.479)"
gradientUnits="userSpaceOnUse">
<stop
id="stop3203-1"
offset="0" />
<stop
id="stop3205-0"
style="stop-opacity:0"
offset="1" />
</radialGradient>
<radialGradient
id="radialGradient3250"
cx="17.059"
cy="41.059"
r="5.7385"
fx="14.638"
fy="38.175"
gradientTransform="matrix(.66498 0 -.10886 .63739 18.851 15.263)"
gradientUnits="userSpaceOnUse">
<stop
id="stop3877-9"
style="stop-color:#aaa"
offset="0" />
<stop
id="stop3879-7"
style="stop-color:#4d4d4d"
offset="1" />
</radialGradient>
<radialGradient
id="radialGradient3247"
cx="17.059"
cy="41.059"
r="5.7385"
fx="14.109"
fy="38.981"
gradientTransform="matrix(.66333 0 -.10859 .6358 30.91 13.497)"
gradientUnits="userSpaceOnUse">
<stop
id="stop3871-4"
style="stop-color:#aaa"
offset="0" />
<stop
id="stop3873-6"
style="stop-color:#4d4d4d"
offset="1" />
</radialGradient>
<linearGradient
id="linearGradient3244"
x1="28.739"
x2="25.4"
y1="144.12"
y2="119.86"
gradientTransform="matrix(.22147 0 0 .22311 22.945 -6.0788)"
gradientUnits="userSpaceOnUse">
<stop
id="stop3239-9"
style="stop-color:#fff"
offset="0" />
<stop
id="stop3241-7"
style="stop-color:#fff;stop-opacity:.37931"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3241"
x1="28.739"
x2="26.257"
y1="144.12"
y2="125.39"
gradientTransform="matrix(.44563 0 0 .22311 29.628 -7.6573)"
gradientUnits="userSpaceOnUse">
<stop
id="stop3245-1"
style="stop-color:#fff"
offset="0" />
<stop
id="stop3247-7"
style="stop-color:#fff;stop-opacity:.37931"
offset="1" />
</linearGradient>
<radialGradient
id="radialGradient2464"
cx="23.335"
cy="41.636"
r="22.627"
gradientTransform="matrix(.97227 0 0 .28724 1.3125 27.541)"
gradientUnits="userSpaceOnUse">
<stop
id="stop23421"
offset="0" />
<stop
id="stop23423"
style="stop-opacity:0"
offset="1" />
</radialGradient>
<linearGradient
id="linearGradient3258"
x1="12.274"
x2="35.391"
y1="32.416"
y2="14.203"
gradientTransform="matrix(0 1.1714 -1.1714 0 51.06 -4.1145)"
gradientUnits="userSpaceOnUse">
<stop
id="stop3265"
style="stop-color:#dedbde"
offset="0" />
<stop
id="stop3267"
style="stop-color:#e6e6e6"
offset=".5" />
<stop
id="stop3269"
style="stop-color:#d2d2d2"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3434"
x1="21.448"
x2="21.448"
y1="15.5"
y2="32.509"
gradientTransform="matrix(.9375 0 0 .9375 1.5 1.5)"
gradientUnits="userSpaceOnUse">
<stop
id="stop3430"
style="stop-color:#aaa"
offset="0" />
<stop
id="stop3432"
style="stop-color:#d4d4d4"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3717"
x1="10.609"
x2="9.7298"
y1="17.886"
y2="20.613"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
xlink:href="#linearGradient3519" />
<linearGradient
id="linearGradient3715"
x1="12.372"
x2="14.609"
y1="16.188"
y2="13.462"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
xlink:href="#linearGradient3511" />
<linearGradient
id="linearGradient3713"
x1="14.085"
x2="16.994"
y1="13.046"
y2="10.732"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
xlink:href="#linearGradient3503" />
<linearGradient
id="linearGradient3711"
x1="17.495"
x2="21.047"
y1="11.2"
y2="9.7956"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
xlink:href="#linearGradient3495" />
<linearGradient
id="linearGradient3709"
x1="20.58"
x2="24.274"
y1="10.775"
y2="9.8622"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect"
xlink:href="#linearGradient3487" />
<linearGradient
id="linearGradient3519">
<stop
id="stop3521"
style="stop-color:#fcd9cd"
offset="0" />
<stop
id="stop3523"
style="stop-color:#fcd9cd;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3511">
<stop
id="stop3513"
style="stop-color:#ebeec7"
offset="0" />
<stop
id="stop3515"
style="stop-color:#ebeec7;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3503">
<stop
id="stop3505"
style="stop-color:#c4ebdd"
offset="0" />
<stop
id="stop3507"
style="stop-color:#c4ebdd;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3495">
<stop
id="stop3497"
style="stop-color:#c1cbe4"
offset="0" />
<stop
id="stop3499"
style="stop-color:#c1cbe4;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3487">
<stop
id="stop3489"
style="stop-color:#e6cde2"
offset="0" />
<stop
id="stop3491"
style="stop-color:#e6cde2;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3766"
x1="10.502"
x2="48.799"
y1="3.61"
y2="54.698"
gradientTransform="matrix(.98497 0 0 .98497 .019022 -.62415)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient6036" />
<linearGradient
id="linearGradient3778"
x1="20.019"
x2="20.019"
y1="3"
y2="45.176"
gradientUnits="userSpaceOnUse">
<stop
id="stop3774"
style="stop-color:#b4b4b4"
offset="0" />
<stop
id="stop3776"
style="stop-color:#969696"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient6036">
<stop
id="stop6038"
style="stop-color:#fff"
offset="0" />
<stop
id="stop6040"
style="stop-color:#fff;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3294"
x1="18.776"
x2="18.203"
y1="4.0378"
y2="45.962"
gradientTransform="matrix(.42934 0 0 .42934 13.547 13.266)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient6036" />
</defs>
<g
id="layer1">
<path
id="path23417"
d="m46 39.5c0.0011 3.5898-9.8489 6.5-22 6.5s-22.001-2.9102-22-6.5c-0.0011331-3.5898 9.8489-6.5 22-6.5s22.001 2.9102 22 6.5z"
style="fill-rule:evenodd;fill:url(#radialGradient2464);opacity:.3" />
<path
id="path2781"
d="m44.5 24c0-11.363-9.137-20.5-20.5-20.5-11.363 0-20.5 9.137-20.5 20.5-2e-6 11.363 9.137 20.5 20.5 20.5 11.363-2e-6 20.5-9.137 20.5-20.5zm-12.5 0c0 4.623-3.377 8-8 8s-8-3.377-8-8 3.377-8 8-8 8 3.377 8 8z"
style="fill:url(#linearGradient3258)" />
<path
id="path2474"
d="m24 16c-4.416 0-8 3.584-8 8s3.584 8 8 8 8-3.584 8-8-3.584-8-8-8zm0 4c2.208 0 4 1.792 4 4s-1.792 4-4 4-4-1.792-4-4 1.792-4 4-4z"
style="fill:#fff;opacity:.5" />
<path
id="path3418"
d="m24 16.5c-4.14 0-7.5 3.36-7.5 7.5s3.36 7.5 7.5 7.5 7.5-3.36 7.5-7.5-3.36-7.5-7.5-7.5zm0 3.75c2.07 0 3.75 1.68 3.75 3.75s-1.68 3.75-3.75 3.75-3.75-1.68-3.75-3.75 1.68-3.75 3.75-3.75z"
style="fill:none;stroke-linejoin:round;stroke:url(#linearGradient3434)" />
<g
id="g3527">
<path
id="path3296"
transform="matrix(.9996 .028243 -.028243 .9996 .69241 -.67083)"
d="m24 3.5c-2.9758 0-5.7974 0.62082-8.3438 1.75l4.9688 11.094c1.0354-0.45856 2.1703-0.71875 3.375-0.71875 0.03206 0 0.06178-3.6e-4 0.09375 0v-12.125c-0.03127-1.386e-4 -0.06245 0-0.09375 0z"
style="fill:url(#linearGradient3709);opacity:.8" />
<path
id="path3308"
d="m19.597 3.9975c-2.9067 0.63758-5.5298 1.8485-7.775 3.4971l7.2303 9.7715c0.91311-0.66976 1.9659-1.1671 3.1426-1.4252 0.03132-0.0069 0.06026-0.01359 0.09157-0.02009l-2.5978-11.843c-0.03058 0.00656-0.061 0.013379-0.09157 0.020086z"
style="fill:url(#linearGradient3711);opacity:.8" />
<path
id="path3310"
d="m14.558 5.8449c-2.6426 1.3682-4.8629 3.2167-6.605 5.3902l9.513 7.5673c0.70865-0.88326 1.5969-1.6361 2.6667-2.19 0.02847-0.01474 0.05469-0.02872 0.08325-0.0431l-5.5746-10.768c-0.02783 0.014254-0.05545 0.02871-0.08325 0.043103z"
style="fill:url(#linearGradient3713);opacity:.8" />
<path
id="path3312"
d="m10.169 8.9335c-2.1985 2.0055-3.8647 4.3657-4.9849 6.9161l11.147 4.8473c0.4559-1.0366 1.119-1.9937 2.009-2.8055 0.02369-0.02161 0.0454-0.0419 0.06926-0.06318l-8.1715-8.9578c-0.0232 0.020972-0.04613 0.042084-0.06926 0.063182z"
style="fill:url(#linearGradient3715);opacity:.8" />
<path
id="path3314"
d="m6.7812 12.969c-0.016978 0.02626-0.045621 0.06739-0.0625 0.09375-1.1482 1.7935-1.9617 3.6813-2.5 5.625l11.75 3.125c0.21551-0.763 0.51805-1.5148 0.96875-2.2188 0.01729-0.027 0.04496-0.06702 0.0625-0.09375l-10.219-6.5312z"
style="fill:url(#linearGradient3717);opacity:.8" />
</g>
<g
id="g3642"
transform="matrix(-1,0,0,-1,48,48)"
style="opacity:.8">
<path
id="path3644"
transform="matrix(.9996 .028243 -.028243 .9996 .69241 -.67083)"
d="m24 3.5c-2.9758 0-5.7974 0.62082-8.3438 1.75l4.9688 11.094c1.0354-0.45856 2.1703-0.71875 3.375-0.71875 0.03206 0 0.06178-3.6e-4 0.09375 0v-12.125c-0.03127-1.386e-4 -0.06245 0-0.09375 0z"
style="fill:url(#linearGradient3709);opacity:.8" />
<path
id="path3646"
d="m19.597 3.9975c-2.9067 0.63758-5.5298 1.8485-7.775 3.4971l7.2303 9.7715c0.91311-0.66976 1.9659-1.1671 3.1426-1.4252 0.03132-0.0069 0.06026-0.01359 0.09157-0.02009l-2.5978-11.843c-0.03058 0.00656-0.061 0.013379-0.09157 0.020086z"
style="fill:url(#linearGradient3711);opacity:.8" />
<path
id="path3648"
d="m14.558 5.8449c-2.6426 1.3682-4.8629 3.2167-6.605 5.3902l9.513 7.5673c0.70865-0.88326 1.5969-1.6361 2.6667-2.19 0.02847-0.01474 0.05469-0.02872 0.08325-0.0431l-5.5746-10.768c-0.02783 0.014254-0.05545 0.02871-0.08325 0.043103z"
style="fill:url(#linearGradient3713);opacity:.8" />
<path
id="path3650"
d="m10.169 8.9335c-2.1985 2.0055-3.8647 4.3657-4.9849 6.9161l11.147 4.8473c0.4559-1.0366 1.119-1.9937 2.009-2.8055 0.02369-0.02161 0.0454-0.0419 0.06926-0.06318l-8.1715-8.9578c-0.0232 0.020972-0.04613 0.042084-0.06926 0.063182z"
style="fill:url(#linearGradient3715);opacity:.8" />
<path
id="path3652"
d="m6.7812 12.969c-0.016978 0.02626-0.045621 0.06739-0.0625 0.09375-1.1482 1.7935-1.9617 3.6813-2.5 5.625l11.75 3.125c0.21551-0.763 0.51805-1.5148 0.96875-2.2188 0.01729-0.027 0.04496-0.06702 0.0625-0.09375l-10.219-6.5312z"
style="fill:url(#linearGradient3717);opacity:.8" />
</g>
<path
id="path2787"
d="m24 4.5c-10.809 0-19.5 8.6914-19.5 19.5 0 10.809 8.6914 19.5 19.5 19.5s19.5-8.6914 19.5-19.5c0-10.809-8.6914-19.5-19.5-19.5z"
style="fill:none;opacity:.5;stroke:url(#linearGradient3766)" />
<path
id="path3287"
d="m24 3.5c-11.363 0-20.5 9.137-20.5 20.5 0 11.363 9.137 20.5 20.5 20.5 11.363 2e-6 20.5-9.137 20.5-20.5-2e-6 -11.363-9.137-20.5-20.5-20.5z"
style="fill:none;stroke:url(#linearGradient3778)" />
<path
id="path3281"
d="m24 15.5c-4.7114 0-8.5 3.7886-8.5 8.5s3.7886 8.5 8.5 8.5c4.7114 0 8.5-3.7886 8.5-8.5s-3.7886-8.5-8.5-8.5z"
style="fill:none;opacity:.8;stroke:url(#linearGradient3294)" />
</g>
<g
id="g2792">
<path
id="path2704"
d="m42.913 42.632c0 1.3082-2.4694 2.3687-5.5156 2.3687s-5.5156-1.0605-5.5156-2.3687 2.4694-2.3687 5.5156-2.3687 5.5156 1.0605 5.5156 2.3687z"
style="fill:url(#radialGradient3344);opacity:.3" />
<path
id="path4121"
d="m31.482 44.425c-8.55e-4 1.4225-2.6862 2.5754-5.9986 2.5754s-5.9977-1.153-5.9986-2.5754c-8.56e-4 -1.423 2.685-2.5768 5.9986-2.5768s5.9994 1.1538 5.9986 2.5768z"
style="fill:url(#radialGradient3254);opacity:.3" />
<path
id="path4031"
d="m41.378 19.504c-4.1269 0.65819-8.8722 1.3357-12.988 2.0307-1.0898 0.52625-0.84479 1.8813-0.89301 2.8646v13.162c-2.8008-0.6412-5.8751 1.4509-5.9966 4.4247-0.19829 1.8514 1.4606 3.463 3.2644 3.5063 3.2297 0.07759 5.6844-2.0431 5.7194-4.7252-0.03527-4.5043 0.0099-9.0104 0-13.515 0.5-0.03665 8.319-1.4668 9-1.5621v10.122c-2.5834-0.76106-5.1657 0.82954-5.8019 3.4956-0.47074 1.5444 0.23898 3.3701 1.7711 4.0028 2.9909 1.3602 7.1978-1.395 7.0308-4.6285-0.04632-6.0063 0.03797-12.015 0-18.022-0.07855-0.56448-0.46504-1.1967-1.1066-1.1559v0z"
style="fill:#4d4d4d;stroke-linecap:round;stroke-linejoin:round;stroke:#333" />
<path
id="path2937"
d="m29.621 40.768c0 1.9878-1.7443 3.8972-3.8959 4.2647-2.1516 0.3675-3.8959-0.94604-3.8959-2.9339s1.7443-3.8972 3.8959-4.2647c2.1516-0.3675 3.8959 0.94604 3.8959 2.9339z"
style="fill:url(#radialGradient3250)" />
<path
id="path2941"
d="m41.662 38.937c4.91e-4 1.9881-1.7439 3.898-3.8959 4.2655s-3.8964-0.94646-3.8959-2.9347c4.91e-4 -1.9876 1.7446-3.8964 3.8959-4.2639s3.8954 0.94563 3.8959 2.933z"
style="fill:url(#radialGradient3247)" />
<path
id="path2945"
d="m28.091 38.166-0.094-15.045s0.1029-1.1502 0.86617-1.1537c0.2707-0.04687 12.136-2.0041 12.136-2.0041s1.5321 0.72791-11.015 2.7677c-1.2871 0.24744-1 0.73094-1 1.58 0 2.2902 2e-6 6.0215 2e-6 14.36 0 0.05966-0.56979-0.4227-0.89325-0.50513h2e-6z"
style="fill-rule:evenodd;fill:url(#linearGradient3244);opacity:.3" />
<path
id="path2947"
d="m39.985 36.434 0.0594-11.366c0.62592-0.05597 0.0961-9e-3 0.94012-0.09284 0.01161 2.123 4.8e-4 3.8852 4.8e-4 11.903 0 0.05966-0.34916-0.36221-1-0.44464z"
style="fill-rule:evenodd;fill:url(#linearGradient3241);opacity:.3" />
</g>
<rect
style="fill:#0000ff"
id="rect1"
width="2"
height="48"
x="-0.017479677"
y="0.13686104" />
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg3795" width="48" height="48" version="1.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs3797">
<radialGradient id="radialGradient3344" cx="22.902" cy="45.867" r="7.9059" gradientTransform="matrix(.69765 0 0 .29961 21.419 28.89)" gradientUnits="userSpaceOnUse">
<stop id="stop3197-4" offset="0"/>
<stop id="stop3199-8" style="stop-opacity:0" offset="1"/>
</radialGradient>
<radialGradient id="radialGradient3254" cx="22.902" cy="45.867" r="7.9059" gradientTransform="matrix(.75875 0 0 .32584 8.1065 29.479)" gradientUnits="userSpaceOnUse">
<stop id="stop3203-1" offset="0"/>
<stop id="stop3205-0" style="stop-opacity:0" offset="1"/>
</radialGradient>
<radialGradient id="radialGradient3250" cx="17.059" cy="41.059" r="5.7385" fx="14.638" fy="38.175" gradientTransform="matrix(.66498 0 -.10886 .63739 18.851 15.263)" gradientUnits="userSpaceOnUse">
<stop id="stop3877-9" style="stop-color:#aaa" offset="0"/>
<stop id="stop3879-7" style="stop-color:#4d4d4d" offset="1"/>
</radialGradient>
<radialGradient id="radialGradient3247" cx="17.059" cy="41.059" r="5.7385" fx="14.109" fy="38.981" gradientTransform="matrix(.66333 0 -.10859 .6358 30.91 13.497)" gradientUnits="userSpaceOnUse">
<stop id="stop3871-4" style="stop-color:#aaa" offset="0"/>
<stop id="stop3873-6" style="stop-color:#4d4d4d" offset="1"/>
</radialGradient>
<linearGradient id="linearGradient3244" x1="28.739" x2="25.4" y1="144.12" y2="119.86" gradientTransform="matrix(.22147 0 0 .22311 22.945 -6.0788)" gradientUnits="userSpaceOnUse">
<stop id="stop3239-9" style="stop-color:#fff" offset="0"/>
<stop id="stop3241-7" style="stop-color:#fff;stop-opacity:.37931" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3241" x1="28.739" x2="26.257" y1="144.12" y2="125.39" gradientTransform="matrix(.44563 0 0 .22311 29.628 -7.6573)" gradientUnits="userSpaceOnUse">
<stop id="stop3245-1" style="stop-color:#fff" offset="0"/>
<stop id="stop3247-7" style="stop-color:#fff;stop-opacity:.37931" offset="1"/>
</linearGradient>
<radialGradient id="radialGradient2464" cx="23.335" cy="41.636" r="22.627" gradientTransform="matrix(.97227 0 0 .28724 1.3125 27.541)" gradientUnits="userSpaceOnUse">
<stop id="stop23421" offset="0"/>
<stop id="stop23423" style="stop-opacity:0" offset="1"/>
</radialGradient>
<linearGradient id="linearGradient3258" x1="12.274" x2="35.391" y1="32.416" y2="14.203" gradientTransform="matrix(0 1.1714 -1.1714 0 51.06 -4.1145)" gradientUnits="userSpaceOnUse">
<stop id="stop3265" style="stop-color:#dedbde" offset="0"/>
<stop id="stop3267" style="stop-color:#e6e6e6" offset=".5"/>
<stop id="stop3269" style="stop-color:#d2d2d2" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3434" x1="21.448" x2="21.448" y1="15.5" y2="32.509" gradientTransform="matrix(.9375 0 0 .9375 1.5 1.5)" gradientUnits="userSpaceOnUse">
<stop id="stop3430" style="stop-color:#aaa" offset="0"/>
<stop id="stop3432" style="stop-color:#d4d4d4" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3717" x1="10.609" x2="9.7298" y1="17.886" y2="20.613" gradientUnits="userSpaceOnUse" spreadMethod="reflect" xlink:href="#linearGradient3519"/>
<linearGradient id="linearGradient3715" x1="12.372" x2="14.609" y1="16.188" y2="13.462" gradientUnits="userSpaceOnUse" spreadMethod="reflect" xlink:href="#linearGradient3511"/>
<linearGradient id="linearGradient3713" x1="14.085" x2="16.994" y1="13.046" y2="10.732" gradientUnits="userSpaceOnUse" spreadMethod="reflect" xlink:href="#linearGradient3503"/>
<linearGradient id="linearGradient3711" x1="17.495" x2="21.047" y1="11.2" y2="9.7956" gradientUnits="userSpaceOnUse" spreadMethod="reflect" xlink:href="#linearGradient3495"/>
<linearGradient id="linearGradient3709" x1="20.58" x2="24.274" y1="10.775" y2="9.8622" gradientUnits="userSpaceOnUse" spreadMethod="reflect" xlink:href="#linearGradient3487"/>
<linearGradient id="linearGradient3519">
<stop id="stop3521" style="stop-color:#fcd9cd" offset="0"/>
<stop id="stop3523" style="stop-color:#fcd9cd;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3511">
<stop id="stop3513" style="stop-color:#ebeec7" offset="0"/>
<stop id="stop3515" style="stop-color:#ebeec7;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3503">
<stop id="stop3505" style="stop-color:#c4ebdd" offset="0"/>
<stop id="stop3507" style="stop-color:#c4ebdd;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3495">
<stop id="stop3497" style="stop-color:#c1cbe4" offset="0"/>
<stop id="stop3499" style="stop-color:#c1cbe4;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3487">
<stop id="stop3489" style="stop-color:#e6cde2" offset="0"/>
<stop id="stop3491" style="stop-color:#e6cde2;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3766" x1="10.502" x2="48.799" y1="3.61" y2="54.698" gradientTransform="matrix(.98497 0 0 .98497 .019022 -.62415)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6036"/>
<linearGradient id="linearGradient3778" x1="20.019" x2="20.019" y1="3" y2="45.176" gradientUnits="userSpaceOnUse">
<stop id="stop3774" style="stop-color:#b4b4b4" offset="0"/>
<stop id="stop3776" style="stop-color:#969696" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient6036">
<stop id="stop6038" style="stop-color:#fff" offset="0"/>
<stop id="stop6040" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3294" x1="18.776" x2="18.203" y1="4.0378" y2="45.962" gradientTransform="matrix(.42934 0 0 .42934 13.547 13.266)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6036"/>
</defs>
<g id="layer1">
<path id="path23417" d="m46 39.5c0.0011 3.5898-9.8489 6.5-22 6.5s-22.001-2.9102-22-6.5c-0.0011331-3.5898 9.8489-6.5 22-6.5s22.001 2.9102 22 6.5z" style="fill-rule:evenodd;fill:url(#radialGradient2464);opacity:.3"/>
<path id="path2781" d="m44.5 24c0-11.363-9.137-20.5-20.5-20.5-11.363 0-20.5 9.137-20.5 20.5-2e-6 11.363 9.137 20.5 20.5 20.5 11.363-2e-6 20.5-9.137 20.5-20.5zm-12.5 0c0 4.623-3.377 8-8 8s-8-3.377-8-8 3.377-8 8-8 8 3.377 8 8z" style="fill:url(#linearGradient3258)"/>
<path id="path2474" d="m24 16c-4.416 0-8 3.584-8 8s3.584 8 8 8 8-3.584 8-8-3.584-8-8-8zm0 4c2.208 0 4 1.792 4 4s-1.792 4-4 4-4-1.792-4-4 1.792-4 4-4z" style="fill:#fff;opacity:.5"/>
<path id="path3418" d="m24 16.5c-4.14 0-7.5 3.36-7.5 7.5s3.36 7.5 7.5 7.5 7.5-3.36 7.5-7.5-3.36-7.5-7.5-7.5zm0 3.75c2.07 0 3.75 1.68 3.75 3.75s-1.68 3.75-3.75 3.75-3.75-1.68-3.75-3.75 1.68-3.75 3.75-3.75z" style="fill:none;stroke-linejoin:round;stroke:url(#linearGradient3434)"/>
<g id="g3527">
<path id="path3296" transform="matrix(.9996 .028243 -.028243 .9996 .69241 -.67083)" d="m24 3.5c-2.9758 0-5.7974 0.62082-8.3438 1.75l4.9688 11.094c1.0354-0.45856 2.1703-0.71875 3.375-0.71875 0.03206 0 0.06178-3.6e-4 0.09375 0v-12.125c-0.03127-1.386e-4 -0.06245 0-0.09375 0z" style="fill:url(#linearGradient3709);opacity:.8"/>
<path id="path3308" d="m19.597 3.9975c-2.9067 0.63758-5.5298 1.8485-7.775 3.4971l7.2303 9.7715c0.91311-0.66976 1.9659-1.1671 3.1426-1.4252 0.03132-0.0069 0.06026-0.01359 0.09157-0.02009l-2.5978-11.843c-0.03058 0.00656-0.061 0.013379-0.09157 0.020086z" style="fill:url(#linearGradient3711);opacity:.8"/>
<path id="path3310" d="m14.558 5.8449c-2.6426 1.3682-4.8629 3.2167-6.605 5.3902l9.513 7.5673c0.70865-0.88326 1.5969-1.6361 2.6667-2.19 0.02847-0.01474 0.05469-0.02872 0.08325-0.0431l-5.5746-10.768c-0.02783 0.014254-0.05545 0.02871-0.08325 0.043103z" style="fill:url(#linearGradient3713);opacity:.8"/>
<path id="path3312" d="m10.169 8.9335c-2.1985 2.0055-3.8647 4.3657-4.9849 6.9161l11.147 4.8473c0.4559-1.0366 1.119-1.9937 2.009-2.8055 0.02369-0.02161 0.0454-0.0419 0.06926-0.06318l-8.1715-8.9578c-0.0232 0.020972-0.04613 0.042084-0.06926 0.063182z" style="fill:url(#linearGradient3715);opacity:.8"/>
<path id="path3314" d="m6.7812 12.969c-0.016978 0.02626-0.045621 0.06739-0.0625 0.09375-1.1482 1.7935-1.9617 3.6813-2.5 5.625l11.75 3.125c0.21551-0.763 0.51805-1.5148 0.96875-2.2188 0.01729-0.027 0.04496-0.06702 0.0625-0.09375l-10.219-6.5312z" style="fill:url(#linearGradient3717);opacity:.8"/>
</g>
<g id="g3642" transform="matrix(-1,0,0,-1,48,48)" style="opacity:.8">
<path id="path3644" transform="matrix(.9996 .028243 -.028243 .9996 .69241 -.67083)" d="m24 3.5c-2.9758 0-5.7974 0.62082-8.3438 1.75l4.9688 11.094c1.0354-0.45856 2.1703-0.71875 3.375-0.71875 0.03206 0 0.06178-3.6e-4 0.09375 0v-12.125c-0.03127-1.386e-4 -0.06245 0-0.09375 0z" style="fill:url(#linearGradient3709);opacity:.8"/>
<path id="path3646" d="m19.597 3.9975c-2.9067 0.63758-5.5298 1.8485-7.775 3.4971l7.2303 9.7715c0.91311-0.66976 1.9659-1.1671 3.1426-1.4252 0.03132-0.0069 0.06026-0.01359 0.09157-0.02009l-2.5978-11.843c-0.03058 0.00656-0.061 0.013379-0.09157 0.020086z" style="fill:url(#linearGradient3711);opacity:.8"/>
<path id="path3648" d="m14.558 5.8449c-2.6426 1.3682-4.8629 3.2167-6.605 5.3902l9.513 7.5673c0.70865-0.88326 1.5969-1.6361 2.6667-2.19 0.02847-0.01474 0.05469-0.02872 0.08325-0.0431l-5.5746-10.768c-0.02783 0.014254-0.05545 0.02871-0.08325 0.043103z" style="fill:url(#linearGradient3713);opacity:.8"/>
<path id="path3650" d="m10.169 8.9335c-2.1985 2.0055-3.8647 4.3657-4.9849 6.9161l11.147 4.8473c0.4559-1.0366 1.119-1.9937 2.009-2.8055 0.02369-0.02161 0.0454-0.0419 0.06926-0.06318l-8.1715-8.9578c-0.0232 0.020972-0.04613 0.042084-0.06926 0.063182z" style="fill:url(#linearGradient3715);opacity:.8"/>
<path id="path3652" d="m6.7812 12.969c-0.016978 0.02626-0.045621 0.06739-0.0625 0.09375-1.1482 1.7935-1.9617 3.6813-2.5 5.625l11.75 3.125c0.21551-0.763 0.51805-1.5148 0.96875-2.2188 0.01729-0.027 0.04496-0.06702 0.0625-0.09375l-10.219-6.5312z" style="fill:url(#linearGradient3717);opacity:.8"/>
</g>
<path id="path2787" d="m24 4.5c-10.809 0-19.5 8.6914-19.5 19.5 0 10.809 8.6914 19.5 19.5 19.5s19.5-8.6914 19.5-19.5c0-10.809-8.6914-19.5-19.5-19.5z" style="fill:none;opacity:.5;stroke:url(#linearGradient3766)"/>
<path id="path3287" d="m24 3.5c-11.363 0-20.5 9.137-20.5 20.5 0 11.363 9.137 20.5 20.5 20.5 11.363 2e-6 20.5-9.137 20.5-20.5-2e-6 -11.363-9.137-20.5-20.5-20.5z" style="fill:none;stroke:url(#linearGradient3778)"/>
<path id="path3281" d="m24 15.5c-4.7114 0-8.5 3.7886-8.5 8.5s3.7886 8.5 8.5 8.5c4.7114 0 8.5-3.7886 8.5-8.5s-3.7886-8.5-8.5-8.5z" style="fill:none;opacity:.8;stroke:url(#linearGradient3294)"/>
</g>
<g id="g2792">
<path id="path2704" d="m42.913 42.632c0 1.3082-2.4694 2.3687-5.5156 2.3687s-5.5156-1.0605-5.5156-2.3687 2.4694-2.3687 5.5156-2.3687 5.5156 1.0605 5.5156 2.3687z" style="fill:url(#radialGradient3344);opacity:.3"/>
<path id="path4121" d="m31.482 44.425c-8.55e-4 1.4225-2.6862 2.5754-5.9986 2.5754s-5.9977-1.153-5.9986-2.5754c-8.56e-4 -1.423 2.685-2.5768 5.9986-2.5768s5.9994 1.1538 5.9986 2.5768z" style="fill:url(#radialGradient3254);opacity:.3"/>
<path id="path4031" d="m41.378 19.504c-4.1269 0.65819-8.8722 1.3357-12.988 2.0307-1.0898 0.52625-0.84479 1.8813-0.89301 2.8646v13.162c-2.8008-0.6412-5.8751 1.4509-5.9966 4.4247-0.19829 1.8514 1.4606 3.463 3.2644 3.5063 3.2297 0.07759 5.6844-2.0431 5.7194-4.7252-0.03527-4.5043 0.0099-9.0104 0-13.515 0.5-0.03665 8.319-1.4668 9-1.5621v10.122c-2.5834-0.76106-5.1657 0.82954-5.8019 3.4956-0.47074 1.5444 0.23898 3.3701 1.7711 4.0028 2.9909 1.3602 7.1978-1.395 7.0308-4.6285-0.04632-6.0063 0.03797-12.015 0-18.022-0.07855-0.56448-0.46504-1.1967-1.1066-1.1559v0z" style="fill:#4d4d4d;stroke-linecap:round;stroke-linejoin:round;stroke:#333"/>
<path id="path2937" d="m29.621 40.768c0 1.9878-1.7443 3.8972-3.8959 4.2647-2.1516 0.3675-3.8959-0.94604-3.8959-2.9339s1.7443-3.8972 3.8959-4.2647c2.1516-0.3675 3.8959 0.94604 3.8959 2.9339z" style="fill:url(#radialGradient3250)"/>
<path id="path2941" d="m41.662 38.937c4.91e-4 1.9881-1.7439 3.898-3.8959 4.2655s-3.8964-0.94646-3.8959-2.9347c4.91e-4 -1.9876 1.7446-3.8964 3.8959-4.2639s3.8954 0.94563 3.8959 2.933z" style="fill:url(#radialGradient3247)"/>
<path id="path2945" d="m28.091 38.166-0.094-15.045s0.1029-1.1502 0.86617-1.1537c0.2707-0.04687 12.136-2.0041 12.136-2.0041s1.5321 0.72791-11.015 2.7677c-1.2871 0.24744-1 0.73094-1 1.58 0 2.2902 2e-6 6.0215 2e-6 14.36 0 0.05966-0.56979-0.4227-0.89325-0.50513h2e-6z" style="fill-rule:evenodd;fill:url(#linearGradient3244);opacity:.3"/>
<path id="path2947" d="m39.985 36.434 0.0594-11.366c0.62592-0.05597 0.0961-9e-3 0.94012-0.09284 0.01161 2.123 4.8e-4 3.8852 4.8e-4 11.903 0 0.05966-0.34916-0.36221-1-0.44464z" style="fill-rule:evenodd;fill:url(#linearGradient3241);opacity:.3"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -153,6 +153,19 @@
<property name="has-frame">0</property>
</object>
</child>
<child>
<object class="GtkButton" id="btnmedia">
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="child">
<object class="GtkImage" id="image_media">
<property name="icon-name">media-app</property>
<property name="pixel-size">48</property>
</object>
</property>
<property name="has-frame">0</property>
</object>
</child>
<child>
<placeholder/>
</child>
@ -676,6 +689,34 @@
</layout>
</object>
</child>
<child>
<object class="GtkButton" id="padmedia">
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkImage" id="image28">
<property name="icon-name">media-app</property>
<property name="pixel-size">48</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="1">Media Player</property>
</object>
</child>
</object>
</property>
<property name="has-frame">0</property>
<layout>
<property name="column">2</property>
<property name="row">2</property>
</layout>
</object>
</child>
<child>
<placeholder/>
</child>

View File

@ -34,4 +34,4 @@ void my_media_player_load_random_audio(MyMediaPlayer *player);
void my_media_player_reload_audio(MyMediaPlayer *player);
MyMediaPlayer *my_media_player_new(GtkApplication *app);
MyMediaPlayer *my_media_player_new();

View File

@ -754,9 +754,8 @@ static void my_media_player_class_init(MyMediaPlayerClass *klass)
GTK_WINDOW_CLASS(klass)->close_request = my_media_player_close_request;
}
MyMediaPlayer *my_media_player_new(GtkApplication *app)
MyMediaPlayer *my_media_player_new()
{
// Create a window for media player
return MYMEDIA_PLAYER(g_object_new(my_media_player_get_type(),
"application", app, NULL));
return MYMEDIA_PLAYER(g_object_new(my_media_player_get_type(), NULL));
}

View File

@ -10,6 +10,7 @@
#include "TextEditor.h"
#include "ImageApp.h"
#include "MineSweeper.h"
#include "MyMediaPlayer.h"
#include <thread>
#include <cstdlib>
@ -31,26 +32,27 @@ struct _MyDock
*launchpad_page, *apps_stack, *default_box, *addon_box,
*apps_switcher, *apps_view, *appgrid_box, *appgrid_label;
GtkWidget *btnfiles, *btndraw, *btncalc, *btnedit, *btnimage, // Dock buttons
*btnset, *btngame, *btngame24, *btnmine;
*btnset, *btngame, *btngame24, *btnmine, *btnmedia;
GtkWidget *image_file, *image_draw, *image_calc, *image_game, // Image widget for dock buttons
*image_edit, *image_viewer, *image_game24, *image_mine, *image_set;
*image_edit, *image_viewer, *image_game24, *image_mine, *image_set, *image_media;
GtkWidget *padabout, *padaud, *paddraw, *padfile, *padgedit, // Launchpad icons
*padgame, *padimage, *padnote, *padedit, *padvlc, *padvlc_win32,
*padrun, *padset, *padgame24, *padcalc, *padmine;
*padrun, *padset, *padgame24, *padcalc, *padmine, *padmedia;
PadPage current_page;
GtkBuilder *menu_builder;
GMenuModel *menu_model;
GtkGesture *gesture;
GtkWidget *context_menu; // Context menu
MyPrefs *prefs_win; // Prefs window
FileWindow *file_win; // File Broswer window
GameApp *game_win; // The Guess Game
CalcApp *calc_win; // Calc App
Game24App *game24_win; // 24 Game Window
DrawApp *draw_win; // A Drawing App
TextEditor *edit_win; // Text Editor
ImageApp *image_app; // Image Viewer
MineSweeper *mine_app; // Mine Sweeper
GtkWidget *context_menu; // Context menu
MyPrefs *prefs_win; // Prefs window
FileWindow *file_win; // File Broswer window
GameApp *game_win; // The Guess Game
CalcApp *calc_win; // Calc App
Game24App *game24_win; // 24 Game Window
DrawApp *draw_win; // A Drawing App
TextEditor *edit_win; // Text Editor
ImageApp *image_app; // Image Viewer
MineSweeper *mine_app; // Mine Sweeper
MyMediaPlayer *media_app; // Media Player
};
G_DEFINE_TYPE(MyDock, my_dock, GTK_TYPE_BOX)
@ -516,6 +518,48 @@ static gboolean mine_win_closed(GtkWidget *win, MyDock *dock)
return TRUE;
}
// Media Player control functions
static void padmedia_clicked(GtkWidget *widget, MyDock *dock)
{
// When the window visible, unminimize it
if (gtk_widget_get_visible(GTK_WIDGET((dock->media_app))))
{
gtk_window_unminimize(GTK_WINDOW(dock->media_app));
}
else
{
// Show the window
gtk_window_set_transient_for(GTK_WINDOW(dock->media_app), dock->parent_win);
gtk_window_present(GTK_WINDOW(dock->media_app));
}
gtk_image_set_from_icon_name(GTK_IMAGE(dock->image_media), "media-app-running");
btnlaunch_clicked(NULL, dock);
}
static void btnmedia_clicked(GtkWidget *widget, MyDock *dock)
{
// When the window visible, control window state
if (gtk_widget_get_visible(GTK_WIDGET((dock->media_app))))
{
window_ctrl(GTK_WINDOW(dock->media_app), dock->parent_win);
}
else
{
// Show the window
gtk_window_set_transient_for(GTK_WINDOW(dock->media_app), dock->parent_win);
gtk_window_present(GTK_WINDOW(dock->media_app));
}
gtk_image_set_from_icon_name(GTK_IMAGE(dock->image_media), "media-app-running");
}
static gboolean media_win_closed(GtkWidget *win, MyDock *dock)
{
// Hide the window
gtk_widget_set_visible(win, FALSE);
gtk_image_set_from_icon_name(GTK_IMAGE(dock->image_media), "media-app");
return TRUE;
}
// Add-on Apps launch functions
static void padvlc_clicked(GtkWidget *widget, MyDock *dock)
{
@ -582,6 +626,8 @@ static void my_dock_get_widgets(MyDock *self)
self->image_mine = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "image_mine"));
self->btnset = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "btnset"));
self->image_set = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "image_set"));
self->btnmedia = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "btnmedia"));
self->image_media = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "image_media"));
self->launchpad_stack = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "launchpad_stack"));
self->default_page = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "default_page"));
self->launchpad_page = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "launchpad_page"));
@ -600,6 +646,7 @@ static void my_dock_get_widgets(MyDock *self)
self->padgedit = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padgedit"));
self->padimage = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padimage"));
self->padmine = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padmine"));
self->padmedia = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padmedia"));
self->padnote = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padnote"));
self->padrun = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padrun"));
self->padset = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padset"));
@ -698,6 +745,12 @@ static void my_dock_init(MyDock *self)
g_signal_connect(self->padmine, "clicked", G_CALLBACK(padmine_clicked), self);
g_signal_connect(self->mine_app, "close-request", G_CALLBACK(mine_win_closed), self);
// Media Player Window
self->media_app = my_media_player_new();
g_signal_connect(self->btnmedia, "clicked", G_CALLBACK(btnmedia_clicked), self);
g_signal_connect(self->padmedia, "clicked", G_CALLBACK(padmedia_clicked), self);
g_signal_connect(self->media_app, "close-request", G_CALLBACK(media_win_closed), self);
// Signal for app runner
g_signal_connect(self->padrun, "clicked", G_CALLBACK(padrun_clicked), self);