for rtems

This commit is contained in:
gengyue
2019-10-31 08:55:17 +08:00
17 changed files with 150 additions and 133 deletions
+1
View File
@@ -22,4 +22,5 @@ Makefile.in
/*.pc
/*config.h
/*config.h.in
/*config.h.in~
+44 -24
View File
@@ -102,12 +102,15 @@ for examples:
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
<https://github.com/VincentWei>
FMSoft also releases miniStudio, which is a WYSIWYG IDE for MiniGUI, as a shareware.
You can also download it from the official site of MiniGUI.
and
http://www.minigui.com/en/download
<https://github.com/FMSoftCN>
We now maintain all documents about MiniGUI on the following public repo:
<https://github.com/VincentWei/minigui-docs>
## A BRIEF BUILDING INSTRUCTION
@@ -349,31 +352,48 @@ the commercial license of MiniGUI, please write to sales@minigui.com.
## COPYING
Copyright (C) 2002~2019, Beijing FMSoft Technologies Co., Ltd.
Copyright (C) 1998~2002, WEI Yongming
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
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 3 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.
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, see <http://www.gnu.org/licenses/>.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Or,
Or,
As this program is a library, any link to this program must follow
GNU General Public License version 3 (GPLv3). If you cannot accept
GPLv3, you need to be licensed from FMSoft.
As this program is a library, any link to this program must follow
GNU General Public License version 3 (GPLv3). If you cannot accept
GPLv3, you need to be licensed from FMSoft.
If you have got a commercial license of this program, please use it
under the terms and conditions of the commercial license.
If you have got a commercial license of this program, please use it
under the terms and conditions of the commercial license.
For more information about the commercial license, please refer to
<http://www.minigui.com/en/about/licensing-policy/>.
For more information about the commercial license, please refer to
<http://www.minigui.com/en/about/licensing-policy/>.
### Special Statement
The above open source or free software license does
not apply to any entity in the Exception List published by
Beijing FMSoft Technologies Co., Ltd.
If you are or the entity you represent is listed in the Exception List,
the above open source or free software license does not apply to you
or the entity you represent. Regardless of the purpose, you should not
use the software in any way whatsoever, including but not limited to
downloading, viewing, copying, distributing, compiling, and running.
If you have already downloaded it, you MUST destroy all of its copies.
The Exception List is published by FMSoft and may be updated
from time to time. For more information, please see
<https://www.fmsoft.cn/exception-list>.
+1 -1
View File
@@ -18,7 +18,7 @@ Please report any bugs and incompatibilities in
* macro: `_MGUSE_SYNC_UPDATE`
1. New API `UpdateInvalidClient`. You can use this function to update
the invalid client region of a window instantly.
1. New API `LoadDevFontFromFile`. You can use this function to load
1. New API `LoadDevFontFromIncoreData`. You can use this function to load
a device font from incore data.
1. Use different colors for the output of `_DBG_PRINTF` and `_ERR_PRINTF`.
1. Add `__mg_save_jpg` function for storing MYBITMAP as JPEG file (10km).
+1
View File
@@ -1,6 +1,7 @@
#!/bin/sh
./configure \
--with-runmode=ths \
--disable-dblclk \
--disable-cursor \
--disable-mousecalibrate \
+36
View File
@@ -0,0 +1,36 @@
# rules for pc-linux
# set your own targaet_os
TARGET_OS=linux
##################################################
# set your compile tool #
CC=gcc
CXX=g++
CPP=g++
AR=ar
AS=as
RANLIB=ranlib
MAKE=/usr/bin/make
##################################################
ARFLAGS=-rc
COFLAG=-c
OBJ=o
LIBA=a
##################################################
# if you don't want to create dynamic, delete it #
LIBSO=so
SOFLAGS=-fPIC -shared -o
##################################################
##################################################
# set your compile flags and install prefix path #
PREFIX=/usr/local
CFLAGS+=-g -Wall -fPIC `pkg-config --cflags freetype2`
LDFLAGS+=
##################################################
+4 -11
View File
@@ -18,7 +18,7 @@ MINIGUI_MAJOR_VERSION=3
MINIGUI_MINOR_VERSION=2
MINIGUI_MICRO_VERSION=2
MINIGUI_INTERFACE_AGE=0
MINIGUI_BINARY_AGE=1
MINIGUI_BINARY_AGE=2
MINIGUI_VERSION=$MINIGUI_MAJOR_VERSION.$MINIGUI_MINOR_VERSION.$MINIGUI_MICRO_VERSION
AC_SUBST(MINIGUI_MAJOR_VERSION)
@@ -76,7 +76,7 @@ AC_FUNC_ALLOCA
AC_FUNC_MEMCMP
AC_FUNC_MMAP
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(time mktime localtime strdup strcasecmp strncasecmp strerror setlocale getpt)
AC_CHECK_FUNCS(time mktime localtime strdup strcasecmp strncasecmp strerror setlocale)
dnl ========================================================================
dnl User selectable options
@@ -89,8 +89,6 @@ message_string="no"
runtime_mode="procs"
stand_alone="no"
incore_res="no"
use_miniguientry="no"
fixed_math="yes"
@@ -304,10 +302,6 @@ AC_ARG_WITH(runmode,
[ --with-runmode=procs/ths/sa the MiniGUI runtime mode <default=procs>],
runtime_mode=$withval)
AC_ARG_ENABLE(standalone,
[ --enable-standalone build MiniGUI-Standalone version <default=no>],
stand_alone=$enableval)
AC_ARG_ENABLE(incoreres,
[ --enable-incoreres use incore resource instead file IO to initialize MiniGUI <default=no>],
incore_res=$enableval)
@@ -732,9 +726,8 @@ AC_ARG_ENABLE(ctrlbidisledit,
[ --enable-ctrlbidisledit include Single-Line BIDI EDIT control <default=no>],
build_ctrl_bidisledit=$enableval)
dnl enable new textedit
AC_ARG_ENABLE(newtextedit,
[ --enable-ctrlnewtextedit include the new implementation of TEXTEDIT control <default=yes>],
AC_ARG_ENABLE(ctrlnewtextedit,
[ --disable-ctrlnewtextedit include the new implementation of TEXTEDIT control <default=yes>],
build_ctrl_textedit_new=$enableval)
AC_ARG_ENABLE(ctrllistbox,
+1 -1
View File
@@ -871,7 +871,7 @@ typedef LVNM_ITEMRUP *PLVNM_ITEMRUP;
*/
#define LVM_GETITEMSTATE 0xF128
/**
/*
* \def LVM_GETSELECTEDCOLUMN
* \brief Retrieves the index of the currently selected column of a listview.
*
+1 -1
View File
@@ -8018,7 +8018,7 @@ MG_EXPORT HDC GUIAPI InitSlaveScreenEx (const char* name, const char* mode, int
*
* \return Valid handle on success, HDC_INVALID on failure.
*/
inline HDC InitSlaveScreen (const char* name, const char* mode)
static inline HDC InitSlaveScreen (const char* name, const char* mode)
{
return InitSlaveScreenEx(name, mode, GDCAP_DPI_DEFAULT);
}
+46 -76
View File
@@ -2726,6 +2726,7 @@ MG_EXPORT HCURSOR GUIAPI GetSystemCursor (int csrid);
* \return Handle to the current system cursor, zero means no current cursor.
*/
MG_EXPORT HCURSOR GUIAPI GetCurrentCursor (void);
#else
// #define LoadCursorFromFile(filename) (do_nothing(), 0)
// #define CreateCursor(x, y, w, h, ANDbs, XORbs, cr) (do_nothing(), 0)
@@ -2866,6 +2867,7 @@ MG_EXPORT void GUIAPI GetCursorPos (POINT* ppt);
MG_EXPORT void GUIAPI SetCursorPos (int x, int y);
#ifdef _MGHAVE_CURSOR
/**
* \fn HCURSOR GUIAPI SetCursorEx (HCURSOR hcsr, BOOL set_def)
* \brief Changes the current cursor.
@@ -2884,7 +2886,7 @@ MG_EXPORT void GUIAPI SetCursorPos (int x, int y);
*
* \sa SetCursor, SetDefaultCursor, GetDefaultCursor
*/
MG_EXPORT HCURSOR GUIAPI SetCursorEx (HCURSOR hcsr, BOOL set_def);
MG_EXPORT HCURSOR GUIAPI SetCursorEx (HCURSOR hcsr, BOOL set_def);
/**
* \fn HCURSOR GUIAPI GetDefaultCursor (void)
@@ -2898,77 +2900,6 @@ MG_EXPORT void GUIAPI SetCursorPos (int x, int y);
*/
MG_EXPORT HCURSOR GUIAPI GetDefaultCursor (void);
#else
static inline HCURSOR SetCursorEx(HCURSOR hcsr, BOOL set_def) {
return (HCURSOR)0;
}
static inline HCURSOR GetDefaultCursor(void) {
return (HCURSOR)0;
}
#endif /* _MGHAVE_CURSOR */
/**
* \def SetCursor(hcsr)
* \brief Changes the current cursor.
*
* This function changes the current cursor to be \a hcsr.
*
* \param hcsr The expected cursor handle.
* \return The old cursor handle.
*
* \note This function defined as a macro calling \a SetCursorEx with
* passing \a set_def as FALSE.
*
* \sa SetCursorEx, SetDefaultCursor
*/
#define SetCursor(hcsr) SetCursorEx (hcsr, FALSE)
/**
* \def SetDefaultCursor(hcsr)
* \brief Changes the current cursor, and set it as the default cursor.
*
* This function changes the current cursor to be \a hcsr, and set it as
* the default cursor.
*
* \param hcsr The expected cursor handle.
* \return The old cursor handle.
*
* \note This function defined as a macro calling \a SetCursorEx with
* passing \a set_def as TRUE.
*
* \sa SetCursorEx, SetCursor
*/
#define SetDefaultCursor(hcsr) SetCursorEx (hcsr, TRUE)
/**
* \fn HCURSOR GUIAPI GetDefaultCursor (void)
* \brief Gets the default cursor.
*
* This function gets the current default cursor.
*
* \return The current default cursor handle.
*
* \sa SetCursorEx, SetDefaultCursor
*/
//MG_EXPORT HCURSOR GUIAPI GetDefaultCursor (void);
#else
//// #define SetCursorEx(hcsr, set_def) (do_nothing(), (HCURSOR)0)
//// #define SetCursor(hcsr) (do_nothing(), (HCURSOR)0)
//// #define SetDefaultCursor(hcsr) (do_nothing(), (HCURSOR)0)
//// #define GetDefaultCursor() (do_nothing(), (HCURSOR)0)
//static inline HCURSOR SetCursorEx(HCURSOR hcsr, BOOL set_def) { return (HCURSOR) 0;}
//static inline HCURSOR SetCursor(HCURSOR hcsr) { return (HCURSOR) 0;}
//static inline HCURSOR SetDefaultCursor(HCURSOR hcsr) { return (HCURSOR) 0;}
//static inline HCURSOR GetDefaultCursor(void) { return (HCURSOR) 0;}
#endif /* _MGHAVE_CURSOR */
#ifdef _MGHAVE_CURSOR
/**
* \fn int GUIAPI ShowCursor (BOOL fShow)
* \brief Shows or hides cursor.
@@ -2985,15 +2916,54 @@ static inline HCURSOR GetDefaultCursor(void) {
*/
MG_EXPORT int GUIAPI ShowCursor (BOOL fShow);
#else
//// #define ShowCursor(fShow) (do_nothing(), (HCURSOR)0)
//static inline int ShowCursor(BOOL fShow) {return 0;}
#else /* _MGHAVE_CURSOR */
static inline HCURSOR SetCursorEx(HCURSOR hcsr, BOOL set_def) {
return (HCURSOR)0;
}
static inline HCURSOR GetDefaultCursor(void) {
return (HCURSOR)0;
}
static inline int GUIAPI ShowCursor (BOOL fShow) {
return 0;
}
#endif /* _MGHAVE_CURSOR */
#endif /* !_MGHAVE_CURSOR */
/**
* \def SetCursor(hcsr)
* \brief Changes the current cursor.
*
* This function changes the current cursor to be \a hcsr.
*
* \param hcsr The expected cursor handle.
* \return The old cursor handle.
*
* \note This function defined as a macro calling \a SetCursorEx with
* passing \a set_def as FALSE.
*
* \sa SetCursorEx, SetDefaultCursor
*/
#define SetCursor(hcsr) SetCursorEx (hcsr, FALSE)
/**
* \def SetDefaultCursor(hcsr)
* \brief Changes the current cursor, and set it as the default cursor.
*
* This function changes the current cursor to be \a hcsr, and set it as
* the default cursor.
*
* \param hcsr The expected cursor handle.
* \return The old cursor handle.
*
* \note This function defined as a macro calling \a SetCursorEx with
* passing \a set_def as TRUE.
*
* \sa SetCursorEx, SetCursor
*/
#define SetDefaultCursor(hcsr) SetCursorEx (hcsr, TRUE)
/** @} end of cursor_fns */
+2 -13
View File
@@ -14,7 +14,6 @@ include $(abs_top_srcdir)/$(TARGET_RULES)
# Flags that can be set on the nmake command line:
# DEBUG=1 for compiling a debugging version
# PREFIX=Some/Directory Base directory for installation
# CONFIGH=YourConfigHeader for defining the mgconfig.h file to use
ifndef DEBUG
DEBUG=0
@@ -37,8 +36,6 @@ docdir = $(datadir)/doc/minigui
# The directory where the include files will be installed
libminiguiincludedir = $(includedir)/minigui
libmgextincludedir = $(includedir)/minigui
# Programs used by "make":
CP = cp
@@ -93,14 +90,6 @@ TIFF_LIBS = $(TIFF_NOLZW_LIBS)
ZLIB_CFLAGS = -I $(ZLIB)
ZLIB_LIBS = $(ZLIB)/zlib.lib
ifdef COMPILE_MGEXTLIB
MGEXT_CFLAGS = -D__MGEXT_LIB__
else
MGEXT_CFLAGS =
endif
MG_PRE_DEFINES = -D__MINIGUI_LIB__ $(MGEXT_CFLAGS)
#################################################################################
ifdef LOCAL_INC
@@ -119,10 +108,10 @@ endif
DEPLIBINC = -I$(DEPLIBDIR)/include
CFLAGS += $(OPTIMIZE) $(DEBUGINFO) $(DEPLIBINC) $(INCLUDES) $(DEFINES) $(DEPCFLAGS) $(MG_PRE_DEFINES) -c
CFLAGS += $(OPTIMIZE) $(DEBUGINFO) $(DEPLIBINC) $(DEFINES) $(DEPCFLAGS) -c
DEFS += -D__MINIGUI_LIB__ -D_REENTRANT
CFLAGS += -I$(abs_top_srcdir) $(INCLUDES) $(DEFS) $(INCS)
CFLAGS += -I$(abs_top_srcdir) -I$(abs_top_srcdir)/include -I$(abs_top_srcdir)/src/include $(INCLUDES) $(DEFS) $(INCS)
%.$(OBJ): %.c
$(CC) $(CFLAGS) $(COFLAG) $<
+1
View File
@@ -1,4 +1,5 @@
abs_top_srcdir=../..
LOCAL_INC=-I$(abs_top_srcdir)/src/control/
include Makefile.am
include ../../rules.make
+3 -3
View File
@@ -511,7 +511,7 @@ char_bitmap_pixmap (LOGFONT* logfont, DEVFONT* devfont,
if (pitch)
*pitch = cacheinfo->pitch;
if (!is_grey && sz) {
if (sz) {
sz->cx = cacheinfo->width;
sz->cy = cacheinfo->height;
}
@@ -592,7 +592,7 @@ char_bitmap_pixmap (LOGFONT* logfont, DEVFONT* devfont,
pcache->flag = TRUE;
}
if (!is_grey && sz) {
if (sz) {
sz->cx = pcache->width;
sz->cy = pcache->height;
}
@@ -604,7 +604,7 @@ char_bitmap_pixmap (LOGFONT* logfont, DEVFONT* devfont,
buffer = get_raster_bitmap_buffer (source->rows * source->pitch);
memcpy(buffer, source->buffer, source->rows * source->pitch);
if (!is_grey && sz) {
if (sz) {
sz->cx = source->width;
sz->cy = source->rows;
}
+2 -1
View File
@@ -1,4 +1,5 @@
abs_top_srcdir=../../../
abs_top_srcdir=../../..
LOCAL_INC=-I$(abs_top_srcdir)/src/font/
include Makefile.am
include ../../../rules.make
+3 -2
View File
@@ -1230,8 +1230,9 @@ int GUIAPI ThrowAwayMessages (HWND hWnd)
for (slot = 0; slot < DEF_NR_TIMERS; slot++) {
if (pMsgQueue->TimerMask & (0x01UL << slot)) {
HWND timer_wnd = __mg_get_timer_hwnd (slot);
if (timer_wnd == hWnd
|| gui_GetMainWindowPtrOfControl (timer_wnd) == (PMAINWIN)hWnd){
if (timer_wnd == hWnd
|| (MG_IS_MAIN_WINDOW (hWnd) &&
gui_GetMainWindowPtrOfControl (timer_wnd) == (PMAINWIN)hWnd)) {
RemoveMsgQueueTimerFlag (pMsgQueue, slot);
}
}
+1
View File
@@ -1,4 +1,5 @@
abs_top_srcdir=../../..
LOCAL_INC=-I$(abs_top_srcdir)/src/newgal/
include Makefile.am
include ../../../rules.make
+1
View File
@@ -1,4 +1,5 @@
abs_top_srcdir=../../..
LOCAL_INC=-I$(abs_top_srcdir)/src/newgal/
include Makefile.am
include ../../../rules.make
+2
View File
@@ -3786,6 +3786,8 @@ static BOOL _gdi_get_glyph_data (PDC pdc, Glyph32 glyph_value,
/* the returned bits will be the subpixled pixmap */
data = (BYTE*)(*devfont->font_ops->get_glyph_greybitmap) (logfont, devfont,
REAL_GLYPH(glyph_value), bbox, &pitch, &scale);
// the width of SUBPIXEL bitmap is 3x real width of bbox
bbox->cx /= 3;
ctxt->cb = _dc_ft2subpixel_scan_line;
}
#endif