Mercurial > projects > mde
diff mde/gui/WidgetManager.d @ 168:da8d3091fdaf
More work on the context menu: now roughly usable like an ordinary context menu.
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Mon, 29 Jun 2009 18:45:58 +0200 |
parents | 620d4ea30228 |
children | bc1cf73dc835 |
line wrap: on
line diff
--- a/mde/gui/WidgetManager.d Sat Jun 27 11:57:26 2009 +0200 +++ b/mde/gui/WidgetManager.d Mon Jun 29 18:45:58 2009 +0200 @@ -31,6 +31,7 @@ import mde.content.Content; import mde.content.ServiceContent; debug import mde.content.miscContent; // Debug menu +debug import mde.content.Debug; // Widgets to create: import mde.gui.widget.layout; @@ -157,7 +158,7 @@ override IChildWidget getPopupWidget (wdabs cx, wdabs cy, bool closePopup) { if (popupContext) { if (popupContext.onSelf (cx, cy)) - return popupContext; + return popupContext.getWidget (cx, cy); if (closePopup) { if (childIPPW is null) menuActive = MenuPosition.INACTIVE; @@ -334,6 +335,7 @@ popupContext = makeWidget (this, "context", contextContent); popupContext.setup (0, 3); positionPopup (underMouse, popupContext); + menuActive = MenuPosition.ACTIVE; requestRedraw; } else { // post other button presses to clickEvent int ret = underMouse.clickEvent (cast(wdabs)cx,cast(wdabs)cy,b,state); @@ -384,6 +386,8 @@ child.setWidth (w, -1); child.setHeight (h, -1); child.setPosition (0,0); + popupContext.setup (setupN, 2); + //NOTE: does popupContext need to be re-scaled? requestRedraw; } } @@ -399,6 +403,8 @@ debug assert (oUM && underMouse, "no widget under mouse: error"); oUM.underMouse (false); underMouse.underMouse (true); + debug if (Debug.logUnderMouse()) + logger.trace ("Widget under mouse: {}", underMouse); } }