webengine/osswebengine/WebKit/s60/webview/WebCursor.cpp
changeset 13 10e98eab6f85
parent 8 7c90e6132015
child 16 a359256acfc6
--- a/webengine/osswebengine/WebKit/s60/webview/WebCursor.cpp	Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebCursor.cpp	Fri Jul 03 15:54:40 2009 +0100
@@ -117,8 +117,10 @@
 // -----------------------------------------------------------------------------
 WebCursor::~WebCursor()
     {
-    m_sprite.Close();
+    delete m_sprite;
     delete m_transarrowmask;
+    if ( m_transtimer ) 
+        m_transtimer->Cancel();
     delete m_transtimer;
     }
 
@@ -139,7 +141,7 @@
     if (!m_view)
     {
         m_view = &view;
-        constructSprite();
+        TRAP_IGNORE( constructSpriteL() );
     }
     m_view = &view;
     setOpaqueUntil(KTransparencyTime);
@@ -147,9 +149,9 @@
     }
 
 // -----------------------------------------------------------------------------
-// WebCursor::constructSprite
+// WebCursor::constructSpriteL
 // -----------------------------------------------------------------------------
-void WebCursor::constructSprite()
+void WebCursor::constructSpriteL()
     {
 
     //tot:fixme
@@ -180,17 +182,10 @@
     delete gc;
     CleanupStack::PopAndDestroy();
     /////////////////////////////////
-    m_sprite = RWsSprite(m_view->ControlEnv()->WsSession());
-    RWindowTreeNode *window =  (RDrawableWindow* )m_view->brCtl()->CCoeControlParent()->DrawableWindow();
-    m_sprite.Construct(*window,TPoint(KInitialOffset,KInitialOffset),ESpriteNoChildClip);
-
-    TSpriteMember spriteMem;
-    spriteMem.iBitmap = 0;
-    spriteMem.iMaskBitmap = 0;
-    spriteMem.iInvertMask = ETrue;
-
-    m_sprite.AppendMember(spriteMem);
-    m_sprite.Activate();
+ 
+    CCoeControl* parent = static_cast<CCoeControl*>(m_view);
+    TPoint pos = TPoint(KInitialOffset,KInitialOffset);
+    m_sprite = CWebSprite::NewL(parent, pos, m_arrow.m_img, m_arrow.m_msk, ETrue);
     }
 
 // -----------------------------------------------------------------------------
@@ -198,24 +193,25 @@
 // -----------------------------------------------------------------------------
 void WebCursor::setCursor(CursorTypes type)
 {
-    m_sprite.SetPosition( m_pos );
+    
     m_type = type;
-    if (m_visible && !(m_view->brCtl()->settings()->getTabbedNavigation())) {
-        TSpriteMember spriteMem;
+    if (m_visible && (m_view->brCtl()->settings()->getNavigationType() == SettingsContainer::NavigationTypeCursor)) {
+        CFbsBitmap*  img = NULL;
+        CFbsBitmap*  msk = NULL;
         switch( type )
             {
             case PointerCursor:
             default:
                 {
-                spriteMem.iBitmap = m_waiton ? m_wait.m_img : m_arrow.m_img;
-                spriteMem.iMaskBitmap = m_waiton ? m_wait.m_img :
+                img = m_waiton ? m_wait.m_img : m_arrow.m_img;
+                msk = m_waiton ? m_wait.m_img :
                     (m_transparent && m_transcount > KTransparencyMoveThreshold ? m_transarrowmask : m_arrow.m_msk);
                 break;
                 }
            case HandCursor:
                 {
-                spriteMem.iBitmap = m_hand.m_img;
-                spriteMem.iMaskBitmap = m_hand.m_msk;
+                img = m_hand.m_img;
+                msk = m_hand.m_msk;
                 break;
                 }
            case IBeamCursor:
@@ -232,27 +228,25 @@
                     }
                 else*/
                     {
-                    spriteMem.iBitmap = m_ibeam.m_img;
-                    spriteMem.iMaskBitmap = m_ibeam.m_msk;
+                    img = m_ibeam.m_img;
+                    msk = m_ibeam.m_msk;
                     }
                 break;
                 }
            case SelectMultiCursor:
                {
-                    spriteMem.iBitmap = m_selectMulti.m_img;
-                    spriteMem.iMaskBitmap = m_selectMulti.m_msk;
+                    img = m_selectMulti.m_img;
+                    msk = m_selectMulti.m_msk;
                     break;
                }
             }
-        spriteMem.iOffset = KCursorOffset;
-        spriteMem.iInvertMask = ETrue;
-        m_sprite.UpdateMember( 0, spriteMem );
-    } else {
-        TSpriteMember spriteMem;
-        spriteMem.iBitmap = 0;
-        spriteMem.iMaskBitmap = 0;
-        spriteMem.iInvertMask = ETrue;
-        m_sprite.UpdateMember( 0, spriteMem );
+        TPoint pos = m_pos + KCursorOffset;
+        
+        m_sprite->Update(pos, img, msk);
+        
+    } 
+    else {
+        m_sprite->Hide();
     }
 }
 
@@ -264,7 +258,7 @@
     if (!m_view || !m_view->brCtl()->settings())
         return;
     if ( m_view->showCursor() ) {
-        m_visible = visible && (!m_view->brCtl()->settings()->getTabbedNavigation() || m_view->focusedElementType() == TBrCtlDefs::EElementSelectMultiBox); // check for tabbedNavigation here because it is called from so many places.
+        m_visible = visible && ((m_view->brCtl()->settings()->getNavigationType() == SettingsContainer::NavigationTypeCursor)|| m_view->focusedElementType() == TBrCtlDefs::EElementSelectMultiBox); // check for tabbedNavigation here because it is called from so many places.
     }
 
     resetTransparency();
@@ -279,7 +273,7 @@
         else if (    elType == TBrCtlDefs::EElementSmartLinkTel
                   || elType == TBrCtlDefs::EElementSmartLinkEmail )
             type = IBeamCursor;
-        else if (    elType == TBrCtlDefs::EElementSelectMultiBox && m_view->brCtl()->settings()->getTabbedNavigation() )
+        else if (    elType == TBrCtlDefs::EElementSelectMultiBox && m_view->brCtl()->settings()->getNavigationType() == SettingsContainer::NavigationTypeTabbed)
             type = SelectMultiCursor;
         else
             type = HandCursor;
@@ -713,7 +707,7 @@
 void WebCursor::updatePositionAndElemType(const TPoint& pt)
 {
     m_pos = pt;
-    m_sprite.SetPosition(pt);
+    m_sprite->SetPos(pt);
     WebFrame* frame = getFrameAtPoint(pt);
     TBrCtlDefs::TBrCtlElementType elType;
     TRect r;