Example #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MessageBox"/> class.
        /// </summary>
        /// <param name="parent">Parent control.</param>
        /// <param name="text">Message to display.</param>
        /// <param name="caption">Window caption.</param>
        /// <param name="buttons">Message box buttons.</param>
        public MessageBox(ControlBase parent, string text, string caption = "", MessageBoxButtons buttons = MessageBoxButtons.OK)
            : base(parent)
        {
            HorizontalAlignment = HorizontalAlignment.Left;
            VerticalAlignment   = VerticalAlignment.Top;

            Canvas canvas = GetCanvas();

            MaximumSize = new Size((int)(canvas.ActualWidth * 0.8f), canvas.ActualHeight);

            StartPosition = StartPosition.CenterParent;
            Title         = caption;
            DeleteOnClose = true;

            DockLayout layout = new Control.Layout.DockLayout(this);

            m_Text          = new RichLabel(layout);
            m_Text.Dock     = Dock.Fill;
            m_Text.Margin   = Margin.Ten;
            m_Text.Document = new Document(text);

            HorizontalLayout buttonsLayout = new HorizontalLayout(layout);

            buttonsLayout.Dock = Dock.Bottom;
            buttonsLayout.HorizontalAlignment = HorizontalAlignment.Center;

            switch (buttons)
            {
            case MessageBoxButtons.AbortRetryIgnore:
                CreateButton(buttonsLayout, "Abort", MessageBoxResult.Abort);
                CreateButton(buttonsLayout, "Retry", MessageBoxResult.Retry);
                CreateButton(buttonsLayout, "Ignore", MessageBoxResult.Ignore);
                break;

            case MessageBoxButtons.OK:
                CreateButton(buttonsLayout, "Ok", MessageBoxResult.Ok);
                break;

            case MessageBoxButtons.OKCancel:
                CreateButton(buttonsLayout, "Ok", MessageBoxResult.Ok);
                CreateButton(buttonsLayout, "Cancel", MessageBoxResult.Cancel);
                break;

            case MessageBoxButtons.RetryCancel:
                CreateButton(buttonsLayout, "Retry", MessageBoxResult.Retry);
                CreateButton(buttonsLayout, "Cancel", MessageBoxResult.Cancel);
                break;

            case MessageBoxButtons.YesNo:
                CreateButton(buttonsLayout, "Yes", MessageBoxResult.Yes);
                CreateButton(buttonsLayout, "No", MessageBoxResult.No);
                break;

            case MessageBoxButtons.YesNoCancel:
                CreateButton(buttonsLayout, "Yes", MessageBoxResult.Yes);
                CreateButton(buttonsLayout, "No", MessageBoxResult.No);
                CreateButton(buttonsLayout, "Cancel", MessageBoxResult.Cancel);
                break;
            }
        }
Example #2
0
        private void OpenWindowWithMenuAndStatusBar(ControlBase control, EventArgs args)
        {
            Control.Window window = new Control.Window(this);
            window.Title   = String.Format("Window ({0})", ++m_WindowCount);
            window.Size    = new Size(m_Rand.Next(200, 400), m_Rand.Next(200, 400));
            window.Left    = m_Rand.Next(700);
            window.Top     = m_Rand.Next(400);
            window.Padding = new Padding(1, 0, 1, 1);

            Control.Layout.DockLayout layout = new Control.Layout.DockLayout(window);

            Control.MenuStrip menuStrip = new Control.MenuStrip(layout);
            menuStrip.Dock = Dock.Top;

            /* File */
            {
                Control.MenuItem root = menuStrip.AddItem("File");
                root.Menu.AddItem("Load", "test16.png", "Ctrl+L");
                root.Menu.AddItem("Save", String.Empty, "Ctrl+S");
                root.Menu.AddItem("Save As..", String.Empty, "Ctrl+A");
                root.Menu.AddItem("Quit", String.Empty, "Ctrl+Q").SetAction((c, a) => window.Close());
            }
            /* Resizing */
            {
                Control.MenuItem root = menuStrip.AddItem("Resizing");
                root.Menu.AddItem("Disabled").SetAction((c, a) => window.Resizing = Resizing.None);
                root.Menu.AddItem("Width").SetAction((c, a) => window.Resizing    = Resizing.Width);
                root.Menu.AddItem("Height").SetAction((c, a) => window.Resizing   = Resizing.Height);
                root.Menu.AddItem("Both").SetAction((c, a) => window.Resizing     = Resizing.Both);
            }

            Control.StatusBar statusBar = new Control.StatusBar(layout);
            statusBar.Dock = Dock.Bottom;
            statusBar.Text = "Status bar";

            {
                Control.Button br = new Control.Button(statusBar);
                br.Text = "Right button";
                statusBar.AddControl(br, true);
            }
        }
Example #3
0
        public ColorPickers(ControlBase parent)
            : base(parent)
        {
            /* RGB Picker */
            {
                ColorPicker rgbPicker = new ColorPicker(this);
                rgbPicker.Dock          = Dock.Top;
                rgbPicker.ColorChanged += ColorChanged;
            }

            /* HSVColorPicker */
            {
                HSVColorPicker hsvPicker = new HSVColorPicker(this);
                hsvPicker.Dock = Dock.Fill;
                hsvPicker.HorizontalAlignment = HorizontalAlignment.Left;
                hsvPicker.VerticalAlignment   = VerticalAlignment.Top;
                hsvPicker.ColorChanged       += ColorChanged;
            }

            /* HSVColorPicker in Window */
            {
                Control.Window window = new Control.Window(base.GetCanvas());
                window.Size = new Size(300, 200);
                window.Collapse();
                Control.Layout.DockLayout layout = new Control.Layout.DockLayout(window);

                HSVColorPicker hsvPicker = new HSVColorPicker(layout);
                hsvPicker.Margin        = Margin.Two;
                hsvPicker.Dock          = Dock.Fill;
                hsvPicker.ColorChanged += ColorChanged;

                Control.Button OpenWindow = new Control.Button(this);
                OpenWindow.Dock = Dock.Bottom;
                OpenWindow.HorizontalAlignment = HorizontalAlignment.Left;
                OpenWindow.Text     = "Open Window";
                OpenWindow.Clicked += delegate(ControlBase sender, ClickedEventArgs args)
                {
                    window.Show();
                };
            }
        }
Example #4
0
        public FlowLayout(ControlBase parent)
            : base(parent)
        {
            ControlBase layout = new Control.Layout.DockLayout(this);

            Control.Layout.FlowLayout flowLayout = new Control.Layout.FlowLayout(layout);
            flowLayout.Width             = 200;
            flowLayout.Padding           = Padding.Five;
            flowLayout.Dock              = Dock.Fill;
            flowLayout.DrawDebugOutlines = true;
            {
                Control.Button button;
                int            buttonNum   = 1;
                const int      buttonCount = 10;

                for (int n = 0; n < buttonCount; n++)
                {
                    button = new Control.Button(flowLayout);
                    button.VerticalAlignment   = VerticalAlignment.Top;
                    button.HorizontalAlignment = HorizontalAlignment.Left;
                    button.Margin  = Margin.Five;
                    button.Padding = Padding.Five;
                    button.ShouldDrawBackground = false;
                    button.Text = String.Format("Button {0}", buttonNum++);
                    button.SetImage("test16.png", ImageAlign.Above);
                }
            }

            Control.HorizontalSlider flowLayoutWidth = new HorizontalSlider(layout);
            flowLayoutWidth.Margin        = Margin.Five;
            flowLayoutWidth.Width         = 500;
            flowLayoutWidth.Dock          = Dock.Top;
            flowLayoutWidth.Min           = 50;
            flowLayoutWidth.Max           = 500;
            flowLayoutWidth.Value         = flowLayout.Width;
            flowLayoutWidth.ValueChanged += (control, args) => { flowLayout.Width = (int)flowLayoutWidth.Value; };
        }
Example #5
0
        public GroupBox(ControlBase parent)
            : base(parent)
        {
            Control.Layout.GridLayout layout = new Control.Layout.GridLayout(this);
            layout.ColumnCount = 2;

            {
                Control.GroupBox gb = new Control.GroupBox(layout);
                gb.Size = new Size(200, 100);
                gb.Text = "Group Box";
            }

            {
                Control.GroupBox gb = new Control.GroupBox(layout);
                gb.HorizontalAlignment = HorizontalAlignment.Left;
                gb.VerticalAlignment   = VerticalAlignment.Top;
                gb.Text = "With Label (autosized)";
                Control.Label label = new Control.Label(gb);
                label.Dock = Dock.Fill;
                label.Text = "I'm a label";
            }

            {
                Control.GroupBox gb = new Control.GroupBox(layout);
                gb.HorizontalAlignment = HorizontalAlignment.Left;
                gb.VerticalAlignment   = VerticalAlignment.Top;
                gb.Text = "With Label (autosized)";
                Control.Label label = new Control.Label(gb);
                label.Dock = Dock.Fill;
                label.Text = "I'm a label. I'm a really long label!";
            }

            {
                Control.GroupBox gb = new Control.GroupBox(layout);
                gb.HorizontalAlignment = HorizontalAlignment.Left;
                gb.VerticalAlignment   = VerticalAlignment.Top;
                gb.Text = "Two docked Labels (autosized)";
                Control.ControlBase gbl    = new Control.Layout.DockLayout(gb);
                Control.Label       label1 = new Control.Label(gbl);
                label1.Text = "I'm a label";
                label1.Dock = Dock.Top;
                Control.Label label2 = new Control.Label(gbl);
                label2.Text = "I'm a label. I'm a really long label!";
                label2.Dock = Dock.Top;
            }

            {
                Control.GroupBox gb = new Control.GroupBox(layout);
                gb.HorizontalAlignment = HorizontalAlignment.Left;
                gb.VerticalAlignment   = VerticalAlignment.Top;
                gb.Text = "Empty (autosized)";
            }

            {
                Control.GroupBox gb1 = new Control.GroupBox(layout);
                gb1.HorizontalAlignment = HorizontalAlignment.Left;
                gb1.VerticalAlignment   = VerticalAlignment.Top;
                gb1.Padding             = Padding.Five;
                gb1.Text = "Yo dawg,";
                Control.ControlBase gb1l = new Control.Layout.DockLayout(gb1);

                Control.GroupBox gb2 = new Control.GroupBox(gb1l);
                gb2.Text    = "I herd";
                gb2.Dock    = Dock.Left;
                gb2.Margin  = Margin.Three;
                gb2.Padding = Padding.Five;

                Control.GroupBox gb3 = new Control.GroupBox(gb1l);
                gb3.Text = "You like";
                gb3.Dock = Dock.Fill;
                Control.ControlBase gb3l = new Control.Layout.DockLayout(gb3);

                Control.GroupBox gb4 = new Control.GroupBox(gb3l);
                gb4.Text = "Group Boxes,";
                gb4.Dock = Dock.Top;

                Control.GroupBox gb5 = new Control.GroupBox(gb3l);
                gb5.Text = "So I put Group";
                gb5.Dock = Dock.Fill;
                Control.ControlBase gb5l = new Control.Layout.DockLayout(gb5);

                Control.GroupBox gb6 = new Control.GroupBox(gb5l);
                gb6.Text = "Boxes in yo";
                gb6.Dock = Dock.Left;

                Control.GroupBox gb7 = new Control.GroupBox(gb5l);
                gb7.Text = "Boxes so you can";
                gb7.Dock = Dock.Top;
                Control.ControlBase gb7l = new Control.Layout.DockLayout(gb7);

                Control.GroupBox gb8 = new Control.GroupBox(gb7l);
                gb8.Text   = "Group Box while";
                gb8.Dock   = Dock.Top;
                gb8.Margin = Gwen.Margin.Five;

                Control.GroupBox gb9 = new Control.GroupBox(gb7l);
                gb9.Text    = "u Group Box";
                gb9.Dock    = Dock.Bottom;
                gb9.Padding = Gwen.Padding.Five;
            }
        }