Package library :: Package pyjamas :: Package ui :: Module ContextMenuPopupPanel
[hide private]
[frames] | no frames]

Source Code for Module library.pyjamas.ui.ContextMenuPopupPanel

 1  # Copyright 2006 James Tauber and contributors 
 2  # Copyright (C) 2009 Luke Kenneth Casson Leighton <lkcl@lkcl.net> 
 3  # 
 4  # Licensed under the Apache License, Version 2.0 (the "License"); 
 5  # you may not use this file except in compliance with the License. 
 6  # You may obtain a copy of the License at 
 7  # 
 8  #     http://www.apache.org/licenses/LICENSE-2.0 
 9  # 
10  # Unless required by applicable law or agreed to in writing, software 
11  # distributed under the License is distributed on an "AS IS" BASIS, 
12  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
13  # See the License for the specific language governing permissions and 
14  # limitations under the License. 
15  from pyjamas import DOM 
16  from pyjamas import Factory 
17  from pyjamas.ui.PopupPanel import PopupPanel 
18   
19 -class ContextMenuPopupPanel(PopupPanel):
20 - def __init__(self, item, **kwargs):
21 self.item = item 22 kwargs['Widget'] = item 23 PopupPanel.__init__(self, True, **kwargs)
24
25 - def showAt(self, x, y):
26 27 self.setPopupPosition(x, y) 28 self.item.onShow() 29 self.show()
30
31 - def onEventPreview(self, event):
32 type = DOM.eventGetType(event) 33 if type == "click": 34 target = DOM.eventGetTarget(event) 35 parentMenuElement = self.item.getElement() 36 if DOM.isOrHasChild(parentMenuElement, target): 37 if self.item.onBrowserEvent(event): 38 self.hide() 39 return True 40 41 return PopupPanel.onEventPreview(self, event)
42 43 Factory.registerClass('pyjamas.ui.ContextMenuPopupPanel', 'ContextMenuPopupPanel', ContextMenuPopupPanel) 44