summaryrefslogtreecommitdiffstats
path: root/style/qtcurve.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-10-17 15:08:56 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-10-17 15:08:56 -0500
commitdc6c9f70cf04d01616ef2ff6e4d2b47fc58e4c96 (patch)
tree466973e3b2ea52c741cd691d4c1ce9106c13e43d /style/qtcurve.cpp
parent84e18380bce69a37a81c8982d8824a71a16f9282 (diff)
downloadtde-style-qtcurve-dc6c9f70cf04d01616ef2ff6e4d2b47fc58e4c96.tar.gz
tde-style-qtcurve-dc6c9f70cf04d01616ef2ff6e4d2b47fc58e4c96.zip
Do not use direct widget access when drawing tabs and popup menus
Diffstat (limited to 'style/qtcurve.cpp')
-rw-r--r--style/qtcurve.cpp47
1 files changed, 19 insertions, 28 deletions
diff --git a/style/qtcurve.cpp b/style/qtcurve.cpp
index 8941a54..5e9dd1e 100644
--- a/style/qtcurve.cpp
+++ b/style/qtcurve.cpp
@@ -4525,22 +4525,21 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, TQStyleCont
{
case CE_TabBarTab:
{
- const TQTabBar *tb((const TQTabBar *)widget);
- int tabIndex(tb->indexOf(data.tab()->identifier())),
+ int tabIndex(ceData.tabBarData.identIndexMap[data.tab()->identifier()]),
dark(APPEARANCE_FLAT==opts.appearance ? ORIGINAL_SHADE : FRAME_DARK_SHADOW),
moOffset(ROUNDED_NONE==opts.round || TAB_MO_TOP!=opts.tabMouseOver ? 1 : opts.round);
bool cornerWidget(false),
bottomCornerWidget(false),
reverse(TQApplication::reverseLayout()),
firstTab(0==tabIndex),
- lastTab((tb->count()-1)==tabIndex),
+ lastTab((ceData.tabBarData.tabCount-1)==tabIndex),
// isFirstKTabCtlTab(firstTab && widget->parent()
// ? 0==qstrcmp("KTabCtl", widget->parent()->className())
// : false),
active(flags & Style_Selected),
itsHover(itsHoverTab && itsHoverTab->isEnabled() && data.tab()==itsHoverTab &&
!(flags&Style_Selected) &&
- tb->currentTab()!=tabIndex),
+ ceData.tabBarData.currentTabIndex!=tabIndex),
glowMo(!active && itsHover && opts.coloredMouseOver && TAB_MO_GLOW==opts.tabMouseOver);
int sizeAdjust(!active && TAB_MO_GLOW==opts.tabMouseOver ? 1 : 0);
const TQColor &fill(getTabFill(flags&Style_Selected, itsHover, itsBackgroundCols));
@@ -4560,19 +4559,15 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, TQStyleCont
firstTab=oldLast;
}
- if(::tqqt_cast<const TQTabWidget *>(tb->parent()))
- {
- const TQTabWidget *tw((const TQTabWidget*)tb->parent());
-
- // is there a corner widget in the (top) left edge?
- if(tw->cornerWidget(TQt::TopLeft))
- cornerWidget=true;
- if(tw->cornerWidget(TQt::BottomLeft))
- bottomCornerWidget=true;
+ if (!ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopLeft].widgetObjectTypes.isEmpty()) {
+ cornerWidget=true;
+ }
+ if (!ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomLeft].widgetObjectTypes.isEmpty()) {
+ bottomCornerWidget=true;
}
TQRect tr(r);
- bool top(TQTabBar::TriangularAbove==tb->shape() || TQTabBar::RoundedAbove==tb->shape());
+ bool top(TQTabBar::TriangularAbove==ceData.tabBarData.shape || TQTabBar::RoundedAbove==ceData.tabBarData.shape);
if(active && opts.tabBgnd)
{
@@ -4773,13 +4768,13 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, TQStyleCont
TQRect tr(r);
int shift(pixelMetric(PM_TabBarTabShiftVertical, ceData, elementFlags, tb));
- if (t->identifier() == tb->currentTab())
+ if (t->identifier() == ceData.tabBarData.currentTabIndex)
{
- if(TQTabBar::RoundedAbove==tb->shape() || TQTabBar::TriangularAbove==tb->shape())
+ if(TQTabBar::RoundedAbove==ceData.tabBarData.shape || TQTabBar::TriangularAbove==ceData.tabBarData.shape)
tr.addCoords(0, -shift, 0, -shift);
}
else
- if(TQTabBar::RoundedBelow==tb->shape() || TQTabBar::TriangularBelow==tb->shape())
+ if(TQTabBar::RoundedBelow==ceData.tabBarData.shape || TQTabBar::TriangularBelow==ceData.tabBarData.shape)
tr.addCoords(0, shift, 0, shift);
if(APP_MACTOR==itsThemedApp)
@@ -4788,7 +4783,7 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, TQStyleCont
if(t->iconSet())
{
- TQIconSet::Mode mode((t->isEnabled() && tb->isEnabled())
+ TQIconSet::Mode mode((t->isEnabled() && (elementFlags & CEF_IsEnabled))
? TQIconSet::Normal : TQIconSet::Disabled);
if (mode == TQIconSet::Normal && (flags&Style_HasFocus))
@@ -4815,7 +4810,7 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, TQStyleCont
{
TQRect fr(r);
- if(TQTabBar::RoundedAbove==tb->shape() || TQTabBar::TriangularAbove==tb->shape())
+ if(TQTabBar::RoundedAbove==ceData.tabBarData.shape || TQTabBar::TriangularAbove==ceData.tabBarData.shape)
fr.addCoords(0, 1, 0, -1);
else
fr.addCoords(0, 0, 0, -1);
@@ -4942,7 +4937,6 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, TQStyleCont
if(!widget || data.isDefault())
break;
- const TQPopupMenu *popupmenu((const TQPopupMenu *)widget);
TQMenuItem *mi(data.menuItem());
int tab(data.tabWidth()),
maxpmw(data.maxIconWidth()),
@@ -5015,7 +5009,7 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, TQStyleCont
// Do we have an icon and are checked at the same time?
// Then draw a "pressed" background behind the icon
- if(popupmenu->isCheckable() && mi->isChecked())
+ if((elementFlags & CEF_IsCheckable) && mi->isChecked())
drawLightBevel((flags & Style_Active)&&(flags & Style_Enabled)
? itsHighlightCols[ORIGINAL_SHADE]
: cg.background(), p, TQRect(cr.x()+1, cr.y()+2, cr.width()-2, cr.height()-4),
@@ -5030,7 +5024,7 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, TQStyleCont
pmr.moveCenter(cr.center());
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,
(flags &(Style_Enabled|(opts.useHighlightForMenu ? Style_Active : 0)))| Style_On|MENU_ITEM);
@@ -6832,10 +6826,8 @@ int QtCurveStyle::pixelMetric(PixelMetric metric, TQStyleControlElementData ceDa
#if 0x039999 >= 0x030200
case PM_TabBarTabShiftVertical:
{
- const TQTabBar *tb=widget ? ::tqqt_cast<const TQTabBar *>(widget) : 0;
-
- return tb
- ? TQTabBar::RoundedAbove==tb->shape() || TQTabBar::TriangularAbove==tb->shape()
+ return (ceData.widgetObjectTypes.contains(TQTABBAR_OBJECT_NAME_STRING))
+ ? TQTabBar::RoundedAbove==ceData.tabBarData.shape || TQTabBar::TriangularAbove==ceData.tabBarData.shape
? 1
: -1
: BASE_STYLE::pixelMetric(metric, ceData, elementFlags, widget);
@@ -6966,7 +6958,6 @@ TQSize QtCurveStyle::sizeFromContents(ContentsType contents, TQStyleControlEleme
const int constMinH(opts.thinnerMenuItems ? 25 : 27);
TQMenuItem *mi(data.menuItem());
- const TQPopupMenu *popupmenu(static_cast<const TQPopupMenu *>(widget));
int maxpmw(data.maxIconWidth()),
w(contentsSize.width()), h(contentsSize.height());
@@ -6993,7 +6984,7 @@ TQSize QtCurveStyle::sizeFromContents(ContentsType contents, TQStyleControlEleme
if (mi->pixmap())
h = TQMAX(h, mi->pixmap()->height());
else if (!mi->text().isNull())
- h = TQMAX(h, popupmenu->fontMetrics().height() + 2);
+ h = TQMAX(h, TQFontMetrics(ceData.font).height() + 2);
if (mi->iconSet()!= 0)
h = TQMAX(h, mi->iconSet()->pixmap(TQIconSet::Small, TQIconSet::Normal).height());
h+=(opts.thinnerMenuItems ? 2 : 4);