コード例 #1
0
ファイル: perfnames.cpp プロジェクト: 0rel/sequencer64
bool
perfnames::on_scroll_event (GdkEventScroll * ev)
{
    double val = m_vadjust.get_value();
    if (CAST_EQUIVALENT(ev->direction, SEQ64_SCROLL_UP))
        val -= m_vadjust.get_step_increment();
    else if (CAST_EQUIVALENT(ev->direction, SEQ64_SCROLL_DOWN))
        val += m_vadjust.get_step_increment();

    m_vadjust.clamp_page(val, val + m_vadjust.get_page_size());
    return true;
}
コード例 #2
0
ファイル: seqdata.cpp プロジェクト: ahlstromcj/sequencer64
bool
seqdata::on_scroll_event (GdkEventScroll * ev)
{
    if (! is_no_modifier(ev))
        return false;

    if (CAST_EQUIVALENT(ev->direction, SEQ64_SCROLL_UP))
        m_seq.increment_selected(m_status, m_cc);

    if (CAST_EQUIVALENT(ev->direction, SEQ64_SCROLL_DOWN))
        m_seq.decrement_selected(m_status, m_cc);

    update_pixmap();
    queue_draw();
    return true;
}
コード例 #3
0
ファイル: perfedit.cpp プロジェクト: danielappelt/sequencer64
bool
perfedit::on_key_press_event (GdkEventKey * ev)
{
    if (CAST_EQUIVALENT(ev->type, SEQ64_KEY_PRESS))
    {
        keystroke k(ev->keyval, SEQ64_KEYSTROKE_PRESS, ev->state);
        bool startstop = perf().playback_key_event(k, true);
        if (startstop)
        {
            return true;                                    /* event handled */
        }
        else if (is_ctrl_key(ev))
        {
            if (OR_EQUIVALENT(ev->keyval, SEQ64_z, SEQ64_Z))        /* undo  */
            {
                undo();
                return true;
            }
            else if (OR_EQUIVALENT(ev->keyval, SEQ64_r, SEQ64_R))   /* redo  */
            {
                redo();
                return true;
            }
        }
    }
    (void) m_perftime->key_press_event(ev);
    return Gtk::Window::on_key_press_event(ev);
}
コード例 #4
0
ファイル: seqdata.cpp プロジェクト: ahlstromcj/sequencer64
bool
seqdata::on_button_press_event (GdkEventButton * ev)
{
    if (CAST_EQUIVALENT(ev->type, SEQ64_BUTTON_PRESS))
    {
        m_drop_x = int(ev->x) + m_scroll_offset_x;  /* set values for line  */
        m_drop_y = int(ev->y);

#ifdef USE_STAZED_SEQDATA_EXTENSIONS

        /*
         * If the user selects the "handle"...
         */

        midipulse tick_s, tick_f;
        convert_x(m_drop_x - 3, tick_s);            /* side-effect  */
        convert_x(m_drop_x + 3, tick_f);            /* side-effect  */
        m_drag_handle = m_seq.select_event_handle
        (
            tick_s, tick_f, m_status, m_cc, c_dataarea_y - m_drop_y + 3
        );

        if (m_drag_handle)
        {
            /* if they used line draw but did not leave... */

            if (! m_seq.get_hold_undo())
                m_seq.push_undo();
        }

        /* reset box that holds dirty redraw spot */

        m_old.x = m_old.y = m_old.width = m_old.height = 0;
        m_dragging = ! m_drag_handle;
#else
        m_old.x = m_old.y = m_old.width = m_old.height = 0;
        m_dragging = true;                          /* may be dragging now  */
#endif
    }
    return true;
}