public Docking(ControlBase parent) : base(parent) { font = Skin.DefaultFont.Copy(); font.Size = 20; outer = new Control.Label(this); outer.SetBounds(10, 10, 400, 400); Control.Label inner1 = new Control.Label(outer); inner1.Text = "1"; inner1.Font = font; inner1.SetSize(100, 100); inner1.Dock = Pos.Left; Control.Label inner2 = new Control.Label(outer); inner2.Text = "2"; inner2.Font = font; inner2.SetSize(100, 100); inner2.Dock = Pos.Top; Control.Label inner3 = new Control.Label(outer); inner3.Text = "3"; inner3.Font = font; inner3.SetSize(100, 100); inner3.Dock = Pos.Right; Control.Label inner4 = new Control.Label(outer); inner4.Text = "4"; inner4.Font = font; inner4.SetSize(100, 100); inner4.Dock = Pos.Bottom; Control.Label inner5 = new Control.Label(outer); inner5.Text = "5"; inner5.Font = font; inner5.SetSize(100, 100); inner5.Dock = Pos.Fill; outer.DrawDebugOutlines = true; inner1.UserData = CreateControls(inner1, 0, "Control 1", 440, 10); inner2.UserData = CreateControls(inner2, 1, "Control 2", 650, 10); inner3.UserData = CreateControls(inner3, 2, "Control 3", 440, 170); inner4.UserData = CreateControls(inner4, 3, "Control 4", 650, 170); inner5.UserData = CreateControls(inner5, 4, "Control 5", 440, 330); Control.Label l_padding = new Control.Label(this); l_padding.Text = "Padding:"; l_padding.SetSize(50, 15); Align.PlaceDownLeft(l_padding, outer, 20); Control.HorizontalSlider padding = new Control.HorizontalSlider(this); padding.Min = 0; padding.Max = 200; padding.Value = 10; padding.SetSize(100, 20); padding.ValueChanged += PaddingChanged; Align.PlaceRightBottom(padding, l_padding); //DrawDebugOutlines = true; }
public Docking(Base parent) : base(parent) { font = Skin.DefaultFont.Copy(); font.Size = 20; outer = new Control.Label(this); outer.SetBounds(10, 10, 400, 400); Control.Label inner1 = new Control.Label(outer); inner1.Text = "1"; inner1.Font = font; inner1.SetSize(100, 100); inner1.Dock = Pos.Left; Control.Label inner2 = new Control.Label(outer); inner2.Text = "2"; inner2.Font = font; inner2.SetSize(100, 100); inner2.Dock = Pos.Top; Control.Label inner3 = new Control.Label(outer); inner3.Text = "3"; inner3.Font = font; inner3.SetSize(100, 100); inner3.Dock = Pos.Right; Control.Label inner4 = new Control.Label(outer); inner4.Text = "4"; inner4.Font = font; inner4.SetSize(100, 100); inner4.Dock = Pos.Bottom; Control.Label inner5 = new Control.Label(outer); inner5.Text = "5"; inner5.Font = font; inner5.SetSize(100, 100); inner5.Dock = Pos.Fill; outer.DrawDebugOutlines = true; inner1.UserData.Add("test", CreateControls(inner1, 0, "Control 1", 440, 10)); inner2.UserData.Add("test", CreateControls(inner2, 1, "Control 2", 650, 10)); inner3.UserData.Add("test", CreateControls(inner3, 2, "Control 3", 440, 170)); inner4.UserData.Add("test", CreateControls(inner4, 3, "Control 4", 650, 170)); inner5.UserData.Add("test", CreateControls(inner5, 4, "Control 5", 440, 330)); Control.Label l_padding = new Control.Label(this); l_padding.Text = "Padding:"; l_padding.SetSize(50, 15); Align.PlaceDownLeft(l_padding, outer, 20); Control.HorizontalSlider padding = new Control.HorizontalSlider(this); padding.Min = 0; padding.Max = 200; padding.Value = 10; padding.SetSize(100, 20); padding.ValueChanged += PaddingChanged; Align.PlaceRightBottom(padding, l_padding); //DrawDebugOutlines = true; }
ControlBase CreateControls(ControlBase subject, int dock_idx, String name, int x, int y) { Control.GroupBox gb = new Control.GroupBox(this); gb.SetBounds(x, y, 200, 150); gb.Text = name; Control.Label l_width = new Control.Label(gb); l_width.SetSize(35, 15); l_width.Text = "Width:"; Control.HorizontalSlider width = new HorizontalSlider(gb); width.Name = "Width"; width.UserData = subject; width.Min = 50; width.Max = 350; width.Value = 100; width.SetSize(55, 15); width.ValueChanged += WidthChanged; Align.PlaceRightBottom(width, l_width); Control.Label l_height = new Control.Label(gb); l_height.SetSize(35, 15); l_height.Text = "Height:"; Align.PlaceRightBottom(l_height, width, 10); Control.HorizontalSlider height = new Control.HorizontalSlider(gb); height.Name = "Height"; height.UserData = subject; height.Min = 50; height.Max = 350; height.Value = 100; height.SetSize(55, 15); height.ValueChanged += HeightChanged; Align.PlaceRightBottom(height, l_height); Control.RadioButtonGroup dock = new RadioButtonGroup(gb, "Dock"); dock.UserData = subject; // store control that we are controlling dock.AddOption("Left"); dock.AddOption("Top"); dock.AddOption("Right"); dock.AddOption("Bottom"); dock.AddOption("Fill"); dock.SetSelection(dock_idx); Align.PlaceDownLeft(dock, l_width, 5); //dock.DrawDebugOutlines = true; dock.Invalidate(); Control.Label l_margin = new Control.Label(gb); l_margin.Text = "Margin:"; l_margin.SetBounds(75, 20, 35, 15); //Align.PlaceRightBottom(l_margin, dock); // can't use Align to anchor with 'dock' because radio group is resized only after layout ~_~ // this is become really cumbersome //l_margin.DrawDebugOutlines = true; Control.HorizontalSlider margin = new HorizontalSlider(gb); margin.Name = "Margin"; margin.UserData = subject; margin.Min = 0; margin.Max = 50; margin.Value = 10; margin.SetSize(55, 15); margin.ValueChanged += MarginChanged; Align.PlaceRightBottom(margin, l_margin); dock.SelectionChanged += DockChanged; return gb; }
public Label(Base parent) : base(parent) { { Control.Label label = new Control.Label(this); label.Text = "Standard label (not autosized)"; label.AutoSizeToContents = false; label.SetBounds(10, 10, 100, 10); } { Control.Label label = new Control.Label(this); label.Text = "Chinese: \u4E45\u6709\u5F52\u5929\u613F \u7EC8\u8FC7\u9B3C\u95E8\u5173"; label.SetPosition(10, 30); } { Control.Label label = new Control.Label(this); label.Text = "Japanese: \u751F\u3080\u304E\u3000\u751F\u3054\u3081\u3000\u751F\u305F\u307E\u3054"; label.SetPosition(10, 50); } { Control.Label label = new Control.Label(this); label.Text = "Korean: \uADF9\uC9C0\uD0D0\uD5D8\u3000\uD611\uD68C\uACB0\uC131\u3000\uCCB4\uACC4\uC801\u3000\uC5F0\uAD6C"; label.SetPosition(10, 70); } { Control.Label label = new Control.Label(this); label.Text = "Hindi: \u092F\u0947 \u0905\u0928\u0941\u091A\u094D\u091B\u0947\u0926 \u0939\u093F\u0928\u094D\u0926\u0940 \u092E\u0947\u0902 \u0939\u0948\u0964"; label.SetPosition(10, 90); } { Control.Label label = new Control.Label(this); label.Text = "Arabic: \u0627\u0644\u0622\u0646 \u0644\u062D\u0636\u0648\u0631 \u0627\u0644\u0645\u0624\u062A\u0645\u0631 \u0627\u0644\u062F\u0648\u0644\u064A"; label.SetPosition(10, 110); } { Control.Label label = new Control.Label(this); label.MouseInputEnabled = true; // needed for tooltip label.Text = "Wow, Coloured Text (and tooltip)"; label.TextColor = Color.Blue; label.SetToolTipText("I'm a tooltip"); font3 = new Font(Skin.Renderer, "Motorwerk", 20); ((Control.Label) label.ToolTip).Font = font3; label.SetPosition(10, 130); } { Control.Label label = new Control.Label(this); label.Text = "Coloured Text With Alpha"; label.TextColor = Color.FromArgb(100, 0, 0, 255); label.SetPosition(10, 150); } { // Note that when using a custom font, this font object has to stick around // for the lifetime of the label. Rethink, or is that ideal? font1 = new Font(Skin.Renderer); font1.FaceName = "Comic Sans MS"; font1.Size = 25; Control.Label label = new Control.Label(this); label.Text = "Custom Font (Comic Sans 25)"; label.SetPosition(10, 170); label.Font = font1; } { font2 = new Font(Skin.Renderer, "French Script MT", 35); Control.Label label = new Control.Label(this); label.Font = font2; label.SetPosition(10, 210); label.Text = "Custom Font (French Script MT 35)"; } // alignment test { Control.Label txt = new Control.Label(this); txt.SetPosition(10, 280); txt.Text = "Alignment test"; Control.Label outer = new Control.Label(this); outer.SetBounds(10, 300, 190, 190); Control.Label l11 = new Control.Label(outer); l11.SetBounds(10, 10, 50, 50); l11.Text = "TL"; l11.Alignment = Pos.Top | Pos.Left; Control.Label l12 = new Control.Label(outer); l12.SetBounds(70, 10, 50, 50); l12.Text = "T"; l12.Alignment = Pos.Top|Pos.CenterH; Control.Label l13 = new Control.Label(outer); l13.SetBounds(130, 10, 50, 50); l13.Text = "TR"; l13.Alignment = Pos.Top | Pos.Right; Control.Label l21 = new Control.Label(outer); l21.SetBounds(10, 70, 50, 50); l21.Text = "L"; l21.Alignment = Pos.Left|Pos.CenterV; Control.Label l22 = new Control.Label(outer); l22.SetBounds(70, 70, 50, 50); l22.Text = "C"; l22.Alignment = Pos.CenterH|Pos.CenterV; Control.Label l23 = new Control.Label(outer); l23.SetBounds(130, 70, 50, 50); l23.Text = "R"; l23.Alignment = Pos.Right|Pos.CenterV; Control.Label l31 = new Control.Label(outer); l31.SetBounds(10, 130, 50, 50); l31.Text = "BL"; l31.Alignment = Pos.Bottom | Pos.Left; Control.Label l32 = new Control.Label(outer); l32.SetBounds(70, 130, 50, 50); l32.Text = "B"; l32.Alignment = Pos.Bottom | Pos.CenterH; Control.Label l33 = new Control.Label(outer); l33.SetBounds(130, 130, 50, 50); l33.Text = "BR"; l33.Alignment = Pos.Bottom | Pos.Right; outer.DrawDebugOutlines = true; } }
Base CreateControls(Control.Base subject, int dock_idx, String name, int x, int y) { Control.GroupBox gb = new Control.GroupBox(this); gb.SetBounds(x, y, 200, 150); gb.Text = name; Control.Label l_width = new Control.Label(gb); l_width.SetSize(35, 15); l_width.Text = "Width:"; Control.HorizontalSlider width = new HorizontalSlider(gb); width.Name = "Width"; width.UserData.Add("test", subject); width.Min = 50; width.Max = 350; width.Value = 100; width.SetSize(55, 15); width.ValueChanged += WidthChanged; Align.PlaceRightBottom(width, l_width); Control.Label l_height = new Control.Label(gb); l_height.SetSize(35, 15); l_height.Text = "Height:"; Align.PlaceRightBottom(l_height, width, 10); Control.HorizontalSlider height = new Control.HorizontalSlider(gb); height.Name = "Height"; height.UserData.Add("test", subject); height.Min = 50; height.Max = 350; height.Value = 100; height.SetSize(55, 15); height.ValueChanged += HeightChanged; Align.PlaceRightBottom(height, l_height); Control.RadioButtonGroup dock = new RadioButtonGroup(gb, "Dock"); dock.UserData.Add("test", subject); // store control that we are controlling dock.AddOption("Left"); dock.AddOption("Top"); dock.AddOption("Right"); dock.AddOption("Bottom"); dock.AddOption("Fill"); dock.SetSelection(dock_idx); Align.PlaceDownLeft(dock, l_width, 5); //dock.DrawDebugOutlines = true; dock.Invalidate(); Control.Label l_margin = new Control.Label(gb); l_margin.Text = "Margin:"; l_margin.SetBounds(75, 20, 35, 15); //Align.PlaceRightBottom(l_margin, dock); // can't use Align to anchor with 'dock' because radio group is resized only after layout ~_~ // this is become really cumbersome //l_margin.DrawDebugOutlines = true; Control.HorizontalSlider margin = new HorizontalSlider(gb); margin.Name = "Margin"; margin.UserData.Add("test", subject); margin.Min = 0; margin.Max = 50; margin.Value = 10; margin.SetSize(55, 15); margin.ValueChanged += MarginChanged; Align.PlaceRightBottom(margin, l_margin); dock.SelectionChanged += DockChanged; return(gb); }
public Label(Base parent) : base(parent) { { Control.Label label = new Control.Label(this); label.Text = "Standard label (not autosized)"; label.SetBounds(10, 10, 100, 10); } { Control.Label label = new Control.Label(this); label.AutoSizeToContents = true; label.Text = "Chinese: \u4E45\u6709\u5F52\u5929\u613F \u7EC8\u8FC7\u9B3C\u95E8\u5173"; label.SetPosition(10, 30); } { Control.Label label = new Control.Label(this); label.AutoSizeToContents = true; label.Text = "Japanese: \u751F\u3080\u304E\u3000\u751F\u3054\u3081\u3000\u751F\u305F\u307E\u3054"; label.SetPosition(10, 50); } { Control.Label label = new Control.Label(this); label.AutoSizeToContents = true; label.Text = "Korean: \uADF9\uC9C0\uD0D0\uD5D8\u3000\uD611\uD68C\uACB0\uC131\u3000\uCCB4\uACC4\uC801\u3000\uC5F0\uAD6C"; label.SetPosition(10, 70); } { Control.Label label = new Control.Label(this); label.AutoSizeToContents = true; label.Text = "Hindi: \u092F\u0947 \u0905\u0928\u0941\u091A\u094D\u091B\u0947\u0926 \u0939\u093F\u0928\u094D\u0926\u0940 \u092E\u0947\u0902 \u0939\u0948\u0964"; label.SetPosition(10, 90); } { Control.Label label = new Control.Label(this); label.AutoSizeToContents = true; label.Text = "Arabic: \u0627\u0644\u0622\u0646 \u0644\u062D\u0636\u0648\u0631 \u0627\u0644\u0645\u0624\u062A\u0645\u0631 \u0627\u0644\u062F\u0648\u0644\u064A"; label.SetPosition(10, 110); } { Control.Label label = new Control.Label(this); label.AutoSizeToContents = true; label.MouseInputEnabled = true; // needed for tooltip label.Text = "Wow, Coloured Text (and tooltip)"; label.TextColor = Color.Blue; label.SetToolTipText("I'm a tooltip"); font3 = new Font(Skin.Renderer, "Motorwerk", 20); ((Control.Label)label.ToolTip).Font = font3; label.SetPosition(10, 130); } { Control.Label label = new Control.Label(this); label.AutoSizeToContents = true; label.Text = "Coloured Text With Alpha"; label.TextColor = Color.FromArgb(100, 0, 0, 255); label.SetPosition(10, 150); } { // Note that when using a custom font, this font object has to stick around // for the lifetime of the label. Rethink, or is that ideal? font1 = new Font(Skin.Renderer); font1.FaceName = "Comic Sans MS"; font1.Size = 25; Control.Label label = new Control.Label(this); label.AutoSizeToContents = true; label.Text = "Custom Font (Comic Sans 25)"; label.SetPosition(10, 170); label.Font = font1; } { font2 = new Font(Skin.Renderer, "French Script MT", 35); Control.Label label = new Control.Label(this); label.AutoSizeToContents = true; label.Font = font2; label.SetPosition(10, 210); label.Text = "Custom Font (French Script MT 35)"; } // alignment test { Control.Label txt = new Control.Label(this); txt.SetPosition(10, 280); txt.Text = "Alignment test"; txt.AutoSizeToContents = true; Control.Label outer = new Control.Label(this); outer.SetBounds(10, 300, 190, 190); Control.Label l11 = new Control.Label(outer); l11.SetBounds(10, 10, 50, 50); l11.Text = "TL"; l11.Alignment = Pos.Top | Pos.Left; Control.Label l12 = new Control.Label(outer); l12.SetBounds(70, 10, 50, 50); l12.Text = "T"; l12.Alignment = Pos.Top | Pos.CenterH; Control.Label l13 = new Control.Label(outer); l13.SetBounds(130, 10, 50, 50); l13.Text = "TR"; l13.Alignment = Pos.Top | Pos.Right; Control.Label l21 = new Control.Label(outer); l21.SetBounds(10, 70, 50, 50); l21.Text = "L"; l21.Alignment = Pos.Left | Pos.CenterV; Control.Label l22 = new Control.Label(outer); l22.SetBounds(70, 70, 50, 50); l22.Text = "C"; l22.Alignment = Pos.CenterH | Pos.CenterV; Control.Label l23 = new Control.Label(outer); l23.SetBounds(130, 70, 50, 50); l23.Text = "R"; l23.Alignment = Pos.Right | Pos.CenterV; Control.Label l31 = new Control.Label(outer); l31.SetBounds(10, 130, 50, 50); l31.Text = "BL"; l31.Alignment = Pos.Bottom | Pos.Left; Control.Label l32 = new Control.Label(outer); l32.SetBounds(70, 130, 50, 50); l32.Text = "B"; l32.Alignment = Pos.Bottom | Pos.CenterH; Control.Label l33 = new Control.Label(outer); l33.SetBounds(130, 130, 50, 50); l33.Text = "BR"; l33.Alignment = Pos.Bottom | Pos.Right; outer.DrawDebugOutlines = true; } }