Add gtk158 and gtk159
|
@ -0,0 +1,88 @@
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
cmake_minimum_required(VERSION 3.0.0)
|
||||||
|
project(gtk158_draw_gtk4 VERSION 1.0.0)
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../GCR_CMake/macros)
|
||||||
|
include(GlibCompileResourcesSupport)
|
||||||
|
|
||||||
|
include(CTest)
|
||||||
|
enable_testing()
|
||||||
|
|
||||||
|
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
|
||||||
|
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
|
||||||
|
|
||||||
|
include(CPack)
|
||||||
|
include_directories(.)
|
||||||
|
include_directories(..)
|
||||||
|
|
||||||
|
#Find PkgConfig to use gtkmm3
|
||||||
|
find_package (PkgConfig REQUIRED)
|
||||||
|
pkg_check_modules (GTKMM4 REQUIRED gtkmm-4.0)
|
||||||
|
include_directories (${GTKMM4_INCLUDE_DIRS})
|
||||||
|
link_directories (${GTKMM4_LIBRARY_DIRS})
|
||||||
|
|
||||||
|
#Find Gettext
|
||||||
|
# find_package (Gettext REQUIRED)
|
||||||
|
# set(PO_DIR ${CMAKE_BINARY_DIR}/po/zh_CN/LC_MESSAGES)
|
||||||
|
|
||||||
|
#Source files
|
||||||
|
set(SOURCE_FILE src/main.cc src/MineSweeper.cc src/InputBox.cc src/ScoresWin.cc)
|
||||||
|
|
||||||
|
#Compile Resource
|
||||||
|
|
||||||
|
set(RESOURCE_LIST
|
||||||
|
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
|
||||||
|
STRIPBLANKS minesweeper.ui
|
||||||
|
STRIPBLANKS win_input.ui
|
||||||
|
STRIPBLANKS scoreswin.ui
|
||||||
|
STRIPBLANKS mine_menu.xml)
|
||||||
|
|
||||||
|
compile_gresources(RESOURCE_FILE
|
||||||
|
XML_OUT
|
||||||
|
TYPE EMBED_C
|
||||||
|
RESOURCES ${RESOURCE_LIST}
|
||||||
|
PREFIX "/org/gtk/daleclack"
|
||||||
|
SOURCE_DIR ${PROJECT_SOURCE_DIR}/res)
|
||||||
|
|
||||||
|
# Add a custom target to the makefile. Now make builds our resource file.
|
||||||
|
# It depends on the output RESOURCE_FILE.
|
||||||
|
|
||||||
|
add_custom_target(resource ALL DEPENDS ${RESOURCE_FILE})
|
||||||
|
|
||||||
|
#For win32 platform,use rc resource and .ico icon
|
||||||
|
if(WIN32)
|
||||||
|
SET(CMAKE_RC_COMPILER windres)
|
||||||
|
set(app_WINRC ../icon.rc)
|
||||||
|
set_property(SOURCE ../icon.rc APPEND PROPERTY
|
||||||
|
OBJECT_DEPENDS ${PROJECT_SOURCE_DIR}/../icon.ico
|
||||||
|
)
|
||||||
|
add_executable(${PROJECT_NAME} WIN32 ${app_WINRC} ${SOURCE_FILE} ${RESOURCE_FILE})
|
||||||
|
add_custom_command( TARGET ${PROJECT_NAME}
|
||||||
|
COMMAND echo * > ${CMAKE_BINARY_DIR}/.gitignore
|
||||||
|
COMMAND echo **/* > ${CMAKE_BINARY_DIR}/.hgignore)
|
||||||
|
else()
|
||||||
|
add_executable(${PROJECT_NAME} ${SOURCE_FILE} ${RESOURCE_FILE})
|
||||||
|
add_custom_command( TARGET ${PROJECT_NAME}
|
||||||
|
COMMAND echo \"*\" > ${CMAKE_BINARY_DIR}/.gitignore
|
||||||
|
COMMAND echo \"**/*\" > ${CMAKE_BINARY_DIR}/.hgignore)
|
||||||
|
endif(WIN32)
|
||||||
|
|
||||||
|
#Add command to generate .gitignore and .mo files
|
||||||
|
# add_custom_command( TARGET ${PROJECT_NAME}
|
||||||
|
# COMMAND mkdir -p ${PO_DIR}
|
||||||
|
# COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} ${CMAKE_SOURCE_DIR}/po/zh_CN.po -o ${PO_DIR}/${PROJECT_NAME}.mo)
|
||||||
|
|
||||||
|
SET (CMAKE_EXTRA_CXX_FLAGS ${GTKMM4_CFLAGS_OTHER})
|
||||||
|
target_link_libraries (${PROJECT_NAME} ${GTKMM4_LIBRARIES} -lpthread)
|
|
@ -0,0 +1,89 @@
|
||||||
|
{
|
||||||
|
"files.associations": {
|
||||||
|
"cctype": "cpp",
|
||||||
|
"clocale": "cpp",
|
||||||
|
"cmath": "cpp",
|
||||||
|
"cstdarg": "cpp",
|
||||||
|
"cstddef": "cpp",
|
||||||
|
"cstdio": "cpp",
|
||||||
|
"cstdlib": "cpp",
|
||||||
|
"cstring": "cpp",
|
||||||
|
"ctime": "cpp",
|
||||||
|
"cwchar": "cpp",
|
||||||
|
"cwctype": "cpp",
|
||||||
|
"array": "cpp",
|
||||||
|
"atomic": "cpp",
|
||||||
|
"bit": "cpp",
|
||||||
|
"*.tcc": "cpp",
|
||||||
|
"bitset": "cpp",
|
||||||
|
"chrono": "cpp",
|
||||||
|
"codecvt": "cpp",
|
||||||
|
"compare": "cpp",
|
||||||
|
"concepts": "cpp",
|
||||||
|
"condition_variable": "cpp",
|
||||||
|
"cstdint": "cpp",
|
||||||
|
"deque": "cpp",
|
||||||
|
"list": "cpp",
|
||||||
|
"map": "cpp",
|
||||||
|
"set": "cpp",
|
||||||
|
"string": "cpp",
|
||||||
|
"unordered_map": "cpp",
|
||||||
|
"unordered_set": "cpp",
|
||||||
|
"vector": "cpp",
|
||||||
|
"exception": "cpp",
|
||||||
|
"algorithm": "cpp",
|
||||||
|
"functional": "cpp",
|
||||||
|
"iterator": "cpp",
|
||||||
|
"memory": "cpp",
|
||||||
|
"memory_resource": "cpp",
|
||||||
|
"numeric": "cpp",
|
||||||
|
"optional": "cpp",
|
||||||
|
"random": "cpp",
|
||||||
|
"ratio": "cpp",
|
||||||
|
"string_view": "cpp",
|
||||||
|
"system_error": "cpp",
|
||||||
|
"tuple": "cpp",
|
||||||
|
"type_traits": "cpp",
|
||||||
|
"utility": "cpp",
|
||||||
|
"fstream": "cpp",
|
||||||
|
"initializer_list": "cpp",
|
||||||
|
"iomanip": "cpp",
|
||||||
|
"iosfwd": "cpp",
|
||||||
|
"iostream": "cpp",
|
||||||
|
"istream": "cpp",
|
||||||
|
"limits": "cpp",
|
||||||
|
"mutex": "cpp",
|
||||||
|
"new": "cpp",
|
||||||
|
"numbers": "cpp",
|
||||||
|
"ostream": "cpp",
|
||||||
|
"semaphore": "cpp",
|
||||||
|
"sstream": "cpp",
|
||||||
|
"stdexcept": "cpp",
|
||||||
|
"stop_token": "cpp",
|
||||||
|
"streambuf": "cpp",
|
||||||
|
"thread": "cpp",
|
||||||
|
"cinttypes": "cpp",
|
||||||
|
"typeinfo": "cpp",
|
||||||
|
"valarray": "cpp",
|
||||||
|
"variant": "cpp",
|
||||||
|
"__bit_reference": "cpp",
|
||||||
|
"__bits": "cpp",
|
||||||
|
"__config": "cpp",
|
||||||
|
"__debug": "cpp",
|
||||||
|
"__errc": "cpp",
|
||||||
|
"__hash_table": "cpp",
|
||||||
|
"__locale": "cpp",
|
||||||
|
"__mutex_base": "cpp",
|
||||||
|
"__node_handle": "cpp",
|
||||||
|
"__split_buffer": "cpp",
|
||||||
|
"__threading_support": "cpp",
|
||||||
|
"__tree": "cpp",
|
||||||
|
"__tuple": "cpp",
|
||||||
|
"__verbose_abort": "cpp",
|
||||||
|
"ios": "cpp",
|
||||||
|
"locale": "cpp",
|
||||||
|
"queue": "cpp",
|
||||||
|
"stack": "cpp"
|
||||||
|
},
|
||||||
|
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
|
||||||
|
}
|
|
@ -0,0 +1,88 @@
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
cmake_minimum_required(VERSION 3.0.0)
|
||||||
|
project(gtk142_minesweeper3 VERSION 1.0.0)
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../GCR_CMake/macros)
|
||||||
|
include(GlibCompileResourcesSupport)
|
||||||
|
|
||||||
|
include(CTest)
|
||||||
|
enable_testing()
|
||||||
|
|
||||||
|
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
|
||||||
|
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
|
||||||
|
|
||||||
|
include(CPack)
|
||||||
|
include_directories(.)
|
||||||
|
include_directories(..)
|
||||||
|
|
||||||
|
#Find PkgConfig to use gtkmm3
|
||||||
|
find_package (PkgConfig REQUIRED)
|
||||||
|
pkg_check_modules (GTKMM4 REQUIRED gtkmm-4.0)
|
||||||
|
include_directories (${GTKMM4_INCLUDE_DIRS})
|
||||||
|
link_directories (${GTKMM4_LIBRARY_DIRS})
|
||||||
|
|
||||||
|
#Find Gettext
|
||||||
|
# find_package (Gettext REQUIRED)
|
||||||
|
# set(PO_DIR ${CMAKE_BINARY_DIR}/po/zh_CN/LC_MESSAGES)
|
||||||
|
|
||||||
|
#Source files
|
||||||
|
set(SOURCE_FILE src/main.cc src/MineSweeper.cc src/InputBox.cc src/ScoresWin.cc)
|
||||||
|
|
||||||
|
#Compile Resource
|
||||||
|
|
||||||
|
set(RESOURCE_LIST
|
||||||
|
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
|
||||||
|
STRIPBLANKS minesweeper.ui
|
||||||
|
STRIPBLANKS win_input.ui
|
||||||
|
STRIPBLANKS scoreswin.ui
|
||||||
|
STRIPBLANKS mine_menu.xml)
|
||||||
|
|
||||||
|
compile_gresources(RESOURCE_FILE
|
||||||
|
XML_OUT
|
||||||
|
TYPE EMBED_C
|
||||||
|
RESOURCES ${RESOURCE_LIST}
|
||||||
|
PREFIX "/org/gtk/daleclack"
|
||||||
|
SOURCE_DIR ${PROJECT_SOURCE_DIR}/res)
|
||||||
|
|
||||||
|
# Add a custom target to the makefile. Now make builds our resource file.
|
||||||
|
# It depends on the output RESOURCE_FILE.
|
||||||
|
|
||||||
|
add_custom_target(resource ALL DEPENDS ${RESOURCE_FILE})
|
||||||
|
|
||||||
|
#For win32 platform,use rc resource and .ico icon
|
||||||
|
if(WIN32)
|
||||||
|
SET(CMAKE_RC_COMPILER windres)
|
||||||
|
set(app_WINRC ../icon.rc)
|
||||||
|
set_property(SOURCE ../icon.rc APPEND PROPERTY
|
||||||
|
OBJECT_DEPENDS ${PROJECT_SOURCE_DIR}/../icon.ico
|
||||||
|
)
|
||||||
|
add_executable(${PROJECT_NAME} WIN32 ${app_WINRC} ${SOURCE_FILE} ${RESOURCE_FILE})
|
||||||
|
add_custom_command( TARGET ${PROJECT_NAME}
|
||||||
|
COMMAND echo * > ${CMAKE_BINARY_DIR}/.gitignore
|
||||||
|
COMMAND echo **/* > ${CMAKE_BINARY_DIR}/.hgignore)
|
||||||
|
else()
|
||||||
|
add_executable(${PROJECT_NAME} ${SOURCE_FILE} ${RESOURCE_FILE})
|
||||||
|
add_custom_command( TARGET ${PROJECT_NAME}
|
||||||
|
COMMAND echo \"*\" > ${CMAKE_BINARY_DIR}/.gitignore
|
||||||
|
COMMAND echo \"**/*\" > ${CMAKE_BINARY_DIR}/.hgignore)
|
||||||
|
endif(WIN32)
|
||||||
|
|
||||||
|
#Add command to generate .gitignore and .mo files
|
||||||
|
# add_custom_command( TARGET ${PROJECT_NAME}
|
||||||
|
# COMMAND mkdir -p ${PO_DIR}
|
||||||
|
# COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} ${CMAKE_SOURCE_DIR}/po/zh_CN.po -o ${PO_DIR}/${PROJECT_NAME}.mo)
|
||||||
|
|
||||||
|
SET (CMAKE_EXTRA_CXX_FLAGS ${GTKMM4_CFLAGS_OTHER})
|
||||||
|
target_link_libraries (${PROJECT_NAME} ${GTKMM4_LIBRARIES} -lpthread)
|
|
@ -0,0 +1 @@
|
||||||
|
*.ui
|
|
@ -0,0 +1,58 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||||
|
<!DOCTYPE cambalache-project SYSTEM "cambalache-project.dtd">
|
||||||
|
<cambalache-project version="0.11.2" target_tk="gtk+-3.0">
|
||||||
|
<ui>
|
||||||
|
(1,None,"minesweeper.ui","minesweeper.ui",None,None,None,None,None,None,None),
|
||||||
|
(2,None,None,"win_input.ui",None,None,None,None,None,None,None),
|
||||||
|
(3,None,None,"scoreswin.ui",None,None,None,None,None,None,None)
|
||||||
|
</ui>
|
||||||
|
<object>
|
||||||
|
(1,1,"GtkWindow","minesweeper",None,None,None,None,None,None),
|
||||||
|
(1,2,"GtkStackSwitcher",None,1,None,"titlebar",None,-1,None),
|
||||||
|
(1,3,"GtkStack","main_stack",1,None,None,None,1,None),
|
||||||
|
(1,4,"GtkGrid","start_page",3,None,None,None,None,None),
|
||||||
|
(1,5,"GtkBox","main_page",3,None,None,None,1,None),
|
||||||
|
(1,6,"GtkGrid","custom_page",3,None,None,None,2,None),
|
||||||
|
(2,1,"GtkDialog",None,None,None,None,None,None,None),
|
||||||
|
(3,1,"GtkWindow","scores_win",None,None,None,None,None,None),
|
||||||
|
(3,2,"GtkBox",None,1,None,None,None,-1,None),
|
||||||
|
(3,3,"GtkBox","btn_box",2,None,None,None,2,None),
|
||||||
|
(3,4,"GtkTreeView","scores_view",2,None,None,None,1,None),
|
||||||
|
(3,5,"GtkButton","btnclose",3,None,None,None,2,None),
|
||||||
|
(3,6,"GtkLabel",None,3,None,None,None,1,None)
|
||||||
|
</object>
|
||||||
|
<object_property>
|
||||||
|
(1,1,"GtkContainer","resize-mode","queue",None,None,None,None,None),
|
||||||
|
(1,1,"GtkWindow","default-height","400",None,None,None,None,None),
|
||||||
|
(1,1,"GtkWindow","default-width","700",None,None,None,None,None),
|
||||||
|
(1,3,"GtkStack","transition-type","slide-right",None,None,None,None,None),
|
||||||
|
(1,3,"GtkWidget","halign","baseline",None,None,None,None,None),
|
||||||
|
(1,4,"GtkGrid","column-homogeneous","True",None,None,None,None,None),
|
||||||
|
(1,4,"GtkGrid","column-spacing","2",None,None,None,None,None),
|
||||||
|
(1,4,"GtkGrid","row-homogeneous","True",None,None,None,None,None),
|
||||||
|
(1,4,"GtkWidget","halign","center",None,None,None,None,None),
|
||||||
|
(1,4,"GtkWidget","valign","center",None,None,None,None,None),
|
||||||
|
(1,5,"GtkOrientable","orientation","vertical",None,None,None,None,None),
|
||||||
|
(2,1,"GtkWidget","expand","True",None,None,None,None,None),
|
||||||
|
(2,1,"GtkWidget","height-request","200",None,None,None,None,None),
|
||||||
|
(2,1,"GtkWidget","margin-start","3",None,None,None,None,None),
|
||||||
|
(2,1,"GtkWidget","width-request","400",None,None,None,None,None),
|
||||||
|
(2,1,"GtkWindow","gravity","center",None,None,None,None,None),
|
||||||
|
(3,2,"GtkOrientable","orientation","vertical",None,None,None,None,None),
|
||||||
|
(3,3,"GtkWidget","height-request","3",None,None,None,None,None),
|
||||||
|
(3,4,"GtkWidget","height-request","300",None,None,None,None,None),
|
||||||
|
(3,4,"GtkWidget","valign","start",None,None,None,None,None),
|
||||||
|
(3,4,"GtkWidget","width-request","400",None,None,None,None,None),
|
||||||
|
(3,5,"GtkButton","label","Close",None,None,None,None,None),
|
||||||
|
(3,6,"GtkLabel","label"," ",None,None,None,None,None),
|
||||||
|
(3,6,"GtkWidget","hexpand","True",None,None,None,None,None)
|
||||||
|
</object_property>
|
||||||
|
<object_layout_property>
|
||||||
|
(3,2,3,"GtkBoxLayoutChild","fill","False",None,None,None,None),
|
||||||
|
(3,2,3,"GtkBoxLayoutChild","position","2",None,None,None,None),
|
||||||
|
(3,2,4,"GtkBoxLayoutChild","position","1",None,None,None,None),
|
||||||
|
(3,3,5,"GtkBoxLayoutChild","position","2",None,None,None,None),
|
||||||
|
(3,3,6,"GtkBoxLayoutChild","fill","False",None,None,None,None),
|
||||||
|
(3,3,6,"GtkBoxLayoutChild","position","1",None,None,None,None)
|
||||||
|
</object_layout_property>
|
||||||
|
</cambalache-project>
|
|
@ -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,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>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface>
|
||||||
|
<requires lib="gtk" version="4.0"/>
|
||||||
|
<object class="GtkWindow" id="minesweeper">
|
||||||
|
<property name="default-height">400</property>
|
||||||
|
<property name="default-width">700</property>
|
||||||
|
<child type="titlebar">
|
||||||
|
<object class="GtkStackSwitcher">
|
||||||
|
<property name="visible">0</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="child">
|
||||||
|
<object class="GtkStack" id="main_stack">
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="halign">baseline</property>
|
||||||
|
<property name="transition-type">slide-right</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkGrid" id="start_page">
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="column-homogeneous">1</property>
|
||||||
|
<property name="column-spacing">2</property>
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="row-homogeneous">1</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="main_page">
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkGrid" id="custom_page">
|
||||||
|
<property name="visible">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</interface>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface>
|
||||||
|
<requires lib="gtk" version="4.0"/>
|
||||||
|
<object class="GtkWindow" id="scores_win">
|
||||||
|
<property name="child">
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkTreeView" id="scores_view">
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="width-request">400</property>
|
||||||
|
<property name="height-request">300</property>
|
||||||
|
<property name="valign">start</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="btn_box">
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="height-request">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<property name="label"> </property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="btnclose">
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="label">Close</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</interface>
|
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface>
|
||||||
|
<requires lib="gtk" version="4.0"/>
|
||||||
|
<object class="GtkDialog" id="dialog">
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="height-request">150</property>
|
||||||
|
<child internal-child="content_area">
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="visible">1</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>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<property name="vexpand">1</property>
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="main_box">
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<property name="vexpand">1</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="label" translatable="1">Input Name:</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkEntry" id="entry_name">
|
||||||
|
<property name="focusable">1</property>
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="check_scores">
|
||||||
|
<property name="label" translatable="1">Show Scores Window</property>
|
||||||
|
<property name="focusable">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<action-widgets>
|
||||||
|
<action-widget response="-5">btn_ok</action-widget>
|
||||||
|
<action-widget response="-6">btn_cancel</action-widget>
|
||||||
|
</action-widgets>
|
||||||
|
<child internal-child="action_area">
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="btn_ok">
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<property name="label" translatable="1">OK</property>
|
||||||
|
<property name="focusable">1</property>
|
||||||
|
<property name="receives-default">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="btn_cancel">
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<property name="label" translatable="1">Cancel</property>
|
||||||
|
<property name="focusable">1</property>
|
||||||
|
<property name="receives-default">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</interface>
|
|
@ -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
|
||||||
|
entry_name = ref_builder->get_widget<Gtk::Entry>("entry_name");
|
||||||
|
check_scores = ref_builder->get_widget<Gtk::CheckButton>("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::ResponseType::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::ResponseType::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;
|
||||||
|
dialog = Gtk::Builder::get_widget_derived<InputBox>(builder, "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,302 @@
|
||||||
|
#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
|
||||||
|
set_title("MineSweeper");
|
||||||
|
set_titlebar(header);
|
||||||
|
header.set_show_title_buttons();
|
||||||
|
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<Gio::MenuModel>("mine_menu");
|
||||||
|
popover1.set_menu_model(object);
|
||||||
|
// popover1.show();
|
||||||
|
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");
|
||||||
|
btnpause.set_label("Pause");
|
||||||
|
btnshow.set_label("Show All");
|
||||||
|
btnexit.set_label("Exit");
|
||||||
|
btn_box.append(btnstart);
|
||||||
|
btn_box.append(btnpause);
|
||||||
|
btn_box.append(btnshow);
|
||||||
|
btn_box.append(btnexit);
|
||||||
|
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.append(status_label);
|
||||||
|
main_box.append(mine_grid);
|
||||||
|
main_box.append(btn_box);
|
||||||
|
|
||||||
|
// 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
|
||||||
|
set_child(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_has_frame();
|
||||||
|
cell[i * 7 + j].set_image_from_icon_name("", Gtk::IconSize::LARGE);
|
||||||
|
// 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;
|
||||||
|
game_status = GameStatus::Running;
|
||||||
|
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_has_frame();
|
||||||
|
cell[i * width + j].x = j;
|
||||||
|
cell[i * width + j].y = i;
|
||||||
|
cell[i * width + j].cleared = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mine_grid.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MineSweeper::pause_game(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
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::IconSize::LARGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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::IconSize::LARGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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_has_frame(false);
|
||||||
|
if (game_status == GameStatus::Running && !cell1->cleared)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// If get mine, the game will end now
|
||||||
|
if (cell1->has_mine)
|
||||||
|
{
|
||||||
|
// Set game to stop
|
||||||
|
// winned = false;
|
||||||
|
game_status = GameStatus::Ended;
|
||||||
|
cell1->cleared = true;
|
||||||
|
cell1->set_image_from_icon_name("exploded", Gtk::IconSize::LARGE);
|
||||||
|
|
||||||
|
// 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::IconSize::LARGE);
|
||||||
|
}
|
||||||
|
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::IconSize::LARGE);
|
||||||
|
g_free(label);
|
||||||
|
}
|
||||||
|
|
||||||
|
// make the cell without mines cleared
|
||||||
|
cell[pos_y * 7 + pos_x].set_has_frame(false);
|
||||||
|
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!");
|
||||||
|
game_status = GameStatus::Winned;
|
||||||
|
mytimer.disconnect();
|
||||||
|
|
||||||
|
// Save the time of game
|
||||||
|
input_dialog->set_game_time(timer_count);
|
||||||
|
input_dialog->show();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <gtkmm.h>
|
||||||
|
#include "InputBox.hh"
|
||||||
|
#include "ScoresWin.hh"
|
||||||
|
|
||||||
|
// The status of the minesweeper game
|
||||||
|
enum class GameStatus
|
||||||
|
{
|
||||||
|
Running,
|
||||||
|
Winned,
|
||||||
|
Ended,
|
||||||
|
Paused
|
||||||
|
};
|
||||||
|
|
||||||
|
// The cell of the minesweeper game,
|
||||||
|
// and the mines is under the cell
|
||||||
|
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
|
||||||
|
mines_around = 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Main class
|
||||||
|
class MineSweeper : public Gtk::ApplicationWindow
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MineSweeper();
|
||||||
|
~MineSweeper();
|
||||||
|
|
||||||
|
private:
|
||||||
|
// HeaderBar
|
||||||
|
Gtk::HeaderBar header;
|
||||||
|
Gtk::MenuButton menu_btn;
|
||||||
|
Gtk::PopoverMenu popover1;
|
||||||
|
|
||||||
|
// Child widgets
|
||||||
|
Gtk::Grid mine_grid;
|
||||||
|
Gtk::Label status_label;
|
||||||
|
Gtk::Box main_box, btn_box;
|
||||||
|
Gtk::Button btnstart, btnpause, btnshow, btnexit;
|
||||||
|
|
||||||
|
// The cell to place mines
|
||||||
|
MineCell *cell;
|
||||||
|
GameStatus game_status; // Use enum class for the status of game
|
||||||
|
// 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 pause_game(); // Pause or continue the game
|
||||||
|
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
|
||||||
|
};
|
|
@ -0,0 +1,80 @@
|
||||||
|
#include "ScoresWin.hh"
|
||||||
|
|
||||||
|
ScoresWin::ScoresWin(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Glade)
|
||||||
|
: Gtk::Window(cobject),
|
||||||
|
ref_builder(ref_Glade)
|
||||||
|
{
|
||||||
|
// Get Widgets
|
||||||
|
btnclose = ref_builder->get_widget<Gtk::Button>("btnclose");
|
||||||
|
tree_view = ref_builder->get_widget<Gtk::TreeView>("scores_view");
|
||||||
|
btnclose->signal_clicked().connect(sigc::mem_fun(*this, &ScoresWin::hide));
|
||||||
|
|
||||||
|
// Create the list store
|
||||||
|
store = Gtk::ListStore::create(column1);
|
||||||
|
store->set_sort_column(column1.win_time, Gtk::SortType::ASCENDING);
|
||||||
|
store->set_sort_func(column1.win_time, sigc::mem_fun(*this, &ScoresWin::sort_func));
|
||||||
|
// store->set_default_sort_func(sigc::mem_fun(*this, &ScoresWin::sort_func));
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
int ScoresWin::sort_func(const Gtk::TreeModel::const_iterator &iter1, const Gtk::TreeModel::const_iterator &iter2)
|
||||||
|
{
|
||||||
|
// Sort by the game time
|
||||||
|
auto row1 = *iter1;
|
||||||
|
auto row2 = *iter2;
|
||||||
|
if (row1[column1.win_time] < row2[column1.win_time])
|
||||||
|
{
|
||||||
|
// g_print("test1\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (row1[column1.win_time] == row2[column1.win_time])
|
||||||
|
{
|
||||||
|
// g_print("test2\n");
|
||||||
|
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);
|
||||||
|
main_win = Gtk::Builder::get_widget_derived<ScoresWin>(builder, "scores_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::const_iterator &iter1, const Gtk::TreeModel::const_iterator &iter2);
|
||||||
|
};
|
|
@ -0,0 +1,7 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "../json_nlohmann/json.hpp"
|
||||||
|
#include <fstream>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
using json = nlohmann::json;
|
|
@ -0,0 +1,8 @@
|
||||||
|
#include "MineSweeper.hh"
|
||||||
|
|
||||||
|
int main(int argc, char **argv){
|
||||||
|
// Create a application and run
|
||||||
|
auto app = Gtk::Application::create("org.gtk.daleclack");
|
||||||
|
|
||||||
|
return app->make_window_and_run<MineSweeper>(argc,argv);
|
||||||
|
}
|