1
0
Fork 0
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:
skomoroh 2006-12-20 00:40:20 +00:00
parent dee911a268
commit 4712261797
17 changed files with 42 additions and 52 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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):

View file

@ -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()

View file

@ -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
# /***********************************************************************
# //

View file

@ -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

View file

@ -37,6 +37,7 @@
# imports
import sys, os, re, time, types
import random
from mfxutil import SubclassResponsibility
# /***********************************************************************

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -66,7 +66,7 @@ kw = {
'scripts' : ['pysol.py'],
'packages' : ['pysollib',
'pysollib.macosx',
'pysollib.tksettings',
'pysollib.winsystems',
'pysollib.tk',
'pysollib.tile',
'pysollib.pysolgtk',