(GLUI) Adapt to font size
This commit is contained in:
parent
ac3edc79e3
commit
4920af94f5
|
@ -38,12 +38,8 @@
|
||||||
|
|
||||||
#include "shared.h"
|
#include "shared.h"
|
||||||
|
|
||||||
#define GLUI_FONT_HEIGHT_STRIDE 40
|
int line_height, glyph_width, glui_term_start_x, glui_term_start_y,
|
||||||
#define GLUI_FONT_WIDTH_STRIDE 16
|
glui_term_width, glui_term_height;
|
||||||
#define GLUI_TERM_START_X (gl->win_width / 21)
|
|
||||||
#define GLUI_TERM_START_Y (gl->win_height / 9)
|
|
||||||
#define GLUI_TERM_WIDTH (((gl->win_width - GLUI_TERM_START_X - GLUI_TERM_START_X) / (GLUI_FONT_WIDTH_STRIDE)))
|
|
||||||
#define GLUI_TERM_HEIGHT (((gl->win_height - GLUI_TERM_START_Y) / (GLUI_FONT_HEIGHT_STRIDE)) - 1)
|
|
||||||
|
|
||||||
const gl_font_renderer_t *font_driver;
|
const gl_font_renderer_t *font_driver;
|
||||||
|
|
||||||
|
@ -115,19 +111,21 @@ static void glui_frame(void)
|
||||||
size_t begin = 0;
|
size_t begin = 0;
|
||||||
size_t end;
|
size_t end;
|
||||||
|
|
||||||
if (driver.menu->selection_ptr >= GLUI_TERM_HEIGHT / 2)
|
if (driver.menu->selection_ptr >= glui_term_height / 2)
|
||||||
begin = driver.menu->selection_ptr - GLUI_TERM_HEIGHT / 2;
|
begin = driver.menu->selection_ptr - glui_term_height / 2;
|
||||||
end = (driver.menu->selection_ptr + GLUI_TERM_HEIGHT <=
|
end = (driver.menu->selection_ptr + glui_term_height <=
|
||||||
file_list_get_size(driver.menu->selection_buf)) ?
|
file_list_get_size(driver.menu->selection_buf)) ?
|
||||||
driver.menu->selection_ptr + GLUI_TERM_HEIGHT :
|
driver.menu->selection_ptr + glui_term_height :
|
||||||
file_list_get_size(driver.menu->selection_buf);
|
file_list_get_size(driver.menu->selection_buf);
|
||||||
|
|
||||||
/* Do not scroll if all items are visible. */
|
/* Do not scroll if all items are visible. */
|
||||||
if (file_list_get_size(driver.menu->selection_buf) <= GLUI_TERM_HEIGHT)
|
if (file_list_get_size(driver.menu->selection_buf) <= glui_term_height)
|
||||||
begin = 0;
|
begin = 0;
|
||||||
|
|
||||||
if (end - begin > GLUI_TERM_HEIGHT)
|
if (end - begin > glui_term_height)
|
||||||
end = begin + GLUI_TERM_HEIGHT;
|
end = begin + glui_term_height;
|
||||||
|
|
||||||
|
end -= 1;
|
||||||
|
|
||||||
glui_render_background();
|
glui_render_background();
|
||||||
|
|
||||||
|
@ -150,9 +148,10 @@ static void glui_frame(void)
|
||||||
title, sizeof(title));
|
title, sizeof(title));
|
||||||
|
|
||||||
char title_buf[256];
|
char title_buf[256];
|
||||||
menu_ticker_line(title_buf, GLUI_TERM_WIDTH - 3,
|
menu_ticker_line(title_buf, glui_term_width - 3,
|
||||||
g_extern.frame_count / GLUI_TERM_START_X, title, true);
|
g_extern.frame_count / glui_term_start_x, title, true);
|
||||||
blit_line(GLUI_TERM_START_X + GLUI_TERM_START_X, GLUI_TERM_START_X, title_buf, true);
|
blit_line(glui_term_start_x + glui_term_start_x, glui_term_start_y,
|
||||||
|
title_buf, true);
|
||||||
|
|
||||||
char title_msg[64];
|
char title_msg[64];
|
||||||
const char *core_name = g_extern.menu.info.library_name;
|
const char *core_name = g_extern.menu.info.library_name;
|
||||||
|
@ -170,17 +169,17 @@ static void glui_frame(void)
|
||||||
snprintf(title_msg, sizeof(title_msg), "%s - %s %s", PACKAGE_VERSION,
|
snprintf(title_msg, sizeof(title_msg), "%s - %s %s", PACKAGE_VERSION,
|
||||||
core_name, core_version);
|
core_name, core_version);
|
||||||
blit_line(
|
blit_line(
|
||||||
GLUI_TERM_START_X + GLUI_TERM_START_X,
|
glui_term_start_x + glui_term_start_x,
|
||||||
(GLUI_TERM_HEIGHT * GLUI_FONT_HEIGHT_STRIDE) +
|
(glui_term_height * line_height) +
|
||||||
GLUI_TERM_START_Y + 2, title_msg, true);
|
glui_term_start_y + 2, title_msg, true);
|
||||||
|
|
||||||
unsigned x, y;
|
unsigned x, y;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
x = GLUI_TERM_START_X;
|
x = glui_term_start_x;
|
||||||
y = GLUI_TERM_START_Y;
|
y = glui_term_start_y + line_height;
|
||||||
|
|
||||||
for (i = begin; i < end; i++, y += GLUI_FONT_HEIGHT_STRIDE)
|
for (i = begin; i < end; i++, y += line_height)
|
||||||
{
|
{
|
||||||
char message[PATH_MAX], type_str[PATH_MAX],
|
char message[PATH_MAX], type_str[PATH_MAX],
|
||||||
entry_title_buf[PATH_MAX], type_str_buf[PATH_MAX],
|
entry_title_buf[PATH_MAX], type_str_buf[PATH_MAX],
|
||||||
|
@ -203,10 +202,10 @@ static void glui_frame(void)
|
||||||
|
|
||||||
selected = (i == driver.menu->selection_ptr);
|
selected = (i == driver.menu->selection_ptr);
|
||||||
|
|
||||||
menu_ticker_line(entry_title_buf, GLUI_TERM_WIDTH - (w + 1 + 2),
|
menu_ticker_line(entry_title_buf, glui_term_width - (w + 1 + 2),
|
||||||
g_extern.frame_count / GLUI_TERM_START_X, path_buf, selected);
|
g_extern.frame_count / glui_term_start_x, path_buf, selected);
|
||||||
menu_ticker_line(type_str_buf, w, g_extern.frame_count / GLUI_TERM_START_X,
|
menu_ticker_line(type_str_buf, w,
|
||||||
type_str, selected);
|
g_extern.frame_count / glui_term_start_x, type_str, selected);
|
||||||
|
|
||||||
snprintf(message, sizeof(message), "%c %s",
|
snprintf(message, sizeof(message), "%c %s",
|
||||||
' ',
|
' ',
|
||||||
|
@ -214,8 +213,8 @@ static void glui_frame(void)
|
||||||
|
|
||||||
blit_line(x, y, message, selected);
|
blit_line(x, y, message, selected);
|
||||||
|
|
||||||
blit_line(gl->win_width - GLUI_FONT_WIDTH_STRIDE * w
|
blit_line(gl->win_width - glyph_width * w
|
||||||
- GLUI_TERM_START_X , y, type_str_buf, selected);
|
- glui_term_start_x , y, type_str_buf, selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef GEKKO
|
#ifdef GEKKO
|
||||||
|
@ -317,6 +316,15 @@ static void glui_context_reset(void *data)
|
||||||
if (!menu)
|
if (!menu)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
line_height = g_settings.video.font_size * 4 / 3;
|
||||||
|
glyph_width = line_height / 2;
|
||||||
|
glui_term_start_x = gl->win_width / 21;
|
||||||
|
glui_term_start_y = gl->win_height / 9;
|
||||||
|
glui_term_width = (gl->win_width - glui_term_start_x - glui_term_start_x)
|
||||||
|
/ glyph_width;
|
||||||
|
glui_term_height = ((gl->win_height - glui_term_start_y)
|
||||||
|
/ (line_height)) - 1;
|
||||||
|
|
||||||
gl_font_init_first(&font_driver, (void*)&menu->font, gl, g_settings.video.font_path,
|
gl_font_init_first(&font_driver, (void*)&menu->font, gl, g_settings.video.font_path,
|
||||||
g_settings.video.font_size);
|
g_settings.video.font_size);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue