Merge pull request #1 from daleclack/macUI_Gtkmm3
Update branch to ready for merge to Gtkmm 4
|
@ -1,6 +1,6 @@
|
|||
set(CMAKE_CXX_STANDARD 17)
|
||||
cmake_minimum_required(VERSION 3.0.0)
|
||||
project(My_GtkUI VERSION 5.4.0)
|
||||
project(My_GtkUI VERSION 5.6.0)
|
||||
|
||||
#Add GCR_CMake
|
||||
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../GCR_CMake/macros)
|
||||
|
@ -16,7 +16,7 @@ include(CPack)
|
|||
include_directories(.)
|
||||
include_directories(..)
|
||||
include_directories(src/core src/ui src/apps src/panels src/image_app
|
||||
src/game24_app src/calc_app)
|
||||
src/game24_app src/calc_app src/mine_app)
|
||||
|
||||
find_package (PkgConfig REQUIRED)
|
||||
pkg_check_modules (GTKMM3 REQUIRED gtkmm-3.0)
|
||||
|
@ -29,7 +29,8 @@ set(SOURCES src/core/main.cc src/core/MyWin.cc src/core/MyStack.cc src/cfgfile/c
|
|||
src/game24_app/Game24.cc src/game24_app/Game24Win.cc
|
||||
src/image_app/ImageApp.cc src/image_app/MyImage.cc
|
||||
src/run_app/Runner.cc src/text_app/TextEditor.cc
|
||||
src/calc_app/calc.cc src/calc_app/CalcApp.cc)
|
||||
src/calc_app/calc.cc src/calc_app/CalcApp.cc
|
||||
src/mine_app/InputBox.cc src/mine_app/MineSweeper.cc src/mine_app/ScoresWin.cc)
|
||||
|
||||
#Compile resources with GCR_CMake
|
||||
|
||||
|
@ -45,6 +46,9 @@ set(RESOURCE_LIST
|
|||
STRIPBLANKS calcapp.ui
|
||||
STRIPBLANKS text_menu.xml
|
||||
STRIPBLANKS expender.ui
|
||||
STRIPBLANKS win_input.ui
|
||||
STRIPBLANKS scoreswin.ui
|
||||
STRIPBLANKS mine_menu.xml
|
||||
style.css
|
||||
reset.css
|
||||
dock_style.css
|
||||
|
@ -65,6 +69,19 @@ set(RESOURCE_LIST
|
|||
icons/48x48/actions/game_running.png
|
||||
icons/48x48/actions/btnabout.png
|
||||
icons/48x48/actions/My_GtkUI.png
|
||||
icons/scalable/status/1mines.svg
|
||||
icons/scalable/status/2mines.svg
|
||||
icons/scalable/status/3mines.svg
|
||||
icons/scalable/status/4mines.svg
|
||||
icons/scalable/status/5mines.svg
|
||||
icons/scalable/status/6mines.svg
|
||||
icons/scalable/status/7mines.svg
|
||||
icons/scalable/status/8mines.svg
|
||||
icons/scalable/status/exploded.svg
|
||||
icons/scalable/status/flag.svg
|
||||
icons/scalable/status/incorrect.svg
|
||||
icons/scalable/status/maybe.svg
|
||||
icons/scalable/status/mine.svg
|
||||
icons/scalable/status/24game.svg
|
||||
icons/scalable/status/24game_running.svg
|
||||
icons/scalable/status/audacious_whitesur.svg
|
||||
|
@ -88,7 +105,9 @@ set(RESOURCE_LIST
|
|||
icons/scalable/status/line.svg
|
||||
icons/scalable/status/rectangle.svg
|
||||
icons/scalable/status/calcapp.svg
|
||||
icons/scalable/status/calcapp_running.svg)
|
||||
icons/scalable/status/calcapp_running.svg
|
||||
icons/scalable/status/mines_app.svg
|
||||
icons/scalable/status/mines_app_running.svg)
|
||||
|
||||
compile_gresources(RESOURCE_FILE
|
||||
XML_OUT
|
||||
|
|
|
@ -8,15 +8,16 @@
|
|||
@import url("resource://org/gtk/daleclack/reset.css");
|
||||
|
||||
box{
|
||||
background-color:alpha(white,0.3);
|
||||
background-color:alpha(gray,0.3);
|
||||
color:white;
|
||||
}
|
||||
|
||||
separator{
|
||||
background-color:alpha(white,0.3);
|
||||
background-color:alpha(gray,0.3);
|
||||
}
|
||||
|
||||
button{
|
||||
color:white;
|
||||
color:gray;
|
||||
}
|
||||
|
||||
grid{
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3767"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="New document 3">
|
||||
<defs
|
||||
id="defs3769" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="33.68578"
|
||||
inkscape:cy="31.76782"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1120"
|
||||
inkscape:window-height="647"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="66"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata3772">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36218)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="28.284271"
|
||||
y="32.685272"
|
||||
id="text4299"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="translate(0,988.36218)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4301"
|
||||
x="28.284271"
|
||||
y="32.685272" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="8.7441406"
|
||||
y="1046.6063"
|
||||
id="text4303"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4305"
|
||||
x="8.7441406"
|
||||
y="1046.6063"
|
||||
style="font-size:72px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#2e3436;font-family:Monospace;-inkscape-font-specification:Monospace Bold">1</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3767"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="2mines.svg">
|
||||
<defs
|
||||
id="defs3769" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="33.68578"
|
||||
inkscape:cy="31.76782"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1120"
|
||||
inkscape:window-height="647"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="66"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata3772">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36218)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="28.284271"
|
||||
y="32.685272"
|
||||
id="text4299"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="translate(0,988.36218)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4301"
|
||||
x="28.284271"
|
||||
y="32.685272" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="11.292969"
|
||||
y="1047.0809"
|
||||
id="text4303"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4305"
|
||||
x="11.292969"
|
||||
y="1047.0809"
|
||||
style="font-size:72px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#2e3436;font-family:Monospace;-inkscape-font-specification:Monospace Bold">2</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3767"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="3mines.svg">
|
||||
<defs
|
||||
id="defs3769" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="33.68578"
|
||||
inkscape:cy="31.76782"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1120"
|
||||
inkscape:window-height="647"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="66"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata3772">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36218)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="28.284271"
|
||||
y="32.685272"
|
||||
id="text4299"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="translate(0,988.36218)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4301"
|
||||
x="28.284271"
|
||||
y="32.685272" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="10.466797"
|
||||
y="1046.5712"
|
||||
id="text4303"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4305"
|
||||
x="10.466797"
|
||||
y="1046.5712"
|
||||
style="font-size:72px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#2e3436;font-family:Monospace;-inkscape-font-specification:Monospace Bold">3</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3767"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="4mines.svg">
|
||||
<defs
|
||||
id="defs3769" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="33.68578"
|
||||
inkscape:cy="32.791013"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1120"
|
||||
inkscape:window-height="647"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="66"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata3772">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36218)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="28.284271"
|
||||
y="32.685272"
|
||||
id="text4299"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="translate(0,988.36218)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4301"
|
||||
x="28.284271"
|
||||
y="32.685272" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="10.150391"
|
||||
y="1046.6063"
|
||||
id="text4303"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4305"
|
||||
x="10.150391"
|
||||
y="1046.6063"
|
||||
style="font-size:72px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#2e3436;font-family:Monospace;-inkscape-font-specification:Monospace Bold">4</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3767"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="5mines.svg">
|
||||
<defs
|
||||
id="defs3769" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="33.68578"
|
||||
inkscape:cy="32.791013"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1120"
|
||||
inkscape:window-height="647"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="66"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata3772">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36218)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="28.284271"
|
||||
y="32.685272"
|
||||
id="text4299"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="translate(0,988.36218)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4301"
|
||||
x="28.284271"
|
||||
y="32.685272" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="10.255859"
|
||||
y="1046.0966"
|
||||
id="text4303"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4305"
|
||||
x="10.255859"
|
||||
y="1046.0966"
|
||||
style="font-size:72px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#2e3436;font-family:Monospace;-inkscape-font-specification:Monospace Bold">5</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3767"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="6mines.svg">
|
||||
<defs
|
||||
id="defs3769" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="33.68578"
|
||||
inkscape:cy="33.265622"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1120"
|
||||
inkscape:window-height="647"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="66"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata3772">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36218)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="28.284271"
|
||||
y="32.685272"
|
||||
id="text4299"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="translate(0,988.36218)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4301"
|
||||
x="28.284271"
|
||||
y="32.685272" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="9.9746094"
|
||||
y="1046.5009"
|
||||
id="text4303"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4305"
|
||||
x="9.9746094"
|
||||
y="1046.5009"
|
||||
style="font-size:72px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#2e3436;font-family:Monospace;-inkscape-font-specification:Monospace Bold">6</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3767"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="7mines.svg">
|
||||
<defs
|
||||
id="defs3769" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="33.68578"
|
||||
inkscape:cy="33.265622"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1120"
|
||||
inkscape:window-height="647"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="66"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata3772">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36218)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="28.284271"
|
||||
y="32.685272"
|
||||
id="text4299"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="translate(0,988.36218)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4301"
|
||||
x="28.284271"
|
||||
y="32.685272" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="10.660156"
|
||||
y="1046.6063"
|
||||
id="text4303"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4305"
|
||||
x="10.660156"
|
||||
y="1046.6063"
|
||||
style="font-size:72px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#2e3436;font-family:Monospace;-inkscape-font-specification:Monospace Bold">7</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3767"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="8mines.svg">
|
||||
<defs
|
||||
id="defs3769" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="33.68578"
|
||||
inkscape:cy="33.265622"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1120"
|
||||
inkscape:window-height="647"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="66"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata3772">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-988.36218)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="28.284271"
|
||||
y="32.685272"
|
||||
id="text4299"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="translate(0,988.36218)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4301"
|
||||
x="28.284271"
|
||||
y="32.685272" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell"
|
||||
x="10.326172"
|
||||
y="1046.5712"
|
||||
id="text4303"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4305"
|
||||
x="10.326172"
|
||||
y="1046.5712"
|
||||
style="font-size:72px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#2e3436;font-family:Monospace;-inkscape-font-specification:Monospace Bold">8</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,125 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg1"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="bang.svg">
|
||||
<defs
|
||||
id="defs24" />
|
||||
<metadata
|
||||
id="metadata23">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.8284271"
|
||||
inkscape:cx="48.730753"
|
||||
inkscape:cy="40.238815"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="834"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:current-layer="svg1"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:snap-nodes="true"
|
||||
inkscape:snap-bbox="false">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3007"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<linearGradient
|
||||
id="paint"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="14.5"
|
||||
y1="99"
|
||||
x2="119.5"
|
||||
y2="99">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#DA1800"
|
||||
id="stop17" />
|
||||
<stop
|
||||
offset="0.33"
|
||||
style="stop-color:#B42D2D"
|
||||
id="stop18" />
|
||||
<stop
|
||||
offset="0.66"
|
||||
style="stop-color:#FA1818"
|
||||
id="stop19" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#B42D2D"
|
||||
id="stop20" />
|
||||
</linearGradient>
|
||||
<path
|
||||
transform="matrix(1.4,0,0,1.4,-1074,-577)"
|
||||
d="m 805,435 a 15,15 0 1 1 -30,0 15,15 0 1 1 30,0 z"
|
||||
sodipodi:ry="15"
|
||||
sodipodi:rx="15"
|
||||
sodipodi:cy="435"
|
||||
sodipodi:cx="790"
|
||||
id="path2999"
|
||||
style="fill:#cc0000;fill-opacity:1;stroke:none"
|
||||
sodipodi:type="arc" />
|
||||
<rect
|
||||
style="fill:#cc0000;fill-opacity:1;stroke:none"
|
||||
id="rect3001"
|
||||
width="8"
|
||||
height="64"
|
||||
x="28"
|
||||
y="0"
|
||||
rx="4.5999999"
|
||||
ry="4.5999999" />
|
||||
<rect
|
||||
ry="4.5999999"
|
||||
rx="4.5999999"
|
||||
y="-43.712814"
|
||||
x="39.712811"
|
||||
height="64"
|
||||
width="8"
|
||||
id="rect3013"
|
||||
style="fill:#cc0000;fill-opacity:1;stroke:none"
|
||||
transform="matrix(0.5,0.8660254,-0.8660254,0.5,0,0)" />
|
||||
<rect
|
||||
transform="matrix(-0.5,0.8660254,-0.8660254,-0.5,0,0)"
|
||||
style="fill:#cc0000;fill-opacity:1;stroke:none"
|
||||
id="rect3015"
|
||||
width="8"
|
||||
height="64"
|
||||
x="7.7128115"
|
||||
y="-75.712807"
|
||||
rx="4.5999999"
|
||||
ry="4.5999999" />
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
|
@ -0,0 +1,90 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg9373"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="flag.svg">
|
||||
<metadata
|
||||
id="metadata9418">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs9416" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="834"
|
||||
id="namedview9414"
|
||||
showgrid="false"
|
||||
inkscape:snap-nodes="false"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="37.101481"
|
||||
inkscape:cy="14.748665"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg9373">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid9641"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<linearGradient
|
||||
id="paint"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="14.5"
|
||||
y1="99"
|
||||
x2="119.5"
|
||||
y2="99">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#DA1800"
|
||||
id="stop9404" />
|
||||
<stop
|
||||
offset="0.33"
|
||||
style="stop-color:#B42D2D"
|
||||
id="stop9406" />
|
||||
<stop
|
||||
offset="0.66"
|
||||
style="stop-color:#FA1818"
|
||||
id="stop9408" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#B42D2D"
|
||||
id="stop9410" />
|
||||
</linearGradient>
|
||||
<path
|
||||
style="fill:#2e3436;fill-opacity:1;stroke-width:1;stroke-miterlimit:4"
|
||||
d="M 8.086319,0.175024 17.084785,0 l 0,3.104056 L 58.104384,20.741065 17.040446,38.378074 16.99727,64 8,64 z"
|
||||
id="path9621"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,90 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg9373"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="flag.svg">
|
||||
<metadata
|
||||
id="metadata9418">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs9416" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="834"
|
||||
id="namedview9414"
|
||||
showgrid="false"
|
||||
inkscape:snap-nodes="false"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="37.101481"
|
||||
inkscape:cy="14.748665"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg9373">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid9641"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<linearGradient
|
||||
id="paint"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="14.5"
|
||||
y1="99"
|
||||
x2="119.5"
|
||||
y2="99">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#DA1800"
|
||||
id="stop9404" />
|
||||
<stop
|
||||
offset="0.33"
|
||||
style="stop-color:#B42D2D"
|
||||
id="stop9406" />
|
||||
<stop
|
||||
offset="0.66"
|
||||
style="stop-color:#FA1818"
|
||||
id="stop9408" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#B42D2D"
|
||||
id="stop9410" />
|
||||
</linearGradient>
|
||||
<path
|
||||
style="fill:#2e3436;fill-opacity:1;stroke-width:1;stroke-miterlimit:4"
|
||||
d="M 8.086319,0.175024 17.084785,0 l 0,3.104056 L 58.104384,20.741065 17.040446,38.378074 16.99727,64 8,64 z"
|
||||
id="path9621"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,101 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg9373"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="flag-question.svg">
|
||||
<metadata
|
||||
id="metadata9418">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs9416" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="834"
|
||||
id="namedview9414"
|
||||
showgrid="true"
|
||||
inkscape:snap-nodes="false"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="47.542826"
|
||||
inkscape:cy="16.424223"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg9373">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid9641"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<linearGradient
|
||||
id="paint"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="14.5"
|
||||
y1="99"
|
||||
x2="119.5"
|
||||
y2="99">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#DA1800"
|
||||
id="stop9404" />
|
||||
<stop
|
||||
offset="0.33"
|
||||
style="stop-color:#B42D2D"
|
||||
id="stop9406" />
|
||||
<stop
|
||||
offset="0.66"
|
||||
style="stop-color:#FA1818"
|
||||
id="stop9408" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#B42D2D"
|
||||
id="stop9410" />
|
||||
</linearGradient>
|
||||
<path
|
||||
style="fill:#2e3436;fill-opacity:1;stroke-width:1;stroke-miterlimit:4"
|
||||
d="M 8.086319,0.175024 17.084785,0 l 0,3.104056 L 58.104384,20.741065 17.040446,38.378074 16.99727,64 8,64 z"
|
||||
id="path9621"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<g
|
||||
style="fill:#2e3436;fill-opacity:1"
|
||||
transform="matrix(2.7979138,0,0,2.7979138,-223.48821,-253.48342)"
|
||||
id="g15007">
|
||||
<path
|
||||
style="color:#bebebe;fill:#2e3436;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible"
|
||||
d="m 97.348014,103.46875 c 1.64243,-0.092 3.095496,1.17008 3.187496,2.8125 -1e-4,1.40136 -0.37771,1.92177 -1.593746,2.84375 -0.19093,0.14364 -0.3256,0.2506 -0.375,0.3125 -0.0494,0.0621 -0.0312,0.0332 -0.0312,0.0312 0.007,0.52831 -0.47163,1 -1,1 -0.52837,0 -1.007,-0.47169 -1,-1 0,-0.50239 0.22424,-0.94342 0.46875,-1.25 0.24451,-0.30663 0.4913,-0.51638 0.71875,-0.6875 0.20405,-0.16056 0.46083,-0.38454 0.6875,-0.65625 0.0935,-0.1121 0.129,-0.30766 0.125,-0.4375 l 0,-0.0312 c -0.0316,-0.56324 -0.49926,-0.9691 -1.0625,-0.9375 -0.56324,0.0316 -0.9691,0.43676 -0.9375,1 l -2,0 c -0.092,-1.64243 1.17007,-2.9079 2.8125,-3 z m 0.1875,8 c 0.55228,0 1,0.44772 1,1 0,0.55228 -0.44772,1 -1,1 -0.55228,0 -1,-0.44772 -1,-1 0,-0.55228 0.44772,-1 1,-1 z"
|
||||
id="path15009"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccsccccccsccccsssss" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
|
@ -0,0 +1,125 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg1"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="mine.svg">
|
||||
<defs
|
||||
id="defs24" />
|
||||
<metadata
|
||||
id="metadata23">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.8284271"
|
||||
inkscape:cx="48.730753"
|
||||
inkscape:cy="40.238815"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="834"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:current-layer="svg1"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:snap-nodes="true"
|
||||
inkscape:snap-bbox="false">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3007"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<linearGradient
|
||||
id="paint"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="14.5"
|
||||
y1="99"
|
||||
x2="119.5"
|
||||
y2="99">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#DA1800"
|
||||
id="stop17" />
|
||||
<stop
|
||||
offset="0.33"
|
||||
style="stop-color:#B42D2D"
|
||||
id="stop18" />
|
||||
<stop
|
||||
offset="0.66"
|
||||
style="stop-color:#FA1818"
|
||||
id="stop19" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#B42D2D"
|
||||
id="stop20" />
|
||||
</linearGradient>
|
||||
<path
|
||||
transform="matrix(1.4,0,0,1.4,-1074,-577)"
|
||||
d="m 805,435 a 15,15 0 1 1 -30,0 15,15 0 1 1 30,0 z"
|
||||
sodipodi:ry="15"
|
||||
sodipodi:rx="15"
|
||||
sodipodi:cy="435"
|
||||
sodipodi:cx="790"
|
||||
id="path2999"
|
||||
style="fill:#2e3436;fill-opacity:1;stroke:none"
|
||||
sodipodi:type="arc" />
|
||||
<rect
|
||||
style="fill:#2e3436;fill-opacity:1;stroke:none"
|
||||
id="rect3001"
|
||||
width="8"
|
||||
height="64"
|
||||
x="28"
|
||||
y="0"
|
||||
rx="4.5999999"
|
||||
ry="4.5999999" />
|
||||
<rect
|
||||
ry="4.5999999"
|
||||
rx="4.5999999"
|
||||
y="-43.712814"
|
||||
x="39.712811"
|
||||
height="64"
|
||||
width="8"
|
||||
id="rect3013"
|
||||
style="fill:#2e3436;fill-opacity:1;stroke:none"
|
||||
transform="matrix(0.5,0.8660254,-0.8660254,0.5,0,0)" />
|
||||
<rect
|
||||
transform="matrix(-0.5,0.8660254,-0.8660254,-0.5,0,0)"
|
||||
style="fill:#2e3436;fill-opacity:1;stroke:none"
|
||||
id="rect3015"
|
||||
width="8"
|
||||
height="64"
|
||||
x="7.7128115"
|
||||
y="-75.712807"
|
||||
rx="4.5999999"
|
||||
ry="4.5999999" />
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0"><defs><linearGradient id="a"><stop offset="0" stop-color="#68676b"/><stop offset=".8" stop-color="#424048"/><stop offset="1" stop-color="#241f31"/></linearGradient><radialGradient xlink:href="#a" id="d" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.34416 .0006 -.00062 1.38763 -121.22 -718.103)" cx="279.422" cy="446.483" fx="279.422" fy="446.483" r="224"/><linearGradient xlink:href="#b" id="e" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0015 0 0 .99993 72.09 56.015)" x1="43.844" y1="234" x2="-60" y2="234"/><linearGradient id="b"><stop offset="0" stop-color="#d5d3cf"/><stop offset=".038" stop-color="#e3e2df"/><stop offset=".077" stop-color="#c0bfbc"/><stop offset=".923" stop-color="#c0bfbc"/><stop offset=".962" stop-color="#e3e2df"/><stop offset="1" stop-color="#d5d3cf"/></linearGradient></defs><g transform="translate(0 -172)"><g transform="matrix(1.34135 0 0 1.34135 -87.385 -639.02)"><rect ry="32" rx="32" y="-100" x="112" height="288" width="288" id="c" style="marker:none" display="inline" opacity="1" vector-effect="none" fill="#241f31" fill-opacity="1" stroke="none" stroke-width="32" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1" marker-start="none" marker-mid="none" marker-end="none" paint-order="normal"/><use transform="rotate(45 256 44)" xlink:href="#c" width="100%" height="100%" style="marker:none" fill="#241f31" stroke-width="32"/><circle r="168" cy="44" cx="256" style="marker:none" fill="url(#d)"/></g><rect ry="8" rx="8" height="48" width="104" x="12" y="240" fill="url(#e)"/><path d="M62 218v66h46c4.432 0 8-3.568 8-8v-50c0-4.432-3.568-8-8-8H62z" fill="#deddda"/><path d="M20 182c-4.432 0-8 3.568-8 8v84c0 4.432 3.568 8 8 8h44v-50h52v-42c0-4.432-3.568-8-8-8H66v2h-4v-2z" fill="#f6f5f4"/><path d="M12 232h104" fill="none" stroke="#deddda" stroke-width="4"/><path d="M12 231h104" fill="none" stroke="#c0bfbc" stroke-width="2"/><path d="M64 184v100" fill="none" stroke="#deddda" stroke-width="4"/><path d="M28 189.57v32.454h4.103V209.72L50 200.943z" fill="#2dc0af"/><path style="line-height:1000%;-inkscape-font-specification:'Cantarell Ultra-Bold'" d="M28 270h18v-6h-6v-20h-3.196l-10.069 5.225 2.193 5.206L34 252l-.02 12H28z" font-weight="800" font-family="Cantarell" letter-spacing="0" word-spacing="0" fill="#1a5fb4"/><g transform="translate(-2 1)" fill="#a51d2d"><circle style="marker:none" cx="91" cy="257" r="15"/><rect style="marker:none" width="6" height="38" x="88" y="238" rx="2" ry="2"/><rect ry="2" rx="2" y="-110" x="254" height="38" width="6" style="marker:none" transform="rotate(90)"/><rect ry="2" rx="2" y="98.38" x="243.073" height="38" width="6" style="marker:none" transform="rotate(45)"/><rect transform="rotate(135)" style="marker:none" width="6" height="38" x="114.38" y="-265.073" rx="2" ry="2"/></g><g transform="translate(-2 -1)" fill="#ed333b"><circle r="15" cy="257" cx="91" style="marker:none"/><rect ry="2" rx="2" y="238" x="88" height="38" width="6" style="marker:none"/><rect transform="rotate(90)" style="marker:none" width="6" height="38" x="254" y="-110" rx="2" ry="2"/><rect transform="rotate(45)" style="marker:none" width="6" height="38" x="243.073" y="98.38" rx="2" ry="2"/><rect ry="2" rx="2" y="-265.073" x="114.38" height="38" width="6" style="marker:none" transform="rotate(135)"/></g></g></svg>
|
After Width: | Height: | Size: 3.4 KiB |
|
@ -0,0 +1,302 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="128"
|
||||
height="128"
|
||||
version="1.0"
|
||||
id="svg75"
|
||||
sodipodi:docname="mines_app_running.svg"
|
||||
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, 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="namedview77"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="6.609375"
|
||||
inkscape:cx="64.07565"
|
||||
inkscape:cy="64"
|
||||
inkscape:window-width="1856"
|
||||
inkscape:window-height="1048"
|
||||
inkscape:window-x="64"
|
||||
inkscape:window-y="32"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg75" />
|
||||
<defs
|
||||
id="defs24">
|
||||
<linearGradient
|
||||
id="a">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#68676b"
|
||||
id="stop2" />
|
||||
<stop
|
||||
offset=".8"
|
||||
stop-color="#424048"
|
||||
id="stop4" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#241f31"
|
||||
id="stop6" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
xlink:href="#a"
|
||||
id="d"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.34416 .0006 -.00062 1.38763 -121.22 -718.103)"
|
||||
cx="279.422"
|
||||
cy="446.483"
|
||||
fx="279.422"
|
||||
fy="446.483"
|
||||
r="224" />
|
||||
<linearGradient
|
||||
xlink:href="#b"
|
||||
id="e"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0015 0 0 .99993 72.09 56.015)"
|
||||
x1="43.844"
|
||||
y1="234"
|
||||
x2="-60"
|
||||
y2="234" />
|
||||
<linearGradient
|
||||
id="b">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#d5d3cf"
|
||||
id="stop11" />
|
||||
<stop
|
||||
offset=".038"
|
||||
stop-color="#e3e2df"
|
||||
id="stop13" />
|
||||
<stop
|
||||
offset=".077"
|
||||
stop-color="#c0bfbc"
|
||||
id="stop15" />
|
||||
<stop
|
||||
offset=".923"
|
||||
stop-color="#c0bfbc"
|
||||
id="stop17" />
|
||||
<stop
|
||||
offset=".962"
|
||||
stop-color="#e3e2df"
|
||||
id="stop19" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#d5d3cf"
|
||||
id="stop21" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g
|
||||
transform="translate(0 -172)"
|
||||
id="g73">
|
||||
<g
|
||||
transform="matrix(1.34135 0 0 1.34135 -87.385 -639.02)"
|
||||
id="g31">
|
||||
<rect
|
||||
ry="32"
|
||||
rx="32"
|
||||
y="-100"
|
||||
x="112"
|
||||
height="288"
|
||||
width="288"
|
||||
id="c"
|
||||
style="marker:none"
|
||||
display="inline"
|
||||
opacity="1"
|
||||
vector-effect="none"
|
||||
fill="#241f31"
|
||||
fill-opacity="1"
|
||||
stroke="none"
|
||||
stroke-width="32"
|
||||
stroke-linecap="butt"
|
||||
stroke-linejoin="miter"
|
||||
stroke-miterlimit="4"
|
||||
stroke-dasharray="none"
|
||||
stroke-dashoffset="0"
|
||||
stroke-opacity="1"
|
||||
marker-start="none"
|
||||
marker-mid="none"
|
||||
marker-end="none"
|
||||
paint-order="normal" />
|
||||
<use
|
||||
transform="rotate(45 256 44)"
|
||||
xlink:href="#c"
|
||||
width="100%"
|
||||
height="100%"
|
||||
style="marker:none"
|
||||
fill="#241f31"
|
||||
stroke-width="32"
|
||||
id="use27" />
|
||||
<circle
|
||||
r="168"
|
||||
cy="44"
|
||||
cx="256"
|
||||
style="marker:none"
|
||||
fill="url(#d)"
|
||||
id="circle29" />
|
||||
</g>
|
||||
<rect
|
||||
ry="8"
|
||||
rx="8"
|
||||
height="48"
|
||||
width="104"
|
||||
x="12"
|
||||
y="240"
|
||||
fill="url(#e)"
|
||||
id="rect33" />
|
||||
<path
|
||||
d="M62 218v66h46c4.432 0 8-3.568 8-8v-50c0-4.432-3.568-8-8-8H62z"
|
||||
fill="#deddda"
|
||||
id="path35" />
|
||||
<path
|
||||
d="M20 182c-4.432 0-8 3.568-8 8v84c0 4.432 3.568 8 8 8h44v-50h52v-42c0-4.432-3.568-8-8-8H66v2h-4v-2z"
|
||||
fill="#f6f5f4"
|
||||
id="path37" />
|
||||
<path
|
||||
d="M12 232h104"
|
||||
fill="none"
|
||||
stroke="#deddda"
|
||||
stroke-width="4"
|
||||
id="path39" />
|
||||
<path
|
||||
d="M12 231h104"
|
||||
fill="none"
|
||||
stroke="#c0bfbc"
|
||||
stroke-width="2"
|
||||
id="path41" />
|
||||
<path
|
||||
d="M64 184v100"
|
||||
fill="none"
|
||||
stroke="#deddda"
|
||||
stroke-width="4"
|
||||
id="path43" />
|
||||
<path
|
||||
d="M28 189.57v32.454h4.103V209.72L50 200.943z"
|
||||
fill="#2dc0af"
|
||||
id="path45" />
|
||||
<path
|
||||
style="line-height:1000%;-inkscape-font-specification:'Cantarell Ultra-Bold'"
|
||||
d="M28 270h18v-6h-6v-20h-3.196l-10.069 5.225 2.193 5.206L34 252l-.02 12H28z"
|
||||
font-weight="800"
|
||||
font-family="Cantarell"
|
||||
letter-spacing="0"
|
||||
word-spacing="0"
|
||||
fill="#1a5fb4"
|
||||
id="path47" />
|
||||
<g
|
||||
transform="translate(-2 1)"
|
||||
fill="#a51d2d"
|
||||
id="g59">
|
||||
<circle
|
||||
style="marker:none"
|
||||
cx="91"
|
||||
cy="257"
|
||||
r="15"
|
||||
id="circle49" />
|
||||
<rect
|
||||
style="marker:none"
|
||||
width="6"
|
||||
height="38"
|
||||
x="88"
|
||||
y="238"
|
||||
rx="2"
|
||||
ry="2"
|
||||
id="rect51" />
|
||||
<rect
|
||||
ry="2"
|
||||
rx="2"
|
||||
y="-110"
|
||||
x="254"
|
||||
height="38"
|
||||
width="6"
|
||||
style="marker:none"
|
||||
transform="rotate(90)"
|
||||
id="rect53" />
|
||||
<rect
|
||||
ry="2"
|
||||
rx="2"
|
||||
y="98.38"
|
||||
x="243.073"
|
||||
height="38"
|
||||
width="6"
|
||||
style="marker:none"
|
||||
transform="rotate(45)"
|
||||
id="rect55" />
|
||||
<rect
|
||||
transform="rotate(135)"
|
||||
style="marker:none"
|
||||
width="6"
|
||||
height="38"
|
||||
x="114.38"
|
||||
y="-265.073"
|
||||
rx="2"
|
||||
ry="2"
|
||||
id="rect57" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(-2 -1)"
|
||||
fill="#ed333b"
|
||||
id="g71">
|
||||
<circle
|
||||
r="15"
|
||||
cy="257"
|
||||
cx="91"
|
||||
style="marker:none"
|
||||
id="circle61" />
|
||||
<rect
|
||||
ry="2"
|
||||
rx="2"
|
||||
y="238"
|
||||
x="88"
|
||||
height="38"
|
||||
width="6"
|
||||
style="marker:none"
|
||||
id="rect63" />
|
||||
<rect
|
||||
transform="rotate(90)"
|
||||
style="marker:none"
|
||||
width="6"
|
||||
height="38"
|
||||
x="254"
|
||||
y="-110"
|
||||
rx="2"
|
||||
ry="2"
|
||||
id="rect65" />
|
||||
<rect
|
||||
transform="rotate(45)"
|
||||
style="marker:none"
|
||||
width="6"
|
||||
height="38"
|
||||
x="243.073"
|
||||
y="98.38"
|
||||
rx="2"
|
||||
ry="2"
|
||||
id="rect67" />
|
||||
<rect
|
||||
ry="2"
|
||||
rx="2"
|
||||
y="-265.073"
|
||||
x="114.38"
|
||||
height="38"
|
||||
width="6"
|
||||
style="marker:none"
|
||||
transform="rotate(135)"
|
||||
id="rect69" />
|
||||
</g>
|
||||
</g>
|
||||
<rect
|
||||
style="fill:#0000ff"
|
||||
id="rect235"
|
||||
width="5.3330002"
|
||||
height="128"
|
||||
x="0.36789855"
|
||||
y="0.029102948" />
|
||||
</svg>
|
After Width: | Height: | Size: 6.9 KiB |
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<menu id = "mine_menu">
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label">New Game</attribute>
|
||||
<attribute name="action">win.new_game</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label">Custom Game</attribute>
|
||||
<attribute name="action">win.custom_game</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label">Show Scores</attribute>
|
||||
<attribute name="action">win.scores</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label">Show all mines</attribute>
|
||||
<attribute name="action">win.show_mines</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label">Quit</attribute>
|
||||
<attribute name="action">win.quit</attribute>
|
||||
</item>
|
||||
</section>
|
||||
</menu>
|
||||
</interface>
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<!-- Generated with glade 3.40.0 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<object class="GtkImage" id="image1">
|
||||
|
@ -116,6 +116,18 @@
|
|||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">calcapp</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image26">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">mines_app</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image27">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">mines_app</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
@ -146,6 +158,283 @@
|
|||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_prefs</property>
|
||||
</object>
|
||||
<object class="GtkBox" id="dock_box">
|
||||
<property name="width-request">54</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkSeparator" id="separator_start">
|
||||
<property name="height-request">5</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnlaunch">
|
||||
<property name="width-request">54</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image1</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator" id="separator_2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="icons_sw">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="icons_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnfiles">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image3</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btndraw">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image2</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btncalc">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image25</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btngame">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image4</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnedit">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image5</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnimage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image6</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnset">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image7</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btngame24">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image23</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnmine">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image26</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator" id="separator_3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">11</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btntrash">
|
||||
<property name="width-request">54</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image21</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">12</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator" id="separator_end">
|
||||
<property name="height-request">5</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">end</property>
|
||||
<style>
|
||||
<class name="separator1"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">13</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkImage" id="image8">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
@ -187,203 +476,10 @@
|
|||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="dock_box">
|
||||
<property name="width-request">54</property>
|
||||
<object class="GtkBox" id="dock_left">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkSeparator" id="separator_start">
|
||||
<property name="height-request">5</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnlaunch">
|
||||
<property name="width-request">54</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image1</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="width-request">52</property>
|
||||
<property name="height-request">340</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hscrollbar-policy">never</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnfiles">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image3</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btndraw">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image2</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btncalc">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image25</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btngame">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image4</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnedit">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image5</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnimage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image6</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnset">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image7</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btngame24">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image23</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
|
@ -393,63 +489,6 @@
|
|||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">11</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btntrash">
|
||||
<property name="width-request">54</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image21</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">12</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator" id="separator_end">
|
||||
<property name="height-request">5</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<style>
|
||||
<class name="separator1"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">13</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
@ -760,7 +799,20 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
<object class="GtkButton" id="padmine">
|
||||
<property name="label" translatable="yes">MineSweeper</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image27</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="image-position">top</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
|
@ -928,7 +980,25 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
<object class="GtkBox" id="dock_right">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
|
@ -938,7 +1008,24 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
<object class="GtkBox" id="dock_bottom">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
|
|
|
@ -284,6 +284,205 @@
|
|||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="dock_page">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">128</property>
|
||||
<property name="icon-name">display_prefs</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<!-- n-columns=4 n-rows=5 -->
|
||||
<object class="GtkGrid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="row-spacing">5</property>
|
||||
<property name="column-spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="mode_check">
|
||||
<property name="label" translatable="yes">Use panel mode:expand the dock</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">0</property>
|
||||
<property name="width">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Position:</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="radio_left">
|
||||
<property name="label" translatable="yes">Left</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="active">True</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">2</property>
|
||||
<property name="top-attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="radio_right">
|
||||
<property name="label" translatable="yes">Right</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">radio_left</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">2</property>
|
||||
<property name="top-attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="radio_bottom">
|
||||
<property name="label" translatable="yes">Bottom</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">radio_left</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">2</property>
|
||||
<property name="top-attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnapply1">
|
||||
<property name="label" translatable="yes">Apply</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="halign">end</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">dock_prefs</property>
|
||||
<property name="title" translatable="yes">Dock Preferences</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.40.0 -->
|
||||
<!-- Created with Cambalache 0.11.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<object class="GtkWindow" id="scores_win">
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="scores_view">
|
||||
<property name="width-request">400</property>
|
||||
<property name="height-request">300</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="btn_box">
|
||||
<property name="height-request">3</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="label"> </property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnclose">
|
||||
<property name="label">Close</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="receives-default">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
|
@ -8,5 +8,10 @@
|
|||
@import url("resource://org/gtk/daleclack/reset.css");
|
||||
|
||||
box{
|
||||
background-color:alpha(white,0.7);
|
||||
background-color:alpha(gray,0.7);
|
||||
color:white;
|
||||
}
|
||||
|
||||
label{
|
||||
color:black;
|
||||
}
|
|
@ -0,0 +1,136 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.40.0 -->
|
||||
<!-- Created with Cambalache 0.11.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<object class="GtkDialog" id="dialog">
|
||||
<property name="width-request">300</property>
|
||||
<property name="height-request">150</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="type-hint">dialog</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">10</property>
|
||||
<property name="margin-end">10</property>
|
||||
<property name="margin-top">10</property>
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">2</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkButtonBox">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="layout-style">end</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="btn_ok">
|
||||
<property name="label" translatable="yes">OK</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btn_cancel">
|
||||
<property name="label" translatable="yes">Cancel</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="main_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Input Name:</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="entry_name">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="check_scores">
|
||||
<property name="label" translatable="yes">Show Scores Window</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<action-widgets>
|
||||
<action-widget response="-5">btn_ok</action-widget>
|
||||
<action-widget response="-6">btn_cancel</action-widget>
|
||||
</action-widgets>
|
||||
</object>
|
||||
</interface>
|
|
@ -0,0 +1,68 @@
|
|||
#pragma once
|
||||
|
||||
#include <gtkmm.h>
|
||||
#include "InputBox.hh"
|
||||
#include "ScoresWin.hh"
|
||||
|
||||
class MineCell : public Gtk::Button
|
||||
{
|
||||
public:
|
||||
bool has_mine = false; // Whether the grid has mine
|
||||
bool cleared = false; // Whether the mine is cleared
|
||||
int mines_around; // The number near the grid
|
||||
int x, y; // The Position of the grid
|
||||
MineCell()
|
||||
{
|
||||
// Set button style
|
||||
set_relief(Gtk::RELIEF_NONE);
|
||||
mines_around = 0;
|
||||
}
|
||||
};
|
||||
|
||||
class MineSweeper : public Gtk::ApplicationWindow
|
||||
{
|
||||
public:
|
||||
MineSweeper();
|
||||
~MineSweeper();
|
||||
|
||||
private:
|
||||
// HeaderBar
|
||||
Gtk::HeaderBar header;
|
||||
Gtk::MenuButton menu_btn;
|
||||
Gtk::Popover popover1;
|
||||
|
||||
// Child widgets
|
||||
Gtk::Grid mine_grid;
|
||||
Gtk::Label status_label;
|
||||
Gtk::Box main_box, btn_box;
|
||||
Gtk::Button btnstart, btnshow, btnexit;
|
||||
|
||||
// The cell to place mines
|
||||
MineCell *cell;
|
||||
bool winned, game_ended; // The status of game(win/end)
|
||||
int mines_clear, mine_count; // Whether the mine is cleared
|
||||
|
||||
// Menu
|
||||
Glib::RefPtr<Gtk::Builder> menu_builder;
|
||||
|
||||
// Timer
|
||||
int timer_count;
|
||||
sigc::connection mytimer;
|
||||
|
||||
// Input dialog
|
||||
InputBox *input_dialog;
|
||||
|
||||
// Scores Window
|
||||
ScoresWin *scores_win;
|
||||
|
||||
// Signal Handlers
|
||||
void new_game(); // "New Game" handler
|
||||
void reset_game(int width = 7, int height = 7, int mines = 9); // Reset all mines
|
||||
void calc_mines(); // Get the mines around
|
||||
void show_mines(); // Show all mines
|
||||
void show_scores(); // Show all scores
|
||||
void game_lost(int explode_index); // You lost the game
|
||||
void cell_clicked(MineCell *cell1); // Open a cell
|
||||
bool timer_func(); // Timer
|
||||
void check_mines(int pos_x, int pos_y); // Check if there is a mine
|
||||
};
|
|
@ -1,39 +1,57 @@
|
|||
#include "MyStack.hh"
|
||||
#include <iostream>
|
||||
|
||||
MyStack::MyStack(){
|
||||
MyStack::MyStack()
|
||||
{
|
||||
// Get Widgets
|
||||
stackbuilder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/stack.ui");
|
||||
stackbuilder->get_widget("main_stack",stack);
|
||||
stackbuilder->get_widget("login_page",login_page);
|
||||
stackbuilder->get_widget("main_page",main_page);
|
||||
stackbuilder->get_widget("btnlogin",btnlogin);
|
||||
stackbuilder->get_widget("main_stack", stack);
|
||||
stackbuilder->get_widget("login_page", login_page);
|
||||
stackbuilder->get_widget("main_page", main_page);
|
||||
stackbuilder->get_widget("btnlogin", btnlogin);
|
||||
|
||||
// Link Signals
|
||||
btnlogin->signal_clicked().connect(sigc::mem_fun(*this,&MyStack::btnlogin_clicked));
|
||||
btnlogin->signal_clicked().connect(sigc::mem_fun(*this, &MyStack::btnlogin_clicked));
|
||||
}
|
||||
|
||||
//Add Widget
|
||||
main_dock = MyDock::create();
|
||||
void MyStack::mystack_init(Gtk::Window *window, Gtk::Image *m_back)
|
||||
{
|
||||
main_dock->mydock_init(window, m_back);
|
||||
}
|
||||
|
||||
void MyStack::show_prefs()
|
||||
{
|
||||
main_dock->btnset_clicked();
|
||||
}
|
||||
|
||||
void MyStack::logout()
|
||||
{
|
||||
stack->set_visible_child(*login_page);
|
||||
}
|
||||
|
||||
void MyStack::btnlogin_clicked()
|
||||
{
|
||||
stack->set_visible_child(*main_page);
|
||||
}
|
||||
|
||||
void MyStack::set_mydock_mode(DockMode mode)
|
||||
{
|
||||
// main_dock->set_dock_mode(mode);
|
||||
// switch (mode)
|
||||
// {
|
||||
// case DockMode::MODE_DOCK:
|
||||
// std::cout << "dock mode" << std::endl;
|
||||
// break;
|
||||
// case DockMode::MODE_PANEL:
|
||||
// std::cout << "panel mode" << std::endl;
|
||||
// break;
|
||||
// default:
|
||||
// std::cout << "undefined" << std::endl;
|
||||
// break;
|
||||
// }
|
||||
// Add Widget
|
||||
main_dock = MyDock::create(mode);
|
||||
main_dock->set_hexpand();
|
||||
main_dock->set_vexpand();
|
||||
main_page->pack_start(*main_dock);
|
||||
}
|
||||
|
||||
void MyStack::mystack_init(Gtk::Window *window, Gtk::Image *m_back){
|
||||
main_dock->mydock_init(window,m_back);
|
||||
}
|
||||
|
||||
void MyStack::show_prefs(){
|
||||
main_dock->btnset_clicked();
|
||||
}
|
||||
|
||||
void MyStack::logout(){
|
||||
stack->set_visible_child(*login_page);
|
||||
}
|
||||
|
||||
void MyStack::btnlogin_clicked(){
|
||||
stack->set_visible_child(*main_page);
|
||||
}
|
||||
|
||||
void MyStack::set_mydock_mode(DockMode mode){
|
||||
main_dock->set_dock_mode(mode);
|
||||
}
|
||||
|
|
|
@ -9,7 +9,14 @@ MyWin::MyWin()
|
|||
// Initalize window
|
||||
set_icon_name("My_GtkUI");
|
||||
set_title("My GtkUI macOS Version");
|
||||
get_size_config(width, height);
|
||||
get_size_config(width, height, panel_mode);
|
||||
|
||||
// Set the display mode of dock
|
||||
if(panel_mode){
|
||||
main_stack.set_mydock_mode(DockMode::MODE_PANEL);
|
||||
}else{
|
||||
main_stack.set_mydock_mode(DockMode::MODE_DOCK);
|
||||
}
|
||||
|
||||
// Add background
|
||||
auto pixbuf = Gdk::Pixbuf::create_from_xpm_data(winpe);
|
||||
|
@ -80,7 +87,7 @@ void MyWin::about_activated()
|
|||
|
||||
// Version information
|
||||
char *version;
|
||||
version = g_strdup_printf("5.4\nRunning Against: Gtkmm %d.%d.%d",
|
||||
version = g_strdup_printf("5.6\nRunning Against: Gtkmm %d.%d.%d",
|
||||
GTKMM_MAJOR_VERSION,
|
||||
GTKMM_MINOR_VERSION,
|
||||
GTKMM_MICRO_VERSION);
|
||||
|
|
|
@ -20,6 +20,7 @@ private:
|
|||
//Main Stack
|
||||
MyStack main_stack;
|
||||
int width, height;
|
||||
bool panel_mode;
|
||||
|
||||
//Signal Handlers
|
||||
void logout_activated();
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
#include "InputBox.hh"
|
||||
|
||||
InputBox::InputBox(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Glade)
|
||||
: Gtk::Dialog(cobject),
|
||||
ref_builder(ref_Glade)
|
||||
{
|
||||
// Get Widgets
|
||||
ref_builder->get_widget("entry_name", entry_name);
|
||||
ref_builder->get_widget("check_scores", check_scores);
|
||||
entry_name->signal_activate().connect(sigc::mem_fun(*this, &InputBox::entry_activated));
|
||||
}
|
||||
|
||||
void InputBox::on_response(int response_id)
|
||||
{
|
||||
// Open a file to save json data
|
||||
std::fstream outfile;
|
||||
outfile.open("scores.json", std::ios_base::out);
|
||||
if (outfile.is_open())
|
||||
{
|
||||
// Insert data to json
|
||||
std::string name = std::string((entry_name->get_text()).c_str());
|
||||
names.push_back(name);
|
||||
times.push_back(game_time);
|
||||
data["name"] = names;
|
||||
data["time"] = times;
|
||||
|
||||
// Output data
|
||||
outfile << data;
|
||||
}
|
||||
outfile.close();
|
||||
if (response_id == Gtk::RESPONSE_OK)
|
||||
{
|
||||
read_scores(check_scores->get_active());
|
||||
}
|
||||
hide();
|
||||
}
|
||||
|
||||
void InputBox::read_scores(bool show_scores_win)
|
||||
{
|
||||
// If show scores checkbutton is checked, show scores window
|
||||
if (show_scores_win)
|
||||
{
|
||||
scores_win1->update_and_show();
|
||||
}
|
||||
}
|
||||
|
||||
void InputBox::set_game_time(int time)
|
||||
{
|
||||
// Try to open json file
|
||||
std::fstream jsonfile;
|
||||
jsonfile.open("scores.json", std::ios_base::in);
|
||||
|
||||
// If json file opened, read the data
|
||||
if (jsonfile.is_open())
|
||||
{
|
||||
data = json::parse(jsonfile);
|
||||
std::vector<std::string> names1 = data["name"];
|
||||
std::vector<int> times1 = data["time"];
|
||||
names = names1;
|
||||
times = times1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Otherwist, create json data
|
||||
data = json::parse(R"(
|
||||
{
|
||||
"name":[" "],
|
||||
"time":[0]
|
||||
}
|
||||
)");
|
||||
}
|
||||
jsonfile.close();
|
||||
|
||||
// Initalize time
|
||||
game_time = time;
|
||||
}
|
||||
|
||||
void InputBox::entry_activated()
|
||||
{
|
||||
// Default response
|
||||
response(Gtk::RESPONSE_OK);
|
||||
}
|
||||
|
||||
void InputBox::set_scores_window(ScoresWin *win1)
|
||||
{
|
||||
// Bind Scores Window
|
||||
scores_win1 = win1;
|
||||
}
|
||||
|
||||
InputBox *InputBox::create()
|
||||
{
|
||||
// Create a inputbox object
|
||||
auto builder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/win_input.ui");
|
||||
|
||||
InputBox *dialog;
|
||||
builder->get_widget_derived("dialog", dialog);
|
||||
|
||||
return dialog;
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
#pragma once
|
||||
|
||||
#include <gtkmm.h>
|
||||
#include "jsonfile.hh"
|
||||
#include "ScoresWin.hh"
|
||||
|
||||
class InputBox : public Gtk::Dialog{
|
||||
public:
|
||||
static InputBox *create();
|
||||
InputBox(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Glade);
|
||||
void read_scores(bool show_scores_win = true);
|
||||
void set_game_time(int time);
|
||||
void set_scores_window(ScoresWin *win1);
|
||||
|
||||
protected:
|
||||
void on_response(int response_id) override;
|
||||
|
||||
private:
|
||||
int game_time;
|
||||
|
||||
// Data to write to json file
|
||||
json data;
|
||||
std::vector<std::string> names;
|
||||
std::vector<int> times;
|
||||
|
||||
// Builder Object
|
||||
Glib::RefPtr<Gtk::Builder> ref_builder;
|
||||
|
||||
// Child widget
|
||||
Gtk::Entry *entry_name;
|
||||
Gtk::CheckButton *check_scores;
|
||||
|
||||
// Scores Window
|
||||
ScoresWin *scores_win1;
|
||||
|
||||
// Signal Handlers
|
||||
void entry_activated();
|
||||
};
|
|
@ -0,0 +1,295 @@
|
|||
#include "MineSweeper.hh"
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
MineSweeper::MineSweeper()
|
||||
: main_box(Gtk::ORIENTATION_VERTICAL, 5),
|
||||
btn_box(Gtk::ORIENTATION_HORIZONTAL, 5),
|
||||
cell(nullptr)
|
||||
{
|
||||
// Initalize Window
|
||||
header.set_title("MineSweeper");
|
||||
set_titlebar(header);
|
||||
header.set_show_close_button();
|
||||
header.set_decoration_layout("close,minimize,maximize:menu");
|
||||
header.pack_end(menu_btn);
|
||||
set_icon_name("org.gtk.daleclack");
|
||||
|
||||
// Initalize Menu
|
||||
menu_builder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/mine_menu.xml");
|
||||
auto object = menu_builder->get_object("mine_menu");
|
||||
auto gmenu = Glib::RefPtr<Gio::Menu>::cast_dynamic(object);
|
||||
popover1.bind_model(gmenu);
|
||||
menu_btn.set_popover(popover1);
|
||||
|
||||
// Add Actions
|
||||
add_action("new_game", sigc::mem_fun(*this, &MineSweeper::new_game));
|
||||
add_action("scores", sigc::mem_fun(*this, &MineSweeper::show_scores));
|
||||
add_action("show_mines", sigc::mem_fun(*this, &MineSweeper::show_mines));
|
||||
add_action("quit", sigc::mem_fun(*this, &MineSweeper::hide));
|
||||
|
||||
// Default setting
|
||||
reset_game();
|
||||
|
||||
// Buttons
|
||||
btnstart.set_label("Start/Reset");
|
||||
btnshow.set_label("Show All");
|
||||
btnexit.set_label("Exit");
|
||||
btn_box.pack_start(btnstart, Gtk::PACK_SHRINK);
|
||||
btn_box.pack_start(btnshow, Gtk::PACK_SHRINK);
|
||||
btn_box.pack_start(btnexit, Gtk::PACK_SHRINK);
|
||||
btnstart.signal_clicked().connect(sigc::mem_fun(*this, &MineSweeper::new_game));
|
||||
btnshow.signal_clicked().connect(sigc::mem_fun(*this, &MineSweeper::show_mines));
|
||||
btnexit.signal_clicked().connect(sigc::mem_fun(*this, &MineSweeper::hide));
|
||||
|
||||
// Pack widgets
|
||||
status_label.set_halign(Gtk::ALIGN_CENTER);
|
||||
btn_box.set_halign(Gtk::ALIGN_CENTER);
|
||||
mine_grid.set_halign(Gtk::ALIGN_CENTER);
|
||||
main_box.pack_start(status_label, Gtk::PACK_SHRINK);
|
||||
main_box.pack_start(mine_grid);
|
||||
main_box.pack_start(btn_box, Gtk::PACK_SHRINK);
|
||||
|
||||
// Create a dialog
|
||||
input_dialog = InputBox::create();
|
||||
|
||||
// Create Scores Window
|
||||
scores_win = ScoresWin::create();
|
||||
|
||||
// Bind windows
|
||||
input_dialog->set_transient_for(*this);
|
||||
scores_win->set_transient_for(*this);
|
||||
input_dialog->set_scores_window(scores_win);
|
||||
|
||||
// Show everything
|
||||
add(main_box);
|
||||
show_all_children();
|
||||
}
|
||||
|
||||
MineSweeper::~MineSweeper(){
|
||||
// Delete all resources
|
||||
delete input_dialog;
|
||||
delete scores_win;
|
||||
if(cell != nullptr){
|
||||
delete[] cell;
|
||||
}
|
||||
}
|
||||
|
||||
void MineSweeper::new_game(){
|
||||
// New game = reset game
|
||||
reset_game();
|
||||
}
|
||||
|
||||
void MineSweeper::reset_game(int width, int height, int mines)
|
||||
{
|
||||
// Clear the cells
|
||||
if(cell != nullptr){
|
||||
delete[] cell;
|
||||
}
|
||||
|
||||
cell = new MineCell[width * height];
|
||||
// Reset timer
|
||||
mytimer.disconnect();
|
||||
timer_count = 0;
|
||||
mytimer = Glib::signal_timeout().connect(sigc::mem_fun(*this, &MineSweeper::timer_func), 1000);
|
||||
|
||||
mine_count = 0;
|
||||
mines_clear = 0;
|
||||
mine_grid.set_sensitive();
|
||||
// Reset all data
|
||||
for (int i = 0; i < width; i++)
|
||||
{
|
||||
for (int j = 0; j < height; j++)
|
||||
{
|
||||
// Initalize cell
|
||||
cell[i * 7 + j].set_relief(Gtk::RELIEF_HALF);
|
||||
cell[i * 7 + j].set_image_from_icon_name("", Gtk::ICON_SIZE_LARGE_TOOLBAR);
|
||||
cell[i * 7 + j].set_always_show_image();
|
||||
cell[i * 7 + j].set_size_request(40, 40);
|
||||
cell[i * 7 + j].mines_around = 0;
|
||||
cell[i * 7 + j].has_mine = false;
|
||||
cell[i * 7 + j].cleared = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Reset mines
|
||||
while (mine_count < mines)
|
||||
{
|
||||
int index = g_random_int_range(0, width * height);
|
||||
if (!(cell[index].has_mine))
|
||||
{
|
||||
cell[index].has_mine = true;
|
||||
// cell[index].set_label("x");
|
||||
mine_count++;
|
||||
}
|
||||
}
|
||||
// std::cout << mine_count << std::endl;
|
||||
game_ended = false;
|
||||
winned = true;
|
||||
status_label.set_label(" ");
|
||||
calc_mines();
|
||||
|
||||
// Append buttons to grid
|
||||
for (int i = 0; i < height; i++)
|
||||
{
|
||||
for (int j = 0; j < width; j++)
|
||||
{
|
||||
// cell[i * 7 + j].set_label("?");
|
||||
cell[i * width + j].signal_clicked().connect(sigc::bind(
|
||||
sigc::mem_fun(*this, &MineSweeper::cell_clicked), &cell[i * width + j]));
|
||||
mine_grid.attach(cell[i * width + j], j, i);
|
||||
cell[i * width + j].set_relief(Gtk::RELIEF_HALF);
|
||||
cell[i * width + j].x = j;
|
||||
cell[i * width + j].y = i;
|
||||
cell[i * width + j].cleared = false;
|
||||
}
|
||||
}
|
||||
|
||||
mine_grid.show_all();
|
||||
}
|
||||
|
||||
void MineSweeper::calc_mines()
|
||||
{
|
||||
// Calculate the mines around a cell
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
for (int j = 0; j < 7; j++)
|
||||
{
|
||||
int index1, index2;
|
||||
// The Search cell should not over the grids
|
||||
for (index1 = MAX(0, i - 1); index1 < MIN(i + 1, 6) + 1; index1++)
|
||||
{
|
||||
for (index2 = MAX(0, j - 1); index2 < MIN(j + 1, 6) + 1; index2++)
|
||||
{
|
||||
if ((cell[index1 * 7 + index2].has_mine))
|
||||
{
|
||||
cell[i * 7 + j].mines_around++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MineSweeper::show_mines()
|
||||
{
|
||||
// Show all cell with a mine
|
||||
for (int i = 0; i < 49; i++)
|
||||
{
|
||||
if (cell[i].has_mine)
|
||||
{
|
||||
cell[i].set_image_from_icon_name("mine", Gtk::ICON_SIZE_LARGE_TOOLBAR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MineSweeper::show_scores(){
|
||||
// Show Scores Window
|
||||
input_dialog->read_scores();
|
||||
}
|
||||
|
||||
void MineSweeper::game_lost(int explode_index){
|
||||
// When a cell with mine is clicked, show other mines
|
||||
for (int i = 0; i < 49; i++)
|
||||
{
|
||||
if (cell[i].has_mine && i != explode_index)
|
||||
{
|
||||
cell[i].set_image_from_icon_name("mine", Gtk::ICON_SIZE_LARGE_TOOLBAR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool MineSweeper::timer_func()
|
||||
{
|
||||
// Set timer
|
||||
char tmp[50];
|
||||
timer_count++;
|
||||
sprintf(tmp, "Time:%d", timer_count);
|
||||
status_label.set_label(tmp);
|
||||
return true;
|
||||
}
|
||||
|
||||
void MineSweeper::cell_clicked(MineCell *cell1)
|
||||
{
|
||||
cell1->set_relief(Gtk::RELIEF_NONE);
|
||||
if (!game_ended && !cell1->cleared)
|
||||
{
|
||||
//
|
||||
// If get mine, the game will end now
|
||||
if (cell1->has_mine)
|
||||
{
|
||||
// Set game to stop
|
||||
winned = false;
|
||||
cell1->cleared = true;
|
||||
cell1->set_image_from_icon_name("exploded", Gtk::ICON_SIZE_LARGE_TOOLBAR);
|
||||
|
||||
// End the game
|
||||
game_lost(cell1->y * 7 + cell1->x);
|
||||
status_label.set_label("You lost!");
|
||||
game_ended = true;
|
||||
mytimer.disconnect();
|
||||
mine_grid.set_sensitive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
// If no mines, check the cell around
|
||||
check_mines(cell1->x, cell1->y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MineSweeper::check_mines(int pos_x, int pos_y)
|
||||
{
|
||||
if (pos_x >= 0 && pos_x <= 6 &&
|
||||
pos_y >= 0 && pos_y <= 6)
|
||||
{
|
||||
if (!cell[pos_y * 7 + pos_x].has_mine &&
|
||||
!cell[pos_y * 7 + pos_x].cleared)
|
||||
{
|
||||
mines_clear++;
|
||||
// Show the cell has no mines around
|
||||
if (cell[pos_y * 7 + pos_x].mines_around == 0)
|
||||
{
|
||||
cell[pos_y * 7 + pos_x].set_image_from_icon_name("", Gtk::ICON_SIZE_LARGE_TOOLBAR);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Show the numbers of mines around a cell
|
||||
char *label = g_strdup_printf("%dmines", cell[pos_y * 7 + pos_x].mines_around);
|
||||
cell[pos_y * 7 + pos_x].set_image_from_icon_name(label, Gtk::ICON_SIZE_LARGE_TOOLBAR);
|
||||
g_free(label);
|
||||
}
|
||||
|
||||
// make the cell without mines cleared
|
||||
cell[pos_y * 7 + pos_x].set_relief(Gtk::RELIEF_NONE);
|
||||
cell[pos_y * 7 + pos_x].cleared = true;
|
||||
|
||||
// Check the cells around a cell that has no mines
|
||||
if (cell[pos_y * 7 + pos_x].mines_around == 0)
|
||||
{
|
||||
check_mines((pos_x - 1), (pos_y - 1));
|
||||
check_mines((pos_x + 1), (pos_y + 1));
|
||||
check_mines((pos_x - 1), (pos_y + 1));
|
||||
check_mines((pos_x + 1), (pos_y - 1));
|
||||
check_mines(pos_x, (pos_y - 1));
|
||||
check_mines(pos_x, (pos_y + 1));
|
||||
check_mines((pos_x + 1), pos_y);
|
||||
check_mines((pos_x - 1), pos_y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If all the mines has cleared, you has winned
|
||||
if (mines_clear == 40)
|
||||
{
|
||||
// Stop the game
|
||||
status_label.set_label("You winned!");
|
||||
winned = true;
|
||||
game_ended = true;
|
||||
mytimer.disconnect();
|
||||
|
||||
// Save the time of game
|
||||
input_dialog->set_game_time(timer_count);
|
||||
input_dialog->show_all();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
#include "ScoresWin.hh"
|
||||
|
||||
ScoresWin::ScoresWin(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Glade)
|
||||
: Gtk::Window(cobject),
|
||||
ref_builder(ref_Glade)
|
||||
{
|
||||
// Get Widgets
|
||||
ref_builder->get_widget("btnclose", btnclose);
|
||||
ref_builder->get_widget("scores_view", tree_view);
|
||||
btnclose->signal_clicked().connect(sigc::mem_fun(*this, &ScoresWin::hide));
|
||||
|
||||
// Create the list store
|
||||
store = Gtk::ListStore::create(column1);
|
||||
store->set_sort_func(column1.win_time, sigc::mem_fun(*this, &ScoresWin::sort_func));
|
||||
store->set_sort_column(column1.win_time, Gtk::SortType::SORT_ASCENDING);
|
||||
tree_view->set_model(store);
|
||||
tree_view->append_column("name", column1.player_name);
|
||||
tree_view->append_column("time", column1.win_time);
|
||||
}
|
||||
|
||||
void ScoresWin::update_and_show()
|
||||
{
|
||||
std::fstream infile;
|
||||
infile.open("scores.json", std::ios_base::in);
|
||||
|
||||
if (infile.is_open())
|
||||
{
|
||||
// Read data from json file
|
||||
json data = json::parse(infile);
|
||||
std::vector<std::string> name_vec = data["name"];
|
||||
std::vector<int> time_vec = data["time"];
|
||||
|
||||
// Clear the store
|
||||
store->clear();
|
||||
|
||||
// Append data to the store
|
||||
for (int i = 0; i < name_vec.size(); i++)
|
||||
{
|
||||
auto row = *(store->append());
|
||||
row[column1.player_name] = name_vec[i];
|
||||
row[column1.win_time] = time_vec[i];
|
||||
}
|
||||
}
|
||||
|
||||
show_all();
|
||||
}
|
||||
|
||||
int ScoresWin::sort_func(const Gtk::TreeModel::iterator &iter1, const Gtk::TreeModel::iterator &iter2)
|
||||
{
|
||||
// Sort by the game time
|
||||
auto row1 = *iter1;
|
||||
auto row2 = *iter2;
|
||||
if (row1[column1.win_time] < row2[column1.win_time])
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (row1[column1.win_time] == row2[column1.win_time])
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
ScoresWin *ScoresWin::create()
|
||||
{
|
||||
// Create a window
|
||||
auto builder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/scoreswin.ui");
|
||||
ScoresWin *main_win;
|
||||
|
||||
builder->get_widget_derived("scores_win", main_win);
|
||||
|
||||
return main_win;
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#pragma once
|
||||
|
||||
#include <gtkmm.h>
|
||||
#include "jsonfile.hh"
|
||||
|
||||
class ScoresWin : public Gtk::Window{
|
||||
public:
|
||||
static ScoresWin *create();
|
||||
ScoresWin(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Glade);
|
||||
void update_and_show();
|
||||
|
||||
private:
|
||||
Glib::RefPtr<Gtk::Builder> ref_builder;
|
||||
|
||||
// Child widgets
|
||||
Gtk::Button *btnclose;
|
||||
Gtk::TreeView *tree_view;
|
||||
|
||||
// TreeView data
|
||||
class ModelColumns : public Gtk::TreeModelColumnRecord{
|
||||
public:
|
||||
ModelColumns(){
|
||||
add(player_name);
|
||||
add(win_time);
|
||||
}
|
||||
Gtk::TreeModelColumn<std::string> player_name;
|
||||
Gtk::TreeModelColumn<int> win_time;
|
||||
};
|
||||
ModelColumns column1;
|
||||
|
||||
Glib::RefPtr<Gtk::ListStore> store;
|
||||
|
||||
// Sort function
|
||||
int sort_func(const Gtk::TreeModel::iterator &iter1, const Gtk::TreeModel::iterator &iter2);
|
||||
};
|
|
@ -0,0 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "../json_nlohmann/json.hpp"
|
||||
#include <fstream>
|
||||
#include <vector>
|
||||
|
||||
using json = nlohmann::json;
|
|
@ -183,7 +183,7 @@ void TextEditor::btnopen_clicked()
|
|||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; text_globs != NULL && text_globs[i] != NULL; i++)
|
||||
for (int i = 0; text_globs[i] != NULL; i++)
|
||||
{
|
||||
const char *glob = text_globs[i];
|
||||
filter->add_pattern(glob);
|
||||
|
@ -251,7 +251,7 @@ void TextEditor::btnsaveas_clicked()
|
|||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; text_globs != NULL && text_globs[i] != NULL; i++)
|
||||
for (int i = 0; text_globs[i] != NULL; i++)
|
||||
{
|
||||
const char *glob = text_globs[i];
|
||||
filter->add_pattern(glob);
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#include "MyDock.hh"
|
||||
#include <thread>
|
||||
#include <iostream>
|
||||
|
||||
// Dock or Panel Mode
|
||||
static DockMode mode1;
|
||||
|
||||
MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Glade)
|
||||
: Gtk::Box(cobject),
|
||||
|
@ -9,6 +13,10 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
// Get Widgets
|
||||
ref_builder->get_widget("finder_box", finder_box);
|
||||
ref_builder->get_widget("dock_box", dock_box);
|
||||
ref_builder->get_widget("dock_left", dock_left);
|
||||
ref_builder->get_widget("dock_right", dock_right);
|
||||
ref_builder->get_widget("dock_bottom", dock_bottom);
|
||||
ref_builder->get_widget("icons_box", icons_box);
|
||||
ref_builder->get_widget("btnlaunch", btnlaunch);
|
||||
ref_builder->get_widget("btndraw", btndraw);
|
||||
ref_builder->get_widget("btnfiles", btnfiles);
|
||||
|
@ -16,14 +24,18 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
ref_builder->get_widget("btnedit", btnedit);
|
||||
ref_builder->get_widget("btnimage", btnimage);
|
||||
ref_builder->get_widget("btnset", btnset);
|
||||
ref_builder->get_widget("btngame24",btngame24);
|
||||
ref_builder->get_widget("btncalc",btncalc);
|
||||
ref_builder->get_widget("btngame24", btngame24);
|
||||
ref_builder->get_widget("btncalc", btncalc);
|
||||
ref_builder->get_widget("btnmine", btnmine);
|
||||
ref_builder->get_widget("separator_start", separator_start);
|
||||
ref_builder->get_widget("separator_2", separator_2);
|
||||
ref_builder->get_widget("separator_3", separator_3);
|
||||
ref_builder->get_widget("separator_end", separator_end);
|
||||
ref_builder->get_widget("icons_sw", icons_sw);
|
||||
ref_builder->get_widget("launchpad_stack", launchpad_stack);
|
||||
ref_builder->get_widget("default_page", default_page);
|
||||
ref_builder->get_widget("launchpad_page", launchpad_page);
|
||||
ref_builder->get_widget("apps_grid",apps_grid);
|
||||
ref_builder->get_widget("apps_grid", apps_grid);
|
||||
ref_builder->get_widget("padaud", padaud);
|
||||
ref_builder->get_widget("padgedit", padgedit);
|
||||
ref_builder->get_widget("padvlc", padvlc);
|
||||
|
@ -37,8 +49,9 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
ref_builder->get_widget("padimage", padimage);
|
||||
ref_builder->get_widget("padedit", padedit);
|
||||
ref_builder->get_widget("padrun", padrun);
|
||||
ref_builder->get_widget("padgame24",padgame24);
|
||||
ref_builder->get_widget("padcalc",padcalc);
|
||||
ref_builder->get_widget("padgame24", padgame24);
|
||||
ref_builder->get_widget("padcalc", padcalc);
|
||||
ref_builder->get_widget("padmine", padmine);
|
||||
|
||||
// Create window
|
||||
game_win = Game::create();
|
||||
|
@ -46,6 +59,8 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
calc_win = CalcApp::create();
|
||||
|
||||
// Link signals
|
||||
|
||||
// These signal handlers not contain a icon on the dock
|
||||
btnlaunch->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::btnlaunch_clicked));
|
||||
padaud->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::padaud_clicked));
|
||||
padgedit->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::padgedit_clicked));
|
||||
|
@ -54,6 +69,13 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
padvlc_win32->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::padvlc_win32_clicked));
|
||||
padrun->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::btnrun_clicked));
|
||||
|
||||
/*
|
||||
These functions contain a icon on the dock
|
||||
the first signal for control button on dock
|
||||
the next signal for button on launchpad
|
||||
last 1 or 2 signals for the window
|
||||
*/
|
||||
|
||||
btnset->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::btnset_clicked));
|
||||
padset->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::padset_clicked));
|
||||
prefs_win.signal_delete_event().connect(sigc::mem_fun(*this, &MyDock::prefs_win_closed));
|
||||
|
@ -72,15 +94,15 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
game_win->signal_delete_event().connect(sigc::mem_fun(*this, &MyDock::game_win_closed));
|
||||
game_win->signal_hide().connect(sigc::mem_fun(*this, &MyDock::game_win_hide));
|
||||
|
||||
btngame24->signal_clicked().connect(sigc::mem_fun(*this,&MyDock::btngame24_clicked));
|
||||
padgame24->signal_clicked().connect(sigc::mem_fun(*this,&MyDock::padgame24_clicked));
|
||||
game24_win->signal_delete_event().connect(sigc::mem_fun(*this,&MyDock::game24_win_closed));
|
||||
game24_win->signal_hide().connect(sigc::mem_fun(*this,&MyDock::game24_win_hide));
|
||||
btngame24->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::btngame24_clicked));
|
||||
padgame24->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::padgame24_clicked));
|
||||
game24_win->signal_delete_event().connect(sigc::mem_fun(*this, &MyDock::game24_win_closed));
|
||||
game24_win->signal_hide().connect(sigc::mem_fun(*this, &MyDock::game24_win_hide));
|
||||
|
||||
btncalc->signal_clicked().connect(sigc::mem_fun(*this,&MyDock::btncalc_clicked));
|
||||
padcalc->signal_clicked().connect(sigc::mem_fun(*this,&MyDock::padcalc_clicked));
|
||||
calc_win->signal_delete_event().connect(sigc::mem_fun(*this,&MyDock::calc_win_closed));
|
||||
calc_win->signal_hide().connect(sigc::mem_fun(*this,&MyDock::calc_win_hide));
|
||||
btncalc->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::btncalc_clicked));
|
||||
padcalc->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::padcalc_clicked));
|
||||
calc_win->signal_delete_event().connect(sigc::mem_fun(*this, &MyDock::calc_win_closed));
|
||||
calc_win->signal_hide().connect(sigc::mem_fun(*this, &MyDock::calc_win_hide));
|
||||
|
||||
btnimage->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::btnimage_clicked));
|
||||
padimage->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::padimage_clicked));
|
||||
|
@ -90,6 +112,10 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
padedit->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::padedit_clicked));
|
||||
editor_win.signal_delete_event().connect(sigc::mem_fun(*this, &MyDock::editor_win_closed));
|
||||
|
||||
btnmine->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::btnmine_clicked));
|
||||
padmine->signal_clicked().connect(sigc::mem_fun(*this, &MyDock::padmine_clicked));
|
||||
mine_win.signal_delete_event().connect(sigc::mem_fun(*this, &MyDock::mine_win_closed));
|
||||
|
||||
// Add Finder
|
||||
finder_box->pack_start(finder);
|
||||
|
||||
|
@ -99,28 +125,83 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
apply_style(*dock_box);
|
||||
apply_style(*launchpad_page);
|
||||
apply_style(*separator_end);
|
||||
//apps_grid->foreach(sigc::mem_fun(*this,&MyDock::apply_style));
|
||||
// apps_grid->foreach(sigc::mem_fun(*this,&MyDock::apply_style));
|
||||
|
||||
// Set dock position
|
||||
// The dock can be positioned at the left, right and the bottom of the window
|
||||
auto dock_pos = prefs_win.get_dock_pos();
|
||||
switch (dock_pos)
|
||||
{
|
||||
case DockPos::POS_LEFT:
|
||||
// Set the default size of scrolled window
|
||||
icons_sw->set_size_request(52, 340);
|
||||
icons_sw->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
|
||||
dock_left->pack_start(*dock_box);
|
||||
break;
|
||||
case DockPos::POS_RIGHT:
|
||||
// Set the default size of scrolled window
|
||||
icons_sw->set_size_request(52, 340);
|
||||
icons_sw->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
|
||||
dock_right->pack_start(*dock_box);
|
||||
break;
|
||||
case DockPos::POS_BOTTOM:
|
||||
// Change Orientation before pack
|
||||
dock_box->set_orientation(Gtk::ORIENTATION_HORIZONTAL);
|
||||
icons_box->set_orientation(Gtk::ORIENTATION_HORIZONTAL);
|
||||
// Set the default size of scrolled window
|
||||
icons_sw->set_size_request(340, 52);
|
||||
icons_sw->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_NEVER);
|
||||
// Pack dock to the position
|
||||
dock_bottom->pack_start(*dock_box);
|
||||
break;
|
||||
default:
|
||||
dock_right->pack_start(*dock_box);
|
||||
}
|
||||
|
||||
// Set Dock or panel mode
|
||||
switch (mode1)
|
||||
{
|
||||
case DockMode::MODE_DOCK:
|
||||
dock_box->set_vexpand(false);
|
||||
// std::cout << "dock mode" << std::endl;
|
||||
break;
|
||||
case DockMode::MODE_PANEL:
|
||||
if(dock_pos == DockPos::POS_BOTTOM){
|
||||
dock_box->set_hexpand();
|
||||
dock_box->set_halign(Gtk::ALIGN_FILL);
|
||||
icons_sw->set_hexpand();
|
||||
}else{
|
||||
dock_box->set_vexpand();
|
||||
dock_box->set_valign(Gtk::ALIGN_FILL);
|
||||
icons_sw->set_vexpand();
|
||||
}
|
||||
// std::cout << "panel mode" << std::endl;
|
||||
break;
|
||||
}
|
||||
|
||||
show_all_children();
|
||||
}
|
||||
|
||||
void MyDock::set_dock_mode(DockMode mode){
|
||||
switch(mode){
|
||||
case DockMode::MODE_DOCK:
|
||||
set_vexpand(false);
|
||||
break;
|
||||
case DockMode::MODE_PANEL:
|
||||
set_vexpand();
|
||||
set_valign(Gtk::ALIGN_FILL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// void MyDock::set_dock_mode(DockMode mode){
|
||||
// switch(mode){
|
||||
// case DockMode::MODE_DOCK:
|
||||
// set_vexpand(false);
|
||||
// break;
|
||||
// case DockMode::MODE_PANEL:
|
||||
// set_vexpand();
|
||||
// set_valign(Gtk::ALIGN_FILL);
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
void MyDock::apply_style(Gtk::Widget &widget){
|
||||
// Set the style of dock widget
|
||||
void MyDock::apply_style(Gtk::Widget &widget)
|
||||
{
|
||||
auto style = widget.get_style_context();
|
||||
style->add_provider(provider,G_MAXUINT);
|
||||
style->add_provider(provider, G_MAXUINT);
|
||||
}
|
||||
|
||||
// Launchpad
|
||||
void MyDock::btnlaunch_clicked()
|
||||
{
|
||||
if (launchpad_shown)
|
||||
|
@ -143,6 +224,13 @@ void MyDock::mydock_init(Gtk::Window *window, Gtk::Image *background1)
|
|||
parent_win = window;
|
||||
}
|
||||
|
||||
/*
|
||||
Functions for execute outside apps
|
||||
padxx_clicked() for click in launchpad
|
||||
The first three functions for use in linux
|
||||
and the next three functions for windows
|
||||
*/
|
||||
|
||||
void MyDock::padaud_clicked()
|
||||
{
|
||||
// Start audacious app
|
||||
|
@ -206,7 +294,7 @@ void MyDock::padset_clicked()
|
|||
btnlaunch_clicked();
|
||||
}
|
||||
|
||||
//Signal Handlers for drawing app window
|
||||
// Signal Handlers for drawing app window
|
||||
|
||||
bool MyDock::draw_win_closed(GdkEventAny *event)
|
||||
{
|
||||
|
@ -215,7 +303,8 @@ bool MyDock::draw_win_closed(GdkEventAny *event)
|
|||
return true;
|
||||
}
|
||||
|
||||
void MyDock::draw_win_hide(){
|
||||
void MyDock::draw_win_hide()
|
||||
{
|
||||
btndraw->set_image_from_icon_name("drawing_app", Gtk::ICON_SIZE_DIALOG);
|
||||
draw_app.hide();
|
||||
}
|
||||
|
@ -285,49 +374,57 @@ void MyDock::padgame_clicked()
|
|||
|
||||
// Signal Handlers for game24 window
|
||||
|
||||
bool MyDock::game24_win_closed(GdkEventAny *event){
|
||||
btngame24->set_image_from_icon_name("24game",Gtk::ICON_SIZE_DIALOG);
|
||||
bool MyDock::game24_win_closed(GdkEventAny *event)
|
||||
{
|
||||
btngame24->set_image_from_icon_name("24game", Gtk::ICON_SIZE_DIALOG);
|
||||
game24_win->hide();
|
||||
return true;
|
||||
}
|
||||
|
||||
void MyDock::btngame24_clicked(){
|
||||
btngame24->set_image_from_icon_name("24game_running",Gtk::ICON_SIZE_DIALOG);
|
||||
void MyDock::btngame24_clicked()
|
||||
{
|
||||
btngame24->set_image_from_icon_name("24game_running", Gtk::ICON_SIZE_DIALOG);
|
||||
window_ctrl(*game24_win);
|
||||
}
|
||||
|
||||
void MyDock::padgame24_clicked(){
|
||||
btngame24->set_image_from_icon_name("24game_running",Gtk::ICON_SIZE_DIALOG);
|
||||
window_ctrl(*game24_win,false);
|
||||
void MyDock::padgame24_clicked()
|
||||
{
|
||||
btngame24->set_image_from_icon_name("24game_running", Gtk::ICON_SIZE_DIALOG);
|
||||
window_ctrl(*game24_win, false);
|
||||
btnlaunch_clicked();
|
||||
}
|
||||
|
||||
void MyDock::game24_win_hide(){
|
||||
btngame24->set_image_from_icon_name("24game",Gtk::ICON_SIZE_DIALOG);
|
||||
void MyDock::game24_win_hide()
|
||||
{
|
||||
btngame24->set_image_from_icon_name("24game", Gtk::ICON_SIZE_DIALOG);
|
||||
game24_win->hide();
|
||||
}
|
||||
|
||||
// Signal Handlers for Calc App
|
||||
|
||||
bool MyDock::calc_win_closed(GdkEventAny *event){
|
||||
btncalc->set_image_from_icon_name("calcapp",Gtk::ICON_SIZE_DIALOG);
|
||||
bool MyDock::calc_win_closed(GdkEventAny *event)
|
||||
{
|
||||
btncalc->set_image_from_icon_name("calcapp", Gtk::ICON_SIZE_DIALOG);
|
||||
calc_win->hide();
|
||||
return true;
|
||||
}
|
||||
|
||||
void MyDock::btncalc_clicked(){
|
||||
btncalc->set_image_from_icon_name("calcapp_running",Gtk::ICON_SIZE_DIALOG);
|
||||
void MyDock::btncalc_clicked()
|
||||
{
|
||||
btncalc->set_image_from_icon_name("calcapp_running", Gtk::ICON_SIZE_DIALOG);
|
||||
window_ctrl(*calc_win);
|
||||
}
|
||||
|
||||
void MyDock::padcalc_clicked(){
|
||||
btncalc->set_image_from_icon_name("calcapp_running",Gtk::ICON_SIZE_DIALOG);
|
||||
void MyDock::padcalc_clicked()
|
||||
{
|
||||
btncalc->set_image_from_icon_name("calcapp_running", Gtk::ICON_SIZE_DIALOG);
|
||||
window_ctrl(*calc_win);
|
||||
btnlaunch_clicked();
|
||||
}
|
||||
|
||||
void MyDock::calc_win_hide(){
|
||||
btncalc->set_image_from_icon_name("calcapp",Gtk::ICON_SIZE_DIALOG);
|
||||
void MyDock::calc_win_hide()
|
||||
{
|
||||
btncalc->set_image_from_icon_name("calcapp", Gtk::ICON_SIZE_DIALOG);
|
||||
calc_win->hide();
|
||||
}
|
||||
|
||||
|
@ -375,6 +472,28 @@ void MyDock::padedit_clicked()
|
|||
btnlaunch_clicked();
|
||||
}
|
||||
|
||||
// Signal Handler for minesweeper window
|
||||
|
||||
bool MyDock::mine_win_closed(GdkEventAny *event)
|
||||
{
|
||||
btnmine->set_image_from_icon_name("mines_app", Gtk::ICON_SIZE_DIALOG);
|
||||
mine_win.hide();
|
||||
return true;
|
||||
}
|
||||
|
||||
void MyDock::btnmine_clicked()
|
||||
{
|
||||
btnmine->set_image_from_icon_name("mines_app_running", Gtk::ICON_SIZE_DIALOG);
|
||||
window_ctrl(mine_win);
|
||||
}
|
||||
|
||||
void MyDock::padmine_clicked()
|
||||
{
|
||||
btnmine->set_image_from_icon_name("mines_app_running", Gtk::ICON_SIZE_DIALOG);
|
||||
window_ctrl(mine_win, false);
|
||||
btnlaunch_clicked();
|
||||
}
|
||||
|
||||
// Signal Handler for run window
|
||||
|
||||
void MyDock::btnrun_clicked()
|
||||
|
@ -385,9 +504,16 @@ void MyDock::btnrun_clicked()
|
|||
|
||||
void MyDock::window_ctrl(Gtk::Window &window, bool on_dock)
|
||||
{
|
||||
// Get the GdkWindow object to get the state of a window
|
||||
auto gdk_win = window.get_window();
|
||||
if (gdk_win)
|
||||
{
|
||||
/*
|
||||
The State of GdkWindow (GdkSurface for Gtk4)
|
||||
Gdk::WINDOW_STATE_WITHDRAWN: The window is not shown
|
||||
Gdk::WINDOW_STATE_ICONIFIED: The window is minimized
|
||||
the default mode for first launch
|
||||
*/
|
||||
auto state = gdk_win->get_state();
|
||||
switch (state)
|
||||
{
|
||||
|
@ -414,13 +540,27 @@ void MyDock::window_ctrl(Gtk::Window &window, bool on_dock)
|
|||
}
|
||||
}
|
||||
|
||||
MyDock *MyDock::create()
|
||||
MyDock *MyDock::create(DockMode mode)
|
||||
{
|
||||
MyDock *dock;
|
||||
|
||||
mode1 = mode;
|
||||
// Get Widget
|
||||
auto builder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/mydock.ui");
|
||||
builder->get_widget_derived("main_box", dock);
|
||||
|
||||
// switch (mode)
|
||||
// {
|
||||
// case DockMode::MODE_DOCK:
|
||||
// std::cout << "dock mode" << std::endl;
|
||||
// break;
|
||||
// case DockMode::MODE_PANEL:
|
||||
// std::cout << "panel mode" << std::endl;
|
||||
// break;
|
||||
// default:
|
||||
// std::cout << "undefined" << std::endl;
|
||||
// break;
|
||||
// }
|
||||
|
||||
return dock;
|
||||
}
|
||||
|
|
|
@ -11,27 +11,24 @@
|
|||
#include "TextEditor.hh"
|
||||
#include "Game24Win.hh"
|
||||
#include "CalcApp.hh"
|
||||
|
||||
enum class DockMode{
|
||||
MODE_DOCK,
|
||||
MODE_PANEL
|
||||
};
|
||||
#include "MineSweeper.hh"
|
||||
|
||||
class MyDock : public Gtk::Box
|
||||
{
|
||||
public:
|
||||
MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Glade);
|
||||
static MyDock *create();
|
||||
static MyDock *create(DockMode mode);
|
||||
void btnset_clicked();
|
||||
void mydock_init(Gtk::Window *window, Gtk::Image *background1);
|
||||
void set_dock_mode(DockMode mode);
|
||||
// void set_dock_mode(DockMode mode);
|
||||
|
||||
private:
|
||||
// Child widgets
|
||||
Gtk::Box *finder_box, *dock_box;
|
||||
Gtk::Box *finder_box, *dock_box, *dock_left, *dock_right, *dock_bottom, *icons_box;
|
||||
Gtk::Button *btnlaunch, *btndraw, *btnfiles, *btncalc,
|
||||
*btngame, *btnedit, *btnimage, *btnset, *btngame24;
|
||||
Gtk::Separator *separator_start, *separator_end;
|
||||
*btngame, *btnedit, *btnimage, *btnset, *btngame24, *btnmine;
|
||||
Gtk::Separator *separator_start, *separator_2, *separator_3, *separator_end;
|
||||
Gtk::ScrolledWindow *icons_sw;
|
||||
|
||||
// Finder
|
||||
MyFinder finder;
|
||||
|
@ -41,7 +38,7 @@ private:
|
|||
Gtk::Stack *launchpad_stack;
|
||||
Gtk::Grid *default_page, *launchpad_page, *apps_grid;
|
||||
Gtk::Button *padaud, *paddraw, *padfile, *padgedit, *padgame, *padset, *padcalc,
|
||||
*padimage, *padnote, *padedit, *padvlc, *padvlc_win32, *padrun, *padgame24;
|
||||
*padimage, *padnote, *padedit, *padvlc, *padvlc_win32, *padrun, *padgame24, *padmine;
|
||||
Gtk::Label label1;
|
||||
|
||||
// Window Preferences
|
||||
|
@ -95,6 +92,12 @@ private:
|
|||
void btnedit_clicked();
|
||||
void padedit_clicked();
|
||||
|
||||
// MineSweeper
|
||||
MineSweeper mine_win;
|
||||
bool mine_win_closed(GdkEventAny *event);
|
||||
void btnmine_clicked();
|
||||
void padmine_clicked();
|
||||
|
||||
// A Simple Runner
|
||||
GtkRunner runner1;
|
||||
|
||||
|
|
|
@ -10,7 +10,8 @@ MyPrefs::MyPrefs()
|
|||
views_box(Gtk::ORIENTATION_HORIZONTAL, 5),
|
||||
btnbox(Gtk::ORIENTATION_HORIZONTAL, 5),
|
||||
width(1024),
|
||||
height(576)
|
||||
height(576),
|
||||
dock_pos(DockPos::POS_LEFT)
|
||||
{
|
||||
/*Step 1: Initalize widget that without Gtk::Builder*/
|
||||
|
||||
|
@ -112,8 +113,13 @@ MyPrefs::MyPrefs()
|
|||
stackbuilder->get_widget("spin_width", spin_width);
|
||||
stackbuilder->get_widget("spin_height", spin_height);
|
||||
stackbuilder->get_widget("btnapply", btnapply);
|
||||
stackbuilder->get_widget("btnGet",btnGet);
|
||||
stackbuilder->get_widget("label_size",label_size);
|
||||
stackbuilder->get_widget("btnGet", btnGet);
|
||||
stackbuilder->get_widget("label_size", label_size);
|
||||
stackbuilder->get_widget("mode_check", mode_check);
|
||||
stackbuilder->get_widget("radio_left", radio_left);
|
||||
stackbuilder->get_widget("radio_right", radio_right);
|
||||
stackbuilder->get_widget("radio_bottom", radio_bottom);
|
||||
stackbuilder->get_widget("btnapply1", btnapply1);
|
||||
|
||||
// Initalize radio buttons
|
||||
radio_default->set_active();
|
||||
|
@ -122,11 +128,14 @@ MyPrefs::MyPrefs()
|
|||
|
||||
// Initalize other widgets
|
||||
btnapply->signal_clicked().connect(sigc::mem_fun(*this, &MyPrefs::btnapply_clicked));
|
||||
btnGet->signal_clicked().connect(sigc::mem_fun(*this,&MyPrefs::btnGet_clicked));
|
||||
btnGet->signal_clicked().connect(sigc::mem_fun(*this, &MyPrefs::btnGet_clicked));
|
||||
|
||||
// Initalize Dock Preferences
|
||||
btnapply1->signal_clicked().connect(sigc::mem_fun(*this, &MyPrefs::btnapply1_clicked));
|
||||
|
||||
// Initalize Label
|
||||
load_winsize_config();
|
||||
char * size_str = g_strdup_printf("Current Config: %d x %d", width, height);
|
||||
char *size_str = g_strdup_printf("Current Config: %d x %d", width, height);
|
||||
label_size->set_label(size_str);
|
||||
g_free(size_str);
|
||||
|
||||
|
@ -366,7 +375,8 @@ void MyPrefs::set_background_file()
|
|||
}
|
||||
|
||||
void MyPrefs::update_background_size()
|
||||
{}
|
||||
{
|
||||
}
|
||||
|
||||
void MyPrefs::set_background(Gtk::Image *back)
|
||||
{
|
||||
|
@ -383,6 +393,30 @@ void MyPrefs::radiobutton_toggled()
|
|||
btnGet->set_sensitive(!mode);
|
||||
}
|
||||
|
||||
void MyPrefs::save_config_file()
|
||||
{
|
||||
// Open the file for configs
|
||||
json data = json::parse(R"(
|
||||
{
|
||||
"height":1280,
|
||||
"width":720,
|
||||
"panel_mode":false,
|
||||
"position":0
|
||||
}
|
||||
)");
|
||||
std::fstream outfile;
|
||||
outfile.open("config.json", std::ios_base::out);
|
||||
if (outfile.is_open())
|
||||
{
|
||||
data["width"] = width;
|
||||
data["height"] = height;
|
||||
data["panel_mode"] = panel_mode;
|
||||
data["position"] = dock_pos;
|
||||
outfile << data;
|
||||
outfile.close();
|
||||
}
|
||||
}
|
||||
|
||||
void MyPrefs::btnapply_clicked()
|
||||
{
|
||||
// Get Config
|
||||
|
@ -419,41 +453,80 @@ void MyPrefs::btnapply_clicked()
|
|||
height = spin_height->get_value_as_int();
|
||||
}
|
||||
|
||||
// Open the file for configs
|
||||
json data = json::parse(R"(
|
||||
{
|
||||
"height":1280,
|
||||
"width":720
|
||||
}
|
||||
)");
|
||||
std::fstream outfile;
|
||||
outfile.open("config.json", std::ios_base::out);
|
||||
if (outfile.is_open())
|
||||
// Save the config to json file
|
||||
save_config_file();
|
||||
}
|
||||
|
||||
void MyPrefs::btnapply1_clicked()
|
||||
{
|
||||
// Whether panel mode is enabled
|
||||
panel_mode = mode_check->get_active();
|
||||
|
||||
// The dock position
|
||||
if (radio_left->get_active())
|
||||
{
|
||||
data["width"] = width;
|
||||
data["height"] = height;
|
||||
outfile<<data;
|
||||
outfile.close();
|
||||
dock_pos = DockPos::POS_LEFT;
|
||||
}
|
||||
if (radio_right->get_active())
|
||||
{
|
||||
dock_pos = DockPos::POS_RIGHT;
|
||||
}
|
||||
if (radio_bottom->get_active())
|
||||
{
|
||||
dock_pos = DockPos::POS_BOTTOM;
|
||||
}
|
||||
|
||||
// std::cout << dock_pos << std::endl;
|
||||
save_config_file();
|
||||
}
|
||||
|
||||
void MyPrefs::btnGet_clicked()
|
||||
{
|
||||
//Get Current Window Size
|
||||
// Get Current Window Size
|
||||
width = background1->get_width();
|
||||
height = background1->get_height();
|
||||
spin_width->set_value(width);
|
||||
spin_height->set_value(height);
|
||||
}
|
||||
|
||||
void MyPrefs::load_winsize_config(){
|
||||
DockPos MyPrefs::get_dock_pos(){
|
||||
// Get config for dock position
|
||||
return dock_pos;
|
||||
}
|
||||
|
||||
void MyPrefs::load_winsize_config()
|
||||
{
|
||||
// Read the config
|
||||
std::ifstream jsonfile("config.json");
|
||||
if(jsonfile.is_open()){
|
||||
if (jsonfile.is_open())
|
||||
{
|
||||
json data = json::parse(jsonfile);
|
||||
height = data["height"];
|
||||
width = data["width"];
|
||||
}else{
|
||||
panel_mode = data["panel_mode"];
|
||||
dock_pos = data["position"];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Default config
|
||||
height = 720;
|
||||
width = 1280;
|
||||
panel_mode = false;
|
||||
dock_pos = DockPos::POS_LEFT;
|
||||
}
|
||||
|
||||
// Load the config
|
||||
mode_check->set_active(panel_mode);
|
||||
switch (dock_pos)
|
||||
{
|
||||
case DockPos::POS_LEFT:
|
||||
radio_left->set_active();
|
||||
break;
|
||||
case DockPos::POS_RIGHT:
|
||||
radio_right->set_active();
|
||||
break;
|
||||
case DockPos::POS_BOTTOM:
|
||||
radio_bottom->set_active();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,17 @@
|
|||
|
||||
using json = nlohmann::json;
|
||||
|
||||
enum class DockMode{
|
||||
MODE_DOCK,
|
||||
MODE_PANEL
|
||||
};
|
||||
|
||||
enum class DockPos{
|
||||
POS_LEFT,
|
||||
POS_RIGHT,
|
||||
POS_BOTTOM
|
||||
};
|
||||
|
||||
class MyPrefs : public Gtk::Window
|
||||
{
|
||||
public:
|
||||
|
@ -14,6 +25,7 @@ public:
|
|||
void set_background(Gtk::Image *back);
|
||||
void load_winsize_config();
|
||||
void update_background_size();
|
||||
DockPos get_dock_pos();
|
||||
|
||||
protected:
|
||||
class ModelColumns : public Gtk::TreeModelColumnRecord
|
||||
|
@ -40,6 +52,8 @@ protected:
|
|||
private:
|
||||
// Background widget and properties
|
||||
int width, height;
|
||||
bool panel_mode;
|
||||
DockPos dock_pos;
|
||||
Gtk::Image *background1;
|
||||
std::string path;
|
||||
bool background_internal;
|
||||
|
@ -53,6 +67,11 @@ private:
|
|||
Gtk::Button *btnapply, *btnGet;
|
||||
Gtk::Label *label_size;
|
||||
|
||||
// Dock Preferences
|
||||
Gtk::Button *btnapply1;
|
||||
Gtk::CheckButton *mode_check;
|
||||
Gtk::RadioButton *radio_left, *radio_right, *radio_bottom;
|
||||
|
||||
// Child Widgets
|
||||
Gtk::TreeView folders_view, images_view;
|
||||
Gtk::ScrolledWindow sw_folders, sw_images;
|
||||
|
@ -69,28 +88,44 @@ private:
|
|||
bool icasecompare(const std::string &a, const std::string &b);
|
||||
|
||||
// Signal Handlers
|
||||
void save_config_file();
|
||||
|
||||
// Background page buttons
|
||||
void btnadd_clicked();
|
||||
void btnremove_clicked();
|
||||
|
||||
// Folder and images view
|
||||
void folders_view_changed();
|
||||
void images_view_changed();
|
||||
|
||||
// Default settings
|
||||
void default_folders_view();
|
||||
|
||||
// Update the background
|
||||
void update_images_view(std::string &folder_path);
|
||||
void set_background_internal(const char *const *data);
|
||||
void set_background_file();
|
||||
|
||||
// Resoulution page
|
||||
void radiobutton_toggled();
|
||||
void btnapply_clicked();
|
||||
void btnGet_clicked();
|
||||
|
||||
// Dock Preferences
|
||||
void btnapply1_clicked();
|
||||
};
|
||||
|
||||
//Read Config from file without use the MyPrefs class
|
||||
static inline void get_size_config(int &width, int &height){
|
||||
static inline void get_size_config(int &width, int &height, bool &panel_mode){
|
||||
std::ifstream jsonfile("config.json");
|
||||
if(jsonfile.is_open()){
|
||||
json data = json::parse(jsonfile);
|
||||
height = data["height"];
|
||||
width = data["width"];
|
||||
panel_mode = data["panel_mode"];
|
||||
}else{
|
||||
height = 720;
|
||||
width = 1280;
|
||||
panel_mode = false;
|
||||
}
|
||||
}
|
||||
|
|