Ejemplo n.º 1
0
        public SelectionItem AddItem(string text, Texture2D image = null, dynamic obj = null)
        {
            var new_item = new SelectionItem(text, image, obj);

            Items.Add(new_item);

            return(new_item);
        }
Ejemplo n.º 2
0
        public SelectionForm()
        {
            void DrawFunc()
            {
                DrawFormBlur(UI.WhiteTex, 0.2f, new OpenTK.Vector4(0.7f, 0.7f, 0.7f, 1));

                float draw_y = Begin;

                foreach (var item in Items)
                {
                    if (ActiveItem == item)
                    {
                        DrawFormSolid(new OpenTK.Vector4(0, 0.8f, 0.8f, 1.0f), 0, (int)draw_y, W, 24);
                    }

                    if (item.Image != null)
                    {
                        DrawForm(item.Image, 2, (int)draw_y, 16, 24);
                        DrawText(item.Name, 20, (int)draw_y, new OpenTK.Vector4(0.2f, 0.2f, 0.2f, 0.8f));
                    }
                    else
                    {
                        DrawText(item.Name, 2, (int)draw_y, new OpenTK.Vector4(0.2f, 0.2f, 0.2f, 0.8f));
                    }

                    draw_y += 26;
                }
            }

            void MouseDownFunc(int b)
            {
                if (b == 0)
                {
                    if (ActiveItem != null)
                    {
                        Selected?.Invoke(ActiveItem);
                        ActiveItem.Selected?.Invoke(ActiveItem);
                    }
                }
            }

            MouseDown = MouseDownFunc;

            void MouseMoveFunc(int x, int y, int mx, int my)
            {
                float draw_y = Begin;

                foreach (var item in Items)
                {
                    if (item.Image != null)
                    {
                        //DrawForm(item.Image, 2, (int)draw_y, 16, 24);
                        // DrawText(item.Name, 20, (int)draw_y);

                        if (x > 0 && x <= W && y >= draw_y && y <= draw_y + 24)
                        {
                            ActiveItem = item;
                        }
                    }
                    else
                    {
                        //   DrawText(item.Name, 2, (int)draw_y);
                    }

                    draw_y += 26;
                }
            }

            MouseMove = MouseMoveFunc;

            Draw = DrawFunc;
        }