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

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

?? qlistbox.cpp

?? qtopia-phone-2.2.0下公共的控件實現源代碼。
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
    if ( index < 0 || index > d->count -1 )	return 0;    QListBoxItem * i = d->head;    if ( d->cache && index > 0 ) {	i = d->cache;	int idx = d->cacheIndex;	while ( i && idx < index ) {	    idx++;	    i = i->n;	}	while ( i && idx > index ) {	    idx--;	    i = i->p;	}    } else {	int idx = index;	while ( i && idx > 0 ) {	    idx--;	    i = i->n;	}    }    d->cache = i;    d->cacheIndex = index;    return i;}/*!  Returns the index of \a lbi, or -1 if the item is not in this  list box or \a lbi is a NULL-Pointer.\sa item()*/int QListBox::index( const QListBoxItem * lbi ) const{    if ( !lbi )	return -1;    int c = 0;    QListBoxItem * i = d->head;    while ( i && i != lbi ) {	c++;	i = i->n;    }    return i ? c : -1;}/*!  Returns TRUE if the item at position \a index is at least partly  visible.*/bool QListBox::itemVisible( int index ){    QListBoxItem * i = item( index );    return i ? itemVisible( i ) : FALSE;}/*!  Returns TRUE if \a item is at least partly visible, or else FALSE.*/bool QListBox::itemVisible( const QListBoxItem * item ){    int i = index( item );    int col = i / numRows();    int row = i % numRows();    return ( d->columnPos[col] < contentsX()+visibleWidth() &&	     d->rowPos[row] < contentsY()+visibleHeight() &&	     d->columnPos[col+1] > contentsX() &&	     d->rowPos[row+1] > contentsY() );}/*! \reimp */void QListBox::viewportMousePressEvent( QMouseEvent *e ){    // ### this (and the others) assume that the coordinates of this    // and viewport() are the same.    mousePressEvent( e );}/*! \reimp */void QListBox::mousePressEvent( QMouseEvent *e ){    QListBoxItem * i = itemAt( e->pos() );#ifdef QT_KEYPAD_MODE    if( qt_modalEditingEnabled ) {	if ( e->button() == LeftButton && !isModalEditing() )	    setModalEditing( TRUE );    }#endif    if ( !i && !d->current && d->head ) {	d->current = d->head;	updateItem( d->head );    }    if ( !i && ( d->selectionMode != Single || e->button() == RightButton )	 && !( e->state() & ControlButton ) )	clearSelection();    d->select = d->selectionMode == Multi ? ( i ? !i->selected() : FALSE ) : TRUE;    d->pressedSelected = i && i->s;    if ( i )	d->selectAnchor = i;    if ( i ) {	switch( selectionMode() ) {	default:	case Single:	    if ( !i->s || i != d->current ) {		if ( i->isSelectable() )		    setSelected( i, TRUE );		else		    setCurrentItem( i );	    }	    break;	case Extended:	    if ( i ) {		if ( !(e->state() & QMouseEvent::ShiftButton) &&		     !(e->state() & QMouseEvent::ControlButton) ) {		    if ( !i->selected() ) {			bool b = signalsBlocked();			blockSignals( TRUE );			clearSelection();			blockSignals( b );		    }		    setSelected( i, TRUE );		} else if ( e->state() & ControlButton ) {		    setSelected( i, !i->selected() );		    d->pressedSelected = FALSE;		} else if ( e->state() & ShiftButton ) {		    d->pressedSelected = FALSE;		    QListBoxItem *oldCurrent = item( currentItem() );		    bool down = index( oldCurrent ) < index( i );		    QListBoxItem *lit = down ? oldCurrent : i;		    bool select = d->select;		    bool blocked = signalsBlocked();		    blockSignals( TRUE );		    for ( ;; lit = lit->n ) {			if ( !lit ) {			    triggerUpdate( FALSE );			    break;			}			if ( down && lit == i ) {			    setSelected( i, select );			    triggerUpdate( FALSE );			    break;			}			if ( !down && lit == oldCurrent ) {			    setSelected( oldCurrent, select );			    triggerUpdate( FALSE );			    break;			}			setSelected( lit, select );		    }		    blockSignals( blocked );		    emit selectionChanged();		}		setCurrentItem( i );	    }	    break;	case Multi:	    if ( i ) {		//d->current = i;		setSelected( i, !i->s );		setCurrentItem( i );	    }	    break;	case NoSelection:	    setCurrentItem( i );	    break;	}    } else {	bool unselect = TRUE;	if ( e->button() == LeftButton ) {	    if ( d->selectionMode == Multi ||		 d->selectionMode == Extended ) {		d->tmpCurrent = d->current;		d->current = 0;		updateItem( d->tmpCurrent );		if ( d->rubber )		    delete d->rubber;		d->rubber = 0;		d->rubber = new QRect( e->x(), e->y(), 0, 0 );		if ( d->selectionMode == Extended && !( e->state() & ControlButton ) )		    selectAll( FALSE );		unselect = FALSE;	    }	    if ( unselect && ( e->button() == RightButton || isMultiSelection() ) )		clearSelection();	}    }    // for sanity, in case people are event-filtering or whatnot    delete d->scrollTimer;    d->scrollTimer = 0;    if ( i ) {	d->mousePressColumn = d->currentColumn;	d->mousePressRow = d->currentRow;    } else {	d->mousePressColumn = -1;	d->mousePressRow = -1;    }    d->ignoreMoves = FALSE;    d->pressedItem = i;    emit pressed( i );    emit pressed( i, e->globalPos() );    emit mouseButtonPressed( e->button(), i, e->globalPos() );    if ( e->button() == RightButton )	emit rightButtonPressed( i, e->globalPos() );}/*! \reimp */void QListBox::viewportMouseReleaseEvent( QMouseEvent *e ){    mouseReleaseEvent( e );}/*! \reimp */void QListBox::mouseReleaseEvent( QMouseEvent *e ){    if ( d->rubber ) {	drawRubber();	delete d->rubber;	d->rubber = 0;	d->current = d->tmpCurrent;	updateItem( d->current );    }    if ( d->scrollTimer )	mouseMoveEvent( e );    delete d->scrollTimer;    d->scrollTimer = 0;    d->ignoreMoves = FALSE;    if ( d->selectionMode == Extended &&	 d->current == d->pressedItem &&	 d->pressedSelected && d->current ) {	bool block = signalsBlocked();	blockSignals( TRUE );	clearSelection();	blockSignals( block );	d->current->s = TRUE;	emit selectionChanged();    }    QListBoxItem * i = itemAt( e->pos() );    bool emitClicked = d->mousePressColumn != -1 && d->mousePressRow != -1 || !d->pressedItem;    emitClicked = emitClicked && d->pressedItem == i;    d->pressedItem = 0;    d->mousePressRow = -1;    d->mousePressColumn = -1;    if ( emitClicked ) {	emit clicked( i );	emit clicked( i, e->globalPos() );	emit mouseButtonClicked( e->button(), i, e->globalPos() );	if ( e->button() == RightButton )	    emit rightButtonClicked( i, e->globalPos() );    }}/*! \reimp */void QListBox::viewportMouseDoubleClickEvent( QMouseEvent * e ){    mouseDoubleClickEvent( e );}/*! \reimp */void QListBox::mouseDoubleClickEvent( QMouseEvent *e ){    bool ok = TRUE;    QListBoxItem *i = itemAt( e->pos() );    if ( !i || selectionMode() == NoSelection )	ok = FALSE;    d->ignoreMoves = TRUE;    if ( d->current && ok ) {	QListBoxItem * i = d->current;	QString tmp = d->current->text();	emit selected( currentItem() );	emit selected( i );	if ( !tmp.isNull() )	    emit selected( tmp );	emit doubleClicked( i );    }}/*! \reimp */void QListBox::viewportMouseMoveEvent( QMouseEvent *e ){    mouseMoveEvent( e );}/*! \reimp */void QListBox::mouseMoveEvent( QMouseEvent *e ){    QListBoxItem * i = itemAt( e->pos() );    if ( i != d->highlighted ) {	if ( i ) {	    emit onItem( i );	} else {	    emit onViewport();	}	d->highlighted = i;    }    if ( d->rubber ) {	QRect r = d->rubber->normalize();	drawRubber();	d->rubber->setCoords( d->rubber->x(), d->rubber->y(), e->x(), e->y() );	doRubberSelection( r, d->rubber->normalize() );	drawRubber();	return;    }    if ( ( (e->state() & ( RightButton | LeftButton | MidButton ) ) == 0 ) ||	 d->ignoreMoves )	return;    // hack to keep the combo (and what else?) working: if we get a    // move outside the listbox without having seen a press, discard    // it.    if ( !QRect( 0, 0, visibleWidth(), visibleHeight() ).contains( e->pos() ) &&	 ( d->mousePressColumn < 0 && d->mousePressRow < 0 ||	   e->state() == NoButton || !d->pressedItem ) )	return;    // figure out in what direction to drag-select and perhaps scroll    int dx = 0;    int x = e->x();    if ( x >= visibleWidth() ) {	x = visibleWidth()-1;	dx = 1;    } else if ( x < 0 ) {	x = 0;	dx = -1;    }    d->mouseMoveColumn = columnAt( x + contentsX() );    // sanitize mousePressColumn, if we got here without a mouse press event    if ( d->mousePressColumn < 0 && d->mouseMoveColumn >= 0 )	d->mousePressColumn = d->mouseMoveColumn;    if ( d->mousePressColumn < 0 && d->currentColumn >= 0 )	d->mousePressColumn = d->currentColumn;    // if it's beyond the last column, use the last one    if ( d->mouseMoveColumn < 0 )	d->mouseMoveColumn = dx >= 0 ? numColumns()-1 : 0;    // repeat for y    int dy = 0;    int y = e->y();    if ( y >= visibleHeight() ) {	y = visibleHeight()-1;	dy = 1;    } else if ( y < 0 ) {	y = 0;	dy = -1;    }    d->mouseMoveRow = rowAt( y + contentsY() );    if ( d->mousePressRow < 0 && d->mouseMoveRow >= 0 )	d->mousePressRow = d->mouseMoveRow;    if ( d->mousePressRow < 0 && d->currentRow >= 0 )	d->mousePressRow = d->currentRow;    if ( d->mousePressRow < 0 )	d->mousePressRow = rowAt( x + contentsX() );    d->scrollPos = QPoint( dx, dy );    if ( ( dx || dy ) && !d->scrollTimer ) {	// start autoscrolling if necessary	d->scrollTimer = new QTimer( this );	connect( d->scrollTimer, SIGNAL(timeout()),		 this, SLOT(doAutoScroll()) );	d->scrollTimer->start( 100, FALSE );	doAutoScroll();    } else if ( !d->scrollTimer ) {	// or just select the required bits	updateSelection();    }}void QListBox::updateSelection(){    if ( d->mouseMoveColumn >= 0 && d->mouseMoveRow >= 0 &&	 d->mousePressColumn >= 0 && d->mousePressRow >= 0 ) {	QListBoxItem * i = item( d->mouseMoveColumn * numRows() +				 d->mouseMoveRow );	if ( selectionMode() == Single || selectionMode() == NoSelection ) {	    if ( i )		setCurrentItem( i );	} else {	    if ( d->selectionMode == Extended &&		 d->current == d->pressedItem && d->pressedSelected ) {		d->pressedItem = 0;		bool block = signalsBlocked();		blockSignals( TRUE );		clearSelection();		i->s = TRUE;		blockSignals( block );		emit selectionChanged();		triggerUpdate( FALSE );	    } else {		int c = QMIN( d->mouseMoveColumn, d->mousePressColumn );		int r = QMIN( d->mouseMoveRow, d->mousePressRow );		int c2 = QMAX( d->mouseMoveColumn, d->mousePressColumn );		int r2 = QMAX( d->mouseMoveRow, d->mousePressRow );		bool changed = FALSE;		while( c <= c2 ) {		    QListBoxItem * i = item( c*numRows()+r );		    int rtmp = r;		    while( i && rtmp <= r2 ) {			if ( (bool)i->s != d->select && i->isSelectable() ) {			    i->s = d->select;			    i->dirty = TRUE;			    changed = TRUE;			}			i = i->n;			rtmp++;		    }		    c++;		}		if ( changed ) {		    emit selectionChanged();		    triggerUpdate( FALSE );		}	    }	    if ( i )		setCurrentItem( i );	}    }}/*!\reimp*/void QListBox::keyPressEvent( QKeyEvent *e ){    if ( count() == 0 ) {	e->ignore();	return;    }#ifdef QT_KEYPAD_MODE    switch( e->key() ) {	case Key_Select:	    if( qt_modalEditingEnabled ) {		if ( !isModalEditing() ) {		    setModalEditing( TRUE );		    if ( !d->current && d->head )			setCurrentItem(0);		    return;		} 	    }	    break;	case Key_Back:	case Key_No:	    if ( qt_modalEditingEnabled && isModalEditing() )		setModalEditing( FALSE );	    else		e->ignore();	    return;	default:	    if( qt_modalEditingEnabled ) {		if ( !isModalEditing() ) {		    e->ignore();		    return;		}	    }    }#endif    QListBoxItem *old = d->current;    if ( !old ) {	setCurrentItem( d->head );	if ( d->selectionMode == Single )	    setSelected( d->head, TRUE );	e->ignore();	return;    }    bool selectCurrent = FALSE;    switch ( e->key() ) {    case Key_Up:	d->currInputString = QString::null;	if ( currentItem() > 0 ) {	    setCurrentItem( currentItem() - 1 );	    handleItemChange( old, e->state() & ShiftButton, e->state() & ControlButton );	}#ifdef QT_KEYPAD_MODE	else {	    setCurrentItem( count() - 1 );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色屁屁一区二区| 国产亚洲综合色| 国产精品久久久久久久久久久免费看| 亚洲欧洲无码一区二区三区| 天天综合色天天综合| av电影在线观看不卡| 精品久久99ma| 首页国产丝袜综合| 97国产一区二区| 国产婷婷色一区二区三区在线| 日日摸夜夜添夜夜添精品视频| 成人av免费在线观看| 久久新电视剧免费观看| 亚洲一本大道在线| 色综合天天做天天爱| 中文字幕欧美激情| 国产一区二区三区av电影| 欧美一区二区成人6969| 亚洲午夜精品在线| 在线观看国产91| 亚洲欧美日韩国产一区二区三区| 国产精品伊人色| www国产成人免费观看视频 深夜成人网| 亚洲一区影音先锋| 色综合天天综合| 亚洲视频在线一区| 99久久国产免费看| 亚洲女爱视频在线| 欧美在线三级电影| 亚洲成人免费观看| 88在线观看91蜜桃国自产| 亚洲成人一区二区在线观看| 欧美日韩在线综合| 日韩黄色免费电影| 欧美成人一区二区三区| 狠狠色狠狠色综合系列| 久久九九久久九九| 成人av影院在线| 亚洲精品视频在线| 欧美三片在线视频观看| 日韩影院免费视频| 精品日韩欧美在线| 成人免费电影视频| 亚洲免费资源在线播放| 欧美性猛交xxxx乱大交退制版 | 久久国产日韩欧美精品| 日韩免费成人网| 国产在线视视频有精品| 国产欧美日韩在线| www.欧美.com| 亚洲成人福利片| 欧美mv日韩mv国产网站| 成人动漫在线一区| 亚洲午夜精品网| 精品福利av导航| 97久久超碰国产精品电影| 亚洲图片一区二区| 精品少妇一区二区三区视频免付费 | 国产精品精品国产色婷婷| 91麻豆产精品久久久久久| 午夜国产精品一区| 国产亚洲欧美一级| 欧美伊人久久大香线蕉综合69| 免费xxxx性欧美18vr| 国产精品伦一区| 欧美一区二区三区免费视频| 国产综合色在线视频区| 亚洲精品v日韩精品| 日韩欧美在线网站| 99视频一区二区三区| 日本中文字幕一区| 国产精品夫妻自拍| 日韩欧美激情一区| 一本到一区二区三区| 精品亚洲免费视频| 亚洲一二三区视频在线观看| 日本一区二区视频在线| 欧美精品vⅰdeose4hd| 成人免费毛片app| 日本va欧美va欧美va精品| 成人免费在线观看入口| 精品剧情在线观看| 欧美日韩一区二区电影| av不卡一区二区三区| 国产麻豆精品在线| 日韩国产欧美在线播放| 亚洲精品视频自拍| 国产精品白丝在线| 精品国产区一区| 91麻豆精品国产91久久久| 一本到高清视频免费精品| 国产精品一区二区不卡| 看电视剧不卡顿的网站| 亚洲h在线观看| 一区二区三区在线观看动漫 | a在线欧美一区| 国产乱人伦精品一区二区在线观看| 丝袜国产日韩另类美女| 亚洲精品国产一区二区精华液| 国产欧美1区2区3区| 久久伊人蜜桃av一区二区| 日韩欧美专区在线| 91精品国产综合久久精品性色| 欧美v国产在线一区二区三区| 欧美精品粉嫩高潮一区二区| 在线视频国产一区| 一本久久a久久精品亚洲| thepron国产精品| 成人成人成人在线视频| 北岛玲一区二区三区四区| 国产激情一区二区三区| 国产精品99久久久久久久女警 | 91国偷自产一区二区三区成为亚洲经典 | 亚洲视频图片小说| 国产精品女主播在线观看| 国产精品欧美综合在线| 中文字幕色av一区二区三区| 亚洲人成网站精品片在线观看| 成人欧美一区二区三区小说| 亚洲日本青草视频在线怡红院| 亚洲色大成网站www久久九九| 亚洲乱码国产乱码精品精98午夜 | 国产欧美一区二区在线| 亚洲国产精品精华液ab| 亚洲欧洲精品天堂一级| 一区二区三区在线高清| 午夜欧美在线一二页| 日本午夜一区二区| 国产露脸91国语对白| aaa亚洲精品一二三区| 在线观看日韩毛片| 日韩一区二区三区电影在线观看| 精品久久人人做人人爱| 国产偷v国产偷v亚洲高清| 中文字幕一区在线观看| 亚洲国产日韩a在线播放性色| 日本亚洲电影天堂| 国产精品伊人色| 欧洲精品一区二区| 日韩精品在线一区| 国产精品电影一区二区| 亚洲成a天堂v人片| 国产一区999| 在线观看视频91| 久久综合久久久久88| 亚洲精品日日夜夜| 久久99国产精品久久| 91色乱码一区二区三区| 日韩精品一区在线观看| 国产精品欧美久久久久一区二区 | 国产精品18久久久久久久久| 色婷婷综合久久久久中文一区二区 | 国产精品一区二区三区99| 91极品美女在线| 26uuu色噜噜精品一区二区| 亚洲区小说区图片区qvod| 麻豆精品在线播放| 91在线观看一区二区| 精品久久99ma| 亚洲va天堂va国产va久| 成人性生交大片免费看中文网站| 欧美色爱综合网| 国产精品成人网| 国产一区欧美一区| 欧美日韩国产精品成人| 国产精品乱人伦| 久久精品国产久精国产| 色婷婷久久综合| 国产婷婷精品av在线| 蜜桃视频一区二区三区| 在线观看不卡一区| 中文字幕一区二区在线播放 | 欧美自拍偷拍午夜视频| 国产午夜精品一区二区| 久久99在线观看| 91精品婷婷国产综合久久| 一区二区国产视频| gogo大胆日本视频一区| 久久久久久亚洲综合影院红桃| 婷婷亚洲久悠悠色悠在线播放| 91丨porny丨最新| 国产精品美女一区二区三区| 国产麻豆精品一区二区| 日韩久久久精品| 麻豆成人av在线| 欧美一区午夜精品| 午夜精品爽啪视频| 精品视频在线看| 亚洲国产日韩av| 欧美视频精品在线| 一级做a爱片久久| 91国偷自产一区二区开放时间 | 国产乱人伦偷精品视频免下载| 91精品国产91热久久久做人人| 亚洲一二三区不卡| 欧美性色欧美a在线播放| 亚洲va中文字幕| 91精品国产色综合久久不卡电影 | xfplay精品久久| 国精品**一区二区三区在线蜜桃|