Mercurial > projects > mde
diff mde/gui/IGui.d @ 34:6b4116e6355c
Work on the Gui: some of the framework for drag & drop. Also made Window an IWidget.
Implemented getWidget(x,y) to find the widget under this location for IWidgets (but not Gui).
Made Window an IWidget and made it work a little more similarly to widgets.
Implemented callbacks on the Gui for mouse events (enabling drag & drop, etc.).
committer: Diggory Hardy <diggory.hardy@gmail.com>
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Fri, 02 May 2008 16:03:52 +0100 |
parents | 316b0230a849 |
children | 57d000574d75 |
line wrap: on
line diff
--- a/mde/gui/IGui.d Thu May 01 10:55:04 2008 +0100 +++ b/mde/gui/IGui.d Fri May 02 16:03:52 2008 +0100 @@ -13,16 +13,23 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ +module mde.gui.IGui; + +public import mde.gui.renderer.IRenderer; + /** The Gui interface. * * This contains the functions for use by Windows, not those for external use (use Gui directly for * that). */ -module mde.gui.IGui; - -public import mde.gui.renderer.IRenderer; - interface IGui { /** Get the Gui's renderer. May be overriden by the window. */ IRenderer renderer (); + + /** Add a mouse click callback: delegate will be called for all mouse click events recieved. */ + void addClickCallback (void delegate (ushort cx, ushort cy, ubyte b, bool state) dg); + /** Add a mouse motion callback: delegate will be called for all motion events recieved. */ + void addMotionCallback (void delegate (ushort cx, ushort cy) dg); + /** Remove all event callbacks with _frame pointer frame. */ + void removeCallbacks (void* frame); }