begin suppport for smaller screens, currently just prints a warning
authorMichael Gernoth <michael@gernoth.net>
Thu, 16 Dec 2010 08:50:24 +0000 (09:50 +0100)
committerMichael Gernoth <michael@gernoth.net>
Thu, 16 Dec 2010 08:50:24 +0000 (09:50 +0100)
Variables defining the scenarion window size and images can now be
set from micropolis.tcl depending on the display size. As there are
currently no nice small images available, just a warning is printed

res/micropolis.tcl
res/wscen.tcl
src/sim/sim.c

index 5704330..dbf4312 100644 (file)
@@ -174,8 +174,10 @@ set NoticePanelHeight 250
 set SplashPanelWidth 1200
 set SplashPanelHeight 900
 
-set ScenarioPanelWidth 420
-set ScenarioPanelHeight 440
+#set ScenarioPanelWidth 420
+#set ScenarioPanelHeight 440
+set ScenarioPanelWidth 1200
+set ScenarioPanelHeight 900
 
 set SugarURI ""
 set SugarNickName ""
@@ -204,7 +206,7 @@ set SubWindows {
 #   0           1               2               3       4         5   6   7   8         9       10   11       12      13
 #   type       id              callback        param   var       x   y   w   h         normal  over disabled checked checkedover
 #   ----------- --------------- --------------- ------- ------- --- --- --- ---         ------- ---- -------- ------- -----------
-set ScenarioButtons {
+set ScenarioButtons1200x900 {
   { button     load            DoLoad          ""      ""       70 238 157  90         ""      @images/button1hilite.xpm "" }
   { button     generate        DoGenerate      ""      ""       62 392 157  90         ""      @images/button2hilite.xpm "" }
   { button     quit            DoQuit          ""      ""       68 544 157  90         ""      @images/button3hilite.xpm "" }
@@ -225,6 +227,17 @@ set ScenarioButtons {
   { button     scenario8       DoPickScenario  "6"     ""      937 638 209 188         ""      @images/scenario8hilite.xpm "" }
 }
 
+set ScenarioButtons $ScenarioButtons1200x900
+set ScenarioBackground "@images/background-micropolis.xpm"
+
+set screenwidth [winfo screenwidth .]
+set screenheight [winfo screenheight .]
+
+if {($screenwidth < $ScenarioPanelWidth) ||
+    ($screenheight < $ScenarioPanelHeight)} {
+       puts stderr "WARNING: Screen too small for scenario window, no matching images available.\n"
+}
+
 # Disabled until we handle mouse events on the map itself.
 #   { button   map             DoMap           ""      ""      516  30 396 338         ""      @images/maphilite.xpm }
 
index 4ccc862..900be60 100644 (file)
@@ -75,9 +75,12 @@ if {[catch "toplevel $win -screen $display"]} {
   return ""
 }
 
+global ScenarioPanelWidth
+global ScenarioPanelHeight
+
 wm title $win "Micropolis Scenarios"
 wm iconname $win {Micropolis Scenarios}
-wm geometry $win 1200x900+0+0
+wm geometry $win ${ScenarioPanelWidth}x${ScenarioPanelHeight}+0+0
 wm withdraw $win
 wm protocol $win delete "DeleteScenarioWindow $win ;"
 wm fullscreen $win on
@@ -90,13 +93,15 @@ canvas $win.canvas \
   -scrollincrement 0 \
   -borderwidth 0 \
   -background #BFBFBF \
-  -width 1200 -height 900
+  -width $ScenarioPanelWidth -height $ScenarioPanelHeight
 LinkWindow $win.canvas $win.canvas
 LinkWindow $win.canvas.w $win
 
+global ScenarioBackground
+
 $win.canvas create bitmap 0 0 \
   -tags background  \
-  -bitmap "@images/background-micropolis.xpm" \
+  -bitmap $ScenarioBackground \
   -anchor nw
 
 $win.canvas bind background <ButtonPress> {HandleScenarioDown %W %x %y}
index 4b2748c..5ae4770 100644 (file)
@@ -632,6 +632,7 @@ main(int argc, char *argv[])
   printf("Welcome to X11 Multi Player Micropolis version %s by Will Wright, Don Hopkins.\n",
         MicropolisVersion);
   printf("Copyright (C) 2002 by Electronic Arts, Maxis. All rights reserved.\n");
+  printf("Support for newer Unix systems and new bugs added by Michael Gernoth.\n");
 
   while (!errflg && 
         !tkMustExit &&
Impressum, Datenschutz