diff options
Diffstat (limited to 'src/styles/qwindowsstyle.cpp')
| -rw-r--r-- | src/styles/qwindowsstyle.cpp | 91 | 
1 files changed, 61 insertions, 30 deletions
| diff --git a/src/styles/qwindowsstyle.cpp b/src/styles/qwindowsstyle.cpp index dae52362f..b96a04b85 100644 --- a/src/styles/qwindowsstyle.cpp +++ b/src/styles/qwindowsstyle.cpp @@ -225,6 +225,9 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,  				   SFlags flags,  				   const TQStyleOption& opt ) const  { +    bool dis = !(flags & Style_Enabled); +    bool act = flags & Style_Active; +      TQRect rr( r );      switch (pe) {      case PE_ButtonCommand: @@ -568,6 +571,60 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,  	}  	break; +    case PE_MenuItemIndicatorFrame: +	{ +	    int x, y, w, h; +	    r.rect( &x, &y, &w, &h ); + +	    TQRect vrect = visualRect( TQRect( x, y, w, h ), r ); +	    int xvis = vrect.x(); + +	    if ( act && !dis ) { +		qDrawShadePanel( p, xvis, y, w, h, cg, TRUE, 1, &cg.brush( TQColorGroup::Button ) ); +	    } +	    else { +		TQBrush fill( cg.light(), Dense4Pattern ); +		// set the brush origin for the hash pattern to the x/y coordinate +		// of the menu item's checkmark... this way, the check marks have +		// a consistent look +		TQPoint origin = p->brushOrigin(); +		p->setBrushOrigin( xvis, y ); +		qDrawShadePanel( p, xvis, y, w, h, cg, TRUE, 1, &fill ); +		// restore the previous brush origin +		p->setBrushOrigin( origin ); +	    } +	} +	break; + +    case PE_MenuItemIndicatorIconFrame: +	{ +	    int x, y, w, h; +	    r.rect( &x, &y, &w, &h ); + +	    TQRect vrect = visualRect( TQRect( x, y, w, h ), r ); +	    int xvis = vrect.x(); + +	    qDrawShadePanel( p, xvis, y, w, h, cg, FALSE, 1, &cg.brush( TQColorGroup::Button ) ); +	} +	break; + +    case PE_MenuItemIndicatorCheck: +	{ +	    int x, y, w, h; +	    r.rect( &x, &y, &w, &h ); + +	    int xp = x + windowsItemFrame; + +	    SFlags cflags = Style_Default; +	    if (! dis) +		cflags |= Style_Enabled; +	    if (act) +		cflags |= Style_On; + +	    drawPrimitive(PE_CheckMark, p, ceData, elementFlags, visualRect( TQRect(xp, y + windowsItemFrame, w - 2*windowsItemFrame, h - 2*windowsItemFrame), r ), cg, cflags); +	} +	break; +      default:  	if (pe >= PE_ArrowUp && pe <= PE_ArrowLeft) {  	    TQPointArray a; @@ -809,21 +866,7 @@ void TQWindowsStyle::drawControl( ControlElement element,  	    TQRect vrect = visualRect( TQRect( xpos, y, checkcol, h ), r );  	    int xvis = vrect.x();  	    if ( mi->isChecked() ) { -		if ( act && !dis ) -		    qDrawShadePanel( p, xvis, y, checkcol, h, -				     cg, TRUE, 1, &cg.brush( TQColorGroup::Button ) ); -		else { -		    TQBrush fill( cg.light(), Dense4Pattern ); -		    // set the brush origin for the hash pattern to the x/y coordinate -		    // of the menu item's checkmark... this way, the check marks have -		    // a consistent look -		    TQPoint origin = p->brushOrigin(); -		    p->setBrushOrigin( xvis, y ); -		    qDrawShadePanel( p, xvis, y, checkcol, h, cg, TRUE, 1, -				     &fill ); -		    // restore the previous brush origin -		    p->setBrushOrigin( origin ); -		} +		drawPrimitive(PE_MenuItemIndicatorFrame, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, flags);  	    } else if (! act)  		p->fillRect(xvis, y, checkcol , h, cg.brush( TQColorGroup::Button )); @@ -839,8 +882,7 @@ void TQWindowsStyle::drawControl( ControlElement element,  		int pixw = pixmap.width();  		int pixh = pixmap.height();  		if ( act && !dis && !mi->isChecked() ) -		    qDrawShadePanel( p, xvis, y, checkcol, h, cg, FALSE, 1, -				     &cg.brush( TQColorGroup::Button ) ); +		    drawPrimitive(PE_MenuItemIndicatorIconFrame, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, flags);  		TQRect pmr( 0, 0, pixw, pixh );  		pmr.moveCenter( vrect.center() );  		p->setPen( cg.text() ); @@ -851,20 +893,9 @@ void TQWindowsStyle::drawControl( ControlElement element,  			cg.brush( TQColorGroup::Button ));  		int xp = xpos + checkcol + 1;  		p->fillRect( visualRect( TQRect( xp, y, w - checkcol - 1, h ), r ), fill); -	    } else  if ( checkable ) {  // just "checking"... +	    } else if ( checkable ) {  // just "checking"...  		if ( mi->isChecked() ) { -		    int xp = xpos + windowsItemFrame; - -		    SFlags cflags = Style_Default; -		    if (! dis) -			cflags |= Style_Enabled; -		    if (act) -			cflags |= Style_On; - -		    drawPrimitive(PE_CheckMark, p, ceData, elementFlags, -				  visualRect( TQRect(xp, y + windowsItemFrame, -					checkcol - 2*windowsItemFrame, -					h - 2*windowsItemFrame), r ), cg, cflags); +		    drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, flags);  		}  	    } | 
