Compare commits
19 commits
4deb3ebb58
...
961634e685
Author | SHA1 | Date | |
---|---|---|---|
|
961634e685 | ||
|
3ce505826e | ||
|
d082812426 | ||
|
d3561e0e77 | ||
|
a452aba812 | ||
|
1477ee275e | ||
|
a54b87c722 | ||
|
dbba3af299 | ||
|
18b4171e7f | ||
|
24ff063652 | ||
|
f919ff690e | ||
|
4126d48c78 | ||
|
0696750457 | ||
|
7593aaed4c | ||
|
1d3ffc4e1d | ||
|
2e67242e92 | ||
|
48e24c2021 | ||
|
80252696c8 | ||
|
5438388789 |
7
.gitignore
vendored
|
@ -15,3 +15,10 @@
|
|||
/po/ru.po
|
||||
/tests/individually-importing/*.py
|
||||
/tests/unit-generated/*.py
|
||||
|
||||
# output of min card actions
|
||||
# mask out folder/archives
|
||||
PySolFC-Cardsets--Minimal-2.0/
|
||||
PySolFC-Cardsets--Minimal-2.0.*
|
||||
PySolFC-Cardsets-2.0/
|
||||
PySolFC-Cardsets-2.0.*
|
||||
|
|
|
@ -37,6 +37,7 @@ before_install:
|
|||
- if test "$TRAVIS_OS_NAME" = "osx" ; then export CPPFLAGS="$CPPFLAGS -I$(brew --prefix openssl)/include" PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:$PKG_CONFIG_PATH" LDFLAGS="$LDFLAGS -L$(brew --prefix openssl)/lib" ;fi
|
||||
- if test "$TRAVIS_OS_NAME" = "osx" ; then wget --content-disposition https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/minimal/PySolFC-Cardsets--Minimal-2.0.tar.xz/download && tar xJf PySolFC-Cardsets--Minimal-2.0.tar.xz && mv PySolFC-Cardsets--Minimal-2.0/cardset-* data ; fi
|
||||
install:
|
||||
- sudo cpanm --notest Capture::Tiny
|
||||
- sudo cpanm Code::TidyAll::Plugin::Flake8 Perl::Tidy Test::Code::TidyAll Test::Differences Test::TrailingSpace
|
||||
- export PY_MODS='pycotap random2 six'
|
||||
- "`which python3` -m pip install --upgrade flake8 flake8-import-order $PY_MODS"
|
||||
|
|
37
AUTHORS
|
@ -1,37 +0,0 @@
|
|||
Main Authors
|
||||
============
|
||||
|
||||
Markus Franz Xaver Johannes Oberhumer <markus@oberhumer.com>
|
||||
author of PySol
|
||||
T. Kirk
|
||||
author of Ultrasol
|
||||
Skomoroh <skomoroh@users.sourceforge.net>
|
||||
author of PySolFC
|
||||
Brian Lenihan <brianl@users.sourceforge.net>
|
||||
macOS package maintainer
|
||||
Shlomi Fish ( http://www.shlomifish.org/ )
|
||||
Continued PySolFC maintenance, port to python 3, test suite
|
||||
(Note: he places all his changes under the MIT/Expat licence).
|
||||
https://github.com/lufebe16
|
||||
Added the Kivy toolkit
|
||||
Roderik Ploszek ( https://github.com/Programator2 )
|
||||
Fixes and enhancements
|
||||
|
||||
Games contributors
|
||||
==================
|
||||
|
||||
Mark Andrews
|
||||
Galen Brooks <galen@nine.com>
|
||||
Andrew Csillag <drew_csillag@geocities.com>
|
||||
Michael Foord
|
||||
Matthew Hohlfeld <hohlfeld@cs.ucsd.edu>
|
||||
Nicola Larosa
|
||||
John Stoneham <obijohn99@aol.com>
|
||||
David Svoboda <svoboda@users.sourceforge.net>
|
||||
|
||||
|
||||
Translations
|
||||
============
|
||||
|
||||
Holger Schäkel <Holger@Schaekel-row.de> (de)
|
||||
Jerzy Trzeciak <artusek@wp.pl> (pl)
|
42
AUTHORS.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
Main Authors
|
||||
============
|
||||
|
||||
* Markus Franz Xaver Johannes Oberhumer https://www.oberhumer.com/
|
||||
* Author of PySol
|
||||
* T. Kirk
|
||||
* Author of Ultrasol
|
||||
* [Skomoroh](https://sourceforge.net/u/skomoroh/profile/)
|
||||
* Author of PySolFC
|
||||
* [Brian Lenihan](https://sourceforge.net/u/brianl/profile/)
|
||||
* macOS package maintainer
|
||||
* [Shlomi Fish](https://www.shlomifish.org/)
|
||||
* Continued PySolFC maintenance, port to python 3, test suite (Note: he places all his changes under the Expat licence).
|
||||
* https://github.com/lufebe16
|
||||
* Added the Kivy toolkit
|
||||
* [Roderik Ploszek](https://github.com/Programator2)
|
||||
* Fixes and enhancements
|
||||
|
||||
Games contributors
|
||||
==================
|
||||
|
||||
* Mark Andrews
|
||||
* Galen Brooks <galen@nine.com>
|
||||
* Andrew Csillag <drew_csillag@geocities.com>
|
||||
* Michael Foord
|
||||
* Matthew Hohlfeld <hohlfeld@cs.ucsd.edu>
|
||||
* Nicola Larosa
|
||||
* John Stoneham <obijohn99@aol.com>
|
||||
* David Svoboda <svoboda@users.sourceforge.net>
|
||||
|
||||
|
||||
Enhancements
|
||||
============
|
||||
|
||||
* [ghostofiht](https://github.com/ghostofiht) - Contributed a new logo design.
|
||||
* [Trueno font](https://fontlibrary.org/en/font/trueno) under the [OFL](https://en.wikipedia.org/wiki/SIL_Open_Font_License) by [Julieta Ulanovsky](http://www.zkysky.com.ar/) - used in the logo.
|
||||
|
||||
Translations
|
||||
============
|
||||
|
||||
* Holger Schäkel <Holger@Schaekel-row.de> (de)
|
||||
* Jerzy Trzeciak <artusek@wp.pl> (pl)
|
111
NEWS.asciidoc
Normal file
|
@ -0,0 +1,111 @@
|
|||
[[news]]
|
||||
=== News
|
||||
|
||||
* _7 April, 2019:_ There is a new stable release
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-2.6.3/[PySolFC
|
||||
v2.6.3]. New in this release:
|
||||
** Compatibility with Pillow 6.x - https://github.com/shlomif/PySolFC/issues/108
|
||||
** Restore the "Save games geometry" feature - https://github.com/shlomif/PySolFC/issues/84
|
||||
** Added a NEWS.asciidoc file.
|
||||
* _4 March, 2019:_ There is a new stable release
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-2.6.2/[PySolFC
|
||||
v2.6.2]. New in this release:
|
||||
** Fixes for the Windows and macOS packages.
|
||||
** Forbid illegal moves in Spider and some other variants.
|
||||
* _14 February, 2019:_ There is a new stable release
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-2.6.0/[PySolFC
|
||||
v2.6.0]. New in this release:
|
||||
** Support for solving
|
||||
https://en.wikipedia.org/wiki/Golf_(patience)[Golf] using
|
||||
https://github.com/shlomif/black-hole-solitaire[a solver]
|
||||
** An untested macOS package (we need testers)
|
||||
** A https://sourceforge.net/p/pysolfc/bugs/31/[bug] fix
|
||||
** Ability to run the test suite without python 2.x and/or pygtk
|
||||
** Code cleanups.
|
||||
* _23 June, 2018:_ There is a new stable release
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-2.4.0/[PySolFC
|
||||
v2.4.0]. New in this release:
|
||||
** The Windows installer now includes the revitalised PySol-music
|
||||
package. For more info, see
|
||||
https://github.com/shlomif/PySolFC/issues/82[this bug].
|
||||
** Many improvements to the test suite and the board import
|
||||
functionality.
|
||||
** Some bug fixes.
|
||||
* _16 April, 2018:_ There is a new stable release
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-2.2.0/[PySolFC
|
||||
v2.2.0]. New in this release:
|
||||
** The Microsoft Windows binary installer now contains and supports the
|
||||
solver for Freecell and other games.
|
||||
** Many bug fixes.
|
||||
* _31 March, 2018:_ There is a new beta release
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-2.1/[PySolFC
|
||||
v2.1.4]. New in this release:
|
||||
** We now provide a Microsoft Windows binary installer again, thanks to
|
||||
the great work of https://github.com/Programator2[Roderik Ploszek]. Note
|
||||
that the solvers (for FreeCell/etc.) are not installed as part of it
|
||||
yet, but they are available separately.
|
||||
** https://github.com/shlomif/pysol-sound-server[pysol-sound-server] was
|
||||
updated to support Python 3.x.
|
||||
** Fixes for the board export / solver input, and for redealing upon
|
||||
restart of the "ms*" deals.
|
||||
** Various cleanups.
|
||||
* _5 March, 2018:_ There is a new beta source release
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-2.1/[PySolFC
|
||||
v2.1.3]. New in this release:
|
||||
** Support for the https://kivy.org/[kivy] toolkit for running under
|
||||
Android-based devices (currently python 2.7-only)
|
||||
** Fixed the help system and removed the need for the sgmllib module.
|
||||
** Other fixes and cleanups.
|
||||
** Currently there is no Microsoft Windows binary package. Help or
|
||||
insights will be appreciated.
|
||||
* _19 November, 2017:_ There is a new beta source release
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-2.1/[PySolFC
|
||||
v2.1.0], the first one in almost 8 years. New in this release:
|
||||
** The code is now compatible with both Python 2.7.x and Python 3.x
|
||||
** One can deal all
|
||||
https://fc-solve.shlomifish.org/faq.html#what_are_ms_deals[MS
|
||||
FreeCell/FC-pro deals] by specifying e.g: "ms100000" as the seed.
|
||||
** Support for Black Hole and All in a Row solver was added.
|
||||
** Test suite and CI were added to the repository.
|
||||
** The code now passes flake8 validation.
|
||||
** Some improvements to the solver dialog.
|
||||
* _15 November, 2017:_ Development of the Python sources has recently
|
||||
resumed using a https://github.com/shlomif/PySolFC[a GitHub project] and
|
||||
other resources and Shlomi Fish (@shlomif) has received an admin status
|
||||
on the SourceForge project and this site. A new source release which
|
||||
adds compatibility with Python version 3.x and some other improvements
|
||||
is expected soon.
|
||||
* _04 December, 2009:_
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-2.0/[PySolFC
|
||||
v.2.0] (1061 games) and
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/PySolFC-Cardsets-2.0/[PySolFC-Cardsets
|
||||
v.2.0] (153 cardsets)
|
||||
** The license was changed to the GPLv3 or newer.
|
||||
** 13 new games.
|
||||
** Migration to new
|
||||
https://code.google.com/archive/p/python-ttk/[python-ttk] module.
|
||||
** Improved the look of the deck (required
|
||||
http://effbot.org/downloads/#pil[python-imaging v.1.1.7]).
|
||||
** Fixed Hanafuda games
|
||||
(https://sourceforge.net/p/pysolfc/bugs/9/[ticket]).
|
||||
** New config-file option: sound_sample_buffer_size
|
||||
(https://sourceforge.net/p/pysolfc/bugs/10/[ticket]).
|
||||
** Portable version for windows
|
||||
(https://sourceforge.net/p/pysolfc/patches/3/[ticket]).
|
||||
** Many other bugfixes.
|
||||
* _06 September, 2007:_
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-1.1/[PySolFC
|
||||
v.1.1] (1048 games)
|
||||
** 48 new games (one game was removed)
|
||||
** Solitaire Wizard
|
||||
** improved Mahjongg games
|
||||
** human readable config file (options.cfg)
|
||||
** stack becomes compact when a card goes off screen
|
||||
** Clearlooks theme for Tile widget set
|
||||
** a huge number of other improvements
|
||||
* _30 August, 2007:_
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/PySolFC-Cardsets-1.1/[PySolFC-Cardsets
|
||||
v.1.1] (152 cardsets)
|
||||
* _21 February, 2007:_
|
||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-1.0/[PySolFC
|
||||
v.1.0] (1001 games)
|
|
@ -1,3 +1,5 @@
|
|||
<p align="center"><img src="html-src/images/high_res/logo_horizontal.png" alt="StretchView" height="180px"></p>
|
||||
|
||||
# PySol Fan Club edition
|
||||
|
||||
This is an open source and portable (Windows, Linux and Mac OS X) collection
|
||||
|
|
|
@ -30,6 +30,13 @@ try:
|
|||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
def merge_dicts(x, y):
|
||||
ret = x.copy()
|
||||
ret.update(y)
|
||||
return ret
|
||||
|
||||
|
||||
pysollib_path = os.path.join(sys.path[0], pysollib_dir)
|
||||
sys.path[0] = os.path.normpath(pysollib_path)
|
||||
# print sys.path
|
||||
|
@ -67,6 +74,12 @@ wikipedia_files = [
|
|||
('fourseasons.html', 'PySol - Rules for Four Seasons'),
|
||||
]
|
||||
|
||||
|
||||
def _fmt(fmt, params):
|
||||
return fmt % merge_dicts(params, {'logo_url': "images/pysollogo03.png",
|
||||
'logo_alt': "PySol FC Logo"})
|
||||
|
||||
|
||||
main_header = '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<html>
|
||||
<head>
|
||||
|
@ -76,7 +89,7 @@ main_header = '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|||
</head>
|
||||
<body text="#000000" bgcolor="#F7F3FF" link="#0000FF" vlink="#660099"
|
||||
alink="#FF0000">
|
||||
<img src="images/pysollogo03.gif" alt="">
|
||||
<img src="%(logo_url)s" alt="%(logo_alt)s">
|
||||
<br>
|
||||
'''
|
||||
main_footer = '''
|
||||
|
@ -95,7 +108,7 @@ rules_header = '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|||
</head>
|
||||
<body text="#000000" bgcolor="#F7F3FF" link="#0000FF" vlink="#660099"
|
||||
link="#FF0000">
|
||||
<img src="../images/pysollogo03.gif" alt="">
|
||||
<img src="../%(logo_url)s" alt="%(logo_alt)s">
|
||||
<br>
|
||||
'''
|
||||
rules_footer = '''
|
||||
|
@ -120,7 +133,7 @@ wikipedia_header = '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|||
</head>
|
||||
<body text="#000000" bgcolor="#F7F3FF" link="#0000FF" vlink="#660099"
|
||||
alink="#FF0000">
|
||||
<img src="../images/pysollogo03.gif" alt="">
|
||||
<img src="../%(logo_url)s" alt="%(logo_alt)s">
|
||||
<br>
|
||||
'''
|
||||
|
||||
|
@ -134,13 +147,13 @@ def getGameRulesFilename(n):
|
|||
def gen_main_html():
|
||||
for infile, title in files:
|
||||
outfile = open(os.path.join('html', infile), 'w')
|
||||
print(main_header % {'title': title}, file=outfile)
|
||||
print(_fmt(main_header, {'title': title}), file=outfile)
|
||||
with open(infile, 'r') as file:
|
||||
print(file.read(), file=outfile)
|
||||
s = '<a href="index.html">Back to the index</a>'
|
||||
if infile == 'index.html':
|
||||
s = ''
|
||||
print(main_footer % {'back_to_index_link': s}, file=outfile)
|
||||
print(_fmt(main_footer, {'back_to_index_link': s}), file=outfile)
|
||||
outfile.close()
|
||||
|
||||
|
||||
|
@ -164,7 +177,7 @@ def gen_rules_html():
|
|||
|
||||
# open file of list of all rules
|
||||
out_rules = open(os.path.join('html', 'rules.html'), 'w')
|
||||
print(main_header % {'title': 'PySol - a Solitaire Game Collection'},
|
||||
print(_fmt(main_header, {'title': 'PySol - a Solitaire Game Collection'}),
|
||||
file=out_rules)
|
||||
with open('rules.html', 'r') as file:
|
||||
print(file.read(), file=out_rules)
|
||||
|
@ -212,15 +225,16 @@ def gen_rules_html():
|
|||
for n in gi.altnames:
|
||||
altnames.append((n, rules_fn))
|
||||
|
||||
print('</ul>\n' + main_footer %
|
||||
{'back_to_index_link': '<a href="index.html">Back to the index</a>'},
|
||||
print('</ul>\n' + _fmt(main_footer,
|
||||
{'back_to_index_link':
|
||||
'<a href="index.html">Back to the index</a>'}),
|
||||
file=out_rules)
|
||||
|
||||
out_rules.close()
|
||||
|
||||
# create file of altnames
|
||||
out_rules_alt = open(os.path.join('html', 'rules_alternate.html'), 'w')
|
||||
print(main_header % {'title': 'PySol - a Solitaire Game Collection'},
|
||||
print(_fmt(main_header, {'title': 'PySol - a Solitaire Game Collection'}),
|
||||
file=out_rules_alt)
|
||||
with open('rules_alternate.html', 'r') as file:
|
||||
print(file.read(), file=out_rules_alt)
|
||||
|
@ -228,8 +242,9 @@ def gen_rules_html():
|
|||
for name, fn in altnames:
|
||||
print('<li> <a href="rules/%s">%s</a>'
|
||||
% (fn, name), file=out_rules_alt)
|
||||
print('</ul>\n' + main_footer %
|
||||
{'back_to_index_link': '<a href="index.html">Back to the index</a>'},
|
||||
print('</ul>\n' + _fmt(main_footer,
|
||||
{'back_to_index_link':
|
||||
'<a href="index.html">Back to the index</a>'}),
|
||||
file=out_rules_alt)
|
||||
out_rules_alt.close()
|
||||
|
||||
|
@ -238,12 +253,12 @@ def gen_rules_html():
|
|||
outfile = open(
|
||||
os.path.join('html', 'rules', filename), 'w', encoding='utf-8')
|
||||
if dir == 'rules':
|
||||
print(rules_header % {'title': title}, file=outfile)
|
||||
print(_fmt(rules_header, {'title': title}), file=outfile)
|
||||
else: # d == 'wikipedia'
|
||||
print(wikipedia_header % {'title': title}, file=outfile)
|
||||
print(_fmt(wikipedia_header, {'title': title}), file=outfile)
|
||||
with open(os.path.join(dir, filename), 'r', encoding='utf-8') as file:
|
||||
print(file.read(), file=outfile)
|
||||
print(rules_footer % {'footer': footer}, file=outfile)
|
||||
print(_fmt(rules_footer, {'footer': footer}), file=outfile)
|
||||
outfile.close()
|
||||
|
||||
|
||||
|
|
BIN
html-src/images/high_res/logo.png
Normal file
After Width: | Height: | Size: 171 KiB |
145
html-src/images/high_res/logo.svg
Normal file
|
@ -0,0 +1,145 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="2606px" height="2606px" viewBox="0 0 2606 2606" enable-background="new 0 0 2606 2606" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#FFFFFF" stroke="#231F20" stroke-width="13.7116" stroke-miterlimit="10" points="1799.729,2089.245
|
||||
583.065,1957.834 794.449,0.563 2011.048,131.975 "/>
|
||||
<g>
|
||||
<path fill="#231F20" d="M1440.643,817.287c-17.163-1.871-33.905-0.238-49.461,4.503c35.863-18.687,62.059-54.354,66.766-97.676
|
||||
c7.389-68.683-42.32-130.448-111.076-137.882c-68.666-7.401-130.465,42.337-137.864,111.02
|
||||
c-4.529,42.056,12.268,81.514,41.892,107.477c-13.007-6.564-27.432-10.897-42.794-12.563
|
||||
c-68.78-7.428-130.437,42.213-137.873,110.941c-7.436,68.718,42.231,130.456,111.021,137.917
|
||||
c27.229,2.89,53.295-3.091,75.371-15.734v-0.044l-44.371,143.001l141.975,15.315l-12.991-150.927l0,0
|
||||
c19.151,18.214,44.195,30.456,72.554,33.468c68.729,7.391,130.403-42.293,137.84-110.984
|
||||
C1559.009,886.311,1509.396,824.681,1440.643,817.287z"/>
|
||||
<g>
|
||||
<path fill="#231F20" d="M1783.469,330.98c-7.347-0.76-14.551-0.035-21.175,1.952c15.327-7.997,26.506-23.27,28.538-41.742
|
||||
c3.129-29.365-18.089-55.773-47.472-58.957c-29.376-3.164-55.774,18.09-58.903,47.431c-1.996,18.017,5.207,34.849,17.873,46.003
|
||||
c-5.57-2.836-11.749-4.698-18.31-5.386c-29.367-3.174-55.723,18.045-58.941,47.421c-3.173,29.374,18.046,55.765,47.485,58.966
|
||||
c11.617,1.257,22.761-1.331,32.2-6.731v-0.035l-18.954,61.121l60.642,6.571l-5.519-64.492l0,0
|
||||
c8.239,7.755,18.927,12.952,31.001,14.273c29.392,3.191,55.762-18.08,58.955-47.448
|
||||
C1834.028,360.552,1812.828,334.19,1783.469,330.98z"/>
|
||||
|
||||
<text transform="matrix(0.9942 0.1074 -0.1074 0.9942 844.9541 360.7891)" font-family="'MyriadPro-Regular'" font-size="332.039">A</text>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#6A8F5D" points="1302.954,2605.438 537.385,2250.539 537.385,1083.158 2068.615,1083.158 2068.615,2250.539
|
||||
"/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="653.389" y="1206.402" fill="#F3F4F4" width="27.958" height="96.717"/>
|
||||
<rect x="653.389" y="1350.439" fill="#F3F4F4" width="27.958" height="96.717"/>
|
||||
<rect x="653.389" y="1494.466" fill="#F3F4F4" width="27.958" height="96.718"/>
|
||||
<rect x="653.389" y="1638.534" fill="#F3F4F4" width="27.958" height="96.696"/>
|
||||
<rect x="653.389" y="1782.55" fill="#F3F4F4" width="27.958" height="96.718"/>
|
||||
<rect x="653.389" y="1926.618" fill="#F3F4F4" width="27.958" height="96.707"/>
|
||||
<rect x="653.389" y="2070.635" fill="#F3F4F4" width="27.958" height="96.696"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
|
||||
<rect x="684.09" y="2194.777" transform="matrix(-0.3868 0.9222 -0.9222 -0.3868 3022.4868 2445.8411)" fill="#F3F4F4" width="27.958" height="66.074"/>
|
||||
|
||||
<rect x="774.831" y="2232.839" transform="matrix(-0.3868 0.9222 -0.9222 -0.3868 3183.427 2414.9478)" fill="#F3F4F4" width="27.958" height="66.074"/>
|
||||
|
||||
<rect x="865.566" y="2270.897" transform="matrix(-0.3868 0.9222 -0.9222 -0.3868 3344.3577 2383.9763)" fill="#F3F4F4" width="27.957" height="66.073"/>
|
||||
|
||||
<rect x="956.32" y="2308.971" transform="matrix(-0.3868 0.9222 -0.9222 -0.3868 3505.3181 2353.1235)" fill="#F3F4F4" width="27.958" height="66.059"/>
|
||||
|
||||
<rect x="1047.055" y="2347.021" transform="matrix(-0.3868 0.9222 -0.9222 -0.3868 3666.2454 2322.2651)" fill="#F3F4F4" width="27.958" height="66.074"/>
|
||||
|
||||
<rect x="1137.813" y="2385.093" transform="matrix(-0.3868 0.9222 -0.9222 -0.3868 3827.2104 2291.2793)" fill="#F3F4F4" width="27.957" height="66.066"/>
|
||||
|
||||
<rect x="1228.538" y="2423.151" transform="matrix(-0.3868 0.9222 -0.9222 -0.3868 3988.1191 2260.3887)" fill="#F3F4F4" width="27.957" height="66.059"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
|
||||
<rect x="1320.306" y="2434.99" transform="matrix(0.3792 0.9253 -0.9253 0.3792 3112.7236 297.998)" fill="#F3F4F4" width="27.958" height="67.403"/>
|
||||
|
||||
<rect x="1413.191" y="2396.929" transform="matrix(0.3792 0.9253 -0.9253 0.3792 3135.2007 188.4419)" fill="#F3F4F4" width="27.959" height="67.403"/>
|
||||
|
||||
<rect x="1506.069" y="2358.87" transform="matrix(0.3792 0.9253 -0.9253 0.3792 3157.6162 78.8484)" fill="#F3F4F4" width="27.958" height="67.403"/>
|
||||
|
||||
<rect x="1598.968" y="2320.811" transform="matrix(0.3792 0.9253 -0.9253 0.3792 3179.958 -30.8184)" fill="#F3F4F4" width="27.957" height="67.388"/>
|
||||
|
||||
<rect x="1691.846" y="2282.746" transform="matrix(0.3792 0.9253 -0.9253 0.3792 3202.5132 -140.3174)" fill="#F3F4F4" width="27.958" height="67.403"/>
|
||||
|
||||
<rect x="1784.748" y="2244.681" transform="matrix(0.3792 0.9253 -0.9253 0.3792 3224.9641 -249.9165)" fill="#F3F4F4" width="27.958" height="67.396"/>
|
||||
|
||||
<rect x="1877.616" y="2206.63" transform="matrix(0.3792 0.9253 -0.9253 0.3792 3247.4077 -359.4751)" fill="#F3F4F4" width="27.958" height="67.389"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="1939.568" y="2117.965" fill="#F3F4F4" width="27.957" height="96.717"/>
|
||||
<rect x="1939.568" y="1973.928" fill="#F3F4F4" width="27.957" height="96.717"/>
|
||||
<rect x="1939.568" y="1829.9" fill="#F3F4F4" width="27.957" height="96.718"/>
|
||||
<rect x="1939.568" y="1685.854" fill="#F3F4F4" width="27.957" height="96.696"/>
|
||||
<rect x="1939.568" y="1541.816" fill="#F3F4F4" width="27.957" height="96.718"/>
|
||||
<rect x="1939.568" y="1397.759" fill="#F3F4F4" width="27.957" height="96.707"/>
|
||||
<rect x="1939.568" y="1253.753" fill="#F3F4F4" width="27.957" height="96.696"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="667.752" y="1192.808" fill="#F3F4F4" width="61.65" height="27.958"/>
|
||||
<rect x="759.565" y="1192.808" fill="#F3F4F4" width="61.65" height="27.958"/>
|
||||
<rect x="851.372" y="1192.808" fill="#F3F4F4" width="61.65" height="27.958"/>
|
||||
<rect x="943.205" y="1192.808" fill="#F3F4F4" width="61.637" height="27.958"/>
|
||||
<rect x="1035.005" y="1192.808" fill="#F3F4F4" width="61.65" height="27.958"/>
|
||||
<rect x="1126.838" y="1192.808" fill="#F3F4F4" width="61.644" height="27.958"/>
|
||||
<rect x="1218.638" y="1192.808" fill="#F3F4F4" width="61.637" height="27.958"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="1310.457" y="1192.808" fill="#F3F4F4" width="61.65" height="27.958"/>
|
||||
<rect x="1402.271" y="1192.808" fill="#F3F4F4" width="61.65" height="27.958"/>
|
||||
<rect x="1494.077" y="1192.808" fill="#F3F4F4" width="61.65" height="27.958"/>
|
||||
<rect x="1585.91" y="1192.808" fill="#F3F4F4" width="61.638" height="27.958"/>
|
||||
<rect x="1677.71" y="1192.808" fill="#F3F4F4" width="61.65" height="27.958"/>
|
||||
<rect x="1769.543" y="1192.808" fill="#F3F4F4" width="61.645" height="27.958"/>
|
||||
<rect x="1861.344" y="1192.808" fill="#F3F4F4" width="61.637" height="27.958"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#BCBEC0" d="M711.365,1206.402c0,22.902-19.471,41.554-43.613,41.554c-24.026,0-43.612-18.651-43.612-41.554
|
||||
c0-23.009,19.586-41.563,43.612-41.563C691.895,1164.84,711.365,1183.394,711.365,1206.402z"/>
|
||||
<path fill="#BCBEC0" d="M1996.83,1206.402c0,22.902-19.563,41.554-43.667,41.554c-24.108,0-43.606-18.651-43.606-41.554
|
||||
c0-23.009,19.498-41.563,43.606-41.563C1977.268,1164.84,1996.83,1183.394,1996.83,1206.402z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.9 KiB |
BIN
html-src/images/high_res/logo_black.png
Normal file
After Width: | Height: | Size: 153 KiB |
BIN
html-src/images/high_res/logo_horizontal.png
Normal file
After Width: | Height: | Size: 254 KiB |
181
html-src/images/high_res/logo_horizontal.svg
Normal file
|
@ -0,0 +1,181 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="2156.379px" height="822.798px" viewBox="209.538 -382.29 2156.379 822.798"
|
||||
enable-background="new 209.538 -382.29 2156.379 822.798" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#FFFFFF" stroke="#231F20" stroke-width="4.331" stroke-miterlimit="10" points="608.268,277.454 223.963,235.948
|
||||
290.73,-382.29 675.028,-340.787 "/>
|
||||
<g>
|
||||
<path fill="#231F20" d="M494.843-124.318c-5.413-0.586-10.703-0.064-15.633,1.428c11.347-5.904,19.611-17.167,21.097-30.849
|
||||
c2.34-21.699-13.371-41.208-35.077-43.557c-21.695-2.337-41.213,13.366-43.553,35.066c-1.438,13.28,3.884,25.749,13.234,33.945
|
||||
c-4.111-2.069-8.664-3.444-13.519-3.961c-21.728-2.349-41.2,13.334-43.551,35.041c-2.34,21.705,13.345,41.202,35.07,43.561
|
||||
c8.598,0.922,16.832-0.982,23.807-4.972v-0.016l-14.012,45.173l44.837,4.843l-4.098-47.67l0,0
|
||||
c6.057,5.748,13.965,9.607,22.908,10.567c21.713,2.338,41.2-13.359,43.548-35.061
|
||||
C532.242-102.5,516.561-121.976,494.843-124.318z"/>
|
||||
<g>
|
||||
<path fill="#231F20" d="M603.129-277.919c-2.317-0.246-4.589-0.021-6.69,0.619c4.854-2.526,8.382-7.345,9.021-13.188
|
||||
c0.992-9.281-5.721-17.618-14.995-18.621c-9.276-1.011-17.618,5.709-18.611,14.985c-0.625,5.679,1.654,11.007,5.653,14.515
|
||||
c-1.76-0.886-3.707-1.476-5.781-1.694c-9.284-0.999-17.607,5.697-18.621,14.978c-1.001,9.28,5.702,17.625,14.998,18.615
|
||||
c3.675,0.405,7.192-0.408,10.177-2.119v-0.005l-5.991,19.309l19.162,2.074l-1.752-20.371l0,0
|
||||
c2.597,2.453,5.977,4.094,9.798,4.509c9.276,1.009,17.617-5.708,18.611-14.983
|
||||
C619.106-268.585,612.406-276.912,603.129-277.919z"/>
|
||||
|
||||
<text transform="matrix(0.9942 0.1074 -0.1074 0.9942 306.6931 -268.5012)" font-family="'MyriadPro-Regular'" font-size="104.8801">A</text>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#6A8F5D" points="451.363,440.508 209.538,328.401 209.538,-40.33 693.198,-40.33 693.198,328.401 "/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="246.183" y="-1.408" fill="#F3F4F4" width="8.831" height="30.55"/>
|
||||
<rect x="246.183" y="44.087" fill="#F3F4F4" width="8.831" height="30.551"/>
|
||||
<rect x="246.183" y="89.58" fill="#F3F4F4" width="8.831" height="30.55"/>
|
||||
<rect x="246.183" y="135.086" fill="#F3F4F4" width="8.831" height="30.543"/>
|
||||
<rect x="246.183" y="180.576" fill="#F3F4F4" width="8.831" height="30.549"/>
|
||||
<rect x="246.183" y="226.082" fill="#F3F4F4" width="8.831" height="30.546"/>
|
||||
<rect x="246.183" y="271.573" fill="#F3F4F4" width="8.831" height="30.544"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
|
||||
<rect x="255.881" y="310.753" transform="matrix(0.3868 -0.9222 0.9222 0.3868 -136.572 436.9975)" fill="#F3F4F4" width="8.832" height="20.871"/>
|
||||
|
||||
<rect x="284.544" y="322.777" transform="matrix(0.3868 -0.9222 0.9222 0.3868 -130.0825 470.8089)" fill="#F3F4F4" width="8.83" height="20.871"/>
|
||||
|
||||
<rect x="313.203" y="334.799" transform="matrix(0.3869 -0.9221 0.9221 0.3869 -123.6096 504.5652)" fill="#F3F4F4" width="8.83" height="20.871"/>
|
||||
|
||||
<rect x="341.832" y="346.845" transform="matrix(0.3868 -0.9222 0.9222 0.3868 -117.1465 538.3897)" fill="#F3F4F4" width="8.832" height="20.867"/>
|
||||
|
||||
<rect x="370.492" y="358.867" transform="matrix(0.3868 -0.9222 0.9222 0.3868 -110.6598 572.1934)" fill="#F3F4F4" width="8.832" height="20.872"/>
|
||||
|
||||
<rect x="399.161" y="370.894" transform="matrix(0.3869 -0.9221 0.9221 0.3869 -104.1888 605.9609)" fill="#F3F4F4" width="8.83" height="20.869"/>
|
||||
|
||||
<rect x="427.852" y="382.896" transform="matrix(0.3868 -0.9222 0.9222 0.3868 -97.6421 639.8224)" fill="#F3F4F4" width="8.832" height="20.867"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
|
||||
<rect x="456.85" y="386.691" transform="matrix(-0.3792 -0.9253 0.9253 -0.3792 268.5023 974.8157)" fill="#F3F4F4" width="8.831" height="21.289"/>
|
||||
|
||||
<rect x="486.193" y="374.636" transform="matrix(-0.3792 -0.9253 0.9253 -0.3792 320.1125 985.3372)" fill="#F3F4F4" width="8.829" height="21.29"/>
|
||||
|
||||
<rect x="515.523" y="362.644" transform="matrix(-0.3792 -0.9253 0.9253 -0.3792 371.6727 995.9436)" fill="#F3F4F4" width="8.831" height="21.29"/>
|
||||
|
||||
<rect x="544.868" y="350.59" transform="matrix(-0.3792 -0.9253 0.9253 -0.3792 423.3006 1006.4688)" fill="#F3F4F4" width="8.831" height="21.285"/>
|
||||
|
||||
<rect x="574.201" y="338.595" transform="matrix(-0.3792 -0.9253 0.9253 -0.3792 474.8542 1017.0711)" fill="#F3F4F4" width="8.831" height="21.288"/>
|
||||
|
||||
<rect x="603.545" y="326.571" transform="matrix(-0.3792 -0.9253 0.9253 -0.3792 526.4511 1027.6381)" fill="#F3F4F4" width="8.831" height="21.287"/>
|
||||
|
||||
<rect x="632.877" y="314.518" transform="matrix(-0.3791 -0.9253 0.9253 -0.3791 578.03 1038.1528)" fill="#F3F4F4" width="8.832" height="21.284"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="652.436" y="286.523" fill="#F3F4F4" width="8.831" height="30.549"/>
|
||||
<rect x="652.436" y="241.027" fill="#F3F4F4" width="8.831" height="30.55"/>
|
||||
<rect x="652.436" y="195.533" fill="#F3F4F4" width="8.831" height="30.55"/>
|
||||
<rect x="652.436" y="150.033" fill="#F3F4F4" width="8.831" height="30.544"/>
|
||||
<rect x="652.436" y="104.536" fill="#F3F4F4" width="8.831" height="30.55"/>
|
||||
<rect x="652.436" y="59.033" fill="#F3F4F4" width="8.831" height="30.547"/>
|
||||
<rect x="652.436" y="13.548" fill="#F3F4F4" width="8.831" height="30.542"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="250.72" y="-5.702" fill="#F3F4F4" width="19.473" height="8.831"/>
|
||||
<rect x="279.72" y="-5.702" fill="#F3F4F4" width="19.473" height="8.831"/>
|
||||
<rect x="308.719" y="-5.702" fill="#F3F4F4" width="19.473" height="8.831"/>
|
||||
<rect x="337.724" y="-5.702" fill="#F3F4F4" width="19.469" height="8.831"/>
|
||||
<rect x="366.72" y="-5.702" fill="#F3F4F4" width="19.473" height="8.831"/>
|
||||
<rect x="395.727" y="-5.702" fill="#F3F4F4" width="19.471" height="8.831"/>
|
||||
<rect x="424.722" y="-5.702" fill="#F3F4F4" width="19.469" height="8.831"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="453.725" y="-5.702" fill="#F3F4F4" width="19.473" height="8.831"/>
|
||||
<rect x="482.725" y="-5.702" fill="#F3F4F4" width="19.473" height="8.831"/>
|
||||
<rect x="511.723" y="-5.702" fill="#F3F4F4" width="19.473" height="8.831"/>
|
||||
<rect x="540.729" y="-5.702" fill="#F3F4F4" width="19.469" height="8.831"/>
|
||||
<rect x="569.725" y="-5.702" fill="#F3F4F4" width="19.473" height="8.831"/>
|
||||
<rect x="598.732" y="-5.702" fill="#F3F4F4" width="19.471" height="8.831"/>
|
||||
<rect x="627.727" y="-5.702" fill="#F3F4F4" width="19.469" height="8.831"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#BCBEC0" d="M264.497-1.408c0,7.243-6.161,13.125-13.776,13.125c-7.607,0-13.777-5.882-13.777-13.125
|
||||
c0-7.255,6.17-13.126,13.777-13.126C258.336-14.535,264.497-8.665,264.497-1.408z"/>
|
||||
<path fill="#BCBEC0" d="M670.525-1.408c0,7.243-6.179,13.125-13.795,13.125c-7.604,0-13.774-5.882-13.774-13.125
|
||||
c0-7.255,6.17-13.126,13.774-13.126C664.346-14.535,670.525-8.665,670.525-1.408z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M751.673-62.138h65.913c38.682,0,60.94,19.015,60.94,52.729c0,35.439-22.259,55.971-60.94,55.971h-27.447v42.571h-38.466
|
||||
V-62.138z M815.639,16.307c16.856,0,26.581-8.429,26.581-24.42c0-15.775-9.725-23.772-26.581-23.772h-25.501v48.192H815.639z"/>
|
||||
<path d="M919.364-27.347l28.525,77.365l25.284-77.365h37.17l-50.352,128.584c-8.645,21.179-23.34,31.551-44.949,31.551
|
||||
c-12.967,0-23.558-3.889-33.931-11.886l15.562-25.5c5.402,4.321,9.939,6.268,15.342,6.268c6.699,0,11.454-3.024,14.479-9.293
|
||||
l2.809-5.836L880.897-27.347H919.364z"/>
|
||||
<path d="M1027.41,36.62c15.56,13.614,38.899,22.69,54.675,22.69c12.103,0,19.665-4.54,19.665-13.184
|
||||
c0-26.796-79.958-10.806-79.958-64.398c0-27.876,23.987-45.6,60.293-45.6c21.826,0,44.086,6.7,59.646,16.856l-14.479,30.04
|
||||
c-15.992-9.294-36.09-15.776-48.408-15.776c-9.94,0-16.641,3.675-16.641,11.022c0,26.146,79.958,11.236,79.958,65.911
|
||||
c0,30.253-26.796,46.244-60.509,46.244c-25.284,0-51.217-9.507-69.154-24.201L1027.41,36.62z"/>
|
||||
<path d="M1216.929-28.642c38.035,0,63.535,23.555,63.535,59.427c0,35.876-25.5,59.646-63.535,59.646
|
||||
c-38.25,0-63.751-23.771-63.751-59.646C1153.178-5.088,1178.679-28.642,1216.929-28.642z M1216.929,61.474
|
||||
c15.345,0,25.934-12.104,25.934-30.257c0-17.938-10.589-30.254-25.934-30.254c-15.56,0-26.147,12.316-26.147,30.254
|
||||
C1190.782,49.369,1201.371,61.474,1216.929,61.474z"/>
|
||||
<path d="M1301.637-71.216h37.388V89.133h-37.388V-71.216z"/>
|
||||
<path d="M1420.275-62.138h112.158v30.253h-73.688V3.123h67.854v30.255h-67.854v55.756h-38.47V-62.138z"/>
|
||||
<path d="M1586.236,19.115h30.689v-1.728c0-11.452-7.564-18.367-22.691-18.367c-9.725,0-22.474,3.456-34.793,9.724l-10.591-24.635
|
||||
c18.153-8.428,34.581-13.183,54.028-13.183c31.982,0,50.568,15.773,50.786,42.14v76.068h-36.524V75.738
|
||||
c-7.563,9.939-19.879,15.126-35.654,15.126c-24.854,0-39.982-15.126-39.982-36.521
|
||||
C1541.504,32.297,1557.281,19.332,1586.236,19.115z M1592.938,65.579c11.669,0,21.61-6.482,23.987-15.992V39.213h-23.556
|
||||
c-11.237,0-16.857,3.89-16.857,12.535C1576.512,60.176,1582.565,65.579,1592.938,65.579z"/>
|
||||
<path d="M1680.236-27.347h37.389v19.019c8.211-13.616,21.61-20.531,38.897-20.746c25.716,0,42.573,17.505,42.573,44.733v73.475
|
||||
h-37.17V26.031c0-13.613-7.997-22.041-20.53-22.041c-13.614,0-22.259,9.725-23.771,23.555v61.59h-37.389V-27.347z"/>
|
||||
<path d="M1946.902-63.437c22.477,0,45.815,9.942,60.944,25.501l-22.26,26.366c-9.943-12.104-24.638-19.666-38.035-19.666
|
||||
c-23.988,0-42.142,19.015-42.142,43.869c0,25.284,18.152,44.518,42.142,44.518c12.75,0,27.447-6.915,38.035-17.72l22.476,23.771
|
||||
c-16.209,16.642-40.198,27.661-62.455,27.661c-45.601,0-79.528-33.495-79.528-77.798
|
||||
C1866.079-30.589,1900.873-63.437,1946.902-63.437z"/>
|
||||
<path d="M2026.422-71.216h37.39V89.133h-37.39V-71.216z"/>
|
||||
<path d="M2091.253-27.347h37.386v62.887c0,13.831,7.563,22.259,19.448,22.259c14.266-0.215,22.692-11.884,22.692-27.66v-57.485
|
||||
h37.386v116.48h-37.386V69.902c-7.998,13.83-20.965,20.746-37.82,20.746c-25.283,0-41.706-17.291-41.706-44.52V-27.347z"/>
|
||||
<path d="M2239.061-71.216h37.386v59.212c8.215-10.589,20.1-16.64,34.797-16.64c32.848,0,54.673,23.987,54.673,60.078
|
||||
c0,35.438-21.182,58.993-53.809,58.993c-15.13,0-27.446-6.051-35.661-16.854v15.559h-37.386V-71.216z M2302.165,60.824
|
||||
c15.561,0,26.15-12.534,26.15-30.469c0-17.722-10.591-30.255-26.15-30.255c-15.126,0-25.718,12.533-25.718,30.255
|
||||
C2276.447,48.506,2287.039,60.824,2302.165,60.824z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 11 KiB |
BIN
html-src/images/high_res/logo_vertical.png
Normal file
After Width: | Height: | Size: 225 KiB |
BIN
html-src/images/pysollogo0.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
html-src/images/pysollogo01.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
html-src/images/pysollogo02.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
html-src/images/pysollogo03.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
|
@ -202,13 +202,13 @@ class Game(object):
|
|||
# update display properties
|
||||
self.canvas.busy = True
|
||||
# geometry
|
||||
mycond = (not USE_PIL and self.app.opt.save_games_geometry and
|
||||
mycond = (self.app.opt.save_games_geometry and
|
||||
self.id in self.app.opt.games_geometry)
|
||||
if mycond:
|
||||
# restore game geometry
|
||||
w, h = self.app.opt.games_geometry[self.id]
|
||||
self.canvas.config(width=w, height=h)
|
||||
if USE_PIL:
|
||||
if True and USE_PIL:
|
||||
if self.app.opt.auto_scale:
|
||||
w, h = self.app.opt.game_geometry
|
||||
self.canvas.setInitialSize(w, h, margins=False,
|
||||
|
@ -217,9 +217,10 @@ class Game(object):
|
|||
# dx, dy = self.canvas.xmargin, self.canvas.ymargin
|
||||
# self.canvas.config(scrollregion=(-dx, -dy, dx, dy))
|
||||
else:
|
||||
w = int(round(self.width * self.app.opt.scale_x))
|
||||
h = int(round(self.height * self.app.opt.scale_y))
|
||||
self.canvas.setInitialSize(w, h)
|
||||
if not mycond:
|
||||
w = int(round(self.width * self.app.opt.scale_x))
|
||||
h = int(round(self.height * self.app.opt.scale_y))
|
||||
self.canvas.setInitialSize(w, h)
|
||||
self.top.wm_geometry("") # cancel user-specified geometry
|
||||
# preserve texts positions
|
||||
for t in ('info', 'help', 'misc', 'score', 'base_rank'):
|
||||
|
@ -1124,7 +1125,7 @@ class Game(object):
|
|||
|
||||
def _configureHandler(self, event=None):
|
||||
# print 'configureHandler'
|
||||
if not USE_PIL:
|
||||
if False: # if not USE_PIL:
|
||||
return
|
||||
if not self.app:
|
||||
return
|
||||
|
|
|
@ -51,7 +51,7 @@ if TOOLKIT == 'tk':
|
|||
from PIL import PpmImagePlugin # noqa: F401
|
||||
Image._initialized = 2
|
||||
USE_PIL = False
|
||||
if TOOLKIT == 'tk' and Image and Image.VERSION >= '1.1.7':
|
||||
if TOOLKIT == 'tk' and Image:
|
||||
USE_PIL = True
|
||||
|
||||
# debug
|
||||
|
|
|
@ -32,7 +32,7 @@ PACKAGE = 'PySolFC'
|
|||
TITLE = 'PySol'
|
||||
PACKAGE_URL = 'http://pysolfc.sourceforge.net/'
|
||||
|
||||
VERSION_TUPLE = (2, 6, 2)
|
||||
VERSION_TUPLE = (2, 6, 3)
|
||||
VERSION = '.'.join(map(str, VERSION_TUPLE))
|
||||
|
||||
# Tk windowing system (auto set up in init.py)
|
||||
|
|
|
@ -73,16 +73,16 @@ class ToolbarCheckbutton(AbstractToolbarButton, ttk.Checkbutton):
|
|||
def __init__(self, parent, toolbar, toolbar_name, position, **kwargs):
|
||||
kwargs['style'] = 'Toolbutton'
|
||||
ttk.Checkbutton.__init__(self, parent, **kwargs)
|
||||
AbstractToolbarButton.__init__(self, parent, toolbar,
|
||||
toolbar_name, position)
|
||||
AbstractToolbarButton.__init__(
|
||||
self, parent, toolbar, toolbar_name, position)
|
||||
|
||||
|
||||
class ToolbarButton(AbstractToolbarButton, ttk.Button):
|
||||
def __init__(self, parent, toolbar, toolbar_name, position, **kwargs):
|
||||
kwargs['style'] = 'Toolbutton'
|
||||
ttk.Button.__init__(self, parent, **kwargs)
|
||||
AbstractToolbarButton.__init__(self, parent, toolbar,
|
||||
toolbar_name, position)
|
||||
AbstractToolbarButton.__init__(
|
||||
self, parent, toolbar, toolbar_name, position)
|
||||
|
||||
|
||||
class ToolbarSeparator(ttk.Separator):
|
||||
|
@ -453,8 +453,6 @@ class PysolToolbarTk:
|
|||
if self._busy():
|
||||
return EVENT_HANDLED
|
||||
if self.popup:
|
||||
# print event.x, event.y, \
|
||||
# event.x_root, event.y_root, event.__dict__
|
||||
self.popup.tk_popup(event.x_root, event.y_root)
|
||||
return EVENT_HANDLED
|
||||
|
||||
|
|
|
@ -36,10 +36,6 @@ from six.moves import tkinter
|
|||
from .tkwidget import MfxTooltip
|
||||
|
||||
|
||||
# ************************************************************************
|
||||
# *
|
||||
# ************************************************************************
|
||||
|
||||
class AbstractToolbarButton:
|
||||
def __init__(self, parent, toolbar, toolbar_name, position):
|
||||
self.toolbar = toolbar
|
||||
|
@ -125,7 +121,7 @@ class ToolbarFlatSeparator(ToolbarSeparator):
|
|||
|
||||
class ToolbarLabel(tkinter.Message):
|
||||
def __init__(self, parent, toolbar, toolbar_name, position, **kwargs):
|
||||
tkinter.Message.__init__(self, parent, kwargs)
|
||||
tkinter.Message.__init__(self, parent, **kwargs)
|
||||
self.toolbar = toolbar
|
||||
self.toolbar_name = toolbar_name
|
||||
self.position = position
|
||||
|
@ -164,7 +160,6 @@ class PysolToolbarTk:
|
|||
size=0, relief='flat', compound='none'):
|
||||
self.top = top
|
||||
self.menubar = menubar
|
||||
# self._setRelief(relief)
|
||||
self.side = -1
|
||||
self._tooltips = []
|
||||
self._widgets = []
|
||||
|
@ -238,14 +233,14 @@ class PysolToolbarTk:
|
|||
prev_visible = None
|
||||
last_visible = None
|
||||
for w in self._widgets:
|
||||
if w.__class__ is ToolbarSeparator:
|
||||
if prev_visible is None or \
|
||||
prev_visible.__class__ is ToolbarSeparator:
|
||||
if isinstance(w, ToolbarSeparator):
|
||||
if prev_visible is None or isinstance(prev_visible,
|
||||
ToolbarSeparator):
|
||||
w.hide()
|
||||
else:
|
||||
w.show(orient=self.orient)
|
||||
elif w.__class__ is ToolbarFlatSeparator:
|
||||
if prev_visible.__class__ is ToolbarSeparator:
|
||||
elif isinstance(w, ToolbarFlatSeparator):
|
||||
if isinstance(prev_visible, ToolbarSeparator):
|
||||
prev_visible.hide()
|
||||
if w.visible:
|
||||
prev_visible = w
|
||||
|
@ -416,7 +411,7 @@ class PysolToolbarTk:
|
|||
self.frame.update_idletasks()
|
||||
|
||||
def updateText(self, **kw):
|
||||
for name in list(kw.keys()):
|
||||
for name in kw.keys():
|
||||
label = getattr(self, name + "_label")
|
||||
label["text"] = kw[name]
|
||||
|
||||
|
@ -483,8 +478,6 @@ class PysolToolbarTk:
|
|||
if self._busy():
|
||||
return EVENT_HANDLED
|
||||
if self.popup:
|
||||
# print event.x, event.y, event.x_root, \
|
||||
# event.y_root, event.__dict__
|
||||
self.popup.tk_popup(event.x_root, event.y_root)
|
||||
return EVENT_HANDLED
|
||||
|
||||
|
|
|
@ -628,11 +628,11 @@ class PysolMenubarTkCommon:
|
|||
submenu.add_checkbutton(
|
||||
label=n_("Show &help bar"), variable=self.tkopt.helpbar,
|
||||
command=self.mOptHelpbar)
|
||||
if not USE_PIL:
|
||||
menu.add_checkbutton(
|
||||
label=n_("Save games &geometry"),
|
||||
variable=self.tkopt.save_games_geometry,
|
||||
command=self.mOptSaveGamesGeometry)
|
||||
# if not USE_PIL:
|
||||
menu.add_checkbutton(
|
||||
label=n_("Save games &geometry"),
|
||||
variable=self.tkopt.save_games_geometry,
|
||||
command=self.mOptSaveGamesGeometry)
|
||||
menu.add_checkbutton(
|
||||
label=n_("&Demo logo"), variable=self.tkopt.demo_logo,
|
||||
command=self.mOptDemoLogo)
|
||||
|
|
|
@ -353,15 +353,10 @@ def shadowImage(image, color='#3896f8', factor=0.3):
|
|||
if not hasattr(image, '_pil_image'):
|
||||
return None
|
||||
im = image._pil_image
|
||||
if Image.VERSION >= '1.1.7':
|
||||
# use an alpha image
|
||||
sh = Image.new('RGBA', im.size, color)
|
||||
sh.putalpha(100)
|
||||
out = Image.composite(sh, im, im)
|
||||
return PIL_Image(image=out)
|
||||
# use an alpha image
|
||||
sh = Image.new('RGBA', im.size, color)
|
||||
tmp = Image.blend(im, sh, factor)
|
||||
out = Image.composite(tmp, im, im)
|
||||
sh.putalpha(100)
|
||||
out = Image.composite(sh, im, im)
|
||||
return PIL_Image(image=out)
|
||||
|
||||
|
||||
|
|