--- /dev/null
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction. Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License. This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2010 Develer S.r.l. (http://www.develer.com/)
+ * All Rights Reserved.
+ * -->
+ *
+ * \brief Configuration file for Menu module.
+ *
+ * \author Daniele Basile <asterix@develer.com>
+ */
+
+#ifndef CFG_MENU_H
+#define CFG_MENU_H
+
+/**
+ * Enable button bar behind menus
+ * $WIZ$ type = "boolean"
+ */
+#define CONFIG_MENU_MENUBAR 0
+
+/**
+ * Level Edit Timeout
+ * $WIZ$ type = "boolean"
+ */
+#define CONFIG_LEVELEDIT_TIMEOUT 0
+
+/**
+ * Menu timeout
+ * $WIZ$ type = "boolean"
+ */
+#define CONFIG_MENU_TIMEOUT 0
+
+/**
+ * Enable smooth scrolling in menus
+ * $WIZ$ type = "boolean"
+ */
+#define CONFIG_MENU_SMOOTH 1
+
+
+#endif /* CFG_MENU_H */
+
#include "menu.h"
-#include "cfg/cfg_gfx.h"
+#include "cfg/cfg_menu.h"
#include "cfg/cfg_arch.h"
+
#include <cfg/compiler.h>
#include <cfg/debug.h>
#include <avr/pgmspace.h> /* strncpy_P() */
#endif
-#if CONFIG_MENU_SMOOTH
-#include <drv/lcd_gfx.h>
-#endif
-
#if (CONFIG_MENU_TIMEOUT != 0)
#include <drv/timer.h>
#endif
ypos = bm->cr.ymin;
-#if 1
if (redraw)
{
/* Clear screen */
text_clear(menu->bitmap);
}
-#endif
if (title)
{
/* Clear rest of area */
gfx_rectClear(bm, bm->cr.xmin, ypos, bm->cr.xmax, bm->cr.ymax);
- lcd_blitBitmap(bm);
+ menu->lcd_blitBitmap(bm);
}
/* Restore old cliprect */
#include <cfg/compiler.h>
-/* Fwd decl */
-struct Bitmap;
+#include <gfx/gfx.h>
/** Menu callback function */
typedef iptr_t (*MenuHook)(iptr_t userdata);
+typedef void (*BlitBitmap)(const Bitmap *bm);
/**
* Menu item description.
int flags; /**< See MF_#? definitions below */
struct Bitmap *bitmap; /**< Bitmap where the menu is rendered */
int selected; /**< Initial selection (written to if MF_SAVESEL is set). */
+ BlitBitmap lcd_blitBitmap; /**< Callback to call to do smooth the display */
} Menu;
/**