mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-09-24 00:54:18 +08:00
Compare commits
56
Commits
rockchip-px30
...
rel-3-2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1cfd25b317 | ||
|
|
2d5ad370f3 | ||
|
|
684c4248d2 | ||
|
|
0373c77323 | ||
|
|
56fd0a1050 | ||
|
|
fbba2ebd1a | ||
|
|
33b3ad0bd3 | ||
|
|
9bee00cf9f | ||
|
|
aedcffacf7 | ||
|
|
c91eeddd2c | ||
|
|
2ac54f9ee6 | ||
|
|
20f160074f | ||
|
|
437769c1a4 | ||
|
|
69eebf37e3 | ||
|
|
4ea6912024 | ||
|
|
6b2039c151 | ||
|
|
d7eed07222 | ||
|
|
6f033d8e93 | ||
|
|
193f5e58b1 | ||
|
|
75dabce7af | ||
|
|
2149a6aa5e | ||
|
|
bf8a9fee5c | ||
|
|
8556f15e36 | ||
|
|
57215b9e59 | ||
|
|
6201664035 | ||
|
|
7303f40b2e | ||
|
|
42b10aed6a | ||
|
|
d9dc070698 | ||
|
|
ee5a1f86a7 | ||
|
|
d335e008ad | ||
|
|
268695a94b | ||
|
|
1d211ed855 | ||
|
|
a7eaab6d38 | ||
|
|
7d671c8318 | ||
|
|
76f4bf3661 | ||
|
|
4f51baac32 | ||
|
|
4fa002216e | ||
|
|
6dc8696c08 | ||
|
|
06c497d671 | ||
|
|
79267be62c | ||
|
|
9475ff227f | ||
|
|
f562661146 | ||
|
|
eca15c447d | ||
|
|
736a532b1a | ||
|
|
5a0fc2e74f | ||
|
|
12106c036c | ||
|
|
debd8a3fdd | ||
|
|
ac6d4019d5 | ||
|
|
61dd46f965 | ||
|
|
3f53804f62 | ||
|
|
f8e9dea491 | ||
|
|
8943cc75ec | ||
|
|
ebf765f4ad | ||
|
|
3b61f25bb5 | ||
|
|
ea20032dae | ||
|
|
9245091b87 |
@@ -22,4 +22,5 @@ Makefile.in
|
||||
/*.pc
|
||||
/*config.h
|
||||
/*config.h.in
|
||||
/*config.h.in~
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
A mature and proven cross-platform GUI system for embedded and smart IoT devices.
|
||||
|
||||
|
||||
## TABLE OF CONTENTS
|
||||
|
||||
1. Introduction
|
||||
@@ -18,96 +17,90 @@ A mature and proven cross-platform GUI system for embedded and smart IoT devices
|
||||
|
||||
|
||||
## INTRODUCTION
|
||||
|
||||
MiniGUI is a mature cross-platform windowing system and a GUI (Graphics
|
||||
|
||||
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 3.2.x of MiniGUI maintained by WEI Yongming
|
||||
(Vincent Wei, https://github.com/VincentWei).
|
||||
This is the version 3.2.x of MiniGUI maintained by WEI Yongming
|
||||
(Vincent Wei, <https://github.com/VincentWei>).
|
||||
|
||||
MiniGUI is released under GPLv3 and the dual-licensing applies to commercial
|
||||
use.
|
||||
|
||||
MiniGUI aims to provide a fast, stable, full-featured, and cross-platform
|
||||
windowing and GUI support system, which is especially fit for
|
||||
embedded systems or smart IoT devices based-on Linux/uClinux, eCos, and other
|
||||
traditional RTOSes, such as VxWorks, ThreadX, Nucleus, pSOS, uC/OS-II,
|
||||
windowing and GUI support system, which is especially fit for
|
||||
embedded systems or smart IoT devices based-on Linux/uClinux, eCos, and other
|
||||
traditional RTOSes, such as RTEMS, VxWorks, ThreadX, Nucleus, pSOS, uC/OS-II,
|
||||
and OSE.
|
||||
|
||||
This is the MiniGUI core source tree, which provides windowing
|
||||
and graphics interfaces as well as a lot of standard controls (tookit).
|
||||
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
|
||||
for the developers to develop app much easier:
|
||||
|
||||
* mGUtils: A MiniGUI component which contains miscellaneous utilities
|
||||
like ColorSelectionDialogBox, FileOpenDialogBox, and so on.
|
||||
|
||||
* mGPlus: A MiniGUI component which provides support for advanced graphics
|
||||
functions like path, gradient, anti-aliase stretch, and color combination.
|
||||
|
||||
* mGEff: mGEff provides an animation framework for MiniGUI app.
|
||||
It also provides some popular UI/UE special effects.
|
||||
|
||||
* mGNCS: This component provides a new control set for MiniGUI app.
|
||||
By using mGNCS, you can use miniStudio to develop MiniGUI app in
|
||||
WYSIWYG way.
|
||||
|
||||
* mGNCS4Touch: This component provides some new controls, which are
|
||||
compliant to the new control API spec of mGNCS, for devices with
|
||||
a touch screen.
|
||||
* mGUtils: A MiniGUI component which contains miscellaneous utilities
|
||||
like `ColorSelectionDialogBox`, `FileOpenDialogBox`, and so on.
|
||||
* mGPlus: A MiniGUI component which provides support for advanced graphics
|
||||
functions like path, gradient, anti-aliased stretch, and color combination.
|
||||
* mGEff: mGEff provides an animation framework for MiniGUI app.
|
||||
It also provides some popular UI/UE special effects.
|
||||
* mGNCS: This component provides a new control set for MiniGUI app.
|
||||
By using mGNCS, you can use miniStudio to develop MiniGUI app in
|
||||
WYSIWYG way.
|
||||
* mGNCS4Touch: This component provides some new controls, which are
|
||||
compliant to the new control API spec of mGNCS, for devices with
|
||||
a touch screen.
|
||||
|
||||
There are also some legacy MiniGUI components. We will not maintain these
|
||||
components for MiniGUI core v3.2:
|
||||
components for MiniGUI 3.2.x:
|
||||
|
||||
* 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 apps.
|
||||
* mGi: An input method component for MiniGUI. This component provides
|
||||
some typical input methods (such as soft keyboard, hand-writing, and predict
|
||||
text input for mobile phone) for MiniGUI apps.
|
||||
* mGp: A printing component for MiniGUI. By using mGp, you can print
|
||||
out the graphics created by MiniGUI app to general-purpose printers.
|
||||
* mG3d: A simple three-dimension component for MiniGUI. This component
|
||||
provides a simple 3D API for app. You can use mG3d to create simple
|
||||
3D UI.
|
||||
|
||||
* mGp: A printing component for MiniGUI. By using mGp, you can print
|
||||
out the graphics created by MiniGUI app to general-purpose printers.
|
||||
|
||||
* mG3d: A simple three-dimension component for MiniGUI. This component
|
||||
provides a simple 3D API for app. You can use mG3d to create simple
|
||||
3D UI.
|
||||
|
||||
MiniGUI is a free software project. In December 1998, the initiator of
|
||||
FMSoft, Wei Yongming, began to develop MiniGUI under the GNU General Public
|
||||
License (GPL). In September 2002, the core developers of
|
||||
MiniGUI founded FMSoft and started the commercial marketing with
|
||||
the free software. By now, FMSoft still continues to release MiniGUI
|
||||
MiniGUI is a free software project. In December 1998, the initiator of
|
||||
FMSoft, Wei Yongming, began to develop MiniGUI under the GNU General Public
|
||||
License (GPL). In September 2002, the core developers of
|
||||
MiniGUI founded FMSoft and started the commercial marketing with
|
||||
the free software. By now, FMSoft still continues to release MiniGUI
|
||||
as a free software project.
|
||||
|
||||
You can download the source code tarball of MiniGUI and the dependent libraries
|
||||
from the download zone of the site:
|
||||
|
||||
http://www.minigui.com
|
||||
<http://www.minigui.com>
|
||||
|
||||
FMSoft also releases some open source apps for MiniGUI on the site above,
|
||||
FMSoft also releases some open source apps for MiniGUI on the site above,
|
||||
for examples:
|
||||
|
||||
* mDolphin, licensed under Apache 2.0, is a full-featured
|
||||
WEB/WAP browser, which is developed based on the open source browser
|
||||
core WebKit and uses MiniGUI as its underlying graphics support system.
|
||||
* mDolphin, licensed under Apache 2.0, is a full-featured
|
||||
WEB/WAP browser, which is developed based on the open source browser
|
||||
core WebKit and uses MiniGUI as its underlying graphics support system.
|
||||
* mGallery, licensed under Apache 2.0, intends to
|
||||
provide a total solution for PMP (Portable Multimedia Player),
|
||||
which uses MiniGUI as the graphics platform.
|
||||
* mSpider, licensed under GPL 3.0, intends to provide a
|
||||
light-weight MiniGUI-based web browser (HTML 3.2 and part JavaScript)
|
||||
* mEagle, licensed under GPL 3.0, is an embedded GIS development platform
|
||||
which addresses the needs of map browse, query, analysis, etc
|
||||
|
||||
* mGallery, licensed under Apache 2.0, intends to
|
||||
provide a total solution for PMP (Portable Multimedia Player),
|
||||
which uses MiniGUI as the graphics platform.
|
||||
|
||||
* mSpider, licensed under GPL 3.0, intends to provide a
|
||||
light-weight MiniGUI-based web browser (HTML 3.2 and part JavaScript)
|
||||
|
||||
* 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
|
||||
<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
|
||||
@@ -154,7 +147,7 @@ We introduce some new features in MiniGUI Version 3.2.x:
|
||||
to support 64-bit platform. For more information, please refer to
|
||||
RELEASE-NOTES.md file.
|
||||
|
||||
Because of the changes of some APIs, we recommended strongly that you
|
||||
Because of the changes of some APIs, we recommended strongly that you
|
||||
use this version for new projects.
|
||||
|
||||
## THE RUNTIME MODES OF MINIGUI
|
||||
@@ -164,64 +157,64 @@ 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,
|
||||
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
|
||||
* '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 small systems, like uClinux or RTOSes.
|
||||
|
||||
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
|
||||
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.
|
||||
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 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.
|
||||
|
||||
|
||||
## 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
|
||||
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.
|
||||
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
|
||||
frame buffer device directly as well.
|
||||
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
|
||||
frame buffer 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
|
||||
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
|
||||
@@ -238,7 +231,7 @@ A brief history description of the development 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
|
||||
2) Apr, 1999: The skeleton of MiniGUI, windowing sub-system
|
||||
and basic graphics device interfaces.
|
||||
3) May, 1999: Timer, menu, and the skeleton of control sub-system.
|
||||
4) Jun, 1999: Chinese input method (by Kang Xiaoning).
|
||||
@@ -247,29 +240,29 @@ A brief history description of the development progress lay below:
|
||||
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
|
||||
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
|
||||
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).
|
||||
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).
|
||||
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 FMSoft Technology Co., Ltd..
|
||||
And the development and maintenance of MiniGUI changes from
|
||||
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 FMSoft 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).
|
||||
@@ -299,14 +292,14 @@ A brief history description of the development progress lay below:
|
||||
|
||||
## ABOUT THE AUTHORS
|
||||
|
||||
The original author of MiniGUI is WEI Yongming, and now MiniGUI is
|
||||
maintained by FMSoft. For more information, please browse
|
||||
The original author of MiniGUI is WEI Yongming, and now MiniGUI is
|
||||
maintained by FMSoft. For more information, please browse
|
||||
our home page: http://www.fmsoft.cn.
|
||||
|
||||
|
||||
## IF YOU HAVE A PROBLEM
|
||||
|
||||
If you have any technical problem, advice or comment, please send
|
||||
If you have any technical problem, advice or comment, please send
|
||||
messages to consult@minigui.com.
|
||||
|
||||
|
||||
@@ -314,15 +307,15 @@ messages to consult@minigui.com.
|
||||
|
||||
Q: Is GPL'd MiniGUI free for commercial use?
|
||||
|
||||
A: Simply no. FMSoft releases MiniGUI under GPLv3 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
|
||||
A: Simply no. FMSoft releases MiniGUI under GPLv3 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 FMSoft 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
|
||||
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?
|
||||
@@ -332,48 +325,65 @@ A: x86 32/64-bit, ARM 32/64-bit (e.g., ARMv7 and ARM Cortex-A7),
|
||||
|
||||
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.
|
||||
A: Yes, it offers. It even offers the support for 1bpp and 2bpp LCD.
|
||||
|
||||
|
||||
## NOT FREE FOR COMMERCIAL USE
|
||||
|
||||
MiniGUI and its components are licensed under the GPL license.
|
||||
So any links about MiniGUI must follow GPL. If you cannot accept GPL,
|
||||
you need to be licensed from FMSoft. If you wonder that if you need
|
||||
MiniGUI and its components are licensed under the GPL license.
|
||||
So any links about MiniGUI must follow GPL. If you cannot accept GPL,
|
||||
you need to be licensed from FMSoft. If you wonder that if you need
|
||||
the commercial license of MiniGUI, please refer to the LICENSE-POLICY file.
|
||||
|
||||
We provide you the commercial license of MiniGUI according to the number
|
||||
of the run-time binary copies of MiniGUI. If you are interested in
|
||||
the commercial license of MiniGUI, please write to sales@minigui.com.
|
||||
We provide you the commercial license of MiniGUI according to the number
|
||||
of the run-time binary copies of MiniGUI. If you are interested in
|
||||
the commercial license of MiniGUI, please write to <sales@minigui.com>
|
||||
|
||||
|
||||
## COPYING
|
||||
|
||||
Copyright (C) 2002~2018, 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/blog/minigui-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>.
|
||||
|
||||
|
||||
+33
-11
@@ -1,44 +1,67 @@
|
||||
# Release Notes
|
||||
|
||||
## Version 3.2.3
|
||||
|
||||
The MiniGUI development team announces the availability of MiniGUI 3.2.3.
|
||||
All users of MiniGUI are recommended strongly to use this version.
|
||||
Please report any bugs and incompatibilities in
|
||||
|
||||
<https://github.com/VincentWei/minigui/tree/rel-3-2>
|
||||
|
||||
### What's new in this version
|
||||
|
||||
* ENHANCEMENTS:
|
||||
- Support for RTEMS operating system.
|
||||
* BUGFIXES:
|
||||
- Fixed errors in makefile.ng files.
|
||||
* CLEANUP:
|
||||
- `README.md` for correct markdown tags.
|
||||
|
||||
### What's new in this version
|
||||
|
||||
## Version 3.2.2
|
||||
|
||||
The MiniGUI development team announces the availability of MiniGUI 3.2.2.
|
||||
All users of MiniGUI are recommended strongly to use this version.
|
||||
Please report any bugs and incompatibilities in
|
||||
|
||||
https://github.com/VincentWei/minigui
|
||||
<https://github.com/VincentWei/minigui>
|
||||
|
||||
### What's new in this version
|
||||
|
||||
* ENHANCEMENTS:
|
||||
1. Add a new key `dpi` for NEWGAL engine to define the DPI of the screen.
|
||||
If it is absent, use 96 as the default DPI.
|
||||
1. Add an item for `GetGDCapability` to return DPI of the DC.
|
||||
1. New API `InitSlaveScreenEx` to specify the DPI of slave screen.
|
||||
Define `InitSlaveScreen` as an inline function calling `InitSlaveScreenEx`.
|
||||
1. New API: `SyncUpdateDC`. You can use this function to synchronize
|
||||
the update rectangles of a surface to screen, if the surface
|
||||
represents the shadow frame buffer of the screen.
|
||||
* configure option: `--enable-syncupdate`
|
||||
* macro: `_MGUSE_SYNC_UPDATE`
|
||||
1. New API: `UpdateInvalidClient`. You can use this function to update
|
||||
1. New API `UpdateInvalidClient`. You can use this function to update
|
||||
the invalid client region of a window instantly.
|
||||
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. Modified logic for checking JPEG format (10km).
|
||||
1. Support BIDI for UNICODE charsets and cleanup the implementation.
|
||||
* New API: `GetGlyphBIDIType` to get the glyph type in BIDI.
|
||||
* New DC attribute: BIDI flag.
|
||||
1. Add a new key `dpi` for NEWGAL engine to define the DPI of the screen.
|
||||
If it is absent, use 96 as the default DPI.
|
||||
1. Add an item for `GetGDCapability` to return DPI of the DC.
|
||||
1. New API `InitSlaveScreenEx` to specify the DPI of slave screen.
|
||||
Define `InitSlaveScreen` as an inline function calling `InitSlaveScreenEx`.
|
||||
1. Enhance commlcd engint to support more pixel type and synchronously update.
|
||||
1. New USVFB IAL engine and NEWGAL engine for web display server.
|
||||
1. New type: `QDWORD` for a quauter of DWORD. This type is 16-bit long on
|
||||
64-bit architecture, and 8-bit long on 32-bit.
|
||||
64-bit architecture, and 8-bit long on 32-bit.
|
||||
1. New macros for QDWORD:
|
||||
* `MAKEDWORD`: Make a DWROD from four QDWORDs.
|
||||
* `FIRST_QDWORD`: get the first (LSB) QDWORD from a DWORD.
|
||||
* `SECOND_QDWORD`: get the second (LSB) QDWORD from a DWORD.
|
||||
* `THIRD_QDWORD`: get the third (LSB) QDWORD from a DWORD.
|
||||
* `FOURTH_QDWORD`: get the fourth (LSB) QDWORD from a DWORD.
|
||||
1. New header for CommLCD NEWGAL engine and COMM IAL engine:
|
||||
`<minigui/exstubs.h>`.
|
||||
|
||||
* BUGFIXING:
|
||||
1. handle `PNG_COLOR_TYPE_GRAY_ALPHA` color type of PNG files.
|
||||
@@ -48,9 +71,8 @@ Please report any bugs and incompatibilities in
|
||||
1. Skip null pixels for SUBPIXEL glyphs. This bug will always show background
|
||||
pixels of one SUBPIXEL glyph.
|
||||
1. Fix the bug of wrong bounding box handling for SUBPIXEL rendering of glyph.
|
||||
|
||||
* TUNNING:
|
||||
1. Tune GLYPHINFO structure and GetGlyphInfo to return BIDI glyph type.
|
||||
1. Tune cache implementation of FreeType2 font engine.
|
||||
* Enable cache for rotated LOGFONT.
|
||||
|
||||
## Version 3.2.0
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Version 3.2.0 (2018/02/10)
|
||||
Version 3.2.3 (2019/10/31)
|
||||
|
||||
This release needs the following resource packages:
|
||||
|
||||
@@ -6,4 +6,4 @@ This release needs the following resource packages:
|
||||
|
||||
The latest samples package is:
|
||||
|
||||
* mg-samples-3.2.0.tar.gz
|
||||
* mg-samples-3.2.2.tar.gz
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
./configure \
|
||||
--with-runmode=ths \
|
||||
--disable-dblclk \
|
||||
--disable-cursor \
|
||||
--disable-mousecalibrate \
|
||||
|
||||
Executable
+44
@@ -0,0 +1,44 @@
|
||||
#!/bin/sh
|
||||
|
||||
RTEMS_DIR=/home/projects/movidius/m8_gui/tools/18.11.4/linux64/sparc-myriad-rtems-6.3.0
|
||||
|
||||
#RTEMS_GLOBAL_CFLAGS="-ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -finit-priority"
|
||||
|
||||
rm -f config.cache config.status
|
||||
|
||||
CC=${RTEMS_DIR}/bin/sparc-myriad-rtems-gcc \
|
||||
CFLAGS="-I${RTEMS_DIR}/sparc-myriad-rtems/include -I${RTEMS_DIR}/pnglib/include -I${RTEMS_DIR}/zlib/include" \
|
||||
LDFLAGS="-L${RTEMS_DIR}/lib/gcc/sparc-myriad-rtems/6.3.0 -L${RTEMS_DIR}/pnglib/lib -L${RTEMS_DIR}/zlib/lib" \
|
||||
./configure --prefix=/home/projects/movidius/m8_gui/tools/18.11.4/linux64/sparc-myriad-rtems-6.3.0/minigui \
|
||||
--build=i686-linux \
|
||||
--host=sparc-myriad-rtems \
|
||||
--target=sparc-myriad-rtems \
|
||||
--with-osname=rtems \
|
||||
--with-runmode=ths \
|
||||
--enable-miniguientry \
|
||||
--enable-incoreres \
|
||||
--disable-cursor \
|
||||
--disable-videofbcon \
|
||||
--disable-qvfbial \
|
||||
--disable-vbfsupport \
|
||||
--disable-qpfsupport \
|
||||
--disable-latin9support \
|
||||
--enable-gbksupport \
|
||||
--disable-big5support \
|
||||
--enable-unicodesupport \
|
||||
--disable-savebitmap \
|
||||
--disable-jpgsupport \
|
||||
--disable-pngsupport \
|
||||
--disable-aboutdlg \
|
||||
--enable-adv2dapi \
|
||||
--enable-videodummy \
|
||||
--disable-consoleial \
|
||||
--disable-videopcxvfb \
|
||||
--with-targetname=external \
|
||||
--enable-pngsupport \
|
||||
--disable-develmode \
|
||||
--disable-detaildebug \
|
||||
--disable-tracemsg \
|
||||
--enable-videocommlcd \
|
||||
--enable-commial \
|
||||
--disable-splash
|
||||
@@ -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+=
|
||||
##################################################
|
||||
|
||||
+32
-29
@@ -1,6 +1,6 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.60)
|
||||
AC_INIT(libminigui, 3.2.2)
|
||||
AC_INIT(libminigui, 3.2.3)
|
||||
AC_CONFIG_SRCDIR(src/main/main.c)
|
||||
|
||||
dnl Set various version strings - taken gratefully from the SDL sources
|
||||
@@ -16,9 +16,9 @@ dnl Set various version strings - taken gratefully from the SDL sources
|
||||
#
|
||||
MINIGUI_MAJOR_VERSION=3
|
||||
MINIGUI_MINOR_VERSION=2
|
||||
MINIGUI_MICRO_VERSION=2
|
||||
MINIGUI_MICRO_VERSION=3
|
||||
MINIGUI_INTERFACE_AGE=0
|
||||
MINIGUI_BINARY_AGE=1
|
||||
MINIGUI_BINARY_AGE=3
|
||||
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(sys/types.h sys/time.h termio.h unistd.h math.h locale.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
|
||||
@@ -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)
|
||||
@@ -389,7 +383,7 @@ AC_ARG_ENABLE(netial,
|
||||
build_net_ial_engine=$enableval)
|
||||
|
||||
AC_ARG_ENABLE(cisco_touchpad_ial,
|
||||
[ --enable-cisco_touchpad_ial build the IAL engine for Cisco Touchpad <default=no>],
|
||||
[ --enable-cisco_touchpad_ial build the IAL engine for Cisco Touchpad <default=no>],
|
||||
build_cisco_touchpad_ial_engine=$enableval)
|
||||
|
||||
AC_ARG_ENABLE(mstar_ial,
|
||||
@@ -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,
|
||||
@@ -892,21 +885,21 @@ CheckXVFB()
|
||||
[ --enable-videortosxvfb include RTOS Virtual FrameBuffer NEWGAL engine <default=no>. Please disable pcxvfb to enable rtosxvfb],
|
||||
enable_video_rtos_xvfb=$enableval)
|
||||
|
||||
if test "x$enable_video_pc_xvfb" = "xyes"; then
|
||||
dnl CheckPCXVFB
|
||||
if test "x$enable_video_pc_xvfb" = "xyes"; then
|
||||
dnl CheckPCXVFB
|
||||
AC_DEFINE(_MGGAL_PCXVFB, 1,
|
||||
[Define if include PC Virtual FrameBuffer NEWGAL engine])
|
||||
VIDEO_SUBDIRS="$VIDEO_SUBDIRS pcxvfb"
|
||||
VIDEO_DRIVERS="$VIDEO_DRIVERS pcxvfb/libvideo_pcxvfb.la"
|
||||
else
|
||||
if test "x$enable_video_rtos_xvfb" = "xyes"; then
|
||||
dnl CheckRTOSXVFB
|
||||
else
|
||||
if test "x$enable_video_rtos_xvfb" = "xyes"; then
|
||||
dnl CheckRTOSXVFB
|
||||
AC_DEFINE(_MGGAL_RTOSXVFB, 1,
|
||||
[Define if include RTOS Virtual FrameBuffer NEWGAL engine])
|
||||
VIDEO_SUBDIRS="$VIDEO_SUBDIRS rtos_xvfb"
|
||||
VIDEO_DRIVERS="$VIDEO_DRIVERS rtos_xvfb/libvideo_rtos_xvfb.la"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -1404,12 +1397,18 @@ case "$with_libsuffix" in
|
||||
esac
|
||||
|
||||
AC_ARG_WITH(osname,
|
||||
[ --with-osname=linux/uclinux/ecos/ucos2/swlinux/vxworks/win32/darwin/threadx/cygwin/nucleus/ose/psos])
|
||||
[ --with-osname=linux/uclinux/ecos/ucos2/swlinux/vxworks/win32/darwin/threadx/cygwin/nucleus/ose/psos/rtems])
|
||||
|
||||
dnl configure.in file is used only for the following OSes: linux/uclinux/swlinux/ecos/darwin/cygwin
|
||||
dnl for other OSes, you should use makefile.ng or else.
|
||||
|
||||
case "$with_osname" in
|
||||
rtems)
|
||||
AC_DEFINE(__RTEMS__, 1,
|
||||
[Define if compile for rtems])
|
||||
AC_DEFINE(__NOUNIX__, 1,
|
||||
[Define if compile for non-UNIX like OS])
|
||||
;;
|
||||
uclinux)
|
||||
AC_DEFINE(__uClinux__, 1,
|
||||
[Define if compile for uClinux])
|
||||
@@ -1513,13 +1512,17 @@ AC_ARG_WITH(targetname,
|
||||
S3C6410/S3C2440/S3C2410/hi3560a Define the target board name])
|
||||
|
||||
case "$with_targetname" in
|
||||
external)
|
||||
AC_DEFINE(__TARGET_EXTERNAL__, 1,
|
||||
[Define for targets which use GAL and/or IAL engines and define the interfaces externally])
|
||||
;;
|
||||
fmsoft)
|
||||
AC_DEFINE(__TARGET_FMSOFT__, 1,
|
||||
[Define for FMSoft internal use])
|
||||
[Define for FMSoft internal use])
|
||||
;;
|
||||
mstudio)
|
||||
AC_DEFINE(__TARGET_MSTUDIO__, 1,
|
||||
[Define for FMSoft miniStudio])
|
||||
[Define for FMSoft miniStudio])
|
||||
;;
|
||||
stb810)
|
||||
AC_DEFINE(__TARGET_STB810__, 1,
|
||||
@@ -1547,11 +1550,11 @@ case "$with_targetname" in
|
||||
;;
|
||||
bfin)
|
||||
AC_DEFINE(__TARGET_BLACKFIN__, 1,
|
||||
[Define for Blackfin run uClinux])
|
||||
[Define for Blackfin run uClinux])
|
||||
;;
|
||||
c33l05)
|
||||
AC_DEFINE(__TARGET_C33L05__, 1,
|
||||
[Define for EPSON C33L05 (axLinux)])
|
||||
[Define for EPSON C33L05 (axLinux)])
|
||||
;;
|
||||
S3C6410)
|
||||
CFLAGS="$CFLAGS -D_WITH_TARGET_S3C6410"
|
||||
@@ -2430,8 +2433,8 @@ fi
|
||||
if test "x$build_ctrl_textedit_new" = "xyes"; then
|
||||
AC_DEFINE(_MGCTRL_TEXTEDIT, 1,
|
||||
[Define if include TEXTEDIT control])
|
||||
AC_DEFINE(_MGCTRL_TEXTEDIT_USE_NEW_IMPL, 1,
|
||||
[Define if use new implementation of TEXTEDIT control])
|
||||
AC_DEFINE(_MGCTRL_TEXTEDIT_USE_NEW_IMPL, 1,
|
||||
[Define if use new implementation of TEXTEDIT control])
|
||||
fi
|
||||
|
||||
if test "x$build_splash" = "xyes"; then
|
||||
|
||||
+2
-2
@@ -11,8 +11,8 @@ COMM_HDRS = \
|
||||
common.h endianrw.h fixedmath.h \
|
||||
minigui.h gdi.h window.h control.h \
|
||||
own_malloc.h own_stdio.h \
|
||||
xvfb.h customial.h \
|
||||
dti.c
|
||||
xvfb.h customial.h exstubs.h \
|
||||
dti.c
|
||||
|
||||
UCOSII_HDRS=ucos2_pthread.h ucos2_semaphore.h
|
||||
THREADX_HDRS=threadx_pthread.h threadx_semaphore.h
|
||||
|
||||
+4
-3
@@ -38,7 +38,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
@@ -262,7 +262,8 @@ MGUI_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
|
||||
*/
|
||||
#if defined(__i386__) || defined(__ia64__) || defined(__x86_64__) || defined(__amd64) || \
|
||||
(defined(__alpha__) || defined(__alpha)) || \
|
||||
defined(__arm__) || \
|
||||
defined(__arm__) || defined(__aarch64__) || \
|
||||
defined(__riscv) || \
|
||||
(defined(__CC_ARM) && !defined(__BIG_ENDIAN)) || \
|
||||
(defined(__mips__) && defined(__MIPSEL__)) || \
|
||||
defined(__LITTLE_ENDIAN__) || \
|
||||
@@ -1701,7 +1702,7 @@ typedef struct _GAL_Rect {
|
||||
#endif
|
||||
|
||||
/* Commonly used definitions */
|
||||
#if !defined(__NOUNIX__) || defined (__ECOS__)
|
||||
#ifdef HAVE_LIMITS_H
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+15
-15
@@ -36,7 +36,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
@@ -51,11 +51,6 @@
|
||||
#ifndef GUI_IAL_CUSTOM_H
|
||||
#define GUI_IAL_CUSTOM_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
|
||||
#define IAL_MOUSE_LEFTBUTTON 1
|
||||
#define IAL_MOUSE_RIGHTBUTTON 2
|
||||
#define IAL_MOUSE_MIDDLEBUTTON 4
|
||||
@@ -67,12 +62,12 @@ extern "C" {
|
||||
#define IAL_MOUSEEVENT 1
|
||||
#define IAL_KEYEVENT 2
|
||||
|
||||
typedef struct tagINPUT
|
||||
{
|
||||
typedef struct tagINPUT {
|
||||
char* id;
|
||||
|
||||
// Initialization and termination
|
||||
BOOL (*init_input) (struct tagINPUT *input, const char* mdev, const char* mtype);
|
||||
BOOL (*init_input) (struct tagINPUT *input, const char* mdev,
|
||||
const char* mtype);
|
||||
void (*term_input) (void);
|
||||
|
||||
// Mouse operations
|
||||
@@ -92,21 +87,26 @@ typedef struct tagINPUT
|
||||
void (*set_leds) (unsigned int leds);
|
||||
|
||||
// Event
|
||||
int (*wait_event) (int which, int maxfd, fd_set *in, fd_set *out,
|
||||
int (*wait_event) (int which, int maxfd, fd_set *in, fd_set *out,
|
||||
fd_set *except, struct timeval *timeout);
|
||||
|
||||
char mdev [MAX_PATH + 1];
|
||||
}INPUT;
|
||||
} INPUT;
|
||||
|
||||
#ifdef _MGIAL_CUSTOM
|
||||
extern BOOL InitCustomInput (INPUT* input, const char* mdev, const char* mtype);
|
||||
extern void TermCustomInput (void);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
BOOL InitCustomInput (INPUT* input, const char* mdev, const char* mtype);
|
||||
void TermCustomInput (void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* _MGIAL_CUSTOM */
|
||||
|
||||
#endif /* GUI_IAL_CUSTOM_H */
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
/**
|
||||
* \file exstubs.h
|
||||
* \author Wei Yongming <vincent@minigui.org>
|
||||
* \date 2019/04/07
|
||||
*
|
||||
* \brief This file is the header for NEWGAL/IAL engines which should be
|
||||
* implemented by an external module.
|
||||
*
|
||||
\verbatim
|
||||
|
||||
This file is part of MiniGUI, a mature cross-platform windowing
|
||||
and Graphics User Interface (GUI) support system for embedded systems
|
||||
and smart IoT devices.
|
||||
|
||||
Copyright (C) 2007~2018, Beijing FMSoft Technologies Co., Ltd.
|
||||
|
||||
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.
|
||||
|
||||
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,
|
||||
|
||||
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.
|
||||
|
||||
For more information about the commercial license, please refer to
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
/*
|
||||
* MiniGUI for Linux/uClinux, eCos, uC/OS-II, VxWorks,
|
||||
* pSOS, ThreadX, NuCleus, OSE, and Win32.
|
||||
*/
|
||||
|
||||
#ifndef GUI_EXSTUBS_H
|
||||
#define GUI_EXSTUBS_H
|
||||
|
||||
/* The pixel format defined by depth */
|
||||
#define COMMLCD_PSEUDO_RGB332 1
|
||||
#define COMMLCD_TRUE_RGB555 2
|
||||
#define COMMLCD_TRUE_RGB565 3
|
||||
#define COMMLCD_TRUE_RGB888 4
|
||||
#define COMMLCD_TRUE_RGB0888 5
|
||||
#define COMMLCD_TRUE_ARGB1555 6
|
||||
#define COMMLCD_TRUE_ARGB8888 7
|
||||
#define COMMLCD_TRUE_ABRG8888 8
|
||||
|
||||
#define COMMLCD_UPDATE_NONE 0
|
||||
#define COMMLCD_UPDATE_SYNC 1
|
||||
#define COMMLCD_UPDATE_ASYNC 2
|
||||
|
||||
struct commlcd_info {
|
||||
int height; // vertical resolution of the screen
|
||||
int width; // horinzontal resolution of the screen
|
||||
int pitch; // Length of one scan line in bytes
|
||||
int bpp; // Depth (bits-per-pixel)
|
||||
int type; // Pixel type
|
||||
int update_method; // Update method: none, asynchronously, or synchronously.
|
||||
Uint8* fb; // Frame buffer
|
||||
};
|
||||
|
||||
#define COMM_MOUSEINPUT 0x01
|
||||
#define COMM_KBINPUT 0x02
|
||||
|
||||
#define COMM_MOUSELBUTTON 0x01
|
||||
#define COMM_MOUSERBUTTON 0x04
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* external stubs for COMMLCD NEWGAL engine */
|
||||
#ifdef _MGGAL_COMMLCD
|
||||
|
||||
int __commlcd_drv_init (void);
|
||||
int __commlcd_drv_getinfo (struct commlcd_info *li,
|
||||
int width, int height, int depth);
|
||||
int __commlcd_drv_release (void);
|
||||
int __commlcd_drv_setclut (int firstcolor, int ncolors, GAL_Color *colors);
|
||||
int __commlcd_drv_update (const RECT* rc_dirty);
|
||||
|
||||
#endif /* _MGGAL_COMMLCD */
|
||||
|
||||
#ifdef _MGIAL_COMM
|
||||
|
||||
int __comminput_init (void);
|
||||
int __comminput_ts_getdata (short *x, short *y, short *button);
|
||||
int __comminput_kb_getdata (short *key, short *status);
|
||||
int __comminput_wait_for_input (struct timeval *timeout);
|
||||
void __comminput_deinit (void);
|
||||
|
||||
#endif /* _MGIAL_COMM */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* GUI_EXSTUBS_H */
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+24
-19
@@ -37,7 +37,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
@@ -2769,7 +2769,7 @@ MG_EXPORT void GUIAPI RGB2Pixels (HDC hdc, const RGB* rgbs,
|
||||
*/
|
||||
static inline gal_pixel RGB2Pixel (HDC hdc, Uint8 r, Uint8 g, Uint8 b)
|
||||
{
|
||||
RGB rgb = {r, g, b, 0};
|
||||
RGB rgb = {r, g, b, 0xFF};
|
||||
gal_pixel pixel;
|
||||
|
||||
RGB2Pixels (hdc, &rgb, &pixel, 1);
|
||||
@@ -6258,7 +6258,6 @@ MG_EXPORT BOOL GUIAPI ft2SetLcdFilter (LOGFONT* logfont, mg_FT_LcdFilter filter)
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(_MGFONT_QPF) || defined(_MGFONT_FT2) || defined(_MGFONT_TTF) || defined(_MGFONT_UPF)
|
||||
/**
|
||||
* \fn DEVFONT* GUIAPI LoadDevFontFromFile (const char* devfont_name, \
|
||||
* const char* file_name)
|
||||
@@ -6275,9 +6274,26 @@ MG_EXPORT BOOL GUIAPI ft2SetLcdFilter (LOGFONT* logfont, mg_FT_LcdFilter filter)
|
||||
*
|
||||
* \sa GetNextDevFont, DestroyDynamicDevFont
|
||||
*/
|
||||
MG_EXPORT DEVFONT* GUIAPI LoadDevFontFromFile (const char *devfont_name,
|
||||
MG_EXPORT DEVFONT* GUIAPI LoadDevFontFromFile (const char *devfont_name,
|
||||
const char *file_name);
|
||||
|
||||
/**
|
||||
* \fn DEVFONT* GUIAPI LoadDevFontFromIncoreData (const char* devfont_name, \
|
||||
* const void* data)
|
||||
* \brief Load device font from incore data.
|
||||
*
|
||||
* This function can be used to load device font from incore data.
|
||||
*
|
||||
* \param devfont_name The device font name.
|
||||
* \param data The pointer to the incore font data.
|
||||
*
|
||||
* \return the pointer to the new device font on success, NULL on error.
|
||||
*
|
||||
* \sa GetNextDevFont, DestroyDynamicDevFont
|
||||
*/
|
||||
MG_EXPORT DEVFONT* GUIAPI LoadDevFontFromIncoreData (const char *devfont_name,
|
||||
const void *data);
|
||||
|
||||
/**
|
||||
* \fn void GUIAPI DestroyDynamicDevFont (DEVFONT **devfont)
|
||||
* \brief Destroy device font loaded dynamically from font file.
|
||||
@@ -6288,7 +6304,6 @@ MG_EXPORT DEVFONT* GUIAPI LoadDevFontFromFile (const char *devfont_name,
|
||||
* \sa LoadDevFontFromFile
|
||||
*/
|
||||
MG_EXPORT void GUIAPI DestroyDynamicDevFont (DEVFONT **devfont);
|
||||
#endif
|
||||
|
||||
/** @} end of font_fns */
|
||||
|
||||
@@ -8003,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);
|
||||
}
|
||||
@@ -8760,10 +8775,8 @@ MG_EXPORT int GUIAPI DrawGlyph (HDC hdc, int x, int y, Glyph32 glyph_value,
|
||||
MG_EXPORT int GUIAPI DrawGlyphString (HDC hdc, int x, int y, Glyph32* glyph_string,
|
||||
int len, int* adv_x, int* adv_y);
|
||||
|
||||
#define GLYPH_INFO_TYPE 0x01
|
||||
#define GLYPH_INFO_BIDI_TYPE 0x02
|
||||
#define GLYPH_INFO_METRICS 0x04
|
||||
#define GLYPH_INFO_BMP 0x10
|
||||
#define GLYPH_INFO_METRICS 0x01
|
||||
#define GLYPH_INFO_BMP 0x02
|
||||
|
||||
/*the type of glyph bitmap*/
|
||||
#define GLYPHBMP_TYPE_MONO 0x00
|
||||
@@ -8780,18 +8793,10 @@ typedef struct _GLYPHINFO
|
||||
/**
|
||||
* The mask indicates if you want to get glyph type info, metrics,
|
||||
* or bitmap infomation you want. Or'ed with the following values:
|
||||
* - GLYPH_INFO_TYPE
|
||||
* - GLYPH_INFO_BIDI_TYPE
|
||||
* - GLYPH_INFO_METRICS
|
||||
* - GLYPH_INFO_BMP
|
||||
*/
|
||||
unsigned char mask;
|
||||
|
||||
/** The basic glyph type */
|
||||
unsigned int glyph_type;
|
||||
|
||||
/** The BIDI glyph type */
|
||||
unsigned int bidi_glyph_type;
|
||||
Uint32 mask;
|
||||
|
||||
/** The height of the glyph */
|
||||
int height;
|
||||
|
||||
+79
-56
@@ -37,7 +37,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
@@ -2565,10 +2565,6 @@ MG_EXPORT void GUIAPI FreeFixStr (char* str);
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifndef _MGHAVE_CURSOR
|
||||
static inline void do_nothing (void) { return; }
|
||||
#endif
|
||||
|
||||
#ifdef _MGHAVE_CURSOR
|
||||
|
||||
/**
|
||||
@@ -2730,12 +2726,34 @@ 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)
|
||||
#define DestroyCursor(hcsr) (do_nothing(), 0)
|
||||
#define GetSystemCursor(csrid) (do_nothing(), 0)
|
||||
#define GetCurrentCursor() (do_nothing(), 0)
|
||||
|
||||
static inline HCURSOR LoadCursorFromFile(const char* filename) {
|
||||
return (HCURSOR)0;
|
||||
}
|
||||
|
||||
static inline HCURSOR CreateCursor(int xhotspot, int yhotspot, int w, int h,
|
||||
const BYTE* pANDBits, const BYTE* pXORBits, int colornum) {
|
||||
return (HCURSOR)0;
|
||||
}
|
||||
|
||||
static inline HCURSOR GUIAPI CopyCursor (HCURSOR hcsr) {
|
||||
return (HCURSOR)0;
|
||||
}
|
||||
|
||||
static inline BOOL DestroyCursor (HCURSOR hcsr) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static inline HCURSOR GetSystemCursor (int csrid) {
|
||||
return (HCURSOR)0;
|
||||
}
|
||||
|
||||
static inline HCURSOR GUIAPI GetCurrentCursor (void) {
|
||||
return (HCURSOR)0;
|
||||
}
|
||||
|
||||
#endif /* _MGHAVE_CURSOR */
|
||||
|
||||
#define MAX_SYSCURSORINDEX 22
|
||||
@@ -2843,6 +2861,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.
|
||||
@@ -2861,40 +2880,7 @@ MG_EXPORT void GUIAPI SetCursorPos (int x, int y);
|
||||
*
|
||||
* \sa SetCursor, SetDefaultCursor, GetDefaultCursor
|
||||
*/
|
||||
MG_EXPORT HCURSOR GUIAPI SetCursorEx (HCURSOR hcsr, BOOL set_def);
|
||||
|
||||
/**
|
||||
* \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)
|
||||
MG_EXPORT HCURSOR GUIAPI SetCursorEx (HCURSOR hcsr, BOOL set_def);
|
||||
|
||||
/**
|
||||
* \fn HCURSOR GUIAPI GetDefaultCursor (void)
|
||||
@@ -2908,15 +2894,6 @@ MG_EXPORT void GUIAPI SetCursorPos (int x, int y);
|
||||
*/
|
||||
MG_EXPORT HCURSOR GUIAPI GetDefaultCursor (void);
|
||||
|
||||
#else
|
||||
#define SetCursorEx(hcsr, set_def) (do_nothing(), 0)
|
||||
#define SetCursor(hcsr) (do_nothing(), 0)
|
||||
#define SetDefaultCursor(hcsr) (do_nothing(), 0)
|
||||
#define GetDefaultCursor() (do_nothing(), 0)
|
||||
#endif /* _MGHAVE_CURSOR */
|
||||
|
||||
#ifdef _MGHAVE_CURSOR
|
||||
|
||||
/**
|
||||
* \fn int GUIAPI ShowCursor (BOOL fShow)
|
||||
* \brief Shows or hides cursor.
|
||||
@@ -2932,9 +2909,55 @@ MG_EXPORT HCURSOR GUIAPI GetDefaultCursor (void);
|
||||
* \return Cursor showing count value.
|
||||
*/
|
||||
MG_EXPORT int GUIAPI ShowCursor (BOOL fShow);
|
||||
#else
|
||||
#define ShowCursor(fShow) (do_nothing(), 0)
|
||||
#endif /* _MGHAVE_CURSOR */
|
||||
|
||||
#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 */
|
||||
|
||||
/**
|
||||
* \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 */
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
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/>.
|
||||
<http://www.minigui.com/blog/minigui-licensing-policy/>.
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user