private static double GetOffsetXFromOutside(PlaceholderModel placeholder, ScreenPositionType targetScreen)
        {
            double zeroX = placeholder.Position.X + 3;

            if (zeroX < 0)
            {
                zeroX += 2;
            }

            double moduloX           = zeroX % 2;
            double positionXInScreen = Math.Abs(moduloX);

            switch (targetScreen)
            {
            case ScreenPositionType.LEFT:
                return(positionXInScreen - 3 - placeholder.Position.X);

            case ScreenPositionType.RIGHT:
                return(positionXInScreen + 1 - placeholder.Position.X);

            case ScreenPositionType.CENTER:
                return(positionXInScreen - 1 - placeholder.Position.X);

            case ScreenPositionType.OUTSIDE:
                return(0);

            default:
                throw new Exception("Not implemented type.");
            }
        }
Beispiel #2
0
        public Transform GetScreenTransform(ScreenPositionType screenPositionType)
        {
            switch (screenPositionType)
            {
            case ScreenPositionType.BottomLeft:
                return(BottomLeft);

            case ScreenPositionType.BottonRight:
                return(BottomRight);

            case ScreenPositionType.Center:
                return(Center);

            case ScreenPositionType.Left:
                return(Left);

            case ScreenPositionType.Right:
                break;

            case ScreenPositionType.Top:
                return(Top);

            case ScreenPositionType.TopLeft:
                return(TopLeft);

            case ScreenPositionType.TopRight:
                return(TopRight);

            default:
                break;
            }
            return(null);
        }
        public static bool PromptUserIfOutsideOfCenterScreenPlaceholders(PlaceHolderCollectionModel collectionModel, UserPreferencesModel preferences, Database database)
        {
            if (preferences.PromptOutsidePlaceholders == OutsidePlaceholdersPrefType.DO_NOTHING)
            {
                return(false);
            }

            bool outsidePlaceholder = false;

            foreach (PlaceholderModel placeholder in collectionModel.Items)
            {
                ScreenPositionType screen = ScreenUtils.GetScreen(placeholder);
                if (screen != ScreenPositionType.CENTER)
                {
                    outsidePlaceholder = true;
                    break;
                }
            }

            if (outsidePlaceholder)
            {
                if (preferences.PromptOutsidePlaceholders == OutsidePlaceholdersPrefType.MOVE)
                {
                    MovePlaceholders(collectionModel);
                }
                else if (preferences.PromptOutsidePlaceholders == OutsidePlaceholdersPrefType.PROMPT)
                {
                    PromptView   prompt    = Injector.GetInstance <PromptView>();
                    CheckBoxData checkData = new CheckBoxData(PreferenceType.PROMPT_OUTSIDE_PLACEHOLDER, "Remember my choice");
                    prompt.Initialize("Placeholder(s) outside of center screen", "Some placeholders are now outside of the screen.\nMove them to center screen?", new CheckBoxData[] { checkData });

                    bool result = (bool)prompt.ShowDialog();
                    if (prompt.RememberChoice && prompt.GetChecked(PreferenceType.PROMPT_OUTSIDE_PLACEHOLDER))
                    {
                        if (result)
                        {
                            preferences.PromptOutsidePlaceholders = OutsidePlaceholdersPrefType.MOVE;
                            database.SaveOutsidePlaceholdersPref(OutsidePlaceholdersPrefType.MOVE);
                        }
                        else
                        {
                            preferences.PromptOutsidePlaceholders = OutsidePlaceholdersPrefType.DO_NOTHING;
                            database.SaveOutsidePlaceholdersPref(OutsidePlaceholdersPrefType.DO_NOTHING);
                        }
                    }

                    if (result)
                    {
                        MovePlaceholders(collectionModel);
                        return(true);
                    }
                }
            }
            return(false);
        }
Beispiel #4
0
        private void ScreenRadioChecked(object sender, RoutedEventArgs e)
        {
            if (holdScreenEvent)
            {
                return;
            }

            ScreenPositionType screenType = (ScreenPositionType)((RadioButton)sender).Tag;

            DispatchEvent(new PlaceholderScreenEventArgs(EVENT_MOVE_TO_SCREEN, Selection.Id, screenType));
        }
Beispiel #5
0
        public static string GetPresetName(R3ePoint point, ScreenPositionType screenType)
        {
            if (screenType == ScreenPositionType.LEFT)
            {
                point = new R3ePoint(point.X + 2, point.Y);
            }
            else if (screenType == ScreenPositionType.RIGHT)
            {
                point = new R3ePoint(point.X - 2, point.Y);
            }

            return(GetPresetName(point));
        }
Beispiel #6
0
        public static R3ePoint GetPreset(string name, ScreenPositionType screenType)
        {
            R3ePoint preset = presets[name].Clone();

            switch (screenType)
            {
            case ScreenPositionType.LEFT:
                return(new R3ePoint(preset.X - 2, preset.Y));

            case ScreenPositionType.RIGHT:
                return(new R3ePoint(preset.X + 2, preset.Y));
            }

            return(preset);
        }
        public void Execute()
        {
            if (screenModel.Layout != ScreenLayoutType.TRIPLE)
            {
                return;
            }

            PlaceholderModel   placeholder   = collectionModel.Get(args.PlaceholderId);
            ScreenPositionType currentScreen = ScreenUtils.GetScreen(placeholder);

            R3ePoint screenOffset = ScreenUtils.ToScreenOffset(placeholder, args.ScreenType);
            R3ePoint newPosition  = new R3ePoint(placeholder.Position.X + screenOffset.X, placeholder.Position.Y + screenOffset.Y);

            if (!newPosition.Equals(placeholder.Position))
            {
                placeholder.Move(newPosition);
            }
        }
 public PlaceholderScreenEventArgs(int eventId, int placeholderId, ScreenPositionType screenType) : base(eventId)
 {
     PlaceholderId = placeholderId;
     ScreenType    = screenType;
 }
        public static R3ePoint ToScreenOffset(PlaceholderModel placeholder, ScreenPositionType targetScreen)
        {
            ScreenPositionType currentScreen = GetScreen(placeholder);

            // Replace placeholder Y in screen in case it's outside.
            double positionYInScreen = placeholder.Position.Y;

            if (placeholder.Position.Y < -1)
            {
                positionYInScreen = -1;
            }
            else if (placeholder.Position.Y > 1)
            {
                positionYInScreen = 1;
            }

            double offsetX = 0;
            double offsetY = positionYInScreen - placeholder.Position.Y;

            if (currentScreen == ScreenPositionType.OUTSIDE)
            {
                offsetX = GetOffsetXFromOutside(placeholder, targetScreen);
            }
            else
            {
                switch (targetScreen)
                {
                case ScreenPositionType.LEFT:
                    if (currentScreen == ScreenPositionType.CENTER)
                    {
                        offsetX = -2;
                    }
                    else if (currentScreen == ScreenPositionType.RIGHT)
                    {
                        offsetX = -4;
                    }
                    break;

                case ScreenPositionType.RIGHT:
                    if (currentScreen == ScreenPositionType.LEFT)
                    {
                        offsetX = 4;
                    }
                    else if (currentScreen == ScreenPositionType.CENTER)
                    {
                        offsetX = 2;
                    }
                    break;

                case ScreenPositionType.CENTER:
                    if (currentScreen == ScreenPositionType.LEFT)
                    {
                        offsetX = 2;
                    }
                    else if (currentScreen == ScreenPositionType.RIGHT)
                    {
                        offsetX = -2;
                    }
                    break;

                case ScreenPositionType.OUTSIDE:
                    offsetX = 0;
                    break;

                default:
                    throw new Exception("Not implemented type.");
                }
            }

            return(new R3ePoint(offsetX, offsetY));
        }