Discussion Board

Results 1 to 4 of 4
  1. #1
    Registered User vovik-ukr's Avatar
    Join Date
    Mar 2010
    Posts
    9
    Всем привет. Пишу тулзовину для автоматизации тестирования UI для Symbian приложений.
    Возник вопрос как эмулировать pinch zoom на Symbian^3 девайсах?
    С Эмуляцией обычного Tap и Tap&Drag никаких проблем - использую следующие функции:

    TRawEvent event;
    RWsSession iWsSession;
    //...
    void CMainLoop:oMouseDownL(TInt X, TInt Y)
    {
    event.Set(TRawEvent::EButton1Down, X, Y);
    iWsSession.SimulateRawEvent(event);
    }

    void CMainLoop:oMouseUpL(TInt X, TInt Y)
    {
    event.Set(TRawEvent::EButton1Up, X, Y);
    iWsSession.SimulateRawEvent(event);
    }

    void CMainLoop:oMouseMoveL(TInt X, TInt Y)
    {
    event.Set(TRawEvent::EPointerMove, X, Y);
    iWsSession.SimulateRawEvent(event);
    }

  2. #2
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    Не проверял, но думаю можно попробовать следом за EButton1Down сделать EButton2Down ...
    Last edited by A.A.M.; 2010-12-27 at 06:58.

  3. #3
    Registered User vovik-ukr's Avatar
    Join Date
    Mar 2010
    Posts
    9
    Исходя из этого кода, который я нашел в СДК:

    /**
    Receives pointer events from two pointers to perform Pinch Zoom of the image.
    Function will finish when EButton1Up is received for any of the pointers.
    @param aPointer1 Coordinates of pointer number 1 when zoom is started
    @param aPointer2 Coordinates of pointer number 2 when zoom is started
    */

    void PinchZoom(TPoint aPointer1, TPoint aPointer2)
    {
    TPoint actualP1 = aPointer1;
    TPoint actualP2 = aPointer2;

    // translate on-screen pointer coordinates to coordinates of displayed bitmap
    TPoint bitmapCatching1 = BitmapCoordinates(aPointer1);
    TPoint bitmapCatching2 = BitmapCoordinates(aPointer2);

    TBool repaint = EFalse;

    while (ETrue)
    {
    TAdvancedPointerEvent event = GetNextPointerEvent();

    if (event.iType == TPointerEvent::EDrag)
    {
    if (event.PointerNumber() == 1)
    {
    actualP1 = event.iPosition;
    repaint = ETrue;
    }
    else if (event.PointerNumber() == 2)
    {
    actualP2 = event.iPosition;
    repaint = ETrue;
    }
    }
    else if (event.iType == TPointerEvent::EButton1Up)
    {
    break;
    }

    if (repaint)
    {
    // move bitmap on the screen in the way that
    // bitmapCatching1 point of the bitmap will be displayed at actualP1 screen coordinate,
    // bitmapCatching2 point of the bitmap will be displayed at actualP2 screen coordinate.
    MoveBitmap(bitmapCatching1, actualP1, bitmapCatching2, actualP2);
    repaint = EFalse;
    }
    }
    }

    Надо использовать SetPointerNumber, но что-то это не работает:

    void CMainLoop:oMouseDownL(TInt X, TInt Y)
    {

    event.SetPointerNumber(1);
    event.Set(TRawEvent::EButton1Down, X, Y);
    iWsSession.SimulateRawEvent(event);
    User::After(100);
    event2.SetPointerNumber(2);
    event2.Set(TRawEvent::EButton1Down, X + 20, Y + 20);
    iWsSession.SimulateRawEvent(event);
    }

  4. #4
    Registered User vovik-ukr's Avatar
    Join Date
    Mar 2010
    Posts
    9
    Все, спасибо, разобрался. В SetPointerNumber передаю не 1, 2, а 0, 1. и во втором SimulateRawEvent опечатка была, не тот эвэнт передавал: iWsSession.SimulateRawEvent(event2);

Similar Threads

  1. How to do pinch zoom in Symbian^3 SDK
    By henpe008 in forum Symbian User Interface
    Replies: 6
    Last Post: 2010-09-03, 14:52
  2. как запустить эмулятор на семерке?
    By dudko_av in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 4
    Last Post: 2010-07-19, 13:21
  3. Как установить Симбиан на Нокиа 6270?
    By Elias10 in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 1
    Last Post: 2009-02-06, 19:18
  4. Как отправить данные на Apache сервер?
    By asparov in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 7
    Last Post: 2007-12-10, 10:53

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved