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."); } }
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); }
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)); }
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)); }
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)); }