mirror of
https://github.com/shlomif/PySolFC.git
synced 2025-04-05 00:02:29 -04:00
* renamed module tksettings to winsystems
* improved Tile/SingleGame_StatsDialog * improved Tile/MfxDialog * improved Tile/SelectGameDialogWithPreview * cleanup code git-svn-id: https://pysolfc.svn.sourceforge.net/svnroot/pysolfc/PySolFC/trunk@126 39dd0a4e-7c14-0410-91b3-c4f2d318f732
This commit is contained in:
parent
dee911a268
commit
4712261797
17 changed files with 42 additions and 52 deletions
|
@ -5,7 +5,7 @@
|
|||
##
|
||||
include pysol.py setup.py setup.cfg MANIFEST.in Makefile COPYING README
|
||||
#recursive-include pysollib *.py
|
||||
include pysollib/*.py pysollib/macosx/*.py pysollib/tksettings/*.py
|
||||
include pysollib/*.py pysollib/macosx/*.py pysollib/winsystems/*.py
|
||||
include pysollib/tk/*.py pysollib/tile/*.py pysollib/pysolgtk/*.py
|
||||
include pysollib/games/*.py pysollib/games/special/*.py
|
||||
include pysollib/games/ultra/*.py pysollib/games/mahjongg/*.py
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
|
||||
|
||||
# imports
|
||||
import os, re, sys, string, time, types, locale
|
||||
import os, sys, types, locale
|
||||
|
||||
# PySol imports
|
||||
from mfxutil import EnvError, SubclassResponsibility
|
||||
|
@ -44,7 +44,6 @@ from pysolrandom import constructRandom
|
|||
from settings import PACKAGE, PACKAGE_URL
|
||||
from settings import TOP_TITLE
|
||||
from settings import DEBUG
|
||||
from gamedb import GI
|
||||
|
||||
# stats imports
|
||||
from stats import FileStatsFormatter
|
||||
|
@ -61,7 +60,6 @@ from pysoltk import TimeoutsDialog
|
|||
from pysoltk import ColorsDialog
|
||||
from pysoltk import FontsDialog
|
||||
from pysoltk import EditTextDialog
|
||||
from pysoltk import TOOLBAR_BUTTONS
|
||||
from pysoltk import create_find_card_dialog
|
||||
from help import help_about, help_html
|
||||
|
||||
|
|
|
@ -35,33 +35,32 @@
|
|||
|
||||
|
||||
# imports
|
||||
import sys, os, re, time, types
|
||||
import sys, os, re, types
|
||||
import traceback
|
||||
|
||||
# PySol imports
|
||||
from mfxutil import destruct, Struct
|
||||
from mfxutil import pickle, unpickle, Unpickler, UnpicklingError
|
||||
from mfxutil import pickle, unpickle, UnpicklingError
|
||||
from mfxutil import getusername, gethomedir, getprefdir, EnvError
|
||||
from mfxutil import latin1_to_ascii
|
||||
from util import Timer
|
||||
from util import CARDSET, IMAGE_EXTENSIONS
|
||||
from settings import PACKAGE, PACKAGE_URL, VERSION, VERSION_TUPLE, WIN_SYSTEM
|
||||
from settings import PACKAGE, VERSION, VERSION_TUPLE, WIN_SYSTEM
|
||||
from resource import CSI, CardsetConfig, Cardset, CardsetManager
|
||||
from resource import Tile, TileManager
|
||||
from resource import Sample, SampleManager
|
||||
from resource import Music, MusicManager
|
||||
from images import Images, SubsampledImages
|
||||
from pysolrandom import PysolRandom
|
||||
from game import Game
|
||||
from gamedb import GI, GAME_DB, loadGame
|
||||
from settings import TOP_SIZE, TOP_TITLE, TOOLKIT
|
||||
from settings import DEBUG
|
||||
from tksettings import TkSettings
|
||||
from winsystems import TkSettings
|
||||
|
||||
# Toolkit imports
|
||||
from pysoltk import wm_withdraw, loadImage
|
||||
from pysoltk import MfxDialog, MfxMessageDialog, MfxExceptionDialog
|
||||
from pysoltk import TclError, MfxRoot, MfxCanvas, MfxScrolledCanvas
|
||||
from pysoltk import TclError, MfxScrolledCanvas
|
||||
from pysoltk import PysolMenubar
|
||||
from pysoltk import PysolProgressBar
|
||||
from pysoltk import PysolToolbar
|
||||
|
|
|
@ -41,17 +41,15 @@ from cStringIO import StringIO
|
|||
# PySol imports
|
||||
from mfxutil import Pickler, Unpickler, UnpicklingError
|
||||
from mfxutil import destruct, Struct, SubclassResponsibility
|
||||
from mfxutil import UnpicklingError, uclock, usleep
|
||||
from mfxutil import uclock, usleep
|
||||
from mfxutil import format_time
|
||||
from util import get_version_tuple, Timer
|
||||
from util import ACE, QUEEN, KING
|
||||
from settings import PACKAGE, TOOLKIT, TOP_TITLE, VERSION, VERSION_TUPLE
|
||||
from settings import DEBUG
|
||||
from gamedb import GI
|
||||
from resource import CSI
|
||||
from pysolrandom import PysolRandom, LCRandom31
|
||||
from pysoltk import EVENT_HANDLED, EVENT_PROPAGATE
|
||||
from pysoltk import CURSOR_WATCH, ANCHOR_SW, ANCHOR_SE
|
||||
from pysoltk import CURSOR_WATCH
|
||||
from pysoltk import bind, wm_map
|
||||
from pysoltk import after, after_idle, after_cancel
|
||||
from pysoltk import MfxMessageDialog, MfxExceptionDialog
|
||||
|
@ -1073,9 +1071,6 @@ class Game:
|
|||
#
|
||||
|
||||
def getCardFaceImage(self, deck, suit, rank):
|
||||
## if self.app.cardset.type == CSI.TYPE_TAROCK:
|
||||
## if rank >= 10:
|
||||
## rank = rank + 1
|
||||
return self.app.images.getFace(deck, suit, rank)
|
||||
|
||||
def getCardBackImage(self, deck, suit, rank):
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
import sys, imp, os, types
|
||||
|
||||
# PySol imports
|
||||
from mfxutil import Struct, latin1_to_ascii
|
||||
from mfxutil import Struct
|
||||
from resource import CSI
|
||||
from settings import CHECK_GAMES
|
||||
|
||||
|
@ -399,8 +399,6 @@ class GameInfo(Struct):
|
|||
ncards = decks * (len(suits) * len(ranks) + len(trumps))
|
||||
game_flags = game_type & ~1023
|
||||
game_type = game_type & 1023
|
||||
#if os.name == "mac":
|
||||
# name = latin1_to_ascii(name)
|
||||
name = to_unicode(name)
|
||||
if not short_name:
|
||||
short_name = name
|
||||
|
@ -560,15 +558,12 @@ class GameManager:
|
|||
if self.__games_by_name is None:
|
||||
l1, l2, l3 = [], [], []
|
||||
for id, gi in self.__games.items():
|
||||
#name = latin1_to_ascii(gi.name).lower()
|
||||
name = gettext(gi.name).lower()
|
||||
l1.append((name, id))
|
||||
if gi.name != gi.short_name:
|
||||
#name = latin1_to_ascii(gi.short_name).lower()
|
||||
name = gettext(gi.short_name).lower()
|
||||
l2.append((name, id))
|
||||
for n in gi.altnames:
|
||||
#name = latin1_to_ascii(n).lower()
|
||||
name = gettext(n).lower()
|
||||
l3.append((name, id, n))
|
||||
l1.sort()
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
# imports
|
||||
import sys, os
|
||||
import traceback
|
||||
import Tkinter
|
||||
|
||||
# PySol imports
|
||||
from mfxutil import EnvError
|
||||
|
@ -45,7 +44,7 @@ from settings import PACKAGE, PACKAGE_URL, TOOLKIT, VERSION, FC_VERSION
|
|||
from pysoltk import make_help_toplevel, wm_map
|
||||
from pysoltk import MfxMessageDialog
|
||||
from pysoltk import HTMLViewer
|
||||
from gamedb import GAME_DB
|
||||
|
||||
|
||||
# /***********************************************************************
|
||||
# //
|
||||
|
|
|
@ -45,11 +45,10 @@ from util import DataLoader
|
|||
from resource import Tile
|
||||
from gamedb import GI
|
||||
from app import Application
|
||||
from pysolaudio import thread, pysolsoundserver
|
||||
from pysolaudio import AbstractAudioClient, PysolSoundServerModuleClient
|
||||
from pysolaudio import Win32AudioClient, OSSAudioClient, PyGameAudioClient
|
||||
from settings import PACKAGE, SOUND_MOD
|
||||
from tksettings import initRootWindow
|
||||
from winsystems import initRootWindow
|
||||
|
||||
# Toolkit imports
|
||||
from pysoltk import wm_withdraw, loadImage
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
# imports
|
||||
import sys, os, re, time, types
|
||||
import random
|
||||
from mfxutil import SubclassResponsibility
|
||||
|
||||
|
||||
# /***********************************************************************
|
||||
|
|
|
@ -105,7 +105,6 @@ from pysoltk import ANCHOR_NW, ANCHOR_SE
|
|||
from pysoltk import bind, unbind_destroy
|
||||
from pysoltk import after, after_idle, after_cancel
|
||||
from pysoltk import MfxCanvasGroup, MfxCanvasImage, MfxCanvasRectangle, MfxCanvasText, MfxCanvasLine
|
||||
from pysoltk import Card
|
||||
from pysoltk import get_text_width
|
||||
from pysoltk import markImage
|
||||
from settings import TOOLKIT
|
||||
|
|
|
@ -324,10 +324,11 @@ class SelectGameDialogWithPreview(SelectGameDialog):
|
|||
w2 = max(200, min(w2, 10 + 12*(app.subsampled_images.CARDW+10)))
|
||||
##print sw, w1, w2
|
||||
##padx, pady = kw.padx, kw.pady
|
||||
padx, pady = kw.padx/2, kw.pady/2
|
||||
#padx, pady = kw.padx/2, kw.pady/2
|
||||
padx, pady = 4, 4
|
||||
# PanedWindow
|
||||
paned_window = Tkinter.PanedWindow(top_frame)
|
||||
paned_window.pack(expand=1, fill='both')
|
||||
paned_window.pack(expand=1, fill='both', padx=8, pady=8)
|
||||
left_frame = Tkinter.Frame(paned_window)
|
||||
right_frame = Tkinter.Frame(paned_window)
|
||||
paned_window.add(left_frame)
|
||||
|
|
|
@ -118,12 +118,12 @@ class SingleGame_StatsDialog(MfxDialog):
|
|||
t2 = 45
|
||||
##t3 = font.measure('100%')+10
|
||||
t3 = 45
|
||||
tx = (t0, t0+t1+t2, t0+t1+t2+t3)
|
||||
tx = (t0, t0+t1+t2, t0+t1+t2+t3, t0+t1+t2+t3+20)
|
||||
#
|
||||
ls = self.font_metrics['linespace']
|
||||
ls += 5
|
||||
ls = max(ls, 20)
|
||||
ty = (ls, 2*ls, 3*ls+15, 3*ls+25)
|
||||
#ls = max(ls, 20)
|
||||
ty = (5, 5+ls, 5+2*ls+15, max(85, 5+3*ls+15))
|
||||
#
|
||||
self.tab_x, self.tab_y = tx, ty
|
||||
|
||||
|
@ -143,7 +143,7 @@ class SingleGame_StatsDialog(MfxDialog):
|
|||
bg = style.lookup('.', 'background') or None
|
||||
self.fg = fg
|
||||
#
|
||||
w, h = self.tab_x[-1]+20, self.tab_y[-1]+20
|
||||
w, h = self.tab_x[-1], self.tab_y[-1]
|
||||
c = Tkinter.Canvas(frame, width=w, height=h,
|
||||
bg=bg, highlightthickness=0)
|
||||
c.pack(fill='both', expand=True)
|
||||
|
@ -184,21 +184,24 @@ class SingleGame_StatsDialog(MfxDialog):
|
|||
#ty = (21, 41, 75)
|
||||
#
|
||||
tx, ty = self.tab_x, self.tab_y
|
||||
x0, y0 = 20, 10 # base coords
|
||||
w, h = 90, 50 # size
|
||||
d = 9 # delta
|
||||
if won + lost > 0:
|
||||
##s, ewon, elost = 90.0, -360.0 * pwon, -360.0 * plost
|
||||
s, ewon, elost = 0.0, 360.0 * pwon, 360.0 * plost
|
||||
c.create_arc(20, 25+9, 110, 75+9, fill="#007f00", start=s, extent=ewon)
|
||||
c.create_arc(20, 25+9, 110, 75+9, fill="#7f0000", start=s+ewon, extent=elost)
|
||||
c.create_arc(20, 25, 110, 75, fill="#00ff00", start=s, extent=ewon)
|
||||
c.create_arc(20, 25, 110, 75, fill="#ff0000", start=s+ewon, extent=elost)
|
||||
c.create_arc(x0, y0+d, x0+w, y0+h+d, fill="#007f00", start=s, extent=ewon)
|
||||
c.create_arc(x0, y0+d, x0+w, y0+h+d, fill="#7f0000", start=s+ewon, extent=elost)
|
||||
c.create_arc(x0, y0, x0+w, y0+h, fill="#00ff00", start=s, extent=ewon)
|
||||
c.create_arc(x0, y0, x0+w, y0+h, fill="#ff0000", start=s+ewon, extent=elost)
|
||||
x, y = tx[0] - 25, ty[0]
|
||||
c.create_rectangle(x, y, x+10, y+10, fill="#00ff00")
|
||||
y = ty[1]
|
||||
c.create_rectangle(x, y, x+10, y+10, fill="#ff0000")
|
||||
else:
|
||||
c.create_oval(20, 25+10, 110, 75+10, fill="#7f7f7f")
|
||||
c.create_oval(20, 25, 110, 75, fill="#f0f0f0")
|
||||
c.create_text(65, 50, text=_("No games"), anchor="center", font=tfont, fill="#bfbfbf")
|
||||
c.create_oval(x0, y0+d, x0+w, y0+h+d, fill="#7f7f7f")
|
||||
c.create_oval(x0, y0, x0+w, y0+h, fill="#f0f0f0")
|
||||
c.create_text(x0+w/2, y0+h/2, text=_("No games"), anchor="center", font=tfont, fill="#bfbfbf")
|
||||
#
|
||||
self._createChartTexts(tx, ty, won, lost)
|
||||
|
||||
|
|
|
@ -146,7 +146,7 @@ def makeToplevel(parent, title=None):
|
|||
|
||||
def make_help_toplevel(app, title=None):
|
||||
# Create an independent Toplevel window.
|
||||
from pysollib.tksettings import initRootWindow
|
||||
from pysollib.winsystems import initRootWindow
|
||||
window = Tkinter.Tk(className=PACKAGE)
|
||||
initRootWindow(window, app)
|
||||
return window
|
||||
|
|
|
@ -75,8 +75,9 @@ class MfxDialog: # ex. _ToplevelDialog
|
|||
self.buttons = []
|
||||
self.accel_keys = {}
|
||||
self.top = makeToplevel(parent, title=title)
|
||||
self._frame = Tkinter.Frame(self.top)
|
||||
self._frame.pack(expand=True, fill='both')
|
||||
#self._frame = Tkinter.Frame(self.top)
|
||||
#self._frame.pack(expand=True, fill='both')
|
||||
self._frame = self.top
|
||||
self.top.wm_resizable(resizable, resizable)
|
||||
##w, h = self.top.winfo_screenwidth(), self.top.winfo_screenheight()
|
||||
##self.top.wm_maxsize(w-4, h-32)
|
||||
|
@ -161,11 +162,11 @@ class MfxDialog: # ex. _ToplevelDialog
|
|||
return kw
|
||||
|
||||
def createFrames(self, kw):
|
||||
bottom_frame = Tkinter.Frame(self._frame)
|
||||
bottom_frame.pack(side='bottom', fill='both', expand=0, ipadx=3, ipady=3, padx=5)
|
||||
bottom_frame = Tkinter.Frame(self._frame, relief='flat', borderwidth=4)
|
||||
bottom_frame.pack(side='bottom', fill='both', expand=0)
|
||||
if kw.separatorwidth > 0:
|
||||
separator = Tkinter.Separator(self._frame)
|
||||
separator.pack(side='bottom', fill='x', pady=kw.separatorwidth/2)
|
||||
separator.pack(side='bottom', fill='x')
|
||||
top_frame = Tkinter.Frame(self._frame)
|
||||
top_frame.pack(side='top', fill='both', expand=1)
|
||||
return top_frame, bottom_frame
|
||||
|
@ -181,7 +182,7 @@ class MfxDialog: # ex. _ToplevelDialog
|
|||
|
||||
def createButtons(self, frame, kw):
|
||||
xbutton = column = -1
|
||||
padx, pady = kw.get("buttonpadx", 5), kw.get("buttonpady", 5)
|
||||
padx, pady = 4, 4
|
||||
focus = None
|
||||
max_len = 0
|
||||
if 'sep' in kw.strings:
|
||||
|
|
|
@ -51,7 +51,7 @@ from pysollib.mfxutil import destruct
|
|||
from pysollib.util import IMAGE_EXTENSIONS
|
||||
from pysollib.settings import PACKAGE
|
||||
from pysollib.actions import PysolToolbarActions
|
||||
from pysollib.tksettings import TkSettings
|
||||
from pysollib.winsystems import TkSettings
|
||||
|
||||
# Toolkit imports
|
||||
from tkconst import EVENT_HANDLED, EVENT_PROPAGATE
|
||||
|
|
|
@ -146,7 +146,7 @@ def makeToplevel(parent, title=None):
|
|||
|
||||
def make_help_toplevel(app, title=None):
|
||||
# Create an independent Toplevel window.
|
||||
from pysollib.tksettings import initRootWindow
|
||||
from pysollib.winsystems import initRootWindow
|
||||
window = Tkinter.Tk(className=PACKAGE)
|
||||
initRootWindow(window, app)
|
||||
return window
|
||||
|
|
|
@ -49,7 +49,7 @@ from pysollib.mfxutil import destruct
|
|||
from pysollib.util import IMAGE_EXTENSIONS
|
||||
from pysollib.settings import PACKAGE
|
||||
from pysollib.actions import PysolToolbarActions
|
||||
from pysollib.tksettings import TkSettings
|
||||
from pysollib.winsystems import TkSettings
|
||||
|
||||
# Toolkit imports
|
||||
from tkconst import EVENT_HANDLED, EVENT_PROPAGATE
|
||||
|
|
2
setup.py
2
setup.py
|
@ -66,7 +66,7 @@ kw = {
|
|||
'scripts' : ['pysol.py'],
|
||||
'packages' : ['pysollib',
|
||||
'pysollib.macosx',
|
||||
'pysollib.tksettings',
|
||||
'pysollib.winsystems',
|
||||
'pysollib.tk',
|
||||
'pysollib.tile',
|
||||
'pysollib.pysolgtk',
|
||||
|
|
Loading…
Add table
Reference in a new issue