示例#1
0
文件: perfroll.cpp 项目: Stazed/seq32
void
perfroll::redraw_dirty_sequences()
{
    bool draw = false;

    int y_s = 0;
    int y_f = m_window_y / c_names_y;

    for ( int y=y_s; y<=y_f; y++ )
    {
        int seq = y + m_sequence_offset; // 4am

        bool dirty = (m_mainperf->is_dirty_perf(seq ));

        if (dirty)
        {
            draw_background_on(m_pixmap,seq );
            draw_sequence_on(m_pixmap,seq );
            draw = true;
        }
    }

    if ( draw )
        m_window->draw_drawable( m_gc, m_pixmap,
                                 0,
                                 0,
                                 0,
                                 0,
                                 m_window_x,
                                 m_window_y );
}
示例#2
0
文件: perfroll.cpp 项目: Stazed/seq32
bool
perfroll::on_expose_event(GdkEventExpose* e)
{
    int y_s = e->area.y / c_names_y;
    int y_f = (e->area.y  + e->area.height) / c_names_y;

    for ( int y=y_s; y<=y_f; y++ )
    {
        /*
        for ( int x=x_s; x<=x_f; x++ ){

            m_pixmap->draw_drawable(m_gc, m_background,
        			 0,
        			 0,
        			 x * c_perfroll_background_x,
        			 c_names_y * y,
        			 c_perfroll_background_x,
        			 c_names_y );
        }

               */

        draw_background_on(m_pixmap, y + m_sequence_offset );
        draw_sequence_on(m_pixmap, y + m_sequence_offset );
    }

    m_window->draw_drawable( m_gc, m_pixmap,
                             e->area.x,
                             e->area.y,
                             e->area.x,
                             e->area.y,
                             e->area.width,
                             e->area.height );
    return true;
}
示例#3
0
bool
perfroll::on_expose_event (GdkEventExpose * ev)
{
    int y_s = ev->area.y / m_names_y;
    int y_f = (ev->area.y + ev->area.height) / m_names_y;
    for (int y = y_s; y <= y_f; y++)
    {
        /*
         *  for ( int x = x_s; x <= x_f; x++ )
         *  {
         *      m_pixmap->draw_drawable
         *      (
         *          m_gc, m_background, 0, 0, x * m_background_x,
         *          m_names_y * y, m_background_x, m_names_y
         *      );
         *  }
         */

        draw_background_on(m_pixmap, y + m_sequence_offset);
        draw_sequence_on(m_pixmap, y + m_sequence_offset);
    }
    m_window->draw_drawable
    (
        m_gc, m_pixmap, ev->area.x, ev->area.y,
        ev->area.x, ev->area.y, ev->area.width, ev->area.height
    );
    return true;
}
示例#4
0
void
perfroll::draw_all ()
{
    draw_background_on(m_pixmap, m_drop_sequence);
    draw_sequence_on(m_pixmap, m_drop_sequence);
    draw_drawable_row(m_window, m_pixmap, m_drop_y);
}
示例#5
0
void
perfroll::split_trigger (int a_sequence, long a_tick)
{
    perf().push_trigger_undo();
    perf().get_sequence(a_sequence)->split_trigger(a_tick);
    draw_background_on(m_pixmap, a_sequence);
    draw_sequence_on(m_pixmap, a_sequence);
    draw_drawable_row(m_window, m_pixmap, m_drop_y);
}