using System;
namespace Assistance {
[Flags]
public enum Modifiers {
None = 0,
Interpolation = 1,
Guideline = 2,
Multiline = 4
};
public class InputHandler {
public void activate() { }
public void keyPress(Gdk.Key key, InputState state) { }
public void keyRelease(Gdk.Key key, InputState state) { }
public void buttonPress(Gdk.Device device, uint button, InputState state) { }
public void buttonRelease(Gdk.Device device, uint button, InputState state) { }
public bool paintBegin() { return false; }
public void paintTrackBegin(Track track) { }
public void paintTrackPoint(Track track) { }
public void paintTrackEnd(Track track) { }
public bool paintApply() { return false; }
public void paintCancel() { }
public void disactivate() { }
}
public class InputModifier {
public InputHandler getNext() { return null; }
public void activate()
{ if (getNext() != null) getNext().activate(); }
public void keyPress(Gdk.Key key, InputState state)
{ if (getNext() != null) getNext().keyPress(key, state); }
public void keyRelease(Gdk.Key key, InputState state)
{ if (getNext() != null) getNext().keyRelease(key, state); }
public void buttonPress(Gdk.Device device, uint button, InputState state)
{ if (getNext() != null) getNext().buttonPress(device, button, state); }
public void buttonRelease(Gdk.Device device, uint button, InputState state)
{ if (getNext() != null) getNext().buttonRelease(device, button, state); }
public bool paintBegin()
{ return getNext() == null ? false : getNext().paintBegin(); }
public void paintTrackBegin(Track track)
{ if (getNext() != null) getNext().paintTrackBegin(track); }
public void paintTrackPoint(Track track)
{ if (getNext() != null) getNext().paintTrackPoint(track); }
public void paintTrackEnd(Track track)
{ if (getNext() != null) getNext().paintTrackEnd(track); }
public bool paintApply()
{ return getNext() == null ? false : getNext().paintApply(); }
public void paintCancel()
{ if (getNext() != null) getNext().paintCancel(); }
public void disactivate()
{ if (getNext() != null) getNext().disactivate(); }
}
public class Tool: InputHandler {
public Modifiers getAvailableModifiers()
{ return Modifiers.None; }
}
}