Exemplo n.º 1
0
void wxQtDCImpl::ApplyRasterColourOp()
{
    // Save colours
    m_qtPenColor = m_qtPainter->pen().color();
    m_qtBrushColor = m_qtPainter->brush().color();

    // Apply op
    switch ( m_rasterColourOp )
    {
        case wxQtWHITE:
            SetPenColour( m_qtPainter, QColor( Qt::white ) );
            SetBrushColour( m_qtPainter, QColor( Qt::white ) );
            break;
        case wxQtBLACK:
            SetPenColour( m_qtPainter, QColor( Qt::black ) );
            SetBrushColour( m_qtPainter, QColor( Qt::black ) );
            break;
        case wxQtINVERT:
            SetPenColour( m_qtPainter, QColor( ~m_qtPenColor.rgb() ) );
            SetBrushColour( m_qtPainter, QColor( ~m_qtBrushColor.rgb() ) );
            break;
        case wxQtNONE:
            // No op
            break;
    }
}
Exemplo n.º 2
0
void TLView::Draw( wxDC& dc )
{
	long yoffset;
	dc.SetBrush( *wxGREY_BRUSH );
	SetBrushColour( dc, wxColour( 166, 166, 166 ) );
	dc.SetPen( wxPen( wxColour( 100, 100, 100), 1, wxSOLID ) );
	yoffset = TOP_OFFSET_TRACKS;
	for ( TLTrackList::Node *node = m_TlData->GetFirst(); node; node = node->GetNext() ) {
		TLTrack *track = node->GetData();
		if (track->GetSelected()) {
			SetBrushColour( dc, wxColour( 199, 199, 188 ) );
		}
		dc.DrawRectangle( VIEW_LEFT_BORDER,
		                  yoffset - m_YscrollPosition,
		                  m_width - VIEW_LEFT_BORDER - VIEW_RIGHT_BORDER,
		                  track->GetHeight() );
		yoffset += track->GetHeight() + m_TrackDrawDist;
		if (track->GetSelected()) {
			SetBrushColour( dc, wxColour( 166, 166, 166 ) );
		}
	}
	yoffset = TOP_OFFSET_TRACKS;
	for ( TLTrackList::Node *node = m_TlData->GetFirst(); node; node = node->GetNext() ) {
		TLTrack *current = node->GetData();
		yoffset = DrawTrack( dc, yoffset, current );
	}
}
Exemplo n.º 3
0
void wxQtDCImpl::SetLogicalFunction(wxRasterOperationMode function)
{
    m_logicalFunction = function;

    wxQtRasterColourOp rasterColourOp;
    switch ( function )
    {
        case wxCLEAR:       // 0
            m_qtPainter->setCompositionMode( QPainter::CompositionMode_SourceOver );
            rasterColourOp = wxQtBLACK;
            break;
        case wxXOR:         // src XOR dst
            m_qtPainter->setCompositionMode( QPainter::RasterOp_SourceXorDestination );
            rasterColourOp = wxQtNONE;
            break;
        case wxINVERT:      // NOT dst => dst XOR WHITE
            m_qtPainter->setCompositionMode( QPainter::RasterOp_SourceXorDestination );
            rasterColourOp = wxQtWHITE;
            break;
        case wxOR_REVERSE:  // src OR (NOT dst) => (NOT (NOT src)) OR (NOT dst)
            m_qtPainter->setCompositionMode( QPainter::RasterOp_NotSourceOrNotDestination );
            rasterColourOp = wxQtINVERT;
            break;
        case wxAND_REVERSE: // src AND (NOT dst)
            m_qtPainter->setCompositionMode( QPainter::RasterOp_SourceAndNotDestination );
            rasterColourOp = wxQtNONE;
            break;
        case wxCOPY:        // src
            m_qtPainter->setCompositionMode( QPainter::CompositionMode_SourceOver );
            rasterColourOp = wxQtNONE;
            break;
        case wxAND:         // src AND dst
            m_qtPainter->setCompositionMode( QPainter::RasterOp_SourceAndDestination );
            rasterColourOp = wxQtNONE;
            break;
        case wxAND_INVERT:  // (NOT src) AND dst
            m_qtPainter->setCompositionMode( QPainter::RasterOp_NotSourceAndDestination );
            rasterColourOp = wxQtNONE;
            break;
        case wxNO_OP:       // dst
            m_qtPainter->setCompositionMode( QPainter::QPainter::CompositionMode_DestinationOver );
            rasterColourOp = wxQtNONE;
            break;
        case wxNOR:         // (NOT src) AND (NOT dst)
            m_qtPainter->setCompositionMode( QPainter::RasterOp_NotSourceAndNotDestination );
            rasterColourOp = wxQtNONE;
            break;
        case wxEQUIV:       // (NOT src) XOR dst
            m_qtPainter->setCompositionMode( QPainter::RasterOp_NotSourceXorDestination );
            rasterColourOp = wxQtNONE;
            break;
        case wxSRC_INVERT:  // (NOT src)
            m_qtPainter->setCompositionMode( QPainter::RasterOp_NotSource );
            rasterColourOp = wxQtNONE;
            break;
        case wxOR_INVERT:   // (NOT src) OR dst
            m_qtPainter->setCompositionMode( QPainter::RasterOp_SourceOrDestination );
            rasterColourOp = wxQtINVERT;
            break;
        case wxNAND:        // (NOT src) OR (NOT dst)
            m_qtPainter->setCompositionMode( QPainter::RasterOp_NotSourceOrNotDestination );
            rasterColourOp = wxQtNONE;
            break;
        case wxOR:          // src OR dst
            m_qtPainter->setCompositionMode( QPainter::RasterOp_SourceOrDestination );
            rasterColourOp = wxQtNONE;
            break;
        case wxSET:          // 1
            m_qtPainter->setCompositionMode( QPainter::CompositionMode_SourceOver );
            rasterColourOp = wxQtWHITE;
            break;
    }

    if ( rasterColourOp != m_rasterColourOp )
    {
        // Source colour mode changed
        m_rasterColourOp = rasterColourOp;

        // Restore original colours and apply new mode
        SetPenColour( m_qtPainter, m_qtPenColor );
        SetBrushColour( m_qtPainter, m_qtPenColor );

        ApplyRasterColourOp();
    }
}