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 ); }
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; }
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; }
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); }
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); }