예제 #1
0
 public MonitorAdorner(HeliosVisualView adornedElement, string monitorLabel, Monitor monitor)
     : base(adornedElement)
 {
     _textFormat.VerticalAlignment = TextVerticalAlignment.Center;
     _label   = monitorLabel;
     _monitor = monitor;
 }
        public UIElement GetVisualFeedback(IDataObject obj)
        {
            HeliosVisual item = obj.GetData("Helios.Visual") as HeliosVisual;

            if (item == null)
            {
                return(null);
            }

            HeliosVisualView view = new HeliosVisualView();

            view.Visual = item;
            view.Width  = item.Width * _target.ZoomFactor;
            view.Height = item.Height * _target.ZoomFactor;
            return(view);
        }
예제 #3
0
        public override void SetBindingFocus(HeliosObject bindingFoucsObject)
        {
            HeliosVisual visual = bindingFoucsObject as HeliosVisual;

            if (visual != null && Panel.Children.Contains(visual))
            {
                PanelEditor.SelectedItems.Clear();

                HeliosVisualView view = PanelEditor.GetViewerForVisual(visual);
                if (view != null)
                {
                    PanelEditor.UpdateLayout();
                    PanelEditor.SelectedItems.Add((HeliosVisual)bindingFoucsObject);
                    Dispatcher.BeginInvoke(new Action(view.BringIntoView));
                }
            }
        }
예제 #4
0
        public MonitorWindow(Monitor monitor, bool highQualityBitmapScaling, bool autoInvalidate)
        {
            _viewer = new HeliosVisualView();
            _viewer.HighQualityBitmapScaling = highQualityBitmapScaling;
            _viewer.Visual = monitor;
            Content        = _viewer;

            _display        = monitor;
            _autoInvalidate = autoInvalidate;
            _needsDisplay   = true;

            Top    = _display.Top;
            Left   = _display.Left;
            Width  = _display.Width;
            Height = _display.Height;

            ShowInTaskbar = false;
            WindowStyle   = System.Windows.WindowStyle.None;
            (Monitor.Renderer as MonitorRenderer).SkipFill = true;

            if (!Monitor.FillBackground)
            {
                ConfigManager.LogManager.LogDebug("Setting " + monitor.Name + " to transparent.");
                AllowsTransparency = true;
                Background         = Brushes.Transparent;
            }
            else
            {
                if (Monitor.BackgroundColor.A != 255)
                {
                    ConfigManager.LogManager.LogDebug("Setting " + monitor.Name + " to transparent.");
                    AllowsTransparency = true;
                }
                Background = new SolidColorBrush(Monitor.BackgroundColor);
            }

            Focusable = false;

            if (Monitor.AlwaysOnTop)
            {
                Topmost = true;
            }

            ResizeMode = System.Windows.ResizeMode.NoResize;
        }
예제 #5
0
        private void UpdateMonitors()
        {
            AdornerLayer layer = AdornerLayer.GetAdornerLayer(this);

            foreach (MonitorRectangle monitorRect in _monitorRectangles)
            {
                if (layer != null)
                {
                    layer.Remove(monitorRect.Adorner);
                }
                _children.Remove(monitorRect.View);
            }

            _monitorRectangles.Clear();

            if (Profile != null)
            {
                _setAdorners = true;

                int i = 1;
                foreach (Monitor monitor in Profile.Monitors)
                {
                    HeliosVisualView monitorView = new HeliosVisualView();
                    monitorView.Visual     = monitor;
                    monitorView.Visibility = ShowPanels ? Visibility.Visible : Visibility.Hidden;
                    _children.Add(monitorView);

                    MonitorAdorner adorner = new MonitorAdorner(monitorView, i++.ToString(), monitor);

                    MonitorRectangle monitorRect = new MonitorRectangle();
                    monitorRect.Monitor = monitor;
                    monitorRect.View    = monitorView;
                    monitorRect.Adorner = adorner;
                    _monitorRectangles.Add(monitorRect);
                }
            }
            InvalidateMeasure();
            InvalidateArrange();
            InvalidateVisual();
        }