Author: stippi Date: Tue Apr 6 01:15:17 2010 New Revision: 390 URL: http://mmlr.dyndns.org/changeset/390 Log: Allow to associate user data with a BWebView instance. Modified: webkit/trunk/WebKit/haiku/API/WebView.cpp webkit/trunk/WebKit/haiku/API/WebView.h Modified: webkit/trunk/WebKit/haiku/API/WebView.cpp ============================================================================== --- webkit/trunk/WebKit/haiku/API/WebView.cpp Tue Apr 6 00:58:40 2010 (r389) +++ webkit/trunk/WebKit/haiku/API/WebView.cpp Tue Apr 6 01:15:17 2010 (r390) @@ -43,12 +43,17 @@ using namespace WebCore; +BWebView::UserData::~UserData() +{ +} + BWebView::BWebView(const char* name) : BView(name, B_WILL_DRAW | B_FRAME_EVENTS | B_FULL_UPDATE_ON_RESIZE | B_NAVIGABLE) , fLastMouseButtons(0) , fOffscreenBitmap(0) , fOffscreenViewClean(false) , fWebPage(new BWebPage(this)) + , fUserData(0) { fWebPage->Init(); // TODO: Should add this to the "current" looper, but that looper needs to @@ -70,6 +75,7 @@ fOffscreenBitmap->Lock(); delete fOffscreenBitmap; } + SetUserData(0); } void BWebView::Shutdown() @@ -309,6 +315,20 @@ UnlockLooper(); } +void BWebView::SetUserData(BWebView::UserData* userData) +{ + if (fUserData == userData) + return; + + delete fUserData; + fUserData = userData; +} + +BWebView::UserData* BWebView::GetUserData() const +{ + return fUserData; +} + // #pragma mark - API for WebPage only void BWebView::SetOffscreenViewClean(BRect cleanRect, bool immediate) Modified: webkit/trunk/WebKit/haiku/API/WebView.h ============================================================================== --- webkit/trunk/WebKit/haiku/API/WebView.h Tue Apr 6 00:58:40 2010 (r389) +++ webkit/trunk/WebKit/haiku/API/WebView.h Tue Apr 6 01:15:17 2010 (r390) @@ -37,6 +37,12 @@ class BWebView : public BView { public: + class UserData { + public: + virtual ~UserData(); + }; + +public: BWebView(const char* name); // The BWebView needs to be deleted by the BWebPage instance running @@ -67,7 +73,7 @@ virtual void KeyDown(const char* bytes, int32 numBytes); virtual void KeyUp(const char* bytes, int32 numBytes); - // BWebPage API + // BWebPage API exposure BWebPage* WebPage() const { return fWebPage; } BString MainFrameTitle() const; @@ -91,8 +97,12 @@ bool wrapSelection = true, bool startInSelection = false); + // BWebview API void SendFakeMouseMovedEvent(); + void SetUserData(UserData* cookie); + UserData* GetUserData() const; + private: friend class BWebPage; virtual ~BWebView(); @@ -120,6 +130,8 @@ bool fOffscreenViewClean; BWebPage* fWebPage; + + UserData* fUserData; }; #endif // _WEB_VIEW_H_