Browse Source

Merge branch 'master' of https://gitee.com/RT-Thread-Mirror/gui_engine

yangfasheng 7 năm trước cách đây
mục cha
commit
c99e117466

+ 25 - 11
SConscript

@@ -1,19 +1,33 @@
-# RT-Thread building script for bridge
+# RT-Thread building script for GuiEngine
 
 import os
+import rtconfig
 from building import *
 
 cwd = GetCurrentDir()
-src = []
-CPPPATH = [ cwd + '/include']
 
-objs = DefineGroup('GuiEngine', src, depend = ['PKG_USING_GUIENGINE'], CPPPATH = CPPPATH)
-list = os.listdir(cwd)
+src = Glob('src/*.c')
+CPPPATH = [cwd + '/include']
 
-if GetDepend('PKG_USING_GUIENGINE'):
-    for d in list:
-        path = os.path.join(cwd, d)
-        if os.path.isfile(os.path.join(path, 'SConscript')):
-            objs = objs + SConscript(os.path.join(d, 'SConscript'))
+if GetDepend('GUIENGINE_IMAGE_TJPGD'):
+    src += Glob('libraries/tjpgd1a/*.c')
+    CPPPATH += [cwd + '/libraries/tjpgd1a']
 
-Return('objs')
+if GetDepend('GUIENGINE_IMAGE_LODEPNG'):
+    if rtconfig.ARCH == 'sim':
+            src += Glob('libraries/lodepng/*.c')
+            CPPPATH += [cwd + '/libraries/lodepng']
+    else:
+        if GetDepend('RT_USING_LIBC'):
+            src += Glob('libraries/lodepng/*.c')
+            CPPPATH += [cwd + '/libraries/lodepng']
+
+group = DefineGroup('GuiEngine', src, depend = ['PKG_USING_GUIENGINE'], CPPPATH = CPPPATH)
+
+if GetDepend('GUIENGINE_USING_DEMO'):
+    group = group + SConscript(os.path.join('example', 'SConscript'))
+
+if GetDepend('GUIENGINE_USING_TTF'):
+    group = group + SConscript(os.path.join('libraries/freetype-2.6.2', 'SConscript'))
+
+Return('group')

+ 2 - 1
example/SConscript

@@ -1,8 +1,9 @@
+# RT-Thread building script for GuiEngine demo
+
 from building import *
 
 cwd = GetCurrentDir()
 src = Glob('*.c')
-
 CPPPATH = [cwd]
 
 group = DefineGroup('gui_demo', src, depend = ['GUIENGINE_USING_DEMO'], CPPPATH = CPPPATH)

+ 5 - 1
include/rtgui/event.h

@@ -417,6 +417,10 @@ struct rtgui_event_touch
 #define RTGUI_TOUCH_MOTION              0x03
 #define RTGUI_EVENT_TOUCH_INIT(e)       RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_TOUCH)
 
+#ifndef GUIENGINE_CMD_STRING_MAX
+#define GUIENGINE_CMD_STRING_MAX        16
+#endif
+
 struct rtgui_event_command
 {
     _RTGUI_EVENT_WIN_ELEMENTS
@@ -428,7 +432,7 @@ struct rtgui_event_command
     rt_int32_t command_id;
 
     /* command string */
-    char command_string[GUIENGINE_NAME_MAX];
+    char command_string[GUIENGINE_CMD_STRING_MAX];
 };
 #define RTGUI_EVENT_COMMAND_INIT(e) RTGUI_EVENT_INIT(&((e)->parent), RTGUI_EVENT_COMMAND)
 

+ 7 - 0
include/rtgui/rtgui_config.h

@@ -67,6 +67,13 @@
 
 #define GUIENGIN_USING_VFRAMEBUFFER
 
+#ifndef PKG_USING_RGB888_PIXEL_BITS_32
+#ifndef PKG_USING_RGB888_PIXEL_BITS_24
+#define PKG_USING_RGB888_PIXEL_BITS_32
+#define PKG_USING_RGB888_PIXEL_BITS 32
+#endif
+#endif
+
 #ifdef DEBUG_MEMLEAK
 #define rtgui_malloc     rt_malloc
 #define rtgui_realloc    rt_realloc

+ 1 - 1
include/rtgui/rtgui_object.h

@@ -129,7 +129,7 @@ struct rtgui_object
 
     enum rtgui_object_flag flag;
 
-    rt_uint32_t id;
+    rt_ubase_t id;
 };
 
 rtgui_object_t *rtgui_object_create(const rtgui_type_t *object_type);

+ 0 - 0
src/mouse.h → include/rtgui/widgets/mouse.h


+ 0 - 0
src/topwin.h → include/rtgui/widgets/topwin.h


+ 1 - 1
include/rtgui/widgets/widget.h

@@ -102,7 +102,7 @@ struct rtgui_widget
     rt_int32_t flag;
 
     /* hardware device context */
-    rt_uint32_t dc_type;
+    rt_ubase_t dc_type;
     const struct rtgui_dc_engine *dc_engine;
 
     /* the graphic context of widget */

+ 0 - 15
libraries/SConscript

@@ -1,15 +0,0 @@
-# RT-Thread building script for bridge
-
-import os
-from building import *
-
-cwd  = GetCurrentDir()
-objs = []
-list = os.listdir(cwd)
-
-for d in list:
-    path = os.path.join(cwd, d)
-    if os.path.isfile(os.path.join(path, 'SConscript')):
-        objs = objs + SConscript(os.path.join(d, 'SConscript'))
-
-Return('objs')

+ 41 - 9
libraries/freetype-2.6.2/SConscript

@@ -5,18 +5,50 @@ from building import *
 
 cwd = GetCurrentDir()
 list = os.listdir(cwd)
-GroupPath = cwd
 CPPDEFINES = ['FT2_BUILD_LIBRARY']
 
-src = []
-group = []
+src = Split('''
+src/autofit/autofit.c
+src/base/fttype1.c
+src/base/ftbitmap.c
+src/base/ftbase.c
+src/base/ftbbox.c
+src/base/ftfstype.c
+src/base/ftglyph.c
+src/base/ftinit.c
+src/base/ftlcdfil.c
+src/base/ftmm.c
+src/base/ftpatent.c
+src/cache/ftcbasic.c
+src/cache/ftccache.c
+src/cache/ftccmap.c
+src/cache/ftcglyph.c
+src/cache/ftcimage.c
+src/cache/ftcmanag.c
+src/cache/ftcmru.c
+src/cache/ftcsbits.c
+src/psnames/psnames.c
+src/sfnt/sfnt.c
+src/smooth/smooth.c
+src/truetype/truetype.c
+builds/rt-thread/ftsystem.c
+builds/rt-thread/gb2312tounicode.c
+''')
 
-group = DefineGroup('freetype', src, depend = ['GUIENGINE_USING_TTF'], CPPDEFINES=CPPDEFINES, GroupPath = GroupPath)
+CPPPATH = [cwd]
+CPPPATH += ['/src/autofit']
+CPPPATH += [cwd + '/src/base']
+CPPPATH += [cwd + '/src/cache']
+CPPPATH += [cwd + '/src/psnames']
+CPPPATH += [cwd + '/src/sfnt']
+CPPPATH += [cwd + '/src/smooth']
+CPPPATH += [cwd + '/src/truetype']
+CPPPATH += [cwd + '/include']
+CPPPATH += [cwd + '/include/freetype']
+CPPPATH += [cwd + '/include/freetype/config']
+CPPPATH += [cwd + '/include/freetype/internal']
+CPPPATH += [cwd + '/include/freetype/internal/services']
 
-if GetDepend('GUIENGINE_USING_TTF'):
-    for d in list:
-        path = os.path.join(cwd, d)
-        if os.path.isfile(os.path.join(path, 'SConscript')):
-            group = group + SConscript(os.path.join(d, 'SConscript'))
+group = DefineGroup('FreeType', src, depend = ['GUIENGINE_USING_TTF'], CPPDEFINES = CPPDEFINES, CPPPATH = CPPPATH)
 
 Return('group')

+ 0 - 15
libraries/freetype-2.6.2/builds/SConscript

@@ -1,15 +0,0 @@
-# RT-Thread building script for bridge
-
-import os
-from building import *
-
-cwd = GetCurrentDir()
-objs = []
-list = os.listdir(cwd)
-
-for d in list:
-    path = os.path.join(cwd, d)
-    if os.path.isfile(os.path.join(path, 'SConscript')):
-        objs = objs + SConscript(os.path.join(d, 'SConscript'))
-
-Return('objs')

+ 0 - 14
libraries/freetype-2.6.2/builds/rt-thread/SConscript

@@ -1,14 +0,0 @@
-# RT-Thread building script for FreeType
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Split('''
-ftsystem.c
-gb2312tounicode.c
-''')
-CPPPATH = [cwd]
-
-group = DefineGroup('FreeType', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 15
libraries/freetype-2.6.2/include/SConscript

@@ -1,15 +0,0 @@
-# RT-Thread building script for FreeType
-
-from building import *
-
-cwd = GetCurrentDir()
-src = []
-CPPPATH = [ cwd,
-            cwd + '/freetype',
-            cwd + '/freetype/config',
-            cwd + '/freetype/internal',
-            cwd + '/freetype/internal/services']
-
-group = DefineGroup('FreeType', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 15
libraries/freetype-2.6.2/src/SConscript

@@ -1,15 +0,0 @@
-# RT-Thread building script for bridge
-
-import os
-from building import *
-
-cwd = GetCurrentDir()
-objs = []
-list = os.listdir(cwd)
-
-for d in list:
-    path = os.path.join(cwd, d)
-    if os.path.isfile(os.path.join(path, 'SConscript')):
-        objs = objs + SConscript(os.path.join(d, 'SConscript'))
-
-Return('objs')

+ 0 - 13
libraries/freetype-2.6.2/src/autofit/SConscript

@@ -1,13 +0,0 @@
-# RT-Thread building script for FreeType
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Split('''
-autofit.c
-''')
-CPPPATH = [cwd]
-
-group = DefineGroup('FreeType', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 22
libraries/freetype-2.6.2/src/base/SConscript

@@ -1,22 +0,0 @@
-# RT-Thread building script for FreeType
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Split('''
-fttype1.c
-ftbitmap.c
-ftbase.c
-ftbbox.c
-ftfstype.c
-ftglyph.c
-ftinit.c
-ftlcdfil.c
-ftmm.c
-ftpatent.c
-''')
-CPPPATH = [cwd]
-
-group = DefineGroup('FreeType', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 20
libraries/freetype-2.6.2/src/cache/SConscript

@@ -1,20 +0,0 @@
-# RT-Thread building script for FreeType
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Split('''
-ftcbasic.c
-ftccache.c
-ftccmap.c
-ftcglyph.c
-ftcimage.c
-ftcmanag.c
-ftcmru.c
-ftcsbits.c
-''')
-CPPPATH = [cwd]
-
-group = DefineGroup('FreeType', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 13
libraries/freetype-2.6.2/src/psnames/SConscript

@@ -1,13 +0,0 @@
-# RT-Thread building script for FreeType
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Split('''
-psnames.c
-''')
-CPPPATH = [cwd]
-
-group = DefineGroup('FreeType', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 13
libraries/freetype-2.6.2/src/sfnt/SConscript

@@ -1,13 +0,0 @@
-# RT-Thread building script for FreeType
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Split('''
-sfnt.c
-''')
-CPPPATH = [cwd]
-
-group = DefineGroup('FreeType', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 13
libraries/freetype-2.6.2/src/smooth/SConscript

@@ -1,13 +0,0 @@
-# RT-Thread building script for FreeType
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Split('''
-smooth.c
-''')
-CPPPATH = [cwd]
-
-group = DefineGroup('FreeType', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 13
libraries/freetype-2.6.2/src/truetype/SConscript

@@ -1,13 +0,0 @@
-# RT-Thread building script for FreeType
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Split('''
-truetype.c
-''')
-CPPPATH = [cwd]
-
-group = DefineGroup('FreeType', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 15
libraries/lodepng/SConscript

@@ -1,15 +0,0 @@
-# RT-Thread building script for Gui Engine
-
-from building import *
-import rtconfig
-
-cwd = GetCurrentDir()
-src = Glob('*.c') + Glob('*.cpp')
-CPPPATH = [cwd]
-
-if rtconfig.ARCH == 'sim':
-    group = DefineGroup('GuiEngine', src, depend = ['GUIENGINE_IMAGE_LODEPNG'], CPPPATH = CPPPATH)
-else:
-    group = DefineGroup('GuiEngine', src, depend = ['GUIENGINE_IMAGE_LODEPNG', 'RT_USING_LIBC'], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 11
libraries/tjpgd1a/SConscript

@@ -1,11 +0,0 @@
-# RT-Thread building script for Gui Engine
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Glob('*.c') + Glob('*.cpp')
-CPPPATH = [cwd]
-
-group = DefineGroup('GuiEngine', src, depend = ['GUIENGINE_IMAGE_TJPGD'], CPPPATH = CPPPATH)
-
-Return('group')

+ 0 - 11
src/SConscript

@@ -1,11 +0,0 @@
-# RT-Thread building script for Gui Engine
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Glob('*.c') + Glob('*.cpp')
-CPPPATH = [cwd]
-
-group = DefineGroup('GuiEngine', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')

+ 30 - 30
src/blit.c

@@ -673,7 +673,7 @@ static void BlitRGB565toRGB565PixelAlpha(struct rtgui_blit_info *info)
             while (width--)
             {
                 /* not do alpha blend */
-                if ((alpha >> 3) == (0xFF >> 3))
+                if ((alpha >> 3) == (0xFFU >> 3))
                 {
                     *dst = *src;
                 }
@@ -725,7 +725,7 @@ static void BlitRGB565toRGB888PixelAlpha(struct rtgui_blit_info *info)
             while (width--)
             {
                 /* not do alpha blend */
-                if ((alpha >> 3) == (0xFF >> 3))
+                if ((alpha >> 3) == (0xFFU >> 3))
                 {
                     RGB_FROM_RGB565(*src, srcR, srcG, srcB);
                     if (PKG_USING_RGB888_PIXEL_BITS == 32)
@@ -801,10 +801,10 @@ static void BlitRGB565toARGB888PixelAlpha(struct rtgui_blit_info *info)
             while (width--)
             {
                 /* not do alpha blend */
-                if ((alpha >> 3) == (0xFF >> 3))
+                if ((alpha >> 3) == (0xFFU >> 3))
                 {
                     RGB_FROM_RGB565(*src, srcR, srcG, srcB);
-                    ARGB8888_FROM_RGBA(*dst, srcR, srcG, srcB, 0xFF);
+                    ARGB8888_FROM_RGBA(*dst, srcR, srcG, srcB, 0xFFU);
                 }
                 else
                 {
@@ -817,7 +817,7 @@ static void BlitRGB565toARGB888PixelAlpha(struct rtgui_blit_info *info)
                     dstR = ((srcR * alpha) + (inverse_alpha * dstR)) >> 8;
                     dstG = ((srcG * alpha) + (inverse_alpha * dstG)) >> 8;
                     dstB = ((srcB * alpha) + (inverse_alpha * dstB)) >> 8;
-                    dstA = alpha + ((0xFF - alpha) * dstA) / 0xFF;
+                    dstA = alpha + ((0xFFU - alpha) * dstA) / 0xFFU;
 
                     ARGB8888_FROM_RGBA(*dst, srcR, srcG, srcB, dstA);
                 }
@@ -855,7 +855,7 @@ static void BlitRGB888toRGB565PixelAlpha(struct rtgui_blit_info *info)
             while (width--)
             {
                 /* not do alpha blend */
-                if ((alpha >> 3) == (0xFF >> 3))
+                if ((alpha >> 3) == (0xFFU >> 3))
                 {
                     RGB_FROM_RGB888(*src, srcR, srcG, srcB);
                     RGB565_FROM_RGB(*dst, srcR, srcG, srcB);
@@ -863,7 +863,7 @@ static void BlitRGB888toRGB565PixelAlpha(struct rtgui_blit_info *info)
                 else
                 {
                     rt_uint32_t dstR, dstG, dstB;
-                    rt_uint32_t inverse_alpha = 0xFF - alpha;
+                    rt_uint32_t inverse_alpha = 0xFFU - alpha;
 
                     RGB_FROM_RGB888(*src, srcR, srcG, srcB);
                     RGB_FROM_RGB565(*dst, dstR, dstG, dstB);
@@ -918,7 +918,7 @@ static void BlitRGB888toRGB888PixelAlpha(struct rtgui_blit_info *info)
             while (width--)
             {
                 /* not do alpha blend */
-                if ((alpha >> 3) == (0xFF >> 3))
+                if ((alpha >> 3) == (0xFFU >> 3))
                 {
                     if (PKG_USING_RGB888_PIXEL_BITS == 32)
                     {
@@ -934,7 +934,7 @@ static void BlitRGB888toRGB888PixelAlpha(struct rtgui_blit_info *info)
                 else
                 {
                     rt_uint32_t dstR, dstG, dstB;
-                    rt_uint32_t inverse_alpha = 0xFF - alpha;
+                    rt_uint32_t inverse_alpha = 0xFFU - alpha;
 
                     if (PKG_USING_RGB888_PIXEL_BITS == 32)
                     {
@@ -1000,7 +1000,7 @@ static void BlitRGB888toARGB888PixelAlpha(struct rtgui_blit_info *info)
             rt_uint32_t width = info->dst_w;
             while (width--)
             {
-                if ((alpha >> 3) == (0xFF >> 3))
+                if ((alpha >> 3) == (0xFFU >> 3))
                 {
                     if (PKG_USING_RGB888_PIXEL_BITS == 32)
                     {
@@ -1018,7 +1018,7 @@ static void BlitRGB888toARGB888PixelAlpha(struct rtgui_blit_info *info)
                 else
                 {
                     rt_uint32_t dstR, dstG, dstB, dstA;
-                    rt_uint32_t inverse_alpha = 0xFF - alpha;
+                    rt_uint32_t inverse_alpha = 0xFFU - alpha;
 
                     RGBA_FROM_ARGB8888(*dst, dstR, dstG, dstB, dstA);
 
@@ -1039,7 +1039,7 @@ static void BlitRGB888toARGB888PixelAlpha(struct rtgui_blit_info *info)
                         dstR = ((srcR * alpha) + (inverse_alpha * dstR)) >> 8;
                         dstG = ((srcG * alpha) + (inverse_alpha * dstG)) >> 8;
                         dstB = ((srcB * alpha) + (inverse_alpha * dstB)) >> 8;
-                        dstA = alpha + ((0xFF - alpha) * dstA) / 0xFF;
+                        dstA = alpha + ((0xFFU - alpha) * dstA) / 0xFFU;
 
                         ARGB8888_FROM_RGBA(*dst, dstR, dstG, dstB, dstA);
                     }
@@ -1076,7 +1076,7 @@ static void BlitARGB888toRGB565PixelAlpha(struct rtgui_blit_info * info)
                 srcA = (srcA * info->a + 128) / 255;
 
             /* not do alpha blend */
-            if ((srcA >> 3) == (0xFF >> 3))
+            if ((srcA >> 3) == (0xFFU >> 3))
             {
                 RGB565_FROM_RGB(*dst, srcR, srcG, srcB);
             }
@@ -1126,11 +1126,11 @@ static void BlitARGB888toRGB888PixelAlpha(struct rtgui_blit_info *info)
         while (width--)
         {
             RGBA_FROM_ARGB8888(*src, srcR, srcG, srcB, srcA);
-            if (info->a != 0xFF)
-                srcA = (srcA * info->a + 128) / 0xFF;
+            if (info->a != 0xFFU)
+                srcA = (srcA * info->a + 128) / 0xFFU;
 
             /* not do alpha blend */
-            if ((srcA >> 3) == (0xFF >> 3))
+            if ((srcA >> 3) == (0xFFU >> 3))
             {
                 if (PKG_USING_RGB888_PIXEL_BITS == 32)
                 {
@@ -1207,13 +1207,13 @@ static void BlitARGB888toARGB888PixelAlpha(struct rtgui_blit_info *info)
         while (width--)
         {
             RGBA_FROM_ARGB8888(*src, srcR, srcG, srcB, srcA);
-            if (info->a != 0xFF)
-                srcA = (srcA * info->a + 128) / 0xFF;
+            if (info->a != 0xFFU)
+                srcA = (srcA * info->a + 128) / 0xFFU;
 
             /* not do alpha blend */
-            if ((srcA >> 3) == (0xFF >> 3))
+            if ((srcA >> 3) == (0xFFU >> 3))
             {
-                ARGB8888_FROM_RGBA(*dst, srcR, srcG, srcB, 0xFF);
+                ARGB8888_FROM_RGBA(*dst, srcR, srcG, srcB, 0xFFU);
             }
             else if ((srcA >> 3) == 0)
             {
@@ -1222,7 +1222,7 @@ static void BlitARGB888toARGB888PixelAlpha(struct rtgui_blit_info *info)
             else
             {
                 rt_uint32_t dstR, dstG, dstB, dstA;
-                rt_uint32_t inverse_alpha = 0xFF - srcA;
+                rt_uint32_t inverse_alpha = 0xFFU - srcA;
 
                 RGBA_FROM_ARGB8888(*dst, dstR, dstG, dstB, dstA);
 
@@ -1231,7 +1231,7 @@ static void BlitARGB888toARGB888PixelAlpha(struct rtgui_blit_info *info)
                     dstR = ((srcR * srcA) + (inverse_alpha * dstR)) >> 8;
                     dstG = ((srcG * srcA) + (inverse_alpha * dstG)) >> 8;
                     dstB = ((srcB * srcA) + (inverse_alpha * dstB)) >> 8;
-                    dstA = srcA + ((0xFF - srcA) * dstA) / 0xFF;
+                    dstA = srcA + ((0xFFU - srcA) * dstA) / 0xFFU;
 
                     ARGB8888_FROM_RGBA(*dst, dstR, dstG, dstB, dstA);
                 }
@@ -1273,7 +1273,7 @@ static void BlitAlphatoRGB565PixelAlpha(struct rtgui_blit_info * info)
                 srcA = (*src);
 
             /* not do alpha blend */
-            if ((srcA >> 3) == (0xFF >> 3))
+            if ((srcA >> 3) == (0xFFU >> 3))
             {
                 RGB565_FROM_RGB(*dst, srcR, srcG, srcB);
             }
@@ -1332,7 +1332,7 @@ static void BlitAlphatoRGB888PixelAlpha(struct rtgui_blit_info *info)
                 srcA = (*src);
             src++;
             /* not do alpha blend */
-            if ((srcA >> 3) == (0xFF >> 3))
+            if ((srcA >> 3) == (0xFFU >> 3))
             {
                 if (PKG_USING_RGB888_PIXEL_BITS == 32)
                 {
@@ -1415,15 +1415,15 @@ static void BlitAlphatoARGB888PixelAlpha(struct rtgui_blit_info *info)
         rt_uint32_t width = info->dst_w;
         while (width--)
         {
-            if (info->a != 0xFF)
-                srcA = ((*src) * info->a + 128) / 0xFF;
+            if (info->a != 0xFFU)
+                srcA = ((*src) * info->a + 128) / 0xFFU;
             else
                 srcA = (*src);
 
             /* not do alpha blend */
-            if ((srcA >> 3) == (0xFF >> 3))
+            if ((srcA >> 3) == (0xFFU >> 3))
             {
-                ARGB8888_FROM_RGBA(*dst, srcR, srcG, srcB, 0xFF);
+                ARGB8888_FROM_RGBA(*dst, srcR, srcG, srcB, 0xFFU);
             }
             else if ((srcA >> 3) == 0)
             {
@@ -1432,7 +1432,7 @@ static void BlitAlphatoARGB888PixelAlpha(struct rtgui_blit_info *info)
             else
             {
                 rt_uint32_t dstR, dstG, dstB, dstA;
-                rt_uint32_t inverse_alpha = 0xFF - srcA;
+                rt_uint32_t inverse_alpha = 0xFFU - srcA;
 
                 RGBA_FROM_ARGB8888(*dst, dstR, dstG, dstB, dstA);
                 if (dstA)
@@ -1440,7 +1440,7 @@ static void BlitAlphatoARGB888PixelAlpha(struct rtgui_blit_info *info)
                     dstR = ((srcR * srcA) + (inverse_alpha * dstR)) >> 8;
                     dstG = ((srcG * srcA) + (inverse_alpha * dstG)) >> 8;
                     dstB = ((srcB * srcA) + (inverse_alpha * dstB)) >> 8;
-                    dstA = srcA + ((0xFF - srcA) * dstA) / 0xFF;
+                    dstA = srcA + ((0xFFU - srcA) * dstA) / 0xFFU;
 
                     ARGB8888_FROM_RGBA(*dst, dstR, dstG, dstB, dstA);
                 }

+ 1 - 2
src/font.c

@@ -156,8 +156,7 @@ struct rtgui_font *rtgui_font_refer(const char *family, rt_uint16_t height)
     rtgui_list_foreach(node, &_rtgui_font_list)
     {
         font = rtgui_list_entry(node, struct rtgui_font, list);
-        if ((rt_strncmp(font->family, family, GUIENGINE_NAME_MAX) == 0) &&
-                font->height == height)
+        if ((rt_strcasecmp(font->family, family) == 0) && font->height == height)
         {
             font->refer_count ++;
             return font;

+ 4 - 0
src/font_freetype.c

@@ -52,6 +52,10 @@
 #define PINFO(...)
 #endif
 
+#ifndef RT_DFS_ELM_MAX_LFN
+#define RT_DFS_ELM_MAX_LFN 255
+#endif
+
 #define _dc_get_pixel(dc, x, y)	\
     ((dc)->pixel + (y) * (dc)->pitch + (x) * rtgui_color_get_bpp((dc)->pixel_format))
 

+ 3 - 1
src/image.c

@@ -55,9 +55,11 @@ static rtgui_list_t _rtgui_system_image_list = {RT_NULL};
 /* initialize rtgui image system */
 void rtgui_system_image_init(void)
 {
+#ifdef GUIENGINE_USING_HDC
     /* always support HDC image */
     rtgui_image_hdc_init();
-
+#endif
+    
 #ifdef GUIENGINE_IMAGE_XPM
     rtgui_image_xpm_init();
 #endif

+ 1 - 1
src/image_container.c

@@ -121,7 +121,7 @@ rt_inline unsigned int primes_closest(unsigned int num)
 /* directly hash */
 unsigned int direct_hash(const void *v)
 {
-    return (unsigned int)v;
+    return (unsigned int)(((rt_ubase_t)v) & 0xFFFFFFFF);
 }
 
 rtgui_hash_table_t *hash_table_create(rtgui_hash_func_t hash_func, rtgui_equal_func_t key_equal_func)

+ 3 - 0
src/image_hdc.c

@@ -28,6 +28,8 @@
 #include <rtgui/image_hdc.h>
 #include <rtgui/blit.h>
 
+#ifdef GUIENGINE_USING_HDC
+
 #define HDC_MAGIC_LEN       4
 
 #ifdef PKG_USING_FASTLZ
@@ -366,3 +368,4 @@ void rtgui_image_hdc_init()
     rtgui_image_register_engine(&rtgui_image_hdc_engine);
 }
 
+#endif

+ 3 - 2
src/image_jpg.c

@@ -810,7 +810,7 @@ static rt_bool_t rtgui_image_jpeg_load(struct rtgui_image *image, struct rtgui_f
         if (jpeg->is_loaded == RT_TRUE)
         {
             rt_uint8_t *pixels = RT_NULL;
-            
+
             if (jpeg->tjpgd.format == 0 && PKG_USING_RGB888_PIXEL_BITS == 32)
                 pixels = (rt_uint8_t *)rtgui_malloc(4 * image->w * image->h);
 
@@ -929,7 +929,8 @@ static void rtgui_image_jpeg_blit(struct rtgui_image *image,
     if (jpeg->pixels)
     {
         if ((rtgui_dc_get_pixel_format(dc) == RTGRAPHIC_PIXEL_FORMAT_RGB888 && jpeg->tjpgd.format == 0) ||
-                (rtgui_dc_get_pixel_format(dc) == RTGRAPHIC_PIXEL_FORMAT_RGB565 && jpeg->tjpgd.format == 1))
+                (rtgui_dc_get_pixel_format(dc) == RTGRAPHIC_PIXEL_FORMAT_RGB565 && jpeg->tjpgd.format == 1) ||
+                (rtgui_dc_get_pixel_format(dc) == RTGRAPHIC_PIXEL_FORMAT_ARGB888 && jpeg->tjpgd.format == 0))
         {
             rt_uint16_t imageWidth = image->w * jpeg->byte_per_pixel;
             rt_uint8_t *src = jpeg->pixels + yoff * imageWidth + xoff * jpeg->byte_per_pixel;

+ 1 - 1
src/mouse.c

@@ -22,7 +22,7 @@
  * 2009-10-16     Bernard      first version
  */
 
-#include "mouse.h"
+#include <rtgui/widgets/mouse.h>
 #include <rtgui/region.h>
 #include <rtgui/driver.h>
 #include <rtgui/rtgui_system.h>

+ 3 - 3
src/rtgui_app.c

@@ -29,7 +29,7 @@
 #include <rtgui/rtgui_system.h>
 #include <rtgui/rtgui_app.h>
 #include <rtgui/widgets/window.h>
-#include <topwin.h>
+#include <rtgui/widgets/topwin.h>
 
 static void _rtgui_app_constructor(struct rtgui_app *app)
 {
@@ -105,7 +105,7 @@ struct rtgui_app *rtgui_app_create(const char *title)
     if (srv_app == RT_NULL)
     {
         /* set user thread */
-        tid->user_data = (rt_uint32_t)app;
+        tid->user_data = (rt_ubase_t)app;
         return app;
     }
 
@@ -116,7 +116,7 @@ struct rtgui_app *rtgui_app_create(const char *title)
     if (rtgui_send_sync(srv_app, RTGUI_EVENT(&event), sizeof(event)) == RT_EOK)
     {
         /* set user thread */
-        tid->user_data = (rt_uint32_t)app;
+        tid->user_data = (rt_ubase_t)app;
         return app;
     }
 

+ 1 - 1
src/rtgui_object.c

@@ -31,7 +31,7 @@ static void _rtgui_object_constructor(rtgui_object_t *object)
         return;
 
     object->flag = RTGUI_OBJECT_FLAG_VALID;
-    object->id   = (rt_uint32_t)object;
+    object->id   = (rt_ubase_t)object;
 }
 
 /* Destroys the object */

+ 2 - 2
src/rtgui_system.c

@@ -64,7 +64,7 @@ int rtgui_system_server_init(void)
 
     return 0;
 }
-INIT_APP_EXPORT(rtgui_system_server_init);
+INIT_ENV_EXPORT(rtgui_system_server_init);
 
 /************************************************************************/
 /* RTGUI Timer                                                          */
@@ -663,7 +663,7 @@ RTM_EXPORT(rtgui_send_urgent);
 rt_err_t rtgui_send_sync(struct rtgui_app* app, rtgui_event_t *event, rt_size_t event_size)
 {
     rt_err_t r;
-    rt_int32_t ack_buffer, ack_status;
+    rt_base_t ack_buffer, ack_status;
     struct rt_mailbox ack_mb;
 
     RT_ASSERT(app != RT_NULL);

+ 2 - 2
src/server.c

@@ -32,8 +32,8 @@
 
 #include <rtgui/widgets/window.h>
 
-#include "mouse.h"
-#include "topwin.h"
+#include <rtgui/widgets/mouse.h>
+#include <rtgui/widgets/topwin.h>
 
 static struct rtgui_app *rtgui_server_app = RT_NULL;
 static struct rtgui_app *rtgui_wm_application = RT_NULL;

+ 2 - 2
src/topwin.c

@@ -22,8 +22,8 @@
  * 2009-10-16     Bernard      first version
  * 2012-02-25     Grissiom     rewrite topwin implementation
  */
-#include "topwin.h"
-#include "mouse.h"
+#include <rtgui/widgets/topwin.h>
+#include <rtgui/widgets/mouse.h>
 
 #include <rtservice.h>
 #include <rtgui/event.h>