Exemplo n.º 1
0
    public void Init()
    {
        SDL.SDL_Init(SDL.SDL_INIT_EVERYTHING);
        Window = SDL.SDL_CreateWindow("SDL2 GUI",
                                      WindowSize[0], WindowSize[1],
                                      WindowSize[2], WindowSize[3],
                                      SDL.SDL_WindowFlags.SDL_WINDOW_RESIZABLE |
                                      SDL.SDL_WindowFlags.SDL_WINDOW_SHOWN |
                                      SDL.SDL_WindowFlags.SDL_WINDOW_INPUT_FOCUS);

        SDL.SDL_SetWindowResizable(Window, SDL.SDL_bool.SDL_FALSE);

        int drivers = SDL.SDL_GetNumRenderDrivers();

        for (int i = 0; i < drivers; i++)
        {
            SDL.SDL_RendererInfo info;
            SDL.SDL_GetRenderDriverInfo(i, out info);

            Renderer = SDL.SDL_CreateRenderer(Window, i, (SDL.SDL_RendererFlags)info.flags);
            if (Renderer.ToInt32() != 0)
            {
                Printer.Instance.Init(Renderer);
                break;
            }
        }

        SDL_image.IMG_Init(SDL_image.IMG_InitFlags.IMG_INIT_PNG);

        LoadImages();

        SDL.SDL_Rect sliceParams;
        sliceParams.x = 4;
        sliceParams.y = 4;
        sliceParams.w = 27;
        sliceParams.h = 27;

        _images[0].Slice(sliceParams);
        _images[1].Slice(sliceParams);
        _images[2].Slice(sliceParams);
        _images[3].Slice(sliceParams);

        _gui = new MyGUI(Renderer, WindowSize[2], WindowSize[3]);

        Canvas window = new Canvas(_gui);

        for (int i = 0; i < 4; i++)
        {
            Button b = new Button(_images[0], _images[1], _images[2], _images[3], 0, i * 25, 100, 25, "Click Me!");
            b.OnMouseClick = ClickHandler;

            if (i == 3)
            {
                b.Disable();
                b.SetText("Disabled");
                _toEnableRef = b;
            }
            else
            {
                _countersByButtonId.Add(b.ObjectId, 0);
            }

            window.AddElement(b);
        }

        Button enabler = new Button(_images[0], _images[1], _images[2], _images[3], 0, 5 * 25, 100, 25, "Enabler");

        enabler.OnMouseClick = EnablerHandler;
        window.AddElement(enabler);

        Button b2 = new Button(_images[0], _images[1], _images[2], _images[3], 775, 0, 25, 25, "X");

        b2.TextScale    = 1.5f;
        b2.OnMouseClick = ExitApp;

        window.AddElement(b2);

        _gui.PushCanvas(window);
    }