diff options
Diffstat (limited to 'apps/gui/viewport.c')
-rw-r--r-- | apps/gui/viewport.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c index ef61494b71..9cd905fa14 100644 --- a/apps/gui/viewport.c +++ b/apps/gui/viewport.c | |||
@@ -33,6 +33,9 @@ | |||
33 | #include "viewport.h" | 33 | #include "viewport.h" |
34 | #include "statusbar.h" | 34 | #include "statusbar.h" |
35 | #include "screen_access.h" | 35 | #include "screen_access.h" |
36 | #include "appevents.h" | ||
37 | |||
38 | static bool statusbar_enabled = true; | ||
36 | 39 | ||
37 | int viewport_get_nb_lines(struct viewport *vp) | 40 | int viewport_get_nb_lines(struct viewport *vp) |
38 | { | 41 | { |
@@ -50,7 +53,7 @@ void viewport_set_defaults(struct viewport *vp, enum screen_type screen) | |||
50 | vp->x = 0; | 53 | vp->x = 0; |
51 | vp->width = screens[screen].lcdwidth; | 54 | vp->width = screens[screen].lcdwidth; |
52 | 55 | ||
53 | vp->y = gui_statusbar_height(); | 56 | vp->y = statusbar_enabled?gui_statusbar_height():0; |
54 | vp->height = screens[screen].lcdheight - vp->y; | 57 | vp->height = screens[screen].lcdheight - vp->y; |
55 | #ifdef HAVE_LCD_BITMAP | 58 | #ifdef HAVE_LCD_BITMAP |
56 | vp->drawmode = DRMODE_SOLID; | 59 | vp->drawmode = DRMODE_SOLID; |
@@ -82,3 +85,31 @@ void viewport_set_defaults(struct viewport *vp, enum screen_type screen) | |||
82 | } | 85 | } |
83 | #endif | 86 | #endif |
84 | } | 87 | } |
88 | |||
89 | |||
90 | void viewportmanager_set_statusbar(bool enabled) | ||
91 | { | ||
92 | if (enabled && global_settings.statusbar) | ||
93 | { | ||
94 | add_event(GUI_EVENT_FOURHERTZ, false, viewportmanager_draw_statusbars); | ||
95 | gui_syncstatusbar_draw(&statusbars, true); | ||
96 | } | ||
97 | else | ||
98 | { | ||
99 | remove_event(GUI_EVENT_FOURHERTZ, viewportmanager_draw_statusbars); | ||
100 | } | ||
101 | statusbar_enabled = enabled; | ||
102 | } | ||
103 | |||
104 | void viewportmanager_draw_statusbars(void* data) | ||
105 | { | ||
106 | (void)data; | ||
107 | if (statusbar_enabled) | ||
108 | gui_syncstatusbar_draw(&statusbars, false); | ||
109 | } | ||
110 | |||
111 | void viewportmanager_statusbar_changed(void* data) | ||
112 | { | ||
113 | (void)data; | ||
114 | viewportmanager_set_statusbar(statusbar_enabled); | ||
115 | } | ||