예제 #1
0
        public Screen PickScreen()
        {
            var picker = new ScreenPicker();

            picker.ShowDialog();

            return(picker.SelectedScreen);
        }
예제 #2
0
        public void WhenNoModelProvided_ThenShowDialogSucceeds()
        {
            var picker = new ScreenPicker <ScreenSelectorItem>()
            {
                Dock = DockStyle.Fill
            };

            this.form = new Form();
            this.form.Controls.Add(picker);
            this.form.Show();
            System.Windows.Forms.Application.DoEvents();
            form.Close();
        }
예제 #3
0
        public void WhenModelHasScreensWithNegativeBounds_ThenShowDialogSucceeds()
        {
            var model = new ObservableCollection <ScreenSelectorItem>();

            model.Add(new ScreenSelectorItem()
            {
                DeviceName   = "first",
                ScreenBounds = new Rectangle()
                {
                    X      = -1000,
                    Y      = -1000,
                    Width  = 500,
                    Height = 500
                }
            });

            model.Add(new ScreenSelectorItem()
            {
                DeviceName   = "second",
                ScreenBounds = new Rectangle()
                {
                    X      = 500,
                    Y      = 500,
                    Width  = 500,
                    Height = 500
                }
            });

            var picker = new ScreenPicker <ScreenSelectorItem>()
            {
                Dock = DockStyle.Fill
            };

            picker.BindCollection(model);
            this.form = new Form()
            {
                Width  = 400,
                Height = 400
            };
            this.form.Controls.Add(picker);

            this.form.Show();
            System.Windows.Forms.Application.DoEvents();

            Assert.AreEqual(2, picker.Screens.Count());
            Assert.AreEqual(2, picker.Screens.First().Bounds.X);
            Assert.AreEqual(2, picker.Screens.First().Bounds.Y);

            Assert.AreEqual(form.ClientSize.Height - 2, picker.Screens.Last().Bounds.Y + picker.Screens.Last().Bounds.Height, 2);
            this.form.Close();
        }
예제 #4
0
        // App-wide methods

        public static void ConfigureShortcut(Window owner, ScreenPicker screenPicker)
        {
            // remove current shortcut during shortcut key selection
            var oldKeys = screenPicker.ShortcutKeys;

            screenPicker.ShortcutKeys = KeyCombination.None;
            HotKeyInputWindow hotKeyInput = new HotKeyInputWindow(oldKeys);

            hotKeyInput.Owner = owner;
            if (hotKeyInput.ShowDialog() == true)
            {
                screenPicker.ShortcutKeys = hotKeyInput.SelectedHotKey;
            }
            else
            {
                // restore previous shortcut
                screenPicker.ShortcutKeys = oldKeys;
            }
        }
예제 #5
0
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     // Check for updates
     updateChecker.CheckForUpdates(UpdateNotifyMode.Auto);
     // Load color history
     if (Settings.Default.LatestColors != null)
     {
         colorHistory           = Settings.Default.LatestColors;
         colorHistory.MaxLength = Settings.Default.ColorHistoryLength;
     }
     else
     {
         colorHistory = new FixedColorCollection(Settings.Default.ColorHistoryLength);
     }
     lstHistory.ItemsSource = colorHistory;
     // Set current color
     CurrentColor = new NotifyColor(Settings.Default.CurrentColor);
     // Init screen picker
     ScreenPicker = new ScreenPicker(CurrentColor, imgScreen);
     ScreenPicker.PositionSelected += ScreenPicker_PositionSelected;
     // Set data context
     this.DataContext = this;
 }
예제 #6
0
 public SettingsWindow(ScreenPicker screenPicker)
 {
     this.screenPicker = screenPicker;
     InitializeComponent();
     beSet = new HashSet <BindingExpressionBase>();
 }