1 module unde.guitk.background; 2 3 import derelict.sdl2.sdl; 4 import derelict.sdl2.ttf; 5 import derelict.sdl2.image; 6 7 import std.stdio; 8 import std..string; 9 10 import unde.global_state; 11 import unde.guitk.lib; 12 import unde.keybar.lib; 13 import unde.lib; 14 15 class Background:UIEntry 16 { 17 private SDL_Rect _rect; 18 private UIPage _page; 19 private bool _focus; 20 21 private string label; 22 private SDL_Color color; 23 private int fontsize; 24 25 this(UIPage page, GlobalState gs) 26 { 27 _page = page; 28 _rect.x = 0; 29 _rect.y = 0; 30 _rect.w = gs.screen.w; 31 _rect.h = gs.screen.h; 32 } 33 34 @property SDL_Rect rect() {return _rect;} 35 36 void on_draw(GlobalState gs) 37 { 38 auto r = SDL_RenderCopy(gs.renderer, gs.texture_black, null, &_rect); 39 if (r < 0) 40 { 41 writefln( "Background.on_draw(), 1: Error while render copy: %s", 42 SDL_GetError().fromStringz() ); 43 } 44 } 45 46 void process_event(GlobalState gs, SDL_Event event) 47 { 48 } 49 50 @property UIPage page() {return _page;} 51 52 @property ref bool focus() {return _focus;} 53 54 void on_set_focus(GlobalState gs) 55 { 56 } 57 58 void on_unset_focus(GlobalState gs) 59 { 60 } 61 62 private void 63 close_page(GlobalState gs) 64 { 65 _page.show = false; 66 } 67 68 void set_keybar(GlobalState gs) 69 { 70 gs.keybar.handlers.clear(); 71 gs.keybar.handlers_down.clear(); 72 gs.keybar.handlers_double.clear(); 73 74 gs.keybar.handlers[SDL_SCANCODE_ESCAPE] = KeyHandler(&close_page, "Close layouts settings", "Esc"); 75 } 76 } 77