亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? playerwindow.cpp

?? Amarok是一款在LINUX或其他類UNIX操作系統中運行的音頻播放器軟件。 經過兩年開發后
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
                //if the user is on another desktop to Amarok, do nothing                const KWin::WindowInfo info = KWin::windowInfo( winId() );                if( info.isMinimized() ) KWin::iconifyWindow( parentWidget()->winId(), false );                else                    //this may seem strange, but it is correct                    //we have a handler in eventFilter for all other eventualities                    dontChangeButtonState = false;            }            else                //we caused Amarok to hide, so we should hide the Playlist Window                //NOTE we "override" closeEvents and thus they count as non-spontaneous                //hideEvents; which frankly is a huge relief!                parentWidget()->hide();        }        return false;    default:        return QWidget::event( e );    }}// bool// PlayerWidget::x11Event( XEvent *e )// {//     if( e->type == ConfigureNotify )//     {//         kdDebug() << "CirculateNotify\n";//         XRaiseWindow( x11Display(), playlistWindow()->winId() );//     }////     return false;// }boolPlayerWidget::eventFilter( QObject *o, QEvent *e ){    //NOTE we only monitor for parent() - which is the PlaylistWindow    if( o == m_pAnalyzer )    {        //delete analyzer, create same one back in Player Window        if( e->type() == QEvent::Close )        {            createAnalyzer( 0 );            return true;        }        return false;    }    switch( e->type() )    {    case QEvent::Close:        static_cast<QCloseEvent*>(e)->accept(); //close the window!        return true; //don't let PlaylistWindow have the event - see PlaylistWindow::closeEvent()    case QEvent::Hide:        if( dontChangeButtonState )        {            //we keep the PlaylistButton set to "on" - see event() for more details            //NOTE the Playlist Window will still be hidden            dontChangeButtonState = false;            break;        }        if( e->spontaneous() )        {            //we want to avoid setting the button for most spontaneous events            //since they are not user driven, two are however:            KWin::WindowInfo info = KWin::windowInfo( parentWidget()->winId() );            if( !info.isMinimized() ) break;        }        //FALL THROUGH    case QEvent::Show:        if( isShown() )        {            //only when shown means thaman:mkreiserfst using the global Show/Hide Playlist shortcut            //when in the tray doesn't effect the state of the PlaylistButton            //this is a good thing, but we have to set the state correctly when we are shown            m_pPlaylistButton->blockSignals( true );            m_pPlaylistButton->setOn( e->type() == QEvent::Show );            m_pPlaylistButton->blockSignals( false );        }        break;    default:        break;    }    return false;}void PlayerWidget::paintEvent( QPaintEvent* ){    //uses widget's font and foregroundColor() - see ctor    QPainter p( this );    if( !m_minimalView )        p.drawText( 6, 68, m_rateString );    bitBlt( m_pScrollFrame, 0, 0, &m_scrollBuffer );    bitBlt( m_pTimeLabel,   0, 0, &m_timeBuffer );}void PlayerWidget::contextMenuEvent( QMouseEvent *e ){    Amarok::Menu::instance()->exec( e->globalPos() );}void PlayerWidget::mousePressEvent( QMouseEvent *e ){    if ( e->button() == QMouseEvent::RightButton )    {        //Amarok::Menu::instance()->exec( e->globalPos() );    }    else if ( m_pAnalyzer->geometry().contains( e->pos() ) )    {        createAnalyzer( e->state() & Qt::ControlButton ? -1 : +1 );    }    else    {        QRect        rect  = m_pTimeLabel->geometry();        rect |= m_pTimeSign->geometry();        if ( rect.contains( e->pos() ) )        {            AmarokConfig::setLeftTimeDisplayRemaining( !AmarokConfig::leftTimeDisplayRemaining() );            timeDisplay( EngineController::engine()->position() );        }        else m_startDragPos = e->pos();    }}void PlayerWidget::mouseMoveEvent( QMouseEvent *e ){    if( e->state() & Qt::LeftButton )    {        const int distance = (e->pos() - m_startDragPos).manhattanLength();        if( distance > QApplication::startDragDistance() ) startDrag();    }}// SLOTS ---------------------------------------------------------------------void PlayerWidget::createAnalyzer( int increment ){    AmarokConfig::setCurrentAnalyzer( AmarokConfig::currentAnalyzer() + increment );    delete m_pAnalyzer;    m_pAnalyzer = Analyzer::Factory::createAnalyzer( this );    m_pAnalyzer->setGeometry( 120,40, 168,56 );    QToolTip::add( m_pAnalyzer, i18n( "Click for more analyzers, press 'd' to detach." ) );    m_pAnalyzer->show();}void PlayerWidget::startDrag(){    QDragObject *d = new QTextDrag( EngineController::instance()->bundle().prettyTitle(), this );    d->dragCopy();    // Qt will delete d for us.}void PlayerWidget::slotShowEqualizer( bool show ) //SLOT{    if( show )    {        m_pButtonEq->setOff();        if ( !EngineController::hasEngineProperty( "HasEqualizer" ) )            KMessageBox::sorry( 0, i18n( "Equalizer is not available with this engine." ) );        else            QTimer::singleShot( 0, kapp, SLOT( slotConfigEqualizer() ) );    }}//////////////////////////////////////////////////////////////////////////////////////////// CLASS NavButton//////////////////////////////////////////////////////////////////////////////////////////#include <kiconeffect.h>#include <kimageeffect.h>NavButton::NavButton( QWidget *parent, const QString &icon, KAction *action )    : QToolButton( parent )    , m_glowIndex( 0 ){    // Prevent flicker    setWFlags( Qt::WNoAutoErase );    QPixmap pixmap( getPNG( "b_" + icon ) );    KIconEffect ie;    // Tint icon blueish for "off" state    m_pixmapOff = ie.apply( pixmap, KIconEffect::Colorize, 0.5, QColor( 0x30, 0x10, 0xff ), false );    // Tint gray and make pseudo-transparent for "disabled" state    m_pixmapDisabled = ie.apply( pixmap, KIconEffect::ToGray, 0.7, QColor(), true );    int r = 0x20, g = 0x10, b = 0xff;    float percentRed = 0.0;    QPixmap temp;    // Precalculate pixmaps for "on" icon state    for ( int i = 0; i < NUMPIXMAPS; i++ ) {        QImage img = pixmap.convertToImage();        temp = KImageEffect::channelIntensity( img, percentRed, KImageEffect::Red );        temp = ie.apply( temp, KIconEffect::Colorize, 1.0, QColor( r, 0x10, 0x30 ), false );        temp = ie.apply( temp, KIconEffect::Colorize, 1.0, QColor( r, g, b ), false );        // Create new pixmap on the heap and add pointer to list        m_glowPixmaps.append( temp );        percentRed = percentRed + 1.0 / NUMPIXMAPS;        r += 14;        g += 2;        b -= 0;    }    // And the the same reversed    for ( int i = NUMPIXMAPS - 1; i > 0; i-- )    {        QPixmap temp =  m_glowPixmaps[i];        m_glowPixmaps.append(temp);    }    // This is just for initialization    QIconSet iconSet;    iconSet.setPixmap( pixmap, QIconSet::Automatic, QIconSet::Normal, QIconSet::Off );    iconSet.setPixmap( pixmap, QIconSet::Automatic, QIconSet::Normal, QIconSet::On );    iconSet.setPixmap( pixmap, QIconSet::Automatic, QIconSet::Disabled, QIconSet::Off );    setIconSet( iconSet );    setFocusPolicy( QWidget::NoFocus );    setEnabled( action->isEnabled() );    connect( action, SIGNAL( enabled( bool ) ),   SLOT( setEnabled( bool ) ) );    connect( this,   SIGNAL( clicked() ), action, SLOT( activate() ) );    startTimer( GLOW_INTERVAL );}void NavButton::timerEvent( QTimerEvent* ){    if ( isOn() ) {        m_glowIndex++;        m_glowIndex %= NUMPIXMAPS * 2 - 1;        // Repaint widget with new pixmap        update();    }}void NavButton::drawButtonLabel( QPainter* p ){    int x = width() / 2 - m_pixmapOff.width() / 2;    int y = height() / 2 - m_pixmapOff.height() / 2;    if ( !isEnabled() )        p->drawPixmap( x, y, m_pixmapDisabled );    else if ( isOn() )        p->drawPixmap( x + 2, y + 1, m_glowPixmaps[m_glowIndex] );    else        p->drawPixmap( x, y, m_pixmapOff );}//////////////////////////////////////////////////////////////////////////////////////////// CLASS IconButton//////////////////////////////////////////////////////////////////////////////////////////IconButton::IconButton( QWidget *parent, const QString &icon, const char *signal )    : QButton( parent )    , m_up(   getPNG( icon + "_active2" ) ) //TODO rename files better (like the right way round for one!)    , m_down( getPNG( icon + "_inactive2" ) ){    connect( this, SIGNAL(toggled( bool )), parent, signal );    setToggleButton( true );    setFocusPolicy( NoFocus ); //we have no way to show focus on these widgets currently}IconButton::IconButton( QWidget *parent, const QString &icon, QObject* receiver, const char *slot )    : QButton( parent )    , m_up(   getPNG( icon + "_active2" ) ) //TODO rename files better (like the right way round for one!)    , m_down( getPNG( icon + "_inactive2" ) ){    connect( this, SIGNAL(toggled( bool )), receiver, slot );    setToggleButton( true );    setFocusPolicy( NoFocus ); //we have no way to show focus on these widgets currently}void IconButton::drawButton( QPainter *p ){    p->drawPixmap( 0, 0, (isOn()||isDown()) ? m_down : m_up );}#include "playerwindow.moc"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利国产精品| 不卡影院免费观看| 亚洲制服丝袜一区| 亚洲欧洲美洲综合色网| 久久久99精品久久| 久久精品在线观看| 久久这里都是精品| 国产日韩一级二级三级| 国产亚洲人成网站| 中文一区在线播放| 自拍偷拍国产精品| 一区二区视频免费在线观看| 亚洲欧美日韩成人高清在线一区| 国产精品欧美一区喷水| 中文字幕亚洲不卡| 亚洲精品成a人| 亚洲国产人成综合网站| 天天操天天色综合| 久久国产人妖系列| 国产一区二区三区香蕉| 成人精品一区二区三区中文字幕| 99久久免费视频.com| 欧洲一区二区三区免费视频| 欧美日韩国产系列| 精品国产乱码91久久久久久网站| 久久久亚洲精华液精华液精华液| 久久久www成人免费毛片麻豆| 欧美激情一区二区| 亚洲午夜视频在线观看| 免费美女久久99| 成人综合婷婷国产精品久久 | 一本到高清视频免费精品| 欧美视频一区二区三区在线观看| 欧美一区国产二区| 国产日韩一级二级三级| 香蕉久久一区二区不卡无毒影院 | 国产一区二区三区四| 成人激情免费网站| 欧美精品一区二| 亚洲视频 欧洲视频| 婷婷开心久久网| 成人精品gif动图一区| 欧美日韩色一区| 久久久精品国产免费观看同学| 亚洲日本在线a| 久久精品国产久精国产爱| 91麻豆自制传媒国产之光| 日韩免费电影网站| 亚洲一级在线观看| 国产不卡视频一区| 日韩一区二区三区高清免费看看| 曰韩精品一区二区| 美腿丝袜在线亚洲一区| 色综合久久中文综合久久97| 精品福利av导航| 日韩电影在线一区二区三区| 99精品国产99久久久久久白柏| 日韩精品一区在线观看| 亚洲成人一区在线| 色综合久久88色综合天天免费| 精品久久久久久无| 午夜成人免费视频| 一道本成人在线| 国产精品不卡在线| 国产一区二三区好的| 日韩一区二区精品在线观看| 一区二区视频免费在线观看| 99在线精品一区二区三区| 久久影院电视剧免费观看| 免费日韩伦理电影| 欧美一区二区久久| 日产国产高清一区二区三区| 欧美综合亚洲图片综合区| 综合自拍亚洲综合图不卡区| 成人综合激情网| 日本一区二区成人| 粉嫩高潮美女一区二区三区| 国产视频一区在线播放| 国产精品一品二品| 26uuu久久天堂性欧美| 麻豆高清免费国产一区| 日韩欧美成人午夜| 国产一区视频网站| 国产视频一区在线观看| 成人精品视频一区| 成人免费视频在线观看| 91麻豆国产福利在线观看| √…a在线天堂一区| 色婷婷精品大在线视频| 亚洲影院免费观看| 欧美日韩国产首页在线观看| 午夜a成v人精品| 精品国内片67194| 国产宾馆实践打屁股91| 日韩毛片视频在线看| 色综合久久久久久久久| 午夜伊人狠狠久久| 日韩美女视频在线| 成人综合在线视频| 亚洲激情在线激情| 欧美一区二区在线观看| 精久久久久久久久久久| 国产精品国产a级| 91福利小视频| 另类成人小视频在线| 日本一区二区在线不卡| 欧美怡红院视频| 麻豆精品一区二区综合av| 欧美国产日本韩| 欧美日韩在线播放三区| 黄色资源网久久资源365| 国产精品成人一区二区艾草 | 91久久线看在观草草青青 | 蜜臀va亚洲va欧美va天堂| 国产亚洲精品久| 欧美亚洲综合一区| 久久精品国产亚洲aⅴ| 亚洲天天做日日做天天谢日日欢| 欧美日韩精品福利| 国产不卡视频一区二区三区| 亚洲一区免费视频| 亚洲国产精品成人综合色在线婷婷| 91小视频在线| 国产一区二区三区美女| 亚洲国产欧美在线| 中文字幕巨乱亚洲| 日韩欧美国产一区二区三区 | 视频在线观看91| 国产精品久久午夜| 日韩久久久精品| 欧美最猛黑人xxxxx猛交| 国产宾馆实践打屁股91| 蜜臀av性久久久久蜜臀av麻豆| 亚洲欧美日本韩国| 国产精品色哟哟| 26uuu色噜噜精品一区二区| 555夜色666亚洲国产免| 在线看日本不卡| 不卡电影免费在线播放一区| 国产一区在线精品| 裸体一区二区三区| 日韩高清一级片| 亚洲高清免费视频| 夜夜嗨av一区二区三区中文字幕| 亚洲国产精品二十页| 久久久久久亚洲综合| 日韩欧美精品在线| 日韩一级片网址| 51精品国自产在线| 在线播放亚洲一区| 6080yy午夜一二三区久久| 欧美日韩三级视频| 欧美视频日韩视频| 在线精品观看国产| 色狠狠桃花综合| 99精品热视频| 国产福利一区在线| 成人免费视频播放| 久久精品噜噜噜成人88aⅴ| 婷婷夜色潮精品综合在线| 久久久久久97三级| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美色图激情小说| 99免费精品视频| 成人国产精品免费观看动漫| 精品无码三级在线观看视频| 精品一区二区免费看| 日韩成人精品在线| 天天av天天翘天天综合网| 亚洲精选在线视频| 图片区小说区国产精品视频| 亚洲一区二区精品久久av| 亚洲精品欧美在线| 亚洲精品一卡二卡| 日精品一区二区| 奇米在线7777在线精品| 麻豆精品国产91久久久久久| 天堂午夜影视日韩欧美一区二区| 亚洲成人精品一区二区| 亚洲国产精品ⅴa在线观看| 欧美极品xxx| 亚洲欧洲三级电影| 一区二区三区欧美久久| 亚洲第四色夜色| 日产国产欧美视频一区精品| 精品一区二区三区久久| 91啪亚洲精品| 欧美麻豆精品久久久久久| 日韩一区二区免费电影| 中文字幕在线一区免费| 亚洲免费观看在线观看| 亚洲成av人片在线| 一区二区三区欧美日| 国产一区二区三区不卡在线观看 | 欧美日韩国产精选| 3d动漫精品啪啪1区2区免费| 久久久高清一区二区三区| 亚洲欧洲一区二区三区| 午夜婷婷国产麻豆精品| 成人av免费网站|