add files

This commit is contained in:
PoliEcho 2024-10-19 21:55:44 +02:00
parent df60a9a415
commit d932111bae
16 changed files with 5936 additions and 0 deletions

26
Makefile Normal file
View File

@ -0,0 +1,26 @@
CC = g++
CC_FLAGS = -s -O3 `pkg-config --cflags --libs gtkmm-4.0` -Wall -Wextra
#debug flags:
#CC_FLAGS = -ggdb -O3 `pkg-config --cflags --libs gtkmm-4.0` -Wall -Wextra
all: build/bin/pupes-slots
build/bin/pupes-slots: build/obj/main.o build/obj/main-winodow.o build/obj/ultra-mega-functions.o build/obj/confirm-dialog.o
$(CC) $(CC_FLAGS) build/obj/main.o build/obj/main-window.o build/obj/ultra-mega-functions.o build/obj/confirm-dialog.o -o build/bin/pupes-slots
build/obj/main.o: src/main.cpp
mkdir -p build/obj
mkdir -p build/bin
$(CC) $(CC_FLAGS) -c src/main.cpp -o build/obj/main.o
build/obj/main-winodow.o: src/main-window.cpp
$(CC) $(CC_FLAGS) -c src/main-window.cpp -o build/obj/main-window.o
build/obj/ultra-mega-functions.o: src/ultra-mega-functions.cpp
$(CC) $(CC_FLAGS) -c src/ultra-mega-functions.cpp -o build/obj/ultra-mega-functions.o
build/obj/confirm-dialog.o: src/confirm-dialog.cpp
$(CC) $(CC_FLAGS) -c src/confirm-dialog.cpp -o build/obj/confirm-dialog.o
clean:
rm -fr build

47
img/Arch.svg Normal file
View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
viewBox="0 0 256 256"
id="svg3"
sodipodi:docname="Arch.svg"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
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">
<defs
id="defs3" />
<sodipodi:namedview
id="namedview3"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="3.3046875"
inkscape:cx="127.6974"
inkscape:cy="55.224586"
inkscape:window-width="1920"
inkscape:window-height="1020"
inkscape:window-x="1920"
inkscape:window-y="29"
inkscape:window-maximized="1"
inkscape:current-layer="svg3" />
<g
fill="#1793d1"
id="g3"
transform="matrix(1.0970572,0,0,1.0970572,-13.2711,-12.422828)">
<path
d="m 127.98,12.07 c -10.316,25.309 -16.543,41.855 -28.031,66.41 7.043,7.4609 15.691,16.156 29.734,25.977 C 114.585,98.25 104.288,92.012 96.589,85.539 81.886,116.219 58.847,159.93 12.097,243.929 48.843,222.71 77.327,209.636 103.87,204.64 c -1.1406,-4.8945 -1.7852,-10.195 -1.7422,-15.734 l 0.043,-1.1719 c 0.58203,-23.551 12.828,-41.645 27.336,-40.418 14.508,1.2266 25.781,21.316 25.199,44.867 -0.10938,4.4219 -0.60938,8.6914 -1.4805,12.641 26.258,5.1328 54.438,18.18 90.684,39.105 -7.1484,-13.156 -13.527,-25.016 -19.621,-36.316 -9.5938,-7.4336 -19.605,-17.117 -40.023,-27.594 14.035,3.6406 24.082,7.8516 31.914,12.555 -61.941,-115.32 -66.957,-130.66 -88.199,-180.5 z"
fill-rule="evenodd"
id="path1" />
<path
d="m 235.17,210.61 v -5.832 h -2.1758 v -0.78125 h 5.2383 v 0.78125 h -2.1875 v 5.832 h -0.875"
id="path2" />
<path
d="m 239.14,210.61 v -6.6133 h 1.3164 l 1.5664,4.6836 c 0.14453,0.43359 0.24609,0.76172 0.3125,0.97656 0.0781,-0.23828 0.19531,-0.59375 0.35156,-1.0586 l 1.5859,-4.6016 h 1.1758 v 6.6133 h -0.84375 v -5.5352 l -1.9219,5.5352 h -0.78906 l -1.9102,-5.6289 v 5.6289 h -0.84375"
id="path3" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

139
img/Beastie.svg Normal file
View File

@ -0,0 +1,139 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
viewBox="0 0 256 256"
style="fill:#d10000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round"
id="svg2"
sodipodi:docname="Beastie.svg"
width="256"
height="256"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
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">
<defs
id="defs1" />
<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="4.0673077"
inkscape:cx="178.00473"
inkscape:cy="103.87707"
inkscape:window-width="1920"
inkscape:window-height="1020"
inkscape:window-x="1920"
inkscape:window-y="29"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<g
id="g1"
transform="matrix(1.2406793,0,0,1.2406793,9.0728656,-1.4409462)">
<path
d="m 112,135 c 4,37 38,38 53,42 44,9 22,26 4,26 l 1,3 -38,1 31,-18 3,8 c 5,2 38,-10 -15,-15 -22,-4 -36,-9 -44,-19 L 80,179 C 73,163 52,157 61,136"
id="path4" />
<path
d="m 106,157 c 2,1 5,-3 4,-5 L 37,98 c 0,-3 7,-9 -3,-17 l 1,-2 -13,-6 c 2,4 4,5 6,12 l 4,-2 c 4,5 4,9 0,11 l -7,-5 c 0,-1 1,-2 1,-3 0,0 -1,-1 -4,-1 -2,0 -6,-4 -9,-4 0,3 5,8 5,13 l 3,-2 c 3,1 5,3 7,6 -3,4 -7,6 -15,2 0,-2 2,-3 2,-5 -4,0 -9,-3 -14,-6 2,7 8,15 14,17 10,4 14,-3 19,-3 z"
style="fill:#ffd700"
id="path6" />
<path
d="M 78,92 48,55 C 50,50 49,43 48,40 43,23.5 54,16 64,8 72,2 76,1 78,2 c 2,2 -8,8 -10,15 0,0 -2,11 5,6 6,-3 14,-5 23,-3 7,1 18,5 25,13 21,-4 9,-17 7,-25 7,-6 43.5,31 -1,55 0,14 -3,23 -12,31 -11,9 -4,13 -2,19 5,17 3,28 -17,31 -14,2 -16,8 -27,0"
id="path8" />
<path
d="m 73,32 c 1,-4 -9,-11 -20,10 -1,3 -5,11 -5,11 -1,4 -2,9 -4,11 -10,10 -5,23 8,28 3,1 12,8 18,11 3,2 0,9 -5,8 -27,-6 -28,13 -17,16 l 39,-2"
id="path10" />
<path
d="m 79,31 c 4,-4 11,-4 14,2 1,2 1,4 2,5"
style="fill:none"
id="path12" />
<path
d="m 50,85 c 5,1 5,4 11,9 10,8 22,1 25,-1 4,-2 4,-5 8,-3"
style="stroke-width:1.5"
id="path14" />
<path
d="m 63,71 c -12,-7 -15,4 -10,9 1,1 4,1 6,2 2,1 3,-3 8,-0.5 4,2.5 6,-2.5 2,-4.5"
id="path16" />
<path
d="m 70,37 c 0,-3 -6,-5 -13,6 -8,13 -7,20 -3,23 3,2 6,1 9,-8 2,-5 7,-18 7,-21 z"
style="fill:#ffffff"
id="path18" />
<path
d="M 82,36 C 92,34 91,71 75,72 57,73 69,39 82,36 Z"
style="fill:#ffffff"
id="path20" />
<g
style="fill:#000000;stroke:none"
id="g30">
<path
d="m 77,54 c 5,4 -1,20 -8,14 -5,-5 2,-19 8,-14 z"
id="path22" />
<path
d="m 60,52 c 5,4 -3,17 -6,11 -3,-4 0,-15 6,-11 z"
id="path24" />
<path
d="m 57,53 c 1,0 1,6 0,6 -3,0 -2,-6 0,-6 z"
style="fill:#ffffff"
id="path26" />
<path
d="m 73,57 c 1,0 1,4 -1,4 -1,0 -2,-4 1,-4 z"
style="fill:#ffffff"
id="path28" />
</g>
<path
d="m 75,144 c -5,0 -8,1 -14,-6"
id="path32" />
<path
d="m 70,138 c -26,2 -6,-35 14,-19 4,3 8,4 14,2"
id="path34" />
<path
d="m 66,120 c 3,5 -7,13 -13,8 -6,-5 10,-12 13,-8 z"
id="path36" />
<path
d="m 60,110 c -23,-3 -22,14 -12,17 11,3 23,-13 12,-17 z"
id="path38" />
<path
d="m 54,115 c 1,7 -14,11 -17,1 -2,-7 15,-17 17,-1 z"
id="path40" />
<path
d="m 57,101 c 6,8 -9,12 -13,7 -8,-9 8,-13 13,-7 z"
id="path42" />
<path
d="m 36,176 c 13,-1 35,-1 29,-11 -2,-3 -1,-5 -1,-7 2,8 18,3 17,13 l -19,26 z"
style="fill:#00b000"
id="path44" />
<path
d="m 94,166 c 4,-2 8,0 12,-3 7,7 7,17 9,19 L 81,196 59,185 c 10,-12 21,-7 22,-14 2,-12 8,-9 13,-4 0,0 1,10 -2,10 -7,1 -22,7 -22,7"
style="fill:#00b000"
id="path46" />
<path
d="m 19,181 c 2,-3 30,-11 30,1 l -17,9 z"
style="fill:#ffffff"
id="path48" />
<path
d="m 108,173 c 0,7 -6,6 -7,3 -2,-7 7,-8 7,-3 z"
style="fill:#f4fff4"
id="path50" />
<path
d="m 42,191 c -25,3 -25,-4 -25,-4 0,-5 0,-5 2,-6 3,4 20,6 28,2"
style="fill:#ffffff"
id="path52" />
<path
d="m 78,192 c 0,-18 -29,-16 -35,-5 l 13,10 z"
style="fill:#ffffff"
id="path54" />
<path
d="m 114,181 c 2,-1 1,3 1,7 -20,13 -62,14 -73,5 0,-4 0,-5 1,-7 6,10 63,6 71,-5 z"
style="fill:#ffffff"
id="path56" />
<path
d="m 67,169 10,1 m -12,2 10,2 m -15,0 8,2 m -16,0 12,2 m 18,-8 12,1 m -13,2 12,2 m -16,1 7,1 m -13,1 8,1"
style="stroke:#00ffff"
id="path58" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

50
img/Debian.svg Normal file
View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="256"
height="256"
viewBox="0 0 255.99529 256.00532"
version="1.1"
id="svg5"
sodipodi:docname="Debian.svg"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
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">
<defs
id="defs5" />
<sodipodi:namedview
id="namedview5"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="2.9348504"
inkscape:cx="138.67828"
inkscape:cy="126.58226"
inkscape:window-width="1920"
inkscape:window-height="1020"
inkscape:window-x="1920"
inkscape:window-y="29"
inkscape:window-maximized="1"
inkscape:current-layer="svg5" />
<g
id="g5"
transform="matrix(2.8389518,0,0,2.8389518,-25.010536,1.2416e-6)">
<path
fill="#d70751"
d="m 60.969,47.645 c -1.494,0.02 0.281,0.768 2.232,1.069 0.541,-0.422 1.027,-0.846 1.463,-1.26 -1.213,0.297 -2.449,0.304 -3.695,0.191 m 8.017,-1.999 c 0.893,-1.229 1.541,-2.573 1.77,-3.963 -0.201,0.99 -0.736,1.845 -1.244,2.749 -2.793,1.759 -0.264,-1.044 -0.002,-2.111 -3.002,3.783 -0.414,2.268 -0.524,3.325 m 2.963,-7.704 c 0.182,-2.691 -0.529,-1.839 -0.768,-0.814 0.278,0.146 0.499,1.898 0.768,0.814 M 55.301,1.163 c 0.798,0.142 1.724,0.252 1.591,0.443 0.876,-0.193 1.073,-0.367 -1.591,-0.443 m 1.592,0.443 -0.561,0.117 0.523,-0.048 0.038,-0.069"
id="path1" />
<path
fill="#d70751"
d="m 81.762,38.962 c 0.09,2.416 -0.705,3.59 -1.424,5.666 l -1.293,0.643 c -1.057,2.054 0.105,1.304 -0.652,2.937 -1.652,1.467 -5.006,4.589 -6.08,4.875 -0.785,-0.017 0.531,-0.926 0.703,-1.281 -2.209,1.516 -1.773,2.276 -5.152,3.199 L 67.766,54.78 c -8.33,3.92 -19.902,-3.847 -19.75,-14.443 -0.088,0.672 -0.253,0.504 -0.437,0.774 -0.43,-5.451 2.518,-10.926 7.49,-13.165 4.863,-2.406 10.564,-1.42 14.045,1.829 -1.912,-2.506 -5.721,-5.163 -10.232,-4.917 -4.421,0.072 -8.558,2.881 -9.938,5.932 -2.264,1.425 -2.528,5.496 -3.514,6.242 -1.329,9.76 2.497,13.975 8.97,18.936 1.016,0.686 0.286,0.791 0.422,1.313 -2.15,-1.006 -4.118,-2.526 -5.738,-4.387 0.86,1.257 1.787,2.479 2.986,3.439 -2.029,-0.685 -4.738,-4.913 -5.527,-5.085 3.495,6.258 14.178,10.975 19.775,8.634 -2.59,0.096 -5.879,0.053 -8.787,-1.022 -1.225,-0.629 -2.884,-1.93 -2.587,-2.173 7.636,2.851 15.522,2.158 22.128,-3.137 1.682,-1.31 3.518,-3.537 4.049,-3.567 -0.799,1.202 0.137,0.578 -0.477,1.639 1.672,-2.701 -0.729,-1.1 1.73,-4.664 l 0.908,1.25 c -0.34,-2.244 2.785,-4.966 2.467,-8.512 0.717,-1.084 0.799,1.168 0.039,3.662 1.055,-2.767 0.279,-3.212 0.549,-5.496 0.291,0.768 0.678,1.583 0.875,2.394 -0.688,-2.675 0.703,-4.503 1.049,-6.058 -0.342,-0.15 -1.061,1.182 -1.227,-1.976 0.025,-1.372 0.383,-0.719 0.52,-1.057 -0.268,-0.155 -0.975,-1.207 -1.404,-3.224 0.309,-0.475 0.832,1.229 1.256,1.298 -0.273,-1.603 -0.742,-2.826 -0.762,-4.057 -1.24,-2.59 -0.439,0.346 -1.443,-1.112 -1.32,-4.114 1.094,-0.955 1.258,-2.823 1.998,2.895 3.137,7.385 3.662,9.244 -0.4,-2.267 -1.045,-4.464 -1.834,-6.589 0.609,0.257 -0.979,-4.663 0.791,-1.405 C 87.189,15.552 81,9.062 75.305,6.018 76,6.655 76.879,7.455 76.565,7.581 73.731,5.896 74.229,5.763 73.823,5.051 71.518,4.112 71.364,5.128 69.839,5.053 65.489,2.745 64.651,2.99 60.648,1.546 L 60.83,2.398 C 57.949,1.438 57.473,2.76 54.36,2.4 54.171,2.253 55.358,1.864 56.336,1.723 53.55,2.091 53.68,1.173 50.954,1.824 51.625,1.353 52.337,1.04 53.053,0.64 50.782,0.778 47.629,1.962 48.602,0.884 44.897,2.538 38.316,4.859 34.623,8.322 L 34.507,7.546 c -1.692,2.031 -7.379,6.066 -7.832,8.699 l -0.453,0.105 c -0.879,1.491 -1.45,3.18 -2.148,4.713 -1.151,1.963 -1.688,0.756 -1.524,1.064 -2.265,4.592 -3.392,8.45 -4.363,11.616 0.692,1.035 0.017,6.232 0.278,10.391 -1.136,20.544 14.418,40.489 31.42,45.093 2.492,0.893 6.197,0.861 9.349,0.949 -3.718,-1.064 -4.198,-0.563 -7.822,-1.826 -2.613,-1.232 -3.185,-2.637 -5.037,-4.244 l 0.733,1.295 c -3.63,-1.285 -2.111,-1.59 -5.065,-2.525 l 0.783,-1.021 c -1.177,-0.09 -3.117,-1.982 -3.647,-3.033 l -1.288,0.051 c -1.546,-1.906 -2.371,-3.283 -2.31,-4.35 l -0.416,0.742 c -0.471,-0.809 -5.691,-7.158 -2.983,-5.68 -0.503,-0.458 -1.172,-0.747 -1.897,-2.066 l 0.551,-0.629 c -1.301,-1.677 -2.398,-3.826 -2.314,-4.542 0.695,0.938 1.177,1.114 1.655,1.275 -3.291,-8.164 -3.476,-0.449 -5.967,-8.31 l 0.526,-0.042 c -0.403,-0.611 -0.65,-1.27 -0.974,-1.919 l 0.23,-2.285 c -2.368,-2.736 -0.662,-11.645 -0.319,-16.53 0.235,-1.986 1.977,-4.101 3.3,-7.418 l -0.806,-0.138 c 1.542,-2.688 8.802,-10.799 12.166,-10.383 1.629,-2.046 -0.324,-0.008 -0.643,-0.522 3.579,-3.703 4.704,-2.616 7.119,-3.283 2.603,-1.545 -2.235,0.604 -1.001,-0.589 4.503,-1.149 3.19,-2.614 9.063,-3.197 0.62,0.352 -1.437,0.544 -1.953,1.001 3.75,-1.836 11.869,-1.417 17.145,1.018 6.117,2.861 12.994,11.314 13.266,19.267 l 0.309,0.083 c -0.156,3.162 0.484,6.819 -0.627,10.177 l 0.751,-1.591"
id="path2" />
<path
fill="#d70751"
d="m 44.658,49.695 -0.211,1.047 c 0.983,1.335 1.763,2.781 3.016,3.821 -0.902,-1.759 -1.571,-2.486 -2.805,-4.868 m 2.321,-0.09 c -0.52,-0.576 -0.826,-1.268 -1.172,-1.956 0.33,1.211 1.006,2.252 1.633,3.312 l -0.461,-1.356 m 41.084,-8.93 -0.219,0.552 c -0.402,2.858 -1.273,5.686 -2.605,8.309 1.472,-2.767 2.421,-5.794 2.824,-8.861 M 55.598,0.446 C 56.607,0.077 58.08,0.243 59.154,0 57.756,0.117 56.365,0.187 54.992,0.362 l 0.606,0.084 M 20.127,19.308 c 0.233,2.154 -1.62,2.991 0.41,1.569 1.09,-2.454 -0.424,-0.677 -0.41,-1.569 m -2.388,9.974 c 0.469,-1.437 0.553,-2.299 0.732,-3.132 -1.293,1.654 -0.596,2.007 -0.732,3.132"
id="path3" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

268
img/DragonFly.svg Normal file
View File

@ -0,0 +1,268 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="256"
viewBox="80 100 391.04686 390.65504"
width="256"
version="1.1"
id="svg54"
sodipodi:docname="DragonFly.svg"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
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">
<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="3.5840407"
inkscape:cx="98.7712"
inkscape:cy="203.2622"
inkscape:window-width="1920"
inkscape:window-height="1020"
inkscape:window-x="1920"
inkscape:window-y="29"
inkscape:window-maximized="1"
inkscape:current-layer="svg54" />
<defs
id="defs54" />
<radialGradient
id="a"
cx="396.16989"
cy="216.9229"
gradientUnits="userSpaceOnUse"
r="102.5">
<stop
offset="0"
stop-color="#fff"
id="stop1" />
<stop
offset=".0418"
stop-color="#f7f9d8"
id="stop2" />
<stop
offset=".0906"
stop-color="#eff2b2"
id="stop3" />
<stop
offset=".1432"
stop-color="#e8ed91"
id="stop4" />
<stop
offset=".1994"
stop-color="#e2e976"
id="stop5" />
<stop
offset=".2607"
stop-color="#dde562"
id="stop6" />
<stop
offset=".3295"
stop-color="#dae353"
id="stop7" />
<stop
offset=".412"
stop-color="#d9e14b"
id="stop8" />
<stop
offset=".5449"
stop-color="#d8e148"
id="stop9" />
<stop
offset=".6791"
stop-color="#d6e048"
id="stop10" />
<stop
offset=".7467"
stop-color="#cfdd47"
id="stop11" />
<stop
offset=".7994"
stop-color="#c2d946"
id="stop12" />
<stop
offset=".8444"
stop-color="#b1d245"
id="stop13" />
<stop
offset=".8845"
stop-color="#99ca44"
id="stop14" />
<stop
offset=".9206"
stop-color="#7bc143"
id="stop15" />
<stop
offset=".927"
stop-color="#75c044"
id="stop16" />
<stop
offset="1"
stop-color="#073800"
id="stop17" />
</radialGradient>
<g
id="g54"
transform="matrix(1.1230299,0,0,1.1230299,-169.38492,-23.642734)">
<circle
cx="396.17001"
cy="216.923"
fill="url(#a)"
r="102.5"
stroke="#000000"
stroke-width="9"
id="circle28"
style="fill:url(#a)" />
<path
d="m 387.045,247.64 h 18.25 c 0,68.9 -6.1,207.49 -9.13,207.49 -3.02,0 -9.12,-138.59 -9.12,-207.49 z"
fill="#ed1c24"
id="path29" />
<g
stroke="#000000"
id="g39">
<path
d="m 387.045,247.64 c 0,68.9 6.1,207.49 9.12,207.49"
fill="none"
stroke-width="6"
id="path30" />
<path
d="m 405.295,247.64 c 0,68.9 -6.1,207.49 -9.13,207.49"
fill="none"
stroke-width="6"
id="path31" />
<path
d="m 387.045,247.64 h 18.25"
fill="none"
stroke-width="6"
id="path32" />
<path
d="m 387.2,271.201 h 17.953"
fill="none"
stroke-width="6"
id="path33" />
<path
d="m 387.615,291.768 h 17.09"
fill="none"
stroke-width="6"
id="path34" />
<path
d="m 388.135,312.334 h 16.071"
fill="none"
stroke-width="6"
id="path35" />
<path
d="m 388.766,332.883 h 14.808"
fill="none"
stroke-width="6"
id="path36" />
<path
d="m 389.535,353.43 h 13.307"
fill="none"
stroke-width="6"
id="path37" />
<path
d="M 390.331,373.951 H 402.01"
fill="none"
stroke-width="6"
id="path38" />
<path
d="m 391.274,394.473 h 9.791"
fill="none"
stroke-width="6"
id="path39" />
</g>
<ellipse
cx="396.16599"
cy="216.923"
fill="#ed1c24"
rx="17.08"
ry="40.27"
id="ellipse39" />
<ellipse
cx="396.17001"
cy="216.923"
fill="none"
rx="17.075001"
ry="40.27"
stroke="#000000"
stroke-width="6"
id="ellipse40" />
<path
d="m 413.229,173.491 c 0,4.07 -2.04,7.75 -5.319,10.35 h -0.01 l -6.971,-24.05 c 7.111,1.72 12.3,7.2 12.3,13.7 z"
fill="#fde92b"
id="path40" />
<path
d="m 400.93,159.791 6.971,24.05 c -2.631,0 -7.061,-12.35 -9.66,-24.51 0.919,0.09 1.819,0.24 2.689,0.46 z"
fill="#fde92b"
id="path41" />
<path
d="m 407.9,183.841 c -3.061,2.43 -7.19,3.92 -11.741,3.92 -4.55,0 -8.68,-1.49 -11.74,-3.92 2.63,0 7.06,-12.35 9.66,-24.51 0.68,-0.07 1.37,-0.11 2.08,-0.11 0.71,0 1.4,0.04 2.081,0.11 2.6,12.16 7.03,24.51 9.66,24.51 z"
fill="#9a090d"
id="path42" />
<path
d="m 396.16,143.331 4.77,16.46 c -0.87,-0.22 -1.77,-0.37 -2.689,-0.46 -1.251,-5.84 -2.081,-11.63 -2.081,-16 z"
fill="#9a090d"
id="path43" />
<path
d="m 398.24,159.331 c -0.681,-0.07 -1.37,-0.11 -2.081,-0.11 -0.71,0 -1.4,0.04 -2.08,0.11 1.25,-5.84 2.08,-11.63 2.08,-16 0.001,4.37 0.831,10.16 2.081,16 z"
id="path44" />
<path
d="m 391.39,159.791 4.77,-16.46 c 0,4.37 -0.83,10.16 -2.08,16 -0.92,0.09 -1.82,0.25 -2.69,0.46 z"
id="path45" />
<path
d="m 394.08,159.331 c -2.6,12.16 -7.03,24.51 -9.66,24.51 l 6.97,-24.05 c 0.87,-0.21 1.77,-0.37 2.69,-0.46 z"
fill="#fde92b"
id="path46" />
<path
d="m 391.39,159.791 -6.97,24.05 c -3.28,-2.6 -5.32,-6.28 -5.32,-10.35 0,-6.49 5.19,-11.98 12.29,-13.7 z"
fill="#fde92b"
id="path47" />
<path
d="m 394.08,159.331 c 0.68,-0.07 1.37,-0.11 2.08,-0.11 0.71,0 1.4,0.04 2.081,0.11 0.92,0.09 1.819,0.24 2.689,0.46 7.11,1.72 12.3,7.2 12.3,13.7 0,4.07 -2.04,7.75 -5.319,10.35 h -0.01 c -3.061,2.43 -7.19,3.92 -11.741,3.92 -4.55,0 -8.68,-1.49 -11.74,-3.92 -3.28,-2.6 -5.32,-6.28 -5.32,-10.35 0,-6.49 5.19,-11.98 12.29,-13.7 0.87,-0.21 1.77,-0.37 2.69,-0.46 z"
fill="none"
stroke="#000000"
stroke-width="5.6"
id="path48" />
<path
d="m 384.42,183.841 c 2.63,0 7.06,-12.35 9.66,-24.51 1.25,-5.84 2.08,-11.63 2.08,-16"
fill="none"
stroke="#000000"
stroke-width="5.6"
id="path49" />
<path
d="m 396.16,143.331 c 0,4.37 0.83,10.16 2.081,16 2.6,12.16 7.029,24.51 9.66,24.51"
fill="none"
stroke="#000000"
stroke-width="5.6"
id="path50" />
<path
d="m 396.16,210.652 c 0,0 -101.311,12.43 -135.318,-51.591 -30.549,-57.507 135.334,44.339 135.334,44.339 z"
fill="#ffffff"
stroke="#000000"
stroke-width="6"
id="path51" />
<path
d="m 396.176,229.752 c 0,0 -80.307,59.485 -138.895,18.468 -52.632,-36.84 138.895,-25.42 138.895,-25.42 z"
fill="#ffffff"
stroke="#000000"
stroke-width="6"
id="path52" />
<path
d="m 396.176,210.6 c 0,0 101.311,12.43 135.317,-51.591 30.549,-57.507 -135.333,44.339 -135.333,44.339 z"
fill="#ffffff"
stroke="#000000"
stroke-width="6"
id="path53" />
<path
d="m 396.16,229.7 c 0,0 80.307,59.485 138.895,18.468 52.631,-36.84 -138.895,-25.42 -138.895,-25.42 z"
fill="#ffffff"
stroke="#000000"
stroke-width="6"
id="path54" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.6 KiB

44
img/GNU.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 25 KiB

2825
img/Puffy.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 110 KiB

846
img/Slackware.svg Normal file
View File

@ -0,0 +1,846 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="256"
id="svg2"
sodipodi:version="0.32"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
version="1.0"
inkscape:export-filename="/home/bobby/Desktop/s.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:docname="Slackware.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true"
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"
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/">
<defs
id="defs4">
<pattern
inkscape:collect="always"
xlink:href="#pattern8174"
id="pattern13210"
patternTransform="translate(-298.34995,240.86648)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern3254"
id="pattern3256"
patternTransform="translate(-604.39192,30.169316)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern3248"
id="pattern3254"
patternTransform="translate(-368.32932,21.911993)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2277"
id="pattern3248"
patternTransform="translate(-534.39589,72.042484)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2263"
id="pattern2277"
patternTransform="translate(-748.01707,-19.961183)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2284"
id="pattern2263"
patternTransform="translate(-370.15043,21.540454)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2282"
id="pattern2284"
patternTransform="translate(-370.15043,21.540454)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2280"
id="pattern2282"
patternTransform="translate(-370.15043,21.65185)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2278"
id="pattern2280"
patternTransform="translate(-370.15043,21.763249)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2276"
id="pattern2278"
patternTransform="translate(-370.15043,21.874651)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2274"
id="pattern2276"
patternTransform="translate(-370.15043,21.986057)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2272"
id="pattern2274"
patternTransform="translate(-370.15043,22.097451)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2270"
id="pattern2272"
patternTransform="translate(-370.15043,22.208848)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2268"
id="pattern2270"
patternTransform="translate(-370.15043,22.320248)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2266"
id="pattern2268"
patternTransform="translate(-370.15043,22.431652)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2264"
id="pattern2266"
patternTransform="translate(-370.15043,22.543059)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2262"
id="pattern2264"
patternTransform="translate(-370.15043,22.654454)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2247"
id="pattern2262"
patternTransform="translate(-370.15043,22.543059)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5229"
id="pattern2247"
patternTransform="translate(-370.15043,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5227"
id="pattern5229"
patternTransform="translate(-370.15043,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5225"
id="pattern5227"
patternTransform="translate(-370.06067,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5223"
id="pattern5225"
patternTransform="translate(-369.97091,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5221"
id="pattern5223"
patternTransform="translate(-369.88114,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5219"
id="pattern5221"
patternTransform="translate(-369.79138,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5217"
id="pattern5219"
patternTransform="translate(-369.70161,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5215"
id="pattern5217"
patternTransform="translate(-369.61185,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5213"
id="pattern5215"
patternTransform="translate(-369.52208,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5211"
id="pattern5213"
patternTransform="translate(-369.43232,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5209"
id="pattern5211"
patternTransform="translate(-369.34255,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5207"
id="pattern5209"
patternTransform="translate(-369.25279,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5205"
id="pattern5207"
patternTransform="translate(-369.16302,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5203"
id="pattern5205"
patternTransform="translate(-369.07326,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5201"
id="pattern5203"
patternTransform="translate(-368.9835,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5199"
id="pattern5201"
patternTransform="translate(-368.89373,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5197"
id="pattern5199"
patternTransform="translate(-368.80397,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5195"
id="pattern5197"
patternTransform="translate(-368.7142,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5193"
id="pattern5195"
patternTransform="translate(-368.62444,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5191"
id="pattern5193"
patternTransform="translate(-368.53463,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5189"
id="pattern5191"
patternTransform="translate(-373.02292,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern5187"
id="pattern5189"
patternTransform="translate(-373.02292,22.431142)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern4208"
id="pattern5187"
patternTransform="translate(-368.53463,22.431142)" />
<linearGradient
id="linearGradient6106">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop6108" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop6110" />
</linearGradient>
<linearGradient
id="linearGradient16857">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop16859" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop16861" />
</linearGradient>
<linearGradient
id="linearGradient11033">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop11035" />
<stop
style="stop-color:#4962ae;stop-opacity:1;"
offset="1"
id="stop11037" />
</linearGradient>
<linearGradient
id="linearGradient9085">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop9087" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop9089" />
</linearGradient>
<linearGradient
id="linearGradient6164">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop6166" />
<stop
style="stop-color:#4962ae;stop-opacity:1;"
offset="1"
id="stop6168" />
</linearGradient>
<linearGradient
id="linearGradient4167">
<stop
style="stop-color:#a6b3da;stop-opacity:1;"
offset="0"
id="stop4169" />
<stop
style="stop-color:#4962ae;stop-opacity:1;"
offset="1"
id="stop4171" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4167"
id="linearGradient4173"
x1="126.07143"
y1="61.776882"
x2="130.75499"
y2="248.2964"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6164"
id="radialGradient7141"
cx="126.17736"
cy="183.73682"
fx="126.17736"
fy="183.73682"
r="60.642857"
gradientTransform="matrix(1,0,0,0.8085983,0,25.176155)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient9085"
id="linearGradient9091"
x1="127.32143"
y1="16.177502"
x2="127.32143"
y2="119.03465"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.2571495,0,-17.410953)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient11033"
id="radialGradient11039"
cx="128.03683"
cy="202.38623"
fx="128.03683"
fy="202.38623"
r="61.361693"
gradientTransform="matrix(2.3087502,-7.4524521e-2,1.1678211e-2,0.3661409,-169.93174,103.67211)"
gradientUnits="userSpaceOnUse" />
<filter
inkscape:collect="always"
id="filter21800"
x="-0.014641672"
y="-0.022420061"
width="1.0292833"
height="1.0448401">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.42580173"
id="feGaussianBlur21802" />
</filter>
<filter
inkscape:collect="always"
x="-0.080923073"
width="1.1218891"
y="-0.14569506"
height="1.4274384"
id="filter27770">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="1.2812499"
id="feGaussianBlur27772" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient9085"
id="linearGradient27793"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.2571495,0,-17.410953)"
x1="127.32143"
y1="16.177502"
x2="127.32143"
y2="119.03465" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient9085"
id="linearGradient2204"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9999989,0,0,2.5142976,-128.55376,-159.36257)"
x1="127.32143"
y1="16.177502"
x2="127.32143"
y2="119.03465" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient9085"
id="linearGradient2206"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9253543,0,0,2.424854,-118.53124,-149.30655)"
x1="127.32143"
y1="16.177502"
x2="127.32143"
y2="119.03465" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient6112"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464"
gradientUnits="userSpaceOnUse" />
<pattern
patternUnits="userSpaceOnUse"
width="3.2504171"
height="2.7860718"
patternTransform="translate(-298.34995,240.86648)"
id="pattern8174">
<g
transform="matrix(3.3167521e-2,0,0,3.3167521e-2,21.890564,-5.3731384)"
id="g7182">
<rect
style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect6203"
width="32"
height="28"
x="-658"
y="162" />
<rect
style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect7174"
width="32"
height="28"
x="-626"
y="190" />
<rect
style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect7176"
width="32"
height="28"
x="-594"
y="162" />
<rect
style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect7178"
width="32"
height="28"
x="-594"
y="218" />
<rect
style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect7180"
width="32"
height="28"
x="-660"
y="218" />
</g>
</pattern>
<pattern
patternUnits="userSpaceOnUse"
width="3.8477631"
height="3.847763"
patternTransform="translate(-183.84776,36.484671)"
id="pattern4208">
<g
transform="matrix(4.6311136e-2,0,0,4.9468714e-2,8.5141988,1.8525694)"
id="g3200">
<rect
style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2215"
width="16.263456"
height="15.556349"
x="-183.84776"
y="-37.449314" />
<rect
style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3190"
width="16.263456"
height="15.556349"
x="-150.26019"
y="-6.336606" />
<rect
style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3194"
width="16.263456"
height="15.556349"
x="-117.02618"
y="-37.449314" />
<rect
style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3196"
width="16.263456"
height="15.556349"
x="-183.49422"
y="24.776081" />
<rect
style="opacity:0.98999999;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3198"
width="16.263456"
height="15.556349"
x="-117.02617"
y="24.776085" />
</g>
</pattern>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient2251"
gradientUnits="userSpaceOnUse"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient2267"
gradientUnits="userSpaceOnUse"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464"
gradientTransform="translate(-234.32983,8.4545444)" />
<filter
inkscape:collect="always"
id="filter10137"
x="-0.13719293"
y="-0.093085712"
width="1.2743859"
height="1.1861714">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="3.1826429"
id="feGaussianBlur10139" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient10151"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-234.32983,8.4545444)"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient10170"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-234.32983,8.4545444)"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient9085"
id="linearGradient10177"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9253543,0,0,2.424854,-118.53124,-149.30655)"
x1="127.32143"
y1="16.177502"
x2="127.32143"
y2="119.03465" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient10191"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-234.32983,8.4545444)"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient10199"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4156002,0,0,1.4156002,-209.28352,-85.271896)"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464" />
<pattern
patternUnits="userSpaceOnUse"
width="7.8379958"
height="4.9999983"
patternTransform="translate(-227.838,76)"
id="pattern11193">
<g
id="g11188"
transform="translate(227.838,-76)">
<rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.11238252;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10207"
width="2.5126173"
height="2.3876173"
x="-222.57512"
y="76.0625" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.11238252;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect11184"
width="2.5126173"
height="2.3876173"
x="-225.2375"
y="78.549881" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.11238252;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect11186"
width="2.5126173"
height="2.3876173"
x="-227.7755"
y="76.0625" />
</g>
</pattern>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient12182"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4156002,0,0,1.4156002,-209.28352,-85.271896)"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient13159"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4156002,0,0,1.4156002,-21.560772,-74.595777)"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient13199"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4156002,0,0,1.4156002,-21.560772,-74.595777)"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient9085"
id="linearGradient13201"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9253543,0,0,2.424854,-118.53124,-149.30655)"
x1="127.32143"
y1="16.177502"
x2="127.32143"
y2="119.03465" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient9085"
id="linearGradient13206"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9253543,0,0,2.424854,-118.53124,-149.30655)"
x1="127.32143"
y1="16.177502"
x2="127.32143"
y2="119.03465" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient13214"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4156002,0,0,1.4156002,-21.560772,-74.595777)"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6106"
id="linearGradient13241"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4156002,0,0,1.4156002,-21.560772,-74.595777)"
x1="124.39233"
y1="131.96484"
x2="122.34922"
y2="92.974464" />
</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="1.4142136"
inkscape:cx="209.3036"
inkscape:cy="141.77491"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:window-width="1920"
inkscape:window-height="1020"
inkscape:window-x="1920"
inkscape:window-y="29"
showgrid="true"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g13243"
transform="matrix(0.98845798,0,0,0.98845798,1.7024279,6.0837348)">
<ellipse
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/bobby/Desktop/1.png"
transform="matrix(2.4207197,0,0,3.2758984,-109.29913,-158.53743)"
id="path19860"
style="opacity:0.99;fill:#7b7b7b;fill-opacity:1;fill-rule:nonzero;stroke:#8f8f8f;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter21800)"
cx="97.934288"
cy="88.062141"
rx="51.972347"
ry="33.941124" />
<ellipse
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/bobby/Desktop/1.png"
transform="matrix(2.1041326,0,0,2.3374733,-142.61947,-185.35919)"
id="path3196"
style="opacity:0.99;fill:#3e5495;fill-opacity:1;fill-rule:nonzero;stroke:#3d5292;stroke-width:0.90182;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
cx="128.21428"
cy="131.53572"
rx="59.642857"
ry="48.035713" />
<ellipse
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/bobby/Desktop/1.png"
transform="matrix(1.9557719,0,0,1.9680241,-120.12084,-114.02305)"
id="path2223"
style="opacity:0.99;fill:#4962ae;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.03165;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
cx="126.07143"
cy="116.71429"
rx="63.214287"
ry="53.92857" />
<g
transform="matrix(1.0528491,0,0,1,-1.5787571,0)"
id="g13231">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#fff0ff;fill-opacity:1;stroke:#fff0ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter10137)"
x="-181.64458"
y="178.59599"
id="text4231"
transform="matrix(1.5447551,0,0,1.2972437,338.45429,-79.326527)"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
inkscape:export-filename="/home/bobby/Desktop/1.png"><tspan
sodipodi:role="line"
id="tspan4233"
x="-181.64458"
y="178.59599"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:144px;line-height:125%;font-family:'Courier 10 Pitch';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#fff0ff;fill-opacity:1;stroke:#fff0ff;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">S</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#4962ae;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="53.020477"
y="166.25648"
id="text9155"
transform="scale(1.0912369,0.9163913)"
inkscape:export-filename="/home/bobby/Desktop/1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
id="tspan9157"
x="53.020477"
y="166.25648"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:203.846px;line-height:125%;font-family:'Courier 10 Pitch';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#4962ae;fill-opacity:1;stroke:none;stroke-opacity:1">S</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:url(#linearGradient13241);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="53.020477"
y="166.25648"
id="text24847"
transform="scale(1.0912369,0.9163913)"
inkscape:export-filename="/home/bobby/Desktop/1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
id="tspan24849"
x="53.020477"
y="166.25648"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:203.846px;line-height:125%;font-family:'Courier 10 Pitch';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient13241);fill-opacity:1;stroke:none;stroke-opacity:1">S</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:url(#pattern13210);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="53.020477"
y="166.25648"
id="text6114"
transform="scale(1.0912369,0.9163913)"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
inkscape:export-filename="/home/bobby/Desktop/1.png"><tspan
sodipodi:role="line"
id="tspan6116"
x="53.020477"
y="166.25648"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:203.846px;line-height:125%;font-family:'Courier 10 Pitch';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#pattern13210);fill-opacity:1;stroke:none;stroke-opacity:1">S</tspan></text>
</g>
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/bobby/Desktop/1.png"
sodipodi:nodetypes="cccs"
id="path8114"
d="M 129.01431,14.890708 C 59.410838,16.077242 11.374254,61.182069 11.017594,107.72797 84.642076,128.44672 167.70319,129.70663 243.16031,104.26388 236.69233,52.476094 182.75068,13.974659 129.01431,14.890708 Z"
style="fill:url(#linearGradient13206);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<g
transform="translate(-242.87573,14.875667)"
id="g13227">
<path
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter27770)"
d="m 91.468907,126.96891 0.478103,21.56218 h 74.58408 v 0"
id="path26797"
transform="matrix(1.9999989,0,0,1.9999989,115.93801,-131.93768)"
inkscape:export-filename="/home/bobby/Desktop/1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5.87562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 297.87572,122.5 0.95621,43.12434 h 149.16808 v 0"
id="path26799"
inkscape:export-filename="/home/bobby/Desktop/1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 31 KiB

1380
img/Tux.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 63 KiB

38
src/confirm-dialog.cpp Normal file
View File

@ -0,0 +1,38 @@
#include "confirm-dialog.h"
ConfirmDialog::ConfirmDialog()
: c_Label1("_First name", true),
c_ButtonBox(Gtk::Orientation::HORIZONTAL, 5), c_Button_OK("_OK", true),
c_Button_Cancel("_Cancel", true) {
set_destroy_with_parent(true);
set_title("Name Dialog");
set_child(c_Grid);
c_Grid.set_row_spacing(4);
c_Grid.set_column_spacing(4);
c_Grid.set_expand(true);
c_Image.set_from_icon_name("dialog-question");
c_Image.set_icon_size(Gtk::IconSize::LARGE);
c_Grid.attach(c_Image, 0, 0, 1, 2);
c_Grid.attach(c_Label1, 1, 0);
c_Grid.attach(c_Entry1, 2, 0);
c_Label1.set_mnemonic_widget(c_Entry1);
c_Grid.attach(c_ButtonBox, 0, 2, 3, 1);
c_ButtonBox.set_halign(Gtk::Align::END);
c_ButtonBox.append(c_Button_OK);
c_ButtonBox.append(c_Button_Cancel);
}
void ConfirmDialog::buttons_clicked_connect(
const sigc::slot<void(const Glib::ustring &)> &slot) {
c_Button_OK.signal_clicked().connect(sigc::bind(slot, "OK"));
c_Button_Cancel.signal_clicked().connect(sigc::bind(slot, "Cancel"));
}
Glib::ustring ConfirmDialog::get_entry1() const { return c_Entry1.get_text(); }
ConfirmDialog::~ConfirmDialog() {}

26
src/confirm-dialog.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef GTKMM_NAME_DIALOG_H_
#define GTKMM_NAME_DIALOG_H_
#include <gtkmm.h>
class ConfirmDialog : public Gtk::Window {
public:
ConfirmDialog();
~ConfirmDialog() override;
void
buttons_clicked_connect(const sigc::slot<void(const Glib::ustring &)> &slot);
Glib::ustring get_entry1() const;
protected:
// Member widgets:
Gtk::Grid c_Grid;
Gtk::Image c_Image;
Gtk::Label c_Label1;
Gtk::Entry c_Entry1;
Gtk::Box c_ButtonBox;
Gtk::Button c_Button_OK;
Gtk::Button c_Button_Cancel;
};
#endif /* GTKMM_NAME_DIALOG_H_ */

174
src/main-window.cpp Normal file
View File

@ -0,0 +1,174 @@
#include "main-window.h"
#include "glib.h"
#include "glibmm/ustring.h"
#include "gtk/gtk.h"
#include "gtkmm/image.h"
#include "ultra-mega-functions.h"
#include <bits/stdc++.h>
#include <cstddef>
#include <glib/gi18n.h>
#include <iostream>
#include <ostream>
#include <string>
#include <unistd.h>
MainWindow::MainWindow()
: m_button_spin("spin"), m_button_reset("reset money"),
m_button_quit("Quit"), slot_image0(), slot_image1(), slot_image2(),
m_label_money(), m_label_spins(), m_label_info(), m_label_bet("bet:"),
m_entry_bet(), m_timer_number(0) {
set_title("Pupes Slots!");
m_grid.set_margin(12);
set_child(m_grid);
can_spin = true;
money = 100;
spins = 0;
m_label_spins.set_label(std::to_string(spins));
m_label_money.set_label(std::to_string(money));
// set image size
slot_image0.set_size_request(128, 128);
slot_image1.set_size_request(128, 128);
slot_image2.set_size_request(128, 128);
// status rows
m_grid.attach(m_label_spins, 0, 0);
m_grid.attach(m_label_money, 0, 1);
// row 2: slots
m_grid.attach(slot_image0, 0, 2);
m_grid.attach(slot_image1, 1, 2);
m_grid.attach(slot_image2, 2, 2);
m_grid.attach(m_button_spin, 0, 3);
m_grid.attach(m_label_bet, 1, 3);
m_grid.attach(m_entry_bet, 2, 3);
m_grid.attach(m_button_reset, 1, 4);
m_grid.attach_next_to(m_button_quit, m_button_spin, Gtk::PositionType::BOTTOM,
2, 1);
m_button_spin.signal_clicked().connect(
sigc::bind(sigc::mem_fun(*this, &MainWindow::on_button_spin)));
m_button_quit.signal_clicked().connect(
sigc::mem_fun(*this, &MainWindow::on_button_quit));
}
MainWindow::~MainWindow() {}
void MainWindow::on_button_quit() { set_visible(false); }
// define symbols for slots
Glib::ustring symbol[8]{
IMG_FOLDER "/Arch.svg", IMG_FOLDER "/Debian.svg",
IMG_FOLDER "/Slackware.svg",
IMG_FOLDER "/Beastie.svg", IMG_FOLDER "/DragonFly.svg",
IMG_FOLDER "/Puffy.svg",
IMG_FOLDER "/GNU.svg", IMG_FOLDER "/Tux.svg"};
void MainWindow::randomise_slots(bool save, Glib::ustring *slot_status) {
uint8_t randoms[3];
for (int i = 0; i < (sizeof(randoms) / sizeof(*randoms)); i++) {
randoms[i] = get_random_num(0, ((sizeof(symbol) / sizeof(*symbol)) - 1));
}
slot_image0.set(symbol[randoms[0]]);
slot_image1.set(symbol[randoms[1]]);
slot_image2.set(symbol[randoms[2]]);
if (save) {
for (int i = 0; i < (sizeof(randoms) / sizeof(*randoms)); i++) {
slot_status[i] = symbol[randoms[i]];
}
}
}
bool MainWindow::refresh_slots(int timer_number) {
std::cout << "This is timer " << timer_number;
// decrement and check counter value
if (--m_counters[timer_number] == 0) {
std::cout << " being disconnected" << std::endl;
// delete the counter entry in the STL MAP
m_counters.erase(timer_number);
// delete the connection entry in the STL MAP
m_timers.erase(timer_number);
Glib::ustring slot_status[3];
randomise_slots(true, slot_status);
// debug statement
for (int i = 0; i < (sizeof(slot_status) / sizeof(*slot_status)); i++) {
std::cout << "slot: " << i << " is " << slot_status[i] << std::endl;
}
// check if win
{
if ((slot_status[0].compare(slot_status[1])) == 0 &&
slot_status[0].compare(slot_status[2]) == 0) {
}
}
can_spin = true;
// return false, to stop timer
return false;
} else {
if (m_counters[timer_number] < (count_value * 0.4)) {
if (get_random_num(0, 1) == 1) {
randomise_slots(false, NULL);
}
} else if (m_counters[timer_number] < (count_value * 0.2)) {
if (get_random_num(0, 4) == 1) {
randomise_slots(false, NULL);
}
} else {
randomise_slots(false, NULL);
}
}
// Print the timer value
std::cout << " - " << m_counters[timer_number] << "/" << count_value
<< std::endl;
// Keep going (do not disconnect yet):
return true;
}
void MainWindow::on_button_spin() {
if (can_spin) {
can_spin = false;
spins++;
m_label_spins.set_label(std::to_string(spins));
count_value = get_random_num(30, 50);
// Creation of a new object prevents long lines and shows us a little
// how slots work. We have 0 parameters and bool as a return value
// after calling sigc::bind.
sigc::slot<bool()> my_slot = sigc::bind(
sigc::mem_fun(*this, &MainWindow::refresh_slots), m_timer_number);
// This is where we connect the slot to the Glib::signal_timeout()
auto conn = Glib::signal_timeout().connect(my_slot, 300);
// Remember the connection:
m_timers[m_timer_number] = conn;
// Initialize timer count:
m_counters[m_timer_number] = count_value + 1;
// Print some info to the console for the user:
std::cout << "added timeout " << m_timer_number++ << std::endl;
} else {
std::cerr << "you are already spining\n";
}
}

52
src/main-window.h Normal file
View File

@ -0,0 +1,52 @@
#ifndef GTKMM_EXAMPLEWINDOW_H
#define GTKMM_EXAMPLEWINDOW_H
#include "confirm-dialog.h"
#include "glibmm/ustring.h"
#include "gtkmm/image.h"
#include "gtkmm/label.h"
#include <gtkmm.h>
#include <locale>
#define IMG_FOLDER "img"
class MainWindow : public Gtk::Window {
public:
MainWindow();
virtual ~MainWindow();
private:
// Signal handlers:
void on_button_quit();
void on_button_spin();
bool refresh_slots(int timer_number);
void randomise_slots(bool save_to_global, Glib::ustring *slot_status);
// Child widgets:
Gtk::Grid m_grid;
Gtk::Label m_label_money, m_label_spins, m_label_info, m_label_bet;
Gtk::Image slot_image0, slot_image1, slot_image2;
Gtk::Button m_button_spin, m_button_reset, m_button_quit;
Gtk::Entry m_entry_bet;
// money and spin counters that can contain even most dihard gamblers
unsigned long long spins;
unsigned long long money;
// counter boobalob
int m_timer_number;
// These two constants are initialized in the constructor's member
// initializer:
int count_value;
bool can_spin;
// STL map for storing our connections
std::map<int, sigc::connection> m_timers;
// STL map for storing our timer values.
// Each timer counts back from COUNT_VALUE to 0 and is removed when it reaches
// 0
std::map<int, int> m_counters;
};
#endif /* GTKMM_EXAMPLEWINDOW_H */

9
src/main.cpp Normal file
View File

@ -0,0 +1,9 @@
#include "main-window.h"
#include <gtkmm/application.h>
int main(int argc, char *argv[]) {
auto app = Gtk::Application::create("org.pupes.gamba");
// Shows the window and returns when it is closed.
return app->make_window_and_run<MainWindow>(argc, argv);
}

View File

@ -0,0 +1,11 @@
#include "ultra-mega-functions.h"
#include <random>
int get_random_num(int min, int max) {
std::random_device dev;
std::mt19937 rng(dev());
std::uniform_int_distribution<std::mt19937::result_type> dist(
min, max); // set range
return dist(rng);
}

View File

@ -0,0 +1 @@
int get_random_num(int min, int max);