public CheckBox(libGUI GUI, GfxFont Font) : base(GUI, Font) { CheckBoxSize = GUI.CheckBoxSkin.Size; CheckBoxButtonSpacing = 5; }
public libGUI(RenderWindow RWind) { Controls = new List <Control>(); MouseHeldControls = new Dictionary <Key, Control>(); LoadSkin("content/textures/gui_elements/standard"); RWind.OnMouseMove += (W, X, Y) => { MousePos = new Vector2(X, W.WindowHeight - Y); OnMouseMoveEventArgs Evt = new OnMouseMoveEventArgs(this, MousePos); for (int i = Controls.Count - 1; i >= 0; i--) { // for (int i = 0; i < Controls.Count; i++) { Control C = Controls[i]; C.OnMouseMove(Evt); if (Evt.Consumed) { break; } } }; RWind.OnKey += (W, Key, Scancode, Pressed, Repeat, Mods) => { bool IsMouse = Key >= Key.MouseButton1 && Key <= Key.MouseButton8; OnKeyEventArgs Evt = new OnKeyEventArgs(this, MousePos, Pressed, Key); if (IsMouse) { bool ClickedOnAny = false; Control ClickedRootControl = null; for (int i = 0; i < Controls.Count; i++) { // for (int i = Controls.Count - 1; i >= 0; i--) { Control C = Controls[i]; if (C.IsInside(MousePos)) { Control Ctrl = C.GetRecursiveClientAreaChildAt(MousePos) ?? C; ClickControl(Ctrl, Key, Pressed); ClickedOnAny = true; ClickedRootControl = C; } } if (ClickedRootControl != null) { BringToFront(ClickedRootControl); } if (!ClickedOnAny) { ClickControl(null, Key, Pressed); } } for (int i = Controls.Count - 1; i >= 0; i--) { //for (int i = 0; i < Controls.Count; i++) { Control C = Controls[i]; C.OnKey(Evt); if (Evt.Consumed) { break; } } }; DefaultFont = new BMFont("content/fonts/proggy_clean_16.fnt"); ((BMFont)DefaultFont).LoadTextures("content/textures", TextureFilter.Linear); DebugFont = new BMFont("content/fonts/proggy_small_16.fnt"); ((BMFont)DebugFont).LoadTextures("content/textures", TextureFilter.Linear); AnonPro16 = new BMFont("content/fonts/anonymous_pro_16.fnt"); AnonPro16.LoadTextures("content/textures", TextureFilter.Linear); AnonPro32 = new BMFont("content/fonts/anonymous_pro_32.fnt"); AnonPro32.LoadTextures("content/textures", TextureFilter.Linear); }