On Jan 7, 2010, at 5:44 PM, Kenneth Christiansen wrote:

> A co-worker of mine is implementing the ability to reimplement how popup 
> menus (comboboxes) etc will appear from our Qt WebKit API.
> 
> As these UI delegates are per page, we thought about adding a method to our 
> ChromeClientQt like AbstractPopupMenu* createPopupMenu(PopupMenuClient* 
> client), but currently PopupMenuClient has no access to the page so that we 
> can get hold of that.
> 
> I guess that it is not safe to assume that PopupMenuClient::hostWindow() is 
> always a Chrome, so would it be acceptable substituting the 
> PopupMenuClient::hostWindow()  with a PopupMenuClient::page() [1]  method and 
> then change the uses to page->chrome() ?

That would be a layering violation. PopupMenu is part of WebCore's platform 
layer, and thus should have no knowledge of higher-level WebCore concepts like 
"Page".

Maybe you could talk to the ChromeClient at a slightly higher level, like from 
within RenderMenuList/RenderTextControlSingleLine?

-Adam

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to