summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/viewport.c106
-rw-r--r--apps/gui/viewport.h44
2 files changed, 81 insertions, 69 deletions
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 06caa23..ff3a110 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -24,18 +24,10 @@
#include "lcd.h"
#include "lcd-remote.h"
#include "font.h"
-#include "sprintf.h"
-#include "string.h"
-#include "settings.h"
-#include "kernel.h"
-#include "system.h"
-#include "misc.h"
#include "viewport.h"
-#include "statusbar.h"
#include "screen_access.h"
-#include "appevents.h"
-
-
+#include "settings.h"
+#include "misc.h"
/*some short cuts for fg/bg/line selector handling */
#ifdef HAVE_LCD_COLOR
@@ -54,6 +46,17 @@
#define BG_FALLBACK LCD_DEFAULT_BG
#endif
+/* all below isn't needed for pc tools (i.e. checkwps/wps editor)
+ * only viewport_parse_viewport() is */
+#ifndef __PCTOOL__
+#include "sprintf.h"
+#include "string.h"
+#include "kernel.h"
+#include "system.h"
+#include "statusbar.h"
+#include "appevents.h"
+
+
static int statusbar_enabled = 0;
#ifdef HAVE_LCD_BITMAP
@@ -295,12 +298,55 @@ bool viewport_ui_vp_get_state(enum screen_type screen)
return ui_vp_info.active[screen];
}
+/*
+ * (re)parse the UI vp from the settings
+ * - Returns
+ * 0 if no UI vp is used at all
+ * else the bit for the screen (1<<screen) is set
+ */
+static unsigned viewport_init_ui_vp(void)
+{
+ int screen;
+ unsigned ret = 0;
+ char *setting;
+ FOR_NB_SCREENS(screen)
+ {
+#ifdef HAVE_REMOTE_LCD
+ if ((screen == SCREEN_REMOTE))
+ setting = global_settings.remote_ui_vp_config;
+ else
+#endif
+ setting = global_settings.ui_vp_config;
+
+
+ if (!(viewport_parse_viewport(&custom_vp[screen], screen,
+ setting, ',')))
+ viewport_set_fullscreen(&custom_vp[screen], screen);
+ else
+ ret |= BIT_N(screen);
+ }
+ return ret;
+}
+
+#ifdef HAVE_TOUCHSCREEN
+/* check if a point (x and y coordinates) are within a viewport */
+bool viewport_point_within_vp(const struct viewport *vp, int x, int y)
+{
+ bool is_x = (x >= vp->x && x < (vp->x + vp->width));
+ bool is_y = (y >= vp->y && y < (vp->y + vp->height));
+ return (is_x && is_y);
+}
+#endif /* HAVE_TOUCHSCREEN */
+#endif /* HAVE_LCD_BITMAP */
+#endif /* __PCTOOL__ */
+
#ifdef HAVE_LCD_COLOR
#define ARG_STRING(_depth) ((_depth) == 2 ? "dddddgg":"dddddcc")
#else
#define ARG_STRING(_depth) "dddddgg"
#endif
+#ifdef HAVE_LCD_BITMAP
const char* viewport_parse_viewport(struct viewport *vp,
enum screen_type screen,
const char *bufptr,
@@ -386,44 +432,4 @@ const char* viewport_parse_viewport(struct viewport *vp,
return ptr;
}
-
-/*
- * (re)parse the UI vp from the settings
- * - Returns
- * 0 if no UI vp is used at all
- * else the bit for the screen (1<<screen) is set
- */
-static unsigned viewport_init_ui_vp(void)
-{
- int screen;
- unsigned ret = 0;
- char *setting;
- FOR_NB_SCREENS(screen)
- {
-#ifdef HAVE_REMOTE_LCD
- if ((screen == SCREEN_REMOTE))
- setting = global_settings.remote_ui_vp_config;
- else
#endif
- setting = global_settings.ui_vp_config;
-
-
- if (!(viewport_parse_viewport(&custom_vp[screen], screen,
- setting, ',')))
- viewport_set_fullscreen(&custom_vp[screen], screen);
- else
- ret |= BIT_N(screen);
- }
- return ret;
-}
-
-#ifdef HAVE_TOUCHSCREEN
-/* check if a point (x and y coordinates) are within a viewport */
-bool viewport_point_within_vp(const struct viewport *vp, int x, int y)
-{
- bool is_x = (x >= vp->x && x < (vp->x + vp->width));
- bool is_y = (y >= vp->y && y < (vp->y + vp->height));
- return (is_x && is_y);
-}
-#endif /* HAVE_TOUCHSCREEN */
-#endif /* HAVE_LCD_BITMAP */
diff --git a/apps/gui/viewport.h b/apps/gui/viewport.h
index d431766..9cabc00 100644
--- a/apps/gui/viewport.h
+++ b/apps/gui/viewport.h
@@ -66,6 +66,7 @@ void viewport_set_defaults(struct viewport *vp, enum screen_type screen);
#define VP_SB_IGNORE_SETTING(screen) BIT_N(4+screen)
#define VP_SB_ALLSCREENS (VP_SB_ONSCREEN(0)|VP_SB_ONSCREEN(1))
+#ifndef __PCTOOL__
/*
* Initialize the viewportmanager, which in turns initializes the UI vp and
* statusbar stuff
@@ -86,25 +87,6 @@ void viewport_set_fullscreen(struct viewport *vp, enum screen_type screen);
#ifdef HAVE_LCD_BITMAP
/*
- * Parse a viewport definition (vp_def), which looks like:
- *
- * Screens with depth > 1:
- * X|Y|width|height|font|foregorund color|background color
- * Screens with depth = 1:
- * X|Y|width|height|font
- *
- * | is a separator and can be specified via the parameter
- *
- * Returns the pointer to the char after the last character parsed
- * if everything went OK or NULL if an error happened (some values
- * not specified in the definition)
- */
-const char* viewport_parse_viewport(struct viewport *vp,
- enum screen_type screen,
- const char *vp_def,
- const char separator);
-
-/*
* Returns a pointer to the current viewport
* - That could be the UI vp, or a viewport passed to do_menu() or the like
*/
@@ -129,4 +111,28 @@ bool viewport_point_within_vp(const struct viewport *vp, int x, int y);
#define viewport_set_current_vp(a)
#define viewport_get_current_vp() NULL
#endif
+
+#endif /* __PCTOOL__ */
+
+#ifdef HAVE_LCD_BITMAP
+
+/*
+ * Parse a viewport definition (vp_def), which looks like:
+ *
+ * Screens with depth > 1:
+ * X|Y|width|height|font|foregorund color|background color
+ * Screens with depth = 1:
+ * X|Y|width|height|font
+ *
+ * | is a separator and can be specified via the parameter
+ *
+ * Returns the pointer to the char after the last character parsed
+ * if everything went OK or NULL if an error happened (some values
+ * not specified in the definition)
+ */
+const char* viewport_parse_viewport(struct viewport *vp,
+ enum screen_type screen,
+ const char *vp_def,
+ const char separator);
+#endif /* HAVE_LCD_BITMAP */
#endif /* __VIEWPORT_H__ */