Compare commits

..
39 Commits
Author SHA1 Message Date
Vincent Wei 6d287f72e3 change default exdriver for DRM engine: libhidrmdrivers-0.2.so.0 2020-03-27 16:46:20 +08:00
Vincent Wei bbac3b1796 fix compilation errors 2020-03-27 16:44:14 +08:00
Vincent Wei e25fbb39d0 for clients under MiniGUI-Processes, use the video information in shared resource segment to initialize the video 2020-03-27 16:28:30 +08:00
Vincent Wei 1b42c853ba change version to 4.0.7 2020-03-25 15:32:27 +08:00
Vincent Wei a932bc798e call EmptyClipRgn for the temporary clipping region 2020-03-25 15:32:16 +08:00
Vincent Wei 713fd0ccb8 reset olddownkey to zero when got a KEYUP event 2020-03-25 15:31:49 +08:00
Vincent Wei 1a63b30d32 use 0x01UL for shift 2020-03-25 15:31:31 +08:00
Vincent Wei 7ba6246dd1 fix typos 2020-03-25 15:31:14 +08:00
Vincent Wei 190b2fea97 release notes for 4.0.7 2020-03-22 13:21:56 +08:00
Vincent Wei f2c2c28e62 map hardware surface as scanout framebuffer for clients 2020-03-22 13:10:22 +08:00
Vincent Wei 837f2987fd remove conditional compilation for request ids 2020-03-22 13:09:42 +08:00
Vincent Wei 7de60f2b94 tune for call JoinLayer first 2020-03-22 13:09:18 +08:00
Vincent Wei 018340f42e check whether using external driver before calling flush_driver 2020-03-22 12:48:04 +08:00
Vincent Wei d4b226d2a5 fix a compilation error 2020-03-21 22:04:33 +08:00
Vincent Wei 699a68a9ac tune constant macros 2020-03-21 21:59:12 +08:00
Vincent Wei 5a6705d8bc copy chagnes from 5.0.0 to enhance DRM engine to support PROCS runmode 2020-03-21 21:30:31 +08:00
Vincent Wei e7cc2f1e35 change version to 4.0.7; DRM engine now support procs runmode 2020-03-21 21:29:44 +08:00
Vincent Wei 03b1dd9042 change version to 4.0.6 2020-03-12 11:16:59 +08:00
Vincent Wei 7651fbda35 handling mdev in INPUT structure 2020-03-12 11:15:59 +08:00
Vincent Wei 6927a22507 cleanup 2020-03-12 11:15:31 +08:00
Vincent Wei c640565f3b fix conditional compilation errors. 2020-03-12 11:15:17 +08:00
Vincent Wei c720b2a9ca Handle middle mouse button in Standalone and Processes runtime modes. 2020-03-12 11:14:40 +08:00
Vincent Wei 8b24b1243b bugfixing: Bad checking pci_accel_driver in FBCON engine 2020-03-12 11:14:04 +08:00
Vincent Wei d8b2895527 bugfixing: Bad checking cursor width and height in LoadCursorFromMem 2020-03-12 11:13:39 +08:00
Vincent Wei 2a4ead5e0f Call ThrowAwayMessages when failed to create a main window. 2020-03-12 11:13:20 +08:00
Vincent Wei 6f15548dc4 bugfixing: Bad handling of backspace character in SLEdit control. 2020-03-12 11:12:58 +08:00
Vincent Wei ef9048c582 restore mdev field in INPUT structure 2020-03-12 11:12:21 +08:00
Vincent Wei da15a1dbd5 change version to 4.0.6; make fbcon, console, imps2, textmode enabled by default 2020-03-12 11:11:55 +08:00
Vincent Wei 32aad95e7b notes for version 4.0.6 2020-03-12 11:10:27 +08:00
Vincent Wei 57bdcd4754 use get_sem_key_for_layers 2020-01-22 17:03:42 +08:00
Vincent Wei b95538a415 use a small static buffer for zero size surface 2020-01-22 17:03:19 +08:00
Vincent Wei fa7c84b2b5 enhance to delete old IPC objects 2020-01-22 17:02:57 +08:00
Vincent Wei bc77048488 make lock_zi_for_xxx/unlock_zi_for_xxx static inline 2020-01-22 17:02:22 +08:00
Vincent Wei 2f21b22a49 make lock_zi_for_xxx/unlock_zi_for_xxx static inline 2020-01-22 17:02:12 +08:00
Vincent Wei ec91986854 add inline functions for get shm/sem key for system/layer 2020-01-22 17:01:42 +08:00
Vincent Wei e7b03037be notes for 4.0.5 2020-01-22 17:01:02 +08:00
Vincent Wei 9ff822c7fd change version to 4.0.5 2020-01-03 14:45:12 +08:00
Vincent Wei 239924c63e BUGFIXING: always initialize csr_bmp fields with explicit assignments 2020-01-03 14:38:28 +08:00
Vincent Wei 2f85645e9d change version to 4.0.4 2020-01-03 14:37:50 +08:00
1039 changed files with 487898 additions and 502853 deletions
+50793 -50793
View File
File diff suppressed because it is too large Load Diff
+196 -196
View File
@@ -1,89 +1,89 @@
/*
* Copyright (C) 2000-2007 Beijing Komoxo Inc.
* All rights reserved.
*/
/*
* Copyright (C) 2000-2007 Beijing Komoxo Inc.
* All rights reserved.
*/
#include "se_minigui.h"
#include "se_minigui.h"
#include "stdio.h"
#include "string.h"
#include "kmx_latin1_ttf.h"
#include "kmx_latin1_ttf.h"
#include "fzxh_gb2312_ttf.h"
#include "fzxh_gb18030_1_ttf_stub.h"
#include "fzxh_gb18030_2_ttf_stub.h"
#define ASSERT(a)
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
#define MAX_PATH 256
#define MAX_LOGICAL_FONT_SIZE 16 /* Physical font count per logical font */
#endif
#define MAX_LOGICAL_TABLE_SIZE 256
/* Script Easy font description data definition */
static void* font_table[] =
{
(void*) &kmx_latin1_ttf, 0,
(void*) &fzxh_gb2312_ttf, 0,
#define ASSERT(a)
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
#define MAX_PATH 256
#define MAX_LOGICAL_FONT_SIZE 16 /* Physical font count per logical font */
#endif
#define MAX_LOGICAL_TABLE_SIZE 256
/* Script Easy font description data definition */
static void* font_table[] =
{
(void*) &kmx_latin1_ttf, 0,
(void*) &fzxh_gb2312_ttf, 0,
(void*) &fzxh_gb18030_1_ttf, 0,
(void*) &fzxh_gb18030_2_ttf, 0,
0
};
#define FONT_TABLE_SIZE ((sizeof(font_table) / sizeof(void*) - 1) / 2)
static unsigned char logical_font_table_config[][MAX_LOGICAL_FONT_SIZE] =
{
{4, 0, 1, 2, 3}
};
#define LOGICAL_FONT_TABLE_SIZE (sizeof(logical_font_table_config) / (MAX_LOGICAL_FONT_SIZE * sizeof(unsigned char)))
#define DEFAULT_LOGICAL_FONT_INDEX 0
static unsigned char logical_font_table[MAX_LOGICAL_TABLE_SIZE];
0
};
#define FONT_TABLE_SIZE ((sizeof(font_table) / sizeof(void*) - 1) / 2)
static unsigned char logical_font_table_config[][MAX_LOGICAL_FONT_SIZE] =
{
{4, 0, 1, 2, 3}
};
#define LOGICAL_FONT_TABLE_SIZE (sizeof(logical_font_table_config) / (MAX_LOGICAL_FONT_SIZE * sizeof(unsigned char)))
#define DEFAULT_LOGICAL_FONT_INDEX 0
static unsigned char logical_font_table[MAX_LOGICAL_TABLE_SIZE];
static unsigned int logical_font_table_index_map[LOGICAL_FONT_TABLE_SIZE];
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
static const
struct {
const char *font_name;
int logical_font_index;
}
font_name_config[] =
{
{0, 0},
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
static const
struct {
const char *font_name;
int logical_font_index;
}
font_name_config[] =
{
{0, 0},
{0, 0},
{"fzxh_gb18030_1_ttf.le", 0},
{"fzxh_gb18030_2_ttf.le", 0},
};
#endif /* #ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT */
{"fzxh_gb18030_2_ttf.le", 0},
};
#endif /* #ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT */
static const se_font_name_map font_name_map[] = {
/* iso8859-1 */
{"ttf-fzxh-rrncnn-0-0-iso8859-1", 0},
{"ttf-fzxh-rrncnn-0-0-iso8859-1", 0},
/* GB2312 */
{"ttf-fzxh-rrncnn-0-0-GB2312", 0},
/* utf-8 */
{"ttf-fzxh-rrncnn-0-0-utf-8", 0},
};
{"ttf-fzxh-rrncnn-0-0-utf-8", 0},
};
#define FONT_NAME_MAP_SIZE (sizeof(font_name_map) / sizeof(se_font_name_map))
const se_font_description se_font_desc = {
const se_font_description se_font_desc = {
FONT_TABLE_SIZE,
FONT_NAME_MAP_SIZE,
(const se_font_name_map*)font_name_map,
(const void **)font_table,
logical_font_table
FONT_NAME_MAP_SIZE,
(const se_font_name_map*)font_name_map,
(const void **)font_table,
logical_font_table
};
/* The following is the scripteasy mem pool definition */
#define SE_MEM_POOL_SIZE (64 * 1024)
#define SE_MEM_POOL_SIZE (64 * 1024)
#define SE_CACHE_MEM_POOL_SIZE (256 * 1024)
int se_minigui_mem_pool[SE_MEM_POOL_SIZE];
@@ -92,139 +92,139 @@ int se_minigui_cache_mem_pool[SE_CACHE_MEM_POOL_SIZE];
int se_minigui_cache_mem_pool_size = SE_CACHE_MEM_POOL_SIZE * sizeof(int);
/* The Following is for initializing font */
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
static const char * se_minigui_get_font_dir(void)
{
/* TO BE CUSTOMIZED */
static char font_dir[MAX_PATH + 1] = "/usr/minigui/se_new/minigui/src/fonts/";
return font_dir;
}
static FILE* se_minigui_open_font_file(const char *name)
{
static char path[MAX_PATH + 1];
const char *font_dir;
FILE *handle = 0;
font_dir = se_minigui_get_font_dir();
if(!font_dir)
{
return 0;
}
strcpy(path, font_dir);
strcat(path, name);
handle = fopen(path, "rb");
return handle;
}
unsigned int se_minigui_read_font(
void* name,
void* buffer,
unsigned int offset,
unsigned int size)
{
FILE* handle = (FILE*) name;
unsigned int read = 0;
int result = 0;
if(!handle)
return 0;
fseek(handle, offset, SEEK_SET);
printf("In se_minigui_read_font...\n");
return fread(buffer, 1, size, handle);
}
#endif /* #ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT */
static int append_logical_font(int pos, const unsigned char *logical_font)
{
memcpy (logical_font_table + pos, logical_font, logical_font[0] + 1);
return logical_font[0] + 1;
}
static void build_logical_font_table (void)
{
unsigned int i = 0;
int pos = 0;
for (; i < LOGICAL_FONT_TABLE_SIZE; ++i)
{
pos += append_logical_font (pos, logical_font_table_config[logical_font_table_index_map[i]]);
}
logical_font_table[pos] = (unsigned char) 0;
}
static void init_logical_font_map(void)
{
unsigned int i = 0;
for (; i < LOGICAL_FONT_TABLE_SIZE; ++i)
{
logical_font_table_index_map[i] = i;
}
}
void se_minigui_destroy_fonts(void)
{
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
int i = 0;
for(; i < FONT_TABLE_SIZE; ++i)
{
if(font_table[i * 2 + 1])
{
fclose((FILE*) font_table[i * 2 + 1]);
font_table[i * 2 + 1] = 0;
}
}
#endif
}
void se_minigui_init_fonts(void)
{
int i = 0;
int pos = 0;
ASSERT (DEFAULT_LOGICAL_FONT_INDEX >= 0 &&
DEFAULT_LOGICAL_FONT_INDEX < LOGICAL_FONT_TABLE_SIZE);
se_minigui_destroy_fonts();
init_logical_font_map();
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
for(; i < FONT_TABLE_SIZE; ++i)
{
if(font_name_config[i].font_name)
{
FILE* handle;
handle = se_minigui_open_font_file(font_name_config[i].font_name);
ASSERT (font_table[i * 2 + 1] == 0);
if (handle)
{
font_table[i * 2 + 1] = (void*)handle;
}
else
{
ASSERT (font_name_config[i].logical_font_index >= 0 &&
font_name_config[i].logical_font_index < LOGICAL_FONT_TABLE_SIZE);
ASSERT (logical_font_table_index_map[font_name_config[i].logical_font_index] == font_name_config[i].logical_font_index);
logical_font_table_index_map[font_name_config[i].logical_font_index] = DEFAULT_LOGICAL_FONT_INDEX;
}
}
}
#endif
build_logical_font_table();
}
/* The Following is for initializing font */
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
static const char * se_minigui_get_font_dir(void)
{
/* TO BE CUSTOMIZED */
static char font_dir[MAX_PATH + 1] = "/usr/minigui/se_new/minigui/src/fonts/";
return font_dir;
}
static FILE* se_minigui_open_font_file(const char *name)
{
static char path[MAX_PATH + 1];
const char *font_dir;
FILE *handle = 0;
font_dir = se_minigui_get_font_dir();
if(!font_dir)
{
return 0;
}
strcpy(path, font_dir);
strcat(path, name);
handle = fopen(path, "rb");
return handle;
}
unsigned int se_minigui_read_font(
void* name,
void* buffer,
unsigned int offset,
unsigned int size)
{
FILE* handle = (FILE*) name;
unsigned int read = 0;
int result = 0;
if(!handle)
return 0;
fseek(handle, offset, SEEK_SET);
printf("In se_minigui_read_font...\n");
return fread(buffer, 1, size, handle);
}
#endif /* #ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT */
static int append_logical_font(int pos, const unsigned char *logical_font)
{
memcpy (logical_font_table + pos, logical_font, logical_font[0] + 1);
return logical_font[0] + 1;
}
static void build_logical_font_table (void)
{
unsigned int i = 0;
int pos = 0;
for (; i < LOGICAL_FONT_TABLE_SIZE; ++i)
{
pos += append_logical_font (pos, logical_font_table_config[logical_font_table_index_map[i]]);
}
logical_font_table[pos] = (unsigned char) 0;
}
static void init_logical_font_map(void)
{
unsigned int i = 0;
for (; i < LOGICAL_FONT_TABLE_SIZE; ++i)
{
logical_font_table_index_map[i] = i;
}
}
void se_minigui_destroy_fonts(void)
{
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
int i = 0;
for(; i < FONT_TABLE_SIZE; ++i)
{
if(font_table[i * 2 + 1])
{
fclose((FILE*) font_table[i * 2 + 1]);
font_table[i * 2 + 1] = 0;
}
}
#endif
}
void se_minigui_init_fonts(void)
{
int i = 0;
int pos = 0;
ASSERT (DEFAULT_LOGICAL_FONT_INDEX >= 0 &&
DEFAULT_LOGICAL_FONT_INDEX < LOGICAL_FONT_TABLE_SIZE);
se_minigui_destroy_fonts();
init_logical_font_map();
#ifdef SE_FONT_DYNAMIC_LOADING_SUPPORT
for(; i < FONT_TABLE_SIZE; ++i)
{
if(font_name_config[i].font_name)
{
FILE* handle;
handle = se_minigui_open_font_file(font_name_config[i].font_name);
ASSERT (font_table[i * 2 + 1] == 0);
if (handle)
{
font_table[i * 2 + 1] = (void*)handle;
}
else
{
ASSERT (font_name_config[i].logical_font_index >= 0 &&
font_name_config[i].logical_font_index < LOGICAL_FONT_TABLE_SIZE);
ASSERT (logical_font_table_index_map[font_name_config[i].logical_font_index] == font_name_config[i].logical_font_index);
logical_font_table_index_map[font_name_config[i].logical_font_index] = DEFAULT_LOGICAL_FONT_INDEX;
}
}
}
#endif
build_logical_font_table();
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+99451 -99451
View File
File diff suppressed because it is too large Load Diff
+99017 -99017
View File
File diff suppressed because it is too large Load Diff
+10509 -10509
View File
File diff suppressed because it is too large Load Diff
+16 -16
View File
@@ -1,4 +1,4 @@
/*
/*
** $Id: sample.c,v 1.38 2009-01-15 07:56:45 houhuihua Exp $
**
** sample.c: Sample program for komoxo scripteasy font.
@@ -35,7 +35,7 @@ static void make_welcome_text (void)
SetRect (&welcome_rc, 10, 20, g_rcScr.right - 10, g_rcScr.bottom / 1.5 - 10);
SetRect (&msg_rc, 10, welcome_rc.bottom + 10, g_rcScr.right - 10, g_rcScr.bottom - 20);
if (strcmp (sys_charset, FONT_CHARSET_GB2312_0) == 0
if (strcmp (sys_charset, FONT_CHARSET_GB2312_0) == 0
|| strcmp (sys_charset, FONT_CHARSET_GBK) == 0) {
format = "昨天,市工商局局长张志宽在市工商局工作会上透露,本市工商系统今年将推出一系列促进经济发展、保护消费者权益的监管措施。其中,将会把B2B交易平台中的网店、专业门户网站和综合门户网站中的经营主体纳入监控,重点监控网上传销、无照经营、售假和网上欺诈等4种行为。张志宽说,2008年网上违法情况主要表现在虚假宣传、网上欺诈、销售假冒产品等。针对这些违法行为,今年本市将把B2B交易平台上的网店、专业门户网站和综合门户网站中的经营主体信息,全部纳入监控。其中,网上传销、无照经营、销售假冒伪劣商品和网上欺诈等4种行为,将成为打击的重点,工商将研究推出新的监管手段。据了解,目前国务院已经将网上交易监管交由国家工重点打击无照经营商总局负责,工商总局正在研究监管意见。本市工商局将根据工商总局的监管意见,相应地完善监管制度。\
\nA proprietary protocol VOIP system built using Peer-to-peer (P2P) techniques.Free for non commercial use when using softphones (PC to PC).Offers toll access to PSTN via SkypeOut and SkypeIn.\nFrom the company that created KaZaA Licenses the Global IP Sound VoiceEngine suite of codecs and related software including their wideband codecs (double the width of regular pstn.) If you find yourself asking, 'why does Skype sound so good?', the answer is primarily this wideband ability.";
@@ -88,12 +88,12 @@ static int HelloWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
break;
case MSG_TIMER:
sprintf (msg_text, "Timer expired, current tick count: %ul.",
sprintf (msg_text, "Timer expired, current tick count: %ul.",
GetTickCount ());
//InvalidateRect (hWnd, &msg_rc, TRUE);
InvalidateRect (hWnd, NULL, TRUE);
break;
case MSG_LBUTTONDOWN:
strcpy (msg_text, "The left button pressed.");
InvalidateRect (hWnd, &msg_rc, TRUE);
@@ -119,23 +119,23 @@ static int HelloWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
PLOGFONT logfont;
PLOGFONT bklogfont;
#ifdef UTF_8
logfont = CreateLogFont("sef",
"fzxhgb_yh",
"UTF-8",
logfont = CreateLogFont("sef",
"fzxhgb_yh",
"UTF-8",
FONT_WEIGHT_BOOK,
FONT_SLANT_ROMAN,
0,
FONT_SLANT_ROMAN,
0,
0,
FONT_UNDERLINE_NONE,
FONT_STRUCKOUT_NONE,
16, 0);
#else
logfont = CreateLogFont("sef",
"fzxhgb_yh",
logfont = CreateLogFont("sef",
"fzxhgb_yh",
"GB2312",
FONT_WEIGHT_BOOK,
FONT_SLANT_ROMAN,
0,
FONT_SLANT_ROMAN,
0,
0,
FONT_UNDERLINE_NONE,
FONT_STRUCKOUT_NONE,
@@ -166,7 +166,7 @@ static int HelloWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
last_key = wParam;
last_key_count = 1;
}
sprintf (msg_text, "The %d %skey pressed %d times",
sprintf (msg_text, "The %d %skey pressed %d times",
wParam, syskey, last_key_count);
InvalidateRect (hWnd, &msg_rc, TRUE);
return 0;
@@ -210,9 +210,9 @@ int MiniGUIMain (int argc, const char* argv[])
CreateInfo.iBkColor = COLOR_lightwhite;
CreateInfo.dwAddData = 0;
CreateInfo.hHosting = HWND_DESKTOP;
hMainWnd = CreateMainWindow (&CreateInfo);
if (hMainWnd == HWND_INVALID)
return -1;
+341 -341
View File
File diff suppressed because it is too large Load Diff
+2 -4
View File
@@ -38,7 +38,7 @@ PROJECT_NAME = "MiniGUI API Reference (MiniGUI-Processes)"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = v5.0.0
PROJECT_NUMBER = v4.0.7
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@@ -58,7 +58,7 @@ PROJECT_LOGO =
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
OUTPUT_DIRECTORY = doc-api-ref-minigui-procs-5.0.0
OUTPUT_DIRECTORY = doc-api-ref-minigui-procs-4.0.7
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
@@ -2102,8 +2102,6 @@ PREDEFINED = _MGRM_PROCESSES \
_MGFONT_FT2 \
_MGFONT_UPF \
_MGFONT_BMPF \
_MGSCHEMA_COMPOSITING \
_MGHAVE_VIRTUAL_WINDOW \
_MGGAL_DRM \
_MGGAL_COMMLCD \
_MGIAL_COMM
+2 -3
View File
@@ -38,7 +38,7 @@ PROJECT_NAME = "MiniGUI API Reference (MiniGUI-Standalone)"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = v5.0.0
PROJECT_NUMBER = v4.0.7
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@@ -58,7 +58,7 @@ PROJECT_LOGO =
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
OUTPUT_DIRECTORY = doc-api-ref-minigui-sa-5.0.0
OUTPUT_DIRECTORY = doc-api-ref-minigui-sa-4.0.7
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
@@ -2102,7 +2102,6 @@ PREDEFINED = _MGRM_STANDALONE \
_MGFONT_FT2 \
_MGFONT_UPF \
_MGFONT_BMPF \
_MGHAVE_VIRTUAL_WINDOW \
_MGGAL_DRM \
_MGGAL_COMMLCD \
_MGIAL_COMM
+2 -3
View File
@@ -38,7 +38,7 @@ PROJECT_NAME = "MiniGUI API Reference (MiniGUI-Threads)"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = v5.0.0
PROJECT_NUMBER = v4.0.7
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@@ -58,7 +58,7 @@ PROJECT_LOGO =
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
OUTPUT_DIRECTORY = doc-api-ref-minigui-ths-5.0.0
OUTPUT_DIRECTORY = doc-api-ref-minigui-ths-4.0.7
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
@@ -2102,7 +2102,6 @@ PREDEFINED = _MGRM_THREADS \
_MGFONT_FT2 \
_MGFONT_UPF \
_MGFONT_BMPF \
_MGHAVE_VIRTUAL_WINDOW \
_MGGAL_DRM \
_MGGAL_COMMLCD \
_MGIAL_COMM
+2 -2
View File
@@ -1,6 +1,6 @@
MAJOR_VERSION = 4
MINOR_VERSION = 1
MICRO_VERSION = 0
MINOR_VERSION = 0
MICRO_VERSION = 4
EXTRAVERSION =
MINIGUI_RELEASE=$(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)$(EXTRAVERSION)
+20 -151
View File
@@ -7,22 +7,17 @@ A mature and proven cross-platform GUI system for embedded and smart IoT devices
- [INTRODUCTION](#introduction)
- [A BRIEF BUILDING INSTRUCTION](#a-brief-building-instruction)
+ [Prerequisites](#prerequisites)
+ [Building MiniGUI Core](#building-minigui-core)
+ [Building whole MiniGUI](#building-whole-minigui)
+ [Unit Tests](#unit-tests)
- [NEW FEATURES IN VERSION 5.0.x](#new-features-in-version-50x)
+ [Compositing schema](#compositing-schema)
+ [New main window types](#new-main-window-types)
+ [Virtual window](#virtual-window)
+ [Other enhancements](#other-enhancements)
* [Prerequisites](#prerequisites)
* [Building MiniGUI Core](#building-minigui-core)
* [Building the Comprehensive Demo](#building-the-comprehensive-demo)
* [Unit Tests](#unit-tests)
- [NEW FEATURES IN VERSION 4.0.x](#new-features-in-version-40x)
- [NEW FEATURES IN VERSION 3.2.x](#new-features-in-version-32x)
- [THE RUNTIME MODES OF MINIGUI](#the-runtime-modes-of-minigui)
- [HISTORY](#history)
- [AUTHORS AND COPYING](#authors-and-copying)
+ [Special Statement](#special-statement)
+ [Not Free for Commercial Use](#not-free-for-commercial-use)
* [Not Free for Commercial Use](#not-free-for-commercial-use)
* [Special Statement](#special-statement)
- [A LITTLE FAQ](#a-little-faq)
@@ -30,7 +25,7 @@ A mature and proven cross-platform GUI system for embedded and smart IoT devices
MiniGUI is a mature cross-platform windowing system and a GUI (Graphics
User Interface) support system for embedded systems and smart IoT devices.
This is the version 5.0.x of MiniGUI maintained by WEI Yongming.
This is the version 4.0.x of MiniGUI maintained by WEI Yongming.
MiniGUI is released under GPLv3 and the dual-licensing applies to commercial
use.
@@ -41,10 +36,10 @@ embedded systems or smart IoT devices based-on Linux/uClinux, eCos, and other
traditional RTOSes, such as RT-Thread, FreeRTOS, RTEMS, VxWorks, ThreadX,
Nucleus, pSOS, uC/OS-II, and OSE.
This is the source tree of MiniGUI Core, which provides windowing
This is the MiniGUI core source tree, which provides windowing
and graphics interfaces as well as a lot of standard controls (toolkit).
Besides MiniGUI Core, FMSoft also provides some components
Besides MiniGUI core, FMSoft also provides some components
for the developers to develop app much easier:
* mGUtils: A MiniGUI component which contains miscellaneous utilities
@@ -96,7 +91,7 @@ for examples:
* mEagle, licensed under GPL 3.0, is an embedded GIS development platform
which addresses the needs of map browse, query, analysis, etc
FMSoft had created the public repositories for MiniGUI Core, MiniGUI
FMSoft had created the public repositories for MiniGUI core, MiniGUI
components, and other open source apps on GitHub. You can visit them on:
<https://github.com/VincentWei>
@@ -127,7 +122,7 @@ on your Ubuntu Linux.
### Building MiniGUI Core
MiniGUI Core uses GNU autoconf/automake scripts to configure and build the project.
MiniGUI core uses GNU autoconf/automake scripts to configure and build the project.
Run
@@ -140,21 +135,17 @@ to configure, make, and install the headers and the libraries. If there is not
to generate the script.
MiniGUI Core also provides some configuration options to customize the features.
MiniGUI core also provides some configuration options to customize the features.
For more information, please run
$ ./configure --help
### Building whole MiniGUI
### Building the Comprehensive Demo
If you are anxious to see the comprehensive demo of MiniGUI Core
If you are anxious to see the comprehensive demo of MiniGUI core
and MiniGUI components, please fetch one of the following repositories
from GitHub and follow the instructions to build MiniGUI Core,
MiniGUI components, the samples, and the demonstration programs:
<https://github.com/VincentWei/build-minigui-5.0>
or
from GitHub and follow the instructions to build the samples and
the demonstration programs:
<https://github.com/VincentWei/build-minigui-4.0>
@@ -162,6 +153,7 @@ or
<https://github.com/VincentWei/build-minigui-3.2>
### Unit Tests
Since MiniGUI 4.0.0, we organize the unit test code of MiniGUI APIs in the
@@ -172,125 +164,6 @@ following repository:
If you are interested in hacking the MiniGUI code, please visit this repository.
## NEW FEATURES IN VERSION 5.0.x
In version 5.0.0, we introduced some new and exciting features, and refactored
a lot basic modules of MiniGUI Core.
### Compositing schema
In this version, we enhanced the MiniGUI-Processes runtime mode to support
the compositing schema. Under compositing schema, regardless a main window
is created by the server (`mginit`) or a client, it renders the content in
a separate rendering buffer, and the server composites the contents from
all visible main windows to the ultimate scan-out frame buffer according to
the z-order information.
On the contrary, the legacy schema of MiniGUI-Processes uses the same
frame buffer for all processes (and all main windows) in the system.
So the legacy schema is also called the shared frame buffer schema.
By enabling the compositing schema, MiniGUI now can provide a better
implementation for multi-process environment:
- Easy to implement advanced user interfaces with rounded corners,
alpha blending, blurring, and so on.
- Easy to implement animations for switching among main windows.
- Better security. One client created by different user cannot
read/write contents in/to another windows owned by other clients.
### New main window types
In this version, we also enhanced the window manager of MiniGUI Core
to support some special main window types.
Before 5.0.0, you can create a topmost main window with the style
`WS_EX_TOPMOST` in order to show the main window above all normal main windows,
and if you use MiniGUI-Processes runtime mode, the server (`mginit`) will
always create global main windows, which are shown on other main windows
created by clients.
Since 5.0.0, we introduce a concept of z-order levels for main windows.
There are eight levels in MiniGUI from top to bottom:
- The tooltip level (`WS_EX_WINTYPE_TOOLTIP`).
- The system/global level (`WS_EX_WINTYPE_GLOBAL`).
- The screen lock level (`WS_EX_WINTYPE_SCREENLOCK`).
- The docker level (`WS_EX_WINTYPE_DOCKER`).
- The higher level (`WS_EX_WINTYPE_HIGHER`).
- The normal level (`WS_EX_WINTYPE_NORMAL`).
- The launcher level (`WS_EX_WINTYPE_LAUNCHER`).
- The desktop or wallpaper.
This enhancement allows us to create a special app which acts as
screen lock, docker, or launcher.
### Virtual window
You know that we can post or send a message to other windows which
may run in another thread under MiniGUI-Threads. The MiniGUI
messaging functions such as `PostMessage()`, `SendMessage()`,
`SendNotifyMessage()`, and the window callback procedure
provide a flexible, efficient, safe, and flexible data transfer
and synchronization mechanism for your multithreaded applications.
For example, you can send or post a message to a window from a
general purpose thread which may download a file from a remote
server under MiniGUI-Threads.
But can we use the MiniGUI messaging mechanism under
MiniGUI-Processes and MiniGUI-Standalone runtime modes for
multithreading purpose? For example, we may download a file in a
general thread and inform a window when the file is ready.
Furthermore, if we want to use the MiniGUI messaging mechanism in
a general thread to handle messages from other threads, how to do this?
The virtual window provides a solution for the requirements above.
A virtual window is a special window object which does not have
a visible window area. But after you create a virtual window in
a different thread, you can use the MiniGUI messaging mechanism
to post or send messages between the current main window thread
and the new thread.
This enhancement provides a very useful facility to you in order to
develop a well-designed multithreaded application.
### Other enhancements
We also tune or enhance the following modules of MiniGUI Core:
- Enhanced timer support. MiniGUI now manages the timers per message thread.
Under MiniGUI-Threads runtime mode, you can set up 32 (64 on 64-bit
architecture) timers for each GUI threads. If you enabled virtual window,
you can also do this for each message thread.
- Support for listening a file descriptor as long as the underlying system
has the `select()` system call for all runtime modes. Now you can call
`RegisterListenFD()` to register a file descriptor to be listened, and
handle `MSG_FDEVENT` in your window callback procedure to read/write
from/to the file descriptor. Before this version, this feature only
available for MiniGUI-Processes runtime mode.
- Support for local data of windows. You can now set or retrieve a local data
which is bound with a string name for a window. This will give you an
easy-to-use interface to manage various data of a window.
- Support for hardware cursors under compositing schema. MiniGUI now can
utilize the hardware cursors if your graphics device support it.
You can also load a cursor from a PNG file.
- Support for loading icon from a bitmap file. You can now load an icon
from a bitmap file such as a PNG file.
- Unified the message hook functions for all runtime modes. MiniGUI now
provides the consistent message hook functions for all runtime modes.
- Use the update regions for cumulative updating the screen. This will
eliminate the flickers due to the frequently redrawing of controls.
Obviously, this version brings the largest improvement since MiniGUI 3.0.0.
We did our best to ensure backward compatibility of the existed APIs
so that the old applications can smoothly migrate to the new
version. However, there are still some slight changes you need to take care.
For more information, please refer to `RELEASE-NOTES.md` file:
<https://github.com/VincentWei/minigui/blob/master/RELEASE-NOTES.md>
## NEW FEATURES IN VERSION 4.0.x
In this version, we enhanced and tuned the APIs related to text rendering,
@@ -320,7 +193,7 @@ in order to support [HybridOS Foundation Class Library].
For more information, please refer to `RELEASE-NOTES.md` file:
<https://github.com/VincentWei/minigui/blob/tree/rel-4-0/RELEASE-NOTES.md>
<https://github.com/VincentWei/minigui/blob/master/RELEASE-NOTES.md>
Because of the changes of some APIs, we recommended strongly that you
use this version for new projects.
@@ -417,10 +290,7 @@ other main features.
In the development of version 4.0.x, we introduced the support for
complex writing systems (scripts), such as Arabic, Thai, and Indic.
In the development of version 5.0.x, we introduced some new and
exciting features such as compositing schema and virtual window.
A brief history description of the development progress is listed as follow:
A brief history description of the development progress lay below:
1. 1994 ~ 1996: MiniGUI DOS version.
1. Dec, 1998: Began to write.
@@ -483,7 +353,6 @@ A brief history description of the development progress is listed as follow:
1. Feb., 2018: FMSoft released MiniGUI version 3.2.0.
1. Apr., 2019: FMSoft released MiniGUI version 3.2.2.
1. Jul., 2019: FMSoft released MiniGUI version 4.0.0.
1. Apr., 2020: FMSoft released MiniGUI version 5.0.0.
## AUTHORS AND COPYING
@@ -491,7 +360,7 @@ The original author of MiniGUI is WEI Yongming, and now MiniGUI is
maintained by FMSoft. For more information, please refer to
<http://www.fmsoft.cn>.
Copyright (C) 2002 ~ 2020, Beijing FMSoft Technologies Co., Ltd.
Copyright (C) 2002 ~ 2019, Beijing FMSoft Technologies Co., Ltd.
Copyright (C) 1998 ~ 2002, WEI Yongming
This program is free software: you can redistribute it and/or modify
+606 -697
View File
File diff suppressed because it is too large Load Diff
+4 -12
View File
@@ -1,16 +1,8 @@
Version 4.9.1 (2019/03/11)
Version 4.0.7 (2020/03/30)
This is the second preview version of MiniGUI 5.0.0, an unstable version.
This release needs the following packages:
Other packages for MiniGUI resource, tools, components, and samples:
- GVFB: `gvfb-1.2.4.tar.gz`
- The resource package: `minigui-res-4.0.0.tar.gz`
- mGUtils component: `libmgutils-1.5.0.tar.gz`
- mGPlus component: `libmgplus-1.5.0.tar.gz`
- mGEff component: `libmgeff-1.5.0.tar.gz`
- mGNCS component: `libmgncs-1.5.0.tar.gz`
- mGNCS4Touch component: `libmgncs4touch-1.5.0.tar.gz`
- The test cases package: `mg-tests-5.0.0.tar.gz`
- The sample package: `mg-samples-5.0.0.tar.gz`
- The sample package: `mg-samples-4.0.1.tar.gz`
- The test cases package: `mg-tests-4.0.7.tar.gz`
+3 -3
View File
@@ -130,9 +130,9 @@
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */
/* Define to 1 if you have the ANSI C header files. */
+3 -3
View File
@@ -130,9 +130,9 @@
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */
/* Define to 1 if you have the ANSI C header files. */
+3 -3
View File
@@ -130,9 +130,9 @@
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */
/* Define to 1 if you have the ANSI C header files. */
+1 -1
View File
@@ -366,7 +366,7 @@
/* #undef _MGINCOREFONT_VGAS */
/* Define if include in-core font: 12x12 RBF for GB2312 */
#define _MGINCORERBF_GB12 1
#define _MGINCORERBF_GB12 1
/* Define if include in-core font: 16x16 RBF for GB2312 */
/* #undef _MGINCORERBF_GB16 */
+1 -1
View File
@@ -269,7 +269,7 @@
/*#define _MGHAVE_MOUSECALIBRATE 1*/
/* Define if include skin support */
#define _EXT_SKIN 1
#define _EXT_SKIN 1
/* Define if include 16BPP FB subdriver */
/* #undef _MGFONT_FBLIN16 */
+1 -1
View File
@@ -377,7 +377,7 @@
/* #undef _MGINCOREFONT_VGAS */
/* Define if include in-core font: 12x12 RBF for GB2312 */
#define _MGINCORERBF_GB12 1
#define _MGINCORERBF_GB12 1
/* Define if include in-core font: 16x16 RBF for GB2312 */
#define _MGINCORERBF_GB16 1
+1 -1
View File
@@ -377,7 +377,7 @@
/* #undef _MGINCOREFONT_VGAS */
/* Define if include in-core font: 12x12 RBF for GB2312 */
#define _MGINCORERBF_GB12 1
#define _MGINCORERBF_GB12 1
/* Define if include in-core font: 16x16 RBF for GB2312 */
#define _MGINCORERBF_GB16 1
+3 -3
View File
@@ -156,7 +156,7 @@
/* Define if include the automatic IAL engine */
//#define _MGIAL_AUTO 1
/* Define if include the COMM input engine */
#define _MGIAL_COMM 1
#define _MGIAL_COMM 1
/* Define if support BIG5 charset */
/* #undef _MGCHARSET_BIG5 */
@@ -259,11 +259,11 @@
/* Define if include full gif support */
#define _MGHAVE_MOUSECALIBRATE 1
#define _EXT_FULLGIF 1
#define _EXT_FULLGIF 1
#define _MGCTRL_GRIDVIEW 1
#define _MGCTRL_ICONVIEW 1
/* Define if include skin support */
#define _EXT_SKIN 1
#define _EXT_SKIN 1
/* Define if include 16BPP FB subdriver */
/* #undef _MGFONT_FBLIN16 */
+4 -4
View File
@@ -156,7 +156,7 @@
/* Define if include the automatic IAL engine */
#define _MGIAL_AUTO 1
/* Define if include the COMM input engine */
#define _MGIAL_COMM 1
#define _MGIAL_COMM 1
/* Define if support BIG5 charset */
/* #undef _MGCHARSET_BIG5 */
@@ -259,11 +259,11 @@
/* Define if include full gif support */
#define _MGHAVE_MOUSECALIBRATE 1
#define _EXT_FULLGIF 1
#define _EXT_FULLGIF 1
#define _MGCTRL_GRIDVIEW 1
#define _MGCTRL_ICONVIEW 1
/* Define if include skin support */
#define _EXT_SKIN 1
#define _EXT_SKIN 1
/* Define if include 16BPP FB subdriver */
/* #undef _MGFONT_FBLIN16 */
@@ -573,7 +573,7 @@
/* #define _MGIAL_UCOSII 1 */
/* Define if support UNICODE */
#define _MGCHARSET_UNICODE 1
#define _MGCHARSET_UNICODE 1
/* Define if use own implementation of malloc functions */
/* #define _MGUSE_OWN_MALLOC 1 */
+5 -5
View File
@@ -91,12 +91,12 @@
/* Define to 1 if you have the `tmpfile' function. */
#define HAVE_TMPFILE 1
/*#define HAVE_MODE_T 1*/
/*#define HAVE_MODE_T 1*/
/* Define to 1 if you have the `mktime' function. */
#define HAVE_MKTIME 1
/* Define to 1 if you have the `time' function. */
#define HAVE_TIME 1
#define HAVE_TIME 1
/* Define to 1 if you have the `localtime' function. */
#define HAVE_LOCALTIME 1
@@ -140,9 +140,9 @@
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */
/* Define to 1 if you have the ANSI C header files. */
+1 -1
View File
@@ -24,5 +24,5 @@
#pragma warning(disable:4101) /* unreferenced local variable */
#pragma warning(error:4150)
#pragma warning(disable:4244) /* No possible loss of data warnings */
#pragma warning(disable:4244) /* No possible loss of data warnings */
#pragma warning(disable:4305) /* No truncation from int to char warnings */
+9 -9
View File
@@ -1,15 +1,15 @@
#! /bin/bash
keyword_list="
__mg_license_create
__mg_license_destroy
__mg_screensaver_create
__mg_screensaver_destroy
__mg_splash_draw_framework
__mg_splash_progress
__mg_splash_delay
__mg_license_on_input
__mg_license_on_timeout
license_create
license_destroy
screensaver_create
screensaver_destroy
splash_draw_framework
splash_progress
splash_delay
license_on_input
license_on_timeout
license_get_processor_id
#\s*include.*license\/c_files.*
#\s*include.*license\.h
-176
View File
@@ -1,176 +0,0 @@
#!/bin/bash
tab2space() {
sed -i 's/\t/ /g' `find . -name '*.c'`
sed -i 's/\t/ /g' `find . -name '*.h'`
sed -i 's/\s\+$//g' `find . -name '*.c'`
sed -i 's/\s\+$//g' `find . -name '*.h'`
}
# tab2space
# templates
# sed -i 's/\<AAA\>/__AAA/g' `grep '\<AAA\>' -rl include/ src/`
# sed -i 's/\<AAA\>/__mgAAA/g' `grep '\<AAA\>' -rl include/ src/`
# sed -i 's/\<AAA\>/__gdiAAA/g' `grep '\<AAA\>' -rl include/ src/`
# sed -i 's/\<AAA\>/__mg_AAA/g' `grep '\<AAA\>' -rl include/ src/`
# sed -i 's/\<AAA\>/dbg_AAA/g' `grep '\<AAA\>' -rl include/ src/`
# sed -i 's/\<kernel_alloc_z_order_info\>/__kernel_alloc_z_order_info/g' `grep kernel_alloc_z_order_info -rl include/ src/`
# sed -i 's/\<kernel_free_z_order_info\>/__kernel_free_z_order_info/g' `grep kernel_free_z_order_info -rl include/ src/`
# sed -i 's/\<kernel_change_z_order_mask_rect\>/__kernel_change_z_order_mask_rect/g' `grep kernel_change_z_order_mask_rect -rl include/ src/`
# sed -i 's/\<kernel_get_window_region\>/__kernel_get_window_region/g' `grep kernel_get_window_region -rl include/ src/`
# sed -i 's/\<kernel_get_next_znode\>/__kernel_get_next_znode/g' `grep kernel_get_next_znode -rl include/ src/`
# sed -i 's/\<kernel_get_prev_znode\>/__kernel_get_prev_znode/g' `grep kernel_get_prev_znode -rl include/ src/`
# sed -i 's/\<gui_open_ime_window\>/__gui_open_ime_window/g' `grep gui_open_ime_window -rl include/ src/`
# sed -i 's/\<_begin_fill_bitmap\>/__mg_begin_fill_bitmap/g' `grep _begin_fill_bitmap -rl include/ src/`
# sed -i 's/\<_fill_bitmap_scanline\>/__mg_fill_bitmap_scanline/g' `grep _fill_bitmap_scanline -rl include/ src/`
# sed -i 's/\<_end_fill_bitmap\>/__mg_end_fill_bitmap/g' `grep _end_fill_bitmap -rl include/ src/`
# sed -i 's/\<DumpCtrlClassInfoTable\>/dbg_DumpCtrlClassInfoTable/g' `grep DumpCtrlClassInfoTable -rl include/ src/`
# sed -i 's/\<GetPixelUnderCursor\>/kernel_GetPixelUnderCursor/g' `grep GetPixelUnderCursor -rl include/ src/`
# sed -i 's/\<update_secondary_dc\>/__mg_update_secondary_dc/g' `grep update_secondary_dc -rl include/ src/`
# sed -i 's/\<initialize_scripteasy\>/font_InitializeScripteasy/g' `grep initialize_scripteasy -rl include/ src/`
# sed -i 's/\<uninitialize_scripteasy\>/font_UninitializeScripteasy/g' `grep uninitialize_scripteasy -rl include/ src/`
# sed -i 's/\<free_window_element_data\>/__mg_free_window_element_data/g' `grep free_window_element_data -rl include/ src/`
# sed -i 's/\<append_window_element_data\>/__mg_append_window_element_data/g' `grep append_window_element_data -rl include/ src/`
# sed -i 's/\<set_window_element_data\>/__mg_set_window_element_data/g' `grep set_window_element_data -rl include/ src/`
# sed -i 's/\<__compsor_check_znodes\>/__mg_composite_dirty_znodes/g' `grep __compsor_check_znodes -rl include/ src/`
# sed -i 's/\<mg_linux_tty_init\>/__mg_linux_tty_init/g' `grep mg_linux_tty_init -rl include/ src/`
# sed -i 's/\<mg_linux_tty_enable_vt_switch\>/__mg_linux_tty_enable_vt_switch/g' `grep mg_linux_tty_enable_vt_switch -rl include/ src/`
# sed -i 's/\<mg_linux_tty_disable_vt_switch\>/__mg_linux_tty_disable_vt_switch/g' `grep mg_linux_tty_disable_vt_switch -rl include/ src/`
# sed -i 's/\<mg_linux_tty_switch_vt\>/__mg_linux_tty_switch_vt/g' `grep mg_linux_tty_switch_vt -rl include/ src/`
# sed -i 's/\<mg_linux_tty_fini\>/__mg_linux_tty_fini/g' `grep mg_linux_tty_fini -rl include/ src/`
# sed -i 's/\<DumpMenu\>/dbg_DumpMenu/g' `grep DumpMenu -rl include/ src/`
# sed -i 's/\<sysres_init_inner_resource\>/__sysres_init_inner_resource/g' `grep sysres_init_inner_resource -rl include/ src/`
# sed -i 's/\<sysres_get_system_res_path\>/__sysres_get_system_res_path/g' `grep sysres_get_system_res_path -rl include/ src/`
# sed -i 's/\<_set_pixel_helper\>/_gdi_set_pixel_helper/g' `grep _set_pixel_helper -rl src/`
# sed -i 's/\<err_dump\>/__mg_err_dump/g' `grep err_dump -rl src/`
# sed -i 's/\<err_msg\>/__mg_err_msg/g' `grep err_msg -rl src/`
# sed -i 's/\<err_quit\>/__mg_err_quit/g' `grep err_quit -rl src/`
# sed -i 's/\<err_ret\>/__mg_err_ret/g' `grep err_ret -rl src/`
# sed -i 's/\<err_sys\>/__mg_err_sys/g' `grep err_sys -rl src/`
# sed -i 's/\<mg_dispatch_timer_message\>/__mg_dispatch_timer_message/g' `grep mg_dispatch_timer_message -rl src/`
# sed -i 's/\<mgDeleteObject\>/mg_DeleteObject/g' `grep mgDeleteObject -rl src/`
# sed -i 's/\<init_arabic_kbd_layout\>/__mg_init_arabic_kbd_layout/g' `grep init_arabic_kbd_layout -rl src/`
# sed -i 's/\<init_default_kbd_layout\>/__mg_init_default_kbd_layout/g' `grep init_default_kbd_layout -rl src/`
# sed -i 's/\<init_de_kbd_layout\>/__mg_init_de_kbd_layout/g' `grep init_de_kbd_layout -rl src/`
# sed -i 's/\<init_delatin1_kbd_layout\>/__mg_init_delatin1_kbd_layout/g' `grep init_delatin1_kbd_layout -rl src/`
# sed -i 's/\<init_escp850_kbd_layout\>/__mg_init_escp850_kbd_layout/g' `grep init_escp850_kbd_layout -rl src/`
# sed -i 's/\<init_es_kbd_layout\>/__mg_init_es_kbd_layout/g' `grep init_es_kbd_layout -rl src/`
# sed -i 's/\<init_fr_kbd_layout\>/__mg_init_fr_kbd_layout/g' `grep init_fr_kbd_layout -rl src/`
# sed -i 's/\<init_frpc_kbd_layout\>/__mg_init_frpc_kbd_layout/g' `grep init_frpc_kbd_layout -rl src/`
# sed -i 's/\<init_it_kbd_layout\>/__mg_init_it_kbd_layout/g' `grep init_it_kbd_layout -rl src/`
# sed -i 's/\<init_hebrew_kbd_layout\>/__mg_init_hebrew_kbd_layout/g' `grep init_hebrew_kbd_layout -rl src/`
# sed -i 's/\<InitAutoInput\>/ial_InitAutoInput/g' `grep InitAutoInput -rl src/`
# sed -i 's/\<InitDummyInput\>/ial_InitDummyInput/g' `grep InitDummyInput -rl src/`
# sed -i 's/\<InitLibInput\>/ial_InitLibInput/g' `grep InitLibInput -rl src/`
# sed -i 's/\<InitNetInput\>/ial_InitNetInput/g' `grep InitNetInput -rl src/`
# sed -i 's/\<InitPCXVFBInput\>/ial_InitPCXVFBInput/g' `grep InitPCXVFBInput -rl src/`
# sed -i 's/\<InitRandomInput\>/ial_InitRandomInput/g' `grep InitRandomInput -rl src/`
# sed -i 's/\<InitializeResManager\>/mg_InitResManager/g' `grep InitializeResManager -rl src/`
# sed -i 's/\<InitTextBitmapBuffer\>/gdi_InitTextBitmapBuffer/g' `grep InitTextBitmapBuffer -rl src/`
# sed -i 's/\<clipboard_op\>/__mg_clipboard_op/g' `grep clipboard_op -rl src/`
# sed -i 's/\<mg_miFreeArcCache\>/miFreeArcCache/g' `grep mg_miFreeArcCache -rl src/`
# sed -i 's/\<mgNewObject\>/mgNewObjectEx/g' `grep mgNewObject -rl src/`
# sed -i 's/\<mg_newObject\>/mgNewObject/g' `grep mg_newObject -rl src/`
# sed -i 's/\<mg_remove_timers_by_msg_queue\>/__mg_remove_timers_by_msg_queue/g' `grep mg_remove_timers_by_msg_queue -rl src/`
# sed -i 's/\<mg_DeleteObject\>/mgDeleteObject/g' `grep mg_DeleteObject -rl src/`
# sed -i 's/\<GetMsgQueueThisThread\>/getMsgQueueThisThread/g' `grep GetMsgQueueThisThread -rl src/`
# sed -i 's/\<pMessages\>/pMsgQueue/g' `grep pMessages -rl src/`
# sed -i 's/\<mg_InitMsgQueueThisThread\>/mg_AllocMsgQueueThisThread/g' `grep mg_InitMsgQueueThisThread -rl include/ src/`
# sed -i 's/\<mg_AllocMsgQueueThisThread\>/mg_AllocMsgQueueForThisThread/g' `grep mg_AllocMsgQueueThisThread -rl src/`
# sed -i 's/\<mg_FreeMsgQueueThisThread\>/mg_FreeMsgQueueForThisThread/g' `grep mg_FreeMsgQueueThisThread -rl src/`
# sed -i 's/\<GetMsgQueueThisThread\>/mg_GetMsgQueueForThisThread/g' `grep GetMsgQueueThisThread -rl src/`
# sed -i 's/\<kernel_GetMsgQueue\>/getMsgQueue/g' `grep kernel_GetMsgQueue -rl src/`
# sed -i 's/\<BE_THIS_THREAD\>/isWindowInThisThread/g' `grep BE_THIS_THREAD -rl src/`
# sed -i 's/\<SetMsgQueueTimerFlag\>/setMsgQueueTimerFlag/g' `grep SetMsgQueueTimerFlag -rl src/`
# sed -i 's/\<RemoveMsgQueueTimerFlag\>/removeMsgQueueTimerFlag/g' `grep RemoveMsgQueueTimerFlag -rl src/`
# sed -i 's/\<getMsgQueueByWindowInThisThread\>/getMsgQueueIfWindowInThisThread/g' `grep getMsgQueueByWindowInThisThread -rl include/ src/`
# sed -i 's/\<FirstTimerSlot\>/first_time_slot/g' `grep FirstTimerSlot -rl src/`
# sed -i 's/\<TimerMask\>/expired_timer_mask/g' `grep TimerMask -rl src/`
# sed -i 's/\<first_time_slot\>/first_timer_slot/g' `grep first_time_slot -rl src/`
# sed -i 's/\<__mg_dispatch_timer_message\>/__mg_check_expired_timers/g' `grep __mg_dispatch_timer_message -rl src/`
# sed -i 's/\<4\.2\.0\>/5.0.0/g' `grep '4\.2\.0' -rl include/ src/`
# sed -i 's/\<__mg_check_hook_func\>/____mg_check_hook_event/g' `grep __mg_check_hook_func -rl src/`
# sed -i 's/\<____mg_check_hook_event\>/__mg_check_hook_event/g' `grep ____mg_check_hook_event -rl src/`
# sed -i 's/\<__mg_capture_wnd\>/_captured_wnd/g' `grep __mg_capture_wnd -rl include/ src/`
# sed -i 's/\<_captured_wnd\>/__mg_captured_wnd/g' `grep _captured_wnd -rl include/ src/`
# sed -i 's/\<__mg_check_hook_event\>/__mg_check_hook_func/g' `grep __mg_check_hook_event -rl include/ src/`
# sed -i 's/\<DEF_NR_FIXEDZNODES\>/NR_FIXED_ZNODES/g' `grep DEF_NR_FIXEDZNODES -rl src/`
#sed -i 's/\<ZOF_TYPE_TOPMOST\>/__ZOF_TYPE_HIGHER/g' `grep ZOF_TYPE_TOPMOST -rl include/ src/`
# sed -i 's/\<__ZOF_TYPE_HIGHER\>/ZOF_TYPE_HIGHER/g' `grep __ZOF_TYPE_HIGHER -rl include/ src/`
# sed -i 's/\<SetDesktopTimerFlag\>/AlertDesktopTimerEvent/g' `grep SetDesktopTimerFlag -rl include/ src/`
# sed -i 's/\<__mg_update_timer_count\>/__mg_update_tick_count/g' `grep __mg_update_timer_count -rl include/ src/`
# sed -i 's/\<__mg_timer_counter\>/__mg_tick_counter/g' `grep __mg_timer_counter -rl include/ src/`
# sed -i 's/\<pAdd\>/pSyncMsg/g' `grep '\<pAdd\>' -rl include/ src/`
# sed -i 's/\<isWindowInThisThread\>/getMainWinIfWindowInThisThread/g' `grep '\<isWindowInThisThread\>' -rl include/ src/`
# sed -i 's/\<GetMainVirtWindowById\>/GetHostedById/g' `grep '\<GetMainVirtWindowById\>' -rl include/ src/`
# sed -i 's/\<__mg_os_start_time_ms\>/__mg_os_start_time/g' `grep '\<__mg_os_start_time_ms\>' -rl include/ src/`
# sed -i 's/\<Gets\>/Get/g' `grep '\<Gets\>' -rl include/ src/`
# sed -i 's/\<Sets\>/Set/g' `grep '\<Sets\>' -rl include/ src/`
# sed -i 's/\<Retrieves\>/Retrieve/g' `grep '\<Retrieves\>' -rl include/ src/`
# sed -i 's/\<Determines\>/Determine/g' `grep '\<Determines\>' -rl include/ src/`
# sed -i 's/\<Checks\>/Check/g' `grep '\<Checks\>' -rl include/ src/`
#sed -i 's/\<SetWindowExStyle\>/gui_SetWindowExStyle/g' `grep '\<SetWindowExStyle\>' -rl include/ src/`
#sed -i 's/\<AddNewControlClass\>/gui_AddNewControlClass/g' `grep '\<AddNewControlClass\>' -rl include/ src/`
#sed -i 's/\<SetCtrlClassAddData\>/gui_SetCtrlClassAddData/g' `grep '\<SetCtrlClassAddData\>' -rl include/ src/`
#sed -i 's/\<GetCtrlClassAddData\>/gui_GetCtrlClassAddData/g' `grep '\<GetCtrlClassAddData\>' -rl include/ src/`
# sed -i 's/\<get_valid_dc\>/get_effective_dc/g' `grep '\<get_valid_dc\>' -rl include/ src/`
# sed -i 's/\<release_valid_dc\>/release_effective_dc/g' `grep '\<release_valid_dc\>' -rl include/ src/`
# sed -i 's/\<gui_GetMainWindowPtrOfControl\>/checkAndGetMainWindowPtrOfControl/g' `grep '\<gui_GetMainWindowPtrOfControl\>' -rl include/ src/`
# sed -i 's/\<gui_CheckAndGetMainWindowPtr\>/checkAndGetMainWindowPtrOfMainWin/g' `grep '\<gui_CheckAndGetMainWindowPtr\>' -rl include/ src/`
# sed -i 's/\<GetSubDCInSecondaryDC\>/GetDCInSecondarySurface/g' `grep '\<GetSubDCInSecondaryDC\>' -rl include/ src/`
# sed -i 's/\<checkAndGetMainWindowPtrOfMainWin\>/checkAndGetMainWinIfMainWin/g' `grep '\<checkAndGetMainWindowPtrOfMainWin\>' -rl include/ src/`
# sed -i 's/\<checkAndGetMainWindowPtrOfControl\>/checkAndGetMainWinIfWindow/g' `grep '\<checkAndGetMainWindowPtrOfControl\>' -rl include/ src/`
sed -i 's/\<mg_GetMsgQueueForThisThread\>/getMsgQueueForThisThread/g' `grep '\<mg_GetMsgQueueForThisThread\>' -rl include/ src/`
exit 0
+27 -87
View File
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.60)
AC_INIT(libminigui, 4.9.1)
AC_INIT(libminigui, 4.0.7)
AC_CONFIG_SRCDIR(src/main/main.c)
dnl Set various version strings - taken gratefully from the SDL sources
@@ -15,10 +15,10 @@ dnl Set various version strings - taken gratefully from the SDL sources
# set MINIGUI_BINARY_AGE and MINIGUI_INTERFACE_AGE to 0.
#
MINIGUI_MAJOR_VERSION=4
MINIGUI_MINOR_VERSION=9
MINIGUI_MICRO_VERSION=1
MINIGUI_INTERFACE_AGE=1
MINIGUI_BINARY_AGE=1
MINIGUI_MINOR_VERSION=0
MINIGUI_MICRO_VERSION=7
MINIGUI_INTERFACE_AGE=0
MINIGUI_BINARY_AGE=0
MINIGUI_VERSION=$MINIGUI_MAJOR_VERSION.$MINIGUI_MINOR_VERSION.$MINIGUI_MICRO_VERSION
AC_SUBST(MINIGUI_MAJOR_VERSION)
@@ -62,7 +62,7 @@ dnl ========================================================================
dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_DIRENT
AC_CHECK_HEADERS(limits.h math.h locale.h unistd.h termio.h sys/types.h sys/time.h sys/select.h sys/memfd.h)
AC_CHECK_HEADERS(limits.h math.h locale.h unistd.h termio.h sys/types.h sys/time.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
@@ -77,7 +77,7 @@ AC_FUNC_MEMCMP
AC_FUNC_MMAP
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(time mktime localtime clock_gettime strdup strcasecmp strncasecmp strerror setlocale)
AC_CHECK_FUNCS(posix_memalign memalign valloc memfd_create poll select)
AC_CHECK_FUNCS(posix_memalign memalign valloc)
PKG_CHECK_MODULES(UDEV, [libudev >= 200], have_udev="yes", have_udev="no; need libudev 200+")
@@ -92,10 +92,6 @@ message_string="no"
osname="unspecified"
runtime_mode="procs"
compositing_schema="no"
virtual_window="no"
use_shmopen="no"
mgslice_use_fallback="no"
incore_res="no"
use_miniguientry="no"
@@ -106,9 +102,9 @@ build_clipboard="yes"
use_own_stdio="no"
use_own_malloc="no"
use_own_pthread="no"
build_adv2dapi="yes"
build_updateregion="yes"
build_adv2dapi="yes"
build_syncupdate="no"
build_minimalgdi="no"
dnl Options for look and feel renderer
@@ -252,7 +248,7 @@ build_ctrl_monthcal="no"
build_ctrl_treeview="no"
build_ctrl_treeview_rdr="no"
build_ctrl_spinbox="yes"
build_ctrl_coolbar="yes"
build_ctrl_coolbar="no"
build_ctrl_listview="yes"
build_ctrl_iconview="no"
build_ctrl_gridview="no"
@@ -321,10 +317,6 @@ AC_ARG_ENABLE(incoreres,
[ --enable-incoreres use incore resource instead file IO to initialize MiniGUI <default=no>],
incore_res=$enableval)
AC_ARG_ENABLE(mgslicefallback,
[ --enable-mgslicefallback use fallback implementation for mg_slice_xxx <default=no>],
mgslice_use_fallback=$enableval)
AC_ARG_ENABLE(miniguientry,
[ --enable-miniguientry use minigui_entry function in MiniGUI <default=no>],
use_miniguientry=$enableval)
@@ -361,9 +353,9 @@ AC_ARG_ENABLE(adv2dapi,
[ --enable-adv2dapi include advanced 2D graphics APIs <default=yes>],
build_adv2dapi=$enableval)
AC_ARG_ENABLE(updateregion,
[ --enable-updateregion Use update region for cumulative updating surfaces <default=yes>],
build_updateregion=$enableval)
AC_ARG_ENABLE(syncupdate,
[ --enable-syncupdate include implementation of SyncUpdateDC <default=yes>],
build_syncupdate=$enableval)
AC_ARG_ENABLE(minimalgdi,
[ --enable-minimalgdi build a minimal GDI library only <default=no>],
@@ -502,7 +494,7 @@ AC_ARG_ENABLE(consolegpm,
build_console_gpm=$enableval)
AC_ARG_ENABLE(textmode,
[ --enable-textmode Linux system has console (text mode) on Frame Buffer <default=yes>],
[ --enable-textmode Linux system have console (text mode) on FrameBuffer <default=yes>],
build_text_mode=$enableval)
AC_ARG_ENABLE(rbfsupport,
@@ -837,22 +829,6 @@ AC_ARG_ENABLE(ctrlanimation,
[ --enable-ctrlanimation include ANIMATION control and GIF87a/GIF89a support <default=yes>],
build_ctrl_animation=$enableval)
if test "x$runtime_mode" == "xprocs"; then
AC_ARG_ENABLE(compositing,
[ --enable-compositing enable compositing schema (MiniGUI-Processes runmode only) <default=no>],
compositing_schema=$enableval)
AC_ARG_ENABLE(shmopen,
[ --enable-shmopen use shm_open <default=no>],
use_shmopen=$enableval)
fi
if test "x$runtime_mode" != "xths"; then
AC_ARG_ENABLE(virtualwindow,
[ --enable-virtualwindow enable virtual window for MiniGUI-Processes or MiniGUI-Standalone runmode <default=no>],
virtual_window=$enableval)
fi
dnl Set up the Null video driver.
CheckDummyVideo()
{
@@ -910,14 +886,14 @@ dnl Find the DRM includes
CheckDRM()
{
AC_ARG_ENABLE(videodrm,
[ --enable-videodrm include Linux DRM NEWGAL engine <default=yes>],
[ --enable-videodrm include Linux DRI NEWGAL engine <default=yes>],
enable_video_drm=$enableval)
if test "x$enable_video_drm" = "xyes"; then
PKG_CHECK_MODULES(DRM, [libdrm >= 2.4], video_drm="yes",
video_drm="no; Linux DRM NEWGAL engine requires libdrm 2.4+")
video_drm="no; Linux DRI NEWGAL engine requires libdrm 2.4+")
if test "x$video_drm" = "xyes"; then
AC_DEFINE(_MGGAL_DRM, 1,
[Define if include Linux DRM NEWGAL engine])
[Define if include Linux DRI NEWGAL engine])
VIDEO_SUBDIRS="$VIDEO_SUBDIRS drm"
VIDEO_DRIVERS="$VIDEO_DRIVERS drm/libvideo_drm.la"
DEP_LIBS="$DEP_LIBS -ldrm -ldl"
@@ -1723,11 +1699,14 @@ fi
CPPFLAGS="$CPPFLAGS -D__MINIGUI_LIB__"
surface_schema="shared frame buffer"
case "$runtime_mode" in
sa)
AC_DEFINE(_MGRM_STANDALONE, 1,
[Define if build MiniGUI-Standalone])
AC_DEFINE(_STAND_ALONE, 1,
[Define if build MiniGUI-Standalone (back-compatibility definition)])
AC_DEFINE(_LITE_VERSION, 1,
[Define if build MiniGUI-Standalone (back-compatibility definition)])
MINIGUI_RUNMODE="sa"
;;
ths)
@@ -1735,50 +1714,18 @@ case "$runtime_mode" in
[Define if build MiniGUI-Threads])
CPPFLAGS="$CPPFLAGS -D_REENTRANT"
MINIGUI_RUNMODE="ths"
virtual_window="yes"
;;
*)
AC_DEFINE(_MGRM_PROCESSES, 1,
[Define if build MiniGUI-Processes])
AC_DEFINE(_LITE_VERSION, 1,
[Define if build MiniGUI-Processes (back-compatibility definition)])
MINIGUI_RUNMODE="procs"
if test "x$compositing_schema" = "xyes"; then
surface_schema="compositing"
fi
if test "x$use_shmopen" = "xyes"; then
AC_CHECK_LIB(rt, shm_open, [DEP_LIBS="$DEP_LIBS -lrt"],
[use_shmopen="no; shm_open function not found in rt library"])
fi
if test "x$use_shmopen" = "xyes"; then
AC_CHECK_DECLS(SHM_ANON, foo=bar,
[use_shmopen="no; SHM_ANON is not declared in <sys/mman.h>"],
[#include <sys/mman.h>])
fi
if test "x$use_shmopen" = "xyes"; then
AC_DEFINE(_MGUSE_SHMOPEN, 1, [Define if use shm_open])
fi
;;
esac
if test "x$surface_schema" = "xcompositing"; then
AC_DEFINE(_MGSCHEMA_COMPOSITING, 1,
[Define if use compositing schema for the current runmode])
else
AC_DEFINE(_MGSCHEMA_SHAREDFB, 1,
[Define if use legacy schema (shared frame buffer) for the current runmode])
fi
if test "x$virtual_window" = "xyes"; then
AC_DEFINE(_MGHAVE_VIRTUAL_WINDOW, 1, [Define if virtual window enabled])
fi
if test "x$mgslice_use_fallback" = "xyes"; then
AC_DEFINE(_MGSLICE_FALLBACK, 1, [Define if use the fallback implementation for mgslice_xxx])
fi
if test "x$incore_res" = "xno"; then
AC_DEFINE_UNQUOTED(ETCFILENAME, "${conf}", [MiniGUI configure file name])
AC_DEFINE_UNQUOTED(ETCFILENAME, "${conf}", [MiniGUI configure file name])
fi
AC_SUBST(MGLIB_SUFFIX)
@@ -1799,9 +1746,9 @@ if test "x$build_adv2dapi" = "xyes"; then
[Define if include advanced 2D graphics APIs])
fi
if test "x$build_updateregion" = "xyes"; then
AC_DEFINE(_MGUSE_UPDATE_REGION, 1,
[Define if use update region for cumulative updating surfaces])
if test "x$build_syncupdate" = "xyes"; then
AC_DEFINE(_MGUSE_SYNC_UPDATE, 1,
[Define if include implementation of SyncUpdateDC])
fi
if test "x$fixed_math" = "xyes"; then
@@ -1818,7 +1765,6 @@ if test "x$devel_mode" = "xyes"; then
build_auto_ial_engine="yes"
build_random_ial_engine="yes"
build_net_ial_engine="yes"
build_console_ial_engine="yes"
build_qpf_support="yes"
@@ -1864,7 +1810,6 @@ if test "x$devel_mode" = "xyes"; then
build_ctrl_iconview="yes"
build_ctrl_gridview="yes"
enable_video_fbcon="yes"
enable_video_shadow="yes"
enable_video_mlshadow="yes"
enable_video_custom="yes"
@@ -2755,15 +2700,10 @@ AC_MSG_NOTICE([
## Global Features:
* Operating system: ${osname}
* Runtime mode: ${runtime_mode}
* Virtual Window: ${virtual_window}
* Surface schema: ${surface_schema}
* Use shm_open: ${use_shmopen}
* Incore resource: ${incore_res}
* Fallback mgslice: ${mgslice_use_fallback}
* Developer mode: ${devel_mode}
* Target name: ${with_targetname}
* Cursor: ${build_cursor_support}
* Update Region: ${build_updateregion}
## NEWGAL Engines:
* dummy: ${enable_video_dummy}
+3 -28
View File
@@ -1,6 +1,6 @@
# This configuration file is for MiniGUI V4.2.x or later
# This configuration file is for MiniGUI V4.0.x or later
#
# Copyright (C) 2002~2020 FMSoft
# Copyright (C) 2002~2019 FMSoft
# Copyright (C) 1998~2002 Wei Yongming.
#
# Web: http://www.minigui.com
@@ -36,25 +36,6 @@ mtype=IMPS2
# Linux IAL engine based on libinput
# ial_engine=libinut
#{{ifdef _MGSCHEMA_COMPOSITING
# Options for compositing schema
[compositing_schema]
# The size of wallpaper pattern surface (the fake screen for clients).
# Optional values: <w>x<h>, full, half, quarter, octant, and empty.
# Default value is empty.
wallpaper_pattern_size=full
# wallpaper_pattern_size=half
# wallpaper_pattern_size=quarter
# wallpaper_pattern_size=octant
# wallpaper_pattern_size=empty
# wallpaper_pattern_size=32x32
# The shared object name of the default compositor. If it is not defined
# or failed to load, MiniGUI will use the built-in fallback compositor.
# The equivalent environment variable: MG_DEF_COMPOSITOR_SO
# def_compositor_so=
#}}
#{{ifdef _MGGAL_DRM
[drm]
defaultmode=1024x768-32bpp
@@ -74,7 +55,7 @@ dpi=96
# The filename of the shared library for the external driver.
# The equivalent environment variable: MG_GAL_DRM_DRIVER
exdriver=libhidrmdrivers.so.0
exdriver=libhidrmdrivers-0.2.so.0
#}}
#{{ifdef _MGIAL_LIBINPUT
@@ -195,12 +176,6 @@ cursor20=h_select.cur
cursor21=ho_split.cur
cursor22=ve_split.cur
# Under compositing schema, you can specify a PNG file as the cursor.
# You should use a 'hotspotN' key to specify the hotspot coordinates
# of a PNG cursor. For example:
# cursor23=foo.png
# hotspot23=32,32
[resinfo]
respath=/usr/local/share/minigui/res/
+4 -4
View File
@@ -5,11 +5,11 @@
*/
case MSG_ACTIVEMENU:
if (wParam == 2) {
CheckMenuRadioItem ((HMENU)lParam,
IDM_40X15, IDM_CUSTOMIZE,
CheckMenuRadioItem ((HMENU)lParam,
IDM_40X15, IDM_CUSTOMIZE,
pConInfo->termType, MF_BYCOMMAND);
CheckMenuRadioItem ((HMENU)lParam,
IDM_DEFAULT, IDM_BIG5,
CheckMenuRadioItem ((HMENU)lParam,
IDM_DEFAULT, IDM_BIG5,
pConInfo->termCharset, MF_BYCOMMAND);
}
break;
+1 -1
View File
@@ -1,6 +1,6 @@
/*
* This example trys to handle the event when the user presses
* This example trys to handle the event when the user presses
* left button and right button of the mouse at the same time.
*/
LRESULT MyWinProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+1 -1
View File
@@ -16,6 +16,6 @@ void DrawMyCircle (HDC hdc, int x, int y, int r, gal_pixel pixel)
old_bursh = SetBrushColor (hdc, pixle);
CircleGenerator ((void*)hdc, x, y, r, draw_circle_pixel);
SetBrushColor (hdc, old_brush);
}
+1 -1
View File
@@ -1,4 +1,4 @@
/*
/*
* This program tries to create a new layer named "vcongui" if
* there is no such layer. If there is already a layer named "vcongui",
* this program brings the layer to be the topmost one.
+6 -6
View File
@@ -1,14 +1,14 @@
static LOGFONT *logfont, *logfontgb12, *logfontbig24;
logfont = CreateLogFont (NULL, "SansSerif", "ISO8859-1",
logfont = CreateLogFont (NULL, "SansSerif", "ISO8859-1",
FONT_WEIGHT_REGULAR, FONT_SLANT_ITALIC, FONT_FLIP_NONE,
FONT_OTHER_NIL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_LINE,
FONT_OTHER_NIL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_LINE,
16, 0);
logfontgb12 = CreateLogFont (NULL, "song", "GB2312",
logfontgb12 = CreateLogFont (NULL, "song", "GB2312",
FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_FLIP_NONE,
FONT_OTHER_NIL, FONT_UNDERLINE_LINE, FONT_STRUCKOUT_LINE,
FONT_OTHER_NIL, FONT_UNDERLINE_LINE, FONT_STRUCKOUT_LINE,
12, 0);
logfontbig24 = CreateLogFont (NULL, "ming", "BIG5",
logfontbig24 = CreateLogFont (NULL, "ming", "BIG5",
FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_FLIP_NONE,
FONT_OTHER_NIL, FONT_UNDERLINE_LINE, FONT_STRUCKOUT_NONE,
FONT_OTHER_NIL, FONT_UNDERLINE_LINE, FONT_STRUCKOUT_NONE,
24, 0);
+4 -4
View File
@@ -1,14 +1,14 @@
static LOGFONT *logfont, *logfontgb12, *logfontttf;
logfont = CreateLogFontEx (NULL, "SansSerif", "ISO8859-1",
logfont = CreateLogFontEx (NULL, "SansSerif", "ISO8859-1",
FONT_WEIGHT_REGULAR, FONT_SLANT_ITALIC, FONT_FLIP_NONE,
FONT_OTHER_NIL, FONT_DECORATE_NONE, FONT_RENDER_MONO,
FONT_OTHER_NIL, FONT_DECORATE_NONE, FONT_RENDER_MONO,
16, 0);
logfontgb12 = CreateLogFontEx (NULL, "song", "GB2312",
logfontgb12 = CreateLogFontEx (NULL, "song", "GB2312",
FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_FLIP_NONE,
FONT_OTHER_NIL, FONT_DECORATE_NONE, FONT_RENDER_MONO,
12, 0);
logfontttf = CreateLogFontEx ("ttf", "Courier", "UTF-8",
logfontttf = CreateLogFontEx ("ttf", "Courier", "UTF-8",
FONT_WEIGHT_BLACK, FONT_SLANT_ROMAN, FONT_FLIP_NONE,
FS_OTHER_LCDPORTRAIT, FONT_DECORATE_NONE, FONT_RENDER_SUBPIXEL,
24, 0);
-24
View File
@@ -1,24 +0,0 @@
/*
* The following code creates a virtual window.
*/
static LRESULT
my_virt_wnd_proc (HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
switch (message) {
...
}
return DefaultVirtualWinProc (hwnd, message, wparam, lparam);
}
...
HWND new_wnd = CreateVirtualWindow (HWND_NULL, my_virt_wnd_proc,
"A Virtual Window", 0, 0);
if (new_wnd != HWND_INVALID) {
// failed to create the virtual window.
}
// go on...
...
+18 -18
View File
@@ -15,35 +15,35 @@ LRESULT ControlTestWinProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lPara
switch (message) {
case MSG_CREATE:
{
hStaticWnd1 = CreateWindow (CTRL_STATIC,
"This is a static control",
hStaticWnd1 = CreateWindow (CTRL_STATIC,
"This is a static control",
WS_CHILD | SS_NOTIFY | SS_SIMPLE | WS_VISIBLE | WS_BORDER,
IDC_STATIC1,
IDC_STATIC1,
10, 10, 180, 300, hWnd, 0);
hButton1 = CreateWindow (CTRL_BUTTON,
"Button1",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDC_BUTTON1,
"Button1",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDC_BUTTON1,
20, 20, 80, 20, hStaticWnd1, 0);
hButton2 = CreateWindow (CTRL_BUTTON,
"Button2",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDC_BUTTON2,
"Button2",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDC_BUTTON2,
20, 50, 80, 20, hStaticWnd1, 0);
hEdit1 = CreateWindow (CTRL_EDIT,
"Edit Box 1",
WS_CHILD | WS_VISIBLE | WS_BORDER,
IDC_EDIT1,
"Edit Box 1",
WS_CHILD | WS_VISIBLE | WS_BORDER,
IDC_EDIT1,
20, 80, 100, 24, hStaticWnd1, 0);
hStaticWnd2 = CreateWindow (CTRL_STATIC,
"This is child static control",
hStaticWnd2 = CreateWindow (CTRL_STATIC,
"This is child static control",
WS_CHILD | SS_NOTIFY | SS_SIMPLE | WS_VISIBLE | WS_BORDER,
IDC_STATIC1,
IDC_STATIC1,
20, 110, 100, 50, hStaticWnd1, 0);
hEdit2 = CreateWindow (CTRL_EDIT,
"Edit Box 2",
WS_CHILD | WS_VISIBLE | WS_BORDER,
IDC_EDIT2,
"Edit Box 2",
WS_CHILD | WS_VISIBLE | WS_BORDER,
IDC_EDIT2,
0, 20, 100, 24, hStaticWnd2, 0);
break;
}
+14 -14
View File
@@ -2,19 +2,19 @@
* The following code destroies all resource used by the main window
* and then destroies the main window itself.
*/
case MSG_CLOSE:
/* Destroy the resource used by the main window. */
DestroyLogFont (logfont1);
DestroyLogFont (logfont2);
DestroyLogFont (logfont3);
case MSG_CLOSE:
/* Destroy the resource used by the main window. */
DestroyLogFont (logfont1);
DestroyLogFont (logfont2);
DestroyLogFont (logfont3);
/* Destroy the child windows. */
DestroyWindow(hWndButton);
DestroyWindow(hWndEdit);
/* Destroy the child windows. */
DestroyWindow(hWndButton);
DestroyWindow(hWndEdit);
/* Destroy the main window. */
DestroyMainWindow (hWnd);
/* Destroy the main window. */
DestroyMainWindow (hWnd);
/* Send a MSG_QUIT message to quit the message loop. */
PostQuitMessage(hWnd);
return 0;
/* Send a MSG_QUIT message to quit the message loop. */
PostQuitMessage(hWnd);
return 0;
+4 -4
View File
@@ -7,7 +7,7 @@ static LRESULT InitDialogBoxProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM
switch (message) {
case MSG_INITDIALOG:
return 1;
case MSG_COMMAND:
switch (wParam) {
case IDOK:
@@ -16,16 +16,16 @@ static LRESULT InitDialogBoxProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM
break;
}
break;
}
return DefaultDialogProc (hDlg, message, wParam, lParam);
}
static void InitDialogBox (HWND hWnd)
{
/* Assoiciate the dialog with the controls */
DlgInitProgress.controls = CtrlInitProgress;
/* Display the dialog box and wait */
DialogBoxIndirectParam (&DlgInitProgress, hWnd, InitDialogBoxProc, 0L);
}
+7 -7
View File
@@ -1,8 +1,8 @@
static DLGTEMPLATE DlgInitProgress =
{
WS_BORDER | WS_CAPTION,
WS_BORDER | WS_CAPTION,
WS_EX_NONE,
120, 150, 400, 130,
120, 150, 400, 130,
"VAM-CNC is initializing",
0, 0,
3, NULL,
@@ -10,12 +10,12 @@ static DLGTEMPLATE DlgInitProgress =
};
static CTRLDATA CtrlInitProgress [] =
{
{
{
"static",
WS_VISIBLE | SS_SIMPLE,
10, 10, 380, 16,
IDC_PROMPTINFO,
10, 10, 380, 16,
IDC_PROMPTINFO,
"Initialize...",
0
},
@@ -29,9 +29,9 @@ static CTRLDATA CtrlInitProgress [] =
},
{
"button",
WS_TABSTOP | WS_VISIBLE | BS_DEFPUSHBUTTON,
WS_TABSTOP | WS_VISIBLE | BS_DEFPUSHBUTTON,
170, 70, 60, 25,
IDOK,
IDOK,
"OK",
0
}
+3 -3
View File
@@ -1,4 +1,4 @@
/**
/**
* Selecting a logical font to the DC and output text in GB2312 charset
* by using DrawText.
*/
@@ -10,7 +10,7 @@ void OnModeDrawText (HDC hdc)
const char* szBuff2 = "This is a good day. \n"
"This text is drawn by calling DrawText.";
const char* szBuff3 = "Single line text, center.";
const char* szBuff4 =
const char* szBuff4 =
"This text is drawn by calling DrawText.";
rc1.left = 1; rc1.top = 1; rc1.right = 401; rc1.bottom = 101;
@@ -18,7 +18,7 @@ void OnModeDrawText (HDC hdc)
rc3.left = 0; rc3.top = 361; rc3.right = 401; rc3.bottom = 451;
rc4.left = 0; rc4.top = 461; rc4.right = 401; rc4.bottom = 551;
SetBkColor (hdc, DWORD2Pixel (hdc, RGBA_lightwhite));
SetBkColor (hdc, COLOR_lightwhite);
Rectangle (hdc, rc1.left, rc1.top, rc1.right, rc1.bottom);
Rectangle (hdc, rc2.left, rc2.top, rc2.right, rc2.bottom);
+3 -3
View File
@@ -40,11 +40,11 @@ static void InitCreateInfo (PMAINWINCREATE pCreateInfo)
pCreateInfo->hCursor = GetSystemCursor (0);
pCreateInfo->hIcon = 0;
pCreateInfo->MainWindowProc = HelloWinProc;
pCreateInfo->lx = 0;
pCreateInfo->ty = 0;
pCreateInfo->lx = 0;
pCreateInfo->ty = 0;
pCreateInfo->rx = 320;
pCreateInfo->by = 240;
pCreateInfo->iBkColor = PIXEL_lightwhite;
pCreateInfo->iBkColor = PIXEL_lightwhite;
pCreateInfo->dwAddData = 0;
pCreateInfo->hHosting = HWND_DESKTOP;
}
+1 -1
View File
@@ -1,6 +1,6 @@
/*
* This program parses the command line arguments.
* If the user specified a layer name by using "-layer <layer_name",
* If the user specified a layer name by using "-layer <layer_name",
* the program will try to join the layer, otherwise create a new layer.
*/
int MiniGUIMain (int args, const char* arg[])
+4 -4
View File
@@ -1,11 +1,11 @@
static LRESULT DepInfoBoxProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
struct _DepInfo *info;
switch(message) {
case MSG_INITDIALOG:
{
/*
/*
* Get the lParam passed to this dialog box, and assign it
* to the second private additional data assoiciated
* with the dialog box.
@@ -17,7 +17,7 @@ static LRESULT DepInfoBoxProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lP
case MSG_COMMAND:
{
/*
/*
* Get the parameter from the second private data assoiciated
* with the dialog box.
*/
@@ -34,6 +34,6 @@ static LRESULT DepInfoBoxProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lP
}
}
}
return DefaultDialogProc (hDlg, message, wParam, lParam);
}
+7 -7
View File
@@ -2,10 +2,10 @@
* The handler makes sure that the client area always
* is _WIDTH wide and _HEIGHT high.
*/
case MSG_SIZECHANGED:
{
RECT* rcClient = (RECT*)lParam;
rcClient->right = rcClient->left + _WIDTH;
rcClient->bottom = rcClient->top + _HEIGHT;
return 1;
}
case MSG_SIZECHANGED:
{
RECT* rcClient = (RECT*)lParam;
rcClient->right = rcClient->left + _WIDTH;
rcClient->bottom = rcClient->top + _HEIGHT;
return 1;
}
+10 -10
View File
@@ -2,14 +2,14 @@
* The handler set the actual size of the window always
* to be _WIDTH wide and _HEIGHT high.
*/
case MSG_SIZECHANGING:
{
const RECT* rcExpect = (const RECT*)wParam;
RECT* rcResult = (RECT*)lParam;
case MSG_SIZECHANGING:
{
const RECT* rcExpect = (const RECT*)wParam;
RECT* rcResult = (RECT*)lParam;
rcResult->left = rcExpect->left;
rcResult->top = rcExpect->top;
rcResult->right = rcExpect->left + _WIDTH;
rcResult->bottom = rcExpect->top + _HEIGHT;
return 0;
}
rcResult->left = rcExpect->left;
rcResult->top = rcExpect->top;
rcResult->right = rcExpect->left + _WIDTH;
rcResult->bottom = rcExpect->top + _HEIGHT;
return 0;
}
+8 -8
View File
@@ -3,14 +3,14 @@
*/
case MSG_PAINT:
{
HDC hdc = BeginPaint (hWnd);
HDC hdc = BeginPaint (hWnd);
for (j = 0; j < 10; j ++) {
if (RectVisible (hdc, rcs + j)) {
FillBox (hdc, rcs[j].left, rcs[j].top, rcs [j].right, rcs [j].bottom);
}
}
for (j = 0; j < 10; j ++) {
if (RectVisible (hdc, rcs + j)) {
FillBox (hdc, rcs[j].left, rcs[j].top, rcs [j].right, rcs [j].bottom);
}
}
EndPaint (hWnd, hdc);
return 0;
EndPaint (hWnd, hdc);
return 0;
}
+4 -4
View File
@@ -53,15 +53,15 @@ static void GDIDemo_Region (HWND hWnd, HDC hdc)
FillBox (hdc, 400, 0, 180, 200);
/*
* Empty two clipping region to free the clipping rectangles used
/*
* Empty two clipping region to free the clipping rectangles used
* by them.
*/
EmptyClipRgn (&my_cliprgn1);
EmptyClipRgn (&my_cliprgn2);
/*
* You should not forget to destroy the FreeClipRectList in your
/*
* You should not forget to destroy the FreeClipRectList in your
* applications.
* Here we do not destroy the heap because we will use it in next call.
*

Some files were not shown because too many files have changed in this diff Show More