forked from len0rd/rockbox
(Hopefully) Revert the quickscreen changes. Many fixes need to be made,
and the exact implementation needs discussion. We apologize for the inconvenience and hope to bring an improved quickscreen to you soon. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16224 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
2b6d35854d
commit
f7c938a7b7
12 changed files with 399 additions and 378 deletions
|
@ -56,7 +56,6 @@
|
|||
#include "cuesheet.h"
|
||||
#include "ata_idle_notify.h"
|
||||
#include "root_menu.h"
|
||||
#include "quickscreen.h"
|
||||
|
||||
#if (LCD_DEPTH > 1) || (defined(HAVE_LCD_REMOTE) && (LCD_REMOTE_DEPTH > 1))
|
||||
#include "backdrop.h"
|
||||
|
|
|
@ -60,7 +60,7 @@ static const char *unit_strings[] =
|
|||
/* these two vars are needed so arbitrary values can be added to the
|
||||
TABLE_SETTING settings if the F_ALLOW_ARBITRARY_VALS flag is set */
|
||||
static int table_setting_oldval = 0, table_setting_array_position = 0;
|
||||
char *option_get_valuestring(struct settings_list *setting,
|
||||
static char *option_get_valuestring(struct settings_list *setting,
|
||||
char *buffer, int buf_len,
|
||||
intptr_t temp_var)
|
||||
{
|
||||
|
@ -210,21 +210,19 @@ static int option_talk(int selected_item, void * data)
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef HAVE_QUICKSCREEN /* only the quickscreen uses this so far */
|
||||
void option_select_next_val(struct settings_list *setting)
|
||||
#if 0
|
||||
int option_select_next_val(struct settings_list *setting,
|
||||
intptr_t temp_var)
|
||||
{
|
||||
int val = 0;
|
||||
int *value = setting->setting;
|
||||
if ((setting->flags & F_BOOL_SETTING) == F_BOOL_SETTING)
|
||||
{
|
||||
*(bool*)value = !*(bool*)value;
|
||||
return;
|
||||
val = (bool)temp_var ? 0 : 1;
|
||||
}
|
||||
else if ((setting->flags & F_INT_SETTING) == F_INT_SETTING)
|
||||
{
|
||||
struct int_setting *info = (struct int_setting *)setting->int_setting;
|
||||
val = *value + info->step;
|
||||
struct int_setting *info = setting->int_setting;
|
||||
val = (int)temp_var + info->step;
|
||||
if (val > info->max)
|
||||
val = info->min;
|
||||
}
|
||||
|
@ -234,18 +232,53 @@ void option_select_next_val(struct settings_list *setting)
|
|||
int steps = sound_steps(setting_id);
|
||||
int min = sound_min(setting_id);
|
||||
int max = sound_max(setting_id);
|
||||
val = *value + steps;
|
||||
if (val >= max)
|
||||
val = (int)temp_var + steps;
|
||||
if (val > max)
|
||||
val = min;
|
||||
}
|
||||
else if ((setting->flags & F_CHOICE_SETTING) == F_CHOICE_SETTING)
|
||||
{
|
||||
struct choice_setting *info = (struct choice_setting *)setting->choice_setting;
|
||||
val = *value + 1;
|
||||
if (val >= info->count)
|
||||
struct choice_setting *info = setting->choice_setting;
|
||||
val = (int)temp_var;
|
||||
if (val > info->count)
|
||||
val = 0;
|
||||
}
|
||||
*value = val;
|
||||
return val;
|
||||
}
|
||||
|
||||
int option_select_prev_val(struct settings_list *setting,
|
||||
intptr_t temp_var)
|
||||
{
|
||||
int val = 0;
|
||||
if ((setting->flags & F_BOOL_SETTING) == F_BOOL_SETTING)
|
||||
{
|
||||
val = (bool)temp_var ? 0 : 1;
|
||||
}
|
||||
else if ((setting->flags & F_INT_SETTING) == F_INT_SETTING)
|
||||
{
|
||||
struct int_setting *info = setting->int_setting;
|
||||
val = (int)temp_var - info->step;
|
||||
if (val < info->min)
|
||||
val = info->max;
|
||||
}
|
||||
else if ((setting->flags & F_T_SOUND) == F_T_SOUND)
|
||||
{
|
||||
int setting_id = setting->sound_setting->setting;
|
||||
int steps = sound_steps(setting_id);
|
||||
int min = sound_min(setting_id);
|
||||
int max = sound_max(setting_id);
|
||||
val = (int)temp_var -+ steps;
|
||||
if (val < min)
|
||||
val = max;
|
||||
}
|
||||
else if ((setting->flags & F_CHOICE_SETTING) == F_CHOICE_SETTING)
|
||||
{
|
||||
struct choice_setting *info = setting->choice_setting;
|
||||
val = (int)temp_var;
|
||||
if (val < 0)
|
||||
val = info->count - 1;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -65,9 +65,4 @@ extern void option_select_next(struct option_select * opt);
|
|||
*/
|
||||
extern void option_select_prev(struct option_select * opt);
|
||||
|
||||
|
||||
void option_select_next_val(struct settings_list *setting);
|
||||
char *option_get_valuestring(struct settings_list *setting,
|
||||
char *buffer, int buf_len,
|
||||
intptr_t temp_var);
|
||||
#endif /* _GUI_OPTION_SELECT_H_ */
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2008 by Jonathan Gordon
|
||||
* Copyright (C) 2005 by Kevin Ferrare
|
||||
*
|
||||
* All files in this archive are subject to the GNU General Public License.
|
||||
* See the file COPYING in the source tree root for full license agreement.
|
||||
|
@ -30,198 +30,109 @@
|
|||
#include "misc.h"
|
||||
#include "statusbar.h"
|
||||
#include "action.h"
|
||||
#include "settings_list.h"
|
||||
#include "lang.h"
|
||||
#include "option_select.h"
|
||||
|
||||
static struct viewport vps[NB_SCREENS][QUICKSCREEN_ITEM_COUNT];
|
||||
|
||||
static void quickscreen_fix_viewports(struct gui_quickscreen *qs,
|
||||
struct screen *display,
|
||||
struct viewport *parent)
|
||||
void gui_quickscreen_init(struct gui_quickscreen * qs,
|
||||
struct option_select *left_option,
|
||||
struct option_select *bottom_option,
|
||||
struct option_select *right_option,
|
||||
quickscreen_callback callback)
|
||||
{
|
||||
int height, i, count=0, top;
|
||||
int nb_lines = parent->height/display->char_height;
|
||||
bool single_line_bottom = false;
|
||||
|
||||
for(i=0; i<QUICKSCREEN_ITEM_COUNT; i++)
|
||||
{
|
||||
if (qs->items[i])
|
||||
count++;
|
||||
vps[display->screen_type][i] = *parent;
|
||||
}
|
||||
|
||||
/* special handling when there is only enough room for 2 items.
|
||||
discard the top and bottom items, so only show the 2 side ones */
|
||||
if (nb_lines < 4)
|
||||
{
|
||||
qs->items[QUICKSCREEN_TOP] = NULL;
|
||||
qs->items[QUICKSCREEN_BOTTOM] = NULL;
|
||||
vps[display->screen_type][QUICKSCREEN_RIGHT].y = parent->y;
|
||||
vps[display->screen_type][QUICKSCREEN_LEFT].height = parent->height/2;
|
||||
vps[display->screen_type][QUICKSCREEN_RIGHT].y = parent->y+parent->height/2;
|
||||
vps[display->screen_type][QUICKSCREEN_RIGHT].height = parent->height/2;
|
||||
return;
|
||||
}
|
||||
else if (nb_lines < 5 && count == 4) /* drop the top item */
|
||||
{
|
||||
qs->items[QUICKSCREEN_TOP] = NULL;
|
||||
single_line_bottom = true;
|
||||
}
|
||||
|
||||
height = display->char_height*2;
|
||||
if (nb_lines > 8 ||
|
||||
(nb_lines > 5 && qs->items[QUICKSCREEN_TOP] == NULL))
|
||||
height += display->char_height;
|
||||
/* Top item */
|
||||
if (qs->items[QUICKSCREEN_TOP])
|
||||
{
|
||||
vps[display->screen_type][QUICKSCREEN_TOP].y = parent->y;
|
||||
vps[display->screen_type][QUICKSCREEN_TOP].height = height;
|
||||
}
|
||||
else
|
||||
{
|
||||
vps[display->screen_type][QUICKSCREEN_TOP].height = 0;
|
||||
}
|
||||
/* bottom item */
|
||||
if (qs->items[QUICKSCREEN_BOTTOM])
|
||||
{
|
||||
if (single_line_bottom)
|
||||
height = display->char_height;
|
||||
vps[display->screen_type][QUICKSCREEN_BOTTOM].y = parent->y+parent->height - height;
|
||||
vps[display->screen_type][QUICKSCREEN_BOTTOM].height = height;
|
||||
}
|
||||
else
|
||||
{
|
||||
vps[display->screen_type][QUICKSCREEN_BOTTOM].height = 0;
|
||||
}
|
||||
|
||||
/* side items */
|
||||
height = parent->height -
|
||||
vps[display->screen_type][QUICKSCREEN_BOTTOM].height -
|
||||
vps[display->screen_type][QUICKSCREEN_TOP].height ;
|
||||
top = parent->y+vps[display->screen_type][QUICKSCREEN_TOP].height;
|
||||
vps[display->screen_type][QUICKSCREEN_LEFT].y = top;
|
||||
vps[display->screen_type][QUICKSCREEN_RIGHT].y = top;
|
||||
vps[display->screen_type][QUICKSCREEN_LEFT].height = height;
|
||||
vps[display->screen_type][QUICKSCREEN_RIGHT].height = height;
|
||||
|
||||
vps[display->screen_type][QUICKSCREEN_RIGHT].x = parent->x+parent->width/2;
|
||||
|
||||
vps[display->screen_type][QUICKSCREEN_LEFT].width = parent->width/2;
|
||||
vps[display->screen_type][QUICKSCREEN_RIGHT].width = parent->width/2;
|
||||
qs->left_option=left_option;
|
||||
qs->bottom_option=bottom_option;
|
||||
qs->right_option=right_option;
|
||||
qs->callback=callback;
|
||||
}
|
||||
|
||||
static void quickscreen_draw_text(char *s, int item, bool title,
|
||||
struct screen *display, struct viewport *vp)
|
||||
/*
|
||||
* Draws the quickscreen on a given screen
|
||||
* - qs : the quickscreen
|
||||
* - display : the screen to draw on
|
||||
*/
|
||||
static void gui_quickscreen_draw(struct gui_quickscreen * qs, struct screen * display)
|
||||
{
|
||||
int nb_lines = vp->height/display->char_height;
|
||||
int w, line = 0, x=0;
|
||||
display->getstringsize(s, &w, NULL);
|
||||
switch (item)
|
||||
const unsigned char *option;
|
||||
const unsigned char *title;
|
||||
int w, font_h;
|
||||
bool statusbar = global_settings.statusbar;
|
||||
#ifdef HAS_BUTTONBAR
|
||||
display->has_buttonbar=false;
|
||||
#endif
|
||||
gui_textarea_clear(display);
|
||||
if (display->height / display->char_height < 7) /* we need at leats 7 lines */
|
||||
{
|
||||
case QUICKSCREEN_TOP:
|
||||
if (nb_lines > 2)
|
||||
{
|
||||
if (title)
|
||||
{
|
||||
display->mono_bitmap(bitmap_icons_7x8[Icon_UpArrow],
|
||||
(vp->width/2)-4, 0, 7, 8);
|
||||
line = 1;
|
||||
display->setfont(FONT_SYSFIXED);
|
||||
}
|
||||
else
|
||||
line = 2;
|
||||
}
|
||||
else
|
||||
line = title?0:1;
|
||||
x = (vp->width - w)/2;
|
||||
break;
|
||||
case QUICKSCREEN_BOTTOM:
|
||||
if (title && nb_lines > 2 && item == QUICKSCREEN_BOTTOM)
|
||||
{
|
||||
display->mono_bitmap(bitmap_icons_7x8[Icon_DownArrow],
|
||||
(vp->width/2)-4, vp->height-8, 7, 8);
|
||||
}
|
||||
line = title?0:1;
|
||||
x = (vp->width - w)/2;
|
||||
break;
|
||||
case QUICKSCREEN_LEFT:
|
||||
if (nb_lines > 1)
|
||||
{
|
||||
line = nb_lines/2;
|
||||
if (title)
|
||||
line--;
|
||||
}
|
||||
else
|
||||
line = 0;
|
||||
if (title)
|
||||
display->getstringsize("A", NULL, &font_h);
|
||||
|
||||
/* do these calculations once */
|
||||
const unsigned int puts_center = display->height/2/font_h;
|
||||
const unsigned int puts_bottom = display->height/font_h;
|
||||
const unsigned int putsxy_center = display->height/2;
|
||||
const unsigned int putsxy_bottom = display->height;
|
||||
|
||||
/* Displays the first line of text */
|
||||
option=(unsigned char *)option_select_get_text(qs->left_option);
|
||||
title=(unsigned char *)qs->left_option->title;
|
||||
display->puts_scroll(2, puts_center-4+!statusbar, title);
|
||||
display->puts_scroll(2, puts_center-3+!statusbar, option);
|
||||
display->mono_bitmap(bitmap_icons_7x8[Icon_FastBackward], 1,
|
||||
line*display->char_height+display->char_height/2, 7, 8);
|
||||
x = 12;
|
||||
break;
|
||||
case QUICKSCREEN_RIGHT:
|
||||
line = nb_lines/2;
|
||||
if (title == false)
|
||||
line++;
|
||||
if (title)
|
||||
display->mono_bitmap(bitmap_icons_7x8[Icon_FastForward],
|
||||
vp->width - 8,
|
||||
line*display->char_height+display->char_height/2, 7, 8);
|
||||
x = vp->width - w - 12;
|
||||
break;
|
||||
putsxy_center-(font_h*3), 7, 8);
|
||||
|
||||
/* Displays the second line of text */
|
||||
option=(unsigned char *)option_select_get_text(qs->right_option);
|
||||
title=(unsigned char *)qs->right_option->title;
|
||||
display->getstringsize(title, &w, NULL);
|
||||
if(w > display->width - 8)
|
||||
{
|
||||
display->puts_scroll(2, puts_center-2+!statusbar, title);
|
||||
display->mono_bitmap(bitmap_icons_7x8[Icon_FastForward], 1,
|
||||
putsxy_center-font_h, 7, 8);
|
||||
}
|
||||
if (w>vp->width)
|
||||
display->puts_scroll(0,line,s);
|
||||
else
|
||||
display->putsxy(x, line*display->char_height, s);
|
||||
{
|
||||
display->putsxy(display->width - w - 12, putsxy_center-font_h, title);
|
||||
display->mono_bitmap(bitmap_icons_7x8[Icon_FastForward],
|
||||
display->width - 8, putsxy_center-font_h, 7, 8);
|
||||
}
|
||||
display->getstringsize(option, &w, NULL);
|
||||
if(w > display->width)
|
||||
display->puts_scroll(0, puts_center-1+!statusbar, option);
|
||||
else
|
||||
display->putsxy(display->width -w-12, putsxy_center, option);
|
||||
|
||||
/* Displays the third line of text */
|
||||
option=(unsigned char *)option_select_get_text(qs->bottom_option);
|
||||
title=(unsigned char *)qs->bottom_option->title;
|
||||
|
||||
display->getstringsize(title, &w, NULL);
|
||||
if(w > display->width)
|
||||
display->puts_scroll(0, puts_bottom-4+!statusbar, title);
|
||||
else
|
||||
display->putsxy(display->width/2-w/2, putsxy_bottom-(font_h*3), title);
|
||||
|
||||
display->getstringsize(option, &w, NULL);
|
||||
if(w > display->width)
|
||||
display->puts_scroll(0, puts_bottom-3+!statusbar, option);
|
||||
else
|
||||
display->putsxy(display->width/2-w/2, putsxy_bottom-(font_h*2), option);
|
||||
display->mono_bitmap(bitmap_icons_7x8[Icon_DownArrow], display->width/2-4,
|
||||
putsxy_bottom-font_h, 7, 8);
|
||||
|
||||
gui_textarea_update(display);
|
||||
display->setfont(FONT_UI);
|
||||
}
|
||||
|
||||
static void gui_quickscreen_draw(struct gui_quickscreen *qs,
|
||||
struct screen *display,
|
||||
struct viewport *parent)
|
||||
/*
|
||||
* Draws the quickscreen on all available screens
|
||||
* - qs : the quickscreen
|
||||
*/
|
||||
static void gui_syncquickscreen_draw(struct gui_quickscreen * qs)
|
||||
{
|
||||
int i;
|
||||
char buf[MAX_PATH];
|
||||
unsigned char *title, *value;
|
||||
void *setting;
|
||||
int temp;
|
||||
display->set_viewport(parent);
|
||||
display->clear_viewport();
|
||||
for (i=0; i<QUICKSCREEN_ITEM_COUNT; i++)
|
||||
{
|
||||
|
||||
if (!qs->items[i])
|
||||
continue;
|
||||
display->set_viewport(&vps[display->screen_type][i]);
|
||||
display->scroll_stop(&vps[display->screen_type][i]);
|
||||
|
||||
title = P2STR(ID2P(qs->items[i]->lang_id));
|
||||
setting = qs->items[i]->setting;
|
||||
if (qs->items[i]->flags&F_T_BOOL)
|
||||
temp = *(bool*)setting?1:0;
|
||||
else
|
||||
temp = *(int*)setting;
|
||||
value = option_get_valuestring((struct settings_list*)qs->items[i], buf, MAX_PATH, temp);
|
||||
|
||||
if (vps[display->screen_type][i].height < display->char_height*2)
|
||||
{
|
||||
char text[MAX_PATH];
|
||||
snprintf(text, MAX_PATH, "%s: %s", title, value);
|
||||
quickscreen_draw_text(text, i, true, display, &vps[display->screen_type][i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
quickscreen_draw_text(title, i, true, display, &vps[display->screen_type][i]);
|
||||
quickscreen_draw_text(value, i, false, display, &vps[display->screen_type][i]);
|
||||
}
|
||||
display->update_viewport();
|
||||
}
|
||||
display->set_viewport(parent);
|
||||
display->update_viewport();
|
||||
display->set_viewport(NULL);
|
||||
FOR_NB_SCREENS(i)
|
||||
gui_quickscreen_draw(qs, &screens[i]);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Does the actions associated to the given button if any
|
||||
* - qs : the quickscreen
|
||||
|
@ -230,26 +141,23 @@ static void gui_quickscreen_draw(struct gui_quickscreen *qs,
|
|||
*/
|
||||
static bool gui_quickscreen_do_button(struct gui_quickscreen * qs, int button)
|
||||
{
|
||||
|
||||
switch(button)
|
||||
{
|
||||
case ACTION_QS_LEFT:
|
||||
if (qs->items[QUICKSCREEN_LEFT])
|
||||
option_select_next_val((struct settings_list *)qs->items[QUICKSCREEN_LEFT]);
|
||||
option_select_next(qs->left_option);
|
||||
return(true);
|
||||
|
||||
case ACTION_QS_DOWN:
|
||||
if (qs->items[QUICKSCREEN_BOTTOM])
|
||||
option_select_next_val((struct settings_list *)qs->items[QUICKSCREEN_BOTTOM]);
|
||||
option_select_next(qs->bottom_option);
|
||||
return(true);
|
||||
|
||||
case ACTION_QS_RIGHT:
|
||||
if (qs->items[QUICKSCREEN_RIGHT])
|
||||
option_select_next_val((struct settings_list *)qs->items[QUICKSCREEN_RIGHT]);
|
||||
option_select_next(qs->right_option);
|
||||
return(true);
|
||||
|
||||
case ACTION_QS_DOWNINV:
|
||||
if (qs->items[QUICKSCREEN_TOP])
|
||||
option_select_next_val((struct settings_list *)qs->items[QUICKSCREEN_TOP]);
|
||||
option_select_prev(qs->bottom_option);
|
||||
return(true);
|
||||
}
|
||||
return(false);
|
||||
|
@ -257,50 +165,24 @@ static bool gui_quickscreen_do_button(struct gui_quickscreen * qs, int button)
|
|||
|
||||
bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter)
|
||||
{
|
||||
int button, i;
|
||||
bool changed = false;
|
||||
struct viewport vp[NB_SCREENS];
|
||||
int button;
|
||||
/* To quit we need either :
|
||||
* - a second press on the button that made us enter
|
||||
* - an action taken while pressing the enter button,
|
||||
* then release the enter button*/
|
||||
bool can_quit=false;
|
||||
gui_syncquickscreen_draw(qs);
|
||||
gui_syncstatusbar_draw(&statusbars, true);
|
||||
FOR_NB_SCREENS(i)
|
||||
{
|
||||
screens[i].set_viewport(NULL);
|
||||
screens[i].scroll_stop(NULL);
|
||||
vp[i].x = 0;
|
||||
vp[i].width = screens[i].width;
|
||||
vp[i].y = STATUSBAR_HEIGHT;
|
||||
vp[i].height = screens[i].height - STATUSBAR_HEIGHT;
|
||||
#ifdef HAVE_LCD_COLOR
|
||||
if (screens[i].is_color)
|
||||
{
|
||||
vp[i].fg_pattern = global_settings.fg_color;
|
||||
vp[i].bg_pattern = global_settings.bg_color;
|
||||
}
|
||||
#endif
|
||||
vp[i].xmargin = 0;
|
||||
vp[i].ymargin = 0;
|
||||
vp[i].font = FONT_UI;
|
||||
vp[i].drawmode = STYLE_DEFAULT;
|
||||
quickscreen_fix_viewports(qs, &screens[i], &vp[i]);
|
||||
gui_quickscreen_draw(qs, &screens[i], &vp[i]);
|
||||
}
|
||||
while (true) {
|
||||
button = get_action(CONTEXT_QUICKSCREEN,TIMEOUT_BLOCK);
|
||||
if(default_event_handler(button) == SYS_USB_CONNECTED)
|
||||
return(true);
|
||||
if(gui_quickscreen_do_button(qs, button))
|
||||
{
|
||||
changed = true;
|
||||
can_quit=true;
|
||||
if (button == ACTION_QS_DOWNINV &&
|
||||
!qs->items[QUICKSCREEN_TOP])
|
||||
break;
|
||||
FOR_NB_SCREENS(i)
|
||||
gui_quickscreen_draw(qs, &screens[i], &vp[i]);
|
||||
if(qs->callback)
|
||||
qs->callback(qs);
|
||||
gui_syncquickscreen_draw(qs);
|
||||
}
|
||||
else if(button==button_enter)
|
||||
can_quit=true;
|
||||
|
@ -313,36 +195,8 @@ bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter)
|
|||
|
||||
gui_syncstatusbar_draw(&statusbars, false);
|
||||
}
|
||||
if (changed)
|
||||
settings_apply();
|
||||
return false;
|
||||
}
|
||||
|
||||
bool quick_screen_quick(int button_enter)
|
||||
{
|
||||
struct gui_quickscreen qs;
|
||||
qs.items[QUICKSCREEN_LEFT] = find_setting_from_string(global_settings.quickscreen_left, NULL);
|
||||
qs.items[QUICKSCREEN_RIGHT] = find_setting_from_string(global_settings.quickscreen_right,NULL);
|
||||
qs.items[QUICKSCREEN_BOTTOM] = find_setting_from_string(global_settings.quickscreen_bottom, NULL);
|
||||
qs.items[QUICKSCREEN_TOP] = find_setting_from_string(global_settings.quickscreen_top,NULL);
|
||||
qs.callback = NULL;
|
||||
gui_syncquickscreen_run(&qs, button_enter);
|
||||
return(0);
|
||||
}
|
||||
|
||||
#ifdef BUTTON_F3
|
||||
bool quick_screen_f3(int button_enter)
|
||||
{
|
||||
struct gui_quickscreen qs;
|
||||
qs.items[QUICKSCREEN_LEFT] = find_setting(&global_settings.scrollbar, NULL);
|
||||
qs.items[QUICKSCREEN_RIGHT] = find_setting(&global_settings.statusbar, NULL);
|
||||
qs.items[QUICKSCREEN_BOTTOM] = find_setting(&global_settings.flip_display, NULL);
|
||||
qs.items[QUICKSCREEN_TOP] = NULL;
|
||||
qs.callback = NULL;
|
||||
gui_syncquickscreen_run(&qs, button_enter);
|
||||
return(0);
|
||||
}
|
||||
#endif /* BUTTON_F3 */
|
||||
|
||||
#endif /* HAVE_QUICKSCREEN */
|
||||
|
||||
|
|
|
@ -27,30 +27,45 @@
|
|||
#include "option_select.h"
|
||||
#include "screen_access.h"
|
||||
|
||||
enum QUICKSCREEN_ITEM {
|
||||
QUICKSCREEN_LEFT = 0,
|
||||
QUICKSCREEN_RIGHT,
|
||||
QUICKSCREEN_TOP,
|
||||
QUICKSCREEN_BOTTOM,
|
||||
QUICKSCREEN_ITEM_COUNT,
|
||||
};
|
||||
struct gui_quickscreen;
|
||||
/*
|
||||
* Callback function called each time the quickscreen gets modified
|
||||
* - qs : the quickscreen that did the modification
|
||||
*/
|
||||
typedef void (quickscreen_callback)(struct gui_quickscreen * qs);
|
||||
|
||||
struct gui_quickscreen
|
||||
{
|
||||
const struct settings_list *items[QUICKSCREEN_ITEM_COUNT];
|
||||
void (*callback)(struct gui_quickscreen * qs);
|
||||
struct option_select *left_option;
|
||||
struct option_select *bottom_option;
|
||||
struct option_select *right_option;
|
||||
quickscreen_callback *callback;
|
||||
};
|
||||
|
||||
/*
|
||||
* Initializes a quickscreen
|
||||
* - qs : the quickscreen
|
||||
* - left_option, bottom_option, right_option : a list of choices
|
||||
* for each option
|
||||
* - left_right_title : the 2nd line of the title
|
||||
* on the left and on the right
|
||||
* - callback : a callback function called each time the quickscreen
|
||||
* gets modified
|
||||
*/
|
||||
void gui_quickscreen_init(struct gui_quickscreen * qs,
|
||||
struct option_select *left_option,
|
||||
struct option_select *bottom_option,
|
||||
struct option_select *right_option,
|
||||
quickscreen_callback *callback);
|
||||
|
||||
struct gui_quickscreen;
|
||||
|
||||
/*
|
||||
* Runs the quickscreen on all available screens, if button_enter is released, quits
|
||||
* - qs : the quickscreen
|
||||
* - button_enter : button pressed at the same time the quickscreen is displayed
|
||||
* returns : true if usb was connected, false otherwise
|
||||
*/
|
||||
bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter);
|
||||
|
||||
|
||||
#ifdef BUTTON_F3
|
||||
extern bool quick_screen_f3(int button_enter);
|
||||
#endif
|
||||
extern bool quick_screen_quick(int button_enter);
|
||||
|
||||
|
||||
#endif /*_GUI_QUICK_SCREEN_H_*/
|
||||
#endif /* HAVE_QUICKSCREEN */
|
||||
|
|
|
@ -10087,53 +10087,53 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_SET_BOOL_YES
|
||||
desc: deprecated
|
||||
desc: bool true representation
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Yes"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Yes"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Yes"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_SET_BOOL_NO
|
||||
desc: deprecated
|
||||
desc: bool false representation
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "No"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "No"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "No"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_ON
|
||||
desc: deprecated
|
||||
desc: Used in a lot of places
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "On"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "On"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "On"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
@ -10206,206 +10206,206 @@
|
|||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_SHUFFLE
|
||||
desc: deprecated
|
||||
desc: in settings_menu
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Shuffle"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Shuffle"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Shuffle"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_REPEAT
|
||||
desc: deprecated
|
||||
desc: in settings_menu
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Repeat"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Repeat"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Repeat"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_ALL
|
||||
desc: deprecated
|
||||
desc: repeat playlist once all songs have completed
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "All"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "All"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "All"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_REPEAT_ONE
|
||||
desc: deprecated
|
||||
desc: repeat one song
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "One"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "One"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "One"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_REPEAT_AB
|
||||
desc: deprecated
|
||||
desc: repeat range from point A to B
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "A-B"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "A-B"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "A-B"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_FILTER
|
||||
desc: deprecated
|
||||
desc: setting name for dir filter
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Show Files"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Show Files"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Show Files"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_FILTER_SUPPORTED
|
||||
desc: deprecated
|
||||
desc: show all file types supported by Rockbox
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Supported"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Supported"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Supported"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_FILTER_MUSIC
|
||||
desc: deprecated
|
||||
desc: show only music-related files
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Music"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Music"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Music"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_FILTER_PLAYLIST
|
||||
desc: deprecated
|
||||
desc: show only playlist
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Playlists"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Playlists"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Playlists"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_FLIP_DISPLAY
|
||||
desc: deprecated
|
||||
desc: in settings_menu, option to turn display+buttos by 180 degreed
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Upside Down"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Upside Down"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Upside Down"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_SCROLL_BAR
|
||||
desc: deprecated
|
||||
desc: display menu, F3 substitute
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Scroll Bar"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Scroll Bar"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Scroll Bar"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SYSFONT_STATUS_BAR
|
||||
desc: deprecated
|
||||
desc: display menu, F3 substitute
|
||||
user:
|
||||
<source>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Status Bar"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Status Bar"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
lcd_bitmap: ""
|
||||
lcd_bitmap: "Status Bar"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
152
apps/screens.c
152
apps/screens.c
|
@ -636,6 +636,158 @@ bool pitch_screen(void)
|
|||
}
|
||||
#endif /* HAVE_PITCHSCREEN */
|
||||
|
||||
#ifdef HAVE_QUICKSCREEN
|
||||
|
||||
#define bool_to_int(b)\
|
||||
b?1:0
|
||||
#define int_to_bool(i)\
|
||||
i==0?false:true
|
||||
|
||||
static void quick_screen_quick_apply(struct gui_quickscreen *qs)
|
||||
{
|
||||
global_settings.playlist_shuffle=int_to_bool(qs->left_option->option);
|
||||
global_settings.dirfilter=qs->bottom_option->option;
|
||||
global_settings.repeat_mode=qs->right_option->option;
|
||||
}
|
||||
|
||||
bool quick_screen_quick(int button_enter)
|
||||
{
|
||||
bool res, oldshuffle;
|
||||
struct option_select left_option;
|
||||
struct option_select bottom_option;
|
||||
struct option_select right_option;
|
||||
int oldrepeat, old_x_margin, old_y_margin;
|
||||
|
||||
static const struct opt_items left_items[] = {
|
||||
[0]={ STR(LANG_SYSFONT_OFF) },
|
||||
[1]={ STR(LANG_SYSFONT_ON) }
|
||||
};
|
||||
static const struct opt_items bottom_items[] = {
|
||||
[SHOW_ALL]={ STR(LANG_SYSFONT_ALL) },
|
||||
[SHOW_SUPPORTED]={ STR(LANG_SYSFONT_FILTER_SUPPORTED) },
|
||||
[SHOW_MUSIC]={ STR(LANG_SYSFONT_FILTER_MUSIC) },
|
||||
[SHOW_PLAYLIST]={ STR(LANG_SYSFONT_FILTER_PLAYLIST) },
|
||||
};
|
||||
static const struct opt_items right_items[] = {
|
||||
[REPEAT_OFF]={ STR(LANG_SYSFONT_OFF) },
|
||||
[REPEAT_ALL]={ STR(LANG_SYSFONT_ALL) },
|
||||
[REPEAT_ONE]={ STR(LANG_SYSFONT_REPEAT_ONE) },
|
||||
[REPEAT_SHUFFLE]={ STR(LANG_SYSFONT_SHUFFLE) },
|
||||
#ifdef AB_REPEAT_ENABLE
|
||||
[REPEAT_AB]={ STR(LANG_SYSFONT_REPEAT_AB) }
|
||||
#endif
|
||||
};
|
||||
struct gui_quickscreen qs;
|
||||
|
||||
old_x_margin = lcd_getxmargin();
|
||||
old_y_margin = lcd_getymargin();
|
||||
lcd_setmargins(0, 0);
|
||||
|
||||
option_select_init_items(&left_option,
|
||||
(char *)str(LANG_SYSFONT_SHUFFLE),
|
||||
bool_to_int(global_settings.playlist_shuffle),
|
||||
left_items,
|
||||
2);
|
||||
option_select_init_items(&bottom_option,
|
||||
(char *)str(LANG_SYSFONT_FILTER),
|
||||
global_settings.dirfilter,
|
||||
bottom_items,
|
||||
sizeof(bottom_items)/sizeof(struct opt_items));
|
||||
option_select_init_items(&right_option,
|
||||
(char *)str(LANG_SYSFONT_REPEAT),
|
||||
global_settings.repeat_mode,
|
||||
right_items,
|
||||
sizeof(right_items)/sizeof(struct opt_items));
|
||||
|
||||
gui_quickscreen_init(&qs, &left_option, &bottom_option, &right_option,
|
||||
&quick_screen_quick_apply);
|
||||
oldrepeat=global_settings.repeat_mode;
|
||||
oldshuffle=global_settings.playlist_shuffle;
|
||||
res=gui_syncquickscreen_run(&qs, button_enter);
|
||||
if(!res)
|
||||
{
|
||||
if ( oldrepeat != global_settings.repeat_mode &&
|
||||
(audio_status() & AUDIO_STATUS_PLAY) )
|
||||
audio_flush_and_reload_tracks();
|
||||
if(oldshuffle != global_settings.playlist_shuffle
|
||||
&& audio_status() & AUDIO_STATUS_PLAY)
|
||||
{
|
||||
#if CONFIG_CODEC == SWCODEC
|
||||
dsp_set_replaygain();
|
||||
#endif
|
||||
if (global_settings.playlist_shuffle)
|
||||
playlist_randomise(NULL, current_tick, true);
|
||||
else
|
||||
playlist_sort(NULL, true);
|
||||
}
|
||||
settings_save();
|
||||
}
|
||||
lcd_setmargins(old_x_margin, old_y_margin);
|
||||
return(res);
|
||||
}
|
||||
|
||||
#ifdef BUTTON_F3
|
||||
static void quick_screen_f3_apply(struct gui_quickscreen *qs)
|
||||
{
|
||||
global_settings.scrollbar=int_to_bool(qs->left_option->option);
|
||||
|
||||
global_settings.flip_display=int_to_bool(qs->bottom_option->option);
|
||||
button_set_flip(global_settings.flip_display);
|
||||
lcd_set_flip(global_settings.flip_display);
|
||||
|
||||
global_settings.statusbar=int_to_bool(qs->right_option->option);
|
||||
gui_syncstatusbar_draw(&statusbars, true);
|
||||
}
|
||||
|
||||
bool quick_screen_f3(int button_enter)
|
||||
{
|
||||
bool res;
|
||||
struct option_select left_option;
|
||||
struct option_select bottom_option;
|
||||
struct option_select right_option;
|
||||
int old_x_margin, old_y_margin;
|
||||
|
||||
static const struct opt_items onoff_items[] = {
|
||||
[0]={ STR(LANG_SYSFONT_OFF) },
|
||||
[1]={ STR(LANG_SYSFONT_ON) }
|
||||
};
|
||||
static const struct opt_items yesno_items[] = {
|
||||
[0]={ STR(LANG_SYSFONT_SET_BOOL_NO) },
|
||||
[1]={ STR(LANG_SYSFONT_SET_BOOL_YES) }
|
||||
};
|
||||
|
||||
struct gui_quickscreen qs;
|
||||
|
||||
old_x_margin = lcd_getxmargin();
|
||||
old_y_margin = lcd_getymargin();
|
||||
lcd_setmargins(0, 0);
|
||||
|
||||
option_select_init_items(&left_option,
|
||||
str(LANG_SYSFONT_SCROLL_BAR),
|
||||
bool_to_int(global_settings.scrollbar),
|
||||
onoff_items,
|
||||
2);
|
||||
option_select_init_items(&bottom_option,
|
||||
str(LANG_SYSFONT_FLIP_DISPLAY),
|
||||
bool_to_int(global_settings.flip_display),
|
||||
yesno_items,
|
||||
2);
|
||||
option_select_init_items(&right_option,
|
||||
str(LANG_SYSFONT_STATUS_BAR),
|
||||
bool_to_int(global_settings.statusbar),
|
||||
onoff_items,
|
||||
2);
|
||||
gui_quickscreen_init(&qs, &left_option, &bottom_option, &right_option,
|
||||
&quick_screen_f3_apply);
|
||||
res=gui_syncquickscreen_run(&qs, button_enter);
|
||||
if(!res)
|
||||
settings_save();
|
||||
lcd_setmargins(old_x_margin, old_y_margin);
|
||||
return(res);
|
||||
}
|
||||
#endif /* BUTTON_F3 */
|
||||
#endif /* CONFIG_KEYPAD in (RECORDER_PAD |IRIVER_H100_PAD | IRIVER_H300_PAD) */
|
||||
|
||||
#if CONFIG_CHARGING
|
||||
void charging_splash(void)
|
||||
{
|
||||
|
|
|
@ -40,6 +40,11 @@ int mmc_remove_request(void);
|
|||
bool pitch_screen(void);
|
||||
#endif
|
||||
|
||||
#ifdef BUTTON_F3
|
||||
extern bool quick_screen_f3(int button_enter);
|
||||
#endif
|
||||
extern bool quick_screen_quick(int button_enter);
|
||||
|
||||
#if CONFIG_RTC
|
||||
bool set_time_screen(const char* title, struct tm *tm);
|
||||
#endif
|
||||
|
|
|
@ -1000,20 +1000,7 @@ const struct settings_list* find_setting(void* variable, int *id)
|
|||
}
|
||||
return NULL;
|
||||
}
|
||||
const struct settings_list* find_setting_from_string(char* setting, int *id)
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<nb_settings;i++)
|
||||
{
|
||||
if (settings[i].cfg_name && !strcmp(setting, settings[i].cfg_name))
|
||||
{
|
||||
if (id)
|
||||
*id = i;
|
||||
return &settings[i];
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void talk_setting(void *global_settings_variable)
|
||||
{
|
||||
const struct settings_list *setting;
|
||||
|
|
|
@ -224,7 +224,6 @@ void settings_display(void);
|
|||
enum optiontype { INT, BOOL };
|
||||
|
||||
const struct settings_list* find_setting(void* variable, int *id);
|
||||
const struct settings_list* find_setting_from_string(char* setting, int *id);
|
||||
bool cfg_int_to_string(int setting_id, int val, char* buf, int buf_len);
|
||||
void talk_setting(void *global_settings_variable);
|
||||
bool set_sound(const unsigned char * string,
|
||||
|
@ -726,13 +725,6 @@ struct user_settings
|
|||
int keyclick_repeats; /* keyclick on repeats */
|
||||
#endif
|
||||
unsigned char playlist_catalog_dir[MAX_FILENAME+1];
|
||||
|
||||
#ifdef HAVE_QUICKSCREEN
|
||||
unsigned char quickscreen_left[MAX_FILENAME+1];
|
||||
unsigned char quickscreen_right[MAX_FILENAME+1];
|
||||
unsigned char quickscreen_top[MAX_FILENAME+1];
|
||||
unsigned char quickscreen_bottom[MAX_FILENAME+1];
|
||||
#endif
|
||||
};
|
||||
|
||||
/** global variables **/
|
||||
|
|
|
@ -1189,16 +1189,6 @@ const struct settings_list settings[] = {
|
|||
#endif /* CONFIG_CODEC == SWCODEC */
|
||||
FILENAME_SETTING(0, playlist_catalog_dir, "playlist catalog directory",
|
||||
PLAYLIST_CATALOG_DEFAULT_DIR, NULL, NULL, MAX_FILENAME+1),
|
||||
#ifdef HAVE_QUICKSCREEN
|
||||
FILENAME_SETTING(0, quickscreen_left, "quickscreen left",
|
||||
"shuffle", NULL, NULL, MAX_FILENAME+1),
|
||||
FILENAME_SETTING(0, quickscreen_right, "quickscreen right",
|
||||
"repeat", NULL, NULL, MAX_FILENAME+1),
|
||||
FILENAME_SETTING(0, quickscreen_top, "quickscreen top",
|
||||
"", NULL, NULL, MAX_FILENAME+1),
|
||||
FILENAME_SETTING(0, quickscreen_bottom, "quickscreen bottom",
|
||||
"show files", NULL, NULL, MAX_FILENAME+1),
|
||||
#endif
|
||||
};
|
||||
|
||||
const int nb_settings = sizeof(settings)/sizeof(*settings);
|
||||
|
|
|
@ -77,7 +77,6 @@
|
|||
#include "buttonbar.h"
|
||||
#include "textarea.h"
|
||||
#include "action.h"
|
||||
#include "quickscreen.h"
|
||||
|
||||
#include "root_menu.h"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue