view tk/gtk_support.d @ 6:a27d2093991c

Checkpoint
author "David Bryant <bagnose@gmail.com>"
date Sat, 11 Jul 2009 20:44:14 +0930
parents e907d2c54ec3
children 936feb16eed4
line wrap: on
line source

module tk.gtk_support;

import tk.types;

static import gdk.Event;

ButtonPress gtk2tk_click(gdk.Event.EventType event_type) {
    switch (event_type) {
    case gdk.Event.EventType.BUTTON_PRESS:
        return ButtonPress.SINGLE;
    case gdk.Event.EventType.DOUBLE_BUTTON_PRESS:
        return ButtonPress.DOUBLE;
    case gdk.Event.EventType.TRIPLE_BUTTON_PRESS:
        return ButtonPress.TRIPLE;
    case gdk.Event.EventType.BUTTON_RELEASE:
        return ButtonPress.RELEASE;
    default:
        assert(false);
    }
}

ButtonNumber gtk2tk_button(gdk.Event.guint button) {
    switch (button) {
    case 1:
        return ButtonNumber.BUTTON_1;
    case 2:
        return ButtonNumber.BUTTON_2;
    case 3:
        return ButtonNumber.BUTTON_3;
    default:
        assert(false);
    }
}

/*
Mask gtk2tk_mask(gdk.Event.guint state) {
    auto mask = new Mask();

    if (state & gdk.Event.GdkModifierType.SHIFT_MASK)   mask.add(Modifier.SHIFT);
    if (state & gdk.Event.GdkModifierType.CONTROL_MASK) mask.add(Modifier.CONTROL);
    if (state & gdk.Event.GdkModifierType.MOD1_MASK)    mask.add(Modifier.ALT);
    if (state & gdk.Event.GdkModifierType.MOD2_MASK)    mask.add(Modifier.META);
    if (state & gdk.Event.GdkModifierType.BUTTON1_MASK) mask.add(Modifier.BUTTON_1);
    if (state & gdk.Event.GdkModifierType.BUTTON2_MASK) mask.add(Modifier.BUTTON_2);
    if (state & gdk.Event.GdkModifierType.BUTTON3_MASK) mask.add(Modifier.BUTTON_3);

    return mask;
}
*/

Mask gtk2tk_mask(gdk.Event.guint state) {
    Modifier[] modifiers;

    if (state & gdk.Event.GdkModifierType.SHIFT_MASK)   modifiers ~= Modifier.SHIFT;
    if (state & gdk.Event.GdkModifierType.CONTROL_MASK) modifiers ~= Modifier.CONTROL;
    if (state & gdk.Event.GdkModifierType.MOD1_MASK)    modifiers ~= Modifier.ALT;
    if (state & gdk.Event.GdkModifierType.MOD2_MASK)    modifiers ~= Modifier.META;
    if (state & gdk.Event.GdkModifierType.BUTTON1_MASK) modifiers ~= Modifier.BUTTON_1;
    if (state & gdk.Event.GdkModifierType.BUTTON2_MASK) modifiers ~= Modifier.BUTTON_2;
    if (state & gdk.Event.GdkModifierType.BUTTON3_MASK) modifiers ~= Modifier.BUTTON_3;

    return new Mask(modifiers);
}

ScrollDirection gtk2tk_direction(gdk.Event.ScrollDirection direction) {
    switch (direction) {
    case gdk.Event.ScrollDirection.UP:
        return ScrollDirection.UP;
    case gdk.Event.ScrollDirection.DOWN:
        return ScrollDirection.DOWN;
    case gdk.Event.ScrollDirection.LEFT:
        return ScrollDirection.LEFT;
    case gdk.Event.ScrollDirection.RIGHT:
        return ScrollDirection.RIGHT;
    default:
        assert(false);
    }
}