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

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

?? qpopupmenu.cpp

?? qtopia-phone-2.2.0下公共的控件實現源代碼。
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
	while ( n-- ) {	    i = i + dy;	    if ( i == c )		i = 0;	    else if ( i < 0 )		i = c - 1;	    mi = mitems->at( i );	    if ( !mi->isSeparator()		 && ( style() != MotifStyle || mi->isEnabled() ) #ifdef QT_KEYPAD_MODE		 && mi->isEnabled()#endif		)		break;	}	if ( i != actItem )	    setActiveItem( i );    }}/*!\reimp*/void QPopupMenu::timerEvent( QTimerEvent *e ){    QFrame::timerEvent( e );}/*!\reimp*/void  QPopupMenu::styleChange( QStyle& old ){    style().polishPopupMenu( this );    updateSize();    QFrame::styleChange( old );}/*!  If a popup menu does not fit on the screen, it layouts itself in  multiple columns until it fits.  This functions returns in how many.\sa sizeHint() */int QPopupMenu::columns() const{    return ncols;}/*! This private slot handles the delayed submenu effects */void QPopupMenu::subMenuTimer() {    if ( !isVisible() || (actItem < 0 && popupActive < 0) || actItem == popupActive )	return;    if ( popupActive >= 0 ) {	hidePopups();	popupActive = -1;    }    if ( actItem < 0 )	return;    QMenuItem *mi = mitems->at(actItem);    if ( !mi || !mi->isEnabled() )	return;    QPopupMenu *popup = mi->popup();    if ( !popup || !popup->isEnabled() )	return;    //avoid circularity    if ( popup->isVisible() )	return;    if (popup->parentMenu != this ){	// reuse	if (popup->parentMenu)	    popup->parentMenu->menuDelPopup(popup);	menuInsPopup(popup);    }    emit popup->aboutToShow();    supressAboutToShow = TRUE;    QRect r( itemGeometry( actItem ) );    QPoint p( r.right() - motifArrowHMargin, r.top() + motifArrowVMargin );    p = mapToGlobal( p );    QSize ps = popup->sizeHint();    if (p.y() + ps.height() > QApplication::desktop()->height()	&& p.y() - ps.height()	+ (QCOORD)(popup->itemHeight( popup->count()-1)) >= 0)	p.setY( p.y() - ps.height()		+ (QCOORD)(popup->itemHeight( popup->count()-1)));    popupActive = actItem;    bool left = FALSE;    if ( ( parentMenu && parentMenu->isPopupMenu &&	   ((QPopupMenu*)parentMenu)->geometry().x() > geometry().x() ) ||	 p.x() + ps.width() > QApplication::desktop()->width() )	left = TRUE;    if ( left && (ps.width() > mapToGlobal( r.topLeft() ).x() ) )	left = FALSE;    if ( left )	p.setX( mapToGlobal( r.topLeft() ).x() - ps.width() );    popup->popup( p );}void QPopupMenu::allowAnimation(){    preventAnimation = FALSE;}void QPopupMenu::updateRow( int row ){    if ( badSize ){	updateSize();	update();	return;    }    if ( !isVisible() )	return;    QPainter p(this);    QMenuItemListIt it(*mitems);    QMenuItem *mi;    int r = 0;    int x = contentsRect().x();    int y = contentsRect().y();    int itemw = contentsRect().width() / ncols;    while ( (mi=it.current()) ) {	++it;	int itemh = itemHeight( r );	if ( ncols > 1 && y + itemh > contentsRect().bottom() ) {	    y = contentsRect().y();	    x +=itemw;	}	if ( r == row )	    drawItem(&p, tab, mi, r == actItem, x, y, itemw, itemh );	y += itemh;	++r;    }}/*!  Execute this popup synchronously.  Opens the popup menu so that the item number \a indexAtPoint will be  at the specified \e global position \a pos.  To translate a widget's  local coordinates into global coordinates, use QWidget::mapToGlobal().  The return code is the ID of the selected item in either the popup  menu or one of its submenus, or -1 if no item is selected (normally  because the user presses Escape).  Note that all signals are emitted as usual.  If you connect a menu  item to a slot and call the menu's exec(), you get the result both  via the signal-slot connection and in the return value of exec().  Common usage is to position the popup at the current  mouse position:  \code      exec(QCursor::pos());  \endcode  or aligned to a widget:  \code      exec(somewidget.mapToGlobal(QPoint(0,0)));  \endcode  When positioning a popup with exec() or popup(), keep in mind that  you cannot rely on the popup menu's current size(). For performance  reasons, the popup adapts its size only when actually needed. So in  many cases, the size before and after the show is  different. Instead, use sizeHint(). It calculates the proper size  depending on the menu's current contents.  \sa popup(), sizeHint()*/int QPopupMenu::exec( const QPoint & pos, int indexAtPoint ){    if ( !qApp )	return -1;    QPopupMenu* priorSyncMenu = syncMenu;    syncMenu = this;    syncMenuId = -1;    QGuardedPtr<QPopupMenu> that = this;    connectModal( that, TRUE );    popup( pos, indexAtPoint );    qApp->enter_loop();    connectModal( that, FALSE );    syncMenu = priorSyncMenu;    return syncMenuId;}/*  connect the popup and all its submenus to modalActivation() if  \a doConnect is true, otherwise disconnect. */void QPopupMenu::connectModal( QPopupMenu* receiver, bool doConnect ){    if ( !receiver )	return;    connectModalRecursionSafety = doConnect;    if ( doConnect )	connect( this, SIGNAL(activated(int)),		 receiver, SLOT(modalActivation(int)) );    else	disconnect( this, SIGNAL(activated(int)),		    receiver, SLOT(modalActivation(int)) );    QMenuItemListIt it(*mitems);    register QMenuItem *mi;    while ( (mi=it.current()) ) {	++it;	if ( mi->popup() && mi->popup() != receiver	     && (bool)(mi->popup()->connectModalRecursionSafety) != doConnect )	    mi->popup()->connectModal( receiver, doConnect ); //avoid circular    }}/*!  Execute this popup synchronously.  Similar to the above function, but the position of the  popup is not set, so you must choose an appropriate position.  The function move the popup if it is partially off-screen.  More common usage is to position the popup at the current  mouse position:  \code      exec(QCursor::pos());  \endcode  or aligned to a widget:  \code      exec(somewidget.mapToGlobal(QPoint(0,0)));  \endcode*/int QPopupMenu::exec(){    return exec(mapToGlobal(QPoint(0,0)));}/*!  Internal slot used for exec(). */void QPopupMenu::modalActivation( int id ){    syncMenuId = id;}/*!  Sets the currently active item to \a i and repaints as necessary.*/void QPopupMenu::setActiveItem( int i ){    int lastActItem = actItem;    actItem = i;    if ( lastActItem >= 0 )	updateRow( lastActItem );    if ( i >= 0 && i != lastActItem )	updateRow( i );    QMenuItem *mi = mitems->at( actItem );    if ( !mi )	return;    if ( mi->widget() && mi->widget()->isFocusEnabled() )	mi->widget()->setFocus();    else	setFocus();    if ( mi->id() != -1 )	hilitSig( mi->id() );}/*!\reimp */QSize QPopupMenu::sizeHint() const{    constPolish();    if ( badSize ) {	QPopupMenu* that = (QPopupMenu*) this;	that->updateSize();    }    return size().expandedTo( QApplication::globalStrut() );}/*!  Return the id of the item at \e pos, or -1 if there is no item  there, or if it is a separator item. */int QPopupMenu::idAt( const QPoint& pos ) const{    return idAt( itemAtPos( pos ) );}/*!\fn int QPopupMenu::idAt( int index ) const  Returns the identifier of the menu item at position \a index in the internal  list, or -1 if \a index is out of range.  \sa QMenuData::setId(), QMenuData::indexOf()*//*!\reimp */bool QPopupMenu::customWhatsThis() const{    return TRUE;}/*!\reimp */bool QPopupMenu::focusNextPrevChild( bool next ){    register QMenuItem *mi;    int dy = next? 1 : -1;    if ( dy && actItem < 0 ) {	setFirstItemActive();    } else if ( dy ) {				// highlight next/prev	register int i = actItem;	int c = mitems->count();	int n = c;	while ( n-- ) {	    i = i + dy;	    if ( i == c )		i = 0;	    else if ( i < 0 )		i = c - 1;	    mi = mitems->at( i );	    if ( !mi->isSeparator()		 && ( style() != MotifStyle || mi->isEnabled() ) )		break;	}	if ( i != actItem )	    setActiveItem( i );    }    return TRUE;}/*!\reimp */void QPopupMenu::focusInEvent( QFocusEvent * ){}/*!\reimp */void QPopupMenu::focusOutEvent( QFocusEvent * ){}class QTearOffMenuItem : public QCustomMenuItem{public:    QTearOffMenuItem()    {    }    ~QTearOffMenuItem()    {    }    void paint( QPainter* p, const QColorGroup& cg, bool /* act*/,		bool /*enabled*/, int x, int y, int w, int h )    {	p->setPen( QPen( cg.dark(), 1, DashLine ) );	p->drawLine( x+2, y+h/2-1, x+w-4, y+h/2-1 );	p->setPen( QPen( cg.light(), 1, DashLine ) );	p->drawLine( x+2, y+h/2, x+w-4, y+h/2 );    }    bool fullSpan() const    {	return TRUE;    }    QSize sizeHint()    {	return QSize( 20, 6 );    }};/*!  Inserts a tear-off handle into the menu. A tear-off handle is a  special menu item, that - when selected - creates a copy of the  menu. This "torn off" copy lives in a separate window. It contains  the same choices as the original menu, with the exception of the  tear-off handle.  You may also want to set a proper window title for the tear-off menu  with setCaption().  The handle item is assigned the identifier \a id or an automatically  generated identifier if \a id is < 0. The generated identifiers  (negative integers) are guaranteed to be unique within the entire  application.  The \a index specifies the position in the menu.  The tear-off  handle is appended at the end of the list if \a index is negative. */int QPopupMenu::insertTearOffHandle( int id, int index ){    int myid = insertItem( new QTearOffMenuItem, id, index );    connectItem( myid, this, SLOT( toggleTearOff() ) );    QMenuData::d->aInt = myid;    return myid;}/*!\internal  implements tear-off menus */void QPopupMenu::toggleTearOff(){    if ( active_popup_menu && active_popup_menu->tornOff ) {	active_popup_menu->close();    } else  if (QMenuData::d->aWidget ) {	delete (QWidget*) QMenuData::d->aWidget; // delete the old one    } else {	// create a tear off menu	QPopupMenu* p = new QPopupMenu( 0, "tear off menu" );	connect( p, SIGNAL( activated(int) ), this, SIGNAL( activated(int) ) );	p->setCaption( caption() );	p->setCheckable( isCheckable() );	p->reparent( parentWidget(), WType_TopLevel | WStyle_Tool |		     WRepaintNoErase | WDestructiveClose,		     geometry().topLeft(), FALSE );	p->mitems->setAutoDelete( FALSE );	p->tornOff = TRUE;	for ( QMenuItemListIt it( *mitems ); it.current(); ++it ) {	    if ( it.current()->id() != QMenuData::d->aInt && !it.current()->widget() )		p->mitems->append( it.current() );	}	p->show();	QMenuData::d->aWidget = p;    }}/*! \reimp */void QPopupMenu::activateItemAt( int index ){    if ( index >= 0 && index < (int) mitems->count() ) {	QMenuItem *mi = mitems->at( index );	if ( index != actItem )			// new item activated	    setActiveItem( index );	QPopupMenu *popup = mi->popup();	if ( popup ) {	    if ( popup->isVisible() ) {		// sub menu already open		int pactItem = popup->actItem;		popup->actItem = -1;		popup->hidePopups();		popup->updateRow( pactItem );	    } else {				// open sub menu		hidePopups();		actItem = index;		subMenuTimer();		popup->setFirstItemActive();	    }	} else {	    byeMenuBar();			// deactivate menu bar#ifndef QT_NO_WHATSTHIS	    bool b = QWhatsThis::inWhatsThisMode();#else	    const bool b = FALSE;#endif	    if ( !mi->isEnabled() ) {#ifndef QT_NO_WHATSTHIS		if ( b ) {		    actItem = -1;		    updateItem( mi->id() );		    byeMenuBar();		    actSig( mi->id(), b);		}#endif	    } else {		byeMenuBar();			// deactivate menu bar		if ( mi->isEnabled() ) {		    actItem = -1;		    updateItem( mi->id() );		    active_popup_menu = this;		    actSig( mi->id(), b );		    if ( mi->signal() && !b )			mi->signal()->activate();		    active_popup_menu = 0;		}	    }	}    } else {	if ( tornOff ) {	    close();	} else {	    hide();#ifndef QT_NO_MENUBAR	    if ( parentMenu && parentMenu->isMenuBar )		((QMenuBar*) parentMenu)->goodbye( TRUE );#endif	}    }}#endif // QT_NO_POPUPMENU

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美成aⅴ人在线观看 | 26uuu亚洲| 在线视频欧美精品| 福利一区在线观看| 国产乱人伦偷精品视频不卡| 久久精品国内一区二区三区| 9191久久久久久久久久久| 欧美日本一区二区| 专区另类欧美日韩| 国产一区 二区 三区一级| 777a∨成人精品桃花网| 亚洲男人天堂av| 国产超碰在线一区| 精品国产区一区| 日本亚洲视频在线| 一本大道综合伊人精品热热| 国产日韩欧美麻豆| 极品尤物av久久免费看| 91麻豆精品国产91久久久久| 亚洲综合在线视频| 91美女视频网站| 国产精品国产三级国产普通话蜜臀| 麻豆久久一区二区| 4438x成人网最大色成网站| 亚洲一区二区三区不卡国产欧美| 不卡av免费在线观看| 久久久久一区二区三区四区| 精品亚洲国产成人av制服丝袜 | 蜜臀精品一区二区三区在线观看 | 国产一区二区三区av电影| 3d动漫精品啪啪| 日韩1区2区3区| 欧美精品日韩精品| 婷婷中文字幕一区三区| 欧美三级电影网| 亚洲成人动漫在线观看| 欧美日韩五月天| 丝袜诱惑亚洲看片| 欧美一区2区视频在线观看| 亚洲成a人片在线观看中文| 在线看日韩精品电影| 午夜精品久久久久久久蜜桃app| 91精品办公室少妇高潮对白| 一区二区成人在线| 精品视频全国免费看| 亚洲国产一区二区三区| 欧美吞精做爰啪啪高潮| 五月天一区二区| 日韩一区二区三| 国内精品久久久久影院色| 久久久久久久久久看片| www.日本不卡| 亚洲免费观看高清完整| 尤物av一区二区| 亚洲成人黄色影院| 91久久精品一区二区三区| 国产欧美一区二区在线观看| 亚洲h精品动漫在线观看| 成年人网站91| 久久久久久久一区| 免费高清在线一区| 欧美日韩一级黄| 亚洲综合一二三区| 美女精品一区二区| 色综合久久中文综合久久97| 国产精品网站在线| 国内精品自线一区二区三区视频| 91色九色蝌蚪| 国产精品久久久久影院| 国产一区 二区 三区一级| 日韩欧美视频一区| 日本特黄久久久高潮| 欧美亚洲国产bt| 亚洲在线一区二区三区| 一本一道久久a久久精品综合蜜臀| 久久免费视频色| 国内精品国产成人国产三级粉色| 91精品国产一区二区三区香蕉| 亚洲第一福利视频在线| 欧美日韩国产小视频在线观看| 亚洲免费在线电影| 欧美综合天天夜夜久久| 亚洲一区二区三区不卡国产欧美| 在线观看亚洲成人| 亚洲大尺度视频在线观看| 欧美日韩精品免费| 欧美a级理论片| 精品三级在线观看| 国产精品影视天天线| 日本一区二区三区电影| 国产99精品视频| 国产精品视频麻豆| 色狠狠av一区二区三区| 亚洲成av人片一区二区梦乃| 欧美日韩电影在线播放| 裸体健美xxxx欧美裸体表演| 日韩欧美中文字幕制服| 国产精品亚洲成人| 亚洲欧洲av另类| 欧美日韩国产高清一区二区| 免费成人你懂的| 国产精品色在线观看| 欧美日韩在线观看一区二区 | 日韩电影在线免费观看| 日韩精品专区在线影院重磅| 国产成人综合网站| 伊人开心综合网| 日韩午夜在线影院| 不卡欧美aaaaa| 亚洲人吸女人奶水| 久久男人中文字幕资源站| 精品噜噜噜噜久久久久久久久试看| 欧美日韩视频在线一区二区| 在线观看一区日韩| 色94色欧美sute亚洲线路一ni| 99国产精品99久久久久久| 波多野结衣中文字幕一区二区三区| 国产麻豆视频精品| 国产精品白丝jk白祙喷水网站| 国产一区二区三区国产| 国产剧情一区在线| 成人午夜免费av| 99久久综合99久久综合网站| 99久久婷婷国产综合精品| 成人激情av网| 99re热这里只有精品免费视频| 成人av网站大全| av电影在线观看不卡| 在线国产电影不卡| 欧美日本国产一区| 欧美熟乱第一页| 欧美久久久久中文字幕| 69av一区二区三区| 精品少妇一区二区三区在线播放| 亚洲精品在线观看网站| 国产色产综合色产在线视频| 国产精品女主播av| 亚洲免费在线播放| 亚洲第四色夜色| 麻豆精品国产传媒mv男同| 国内成人精品2018免费看| 国产99精品国产| 色嗨嗨av一区二区三区| 欧美日韩高清一区二区不卡| 91精品国产综合久久久久久久| 精品国产精品一区二区夜夜嗨| 国产亚洲精品超碰| 亚洲精品视频在线看| 视频精品一区二区| 国产乱码一区二区三区| 91美女精品福利| 欧美日韩国产三级| 国产欧美日韩另类一区| 亚洲午夜一区二区| 精品写真视频在线观看| 91丝袜美腿高跟国产极品老师| 欧美日产国产精品| 国产欧美一区二区精品忘忧草| 亚洲欧美另类图片小说| 日本麻豆一区二区三区视频| 国产高清精品在线| 欧美日韩一区二区欧美激情| 久久蜜臀中文字幕| 午夜精品一区二区三区免费视频| 极品美女销魂一区二区三区| 在线视频你懂得一区| 久久久久久电影| 午夜电影一区二区三区| 不卡视频在线观看| 欧美一卡二卡在线| 亚洲人成网站在线| 国产精品资源网站| 欧美一区二区三区四区高清| 亚洲同性gay激情无套| 韩日av一区二区| 欧美色偷偷大香| 国产精品视频一二三区| 青青草成人在线观看| 色综合天天综合色综合av| 欧美精品一区二区三区久久久| 一区二区三区中文在线观看| 国产一区二区三区四| 欧美猛男男办公室激情| 中文字幕在线一区| 国产精品中文字幕欧美| 欧美一二三四区在线| 一区二区三区四区视频精品免费| 国产剧情一区二区三区| 日韩欧美不卡在线观看视频| 性做久久久久久免费观看欧美| 99久久99久久久精品齐齐| 亚洲精品一区二区精华| 日本一区中文字幕| 欧美日韩久久久| 亚洲一区电影777| 色婷婷av一区二区三区gif| 国产精品五月天| 成人黄色在线网站| 日本一区免费视频| 大陆成人av片|