Changeset - 46b3b97a9901
[Not reviewed]
Jason Maltzen (jmaltzen) - 7 years ago 2018-05-21 20:05:30
jason.maltzen@unsanctioned.net
Don't allow <=0 screen resolution or pixel scale settings, as that doesn't make sense.
1 file changed with 43 insertions and 40 deletions:
0 comments (0 inline, 0 general)
MainWindow.cs
Show inline comments
...
 
@@ -26,23 +26,23 @@ using System.Collections.Generic;
 
using System.Text.RegularExpressions;
 
using Gtk;
 
using DesertPaintLab;
 

	
 
public partial class MainWindow : Gtk.Window
 
{
 
    const string APP_VERSION = "1.7.15";
 

	
 
    bool unsavedData = false;
 
    bool shouldShutDown = false;
 
    bool unsavedData;
 
    bool shouldShutDown;
 
    List<string> profileList = new List<string>();
 
    PlayerProfile profile = null;
 
    PlayerProfile profile;
 

	
 
    Gdk.Window rootWindow = null;
 
    Gdk.Pixbuf screenBuffer = null;
 
    Gdk.Window rootWindow;
 
    Gdk.Pixbuf screenBuffer;
 

	
 
    // views
 
    RecipeGeneratorView generatorView;
 
    SimulatorView simulatorView;
 
    CaptureView captureView;
 

	
 
    private ReactionStatusWindow _reactionStatusWindow;
 

	
...
 
@@ -103,22 +103,22 @@ public partial class MainWindow : Gtk.Wi
 
        ReagentManager.Load(ingredientsPath);
 

	
 
        Build();
 

	
 
        // get the root window
 
        rootWindow = Gdk.Global.DefaultRootWindow;
 

	
 
        // get its width and height
 
        DesertPaintLab.AppSettings.Load();
 
        AppSettings.Load();
 

	
 
        ShowPreferencesDialog();
 

	
 
        bool enableDebugMenu;
 
        DesertPaintLab.AppSettings.Get("EnableDebugMenu", out enableDebugMenu);
 
        AppSettings.Get("EnableDebugMenu", out enableDebugMenu);
 
        this.DebugAction.Visible = enableDebugMenu;
 

	
 
        ReactionRecorder.Instance.OnReactionRecorded += OnReactionRecorded;
 

	
 
        if (!OpenProfile())
 
        {
 
            shouldShutDown = true;
 
        }
...
 
@@ -255,18 +255,19 @@ public partial class MainWindow : Gtk.Wi
 
    }
 

	
 
    bool OpenProfile()
 
    {
 
        bool profileSelected = false;
 

	
 
        if (profileList.Count > 0)
 
        {
 
            SelectProfileDialog selectProfileDialog = new SelectProfileDialog();
 
            selectProfileDialog.ProfileList = profileList;
 
            SelectProfileDialog selectProfileDialog = new SelectProfileDialog {
 
                ProfileList = profileList
 
            };
 
            ResponseType resp = (ResponseType)selectProfileDialog.Run();
 
            selectProfileDialog.Destroy();
 
            string selectedProfile = selectProfileDialog.SelectedProfile;
 
            if ((resp == ResponseType.Ok) && (selectedProfile.Length > 0))
 
            // Selected a profile.
 
            {
 
                SetProfileName(selectedProfile);
 
                profileSelected = true;
...
 
@@ -400,18 +401,19 @@ public partial class MainWindow : Gtk.Wi
 
                md.Destroy();
 
            }
 
        }
 
    }
 

	
 
    protected virtual void OnOpenProfile(object sender, System.EventArgs e)
 
    {
 
        bool profileSelected = false;
 
        SelectProfileDialog selectProfileDialog = new SelectProfileDialog();
 
        selectProfileDialog.ProfileList = profileList;
 
        SelectProfileDialog selectProfileDialog = new SelectProfileDialog {
 
            ProfileList = profileList
 
        };
 
        ResponseType resp = (ResponseType)selectProfileDialog.Run();
 
        selectProfileDialog.Destroy();
 
        if (resp == ResponseType.Ok) // Selected a profile.
 
        {
 
            SetProfileName(selectProfileDialog.SelectedProfile);
 
            profileSelected = true;
 
        }
 
        else if (resp == ResponseType.Accept) // New profile.
...
 
@@ -434,22 +436,22 @@ public partial class MainWindow : Gtk.Wi
 
                md.Run();
 
                md.Destroy();
 
            }
 
        }
 
    }
 

	
 
    protected virtual void OnAbout(object sender, System.EventArgs e)
 
    {
 
        AboutDialog aboutDialog = new AboutDialog();
 

	
 
        aboutDialog.ProgramName = "Desert Paint Lab";
 
        aboutDialog.Version = APP_VERSION;
 
        aboutDialog.Comments = "Desert Paint Lab paint reaction recorder for A Tale in the Desert";
 
        aboutDialog.Authors = new string[] { "Tess Snider", "Jason Maltzen" };
 
        AboutDialog aboutDialog = new AboutDialog {
 
            ProgramName = "Desert Paint Lab",
 
            Version = APP_VERSION,
 
            Comments = "Desert Paint Lab paint reaction recorder for A Tale in the Desert",
 
            Authors = new string [] { "Tess Snider", "Jason Maltzen" }
 
        };
 
        //aboutDialog.Website = "http://www.google.com/";
 
        aboutDialog.Run();
 
        aboutDialog.Destroy();
 
    }
 

	
 
    protected virtual void OnMenuExit(object sender, System.EventArgs e)
 
    {
 
        if (ConfirmedExit())
...
 
@@ -718,59 +720,60 @@ public partial class MainWindow : Gtk.Wi
 
        int detectedScreenWidth;
 
        int detectedScreenHeight;
 
        rootWindow.GetSize(out detectedScreenWidth, out detectedScreenHeight);
 
        int screenWidth = detectedScreenWidth;
 
        int screenHeight = detectedScreenHeight;
 
        int pixelMultiplier = 1;
 
        int interfaceSizeIndex = (int)(InterfaceSize.Small);
 

	
 
        DesertPaintLab.AppSettings.Get("ScreenWidth", out screenWidth);
 
        DesertPaintLab.AppSettings.Get("ScreenHeight", out screenHeight);
 
        DesertPaintLab.AppSettings.Get("PixelMultiplier", out pixelMultiplier);
 
        DesertPaintLab.AppSettings.Get("InterfaceSize", out interfaceSizeIndex);
 
        AppSettings.Get("ScreenWidth", out screenWidth);
 
        AppSettings.Get("ScreenHeight", out screenHeight);
 
        AppSettings.Get("PixelMultiplier", out pixelMultiplier);
 
        AppSettings.Get("InterfaceSize", out interfaceSizeIndex);
 
        InterfaceSize interfaceSize = (InterfaceSize)interfaceSizeIndex;
 

	
 
        ScreenCheckDialog screenCheckDialog = new ScreenCheckDialog();
 
        screenCheckDialog.DetectedScreenWidth = detectedScreenWidth;
 
        screenCheckDialog.DetectedScreenHeight = detectedScreenHeight;
 
        screenCheckDialog.ScreenWidth = screenWidth;
 
        screenCheckDialog.ScreenHeight = screenHeight;
 
        screenCheckDialog.GamePixelWidth = pixelMultiplier;
 
        screenCheckDialog.InterfaceSize = interfaceSize;
 
        ScreenCheckDialog screenCheckDialog = new ScreenCheckDialog {
 
            DetectedScreenWidth = detectedScreenWidth,
 
            DetectedScreenHeight = detectedScreenHeight,
 
            ScreenWidth = screenWidth,
 
            ScreenHeight = screenHeight,
 
            GamePixelWidth = pixelMultiplier,
 
            InterfaceSize = interfaceSize
 
        };
 

	
 
        ResponseType resp = (ResponseType)screenCheckDialog.Run();
 

	
 
        screenWidth = screenCheckDialog.ScreenWidth;
 
        screenHeight = screenCheckDialog.ScreenHeight;
 
        pixelMultiplier = screenCheckDialog.GamePixelWidth;
 
        screenWidth = Math.Max(640, screenCheckDialog.ScreenWidth); // don't support screen smaller than 640x480 no matter what the user says
 
        screenHeight = Math.Max(480, screenCheckDialog.ScreenHeight);
 
        pixelMultiplier = Math.Max(1, screenCheckDialog.GamePixelWidth); // Don't allow 0/negative pixel multiplier
 
        interfaceSize = screenCheckDialog.InterfaceSize;
 
        screenCheckDialog.Destroy();
 

	
 
        DesertPaintLab.AppSettings.Set("ScreenWidth", screenWidth);
 
        DesertPaintLab.AppSettings.Set("ScreenHeight", screenHeight);
 
        DesertPaintLab.AppSettings.Set("PixelMultiplier", pixelMultiplier);
 
        DesertPaintLab.AppSettings.Set("InterfaceSize", (int)interfaceSize);
 
        DesertPaintLab.AppSettings.Save();
 
        AppSettings.Set("ScreenWidth", screenWidth);
 
        AppSettings.Set("ScreenHeight", screenHeight);
 
        AppSettings.Set("PixelMultiplier", pixelMultiplier);
 
        AppSettings.Set("InterfaceSize", (int)interfaceSize);
 
        AppSettings.Save();
 

	
 
        screenBuffer = new Gdk.Pixbuf(Gdk.Colorspace.Rgb, false, 8, screenWidth, screenHeight);
 

	
 
        ReactionRecorder.Instance.SetPixelMultiplier(pixelMultiplier);
 
        ReactionRecorder.Instance.SetInterfaceSize(interfaceSize);
 
    }
 

	
 
    protected void OnPreferences(object sender, EventArgs e)
 
    {
 
        ShowPreferencesDialog();
 

	
 
        int screenWidth = 1920;
 
        int screenHeight = 1080;
 
        int pixelMultiplier = 1;
 
        int interfaceSizeIndex = (int)(InterfaceSize.Small);
 

	
 
        DesertPaintLab.AppSettings.Get("ScreenWidth", out screenWidth);
 
        DesertPaintLab.AppSettings.Get("ScreenHeight", out screenHeight);
 
        DesertPaintLab.AppSettings.Get("PixelMultiplier", out pixelMultiplier);
 
        DesertPaintLab.AppSettings.Get("InterfaceSize", out interfaceSizeIndex);
 
        AppSettings.Get("ScreenWidth", out screenWidth);
 
        AppSettings.Get("ScreenHeight", out screenHeight);
 
        AppSettings.Get("PixelMultiplier", out pixelMultiplier);
 
        AppSettings.Get("InterfaceSize", out interfaceSizeIndex);
 

	
 
        captureView.ScreenBuffer = screenBuffer;
 
    }
 
}
0 comments (0 inline, 0 general)