Update Beast installation instructions to use beastpatcher and remove instructions...
[kugel-rb.git] / apps / gui / viewport.h
blobd27692c498bb6a6fd0123ef99457e46582458f58
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 "font.h"
26 #include "kernel.h"
27 #include "system.h"
28 #include "misc.h"
29 #include "screen_access.h"
31 /* return the number of text lines in the vp viewport */
32 int viewport_get_nb_lines(struct viewport *vp);
34 #define VP_ERROR 0
35 #define VP_DIMENSIONS 0x1
36 #define VP_COLORS 0x2
37 #define VP_SELECTIONCOLORS 0x4
38 /* load a viewport struct from a config string.
39 returns a combination of the above to say which were loaded ok from the string */
40 int viewport_load_config(const char *config, struct viewport *vp);
42 void viewport_set_defaults(struct viewport *vp, enum screen_type screen);
44 /* Used to specify which screens the statusbar (SB) should be displayed on.
46 * The parameter is a bit OR'ed combination of the following (screen is
47 * SCREEN_MAIN or SCREEN_REMOTE from screen_access.h):
49 * VP_SB_HIDE_ALL means "hide the SB on all screens"
50 * VP_SB_ONSCREEN(screen) means "display the SB on the given screen
51 * as specified by the SB setting for that screen"
52 * VP_SB_IGNORE_SETTING(screen) means "ignore the SB setting for that screen"
53 * VP_SB_ALLSCREENS means "VP_SB_ONSCREEN for all screens"
55 * In most cases, VP_SB_ALLSCREENS should be used which means display the SB
56 * as specified by the settings.
57 * For the WPS (and other possible exceptions) use VP_SB_IGNORE_SETTING() to
58 * FORCE the statusbar on for the given screen (i.e it will show regardless
59 * of the setting)
61 * Returns the status before the call. This value can be used to restore the
62 * SB "displaying rules".
64 #define VP_SB_HIDE_ALL 0
65 #define VP_SB_ONSCREEN(screen) (1u<<screen)
66 #define VP_SB_IGNORE_SETTING(screen) (1u<<(4+screen))
67 #define VP_SB_ALLSCREENS (VP_SB_ONSCREEN(0)|VP_SB_ONSCREEN(1))
68 int viewportmanager_set_statusbar(int enabled);
70 /* callbacks for GUI_EVENT_* events */
71 void viewportmanager_draw_statusbars(void*data);
72 void viewportmanager_statusbar_changed(void* data);