示例#1
0
 public CheckBox(libGUI GUI, GfxFont Font) : base(GUI, Font)
 {
     CheckBoxSize          = GUI.CheckBoxSkin.Size;
     CheckBoxButtonSpacing = 5;
 }
示例#2
0
文件: libGUI.cs 项目: 7Power/libTech
        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);
        }