Git Product home page Git Product logo

vincentwei / minigui Goto Github PK

View Code? Open in Web Editor NEW
670.0 670.0 157.0 26.41 MB

A modern and mature cross-platform window system for embedded systems and smart IoT devices.

Home Page: http://www.minigui.com

License: GNU General Public License v3.0

CMake 0.35% Makefile 0.88% Shell 1.22% C 94.57% C++ 0.17% Perl 0.33% HTML 0.14% M4 0.32% Pawn 0.02% Pascal 1.41% Python 0.13% SourcePawn 0.06% POV-Ray SDL 0.41%

minigui's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

minigui's Issues

How do I compile with VS2017 Or VSCode ?

1> 命令行: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2017\PROFESSIONAL\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe  -G "Ninja" -DCMAKE_INSTALL_PREFIX:PATH="C:\Users\mysti\CMakeBuilds\9eabd0cb-13cb-733d-a072-dddf51b1a80c\install\x86-Debug"  -DCMAKE_CXX_COMPILER="C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX86/x86/cl.exe"  -DCMAKE_C_COMPILER="C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX86/x86/cl.exe" win32   -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_MAKE_PROGRAM="C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2017\PROFESSIONAL\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe" "D:\GitHub\minigui"
1> 工作目录: C:\Users\mysti\CMakeBuilds\9eabd0cb-13cb-733d-a072-dddf51b1a80c\build\x86-Debug
1> -- Could NOT find PTHREAD, (missing: PTHREAD_INCLUDE_DIR PTHREAD_LIBRARY)
1> -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) 
1> -- Could NOT find JPEG, (missing: JPEG_INCLUDE_DIR JPEG_LIBRARY)
1> =============================================
1> MiniGUI Version :  3.0.13
1> Run mode        :  Threads
1> OS Name         :  win32
1> Target board    :  unknown
1> Library type    :   Dynamic
1> =============================================
1> 
1> *********************************************
1> * license-management
1> *********************************************
1> * Enabled:
1>     splash screensaver
1> 
1> * Disabled:
1>     productid
1> 
1> *********************************************
1> * gal
1> *********************************************
1> * Enabled:
1>     dummy pcxvfb
1> 
1> * Disabled:
1>     fbcon dfb qvfb wvfb commlcd shadow mlshadow em85xxosd em85xxyuv em86gfx svpxxosd
1>     bf533 mb93493 utpmc nexus s3c6410 custom sigma8654 mstar hi3560a gdl ST7167 STGFB
1>     rtosxvfb hi35xx
1> 
1> *********************************************
1> * ial
1> *********************************************
1> * Enabled:
1>     dummy consoleps2 consoleimps2 consolems consolems3 consoletextmode
1> 
1> * Disabled:
1>     custom net ciscotouchpad mstar ipaqh3600 nexus ipaqh5400 tslib auto random comm
1>     qvfb qemu wvfb jz4740 lide 2440 davinci6446 dfb console dlcustom consolegpm
1> 
1> *********************************************
1> * look and feel renderer
1> *********************************************
1> * Enabled:
1>     flat skin
1> 
1> * Disabled:
1>    (null)
1> 
1> *********************************************
1> * control
1> *********************************************
1> * Enabled:
1>     static button sledit bidisledit listbox progressbar newtoolbar trackbar combobox
1>     propsheet scrollview monthcal treeview spinbox coolbar listview iconview animation
1>     scrollbar newtextedit textedit menubutton
1> 
1> * Disabled:
1>     treeviewrdr gridview
1> 
1> *********************************************
1> * charset
1> *********************************************
1> * Enabled:
1>     latin2support latin3support latin4support latin5support latin6support latin7support
1>     latin8support latin9support latin10support cyrillicsupport arabicsupport greeksupport
1>     hebrewsupport thaisupport gbsupport gbksupport big5support euckrsupport eucjpsupport
1>     shiftjissupport
1> 
1> * Disabled:
1>     gb18030support
1> 
1> *********************************************
1> * font
1> *********************************************
1> * Enabled:
1>     bmpfsupport upfsupport rbfsupport vbfsupport unicodesupport
1> 
1> * Disabled:
1>     qpfsupport sefsupport ttfenablecache ttfgrayadjust
1> 
1> *********************************************
1> * incorefont
1> *********************************************
1> * Enabled:
1>     rbfvgaoem rbfterminal rbffixedsys sserif courier system times
1> 
1> * Disabled:
1>    (null)
1> 
1> *********************************************
1> * image
1> *********************************************
1> * Enabled:
1>     gifsupport
1> 
1> * Disabled:
1>     pcxsupport lbmsupport tgasupport pngsupport jpgsupport
1> 
1> *********************************************
1> * keyboard-layout
1> *********************************************
1> * Enabled:
1>    (null)
1> 
1> * Disabled:
1>     hebrewpc arabicpc frpc fr de delatin1 it es escp850
1> 
1> *********************************************
1> * misc
1> *********************************************
1> * Enabled:
1>     dblclk savebitmap aboutdlg savescreen havemenu haveclipboard havecursor havefixedmath
1>     havemousecalibrate haveadv2dapi
1> 
1> * Disabled:
1>     debug miniguientry incoreres useownmalloc useownstdio useownpthread havetracemsg
1>     havemsgstr
1> 
1> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1> !!
1> !! WARNING
1> !!
1> !!
1> !! Product ID is *DISABLE*
1> !!
1> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1> 
1> -- Configuring done
1> CMake Error at src/CMakeLists.txt:104 (add_library):
1> -- Build files have been written to: C:/Users/mysti/CMakeBuilds/9eabd0cb-13cb-733d-a072-dddf51b1a80c/build/x86-Debug
1>   Cannot find source file:
1> 
1>     font/freetype.h
1> 
1>   Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
1>   .hpp .hxx .in .txx
1> 
1> 
1> CMake Error at src/CMakeLists.txt:104 (add_library):
1>   No SOURCES given to target: _ths
1> 
1> 
1> C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2017\PROFESSIONAL\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe  -G "Ninja" -DCMAKE_INSTALL_PREFIX:PATH="C:\Users\mysti\CMakeBuilds\9eabd0cb-13cb-733d-a072-dddf51b1a80c\install\x86-Debug"  -DCMAKE_CXX_COMPILER="C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX86/x86/cl.exe"  -DCMAKE_C_COMPILER="C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX86/x86/cl.exe" win32   -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_MAKE_PROGRAM="C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2017\PROFESSIONAL\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe" "D:\GitHub\minigui" 已返回,并带有退出代码: 1
=============================================
MiniGUI Version :  3.0.13
Run mode        :  Threads
OS Name         :  win32
Target board    :  unknown
Library type    :   Dynamic
=============================================
*********************************************
* license-management
*********************************************
* Enabled:
    splash screensaver
* Disabled:
    productid
*********************************************
* gal
*********************************************
* Enabled:
    dummy pcxvfb
* Disabled:
    fbcon dfb qvfb wvfb commlcd shadow mlshadow em85xxosd em85xxyuv em86gfx svpxxosd
    bf533 mb93493 utpmc nexus s3c6410 custom sigma8654 mstar hi3560a gdl ST7167 STGFB
    rtosxvfb hi35xx
*********************************************
* ial
*********************************************
* Enabled:
    dummy consoleps2 consoleimps2 consolems consolems3 consoletextmode
* Disabled:
    custom net ciscotouchpad mstar ipaqh3600 nexus ipaqh5400 tslib auto random comm
    qvfb qemu wvfb jz4740 lide 2440 davinci6446 dfb console dlcustom consolegpm
*********************************************
* look and feel renderer
*********************************************
* Enabled:
    flat skin
* Disabled:
   (null)
*********************************************
* control
*********************************************
* Enabled:
    static button sledit bidisledit listbox progressbar newtoolbar trackbar combobox
    propsheet scrollview monthcal treeview spinbox coolbar listview iconview animation
    scrollbar newtextedit textedit menubutton
* Disabled:
    treeviewrdr gridview
*********************************************
* charset
*********************************************
* Enabled:
    latin2support latin3support latin4support latin5support latin6support latin7support
    latin8support latin9support latin10support cyrillicsupport arabicsupport greeksupport
    hebrewsupport thaisupport gbsupport gbksupport big5support euckrsupport eucjpsupport
    shiftjissupport
* Disabled:
    gb18030support
*********************************************
* font
*********************************************
* Enabled:
    bmpfsupport upfsupport rbfsupport vbfsupport unicodesupport
* Disabled:
    qpfsupport sefsupport ttfenablecache ttfgrayadjust
*********************************************
* incorefont
*********************************************
* Enabled:
    rbfvgaoem rbfterminal rbffixedsys sserif courier system times
* Disabled:
   (null)
*********************************************
* image
*********************************************
* Enabled:
    gifsupport
* Disabled:
    pcxsupport lbmsupport tgasupport pngsupport jpgsupport
*********************************************
* keyboard-layout
*********************************************
* Enabled:
   (null)
* Disabled:
    hebrewpc arabicpc frpc fr de delatin1 it es escp850
*********************************************
* misc
*********************************************
* Enabled:
    dblclk savebitmap aboutdlg savescreen havemenu haveclipboard havecursor havefixedmath
    havemousecalibrate haveadv2dapi
* Disabled:
    debug miniguientry incoreres useownmalloc useownstdio useownpthread havetracemsg
    havemsgstr
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!
!! WARNING
!!
!!
!! Product ID is *DISABLE*
!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
CMake Error at src/CMakeLists.txt:104 (add_library):
  Cannot find source file:
    font/freetype.h
  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
  .hpp .hxx .in .txx
CMake Error at src/CMakeLists.txt:104 (add_library):
  No SOURCES given to target: _ths


5.0版本编译后的可执行文件无法执行

报错内容:
error while loading shared libraries: libminigui_procs-5.0.so.0: cannot open shared object file: No such file or directory
问题是我make&make install的时候,是安装成功了的,编译mgsample的代码过程也没问题,但是一旦执行的时候就会报这个错误(4.X版本没有上述内容的错误)提示报错的文件在/usr/local/lib中存在

PS:官方给的mg-samples有一个瑕疵错误就是如果configure后,make的时候会提示缺少-lfreetype,(注意这个逗号),似乎是configure的文件的错误

关于mGNCS、mGi的集成

您好,
我司使用的是rockchip的芯片,其中UI部分使用了miniGUI作为UI框架,但rk方面仅集成了miniGUI核心库,并没有集成mGi、mGNCS等附属库。咨询rk方面被告知其他组件需要我们自行移植。
在集成过程中提示
checking for MINIGUI... configure: error: Package requirements (minigui >= 3.0.10) were not met:
在网上我找不到合适的帮助信息。
是否可以得到您的帮助。

question: does minigui support safertos

Hi @VincentWei ,

I'm working on a project that plan to run gui on safertos under i.xm6ull board(cortex-A7 process).
I'm currently doing the evaluation of the gui libraries.
I want to know whether the minigui supports safertos.
If the answer is no, is there any change that can be done to support this?

鼠标光标在程序不全屏的情况下不能全屏显示

minigui程序不全屏的情况,鼠标光标只能显示有程序界面的地方,移动到其它没有显示程序界面的地方时,光标不显示。
怎么修改,可以让程序不全屏的情况下,鼠标光票也可以全屏移动显示?
目前发现注释static void showcursor (void)函数中的GAL_GetBox (__gal_screen, &csr_rect, &csr_bmp);(src/kernel/cursor-sa.c文件中),光标可以全屏显示,但是光标有严重的拖尾现象。

minigui not fount hb-ft.h and --with_ft2_includes is invalid

Hello, Mr Wei :
miniGUI 5.0.3
I have two issues.
1. hb-ft.h miss after make install harfbuzz, it's not be fount in include/harfbuzz.
out info : ....... shape-glyphs-complex.c:76:19: fatal error: hb-ft.h: No such file or directory
#include <hb-ft.h>
2.--with_ft2_includes is not effect. I guess is a bug :
file configure.ac:2240 2240 with_ft2_includes=""
Thanks

建议作者在minigui工程中加入input-event-codes.h

看到minigui中使用linux中的input-event-codes.h头文件,桌面的系统中会有这个头文件,但是当交叉编译时不会搜做桌面系统头文件路径,导致minigui编译出错。我看到libinput工程源码中就自己包含了这个文件,minigui是一个出色的可移植库,希望作者将input-event-codes.h包含在minigui工程中,提高可移植性。

ial/random.c:129:#include <linux/input-event-codes.h>
ial/linux-libinput.c:182:#include <linux/input-event-codes.h>

作者请看看

我2008年前用过minigui开发过一个项目,当时公司还买了2.04的授权,现在一个项目我又想到来用minigui,发现minigui3.0,没想到现在minigui推荐的MGNCS加mstudio设计的这么反人类,简直难用至极,我做了10多年开发,还是第一次看到一个软件发展了20年,演化的如此难用。作者可以看看FlyThings OS,开发效率比mstudio+mgncs好用多了

其他平台支持

minigui如何支持一个FreeRTOS系统呢? 是需要你们来支持,还是开发者也可以移植?

bug report for mGNCS

the mSpinbox have a bug : the font selected is not effective on runt time.
for detail, please see my blog : https://blog.csdn.net/10km/article/details/81147355

I fixed it in my mGNCS source.

because mGNCS have not opened git repository, I can't create pull request. so you can see also the commit :
https://gitee.com/l0km/libmgncs-1.2.0/commit/0d9e1ea9e7c196c15853d05dd25d709d43669b1d

another litte issue,please see the commit: https://gitee.com/l0km/libmgncs-1.2.0/commit/720670dee25a9d44ecc8eaa802c787e638e9fee4

如果没使能SCROLLBAR编译lf_skin会出现错误

lf_skin.c: In function 'get_scroll_status':
lf_skin.c:2671:26: error: 'CTRL_SCROLLBAR' undeclared (first use in this function)
if (0 == strncasecmp(CTRL_SCROLLBAR, GetClassName(hWnd), strlen(CTRL_SCROLLBAR)))
^~~~~~~~~~~~~~
lf_skin.c:2671:26: note: each undeclared identifier is reported only once for each function it appears in
lf_skin.c: In function 'draw_scrollbar':
lf_skin.c:2708:27: error: 'CTRL_SCROLLBAR' undeclared (first use in this function)
if (0 == strncasecmp (CTRL_SCROLLBAR, GetClassName(hWnd), strlen(CTRL_SCROLLBAR))) {
^~~~~~~~~~~~~~
lf_skin.c: In function 'draw_trackbar_thumb':
lf_skin.c:3005:19: error: 'TBS_VERTICAL' undeclared (first use in this function)
if (dwStyle & TBS_VERTICAL) {
^~~~~~~~~~~~
lf_skin.c:3042:19: error: 'LFRDR_TBS_PRESSED' undeclared (first use in this function)
if (dwStyle & LFRDR_TBS_PRESSED)
^~~~~~~~~~~~~~~~~
lf_skin.c:3044:24: error: 'LFRDR_TBS_HILITE' undeclared (first use in this function)
else if (dwStyle & LFRDR_TBS_HILITE)
^~~~~~~~~~~~~~~~
lf_skin.c: In function 'calc_trackbar_rect':
lf_skin.c:3072:19: error: 'TBS_BORDER' undeclared (first use in this function)
if (dwStyle & TBS_BORDER) {
^~~~~~~~~~
lf_skin.c:3086:19: error: 'TBS_VERTICAL' undeclared (first use in this function)
if (dwStyle & TBS_VERTICAL) {
^~~~~~~~~~~~
lf_skin.c: In function 'draw_trackbar':
lf_skin.c:3150:19: error: 'TBS_VERTICAL' undeclared (first use in this function)
if (dwStyle & TBS_VERTICAL){

如果设置--disable-ctrlscrollview, 链接库时会报错

listview.c:(.text+0x1f4): undefined reference to scrolled_visible_to_content' listview.c:(.text+0x208): undefined reference to scrollview_is_in_item'
listview.c:(.text+0x228): undefined reference to `scrollview_get_item_adddata'

listview.c:(.text+0x2a8): undefined reference to mglist_freeze' listview.c:(.text+0x2c4): undefined reference to mglist_freeze'
listview.c:(.text+0x2d8): undefined reference to mglist_get_next_item' listview.c:(.text+0x2e0): undefined reference to scrollview_get_item_adddata'
listview.c:(.text+0x2fc): undefined reference to scrollview_set_item_height' listview.c:(.text+0x33c): undefined reference to mglist_get_next_item'

listview.c:(.text+0x35c): undefined reference to mglist_getitem_byindex' listview.c:(.text+0x364): undefined reference to scrollview_get_item_adddata'

listview.c:(.text+0x390): undefined reference to `scrolled_visible_to_content'

listview.c:(.text+0xfe4): undefined reference to ScrollViewCtrlProc' listview.c:(.text+0x1278): undefined reference to mglist_get_next_item'
listview.c:(.text+0x127c): undefined reference to scrollview_get_item_adddata' listview.c:(.text+0x13d8): undefined reference to scrollview_get_item_adddata'
listview.c:(.text+0x141c): undefined reference to mglist_hilight_item' listview.c:(.text+0x1624): undefined reference to scrollview_get_item_rect'
listview.c:(.text+0x1650): undefined reference to scrollview_init' listview.c:(.text+0x1684): undefined reference to scrolled_set_margins'
listview.c:(.text+0x1748): undefined reference to scrollview_destroy' listview.c:(.text+0x1810): undefined reference to scrollview_draw'
listview.c:(.text+0x1840): undefined reference to mglist_refresh_item' listview.c:(.text+0x1ba0): undefined reference to ScrollViewCtrlProc'
listview.c:(.text+0x1e70): undefined reference to mglist_get_next_item' listview.c:(.text+0x1e74): undefined reference to scrollview_get_item_adddata'
listview.c:(.text+0x2044): undefined reference to scrollview_add_item_ex' listview.c:(.text+0x20b0): undefined reference to scrollview_add_item'
listview.c:(.text+0x2234): undefined reference to mglist_refresh_item' listview.c:(.text+0x2384): undefined reference to mglist_get_next_item'
listview.c:(.text+0x2388): undefined reference to scrollview_get_item_adddata' listview.c:(.text+0x240c): undefined reference to scrollview_del_item'
listview.c:(.text+0x24b0): undefined reference to mglist_get_next_item' listview.c:(.text+0x24b4): undefined reference to scrollview_get_item_adddata'
listview.c:(.text+0x2554): undefined reference to mglist_make_item_visible' listview.c:(.text+0x2584): undefined reference to mglist_hilight_item'
listview.c:(.text+0x2684): undefined reference to scrollview_set_item_height' listview.c:(.text+0x26b8): undefined reference to scrolled_set_margins'

V5 创建异型窗口不能生效, 只能控件生效, 3.0.12可以正常

V5 创建异型窗口不能生效, 只能控件生效, 3.0.12可以正常
下面代码对控件使用是生效的, 但是对MainWindow使用不生效

    RECT rc;
    BLOCKHEAP cliprc_heap;
    CLIPRGN circle_rgn;

    GetWindowRect(hwnd, &rc);

    InitFreeClipRectList(&cliprc_heap, 50);

    InitClipRgn(&circle_rgn, &cliprc_heap);
    InitCircleRegion (&circle_rgn, 20, 20, 20);

    print_rgn(&circle_rgn);

    if (!SetWindowRegion(hwnd, &circle_rgn))
        printf("Error calling SetWindowRegion.\n");

    EmptyClipRgn (&circle_rgn);
    DestroyFreeClipRectList (&cliprc_heap);

Send2Client函数使用后,客户端程序在哪里响应

我看了官方文档以及API参考手册,似乎没有找到这个函数的具体用法
比如我创建一个MSG后,通过客户端ID发送给指定客户端
那么在客户端一侧是如何接收消息并且处理的,是主窗口的消息处理函数吗?

minigui --enable-videoshadow导致其他组件编译失败

minigui5.0.3

无意中使能了--enable-videoshadow,发现了一些报错,查找资料说shadow可以实现旋转屏幕。忽然对shadow起了兴趣。
1.qt或者android都支持屏幕旋转,minigui是不是支持屏幕旋转?
2.看过有地方说shadow可以支持旋转,但是--enable-videoshadow其他组件都会报找不到GAL_GetVideo参考。grep 整个minigui确实只定义了一个静态的GAL_GetVideo。
3.在minigui/src/newgal/video.c:176:static GAL_VideoDevice GAL_GetVideo(const char driver_name)。
而在minigui/src/newgal/shadow/shadow.c:113: extern GAL_VideoDevice GAL_GetVideo(const char driver_name, BOOL check_compos);
minigui/src/newgal/shadow/shadow.c:308: real_device = GAL_GetVideo (engine, FALSE);
参数参数不一致。不知道这两个函数是否相同?还是说shadow中的 GAL_GetVideo 需要自己实现?

RegisterListenFD 有个逻辑有些不合理

if (ok && msg_queue->maxfd < fd) {
msg_queue->maxfd = fd;
return TRUE;
}

应该改为下面更合理
if (ok) {
if (msg_queue->maxfd < fd)
msg_queue->maxfd = fd;
return TRUE;
}

作为曾经老用户吐槽下, no zuo no die why you try

minigui当年挺火的,还开源。后来大家给他踩坑差不多了后就闭源了,你说这狗血了吧,后来异军突起,minigui干不过别人又开源了,但是呢已经没有多少学生、开发者用了,现在居然出来刷存在感,真是no zuo no die a

未配置_MGHAVE_CLIPBOARD, 编译mtextedit.c出错

mtextedit.c:4614:17: warning: implicit declaration of function 'SetClipBoardData' [-Wimplicit-function-declaration]
SetClipBoardData (CBNAME_TEXT, NULL, 0, CBOP_NORMAL);
^~~~~~~~~~~~~~~~
mtextedit.c:4614:35: error: 'CBNAME_TEXT' undeclared (first use in this function)
SetClipBoardData (CBNAME_TEXT, NULL, 0, CBOP_NORMAL);
^~~~~~~~~~~
mtextedit.c:4614:35: note: each undeclared identifier is reported only once for each function it appears in
mv -f .deps/mwidget.Tpo .deps/mwidget.Plo
mtextedit.c:4614:57: error: 'CBOP_NORMAL' undeclared (first use in this function)
SetClipBoardData (CBNAME_TEXT, NULL, 0, CBOP_NORMAL);
^~~~~~~~~~~
mtextedit.c:4618:44: error: 'CBOP_APPEND' undeclared (first use in this function)
selEnd - selBegin, CBOP_APPEND);
^~~~~~~~~~~
mtextedit.c:4643:29: warning: implicit declaration of function 'GetClipBoardDataLen' [-Wimplicit-function-declaration]
inserting = GetClipBoardDataLen (CBNAME_TEXT);
^~~~~~~~~~~~~~~~~~~
mtextedit.c:4646:21: warning: implicit declaration of function 'GetClipBoardData' [-Wimplicit-function-declaration]
GetClipBoardData (CBNAME_TEXT, txtBuffer, inserting);
^~~~~~~~~~~~~~~~
Makefile:385: recipe for target 'mtextedit.lo' failed

5.0版本如果出现窗口套窗口的情况,显示就会出问题

如题,在5.0版本下,proc模式中,如果有一个窗口套另一个窗口,小一点的窗口在大一点的窗口里面移动(不移出窗口外范围)就会出现如下图所示问题
QQ图片20200422220907
(如果看不见图,那我描述一下,就是小窗口会残留在大窗口界面上自己的“残影”,类似纸牌游戏胜利后的样子)
而同样的代码和程序在4.0版本就不会出现
请问这是为什么,和新的合成图式功能有关吗?

出现了缺少cur文件的问题

4.0版本编译后尝试执行,提示KERNEL>InitGUI: Count not init mouse cursor!
上网查询在MiniGui.cfg文件中需要指定cur文件目录
然而我在系统根目录find / -name "*.cur"却没有找到这样的文件
请问这些文件是怎么生成的?谢谢

enable-pngsupport bug

My project exist libpng 1.6 version. I try to config --enable-pngsupport to enable png suppport. But it's no work, is report "checking for png_check_sig in -lpng... no". And i try to use old libpng of version 1.2.37, it's success. I think there are some problem to use libpng new version.

libharfbuzzex.so.0.20501.0 如何得到

ln -s $TINA_DIR/lichee/linux-4.4/include/uapi/linux/input-event-codes.h input-event-codes.h
cd $WORK_DIR/rootfs/usr/local/lib
sudo ln -s libharfbuzzex.so.0.20501.0 libharfbuzz.so
cd $WORK_DIR/minigui

编译harfbuzz后只会生成libharfbuzz-subset.so.0.20501.0和libharfbuzz.so.0.20501.0,并没有harfbuzzex.编译过程中也打开了--with-exunicode=yes

建议将udev更换为eudev

目前看到minigui可以支持libinput,而libinput需要libudev这个依赖。目前看到作者嵌入式自动化编译脚本中使用的是udev,编译udev需要很多依赖,移植起来比较麻烦。udev项目比较老了,现在eudev兼容udev,希望作者能替换掉udev。我在学习过程中,已将尝试编译eudev,过程相对udev简单很多,并且能正确支持libinput。

eudev项目:https://github.com/gentoo/eudev/tree/master

关于对minigui进行g2d加速的实现?

你好:
  在一些基于低端处理器的应用场合,使用cpu做blit, scale或者二维blending会非常吃力,应用中一般会使用而二维加速单元GE(有些场合叫g2d)对gui进行加速,目前miniGUI对这部分操作都进行了软件实现,我的问题是,如果想用G2D硬件对minigui进行加速,应该修改哪些地方?miniGUI有集中统一定义加速接口 fops吗?还是分散在不同的源码中,遍历整个miniGUI的实现逐一替换?
谢谢!

部分平台有可能导致黑屏,以下是分析报告

有部分平台在启动miniGUI的时候(32位色模式下)会出现画面全黑的情况,目前已知出现这种问题的平台会有如下特征:
控制台输入fbset,输出的结果中如下:
mode "800x1280-22"
# D: 27.000 MHz, H: 28.785 kHz, V: 21.724 Hz
geometry 800 1280 800 1280 32
timings 37037 60 16 30 9 62 6
accel false
rgba 0/0,0/0,0/0,0/0
endmode
rgba这里变成了全0
而正常应该显示为:
rgba 8/16,8/8,8/0,8/24
看样子似乎是指定每个像素点中RGBA分量的长度和偏移量
目前我用fbset -rgba 8/16,8/8,8/0,8/24这样的命令行不通,只能通过修改代码来解决问题
目前是这样做的:
在miniGUI源码目录/src/newgal/fbcon/fbvideo.c中第621行插入如下代码
vinfo.red.length=8;
vinfo.green.length=8;
vinfo.blue.length=8;
vinfo.transp.length=8;
vinfo.red.offset=16;
vinfo.green.offset=8;
vinfo.blue.offset=0;
vinfo.transp.offset=24;
经过这样修改就正常了,但是毕竟是我个人的修改方式
这种问题有没有更好的解决方法?

控件透明问题

目前使用版本 3.2

static void CreatePopUpMenu(HWND hWnd)
{
    // HDC hdc = GetClientDC(hWnd);
    hStaticWnd1.Create("static",
        "",
        WS_CHILD | WS_VISIBLE | SS_CENTER | SS_BITMAP | WS_EX_TRANSPARENT,
        // WS_CHILD | WS_VISIBLE | SS_CENTER | SS_BITMAP,
        IDC_STATIC1,
        1040, 0, 240, 720, hWnd, (DWORD)menubmp.bmp.get());
    // 1040, 0, 240, 720, hWnd, 0);
    SetWindowBkColor(hStaticWnd1.handle, 0x7f1d233a);

    hButton1.Create("button",
        "",
        WS_CHILD | BS_NOTIFY | BS_BITMAP | WS_VISIBLE | BS_NOBORDER
            | WS_EX_TRANSPARENT,
        // WS_CHILD | BS_NOTIFY | BS_BITMAP | WS_VISIBLE | BS_NOBORDER,
        IDC_BUTTON1,
        80, 20, 80, 120, hStaticWnd1.handle, (DWORD)btnbmp1.bmp.get());
    SetWindowBkColor(hButton1.handle, 0x7f1d233a);
}

微信截图_20200408184436

如图,右边蓝色是个 static 标签,上面贴有一个带透明的按钮,但是透明部分没有和背景融合,也设置了背景颜色,仍然不行。

ShowWindow()运行原理问题

4.0版本中,在proc模式下,对某一进程的主窗口使用ShowWindow(SW_HIDE)后会出现无法接收由服务器程序发送的消息的情况,请问这是为什么?

button destroy caused double free

I created an esay encapsulation that each widget will release automatically.

struct WidgetType {
    WidgetType() {}
    WidgetType(const char* spClassName,
        const char* spCaption, DWORD dwStyle, LINT id,
        int x, int y, int w, int h, HWND hParentWnd,
        DWORD dwAddData)
    {
        Create(spClassName, spCaption, dwStyle, id,
            x, y, w, h, hParentWnd, dwAddData);
    }
    ~WidgetType()
    {
        Destroy();
    }
    void Create(const char* spClassName,
        const char* spCaption, DWORD dwStyle, LINT id,
        int x, int y, int w, int h, HWND hParentWnd,
        DWORD dwAddData)
    {
        CHECK_EQ_F(handle, nullptr, "handle is not nullptr");
        handle = CreateWindow(spClassName, spCaption, dwStyle, id,
            x, y, w, h, hParentWnd, dwAddData);
    }
    void Destroy()
    {
           if (handle != nullptr)
               DestroyWindow(handle);
           handle = nullptr;
        
    }
    bool Empty()
    {
        return handle == nullptr;
    }
    /* data */
    HWND handle = nullptr;
};

but is seems weird that some button caused a double free when I was closing the window:

GUI>Window: MainWindowThreadCleanup called: 0x6cb660 ((null))
GUI>Window: Message queure is freed: 0x6cb660 ((null))
*** Error in `/home/garrick/workspace/cpp/minigui_demo/build/minigui_demo': double free or corruption (!prev): 0x00000000006cd270 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7ffff64f47e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7ffff64fd37a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7ffff650153c]
/home/garrick/workspace/cpp/minigui_demo/3rdparty/lib/libminigui_ths-3.2.so.0(+0x5c98c)[0x7ffff798498c]
/home/garrick/workspace/cpp/minigui_demo/3rdparty/lib/libminigui_ths-3.2.so.0(DestroyWindow+0x31)[0x7ffff79d8641]
/home/garrick/workspace/cpp/minigui_demo/build/minigui_demo(_ZN10WidgetType7DestroyEv+0x33)[0x495cd5]
/home/garrick/workspace/cpp/minigui_demo/build/minigui_demo(_ZN10WidgetTypeD1Ev+0x18)[0x495a8c]
/lib/x86_64-linux-gnu/libc.so.6(+0x39ff8)[0x7ffff64b6ff8]
/lib/x86_64-linux-gnu/libc.so.6(+0x3a045)[0x7ffff64b7045]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf7)[0x7ffff649d837]
/home/garrick/workspace/cpp/minigui_demo/build/minigui_demo(_start+0x29)[0x45f279]

should I need to destroy the button manually ?

新版本取消了最小化窗口的功能吗?

有一份比较早期的minigui文档提到了窗口可以添加WS_MINIMIZE参数,让窗口可以最小化
然而3.0版本的文档则去掉了这部分,是否去掉了窗口可以最小化的功能?
因为我打算在proc模式下,做一个和演示中的mginit类似的桌面,可以将窗口最小化到任务栏(类似windows那种),但是似乎找不到可以最小化的方法
使用ShowWindow(hwnd,SW_HIDE)隐藏程序主窗口的话,窗口就不能再接收服务端发送的消息了
所以想请教下,是否在新版本中取消了窗口最小化的功能?

suggest: support wayland

wayland is popular, in case of be compatible and easier hardware accel, support wayland in minigui will be grateful

a suggest: support dynamic define variable mechanism for window instance

In my project, base mgncs, I design a dynamic define variable mechanism for a mWidget instance ,so called "Widget Local",
see my blog for detail : https://blog.csdn.net/10km/article/details/81666413 .

I think it's a useful feature for general application design. Although my code is base mgncs,but it's easy to modify for minigui , if you think necessary ,I can contribute it for minigui. also if minigui have implemented alternative mechanism , please tell me.

"__hb_extern_get_unicode_funcs"似乎找不到

我将miniGUI4.0.2编译安装后,编译helloworld,提示:“undefined reference to __hb_extern_get_unicode_funcs'”这个问题,即使我在gcc编译中添加-lharfbuzz,依然有这个问题 请问这是怎么回事 具体报错内容: /usr/local/lib/libminigui_procs.so: undefined reference to __hb_extern_get_unicode_funcs'

建议MiniGUI 更名

MiniGUI 这名字乍一看会让人觉得这个框架不强大(mini)的感觉,对你们推广这个工具没什么好处,所以建议MiniGUI 更名

fbcon 800*1280分辨率下,32位色显示全黑

在allwinner T3的平台上,使用1024x600,32位分辨率是没有问题的
但是在sunplus平台上,屏幕分辨率是800*1280(竖屏),只要在MiniGUI.cfg文件中设置32bpp就会完全黑屏(执行程序会刷新整个屏幕为黑色,如果缩小分辨率,也会刷新这个分辨率区域内的黑屏)
在8bpp、16bpp、24bpp下可以显示画面,但是颜色不正常,而且有缩小显示范围的情况(目前确认屏幕和平台都是32位色模式)
请问这是什么原因所导致的?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.