⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qplatinumstyle.cpp

📁 qtopia-phone-2.2.0下公共的控件实现源代码。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	a.translate( x1, y1 );	p->drawLineSegments( a );    }}/*! \reimp */QSizeQPlatinumStyle::exclusiveIndicatorSize() const{    return QSize(15,15);}/*! \reimp */void QPlatinumStyle::drawComboButton( QPainter *p, int x, int y, int w, int h,				      const QColorGroup &g, bool /* sunken */,				      bool editable,				      bool /* enabled */,				      const QBrush *fill ){    QPen oldPen = p->pen();    p->fillRect(x+2, y+2, w-4, h-4,fill?*fill:g.brush( QColorGroup::Button ));    // the bright side    p->setPen(g.shadow());    p->drawLine(x, y, x+w-1, y);    p->drawLine(x, y, x, y+h-1);    p->setPen(g.light());    p->drawLine(x+1, y+1, x+w-2, y+1);    p->drawLine(x+1, y+1, x+1, y+h-2);	 // the dark side!    p->setPen(g.mid());    p->drawLine(x+2, y+h-2 ,x+w-2, y+h-2);    p->drawLine(x+w-2, y+2, x+w-2, y+h-2);    p->setPen(g.shadow());    p->drawLine(x+1, y+h-1,x+w-1, y+h-1);    p->drawLine(x+w-1, y, x+w-1, y+h-1);    // top left corner:    p->setPen(g.background());    p->drawPoint(x, y);    p->drawPoint(x+1, y);    p->drawPoint(x, y+1);    p->setPen(g.shadow());    p->drawPoint(x+1, y+1);    p->setPen(white);    p->drawPoint(x+3, y+3);    // bottom left corner:    p->setPen(g.background());    p->drawPoint(x, y+h-1);    p->drawPoint(x+1, y+h-1);    p->drawPoint(x, y+h-2);    p->setPen(g.shadow());    p->drawPoint(x+1, y+h-2);    // top right corner:    p->setPen(g.background());    p->drawPoint(x+w-1, y);    p->drawPoint(x+w-2, y);    p->drawPoint(x+w-1, y+1);    p->setPen(g.shadow());    p->drawPoint(x+w-2, y+1);    // bottom right corner:    p->setPen(g.background());    p->drawPoint(x+w-1, y+h-1);    p->drawPoint(x+w-2, y+h-1);    p->drawPoint(x+w-1, y+h-2);    p->setPen(g.shadow());    p->drawPoint(x+w-2, y+h-2);    p->setPen(g.dark());    p->drawPoint(x+w-3, y+h-3);//     p->setPen(g.mid());//     p->drawPoint(x+w-4, y+h-4);//     drawButton(p, w-2-16,2,16,h-4, g, sunken );    // now the arrow button    {	int xx = x+w-20;	int yy = y;	int ww = 20;	int hh = h;	// the bright side	 p->setPen(g.mid());	 p->drawLine(xx, yy+2, xx, yy+hh-3);	p->setPen(g.button());	p->drawLine(xx+1, yy+1, xx+ww-2, yy+1);	p->drawLine(xx+1, yy+1, xx+1, yy+hh-2);	p->setPen(g.light());	p->drawLine(xx+2, yy+2, xx+2, yy+hh-2);	p->drawLine(xx+2, yy+2, xx+ww-2, yy+2);	// the dark side!	p->setPen(g.mid());	p->drawLine(xx+3, yy+hh-3 ,xx+ww-3, yy+hh-3);	p->drawLine(xx+ww-3, yy+3, xx+ww-3, yy+hh-3);	p->setPen(g.dark());	p->drawLine(xx+2, yy+hh-2 ,xx+ww-2, yy+hh-2);	p->drawLine(xx+ww-2, yy+2, xx+ww-2, yy+hh-2);	p->setPen(g.shadow());	p->drawLine(xx+1, yy+hh-1,xx+ww-1, yy+hh-1);	p->drawLine(xx+ww-1, yy, xx+ww-1, yy+hh-1);	// top right corner:	p->setPen(g.background());	p->drawPoint(xx+ww-1, yy);	p->drawPoint(xx+ww-2, yy);	p->drawPoint(xx+ww-1, yy+1);	p->setPen(g.shadow());	p->drawPoint(xx+ww-2, yy+1);	// bottom right corner:	p->setPen(g.background());	p->drawPoint(xx+ww-1, yy+hh-1);	p->drawPoint(xx+ww-2, yy+hh-1);	p->drawPoint(xx+ww-1, yy+hh-2);	p->setPen(g.shadow());	p->drawPoint(xx+ww-2, yy+hh-2);	p->setPen(g.dark());	p->drawPoint(xx+ww-3, yy+hh-3);	p->setPen(g.mid());	p->drawPoint(xx+ww-4, yy+hh-4);	// and the arrows	p->setPen( g.foreground() );	QPointArray a;	a.setPoints( 7, -3,1, 3,1, -2,0, 2,0, -1,-1, 1,-1, 0,-2 );	a.translate( xx+ww/2, yy+hh/2-3 );	p->drawLineSegments( a, 0, 3 );		// draw arrow	p->drawPoint( a[6] );	a.setPoints( 7, -3,-1, 3,-1, -2,0, 2,0, -1,1, 1,1, 0,2 );	a.translate( xx+ww/2, yy+hh/2+2 );	p->drawLineSegments( a, 0, 3 );		// draw arrow	p->drawPoint( a[6] );    }    if (editable) {	QRect r = comboButtonRect(x, y, w, h);	r.setRect( r.left()-1, r.top()-1, r.width()+2, r.height()+2 );	qDrawShadePanel( p, r, g, TRUE, 2, 0 );    }    p->setPen( oldPen );}/*! \reimp */QRect QPlatinumStyle::comboButtonRect( int x, int y, int w, int h){    return QRect(x+3, y+3, w-6-16, h-6);}/*! \reimp */QRect QPlatinumStyle::comboButtonFocusRect( int x, int y, int w, int h){    return QRect(x+4, y+4, w-8-16, h-8);}/*! \reimp */int QPlatinumStyle::sliderLength() const{    return 17;}/*! \reimp */void QPlatinumStyle::drawSlider( QPainter *p,				 int x, int y, int w, int h,				 const QColorGroup &g,				 Orientation orient , bool /* tickAbove */, bool /*tickBelow*/ ){    const QColor c0 = g.shadow();    const QColor c1 = g.dark();    //    const QColor c2 = g.button();    const QColor c3 = g.light();    int x1 = x;    int x2 = x+w-1;    int y1 = y;    int y2 = y+h-1;    int mx = w/2;    int my = h/2;    if ( orient == Vertical ) {	// Background	QBrush oldBrush = p->brush();	p->setBrush( g.brush( QColorGroup::Button ) );	p->setPen( NoPen );	QPointArray a(6);	a.setPoint( 0, x1+1, y1+1 );	a.setPoint( 1, x2-my+2, y1+1 );	a.setPoint( 2, x2-1, y1+my-1 );	a.setPoint( 3, x2-1, y2-my+1 );	a.setPoint( 4, x2-my+2, y2-1 );	a.setPoint( 5, x1+1, y2-1 );	p->drawPolygon( a );	p->setBrush( oldBrush );	// shadow border	p->setPen( c0 );	p->drawLine(x1, y1+1, x1,y2-1);	p->drawLine( x2-my+2, y1, x2, y1+my-2);	p->drawLine( x2-my+2, y2, x2, y1+my+2);	p->drawLine(x2, y1+my-2, x2, y1+my+2);	p->drawLine(x1+1, y1, x2-my+2, y1);	p->drawLine(x1+1, y2, x2-my+2, y2);	// light shadow	p->setPen(c3);	p->drawLine(x1+1, y1+2, x1+1,y2-2);	p->drawLine(x1+1, y1+1, x2-my+2, y1+1);	p->drawLine( x2-my+2, y1+1, x2-1, y1+my-2);	// dark shadow	p->setPen(c1);	p->drawLine(x2-1, y1+my-2, x2-1, y1+my+2);	p->drawLine( x2-my+2, y2-1, x2-1, y1+my+2);	p->drawLine(x1+1, y2-1, x2-my+2, y2-1);	drawRiffles(p, x, y+2, w-3, h-4, g, TRUE);    }    else { // Horizontal	// Background	QBrush oldBrush = p->brush();	p->setBrush( g.brush( QColorGroup::Button ) );	p->setPen( NoPen );	QPointArray a(6);	a.setPoint( 0, x2-1, y1+1 );	a.setPoint( 1, x2-1, y2-mx+2 );	a.setPoint( 2, x2-mx+1, y2-1 );	a.setPoint( 3, x1+mx-1, y2-1 );	a.setPoint( 4, x1+1, y2-mx+2 );	a.setPoint( 5, x1+1, y1+1 );	p->drawPolygon( a );	p->setBrush( oldBrush );	// shadow border	p->setPen( c0 );	p->drawLine(x1+1,y1,x2-1,y1);	p->drawLine(x1, y2-mx+2, x1+mx-2, y2);	p->drawLine(x2, y2-mx+2, x1+mx+2, y2);	p->drawLine(x1+mx-2, y2, x1+mx+2, y2);	p->drawLine(x1, y1+1, x1, y2-mx+2);	p->drawLine(x2, y1+1, x2, y2-mx+2);	// light shadow	p->setPen(c3);	p->drawLine(x1+1, y1+1,x2-1, y1+1);	p->drawLine(x1+1, y1+1, x1+1, y2-mx+2);	// dark shadow	p->setPen(c1);	p->drawLine(x2-1, y1+1, x2-1, y2-mx+2);	p->drawLine(x1+1, y2-mx+2, x1+mx-2, y2-1);	p->drawLine(x2-1, y2-mx+2, x1+mx+2, y2-1);	p->drawLine(x1+mx-2, y2-1, x1+mx+2, y2-1);	drawRiffles(p, x+2, y, w-4, h-5, g, FALSE);    }}/*! \reimp */void QPlatinumStyle::drawSliderMask( QPainter *p,				 int x, int y, int w, int h,				 Orientation orient , bool /* tickAbove */, bool /*tickBelow*/ ){    int x1 = x;    int x2 = x+w-1;    int y1 = y;    int y2 = y+h-1;    int mx = w/2;    int my = h/2;    if ( orient == Vertical ) {	// Background	p->setBrush( color1 );	p->setPen( NoPen );	QPointArray a(6);	a.setPoint( 0, x1+1, y1+1 );	a.setPoint( 1, x2-my+2, y1+1 );	a.setPoint( 2, x2-1, y1+my-1 );	a.setPoint( 3, x2-1, y2-my+1 );	a.setPoint( 4, x2-my+2, y2-1 );	a.setPoint( 5, x1+1, y2-1 );	p->drawPolygon( a );	p->setPen( color1 );	// shadow border	p->drawLine(x1, y1+1, x1,y2-1);	p->drawLine( x2-my+2, y1, x2, y1+my-2);	p->drawLine( x2-my+2, y2, x2, y1+my+2);	p->drawLine(x2, y1+my-2, x2, y1+my+2);	p->drawLine(x1+1, y1, x2-my+2, y1);	p->drawLine(x1+1, y2, x2-my+2, y2);	// light shadow	p->drawLine(x1+1, y1+2, x1+1,y2-2);	p->drawLine(x1+1, y1+1, x2-my+2, y1+1);	p->drawLine( x2-my+2, y1+1, x2-1, y1+my-2);	// dark shadow	p->drawLine(x2-1, y1+my-2, x2-1, y1+my+2);	p->drawLine( x2-my+2, y2-1, x2-1, y1+my+2);	p->drawLine(x1+1, y2-1, x2-my+2, y2-1);    }    else { // Horizontal	// Background	p->setBrush( color1 );	p->setPen( NoPen );	QPointArray a(6);	a.setPoint( 0, x2-1, y1+1 );	a.setPoint( 1, x2-1, y2-mx+2 );	a.setPoint( 2, x2-mx+1, y2-1 );	a.setPoint( 3, x1+mx-1, y2-1 );	a.setPoint( 4, x1+1, y2-mx+2 );	a.setPoint( 5, x1+1, y1+1 );	p->drawPolygon( a );	p->setPen( color1 );	// shadow border	p->drawLine(x1+1,y1,x2-1,y1);	p->drawLine(x1, y2-mx+2, x1+mx-2, y2);	p->drawLine(x2, y2-mx+2, x1+mx+2, y2);	p->drawLine(x1+mx-2, y2, x1+mx+2, y2);	p->drawLine(x1, y1+1, x1, y2-mx+2);	p->drawLine(x2, y1+1, x2, y2-mx+2);	// light shadow	p->drawLine(x1+1, y1+1,x2-1, y1+1);	p->drawLine(x1+1, y1+1, x1+1, y2-mx+2);	// dark shadow	p->drawLine(x2-1, y1+1, x2-1, y2-mx+2);	p->drawLine(x1+1, y2-mx+2, x1+mx-2, y2-1);	p->drawLine(x2-1, y2-mx+2, x1+mx+2, y2-1);	p->drawLine(x1+mx-2, y2-1, x1+mx+2, y2-1);    }}/*! \reimp */void QPlatinumStyle::drawSliderGroove( QPainter *p,				      int x, int y, int w, int h,				      const QColorGroup& g, QCOORD c,				       Orientation orient ){    p->fillRect(x, y, w, h, g.brush( QColorGroup::Background ));    if ( orient == Horizontal ) {	y = y+c-3;	h = 7;    }    else {	x = x+c-3;	w = 7;    }    p->fillRect(x, y, w, h, g.brush( QColorGroup::Dark ));	 // the dark side    p->setPen(g.dark());    p->drawLine(x, y, x+w-1, y);    p->drawLine(x, y, x, y+h-1);    p->setPen(g.shadow());    p->drawLine(x+1, y+1, x+w-2, y+1);    p->drawLine(x+1, y+1, x+1, y+h-2);	 // the bright side!    p->setPen(g.shadow());    p->drawLine(x+1, y+h-2 ,x+w-2, y+h-2);    p->drawLine(x+w-2, y+1, x+w-2, y+h-2);    p->setPen(g.light());    p->drawLine(x, y+h-1,x+w-1, y+h-1);    p->drawLine(x+w-1, y, x+w-1, y+h-1);    // top left corner:    p->setPen(g.background());    p->drawPoint(x, y);    p->drawPoint(x+1, y);    p->drawPoint(x, y+1);    p->setPen(g.shadow());    p->drawPoint(x+1, y+1);    // bottom left corner:    p->setPen(g.background());    p->drawPoint(x, y+h-1);    p->drawPoint(x+1, y+h-1);    p->drawPoint(x, y+h-2);    p->setPen(g.light());    p->drawPoint(x+1, y+h-2);    // top right corner:    p->setPen(g.background());    p->drawPoint(x+w-1, y);    p->drawPoint(x+w-2, y);    p->drawPoint(x+w-1, y+1);    p->setPen(g.dark());    p->drawPoint(x+w-2, y+1);    // bottom right corner:    p->setPen(g.background());    p->drawPoint(x+w-1, y+h-1);    p->drawPoint(x+w-2, y+h-1);    p->drawPoint(x+w-1, y+h-2);    p->setPen(g.light());    p->drawPoint(x+w-2, y+h-2);    p->setPen(g.dark());    p->drawPoint(x+w-3, y+h-3);}/*!  Reimplementation from QWindowsStyle to disable the Windows typical jump  back when dragging controls.  \sa QStyle  */int QPlatinumStyle::maximumSliderDragDistance() const{    return -1;}/*! \reimp*/void QPlatinumStyle::polishPopupMenu( QPopupMenu* p){    QWindowsStyle::polishPopupMenu( p );}/*! \reimp*/void QPlatinumStyle::drawCheckMark( QPainter *p, int x, int y, int w, int h,				   const QColorGroup &g,				   bool act, bool dis ){    QWindowsStyle::drawCheckMark( p, x, y, w, h, g, act, dis );}/*! \reimp*/int QPlatinumStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& fm ){    return QWindowsStyle::extraPopupMenuItemWidth( checkable, maxpmw, mi, fm );}/*! \reimp*/int QPlatinumStyle::popupMenuItemHeight( bool checkable, QMenuItem* mi, const QFontMetrics& fm ){    return QWindowsStyle::popupMenuItemHeight( checkable, mi, fm );}/*! \reimp*/void QPlatinumStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi,					const QPalette& pal,					bool act, bool enabled, int x, int y, int w, int h){    QWindowsStyle::drawPopupMenuItem( p, checkable, maxpmw, tab, mi, pal, act, enabled, x, y, w, h);}/*!\reimp */void QPlatinumStyle::getButtonShift( int &x, int &y){    x = 0;    y = 0;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -