2012-04-28 19:36:53 +02:00
|
|
|
/****************************************************************************
|
|
|
|
* NxWidgets/nxwm/include/nxwmconfig.hxx
|
|
|
|
*
|
|
|
|
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
|
|
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions
|
|
|
|
* are met:
|
|
|
|
*
|
|
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer in
|
|
|
|
* the documentation and/or other materials provided with the
|
|
|
|
* distribution.
|
|
|
|
* 3. Neither the name NuttX, NxWidgets, nor the names of its contributors
|
|
|
|
* me be used to endorse or promote products derived from this software
|
|
|
|
* without specific prior written permission.
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
|
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
|
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
|
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
|
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
|
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
|
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
|
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
*
|
|
|
|
****************************************************************************/
|
|
|
|
|
2012-04-30 00:10:52 +02:00
|
|
|
#ifndef __INCLUDE_NXWMCONFIG_HXX
|
|
|
|
#define __INCLUDE_NXWMCONFIG_HXX
|
2012-04-28 19:36:53 +02:00
|
|
|
|
|
|
|
/****************************************************************************
|
|
|
|
* Included Files
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
#include <nuttx/config.h>
|
|
|
|
|
|
|
|
#include "nxconfig.hxx"
|
2012-04-30 00:10:52 +02:00
|
|
|
#include "crlepalettebitmap.hxx"
|
2012-04-28 19:36:53 +02:00
|
|
|
|
|
|
|
/****************************************************************************
|
|
|
|
* Pre-Processor Definitions
|
|
|
|
****************************************************************************/
|
2012-04-29 16:34:56 +02:00
|
|
|
/* General Configuration ****************************************************/
|
2012-05-01 22:36:19 +02:00
|
|
|
/**
|
|
|
|
* Required settings:
|
|
|
|
*
|
|
|
|
* CONFIG_HAVE_CXX : C++ support is required
|
|
|
|
* CONFIG_NX : NX must enabled
|
|
|
|
* CONFIG_NX_MULTIUSER=y : NX must be configured in multiuse mode
|
|
|
|
* CONFIG_NXCONSOLE=y : For NxConsole support
|
|
|
|
*
|
|
|
|
* General settings:
|
|
|
|
*
|
|
|
|
* CONFIG_NXWM_DEFAULT_FONTID - the NxWM default font ID. Default:
|
|
|
|
* NXFONT_DEFAULT
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_HAVE_CXX
|
|
|
|
# error "C++ support is required (CONFIG_HAVE_CXX)"
|
|
|
|
#endif
|
|
|
|
|
2012-04-29 16:34:56 +02:00
|
|
|
/**
|
|
|
|
* NX Multi-user support is required
|
|
|
|
*/
|
|
|
|
|
2012-05-01 22:36:19 +02:00
|
|
|
#ifndef CONFIG_NX
|
|
|
|
# error "NX support is required (CONFIG_NX)"
|
|
|
|
#endif
|
|
|
|
|
2012-04-29 16:34:56 +02:00
|
|
|
#ifndef CONFIG_NX_MULTIUSER
|
2012-05-01 22:36:19 +02:00
|
|
|
# error "NX multi-user support is required (CONFIG_NX_MULTIUSER)"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
|
|
* NxConsole support is (probably) required
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXCONSOLE
|
|
|
|
# warning "NxConsole support may be needed (CONFIG_NXCONSOLE)"
|
2012-04-29 16:34:56 +02:00
|
|
|
#endif
|
2012-04-28 19:36:53 +02:00
|
|
|
|
2012-04-29 21:18:24 +02:00
|
|
|
/**
|
|
|
|
* Default font ID
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_DEFAULT_FONTID
|
|
|
|
# define CONFIG_NXWM_DEFAULT_FONTID NXFONT_DEFAULT
|
|
|
|
#endif
|
|
|
|
|
2012-04-29 16:34:56 +02:00
|
|
|
/* Colors *******************************************************************/
|
2012-05-01 22:36:19 +02:00
|
|
|
/**
|
|
|
|
* Color configuration
|
|
|
|
*
|
|
|
|
* CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR - Normal background color. Default:
|
2012-05-02 16:38:54 +02:00
|
|
|
* MKRGB(148,189,215)
|
2012-05-01 22:36:19 +02:00
|
|
|
* CONFIG_NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR - Select background color.
|
2012-05-02 16:38:54 +02:00
|
|
|
* Default: MKRGB(206,227,241)
|
2012-05-01 22:36:19 +02:00
|
|
|
* CONFIG_NXWM_DEFAULT_SHINEEDGECOLOR - Color of the bright edge of a border.
|
|
|
|
* Default: MKRGB(255,255,255)
|
|
|
|
* CONFIG_NXWM_DEFAULT_SHADOWEDGECOLOR - Color of the shadowed edge of a border.
|
|
|
|
* Default: MKRGB(0,0,0)
|
|
|
|
* CONFIG_NXWM_DEFAULT_FONTCOLOR - Default fong color. Default:
|
|
|
|
* MKRGB(0,0,0)
|
|
|
|
* CONFIG_NXWM_TRANSPARENT_COLOR - The "transparent" color. Default:
|
|
|
|
* MKRGB(0,0,0)
|
|
|
|
*/
|
|
|
|
|
2012-04-28 19:36:53 +02:00
|
|
|
/**
|
|
|
|
* Normal background color
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR
|
2012-05-02 16:38:54 +02:00
|
|
|
# define CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR MKRGB(148,189,215)
|
2012-04-28 19:36:53 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Default selected background color
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR
|
2012-05-02 16:38:54 +02:00
|
|
|
# define CONFIG_NXWM_DEFAULT_SELECTEDBACKGROUNDCOLOR MKRGB(206,227,241)
|
2012-04-28 19:36:53 +02:00
|
|
|
#endif
|
|
|
|
|
2012-04-30 22:38:44 +02:00
|
|
|
/**
|
|
|
|
* Border colors
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_DEFAULT_SHINEEDGECOLOR
|
|
|
|
# define CONFIG_NXWM_DEFAULT_SHINEEDGECOLOR MKRGB(248,248,248)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_DEFAULT_SHADOWEDGECOLOR
|
2012-05-04 04:56:02 +02:00
|
|
|
# define CONFIG_NXWM_DEFAULT_SHADOWEDGECOLOR MKRGB(35,58,73)
|
2012-04-30 22:38:44 +02:00
|
|
|
#endif
|
|
|
|
|
2012-04-29 21:18:24 +02:00
|
|
|
/**
|
|
|
|
* The default font color
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_DEFAULT_FONTCOLOR
|
|
|
|
# define CONFIG_NXWM_DEFAULT_FONTCOLOR MKRGB(255,255,255)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The transparent color
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_TRANSPARENT_COLOR
|
|
|
|
# define CONFIG_NXWM_TRANSPARENT_COLOR MKRGB(0,0,0)
|
|
|
|
#endif
|
|
|
|
|
2012-04-29 16:34:56 +02:00
|
|
|
/* Task Bar Configuation ***************************************************/
|
2012-05-01 22:36:19 +02:00
|
|
|
/**
|
|
|
|
* Horizontal and vertical spacing of icons in the task bar.
|
|
|
|
*
|
|
|
|
* CONFIG_NXWM_TASKBAR_VSPACING - Vertical spacing. Default: 2 pixels
|
|
|
|
* CONFIG_NXWM_TASKBAR_HSPACING - Horizontal spacing. Default: 2 rows
|
|
|
|
*
|
|
|
|
* Task bar location. Default is CONFIG_NXWM_TASKBAR_TOP.
|
|
|
|
*
|
|
|
|
* CONFIG_NXWM_TASKBAR_TOP - Task bar is at the top of the display
|
|
|
|
* CONFIG_NXWM_TASKBAR_BOTTOM - Task bar is at the bottom of the display
|
|
|
|
* CONFIG_NXWM_TASKBAR_LEFT - Task bar is on the left side of the display
|
|
|
|
* CONFIG_NXWM_TASKBAR_RIGHT - Task bar is on the right side of the display
|
|
|
|
*
|
|
|
|
* CONFIG_NXWM_TASKBAR_WIDTH - Task bar thickness (either vertical or
|
|
|
|
* horizontal). Default: 25 + 2*spacing
|
|
|
|
*/
|
|
|
|
|
2012-04-30 22:38:44 +02:00
|
|
|
/**
|
|
|
|
* Horizontal and vertical spacing of icons in the task bar.
|
2012-04-29 16:34:56 +02:00
|
|
|
*/
|
|
|
|
|
2012-04-30 22:38:44 +02:00
|
|
|
#ifndef CONFIG_NXWM_TASKBAR_VSPACING
|
|
|
|
# define CONFIG_NXWM_TASKBAR_VSPACING (2)
|
2012-04-29 16:34:56 +02:00
|
|
|
#endif
|
|
|
|
|
2012-04-30 22:38:44 +02:00
|
|
|
#ifndef CONFIG_NXWM_TASKBAR_HSPACING
|
|
|
|
# define CONFIG_NXWM_TASKBAR_HSPACING (2)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Check task bar location
|
|
|
|
*/
|
2012-04-29 16:34:56 +02:00
|
|
|
|
|
|
|
#if defined(CONFIG_NXWM_TASKBAR_TOP)
|
|
|
|
# if defined(CONFIG_NXWM_TASKBAR_BOTTOM) || defined (CONFIG_NXWM_TASKBAR_LEFT) || defined (CONFIG_NXWM_TASKBAR_RIGHT)
|
2012-04-30 03:21:26 +02:00
|
|
|
# warning "Multiple task bar positions specified"
|
2012-04-29 16:34:56 +02:00
|
|
|
# endif
|
|
|
|
#elif defined(CONFIG_NXWM_TASKBAR_BOTTOM)
|
|
|
|
# if defined (CONFIG_NXWM_TASKBAR_LEFT) || defined (CONFIG_NXWM_TASKBAR_RIGHT)
|
2012-04-30 03:21:26 +02:00
|
|
|
# warning "Multiple task bar positions specified"
|
2012-04-29 16:34:56 +02:00
|
|
|
# endif
|
|
|
|
#elif defined(CONFIG_NXWM_TASKBAR_LEFT)
|
2012-05-01 22:36:19 +02:00
|
|
|
# if defined (CONFIG_NXWM_TASKBAR_RIGHT)
|
2012-04-30 03:21:26 +02:00
|
|
|
# warning "Multiple task bar positions specified"
|
2012-04-29 16:34:56 +02:00
|
|
|
# endif
|
|
|
|
#elif !defined(CONFIG_NXWM_TASKBAR_RIGHT)
|
2012-04-30 03:21:26 +02:00
|
|
|
# warning "No task bar position specified"
|
2012-04-29 16:34:56 +02:00
|
|
|
# define CONFIG_NXWM_TASKBAR_TOP 1
|
|
|
|
#endif
|
|
|
|
|
2012-04-30 22:38:44 +02:00
|
|
|
/**
|
2012-05-04 02:55:52 +02:00
|
|
|
* At present, all icons are 25 pixels in "width" and, hence require a
|
2012-04-30 22:38:44 +02:00
|
|
|
* task bar of at least that size.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_TASKBAR_WIDTH
|
|
|
|
# if defined(CONFIG_NXWM_TASKBAR_TOP) || defined(CONFIG_NXWM_TASKBAR_BOTTOM)
|
|
|
|
# define CONFIG_NXWM_TASKBAR_WIDTH (25+2*CONFIG_NXWM_TASKBAR_HSPACING)
|
|
|
|
# else
|
|
|
|
# define CONFIG_NXWM_TASKBAR_WIDTH (25+2*CONFIG_NXWM_TASKBAR_VSPACING)
|
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
2012-05-01 00:51:34 +02:00
|
|
|
/* Tool Bar Configuration ***************************************************/
|
2012-05-01 22:36:19 +02:00
|
|
|
/**
|
|
|
|
* CONFIG_NXWM_TOOLBAR_HEIGHT. The height of the tool bar in each
|
2012-05-04 02:55:52 +02:00
|
|
|
* application window. At present, all icons are 21 pixels in height and,
|
|
|
|
* hence require a task bar of at least that size.
|
2012-05-01 22:36:19 +02:00
|
|
|
*/
|
2012-05-01 00:51:34 +02:00
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_TOOLBAR_HEIGHT
|
2012-05-04 02:55:52 +02:00
|
|
|
# define CONFIG_NXWM_TOOLBAR_HEIGHT (21+2*CONFIG_NXWM_TASKBAR_HSPACING)
|
2012-05-01 00:51:34 +02:00
|
|
|
#endif
|
|
|
|
|
2012-04-30 22:38:44 +02:00
|
|
|
/* Background Image **********************************************************/
|
2012-05-01 22:36:19 +02:00
|
|
|
/**
|
|
|
|
* CONFIG_NXWM_BACKGROUND_IMAGE - The name of the image to use in the
|
|
|
|
* background window. Default:NXWidgets::g_nuttxBitmap
|
|
|
|
*/
|
2012-04-30 22:38:44 +02:00
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_BACKGROUND_IMAGE
|
|
|
|
# define CONFIG_NXWM_BACKGROUND_IMAGE NXWidgets::g_nuttxBitmap
|
|
|
|
#endif
|
|
|
|
|
2012-05-01 00:51:34 +02:00
|
|
|
/* Start Window Configuration ***********************************************/
|
|
|
|
/**
|
|
|
|
* Horizontal and vertical spacing of icons in the task bar.
|
2012-05-01 22:36:19 +02:00
|
|
|
*
|
|
|
|
* CONFIG_NXWM_STARTWINDOW_VSPACING - Vertical spacing. Default: 2 pixels
|
|
|
|
* CONFIG_NXWM_STARTWINDOW_HSPACING - Horizontal spacing. Default: 2 rows
|
2012-05-04 22:48:52 +02:00
|
|
|
* CONFIG_NXWM_STARTWINDOW_ICON - The glyph to use as the start window icon
|
2012-05-01 00:51:34 +02:00
|
|
|
*/
|
2012-04-30 00:10:52 +02:00
|
|
|
|
2012-05-01 00:51:34 +02:00
|
|
|
#ifndef CONFIG_NXWM_STARTWINDOW_VSPACING
|
|
|
|
# define CONFIG_NXWM_STARTWINDOW_VSPACING (2)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_STARTWINDOW_HSPACING
|
|
|
|
# define CONFIG_NXWM_STARTWINDOW_HSPACING (2)
|
2012-04-30 00:10:52 +02:00
|
|
|
#endif
|
|
|
|
|
2012-05-04 22:48:52 +02:00
|
|
|
/**
|
|
|
|
* The start window glyph
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_STARTWINDOW_ICON
|
|
|
|
# define CONFIG_NXWM_STARTWINDOW_ICON NxWM::g_playBitmap
|
|
|
|
#endif
|
|
|
|
|
2012-05-01 16:52:54 +02:00
|
|
|
/* NxConsole Window *********************************************************/
|
2012-05-01 22:36:19 +02:00
|
|
|
/**
|
|
|
|
* NxConsole Window Configuration
|
|
|
|
*
|
|
|
|
* CONFIG_NXWM_NXCONSOLE_PRIO - Priority of the NxConsole task. Default:
|
2012-05-02 01:31:47 +02:00
|
|
|
* SCHED_PRIORITY_DEFAULT. NOTE: This priority should be less than
|
|
|
|
* CONFIG_NXWIDGETS_SERVERPRIO or else there may be data overrun errors.
|
|
|
|
* Such errors would most likely appear as duplicated rows of data on the
|
|
|
|
* display.
|
2012-05-01 22:36:19 +02:00
|
|
|
* CONFIG_NXWM_NXCONSOLE_STACKSIZE - The stack size to use when starting the
|
|
|
|
* NxConsole task. Default: 2048 bytes.
|
|
|
|
* CONFIG_NXWM_NXCONSOLE_WCOLOR - The color of the NxConsole window background.
|
|
|
|
* Default: MKRGB(192,192,192)
|
|
|
|
* CONFIG_NXWM_NXCONSOLE_FONTCOLOR - The color of the fonts to use in the
|
|
|
|
* NxConsole window. Default: MKRGB(0,0,0)
|
|
|
|
* CONFIG_NXWM_NXCONSOLE_FONTID - The ID of the font to use in the NxConsole
|
|
|
|
* window. Default: CONFIG_NXWM_DEFAULT_FONTID
|
2012-05-04 22:48:52 +02:00
|
|
|
* CONFIG_NXWM_NXCONSOLE_ICON - The glyph to use as the NxConsole icon
|
2012-05-01 22:36:19 +02:00
|
|
|
*/
|
2012-05-01 16:52:54 +02:00
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_NXCONSOLE_PRIO
|
|
|
|
# define CONFIG_NXWM_NXCONSOLE_PRIO SCHED_PRIORITY_DEFAULT
|
|
|
|
#endif
|
|
|
|
|
2012-05-02 01:31:47 +02:00
|
|
|
#if CONFIG_NXWIDGETS_SERVERPRIO <= CONFIG_NXWM_NXCONSOLE_PRIO
|
|
|
|
# warning "CONFIG_NXWIDGETS_SERVERPRIO <= CONFIG_NXWM_NXCONSOLE_PRIO"
|
|
|
|
# warning" -- This can result in data overrun errors"
|
|
|
|
#endif
|
|
|
|
|
2012-05-01 16:52:54 +02:00
|
|
|
#ifndef CONFIG_NXWM_NXCONSOLE_STACKSIZE
|
|
|
|
# define CONFIG_NXWM_NXCONSOLE_STACKSIZE 2048
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_NXCONSOLE_WCOLOR
|
2012-05-04 04:56:02 +02:00
|
|
|
# define CONFIG_NXWM_NXCONSOLE_WCOLOR CONFIG_NXWM_DEFAULT_BACKGROUNDCOLOR
|
2012-05-01 16:52:54 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_NXCONSOLE_FONTCOLOR
|
2012-05-04 04:56:02 +02:00
|
|
|
# define CONFIG_NXWM_NXCONSOLE_FONTCOLOR CONFIG_NXWM_DEFAULT_FONTCOLOR
|
2012-05-01 16:52:54 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_NXCONSOLE_FONTID
|
|
|
|
# define CONFIG_NXWM_NXCONSOLE_FONTID CONFIG_NXWM_DEFAULT_FONTID
|
|
|
|
#endif
|
|
|
|
|
2012-05-04 22:48:52 +02:00
|
|
|
/**
|
|
|
|
* The NxConsole window glyph
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_NXWM_NXCONSOLE_ICON
|
|
|
|
# define CONFIG_NXWM_NXCONSOLE_ICON NxWM::g_cmdBitmap
|
|
|
|
#endif
|
|
|
|
|
2012-05-03 21:46:37 +02:00
|
|
|
/****************************************************************************
|
|
|
|
* Global Function Prototypes
|
|
|
|
****************************************************************************/
|
|
|
|
/**
|
|
|
|
* Hook to support monitoring of memory usage by the NxWM unit test.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef CONFIG_NXWM_UNITTEST
|
|
|
|
# ifdef CONFIG_HAVE_FILENAME
|
|
|
|
void _showTestStepMemory(FAR const char *file, int line, FAR const char *msg);
|
|
|
|
# define showTestStepMemory(msg) \
|
|
|
|
_showTestStepMemory((FAR const char*)__FILE__, (int)__LINE__, msg)
|
|
|
|
# else
|
|
|
|
void showTestStepMemory(FAR const char *msg);
|
|
|
|
# endif
|
|
|
|
#else
|
|
|
|
# define showTestStepMemory(msg)
|
|
|
|
#endif
|
|
|
|
|
2012-04-30 00:10:52 +02:00
|
|
|
#endif // __INCLUDE_NXWMCONFIG_HXX
|