Exemple #1
0
 /// <summary>
 /// Erzeugt ein neues InputItem-Objekt und initialisiert dieses mit dem zugehörigen IGameScreen-Objekt.
 /// Zudem sind Angaben zur Zeichenreihenfolge und für evtl. bereits vor-eingetragenen Text Pflicht.
 /// </summary>
 public InputItem(IScreen screen, DisplayLayer drawOrder, string text, string inputText)
     : base(screen, drawOrder, text)
 {
     InputText = inputText;
     ValidKeys.AddRange(TextHelper.ValidKeys);
     ValidKeys.Add(Keys.Enter);
     IsInputEnabled = false;
 }
        /// <summary>
        /// Erzeugt ein neues ConfirmDialog-Objekt und initialisiert dieses mit dem zugehörigen IGameScreen-Objekt.
        /// Zudem sind Angaben zur Zeichenreihenfolge, einer Zeichenkette für den Titel und für den eingeblendeten Text Pflicht.
        /// [base=screen, drawOrder, title, text]
        /// </summary>
        public ConfirmDialog(IScreen screen, DisplayLayer drawOrder, string title)
            : base(screen, drawOrder, title)
        {
            // Der Titel-Text ist mittig ausgerichtet
            AlignX = HorizontalAlignment.Center;

            Cancel = (time) => {
                Close(time);
            };
            Submit = (time) => {
                Close(time);
            };

            // Keys
            ValidKeys.AddRange(new Keys[] { Keys.Enter, Keys.Escape });

            // Menü, in dem die Textanzeige angezeigt wird
            menu        = new Menu(Screen, Index + DisplayLayer.Menu);
            menu.Bounds = ContentBounds;
            menu.ItemForegroundColor = (s) => Color.White;
            menu.ItemBackgroundColor = (s) => Color.Transparent;
            menu.ItemAlignX          = HorizontalAlignment.Left;
            menu.ItemAlignY          = VerticalAlignment.Center;

            // Button-Container
            buttons                     = new Container(screen, Index + DisplayLayer.Menu);
            buttons.ItemAlignX          = HorizontalAlignment.Center;
            buttons.ItemBackgroundColor = (s) => Design.DialogBackground;

            // Button zum Canceln
            Action <GameTime> cancelAction = (time) => {
                Cancel(time);
            };
            MenuEntry cancelButton = new MenuEntry(
                screen: Screen,
                drawOrder: Index + DisplayLayer.MenuItem,
                name: "Cancel",
                onClick: cancelAction
                );

            cancelButton.Bounds.Size     = new ScreenPoint(screen, () => ContentBounds.Size.Relative.X / 2, () => 0.05f);
            cancelButton.Bounds.Position = ContentBounds.Position + ContentBounds.Size.OnlyY
                                           - cancelButton.Bounds.Size.OnlyY;
            buttons.Add(cancelButton);

            // Button zum Submitten
            Action <GameTime> submitAction = (time) => {
                Submit(time);
            };
            MenuEntry submitButton = new MenuEntry(
                screen: Screen,
                drawOrder: Index + DisplayLayer.MenuItem,
                name: "Confirm",
                onClick: submitAction
                );

            submitButton.Bounds.Size     = new ScreenPoint(screen, () => ContentBounds.Size.Relative.X / 2, () => 0.05f);
            submitButton.Bounds.Position = ContentBounds.Position + ContentBounds.Size.OnlyY
                                           - submitButton.Bounds.Size.OnlyY + ContentBounds.Size.OnlyX / 2;
            buttons.Add(submitButton);

            // Buttons zum Menü hinzufügen
            menu.Add(buttons);
        }