Esempio n. 1
0
 public MainForm(Rectangle bounds, FlipItSettings settings, ScreenSetting screenSetting)
 {
     _settings      = settings;
     _screenSetting = screenSetting;
     InitializeComponent();
     Bounds = bounds;
 }
Esempio n. 2
0
        public SettingsForm(FlipItSettings settings)
        {
            InitializeComponent();
            _settings = settings;

            versionLabel.Text = $"Version {GetVersion()}";
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // For testing...
            // Application.CurrentCulture = new CultureInfo("nl-NL");

            var settings = FlipItSettings.Load(Screen.AllScreens);

            if (args.Length > 0)
            {
                string firstArgument  = args[0].ToLower().Trim();
                string secondArgument = null;

                // Handle cases where arguments are separated by colon.
                // Examples: /c:1234567 or /P:1234567
                if (firstArgument.Length > 2)
                {
                    secondArgument = firstArgument.Substring(3).Trim();
                    firstArgument  = firstArgument.Substring(0, 2);
                }
                else if (args.Length > 1)
                {
                    secondArgument = args[1];
                }

                if (firstArgument == "/c")           // Configuration mode
                {
                    Application.Run(new SettingsForm(settings));
                }
                else if (firstArgument == "/p")                      // Preview mode
                {
                    if (secondArgument == null)
                    {
                        MessageBox.Show("Sorry, but the expected window handle was not provided.",
                                        "ScreenSaver", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }

                    IntPtr previewWndHandle = new IntPtr(long.Parse(secondArgument));
                    Application.Run(new MainForm(previewWndHandle, settings, settings.ScreenSettings[0]));
                }
                else if (firstArgument == "/s")                      // Full-screen mode
                {
                    ShowScreenSaver(settings);
                    Application.Run();
                }
                else                    // Undefined argument
                {
                    MessageBox.Show("Sorry, but the command line argument \"" + firstArgument +
                                    "\" is not valid.", "FlipIt",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            else                // No arguments - treat like /c
            {
                Application.Run(new SettingsForm(settings));
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Display the form on each of the computer's monitors.
 /// </summary>
 static void ShowScreenSaver(FlipItSettings settings)
 {
     foreach (var screen in Screen.AllScreens)
     {
         var screenSettings = settings.GetScreen(screen.DeviceName);
         var form           = new MainForm(screen.Bounds, settings, screenSettings);
         form.Show();
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Display the form on each of the computer's monitors.
 /// </summary>
 static void ShowScreenSaver(FlipItSettings settings)
 {
     foreach (var screen in Screen.AllScreens)
     {
         var cleanDeviceName = CleanDeviceName(screen.DeviceName);
         var screenSettings  = settings.GetScreen(cleanDeviceName);
         var form            = new MainForm(screen.Bounds, settings.Display24HrTime, screenSettings);
         form.Show();
     }
 }
Esempio n. 6
0
        private static FlipItSettings LoadSettings()
        {
            var     allScreens = Screen.AllScreens;
            IniFile iniFile    = null;

            var settings = new FlipItSettings();

            var settingsFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "FlipIt");
            var iniFilePath    = Path.Combine(settingsFolder, "Settings.ini");

            if (File.Exists(iniFilePath))
            {
                iniFile = new IniFile(iniFilePath);
                settings.Display24HrTime = iniFile.ReadBool("General", "Display24Hr", false);
                settings.Scale           = iniFile.ReadInt("General", "Scale", 70);
            }
            else
            {
                settings.Display24HrTime = false;
            }

            var screenNum = 0;

            foreach (var screen in allScreens)
            {
                screenNum++;
                var cleanDeviceName = CleanDeviceName(screen.DeviceName);
                var sectionName     = $"Screen {cleanDeviceName}";

                var screenSetting = new ScreenSetting(screenNum, cleanDeviceName, screen.Bounds.Width, screen.Bounds.Height);
                if (iniFile != null && iniFile.SectionExists(sectionName))
                {
                    screenSetting.DisplayType = (DisplayType)iniFile.ReadInt(sectionName, "DisplayType", (int)DisplayType.CurrentTime);
                }
                else
                {
                    screenSetting.DisplayType = DisplayType.CurrentTime;
                }
                settings.ScreenSettings.Add(screenSetting);
            }

            return(settings);
        }
Esempio n. 7
0
        public MainForm(IntPtr previewWndHandle, FlipItSettings settings, ScreenSetting screenSetting)
        {
            _settings      = settings;
            _screenSetting = screenSetting;

            InitializeComponent();

            // Set the preview window as the parent of this window
            SetParent(Handle, previewWndHandle);

            // Make this a child window so it will close when the parent dialog closes
            SetWindowLong(Handle, -16, new IntPtr(GetWindowLong(Handle, -16) | 0x40000000));

            // Place our window inside the parent
            GetClientRect(previewWndHandle, out var parentRect);
            Size     = parentRect.Size;
            Location = new Point(0, 0);

            _isPreviewMode = true;
        }
Esempio n. 8
0
        public static FlipItSettings Load(Screen[] allScreens)
        {
            IniFile iniFile = null;

            var settings       = new FlipItSettings();
            var settingsFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "FlipIt");
            var iniFilePath    = Path.Combine(settingsFolder, "Settings.ini");

            if (File.Exists(iniFilePath))
            {
                iniFile = new IniFile(iniFilePath);
                settings.Display24HrTime = iniFile.GetBool("General", "Display24Hr", false);
                settings.Scale           = iniFile.GetInt("General", "Scale", 70);
            }
            else
            {
                settings.Display24HrTime = false;
            }

            var screenNum = 0;

            foreach (var screen in allScreens)
            {
                screenNum++;
                var cleanDeviceName   = CleanScreenDeviceName(screen.DeviceName);
                var screenSectionName = $"Screen {cleanDeviceName}";

                var screenSetting = new ScreenSetting(screenNum, cleanDeviceName, screen.Bounds.Width, screen.Bounds.Height);
                if (iniFile != null)
                {
                    // if (iniFile.SectionExists(screenSectionName))
                    if (iniFile.SectionExists(screenSectionName))
                    {
                        screenSetting.DisplayType = (DisplayType)iniFile.GetInt(screenSectionName, "DisplayType", (int)DisplayType.CurrentTime);
                    }

                    var screenLocationsSectionName = $"Screen {cleanDeviceName} Locations";
                    if (iniFile.SectionExists(screenLocationsSectionName))
                    {
                        var locationNames = iniFile.GetKeys(screenLocationsSectionName);
                        foreach (var locationName in locationNames)
                        {
                            var timeZoneID = iniFile.GetString(screenLocationsSectionName, locationName);
                            if (!String.IsNullOrWhiteSpace(timeZoneID))
                            {
                                screenSetting.Locations.Add(new Location(timeZoneID, locationName));
                            }
                            else
                            {
                                iniFile.DeleteKey(screenLocationsSectionName, locationName);
                            }
                        }
                    }
                }
                else
                {
                    screenSetting.DisplayType = DisplayType.CurrentTime;
                }

                settings.ScreenSettings.Add(screenSetting);
            }
            return(settings);
        }
Esempio n. 9
0
 public SettingsForm(FlipItSettings settings)
 {
     InitializeComponent();
     _settings = settings;
 }