Ejemplo n.º 1
0
        Control CreateDrawCharacter()
        {
            var layout = new DynamicLayout {
                Padding = Padding.Empty
            };

            layout.BeginHorizontal();

            characterPanel = layout;

            layout.Add(new Label {
                Text = "C&haracter:"
            });

            charTextBox          = new FontTextBox(Handler, new Size(1, 1));
            charTextBox.ReadOnly = false;
            charTextBox.SetAttribute(this.Attribute);

            layout.Add(charTextBox);
            layout.Add(null);

            layout.EndHorizontal();


            return(layout);
        }
Ejemplo n.º 2
0
        Control Characters()
        {
            var font    = CharacterHandler.CurrentPage.Font;
            int width   = 64;           //font.NumChars > 256 ? 64 : 32;
            var control = characters = new FontTextBox(CharacterHandler, new Size(width, (font.NumChars + width - 1) / width));

            control.ReadOnly = true;
            control.CanFocus = true;
            control.Bordered = true;
            control.SetAttribute(CharacterHandler.DrawAttribute);
            control.KeyDown += (sender, e) =>
            {
                if (e.KeyData == Keys.Enter)
                {
                    Result = DialogResult.Ok;
                    Close();
                    e.Handled = true;
                }
            };
            control.CursorElementChanged += delegate
            {
                this.SelectedCharacter = control.CursorElement.Character;
                Update();
            };
            control.MouseDown += delegate(object sender, MouseEventArgs e)
            {
                e.Handled = true;
                this.SelectedCharacter = control.CursorElement.Character;
                Update();
            };
            control.MouseDoubleClick += delegate(object sender, MouseEventArgs e)
            {
                e.Handled = true;
                this.SelectedCharacter = control.CursorElement.Character;
                Result = DialogResult.Ok;
                Close();
            };
            int character = 0;

            for (int y = 0; y < control.Canvas.Height; y++)
            {
                for (int x = 0; x < control.Canvas.Width; x++)
                {
                    if (character < font.NumChars)
                    {
                        var ce = control.Canvas[x, y];
                        ce.Character         = character++;
                        control.Canvas[x, y] = ce;
                    }
                }
            }

            return(control);
        }
Ejemplo n.º 3
0
        void CreateControls()
        {
            var handler = this.Handler;

            //int charHeight = handler.CurrentPage.Font.Size.Height + 6;
            var characterSet = handler.Info.GetCharacterSet(handler.CharacterSet).ToList();
            //int width = 40;
            //int height = charHeight * characterSet.Count + 18 + 17;
            //this.MinimumSize = new Size (width, height);

            var layout = new DynamicLayout {
                Padding = new Padding(10, 0)
            };

            layout.BeginHorizontal();
            //var layout = this.Layout as PixelLayout ?? new PixelLayout (this);
            //layout.Remove (this.Controls.ToArray ());
            chars.Clear();

            for (int i = 0; i < characterSet.Count; i++)
            {
                var character = new FontTextBox(handler, new Size(1, 1));

                var label = new Label {
                };                                       //Size = new Size (width - character.Size.Width, charHeight)};
                label.HorizontalAlign = HorizontalAlign.Right;
                label.VerticalAlign   = VerticalAlign.Middle;
                label.Text            = string.Format("F{0}", i + 1);
                layout.Add(label);
                //layout.Add (label, 0, i * charHeight);

                character.Tag        = i;
                character.CanFocus   = false;
                character.MouseDown += HandleCharacterMouseDown;
                layout.AddCentered(character, horizontalCenter: false, padding: Padding.Empty, spacing: Size.Empty);
                //layout.Add (character, width - character.Size.Width, i * charHeight + (charHeight - character.Size.Height) / 4);
                chars.Add(character);
            }

            layout.BeginVertical(Padding.Empty, Size.Empty);
            layout.Add(null);
            layout.Add(UpButton());
            layout.Add(DownButton());
            layout.Add(null);
            layout.EndVertical();

            layout.AddCentered(SelectButton(), Padding.Empty, Size.Empty);
            layout.EndHorizontal();

            Content = layout;
            Update();
        }
Ejemplo n.º 4
0
        Control GradientPreview()
        {
            var control = preview = new FontTextBox(Handler, Size.Empty)
            {
                ReadOnly = true,
                Bordered = true
            };

            control.MouseDown += (sender, e) =>
            {
                EditBrushes();
                e.Handled = true;
            };
            return(control);
        }
Ejemplo n.º 5
0
        Control GradientPreview()
        {
            var control = preview = new FontTextBox(Handler, new Size(4, 2))
            {
                ReadOnly = true,
                Bordered = true
            };

            preview.MouseDown += (sender, e) =>
            {
                SelectCharacter();
                e.Handled = true;
            };
            return(control);
        }
Ejemplo n.º 6
0
        Control Characters()
        {
            var font    = CharacterHandler.CurrentPage.Font;
            int width   = 64;           //font.NumChars > 256 ? 64 : 32;
            var size    = new Size(width, (font.NumChars + width - 1) / width);
            var control = new FontTextBox(CharacterHandler, size);

            control.Bordered = true;
            control.SetAttribute(CharacterHandler.DrawAttribute);
            control.MouseDown += (sender, e) =>
            {
                if (lastSet != null)
                {
                    lastSet.Insert(control.CursorElement);
                    lastSet.Invalidate();
                    lastSet.Focus();
                }
                e.Handled = true;
            };
            control.ReadOnly = true;
            control.CanFocus = false;
            int character = 0;

            for (int y = 0; y < control.Canvas.Height; y++)
            {
                for (int x = 0; x < control.Canvas.Width; x++)
                {
                    if (character < font.NumChars)
                    {
                        var ce = control.Canvas[x, y];
                        ce.Character         = character++;
                        control.Canvas[x, y] = ce;
                    }
                }
            }

            return(control);
        }
Ejemplo n.º 7
0
        Control CharacterSelection()
        {
            var layout = new DynamicLayout {
                Spacing = new Size(10, 5)
            };

            RadioButton master = null;

            for (int i = 0; i < CharacterDocumentInfo.MAX_CHARACTER_SETS; i++)
            {
                var characterSet = CharacterHandler.Info.GetCharacterSet(i).ToArray();
                var control      = new FontTextBox(CharacterHandler, new Size(characterSet.Length, 1));
                control.ReadOnly = false;
                control.SetAttribute(CharacterHandler.DrawAttribute);
                sets.Add(control.Canvas);
                for (int c = 0; c < characterSet.Length; c++)
                {
                    var ce = control.Canvas[c, 0];
                    ce.Character         = characterSet[c];
                    control.Canvas[c, 0] = ce;
                }
                control.GotFocus += delegate
                {
                    lastSet = control;
                };
                var radio = new RadioButton(master)
                {
                    Text = "Set " + (i + 1), Tag = i
                };
                if (i == CharacterHandler.CharacterSet)
                {
                    radio.Checked = true;
                    radio.Focus();
                }
                radio.CheckedChanged += delegate(object sender, EventArgs e)
                {
                    var c = (RadioButton)sender;
                    selected = (int)c.Tag;
                };
                radio.MouseDoubleClick += (sender, e) =>
                {
                    e.Handled = true;
                    Save();
                    Result = DialogResult.Ok;
                    Close();
                };
                if (master == null)
                {
                    master = radio;
                }
                if (i % 2 == 0)
                {
                    layout.BeginHorizontal();
                }
                layout.Add(radio);
                layout.Add(control);
                if (i % 2 == 1)
                {
                    layout.EndHorizontal();
                }
            }

            return(new GroupBox {
                Content = layout
            });
        }
Ejemplo n.º 8
0
        Control Brushes()
        {
            var layout = new TableLayout(6, 5);

            layout.Spacing = new Size(10, 5);
            layout.SetColumnScale(0);
            layout.SetColumnScale(5);

            RadioButton master  = null;
            var         brushes = CharacterHandler.Info.Brushes;

            for (int i = 0; i < CharacterDocumentInfo.MAX_BRUSHES; i++)
            {
                var brush   = (i < brushes.Length) ? brushes[i] : new BrushInfo();
                var control = new FontTextBox(CharacterHandler, new Size(CharacterDocumentInfo.MAX_BRUSH_SIZE, 1));
                control.ReadOnly = false;
                control.SetAttribute(CharacterHandler.DrawAttribute);
                brushCanvases.Add(control.Canvas);

                if (brush != null)
                {
                    var characters = brush.GetCharacters(CharacterHandler.CurrentPage.Font.Encoding) ?? new Character[0];
                    for (int c = 0; c < characters.Length; c++)
                    {
                        var ce = control.Canvas[c, 0];
                        ce.Character         = characters[c];
                        control.Canvas[c, 0] = ce;
                    }
                }
                control.GotFocus += delegate
                {
                    lastSet = control;
                };
                var x     = (i / 5) * 2;
                var y     = i % 5;
                var radio = new RadioButton(master)
                {
                    Text = "Brush " + (i + 1), Tag = i
                };
                if (i == SelectedBrush)
                {
                    radio.Checked = true;
                    radio.Focus();
                }
                radio.MouseDoubleClick += (sender, e) =>
                {
                    e.Handled = true;
                    var c = (RadioButton)sender;
                    SelectedBrush = (int)c.Tag;
                    Result        = DialogResult.Ok;
                    Save();
                    Close();
                };
                radio.CheckedChanged += delegate(object sender, EventArgs e)
                {
                    var c = (RadioButton)sender;
                    SelectedBrush = (int)c.Tag;
                };
                if (master == null)
                {
                    master = radio;
                }
                layout.Add(radio, x + 1, y);
                layout.Add(control, x + 2, y);
            }

            /**
             * var scroll = new Scrollable{  };
             * var pl = new PixelLayout(scroll);
             * pl.Add(layout.Container, 0, 0);
             * return scroll;
             * /**/
            return(new GroupBox {
                Content = layout
            });
            /**/
        }