Changeset 35532 in webkit


Ignore:
Timestamp:
Aug 3, 2008 1:34:42 AM (16 years ago)
Author:
britto@apple.com
Message:

2008-08-02 Maxime Britto <britto@apple.com>

Reviewed by Eric Seidel.

<rdar://problem/6118969>
https://bugs.webkit.org/show_bug.cgi?id=19971
Modifiy the cursor interactively when on panning mode (middle click auto scroll)
When the panning is in progress the cursor is an arrow representing the direction of the current scroll

  • page/EventHandler.cpp: (WebCore::EventHandler::autoscrollTimerFired): Before each scroll we actualize the cursor to match the current direction (WebCore::EventHandler::setPanScrollCursor): determines the direction of the upcoming scroll. (WebCore::EventHandler::handleMouseMoveEvent):
  • page/EventHandler.h:
  • platform/Cursor.h: Add propotypes for the new cursor functions
  • platform/gtk/CursorGtk.cpp: to avoid build break (WebCore::middlePanningCursor): (WebCore::eastPanningCursor): (WebCore::northPanningCursor): (WebCore::northEastPanningCursor): (WebCore::northWestPanningCursor): (WebCore::southPanningCursor): (WebCore::southEastPanningCursor): (WebCore::southWestPanningCursor): (WebCore::westPanningCursor):
  • platform/mac/CursorMac.mm: to avoid build break (WebCore::middlePanningCursor): (WebCore::eastPanningCursor): (WebCore::northPanningCursor): (WebCore::northEastPanningCursor): (WebCore::northWestPanningCursor): (WebCore::southPanningCursor): (WebCore::southEastPanningCursor): (WebCore::southWestPanningCursor): (WebCore::westPanningCursor):
  • platform/qt/CursorQt.cpp: to avoid build break (WebCore::middlePanningCursor): (WebCore::eastPanningCursor): (WebCore::northPanningCursor): (WebCore::northEastPanningCursor): (WebCore::northWestPanningCursor): (WebCore::southPanningCursor): (WebCore::southEastPanningCursor): (WebCore::southWestPanningCursor): (WebCore::westPanningCursor):
  • platform/win/CursorWin.cpp: Add specific icons for the panning as windows resizing icons are both sides arrows (WebCore::middlePanningCursor): (WebCore::eastPanningCursor): (WebCore::northPanningCursor): (WebCore::northEastPanningCursor): (WebCore::northWestPanningCursor): (WebCore::southPanningCursor): (WebCore::southEastPanningCursor): (WebCore::southWestPanningCursor): (WebCore::westPanningCursor):
  • platform/wx/CursorWx.cpp: to avoid build break (WebCore::middlePanningCursor): (WebCore::eastPanningCursor): (WebCore::northPanningCursor): (WebCore::northEastPanningCursor): (WebCore::northWestPanningCursor): (WebCore::southPanningCursor): (WebCore::southEastPanningCursor): (WebCore::southWestPanningCursor): (WebCore::westPanningCursor):

2008-08-02 Maxime Britto <britto@apple.com>

Reviewed by Eric Seidel.


These icons are copies from the resizers in WebCore/Ressources

  • ChangeLog:
  • WebKit.vcproj/WebKit.rc:
  • WebKit.vcproj/panEastCursor.png: Added.
  • WebKit.vcproj/panNorthCursor.png: Added.
  • WebKit.vcproj/panNorthEastCursor.png: Added.
  • WebKit.vcproj/panNorthWestCursor.png: Added.
  • WebKit.vcproj/panSouthCursor.png: Added.
  • WebKit.vcproj/panSouthEastCursor.png: Added.
  • WebKit.vcproj/panSouthWestCursor.png: Added.
  • WebKit.vcproj/panWestCursor.png: Added.
  • WebKit.vcproj/resource.h:
  • WebKitDLL.cpp: (loadResourceIntoBuffer):
Location:
trunk
Files:
8 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r35527 r35532  
     12008-08-02  Maxime Britto  <britto@apple.com>
     2
     3        Reviewed by Eric Seidel.
     4
     5        <rdar://problem/6118969>
     6        https://bugs.webkit.org/show_bug.cgi?id=19971
     7        Modifiy the cursor interactively when on panning mode (middle click auto scroll)
     8        When the panning is in progress the cursor is an arrow representing the direction of the current scroll
     9
     10        * page/EventHandler.cpp:
     11        (WebCore::EventHandler::autoscrollTimerFired): Before each scroll we actualize the cursor to match the current direction
     12        (WebCore::EventHandler::setPanScrollCursor): determines the direction of the upcoming scroll.
     13        (WebCore::EventHandler::handleMouseMoveEvent):
     14        * page/EventHandler.h:
     15        * platform/Cursor.h: Add propotypes for the new cursor functions
     16        * platform/gtk/CursorGtk.cpp: to avoid build break
     17        (WebCore::middlePanningCursor):
     18        (WebCore::eastPanningCursor):
     19        (WebCore::northPanningCursor):
     20        (WebCore::northEastPanningCursor):
     21        (WebCore::northWestPanningCursor):
     22        (WebCore::southPanningCursor):
     23        (WebCore::southEastPanningCursor):
     24        (WebCore::southWestPanningCursor):
     25        (WebCore::westPanningCursor):
     26        * platform/mac/CursorMac.mm: to avoid build break
     27        (WebCore::middlePanningCursor):
     28        (WebCore::eastPanningCursor):
     29        (WebCore::northPanningCursor):
     30        (WebCore::northEastPanningCursor):
     31        (WebCore::northWestPanningCursor):
     32        (WebCore::southPanningCursor):
     33        (WebCore::southEastPanningCursor):
     34        (WebCore::southWestPanningCursor):
     35        (WebCore::westPanningCursor):
     36        * platform/qt/CursorQt.cpp: to avoid build break
     37        (WebCore::middlePanningCursor):
     38        (WebCore::eastPanningCursor):
     39        (WebCore::northPanningCursor):
     40        (WebCore::northEastPanningCursor):
     41        (WebCore::northWestPanningCursor):
     42        (WebCore::southPanningCursor):
     43        (WebCore::southEastPanningCursor):
     44        (WebCore::southWestPanningCursor):
     45        (WebCore::westPanningCursor):
     46        * platform/win/CursorWin.cpp: Add specific icons for the panning as windows resizing icons are both sides arrows
     47        (WebCore::middlePanningCursor):
     48        (WebCore::eastPanningCursor):
     49        (WebCore::northPanningCursor):
     50        (WebCore::northEastPanningCursor):
     51        (WebCore::northWestPanningCursor):
     52        (WebCore::southPanningCursor):
     53        (WebCore::southEastPanningCursor):
     54        (WebCore::southWestPanningCursor):
     55        (WebCore::westPanningCursor):
     56        * platform/wx/CursorWx.cpp: to avoid build break
     57        (WebCore::middlePanningCursor):
     58        (WebCore::eastPanningCursor):
     59        (WebCore::northPanningCursor):
     60        (WebCore::northEastPanningCursor):
     61        (WebCore::northWestPanningCursor):
     62        (WebCore::southPanningCursor):
     63        (WebCore::southEastPanningCursor):
     64        (WebCore::southWestPanningCursor):
     65        (WebCore::westPanningCursor):
     66
    1672008-08-02  Kevin Ollivier  <kevino@theolliviers.com>
    268
  • trunk/WebCore/page/EventHandler.cpp

    r35434 r35532  
    599599        }
    600600#if PLATFORM(WIN)
     601        setPanScrollCursor();
    601602        r->panScroll(m_panScrollStartPos);
    602603#endif
    603604    }
     605}
     606
     607void EventHandler::setPanScrollCursor()
     608{
     609    // At the original click location we draw a 4 arrowed icon. Over this icon there won't be any scroll
     610    // So we don't want to change the cursor over this area
     611    const int noScrollRadius = 9;
     612    bool east = m_panScrollStartPos.x() < (m_currentMousePosition.x() - noScrollRadius);
     613    bool west = m_panScrollStartPos.x() > (m_currentMousePosition.x() + noScrollRadius);
     614    bool north = m_panScrollStartPos.y() > (m_currentMousePosition.y() + noScrollRadius);
     615    bool south = m_panScrollStartPos.y() < (m_currentMousePosition.y() - noScrollRadius);
     616         
     617    if (north) {
     618        if (east)
     619            m_frame->view()->setCursor(northEastPanningCursor());
     620        else if (west)
     621            m_frame->view()->setCursor(northWestPanningCursor());
     622        else
     623            m_frame->view()->setCursor(northPanningCursor());
     624    } else if (south) {
     625        if (east)
     626            m_frame->view()->setCursor(southEastPanningCursor());
     627        else if (west)
     628            m_frame->view()->setCursor(southWestPanningCursor());
     629        else
     630            m_frame->view()->setCursor(southPanningCursor());
     631    } else if (east)
     632        m_frame->view()->setCursor(eastPanningCursor());
     633    else if (west)
     634        m_frame->view()->setCursor(westPanningCursor());
     635    else
     636        m_frame->view()->setCursor(middlePanningCursor());
    604637}
    605638
     
    11381171        if (scrollbar && !m_mousePressed)
    11391172            scrollbar->handleMouseMoveEvent(mouseEvent); // Handle hover effects on platforms that support visual feedback on scrollbar hovering.
    1140         if ((!m_resizeLayer || !m_resizeLayer->inResizeMode()) && m_frame->view())
     1173        if ((!m_resizeLayer || !m_resizeLayer->inResizeMode()) && !m_frame->page()->mainFrame()->eventHandler()->panScrollInProgress() && m_frame->view())
    11411174            m_frame->view()->setCursor(selectCursor(mev, scrollbar));
    11421175    }
  • trunk/WebCore/page/EventHandler.h

    r35083 r35532  
    215215   
    216216    Cursor selectCursor(const MouseEventWithHitTestResults&, PlatformScrollbar*);
     217    void setPanScrollCursor();
    217218
    218219    void hoverTimerFired(Timer<EventHandler>*);
  • trunk/WebCore/platform/Cursor.h

    r34544 r35532  
    122122    const Cursor& columnResizeCursor();
    123123    const Cursor& rowResizeCursor();
     124    const Cursor& middlePanningCursor();
     125    const Cursor& eastPanningCursor();
     126    const Cursor& northPanningCursor();
     127    const Cursor& northEastPanningCursor();
     128    const Cursor& northWestPanningCursor();
     129    const Cursor& southPanningCursor();
     130    const Cursor& southEastPanningCursor();
     131    const Cursor& southWestPanningCursor();
     132    const Cursor& westPanningCursor();
    124133    const Cursor& verticalTextCursor();
    125134    const Cursor& cellCursor();
  • trunk/WebCore/platform/gtk/CursorGtk.cpp

    r30501 r35532  
    214214    return c;
    215215}
     216   
     217const Cursor& middlePanningCursor()
     218{
     219    return moveCursor();
     220}
     221
     222const Cursor& eastPanningCursor()
     223{
     224    return eastResizeCursor();
     225}
     226
     227const Cursor& northPanningCursor()
     228{
     229    return northResizeCursor();
     230}
     231
     232const Cursor& northEastPanningCursor()
     233{
     234    return northEastResizeCursor();
     235}
     236
     237const Cursor& northWestPanningCursor()
     238{
     239    return northWestResizeCursor();
     240}
     241
     242const Cursor& southPanningCursor()
     243{
     244    return southResizeCursor();
     245}
     246
     247const Cursor& southEastPanningCursor()
     248{
     249    return southEastResizeCursor();
     250}
     251
     252const Cursor& southWestPanningCursor()
     253{
     254    return southWestResizeCursor();
     255}
     256
     257const Cursor& westPanningCursor()
     258{
     259    return westResizeCursor();
     260}
     261   
    216262
    217263const Cursor& verticalTextCursor()
  • trunk/WebCore/platform/mac/CursorMac.mm

    r21685 r35532  
    296296}
    297297
    298 }
     298const Cursor& middlePanningCursor()
     299{
     300    return moveCursor();
     301}
     302   
     303const Cursor& eastPanningCursor()
     304{
     305    return eastResizeCursor();
     306}
     307   
     308const Cursor& northPanningCursor()
     309{
     310    return northResizeCursor();
     311}
     312   
     313const Cursor& northEastPanningCursor()
     314{
     315    return northEastResizeCursor();
     316}
     317   
     318const Cursor& northWestPanningCursor()
     319{
     320    return northWestResizeCursor();
     321}
     322   
     323const Cursor& southPanningCursor()
     324{
     325    return southResizeCursor();
     326}
     327   
     328const Cursor& southEastPanningCursor()
     329{
     330    return southEastResizeCursor();
     331}
     332   
     333const Cursor& southWestPanningCursor()
     334{
     335    return southWestResizeCursor();
     336}
     337   
     338const Cursor& westPanningCursor()
     339{
     340    return westResizeCursor();
     341}
     342}
  • trunk/WebCore/platform/qt/CursorQt.cpp

    r35003 r35532  
    255255    return Cursors::self()->SplitVCursor;
    256256}
     257   
     258const Cursor& middlePanningCursor()
     259{
     260    return moveCursor();
     261}
     262
     263const Cursor& eastPanningCursor()
     264{
     265    return eastResizeCursor();
     266}
     267
     268const Cursor& northPanningCursor()
     269{
     270    return northResizeCursor();
     271}
     272
     273const Cursor& northEastPanningCursor()
     274{
     275    return northEastResizeCursor();
     276}
     277
     278const Cursor& northWestPanningCursor()
     279{
     280    return northWestResizeCursor();
     281}
     282
     283const Cursor& southPanningCursor()
     284{
     285    return southResizeCursor();
     286}
     287
     288const Cursor& southEastPanningCursor()
     289{
     290    return southEastResizeCursor();
     291}
     292
     293const Cursor& southWestPanningCursor()
     294{
     295    return southWestResizeCursor();
     296}
     297
     298const Cursor& westPanningCursor()
     299{
     300    return westResizeCursor();
     301}   
    257302
    258303const Cursor& verticalTextCursor()
  • trunk/WebCore/platform/win/CursorWin.cpp

    r34544 r35532  
    282282}
    283283
     284const Cursor& middlePanningCursor()
     285{
     286    static const Cursor c = loadCursorByName("panIcon", 7, 7);
     287    return c;
     288}
     289
     290const Cursor& eastPanningCursor()
     291{
     292    static const Cursor c = loadCursorByName("panEastCursor", 7, 7);
     293    return c;
     294}
     295
     296const Cursor& northPanningCursor()
     297{
     298    static const Cursor c = loadCursorByName("panNorthCursor", 7, 7);
     299    return c;
     300}
     301
     302const Cursor& northEastPanningCursor()
     303{
     304    static const Cursor c = loadCursorByName("panNorthEastCursor", 7, 7);
     305    return c;
     306}
     307
     308const Cursor& northWestPanningCursor()
     309{
     310    static const Cursor c = loadCursorByName("panNorthWestCursor", 7, 7);
     311    return c;
     312}
     313
     314const Cursor& southPanningCursor()
     315{
     316    static const Cursor c = loadCursorByName("panSouthCursor", 7, 7);
     317    return c;
     318}
     319
     320const Cursor& southEastPanningCursor()
     321{
     322    static const Cursor c = loadCursorByName("panSouthEastCursor", 7, 7);
     323    return c;
     324}
     325
     326const Cursor& southWestPanningCursor()
     327{
     328    static const Cursor c = loadCursorByName("panSouthWestCursor", 7, 7);
     329    return c;
     330}
     331
     332const Cursor& westPanningCursor()
     333{
     334    static const Cursor c = loadCursorByName("panWestCursor", 7, 7);
     335    return c;
     336}
     337
    284338const Cursor& moveCursor()
    285339{
  • trunk/WebCore/platform/wx/CursorWx.cpp

    r29663 r35532  
    182182    return c;
    183183}
     184   
     185const Cursor& middlePanningCursor()
     186{
     187    return moveCursor();
     188}
     189
     190const Cursor& eastPanningCursor()
     191{
     192    return eastResizeCursor();
     193}
     194
     195const Cursor& northPanningCursor()
     196{
     197    return northResizeCursor();
     198}
     199
     200const Cursor& northEastPanningCursor()
     201{
     202    return northEastResizeCursor();
     203}
     204
     205const Cursor& northWestPanningCursor()
     206{
     207    return northWestResizeCursor();
     208}
     209
     210const Cursor& southPanningCursor()
     211{
     212    return southResizeCursor();
     213}
     214
     215const Cursor& southEastPanningCursor()
     216{
     217    return southEastResizeCursor();
     218}
     219
     220const Cursor& southWestPanningCursor()
     221{
     222    return southWestResizeCursor();
     223}
     224
     225const Cursor& westPanningCursor()
     226{
     227    return westResizeCursor();
     228}   
    184229
    185230const Cursor& verticalTextCursor()
  • trunk/WebKit/win/ChangeLog

    r35517 r35532  
     12008-08-02  Maxime Britto  <britto@apple.com>
     2
     3        Reviewed by Eric Seidel.
     4     
     5        These icons are copies from the resizers in WebCore/Ressources
     6
     7        * ChangeLog:
     8        * WebKit.vcproj/WebKit.rc:
     9        * WebKit.vcproj/panEastCursor.png: Added.
     10        * WebKit.vcproj/panNorthCursor.png: Added.
     11        * WebKit.vcproj/panNorthEastCursor.png: Added.
     12        * WebKit.vcproj/panNorthWestCursor.png: Added.
     13        * WebKit.vcproj/panSouthCursor.png: Added.
     14        * WebKit.vcproj/panSouthEastCursor.png: Added.
     15        * WebKit.vcproj/panSouthWestCursor.png: Added.
     16        * WebKit.vcproj/panWestCursor.png: Added.
     17        * WebKit.vcproj/resource.h:
     18        * WebKitDLL.cpp:
     19        (loadResourceIntoBuffer):
     20
    1212008-08-01  Beth Dakin  <bdakin@apple.com>
    222
  • trunk/WebKit/win/WebKit.vcproj/WebKit.rc

    r35083 r35532  
    7171IDR_VERTICAL_TEXT_CURSOR         PNG                     "verticalTextCursor.png"
    7272IDR_PAN_SCROLL_ICON              PNG                     "panIcon.png"
     73IDR_PAN_SOUTH_CURSOR             PNG                     "panSouthCursor.png"
     74IDR_PAN_NORTH_CURSOR             PNG                     "panNorthCursor.png"
     75IDR_PAN_EAST_CURSOR              PNG                     "panEastCursor.png"
     76IDR_PAN_WEST_CURSOR              PNG                     "panWestCursor.png"
     77IDR_PAN_SOUTH_EAST_CURSOR        PNG                     "panSouthEastCursor.png"
     78IDR_PAN_SOUTH_WEST_CURSOR        PNG                     "panSouthWestCursor.png"
     79IDR_PAN_NORTH_EAST_CURSOR        PNG                     "panNorthEastCursor.png"
     80IDR_PAN_NORTH_WEST_CURSOR        PNG                     "panNorthWestCursor.png"
    7381
  • trunk/WebKit/win/WebKit.vcproj/resource.h

    r35099 r35532  
    1212#define IDR_VERTICAL_TEXT_CURSOR        8
    1313#define IDR_PAN_SCROLL_ICON             9
     14#define IDR_PAN_SOUTH_CURSOR            10
     15#define IDR_PAN_NORTH_CURSOR            11
     16#define IDR_PAN_EAST_CURSOR             12
     17#define IDR_PAN_WEST_CURSOR             13
     18#define IDR_PAN_SOUTH_EAST_CURSOR       14
     19#define IDR_PAN_SOUTH_WEST_CURSOR       15
     20#define IDR_PAN_NORTH_EAST_CURSOR       16
     21#define IDR_PAN_NORTH_WEST_CURSOR       17
    1422#define IDC_STATIC                      -1
    1523
     
    2028#ifdef APSTUDIO_INVOKED
    2129#ifndef APSTUDIO_READONLY_SYMBOLS
    22 #define _APS_NEXT_RESOURCE_VALUE        12
     30#define _APS_NEXT_RESOURCE_VALUE        18
    2331#define _APS_NEXT_COMMAND_VALUE         40001
    2432#define _APS_NEXT_CONTROL_VALUE         1000
  • trunk/WebKit/win/WebKitDLL.cpp

    r35460 r35532  
    150150    else if (!strcmp(name, "panIcon"))
    151151        idr = IDR_PAN_SCROLL_ICON;
     152    else if (!strcmp(name, "panSouthCursor"))
     153        idr = IDR_PAN_SOUTH_CURSOR;
     154    else if (!strcmp(name, "panNorthCursor"))
     155        idr = IDR_PAN_NORTH_CURSOR;
     156    else if (!strcmp(name, "panEastCursor"))
     157        idr = IDR_PAN_EAST_CURSOR;
     158    else if (!strcmp(name, "panWestCursor"))
     159        idr = IDR_PAN_WEST_CURSOR;
     160    else if (!strcmp(name, "panSouthEastCursor"))
     161        idr = IDR_PAN_SOUTH_EAST_CURSOR;
     162    else if (!strcmp(name, "panSouthWestCursor"))
     163        idr = IDR_PAN_SOUTH_WEST_CURSOR;
     164    else if (!strcmp(name, "panNorthEastCursor"))
     165        idr = IDR_PAN_NORTH_EAST_CURSOR;
     166    else if (!strcmp(name, "panNorthWestCursor"))
     167        idr = IDR_PAN_NORTH_WEST_CURSOR;
    152168    else if (!strcmp(name, "zoomInCursor"))
    153169        idr = IDR_ZOOM_IN_CURSOR;
Note: See TracChangeset for help on using the changeset viewer.