void seqroll::convert_tn_box_to_rect ( long a_tick_s, long a_tick_f, int a_note_h, int a_note_l, int * a_x, int * a_y, int * a_w, int * a_h ) { int x1, y1, x2, y2; convert_tn(a_tick_s, a_note_h, &x1, &y1); /* convert box to X,Y values */ convert_tn(a_tick_f, a_note_l, &x2, &y2); xy_to_rect(x1, y1, x2, y2, a_x, a_y, a_w, a_h); *a_h += c_key_y; }
void seqdata::draw_line_on_window () { m_gc->set_foreground(black_paint()); set_line(Gdk::LINE_SOLID); draw_drawable /* replace old */ ( m_old.x, m_old.y, m_old.x, m_old.y, m_old.width + 1, m_old.height + 1 ); int x, y, w, h; xy_to_rect(m_drop_x, m_drop_y, m_current_x, m_current_y, x, y, w, h); x -= m_scroll_offset_x; m_old.x = x; m_old.y = y; m_old.width = w; m_old.height = h; draw_line ( black_paint(), m_current_x - m_scroll_offset_x, m_current_y, m_drop_x - m_scroll_offset_x, m_drop_y ); }
void EditEventValues::paintEvent(QPaintEvent *) { mPainter = new QPainter(this); mPen = new QPen(Qt::black); mBrush = new QBrush(Qt::lightGray, Qt::SolidPattern); mFont.setPointSize(6); mPainter->setPen(*mPen); mPainter->setBrush(*mBrush); mPainter->setFont(mFont); //this is perhaps the background? long tick; unsigned char d0,d1; int event_x; int event_height; bool selected; int start_tick = 0 ; int end_tick = (width() * m_zoom); mPainter->drawRect(0, 0, width() - 1, height() - 1); m_seq->reset_draw_marker(); while ( m_seq->get_next_event( m_status, m_cc, &tick, &d0, &d1, &selected ) == true ) { if ( tick >= start_tick && tick <= end_tick ) { /* turn into screen corrids */ event_x = tick / m_zoom + c_keyboard_padding_x; /* generate the value */ event_height = d1; if ( m_status == EVENT_PROGRAM_CHANGE || m_status == EVENT_CHANNEL_PRESSURE ){ event_height = d0; } /* draw vert lines */ mPen->setWidth(2); mPainter->setPen(*mPen); mPainter->drawLine(event_x + 1, height() - event_height, event_x + 1, height()); //draw numbers QString val = QString::number(d1); mPen->setColor(Qt::black); mPen->setWidth(1); mPainter->setPen(*mPen); if (val.length() >= 1) mPainter->drawText(event_x + 3, c_dataarea_y - 25, val.at(0)); if (val.length() >= 2) mPainter->drawText(event_x + 3, c_dataarea_y - 25 + 8,\ val.at(1)); if (val.length() >= 3) mPainter->drawText(event_x + 3, c_dataarea_y - 25 + 16, val.at(2)); } } //draw edit line if (mLineAdjust) { int x,y,w,h; mPen->setColor(Qt::black); mPen->setStyle(Qt::DashLine); mPainter->setPen(*mPen); xy_to_rect ( mDropX, mDropY, mCurrentX, mCurrentY, &x, &y, &w, &h ); mOld->setX(x); mOld->setY(y); mOld->setWidth(w); mOld->setHeight(h); mPainter->drawLine(mCurrentX + c_keyboard_padding_x, mCurrentY, mDropX + c_keyboard_padding_x, mDropY ); } delete mPainter; delete mBrush; delete mPen; }
void seqroll::draw_selection_on_window () { int x, y, w, h; if (m_selecting || m_moving || m_paste || m_growing) { m_gc->set_line_attributes ( 1, Gdk::LINE_SOLID, Gdk::CAP_NOT_LAST, Gdk::JOIN_MITER ); m_window->draw_drawable /* replace old */ ( m_gc, m_pixmap, m_old.x, m_old.y, m_old.x, m_old.y, m_old.width + 1, m_old.height + 1 ); } if (m_selecting) { xy_to_rect(m_drop_x, m_drop_y, m_current_x, m_current_y, &x, &y, &w, &h); x -= m_scroll_offset_x; y -= m_scroll_offset_y; m_old.x = x; m_old.y = y; m_old.width = w; m_old.height = h + c_key_y; m_gc->set_foreground(m_black); m_window->draw_rectangle(m_gc, false, x, y, w, h + c_key_y); } if (m_moving || m_paste) { int delta_x = m_current_x - m_drop_x; int delta_y = m_current_y - m_drop_y; x = m_selected.x + delta_x; y = m_selected.y + delta_y; x -= m_scroll_offset_x; y -= m_scroll_offset_y; m_gc->set_foreground(m_black); m_window->draw_rectangle ( m_gc, false, x, y, m_selected.width, m_selected.height ); m_old.x = x; m_old.y = y; m_old.width = m_selected.width; m_old.height = m_selected.height; } if (m_growing) { int delta_x = m_current_x - m_drop_x; int width = delta_x + m_selected.width; if (width < 1) width = 1; x = m_selected.x; y = m_selected.y; x -= m_scroll_offset_x; y -= m_scroll_offset_y; m_gc->set_foreground(m_black); m_window->draw_rectangle(m_gc, false, x, y, width, m_selected.height); m_old.x = x; m_old.y = y; m_old.width = width; m_old.height = m_selected.height; } }