merge from rel-3-0 branch

This commit is contained in:
Vincent Wei
2017-10-26 13:34:57 +08:00
parent 06b9ee9263
commit 267d9c1b12
116 changed files with 4333 additions and 873 deletions

2
AUTHORS Normal file
View File

@@ -0,0 +1,2 @@
Beijing FMSoft Technologies Co., Ltd.. (http://www.fmsoft.cn)

View File

@@ -11,8 +11,8 @@ add_definitions (-D_GNU_SOURCE)
# the version number.
set (MINIGUI_MAJOR_VERSION 3)
set (MINIGUI_MINOR_VERSION 2)
set (MINIGUI_MICRO_VERSION 2)
set (MINIGUI_MINOR_VERSION 0)
set (MINIGUI_MICRO_VERSION 12)
set (MINIGUI_NAME "minigui")
set (MGLIB_SUFFIX "")
@@ -30,10 +30,13 @@ include (minigui-private)
__find_threadslib (MINIGUI_LIBRARIES_LIST MINIGUI_INCLUDE_LIST)
__find_mlib (have_libm MINIGUI_LIBRARIES_LIST MINIGUI_INCLUDE_LIST)
############## check static lib ################
set (output_lib_type "Dynamic")
mg_declare_option_and_set_value (_SHAREDLIB_OUTPUT output_sharedlib BOOL ON "whether output the shared lib")
if (_SHAREDLIB_OUTPUT)
set (output_lib_type " Dynamic")
endif (_SHAREDLIB_OUTPUT)
mg_declare_option_and_set_value (_STATICLIB_OUTPUT output_staticlib BOOL OFF "whether output the static lib")
if (_STATICLIB_OUTPUT)
set (output_lib_type "${output_lib_type} + Static")
set (output_lib_type "${output_lib_type} Static")
endif(_STATICLIB_OUTPUT)
############## BASE ################
@@ -96,6 +99,16 @@ mg_declare_option_and_set_value (_MGGAL_CUSTOMGAL gal_custom BOOL OFF "inc
mg_declare_option_and_set_value (_MGGAL_SIGMA8654 gal_sigma8654 BOOL OFF "include sigma8654 NEWGAL engine")
mg_declare_option_and_set_value (_MGGAL_MSTAR gal_mstar BOOL OFF "include mstar NEWGAL engine")
mg_declare_option_and_set_value (_MGGAL_HI3560A gal_hi3560a BOOL OFF "include hi3560a NEWGAL engine")
mg_declare_option_and_set_value (_MGGAL_GDL gal_gdl BOOL OFF "include gdl NEWGAL engine")
mg_declare_option_and_set_value (_MGGAL_ST7167 gal_ST7167 BOOL OFF "include NEWGAL engine for st7167")
mg_declare_option_and_set_value (_MGGAL_STGFB gal_STGFB BOOL OFF "include stgfb NEWGAL engine ST7105 ST7109")
if (_MGGAL_STGFB)
add_definitions (-D_ST_OSLINUX)
add_definitions (-D_ST_7105)
add_definitions (-DARCHITECTURE_ST40)
add_definitions (-DDEFINED_BOOL)
endif (_MGGAL_STGFB)
# if rtosxvfb enable, pcxvfb must disable
mg_declare_option (gal_rtosxvfb BOOL OFF "include RTOS Virtual FrameBuffer NEWGAL engine. Note: you must disable pcxvfb, if you want to enable rtosxvfb")
@@ -160,8 +173,10 @@ mg_declare_option (font_unicodesupport BOOL ON "include UNICODE (ISO-
mg_declare_option (with_fontttfsupport STRING "none" "with_fontttfsupport=ft1/ft2/none")
mg_declare_option (with_ft2includes PATH "" "where the FreeType2 includes are")
mg_declare_option (font_ttfenablecache BOOL OFF "include ttf cache support")
mg_declare_option (font_ttfcachesize STRING "64" "font_ttfcachesize=64/128/256/512/1024")
mg_declare_option (font_ttfcachesize STRING "256" "font_ttfcachesize=64/128/256/512/1024")
mg_declare_option (font_ttfcachenum STRING "10" "font_ttfcachenum=10/20/40")
mg_declare_option (font_ttfgrayadjust BOOL OFF "adjust ttf font bitmap gray_value(range(0~255))")
mg_declare_option (font_ttfgrayadjust_value STRING "50" "font_ttfcachesize range(0~255)")
__find_freetype (with_fontttfsupport with_ft1includes with_ft2includes MINIGUI_LIBRARIES_LIST MINIGUI_INCLUDE_LIST)
@@ -169,6 +184,12 @@ __find_freetype (with_fontttfsupport with_ft1includes with_ft2includes MINIGUI_L
mg_set_value (_MGFONT_TTF ON IF with_fontttfsupport STREQUAL "ft1")
mg_set_value (_MGFONT_FT2 ON IF with_fontttfsupport STREQUAL "ft2")
if (font_ttfgrayadjust)
mg_set_value (_MGFONT_TTF_GRAYADJUST ON)
set (_MGFONT_TTF_GRAYADJUST_VALUE ${font_ttfgrayadjust_value})
message (FATAL ${font_ttfgrayadjust_value})
endif (font_ttfgrayadjust)
if (with_fontttfsupport STREQUAL "none")
else ()
# enable font_unicodesupport
@@ -318,7 +339,7 @@ elseif (with_osname STREQUAL "vxworks")
elseif (with_osname STREQUAL "win32")
mg_set_value (WIN32 ON)
mg_set_value (__NOUNIX__ ON)
add_definitions(-D__NOUNIX__)
add_definitions (-D__NOUNIX__)
elseif (with_osname STREQUAL "darwin")
mg_set_value (__DARWIN__ ON)
elseif (with_osname STREQUAL "threadx")
@@ -553,7 +574,18 @@ else ()
endif (MGLIB_MVFB)
# etc
install (FILES "${etc_files}" DESTINATION etc)
IF (WIN32)
set (RESPATH "$ENV{PREFIX}/share/minigui/res/")
configure_file(
"${PROJECT_SOURCE_DIR}/etc/MiniGUI.cfg.win32.in"
"${PROJECT_BINARY_DIR}/etc/MiniGUI.cfg.win32"
)
install (FILES ${PROJECT_BINARY_DIR}/etc/MiniGUI.cfg.win32
DESTINATION etc
RENAME MiniGUI.cfg)
ELSE()
install (FILES "${etc_files}" DESTINATION etc)
ENDIF (WIN32)
# include
install (FILES "${PROJECT_BINARY_DIR}/mgconfig.h"

674
COPYING Normal file

File diff suppressed because it is too large Load Diff

249
ChangeLog
View File

@@ -1,18 +1,255 @@
*******************************************************************************
What's new (V3.2.2):
10/24-2017
CLEANUP: Remove some 'inline' definitions:
What's new (trunk):
10/26 CLEANUP: svn merge -r 13673:13828 ^/branches/rel-3-0
10/24-2017 CLEANUP: Remove some 'inline' definitions:
* GetIMEPos/SetIMEPos.
* WndRect -> gui_WndRect.
* WndClientRect -> gui_WndClientRect.
*******************************************************************************
What's new (V3.2.1):
12/06. CLEANUP #11: Merge differences from rel-3-0, and remove unnecessary
files. svn merge -r 12913:13673 ../branches/rel-3-0 (wanzheng)
* ... ...
*******************************************************************************
What's new in rel-3-0 branch (3.0.12 OR, 2010/12/03 ~ )
07/29. ENHANCEMENT #11: Use Expand16CBitmapEx to contain the alpha component
for XorBits of cursor and reserve the alpha component of screen when showing
cursor.
* src/kernel/cursor.c
* src/kernel/cursor-sa.c
* src/kernel/cursor-procs.c
07/29. ENHANCEMENT #10: Implement Expand16CBitmapEx, Expand256CBitmapEx, and
ExpandPart16CBitmap APIs, and define inline stubs for the old APIs.
* include/gdi.h
* src/newgdi/bitmap.c
07/21. BUGFIXING #?: Fix the question of dead lock by screensaver_hide. Now send
message to active window and let active window to hide screensaver. (xwyan)
* src/include/internals.h
* src/gui/window.c
* src/misc/license.c
07/06. BUGFIXING #?: Add macro control for we_heap.(xwyan)
* src/gui/lf_manager.c
06/14. BUGFIXING #5640: fix bug of double click of event(houhh)
* src/kernel/event.c
05/25. BUGFIXING #5606: fix bug of selectAll of mTextEdit (wanzheng)
* src/textedit/mtextedit.c
05/20. BUGFIXING #5560: fixed bug of calc window client rect error in
calc_we_area().(houhh)
* src/mybmp/winbmp.c
05/03. BUGFIXING #?: fixed bitmap BI_BITFIELDS format load problem.(humingming)
* src/mybmp/winbmp.c
04/29. BUGFIXING #5534: fixed DrawText can't deal with the first char is '\n'.(humingming)
* src/newgdi/drawtext.c
04/02. BUGFIXING #5527: Change MSG_KEYSYM/MSG_KEYLONGPRESS/MSG_KEYALWAYSPRESS
define value, Modfiy error position of __mg_msgstr2(houhh).
* src/include/msgstr.h
* include/window.h
04/01. BUGFIXING #?: Make GetClipBox rect coordinate correct.(humingming)
* src/newgdi/clip.c
03/25. BUGFIXING #?: After dialog created, we should update local hOwner variable
in DialogBoxIndirectParamEx. It can be avoid to create many model dialogs when
using HWND_DESKTOP as hOwner.(xwyan)
* src/gui/dialog.c
03/22. BUGFIXING #?: Modify GetPalette() and fontGetTypeNameFromName()
prototype. (houhh)
* src/include/fontname.h
* include/gdi.h
03/15. BUGFIXING #?: GetBoundRect() can't deal with an empty rect correctly.
(wanzheng)
* src/newgdi/rect.c
03/07. BUGFIXING #?: Modify wndDrawNCButton to use input hdc when draw
scrollbar. (houhh)
* src/gui/window.c
* include/window.h
03/04. BUGFIXING #?: Add FT_LOAD_FORCE_AUTOHINT style for ft2 font enigne when
open cache support. (houhh)
* src/font/freetype2.c
03/04. ENHANCEMENT #9: Some enhancements for UXDemo. (CR department)
* 1) Eliminate accumulated error of timer.
2) Add an API UpdateInvalidRect() to update the invalidate rect without
calling InvalidateRect(NULL)
3) Improve S3C6410 GAL
4) Make it able to create a hardware surface with different color format
from the screen surface. Attention, All GAL module are influenced.
5) Initialize local-cutting-region (lcrgn) correctly when create a memory
DC.
6) Used GetWindowElementPixelEx to replace GetWindowElementPixel,
specify dc.
* src/control/static.c
* src/gui/window.c
* src/kernel/timer.c
* src/newgal/pixels.c
* src/newgal/s3c6410/gal-s3c6410.c
* src/newgal/s3c6410/gal-s3c6410.h
* src/newgal/surface.c
* src/newgal/videomem-bucket.c
* src/newgdi/gdi.c
* src/sysres/font/_font_inner_res.c
03/04. BUGFIXING #5408: GAL_revcpy should use 'cld' after using 'std'.(xwyan)
* src/include/memops.h
03/02. BUGFIXING #5402: These is a mistake in del_all_devfonts(), and remove
it in font_DelDevFont(). (xhmao)
* src/font/devfont.c
* src/include/devfont.h
03/01. BUGFIXING #5423: remove the restrict of the DC's max size when use
CreateSecondaryDC. (wangxubin)
* src/newgdi/gdi.c
* src/kernel/desktop-comm.c
* src/kernel/desktop-procs.c
* src/gui/window.c
03/01: BUGFIXING #?: Fix a memory leak issue on arcCache. (wanzheng)
* src/kernel/init.c
* src/newgdi/miarc.c
* src/newgdi/mifillarc.h
02/25: ENHANCEMENT #8: Add _MGFONT_TTF_GRAYADJUST for ttf font to adjust the gray
bitmap that return by font engine. (houhh)
* src/newgdi/glyph.c
* CMakeLists.txt
* cmake_mgconfig.h.in
02/21: ENHANCEMENT #7: Enhance PCXVFB IAL, add IAL_RECORD_MANUAL_START support,
makes recording started after <F5> was pressed. (dengmin)
* src/ial/pcxvfbial.c
02/18: ENHANCEMENT #6: Enhance AUTO IAL, let it replay IAL record automatically
if environment value 'MG_ENV_IAL_AUTO_REPLY' is specified.
(dengmin)
* src/ial/auto.c
02/17: ENHANCEMENT #5: Enhance PCXVFB IAL, let MiniGUI can record IAL while
using PCXVFB GAL engine. (dengmin)
* src/ial/pcxvfbial.c
02/15. BUGFIXING#5401: Fix compiling error. (wanzheng)
* src/kernel/cursor.c
01/21. BUGFIXING#5373: Fix the bug of copy text to ES_UPPERCASE or ES_LOWERCASE
style edit control.(humingming)
* src/control/edit.c
* src/textedit/mtextedit.c
01/19. BUGFIXING#?: Fix memory leak in ReleaseDC when do MAKE_REGION_INFINITE, we
should EmptyClipRgn it before exit gui or reinit rgn.(houhh)
* src/newgdi/gdi.c
01/12. ENHANCEMENT #?: Add missing options in CMakeLists.txt and configure.in.
change the time of display splash to 1s. change the event of screensaver.(wangxubin)
* src/kernel/event.c
* src/misc/license.c
* src/newgal/CMakeLists.txt
* CMakeLists.txt
* configure.in
01/11. BUGFIXING #?: Fix bug of core dump when MiniGUI uses Bitmap Font with alpha mask
(ZhaolinHu)
* src/gui/caret.c
* src/gui/window.c
* src/gui/lf_skin.c
* src/font/bitmapfont.c
* src/newgal/surface.c
* src/newgdi/rotatebmp.c
* src/newgdi/readbmp.c
* src/newgdi/bitmap.c
* include/gdi.h
01/11. BUGFIXING #?: Fix bug of using stack in vxworks.(xwyan)
* src/libc/vxworks_pprivate.h
* src/libc/vxworks_pthread.c
01/07. ENHANCEMENT #4: Add mgetc_win32.c for Windows. (wanzheng)
* src/sysres/mgetc_win32.c
* src/sysres/CMakeLists.txt
01/05. BUGFIXING #?: Fix bug of GetClipBox, Add IntersectRect with DevRC.(houhh)
* src/newgdi/clip.c
01/05. BUGFIXING #5342: Fix bug of shadow engine, sometimes core dump
in start and quit.(wangxubin)
* src/newgal/shadow/shadow.c
01/05. CLEANUP #3: Update the description of MSG_ERASEBKGND. (wanzheng)
* include/window.h
12/29. BUGFIXING #?: Fix bug of new textedit calc mulit-charset length not
correct in some borad.(humingming)
* src/textedit/mtextedit.c
12/28. CLEANUP #2: Resolve compiling issues on Windows. (wanzheng)
12/23. BUGFIXING #?: Fix bug of GetSubDC, you can specify off_x/off_y < 0 if
dcType is memdc.(houhh)
* src/newgdi/gdi.c
12/23. BUGFIXING #?: Fix bug of drawing and fill hline, can not limited in
screen area.(houhh)
* src/newgdi/pixel_ops.c
* _dc_draw_hline_clip, _dc_fill_hline_clip.
12/20: ENHANCEMENT #3: Enhance stgfb GAL support 32bit and 255 alpha pixel format.
(humingming)
* src/newgal/stgfb/stgfb_video.c
12/14: ENHANCEMENT #2: Enhance PCXVFB GAL engine, let MiniGUI quit if the VFB
didn't come for a long time. (wanzheng)
* src/newgal/pcxvfb/pcxvfb.c
12/14: BUGFIXING #5(new-bugzilla): Do not destroy the znode of screensaver
until EndSession. (wanzheng)
* src/kernel/desktop-comm.c
* src/kernel/desktop-procs.c
* src/kernel/init.c
* src/kernel/init-lite.c
12/09: BUGFIXING #5340: Close Menu when ESCAPE pressed. (wanzheng)
* src/gui/menu.c
12/09: ENHANCEMENT #1: PCXVFB GAL: Change the group id of the VFB process, so
that we can interrupt the application when debugging. (wanzheng)
* src/kernel/init.c
* src/kernel/init-lite.c
* src/newgal/pcxvfb/pcxvfb.c
12/07: CLEANUP #1: Corrected the spelling mistake `ncsParseConstrcutParams'.
(wanzheng)
* src/textedit/mbtree.c
* src/textedit/mtextedit.c
* src/textedit/object.c
* src/textedit/object.h
12/06: BUGFIXING #?: Fixed the bug of own_overlapped_bitblit. (humingming)
* src/newgal/surface.c
*******************************************************************************
What's new in this branch (3.0.10 OR, 2010/08/06 ~ 2010/12/03)
12/01: BUGFIXING #5337: Fixed bug of RecalcScrollInfo when hide scrollar ,it
should me call ShowScrollBar to hide. (houhh)
* src/gui/window.c
07/28. BUGFIXING: region cause the minigui crash. CLIPRECT's next member can
be NULL, but many functions didnot check it when they use the code like
"while(r1) { .... r1 = r1->next}" (dongjunjie)

View File

@@ -1,6 +1,6 @@
MAJOR_VERSION = 3
MINOR_VERSION = 2
MICRO_VERSION = 1
MINOR_VERSION = 0
MICRO_VERSION = 13
EXTRAVERSION =
MINIGUI_RELEASE=$(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)$(EXTRAVERSION)

View File

@@ -12,9 +12,8 @@ and if yours is also 100% GPL, then you never have to pay us
for the licences. In all other instances, you are better served
by our commercial licence. Read the details below!
Licensing
========
=========
MiniGUI software is licensed under the GPL license. The formal terms
of the GPL license can be found in the GNU General Public License
@@ -23,7 +22,7 @@ section of the MiniGUI User Manual, or the file named "COPYING".
MiniGUI is also available under commercial non-GPL license. For pricing
and ordering information, visit our web page:
http://www.minigui.com/product/index.shtml
http://www.fmsoft.cn/
1. Free use for those who are 100% GPL
@@ -61,17 +60,21 @@ a commercial license to the MiniGUI software in question.
More specifically:
a) If you link MiniGUI in your non-GPL application, you need a commercial
a) If you want to use MiniGUI on an operating system which is not
compatible with GPL (most commercial RTOSes, such as VxWorks and
ThreadX), you need a commercial license for the MiniGUI library.
b) If you link MiniGUI in your non-GPL application, you need a commercial
licence for the MiniGUI library. Using MiniGUI with non-GPL operating
systems (proprietary OSes, like VxWorks, ThreadX, uC/OS-II) falls into
this situation. Linking MiniGUI with your non-GPL application and
proprietary libarires also falls into this situation.
b) If you use MiniGUI library within your organisation and you don't want
c) If you use MiniGUI library within your organisation and you don't want
to risk it falling under the GPL license, you are welcome to purchase
a commercial license.
c) Many users opt for the commercial licence simply because under it
d) Many users opt for the commercial licence simply because under it
FMSoft takes responsibility for its products. Under the GPL licence,
there are no warranties or representations from the
developer (i.e. from FMSoft).
@@ -126,8 +129,13 @@ If you have any questions on MiniGUI licensing, feel free to contact us:
mailto: sales@minigui.com
Patents
=======
MiniGUI is also protected by patents (200810111336.X and so on).
The owner of these patents is Beijing FMSoft technologies Co., Ltd..
GPL = Gnu General Public License, http://www.gnu.org/copyleft/gpl.html
LGPL = GNU General Public License, http://www.gnu.org/copyleft/lgpl.html
FMSoft = Beijing FMSoft Technologies Co., Ltd., http://www.minigui.com
FMSoft = Beijing FMSoft technologies Co., Ltd., http://www.fmsoft.cn

View File

@@ -176,5 +176,5 @@ MiniGUI
GPL = GNU General Public License, http://www.gnu.org/copyleft/gpl.html
LGPL = GNU General Public License, http://www.gnu.org/copyleft/lgpl.html
FMSoft = Beijing FMSoft Technologies Co., Ltd., http://www.minigui.com
FMSoft = FMSoft, http://www.fmsoft.cn

View File

@@ -1,11 +1,9 @@
AUTOMAKE_OPTIONS=foreign
SUBDIRS = src 3rd-party include rtos etc m4 cmake build
EXTRA_DIST = \
GNUmakefile makefile.ng makefile.msvc rules.make \
Version README INSTALL \
LICENSE.POLICY LICENSE.POLICY.zh
COPYING LICENSE.POLICY
minigui.pc.in
# The directory where the include files will be installed

2
NEWS Normal file
View File

@@ -0,0 +1,2 @@
2012-01-16:
MiniGUI GPL Version 3.0.12 released.

273
README Normal file
View File

@@ -0,0 +1,273 @@
NAME
MiniGUI - a mature cross-platform windowing system and GUI system
for real-time embedded systems.
TABLE OF CONTENTS
1. Introduction
2. The runtime modes of MiniGUI
3. New features of this version
4. History
5. About the authors
6. If you have a problem
7. A little FAQ
8. Copying
1. INTRODUCTION
MiniGUI is a mature cross-platform windowing system and GUI (Graphics
User Interface) support system for real-time embedded systems. This
is version 3.2 released by Feynman Software (http://www.minigui.com).
MiniGUI aims to provide a fast, stable, full-featured, and cross-platform
windowing and GUI support system, which is especially fit for
real-time embedded systems based-on Linux/uClinux, eCos, and other
tranditional RTOSes, such as VxWorks, ThreadX, Nucleus, pSOS, uC/OS-II,
and OSE.
This is the MiniGUI core source tarball, which provides windowing
and graphics interfaces as well as a lot of standard controls.
Besides MiniGUI core, Feynman Software also provides some components
for the developers to develop application much easier:
o mGi: An input method component for MiniGUI. This component provides
some typical input methods (such as softkey, hand-writing, and predict
text input for mobile phone) for MiniGUI applications.
o mGp: A printing component for MiniGUI. By using mGp, you can print
out the graphics created by MiniGUI application to general-purpose priters.
o mG3d: A simple three-dimension component for MiniGUI. This component
provides a simple 3D API for application. You can use mG3d to create
3D UI.
o mGUtils: A MiniGUI component which contains miscellaneous utilities
like ColorSelectionDialogBox, FileOpenDialogBox, and so on.
o mGPlus: A MiniGUI component which provides support for advanced graphics
functions like path, gradient, anti-aliase stretch, and color combination.
MiniGUI also is a free software project. In December 1998, the initiator of
Feynman Software, Wei Yongming, began to develop MiniGUI under the
GNU General Public License (GPL). In September 2002, the core developers of
MiniGUI founded Feynman Software and started the commercial marketing with
the free software. By now, Feynman Software still continues to release MiniGUI
as a free software project.
You can download the source of GPL'd MiniGUI versions from the site:
http://www.minigui.org
2. THE RUNTIME MODES OF MINIGUI
You can configure and compile MiniGUI as one of three runtime modes:
* `MiniGUI-Threads': A program running on MiniGUI-Threads can create
multiple cascaded windows in different threads, and all the windows
belong to a single process. MiniGUI-Threads is fit for some real-time
systems on Linux/uClinux, eCos, uC/OS-II, VxWorks, pSOS, ThreadX,
and OSE.
* `MiniGUI-Processes': A program running on MiniGUI-Processes is
an independent process, which can also create multiple windows.
MiniGUI-Processes is fit for some complex embedded systems, such as
PDAs, Thin-Clients or STBs. This mode is only useful for full-featured
UNIX-like operating systems, like Linux.
* `MiniGUI-Standalone': A single process version of MiniGUI. This mode
is useful for some systems which lack of PThread support, like some
buggy uClinux systems.
The original MiniGUI (version 1.0) run in MiniGUI-Threads mode.
It is based on POSIX-compliant thread library. And this thread-based
architecture of MiniGUI is very fit for most traditional embedded
operating systems, such as eCos, uC/OS-II, and VxWorks. However,
if you use embedded Linux, the architecture like X Window will have
better stability and scalability, because of the independent memory
address space of every process.
Since version 2.0, we provides a new runtime mode called MiniGUI-Processes.
You can use MiniGUI-Processes to run more than one MiniGUI-based
program in the form of UNIX process at the same time. MiniGUI-Processes
is a full-featured multi-process version of original MiniGUI -- You
can run a program based on MiniGUI-Processes from a program called
'mginit'. Just like X Window, the former process is called a client,
and the latter the server.
Clients connect to the server via UNIX domain socket, and the server
receives and responses requests from clients. The server provides shared
resources for clients, manage window objects, and sends mouse
(or touch screen) and keyboard events to the active top-most client.
If a client exits or dies for some reasons, it will not damage other
clients and the server.
3. NEW FEATURES OF THIS VERSION
For more information, please refer to ReleaesNotes-3.2.x.pdf file in
the product CD-ROM (in the 'docs/' directory).
4. HISTORY
About ten years have pasted since MiniGUI was initially created at
the end of 1998, and now it becomes much reliable and stable.
During the past years, many remarkable changes have taken place in
the MiniGUI project.
At the original, the version 0.2.xx was based on SVGALib and PThread
(LinuxThreads). Then the version 0.3.xx had many enhanced features
including Graphics Abstract Layer (GAL), Input Abstract Layer (IAL),
and the support for multiple charsets and multiple fonts.
In version 1.0.00, we designed MiniGUI-Lite, which was more fit for
some complex embedded systems, such as PDAs, Thin-Clients, or STBs.
MiniGUI-Lite made the embedded systems more stable and efficient.
The version 1.0.00 provided the native fbcon engine based on Linux
FrameBuffer device directly as well.
In the development of version 1.1.00, we re-wrote the GAL and GDI
interfaces, and provided some advanced video features, such as raster
operation, transparent blitting, alpha blending, and video hardware
acceleration. We also provided some important GDI functions, such as
Ellipse, Arc, Polygon, and FloodFill.
In the development of version 1.6.0, we added advanced 2D graphics
functions to MiniGUI. It provides the abstract logical pen and brush
objects, and can be used to render advanced graphics objects.
In the development of version 2.0.x, we developed MiniGUI-Processes.
In the development of version 3.0.x, we introduced Look & Feel Renderer,
BIDI text support, No-rectagular window, double-buffer window, and
other main featuers.
In the development of version 3.2.x, we enhanced MiniGUI to support Gtk+
v2.16.x smoothly.
A brief history description of the developement progress lay below:
0) 1994 ~ 1996: MiniGUI DOS version.
1) Dec, 1998: Began to write.
2) Apr, 1999: The skeleton of MiniGUI, windowing sub-system
and basic graphics device interfaces.
3) May, 1999: Timer, menu, and the sekleton of control sub-system.
4) Jun, 1999: Chinese input method (by Kang Xiaoning).
5) July, 1999: GIF and JPG loading support (by LI Zhuo).
6) Aug, 1999: Some standard controls (Portion by Zhao Jianghua).
7) Sep, 1999: Dialog boxes and message boxes.
8) Sep, 1999: Snapshot of screen or window.
9) Jan., 2000: VCOnGUI (Virtual Console on MiniGUI) version 0.2.02.
10) Mar., 2000: Linux distribution installer based-on MiniGUI for
HappyLinux 1.0.
11) Jun., 2000: Began to develop version 1.0.xx.
12) Sep., 2000: MiniGUI version 0.3.06 released.
13) Oct., 2000: MiniGUI version 0.9.00 released.
14) Nov., 2000: MiniGUI version 0.9.96 released.
15) Jan., 2001: MiniGUI version 0.9.98 released. You can build
MiniGUI-Lite from this version.
16) Jan., 2001: MiniGUI version 1.0.00Beta1 released.
17) Feb., 2001: MiniGUI version 1.0.00Pre1 released.
18) Apr., 2001: MiniGUI version 1.0.00 released (2001/04/16).
18) Sep., 2001: MiniGUI version 1.1.0Pre1 released (2001/09/12).
19) Sep., 2001: MiniGUI version 1.0.9 released (2001/09/17),
this will be the last version of
source branch 1.0.x.
20) Oct., 2001: MiniGUI version 1.1.0Pre4 released (2001/10/22).
This version have new GAL and GDI interfaces.
21) Mar., 2002: MiniGUI official version 1.1.0 released
(2002/03/08).
MiniGUI API Reference documentation
version 0.9 released.
22) Mar., 2002: MiniGUI API Reference documentation
version 1.0 released.
23) Apr., 2002: MiniGUI the new stable version 1.2.0 released
(2002/04/11).
24) Sep., 2002: The main developers of MiniGUI founded a
new software corporation: Beijing Feynman Software
Technology Co., Ltd.. And the development and
maintenance of MiniGUI changes from
loosely-knit team to business organization.
25) Mar., 2003: MiniGUI official version 1.2.5 released
(2003/03/23).
25) May., 2003: MiniGUI official version 1.2.6 released
(2003/05/18).
26) Sep., 2003: MiniGUI official version 1.3.1 released
(2003/09/11).
27) Jan., 2004: MiniGUI official version 1.5.1 released
(2004/01/18).
28) Feb., 2004: MiniGUI tested on eCos and uC/OS-II.
29) Jun., 2004: MiniGUI tested on VxWorks.
30) Jan., 2005: MiniGUI tested on ThreadX and pSOS.
31) Feb., 2005: MiniGUI official version 1.6.1 released.
32) Aug., 2005: MiniGUI beta version 2.0.0 released.
33) Sep., 2005: MiniGUI official version 1.6.8 released.
34) Oct., 2005: MiniGUI official version 2.0.2 released.
35) Jun., 2006: MiniGUI provides support for OSE.
36) Jul., 2006: MiniGUI official version 2.0.3/1.6.9 released.
37) Nov., 2007: MiniGUI official version 2.0.4/1.6.10 released.
38) Apr., 2009: MiniGUI official version 3.0.2 released.
39) Oct., 2009: MiniGUI official version 3.0.4 released.
40) Jan., 2010: MiniGUI official version 3.0.6 released.
41) May., 2010: MiniGUI official version 3.0.8 released.
42) May., 2010: MiniGUI official version 3.2.0 released.
43) Oct., 2010: MiniGUI official version 3.0.10 released.
5. ABOUT THE AUTHORS
The original author of MiniGUI is Wei Yongming, and now MiniGUI is
maintained by Feynman Software. For more information, please browse
our home page:
http://www.minigui.com
The GPL'd versions and dependent libraries of MiniGUI can be found at:
http://www.minigui.org
6. IF YOU HAVE A PROBLEM
If you have any technical problem, advice or comment, please send
messages to consult@minigui.com.
If you are interested in the commercial MiniGUI products and licensing,
please write to sales@minigui.com.
7. A LITTLE FAQ
Q: Is GPL'd MiniGUI free for commercial use?
A: Simply no. Feynman Software release some versions of MiniGUI under
GPL license. It is free for those who are 100% GPL and those who
never copy, modify and distribute MiniGUI. But if you want to use
these GPL'd versions for commerce, you should get the commercial
license from Feynman Software first.
Q: Which operating system does MiniGUI support?
A: MiniGUI can run on Linux/uClinux, uC/OS-II, eCos, ThreadX, pSOS,
VxWorks, ThreadX, OSE, and even Win32. Any other real-time OSes can
be supported theoretically.
Q: Which architecture does MiniGUI support?
A: Intel x86, ARM (ARM7/AMR9/StrongARM/xScale), PowerPC, MIPS,
DragonBall, ColdFire, Blackfin, and so on.
Q: Does MiniGUI offer the support for grey LCD with 4bpp (bits per pixel)?
A: Yes, it offers. It even offers the support for 1bpp and 2bpp LCD.
8. COPYING
Copyright (C) 2002~2010, Beijing FMSoft Technology Co., Ltd.
All rights reserved.

View File

@@ -1,9 +1,9 @@
Version 3.2.2 (the official release)
Version 3.0.13 (2017/10/26)
This release needs the following resource packages:
* minigui-res-3.0.10.tar.gz
* minigui-res-3.0.12.tar.gz
The latest samples package is:
* mg-samples-3.0.10.tar.gz
* mg-samples-3.0.13.tar.gz

View File

@@ -34,14 +34,23 @@ endmacro (__find_mlib)
#
macro (__find_pnglib _image_pngsupport _lib_list _include_list)
if (${_image_pngsupport})
find_package (PNG REQUIRED)
INCLUDE (FindPkgConfig)
PKG_CHECK_MODULES (PNG libpng)
if (PNG_FOUND)
#mg_seperate_string (${ZLIB_LIBRARY})
set (${_lib_list} "${${_lib_list}} -l${ZLIB_LIBRARY_NAME}")
# message ("${PNG_PNG_INCLUDE_DIR} ${PNG_LIBRARY}")
#mg_seperate_string (${PNG_LIBRARY})
set (${_lib_list} "${${_lib_list}} -L${PNG_LIBRARY_DIR} -l${PNG_LIBRARY_NAME}")
set (${_include_list} "${${_include_list}} -I${PNG_INCLUDE_DIR}")
foreach (i ${PNG_INCLUDE_DIRES})
set (${_include_list} "${${_include_list}} -I${i}")
endforeach (i ${PNG_INCLUDE_DIRES})
foreach (L ${PNG_LIBRARY_DIRS})
set (${_lib_list} "${${_lib_list}} -L${L}")
endforeach (L ${PNG_LIBRARY_DIRS})
foreach (l ${PNG_LIBRARIES})
set (${_lib_list} "${${_lib_list}} -l${l}")
endforeach (l ${PNG_LIBRARIES})
link_directories (${PNG_LIBRARY_DIRS})
include_directories (${PNG_INCLUDE_DIRS})
else ()
set (${_image_pngsupport} OFF)
endif (PNG_FOUND)
@@ -77,20 +86,23 @@ if (${_with_fontttfsupport} STREQUAL "ft1")
# endif (${_with_ft1includes} STREQUAL "")
set (${_with_fontttfsupport} "none")
elseif (${_with_fontttfsupport} STREQUAL "ft2")
# specify if have own FreeType2 library
# check for FreeType2 library
find_package (FREETYPE REQUIRED)
INCLUDE (FindPkgConfig)
PKG_CHECK_MODULES (FREETYPE freetype2)
if (FREETYPE_FOUND)
if (${_with_ft2includes} STREQUAL "")
# message ("${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}")
include_directories (${FREETYPE_INCLUDE_DIR})
#mg_seperate_string (${FREETYPE_LIBRARY})
set (${_lib_list} "${${_lib_list}} -L${FREETYPE_LIBRARY_DIR} -l${FREETYPE_LIBRARY_NAME}")
set (${_include_list} "${${_include_list}} -I${FREETYPE_INCLUDE_DIR_ft2build} -I${FREETYPE_INCLUDE_DIR_freetype2}")
else ()
include_directories (${${_with_ft2includes}})
set (${_include_list} "${${_with_ft2includes}}")
endif (${_with_ft2includes} STREQUAL "")
foreach (i ${FREETYPE_INCLUDE_DIRES})
set (${_include_list} "${${_include_list}} -I${i}")
endforeach (i ${FREETYPE_INCLUDE_DIRES})
foreach (L ${FREETYPE_LIBRARY_DIRS})
set (${_lib_list} "${${_lib_list}} -L${L}")
endforeach (L ${FREETYPE_LIBRARY_DIRS})
foreach (l ${FREETYPE_LIBRARIES})
set (${_lib_list} "${${_lib_list}} -l${l}")
endforeach (l ${FREETYPE_LIBRARIES})
link_directories (${FREETYPE_LIBRARY_DIRS})
include_directories (${FREETYPE_INCLUDE_DIRS})
else ()
set (${_with_fontttfsupport} "none")
endif (FREETYPE_FOUND)

View File

@@ -407,6 +407,12 @@
/* Define if compile max ttf cahce number for 10 (default value) */
#cmakedefine _MGMAX_TTF_CACHE @_MGMAX_TTF_CACHE@
/* Define if include ttf grayadjust*/
#cmakedefine _MGFONT_TTF_GRAYADJUST 1
/* Define if ttf gray adjust value(50 default value) */
#cmakedefine _MGFONT_TTF_GRAYADJUST_VALUE @_MGFONT_TTF_GRAYADJUST_VALUE@
/* Define if support UPF font */
#cmakedefine _MGFONT_UPF 1

View File

@@ -185,7 +185,7 @@ mainmenu_option next_comment
comment 'Look and Feel options'
choice 'LF reference' \
"Skin CONFIG_LF_SKIN \
Flat CONFIG_LF_FLAT
Flat CONFIG_LF_FLAT " none
endmenu

View File

@@ -3,7 +3,7 @@ AC_PREREQ(2.52)
dnl ========================================================================
dnl Put the name and version of the package here
AC_INIT([libminigui], [3.2.2])
AC_INIT([libminigui], [3.0.13])
AC_CONFIG_SRCDIR([src/main/main.c])
dnl Set various version strings - taken gratefully from the SDL sources
@@ -18,8 +18,8 @@ dnl Set various version strings - taken gratefully from the SDL sources
# set MINIGUI_BINARY_AGE and MINIGUI_INTERFACE_AGE to 0.
#
MiniGUI_MAJOR_VERSION=3
MiniGUI_MINOR_VERSION=2
MiniGUI_MICRO_VERSION=1
MiniGUI_MINOR_VERSION=0
MiniGUI_MICRO_VERSION=13
MiniGUI_INTERFACE_AGE=0
MiniGUI_BINARY_AGE=0
MiniGUI_VERSION=$MiniGUI_MAJOR_VERSION.$MiniGUI_MINOR_VERSION.$MiniGUI_MICRO_VERSION
@@ -47,7 +47,7 @@ AC_CANONICAL_SYSTEM
dnl ========================================================================
dnl Init automake
AM_INIT_AUTOMAKE([foreign no-define])
AM_INIT_AUTOMAKE([no-define])
AC_CONFIG_HEADER(mgconfig.h)
dnl ========================================================================
@@ -1141,8 +1141,8 @@ CheckST7167Video()
if test x$video_st7167 = xyes; then
AC_DEFINE(_MGGAL_ST7167, 1,
[Define if include NEWGAL engine for ST7167])
VIDEO_SUBDIRS="$VIDEO_SUBDIRS st7167"
VIDEO_DRIVERS="$VIDEO_DRIVERS st7167/libvideo_st7167.la"
VIDEO_SUBDIRS="$VIDEO_SUBDIRS dfb"
VIDEO_DRIVERS="$VIDEO_DRIVERS dfb/libvideo_st7167.la"
LIBS="$LIBS -ldirectfb"
fi
fi
@@ -1410,7 +1410,6 @@ fi
if test "x$build_dlcustom_ial_engine" = "xyes"; then
AC_DEFINE(_MGIAL_DLCUSTOM, 1,
[Define if include dlcustom engine for customer's board])
SYSTEM_LIBS="$SYSTEM_LIBS -ldl"
fi
@@ -1843,6 +1842,7 @@ fi
if test "x$build_tslib_ial_engine" = "xyes"; then
AC_DEFINE(_MGIAL_TSLIB, 1,
[Define if include IAL engine for TSLIB])
SYSTEM_LIBS="$SYSTEM_LIBS -lts"
fi
if test "x$build_console_ial_engine" = "xyes"; then
@@ -2541,8 +2541,7 @@ echo "Going to generate license pictures ..."
cd src/sysres/license/
./runme.sh $LICENSE_PICTURE > /dev/null
if [[ $? -ne 0 ]]; then
echo "Fatal: failed to generate license pictures."
exit 1
echo "WARNING: failed to generate license pictures."
else
echo "Done."
fi

474
etc/MiniGUI.cfg.win32.in Normal file
View File

@@ -0,0 +1,474 @@
# This configuration file is for MiniGUI V3.0.x
#
# Copyright (C) 2002~2008 Feynman Software
# Copyright (C) 1998~2002 Wei Yongming.
#
# Web: http://www.minigui.com
#
# This configuration file must be installed in /etc,
# /usr/local/etc or your home directory. When you install it in your
# home directory, it should be named ".MiniGUI.cfg".
#
# The priority of above configruation files is ~/.MiniGUI.cfg,
# /usr/local/etc/MiniGUI.cfg, and then /etc/MiniGUI.cfg.
#
# If you change the install path of MiniGUI resource, you should
# modify this file to meet your configuration.
#
# NOTE:
# The format of this configuration file has changed since the last release.
# Please DONT forget to provide the latest MiniGUI.cfg file for your MiniGUI.
#
[system]
# GAL engine and default options
gal_engine=pc_xvfb
defaultmode=800x600-16bpp
# IAL engine
ial_engine=pc_xvfb
mdev=/dev/input/mice
mtype=IMPS2
[fbcon]
defaultmode=1024x768-16bpp
[qvfb]
defaultmode=640x480-16bpp
display=0
#{{ifdef _MGGAL_PCXVFB
[pc_xvfb]
defaultmode=800x600-16bpp
window_caption=XVFB-for-MiniGUI-3.0-(Gtk-Version)
exec_file=gvfb
#}}
[rtos_xvfb]
defaultmode=800x600-16bpp
#{{ifdef _MGGAL_SHADOW
[shadow]
real_engine=pc_xvfb
defaultmode=800x600-16bpp
rotate_screen=normal
#}}
#{{ifdef _MGGAL_MLSHADOW
[mlshadow]
real_engine=qvfb
defaultmode=800x600-16bpp
def_bgcolor=0x00FF00
double_buffer=enable
#}}
# The first system font must be a logical font using RBF device font.
[systemfont]
font_number=5
font0=rbf-FixedSys-rrncnn-8-16-ISO8859-1
font1=*-FixedSys-rrncnn-*-16-ISO8859-1
font2=*-Courier-rrncnn-*-16-ISO8859-1
font3=*-SansSerif-rrncnn-*-16-ISO8859-1
font4=*-System-rrncnn-*-16-ISO8859-1
default=0
wchar_def=4
fixed=1
caption=4
menu=2
control=3
[rawbitmapfonts]
font_number=0
[varbitmapfonts]
font_number=0
[upf]
font_number=0
[qpf]
font_number=0
[truetypefonts]
font_number=0
[mouse]
dblclicktime=300
[event]
timeoutusec=300000
repeatusec=50000
[cursorinfo]
# Edit following line to specify cursor files path
cursorpath=@RESPATH@/cursor/
cursornumber=23
cursor0=d_arrow.cur
cursor1=d_beam.cur
cursor2=d_pencil.cur
cursor3=d_cross.cur
cursor4=d_move.cur
cursor5=d_sizenwse.cur
cursor6=d_sizenesw.cur
cursor7=d_sizewe.cur
cursor8=d_sizens.cur
cursor9=d_uparrow.cur
cursor10=d_none.cur
cursor11=d_help.cur
cursor12=d_busy.cur
cursor13=d_wait.cur
cursor14=g_rarrow.cur
cursor15=g_col.cur
cursor16=g_row.cur
cursor17=g_drag.cur
cursor18=g_nodrop.cur
cursor19=h_point.cur
cursor20=h_select.cur
cursor21=ho_split.cur
cursor22=ve_split.cur
[resinfo]
respath=@RESPATH@
[classic]
# Note that max number defined in source code is 5.
iconnumber=5
icon0=form.ico
icon1=failed.ico
icon2=help.ico
icon3=warning.ico
icon4=excalmatory.ico
# default icons for new OpenFileDialogBox
dir=folder.ico
file=textfile.ico
# default icons for TreeView control
treefold=fold.ico
treeunfold=unfold.ico
# bitmap used by BUTTON control
radiobutton=classic_radio_button.bmp
checkbutton=classic_check_button.bmp
# background picture, use your favirate photo
bgpicture=none
bgpicpos=center
# bgpicpos=upleft
# bgpicpos=downleft
# bgpicpos=upright
# bgpicpos=downright
# bgpicpos=upcenter
# bgpicpos=downcenter
# bgpicpos=vcenterleft
# bgpicpos=vcenterright
# bgpicpos=none
#window element metrics
caption=20
menu=25
border=2
scrollbar=16
#window element colors
fgc_active_caption=0xFFFFFFFF
bgca_active_caption=0xFF6A240A
bgcb_active_caption=0xFF6A240A
fgc_menu=0xFF000000
bgc_menu=0xFFCED3D6
fgc_msgbox=0xFF000000
fgc_tip=0xFF000000
bgc_tip=0xFFE7FFFF
fgc_active_border=0xFFCED3D6
fgc_inactive_border=0xFFCED3D6
fgc_inactive_caption=0xFFC8D0D4
bgca_inactive_caption=0xFF808080
bgcb_inactive_caption=0xFF808080
fgc_window=0xFF000000
bgc_window=0xFFFFFFFF
fgc_3dbox=0xFF000000
mainc_3dbox=0xFFCED3D6
fgc_selected_item=0xFFFFFFFF
bgc_selected_item=0xFF6B2408
bgc_selected_lostfocus=0xFFBDA69C
fgc_disabled_item=0xFF848284
bgc_disabled_item=0xFFCED3D6
fgc_hilight_item=0xFFFFFFFF
bgc_hilight_item=0xFF6B2408
fgc_significant_item=0xFFFFFFFF
bgc_significant_item=0xFF6B2408
bgc_desktop=0xFFC08000
#{{ifdef _MGLF_RDR_FLAT
[flat]
# Note that max number defined in source code is 5.
iconnumber=5
icon0=form-flat.ico
icon1=failed-flat.ico
icon2=help-flat.ico
icon3=warning-flat.ico
icon4=excalmatory-flat.ico
# default icons for new OpenFileDialogBox
dir=folder-flat.ico
file=textfile-flat.ico
# default icons for TreeView control
treefold=fold-flat.ico
treeunfold=unfold-flat.ico
# bitmap used by BUTTON control
radiobutton=flat_radio_button.bmp
checkbutton=flat_check_button.bmp
# background picture, use your favirate photo
bgpicture=none
bgpicpos=center
#window element metrics
caption=20
menu=25
border=1
scrollbar=16
#window element colors
fgc_active_caption=0xFFFFFFFFF
bgca_active_caption=0xFF000000
bgcb_active_caption=0xFF000000
fgc_inactive_caption=0xFF000000
bgca_inactive_caption=0xFFFFFFFF
bgcb_inactive_caption=0xFFFFFFFF
fgc_menu=0xFF000000
bgc_menu=0xFFD8D8D8
fgc_msgbox=0xFF000000
fgc_tip=0xFF000000
bgc_tip=0xFFE7FFFF
fgc_active_border=0xFF000000
fgc_inactive_border=0xFF848284
fgc_window=0xFF000000
bgc_window=0xFFFFFFFF
fgc_3dbox=0xFF000000
mainc_3dbox=0xFFFFFFFF
fgc_selected_item=0xFFFFFFFF
bgc_selected_item=0xFF000000
bgc_selected_lostfocus=0xFFBDA69C
fgc_disabled_item=0xFF848284
bgc_disabled_item=0xFF000000
fgc_hilight_item=0xFFFFFFFF
bgc_hilight_item=0xFF664E4A
fgc_significant_item=0xFFFFFFFF
bgc_significant_item=0xFF000000
bgc_desktop=0xFFC08000
flat_tab_normal_color=0xFFC6D2CF
#}}
#{{ifdef _MGLF_RDR_SKIN
[skin]
# Note that max number defined in source code is 5.
iconnumber=5
icon0=form.ico
icon1=failed.ico
icon2=help.ico
icon3=warning.ico
icon4=excalmatory.ico
# default icons for new OpenFileDialogBox
dir=folder.ico
file=textfile.ico
# default icons for TreeView control
treefold=fold.ico
treeunfold=unfold.ico
# background picture, use your favirate photo
bgpicture=none
bgpicpos=center
#window element metrics
caption=25
menu=25
border=1
scrollbar=17
fgc_active_caption=0xFFFFFFFF
bgca_active_caption=0xFFE35400
bgcb_active_caption=0xFF686868
fgc_menu=0xFF000000
bgc_menu=0xFFD4D6FF
fgc_msgbox=0xFF000000
fgc_tip=0xFF000000
bgc_tip=0xFFFFFFFF
fgc_active_border=0xFFC8D0D4
fgc_inactive_border=0xFFC8D0D4
fgc_inactive_caption=0xFFF8E4D8
bgca_inactive_caption=0xFFDF967A
bgcb_inactive_caption=0xFF686868
fgc_window=0xFF000000
bgc_window=0xFFFFFFFF
fgc_3dbox=0xFF000000
mainc_3dbox=0xFFD8E9EC
fgc_selected_item=0xFFFFFFFF
bgc_selected_item=0xFFC56A31
bgc_selected_lostfocus=0xFFD8E9EC
fgc_disabled_item=0xFF99A8AC
bgc_disabled_item=0xFFFFFFFF
fgc_hilight_item=0xFFFFFFFF
bgc_hilight_item=0xFFC56A31
fgc_significant_item=0xFFFFFFFF
bgc_significant_item=0xFFC56A31
bgc_desktop=0xFF984E00
skin_bkgnd=skin_bkgnd.bmp
skin_caption=skin_caption.gif
skin_caption_btn=skin_cpn_btn.gif
#for scrollbar
skin_scrollbar_hshaft=skin_sb_hshaft.bmp
skin_scrollbar_vshaft=skin_sb_vshaft.bmp
skin_scrollbar_hthumb=skin_sb_hthumb.bmp
skin_scrollbar_vthumb=skin_sb_vthumb.bmp
skin_scrollbar_arrows=skin_sb_arrows.bmp
#for border
skin_tborder=skin_tborder.bmp
skin_bborder=skin_bborder.bmp
skin_lborder=skin_lborder.bmp
skin_rborder=skin_rborder.bmp
skin_arrows=skin_arrows.gif
skin_arrows_shell=skin_arrows_shell.bmp
skin_pushbtn=skin_pushbtn.gif
skin_radiobtn=skin_radiobtn.gif
skin_checkbtn=skin_checkbtn.bmp
#for treeview
skin_tree=skin_tree.bmp
skin_header=skin_header.bmp
skin_tab=skin_tab.gif
#for trackbar
skin_tbslider_h=skin_tbslider_h.gif
skin_tbslider_v=skin_tbslider_v.gif
skin_trackbar_horz=skin_tb_horz.gif
skin_trackbar_vert=skin_tb_vert.gif
#for progressbar
skin_progressbar_htrack=skin_pb_htrack.gif
skin_progressbar_vtrack=skin_pb_vtrack.gif
skin_progressbar_hchunk=skin_pb_htruck.bmp
skin_progressbar_vchunk=skin_pb_vtruck.bmp
#}}
[fashion]
# Note that max number defined in source code is 5.
iconnumber=5
icon0=form.ico
icon1=failed.ico
icon2=help.ico
icon3=warning.ico
icon4=excalmatory.ico
# default icons for new OpenFileDialogBox
dir=folder.ico
file=textfile.ico
# default icons for TreeView control
treefold=fold.ico
treeunfold=unfold.ico
# bitmap used by BUTTON control
radiobutton=fashion_radio_btn.bmp
checkbutton=fashion_check_btn.bmp
# background picture, use your favirate photo
bgpicture=none
bgpicpos=center
#window element metrics
caption=25
menu=25
border=1
scrollbar=17
fgc_active_caption=0xFFFFFFFF
bgca_active_caption=0xFFE35400
bgcb_active_caption=0xFFFF953D
fgc_menu=0xFF000000
bgc_menu=0xFFFFE4BF
fgc_msgbox=0xFF000000
fgc_tip=0xFF000000
bgc_tip=0xFFFFFFFF
fgc_active_border=0xFFC8D0D4
fgc_inactive_border=0xFFC8D0D4
fgc_inactive_caption=0xFFF8E4D8
bgca_inactive_caption=0xFFDF967A
bgcb_inactive_caption=0xFFEBB99D
fgc_window=0xFF000000
bgc_window=0xFFEBB99D
fgc_3dbox=0xFF000000
mainc_3dbox=0xFFD8E9EC
fgc_selected_item=0xFFFFFFFF
bgc_selected_item=0xFFC56A31
bgc_selected_lostfocus=0xFFD8E9EC
fgc_disabled_item=0xFF99A8AC
bgc_disabled_item=0xFFFFFFFF
fgc_hilight_item=0xFFFFFFFF
bgc_hilight_item=0xFFC56A31
fgc_significant_item=0xFFFFFFFF
bgc_significant_item=0xFFC56A31
bgc_desktop=0xFF984E00

View File

@@ -8,10 +8,10 @@
*
\verbatim
Copyright (C) 2002-2009 Feynman Software.
Copyright (C) 2002-2012 FMSoft.
Copyright (C) 1998-2002 Wei Yongming.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -25,7 +25,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2002-2009 Feynman Software.
* Copyright (C) 2002-2012 FMSoft.
* Copyright (C) 1998-2002 Wei Yongming.
*
* The definitions of some data types and byte order macros

View File

@@ -7,10 +7,10 @@
*
\verbatim
Copyright (C) 2002-2009 Feynman Software.
Copyright (C) 2002-2012 FMSoft.
Copyright (C) 1998-2002 Wei Yongming.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -24,7 +24,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2002-2009 Feynman Software.
* Copyright (C) 2002-2012 FMSoft.
* Copyright (C) 1999-2002 Wei Yongming.
*/

View File

@@ -1,12 +1,30 @@
/**
* \file customial.h
* \author Wei Yongming <ymwei@minigui.org>
* \date 2007/06/06
*
* This file is the head file for Custom IAL Engine.
*
\verbatim
Copyright (C) 2007-2012 FMSoft.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
\endverbatim
*/
/*
** $Id: customial.h 11349 2009-03-02 05:00:43Z weiym $
**
** custom.h:. the head file for Custom IAL Engine.
**
** Copyright (C) 2007 ~ 2009 Feynman Software.
**
** Created by Wei YongMing, 2007/06/06
*/
* $Id: customial.h 11349 2009-03-02 05:00:43Z weiym $
*
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2007-2012 FMSoft.
*/
#ifndef GUI_IAL_CUSTOM_H
#define GUI_IAL_CUSTOM_H

View File

@@ -10,10 +10,10 @@
*
\verbatim
Copyright (C) 2002-2009 Feynman Software.
Copyright (C) 2002-2012 FMSoft.
Copyright (C) 1998-2002 Wei Yongming.
All rights reserved by Feynman Software.
All rights reserved by FMSoft.
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -27,7 +27,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2002-2009 Feynman Software.
* Copyright (C) 2002-2012 FMSoft.
* Copyright (C) 1998-2002 Wei Yongming.
*
* The idea comes from LGPL'ed SDL by Sam Lantinga.

View File

@@ -7,10 +7,10 @@
*
\verbatim
Copyright (C) 2002-2009 Feynman Software.
Copyright (C) 2002-2012 FMSoft.
Copyright (C) 1998-2002 Wei Yongming.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -24,7 +24,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2002-2009 Feynman Software.
* Copyright (C) 2002-2012 FMSoft.
* Copyright (C) 1998-2002 Wei Yongming.
*
* Fixed-point math routins come from Allegro (a gift software)

View File

@@ -7,10 +7,10 @@
*
\verbatim
Copyright (C) 2002-2009 Feynman Software.
Copyright (C) 2002-2012 FMSoft.
Copyright (C) 1998-2002 Wei Yongming.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -24,7 +24,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2002-2009 Feynman Software.
* Copyright (C) 2002-2012 FMSoft.
* Copyright (C) 1998-2002 Wei Yongming.
*/
@@ -2311,7 +2311,7 @@ MG_EXPORT int GUIAPI SetRasterOperation (HDC hdc, int rop);
*
* \sa SetPalette
*/
MG_EXPORT BOOL GUIAPI GetPalette (HDC hdc, int start, int len, GAL_Color* cmap);
MG_EXPORT int GUIAPI GetPalette (HDC hdc, int start, int len, GAL_Color* cmap);
/**
* \fn BOOL GUIAPI SetPalette (HDC hdc, int start, int len, GAL_Color* cmap)
@@ -7419,6 +7419,9 @@ struct _BITMAP
/*void* bmAlphaPixelFormat;*/
/** The Alpha Mask array of the bitmap */
Uint8* bmAlphaMask;
/** The Alpha Pitch of the bitmap */
Uint32 bmAlphaPitch;
};
/** @} end of bmp_struct */
@@ -8018,6 +8021,11 @@ MG_EXPORT void GUIAPI ExpandMonoBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
const BYTE* my_bits, Uint32 my_pitch,
Uint32 w, Uint32 h, DWORD flags, Uint32 bg, Uint32 fg);
MG_EXPORT void GUIAPI Expand16CBitmapEx (HDC hdc, BYTE* bits, Uint32 pitch,
const BYTE* my_bits, Uint32 my_pitch,
Uint32 w, Uint32 h, DWORD flags,
const RGB* pal, BYTE use_pal_alpha, BYTE alpha);
/**
* \fn void GUIAPI Expand16CBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
* const BYTE* my_bits, Uint32 my_pitch,
@@ -8039,12 +8047,21 @@ MG_EXPORT void GUIAPI ExpandMonoBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
*
* \sa ExpandMonoBitmap, Expand256CBitmap
*/
MG_EXPORT void GUIAPI Expand16CBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
static inline void GUIAPI Expand16CBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
const BYTE* my_bits, Uint32 my_pitch,
Uint32 w, Uint32 h, DWORD flags, const RGB* pal);
Uint32 w, Uint32 h, DWORD flags, const RGB* pal)
{
Expand16CBitmapEx (hdc, bits, pitch, my_bits, my_pitch,
w, h, flags, pal, FALSE, 0xFF);
}
MG_EXPORT void GUIAPI Expand256CBitmapEx (HDC hdc, BYTE* bits, Uint32 pitch,
const BYTE* my_bits, Uint32 my_pitch,
Uint32 w, Uint32 h, DWORD flags,
const RGB* pal, BYTE use_pal_alpha, BYTE alpha,
CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
/**
* \fn void GUIAPI Expand16CBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
* \fn void GUIAPI Expand256CBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
* const BYTE* my_bits, Uint32 my_pitch,
* Uint32 w, Uint32 h, DWORD flags, const RGB* pal,
* CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
@@ -8067,10 +8084,14 @@ MG_EXPORT void GUIAPI Expand16CBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
*
* \sa ExpandMonoBitmap, Expand16CBitmap
*/
MG_EXPORT void GUIAPI Expand256CBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
static inline void GUIAPI Expand256CBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
const BYTE* my_bits, Uint32 my_pitch,
Uint32 w, Uint32 h, DWORD flags, const RGB* pal,
CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp)
{
Expand256CBitmapEx (hdc, bits, pitch, my_bits, my_pitch,
w, h, flags, pal, FALSE, 0xFF, cb_draw, mybmp);
}
/**
* \fn void GUIAPI CompileRGBABitmap (HDC hdc, BYTE* bits, Uint32 pitch, \
@@ -8125,10 +8146,22 @@ MG_EXPORT void GUIAPI ExpandPartMonoBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
const BYTE* my_bits, Uint32 my_pitch,
Uint32 w, Uint32 h, DWORD flags, Uint32 bg, Uint32 fg,
int stepx, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
MG_EXPORT void GUIAPI ExpandPart16CBitmap (HDC hdc, BYTE* bits, Uint32 pitch, const BYTE* my_bits,
Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, const RGB* pal,
MG_EXPORT void GUIAPI ExpandPart16CBitmapEx (HDC hdc, BYTE* bits, Uint32 pitch,
const BYTE* my_bits, Uint32 my_pitch,
Uint32 w, Uint32 h, DWORD flags,
const RGB* pal, BYTE use_pal_alpha, BYTE alpha,
int stepx, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
static inline void GUIAPI ExpandPart16CBitmap (HDC hdc, BYTE* bits, Uint32 pitch,
const BYTE* my_bits, Uint32 my_pitch,
Uint32 w, Uint32 h, DWORD flags, const RGB* pal,
int stepx, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp)
{
ExpandPart16CBitmapEx (hdc, bits, pitch, my_bits, my_pitch,
w, h, flags, pal, FALSE, 0xFF, stepx, cb_draw, mybmp);
}
#endif
#define CompileRGBBitmap CompileRGBABitmap

View File

@@ -7,10 +7,10 @@
*
\verbatim
Copyright (C) 2002-2009 Feynman Software.
Copyright (C) 2002-2012 FMSoft.
Copyright (C) 1998-2002 Wei Yongming.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -24,7 +24,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2002-2009 Feynman Software.
* Copyright (C) 2002-2012 FMSoft.
* Copyright (C) 1998-2002 Wei Yongming.
*/

View File

@@ -12,9 +12,9 @@
*
\verbatim
Copyright (C) 2005~2009 Feynman Software.
Copyright (C) 2005-2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -38,7 +38,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2005~2009 Feynman Software.
* Copyright (C) 2005-2012 FMSoft.
*/
#ifndef FMNU_PTHREAD_H

View File

@@ -12,9 +12,9 @@
*
\verbatim
Copyright (C) 2005~2009 Feynman Software.
Copyright (C) 2005~2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -37,7 +37,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2005~2009 Feynman Software.
* Copyright (C) 2005~2012 FMSoft.
*/
#ifndef FMNU_SEMAPHORE_H

View File

@@ -1,6 +1,6 @@
/*
* \file ose_semaphore.h
* \author Qingzhou Long <qzlong@minigui.org>
* \author Wei Yongming <ymwei@minigui.org>
* \date 2006/05/19
*
* Description:
@@ -12,9 +12,9 @@
*
\verbatim
Copyright (C) 2005-2009 Feynman Software.
Copyright (C) 2005-2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -37,7 +37,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2005-2009 Feynman Software.
* Copyright (C) 2005-2012 FMSoft.
*/
#ifndef FMOSE_SEMAPHORE_H

View File

@@ -7,10 +7,10 @@
*
\verbatim
Copyright (C) 2002-2009 Feynman Software.
Copyright (C) 2002-2012 FMSoft.
Copyright (C) 1998-2002 Wei Yongming.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -24,7 +24,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2002-2009 Feynman Software.
* Copyright (C) 2002-2012 FMSoft.
* Copyright (C) 1998-2002 Wei Yongming.
*/

View File

@@ -10,9 +10,9 @@
*
\verbatim
Copyright (C) 2008-2009 Feynman Software.
Copyright (C) 2008-2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -21,14 +21,14 @@
*/
/*
* $Id: psos_pthread.h 7183 2007-05-16 08:19:34Z weiym $
* $Id: psos.h 7183 2007-05-16 08:19:34Z weiym $
*
* This is the pSOS+ header file (<psos.h>) written by Feynman Software.
* This is the pSOS+ header file (<psos.h>) written by FMSoft.
*
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2008-2009 Feynman Software.
* Copyright (C) 2008-2012 FMSoft.
*/
#ifndef _PSOS_H

View File

@@ -12,9 +12,9 @@
*
\verbatim
Copyright (C) 2008-2009 Feynman Software.
Copyright (C) 2008-2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -37,7 +37,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2008-2009 Feynman Software.
* Copyright (C) 2008-2012 FMSoft.
*/
#ifndef FM_PSOS_PTHREAD_H

View File

@@ -12,9 +12,9 @@
*
\verbatim
Copyright (C) 2008-2009 Feynman Software.
Copyright (C) 2008-2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -37,7 +37,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2008-2009 Feynman Software.
* Copyright (C) 2008-2012 FMSoft.
*/
#ifndef FM_PSOS_SEMAPHORE_H

View File

@@ -12,9 +12,9 @@
*
\verbatim
Copyright (C) 2005~2009 Feynman Software.
Copyright (C) 2005~2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -37,7 +37,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2005~2009 Feynman Software.
* Copyright (C) 2005~2012 FMSoft.
*/
#ifndef FMTX_PTHREAD_H

View File

@@ -12,9 +12,9 @@
*
\verbatim
Copyright (C) 2005-2009 Feynman Software.
Copyright (C) 2005-2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -37,7 +37,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2005-2009 Feynman Software.
* Copyright (C) 2005-2012 FMSoft.
*/
#ifndef FMTX_SEMAPHORE_H

View File

@@ -8,9 +8,9 @@
*
\verbatim
Copyright (C) 2004~2009 Feynman Software.
Copyright (C) 2004~2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -24,7 +24,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2004-2009 Feynman Software.
* Copyright (C) 2004-2012 FMSoft.
*/
#ifndef UCOSII_PTHREAD_H

View File

@@ -8,9 +8,9 @@
*
\verbatim
Copyright (C) 2004~2009 Feynman Software.
Copyright (C) 2004~2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -24,7 +24,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2004-2009 Feynman Software.
* Copyright (C) 2004-2012 FMSoft.
*/
#ifndef UCOSII_SEMAPHORE_H

View File

@@ -8,10 +8,10 @@
*
\verbatim
Copyright (C) 2002-2009 Feynman Software.
Copyright (C) 2002-2012 FMSoft.
Copyright (C) 1998-2002 Wei Yongming.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -25,7 +25,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2002-2009 Feynman Software.
* Copyright (C) 2002-2012 FMSoft.
* Copyright (C) 1998-2002 Wei Yongming.
*
* Some idea and source come from CCE (Console Chinese Environment)

View File

@@ -11,9 +11,9 @@
*
\verbatim
Copyright (C) 2005~2009 Feynman Software.
Copyright (C) 2005~2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -37,7 +37,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2005~2009 Feynman Software.
* Copyright (C) 2005~2012 FMSoft.
*/
#ifndef FMVX_PTHREAD_H

View File

@@ -12,9 +12,9 @@
*
\verbatim
Copyright (C) 2005~2009 Feynman Software.
Copyright (C) 2005~2012 FMSoft.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -37,7 +37,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2005-2009 Feynman Software.
* Copyright (C) 2005-2012 FMSoft.
*/
#ifndef FMVX_SEMAPHORE_H

View File

@@ -7,10 +7,10 @@
*
\verbatim
Copyright (C) 2002-2009 Feynman Software.
Copyright (C) 2002-2012 FMSoft.
Copyright (C) 1998-2002 Wei Yongming.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -24,7 +24,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2002-2009 Feynman Software.
* Copyright (C) 2002-2012 FMSoft.
* Copyright (C) 1998-2002 Wei Yongming.
*/
@@ -491,6 +491,27 @@ extern "C" {
*/
#define MSG_SYSKEYUP 0x0015
/* keyboard longpress supported */
/**
* \def MSG_KEYLONGPRESS
* \brief A key is long pressed.
*
* This message is sent when a key is pressed exceed user-defined long
* time value.
*/
#define MSG_KEYLONGPRESS 0x0016
/**
* \def MSG_KEYALWAYSPRESS
* \brief A key is always pressed.
*
* This message is sent when a key is pressed to exceed user-defined
* always time value.
*/
#define MSG_KEYALWAYSPRESS 0x0017
/**
* \def MSG_KEYSYM
* \brief A key symbol translated from MSG_KEYDOWN messages.
@@ -516,27 +537,7 @@ extern "C" {
*
* \sa MSG_SYSCHAR, TranslateMessage, key_defs
*/
#define MSG_KEYSYM 0x0016
/* keyboard longpress supported */
/**
* \def MSG_KEYLONGPRESS
* \brief A key is long pressed.
*
* This message is sent when a key is pressed exceed user-defined long
* time value.
*/
#define MSG_KEYLONGPRESS 0x0017
/**
* \def MSG_KEYALWAYSPRESS
* \brief A key is always pressed.
*
* This message is sent when a key is pressed to exceed user-defined
* always time value.
*/
#define MSG_KEYALWAYSPRESS 0x0018
#define MSG_KEYSYM 0x0018
/**
* \def DEF_LPRESS_TIME
@@ -1266,9 +1267,11 @@ extern unsigned int __mg_interval_time;
*
* \code
* MSG_ERASEBKGND
* HDC hdc = (HDC)wParam;
* const RECT* inv_rect = (const RECT*)lParam;
* \endcode
*
* \param hdc The device context.
* \param inv_rect The pointer to a RECT structure contains the rectangle
* should be erase. The rectangle is in client coordinates system.
* If it is NULL, the whole client area should be erased.
@@ -1293,6 +1296,17 @@ extern unsigned int __mg_interval_time;
/**
* \def MSG_NCPAINT
* \brief Indicates that paints non-client area.
*
* \code
* MSG_NCPAINT
* HDC hdc = (HDC)wParam;
* const RECT* inv_rect = (const RECT*)lParam;
* \endcode
*
* \param hdc The device context.
* \param inv_rect The pointer to a RECT structure contains the rectangle
* should be paint. The rectangle is in client coordinates system.
* If it is NULL, the whole nc client area should be paint.
*/
#define MSG_NCPAINT 0x00B2
@@ -1504,7 +1518,6 @@ extern unsigned int __mg_interval_time;
#define MSG_DT_KEYUP 0x00EA
#define MSG_DT_SYSKEYDOWN 0x00EB
#define MSG_DT_SYSKEYUP 0x00ED
#define MSG_DT_SYSCHAR 0x00EC

View File

@@ -1,16 +1,16 @@
/**
* \file xvfb.h
* \author Feynman Software
* \author FMSoft
* \date 2007/10/25
*
* This file includes global and miscellaneous interfaces of xVFB for MiniGUI.
*
\verbatim
Copyright (C) 2002-2009 Feynman Software.
Copyright (C) 2002-2012 FMSoft.
Copyright (C) 1998-2002 Wei Yongming.
All rights reserved by Feynman Software.
All rights reserved by FMSoft (http://www.fmsoft.cn).
This file is part of MiniGUI, a compact cross-platform Graphics
User Interface (GUI) support system for real-time embedded systems.
@@ -24,7 +24,7 @@
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
* pSOS, ThreadX, NuCleus, OSE, and Win32.
*
* Copyright (C) 2002-2009 Feynman Software.
* Copyright (C) 2002-2012 FMSoft.
* Copyright (C) 1998-2002 Wei Yongming.
*/

View File

@@ -1,12 +1,12 @@
#!/bin/bash
SOURCE_DIR=libminigui-3.0.10
DEST_DIR=libminigui-3.0.10
SOURCE_DIR=libminigui-3.0.12
DEST_DIR=libminigui-3.0.12
. .config
if [ "$PACK_OS_LINUX" = "n" ]; then
DEST_DIR=libminigui-3.0.10
DEST_DIR=libminigui-3.0.12
fi
[ -f ".config" ] || {

View File

@@ -75,15 +75,9 @@ endif ()
if (ZLIB_FOUND)
include_directories ("${ZLIB_INCLUDE_DIR}")
endif ()
if (PNG_FOUND)
include_directories ("${PNG_INCLUDE_DIR}")
endif ()
if (JPEG_FOUND)
include_directories ("${JPEG_INCLUDE_DIR}")
endif ()
if (FREETYPE_FOUND)
include_directories ("${FREETYPE_INCLUDE_DIR_ft2build}" "${FREETYPE_INCLUDE_DIR_freetype2}")
endif ()
# license picture
IF (license_splash OR license_screensaver OR license_productid)
@@ -104,19 +98,15 @@ ENDIF (license_splash OR license_screensaver OR license_productid)
# add minigui library
set (MINIGUI_LIBNAME ${MINIGUI_NAME}_${MGLIB_SUFFIX})
add_library (${MINIGUI_LIBNAME} SHARED ${_source_list_})
set_target_properties (${MINIGUI_LIBNAME} PROPERTIES VERSION ${MINIGUI_VERSION} SOVERSION ${MINIGUI_SOVERSION})
set_target_properties (${MINIGUI_LIBNAME} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
if (_STATICLIB_OUTPUT)
add_library (${MINIGUI_LIBNAME}_static ${_source_list_})
if (NOT WIN32)
set_target_properties (${MINIGUI_LIBNAME}_static PROPERTIES OUTPUT_NAME ${MINIGUI_LIBNAME})
endif(NOT WIN32)
set_target_properties (${MINIGUI_LIBNAME}_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
endif(_STATICLIB_OUTPUT)
if (WIN32)
################################# target ###################################
# !!! to install dynamic library (.DLL) and import library (.lib) !!!
# !!! in WIN32 we should use !!!
# !!! *RUNTIME* and *ARCHIVE* to set the DESTINATION of the lib !!!
if (_SHAREDLIB_OUTPUT)
add_library (${MINIGUI_LIBNAME} SHARED ${_source_list_})
set_target_properties (${MINIGUI_LIBNAME} PROPERTIES VERSION ${MINIGUI_VERSION} SOVERSION ${MINIGUI_SOVERSION})
set_target_properties (${MINIGUI_LIBNAME} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
if (WIN32)
if (PTHREAD_FOUND)
target_link_libraries(${MINIGUI_LIBNAME} "${PTHREAD_LIBRARY}")
endif ()
@@ -124,29 +114,31 @@ if (WIN32)
target_link_libraries(${MINIGUI_LIBNAME} "${ZLIB_LIBRARY}")
endif ()
if (PNG_FOUND)
target_link_libraries(${MINIGUI_LIBNAME} "${PNG_LIBRARY}")
target_link_libraries(${MINIGUI_LIBNAME} ${PNG_LIBRARIES})
endif ()
if (JPEG_FOUND)
target_link_libraries(${MINIGUI_LIBNAME} "${JPEG_LIBRARY}")
endif ()
if (FREETYPE_FOUND)
target_link_libraries(${MINIGUI_LIBNAME} "${FREETYPE_LIBRARY}")
target_link_libraries(${MINIGUI_LIBNAME} ${FREETYPE_LIBRARIES})
endif ()
endif (WIN32)
endif (WIN32)
################################# target to install ###################################
# !!! to install dynamic library (.DLL) and import library (.lib) !!!
# !!! in WIN32 we should use !!!
# !!! *RUNTIME* and *ARCHIVE* to set the DESTINATION of the lib !!!
install (TARGETS ${MINIGUI_LIBNAME}
DESTINATION lib # for all below
# LIBRARY DESTINATION lib # for .so (dynamic library)
# RUNTIME DESTINATION lib # for .DLL (dynamic library)
# ARCHIVE DESTINATION lib # for .lib (import library)
install (TARGETS ${MINIGUI_LIBNAME}
LIBRARY DESTINATION lib # for .so (dynamic library)
ARCHIVE DESTINATION lib # for .lib (import library)
RUNTIME DESTINATION bin # for .dll (dynamic library)
)
endif (_SHAREDLIB_OUTPUT)
if (_STATICLIB_OUTPUT)
add_library (${MINIGUI_LIBNAME}_static ${_source_list_})
if (NOT WIN32)
set_target_properties (${MINIGUI_LIBNAME}_static PROPERTIES OUTPUT_NAME ${MINIGUI_LIBNAME})
endif(NOT WIN32)
set_target_properties (${MINIGUI_LIBNAME}_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
install (TARGETS ${MINIGUI_LIBNAME}_static
ARCHIVE DESTINATION lib
)
endif (_STATICLIB_OUTPUT)
endif(_STATICLIB_OUTPUT)

View File

@@ -827,6 +827,28 @@ sleInsertText_refresh (HWND hWnd,
return 0;
}
static int sleCaseText (char* txt, BOOL bupper)
{
char *str;
char (*tocase)(char);
if (NULL == txt)
return -1;
if (bupper)
tocase = (char(*)(char))toupper;
else
tocase = (char(*)(char))tolower;
str = txt;
while (*str != '\0') {
str[0] = tocase(str[0]);
str ++;
}
return 0;
}
#ifdef _MGHAVE_CLIPBOARD
static int sleInsertCbText (HWND hWnd, PSLEDITDATA sled)
{
@@ -840,6 +862,13 @@ static int sleInsertCbText (HWND hWnd, PSLEDITDATA sled)
inserting = GetClipBoardDataLen (CBNAME_TEXT);
txtBuffer = ALLOCATE_LOCAL (inserting);
GetClipBoardData (CBNAME_TEXT, txtBuffer, inserting);
txtBuffer[inserting]=0;
if (GetWindowStyle(hWnd) & ES_UPPERCASE)
sleCaseText((char *)txtBuffer, TRUE);
else if (GetWindowStyle(hWnd) & ES_LOWERCASE)
sleCaseText((char *)txtBuffer, FALSE);
sleInsertText (hWnd, sled, (char *)txtBuffer, inserting);
DEALLOCATE_LOCAL(txtBuffer);

View File

@@ -94,9 +94,9 @@ StaticControlProc (HWND hwnd, int message, WPARAM wParam, LPARAM lParam)
GetClientRect (hwnd, &rcClient);
dwStyle = GetWindowStyle (hwnd);
if (dwStyle & WS_DISABLED)
SetTextColor (hdc, GetWindowElementPixel (hwnd, WE_FGC_DISABLED_ITEM));
SetTextColor (hdc, GetWindowElementPixelEx (hwnd, hdc, WE_FGC_DISABLED_ITEM));
else
SetTextColor (hdc, GetWindowElementPixel (hwnd, WE_FGC_WINDOW));
SetTextColor (hdc, GetWindowElementPixelEx (hwnd, hdc, WE_FGC_WINDOW));
// DK[11/01/2010]: For fix bug 4336
switch (dwStyle & SS_TYPEMASK)

View File

@@ -240,6 +240,7 @@ get_glyph_prbitmap (LOGFONT* logfont, DEVFONT* devfont,
bmp->bmColorKey = 0;
bmp->bmAlpha = 0;
bmp->bmAlphaMask = NULL;
bmp->bmAlphaPitch = 0;
bmp->bmBits = def_glyph;
bmp->bmWidth = 0;
bmp->bmHeight = 0;
@@ -265,6 +266,11 @@ get_glyph_prbitmap (LOGFONT* logfont, DEVFONT* devfont,
bmp->bmBits += node->glyph_width * (glyph_value - node->min) *
node->data->bmBytesPerPixel;
if(node->data->bmAlphaMask) {
bmp->bmAlphaMask = node->data->bmAlphaMask + node->glyph_width * (glyph_value - node->min);
bmp->bmAlphaPitch = node->data->bmAlphaPitch;
}
_MG_PRINTF ("FONT>Bitmap: bmp's bytes/pixel = %d\n", node->data->bmBytesPerPixel);
_MG_PRINTF ("FONT>Bitmap: bmp->bmWidth = %d, bmp->bmHeight = %d.\n", bmp->bmWidth,
bmp->bmHeight);

View File

@@ -33,6 +33,8 @@
#include "varbitmap.h"
#include "misc.h"
static void font_DelDevFont (const char* font_name);
/**************************** Global data ************************************/
static DEVFONT* sb_dev_font_head = NULL;
static DEVFONT* mb_dev_font_head = NULL;
@@ -616,6 +618,7 @@ BOOL font_TerminateIncoreFonts (void)
}
/* if font_name == NULL, delete all devfont */
/*
static void del_all_devfonts (void)
{
DEVFONT* tmp;
@@ -625,9 +628,9 @@ static void del_all_devfonts (void)
head = sb_dev_font_head;
one_list:
cur = head;
while (head) {
tmp = head;
head = tmp->next;
while (cur) {
tmp = cur;
cur = tmp->next;
if (!tmp->relationship && tmp->need_unload)
tmp->font_ops->unload_font_data (tmp->data);
@@ -644,6 +647,7 @@ one_list:
nr_sb_dev_fonts = 0;
nr_mb_dev_fonts = 0;
}
*/
static inline void del_devfont_from_list(const char* font_name, BOOL is_mbc_list)
@@ -698,11 +702,11 @@ static inline void del_devfont_from_list(const char* font_name, BOOL is_mbc_list
sb_dev_font_head = head;
}
/*if font_name == NULL, delete all devfont*/
void font_DelDevFont (const char* font_name)
static void font_DelDevFont (const char* font_name)
{
if (font_name == NULL) {
del_all_devfonts ();
/*if font_name == NULL, delete all devfont*/
/*del_all_devfonts ();*/
return;
}

View File

@@ -752,9 +752,13 @@ new_instance (LOGFONT* logfont, DEVFONT* devfont, BOOL need_sbc_font)
ft_inst_info->image_type.width = logfont->size;
ft_inst_info->image_type.height = logfont->size;
ft_inst_info->image_type.face_id = (FTC_FaceID)ft_inst_info->ft_face_info;
/* houhh 20110304, AUTOHINT will be get more clear
* and thin glyph. */
ft_inst_info->image_type.flags =
FT_LOAD_DEFAULT | FT_LOAD_NO_BITMAP |
FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH | FT_LOAD_TARGET_NORMAL;
FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH | FT_LOAD_TARGET_NORMAL |FT_LOAD_FORCE_AUTOHINT;
//FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH | FT_LOAD_TARGET_NORMAL;
/* if unmask non-cache and no rotation */
if (!(logfont->style & FS_OTHER_TTFNOCACHE) &&

View File

@@ -64,9 +64,18 @@ static PLOGFONT gdiCreateLogFont (const char* type, const char* family,
return INV_LOGFONT;
}
if ((log_font = malloc (sizeof (LOGFONT))) == NULL)
/*
* fix "Invalid read of size 4" in mgncs
*/
//if ((log_font = (malloc (sizeof (LOGFONT))) == NULL)
if ((log_font = (PLOGFONT)malloc (sizeof (FONT_RES))) == NULL)
return INV_LOGFONT;
/*
* fix "Invalid read of size 4" in mgncs
*/
((FONT_RES *)log_font)->key = -1;
log_font->style = style;
if (type) {

View File

@@ -47,6 +47,7 @@ BOOL GUIAPI CreateCaret (HWND hWnd, PBITMAP pBitmap, int nWidth, int nHeight)
pWin->pCaretInfo->caret_bmp.bmWidth = nWidth;
pWin->pCaretInfo->caret_bmp.bmHeight = nHeight;
pWin->pCaretInfo->caret_bmp.bmAlphaMask = NULL;
pWin->pCaretInfo->caret_bmp.bmAlphaPitch = 0;
pWin->pCaretInfo->nBytesNr = GAL_GetBoxSize (__gal_screen,
nWidth, nHeight, &pWin->pCaretInfo->caret_bmp.bmPitch);

View File

@@ -147,38 +147,6 @@ int GUIAPI DialogBoxIndirectParamEx (PDLGTEMPLATE pDlgTemplate,
int retCode = IDCANCEL;
MSG Msg;
#if 0
HWND hFocus;
MAINWINCREATE CreateInfo;
if (pDlgTemplate->controlnr > 0 && !pDlgTemplate->controls)
return -1;
hOwner = GetMainWindowHandle (hOwner);
CreateInfo.dwReserved = (DWORD)pDlgTemplate;
CreateInfo.dwStyle = pDlgTemplate->dwStyle & ~WS_VISIBLE;
CreateInfo.dwStyle |= WS_DLGFRAME;
CreateInfo.dwExStyle = pDlgTemplate->dwExStyle;
CreateInfo.spCaption = pDlgTemplate->caption;
CreateInfo.hMenu = pDlgTemplate->hMenu;
CreateInfo.hCursor = GetSystemCursor (IDC_ARROW);
CreateInfo.hIcon = pDlgTemplate->hIcon;
CreateInfo.MainWindowProc = DlgProc;
CreateInfo.lx = pDlgTemplate->x;
CreateInfo.ty = pDlgTemplate->y;
CreateInfo.rx = pDlgTemplate->x + pDlgTemplate->w;
CreateInfo.by = pDlgTemplate->y + pDlgTemplate->h;
CreateInfo.iBkColor =
GetWindowElementPixel (hOwner, WE_MAINC_THREED_BODY);
CreateInfo.dwAddData = (DWORD)pDlgTemplate->dwAddData;
CreateInfo.hHosting = hOwner;
hDlg = CreateMainWindowEx (&CreateInfo,
werdr_name, we_attrs, window_name, layer_name);
#endif
if(hOwner && hOwner != HWND_INVALID && hOwner != HWND_DESKTOP)
hOwner = GetMainWindowHandle(hOwner);
@@ -190,6 +158,9 @@ int GUIAPI DialogBoxIndirectParamEx (PDLGTEMPLATE pDlgTemplate,
if (hDlg == HWND_INVALID)
return -1;
//MiniGUI maybe change dialog owner in CreateMainWindow, so we
//should update its owner by GetHosting.
hOwner = GetHosting (hDlg);
SetWindowAdditionalData2 (hDlg, (DWORD)(&retCode));
if (hOwner && hOwner != HWND_DESKTOP) {

View File

@@ -842,8 +842,10 @@ BOOL mg_InitLFManager (void)
}
}
#ifdef WE_HEAP
/** initialize window element block data heap.*/
init_we_heap();
#endif
return TRUE;
}
@@ -864,6 +866,8 @@ void mg_TerminateLFManager (void)
#ifdef _MGRM_THREADS
pthread_mutex_destroy (&gRendererMmutex);
#endif
#ifdef WE_HEAP
destroy_we_heap ();
#endif
}

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