Beispiel #1
0
        private void ButtonDeleteFace_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                var streamDeckButton     = _streamDeckPanel.SelectedButton;
                var streamDeckButtonName = streamDeckButton.StreamDeckButtonName;

                streamDeckButton.Face.Dispose(); //todo this must be properly made
                streamDeckButton.Face = null;    //todo this must be properly made

                if (streamDeckButton.HasConfig)
                {
                    _streamDeckPanel.SelectedLayer.AddButton(streamDeckButton);
                }
                else
                {
                    _streamDeckPanel.SelectedLayer.RemoveButton(streamDeckButton);
                }
                UCStreamDeckButtonFace.Clear();
                _streamDeckPanel.ClearFace(streamDeckButtonName);
                EventHandlers.NotifyToSyncConfiguration(this, _streamDeckPanel.BindingHash);
                SetFormState();
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(ex);
            }
        }
Beispiel #2
0
        private void ButtonDeleteAction_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                var streamDeckButton = _streamDeckPanel.SelectedButton;
                if (streamDeckButton.ActionForPress != null && streamDeckButton.ActionForPress.ActionType == EnumStreamDeckActionType.LayerNavigation && streamDeckButton.Face != null)
                {
                    streamDeckButton.Face.Dispose();
                    streamDeckButton.Face = null;
                    UCStreamDeckButtonFace.Clear();
                }
                streamDeckButton.ActionForPress   = null;
                streamDeckButton.ActionForRelease = null;

                if (streamDeckButton.HasConfig)
                {
                    _streamDeckPanel.SelectedLayer.AddButton(streamDeckButton);
                }
                else
                {
                    _streamDeckPanel.SelectedLayer.RemoveButton(streamDeckButton);
                }

                UCStreamDeckButtonAction.Clear();

                EventHandlers.NotifyToSyncConfiguration(this, _streamDeckPanel.BindingHash);
                SetFormState();
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(ex);
            }
        }
Beispiel #3
0
        private void ButtonAcceptButtonChanges_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                try
                {
                    var streamDeckButton = _streamDeckPanel.SelectedButton;
                    streamDeckButton.ActionForPress   = UCStreamDeckButtonAction.GetStreamDeckButtonAction(true);
                    streamDeckButton.ActionForRelease = UCStreamDeckButtonAction.GetStreamDeckButtonAction(false);

                    streamDeckButton.Face = UCStreamDeckButtonFace.GetStreamDeckButtonFace(streamDeckButton.StreamDeckButtonName);

                    if (streamDeckButton.HasConfig)
                    {
                        _streamDeckPanel.SelectedLayer.AddButton(streamDeckButton);
                    }
                    else
                    {
                        _streamDeckPanel.SelectedLayer.RemoveButton(streamDeckButton);
                    }
                    UCStreamDeckButtonAction.StateSaved();
                    UCStreamDeckButtonFace.StateSaved();
                    EventHandlers.NotifyToSyncConfiguration(this, _streamDeckPanel.BindingHash);
                    SetFormState();
                }
                catch (Exception ex)
                {
                    Common.ShowErrorMessageBox(ex);
                }
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(ex);
            }
        }
Beispiel #4
0
        public void SetFormState()
        {
            try
            {
                var selectedButtonNumber = _streamDeckUI.SelectedButtonNumber;

                _streamDeckUI.SetButtonGridStatus(_streamDeck.HasLayers);

                UCStreamDeckButtonAction.Visibility = selectedButtonNumber != 0 ? Visibility.Visible : Visibility.Hidden;
                UCStreamDeckButtonFace.Visibility   = selectedButtonNumber != 0 ? Visibility.Visible : Visibility.Hidden;

                UCStreamDeckButtonAction.SetFormState();
                UCStreamDeckButtonFace.SetFormState();

                ButtonAcceptButtonChanges.IsEnabled = UCStreamDeckButtonAction.IsDirty || UCStreamDeckButtonFace.IsDirty;
                ButtonCancelAction.IsEnabled        = UCStreamDeckButtonAction.IsDirty && UCStreamDeckButtonAction.HasConfig;
                ButtonDeleteAction.IsEnabled        = UCStreamDeckButtonAction.HasConfig;
                ButtonCancelFace.IsEnabled          = UCStreamDeckButtonFace.IsDirty && UCStreamDeckButtonFace.HasConfig;
                ButtonDeleteFace.IsEnabled          = UCStreamDeckButtonFace.HasConfig;

                ComboBoxLayers.IsEnabled    = !(UCStreamDeckButtonAction.IsDirty || UCStreamDeckButtonFace.IsDirty);
                ButtonNewLayer.IsEnabled    = ComboBoxLayers.IsEnabled;
                ButtonDeleteLayer.IsEnabled = ComboBoxLayers.IsEnabled && ComboBoxLayers.Text != null;
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(471473, ex);
            }
        }
Beispiel #5
0
        public StreamDeckUserControl(GamingPanelEnum panelType, HIDSkeleton hidSkeleton, TabItem parentTabItem, IGlobalHandler globalHandler, DCSBIOS dcsbios)
        {
            InitializeComponent();
            ParentTabItem = parentTabItem;

            //no worky worky for this library hidSkeleton.HIDReadDevice.Removed += DeviceRemovedHandler;

            _streamDeckPanel = new StreamDeckPanel(panelType, hidSkeleton);
            _streamDeckPanel.Attach((IGamingPanelListener)this);
            globalHandler.Attach(_streamDeckPanel);
            GlobalHandler = globalHandler;
            _dcsbios      = dcsbios;

            UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel);
            UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel);

            StackPanelButtonUI.Children.Clear();
            switch (panelType)
            {
            case GamingPanelEnum.StreamDeckMini:
            {
                var child = new UserControlStreamDeckUIMini(_streamDeckPanel);
                _uiButtonGrid = child;
                StackPanelButtonUI.Children.Add(child);

                break;
            }

            case GamingPanelEnum.StreamDeck:
            {
                var child = new UserControlStreamDeckUINormal(_streamDeckPanel);
                _uiButtonGrid = child;
                StackPanelButtonUI.Children.Add(child);

                break;
            }

            case GamingPanelEnum.StreamDeckXL:
            {
                var child = new UserControlStreamDeckUIXL(_streamDeckPanel);
                _uiButtonGrid = child;
                StackPanelButtonUI.Children.Add(child);
                break;
            }
            }


            EventHandlers.AttachStreamDeckListener(UCStreamDeckButtonAction);
            EventHandlers.AttachStreamDeckListener(UCStreamDeckButtonFace);
            EventHandlers.AttachStreamDeckListener(_uiButtonGrid);
            EventHandlers.AttachStreamDeckConfigListener(_uiButtonGrid);
            EventHandlers.AttachStreamDeckListener(this);

            UCStreamDeckButtonAction.GlobalHandler = GlobalHandler;
            UCStreamDeckButtonFace.GlobalHandler   = GlobalHandler;

            UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel);
            UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel);
        }
Beispiel #6
0
        public StreamDeckUserControl(GamingPanelEnum panelType, HIDSkeleton hidSkeleton, TabItem parentTabItem)
        {
            InitializeComponent();
            ParentTabItem = parentTabItem;

            _streamDeckPanel = new StreamDeckPanel(panelType, hidSkeleton);

            UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel);
            UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel);

            StackPanelButtonUI.Children.Clear();
            switch (panelType)
            {
            case GamingPanelEnum.StreamDeckMini:
            {
                var child = new UserControlStreamDeckUIMini(_streamDeckPanel);
                _uiButtonGrid = child;
                StackPanelButtonUI.Children.Add(child);

                break;
            }

            case GamingPanelEnum.StreamDeck:
            case GamingPanelEnum.StreamDeckV2:
            case GamingPanelEnum.StreamDeckMK2:
            {
                var child = new UserControlStreamDeckUINormal(_streamDeckPanel);
                _uiButtonGrid = child;
                StackPanelButtonUI.Children.Add(child);

                break;
            }

            case GamingPanelEnum.StreamDeckXL:
            {
                var child = new UserControlStreamDeckUIXL(_streamDeckPanel);
                _uiButtonGrid = child;
                StackPanelButtonUI.Children.Add(child);
                break;
            }
            }


            SDEventHandler.AttachStreamDeckListener(UCStreamDeckButtonAction);
            SDEventHandler.AttachStreamDeckListener(UCStreamDeckButtonFace);
            SDEventHandler.AttachStreamDeckListener(_uiButtonGrid);
            SDEventHandler.AttachStreamDeckConfigListener(_uiButtonGrid);
            SDEventHandler.AttachStreamDeckListener(this);
            SDEventHandler.AttachActionTypeChangedListener(UCStreamDeckButtonFace);
            AppEventHandler.AttachGamingPanelListener(this);
            UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel);
            UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel);
        }