Merge lp:wahcade into lp:~andy-balcombe/wahcade/0.99pre5

Proposed by rdsanles on 2009-04-13
Status: Needs review
Proposed branch: lp:wahcade
Merge into: lp:~andy-balcombe/wahcade/0.99pre5
Diff against target: 18656 lines (+7096/-2523)
67 files modified
.bzrignore (+8/-0)
VERSION (+1/-1)
bdist_debian.py (+16/-15)
build_deb_package (+1/-0)
config.dist/layouts/simple_1024x768/layout.lay (+551/-0)
config.dist/layouts/simple_1024x768/main.svg (+111/-0)
config.dist/layouts/simple_640x480/layout.lay (+551/-0)
config.dist/layouts/simple_640x480/main.svg (+111/-0)
config.dist/layouts/simple_800x600/layout.lay (+551/-0)
config.dist/layouts/simple_800x600/main.svg (+111/-0)
config.dist/wahcade.ini (+11/-9)
constants.py (+7/-7)
doc/CHANGELOG (+135/-55)
doc/INI_FILES (+8/-6)
doc/INSTALL (+6/-6)
doc/LAYOUT_EDITOR (+27/-25)
doc/README (+17/-13)
doc/TODO (+2/-2)
filters.py (+59/-44)
glade/layout_editor.glade (+3/-0)
glade/layout_editor.glade.bak (+2/-0)
glade/layout_editor.glade.h (+1/-0)
glade/wahcade_setup.glade (+107/-14)
glade/wahcade_setup.glade.bak (+108/-15)
glade/wahcade_setup.glade.h (+4/-0)
glade2.py (+3/-7)
gst_media.py (+85/-84)
install (+6/-0)
joystick.py (+40/-24)
key_consts.py (+6/-8)
layout_editor.py (+43/-43)
layout_props.py (+13/-12)
layout_scr_props.py (+3/-2)
make_all (+9/-5)
make_gettext (+2/-0)
make_tarball (+1/-1)
mamewah_ini.py (+7/-6)
po/de.po (+310/-249)
po/en_GB.po (+306/-247)
po/es.po (+311/-249)
po/fr.po (+298/-237)
po/it.po (+1573/-0)
po/messages.pot (+297/-237)
po/sv.po (+298/-237)
scrolled_list.py (+91/-106)
setup.py (+6/-4)
setup.py2exe.py (+2/-2)
templates/mednafen-lynx.ini (+62/-0)
templates/mednafen-pce-tg16.ini (+61/-0)
templates/vectrex.ini (+63/-0)
wahcade (+1/-1)
wahcade-layout-editor (+1/-1)
wahcade-layout-editor.py (+2/-2)
wahcade-setup (+1/-1)
wahcade-setup.py (+2/-3)
wahcade.py (+19/-6)
wahcade_files (+9/-0)
wc_common.py (+59/-40)
wc_setup.py (+174/-156)
win_cpviewer.py (+28/-16)
win_filter.py (+37/-32)
win_history.py (+22/-16)
win_list.py (+36/-36)
win_main.py (+240/-190)
win_message.py (+9/-3)
win_options.py (+13/-11)
win_scrsaver.py (+38/-37)
To merge this branch: bzr merge lp:wahcade
Reviewer Review Type Date Requested Status
Andy Balcombe 2009-04-13 Pending
Review via email: mp+5504@code.launchpad.net
To post a comment you must log in.
lp:wahcade updated on 2011-03-03
12. By Andy Balcombe <email address hidden> on 2009-05-17

nearly ready for 99pre8

13. By Andy Balcombe <email address hidden> on 2009-05-19

Fix #377827

14. By Andy Balcombe <email address hidden> on 2009-06-15

couple'o'fixes

15. By Andy Balcombe <email address hidden> on 2009-06-28

New music / movie options

16. By Andy Balcombe <email address hidden> on 2009-07-06

Italian translation

17. By Andy Balcombe <email address hidden> on 2009-07-19

Fix for 400054

18. By Andy Balcombe <email address hidden> on 2009-07-19

0.99pre8

19. By Andy Balcombe <email address hidden> on 2010-02-01

Some bug fixes

20. By Andy Balcombe <email address hidden> on 2010-02-03

Added scroll fix

21. By Andy Balcombe <email address hidden> on 2010-04-02

v1.0 pre1

22. By Andy Balcombe <email address hidden> on 2010-04-22

merged enrico-magrella/wahcade/20100413

23. By Andy Balcombe <email address hidden> on 2010-05-09

Fixed: #573073

24. By Andy Balcombe <email address hidden> on 2011-01-07

video playback rewrite, incomplete

25. By Andy Balcombe <email address hidden> on 2011-03-03

movie fix

Unmerged revisions

25. By Andy Balcombe <email address hidden> on 2011-03-03

movie fix

24. By Andy Balcombe <email address hidden> on 2011-01-07

video playback rewrite, incomplete

23. By Andy Balcombe <email address hidden> on 2010-05-09

Fixed: #573073

22. By Andy Balcombe <email address hidden> on 2010-04-22

merged enrico-magrella/wahcade/20100413

21. By Andy Balcombe <email address hidden> on 2010-04-02

v1.0 pre1

20. By Andy Balcombe <email address hidden> on 2010-02-03

Added scroll fix

19. By Andy Balcombe <email address hidden> on 2010-02-01

Some bug fixes

18. By Andy Balcombe <email address hidden> on 2009-07-19

0.99pre8

17. By Andy Balcombe <email address hidden> on 2009-07-19

Fix for 400054

16. By Andy Balcombe <email address hidden> on 2009-07-06

Italian translation

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2009-01-07 17:51:46 +0000
3+++ .bzrignore 2011-03-03 21:06:42 +0000
4@@ -30,3 +30,11 @@
5 .layout_editor.py.marks
6 .wc_common.py.marks
7 .win_main.py.marks
8+.wc_setup.py.marks
9+glade/layout_editor.glade.bak
10+glade/layout_editor.gladep.bak
11+glade/wahcade_setup.glade.bak
12+glade/wahcade_setup.gladep.bak
13+make.log
14+.win_filter.py.marks
15+.filters.py.marks
16
17=== modified file 'VERSION'
18--- VERSION 2008-11-30 10:26:19 +0000
19+++ VERSION 2011-03-03 21:06:42 +0000
20@@ -1,1 +1,1 @@
21-0.99pre5
22+1.0pre1
23
24=== modified file 'bdist_debian.py'
25--- bdist_debian.py 2008-11-30 15:09:04 +0000
26+++ bdist_debian.py 2011-03-03 21:06:42 +0000
27@@ -8,7 +8,8 @@
28 #
29 # Ammended for Wah!Cade by: Andy Balcombe <wahcade@anti-particle.com> 24-MAR-2008
30
31-import os, base64
32+import os
33+import base64
34 import hashlib
35 from distutils.core import Command, Distribution
36 from distutils.dir_util import remove_tree
37@@ -21,6 +22,7 @@
38
39
40 class ControlFile(object):
41+
42 def __init__(self, Installed_Size=0, Long_Description='', Description='', **kwargs):
43 self.options = kwargs
44 self.description = Description
45@@ -36,7 +38,7 @@
46 content = []
47 for o in order:
48 opt = o[2:]
49- if self.options.has_key(opt):
50+ if opt in self.options:
51 content.append('%s: %s' % (opt, self.options[opt]))
52 #content=['%s: %s' % (k, v) for k,v in self.options.iteritems()]
53 content.append('Installed-Size: %d' % self.installed_size)
54@@ -101,7 +103,7 @@
55 md5sums_fn = './md5sums'
56 data_fn = 'data'
57 tgz_ext = '.tar.gz'
58-
59+
60 #
61 md5 = ''
62 # build everything locally
63@@ -121,7 +123,7 @@
64 [m.update(l) for l in file(fname, 'r').readlines()]
65 fname = fname.replace(build_dir, '')[1:]
66 md5 += '%s %s\n' % (m.hexdigest(), fname)
67-
68+
69 # make compressed tarball
70 self.make_archive(os.path.join(dist_dir, data_fn), 'gztar', root_dir=build_dir)
71
72@@ -130,17 +132,17 @@
73
74 # create control file contents
75 ctl = ControlFile(
76- Package = self.name,
77- Version = self.version,
78- Section = self.section,
79+ Package = self.name,
80+ Version = self.version,
81+ Section = self.section,
82 Priority = self.priority,
83- Installed_Size = (installed_size / 1024) + 1,
84- Architecture = 'all',
85+ Installed_Size = (installed_size / 1024) + 1,
86+ Architecture = 'all',
87 Maintainer = self.maintainer,
88- Depends = self.depends,
89- Description = self.description,
90+ Depends = self.depends,
91+ Description = self.description,
92 Long_Description = self.long_description,
93- Recommends = self.recommends,
94+ Recommends = self.recommends,
95 Suggests = self.suggests).getContent()
96
97 # grab scripts
98@@ -154,7 +156,7 @@
99
100 # write control file
101 file(control_fn, 'wb').write(ctl)
102-
103+
104 #write md5sums file
105 file(md5sums_fn, 'wb').write(md5)
106
107@@ -190,9 +192,8 @@
108 # new.deb should not cause the same complaints
109 #rm -rf tmp
110 """ % (package_filename)
111-
112+
113 #write the script & execute it
114 file('fix_deb', 'w').write(fix_script)
115 os.chmod('fix_deb', 0755)
116 os.system('./fix_deb')
117-
118
119=== modified file 'build_deb_package'
120--- build_deb_package 2008-11-30 15:09:04 +0000
121+++ build_deb_package 2011-03-03 21:06:42 +0000
122@@ -22,4 +22,5 @@
123 sudo alien --to-rpm $SOURCE/dist/$NAME*$VERSION*.deb
124 cp -f $SOURCE/$NAME*$VERSION*.rpm $WWW/projects/$NAME
125 mv -f $SOURCE/$NAME*$VERSION*.rpm $SOURCE/dist/rpms
126+mv $SOURCE/dist/$NAME*$VERSION*.deb $SOURCE/dist/debs
127
128
129=== added directory 'config.dist/layouts/simple_1024x768'
130=== added file 'config.dist/layouts/simple_1024x768/layout.lay'
131--- config.dist/layouts/simple_1024x768/layout.lay 1970-01-01 00:00:00 +0000
132+++ config.dist/layouts/simple_1024x768/layout.lay 2011-03-03 21:06:42 +0000
133@@ -0,0 +1,551 @@
134+ 1024
135+ 768
136+ 0
137+ main.png
138+ 1
139+ 5066061
140+ 16777215
141+False
142+ 0
143+ 8421504
144+ 16777215
145+Sans
146+True
147+False
148+ 9.75
149+ 2
150+ 342
151+ 0
152+ 340
153+ 36
154+True
155+ 1
156+ 0
157+ 16777215
158+Arial
159+True
160+False
161+ 16.0
162+ 2
163+ 112
164+ 21
165+ 400
166+ 30
167+True
168+ 1
169+ 0
170+ 16777215
171+Arial
172+True
173+False
174+ 16.0
175+ 2
176+ 512
177+ 21
178+ 400
179+ 30
180+True
181+ 1
182+ 0
183+ 16777215
184+Arial
185+True
186+False
187+ 16
188+ 2
189+ 150
190+ 106
191+ 724
192+ 518
193+True
194+ 1
195+ 0
196+ 255
197+Sans
198+True
199+False
200+ 9.75
201+ 2
202+ 0
203+ 767
204+ 510
205+ 20
206+False
207+ 1
208+ 8421504
209+ 16777215
210+Sans
211+True
212+False
213+ 9.75
214+ 2
215+ 540
216+ 231
217+ 270
218+ 205
219+False
220+ 1
221+ 8421504
222+ 16777215
223+Sans
224+True
225+False
226+ 9.75
227+ 2
228+ 328
229+ 40
230+ 320
231+ 277
232+False
233+ 1
234+ 8421504
235+ 16777215
236+Sans
237+True
238+False
239+ 9.75
240+ 2
241+ 336
242+ 40
243+ 320
244+ 277
245+False
246+ 1
247+ 8421504
248+ 16777215
249+Sans
250+True
251+False
252+ 9.75
253+ 2
254+ 344
255+ 40
256+ 320
257+ 277
258+False
259+ 1
260+ 8421504
261+ 16777215
262+Sans
263+True
264+False
265+ 9.75
266+ 2
267+ 352
268+ 40
269+ 320
270+ 277
271+False
272+ 1
273+ 8421504
274+ 16777215
275+Sans
276+True
277+False
278+ 9.75
279+ 2
280+ 360
281+ 40
282+ 320
283+ 277
284+False
285+ 1
286+ 8421504
287+ 16777215
288+Sans
289+True
290+False
291+ 9.75
292+ 2
293+ 368
294+ 40
295+ 320
296+ 277
297+False
298+ 1
299+ 8421504
300+ 16777215
301+Sans
302+True
303+False
304+ 9.75
305+ 2
306+ 376
307+ 40
308+ 320
309+ 277
310+False
311+ 1
312+ 8421504
313+ 16777215
314+Sans
315+True
316+False
317+ 9.75
318+ 2
319+ 384
320+ 40
321+ 320
322+ 277
323+False
324+ 1
325+ 8421504
326+ 16777215
327+Sans
328+True
329+False
330+ 9.75
331+ 2
332+ 392
333+ 40
334+ 320
335+ 277
336+False
337+ 1
338+ 0
339+ 13408512
340+Sans
341+True
342+False
343+ 9.75
344+ 2
345+ 514
346+ 602
347+ 510
348+ 40
349+False
350+ 1
351+ 0
352+ 16777215
353+Sans
354+True
355+False
356+ 9.75
357+ 2
358+ 514
359+ 643
360+ 510
361+ 20
362+False
363+ 1
364+ 0
365+ 16777215
366+Sans
367+True
368+False
369+ 9.75
370+ 2
371+ 514
372+ 664
373+ 510
374+ 20
375+False
376+ 1
377+ 0
378+ 16777215
379+Sans
380+True
381+False
382+ 9.75
383+ 2
384+ 514
385+ 685
386+ 510
387+ 20
388+False
389+ 1
390+ 0
391+ 16777215
392+Sans
393+True
394+False
395+ 9.75
396+ 2
397+ 514
398+ 706
399+ 510
400+ 20
401+False
402+ 1
403+ 0
404+ 16777215
405+Sans
406+True
407+False
408+ 9.75
409+ 2
410+ 514
411+ 727
412+ 510
413+ 20
414+False
415+ 1
416+ 0
417+ 16777215
418+Sans
419+True
420+False
421+ 9.75
422+ 2
423+ 514
424+ 748
425+ 510
426+ 20
427+ 305
428+ 330
429+ 3289650
430+
431+ 1
432+ 10485760
433+ 16777215
434+True
435+ 1
436+ 3289650
437+ 255
438+Sans
439+True
440+False
441+ 9.75
442+ 2
443+ 0
444+ 5
445+ 305
446+ 20
447+True
448+ 1
449+ 3289650
450+ 65280
451+Sans
452+True
453+False
454+ 9.75
455+ 2
456+ 0
457+ 32
458+ 305
459+ 225
460+True
461+ 1
462+ 3289650
463+ 16777215
464+Sans
465+True
466+False
467+ 9.75
468+ 2
469+ 0
470+ 259
471+ 305
472+ 20
473+True
474+ 1
475+ 3289650
476+ 13408512
477+Sans
478+True
479+False
480+ 9.75
481+ 2
482+ 0
483+ 281
484+ 305
485+ 45
486+ 337
487+ 260
488+ 3289650
489+
490+True
491+ 1
492+ 3289650
493+ 255
494+Sans
495+True
496+False
497+ 9.75
498+ 2
499+ 0
500+ 32
501+ 337
502+ 20
503+True
504+ 1
505+ 3289650
506+ 65280
507+Sans
508+True
509+False
510+ 9.75
511+ 2
512+ 0
513+ 80
514+ 337
515+ 113
516+True
517+ 1
518+ 3289650
519+ 13408512
520+Sans
521+True
522+False
523+ 9.75
524+ 2
525+ 0
526+ 200
527+ 337
528+ 40
529+True
530+ 0
531+ 8421504
532+ 16777215
533+Sans
534+True
535+False
536+ 9.75
537+ 2
538+ 0
539+ 0
540+ 1024
541+ 720
542+False
543+ 0
544+ 8421504
545+ 16777215
546+Sans
547+True
548+False
549+ 9.75
550+ 2
551+ 524
552+ 0
553+ 500
554+ 400
555+False
556+ 0
557+ 8421504
558+ 16777215
559+Sans
560+True
561+False
562+ 9.75
563+ 2
564+ 0
565+ 401
566+ 1024
567+ 87
568+False
569+ 0
570+ 8421504
571+ 16777215
572+Sans
573+True
574+False
575+ 9.75
576+ 2
577+ 30
578+ 0
579+ 640
580+ 430
581+False
582+ 0
583+ 8421504
584+ 16777215
585+Sans
586+True
587+False
588+ 9.75
589+ 2
590+ 40
591+ 0
592+ 640
593+ 430
594+False
595+ 0
596+ 8421504
597+ 16777215
598+Sans
599+True
600+False
601+ 9.75
602+ 2
603+ 50
604+ 0
605+ 640
606+ 430
607+False
608+ 0
609+ 8421504
610+ 16777215
611+Sans
612+True
613+False
614+ 9.75
615+ 2
616+ 60
617+ 0
618+ 640
619+ 430
620+False
621+ 0
622+ 8421504
623+ 16777215
624+Sans
625+True
626+False
627+ 9.75
628+ 2
629+ 70
630+ 0
631+ 640
632+ 430
633+False
634+ 0
635+ 8421504
636+ 16777215
637+Sans
638+True
639+False
640+ 9.75
641+ 2
642+ 80
643+ 0
644+ 640
645+ 430
646+False
647+ 0
648+ 8421504
649+ 16777215
650+Sans
651+True
652+False
653+ 9.75
654+ 2
655+ 90
656+ 0
657+ 640
658+ 430
659+True
660+ 1
661+ 0
662+ 13408512
663+Sans
664+True
665+False
666+ 9.75
667+ 2
668+ 0
669+ 726
670+ 1024
671+ 20
672+True
673+ 1
674+ 0
675+ 16777215
676+Sans
677+True
678+False
679+ 9.75
680+ 2
681+ 0
682+ 748
683+ 1024
684+ 20
685
686=== added file 'config.dist/layouts/simple_1024x768/main.png'
687Binary files config.dist/layouts/simple_1024x768/main.png 1970-01-01 00:00:00 +0000 and config.dist/layouts/simple_1024x768/main.png 2011-03-03 21:06:42 +0000 differ
688=== added file 'config.dist/layouts/simple_1024x768/main.svg'
689--- config.dist/layouts/simple_1024x768/main.svg 1970-01-01 00:00:00 +0000
690+++ config.dist/layouts/simple_1024x768/main.svg 2011-03-03 21:06:42 +0000
691@@ -0,0 +1,111 @@
692+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
693+<!-- Created with Inkscape (http://www.inkscape.org/) -->
694+<svg
695+ xmlns:dc="http://purl.org/dc/elements/1.1/"
696+ xmlns:cc="http://creativecommons.org/ns#"
697+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
698+ xmlns:svg="http://www.w3.org/2000/svg"
699+ xmlns="http://www.w3.org/2000/svg"
700+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
701+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
702+ width="1024"
703+ height="768"
704+ id="svg2882"
705+ sodipodi:version="0.32"
706+ inkscape:version="0.46"
707+ version="1.0"
708+ sodipodi:docname="Simple List.svg"
709+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
710+ inkscape:export-filename="/home/richard/.wahcade/layouts/Simple_1024x768/Simple List.png"
711+ inkscape:export-xdpi="90"
712+ inkscape:export-ydpi="90">
713+ <defs
714+ id="defs2884">
715+ <inkscape:perspective
716+ sodipodi:type="inkscape:persp3d"
717+ inkscape:vp_x="0 : 526.18109 : 1"
718+ inkscape:vp_y="0 : 1000 : 0"
719+ inkscape:vp_z="744.09448 : 526.18109 : 1"
720+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
721+ id="perspective2890" />
722+ </defs>
723+ <sodipodi:namedview
724+ id="base"
725+ pagecolor="#ffffff"
726+ bordercolor="#666666"
727+ borderopacity="1.0"
728+ gridtolerance="10000"
729+ guidetolerance="10"
730+ objecttolerance="10"
731+ inkscape:pageopacity="0.0"
732+ inkscape:pageshadow="2"
733+ inkscape:zoom="0.55827438"
734+ inkscape:cx="278.37028"
735+ inkscape:cy="735.94033"
736+ inkscape:document-units="px"
737+ inkscape:current-layer="layer1"
738+ showgrid="false"
739+ inkscape:showpageshadow="false"
740+ showborder="true"
741+ borderlayer="true"
742+ inkscape:window-width="1024"
743+ inkscape:window-height="702"
744+ inkscape:window-x="0"
745+ inkscape:window-y="24"
746+ showguides="false"
747+ inkscape:guide-bbox="true">
748+ <sodipodi:guide
749+ orientation="1,0"
750+ position="616.18447,386.90653"
751+ id="guide3692" />
752+ <inkscape:grid
753+ type="xygrid"
754+ id="grid4014"
755+ visible="true"
756+ enabled="true" />
757+ </sodipodi:namedview>
758+ <metadata
759+ id="metadata2887">
760+ <rdf:RDF>
761+ <cc:Work
762+ rdf:about="">
763+ <dc:format>image/svg+xml</dc:format>
764+ <dc:type
765+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
766+ </cc:Work>
767+ </rdf:RDF>
768+ </metadata>
769+ <g
770+ inkscape:label="Layer 1"
771+ inkscape:groupmode="layer"
772+ id="layer1"
773+ style="display:inline">
774+ <rect
775+ style="opacity:1;fill:#000000;fill-opacity:1;stroke-width:0.99000001;stroke-miterlimit:4.4000001;stroke-dasharray:0.99, 5.94;stroke-dashoffset:0"
776+ id="rect2898"
777+ width="1314.2858"
778+ height="1062.8572"
779+ x="-149.10706"
780+ y="-205.07777"
781+ ry="21.73378" />
782+ <text
783+ xml:space="preserve"
784+ style="font-size:100px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Technique BRK;-inkscape-font-specification:Technique BRK"
785+ x="211.28438"
786+ y="758"
787+ id="text2892"
788+ sodipodi:linespacing="100%"><tspan
789+ sodipodi:role="line"
790+ id="tspan2894"
791+ x="211.28438"
792+ y="758">Wah!Cade</tspan></text>
793+ <rect
794+ style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.70753038;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
795+ id="rect2398"
796+ width="810"
797+ height="48.292469"
798+ x="107"
799+ y="12.853765"
800+ ry="10.747403" />
801+ </g>
802+</svg>
803
804=== added directory 'config.dist/layouts/simple_640x480'
805=== added file 'config.dist/layouts/simple_640x480/layout.lay'
806--- config.dist/layouts/simple_640x480/layout.lay 1970-01-01 00:00:00 +0000
807+++ config.dist/layouts/simple_640x480/layout.lay 2011-03-03 21:06:42 +0000
808@@ -0,0 +1,551 @@
809+ 640
810+ 480
811+ 0
812+ main.png
813+ 1
814+ 5066061
815+ 16777215
816+False
817+ 0
818+ 8421504
819+ 16777215
820+Sans
821+True
822+False
823+ 9.75
824+ 2
825+ 342
826+ 0
827+ 340
828+ 36
829+True
830+ 1
831+ 0
832+ 16777215
833+Arial
834+True
835+False
836+ 16.0
837+ 2
838+ 30
839+ 19
840+ 280
841+ 30
842+True
843+ 1
844+ 0
845+ 16777215
846+Arial
847+True
848+False
849+ 16.0
850+ 2
851+ 328
852+ 19
853+ 280
854+ 30
855+True
856+ 1
857+ 0
858+ 16777215
859+Arial
860+True
861+False
862+ 16.0
863+ 2
864+ 24
865+ 62
866+ 589
867+ 314
868+True
869+ 1
870+ 0
871+ 255
872+Sans
873+True
874+False
875+ 9.75
876+ 2
877+ 0
878+ 767
879+ 510
880+ 20
881+False
882+ 1
883+ 8421504
884+ 16777215
885+Sans
886+True
887+False
888+ 9.75
889+ 2
890+ 540
891+ 231
892+ 270
893+ 205
894+False
895+ 1
896+ 8421504
897+ 16777215
898+Sans
899+True
900+False
901+ 9.75
902+ 2
903+ 328
904+ 40
905+ 320
906+ 277
907+False
908+ 1
909+ 8421504
910+ 16777215
911+Sans
912+True
913+False
914+ 9.75
915+ 2
916+ 336
917+ 40
918+ 320
919+ 277
920+False
921+ 1
922+ 8421504
923+ 16777215
924+Sans
925+True
926+False
927+ 9.75
928+ 2
929+ 344
930+ 40
931+ 320
932+ 277
933+False
934+ 1
935+ 8421504
936+ 16777215
937+Sans
938+True
939+False
940+ 9.75
941+ 2
942+ 352
943+ 40
944+ 320
945+ 277
946+False
947+ 1
948+ 8421504
949+ 16777215
950+Sans
951+True
952+False
953+ 9.75
954+ 2
955+ 360
956+ 40
957+ 320
958+ 277
959+False
960+ 1
961+ 8421504
962+ 16777215
963+Sans
964+True
965+False
966+ 9.75
967+ 2
968+ 368
969+ 40
970+ 320
971+ 277
972+False
973+ 1
974+ 8421504
975+ 16777215
976+Sans
977+True
978+False
979+ 9.75
980+ 2
981+ 376
982+ 40
983+ 320
984+ 277
985+False
986+ 1
987+ 8421504
988+ 16777215
989+Sans
990+True
991+False
992+ 9.75
993+ 2
994+ 384
995+ 40
996+ 320
997+ 277
998+False
999+ 1
1000+ 8421504
1001+ 16777215
1002+Sans
1003+True
1004+False
1005+ 9.75
1006+ 2
1007+ 392
1008+ 40
1009+ 320
1010+ 277
1011+False
1012+ 1
1013+ 0
1014+ 13408512
1015+Sans
1016+True
1017+False
1018+ 9.75
1019+ 2
1020+ 514
1021+ 602
1022+ 510
1023+ 40
1024+False
1025+ 1
1026+ 0
1027+ 16777215
1028+Sans
1029+True
1030+False
1031+ 9.75
1032+ 2
1033+ 514
1034+ 643
1035+ 510
1036+ 20
1037+False
1038+ 1
1039+ 0
1040+ 16777215
1041+Sans
1042+True
1043+False
1044+ 9.75
1045+ 2
1046+ 514
1047+ 664
1048+ 510
1049+ 20
1050+False
1051+ 1
1052+ 0
1053+ 16777215
1054+Sans
1055+True
1056+False
1057+ 9.75
1058+ 2
1059+ 514
1060+ 685
1061+ 510
1062+ 20
1063+False
1064+ 1
1065+ 0
1066+ 16777215
1067+Sans
1068+True
1069+False
1070+ 9.75
1071+ 2
1072+ 514
1073+ 706
1074+ 510
1075+ 20
1076+False
1077+ 1
1078+ 0
1079+ 16777215
1080+Sans
1081+True
1082+False
1083+ 9.75
1084+ 2
1085+ 514
1086+ 727
1087+ 510
1088+ 20
1089+False
1090+ 1
1091+ 0
1092+ 16777215
1093+Sans
1094+True
1095+False
1096+ 9.75
1097+ 2
1098+ 514
1099+ 748
1100+ 510
1101+ 20
1102+ 305
1103+ 330
1104+ 3289650
1105+
1106+ 1
1107+ 10485760
1108+ 16777215
1109+True
1110+ 1
1111+ 3289650
1112+ 255
1113+Sans
1114+True
1115+False
1116+ 9.75
1117+ 2
1118+ 0
1119+ 5
1120+ 305
1121+ 20
1122+True
1123+ 1
1124+ 3289650
1125+ 65280
1126+Sans
1127+True
1128+False
1129+ 9.75
1130+ 2
1131+ 0
1132+ 32
1133+ 305
1134+ 225
1135+True
1136+ 1
1137+ 3289650
1138+ 16777215
1139+Sans
1140+True
1141+False
1142+ 9.75
1143+ 2
1144+ 0
1145+ 259
1146+ 305
1147+ 20
1148+True
1149+ 1
1150+ 3289650
1151+ 13408512
1152+Sans
1153+True
1154+False
1155+ 9.75
1156+ 2
1157+ 0
1158+ 281
1159+ 305
1160+ 45
1161+ 337
1162+ 260
1163+ 3289650
1164+
1165+True
1166+ 1
1167+ 3289650
1168+ 255
1169+Sans
1170+True
1171+False
1172+ 9.75
1173+ 2
1174+ 0
1175+ 32
1176+ 337
1177+ 20
1178+True
1179+ 1
1180+ 3289650
1181+ 65280
1182+Sans
1183+True
1184+False
1185+ 9.75
1186+ 2
1187+ 0
1188+ 80
1189+ 337
1190+ 113
1191+True
1192+ 1
1193+ 3289650
1194+ 13408512
1195+Sans
1196+True
1197+False
1198+ 9.75
1199+ 2
1200+ 0
1201+ 200
1202+ 337
1203+ 40
1204+True
1205+ 0
1206+ 8421504
1207+ 16777215
1208+Sans
1209+True
1210+False
1211+ 9.75
1212+ 2
1213+ 0
1214+ 0
1215+ 1024
1216+ 720
1217+False
1218+ 0
1219+ 8421504
1220+ 16777215
1221+Sans
1222+True
1223+False
1224+ 9.75
1225+ 2
1226+ 524
1227+ 0
1228+ 500
1229+ 400
1230+False
1231+ 0
1232+ 8421504
1233+ 16777215
1234+Sans
1235+True
1236+False
1237+ 9.75
1238+ 2
1239+ 0
1240+ 401
1241+ 1024
1242+ 87
1243+False
1244+ 0
1245+ 8421504
1246+ 16777215
1247+Sans
1248+True
1249+False
1250+ 9.75
1251+ 2
1252+ 30
1253+ 0
1254+ 640
1255+ 430
1256+False
1257+ 0
1258+ 8421504
1259+ 16777215
1260+Sans
1261+True
1262+False
1263+ 9.75
1264+ 2
1265+ 40
1266+ 0
1267+ 640
1268+ 430
1269+False
1270+ 0
1271+ 8421504
1272+ 16777215
1273+Sans
1274+True
1275+False
1276+ 9.75
1277+ 2
1278+ 50
1279+ 0
1280+ 640
1281+ 430
1282+False
1283+ 0
1284+ 8421504
1285+ 16777215
1286+Sans
1287+True
1288+False
1289+ 9.75
1290+ 2
1291+ 60
1292+ 0
1293+ 640
1294+ 430
1295+False
1296+ 0
1297+ 8421504
1298+ 16777215
1299+Sans
1300+True
1301+False
1302+ 9.75
1303+ 2
1304+ 70
1305+ 0
1306+ 640
1307+ 430
1308+False
1309+ 0
1310+ 8421504
1311+ 16777215
1312+Sans
1313+True
1314+False
1315+ 9.75
1316+ 2
1317+ 80
1318+ 0
1319+ 640
1320+ 430
1321+False
1322+ 0
1323+ 8421504
1324+ 16777215
1325+Sans
1326+True
1327+False
1328+ 9.75
1329+ 2
1330+ 90
1331+ 0
1332+ 640
1333+ 430
1334+True
1335+ 1
1336+ 0
1337+ 13408512
1338+Sans
1339+True
1340+False
1341+ 9.75
1342+ 2
1343+ 0
1344+ 726
1345+ 1024
1346+ 20
1347+True
1348+ 1
1349+ 0
1350+ 16777215
1351+Sans
1352+True
1353+False
1354+ 9.75
1355+ 2
1356+ 0
1357+ 748
1358+ 1024
1359+ 20
1360
1361=== added file 'config.dist/layouts/simple_640x480/main.png'
1362Binary files config.dist/layouts/simple_640x480/main.png 1970-01-01 00:00:00 +0000 and config.dist/layouts/simple_640x480/main.png 2011-03-03 21:06:42 +0000 differ
1363=== added file 'config.dist/layouts/simple_640x480/main.svg'
1364--- config.dist/layouts/simple_640x480/main.svg 1970-01-01 00:00:00 +0000
1365+++ config.dist/layouts/simple_640x480/main.svg 2011-03-03 21:06:42 +0000
1366@@ -0,0 +1,111 @@
1367+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1368+<!-- Created with Inkscape (http://www.inkscape.org/) -->
1369+<svg
1370+ xmlns:dc="http://purl.org/dc/elements/1.1/"
1371+ xmlns:cc="http://creativecommons.org/ns#"
1372+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1373+ xmlns:svg="http://www.w3.org/2000/svg"
1374+ xmlns="http://www.w3.org/2000/svg"
1375+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
1376+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
1377+ width="640"
1378+ height="480"
1379+ id="svg2882"
1380+ sodipodi:version="0.32"
1381+ inkscape:version="0.46"
1382+ version="1.0"
1383+ sodipodi:docname="Simple List.svg"
1384+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
1385+ inkscape:export-filename="/home/richard/.wahcade/layouts/Simple_1024x768/Simple List.png"
1386+ inkscape:export-xdpi="90"
1387+ inkscape:export-ydpi="90">
1388+ <defs
1389+ id="defs2884">
1390+ <inkscape:perspective
1391+ sodipodi:type="inkscape:persp3d"
1392+ inkscape:vp_x="0 : 526.18109 : 1"
1393+ inkscape:vp_y="0 : 1000 : 0"
1394+ inkscape:vp_z="744.09448 : 526.18109 : 1"
1395+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
1396+ id="perspective2890" />
1397+ </defs>
1398+ <sodipodi:namedview
1399+ id="base"
1400+ pagecolor="#ffffff"
1401+ bordercolor="#666666"
1402+ borderopacity="1.0"
1403+ gridtolerance="10000"
1404+ guidetolerance="10"
1405+ objecttolerance="10"
1406+ inkscape:pageopacity="0.0"
1407+ inkscape:pageshadow="2"
1408+ inkscape:zoom="0.45725805"
1409+ inkscape:cx="264.19102"
1410+ inkscape:cy="91.737357"
1411+ inkscape:document-units="px"
1412+ inkscape:current-layer="layer1"
1413+ showgrid="false"
1414+ inkscape:showpageshadow="false"
1415+ showborder="true"
1416+ borderlayer="true"
1417+ inkscape:window-width="1024"
1418+ inkscape:window-height="702"
1419+ inkscape:window-x="0"
1420+ inkscape:window-y="24"
1421+ showguides="false"
1422+ inkscape:guide-bbox="true">
1423+ <sodipodi:guide
1424+ orientation="1,0"
1425+ position="616.18447,386.90653"
1426+ id="guide3692" />
1427+ <inkscape:grid
1428+ type="xygrid"
1429+ id="grid4014"
1430+ visible="true"
1431+ enabled="true" />
1432+ </sodipodi:namedview>
1433+ <metadata
1434+ id="metadata2887">
1435+ <rdf:RDF>
1436+ <cc:Work
1437+ rdf:about="">
1438+ <dc:format>image/svg+xml</dc:format>
1439+ <dc:type
1440+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
1441+ </cc:Work>
1442+ </rdf:RDF>
1443+ </metadata>
1444+ <g
1445+ inkscape:label="Layer 1"
1446+ inkscape:groupmode="layer"
1447+ id="layer1"
1448+ style="display:inline">
1449+ <rect
1450+ style="opacity:1;fill:#000000;fill-opacity:1;stroke-width:0.99000001;stroke-miterlimit:4.4000001;stroke-dasharray:0.99, 5.94;stroke-dashoffset:0"
1451+ id="rect2898"
1452+ width="1314.2858"
1453+ height="1062.8572"
1454+ x="-337.14288"
1455+ y="-291.42859"
1456+ ry="21.73378" />
1457+ <text
1458+ xml:space="preserve"
1459+ style="font-size:100px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Technique BRK;-inkscape-font-specification:Technique BRK"
1460+ x="19.284374"
1461+ y="470"
1462+ id="text2892"
1463+ sodipodi:linespacing="100%"><tspan
1464+ sodipodi:role="line"
1465+ id="tspan2894"
1466+ x="19.284374"
1467+ y="470">Wah!Cade</tspan></text>
1468+ <rect
1469+ style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.70753038;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
1470+ id="rect2398"
1471+ width="600"
1472+ height="48.292469"
1473+ x="20"
1474+ y="10"
1475+ ry="10.747403" />
1476+ </g>
1477+</svg>
1478
1479=== added directory 'config.dist/layouts/simple_800x600'
1480=== added file 'config.dist/layouts/simple_800x600/layout.lay'
1481--- config.dist/layouts/simple_800x600/layout.lay 1970-01-01 00:00:00 +0000
1482+++ config.dist/layouts/simple_800x600/layout.lay 2011-03-03 21:06:42 +0000
1483@@ -0,0 +1,551 @@
1484+ 800
1485+ 600
1486+ 0
1487+ main.png
1488+ 1
1489+ 5066061
1490+ 16777215
1491+False
1492+ 0
1493+ 8421504
1494+ 16777215
1495+Sans
1496+True
1497+False
1498+ 9.75
1499+ 2
1500+ 342
1501+ 0
1502+ 340
1503+ 36
1504+True
1505+ 1
1506+ 0
1507+ 16777215
1508+Arial
1509+True
1510+False
1511+ 16.0
1512+ 2
1513+ 25
1514+ 19
1515+ 370
1516+ 30
1517+True
1518+ 1
1519+ 0
1520+ 16777215
1521+Arial
1522+True
1523+False
1524+ 16.0
1525+ 2
1526+ 404
1527+ 19
1528+ 370
1529+ 30
1530+True
1531+ 1
1532+ 0
1533+ 16777215
1534+Arial
1535+True
1536+False
1537+ 16.0
1538+ 2
1539+ 26
1540+ 65
1541+ 749
1542+ 424
1543+True
1544+ 1
1545+ 0
1546+ 255
1547+Sans
1548+True
1549+False
1550+ 9.75
1551+ 2
1552+ 0
1553+ 767
1554+ 510
1555+ 20
1556+False
1557+ 1
1558+ 8421504
1559+ 16777215
1560+Sans
1561+True
1562+False
1563+ 9.75
1564+ 2
1565+ 540
1566+ 231
1567+ 270
1568+ 205
1569+False
1570+ 1
1571+ 8421504
1572+ 16777215
1573+Sans
1574+True
1575+False
1576+ 9.75
1577+ 2
1578+ 328
1579+ 40
1580+ 320
1581+ 277
1582+False
1583+ 1
1584+ 8421504
1585+ 16777215
1586+Sans
1587+True
1588+False
1589+ 9.75
1590+ 2
1591+ 336
1592+ 40
1593+ 320
1594+ 277
1595+False
1596+ 1
1597+ 8421504
1598+ 16777215
1599+Sans
1600+True
1601+False
1602+ 9.75
1603+ 2
1604+ 344
1605+ 40
1606+ 320
1607+ 277
1608+False
1609+ 1
1610+ 8421504
1611+ 16777215
1612+Sans
1613+True
1614+False
1615+ 9.75
1616+ 2
1617+ 352
1618+ 40
1619+ 320
1620+ 277
1621+False
1622+ 1
1623+ 8421504
1624+ 16777215
1625+Sans
1626+True
1627+False
1628+ 9.75
1629+ 2
1630+ 360
1631+ 40
1632+ 320
1633+ 277
1634+False
1635+ 1
1636+ 8421504
1637+ 16777215
1638+Sans
1639+True
1640+False
1641+ 9.75
1642+ 2
1643+ 368
1644+ 40
1645+ 320
1646+ 277
1647+False
1648+ 1
1649+ 8421504
1650+ 16777215
1651+Sans
1652+True
1653+False
1654+ 9.75
1655+ 2
1656+ 376
1657+ 40
1658+ 320
1659+ 277
1660+False
1661+ 1
1662+ 8421504
1663+ 16777215
1664+Sans
1665+True
1666+False
1667+ 9.75
1668+ 2
1669+ 384
1670+ 40
1671+ 320
1672+ 277
1673+False
1674+ 1
1675+ 8421504
1676+ 16777215
1677+Sans
1678+True
1679+False
1680+ 9.75
1681+ 2
1682+ 392
1683+ 40
1684+ 320
1685+ 277
1686+False
1687+ 1
1688+ 0
1689+ 13408512
1690+Sans
1691+True
1692+False
1693+ 9.75
1694+ 2
1695+ 514
1696+ 602
1697+ 510
1698+ 40
1699+False
1700+ 1
1701+ 0
1702+ 16777215
1703+Sans
1704+True
1705+False
1706+ 9.75
1707+ 2
1708+ 514
1709+ 643
1710+ 510
1711+ 20
1712+False
1713+ 1
1714+ 0
1715+ 16777215
1716+Sans
1717+True
1718+False
1719+ 9.75
1720+ 2
1721+ 514
1722+ 664
1723+ 510
1724+ 20
1725+False
1726+ 1
1727+ 0
1728+ 16777215
1729+Sans
1730+True
1731+False
1732+ 9.75
1733+ 2
1734+ 514
1735+ 685
1736+ 510
1737+ 20
1738+False
1739+ 1
1740+ 0
1741+ 16777215
1742+Sans
1743+True
1744+False
1745+ 9.75
1746+ 2
1747+ 514
1748+ 706
1749+ 510
1750+ 20
1751+False
1752+ 1
1753+ 0
1754+ 16777215
1755+Sans
1756+True
1757+False
1758+ 9.75
1759+ 2
1760+ 514
1761+ 727
1762+ 510
1763+ 20
1764+False
1765+ 1
1766+ 0
1767+ 16777215
1768+Sans
1769+True
1770+False
1771+ 9.75
1772+ 2
1773+ 514
1774+ 748
1775+ 510
1776+ 20
1777+ 305
1778+ 330
1779+ 3289650
1780+
1781+ 1
1782+ 10485760
1783+ 16777215
1784+True
1785+ 1
1786+ 3289650
1787+ 255
1788+Sans
1789+True
1790+False
1791+ 9.75
1792+ 2
1793+ 0
1794+ 5
1795+ 305
1796+ 20
1797+True
1798+ 1
1799+ 3289650
1800+ 65280
1801+Sans
1802+True
1803+False
1804+ 9.75
1805+ 2
1806+ 0
1807+ 32
1808+ 305
1809+ 225
1810+True
1811+ 1
1812+ 3289650
1813+ 16777215
1814+Sans
1815+True
1816+False
1817+ 9.75
1818+ 2
1819+ 0
1820+ 259
1821+ 305
1822+ 20
1823+True
1824+ 1
1825+ 3289650
1826+ 13408512
1827+Sans
1828+True
1829+False
1830+ 9.75
1831+ 2
1832+ 0
1833+ 281
1834+ 305
1835+ 45
1836+ 337
1837+ 260
1838+ 3289650
1839+
1840+True
1841+ 1
1842+ 3289650
1843+ 255
1844+Sans
1845+True
1846+False
1847+ 9.75
1848+ 2
1849+ 0
1850+ 32
1851+ 337
1852+ 20
1853+True
1854+ 1
1855+ 3289650
1856+ 65280
1857+Sans
1858+True
1859+False
1860+ 9.75
1861+ 2
1862+ 0
1863+ 80
1864+ 337
1865+ 113
1866+True
1867+ 1
1868+ 3289650
1869+ 13408512
1870+Sans
1871+True
1872+False
1873+ 9.75
1874+ 2
1875+ 0
1876+ 200
1877+ 337
1878+ 40
1879+True
1880+ 0
1881+ 8421504
1882+ 16777215
1883+Sans
1884+True
1885+False
1886+ 9.75
1887+ 2
1888+ 0
1889+ 0
1890+ 1024
1891+ 720
1892+False
1893+ 0
1894+ 8421504
1895+ 16777215
1896+Sans
1897+True
1898+False
1899+ 9.75
1900+ 2
1901+ 524
1902+ 0
1903+ 500
1904+ 400
1905+False
1906+ 0
1907+ 8421504
1908+ 16777215
1909+Sans
1910+True
1911+False
1912+ 9.75
1913+ 2
1914+ 0
1915+ 401
1916+ 1024
1917+ 87
1918+False
1919+ 0
1920+ 8421504
1921+ 16777215
1922+Sans
1923+True
1924+False
1925+ 9.75
1926+ 2
1927+ 30
1928+ 0
1929+ 640
1930+ 430
1931+False
1932+ 0
1933+ 8421504
1934+ 16777215
1935+Sans
1936+True
1937+False
1938+ 9.75
1939+ 2
1940+ 40
1941+ 0
1942+ 640
1943+ 430
1944+False
1945+ 0
1946+ 8421504
1947+ 16777215
1948+Sans
1949+True
1950+False
1951+ 9.75
1952+ 2
1953+ 50
1954+ 0
1955+ 640
1956+ 430
1957+False
1958+ 0
1959+ 8421504
1960+ 16777215
1961+Sans
1962+True
1963+False
1964+ 9.75
1965+ 2
1966+ 60
1967+ 0
1968+ 640
1969+ 430
1970+False
1971+ 0
1972+ 8421504
1973+ 16777215
1974+Sans
1975+True
1976+False
1977+ 9.75
1978+ 2
1979+ 70
1980+ 0
1981+ 640
1982+ 430
1983+False
1984+ 0
1985+ 8421504
1986+ 16777215
1987+Sans
1988+True
1989+False
1990+ 9.75
1991+ 2
1992+ 80
1993+ 0
1994+ 640
1995+ 430
1996+False
1997+ 0
1998+ 8421504
1999+ 16777215
2000+Sans
2001+True
2002+False
2003+ 9.75
2004+ 2
2005+ 90
2006+ 0
2007+ 640
2008+ 430
2009+True
2010+ 1
2011+ 0
2012+ 13408512
2013+Sans
2014+True
2015+False
2016+ 9.75
2017+ 2
2018+ 0
2019+ 726
2020+ 1024
2021+ 20
2022+True
2023+ 1
2024+ 0
2025+ 16777215
2026+Sans
2027+True
2028+False
2029+ 9.75
2030+ 2
2031+ 0
2032+ 748
2033+ 1024
2034+ 20
2035
2036=== added file 'config.dist/layouts/simple_800x600/main.png'
2037Binary files config.dist/layouts/simple_800x600/main.png 1970-01-01 00:00:00 +0000 and config.dist/layouts/simple_800x600/main.png 2011-03-03 21:06:42 +0000 differ
2038=== added file 'config.dist/layouts/simple_800x600/main.svg'
2039--- config.dist/layouts/simple_800x600/main.svg 1970-01-01 00:00:00 +0000
2040+++ config.dist/layouts/simple_800x600/main.svg 2011-03-03 21:06:42 +0000
2041@@ -0,0 +1,111 @@
2042+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2043+<!-- Created with Inkscape (http://www.inkscape.org/) -->
2044+<svg
2045+ xmlns:dc="http://purl.org/dc/elements/1.1/"
2046+ xmlns:cc="http://creativecommons.org/ns#"
2047+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
2048+ xmlns:svg="http://www.w3.org/2000/svg"
2049+ xmlns="http://www.w3.org/2000/svg"
2050+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
2051+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
2052+ width="800"
2053+ height="600"
2054+ id="svg2882"
2055+ sodipodi:version="0.32"
2056+ inkscape:version="0.46"
2057+ version="1.0"
2058+ sodipodi:docname="Simple List.svg"
2059+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
2060+ inkscape:export-filename="/home/richard/.wahcade/layouts/Simple_1024x768/Simple List.png"
2061+ inkscape:export-xdpi="90"
2062+ inkscape:export-ydpi="90">
2063+ <defs
2064+ id="defs2884">
2065+ <inkscape:perspective
2066+ sodipodi:type="inkscape:persp3d"
2067+ inkscape:vp_x="0 : 526.18109 : 1"
2068+ inkscape:vp_y="0 : 1000 : 0"
2069+ inkscape:vp_z="744.09448 : 526.18109 : 1"
2070+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
2071+ id="perspective2890" />
2072+ </defs>
2073+ <sodipodi:namedview
2074+ id="base"
2075+ pagecolor="#ffffff"
2076+ bordercolor="#666666"
2077+ borderopacity="1.0"
2078+ gridtolerance="10000"
2079+ guidetolerance="10"
2080+ objecttolerance="10"
2081+ inkscape:pageopacity="0.0"
2082+ inkscape:pageshadow="2"
2083+ inkscape:zoom="0.23758383"
2084+ inkscape:cx="-69.308041"
2085+ inkscape:cy="306.04419"
2086+ inkscape:document-units="px"
2087+ inkscape:current-layer="layer1"
2088+ showgrid="false"
2089+ inkscape:showpageshadow="false"
2090+ showborder="true"
2091+ borderlayer="true"
2092+ inkscape:window-width="1024"
2093+ inkscape:window-height="702"
2094+ inkscape:window-x="0"
2095+ inkscape:window-y="24"
2096+ showguides="false"
2097+ inkscape:guide-bbox="true">
2098+ <sodipodi:guide
2099+ orientation="1,0"
2100+ position="616.18447,386.90653"
2101+ id="guide3692" />
2102+ <inkscape:grid
2103+ type="xygrid"
2104+ id="grid4014"
2105+ visible="true"
2106+ enabled="true" />
2107+ </sodipodi:namedview>
2108+ <metadata
2109+ id="metadata2887">
2110+ <rdf:RDF>
2111+ <cc:Work
2112+ rdf:about="">
2113+ <dc:format>image/svg+xml</dc:format>
2114+ <dc:type
2115+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
2116+ </cc:Work>
2117+ </rdf:RDF>
2118+ </metadata>
2119+ <g
2120+ inkscape:label="Layer 1"
2121+ inkscape:groupmode="layer"
2122+ id="layer1"
2123+ style="display:inline">
2124+ <rect
2125+ style="opacity:1;fill:#000000;fill-opacity:1;stroke-width:0.99000001;stroke-miterlimit:4.4000001;stroke-dasharray:0.99, 5.94;stroke-dashoffset:0"
2126+ id="rect2898"
2127+ width="1314.2858"
2128+ height="1062.8572"
2129+ x="-257.14288"
2130+ y="-231.42859"
2131+ ry="21.73378" />
2132+ <text
2133+ xml:space="preserve"
2134+ style="font-size:100px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Technique BRK;-inkscape-font-specification:Technique BRK"
2135+ x="99.284378"
2136+ y="590"
2137+ id="text2892"
2138+ sodipodi:linespacing="100%"><tspan
2139+ sodipodi:role="line"
2140+ id="tspan2894"
2141+ x="99.284378"
2142+ y="590">Wah!Cade</tspan></text>
2143+ <rect
2144+ style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.70753038;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
2145+ id="rect2398"
2146+ width="760"
2147+ height="48.292469"
2148+ x="20"
2149+ y="10"
2150+ ry="10.747403" />
2151+ </g>
2152+</svg>
2153
2154=== modified file 'config.dist/wahcade.ini'
2155--- config.dist/wahcade.ini 2009-01-07 17:51:46 +0000
2156+++ config.dist/wahcade.ini 2011-03-03 21:06:42 +0000
2157@@ -1,9 +1,11 @@
2158 ### wahcade.ini (wahcade v0.99) ###
2159
2160-### Addtionnal Wah!Cade Options ###
2161+### Addtional Wah!Cade Options (not used by MameWAH) ###
2162 fullscreen 1
2163 setup_window_size 400x200
2164 layout_orientation 0
2165+show_list_arrows 0
2166+shuffle_music 0
2167
2168 ### (Global) Screen-Saver Options ###
2169 delay 300
2170@@ -12,13 +14,13 @@
2171 ### Audio Options ###
2172 enable_sounds 0
2173 sound_volume 100
2174-music_path
2175+music_path
2176 enable_music 0
2177 music_volume 70
2178
2179 ### Movie Options ###
2180-intro_movie_file
2181-exit_movie_file
2182+intro_movie_file
2183+exit_movie_file
2184 keep_movie_preview_aspect game_aspect
2185 delay_before_movie_preview 7
2186 music_movie_mix mute_movies
2187@@ -35,14 +37,14 @@
2188 safe_mode 0
2189 show_cursor 0
2190 keyboard_led_states -,-,-
2191-winipac_file
2192-mamewah_ipc_file
2193+winipac_file
2194+mamewah_ipc_file
2195 lcd_com_port 1
2196-lcd_settings
2197+lcd_settings
2198 exit_action choice
2199-app_to_run_on_exit
2200+app_to_run_on_exit
2201
2202 ### Settings used by MAMEWAH ###
2203 current_emulator mame
2204 locked 0
2205-last_ipc
2206+last_ipc
2207
2208=== modified file 'constants.py'
2209--- constants.py 2009-01-07 17:51:46 +0000
2210+++ constants.py 2011-03-03 21:06:42 +0000
2211@@ -4,7 +4,7 @@
2212 # Application: wah!cade
2213 # File: constants.py
2214 # Description: constants file
2215-# Copyright (c) 2005-2009 Andy Balcombe <http://www.anti-particle.com>
2216+# Copyright (c) 2005-2010 Andy Balcombe <http://www.anti-particle.com>
2217 ###
2218 #
2219 # This program is free software; you can redistribute it and/or modify
2220@@ -30,8 +30,9 @@
2221 #application constants
2222 APP_NAME = 'wahcade'
2223 APP_PATH = os.path.abspath(os.getcwd())
2224-VERSION = '0.99pre5'
2225-VERSION_NAME = "Themed Indeed"
2226+CONFIG_DIR = os.path.expanduser('~/.wahcade')
2227+VERSION = '1.0pre1'
2228+VERSION_NAME = "Here we are"
2229 LAYOUT_GLADE_FILE = os.path.join(APP_PATH, 'glade', 'layout_editor.glade')
2230 SETUP_GLADE_FILE = os.path.join(APP_PATH, 'glade', 'wahcade_setup.glade')
2231 LOCALE_DIR = os.path.join(APP_PATH, 'locale')
2232@@ -49,9 +50,9 @@
2233 MAME_INI_FILES = ['mame', 'xmame', 'sdlmame', 'advmame', 'mame32', 'mameosx']
2234
2235 #file types
2236-IMAGE_FILETYPES= ['png', 'jpg', 'jpeg', 'bmp', 'gif']
2237-MOVIE_FILETYPES= ['avi', 'mpg', 'ogg', 'ogv']
2238-MUSIC_FILESPEC = '*.ogg;*.oga;*.mp3;*.flac'
2239+IMAGE_FILETYPES= ['jpg', 'jpeg', 'png', 'bmp', 'gif']
2240+MOVIE_FILETYPES= ['avi', 'mpg', 'mpeg', 'ogg', 'ogv', 'mp4', 'mov', 'wmv', 'flv', 'mkv']
2241+MUSIC_FILESPEC = '*.ogg;*.oga;*.mp3;*.flac;*.mid'
2242
2243 #maximum number of lists per emulator
2244 MAX_LISTS = 100
2245@@ -79,4 +80,3 @@
2246 FTR_CLONES_NO = 0
2247 FTR_CLONES_YES = 1
2248 FTR_CLONES_BETTER = 2
2249-
2250
2251=== modified file 'doc/CHANGELOG'
2252--- doc/CHANGELOG 2009-01-11 16:29:58 +0000
2253+++ doc/CHANGELOG 2011-03-03 21:06:42 +0000
2254@@ -1,13 +1,93 @@
2255 Wah!Cade CHANGELOG
2256 ==================
2257+03.Mar.02011 - Movie fix done? Maybe?
2258+07.Jan.02011 - Movie fix nearly completed.
2259+ - Fixed "updatetotalgames()" bug when adding game ot list manually.
2260+01.Oct.02010 - Added fix to remove_current_game. Thanks to Enrico Magrella.
2261+27.May.02010 - Tweaked scrolled list row calcs. Thanks to sairuk for pointers.
2262+ - Tweaked start / stop timer code.
2263+09.May.02010 - Fixed #573073: setup crashes with sdlmame 0.137u3. Added
2264+ "keyboard" to list of controller types. Thanks to iamlost.
2265+22.Apr.02010 - Merged Wahcade Setup list changes from Enrico Magrella.
2266+02.Apr.02010 - Made "scroll-fix" the default. Use "--old-key-handler" option to
2267+ revert to old keyboard event handling method.
2268+01.Apr.02010 - Added extra movie file types. Thanks to Vítor Baptista.
2269+03.Feb.02010 - Added "--scroll-fix" workaround option to try and improve
2270+ scrolling performance on systems that seem to have broken
2271+ key-press / key-release events (e.g. ubuntu 9.10).
2272+ - Requried minimum pygtk version is now 2.12.
2273+ - Fixed bug in history viewer (caused by #376142).
2274+01.Feb.02010 - Removed unneccessary gtk.glade dependency for most files.
2275+ - Made config dir easier to change (now in constants.py).
2276+21.Jan.02010 - Removed old gtk.Toolips() call.
2277+ - Increased default height of wahcade-setup to 400 pixels.
2278+ - Fixed video playback issue reported by alain40.
2279+11.Jan.02010 - Changed filters.py to fix #376142. Thanks to Jason Carter for
2280+ supplying the fix.
2281+24.Dec.02009 - Adding midi files to music filespec.
2282+19.Jul.02009 - Released 0.99pre8 "Could it be?".
2283+ - Fixed empty game description which could appear in lists.
2284+ - Fixed #400054: Missing games in filters. Thanks to 3vi1 for
2285+ reporting this.
2286+06.Jul.02009 - Added Italian translation. Thanks to Diego Pierotto.
2287+28.Jun.02009 - Stoped music playing during intro / exit movies (reported by
2288+ Pinball Wizard).
2289+ - Added shuffle option for music playlists.
2290+ - Use music_movie_mix in wahcade.ini (merge / mute_movie settings).
2291+15.Jun.02009 - Fixed problem with cpviewler layout images. Thanks to the Pinball
2292+ Wizard for spotting this.
2293+10.Jun.02009 - Hopefully fixed bug #382247. Thanks to hamelg.
2294+09.Jun.02009 - Fixed background image bug reported in the forums by dirkomatic.
2295+ Please see the LAYOUT_EDITOR document for more information
2296+ on how background images are selected.
2297+19.May.02009 - Fixed small bug when writing ctrlr .ini file (missing " chars).
2298+ - Fixed #377827: Launching emulator with alternative command-line
2299+ options doesn't always work. Thanks to Jason Carter.
2300+17.May.02009 - Added "no-pygame" option to disable all joystick use.
2301+ This can be used in combination with --no-gstreamer to definitely
2302+ stop Wah!Cade grabbing the sound device.
2303+ - Added "simple" layouts from battlecat.
2304+ - Fixed #318606: IndexError: list index out of range.
2305+14.Apr.02009 - Pressing Escape key should close Property dialogs on Layout
2306+ Editor.
2307+ - Added mednafen-pce-tg16.ini template from battlecat.
2308+ - Renamed mednafen.ini to madnafe-lynx.ini.
2309+30.Mar.02009 - Released 0.99pre7 "Dizzy".
2310+28.Mar.02009 - Fixed #350088: UnboundLocalError.
2311+ - Added some debug text to get some more info on #318921.
2312+27.Mar.02009 - Released 0.99pre6 "Flumped".
2313+26.Mar.02009 - Added "no-gstreamer" option to disable all music / video.
2314+16.Mar.02009 - Yet another attempt at fixing #318921 (joystick looping).
2315+15.Mar.02009 - Another attempt at fixing #318921 (joystick looping).
2316+02.Mar.02009 - Fix for #318877 (launch game with invalid external app).
2317+ - Added mednafen (Zombie) and Vectrex (battlecat) templates.
2318+ - Added new wahcade.ini option ("show_list_arrows"). Set to 1 to
2319+ show scroll up/down arrows in Games, Options and History Lists.
2320+ - Set delay_before_movie_preview to 0 to disable movie playback.
2321+26.Feb.02009 - Formatted code according to (most) PEP8 standards.
2322+ - Fixed bug that stopped Mame XML / Catver info from populating in
2323+ Setup Editor.
2324+05.Feb.02009 - Another tweak to scrolled_list.py (setattr).
2325+04.Feb.02009 - Fixed potential bug in Setup Editor where mame settings might not
2326+ get saved.
2327+ - Partially fixed #324750 (controls.ini error).
2328+03.Feb.02009 - New simpler version of Scrolled list - hopefully this will be
2329+ faster.
2330+27.Jan.02009 - Added functions to set busy / normal mouse cursor.
2331+ - Possible fix for #318921 (joystick looping).
2332+25.Jan.02009 - Fixed #318606 (bug when emulator exe does not exist).
2333+ - Message window can now wait for a key press to continue.
2334+19.Jan.02009 - Joystick test label now updates properly in Setup Editor.
2335+16.Jan.02009 - Fixes for #317750 and #316668 (crashes on startup).
2336+ - Released 0.99pre5.1 "Fixed Indeed".
2337 11.Jan.02009 - Released 0.99pre5 "Themed Indeed".
2338 10.Jan.02009 - Fixed a few problems with list editor.
2339 - List editor will now attempt to create a list if empty (#0 only).
2340 - Added Daphne template from Gabesword.
2341 04.Jan.02009 - Fixed Layout Editor screen sizing.
2342 24.Dec.02008 - More rotation / layout rework.
2343-23.Dec.02008 - Reworked rotation code.
2344-22.Dec.02008 - Fixed default layouts in Layout Editor.
2345+23.Dec.02008 - Reworked rotation code.
2346+22.Dec.02008 - Fixed default layouts in Layout Editor.
2347 - Disabled Layout Drop down in Layout Editor as it keeps getting
2348 the focus when it shouldn't.
2349 - Created a retro 90deg rotated theme.
2350@@ -21,7 +101,7 @@
2351 - Fixed #308973: History Viewer Traceback Crash.
2352 Thanks to battlecat for reporting this one.
2353 07.Dec.02008 - Finished "one window" changes.
2354-05.Dec.02008 - Started change to use just "one window". Should fix lots of the
2355+05.Dec.02008 - Started change to use just "one window". Should fix lots of the
2356 focus problems. This should also fix the message window display.
2357 30.Nov.02008 - Checked code into launchpad.
2358 - Fixed layout directory naming bug in setup.py.
2359@@ -30,7 +110,7 @@
2360 Thanks to blokeinlondon for reporting this.
2361 26.Nov.02008 - Fixed #301492: Screensaver - changes window type.
2362 Thanks to spudgunman for reporting this.
2363-25.Nov.02008 - Wah!Cade bugs now on launchpad.
2364+25.Nov.02008 - Wah!Cade bugs now on launchpad.
2365 23.Nov.02008 - Started re-theming work. Big thanks to everyone involved.
2366 - Added wahcade to launchpad (not the code yet).
2367 - Tried to fix "video / movie bug" reported by netfire.
2368@@ -39,7 +119,7 @@
2369 by spudgunman.
2370 - Updated default control panel viewer layout.
2371 28.Oct.02008 - Added various Exit... keyboard shortcuts.
2372- - Added hugo, mess (atari 800) emulator templates by Zombie.
2373+ - Added hugo, mess (atari 800) emulator templates by Zombie.
2374 19.Oct.02008 - Added per list background images. See LAYOUT_EDITOR doc for more
2375 information.
2376 - Fixed permssions in config.dist dir. This is probably causing
2377@@ -49,7 +129,7 @@
2378 [clone_of], [display_type], [screen_type], [category]).
2379 - Better search for logo image for mame emulators.
2380 15.Oct.02008 - Fixed current_list bug in mame .ini template files. Spotted by
2381- bagleemo, msdin2002 and spudgunman.
2382+ bagleemo, msdin2002 and spudgunman.
2383 - Fixed missing PIL library warning message. Spotted by emarcellus.
2384 13.Oct.02008 - Fixed "play music" error reported by Dave Baer.
2385 17.Sep.02008 - Stop game video from playing before playing exit movie. Reported
2386@@ -58,10 +138,10 @@
2387 - Some fixes to keep the wahcade main window above desktop panels.
2388 - Added nestopia template from rbrohman.
2389 - Added sdlmame template.
2390-12.Sep.02008 - Added [autorotate] patches from Martin Kalitis.
2391+12.Sep.02008 - Added [autorotate] patches from Martin Kalitis.
2392 - Command line options for external apps are now parsed properly.
2393 Thanks to zerojay for reporting this one.
2394-27.Aug.02008 - Sort key list in Setup Editor.
2395+27.Aug.02008 - Sort key list in Setup Editor.
2396 26.Aug.02008 - More work on the rotation patch.
2397 24.Aug.02008 - Merged Martin Kalitis' excellent layout rotation patches.
2398 - Try and handle errors from gstreamer video object creation.
2399@@ -74,7 +154,7 @@
2400 and http://localarcade.com/screenshotarchive for letting us
2401 include these.
2402 - Background should now display on layout load in Layout Editor.
2403-27.Jun.02008 - Any new .ini config options should now be added to file
2404+27.Jun.02008 - Any new .ini config options should now be added to file
2405 automatically.
2406 24.Jun.02008 - Remember window size in Setup Editor.
2407 22.Jun.02008 - Fixed typo in gstreamer version check. Should play stuff again.
2408@@ -82,8 +162,8 @@
2409 04.Jun.02008 - Added updated Spanish (es) translation from Nicolás Álvarez.
2410 26.May.02008 - Added Full Screen option for Layout Editor (battlecat).
2411 - Fixed volume sliders in Setup Editor (battlecat).
2412-25.May.02008 - "Add emulator" list (Setup Editor) now sorted in alphabetical
2413- order. No longer prompted for a save filename unless one already
2414+25.May.02008 - "Add emulator" list (Setup Editor) now sorted in alphabetical
2415+ order. No longer prompted for a save filename unless one already
2416 exists (battlecat).
2417 - Fixed problem where wahcade woulnd't always pick a layout file
2418 to use.
2419@@ -91,27 +171,27 @@
2420 04.May.02008 - Released 0.27 "Fixed?".
2421 - Fixed deb build script. Problem was caused by using "ar" to
2422 build deb files.
2423-08.Apr.02008 - Added histview files to setup.py. Well spotted by battlecat.
2424+08.Apr.02008 - Added histview files to setup.py. Well spotted by battlecat.
2425 03.Apr.02008 - Added md5sum file to bdist_debian.py.
2426 31.Mar.02008 - Released 0.26 "Splat!".
2427 30.Mar.02008 - Added "save as" dialog to Add Emulator option in Setup Editor.
2428 - Check that current emulator exists when starting up.
2429- - Added list of possible mame ini filenames to constants.py.
2430+ - Added list of possible mame ini filenames to constants.py.
2431 Required because we treat the mame emulator differently to others.
2432 - Enable / disable mame only stuff as required in Setup Editor.
2433 29.Mar.02008 - Create an empty list file when it doesn't already exist.
2434 - Fixed empty options list bug.
2435 28.Mar.02008 - Added some more template ini files. Thanks to battlecat,
2436 KillsTheWeak and robbforce.
2437- - Now picks random artwork from dir matching rom names. Thanks to
2438+ - Now picks random artwork from dir matching rom names. Thanks to
2439 Hioushi (http://www.anti-particle.com/forum/viewtopic.php?t=169).
2440-24.Mar.02008 - Rewrote deb package builder to use setup.py and deb script from
2441+24.Mar.02008 - Rewrote deb package builder to use setup.py and deb script from
2442 http://home.cfl.rr.com/genecash/nokia/making_packages.html
2443 22.Mar.02008 - Fixed About dialog bug in deb package. Thanks to battlecat.
2444-10.Mar.02008 - Fixed drwVideo bug where gstreamer import fails. Thanks to
2445+10.Mar.02008 - Fixed drwVideo bug where gstreamer import fails. Thanks to
2446 stealth for reporting this.
2447 - Removed win32 checks for gstreamer.
2448-17.Feb.02008 - Released 0.25 "Yikes!".
2449+17.Feb.02008 - Released 0.25 "Yikes!".
2450 13.Feb.02008 - Added better error handling for gstreamer music object creation.
2451 Thanks to bonzo for help with this one.
2452 03.Feb.02008 - Stopped game movies playing during intro / exit movies playback.
2453@@ -126,12 +206,12 @@
2454 13.Jan.02008 - Added a couple of bug fixes from nellistc (scroll and cpviewer).
2455 - Fixed movie player screen saver.
2456 - Added intro movie playback.
2457-27.Dec.02007 - Re-worked joystick support in the Setup Editor.
2458+27.Dec.02007 - Re-worked joystick support in the Setup Editor.
2459 21.Dec.02007 - Added zerodiv's excellent joystick patch. This requires pygame.
2460 16.Dec.02007 - Added better mouse support to Setup Editor keys dialog.
2461 10.Dec.02007 - Added Game List Editor.
2462 08.Dec.02007 - Improved mouse support.
2463- - Tweaked shutdown stuff to be more like MameWAH. Added reboot
2464+ - Tweaked shutdown stuff to be more like MameWAH. Added reboot
2465 option too.
2466 05.Dec.02007 - Added nellistc's shutdown patch.
2467 03.Dec.02007 - Got trackball / spinner scrolling roughly implemented.
2468@@ -140,10 +220,10 @@
2469 to "Most Played" or "Longest Played" types.
2470 19.Oct.02007 - Released 0.23 "Wet Your Whistle".
2471 14.Oct.02007 - Added some template .ini files for the MESS emulator - cheers to
2472- SeTTleR. The run_mess.sh script should be in the wahcade's
2473+ SeTTleR. The run_mess.sh script should be in the wahcade's
2474 doc/samples directory.
2475 13.Oct.02007 - Finished off music stuff.
2476- - Added rotation for History Viewer.
2477+ - Added rotation for History Viewer.
2478 10.Oct.02007 - Finished up the new template system in the Setup Editor.
2479 - Added next / previous music track keys. More music tidy-up.
2480 - Added support for vertical layouts. (Text & Lists can be rotated).
2481@@ -154,11 +234,11 @@
2482 - Added drop-down list of layouts in the Layout Editor.
2483 18.Sep.02007 - Implemented Logo images in layouts. And check for list specific
2484 background images too. Thanks to captbaritone for spotting this.
2485-06.Sep.02007 - Added music config to Setup Editor.
2486+06.Sep.02007 - Added music config to Setup Editor.
2487 - Added another patch (change to emulator dir) from Sylvain Faveau.
2488-04.Sep.02007 - Fixed bug in layout editor height props. Cheers to 3NF for
2489- spotting this one.
2490-22.Aug.02007 - Started to add music browsing / playback.
2491+04.Sep.02007 - Fixed bug in layout editor height props. Cheers to 3NF for
2492+ spotting this one.
2493+22.Aug.02007 - Started to add music browsing / playback.
2494 21.Aug.02007 - Lots of messing around with file encoding stuff in filters.py.
2495 - Fixed mameinfo.xml generation in Setup Editor.
2496 15.Aug.02007 - Impmenting new emulator tempate system in Setup Editor.
2497@@ -167,23 +247,23 @@
2498 08.Aug.02007 - Released 0.22 "Viva Viet Vegas".
2499 - Tidied up gst video initialisation.
2500 07.Aug.02007 - Updated a few of the docs / quick start guide.
2501-01.Aug.02007 - Added generate XML file button for mame in Setup Editor.
2502+01.Aug.02007 - Added generate XML file button for mame in Setup Editor.
2503 30.Jul.02007 - Fixed start up bug (image not displayed) in Layout Editor.
2504 - Fixed missing image bug when emulators are switched. Cheers to
2505 SeTTleR and ztomiccomputers for spotting this one.
2506 - Added German (de) translation - huge thanks to SeTTleR.
2507 29.Jul.02007 - Finished off CPViewer bindings stuff.
2508-27.Jul.02007 - Store fullscreen setting in wahcade.ini file. Added fullscreen
2509+27.Jul.02007 - Store fullscreen setting in wahcade.ini file. Added fullscreen
2510 option to Setup Editor.
2511- - Cleaned up debian packing script.
2512+ - Cleaned up debian packing script.
2513 25.Jul.02007 - Build proper debian / ubuntu package with dependencies. RPM too.
2514 23.Jul.02007 - Expanded CPViewer bindings.
2515-15.Jul.02007 - Display correct menu headings in options dialog.
2516+15.Jul.02007 - Display correct menu headings in options dialog.
2517 08.Jun.02007 - Optimized gstreamer video widget a bit.
2518 06.Jun.02007 - Replaced mplayer video widget with gstreamer one.
2519 - Changed Movie Volume checkbox in Setup Editor to a sliding scale.
2520 02.Jun.02007 - Released 0.21 "Ten Toes Hanging".
2521-01.Jun.02007 - Added progress bar to "please wait..." dialog on Setup Filters.
2522+01.Jun.02007 - Added progress bar to "please wait..." dialog on Setup Filters.
2523 30.May.02007 - Added NMS file support (Thanks to lowlight for suggesting this).
2524 28.May.02007 - Added Delete Emulator & Delete Emu List options to Setup Editor.
2525 26.May.02007 - Fixed config file copying bug. Should be able to delete files
2526@@ -210,7 +290,7 @@
2527 17.Apr.02007 - Big thanks for Sylvain Faveau for the French translation.
2528 08.Apr.02007 - Fixed screen saver bug in Setup Editor - it should now recognize
2529 the launch_scr option.
2530-29.Mar.02007 - Spanish translation - Huge thanks to Nicolás Álvarez.
2531+29.Mar.02007 - Spanish translation - Huge thanks to Nicolás Álvarez.
2532 17.Mar.02007 - Released 0.19 "Nose Furnace".
2533 16.Mar.02007 - Fixed layout bug that left dots on the screen.
2534 13.Mar.02007 - Added external screen saver function (set "saver_type" in
2535@@ -223,25 +303,25 @@
2536 16.Feb.02007 - Fixed another filename matching bug.
2537 15.Feb.02007 - Changing Emulator List name in Setup Editor now updates the drop
2538 down list selection.
2539-24.Jan.02007 - Fixed bug which let a game be added to a list multiple times.
2540+24.Jan.02007 - Fixed bug which let a game be added to a list multiple times.
2541 - Cleaned up rom filename detection code (Thanks to Relayer for
2542 reporting this bug).
2543-24.Jan.02007 - Added setup filters to Setup Editor (mame only).
2544+24.Jan.02007 - Added setup filters to Setup Editor (mame only).
2545 20.Jan.02007 - Huge thanks to Daniel Nylander for providing the Swedish (sv)
2546- translation.
2547-18.Jan.02007 - Hopefully fixed multiple screensaver timer bug.
2548+ translation.
2549+18.Jan.02007 - Hopefully fixed multiple screensaver timer bug.
2550 15.Jan.02007 - Added support for per-list layouts (<emu-name>-?.lay).
2551- - Seemed to actually have fixed the "black video window" bug.
2552+ - Seemed to actually have fixed the "black video window" bug.
2553 12.Jan.02007 - Released 0.17 "Jelly Result".
2554 09.Jan.02007 - Added a couple of reset options to the Setup Editor.
2555 - Made filters work with Mame versions > 0.106.
2556 08.Jan.02007 - Fixed "missing image" lookups - they should now work as advertised.
2557- - Made sure Game List is "on top" of other widgets.
2558+ - Made sure Game List is "on top" of other widgets.
2559 Cheers again to robbforce for reporting these out.
2560 21.Dec.02006 - Released 0.16 "Avalon".
2561 16.Dec.02006 - Added Auto Launch Apps option to Setup Editor (Emulator tab).
2562 - Added Wrap List option to Setup Editor (Wah!Cade tab).
2563- - History Viewer heading now shows Game Title instead of Rom Name.
2564+ - History Viewer heading now shows Game Title instead of Rom Name.
2565 14.Dec.02006 - Implemented background colours on Main & History Viewer layouts.
2566 You might need to tidy up your layouts in the editor!
2567 13.Dec.02006 - Fixed setting window width & height in the Setup Editor.
2568@@ -251,8 +331,8 @@
2569 updated with any missing files.
2570 10.Dec.02006 - Added label alignment to layouts.
2571 - History Viewer now has it's own layout file.
2572-06.Dec.02006 - Don't expand paths that start with "~/" when saving .ini files.
2573-04.Dec.02006 - Default startup to fullscreen mode (this matches MameWAH). To
2574+06.Dec.02006 - Don't expand paths that start with "~/" when saving .ini files.
2575+04.Dec.02006 - Default startup to fullscreen mode (this matches MameWAH). To
2576 start in windowed mode use the "-w" commandline option.
2577 30.Nov.02006 - The wahcade.ini "wrap_list" setting now works.
2578 - Rewrote scolled list row font size calcs.
2579@@ -270,11 +350,11 @@
2580 27.Nov.02006 - Values of spinner widgets should now save properly in the Setup
2581 Editor (Cheers to Buks again).
2582 26.Nov.02006 - File -> Quit show now work in Layout Editor (Cheers Buks).
2583-25.Nov.02006 - Updated setup.py (for building a windows version with py2exe).
2584+25.Nov.02006 - Updated setup.py (for building a windows version with py2exe).
2585 - Fixed bug where the current game was not saved to ini file when
2586 using mouse.
2587-23.Nov.02006 - Fixed some bugs (some browse buttons not working) in the Setup
2588- Editor (cheers to Buks for spotting them). The "Keys" tab now
2589+23.Nov.02006 - Fixed some bugs (some browse buttons not working) in the Setup
2590+ Editor (cheers to Buks for spotting them). The "Keys" tab now
2591 saves any changes made too!
2592 22.Nov.02006 - Improved locale settings a bit (improving non-ascii unicode text).
2593 - Fixed "IndexError: list index out of range bug" in scrolled_list.py.
2594@@ -284,34 +364,34 @@
2595 "remove game from list", "select emulator" and "select game list"
2596 now work.
2597 19.Nov.02006 - Currently selected game now saved again.
2598- - When jumping to next / previous game list, check for "cycle_list"
2599- setting in relevant .ini files. Also added this feature to
2600+ - When jumping to next / previous game list, check for "cycle_list"
2601+ setting in relevant .ini files. Also added this feature to
2602 Wahcade Setup.
2603 - Updated keyboard & mouse handling.
2604 18.Nov.02006 - Fixed warning error when elementtree package is missing.
2605 17.Nov.02006 - (Hopefully) modified Wah!Cade so it can be internationalized.
2606 15.Nov.02006 - Added Wah!Cade icon to windows.
2607- - Closing About... Dialog now uses the Launch_Game & Exit keys as
2608+ - Closing About... Dialog now uses the Launch_Game & Exit keys as
2609 they are defined in the ~/.wahcade/ctrl/default.ini file.
2610 14.Nov.02006 - Added multiple selection feature to Layout Editor.
2611- - Added option to Layout Editor view menu to keep property dialogs
2612+ - Added option to Layout Editor view menu to keep property dialogs
2613 "on top".
2614 - Fixed setup.py so it should now be possible to build a windows .exe
2615 using py2exe.
2616-13.Nov.02006 - Emulator output is now sent to ~/.wahcade/emulator.log unless
2617+13.Nov.02006 - Emulator output is now sent to ~/.wahcade/emulator.log unless
2618 debug mode is on.
2619 09.Nov.02006 - Added check for python version on startup (must be at least 2.4.0).
2620-08.Nov.02006 - Reworked scrolling lists, so the mouse can now be used if "mouse = 1"
2621- in ~/.wahcade/ctrlr/default.ini file.
2622- - Mouse scroll wheel (up / down) is now detected - use MOUSE_SCROLLUP
2623- and MOUSE_SCROLLDOWN in the ~/.wahcade/ctrlr/default.ini file.
2624+08.Nov.02006 - Reworked scrolling lists, so the mouse can now be used if "mouse = 1"
2625+ in ~/.wahcade/ctrlr/default.ini file.
2626+ - Mouse scroll wheel (up / down) is now detected - use MOUSE_SCROLLUP
2627+ and MOUSE_SCROLLDOWN in the ~/.wahcade/ctrlr/default.ini file.
2628 30.Oct.02006 - Released 0.14 "Dead Man".
2629 - Fixed Key Press Dialog display bug.
2630 - Fixed .deb package bug which stopped default layouts being included.
2631 25.Oct.02006 - Layout Editor now quits with a useful error message when no config
2632 files are found.
2633 - Better defaults for the CPViewer config.
2634-24.Oct.02006 - Fixed save on exit bug in Setup & Layout Editors.
2635+24.Oct.02006 - Fixed save on exit bug in Setup & Layout Editors.
2636 - Fixed *huge* bug in mamewah_ini.py that meant no previously empty
2637 options could be updated.
2638 - Now makes seconds attempt to populate list with games if none
2639@@ -322,8 +402,8 @@
2640 - Released 0.13.2 "Oh Dear".
2641 17.Oct.02006 - Quit menu in wahcade-setup & save while quitting now work properly.
2642 Thanks to Aaron Greenspan for these.
2643-13.Oct.02006 - Ooops. Added a doc file for wahcade-setup.
2644- - Included the templates directory in the tarball.
2645+13.Oct.02006 - Ooops. Added a doc file for wahcade-setup.
2646+ - Included the templates directory in the tarball.
2647 - Hopefully fixed the dreaded sys.path[0] error.
2648 - Released 0.13.1 "Errr".
2649 11.Oct.02006 - Released 0.13 "Gimme Danger".
2650
2651=== modified file 'doc/INI_FILES'
2652--- doc/INI_FILES 2008-11-30 10:26:19 +0000
2653+++ doc/INI_FILES 2011-03-03 21:06:42 +0000
2654@@ -12,6 +12,8 @@
2655 fullscreen 0 #fullscreen display (0=no, 1=yes)
2656 setup_window_size 400x200 #size of Setup Editor window (width x height)
2657 layout_orientation 0 #orientation of current layout (0,90,180,270 degrees).
2658+show_list_arrows 0 #show scroll up/down arrows in games, options and history lists (0=no, 1=yes)
2659+shuffle_music 0 #shuffle music playlist when loaded (0=no, 1=yes)
2660
2661 ### (Global) Screen-Saver Options ###
2662 delay 300 #screen saver delay in seconds (0 to disable)
2663@@ -28,8 +30,8 @@
2664 intro_movie_file #intro movie filename
2665 exit_movie_file #exit movie filename
2666 keep_movie_preview_aspect game_aspect #N/A
2667-delay_before_movie_preview 7 #movie delay in seconds
2668-music_movie_mix mute_movies #mute_movies / merge / pause_music
2669+delay_before_movie_preview 7 #movie delay in seconds (0 to disable ALL movie playback)
2670+music_movie_mix mute_movies #mute_movies / merge
2671 movie_volume 100 #movie volume (0-100%)
2672
2673 ### Misc Options ###
2674@@ -146,7 +148,7 @@
2675 list_title Favourites #title of your choice
2676
2677 ### Games List Settings ###
2678-cycle_list 1 #include this list when changing to next / previous lists
2679+cycle_list 1 #include this list when changing to next / previous lists
2680 list_type normal #the type of list: normal / most_played / longest_played
2681 display_clone_info 0 #N/A
2682 max_favorites 0 #N/A
2683@@ -163,9 +165,9 @@
2684 Notes:
2685 ------
2686 * for information on configuring the keyboard, mouse & joystick see the KEYS document.
2687-* emu_name-0.ini does not have the list_type, display_clone_info or max_favorites
2688+* emu_name-0.ini does not have the list_type, display_clone_info or max_favorites
2689 settings, as these properties for the main list are fixed.
2690-
2691+
2692 * commandline_format flags:
2693 As well as regular switches etc., the following strings can be used, which Wah!Cade will replace
2694 with information on the currently selected game when the application is launched:
2695@@ -174,7 +176,7 @@
2696 [romext] is replaced by rom_extension (exluding the '.')
2697 [autorotate] will rotate the game to match the current layouts rotation (Mame only)
2698 [year] is replaced by rom year
2699- [manufacturer] is replaced by rom manufacturer
2700+ [manufacturer] is replaced by rom manufacturer
2701 [clone_of] is replaced by "parent" rom name
2702 [display_type] is replaced by display type
2703 [screen_type] is replaced by screen type
2704
2705=== modified file 'doc/INSTALL'
2706--- doc/INSTALL 2009-01-07 17:51:46 +0000
2707+++ doc/INSTALL 2011-03-03 21:06:42 +0000
2708@@ -4,8 +4,8 @@
2709 Wah!Cade Requirements
2710 =====================
2711 To run wah!cade you'll need:
2712-* python >= 2.4 (http://www.python.org)
2713-* pygtk2 >= 2.8 (http://www.pygtk.org)
2714+* python >= 2.4 (http://www.python.org)
2715+* pygtk2 >= 2.12 (http://www.pygtk.org)
2716 * chardet >= 1.0 (http://chardet.feedparser.org)
2717 * elementtree / celementtree (http://effbot.org/zone/element-index.htm)
2718 elementree is not required for python >= 2.5 as it's included by default
2719@@ -20,11 +20,11 @@
2720
2721 Installation Notes
2722 ==================
2723-Either download and install the Debian / RPM packages, or get the source code
2724+Either download and install the Debian / RPM packages, or get the source code
2725 and:
2726
2727 Method 1)
2728- Extract the contents of the tarball into a suitable directory within
2729+ Extract the contents of the tarball into a suitable directory within
2730 your home directory and then see the Quick Start Guide on the website and
2731 the README file for information on initial setup & configuration, etc.
2732
2733@@ -34,12 +34,12 @@
2734 ./install
2735 this should install wahcade in the /usr/local/share/wahcade directory.
2736
2737-The default config files are stored in wahcade/config.dist. When Wah!Cade is
2738+The default config files are stored in wahcade/config.dist. When Wah!Cade is
2739 first run these are copied into the users ~/.wahcade directory.
2740
2741
2742 =================================================
2743-Wah!Cade is Copyright (c) 2005-2009 Andy Balcombe
2744+Wah!Cade is Copyright (c) 2005-2010 Andy Balcombe
2745 email: wahcade at anti-particle dot com
2746 =================================================
2747
2748
2749=== modified file 'doc/LAYOUT_EDITOR'
2750--- doc/LAYOUT_EDITOR 2009-01-07 17:51:46 +0000
2751+++ doc/LAYOUT_EDITOR 2011-03-03 21:06:42 +0000
2752@@ -1,6 +1,6 @@
2753 Wah!Cade Layout Editor
2754 ======================
2755-The layout editor supports modifying the Main, Options, Message, Screen Saver
2756+The layout editor supports modifying the Main, Options, Message, Screen Saver
2757 and the Control Panel Viewer windows.
2758
2759
2760@@ -17,12 +17,12 @@
2761 The current layout files are loaded by default.
2762
2763 The various settings for the currently selected item can be changed using
2764- the Item Properties window (Ctrl + P).
2765-
2766-
2767+ the Item Properties window (Ctrl + P).
2768+
2769+
2770 Keyboard:
2771 =========
2772- Cursor Keys: Change the position of selected items.
2773+ Cursor Keys: Change the position of selected items.
2774 Shift + Cursor Keys: Change the size of selected items.
2775
2776
2777@@ -37,7 +37,7 @@
2778
2779 Layout Notes:
2780 =============
2781-Wah!Cade will check for the following layout and image files in the order
2782+Wah!Cade will check for the following layout and image files in the order
2783 specified below. If a given file does not exist, then Wah!Cade will check for
2784 the next one in the hierarchy.
2785
2786@@ -55,23 +55,25 @@
2787 ~/.wahcade/layouts/
2788 classic_640x480/layout.lay default Wah!Cade layout
2789
2790-
2791+
2792 Background Images
2793 -----------------
2794+ Note: This will only work if no image is specified in the layout file.
2795+
2796 <emu_name>-?-main.??? emulator & custom list specific main backgound image
2797- <emu_name>-main.??? emulator specific main backgound image
2798- main.??? general layout main backgound image
2799-
2800+ <emu_name>-main.??? emulator specific main backgound image
2801+ main.??? general layout main backgound image
2802+
2803 <emu_name>-?-options.??? emulator & custom list specific options menu backgound image
2804- <emu_name>-options.??? emulator specific options menu backgound image
2805- options.??? general layout options menu backgound image
2806-
2807+ <emu_name>-options.??? emulator specific options menu backgound image
2808+ options.??? general layout options menu backgound image
2809+
2810 <emu_name>-?-message.??? emulator & custom list specific message box backgound image
2811- <emu_name>-message.??? emulator specific message box backgound image
2812- message.??? general layout message box backgound image
2813-
2814-
2815-Artwork Images
2816+ <emu_name>-message.??? emulator specific message box backgound image
2817+ message.??? general layout message box backgound image
2818+
2819+
2820+Artwork Images
2821 --------------
2822 <game_rom_name>.??? game name
2823 <game_clone_name>.??? "clone of" game name
2824@@ -82,15 +84,15 @@
2825 art?.??? artwork specific 'no pic' image
2826 art.??? general layout 'no pic' image
2827 ~/.wahcade/pixmaps/empty.png default 'no pic' image
2828-
2829-
2830+
2831+
2832 Main Logo Images
2833 ----------------
2834 <emu_name>-?-logo.??? emulator & custom list specific logo image
2835 <emu_name>-logo.??? emulator specific logo image
2836 <emu_name>logo.??? emulator specific logo image
2837 logo.??? general layout logo image
2838- (logo images must be in same dir as layout
2839+ (logo images must be in same dir as layout
2840 files)
2841
2842 Movie Files
2843@@ -105,15 +107,15 @@
2844 ### may be: avi or mpg
2845 <emu_name> is the emulator name, e.g. mame, zsnes, etc.
2846 <rotation> is layouts rotation angle (0, 90, 180, 270)
2847-
2848-
2849+
2850+
2851 Notes:
2852 ======
2853-* Any fonts that a layout requires should be installed first
2854+* Any fonts that a layout requires should be installed first
2855 (e.g. copy the font files into your ~/.fonts directory).
2856
2857 =================================================
2858-Wah!Cade is Copyright (c) 2005-2009 Andy Balcombe
2859+Wah!Cade is Copyright (c) 2005-2010 Andy Balcombe
2860 email: wahcade at anti-particle dot com
2861 =================================================
2862
2863
2864=== modified file 'doc/README'
2865--- doc/README 2009-01-07 17:51:46 +0000
2866+++ doc/README 2011-03-03 21:06:42 +0000
2867@@ -51,13 +51,13 @@
2868 ================
2869 to run Wah!Cade:
2870 wahcade
2871-
2872+
2873 to run the Layout Editor:
2874 wahcade-layout-editor
2875-
2876+
2877 to run the Setup Editor:
2878 wahcade-setup
2879-
2880+
2881 or, if you're running from the source directory:
2882 cd /path/to/wahcade
2883 ./wahcade.py
2884@@ -70,7 +70,9 @@
2885 -w, --window Set windowed mode
2886 -f, --full-screen Set fullscreen mode
2887 -d, --debug Set debug mode (disables pysco)
2888-
2889+ --no-gstreamer Set to disable all gstreamer use (music / video playback)
2890+ --no-pygame Set to disable all pygame use (joysticks)
2891+ --old-key-handler Set to revert to old keyboard event handling
2892 * you need to change your desktop resolution to match your chosen layout if you
2893 want full-screen wah!cade to look right.
2894
2895@@ -82,30 +84,32 @@
2896 and for letting me include some of the default MameWAH config files and layouts
2897 in the wah!cade package.
2898 * Buks & battlecat for artwork, testing & suggestions.
2899- * Robbforce for the Arch-Linux port, FreeBSD news, bug reports and suggestions.
2900- * Sylvan Faveau, Settler, Mike Crawford, Mike Schwartz, nellistic, 3NF,
2901+ * Robbforce for the Arch-Linux port, FreeBSD news, bug reports and suggestions.
2902+ * Sylvan Faveau, Settler, Mike Crawford, Mike Schwartz, nellistic, 3NF,
2903 Bob Clough, Jim Merullo, Jose Herran & more for patches, bug reports and patience.
2904 * The translators: SeTTleR, Nicolás Álvarez. Sylvan Faveau and Daniel Nylander.
2905 * all the M.A.M.E. developers (http://www.mame.net/)
2906 * all the x.mame developers (http://x.mame.net/)
2907+ * everyone from the forums who have helped out with bug reporting,
2908+ feature suggestions and more.
2909
2910
2911 Supported OS
2912 ============
2913-Wah!Cade has been tested on:
2914-* Ubuntu "Hardy Heron" 8.04 / xmame 0.106 / sdlmame 0.125
2915-I've also had reports of it working on Arch, Debian (etch), Gentoo, FreeBSD,
2916-Mac OS X and Windows. YMMV.
2917+Wah!Cade is developed on:
2918+* Ubuntu "Karmic Koala" 9.10 / sdlmame 0.132
2919+I've also had reports of it working on Arch, Debian (etch), Gentoo, FreeBSD,
2920+Mac OS X, Windows and even the PS3. YMMV.
2921
2922 Comments
2923 ========
2924-Check the Wah!Cade Forums:
2925- http://www.anti-particle.com/forum/index.php
2926+Check the Wah!Cade Forums:
2927+ http://www.anti-particle.com/forum
2928 If you have any bug reports, suggestions, features, patches or comments then
2929 please contact me at the address below...
2930
2931 =================================================
2932-Wah!Cade is Copyright (c) 2005-2009 Andy Balcombe
2933+Wah!Cade is Copyright (c) 2005-2010 Andy Balcombe
2934 email: wahcade at anti-particle dot com
2935 =================================================
2936
2937
2938=== modified file 'doc/TODO'
2939--- doc/TODO 2009-01-07 17:51:46 +0000
2940+++ doc/TODO 2011-03-03 21:06:42 +0000
2941@@ -7,7 +7,7 @@
2942 ---------
2943 * Rotate video if necessary
2944 * Detect keyboard & mouse events when mouse pointer is over a video window
2945-* Add Nelistc's LIRC patch
2946+* Add Nelistc's LIRC patch (if I can find it!)
2947 * Add various EXIT..., OP_MENU_HIDE actions
2948
2949
2950@@ -26,7 +26,7 @@
2951 Postby spudgunman on 24 Oct 2008 07:01 am
2952 could I put in a feature request for recursive directory searching option for ROM directory
2953 for instance I have roms like:
2954-
2955+
2956 SNES
2957 ../USA
2958 ../Japan
2959
2960=== modified file 'filters.py'
2961--- filters.py 2009-01-07 17:51:46 +0000
2962+++ filters.py 2011-03-03 21:06:42 +0000
2963@@ -5,7 +5,7 @@
2964 # Application: wah!cade
2965 # File: filters.py
2966 # Description: routines to read / write mamewah filters and lists
2967-# Copyright (c) 2005-2009 Andy Balcombe <http://www.anti-particle.com>
2968+# Copyright (c) 2005-2010 Andy Balcombe <http://www.anti-particle.com>
2969 ###
2970 #
2971 # This program is free software; you can redistribute it and/or modify
2972@@ -86,8 +86,8 @@
2973 'dial': u'Spinner (or 360\xb0 Wheel)',
2974 'trackball': u'Trackball',
2975 'pedal': u'Pedal',
2976- '': u'None'
2977-}
2978+ 'keyboard': u'Keyboard',
2979+ '': u'None'}
2980
2981
2982 def get_file_encoding(filename):
2983@@ -99,11 +99,12 @@
2984 detector.feed(line)
2985 i += 1
2986 #done or hit max lines (it takes ages to read a large file)
2987- if detector.done or i >= 2000:
2988+ if detector.done or i >= 2000:
2989 break
2990 detector.close()
2991 return detector.result
2992-
2993+
2994+
2995 def open_file(filename, filemode='r'):
2996 """opens given filename, and autodetects the encoding"""
2997 #detect encoding
2998@@ -112,12 +113,13 @@
2999 except:
3000 file_enc = sys.getdefaultencoding()
3001 #use utf8 instead of ascii
3002- if file_enc.lower() == 'ascii':
3003+ if file_enc.lower() == 'ascii':
3004 file_enc = 'utf8'
3005 #open file using correct encoding
3006- f = codecs.open(filename, mode=filemode, encoding=file_enc)
3007+ f = codecs.open(filename, mode=filemode, encoding=file_enc)
3008 return f, file_enc
3009-
3010+
3011+
3012 def get_dat_game_item(dat_filename):
3013 """read dat file"""
3014 #get category info
3015@@ -165,27 +167,27 @@
3016 l = value[2:-2].split()
3017 for i in range(0, len(l) - 1, 2):
3018 vid[l[i]] = l[i+1]
3019- if vid.has_key('screen'):
3020+ if 'screen' in vid:
3021 d['display_type'] = vid['screen']
3022- if vid.has_key('orientation'):
3023+ if 'orientation' in vid:
3024 d['screen_type'] = vid['orientation']
3025 elif key == '\tdriver':
3026 driver = {}
3027 l = value[2:-2].split()
3028 for i in range(0, len(l) - 1, 2):
3029 driver[l[i]] = l[i+1]
3030- if driver.has_key('status'):
3031+ if 'status' in driver:
3032 d['driver_status'] = driver['status']
3033- if driver.has_key('color'):
3034+ if 'color' in driver:
3035 d['colour_status'] = driver['color']
3036- if driver.has_key('sound'):
3037+ if 'sound' in driver:
3038 d['sound_status'] = driver['sound']
3039 elif key == '\tinput':
3040 ctrl = {}
3041 l = value[2:-2].split()
3042 for i in range(0, len(l) - 1, 2):
3043 ctrl[l[i]] = l[i+1]
3044- if ctrl.has_key('control'):
3045+ if 'control' in ctrl:
3046 d['controller_type'] = _controllers[ctrl['control']]
3047 #get category
3048 try:
3049@@ -200,6 +202,7 @@
3050 #done
3051 f.close()
3052
3053+
3054 def get_xml_game_item(xml_filename):
3055 """get game bits"""
3056 #get category info
3057@@ -208,7 +211,7 @@
3058 for event, mame_element in ET.iterparse(xml_filename, events=('start', 'end')):
3059 #get mame version element
3060 if mame_element.tag == 'mame':
3061- if not mame_element.attrib.has_key('build'):
3062+ if 'build' not in mame_element.attrib:
3063 mame_version = '0.000'
3064 else:
3065 spc_pos = mame_element.attrib['build'].find(' ')
3066@@ -248,14 +251,14 @@
3067 manu = game_element.findtext('manufacturer') or ''
3068 desc = game_element.findtext('description') or ''
3069 #create dict
3070- d['rom_name'] = game_element.attrib['name'].upper()
3071+ d['rom_name'] = game_element.attrib['name']#.upper()
3072 d['game_name'] = desc
3073 d['year'] = year
3074 d['manufacturer'] = manu.title()
3075 if 'cloneof' in game_element.keys():
3076- d['clone_of'] = game_element.attrib['cloneof'].upper()
3077+ d['clone_of'] = game_element.attrib['cloneof']#.upper()
3078 if 'romof' in game_element.keys():
3079- d['rom_of'] = game_element.attrib['romof'].upper()
3080+ d['rom_of'] = game_element.attrib['romof']#.upper()
3081 if vid is not None:
3082 if mame_version > '0.106':
3083 d['display_type'] = vid.attrib['type'].title()
3084@@ -279,9 +282,12 @@
3085 except (ConfigParser.NoOptionError, ConfigParser.NoSectionError):
3086 d['category'] = 'Unknown'
3087 #done
3088+ #if d['rom_name'] == 'ASTEROID':
3089+ # print "game=",d
3090 yield d
3091 game_element.clear() # won't need this any more
3092
3093+
3094 def get_catver_ini(category_file):
3095 """load catver.ini file"""
3096 if not os.path.exists(category_file):
3097@@ -290,6 +296,7 @@
3098 catver.read(category_file)
3099 return catver
3100
3101+
3102 def create_initial_filter(info_filename, filter_filename, list_filename, emu_ini, pgb_pulse=None):
3103 """create a new mamewah .ftr & .lst file"""
3104 pulse_cnt = 0
3105@@ -330,7 +337,7 @@
3106 'category': ''}
3107 for rom_filename in roms:
3108 rom_name = os.path.splitext(os.path.basename(rom_filename))[0]
3109- if nms_entries.has_key(rom_name):
3110+ if rom_name in nms_entries:
3111 game_name = nms_entries[rom_name]
3112 else:
3113 game_name = rom_name
3114@@ -389,10 +396,10 @@
3115 except StopIteration:
3116 break
3117 #for each key in sections
3118- for key in _sections[1:]:
3119- if gd.has_key(key):
3120- if gd[key] not in mwfilter[key]:
3121- mwfilter[key].append(gd[key])
3122+ for k in _sections[1:]:
3123+ if k in gd:
3124+ if gd[k] not in mwfilter[k]:
3125+ mwfilter[k].append(gd[k])
3126 #done list file
3127 f.close()
3128 #write filter file
3129@@ -412,6 +419,7 @@
3130 f.write('\n')
3131 f.close()
3132
3133+
3134 def read_filter(filter_file):
3135 """read a mamewah .ftr file"""
3136 #init
3137@@ -455,6 +463,7 @@
3138 f.close()
3139 return d
3140
3141+
3142 def write_filter(filter_spec, filter_filename):
3143 """write a filter file from a given spec"""
3144 f, file_enc = open_file(filter_filename, 'w')
3145@@ -464,12 +473,13 @@
3146 for key in _sections[1:]:
3147 l = filter_spec[key].items()
3148 l.sort()
3149- for item, value in l:
3150+ for item, value in l:
3151 f.write('%s\n%s\n' % (item, str(value)))
3152 f.write('\n')
3153 #done
3154 f.close()
3155
3156+
3157 def create_filtered_list(original_list_filename, filter_spec, list_filename):
3158 """create a mamewah .lst file from <emu>-0.lst and the given spec"""
3159 #open empty list file
3160@@ -480,6 +490,8 @@
3161 #for each item in iterator
3162 for game_item in all_games:
3163 gd = get_game_dict(game_item)
3164+ #if gd['rom_name'] == 'ASTEROID':
3165+ # print "cfl: game=",gd
3166 #match filter conditions
3167 matched = True
3168 #check filter type section
3169@@ -500,20 +512,25 @@
3170 if matched:
3171 #for each section
3172 for section in _sections[1:]:
3173- if filter_spec.has_key(section) and gd.has_key(section):
3174+ if section in filter_spec and section in gd:
3175 #if spec and current game have same section
3176- if filter_spec[section].has_key(gd[section]):
3177+ if gd[section] in filter_spec[section]:
3178 if not filter_spec[section][gd[section]]:
3179 #don't match if spec entry for game not set (i.e. False)
3180 matched = False
3181- if gd[section] is None or gd[section] == '':
3182- matched = False
3183+ #if gd[section] is None or gd[section] == '':
3184+ # if gd['rom_name'] == 'ASTEROID':
3185+ # print "cfl: not matched (is none)"
3186+ # matched = False
3187+ #if gd['rom_name'] == 'ASTEROID':
3188+ # print "cfl: matched=",matched
3189 if matched:
3190 #write output
3191 add_game_to_filtered_list(gd, f)
3192 #done, close file
3193 f.close()
3194
3195+
3196 def read_filtered_list(list_filename):
3197 """read a mamewah .lst file"""
3198 l = []
3199@@ -538,6 +555,7 @@
3200 #done
3201 return l, len(l)
3202
3203+
3204 def add_game_to_filtered_list(gd, file_obj=None, list_filename=None):
3205 """add game info in given dictionary to specified file or .lst file"""
3206 if list_filename is not None:
3207@@ -557,13 +575,13 @@
3208 '%s\n' % gd['driver_status'],
3209 '%s\n' % gd['colour_status'],
3210 '%s\n' % gd['sound_status'],
3211- '%s\n' % gd['category']
3212- ])
3213+ '%s\n' % gd['category']])
3214 #done
3215 if list_filename is not None:
3216 file_obj.close()
3217
3218-def write_filtered_list(list_filename , list_items):
3219+
3220+def write_filtered_list(list_filename, list_items):
3221 """write the given list items into the specified .lst file"""
3222 #f= codecs.open(list_filename, mode='w', encoding='utf-8')
3223 f, file_enc = open_file(list_filename, 'w')
3224@@ -581,11 +599,11 @@
3225 '%s\n' % game_info[GL_DRIVER_STATUS],
3226 '%s\n' % game_info[GL_COLOUR_STATUS],
3227 '%s\n' % game_info[GL_SOUND_STATUS],
3228- '%s\n' % game_info[GL_CATEGORY]
3229- ])
3230+ '%s\n' % game_info[GL_CATEGORY]])
3231 #done
3232 f.close()
3233
3234+
3235 def read_fav_list(favlist_filename):
3236 """reads a .fav list"""
3237 d = {}
3238@@ -607,6 +625,7 @@
3239 #done
3240 return d
3241
3242+
3243 def write_fav_list(favlist_filename, favs):
3244 """writes a .fav list"""
3245 f, file_enc = open_file(favlist_filename, 'w')
3246@@ -615,10 +634,10 @@
3247 '%s\n' % fav_key,
3248 '%s\n' % favs[fav_key][FAV_GAME_NAME],
3249 '%s\n' % favs[fav_key][FAV_TIMES_PLAYED],
3250- '%s\n' % favs[fav_key][FAV_MINS_PLAYED]
3251- ])
3252+ '%s\n' % favs[fav_key][FAV_MINS_PLAYED]])
3253 f.close()
3254
3255+
3256 def get_game_dict(game_item):
3257 """return dictionary of info for given game item"""
3258 gd = {
3259@@ -634,15 +653,15 @@
3260 'driver_status': game_item[GL_DRIVER_STATUS],
3261 'colour_status': game_item[GL_COLOUR_STATUS],
3262 'sound_status': game_item[GL_SOUND_STATUS],
3263- 'category': game_item[GL_CATEGORY]
3264- }
3265+ 'category': game_item[GL_CATEGORY]}
3266 return gd
3267
3268+
3269 def read_nms_file(nms_filename):
3270 """returns a dictionary created from a nms formatted file"""
3271 d = {}
3272 if nms_filename == '':
3273- return d
3274+ return d
3275 #read file
3276 try:
3277 f, file_enc = open_file(nms_filename, 'r')
3278@@ -659,7 +678,8 @@
3279 d[r[1]] = r[0]
3280 #done
3281 return d
3282-
3283+
3284+
3285 def walk_dir(root, recurse=False, pattern='*', return_folders=False):
3286 # initialize
3287 result = []
3288@@ -696,18 +716,13 @@
3289 import time
3290 from mamewah_ini import MameWahIni
3291 #set vars
3292- #CONFIG_DIR = os.path.join(sys.path[0], 'config')
3293- CONFIG_DIR = os.path.expanduser('~/.wahcade')
3294 cdir = sys.path[0]
3295 #_mameinfo_file = os.path.join(cdir, 'mameinfo111.xml')
3296 _catver_ini = os.path.join(cdir, 'catver2.ini')
3297-
3298 #set to unicode encoding
3299 try:
3300 sys.setappdefaultencoding('utf-8')
3301 except AttributeError:
3302 pass
3303-
3304 #test nms feed
3305 print read_nms_file(os.path.expanduser('~/emulators/pc/pc_games.nms'))
3306-
3307
3308=== modified file 'glade/layout_editor.glade'
3309--- glade/layout_editor.glade 2009-01-11 16:29:58 +0000
3310+++ glade/layout_editor.glade 2011-03-03 21:06:42 +0000
3311@@ -729,6 +729,7 @@
3312 <property name="relief">GTK_RELIEF_NORMAL</property>
3313 <property name="focus_on_click">True</property>
3314 <signal name="clicked" handler="on_btnClose_clicked" last_modification_time="Wed, 28 Jun 2006 09:06:53 GMT"/>
3315+ <accelerator key="Escape" modifiers="0" signal="clicked"/>
3316 </widget>
3317 </child>
3318 </widget>
3319@@ -1595,6 +1596,7 @@
3320 <child>
3321 <widget class="GtkCheckButton" id="chkBackgroundImage">
3322 <property name="visible">True</property>
3323+ <property name="tooltip" translatable="yes">Leave unchecked for Wah!Cade to auto-detect background images.</property>
3324 <property name="can_focus">True</property>
3325 <property name="label" translatable="yes">Background Image</property>
3326 <property name="use_underline">True</property>
3327@@ -1789,6 +1791,7 @@
3328 <property name="relief">GTK_RELIEF_NORMAL</property>
3329 <property name="focus_on_click">True</property>
3330 <signal name="clicked" handler="on_btnClose_clicked" last_modification_time="Tue, 04 Jul 2006 08:23:41 GMT"/>
3331+ <accelerator key="Escape" modifiers="0" signal="clicked"/>
3332 </widget>
3333 </child>
3334 </widget>
3335
3336=== modified file 'glade/layout_editor.glade.bak'
3337--- glade/layout_editor.glade.bak 2009-01-11 16:29:58 +0000
3338+++ glade/layout_editor.glade.bak 2011-03-03 21:06:42 +0000
3339@@ -729,6 +729,7 @@
3340 <property name="relief">GTK_RELIEF_NORMAL</property>
3341 <property name="focus_on_click">True</property>
3342 <signal name="clicked" handler="on_btnClose_clicked" last_modification_time="Wed, 28 Jun 2006 09:06:53 GMT"/>
3343+ <accelerator key="Escape" modifiers="0" signal="clicked"/>
3344 </widget>
3345 </child>
3346 </widget>
3347@@ -1789,6 +1790,7 @@
3348 <property name="relief">GTK_RELIEF_NORMAL</property>
3349 <property name="focus_on_click">True</property>
3350 <signal name="clicked" handler="on_btnClose_clicked" last_modification_time="Tue, 04 Jul 2006 08:23:41 GMT"/>
3351+ <accelerator key="Escape" modifiers="0" signal="clicked"/>
3352 </widget>
3353 </child>
3354 </widget>
3355
3356=== modified file 'glade/layout_editor.glade.h'
3357--- glade/layout_editor.glade.h 2008-11-30 10:26:19 +0000
3358+++ glade/layout_editor.glade.h 2011-03-03 21:06:42 +0000
3359@@ -24,6 +24,7 @@
3360 char *s = N_("Item _Properties");
3361 char *s = N_("Layout");
3362 char *s = N_("Layout Properties");
3363+char *s = N_("Leave unchecked for Wah!Cade to auto-detect background images.");
3364 char *s = N_("Left");
3365 char *s = N_("M_essage Window");
3366 char *s = N_("Main Window");
3367
3368=== modified file 'glade/wahcade_setup.glade'
3369--- glade/wahcade_setup.glade 2009-01-11 16:29:58 +0000
3370+++ glade/wahcade_setup.glade 2011-03-03 21:06:42 +0000
3371@@ -259,7 +259,7 @@
3372 <widget class="GtkTable" id="tblWCMovies">
3373 <property name="border_width">5</property>
3374 <property name="visible">True</property>
3375- <property name="n_rows">4</property>
3376+ <property name="n_rows">5</property>
3377 <property name="n_columns">2</property>
3378 <property name="homogeneous">False</property>
3379 <property name="row_spacing">0</property>
3380@@ -299,7 +299,7 @@
3381 <property name="can_focus">True</property>
3382 <property name="climb_rate">1</property>
3383 <property name="digits">0</property>
3384- <property name="numeric">False</property>
3385+ <property name="numeric">True</property>
3386 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
3387 <property name="snap_to_ticks">False</property>
3388 <property name="wrap">False</property>
3389@@ -386,8 +386,8 @@
3390 <packing>
3391 <property name="left_attach">0</property>
3392 <property name="right_attach">1</property>
3393- <property name="top_attach">2</property>
3394- <property name="bottom_attach">3</property>
3395+ <property name="top_attach">3</property>
3396+ <property name="bottom_attach">4</property>
3397 <property name="x_options">fill</property>
3398 <property name="y_options"></property>
3399 </packing>
3400@@ -414,8 +414,8 @@
3401 <packing>
3402 <property name="left_attach">0</property>
3403 <property name="right_attach">1</property>
3404- <property name="top_attach">3</property>
3405- <property name="bottom_attach">4</property>
3406+ <property name="top_attach">4</property>
3407+ <property name="bottom_attach">5</property>
3408 <property name="x_options">fill</property>
3409 <property name="y_options"></property>
3410 </packing>
3411@@ -479,8 +479,8 @@
3412 <packing>
3413 <property name="left_attach">1</property>
3414 <property name="right_attach">2</property>
3415- <property name="top_attach">2</property>
3416- <property name="bottom_attach">3</property>
3417+ <property name="top_attach">3</property>
3418+ <property name="bottom_attach">4</property>
3419 <property name="x_options">fill</property>
3420 <property name="y_options">fill</property>
3421 </packing>
3422@@ -544,8 +544,54 @@
3423 <packing>
3424 <property name="left_attach">1</property>
3425 <property name="right_attach">2</property>
3426- <property name="top_attach">3</property>
3427- <property name="bottom_attach">4</property>
3428+ <property name="top_attach">4</property>
3429+ <property name="bottom_attach">5</property>
3430+ <property name="x_options">fill</property>
3431+ <property name="y_options">fill</property>
3432+ </packing>
3433+ </child>
3434+
3435+ <child>
3436+ <widget class="GtkLabel" id="label107">
3437+ <property name="visible">True</property>
3438+ <property name="label" translatable="yes">Music / Movie Mix</property>
3439+ <property name="use_underline">False</property>
3440+ <property name="use_markup">False</property>
3441+ <property name="justify">GTK_JUSTIFY_RIGHT</property>
3442+ <property name="wrap">False</property>
3443+ <property name="selectable">False</property>
3444+ <property name="xalign">1</property>
3445+ <property name="yalign">0.5</property>
3446+ <property name="xpad">4</property>
3447+ <property name="ypad">0</property>
3448+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3449+ <property name="width_chars">-1</property>
3450+ <property name="single_line_mode">False</property>
3451+ <property name="angle">0</property>
3452+ </widget>
3453+ <packing>
3454+ <property name="left_attach">0</property>
3455+ <property name="right_attach">1</property>
3456+ <property name="top_attach">2</property>
3457+ <property name="bottom_attach">3</property>
3458+ <property name="x_options">fill</property>
3459+ <property name="y_options"></property>
3460+ </packing>
3461+ </child>
3462+
3463+ <child>
3464+ <widget class="GtkComboBox" id="cboWCMovieMix">
3465+ <property name="visible">True</property>
3466+ <property name="items" translatable="yes"></property>
3467+ <property name="add_tearoffs">False</property>
3468+ <property name="focus_on_click">True</property>
3469+ <signal name="changed" handler="on_Setup_changed" last_modification_time="Sun, 28 Jun 2009 16:49:44 GMT"/>
3470+ </widget>
3471+ <packing>
3472+ <property name="left_attach">1</property>
3473+ <property name="right_attach">2</property>
3474+ <property name="top_attach">2</property>
3475+ <property name="bottom_attach">3</property>
3476 <property name="x_options">fill</property>
3477 <property name="y_options">fill</property>
3478 </packing>
3479@@ -597,7 +643,7 @@
3480 <widget class="GtkTable" id="tblWCMisc">
3481 <property name="border_width">5</property>
3482 <property name="visible">True</property>
3483- <property name="n_rows">3</property>
3484+ <property name="n_rows">4</property>
3485 <property name="n_columns">2</property>
3486 <property name="homogeneous">False</property>
3487 <property name="row_spacing">0</property>
3488@@ -673,6 +719,30 @@
3489 <property name="y_options"></property>
3490 </packing>
3491 </child>
3492+
3493+ <child>
3494+ <widget class="GtkCheckButton" id="chkWCListArrows">
3495+ <property name="visible">True</property>
3496+ <property name="tooltip" translatable="yes">Show scroll up / down arrows in Games, Options and History Viewer lists.</property>
3497+ <property name="can_focus">True</property>
3498+ <property name="label" translatable="yes">Display Scroll Arrows in Lists</property>
3499+ <property name="use_underline">True</property>
3500+ <property name="relief">GTK_RELIEF_NORMAL</property>
3501+ <property name="focus_on_click">True</property>
3502+ <property name="active">False</property>
3503+ <property name="inconsistent">False</property>
3504+ <property name="draw_indicator">True</property>
3505+ <signal name="toggled" handler="on_Setup_changed" last_modification_time="Tue, 24 Oct 2006 16:09:06 GMT"/>
3506+ </widget>
3507+ <packing>
3508+ <property name="left_attach">0</property>
3509+ <property name="right_attach">2</property>
3510+ <property name="top_attach">3</property>
3511+ <property name="bottom_attach">4</property>
3512+ <property name="x_options">fill</property>
3513+ <property name="y_options"></property>
3514+ </packing>
3515+ </child>
3516 </widget>
3517 </child>
3518
3519@@ -761,7 +831,7 @@
3520 <property name="can_focus">True</property>
3521 <property name="climb_rate">1</property>
3522 <property name="digits">0</property>
3523- <property name="numeric">False</property>
3524+ <property name="numeric">True</property>
3525 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
3526 <property name="snap_to_ticks">False</property>
3527 <property name="wrap">False</property>
3528@@ -812,7 +882,7 @@
3529 <property name="can_focus">True</property>
3530 <property name="climb_rate">1</property>
3531 <property name="digits">0</property>
3532- <property name="numeric">False</property>
3533+ <property name="numeric">True</property>
3534 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
3535 <property name="snap_to_ticks">False</property>
3536 <property name="wrap">False</property>
3537@@ -898,7 +968,7 @@
3538 <widget class="GtkTable" id="tblWCMusic">
3539 <property name="border_width">5</property>
3540 <property name="visible">True</property>
3541- <property name="n_rows">2</property>
3542+ <property name="n_rows">3</property>
3543 <property name="n_columns">2</property>
3544 <property name="homogeneous">False</property>
3545 <property name="row_spacing">0</property>
3546@@ -1039,6 +1109,29 @@
3547 <property name="y_options"></property>
3548 </packing>
3549 </child>
3550+
3551+ <child>
3552+ <widget class="GtkCheckButton" id="chkWCMusicShuffle">
3553+ <property name="visible">True</property>
3554+ <property name="can_focus">True</property>
3555+ <property name="label" translatable="yes">Shuffle Playlist</property>
3556+ <property name="use_underline">True</property>
3557+ <property name="relief">GTK_RELIEF_NORMAL</property>
3558+ <property name="focus_on_click">True</property>
3559+ <property name="active">False</property>
3560+ <property name="inconsistent">False</property>
3561+ <property name="draw_indicator">True</property>
3562+ <signal name="toggled" handler="on_Setup_changed" last_modification_time="Mon, 01 Oct 2007 16:48:46 GMT"/>
3563+ </widget>
3564+ <packing>
3565+ <property name="left_attach">0</property>
3566+ <property name="right_attach">2</property>
3567+ <property name="top_attach">2</property>
3568+ <property name="bottom_attach">3</property>
3569+ <property name="x_options">fill</property>
3570+ <property name="y_options"></property>
3571+ </packing>
3572+ </child>
3573 </widget>
3574 </child>
3575
3576
3577=== modified file 'glade/wahcade_setup.glade.bak'
3578--- glade/wahcade_setup.glade.bak 2009-01-11 16:29:58 +0000
3579+++ glade/wahcade_setup.glade.bak 2011-03-03 21:06:42 +0000
3580@@ -259,7 +259,7 @@
3581 <widget class="GtkTable" id="tblWCMovies">
3582 <property name="border_width">5</property>
3583 <property name="visible">True</property>
3584- <property name="n_rows">4</property>
3585+ <property name="n_rows">5</property>
3586 <property name="n_columns">2</property>
3587 <property name="homogeneous">False</property>
3588 <property name="row_spacing">0</property>
3589@@ -299,7 +299,7 @@
3590 <property name="can_focus">True</property>
3591 <property name="climb_rate">1</property>
3592 <property name="digits">0</property>
3593- <property name="numeric">False</property>
3594+ <property name="numeric">True</property>
3595 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
3596 <property name="snap_to_ticks">False</property>
3597 <property name="wrap">False</property>
3598@@ -386,8 +386,8 @@
3599 <packing>
3600 <property name="left_attach">0</property>
3601 <property name="right_attach">1</property>
3602- <property name="top_attach">2</property>
3603- <property name="bottom_attach">3</property>
3604+ <property name="top_attach">3</property>
3605+ <property name="bottom_attach">4</property>
3606 <property name="x_options">fill</property>
3607 <property name="y_options"></property>
3608 </packing>
3609@@ -414,8 +414,8 @@
3610 <packing>
3611 <property name="left_attach">0</property>
3612 <property name="right_attach">1</property>
3613- <property name="top_attach">3</property>
3614- <property name="bottom_attach">4</property>
3615+ <property name="top_attach">4</property>
3616+ <property name="bottom_attach">5</property>
3617 <property name="x_options">fill</property>
3618 <property name="y_options"></property>
3619 </packing>
3620@@ -479,8 +479,8 @@
3621 <packing>
3622 <property name="left_attach">1</property>
3623 <property name="right_attach">2</property>
3624- <property name="top_attach">2</property>
3625- <property name="bottom_attach">3</property>
3626+ <property name="top_attach">3</property>
3627+ <property name="bottom_attach">4</property>
3628 <property name="x_options">fill</property>
3629 <property name="y_options">fill</property>
3630 </packing>
3631@@ -544,8 +544,54 @@
3632 <packing>
3633 <property name="left_attach">1</property>
3634 <property name="right_attach">2</property>
3635- <property name="top_attach">3</property>
3636- <property name="bottom_attach">4</property>
3637+ <property name="top_attach">4</property>
3638+ <property name="bottom_attach">5</property>
3639+ <property name="x_options">fill</property>
3640+ <property name="y_options">fill</property>
3641+ </packing>
3642+ </child>
3643+
3644+ <child>
3645+ <widget class="GtkLabel" id="label107">
3646+ <property name="visible">True</property>
3647+ <property name="label" translatable="yes">Music / Movie Mix</property>
3648+ <property name="use_underline">False</property>
3649+ <property name="use_markup">False</property>
3650+ <property name="justify">GTK_JUSTIFY_RIGHT</property>
3651+ <property name="wrap">False</property>
3652+ <property name="selectable">False</property>
3653+ <property name="xalign">1</property>
3654+ <property name="yalign">0.5</property>
3655+ <property name="xpad">4</property>
3656+ <property name="ypad">0</property>
3657+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3658+ <property name="width_chars">-1</property>
3659+ <property name="single_line_mode">False</property>
3660+ <property name="angle">0</property>
3661+ </widget>
3662+ <packing>
3663+ <property name="left_attach">0</property>
3664+ <property name="right_attach">1</property>
3665+ <property name="top_attach">2</property>
3666+ <property name="bottom_attach">3</property>
3667+ <property name="x_options">fill</property>
3668+ <property name="y_options"></property>
3669+ </packing>
3670+ </child>
3671+
3672+ <child>
3673+ <widget class="GtkComboBox" id="cboWCMovieMix">
3674+ <property name="visible">True</property>
3675+ <property name="items" translatable="yes"></property>
3676+ <property name="add_tearoffs">False</property>
3677+ <property name="focus_on_click">True</property>
3678+ <signal name="changed" handler="on_setup_changed" last_modification_time="Sun, 28 Jun 2009 16:48:17 GMT"/>
3679+ </widget>
3680+ <packing>
3681+ <property name="left_attach">1</property>
3682+ <property name="right_attach">2</property>
3683+ <property name="top_attach">2</property>
3684+ <property name="bottom_attach">3</property>
3685 <property name="x_options">fill</property>
3686 <property name="y_options">fill</property>
3687 </packing>
3688@@ -597,7 +643,7 @@
3689 <widget class="GtkTable" id="tblWCMisc">
3690 <property name="border_width">5</property>
3691 <property name="visible">True</property>
3692- <property name="n_rows">3</property>
3693+ <property name="n_rows">4</property>
3694 <property name="n_columns">2</property>
3695 <property name="homogeneous">False</property>
3696 <property name="row_spacing">0</property>
3697@@ -673,6 +719,30 @@
3698 <property name="y_options"></property>
3699 </packing>
3700 </child>
3701+
3702+ <child>
3703+ <widget class="GtkCheckButton" id="chkWCListArrows">
3704+ <property name="visible">True</property>
3705+ <property name="tooltip" translatable="yes">Show scroll up / down arrows in Games, Options and History Viewer lists.</property>
3706+ <property name="can_focus">True</property>
3707+ <property name="label" translatable="yes">Display Scroll Arrows in Lists</property>
3708+ <property name="use_underline">True</property>
3709+ <property name="relief">GTK_RELIEF_NORMAL</property>
3710+ <property name="focus_on_click">True</property>
3711+ <property name="active">False</property>
3712+ <property name="inconsistent">False</property>
3713+ <property name="draw_indicator">True</property>
3714+ <signal name="toggled" handler="on_Setup_changed" last_modification_time="Tue, 24 Oct 2006 16:09:06 GMT"/>
3715+ </widget>
3716+ <packing>
3717+ <property name="left_attach">0</property>
3718+ <property name="right_attach">2</property>
3719+ <property name="top_attach">3</property>
3720+ <property name="bottom_attach">4</property>
3721+ <property name="x_options">fill</property>
3722+ <property name="y_options"></property>
3723+ </packing>
3724+ </child>
3725 </widget>
3726 </child>
3727
3728@@ -761,7 +831,7 @@
3729 <property name="can_focus">True</property>
3730 <property name="climb_rate">1</property>
3731 <property name="digits">0</property>
3732- <property name="numeric">False</property>
3733+ <property name="numeric">True</property>
3734 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
3735 <property name="snap_to_ticks">False</property>
3736 <property name="wrap">False</property>
3737@@ -812,7 +882,7 @@
3738 <property name="can_focus">True</property>
3739 <property name="climb_rate">1</property>
3740 <property name="digits">0</property>
3741- <property name="numeric">False</property>
3742+ <property name="numeric">True</property>
3743 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
3744 <property name="snap_to_ticks">False</property>
3745 <property name="wrap">False</property>
3746@@ -898,7 +968,7 @@
3747 <widget class="GtkTable" id="tblWCMusic">
3748 <property name="border_width">5</property>
3749 <property name="visible">True</property>
3750- <property name="n_rows">2</property>
3751+ <property name="n_rows">3</property>
3752 <property name="n_columns">2</property>
3753 <property name="homogeneous">False</property>
3754 <property name="row_spacing">0</property>
3755@@ -1039,6 +1109,29 @@
3756 <property name="y_options"></property>
3757 </packing>
3758 </child>
3759+
3760+ <child>
3761+ <widget class="GtkCheckButton" id="chkWCMusicShuffle">
3762+ <property name="visible">True</property>
3763+ <property name="can_focus">True</property>
3764+ <property name="label" translatable="yes">Shuffle Playlist</property>
3765+ <property name="use_underline">True</property>
3766+ <property name="relief">GTK_RELIEF_NORMAL</property>
3767+ <property name="focus_on_click">True</property>
3768+ <property name="active">False</property>
3769+ <property name="inconsistent">False</property>
3770+ <property name="draw_indicator">True</property>
3771+ <signal name="toggled" handler="on_Setup_changed" last_modification_time="Mon, 01 Oct 2007 16:48:46 GMT"/>
3772+ </widget>
3773+ <packing>
3774+ <property name="left_attach">0</property>
3775+ <property name="right_attach">2</property>
3776+ <property name="top_attach">2</property>
3777+ <property name="bottom_attach">3</property>
3778+ <property name="x_options">fill</property>
3779+ <property name="y_options"></property>
3780+ </packing>
3781+ </child>
3782 </widget>
3783 </child>
3784
3785@@ -6315,7 +6408,7 @@
3786 <property name="visible">True</property>
3787 <property name="add_tearoffs">False</property>
3788 <property name="focus_on_click">True</property>
3789- <signal name="changed" handler="on_cboLists_changed" last_modification_time="Wed, 24 Jan 2007 17:53:43 GMT"/>
3790+ <signal name="changed" handler="on_cboList_changed" last_modification_time="Sat, 10 Jan 2009 16:07:36 GMT"/>
3791 </widget>
3792 <packing>
3793 <property name="padding">0</property>
3794
3795=== modified file 'glade/wahcade_setup.glade.h'
3796--- glade/wahcade_setup.glade.h 2008-11-30 10:26:19 +0000
3797+++ glade/wahcade_setup.glade.h 2011-03-03 21:06:42 +0000
3798@@ -82,6 +82,7 @@
3799 char *s = N_("Directory for artwork that will be used in the layouts Artwork4 image.\n"
3800 "(also see Wah!Cade Layout Editor)");
3801 char *s = N_("Display Mouse Cursor");
3802+char *s = N_("Display Scroll Arrows in Lists");
3803 char *s = N_("Edit Game List");
3804 char *s = N_("Edit List");
3805 char *s = N_("Emulators");
3806@@ -121,6 +122,7 @@
3807 char *s = N_("Movie Directory");
3808 char *s = N_("Movies");
3809 char *s = N_("Music");
3810+char *s = N_("Music / Movie Mix");
3811 char *s = N_("NMS File");
3812 char *s = N_("Number of seconds before Screen Saver starts");
3813 char *s = N_("Number of seconds to display Screen Saver image / movie");
3814@@ -148,6 +150,8 @@
3815 char *s = N_("Set Intro Movie");
3816 char *s = N_("Set XML / Data File");
3817 char *s = N_("Setup Filters...");
3818+char *s = N_("Show scroll up / down arrows in Games, Options and History Viewer lists.");
3819+char *s = N_("Shuffle Playlist");
3820 char *s = N_("Start Wah!Cade in fullscreen mode");
3821 char *s = N_("The Control Panel Viewer layout file location (.lay)");
3822 char *s = N_("The background image (if any) for the history viewer window.");
3823
3824=== modified file 'glade2.py'
3825--- glade2.py 2008-11-30 10:26:19 +0000
3826+++ glade2.py 2011-03-03 21:06:42 +0000
3827@@ -27,7 +27,7 @@
3828 #not win32, ensure version 2 of pygtk is imported
3829 pygtk.require('2.0')
3830 import gtk
3831-assert gtk.pygtk_version >= (2,6,0), 'pygtk should be >= 2.6.0'
3832+assert gtk.pygtk_version >= (2, 12, 0), 'pygtk should be >= 2.12.0'
3833 import gtk.glade
3834 import gobject
3835 import pango
3836@@ -39,6 +39,7 @@
3837 glade_filename : name of .glade filename
3838 window_name : name of window / dialog / menu to be created
3839 """
3840+
3841 def __init__(self, glade_filename, window_name, app_name=None):
3842 #load glade file
3843 if app_name:
3844@@ -155,10 +156,6 @@
3845 None
3846 'text')
3847 """
3848- #check gtk version
3849- if gtk.pygtk_version < (2,5,0):
3850- print "pygtk>=2.5.0 required for iconview"
3851- return None, None
3852 #create the ListStore and IconView objects
3853 ls = gtk.ListStore(*column_types)
3854 ivw = gtk.IconView(ls)
3855@@ -217,7 +214,7 @@
3856 cboe.set_text_column(0)
3857 #populate with text?
3858 if initial_text:
3859- ls.append((initial_text,))
3860+ ls.append((initial_text, ))
3861 cboe.child.set_text(initial_text)
3862
3863 def setup_menu(self, mnu_items, mnu_pixmaps, activate_cb):
3864@@ -273,4 +270,3 @@
3865
3866 #map getitem to getattr
3867 __getitem__ = __getattr__
3868-
3869
3870=== modified file 'gst_media.py'
3871--- gst_media.py 2009-01-07 17:51:46 +0000
3872+++ gst_media.py 2011-03-03 21:06:42 +0000
3873@@ -5,7 +5,7 @@
3874 # Application: wah!cade
3875 # File: gst_video.py
3876 # Description: gstreamer video widget
3877-# Copyright (c) 2005-2009 Andy Balcombe <http://www.anti-particle.com>
3878+# Copyright (c) 2005-2010 Andy Balcombe <http://www.anti-particle.com>
3879 # Taken from gstreamer docs example code
3880 ###
3881 #
3882@@ -26,46 +26,46 @@
3883 import os
3884 import urllib
3885 import fnmatch
3886+import random
3887+import sys
3888
3889 import pygtk
3890 pygtk.require('2.0')
3891-import gobject
3892+#import gobject
3893 import pygst
3894 pygst.require('0.10')
3895 import gst
3896-import gst.interfaces
3897 import gtk
3898
3899+
3900 class GstPlayer:
3901+
3902 def __init__(self, videowidget):
3903 """initialise player class"""
3904+ print "GstPlayer.__init__"
3905 self.playing = False
3906- self.player = gst.element_factory_make("playbin", "player")
3907- self.videowidget = videowidget
3908+ self.player = gst.element_factory_make('playbin2')
3909+ #self.imagesink = gst.element_factory_make('xvimagesink')
3910+ #self.imagesink.set_property('force-aspect-ratio', False)
3911+ #self.player.set_property('video-sink', self.imagesink)
3912+ if videowidget:
3913+ self.media_type = 'video'
3914+ self.videowidget = videowidget
3915+ else:
3916+ self.media_type = 'music'
3917 self.on_eos = False
3918- #
3919 bus = self.player.get_bus()
3920+ bus.add_signal_watch()
3921 bus.enable_sync_message_emission()
3922- bus.add_signal_watch()
3923+ bus.connect('message', self.on_message)
3924 bus.connect('sync-message::element', self.on_sync_message)
3925- bus.connect('message', self.on_message)
3926
3927- def on_sync_message(self, bus, message):
3928- """message from player?"""
3929- if message.structure is None:
3930- return
3931- if message.structure.get_name() == 'prepare-xwindow-id':
3932- self.videowidget.set_sink(message.src)
3933- #message.src.set_property('force-aspect-ratio', True)
3934- #self.player.set_property('volume', 0)
3935- #print "vol=", self.player.get_property('volume')
3936-
3937 def on_message(self, bus, message):
3938 """message from player?"""
3939 t = message.type
3940 if t == gst.MESSAGE_ERROR:
3941 err, debug = message.parse_error()
3942- print "Error: %s" % err, debug
3943+ #print "GST Error: %s" % err, debug
3944 if self.on_eos:
3945 self.on_eos()
3946 self.playing = False
3947@@ -74,9 +74,26 @@
3948 self.on_eos()
3949 self.playing = False
3950
3951+ def on_sync_message(self, bus, message):
3952+ """ """
3953+ if message.structure is None:
3954+ return
3955+ message_name = message.structure.get_name()
3956+ #print "on_sync_message: ", message_name
3957+ if message_name == "prepare-xwindow-id":
3958+ # Assign the viewport
3959+ self.imagesink = message.src
3960+ self.imagesink.set_property('force-aspect-ratio', False)
3961+ self.imagesink.set_xwindow_id(self.videowidget.window.xid)
3962+ #self.imagesink = gst.element_factory_make('xvimagesink')
3963+ #self.imagesink.set_property('force-aspect-ratio', False)
3964+ self.player.set_property('video-sink', self.imagesink)
3965+
3966 def set_location(self, location):
3967 """set filename"""
3968 self.player.set_property('uri', location)
3969+ #if self.media_type == 'video':
3970+ # self.imagesink.set_xwindow_id(self.videowidget.window_xid)
3971
3972 def query_position(self):
3973 """Returns a (position, duration) tuple"""
3974@@ -120,7 +137,7 @@
3975 gst.info("playing player")
3976 self.player.set_state(gst.STATE_PLAYING)
3977 self.playing = True
3978-
3979+
3980 def stop(self):
3981 """stop playing"""
3982 self.player.set_state(gst.STATE_NULL)
3983@@ -133,60 +150,35 @@
3984 def is_playing(self):
3985 """is file playing"""
3986 return self.playing
3987-
3988+
3989 def set_volume(self, volume_level):
3990 """set the volume level"""
3991 self.player.set_property('volume', volume_level)
3992 gst.info("changed volume to [%s]" % volume_level)
3993
3994-
3995+
3996 class VideoWidget(gtk.DrawingArea):
3997+
3998 def __init__(self):
3999 """initialise video widget"""
4000+ print "VideoWidget.__init__"
4001 gtk.DrawingArea.__init__(self)
4002- self.imagesink = None
4003- self.unset_flags(gtk.DOUBLE_BUFFERED)
4004- #print "events=", self.event
4005- #self.add_events(
4006- # gtk.gdk.POINTER_MOTION_MASK |
4007- # gtk.gdk.SCROLL_MASK |
4008- # gtk.gdk.BUTTON_RELEASE_MASK |
4009- # gtk.gdk.KEY_PRESS |
4010- # gtk.gdk.KEY_RELEASE)
4011- #self.set_flags(gtk.CAN_FOCUS)
4012- #self.set_flags(gtk.HAS_FOCUS)
4013- #self.set_flags(gtk.CAN_DEFAULT)
4014- #self.set_flags(gtk.HAS_DEFAULT)
4015- #self.connect('key-press-event', self.test_key)
4016- #self.set_property('can-focus', True)
4017-
4018- #def test_key(self, widget, event, *args):
4019- # print "event=", event
4020-
4021- def do_expose_event(self, event):
4022- """expose"""
4023- #print "gst event=",event
4024- if self.imagesink:
4025- self.imagesink.expose()
4026- return False
4027- else:
4028- return True
4029-
4030- def set_sink(self, sink):
4031- """set sink"""
4032- assert self.window.xid
4033- self.imagesink = sink
4034- self.imagesink.set_xwindow_id(self.window.xid)
4035-
4036-
4037+ self.connect('realize', self.on_realize)
4038+
4039+ def on_realize(self, sender):
4040+ """video widget realized"""
4041+ print "VideoWidget.on_realize"
4042+ self.window_xid = self.window.xid
4043+
4044+
4045 class GstVideo:
4046+
4047 def __init__(self, videowidget):
4048 """initialise video widget"""
4049- #self.vid_filename = ''
4050+ print "GstVideo.__init__"
4051 self.videowidget = videowidget
4052 self.player = GstPlayer(self.videowidget)
4053 self.player.on_eos = lambda *x: self.on_eos()
4054- #self.loop_video = True
4055 self.vid_finished_cb = None
4056 self.update_id = -1
4057 self.changed_id = -1
4058@@ -203,7 +195,7 @@
4059 else:
4060 #finished
4061 self.vid_finished_cb()
4062-
4063+
4064 def play(self, vid_filename, vid_finished_cb=None):
4065 """play given video file"""
4066 self.vid_finished_cb = vid_finished_cb
4067@@ -215,18 +207,20 @@
4068 self.player.stop()
4069 if self.vid_finished_cb:
4070 self.vid_finished_cb()
4071-
4072+
4073 def close(self):
4074 """close"""
4075 pass
4076-
4077+
4078 def set_volume(self, volume_level):
4079 """change volume level"""
4080 self.player.set_volume((volume_level / 100.0))
4081
4082
4083 class MusicPlayer:
4084+
4085 def __init__(self):
4086+ """initialise"""
4087 self.player = GstPlayer(None)
4088 self.player.on_eos = self.on_eos
4089 self.current_track = -1
4090@@ -234,16 +228,17 @@
4091 self.tracks = []
4092
4093 def get_uris_from_pls(self, uri):
4094+ """return list of tracks from playlist"""
4095 uris = []
4096 lines = open(uri).readlines()
4097 # = content.splitlines()
4098 for line in lines:
4099 if line.lower().startswith("file") and line.find("=") != -1:
4100- uris.append(line[line.find("=") + 1:].strip())
4101- uris = [self.pls_rebuild_uri(uri,u) for u in uris]
4102+ uris.append(line[line.find("=") + 1:].strip())
4103+ uris = [self.pls_rebuild_uri(uri, u) for u in uris]
4104 return uris
4105-
4106- def pls_rebuild_uri(self, base_uri,uri):
4107+
4108+ def pls_rebuild_uri(self, base_uri, uri):
4109 base_uri = base_uri[:base_uri.rfind("/")]
4110 if uri.find("://") != -1:
4111 return uri
4112@@ -251,32 +246,34 @@
4113 return "file://%s" % urllib.quote(uri)
4114 else:
4115 return "%s/%s" % (base_uri, urllib.quote(uri))
4116-
4117+
4118 def on_eos(self):
4119- #print "end of track"
4120+ """end of track"""
4121 self.next_track()
4122-
4123+
4124 def load_file(self, location, play=True):
4125 """load individual track"""
4126 self.tracks = [location]
4127 self.current_track = -1
4128 if play:
4129 self.next_track()
4130-
4131- def load_playlist(self, playlist, play=True):
4132+
4133+ def load_playlist(self, playlist, play=True, shuffle=False):
4134 """load playlist"""
4135 self.tracks = playlist
4136+ if shuffle:
4137+ random.shuffle(self.tracks)
4138 self.current_track = -1
4139 if play:
4140 self.next_track()
4141-
4142+
4143 def load_playlist_file(self, playlist_file, play=True):
4144 """load playlist"""
4145 self.tracks = self.get_uris_from_pls(playlist_file)
4146 self.current_track = -1
4147 if play:
4148 self.next_track()
4149-
4150+
4151 def next_track(self):
4152 """goto next track in playlist"""
4153 self.current_track += 1
4154@@ -285,11 +282,11 @@
4155 #print "self.current_track=", self.current_track + 1
4156 #print "setting track to: ", self.tracks[self.current_track]
4157 self.player.stop()
4158- if len(self.tracks) > 0:
4159+ if len(self.tracks) > 0:
4160 self.player.set_location('file://%s' % self.tracks[self.current_track])
4161 self.player.seek(0L)
4162 self.player.play()
4163-
4164+
4165 def previous_track(self):
4166 """goto previous track in playlist"""
4167 self.current_track -= 1
4168@@ -302,15 +299,19 @@
4169 self.player.set_location('file://%s' % self.tracks[self.current_track])
4170 self.player.seek(0L)
4171 self.player.play()
4172-
4173+
4174 def play(self):
4175 """pause"""
4176 self.player.play()
4177-
4178+
4179 def pause(self):
4180 """pause"""
4181 self.player.pause()
4182-
4183+
4184+ def stop(self):
4185+ """pause"""
4186+ self.player.stop()
4187+
4188 def play_toggle(self):
4189 """play / pause"""
4190 if self.player.is_playing():
4191@@ -321,7 +322,7 @@
4192 def set_volume(self, volume_level):
4193 """change volume level"""
4194 self.player.set_volume((volume_level / 100.0))
4195-
4196+
4197 def set_directory(self, music_dir, filespec):
4198 """set player to given dir & load files in it"""
4199 self.current_dir = music_dir
4200@@ -329,13 +330,14 @@
4201 if os.path.exists(self.current_dir):
4202 self.first_dir_matched = False
4203 first_tracks = self.get_first_music_tracks(
4204- root = self.current_dir,
4205- recurse = True,
4206+ root = self.current_dir,
4207+ recurse = True,
4208 pattern = filespec)
4209 first_tracks.sort()
4210 return first_tracks
4211-
4212- def get_first_music_tracks(self, root, recurse=False, pattern='*'):
4213+
4214+ def get_first_music_tracks(self, root, recurse=False, pattern='*'):
4215+ """get list of music tracks"""
4216 #initialize
4217 result = []
4218 #must have at least root folder
4219@@ -362,4 +364,3 @@
4220 if os.path.isdir(fullname) and not os.path.islink(fullname):
4221 result += self.get_first_music_tracks(fullname, recurse, pattern)
4222 return result
4223-
4224
4225=== modified file 'install'
4226--- install 2009-01-07 17:51:46 +0000
4227+++ install 2011-03-03 21:06:42 +0000
4228@@ -48,6 +48,9 @@
4229 install --directory $DESTDIR/config.dist/layouts/retro_white_1024x768
4230 install --directory $DESTDIR/config.dist/layouts/retro_cpviewer
4231 install --directory $DESTDIR/config.dist/layouts/retro_histview
4232+install --directory $DESTDIR/config.dist/layouts/simple_640x480
4233+install --directory $DESTDIR/config.dist/layouts/simple_800x600
4234+install --directory $DESTDIR/config.dist/layouts/simple_1024x768
4235 install --directory $DESTDIR/doc
4236 install --directory $DESTDIR/doc/file_formats
4237 install --directory $DESTDIR/doc/xmame
4238@@ -84,6 +87,9 @@
4239 install --mode=644 config.dist/layouts/retro_white_640x480/* $DESTDIR/config.dist/layouts/retro_white_640x480
4240 install --mode=644 config.dist/layouts/retro_white_800x600/* $DESTDIR/config.dist/layouts/retro_white_800x600
4241 install --mode=644 config.dist/layouts/retro_white_1024x768/* $DESTDIR/config.dist/layouts/retro_white_1024x768
4242+install --mode=644 config.dist/layouts/simple_640x480/* $DESTDIR/config.dist/layouts/simple_640x480
4243+install --mode=644 config.dist/layouts/simple_800x600/* $DESTDIR/config.dist/layouts/simple_800x600
4244+install --mode=644 config.dist/layouts/simple_1024x768/* $DESTDIR/config.dist/layouts/simple_1024x768
4245 install --mode=644 config.dist/layouts/retro_cpviewer/* $DESTDIR/config.dist/layouts/retro_cpviewer
4246 install --mode=644 config.dist/layouts/retro_histview/* $DESTDIR/config.dist/layouts/retro_histview
4247 install --mode=644 doc/* $DESTDIR/doc
4248
4249=== modified file 'joystick.py'
4250--- joystick.py 2008-11-30 10:26:19 +0000
4251+++ joystick.py 2011-03-03 21:06:42 +0000
4252@@ -29,21 +29,24 @@
4253 import pygame
4254 pygame_imported = True
4255 except ImportError:
4256- print _('Warning: pygame module not found. Joysticks not supported')
4257-
4258-class joystick:
4259+ print _('Warning: pygame module not found. Joysticks not supported')
4260+
4261+
4262+class Joystick:
4263 """pygame joystick class"""
4264- def __init__(self):
4265+
4266+ def __init__(self, debug=False):
4267 """initialise"""
4268+ self.debug = debug
4269 self.state = {}
4270 self.devices = {}
4271 self.ctrls = {}
4272 if pygame_imported:
4273 pygame.init()
4274- pygame.joystick.init()
4275-
4276+ pygame.mixer.quit()
4277+
4278 def use_ini_controls(self, ctrlr_ini):
4279- """read controller ini file"""
4280+ """read controller ini file"""
4281 if not pygame_imported:
4282 return
4283 for mw_keys in ctrlr_ini.ini_dict.itervalues():
4284@@ -52,7 +55,7 @@
4285 if mw_key[:3] == "JOY":
4286 self.state[mw_key] = 0
4287 (dev_num, control) = mw_key.split("_", 1)
4288- dev_num = dev_num[3:]
4289+ dev_num = dev_num[3:]
4290 self.devices[int(dev_num) - 1] = None
4291 #
4292 num_joysticks = pygame.joystick.get_count()
4293@@ -60,7 +63,7 @@
4294 if dev_num < num_joysticks:
4295 self.devices[dev_num] = pygame.joystick.Joystick(dev_num)
4296 self.devices[dev_num].init()
4297-
4298+
4299 def use_all_controls(self):
4300 """which joysticks"""
4301 if not pygame_imported:
4302@@ -72,9 +75,10 @@
4303 num_buttons = self.devices[dev_num].get_numbuttons()
4304 for button_num in range(num_buttons):
4305 mw_key = "JOY%s_BUTTON%s" % (dev_num + 1, button_num)
4306- ctrl_name = _('Joystick %s Button %s') % (dev_num + 1, button_num)
4307+ ctrl_name = _('Joystick %s Button %s') % (
4308+ dev_num + 1, button_num)
4309 self.state[mw_key] = 0
4310- self.ctrls[ctrl_name] = mw_key
4311+ self.ctrls[ctrl_name] = mw_key
4312 if self.devices[dev_num].get_numaxes() > 2:
4313 mw_key = "JOY%s_" % (dev_num + 1)
4314 ctrl_name = _('Joystick %s ') % (dev_num + 1)
4315@@ -86,27 +90,27 @@
4316 self.ctrls[ctrl_name + _('Down')] = mw_key + "DOWN"
4317 self.ctrls[ctrl_name + _('Left')] = mw_key + "LEFT"
4318 self.ctrls[ctrl_name + _('Right')] = mw_key + "RIGHT"
4319-
4320- def poll(self, event_cb, initial_repeat_delay=40):
4321+
4322+ def poll(self, event_cb, initial_repeat_delay=10):
4323 """poll for joystick events"""
4324 if not pygame_imported:
4325- return 0
4326- repeat_delay = 4
4327+ return False
4328+ repeat_delay = 1
4329 # give pygame a chance to do its magic with the joystick
4330 pygame.event.pump()
4331 # end polling if no joysticks are found
4332 num_joysticks = pygame.joystick.get_count()
4333 if num_joysticks == 0:
4334- return 0
4335+ return False
4336 # get the focused window or return
4337 active_window = None
4338 windows = gtk.window_list_toplevels()
4339 for window in windows:
4340 if window.is_active():
4341 active_window = window
4342- if active_window == None:
4343- return 1
4344- # check if any of our defined controlls were pressed
4345+ if active_window == None:
4346+ return True
4347+ # check if any of our defined controls were pressed
4348 mw_key_events = []
4349 for mw_key in self.state.iterkeys():
4350 (dev_num, joy_type) = (mw_key.split("_", 1))
4351@@ -122,6 +126,7 @@
4352 elif self.state[mw_key] > 0:
4353 self.state[mw_key] = 0
4354 mw_key_events.append(mw_key)
4355+ #break #one event should be enough
4356 elif joy_type in ["LEFT", "RIGHT", "UP", "DOWN"]:
4357 if joy_type in ["LEFT", "RIGHT"]:
4358 axis_num = 0
4359@@ -142,20 +147,31 @@
4360 elif self.state[mw_key] > 0:
4361 self.state[mw_key] = 0
4362 mw_key_events.append(mw_key)
4363+ #break #one event should be enough
4364 # send fake key-press events
4365- for mw_key in mw_key_events:
4366+ if len(mw_key_events) > 0:
4367+ #print "mw_key_events=",mw_key_events
4368+ mw_key = mw_key_events[0]
4369+ #print "mw_key=",mw_key, self.state[mw_key]
4370+ #for mw_key in mw_key_events:
4371+ #print "mw_key=",mw_key, self.state[mw_key]
4372 if self.state[mw_key] == 0:
4373 e = gtk.gdk.Event(gtk.gdk.KEY_RELEASE)
4374 if active_window.window:
4375 e.window = active_window.window
4376+ if self.debug:
4377+ print "joystick: key-release: raising: ", mw_key
4378 event_cb(active_window, e, "JOYSTICK", mw_key)
4379- elif (self.state[mw_key] == 1 or
4380+ elif (self.state[mw_key] == 1 or
4381 self.state[mw_key] == initial_repeat_delay or
4382- (self.state[mw_key] > initial_repeat_delay and
4383+ (self.state[mw_key] > initial_repeat_delay and
4384 (self.state[mw_key] - initial_repeat_delay) % repeat_delay == 0)):
4385 e = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
4386 if active_window.window:
4387 e.window = active_window.window
4388+ if self.debug:
4389+ print "joystick: key-press: raising: ", mw_key
4390 event_cb(active_window, e, "JOYSTICK", mw_key)
4391- return 1
4392-
4393+ #try clearing event queue
4394+ pygame.event.clear()
4395+ return True
4396
4397=== modified file 'key_consts.py'
4398--- key_consts.py 2009-01-07 17:51:46 +0000
4399+++ key_consts.py 2011-03-03 21:06:42 +0000
4400@@ -4,7 +4,7 @@
4401 # Application: wah!cade
4402 # File: key_consts.py
4403 # Description: keyboard constants file
4404-# Copyright (c) 2005-2009 Andy Balcombe <http://www.anti-particle.com>
4405+# Copyright (c) 2005-2010 Andy Balcombe <http://www.anti-particle.com>
4406 ###
4407 #
4408 # This program is free software; you can redistribute it and/or modify
4409@@ -80,7 +80,7 @@
4410 'delete': ['DIK_DELETE'],
4411 'end': ['DIK_END'],
4412 'pause': ['DIK_PAUSE'],
4413-
4414+
4415 #function keys
4416 'f1': ['DIK_F1'],
4417 'f2': ['DIK_F2'],
4418@@ -120,7 +120,7 @@
4419 'kp_decimal': ['DIK_NUMPADPERIOD', 'DIK_DECIMAL'],
4420 'kp_enter': ['DIK_NUMPADENTER'],
4421
4422- #punctuation
4423+ #punctuation
4424 'grave': ['DIK_GRAVE'],
4425 'backslash': ['DIK_BACKSLASH'],
4426 'minus': ['DIK_MINUS'],
4427@@ -133,7 +133,7 @@
4428 'period': ['DIK_PERIOD'],
4429 'slash': ['DIK_SLASH'],
4430 'space': ['DIK_SPACE'],
4431-
4432+
4433 #modifier keys
4434 'escape': ['DIK_ESCAPE'],
4435 'shift_l': ['DIK_LSHIFT'],
4436@@ -148,10 +148,8 @@
4437 'caps_lock': ['DIK_CAPSLOCK'],
4438 'num_lock': ['DIK_NUMLOCK'],
4439 'scroll_lock': ['DIK_SCROLL'],
4440-
4441+
4442 #keys not recognized in GTK
4443 'voidsymbol': ['DIK_CAPITOL'],
4444 'unknown': ['DIK_APPS'],
4445- 'unknown': ['DIK_SYSRQ']
4446-}
4447-
4448+ 'unknown': ['DIK_SYSRQ']}
4449
4450=== modified file 'layout_editor.py'
4451--- layout_editor.py 2009-01-11 16:29:58 +0000
4452+++ layout_editor.py 2011-03-03 21:06:42 +0000
4453@@ -5,7 +5,7 @@
4454 # Application: wah!cade
4455 # File: layout_editor.py
4456 # Description: Wah!Cade Layout Editor
4457-# Copyright (c) 2005-2009 Andy Balcombe <http://www.anti-particle.com>
4458+# Copyright (c) 2005-2010 Andy Balcombe <http://www.anti-particle.com>
4459 ###
4460 #
4461 # This program is free software; you can redistribute it and/or modify
4462@@ -54,8 +54,10 @@
4463 from mamewah_ini import MameWahIni
4464 _ = gettext.gettext
4465
4466+
4467 class WinLayout(GladeSupport, WahCade):
4468 """Layout Editor Main Window"""
4469+
4470 def __init__(self, glade_filename, window_name, config_opts, config_args):
4471 """build the window"""
4472 self.title = 'Wah!Cade Layout Editor'
4473@@ -71,7 +73,7 @@
4474 self.config_dir = os.path.join(APP_PATH, 'config')
4475 else:
4476 #got with the default config location
4477- self.config_dir = os.path.expanduser('~/.wahcade')
4478+ self.config_dir = CONFIG_DIR
4479 if not os.path.exists(self.config_dir):
4480 sys.exit(_('No Wah!Cade config files found. Run wahcade or wahcade-setup first.'))
4481 self.fixdMain = gtk.Fixed()
4482@@ -143,7 +145,7 @@
4483 hist_widgets[widget_name] = evb
4484 self.fixdHist.put(evb, 100, 10 + (i * 30))
4485 #fixed pos widgets
4486- self._fixed_widgets = [self.fixdMain, self.fixdOpt, self.fixdMsg,
4487+ self._fixed_widgets = [self.fixdMain, self.fixdOpt, self.fixdMsg,
4488 self.fixdScr, self.fixdCpv, self.fixdHist]
4489 for fixd in self._fixed_widgets:
4490 fixd.connect('expose-event', self.on_fixd_expose_event)
4491@@ -237,9 +239,9 @@
4492 self.hist_widgets = hist_widgets
4493 #setup view menu / toolbar
4494 self.view_updating = True
4495- self.view_menu = [self.mnuVMain, self.mnuVOpt, self.mnuVMsg, self.mnuVScr,
4496+ self.view_menu = [self.mnuVMain, self.mnuVOpt, self.mnuVMsg, self.mnuVScr,
4497 self.mnuVCpv, self.mnuVHist]
4498- self.view_trb = [self.trbMain, self.trbOpt, self.trbMsg, self.trbScr,
4499+ self.view_trb = [self.trbMain, self.trbOpt, self.trbMsg, self.trbScr,
4500 self.trbCpv, self.trbHist]
4501 for mnu in self.view_menu[1:]:
4502 mnu.set_active(False)
4503@@ -259,7 +261,7 @@
4504 cpviewer_ini = MameWahIni(os.path.join(self.config_dir, 'cpviewer.ini'), 'default', '0.10')
4505 histview_ini = MameWahIni(os.path.join(self.config_dir, 'histview.ini'), 'default', '0.16')
4506 #setup layout combo
4507- self.layouts = []
4508+ self.layouts = []
4509 layout_files = glob.glob(os.path.join(self.config_dir, 'layouts', wahcade_ini.get('layout'), '*.lay'))
4510 for layout_file in layout_files:
4511 self.layouts.append(
4512@@ -268,7 +270,7 @@
4513 self.layouts.sort()
4514 #setup layout combo
4515 l = ['%s.lay' % (l[0]) for l in self.layouts]
4516- self.setup_combo_box(self.cboLayout, l)
4517+ self.setup_combo_box(self.cboLayout, l)
4518 #load layout
4519 layout_file = os.path.join(self.config_dir, 'layouts', wahcade_ini.get('layout'), 'layout.lay')
4520 if not os.path.isfile(layout_file):
4521@@ -280,7 +282,7 @@
4522 pass
4523 if not os.path.exists(layout_file):
4524 layout_file = os.path.join(self.config_dir, 'layouts', 'classic_640x480', 'layout.lay')
4525- idx = [self.layouts.index(l) for l in self.layouts if l[1] == layout_file]
4526+ idx = [self.layouts.index(l) for l in self.layouts if l[1] == layout_file]
4527 if idx != []:
4528 self.cboLayout.set_active(idx[0])
4529 else:
4530@@ -329,7 +331,7 @@
4531 #exit gtk loop
4532 gtk.main_quit()
4533 return False
4534-
4535+
4536 def on_winMain_key_press(self, widget, event, *args):
4537 """key pressed - move selected widget"""
4538 if self.selected_widgets == []:
4539@@ -423,7 +425,7 @@
4540 _('Save CP Viewer Layout'),
4541 self.save_cpviewer_file)
4542 self.set_window_title()
4543-
4544+
4545 def on_mnuFSaveHistAs_activate(self, *args):
4546 """save history viewer layout file as"""
4547 self.save_layout_dialog(
4548@@ -431,24 +433,24 @@
4549 _('Save History Viewer Layout'),
4550 self.save_histview_file)
4551 self.set_window_title()
4552-
4553+
4554 def on_mnuFQuit_activate(self, *args):
4555 """quit"""
4556 self.on_winMain_delete_event()
4557-
4558+
4559 def on_mnuESelectAllVisible_activate(self, *args):
4560 """select all visible widgets"""
4561 for widget in self.fixd.get_children():
4562 if self.dLayout[widget]['visible']:
4563 self.select_widget(widget)
4564 self.selected_widgets.append(widget)
4565-
4566+
4567 def on_mnuESelectAll_activate(self, *args):
4568 """select all widgets"""
4569 for widget in self.fixd.get_children():
4570 self.select_widget(widget)
4571 self.selected_widgets.append(widget)
4572-
4573+
4574 def on_cboLayout_changed(self, cbo, *args):
4575 """change layout"""
4576 self.load_layout_file(self.layouts[cbo.get_active()][1])
4577@@ -668,7 +670,7 @@
4578 gc = fixed.style.light_gc[gtk.STATE_NORMAL]
4579 window.draw_rectangle(gc, False, 0, 0, w, h)
4580 return False
4581-
4582+
4583 def _make_label(self, widget_name):
4584 """create a label (inside an event box)"""
4585 evb = gtk.EventBox()
4586@@ -726,7 +728,7 @@
4587 ftr.add_pattern('*.lay')
4588 dlg.add_filter(ftr)
4589 dlg.set_filter(ftr)
4590- if gtk.check_version(2,8,0) is None:
4591+ if gtk.check_version(2, 8, 0) is None:
4592 try:
4593 dlg.set_do_overwrite_confirmation(True)
4594 except AttributeError:
4595@@ -807,27 +809,27 @@
4596 main_bg_col = gtk.gdk.color_parse(self.get_colour(int(lines[3])))
4597 self.viewport.modify_bg(gtk.STATE_NORMAL, main_bg_col)
4598 self.dLayout[self.fixdMain]['image'] = lines[4]
4599- img_path = self.get_path(lines[4])
4600- if not os.path.dirname(img_path):
4601- img_path = os.path.join(layout_path, img_path)
4602- #print "img=",img_path, os.path.isfile(img_path)
4603- self.dLayout[self.fixdMain]['use_image'] = os.path.isfile(img_path)
4604+ img_file = self.get_path(lines[4])
4605+ if not os.path.dirname(img_file):
4606+ img_file = os.path.join(layout_path, img_file)
4607+ #print "img=",img_file, os.path.isfile(img_file)
4608+ self.dLayout[self.fixdMain]['use_image'] = os.path.isfile(img_file)
4609 #options window
4610 self.dLayout[self.fixdOpt]['background-col'] = self.get_colour(int(lines[296]))
4611 opt_bg_col = gtk.gdk.color_parse(self.get_colour(int(lines[296])))
4612 self.dLayout[self.fixdOpt]['image'] = lines[297]
4613- img_path = self.get_path(lines[297])
4614- if not os.path.dirname(img_path):
4615- img_path = os.path.join(layout_path, img_path)
4616- self.dLayout[self.fixdOpt]['use_image'] = os.path.isfile(img_path)
4617+ img_file = self.get_path(lines[297])
4618+ if not os.path.dirname(img_file):
4619+ img_file = os.path.join(layout_path, img_file)
4620+ self.dLayout[self.fixdOpt]['use_image'] = os.path.isfile(img_file)
4621 #message window
4622 self.dLayout[self.fixdMsg]['background-col'] = self.get_colour(int(lines[355]))
4623 msg_bg_col = gtk.gdk.color_parse(self.get_colour(int(lines[355])))
4624 self.dLayout[self.fixdMsg]['image'] = lines[356]
4625- img_path = self.get_path(lines[356])
4626- if not os.path.dirname(img_path):
4627- img_path = os.path.join(layout_path, img_path)
4628- self.dLayout[self.fixdMsg]['use_image'] = os.path.isfile(img_path)
4629+ img_file = self.get_path(lines[356])
4630+ if not os.path.dirname(img_file):
4631+ img_file = os.path.join(layout_path, img_file)
4632+ self.dLayout[self.fixdMsg]['use_image'] = os.path.isfile(img_file)
4633 #screen saver window
4634 self.dLayout[self.fixdScr]['background-col'] = self.dLayout[self.fixdMain]['background-col']
4635 self.dLayout[self.fixdScr]['image'] = ''
4636@@ -933,7 +935,7 @@
4637 lines[offset + 7] = ' %s' % d['font-size']
4638 align_rot = '%s' % d['text-align']
4639 if d['text-rotation'] != 0:
4640- align_rot = '%s;%s' % (align_rot, d['text-rotation'])
4641+ align_rot = '%s;%s' % (align_rot, d['text-rotation'])
4642 lines[offset + 8] = ' %s' % align_rot
4643 lines[offset + 9] = ' %s' % d['x']
4644 lines[offset + 10] = ' %s' % d['y']
4645@@ -952,7 +954,7 @@
4646 open(fname, 'w').writelines(lines[1:])
4647 #reset altered flag
4648 self.layout_altered = False
4649-
4650+
4651 def init_cpviewer_widgets(self):
4652 """set cpviewer widgets to sensible defaults"""
4653 for widget in self._cpv_widgets:
4654@@ -962,9 +964,9 @@
4655 d['font-bold'] = False
4656 d['font-italic'] = False
4657 d['font-size'] = 10
4658- d['transparent'] = True
4659+ d['transparent'] = True
4660 d['text-col'] = '#FF0000'
4661- d['background-col'] = '#FFFFFF'
4662+ d['background-col'] = '#FFFFFF'
4663 d['visible'] = False
4664 d['text-align'] = 2
4665 d['width'] = 100
4666@@ -1020,7 +1022,7 @@
4667 #visible?
4668 d['visible'] = (ctrl_element.find('Visible').text == 'True')
4669 evb.set_property('visible', d['visible'])
4670- #alignment
4671+ #alignment
4672 if ctrl_element.find('TextAlign').text == 'MiddleLeft':
4673 align = 0.0
4674 text_align = 0
4675@@ -1046,7 +1048,7 @@
4676 self.fixdCpv.move(evb, d['x'], d['y'])
4677 #save widget settings
4678 self.dLayout[evb] = d
4679- elif ctrl_element.tag == 'MainForm':
4680+ elif ctrl_element.tag == 'MainForm':
4681 #setup background, etc
4682 cpv_width = int(ctrl_element.find('Width').text)
4683 cpv_height = int(ctrl_element.find('Height').text)
4684@@ -1061,7 +1063,7 @@
4685 self.dLayout[self.fixdCpv] = {
4686 'name': 'C.P. Viewer',
4687 'width': cpv_width, 'height': cpv_height,
4688- 'background-col': back_col,
4689+ 'background-col': back_col,
4690 'image': cpv_img,
4691 'use_image': os.path.isfile(self.get_path(cpv_img))}
4692 #done
4693@@ -1083,7 +1085,7 @@
4694 e.tail = i
4695 if level and (not elem.tail or not elem.tail.strip()):
4696 elem.tail = i
4697-
4698+
4699 def save_cpviewer_file(self, cpviewer_filename=None):
4700 """save the cpviewer layout file"""
4701 xml_elements = {
4702@@ -1100,8 +1102,7 @@
4703 'background-col': 'BackColor',
4704 'text-align': 'TextAlign',
4705 'text-rotation': 'TextRotation',
4706- 'transparent': 'Transparent'
4707- }
4708+ 'transparent': 'Transparent'}
4709 #set filename
4710 if cpviewer_filename:
4711 self.cpviewer_filename = cpviewer_filename
4712@@ -1111,7 +1112,7 @@
4713 for cpv_widget in self._cpv_widgets:
4714 widget_ele = ET.SubElement(cpv_ele, cpv_widget)
4715 for k, v in self.dLayout[self.cpv_widgets[cpv_widget]].items():
4716- if xml_elements.has_key(k):
4717+ if k in xml_elements:
4718 sub_ele = ET.SubElement(widget_ele, xml_elements[k])
4719 if k in ['text-col', 'background-col']:
4720 sub_ele.text = str(self.reverse_get_colour(v))
4721@@ -1144,7 +1145,7 @@
4722 tree.write(self.cpviewer_filename)
4723 #reset altered flag
4724 self.cpviewer_altered = False
4725-
4726+
4727 def load_histview_file(self, histview_filename):
4728 """load history viewer layout file"""
4729 #read file & strip any crap
4730@@ -1245,7 +1246,7 @@
4731 lines[offset + 7] = ' %s' % d['font-size']
4732 align_rot = '%s' % d['text-align']
4733 if d['text-rotation'] != 0:
4734- align_rot = '%s;%s' % (align_rot, d['text-rotation'])
4735+ align_rot = '%s;%s' % (align_rot, d['text-rotation'])
4736 lines[offset + 8] = ' %s' % align_rot
4737 lines[offset + 9] = ' %s' % d['x']
4738 lines[offset + 10] = ' %s' % d['y']
4739@@ -1270,4 +1271,3 @@
4740 self.winMain.set_title('%s - %s' % (self.title, self.histview_filename))
4741 else:
4742 self.winMain.set_title('%s -%s' % (self.title, self.layout_filename))
4743-
4744
4745=== modified file 'layout_props.py'
4746--- layout_props.py 2009-01-07 17:51:46 +0000
4747+++ layout_props.py 2011-03-03 21:06:42 +0000
4748@@ -5,7 +5,7 @@
4749 # Application: wah!cade
4750 # File: layout_props.py
4751 # Description: Wah!Cade Layout Properties Dialog
4752-# Copyright (c) 2005-2009 Andy Balcombe <http://www.anti-particle.com>
4753+# Copyright (c) 2005-2010 Andy Balcombe <http://www.anti-particle.com>
4754 ###
4755 #
4756 # This program is free software; you can redistribute it and/or modify
4757@@ -25,8 +25,10 @@
4758 from constants import *
4759 from glade2 import *
4760
4761+
4762 class DlgProps(GladeSupport):
4763 """Layout Editor Item Properties Dialog"""
4764+
4765 def __init__(self, glade_filename, window_name, app):
4766 """build the window"""
4767 GladeSupport.__init__(self, glade_filename, window_name)
4768@@ -35,7 +37,7 @@
4769 self.widget_list = []
4770 self.name_idx = -1
4771 self.updating = False
4772-
4773+
4774 def populate_names(self, widget_list):
4775 #pop names
4776 self.widget_list = widget_list
4777@@ -89,7 +91,7 @@
4778 if self.chkTransparent.get_active():
4779 clr = self.WinLayout.dLayout[self.WinLayout.fixd]['background-col']
4780 else:
4781- clr = self.WinLayout.dLayout[widget]['background-col']
4782+ clr = self.WinLayout.dLayout[widget]['background-col']
4783 widget.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(clr))
4784 self.WinLayout.set_layout_altered(widget)
4785
4786@@ -101,7 +103,7 @@
4787 self.WinLayout.dLayout[widget]['x'] = x
4788 self.WinLayout.fixd.move(widget, x, self.WinLayout.dLayout[widget]['y'])
4789 self.WinLayout.set_layout_altered(widget)
4790-
4791+
4792 def on_spnY_changed(self, *args):
4793 """change widget Y pos"""
4794 if not self.updating:
4795@@ -181,7 +183,7 @@
4796 self.WinLayout.dLayout[widget]['text-align'] = text_align
4797 widget.child.set_property('xalign', xalign)
4798 self.WinLayout.set_layout_altered(widget)
4799-
4800+
4801 def on_cboRotation_changed(self, cbo, *args):
4802 """text / image rotation"""
4803 if not self.updating:
4804@@ -203,27 +205,27 @@
4805 self.WinLayout.dLayout[widget]['font-size'] = int(pfd.get_size() / pango.SCALE)
4806 widget.child.modify_font(pfd)
4807 self.WinLayout.set_layout_altered(widget)
4808-
4809+
4810 def on_btnArtworkDir_clicked(self, *args):
4811 """select artwork dir dialog"""
4812 pass
4813-
4814+
4815 def on_txeArtworkDir_changed(self, *args):
4816 """set artwork dir"""
4817 pass
4818-
4819+
4820 def on_chkPlaysMovies_toggled(self, *args):
4821 """play movies"""
4822 pass
4823-
4824+
4825 def on_btnMovieDir_clicked(self, *args):
4826 """select movie dir dialog"""
4827 pass
4828-
4829+
4830 def on_txeMovieDir_changed(self, *args):
4831 """set movie dir"""
4832 pass
4833-
4834+
4835 def set_properties(self, widget, widget_props):
4836 """set props for given widget"""
4837 self.name_idx = self.widget_list.index(widget.get_name())
4838@@ -261,4 +263,3 @@
4839 self.lblSelected.set_sensitive(False)
4840 self.clrSelected.set_sensitive(False)
4841 self.updating = False
4842-
4843
4844=== modified file 'layout_scr_props.py'
4845--- layout_scr_props.py 2009-01-07 17:51:46 +0000
4846+++ layout_scr_props.py 2011-03-03 21:06:42 +0000
4847@@ -5,7 +5,7 @@
4848 # Application: wah!cade
4849 # File: layout_scr_props.py
4850 # Description: Wah!Cade Layout Screen Properties Dialog
4851-# Copyright (c) 2005-2009 Andy Balcombe <http://www.anti-particle.com>
4852+# Copyright (c) 2005-2010 Andy Balcombe <http://www.anti-particle.com>
4853 ###
4854 #
4855 # This program is free software; you can redistribute it and/or modify
4856@@ -25,8 +25,10 @@
4857 from constants import *
4858 from glade2 import *
4859
4860+
4861 class DlgScreenProps(GladeSupport):
4862 """Screen Properties Dialog"""
4863+
4864 def __init__(self, glade_filename, window_name, app):
4865 """build the window"""
4866 GladeSupport.__init__(self, glade_filename, window_name)
4867@@ -152,4 +154,3 @@
4868 self.txeBackgroundImage.set_sensitive(False)
4869 self.btnBackgroundImage.set_sensitive(False)
4870 self.updating = False
4871-
4872
4873=== modified file 'locale/de/LC_MESSAGES/wahcade.mo'
4874Binary files locale/de/LC_MESSAGES/wahcade.mo 2009-01-11 16:29:58 +0000 and locale/de/LC_MESSAGES/wahcade.mo 2011-03-03 21:06:42 +0000 differ
4875=== modified file 'locale/en_GB/LC_MESSAGES/wahcade.mo'
4876Binary files locale/en_GB/LC_MESSAGES/wahcade.mo 2009-01-11 16:29:58 +0000 and locale/en_GB/LC_MESSAGES/wahcade.mo 2011-03-03 21:06:42 +0000 differ
4877=== modified file 'locale/es/LC_MESSAGES/wahcade.mo'
4878Binary files locale/es/LC_MESSAGES/wahcade.mo 2009-01-11 16:29:58 +0000 and locale/es/LC_MESSAGES/wahcade.mo 2011-03-03 21:06:42 +0000 differ
4879=== modified file 'locale/fr/LC_MESSAGES/wahcade.mo'
4880Binary files locale/fr/LC_MESSAGES/wahcade.mo 2009-01-11 16:29:58 +0000 and locale/fr/LC_MESSAGES/wahcade.mo 2011-03-03 21:06:42 +0000 differ
4881=== added directory 'locale/it'
4882=== added directory 'locale/it/LC_MESSAGES'
4883=== added file 'locale/it/LC_MESSAGES/wahcade.mo'
4884Binary files locale/it/LC_MESSAGES/wahcade.mo 1970-01-01 00:00:00 +0000 and locale/it/LC_MESSAGES/wahcade.mo 2011-03-03 21:06:42 +0000 differ
4885=== modified file 'locale/sv/LC_MESSAGES/wahcade.mo'
4886Binary files locale/sv/LC_MESSAGES/wahcade.mo 2009-01-11 16:29:58 +0000 and locale/sv/LC_MESSAGES/wahcade.mo 2011-03-03 21:06:42 +0000 differ
4887=== modified file 'make_all'
4888--- make_all 2008-11-30 10:26:19 +0000
4889+++ make_all 2011-03-03 21:06:42 +0000
4890@@ -1,7 +1,11 @@
4891-#!/bin/sh
4892+#!/bin/bash
4893 #make get text, tarball & build deb
4894-
4895-./make_gettext
4896-./make_tarball
4897-./build_deb_package
4898+echo 'make wahcade' > make.log
4899+if [ -z "$1" ]; then
4900+ if [ "$1" = "--gettext" ]; then
4901+ ./make_gettext >> make.log
4902+ fi
4903+fi
4904+./make_tarball >> make.log
4905+./build_deb_package >> make.log
4906
4907
4908=== modified file 'make_gettext'
4909--- make_gettext 2008-11-30 10:26:19 +0000
4910+++ make_gettext 2011-03-03 21:06:42 +0000
4911@@ -17,6 +17,7 @@
4912 msgmerge -U en_GB.po messages.pot
4913 msgmerge -U es.po messages.pot
4914 msgmerge -U fr.po messages.pot
4915+msgmerge -U it.po messages.pot
4916 msgmerge -U sv.po messages.pot
4917
4918 #compile into application format
4919@@ -25,6 +26,7 @@
4920 msgfmt en.po -o ../locale/en/LC_MESSAGES/wahcade.mo
4921 msgfmt es.po -o ../locale/es/LC_MESSAGES/wahcade.mo
4922 msgfmt fr.po -o ../locale/fr/LC_MESSAGES/wahcade.mo
4923+msgfmt it.po -o ../locale/fr/LC_MESSAGES/wahcade.mo
4924 msgfmt sv.po -o ../locale/sv/LC_MESSAGES/wahcade.mo
4925
4926 #
4927
4928=== modified file 'make_tarball'
4929--- make_tarball 2008-11-30 15:09:04 +0000
4930+++ make_tarball 2011-03-03 21:06:42 +0000
4931@@ -15,7 +15,7 @@
4932 tar -zhcf $TARBALL -T $NAME/wahcade_files
4933
4934 #copy stuff to antiparticle dir
4935-cp -f $TARBALL /media/windows/downloads/temp
4936+cp -f $TARBALL /media/windows_data/downloads/temp
4937 cp -f $TARBALL $WWW/projects/$NAME
4938 cp -f $SOURCE/doc/[A-Z]* $WWW/projects/$NAME/
4939 cp -f $SOURCE/doc/xmame/xmamerc $WWW/projects/$NAME/
4940
4941=== modified file 'mamewah_ini.py'
4942--- mamewah_ini.py 2009-01-07 17:51:46 +0000
4943+++ mamewah_ini.py 2011-03-03 21:06:42 +0000
4944@@ -5,7 +5,7 @@
4945 # Application: wah!cade
4946 # File: mamewah_ini.py
4947 # Description: read mamewah formatted ini file
4948-# Copyright (c) 2005-2009 Andy Balcombe <http://www.anti-particle.com>
4949+# Copyright (c) 2005-2010 Andy Balcombe <http://www.anti-particle.com>
4950 ###
4951 #
4952 # This program is free software; you can redistribute it and/or modify
4953@@ -26,7 +26,9 @@
4954
4955 from constants import *
4956
4957+
4958 class MameWahIni:
4959+
4960 def __init__(self, ini_filename, ini_type='default', min_version=None):
4961 """init ini class"""
4962 self.ini_filename = ini_filename
4963@@ -99,14 +101,14 @@
4964 if spc_pos == -1:
4965 spc_pos = len(line)
4966 option = line[:spc_pos]
4967- if self.ini_dict.has_key(option):
4968+ if option in self.ini_dict:
4969 #build line
4970 self.lines[i] = '%s%s' % (option.ljust(40), self.ini_dict[option])
4971 #add missing keys
4972 if missing_keys:
4973 #print "missing keys=",missing_keys
4974 self.lines.append('')
4975- self.lines.append('### Added in v%s "%s" ###' % (VERSION, VERSION_NAME))
4976+ self.lines.append('### Added in v%s "%s" ###' % (VERSION, VERSION_NAME))
4977 for mk in missing_keys:
4978 self.lines.append('%s%s' % (mk.ljust(40), self.ini_dict[mk]))
4979 #add correct line terminator
4980@@ -116,11 +118,11 @@
4981
4982 def has_option(self, option):
4983 """does the option exist"""
4984- return self.ini_dict.has_key(option)
4985+ return option in self.ini_dict
4986
4987 def get(self, option, get_mode='default', default_value=''):
4988 """return value for given option"""
4989- if self.ini_dict.has_key(option):
4990+ if option in self.ini_dict:
4991 value = self.ini_dict[option]
4992 #set default value if none found
4993 if value == '':
4994@@ -174,4 +176,3 @@
4995 if os.path.exists(os.path.expanduser(test_path)):
4996 value = test_path
4997 self.ini_dict[option] = value
4998-
4999
5000=== modified file 'po/de.po'
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches