none
WinCE6: Customize platform wait cursor RRS feed

  • Question

  • Hi all,

    I want to remove the default GWES wait cursor from my platform.

    I have found that the cursor is defined by the library CURSOR8 which is defined in %WINCEROOT%/PUBLIC/COMMON/OAK/DRIVERS/SKINNABLEUI/GWE/CURSOR/8BIT.

    I have create a new version of the library in my Platform, I would like to know how I can rebuild GWES.dll with my version of cursor8b.lib without having to overwrite the default version.

    Some suggestions ?

    Best regards

    Fabrice

    Monday, January 10, 2011 12:27 PM

Answers

  • You can clone the cursor8b library (see for example http://msdn.microsoft.com/en-us/library/aa459163.aspx) and follow the instructions in http://msdn.microsoft.com/en-us/library/ee500211.aspx using the GWES_REPLACE variable in your BSP batch file to link your custom library

    --
    Luca Calligaris
    lucaDOTcalligarisATeurotechDOTcom
    www.eurotech.com
     
     
     
    "KroMignon" <=?utf-8?B?S3JvTWlnbm9u?=> ha scritto nel messaggio news:ae5e9d43-a005-453d-b058-3d032a976cec...

    Hi all,

    I want to remove the default GWES wait cursor from my platform.

    I have found that the cursor is defined by the library CURSOR8 which is defined in %WINCEROOT%/PUBLIC/COMMON/OAK/DRIVERS/SKINNABLEUI/GWE/CURSOR/8BIT.

    I have create a new version of the library in my Platform, I would like to know how I can rebuild GWES.dll with my version of cursor8b.lib without having to overwrite the default version.

    Some suggestions ?

    Best regards

    Fabrice


    Luca Calligaris (MVP-Windows Embedded) lucaDOTcalligarisATeurotechDOTcom www.eurotech.com
    • Proposed as answer by Michael Koster Monday, January 10, 2011 4:59 PM
    • Marked as answer by KroMignon Wednesday, January 12, 2011 10:29 AM
    Monday, January 10, 2011 12:39 PM

All replies

  • You can clone the cursor8b library (see for example http://msdn.microsoft.com/en-us/library/aa459163.aspx) and follow the instructions in http://msdn.microsoft.com/en-us/library/ee500211.aspx using the GWES_REPLACE variable in your BSP batch file to link your custom library

    --
    Luca Calligaris
    lucaDOTcalligarisATeurotechDOTcom
    www.eurotech.com
     
     
     
    "KroMignon" <=?utf-8?B?S3JvTWlnbm9u?=> ha scritto nel messaggio news:ae5e9d43-a005-453d-b058-3d032a976cec...

    Hi all,

    I want to remove the default GWES wait cursor from my platform.

    I have found that the cursor is defined by the library CURSOR8 which is defined in %WINCEROOT%/PUBLIC/COMMON/OAK/DRIVERS/SKINNABLEUI/GWE/CURSOR/8BIT.

    I have create a new version of the library in my Platform, I would like to know how I can rebuild GWES.dll with my version of cursor8b.lib without having to overwrite the default version.

    Some suggestions ?

    Best regards

    Fabrice


    Luca Calligaris (MVP-Windows Embedded) lucaDOTcalligarisATeurotechDOTcom www.eurotech.com
    • Proposed as answer by Michael Koster Monday, January 10, 2011 4:59 PM
    • Marked as answer by KroMignon Wednesday, January 12, 2011 10:29 AM
    Monday, January 10, 2011 12:39 PM
  • Thank you Luca for this link, but I still don't know how to customize the Wait Cursor.

    Here are the steps I have done:

    • Create a custom version of cursor8b.lib in my platform
    •  Modify the platform batch file to add:

    set __SYSGEN_REPLACESKIN=1
    set GWES_REPLACE=cursor8
    
    

    • recompiling BSP

    But I still have the standard Wait Cursor (Sand glass) and not my custom version.

    What do I wrong ?

    Regards

    Fabrice

    Tuesday, January 11, 2011 8:30 AM
  • You have to perform a SYSGEN of GWES: call 'sysgen -p common gwes' from command line and check build.log to see if it's linking the correct lib


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Tuesday, January 11, 2011 8:38 AM
  • TARGETTYPE=LIBRARY
    RELEASETYPE=CUSTOM
    #RELEASETYPE=PLATFORM
    WINCEOEM=1

    SOURCES=\
        cursor8.rc \
    #    nothing.c \

    Targetpath=$(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)

    #WINCETARGETFILES=$(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)\cursor8.res

    Me again...

    I think there is something I'm missing, but I don't have any what it could be :'(

    Once again what I have done:

    1. Copy %WINCEROOT%/PUBLIC/COMMON/OAK/DRIVERS/SKINNABLEUI/GWE/CURSOR/8BIT into %WINCEROOT%/PLATFORM/<MYPLATFORM>/SRC/DRIVERS/GWES/CURSOR

    2. Modify MYPLATFORM.bat to add "set BSP_REPLACESKIN=1"

    3. Modify souces.cmn to add

    REPLACE_ROOT=$(_TARGETPLATROOT)
    !IF "$(BSP_REPLACESKIN)" != ""
     __SYSGEN_REPLACESKIN=1
     GWES_REPLACE=cursor8
    !ENDIF
    
    

     

    4. in SRC/DRIVERS/GWES/CUSOR

    4.1 Modify sources to

    TARGETTYPE=LIBRARY
    RELEASETYPE=CUSTOM
    #RELEASETYPE=PLATFORM
    WINCEOEM=1
    
    SOURCES=\
      cursor8.rc \
    #  nothing.c \
    
    Targetpath=$(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)
    
    #WINCETARGETFILES=$(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)\cursor8.res
    
    

    4.2 Change the bmp files with my own

    5. rebuilding platform

    But this doesn't work

    Any idea what I am doing wrong?

     

    Tuesday, January 11, 2011 11:04 AM
  • I remember I had some problems injecting my custom STARTUI in GWES once. Have you checked the build.log file?

    Take a look to %_WINCEROOT%\PUBLIC\COMMON\CESYSGEN\makefile and

    %_WINCEROOT%\PUBLIC\CEBASE\OAK\MISC\winceos.bat

    to see how the 'REPLACE' environment variables are used by the build system


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Tuesday, January 11, 2011 12:02 PM
  • Thanks Luca for your help!

    It was very hard to change the default hour glass.

    I don't know why, but it was impossible to do it using REPLACE_ROOT in combination with GWES_REPLACE or GWES_REPLACE_COMPONENTS .

    To finally change the cursor, I used a postlink batch file to call "sysgen -p common gwes" and before calling sysgen, I copy my cursor8.res into %_WINCEROOT%\public\common\oak\lib\Armv4i\retail\xxx (xxx represent language codes) and restore previous version after sysgen.

    It is not the "clean way" but it works!

    Regards

    Wednesday, January 12, 2011 10:29 AM
  • It was very hard to change the default hour glass.

    I don't know why, but it was impossible to do it using REPLACE_ROOT in combination with GWES_REPLACE or GWES_REPLACE_COMPONENTS .

    I was attempting to remove the cursor myself when i came across this post. Was the reason you couldn't use REPLACE_ROOT with GWES_REPLACE because of the following error:

    gwe4.lib(msgbox_hpc.res) : fatal error LNK1241: resource file cursor8.lib(cursor8.res) already specified

    I'm about to try it the way you describe, but I don't understand why I can't link it in correctly as my cursor8.lib builds correctly into the REPLACE_ROOT directory, the only thing I did different from your post was to capitalize TARGETPATH as otherwise the lib was placed in c:\ instead of the required oak\xxx\ directory. I actually thought I almost had it running as it was complaining it couldn't find my cursor8.res file in $(REPLACE_ROOT)\oak\lib\$(_CPUINDPATH)\0409\ when I was performing a sysgen -p common gwes, so I fixed that up with a postlink.bat, but now my sysgen doesn't even get that far, which is when I found this post...

    Cheers,

    Barak.

     

    Thursday, March 17, 2011 2:20 AM
  • Hi Luca,
    Can we get any script or  proper spet by step implementation ?
    cheers
    Akash
    Tuesday, August 23, 2011 1:59 PM