Пример #1
0
        public static void basic_demo(this NuklearContext ctx, Media media)
        {
            int i;

            ctx.StyleSetFont(media.font);
            ctx.StyleSetFontSize(20);
            ctx.Begin("Basic Demo", new RectangleF(320, 50, 275, 610),
                      Nuklear.NK_WINDOW_BORDER | Nuklear.NK_WINDOW_MOVABLE | Nuklear.NK_WINDOW_TITLE);

            ui_header(ctx, media, "Popup & Scrollbar & Images");
            ui_widget(ctx, media, 35);
            if (ctx.ButtonImageLabel(media.dir, "Images", nk_text_align.NK_TEXT_CENTERED))
            {
                image_active = !image_active;
            }

            ui_header(ctx, media, "Selected Image");
            ui_widget_centered(ctx, media, 100);
            ctx.Image(media.images[selected_image]);

            if (image_active)
            {
                if (ctx.PopupBegin(Nuklear.NK_POPUP_STATIC, "Image Popup", 0, new RectangleF(265, 0, 320, 220)))
                {
                    ctx.LayoutRowStatic(82, 82, 3);
                    for (i = 0; i < 9; ++i)
                    {
                        if (ctx.ButtonImage(media.images[i]))
                        {
                            selected_image = i;
                            image_active   = false;
                            ctx.PopupClose();
                        }
                    }

                    ctx.PopupEnd();
                }
            }

            ui_header(ctx, media, "Combo box");
            ui_widget(ctx, media, 40);
            if (ctx.ComboBeginLabel(items2[selected_item], new Vector2(ctx.WidgetWidth(), 200)))
            {
                ctx.LayoutRowDynamic(35, 1);
                for (i = 0; i < 3; ++i)
                {
                    if (ctx.ComboItemLabel(items2[i], nk_text_align.NK_TEXT_LEFT))
                    {
                        selected_item = i;
                    }
                }
                ctx.ComboEnd();
            }

            ui_widget(ctx, media, 40);
            if (ctx.ComboBeginImageLabel(items2[selected_icon], media.images[selected_icon],
                                         new Vector2(ctx.WidgetWidth(), 200)))
            {
                ctx.LayoutRowDynamic(35, 1);
                for (i = 0; i < 3; ++i)
                {
                    if (ctx.ComboItemImageLabel(media.images[i], items2[i], nk_text_align.NK_TEXT_RIGHT))
                    {
                        selected_icon = i;
                    }
                }
                ctx.ComboEnd();
            }

            ui_header(ctx, media, "Checkbox");
            ui_widget(ctx, media, 30);
            ctx.CheckboxLabel("Flag 1", ref check0);
            ui_widget(ctx, media, 30);
            ctx.CheckboxLabel("Flag 2", ref check1);

            ui_header(ctx, media, "Progressbar");
            ui_widget(ctx, media, 35);
            ctx.Progress(ref prog, 100, Nuklear.nk_true);

            if (Nuklear.nk_input_is_mouse_click_down_in_rect(ctx.input, Nuklear.NK_BUTTON_RIGHT, ctx.WindowGetBounds(),
                                                             true))
            {
                piemenu_pos    = ctx.input.mouse.pos;
                piemenu_active = true;
            }

            if (piemenu_active)
            {
                var ret = ui_piemenu(ctx, piemenu_pos, 140, media.menu, 6);
                if (ret == -2)
                {
                    piemenu_active = false;
                }
                if (ret != -1)
                {
                    Console.Write("piemenu selected: {0}\n", ret);
                    piemenu_active = false;
                }
            }

            ctx.StyleSetFontSize(14);
            ctx.End();
        }
Пример #2
0
        public static void basic_demo(NuklearContext ctx, Media media)
        {
            int i;

            ctx.StyleSetFont(media.Font20.Handle);
            ctx.Begin("Basic Demo", Nk.nk_rect_(320, 50, 275, 610),
                      PanelFlags.BORDER | PanelFlags.MOVABLE | PanelFlags.TITLE);

            ui_header(ctx, media, "Popup & Scrollbar & Images");
            ui_widget(ctx, media, 35);
            if (ctx.ButtonImageLabel(media.Dir, "Images", Alignment.MIDDLECENTERED))
            {
                _imageActive = !_imageActive;
            }

            ui_header(ctx, media, "Selected Image");
            ui_widget_centered(ctx, media, 100);
            ctx.Image(media.Images[_selectedImage]);

            if (_imageActive)
            {
                if (ctx.PopupBegin(NkPopupType.NK_POPUP_STATIC, "Image Popup", 0, Nk.nk_rect_(265, 0, 320, 220)))
                {
                    ctx.LayoutRowStatic(82, 82, 3);
                    for (i = 0; i < 9; ++i)
                    {
                        if (ctx.ButtonImage(media.Images[i]))
                        {
                            _selectedImage = i;
                            _imageActive   = false;
                            ctx.PopupClose();
                        }
                    }
                    ctx.PopupEnd();
                }
            }

            ui_header(ctx, media, "Combo box");
            ui_widget(ctx, media, 40);
            if (ctx.ComboBeginLabel(Items2[_selectedItem1], Nk.nk_vec2_(ctx.WidgetWidth(), 200)))
            {
                ctx.LayoutRowDynamic(35, 1);
                for (i = 0; i < 3; ++i)
                {
                    if (ctx.ComboItemLabel(Items2[i], Alignment.MIDDLELEFT))
                    {
                        _selectedItem1 = i;
                    }
                }
                ctx.ComboEnd();
            }

            ui_widget(ctx, media, 40);
            if (ctx.ComboBeginImageLabel(Items2[_selectedIcon], media.Images[_selectedIcon],
                                         Nk.nk_vec2_(ctx.WidgetWidth(), 200)))
            {
                ctx.LayoutRowDynamic(35, 1);
                for (i = 0; i < 3; ++i)
                {
                    if (ctx.ComboItemImageLabel(media.Images[i], Items2[i], Alignment.MIDDLERIGHT))
                    {
                        _selectedIcon = i;
                    }
                }
                ctx.ComboEnd();
            }

            ui_header(ctx, media, "Checkbox");
            ui_widget(ctx, media, 30);
            ctx.CheckboxLabel("Flag 1", ref _check0);
            ui_widget(ctx, media, 30);
            ctx.CheckboxLabel("Flag 2", ref _check1);

            ui_header(ctx, media, "Progressbar");
            ui_widget(ctx, media, 35);
            ctx.Progress(ref _prog, 100, Nk.nk_true);

            if (Nk.nk_input_is_mouse_click_down_in_rect(ctx.Ctx.Input, NkButtons.RIGHT,
                                                        ctx.WindowGetBounds(), Nk.nk_true) != 0)
            {
                _piemenuPos    = ctx.Ctx.Input.mouse.Pos;
                _piemenuActive = true;
            }

            if (_piemenuActive)
            {
                var ret = ui_piemenu(ctx, _piemenuPos, 140, media.Menu, 6);
                if (ret == -2)
                {
                    _piemenuActive = false;
                }
                if (ret != -1)
                {
                    Console.Write("piemenu selected: {0}\n", ret);
                    _piemenuActive = false;
                }
            }

            ctx.StyleSetFont(media.Font14.Handle);
            ctx.End();
        }
Пример #3
0
        public static void button_demo(this NuklearContext ctx, Media media)
        {
            ctx.StyleSetFont(media.font);
            ctx.StyleSetFontSize(20);
            ctx.Begin("Button Demo", new RectangleF(50, 50, 255, 610),
                      Nuklear.NK_WINDOW_BORDER | Nuklear.NK_WINDOW_MOVABLE | Nuklear.NK_WINDOW_TITLE);

            /*------------------------------------------------
             *                  MENU
             *------------------------------------------------*/
            ctx.MenubarBegin();
            {
                /* toolbar */
                ctx.LayoutRowStatic(40, 40, 4);
                if (ctx.MenuBeginImage("Music", media.play, new Vector2(110, 120)))
                {
                    /* settings */
                    ctx.LayoutRowDynamic(25, 1);
                    ctx.MenuItemImageLabel(media.play, "Play", nk_text_align.NK_TEXT_RIGHT);
                    ctx.MenuItemImageLabel(media.stop, "Stop", nk_text_align.NK_TEXT_RIGHT);
                    ctx.MenuItemImageLabel(media.pause, "Pause", nk_text_align.NK_TEXT_RIGHT);
                    ctx.MenuItemImageLabel(media.next, "Next", nk_text_align.NK_TEXT_RIGHT);
                    ctx.MenuItemImageLabel(media.prev, "Prev", nk_text_align.NK_TEXT_RIGHT);
                    ctx.MenuEnd();
                }

                ctx.ButtonImage(media.tools);
                ctx.ButtonImage(media.cloud);
                ctx.ButtonImage(media.pen);
            }
            ctx.MenubarEnd();

            /*------------------------------------------------
             *                  BUTTON
             *------------------------------------------------*/
            ui_header(ctx, media, "Push buttons");
            ui_widget(ctx, media, 35);
            if (ctx.ButtonLabel("Push me"))
            {
                Console.Write("pushed!\n");
            }
            ui_widget(ctx, media, 35);
            if (ctx.ButtonImageLabel(media.rocket, "Styled", nk_text_align.NK_TEXT_CENTERED))
            {
                Console.Write("rocket!\n");
            }

            /*------------------------------------------------
             *                  REPEATER
             *------------------------------------------------*/
            ui_header(ctx, media, "Repeater");
            ui_widget(ctx, media, 35);
            if (ctx.ButtonLabel("Press me"))
            {
                Console.Write("pressed!\n");
            }

            /*------------------------------------------------
             *                  TOGGLE
             *------------------------------------------------*/
            ui_header(ctx, media, "Toggle buttons");
            ui_widget(ctx, media, 35);
            if (ctx.ButtonImageLabel(toggle0 ? media.checkd : media.uncheckd, "Toggle", nk_text_align.NK_TEXT_LEFT))
            {
                toggle0 = !toggle0;
            }

            ui_widget(ctx, media, 35);
            if (ctx.ButtonImageLabel(toggle1 ? media.checkd : media.uncheckd, "Toggle", nk_text_align.NK_TEXT_LEFT))
            {
                toggle1 = !toggle1;
            }

            ui_widget(ctx, media, 35);
            if (ctx.ButtonImageLabel(toggle2 ? media.checkd : media.uncheckd, "Toggle", nk_text_align.NK_TEXT_LEFT))
            {
                toggle2 = !toggle2;
            }

            /*------------------------------------------------
             *                  RADIO
             *------------------------------------------------*/
            ui_header(ctx, media, "Radio buttons");
            ui_widget(ctx, media, 35);
            if (ctx.ButtonSymbolLabel(
                    option == 0 ? nk_symbol_type.NK_SYMBOL_CIRCLE_OUTLINE : nk_symbol_type.NK_SYMBOL_CIRCLE_SOLID, "Select",
                    nk_text_align.NK_TEXT_LEFT))
            {
                option = 0;
            }
            ui_widget(ctx, media, 35);
            if (ctx.ButtonSymbolLabel(
                    option == 1 ? nk_symbol_type.NK_SYMBOL_CIRCLE_OUTLINE : nk_symbol_type.NK_SYMBOL_CIRCLE_SOLID, "Select",
                    nk_text_align.NK_TEXT_LEFT))
            {
                option = 1;
            }
            ui_widget(ctx, media, 35);
            if (ctx.ButtonSymbolLabel(
                    option == 2 ? nk_symbol_type.NK_SYMBOL_CIRCLE_OUTLINE : nk_symbol_type.NK_SYMBOL_CIRCLE_SOLID, "Select",
                    nk_text_align.NK_TEXT_LEFT))
            {
                option = 2;
            }

            /*------------------------------------------------
             *                  CONTEXTUAL
             *------------------------------------------------*/
            ctx.StyleSetFontSize(18);
            if (ctx.ContextualBegin(Nuklear.NK_WINDOW_NO_SCROLLBAR, new Vector2(150, 300), ctx.WindowGetBounds()))
            {
                ctx.LayoutRowDynamic(30, 1);
                if (ctx.ContextualItemImageLabel(media.copy, "Clone", nk_text_align.NK_TEXT_RIGHT))
                {
                    Console.Write("pressed clone!\n");
                }
                if (ctx.ContextualItemImageLabel(media.del, "Delete", nk_text_align.NK_TEXT_RIGHT))
                {
                    Console.Write("pressed delete!\n");
                }
                if (ctx.ContextualItemImageLabel(media.convert, "Convert", nk_text_align.NK_TEXT_RIGHT))
                {
                    Console.Write("pressed convert!\n");
                }
                if (ctx.ContextualItemImageLabel(media.edit, "Edit", nk_text_align.NK_TEXT_RIGHT))
                {
                    Console.Write("pressed edit!\n");
                }
                ctx.ContextualEnd();
            }

            ctx.StyleSetFontSize(14);
            ctx.End();
        }
Пример #4
0
        public static void button_demo(NuklearContext ctx, Media media)
        {
            ctx.StyleSetFont(media.Font20.Handle);
            ctx.Begin("Button Demo", Nk.nk_rect_(50, 50, 255, 610),
                      PanelFlags.BORDER | PanelFlags.MOVABLE | PanelFlags.TITLE);

            /*------------------------------------------------
             *                  MENU
             *------------------------------------------------*/
            ctx.MenubarBegin();
            {
                /* toolbar */
                ctx.LayoutRowStatic(40, 40, 4);
                if (ctx.MenuBeginImage("Music", media.Play, Nk.nk_vec2_(110, 120)))
                {
                    /* settings */
                    ctx.LayoutRowDynamic(25, 1);
                    ctx.MenuItemImageLabel(media.Play, "Play", Alignment.MIDDLERIGHT);
                    ctx.MenuItemImageLabel(media.Stop, "Stop", Alignment.MIDDLERIGHT);
                    ctx.MenuItemImageLabel(media.Pause, "Pause", Alignment.MIDDLERIGHT);
                    ctx.MenuItemImageLabel(media.Next, "Next", Alignment.MIDDLERIGHT);
                    ctx.MenuItemImageLabel(media.Prev, "Prev", Alignment.MIDDLERIGHT);
                    ctx.MenuEnd();
                }
                ctx.ButtonImage(media.Tools);
                ctx.ButtonImage(media.Cloud);
                ctx.ButtonImage(media.Pen);
            }
            ctx.MenubarEnd();

            /*------------------------------------------------
             *                  BUTTON
             *------------------------------------------------*/
            ui_header(ctx, media, "Push buttons");
            ui_widget(ctx, media, 35);
            if (ctx.ButtonLabel("Push me"))
            {
                Console.Write("pushed!\n");
            }
            ui_widget(ctx, media, 35);
            if (ctx.ButtonImageLabel(media.Rocket, "Styled", Alignment.MIDDLECENTERED))
            {
                Console.Write("rocket!\n");
            }

            /*------------------------------------------------
             *                  REPEATER
             *------------------------------------------------*/
            ui_header(ctx, media, "Repeater");
            ui_widget(ctx, media, 35);
            if (ctx.ButtonLabel("Press me"))
            {
                Console.Write("pressed!\n");
            }

            /*------------------------------------------------
             *                  TOGGLE
             *------------------------------------------------*/
            ui_header(ctx, media, "Toggle buttons");
            ui_widget(ctx, media, 35);
            if (ctx.ButtonImageLabel(_toggle0 ? media.Checkd : media.Uncheckd, "Toggle", Alignment.MIDDLELEFT))
            {
                _toggle0 = !_toggle0;
            }

            ui_widget(ctx, media, 35);
            if (ctx.ButtonImageLabel(_toggle1 ? media.Checkd : media.Uncheckd, "Toggle", Alignment.MIDDLELEFT))
            {
                _toggle1 = !_toggle1;
            }

            ui_widget(ctx, media, 35);
            if (ctx.ButtonImageLabel(_toggle2 ? media.Checkd : media.Uncheckd, "Toggle", Alignment.MIDDLELEFT))
            {
                _toggle2 = !_toggle2;
            }

            /*------------------------------------------------
             *                  RADIO
             *------------------------------------------------*/
            ui_header(ctx, media, "Radio buttons");
            ui_widget(ctx, media, 35);
            if (ctx.ButtonSymbolLabel(_option == 0 ? NkSymbolType.CIRCLE_OUTLINE : NkSymbolType.CIRCLE_SOLID, "Select",
                                      Alignment.MIDDLELEFT))
            {
                _option = 0;
            }
            ui_widget(ctx, media, 35);
            if (ctx.ButtonSymbolLabel(_option == 1 ? NkSymbolType.CIRCLE_OUTLINE : NkSymbolType.CIRCLE_SOLID, "Select",
                                      Alignment.MIDDLELEFT))
            {
                _option = 1;
            }
            ui_widget(ctx, media, 35);
            if (ctx.ButtonSymbolLabel(_option == 2 ? NkSymbolType.CIRCLE_OUTLINE : NkSymbolType.CIRCLE_SOLID, "Select",
                                      Alignment.MIDDLELEFT))
            {
                _option = 2;
            }

            /*------------------------------------------------
             *                  CONTEXTUAL
             *------------------------------------------------*/
            ctx.StyleSetFont(media.Font18.Handle);
            if (ctx.ContextualBegin(PanelFlags.NO_SCROLLBAR, Nk.nk_vec2_(150, 300), ctx.WindowGetBounds()))
            {
                ctx.LayoutRowDynamic(30, 1);
                if (ctx.ContextualItemImageLabel(media.Copy, "Clone", Alignment.MIDDLERIGHT))
                {
                    Console.Write("pressed clone!\n");
                }
                if (ctx.ContextualItemImageLabel(media.Del, "Delete", Alignment.MIDDLERIGHT))
                {
                    Console.Write("pressed delete!\n");
                }
                if (ctx.ContextualItemImageLabel(media.Convert, "Convert", Alignment.MIDDLERIGHT))
                {
                    Console.Write("pressed convert!\n");
                }
                if (ctx.ContextualItemImageLabel(media.Edit, "Edit", Alignment.MIDDLERIGHT))
                {
                    Console.Write("pressed edit!\n");
                }
                ctx.ContextualEnd();
            }
            ctx.StyleSetFont(media.Font14.Handle);
            ctx.End();
        }