Fix out of screen drawings (#842)
* Fix lock screen menu * Fix pin setup in lock menu * Desktop GUI layer on FS, black status bar * Desktop: fix spelling * Fix first start screen * Fix status bar drawing Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
#include "gui/canvas.h"
|
||||
#include "gui_i.h"
|
||||
|
||||
#define TAG "GuiSrv"
|
||||
@@ -53,7 +54,19 @@ void gui_redraw_status_bar(Gui* gui) {
|
||||
canvas_set_orientation(gui->canvas, CanvasOrientationHorizontal);
|
||||
canvas_frame_set(
|
||||
gui->canvas, GUI_STATUS_BAR_X, GUI_STATUS_BAR_Y, GUI_DISPLAY_WIDTH, GUI_STATUS_BAR_HEIGHT);
|
||||
|
||||
/* for support black theme - paint white area and
|
||||
* draw icon with transparent white color
|
||||
*/
|
||||
canvas_set_color(gui->canvas, ColorWhite);
|
||||
canvas_draw_box(gui->canvas, 1, 1, 9, 7);
|
||||
canvas_draw_box(gui->canvas, 7, 3, 58, 6);
|
||||
canvas_draw_box(gui->canvas, 61, 1, 32, 7);
|
||||
canvas_draw_box(gui->canvas, 89, 3, 38, 6);
|
||||
canvas_set_color(gui->canvas, ColorBlack);
|
||||
canvas_set_bitmap_mode(gui->canvas, 1);
|
||||
canvas_draw_icon(gui->canvas, 0, 0, &I_Background_128x11);
|
||||
canvas_set_bitmap_mode(gui->canvas, 0);
|
||||
|
||||
// Right side
|
||||
x = GUI_DISPLAY_WIDTH;
|
||||
@@ -66,25 +79,22 @@ void gui_redraw_status_bar(Gui* gui) {
|
||||
if(!width) width = 8;
|
||||
x_used += width;
|
||||
x -= (width + 2);
|
||||
canvas_frame_set(gui->canvas, x - 3, GUI_STATUS_BAR_Y, width, GUI_STATUS_BAR_HEIGHT);
|
||||
canvas_frame_set(
|
||||
gui->canvas, x - 3, GUI_STATUS_BAR_Y, width + 5, GUI_STATUS_BAR_HEIGHT);
|
||||
|
||||
canvas_set_color(gui->canvas, ColorWhite);
|
||||
canvas_draw_box(gui->canvas, 1, 1, width + 3, 11);
|
||||
|
||||
canvas_draw_box(gui->canvas, 2, 1, width + 2, 10);
|
||||
canvas_set_color(gui->canvas, ColorBlack);
|
||||
|
||||
canvas_draw_box(gui->canvas, 1, 0, 1, 12);
|
||||
canvas_draw_box(gui->canvas, 0, 1, 1, 11);
|
||||
|
||||
canvas_draw_box(gui->canvas, 1, 11, width + 4, 2);
|
||||
canvas_draw_box(gui->canvas, 1, 0, width + 4, 1);
|
||||
canvas_draw_box(gui->canvas, width + 4, 1, 1, 11);
|
||||
|
||||
canvas_set_color(gui->canvas, ColorWhite);
|
||||
canvas_draw_dot(gui->canvas, width + 4, 0);
|
||||
canvas_draw_dot(gui->canvas, width + 4, 12);
|
||||
|
||||
canvas_set_color(gui->canvas, ColorBlack);
|
||||
canvas_draw_rframe(
|
||||
gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas), 1);
|
||||
canvas_draw_line(gui->canvas, 1, 1, 1, canvas_height(gui->canvas) - 2);
|
||||
canvas_draw_line(
|
||||
gui->canvas,
|
||||
2,
|
||||
canvas_height(gui->canvas) - 2,
|
||||
canvas_width(gui->canvas) - 2,
|
||||
canvas_height(gui->canvas) - 2);
|
||||
|
||||
canvas_frame_set(
|
||||
gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
||||
@@ -103,26 +113,23 @@ void gui_redraw_status_bar(Gui* gui) {
|
||||
width = view_port_get_width(view_port);
|
||||
if(!width) width = 8;
|
||||
x_used += width;
|
||||
canvas_frame_set(gui->canvas, x, GUI_STATUS_BAR_Y, width, GUI_STATUS_BAR_HEIGHT);
|
||||
|
||||
canvas_frame_set(
|
||||
gui->canvas, 0, GUI_STATUS_BAR_Y, x + width + 5, GUI_STATUS_BAR_HEIGHT);
|
||||
canvas_draw_rframe(
|
||||
gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas), 1);
|
||||
canvas_draw_line(gui->canvas, 1, 1, 1, canvas_height(gui->canvas) - 2);
|
||||
canvas_draw_line(
|
||||
gui->canvas,
|
||||
2,
|
||||
canvas_height(gui->canvas) - 2,
|
||||
canvas_width(gui->canvas) - 2,
|
||||
canvas_height(gui->canvas) - 2);
|
||||
|
||||
canvas_frame_set(gui->canvas, x, GUI_STATUS_BAR_Y, width + 5, GUI_STATUS_BAR_HEIGHT);
|
||||
|
||||
canvas_set_color(gui->canvas, ColorWhite);
|
||||
canvas_draw_box(gui->canvas, 1, 1, width + 3, 11);
|
||||
|
||||
canvas_set_color(gui->canvas, ColorBlack);
|
||||
|
||||
if(x == 0) { // Frame start
|
||||
canvas_draw_box(gui->canvas, 1, 0, 1, 12);
|
||||
canvas_draw_box(gui->canvas, 0, 1, 1, 11);
|
||||
}
|
||||
|
||||
canvas_draw_box(gui->canvas, 1, 11, width + 4, 2);
|
||||
canvas_draw_box(gui->canvas, 1, 0, width + 4, 1);
|
||||
canvas_draw_box(gui->canvas, width + 4, 0, 1, 12);
|
||||
|
||||
canvas_set_color(gui->canvas, ColorWhite);
|
||||
canvas_draw_dot(gui->canvas, width + 4, 0);
|
||||
canvas_draw_dot(gui->canvas, width + 4, 12);
|
||||
|
||||
canvas_draw_box(gui->canvas, 2, 1, width + 2, 10);
|
||||
canvas_set_color(gui->canvas, ColorBlack);
|
||||
|
||||
canvas_frame_set(
|
||||
@@ -148,7 +155,7 @@ bool gui_redraw_window(Gui* gui) {
|
||||
|
||||
bool gui_redraw_desktop(Gui* gui) {
|
||||
canvas_set_orientation(gui->canvas, CanvasOrientationHorizontal);
|
||||
canvas_frame_set(gui->canvas, GUI_WINDOW_X, GUI_WINDOW_Y, GUI_WINDOW_WIDTH, GUI_WINDOW_HEIGHT);
|
||||
canvas_frame_set(gui->canvas, 0, 0, GUI_DISPLAY_WIDTH, GUI_DISPLAY_HEIGHT);
|
||||
ViewPort* view_port = gui_view_port_find_enabled(gui->layers[GuiLayerDesktop]);
|
||||
if(view_port) {
|
||||
view_port_draw(view_port, gui->canvas);
|
||||
|
Reference in New Issue
Block a user