Do not use direct widget access when drawing tabs and popup menus

pull/16/head
Timothy Pearson 12 years ago
parent 2ed8f9ade7
commit fb2b144264

@ -987,17 +987,16 @@ void AsteroidStyle::drawControl(TQ_ControlElement ce,
if ( !w || !w->parentWidget() || !o.tab() ) if ( !w || !w->parentWidget() || !o.tab() )
break; break;
const TQTabBar * tb = (const TQTabBar *) w;
const TQTab * t = o.tab(); const TQTab * t = o.tab();
bool selected = sf & Style_Selected; bool selected = sf & Style_Selected;
bool lastTab = (tb->indexOf( t->identifier() ) == tb->count()-1) ? bool lastTab = (ceData.tabBarData.identIndexMap[t->identifier()] == ceData.tabBarData.tabCount-1) ?
TRUE : FALSE; TRUE : FALSE;
TQRect r2( r ); TQRect r2( r );
if ( tb->shape() == TQTabBar::RoundedAbove ) { if ( ceData.tabBarData.shape == TQTabBar::RoundedAbove ) {
p->setPen( cg.light() ); p->setPen( cg.light() );
p->drawLine( r2.left(), r2.bottom()-1, r2.right(), r2.bottom()-1 ); p->drawLine( r2.left(), r2.bottom()-1, r2.right(), r2.bottom()-1 );
if ( r2.left() == 0 ) if ( r2.left() == 0 )
p->drawPoint( tb->rect().bottomLeft() ); p->drawPoint( ceData.rect.bottomLeft() );
if ( selected ) { if ( selected ) {
p->fillRect( TQRect( r2.left()+1, r2.bottom()-1, r2.width()-3, 2), p->fillRect( TQRect( r2.left()+1, r2.bottom()-1, r2.width()-3, 2),
@ -1031,9 +1030,9 @@ void AsteroidStyle::drawControl(TQ_ControlElement ce,
x2++; x2++;
p->drawLine( x2, r2.top() + 2, x2, r2.bottom() - p->drawLine( x2, r2.top() + 2, x2, r2.bottom() -
(selected ? (lastTab ? 0:1) :2)); (selected ? (lastTab ? 0:1) :2));
} else if ( tb->shape() == TQTabBar::RoundedBelow ) { } else if ( ceData.tabBarData.shape == TQTabBar::RoundedBelow ) {
bool rightAligned = styleHint( SH_TabBar_Alignment, ceData, elementFlags, TQStyleOption::Default, 0, tb ) == TQt::AlignRight; bool rightAligned = styleHint( SH_TabBar_Alignment, ceData, elementFlags, TQStyleOption::Default, 0, w ) == TQt::AlignRight;
bool firstTab = tb->indexOf( t->identifier() ) == 0; bool firstTab = ceData.tabBarData.identIndexMap[t->identifier()] == 0;
if ( selected ) { if ( selected ) {
p->fillRect( TQRect( r2.left()+1, r2.top(), r2.width()-3, 1), p->fillRect( TQRect( r2.left()+1, r2.top(), r2.width()-3, 1),
cg.brush( TQColorGroup::Background )); cg.brush( TQColorGroup::Background ));
@ -1086,16 +1085,15 @@ void AsteroidStyle::drawControl(TQ_ControlElement ce,
if ( o.isDefault() ) if ( o.isDefault() )
break; break;
const TQTabBar * tb = (const TQTabBar *) w;
TQTab * t = o.tab(); TQTab * t = o.tab();
const bool enabled = sf & Style_Enabled; const bool enabled = sf & Style_Enabled;
bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags ); bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
TQRect tr = r; TQRect tr = r;
if ( t->identifier() == tb->currentTab() ) if ( t->identifier() == ceData.tabBarData.currentTabIndex )
tr.setBottom( tr.bottom() - tr.setBottom( tr.bottom() -
pixelMetric( TQStyle::PM_DefaultFrameWidth, ceData, elementFlags, tb ) ); pixelMetric( TQStyle::PM_DefaultFrameWidth, ceData, elementFlags, w ) );
int alignment = TQt::AlignCenter | TQt::ShowPrefix; int alignment = TQt::AlignCenter | TQt::ShowPrefix;
if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, w)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, w)) && (!acceleratorsShown()))) if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, w)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, w)) && (!acceleratorsShown())))
@ -1515,7 +1513,6 @@ void AsteroidStyle::drawControl(TQ_ControlElement ce,
return; return;
} }
const TQPopupMenu *pum = dynamic_cast<const TQPopupMenu *>(w);
static const int itemFrame = 2; static const int itemFrame = 2;
static const int itemHMargin = 3; static const int itemHMargin = 3;
static const int itemVMargin = 3; static const int itemVMargin = 3;
@ -1527,15 +1524,15 @@ void AsteroidStyle::drawControl(TQ_ControlElement ce,
bool active = sf & Style_Active; bool active = sf & Style_Active;
bool disabled = !mi->isEnabled(); bool disabled = !mi->isEnabled();
bool checkable = pum->isCheckable(); bool checkable = (elementFlags & CEF_IsCheckable);
bool enabled = mi->isEnabled(); bool enabled = mi->isEnabled();
bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags ); bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
int xpos = x; int xpos = x;
int xm = itemFrame + checkcol + itemHMargin; int xm = itemFrame + checkcol + itemHMargin;
if (pum->erasePixmap() && !pum->erasePixmap()->isNull()) { if (!ceData.bgPixmap.isNull()) {
p->drawPixmap(x, y, *pum->erasePixmap(), x, y, sw, sh); p->drawPixmap(x, y, ceData.bgPixmap, x, y, sw, sh);
} else { } else {
p->fillRect(x, y, sw, sh, cg.background()); p->fillRect(x, y, sw, sh, cg.background());
} }

@ -1289,8 +1289,6 @@ void HighColorStyle::drawControl( TQ_ControlElement element,
// POPUPMENU ITEM // POPUPMENU ITEM
// ------------------------------------------------------------------- // -------------------------------------------------------------------
case CE_PopupMenuItem: { case CE_PopupMenuItem: {
const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget;
TQMenuItem *mi = opt.menuItem(); TQMenuItem *mi = opt.menuItem();
if ( !mi ) { if ( !mi ) {
// Don't leave blank holes if we set NoBackground for the TQPopupMenu. // Don't leave blank holes if we set NoBackground for the TQPopupMenu.
@ -1303,7 +1301,7 @@ void HighColorStyle::drawControl( TQ_ControlElement element,
int tab = opt.tabWidth(); int tab = opt.tabWidth();
int checkcol = opt.maxIconWidth(); int checkcol = opt.maxIconWidth();
bool enabled = mi->isEnabled(); bool enabled = mi->isEnabled();
bool checkable = popupmenu->isCheckable(); bool checkable = (elementFlags & CEF_IsCheckable);
bool active = flags & Style_Active; bool active = flags & Style_Active;
bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags ); bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
bool reverse = TQApplication::reverseLayout(); bool reverse = TQApplication::reverseLayout();

@ -770,8 +770,7 @@ void HighContrastStyle::drawControl (TQ_ControlElement element,
setColorsNormal (p, cg, flags, Style_Selected); setColorsNormal (p, cg, flags, Style_Selected);
drawRoundRect (p, r); drawRoundRect (p, r);
const TQTabBar *tb = static_cast< const TQTabBar * >(widget); TQTabBar::Shape shape = ceData.tabBarData.shape;
TQTabBar::Shape shape = tb->shape();
if (shape == TQTabBar::TriangularBelow || if (shape == TQTabBar::TriangularBelow ||
shape == TQTabBar::RoundedBelow) { shape == TQTabBar::RoundedBelow) {
p->fillRect (r.left(), r.top(), p->fillRect (r.left(), r.top(),
@ -1001,14 +1000,13 @@ void HighContrastStyle::drawControl (TQ_ControlElement element,
setColorsNormal (p, cg, flags, Style_Active|Style_MouseOver); setColorsNormal (p, cg, flags, Style_Active|Style_MouseOver);
p->fillRect (r, p->backgroundColor ()); p->fillRect (r, p->backgroundColor ());
const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget;
TQMenuItem *mi = opt.menuItem(); TQMenuItem *mi = opt.menuItem();
if (!mi) if (!mi)
break; break;
int tab = opt.tabWidth(); int tab = opt.tabWidth();
int checkcol = opt.maxIconWidth(); int checkcol = opt.maxIconWidth();
bool checkable = popupmenu->isCheckable(); bool checkable = (elementFlags & CEF_IsCheckable);
bool reverse = TQApplication::reverseLayout(); bool reverse = TQApplication::reverseLayout();
int x, y, w, h; int x, y, w, h;
r.rect( &x, &y, &w, &h ); r.rect( &x, &y, &w, &h );

@ -1510,28 +1510,26 @@ void KeramikStyle::drawControl( TQ_ControlElement element,
case CE_TabBarTab: case CE_TabBarTab:
{ {
const TQTabBar* tabBar = static_cast< const TQTabBar* >( widget ); bool bottom = ceData.tabBarData.shape == TQTabBar::RoundedBelow ||
ceData.tabBarData.shape == TQTabBar::TriangularBelow;
bool bottom = tabBar->shape() == TQTabBar::RoundedBelow ||
tabBar->shape() == TQTabBar::TriangularBelow;
if ( flags & Style_Selected ) if ( flags & Style_Selected )
{ {
TQRect tabRect = r; TQRect tabRect = r;
//If not the right-most tab, readjust the painting to be one pixel wider //If not the right-most tab, readjust the painting to be one pixel wider
//to avoid a doubled line //to avoid a doubled line
int rightMost = TQApplication::reverseLayout() ? 0 : tabBar->count() - 1; int rightMost = TQApplication::reverseLayout() ? 0 : ceData.tabBarData.tabCount - 1;
if (tabBar->indexOf( opt.tab()->identifier() ) != rightMost) if (ceData.tabBarData.identIndexMap[opt.tab()->identifier()] != rightMost)
tabRect.setWidth( tabRect.width() + 1); tabRect.setWidth( tabRect.width() + 1);
Keramik::ActiveTabPainter( bottom ).draw( p, tabRect, cg.button().light(110), cg.background(), !tabBar->isEnabled(), pmode()); Keramik::ActiveTabPainter( bottom ).draw( p, tabRect, cg.button().light(110), cg.background(), !(elementFlags & CEF_IsEnabled), pmode());
} }
else else
{ {
Keramik::InactiveTabPainter::Mode mode; Keramik::InactiveTabPainter::Mode mode;
int index = tabBar->indexOf( opt.tab()->identifier() ); int index = ceData.tabBarData.identIndexMap[opt.tab()->identifier()];
if ( index == 0 ) mode = Keramik::InactiveTabPainter::First; if ( index == 0 ) mode = Keramik::InactiveTabPainter::First;
else if ( index == tabBar->count() - 1 ) mode = Keramik::InactiveTabPainter::Last; else if ( index == ceData.tabBarData.tabCount - 1 ) mode = Keramik::InactiveTabPainter::Last;
else mode = Keramik::InactiveTabPainter::Middle; else mode = Keramik::InactiveTabPainter::Middle;
if ( bottom ) if ( bottom )
@ -1606,7 +1604,6 @@ void KeramikStyle::drawControl( TQ_ControlElement element,
// POPUPMENU ITEM // POPUPMENU ITEM
// ------------------------------------------------------------------- // -------------------------------------------------------------------
case CE_PopupMenuItem: { case CE_PopupMenuItem: {
const TQPopupMenu *popupmenu = static_cast< const TQPopupMenu * >( widget );
TQRect main = r; TQRect main = r;
TQMenuItem *mi = opt.menuItem(); TQMenuItem *mi = opt.menuItem();
@ -1623,7 +1620,7 @@ void KeramikStyle::drawControl( TQ_ControlElement element,
int tab = opt.tabWidth(); int tab = opt.tabWidth();
int checkcol = opt.maxIconWidth(); int checkcol = opt.maxIconWidth();
bool enabled = mi->isEnabled(); bool enabled = mi->isEnabled();
bool checkable = popupmenu->isCheckable(); bool checkable = (elementFlags & CEF_IsCheckable);
bool active = flags & Style_Active; bool active = flags & Style_Active;
bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags ); bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
bool reverse = TQApplication::reverseLayout(); bool reverse = TQApplication::reverseLayout();
@ -2409,11 +2406,10 @@ int KeramikStyle::pixelMetric(PixelMetric m, TQStyleControlElementData ceData, C
case PM_TabBarTabShiftVertical: case PM_TabBarTabShiftVertical:
{ {
const TQTabBar* tb = ::tqqt_cast<const TQTabBar*>(widget); if (ceData.widgetObjectTypes.contains(TQTABBAR_OBJECT_NAME_STRING))
if (tb)
{ {
if (tb->shape() == TQTabBar::RoundedBelow || if (ceData.tabBarData.shape == TQTabBar::RoundedBelow ||
tb->shape() == TQTabBar::TriangularBelow) ceData.tabBarData.shape == TQTabBar::TriangularBelow)
return 0; return 0;
} }

@ -1261,11 +1261,10 @@ void KThemeStyle::drawControl( ControlElement element,
case CE_TabBarTab: case CE_TabBarTab:
{ {
const TQTabBar* tb = ( const TQTabBar* ) widget; TQTabBar::Shape tbs = ceData.tabBarData.shape;
TQTabBar::Shape tbs = tb->shape();
bool selected = how & Style_Selected; bool selected = how & Style_Selected;
WidgetType widget = selected ? ActiveTab : InactiveTab; WidgetType widget = selected ? ActiveTab : InactiveTab;
const TQColorGroup *cg = colorGroup( tb->colorGroup(), widget ); const TQColorGroup *cg = colorGroup( ceData.colorGroup, widget );
int i; int i;
int x2 = x + w - 1, y2 = y + h - 1; int x2 = x + w - 1, y2 = y + h - 1;
int bWidth = borderWidth( widget ); int bWidth = borderWidth( widget );
@ -1276,7 +1275,7 @@ void KThemeStyle::drawControl( ControlElement element,
if ( !selected ) if ( !selected )
{ {
p->fillRect( x, y, x2 - x + 1, 2, p->fillRect( x, y, x2 - x + 1, 2,
tb->palette().active().brush( TQColorGroup::Background ) ); ceData.palette.active().brush( TQColorGroup::Background ) );
y += 2; y += 2;
} }
p->setPen( cg->text() ); p->setPen( cg->text() );
@ -1338,8 +1337,8 @@ void KThemeStyle::drawControl( ControlElement element,
else else
p->fillRect( x, y, x2 - x + 1, y2 - y + 1, cg->background() ); p->fillRect( x, y, x2 - x + 1, y2 - y + 1, cg->background() );
} }
else if ( tb->shape() == TQTabBar::RoundedBelow || else if ( ceData.tabBarData.shape == TQTabBar::RoundedBelow ||
tb->shape() == TQTabBar::TriangularBelow ) ceData.tabBarData.shape == TQTabBar::TriangularBelow )
{ {
if ( widget == ActiveTab ) if ( widget == ActiveTab )
widget = RotActiveTab; widget = RotActiveTab;
@ -1349,7 +1348,7 @@ void KThemeStyle::drawControl( ControlElement element,
if ( !selected ) if ( !selected )
{ {
p->fillRect( x, y2 - 2, x2 - x + 1, 2, p->fillRect( x, y2 - 2, x2 - x + 1, 2,
tb->palette().active().brush( TQColorGroup::Background ) ); ceData.palette.active().brush( TQColorGroup::Background ) );
y2 -= 2; y2 -= 2;
} }
p->setPen( cg->text() ); p->setPen( cg->text() );
@ -1451,7 +1450,6 @@ void KThemeStyle::drawControl( ControlElement element,
int x, y, w, h; int x, y, w, h;
r.rect( &x, &y, &w, &h ); r.rect( &x, &y, &w, &h );
const TQPopupMenu *popupmenu = ( const TQPopupMenu * ) widget;
TQMenuItem *mi = opt.menuItem(); TQMenuItem *mi = opt.menuItem();
if ( mi ) if ( mi )
{ {
@ -1461,7 +1459,7 @@ void KThemeStyle::drawControl( ControlElement element,
int tab = opt.tabWidth(); int tab = opt.tabWidth();
int checkcol = opt.maxIconWidth(); int checkcol = opt.maxIconWidth();
bool enabled = (mi? mi->isEnabled():true); bool enabled = (mi? mi->isEnabled():true);
bool checkable = popupmenu->isCheckable(); bool checkable = (elementFlags & CEF_IsCheckable);
bool active = how & Style_Active; bool active = how & Style_Active;
bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags, TQStyleOption::Default, 0, 0 ); bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags, TQStyleOption::Default, 0, 0 );
bool reverse = TQApplication::reverseLayout(); bool reverse = TQApplication::reverseLayout();

@ -631,7 +631,6 @@ void LightStyleV2::drawControl( TQ_ControlElement control,
switch (control) { switch (control) {
case CE_TabBarTab: case CE_TabBarTab:
{ {
const TQTabBar* tb = static_cast<const TQTabBar*>(widget);
bool below = false; bool below = false;
TQRect tr(r); TQRect tr(r);
TQRect fr(r); TQRect fr(r);
@ -639,7 +638,7 @@ void LightStyleV2::drawControl( TQ_ControlElement control,
tr.addCoords(0, 0, 0, -1); tr.addCoords(0, 0, 0, -1);
fr.addCoords(2, 2, -2, -2); fr.addCoords(2, 2, -2, -2);
if ( tb->shape() == TQTabBar::RoundedBelow || tb->shape() == TQTabBar::TriangularBelow) { if ( ceData.tabBarData.shape == TQTabBar::RoundedBelow || ceData.tabBarData.shape == TQTabBar::TriangularBelow) {
tr = r; tr.addCoords(0, 1, 0, 0); tr = r; tr.addCoords(0, 1, 0, 0);
fr = r; fr.addCoords(2, 2,-2, -4); fr = r; fr.addCoords(2, 2,-2, -4);
below = true; below = true;
@ -784,7 +783,6 @@ void LightStyleV2::drawControl( TQ_ControlElement control,
if (! widget || data.isDefault()) if (! widget || data.isDefault())
break; break;
const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget;
TQMenuItem *mi = data.menuItem(); TQMenuItem *mi = data.menuItem();
int tab = data.tabWidth(); int tab = data.tabWidth();
int maxpmw = data.maxIconWidth(); int maxpmw = data.maxIconWidth();
@ -847,7 +845,7 @@ void LightStyleV2::drawControl( TQ_ControlElement control,
if ((flags & Style_Active) && (flags & Style_Enabled)) if ((flags & Style_Active) && (flags & Style_Enabled))
mode = TQIconSet::Active; mode = TQIconSet::Active;
TQPixmap pixmap; TQPixmap pixmap;
if (popupmenu->isCheckable() && mi->isChecked()) if ((elementFlags & CEF_IsCheckable) && mi->isChecked())
pixmap = pixmap =
mi->iconSet()->pixmap( TQIconSet::Small, mode, TQIconSet::On ); mi->iconSet()->pixmap( TQIconSet::Small, mode, TQIconSet::On );
else else
@ -857,7 +855,7 @@ void LightStyleV2::drawControl( TQ_ControlElement control,
pmr.moveCenter(cr.center()); pmr.moveCenter(cr.center());
p->setPen(cg.text()); p->setPen(cg.text());
p->drawPixmap(pmr.topLeft(), pixmap); p->drawPixmap(pmr.topLeft(), pixmap);
} else if (popupmenu->isCheckable() && mi->isChecked()) } else if ((elementFlags & CEF_IsCheckable) && mi->isChecked())
drawPrimitive(PE_CheckMark, p, ceData, elementFlags, cr, cg, drawPrimitive(PE_CheckMark, p, ceData, elementFlags, cr, cg,
(flags & Style_Enabled) | Style_On); (flags & Style_Enabled) | Style_On);
@ -1538,7 +1536,6 @@ TQSize LightStyleV2::sizeFromContents( ContentsType contents,
break; break;
TQMenuItem *mi = data.menuItem(); TQMenuItem *mi = data.menuItem();
const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget;
int maxpmw = data.maxIconWidth(); int maxpmw = data.maxIconWidth();
int w = contentsSize.width(), h = contentsSize.height(); int w = contentsSize.width(), h = contentsSize.height();
@ -1558,7 +1555,7 @@ TQSize LightStyleV2::sizeFromContents( ContentsType contents,
if (mi->pixmap()) if (mi->pixmap())
h = QMAX(h, mi->pixmap()->height()); h = QMAX(h, mi->pixmap()->height());
else if (! mi->text().isNull()) else if (! mi->text().isNull())
h = QMAX(h, popupmenu->fontMetrics().height() + 2); h = QMAX(h, TQFontMetrics(ceData.font).height() + 2);
if (mi->iconSet() != 0) if (mi->iconSet() != 0)
h = QMAX(h, mi->iconSet()->pixmap(TQIconSet::Small, h = QMAX(h, mi->iconSet()->pixmap(TQIconSet::Small,
TQIconSet::Normal).height()); TQIconSet::Normal).height());

@ -819,10 +819,9 @@ void LightStyleV3::drawControl( TQ_ControlElement control,
switch (control) { switch (control) {
case CE_TabBarTab: case CE_TabBarTab:
{ {
const TQTabBar *tb = (const TQTabBar *) widget;
TQRect br = r; TQRect br = r;
if ( tb->shape() == TQTabBar::RoundedAbove ) { if ( ceData.tabBarData.shape == TQTabBar::RoundedAbove ) {
if ( ! ( flags & Style_Selected ) ) { if ( ! ( flags & Style_Selected ) ) {
p->setPen( cg.background() ); p->setPen( cg.background() );
p->drawLine( br.left(), br.bottom(), p->drawLine( br.left(), br.bottom(),
@ -857,7 +856,7 @@ void LightStyleV3::drawControl( TQ_ControlElement control,
else else
br.addCoords( 1, 1, -1, 0 ); br.addCoords( 1, 1, -1, 0 );
p->fillRect( br, cg.background() ); p->fillRect( br, cg.background() );
} else if ( tb->shape() == TQTabBar::RoundedBelow ) { } else if ( ceData.tabBarData.shape == TQTabBar::RoundedBelow ) {
if ( ! ( flags & Style_Selected ) ) { if ( ! ( flags & Style_Selected ) ) {
p->setPen( cg.background() ); p->setPen( cg.background() );
p->drawLine( br.left(), br.top(), p->drawLine( br.left(), br.top(),
@ -906,7 +905,6 @@ void LightStyleV3::drawControl( TQ_ControlElement control,
if (! widget || data.isDefault()) if (! widget || data.isDefault())
break; break;
const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget;
TQMenuItem *mi = data.menuItem(); TQMenuItem *mi = data.menuItem();
int tab = data.tabWidth(); int tab = data.tabWidth();
int maxpmw = data.maxIconWidth(); int maxpmw = data.maxIconWidth();
@ -967,7 +965,7 @@ void LightStyleV3::drawControl( TQ_ControlElement control,
if ((flags & Style_Active) && (flags & Style_Enabled)) if ((flags & Style_Active) && (flags & Style_Enabled))
mode = TQIconSet::Active; mode = TQIconSet::Active;
TQPixmap pixmap; TQPixmap pixmap;
if (popupmenu->isCheckable() && mi->isChecked()) if ((elementFlags & CEF_IsCheckable) && mi->isChecked())
pixmap = pixmap =
mi->iconSet()->pixmap( TQIconSet::Small, mode, TQIconSet::On ); mi->iconSet()->pixmap( TQIconSet::Small, mode, TQIconSet::On );
else else
@ -977,7 +975,7 @@ void LightStyleV3::drawControl( TQ_ControlElement control,
pmr.moveCenter(cr.center()); pmr.moveCenter(cr.center());
p->setPen(cg.text()); p->setPen(cg.text());
p->drawPixmap(pmr.topLeft(), pixmap); p->drawPixmap(pmr.topLeft(), pixmap);
} else if (popupmenu->isCheckable() && mi->isChecked()) } else if ((elementFlags & CEF_IsCheckable) && mi->isChecked())
drawPrimitive(PE_CheckMark, p, ceData, elementFlags, cr, cg, drawPrimitive(PE_CheckMark, p, ceData, elementFlags, cr, cg,
(flags & Style_Enabled) | Style_On); (flags & Style_Enabled) | Style_On);
@ -1765,7 +1763,6 @@ TQSize LightStyleV3::sizeFromContents( ContentsType contents,
break; break;
TQMenuItem *mi = data.menuItem(); TQMenuItem *mi = data.menuItem();
const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget;
int maxpmw = data.maxIconWidth(); int maxpmw = data.maxIconWidth();
int w = contentsSize.width(), h = contentsSize.height(); int w = contentsSize.width(), h = contentsSize.height();
@ -1785,7 +1782,7 @@ TQSize LightStyleV3::sizeFromContents( ContentsType contents,
if (mi->pixmap()) if (mi->pixmap())
h = QMAX(h, mi->pixmap()->height()); h = QMAX(h, mi->pixmap()->height());
else if (! mi->text().isNull()) else if (! mi->text().isNull())
h = QMAX(h, popupmenu->fontMetrics().height() + 2); h = QMAX(h, TQFontMetrics(ceData.font).height() + 2);
if (mi->iconSet() != 0) if (mi->iconSet() != 0)
h = QMAX(h, mi->iconSet()->pixmap(TQIconSet::Small, h = QMAX(h, mi->iconSet()->pixmap(TQIconSet::Small,
TQIconSet::Normal).height()); TQIconSet::Normal).height());

@ -2306,25 +2306,19 @@ void PlastikStyle::drawControl(TQ_ControlElement element,
// TABS // TABS
// ---- // ----
case CE_TabBarTab: { case CE_TabBarTab: {
const TQTabBar * tb = (const TQTabBar *) widget;
bool cornerWidget = false; bool cornerWidget = false;
if( ::tqqt_cast<TQTabWidget*>(tb->parent()) ) { if (!ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopLeft].widgetObjectTypes.isEmpty()) {
const TQTabWidget *tw = (const TQTabWidget*)tb->parent();
// is there a corner widget in the (top) left edge?
TQWidget *cw = tw->cornerWidget(TQt::TopLeft);
if(cw) {
cornerWidget = true; cornerWidget = true;
} }
} TQTabBar::Shape tbs = ceData.tabBarData.shape;
TQTabBar::Shape tbs = tb->shape();
bool selected = false; bool selected = false;
if (flags & Style_Selected) selected = true; if (flags & Style_Selected) selected = true;
TabPosition pos; TabPosition pos;
if (tb->count() == 1) { if (ceData.tabBarData.tabCount == 1) {
pos = Single; pos = Single;
} else if ((tb->indexOf(opt.tab()->identifier()) == 0)) { } else if (ceData.tabBarData.identIndexMap[opt.tab()->identifier()] == 0) {
pos = First; pos = First;
} else if (tb->indexOf(opt.tab()->identifier()) == tb->count() - 1) { } else if (ceData.tabBarData.identIndexMap[opt.tab()->identifier()] == (ceData.tabBarData.tabCount - 1)) {
pos = Last; pos = Last;
} else { } else {
pos = Middle; pos = Middle;
@ -2485,7 +2479,6 @@ void PlastikStyle::drawControl(TQ_ControlElement element,
// POPUPMENU ITEM (highlighted on mouseover) // POPUPMENU ITEM (highlighted on mouseover)
// ------------------------------------------ // ------------------------------------------
case CE_PopupMenuItem: { case CE_PopupMenuItem: {
const TQPopupMenu *popupmenu = static_cast< const TQPopupMenu * >( widget );
TQMenuItem *mi = opt.menuItem(); TQMenuItem *mi = opt.menuItem();
if ( !mi ) if ( !mi )
@ -2500,7 +2493,7 @@ void PlastikStyle::drawControl(TQ_ControlElement element,
int tab = opt.tabWidth(); int tab = opt.tabWidth();
int checkcol = opt.maxIconWidth(); int checkcol = opt.maxIconWidth();
bool enabled = mi->isEnabled(); bool enabled = mi->isEnabled();
bool checkable = popupmenu->isCheckable(); bool checkable = (elementFlags & CEF_IsCheckable);
bool active = flags & Style_Active; bool active = flags & Style_Active;
bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags ); bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
bool reverse = TQApplication::reverseLayout(); bool reverse = TQApplication::reverseLayout();
@ -3272,9 +3265,8 @@ int PlastikStyle::pixelMetric(PixelMetric m, TQStyleControlElementData ceData, C
// TABS // TABS
// ---- // ----
case PM_TabBarTabVSpace: { case PM_TabBarTabVSpace: {
const TQTabBar * tb = (const TQTabBar *) widget; if (ceData.tabBarData.shape == TQTabBar::RoundedAbove ||
if (tb->shape() == TQTabBar::RoundedAbove || ceData.tabBarData.shape == TQTabBar::RoundedBelow)
tb->shape() == TQTabBar::RoundedBelow)
return 12; return 12;
else else
return 4; return 4;

@ -701,8 +701,7 @@ void KStyle::drawControl( TQ_ControlElement element,
// TABS // TABS
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
case CE_TabBarTab: { case CE_TabBarTab: {
const TQTabBar* tb = (const TQTabBar*) widget; TQTabBar::Shape tbs = ceData.tabBarData.shape;
TQTabBar::Shape tbs = tb->shape();
bool selected = flags & Style_Selected; bool selected = flags & Style_Selected;
int x = r.x(), y=r.y(), bottom=r.bottom(), right=r.right(); int x = r.x(), y=r.y(), bottom=r.bottom(), right=r.right();
@ -1043,17 +1042,15 @@ int KStyle::pixelMetric(PixelMetric m, TQStyleControlElementData ceData, Control
return 24; return 24;
case PM_TabBarTabVSpace: { case PM_TabBarTabVSpace: {
const TQTabBar * tb = (const TQTabBar *) widget; if ( ceData.tabBarData.shape == TQTabBar::RoundedAbove ||
if ( tb->shape() == TQTabBar::RoundedAbove || ceData.tabBarData.shape == TQTabBar::RoundedBelow )
tb->shape() == TQTabBar::RoundedBelow )
return 10; return 10;
else else
return 4; return 4;
} }
case PM_TabBarTabOverlap: { case PM_TabBarTabOverlap: {
const TQTabBar* tb = (const TQTabBar*)widget; TQTabBar::Shape tbs = ceData.tabBarData.shape;
TQTabBar::Shape tbs = tb->shape();
if ( (tbs == TQTabBar::RoundedAbove) || if ( (tbs == TQTabBar::RoundedAbove) ||
(tbs == TQTabBar::RoundedBelow) ) (tbs == TQTabBar::RoundedBelow) )

Loading…
Cancel
Save