view doodle/dia/tool.d @ 48:1b4c9ba58673

Stylistic overhaul.
author daveb
date Tue, 03 Aug 2010 17:37:21 +0930
parents 1754cb773d41
children b190a9d9352e
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,
              in Rectangle modelDamage, scope Context modelCr) const { }
}