view doodle/dia/tool.d @ 56:b190a9d9352e

Checkpoint
author "David Bryant <bagnose@gmail.com>"
date Sun, 08 Aug 2010 21:56:54 +0930
parents 1b4c9ba58673
children 9960c4fbd0dd
line wrap: on
line source

module doodle.dia.tool;

public {
    import cairo.Context;
    import doodle.dia.icanvas;
    import doodle.tk.events;
}

/*
interface IToolStack {
    void push(Tool tool);
    void pop();
    void replace(Tool tool);
}
*/

abstract class Tool {
    /*
    enum Response {
    START, CONTINUE, FINISH

    }
    */

    /*
    abstract bool isSticky();
    abstract bool isReplaceable();
    */

    /*
    abstract void start(IToolStack tool_stack);
    abstract void stop(IToolStack tool_stack);
    */

    bool handleButtonPress(scope Viewport viewport, in ButtonEvent event) { return false; }
    bool handleButtonRelease(scope Viewport viewport, in ButtonEvent event) { return false; }
    bool handleMotion(scope Viewport viewport, in MotionEvent event) { return false; }
    bool handleScroll(scope Viewport viewport, in ScrollEvent event) { return false; }
    //bool handleEnter(scope viewport, CrossingEvent event) { return false; }
    //bool handleLeave(scope viewport, CrossingEvent event) { return false; }
    //bool handleFocusIn(scope viewport, FocusEvent event) { return false; }
    //bool handleFocusOut(scope viewport, FocusEvent event) { return false; }
    bool handleKeyPress(scope Viewport viewport, in KeyEvent event) { return false; }
    bool handleKeyRelease(scope Viewport viewport, in KeyEvent event) { return false; }

    void draw(in Viewport viewport,
              in Rectangle pixelDamage, scope Context pixelCr) const { }
}