Commit Graph

926 Commits

Author SHA1 Message Date
XiaoFeng 762e25ad33 Remove unused parameter 2015-10-19 16:06:39 +08:00
XiaoFeng ffb2cfa9e0 Fix EventListenerCustom registered by UILabel never has been released bug 2015-10-19 14:07:50 +08:00
Dale Stammen 32eeb560c3 clean up include files for WINRT platforms 2015-10-02 18:49:41 -07:00
pandamicro 95379c5dc2 Merge pull request #13995 from xiaofeng11/v3
Fix issue http://punchbox.info:3000/issues/23146
2015-09-24 13:03:59 +08:00
Martin Taylor 62e36e8006 fix typos and syntax error. A thorough check by tool VSSpellChecker. 2015-09-22 16:08:23 +08:00
XiaoFeng 573f5868ca Fix issue http://punchbox.info:3000/issues/23146 2015-09-22 14:52:16 +08:00
pandamicro 5511d42cd4 Merge pull request #13716 from fusijie/particle_performance
Refactory particle system update.
2015-09-21 14:19:55 +08:00
fusijie d871b1aa8a Refactory particle system. 2015-09-20 16:46:09 +08:00
pandamicro 724011f19b Merge pull request #12071 from waiter/v3
Fix a bug in Scheduler which may case Force Close
2015-09-18 21:39:36 +08:00
Vincent Yang 36337ad694 Fixed #13551 : MenuItemImage Camera Issue. 2015-09-16 11:24:55 +08:00
子龙山人 02eca21b78 Merge pull request #13701 from seivan/patch-3
Don't call release() before retain() #13656
2015-09-15 11:28:56 +08:00
Seivan Heidari ea12b601d9 Don't call release() before retain() 2015-09-10 11:09:17 +02:00
pandamicro 9814851355 Merge pull request #13659 from seivan/patch-2
EventListenerMouse will dispatch EventMouse events
2015-09-09 10:34:12 +08:00
pandamicro dc607a1784 Merge pull request #13726 from jianglong0156/actionExtendSquash
support custom action, and rewrite update function
2015-09-09 10:25:56 +08:00
江龙 badd80bf3a support custom action, and rewrite update function
support custom action in js, and developer can rewrite the update function in custom action class.
useage:
// custom action sample code
var customMoveBy = cc.MoveBy.extend({
    ctor:function (duration, deltaPos, deltaY) {
        this._super(duration, deltaPos, deltaY);
    },
    update:function (dt) {
        this._super(dt);

        if (this.getTarget()) { // rand color
            this.getTarget().setColor(cc.color(cc.rand()%255, cc.rand()%255, cc.rand()%255));
        }

    }
});
2015-09-09 10:08:07 +08:00
minggo 8326ed6535 add physics component 2015-09-08 09:54:01 +08:00
Seivan Heidari 2f02690394 EventListenerMouse will dispatch EventMouse events 2015-09-07 20:05:51 +02:00
Pabitra Padhy d4c60144f0 Updated spelling and grammar mistakes 2015-09-06 15:29:36 +05:30
WenhaiLin 5fdb041856 Use string::empty() to check whether string is empty. 2015-09-01 11:26:09 +08:00
WenhaiLin a3b5becb45 Sync v3.8 to v3 2015-08-31 22:05:37 +08:00
pandamicro 9d72d6a924 Merge pull request #13496 from ZhangMenghe/v3-notification
[ci rebuild] Notification effect enhancement
2015-08-28 14:10:42 +08:00
子龙山人 30d6c82da6 Merge pull request #13585 from WenhaiLin/v3.8-scheduleOnce-hotfix
[Node::scheduleOnce]Fixed the callback will be executed multiple times if the value of delay parameter equal zero.
2015-08-27 10:54:04 +08:00
Dale Stammen fcae139857 removed old WP8_SHADER_COMPILER defines 2015-08-26 08:50:11 -07:00
WenhaiLin 393af19237 [Node::scheduleOnce]Fixed the callback will be executed multiple times if the value of delay equal zero. 2015-08-26 23:41:48 +08:00
andyque 7f73415189 fix Scale9Sprite draw extra pixels in spritesheet
Fixed https://github.com/cocos2d/cocos2d-x/issues/13564
2015-08-26 16:15:00 +08:00
ZhangMenghe 1bcc2dec37 Notification effect enhancement 2015-08-21 10:20:59 +08:00
minggo 1e415a0b5b Merge pull request #13364 from WenhaiLin/v3-Scheduler-eloopfix
Fixed `Scheduler::update(float dt)` can lead to an infinite loop when the value of `dt` is zero.
2015-08-14 15:11:09 +08:00
WenhaiLin d855722c20 Fixed `Scheduler::update` can lead to an infinite loop when the value of `dt` is zero. 2015-08-14 15:05:25 +08:00
Ricardo Quesada 7047e0fbdb Merge branch 'v3' into downloader_decouple_squash 2015-08-13 11:07:49 -07:00
Ricardo Quesada d2cf4bfc79 Squashed commit of the following:
commit 2c810a8e931e07b06498c07db37cbf20a2bcfc92
Merge: 61788a0 082caaf
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Thu Aug 13 00:13:38 2015 -0700

    Merge branch 'v3' into downloader_decouple

commit 61788a0b34188fed5367cab121817db97198bcd8
Merge: 8c1e211 5e21580
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Wed Aug 12 20:45:12 2015 -0700

    Merge branch 'v3' into downloader_decouple

commit 8c1e2119a5c671c00da5ce1fb244029f2bfab09f
Merge: 2ea66af 8d73883
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Wed Aug 12 20:42:04 2015 -0700

    Merge pull request #6 from minggo/downloader_decouple

    fix js binding error

commit 8d7388302ff1d8da575b277e47a3f8ceb1017e98
Author: minggo <ming@cocos2d-x.org>
Date:   Thu Aug 13 11:09:58 2015 +0800

    fix js binding error

commit 2ea66af7684f5ec8a20067b1a49347920dbbbb40
Merge: 8cdb0b6 bc964e8
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Wed Aug 12 09:14:22 2015 -0700

    Merge branch 'v3' into downloader_decouple

commit 8cdb0b6e4b83210b1f68b4568c74ccb36f504806
Merge: 9272765 08eeca9
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Aug 11 20:11:46 2015 -0700

    Merge pull request #5 from minggo/downloader_decouple

    fix lua-binding error

commit 08eeca9d99b5160c48bac1bfecf03b459d05ed15
Author: minggo <ming@cocos2d-x.org>
Date:   Wed Aug 12 10:34:05 2015 +0800

    fix lua-binding error

commit 927276589d57432477f8ffc033e19a21a215b246
Merge: 8252464 6f4ed8a
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Aug 11 10:39:22 2015 -0700

    Merge branch 'v3' into downloader_decouple

commit 8252464020dbe86da4e5e5aa6e4e45f6997f6b9b
Merge: 5dddbb6 138df42
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Tue Aug 11 06:53:48 2015 -0700

    Merge pull request #4 from minggo/downloader_decouple

    fix linking error in lua-tests on Android

commit 138df42a3acfdcfae29eeab1b03ef5dd062f0145
Author: minggo <ming@cocos2d-x.org>
Date:   Tue Aug 11 16:23:53 2015 +0800

    fix link error in lua-tests

commit 5dddbb61a1bcda96aa93bfcbe78f42c639eb6247
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Fri Aug 7 23:22:50 2015 -0700

    works for real on win32

commit ddadaf82231b60c8e343718561c0d78657afe7c2
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Fri Aug 7 22:26:59 2015 -0700

    compiles on win32

commit 733f1d4c2e4f8382ff19f1793f7f09950774fe78
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Fri Aug 7 21:57:49 2015 -0700

    compiles on iOS!!

commit f706f97962eb393bf7dfec79739ff8dfdec103d5
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Fri Aug 7 21:27:03 2015 -0700

    compiles and runs Ok on windows.

    Tested all downloadertests + assetmanagertest

commit 5e333f4407952d9c2e71e18cb9393d8b6cd170b4
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Fri Aug 7 20:24:28 2015 -0700

    updates windows projects

commit e77fd8a278594fefc24ff13cbee038508429294d
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Fri Aug 7 19:56:10 2015 -0700

    compiles on Android

commit 5f515e3519a0688d11476ea6ef235007e8378c96
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Fri Aug 7 18:34:33 2015 -0700

    trying to fix a compile issue on iOS

    WIP

commit b144ea67dfe7a06e7bfb515adf16f536ba2ead98
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Fri Aug 7 18:25:11 2015 -0700

    make bug fixes

    adds public `getHeader`

commit a228799ba74eb8642c43d215a802f811a576a4aa
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Fri Aug 7 17:42:19 2015 -0700

    some linux fixes

commit 2cab23d87acc138823ebe9dcec9d42f827690d99
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Fri Aug 7 16:58:53 2015 -0700

    Squashed commit of the following:

    commit 86227e9138c1fb523bd28186d355de65cc64c588
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Aug 7 16:55:17 2015 -0700

        works %100

        and uses less memory than before

    commit a9cafa6f2fe7847e279934d2c162287680760dda
    Merge: 0bbc62e 0cbd71f
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Aug 7 15:49:33 2015 -0700

        Merge branch 'v3' into cocos_net

    commit 0bbc62ee1fbfd107a935131d5d93994e87865afa
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Aug 7 15:46:55 2015 -0700

        more tests... and works

        but there is huge bug.
        ProgData <vector> needs the position of DownloadUnits <unordered_map>
        but <unordered_map> does not guaranty the order.
        So in my next commit I"ll merge DownloadUnit with ProgressData

    commit 389ed8639a1942f628773616a8e340bc66a0c1d7
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Aug 7 13:47:07 2015 -0700

        debugging info

    commit af0dc45bb9c4705934ced2c1d67e5afc06b6f317
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Aug 7 11:47:31 2015 -0700

        sync and async tests working ok

    commit 999fa7a7bfb28565492f47b39caef7f1a079c183
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Aug 7 11:38:38 2015 -0700

        adding tests

    commit 91ee294942510718400edc0d00d3c744d00339ee
    Merge: 76ab703 7f215e9
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Aug 7 10:03:50 2015 -0700

        Merge branch 'v3' into cocos_net

    commit 76ab7032d3a21156f05395a021391a16649f755a
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Aug 7 00:22:20 2015 -0700

        Downloader tests

    commit b65c4dad7089660bfe697c0dab3e9290d1a6d013
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Thu Aug 6 21:34:54 2015 -0700

        compiles on Xcode 7

    commit ec0d66340b8daf0b042d36333dff759cd424f465
    Merge: 878e4b5 0d77838
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Thu Aug 6 11:02:24 2015 -0700

        Merge branch 'v3' into cocos_net

    commit 878e4b5d0f87bc6d5d6e507102ab15e2c24a1c8f
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Aug 5 18:07:02 2015 -0700

        working, yeah!

    commit ad1e7637a5ac2e6bff44d35429f5556ea1cb8a4c
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Aug 5 17:49:59 2015 -0700

        code is more thread-safe friendly

    commit 8c6baaee6b898d4b90e5d8988a174d8a33702f60
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Aug 5 16:39:02 2015 -0700

        fixes callbacks

    commit ddab4d753106c6ff11304c1c69739c5611e3f20a
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Aug 5 15:43:51 2015 -0700

        cleaner code

        runs callbacks in cocos2d thread only if needed

    commit ef75844aaa010633e6e27ae6e69460174460d5c7
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Aug 5 11:58:04 2015 -0700

        removed weak_ptr<> from ProgressData

        that logic of the code is added in the callbacks

    commit d9c7436cbadc611592b3c80ca2a3a9edeaa00853
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Aug 5 11:54:07 2015 -0700

        checks whether or not the callbacks are in the cocos2d thread

    commit ae6594a6f866f6b5015ba293db23343887063d2f
    Merge: 4c61069 6831e24
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Aug 5 10:48:34 2015 -0700

        Merge branch 'v3' into cocos_net

    commit 4c61069a7e0e33fa0332df700cc8df4807178caf
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Tue Aug 4 21:36:50 2015 -0700

        almost there...

        Downloader has std::vector<FILE*> instead of FileDescriptors
        code cleaner...

    commit c34d04a8218d2be5c316e0487e5ac46792bbed76
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Tue Aug 4 20:38:44 2015 -0700

        passes progressData to batch

        no need to alloc memory for each ProgressData

    commit f7e8bbd8b85f214b919bce6118d4158dd6d26368
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Tue Aug 4 17:47:23 2015 -0700

        tidier code and more optimizations

    commit a486dc78aedcf9c6178e490292edd572f8a7b374
    Merge: 4178327 a06421b
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Tue Aug 4 14:03:22 2015 -0700

        Merge branch 'v3' into cocos_net

    commit 417832705910a6ebd16a876cd98064ea16f0f45c
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Mon Aug 3 18:13:13 2015 -0700

        not finished yet...

        ...but trying to have a common inteface with batched and non-batched
        downloads

    commit 1d0e4652763c2e1511ac102a62defae6c6a89220
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Mon Aug 3 16:29:39 2015 -0700

        ErrorCallback compiles

        starting the batching code

    commit 6645a287c47dc01cbf1f2d80e9c0fdd2b16e3e18
    Merge: c180425 8d836da
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Mon Aug 3 10:28:51 2015 -0700

        Merge branch 'v3' into cocos_net

    commit c180425d8181b8e6f53be766d8d2b94f908ae168
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Jul 31 15:35:53 2015 -0700

        More progress on migrating multiple-file downloader

        to the implementation file

    commit 5fa273e265963af3c0cb6338bf49dc5e1b54173b
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Jul 31 14:00:02 2015 -0700

        Dowloader moved to `cocos2d::network`

    commit 14b1d0825106701b5435a266b255f09291b6486b
    Merge: 13cfc8d f744383
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Jul 31 11:13:55 2015 -0700

        Merge branch 'v3' into cocos_net

    commit 13cfc8de4eb4835ffb8f8d671d3d070c411b0a2e
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Fri Jul 31 11:11:45 2015 -0700

        DownloadUnits belong to network

    commit e6e17564ead1fb7f6f7df343b0627a104cd756f8
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Thu Jul 30 12:23:36 2015 -0700

        adds `check for option`

    commit 5cb76dfaaed42011a0c536d01b82a0a94487d6aa
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Thu Jul 30 10:37:51 2015 -0700

        Downloader: using URLDownload in one case.

        3 more to go. Not tested yet

    commit 9b26e9cfac425635027189ccab835054b68bc83d
    Merge: 20fe063 253d9c4
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Thu Jul 30 08:35:53 2015 -0700

        Merge branch 'v3' into cocos_net

    commit 20fe0636e36ae7f1da048545b3345f526d5b64de
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Jul 29 17:36:07 2015 -0700

        URLDownload: initial commit

        HttpAsyncConnection -> HttpAsyncConnection-apple: follows the cocos2d
        guidelines

        Adds `CCIRULDownload` interface.
        Adds `CCURLDownload` implementation based on libcurl. Not working yet.
        `Downloader` uses `URLDownload` for some of its functions.

        WIP

    commit 3a5d3b83838bee53e3bbea182f3ad09d7bec32d0
    Merge: e408fe0 642ccac
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Jul 29 14:00:43 2015 -0700

        Merge remote-tracking branch 'cocos2d/v3' into cocos_net

    commit e408fe0b9303813d20bab2f7bf548f3b7af416a6
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Jul 29 13:59:46 2015 -0700

        Adds more files to Xcode project

        ...even if they are not being compiled. Much easier to add missing
        functionality to the rest of the platforms

    commit 11d86acebeb61348e4ccf7e6af9a2eaf1b6bb534
    Author: Ricardo Quesada <ricardoquesada@gmail.com>
    Date:   Wed Jul 29 11:36:57 2015 -0700

        removes unneeded headers
2015-08-13 00:14:10 -07:00
Vincent Yang d333d24177 Fix bug: timer dt time error when interval = 0. 2015-08-13 12:55:07 +08:00
Vincent Yang bb0a7a8533 fix bug: #21906 Pause/Resume 's result not correct. 2015-08-11 14:28:52 +08:00
Vincent Yang d0a5c02399 fix bug: #21906 Pause/Resume 's result not correct. 2015-08-10 17:58:49 +08:00
jianglong0156 42ed314463 fix textfield and editbox can not input emoticon
fix textfield and editbox can not input emoticon and improve the api comments
2015-08-05 17:03:06 +08:00
jianglong0156 fac7a78fc8 improve getUTFCharsFromJavaEnv api to getStringUTFCharsJNI and add newStringUTFJNI
getUTFCharsFromJavaEnv:
getUTFCharsFromJavaEnv:change jstring to utf8 std string
newStringUTFJNI:change utf8 std string to jstring
2015-08-05 16:10:14 +08:00
jianglong0156 3230ca154d improve the code. fix network error 2015-08-04 16:42:16 +08:00
jianglong0156 00b7e98c89 improve the getUTFCharsFromJavaEnv logic and fix the httpclient response message memery leak. 2015-08-04 16:24:08 +08:00
pandamicro 3c2e66e425 Merge branch 'v3.7.1' of https://github.com/cocos2d/cocos2d-x into v3
# Conflicts:
#	.travis.yml
#	build/cocos2d_js_tests.xcodeproj/project.pbxproj
#	build/cocos2d_tests.xcodeproj/project.pbxproj
#	cocos/2d/CCFont.h
#	cocos/2d/CCFontAtlas.cpp
#	cocos/2d/CCFontAtlas.h
#	cocos/2d/CCFontFreeType.cpp
#	cocos/2d/CCFontFreeType.h
#	cocos/2d/libcocos2d_8_1/libcocos2d_8_1/libcocos2d_8_1.Windows/libcocos2d_8_1.Windows.vcxproj
#	cocos/2d/libcocos2d_8_1/libcocos2d_8_1/libcocos2d_8_1.WindowsPhone/libcocos2d_8_1.WindowsPhone.vcxproj
#	cocos/2d/libcocos2d_win10/libcocos2d.vcxproj
#	cocos/cocos2d.cpp
#	cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.cpp
#	cocos/scripting/js-bindings/auto/jsb_cocos2dx_studio_auto.cpp
#	templates/cpp-template-default/proj.ios_mac/HelloCpp.xcodeproj/project.pbxproj
#	templates/js-template-default/frameworks/runtime-src/proj.ios_mac/HelloJavascript.xcodeproj/project.pbxproj
#	templates/js-template-runtime/frameworks/runtime-src/proj.ios_mac/HelloJavascript.xcodeproj/project.pbxproj
#	templates/lua-template-default/frameworks/runtime-src/proj.ios_mac/HelloLua.xcodeproj/project.pbxproj
#	tests/cpp-tests/Classes/LabelTest/LabelTestNew.cpp
#	tests/cpp-tests/Classes/LabelTest/LabelTestNew.h
#	tools/bindings-generator
#	tools/simulator/frameworks/runtime-src/proj.ios_mac/simulator.xcodeproj/project.pbxproj
#	tools/travis-scripts/generate-bindings.sh
#	tools/travis-scripts/generate-cocosfiles.sh
#	tools/travis-scripts/travis_mac.yml
2015-08-02 22:28:27 +08:00
pandamicro 00a3d572d1 Merge pull request #12899 from super626/v3
Animate3D Callback and Bug fix
2015-08-01 18:24:05 +08:00
子龙山人 cd4d8b7880 Merge pull request #13101 from WenhaiLin/v3.8-label-code-style
Improve coding style
2015-07-30 13:44:53 +08:00
pandamicro a011fa4c8a Merge pull request #12852 from super626/issue10242
fix #10242, reload shader when light number changed
2015-07-30 12:57:32 +08:00
WenhaiLin 964e7103b5 Improve coding style 2015-07-30 11:33:18 +08:00
WenhaiLin b1bd8338aa Merge branch 'v3' of https://github.com/cocos2d/cocos2d-x into v3.8-label-gb2312 2015-07-24 21:30:28 +08:00
WenhaiLin 37a174ee4a Label:refine the implementation about text layout and support debug draw 2015-07-24 18:38:45 +08:00
Vincent Yang 20fe1fb1a8 Fix bug: app will crash if move mouse over window when launching. 2015-07-24 16:41:03 +08:00
yangxiao 92ec9ab5f2 add config loaded event 2015-07-24 16:38:30 +08:00
Vincent Yang e4a8aeee45 Fixed #12962 : Scene can't have std::vector member. 2015-07-24 11:16:45 +08:00
Vincent Yang 3addf38134 Fixed #12906 : Can't add custom member to cocos2d::Scene subclass. 2015-07-22 12:01:34 +08:00
yangxiao ef49e5a169 merge cocos 2015-07-17 17:43:32 +08:00
yangxiao bf20145e35 animate3d callback and test 2015-07-17 11:08:27 +08:00