Fix player and greyscale reds.
[kugel-rb/myfork.git] / apps / gui / viewport.h
blobf703c9734263c4043c4301e266d2c1e7ac875153
2 /***************************************************************************
3 * __________ __ ___.
4 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
5 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
6 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
7 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
8 * \/ \/ \/ \/ \/
9 * $Id$
11 * Copyright (C) 2008 by Jonathan Gordon
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version 2
16 * of the License, or (at your option) any later version.
18 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 * KIND, either express or implied.
21 ****************************************************************************/
23 #include "config.h"
24 #include "lcd.h"
25 #include "system.h"
26 #include "screen_access.h"
28 /* return the number of text lines in the vp viewport */
29 int viewport_get_nb_lines(struct viewport *vp);
31 #define VP_ERROR 0
32 #define VP_DIMENSIONS 0x1
33 #define VP_COLORS 0x2
34 #define VP_SELECTIONCOLORS 0x4
35 /* load a viewport struct from a config string.
36 returns a combination of the above to say which were loaded ok from the string */
37 int viewport_load_config(const char *config, struct viewport *vp);
39 void viewport_set_defaults(struct viewport *vp, enum screen_type screen);
41 /* parse a viewport list, which looks like
42 * X|Y|width|height|font|foregorund color|background color
43 * | is a separator */
44 #ifdef HAVE_LCD_BITMAP
45 const char* viewport_parse_viewport(struct viewport *vp,
46 enum screen_type screen,
47 const char *bufptr,
48 const char separator);
49 #endif
50 /* Used to specify which screens the statusbar (SB) should be displayed on.
52 * The parameter is a bit OR'ed combination of the following (screen is
53 * SCREEN_MAIN or SCREEN_REMOTE from screen_access.h):
55 * VP_SB_HIDE_ALL means "hide the SB on all screens"
56 * VP_SB_ONSCREEN(screen) means "display the SB on the given screen
57 * as specified by the SB setting for that screen"
58 * VP_SB_IGNORE_SETTING(screen) means "ignore the SB setting for that screen"
59 * VP_SB_ALLSCREENS means "VP_SB_ONSCREEN for all screens"
61 * In most cases, VP_SB_ALLSCREENS should be used which means display the SB
62 * as specified by the settings.
63 * For the WPS (and other possible exceptions) use VP_SB_IGNORE_SETTING() to
64 * FORCE the statusbar on for the given screen (i.e it will show regardless
65 * of the setting)
67 * Returns the status before the call. This value can be used to restore the
68 * SB "displaying rules".
70 #define VP_SB_HIDE_ALL 0
71 #define VP_SB_ONSCREEN(screen) BIT_N(screen)
72 #define VP_SB_IGNORE_SETTING(screen) BIT_N(4+screen)
73 #define VP_SB_ALLSCREENS (VP_SB_ONSCREEN(0)|VP_SB_ONSCREEN(1))
74 int viewportmanager_set_statusbar(int enabled);
76 /* callbacks for GUI_EVENT_* events */
77 void viewportmanager_draw_statusbars(void*data);
78 void viewportmanager_statusbar_changed(void* data);