summaryrefslogtreecommitdiffstats
path: root/style
diff options
context:
space:
mode:
authorTCH <[email protected]>2020-04-27 23:49:57 +0900
committerMichele Calgaro <[email protected]>2020-04-27 23:49:57 +0900
commit82fe64d550d8754266109084f82dd56cc8a04f49 (patch)
tree71b5da9096d0513290ecc3308805333110820ebb /style
parenteaa7b67111c0d8ba0528aa1178904a455b4d8bff (diff)
downloadtde-style-qtcurve-82fe64d550d8754266109084f82dd56cc8a04f49.tar.gz
tde-style-qtcurve-82fe64d550d8754266109084f82dd56cc8a04f49.zip
Updated to QtCurve version 1.7.1.
Based on the original GPL2 QtCurve code from Craig Drummond <[email protected]> available at https://github.com/KDE/qtcurve Signed-off-by: TCH <[email protected]> Signed-off-by: Michele Calgaro <[email protected]>
Diffstat (limited to 'style')
-rw-r--r--style/qtcurve.cpp455
-rw-r--r--style/qtcurve.h5
2 files changed, 315 insertions, 145 deletions
diff --git a/style/qtcurve.cpp b/style/qtcurve.cpp
index 5d35d24..87aea38 100644
--- a/style/qtcurve.cpp
+++ b/style/qtcurve.cpp
@@ -141,7 +141,7 @@ static void emitMenuSize(const TQWidget *widget, unsigned short size)
if(w)
{
- static const Atom constAtom = XInternAtom(tqt_xdisplay(), MENU_SIZE_ATOM, False);
+ static const Atom constAtom = XInternAtom(tqt_xdisplay(), MENU_SIZE_ATOM, False);
XChangeProperty(tqt_xdisplay(), w->parentWidget() ? w->parentWidget()->winId() : w->winId(),
constAtom, XA_CARDINAL, 16, PropModeReplace, (unsigned char *)&size, 1);
}
@@ -153,9 +153,12 @@ void setBgndProp(TQWidget *widget, unsigned short app)
if(w)
{
- static const Atom constAtom = XInternAtom(tqt_xdisplay(), BGND_ATOM, False);
+ static const Atom constAtom = XInternAtom(tqt_xdisplay(), BGND_ATOM, False);
+ unsigned long prop=((APPEARANCE_STRIPED==app || APPEARANCE_FILE==app ? app : APPEARANCE_FLAT)&0xFF) |
+ (widget->palette().active().background().rgb()&0x00FFFFFF)<<8;
+
XChangeProperty(tqt_xdisplay(), w->parentWidget() ? w->parentWidget()->winId() : w->winId(),
- constAtom, XA_CARDINAL, 16, PropModeReplace, (unsigned char *)&app, 1);
+ constAtom, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&prop, 1);
}
}
@@ -182,6 +185,39 @@ static void triggerWMMove(const TQWidget *w, const TQPoint &p)
#define MO_ARROW_X(FLAGS, COL) (MO_NONE!=opts.coloredMouseOver && FLAGS&Style_MouseOver && FLAGS&Style_Enabled ? itsMouseOverCols[ARROW_MO_SHADE] : COL)
#define MO_ARROW(COL) MO_ARROW_X(flags, COL)
+static void adjustToolbarButtons(const TQWidget *widget, const TQToolBar *toolbar, int &leftAdjust, int &topAdjust,
+ int &rightAdjust, int &bottomAdjust, int &round)
+{
+ const int constAdjust=4;
+ const int d = 1;
+ TQRect geo(widget->geometry());
+
+ if (TQt::Horizontal==toolbar->orientation())
+ {
+ bool haveLeft=::tqqt_cast<TQToolButton*>(toolbar->childAt(geo.x()-d, geo.y())),
+ haveRight=::tqqt_cast<TQToolButton*>(toolbar->childAt(geo.right()+d, geo.y()));
+
+ if(haveLeft && haveRight)
+ leftAdjust=-constAdjust, rightAdjust=constAdjust, round=ROUNDED_NONE;
+ else if(haveLeft)
+ leftAdjust=-constAdjust, round=ROUNDED_RIGHT;
+ else if(haveRight)
+ rightAdjust=constAdjust, round=ROUNDED_LEFT;
+ }
+ else
+ {
+ bool haveTop=::tqqt_cast<TQToolButton*>(toolbar->childAt(geo.x(), geo.y()-d)),
+ haveBot=::tqqt_cast<TQToolButton*>(toolbar->childAt(geo.x(), geo.bottom()+d));
+
+ if(haveTop && haveBot)
+ topAdjust=-constAdjust, bottomAdjust=constAdjust, round=ROUNDED_NONE;
+ else if(haveTop)
+ topAdjust=-constAdjust, round=ROUNDED_BOTTOM;
+ else if(haveBot)
+ bottomAdjust=constAdjust, round=ROUNDED_TOP;
+ }
+}
+
static const int constMenuPixmapWidth=22;
static bool useTQt3Settings()
@@ -1415,6 +1451,35 @@ void QtCurveStyle::polish(TQPalette &pal)
if(APPEARANCE_STRIPED==opts.bgndAppearance)
pal.setBrush(TQColorGroup::Background, TQBrush(pal.active().background(), *createStripePixmap(pal.active().background(), true)));
+ else if(APPEARANCE_FILE==opts.bgndAppearance)
+ {
+ TQPixmap pix(opts.bgndPixmap.img.width(), opts.bgndPixmap.img.height());
+ TQPainter p(&pix);
+ WindowBorders borders=qtcGetWindowBorderSize();
+ int xadjust=borders.sides>0 && borders.sides!=opts.bgndPixmap.img.width()
+ ? borders.sides>opts.bgndPixmap.img.width()
+ ? borders.sides%opts.bgndPixmap.img.width()
+ : borders.sides
+ :0,
+ yadjust=borders.titleHeight>0 && borders.titleHeight!=opts.bgndPixmap.img.height()
+ ? borders.titleHeight>opts.bgndPixmap.img.height()
+ ? borders.titleHeight%opts.bgndPixmap.img.height()
+ : borders.titleHeight
+ :0;
+
+ p.fillRect(0, 0, opts.bgndPixmap.img.width(), opts.bgndPixmap.img.height(), pal.active().background());
+
+ p.drawPixmap(-xadjust, -yadjust, opts.bgndPixmap.img);
+ if(xadjust>0)
+ p.drawPixmap(opts.bgndPixmap.img.width()-xadjust, -yadjust, opts.bgndPixmap.img);
+ if(yadjust>0)
+ p.drawPixmap(-xadjust, opts.bgndPixmap.img.height()-yadjust, opts.bgndPixmap.img);
+ if(xadjust>0 && yadjust>0)
+ p.drawPixmap(opts.bgndPixmap.img.width()-xadjust, opts.bgndPixmap.img.height()-yadjust, opts.bgndPixmap.img);
+
+ p.end();
+ pal.setBrush(TQColorGroup::Background, TQBrush(pal.active().background(), pix));
+ }
}
static TQColor disable(const TQColor &col, const TQColor &bgnd)
@@ -1475,8 +1540,11 @@ void QtCurveStyle::polish(const TQStyleControlElementData &ceData, ControlElemen
if(isWindowDragWidget(TQT_TQOBJECT(widget)))
installObjectEventHandler(ceData, elementFlags, ptr, this);
- if(APPEARANCE_STRIPED==opts.bgndAppearance && (::tqqt_cast<TQDialog *>(widget) || ::tqqt_cast<TQMainWindow *>(widget)))
- setBgndProp(widget, APPEARANCE_STRIPED);
+ if(::tqqt_cast<TQDialog *>(widget) || ::tqqt_cast<TQMainWindow *>(widget))
+ {
+ setBgndProp(widget, opts.bgndAppearance);
+ installObjectEventHandler(ceData, elementFlags, ptr, this); // To trap palette change
+ }
if(widget->parentWidget() && ::tqqt_cast<TQScrollView *>(widget) && ::tqqt_cast<TQComboBox *>(widget->parentWidget()))
{
@@ -1543,8 +1611,7 @@ void QtCurveStyle::polish(const TQStyleControlElementData &ceData, ControlElemen
(widget->parentWidget() && ::tqqt_cast<const TQListBox *>(widget) &&
::tqqt_cast<const TQComboBox *>(widget->parentWidget()))))
((TQFrame *)widget)->setLineWidth(0);
- else if ((USE_LIGHTER_POPUP_MENU || !IS_FLAT_BGND(opts.menuBgndAppearance)) && !opts.borderMenuitems &&
- widget && ::tqqt_cast<const TQPopupMenu *>(widget))
+ else if (!DRAW_MENU_BORDER && !opts.borderMenuitems && widget && ::tqqt_cast<const TQPopupMenu *>(widget))
((TQFrame *)widget)->setLineWidth(1);
if (::tqqt_cast<TQRadioButton *>(widget) || ::tqqt_cast<TQCheckBox *>(widget))
@@ -1619,39 +1686,7 @@ void QtCurveStyle::polish(const TQStyleControlElementData &ceData, ControlElemen
installObjectEventHandler(ceData, elementFlags, ptr, this);
if(BLEND_TITLEBAR || opts.windowBorder&WINDOW_BORDER_USE_MENUBAR_COLOR_FOR_TITLEBAR)
emitMenuSize(widget, ceData.rect.height());
- if(SHADE_WINDOW_BORDER==opts.shadeMenubars)
- {
- TQPalette pal(ceData.palette);
- TQColorGroup act(pal.active());
- TQColorGroup inact(pal.inactive());
-
- getMdiColors(act, true);
- act.setColor(TQColorGroup::Foreground, itsActiveMdiTextColor);
- inact.setColor(TQColorGroup::Foreground, opts.shadeMenubarOnlyWhenActive ? itsMdiTextColor : itsActiveMdiTextColor);
- pal.setInactive(inact);
- pal.setActive(act);
- widget->setPalette(pal);
- }
- else if(opts.customMenuTextColor || SHADE_BLEND_SELECTED==opts.shadeMenubars || SHADE_SELECTED==opts.shadeMenubars ||
- (SHADE_CUSTOM==opts.shadeMenubars && TOO_DARK(itsMenubarCols[ORIGINAL_SHADE])))
- {
- TQPalette pal(ceData.palette);
- TQColorGroup act(pal.active());
-
- act.setColor(TQColorGroup::Foreground, opts.customMenuTextColor
- ? opts.customMenuNormTextColor
- : TQApplication::palette().active().highlightedText());
-
- if(!opts.shadeMenubarOnlyWhenActive)
- {
- TQColorGroup inact(pal.inactive());
- inact.setColor(TQColorGroup::Foreground, act.color(TQColorGroup::Foreground));
- pal.setInactive(inact);
- }
-
- pal.setActive(act);
- widget->setPalette(pal);
- }
+ setMenuTextColors(widget, true);
}
else if(::tqqt_cast<TQToolBar *>(widget))
{
@@ -1659,7 +1694,10 @@ void QtCurveStyle::polish(const TQStyleControlElementData &ceData, ControlElemen
widget->setBackgroundMode(PaletteBackground);
}
else if(::tqqt_cast<TQPopupMenu *>(widget))
+ {
widget->setBackgroundMode(NoBackground); // PaletteBackground);
+ setMenuTextColors(widget, true);
+ }
else if (ceData.widgetObjectTypes.contains("TDEToolBarSeparator") ||
(ceData.widgetObjectTypes.contains("TDEListViewSearchLineWidget") &&
widget->parent() && ::tqqt_cast<TQToolBar *>(widget->parent())))
@@ -1833,7 +1871,7 @@ void QtCurveStyle::polish(const TQStyleControlElementData &ceData, ControlElemen
widget->setPalette(pal);
}
- if(APPEARANCE_STRIPED==opts.bgndAppearance)
+ if(APPEARANCE_STRIPED==opts.bgndAppearance || APPEARANCE_FILE==opts.bgndAppearance)
widget->setBackgroundOrigin(TQWidget::WindowOrigin);
}
@@ -2092,12 +2130,17 @@ bool QtCurveStyle::objectEventHandler( const TQStyleControlElementData &ceData,
{
TQWidget *widget=(TQWidget*)object;
TQPainter painter(widget);
- TQColor col(USE_LIGHTER_POPUP_MENU ? itsLighterPopupMenuBgndCol : ceData.palette.active().background());
+ TQColor col(popupMenuCol(widget->palette().active()));
if(APPEARANCE_STRIPED==opts.menuBgndAppearance)
{
painter.drawTiledPixmap(ceData.rect, *createStripePixmap(col, false));
}
+ else if(APPEARANCE_FILE==opts.menuBgndAppearance)
+ {
+ painter.fillRect(widget->rect(), col);
+ painter.drawTiledPixmap(widget->rect(), opts.menuBgndPixmap.img);
+ }
else
{
drawBevelGradientReal(col, &painter, ceData.rect, GT_HORIZ==opts.menuBgndGrad, false,
@@ -2320,7 +2363,8 @@ bool QtCurveStyle::objectEventHandler( const TQStyleControlElementData &ceData,
default:
break;
}
-
+ if(TQEvent::PaletteChange==event->type() && (::tqqt_cast<TQDialog *>(object) || ::tqqt_cast<TQMainWindow *>(object)))
+ setBgndProp(static_cast<TQWidget *>(object), opts.bgndAppearance);
#ifdef TQTC_ENABLE_PARENTLESS_DIALOG_FIX_SUPPORT
if(opts.fixParentlessDialogs && ::tqqt_cast<TQDialog *>(object))
{
@@ -2684,7 +2728,7 @@ void QtCurveStyle::drawLightBevel(const TQColor &bgnd, TQPainter *p, const TQRec
}
if(doEtch || glowFocus) {
- if( (!sunken || sunkenToggleMo) &&
+ if( (!sunken || sunkenToggleMo) && !(opts.thin&THIN_FRAMES) &&
((WIDGET_OTHER!=w && WIDGET_SLIDER_TROUGH!=w && MO_GLOW==opts.coloredMouseOver && flags&Style_MouseOver) ||
glowFocus ||
(WIDGET_DEF_BUTTON==w && IND_GLOW==opts.defBtnIndicator)/* ||
@@ -2793,40 +2837,41 @@ void QtCurveStyle::drawBorder(const TQColor &bgnd, TQPainter *p, const TQRect &r
if(WIDGET_TAB_BOT==w || WIDGET_TAB_TOP==w)
cols=itsBackgroundCols;
- switch(borderProfile)
- {
- case BORDER_FLAT:
- break;
- case BORDER_RAISED:
- case BORDER_SUNKEN:
- case BORDER_LIGHT:
- if(flags&Style_Enabled && (hasMouseOver || hasFocus) && (WIDGET_ENTRY==w || WIDGET_SCROLLVIEW==w || WIDGET_COMBO==w || WIDGET_SPIN==w))
- p->setPen(midColorF(cg.background(), cols[BORDER_RAISED==borderProfile || BORDER_LIGHT==borderProfile
- ? 0 : FRAME_DARK_SHADOW], 1.5-ENTRY_INNER_ALPHA));
- else
- p->setPen(flags&Style_Enabled && (BORDER_RAISED==borderProfile || BORDER_LIGHT==borderProfile || APPEARANCE_FLAT!=app)
- ? blendBorderColors
- ? midColor(cg.background(), cols[BORDER_RAISED==borderProfile
- ? 0 : FRAME_DARK_SHADOW]) // Was base???
- : cols[BORDER_RAISED==borderProfile || BORDER_LIGHT==borderProfile ? 0 : FRAME_DARK_SHADOW]
- : cg.background());
- p->drawLine(r.x()+1, r.y()+1, r.x()+1, r.y()+r.height()-2);
- p->drawLine(r.x()+1, r.y()+1, r.x()+r.width()-2, r.y()+1);
- if(!hasFocus && !hasMouseOver && BORDER_LIGHT!=borderProfile)
- p->setPen(WIDGET_SCROLLVIEW==w
- ? cg.background()
- : WIDGET_ENTRY==w
- ? cg.base()
- : flags&Style_Enabled && (BORDER_SUNKEN==borderProfile || APPEARANCE_FLAT!=app ||
- WIDGET_TAB_TOP==w || WIDGET_TAB_BOT==w)
- ? blendBorderColors
- ? midColor(cg.background(), cols[BORDER_RAISED==borderProfile
- ? FRAME_DARK_SHADOW : 0]) // Was base???
- : cols[BORDER_RAISED==borderProfile ? FRAME_DARK_SHADOW : 0]
- : cg.background());
- p->drawLine(r.x()+r.width()-2, r.y()+1, r.x()+r.width()-2, r.y()+r.height()-2);
- p->drawLine(r.x()+1, r.y()+r.height()-2, r.x()+r.width()-2, r.y()+r.height()-2);
- }
+ if(!(opts.thin&THIN_FRAMES))
+ switch(borderProfile)
+ {
+ case BORDER_FLAT:
+ break;
+ case BORDER_RAISED:
+ case BORDER_SUNKEN:
+ case BORDER_LIGHT:
+ if(flags&Style_Enabled && (hasMouseOver || hasFocus) && (WIDGET_ENTRY==w || WIDGET_SCROLLVIEW==w || WIDGET_COMBO==w || WIDGET_SPIN==w))
+ p->setPen(midColorF(cg.background(), cols[BORDER_RAISED==borderProfile || BORDER_LIGHT==borderProfile
+ ? 0 : FRAME_DARK_SHADOW], 1.5-ENTRY_INNER_ALPHA));
+ else
+ p->setPen(flags&Style_Enabled && (BORDER_RAISED==borderProfile || BORDER_LIGHT==borderProfile || APPEARANCE_FLAT!=app)
+ ? blendBorderColors
+ ? midColor(cg.background(), cols[BORDER_RAISED==borderProfile
+ ? 0 : FRAME_DARK_SHADOW]) // Was base???
+ : cols[BORDER_RAISED==borderProfile || BORDER_LIGHT==borderProfile ? 0 : FRAME_DARK_SHADOW]
+ : cg.background());
+ p->drawLine(r.x()+1, r.y()+1, r.x()+1, r.y()+r.height()-2);
+ p->drawLine(r.x()+1, r.y()+1, r.x()+r.width()-2, r.y()+1);
+ if(!hasFocus && !hasMouseOver && BORDER_LIGHT!=borderProfile)
+ p->setPen(WIDGET_SCROLLVIEW==w
+ ? cg.background()
+ : WIDGET_ENTRY==w
+ ? cg.base()
+ : flags&Style_Enabled && (BORDER_SUNKEN==borderProfile || APPEARANCE_FLAT!=app ||
+ WIDGET_TAB_TOP==w || WIDGET_TAB_BOT==w)
+ ? blendBorderColors
+ ? midColor(cg.background(), cols[BORDER_RAISED==borderProfile
+ ? FRAME_DARK_SHADOW : 0]) // Was base???
+ : cols[BORDER_RAISED==borderProfile ? FRAME_DARK_SHADOW : 0]
+ : cg.background());
+ p->drawLine(r.x()+r.width()-2, r.y()+1, r.x()+r.width()-2, r.y()+r.height()-2);
+ p->drawLine(r.x()+1, r.y()+r.height()-2, r.x()+r.width()-2, r.y()+r.height()-2);
+ }
if(ROUNDED && ROUNDED_NONE!=round)
{
@@ -3936,26 +3981,33 @@ void QtCurveStyle::drawPrimitive(TQ_PrimitiveElement pe, TQPainter *p, const TQS
}
case PE_PanelPopup:
{
- const TQColor *use(backgroundColors(cg));
+ const TQColor *use(popupMenuCols(cg));
+ EGradientBorder border=getGradient(opts.menuBgndAppearance, &opts)->border;
p->setPen(use[STD_BORDER]);
p->setBrush(NoBrush);
p->drawRect(r);
- if(!IS_FLAT_BGND(opts.menuBgndAppearance))
- ;
- else if(USE_LIGHTER_POPUP_MENU)
+
+ if(USE_BORDER(border) && APPEARANCE_FLAT!=opts.menuBgndAppearance)
{
- p->setPen(/*USE_LIGHTER_POPUP_MENU ? */itsLighterPopupMenuBgndCol/* : cg.background()*/);
- p->drawRect(TQRect(r.x()+1, r.y()+1, r.width()-2, r.height()-2));
+ p->setPen(use[0]);
+ if(GB_LIGHT==border)
+ p->drawRect(TQRect(r.x()+1, r.y()+1, r.width()-2, r.height()-2));
+ else
+ {
+ if(GB_3D==border)
+ p->setPen(popupMenuCol(cg));
+ p->drawLine(r.x()+1, r.y()+1, r.x()+r.width()-2, r.y()+1);
+ p->drawLine(r.x()+1, r.y()+1, r.x()+1, r.y()+r.height()-2);
+ p->setPen(use[FRAME_DARK_SHADOW]);
+ p->drawLine(r.x()+1, r.y()+r.height()-2, r.x()+r.width()-2, r.y()+r.height()-2);
+ p->drawLine(r.x()+r.width()-2, r.y()+1, r.x()+r.width()-2, r.y()+r.height()-2);
+ }
}
- else
+ else if(IS_FLAT_BGND(opts.menuBgndAppearance))
{
- p->setPen(use[0]);
- p->drawLine(r.x()+1, r.y()+1, r.x()+r.width()-2, r.y()+1);
- p->drawLine(r.x()+1, r.y()+1, r.x()+1, r.y()+r.height()-2);
- p->setPen(use[FRAME_DARK_SHADOW]);
- p->drawLine(r.x()+1, r.y()+r.height()-2, r.x()+r.width()-2, r.y()+r.height()-2);
- p->drawLine(r.x()+r.width()-2, r.y()+1, r.x()+r.width()-2, r.y()+r.height()-2);
+ p->setPen(/*USE_LIGHTER_POPUP_MENU ? */popupMenuCol(cg)/* : cg.background()*/);
+ p->drawRect(TQRect(r.x()+1, r.y()+1, r.width()-2, r.height()-2));
}
break;
}
@@ -4249,7 +4301,7 @@ void QtCurveStyle::drawPrimitive(TQ_PrimitiveElement pe, TQPainter *p, const TQS
(dynamic_cast<const TQButton *>(widget) || dynamic_cast<const TQComboBox *>(widget)))
return;
- if(FOCUS_LINE==opts.focus)
+ if(FOCUS_LINE==opts.focus || FOCUS_GLOW==opts.focus)
{
p->setPen(view && flags&Style_Selected
? cg.highlightedText()
@@ -4488,7 +4540,7 @@ void QtCurveStyle::drawTDEStylePrimitive(TDEStylePrimitive kpe, TQPainter *p, co
{
case KPE_ToolBarHandle:
{
- if(APPEARANCE_STRIPED!=opts.bgndAppearance)
+ if(APPEARANCE_STRIPED!=opts.bgndAppearance && APPEARANCE_FILE!=opts.bgndAppearance)
{
TQRect r2(r);
r2.addCoords(-1, -1, 2, 2);
@@ -4580,7 +4632,7 @@ void QtCurveStyle::drawTDEStylePrimitive(TDEStylePrimitive kpe, TQPainter *p, co
{
TQRect ar(r.x()+((r.width()-(LV_SIZE+4))>>1), r.y()+((r.height()-(LV_SIZE+4))>>1), LV_SIZE+4,
LV_SIZE+4);
-
+#if 0
if(LV_OLD==opts.lvLines)
{
int lo(ROUNDED ? 2 : 0);
@@ -4607,7 +4659,7 @@ void QtCurveStyle::drawTDEStylePrimitive(TDEStylePrimitive kpe, TQPainter *p, co
ar.y()+ar.height()-2);
}
}
-
+#endif
::drawArrow(p, ar, flags&Style_Enabled ? cg.mid() : cg.text(), flags&Style_On // Collapsed = On
? TQApplication::reverseLayout()
? PE_ArrowLeft
@@ -4660,7 +4712,9 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, const TQSty
itsHover(itsHoverTab && itsHoverTab->isEnabled() && data.tab()==itsHoverTab &&
!(flags&Style_Selected) &&
ceData.tabBarData.currentTabIndex!=tabIndex),
- glowMo(!active && itsHover && opts.coloredMouseOver && TAB_MO_GLOW==opts.tabMouseOver);
+ glowMo(!active && itsHover && opts.coloredMouseOver && TAB_MO_GLOW==opts.tabMouseOver),
+ thin(opts.thin&THIN_FRAMES),
+ drawOuterGlow(glowMo && !thin);
int sizeAdjust(!active && TAB_MO_GLOW==opts.tabMouseOver ? 1 : 0);
const TQColor &fill(getTabFill(flags&Style_Selected, itsHover, itsBackgroundCols));
EBorder borderProfile(active || opts.borderInactiveTab
@@ -4742,7 +4796,7 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, const TQSty
? (top ? ROUNDED_TOPRIGHT : ROUNDED_BOTTOMRIGHT)
: ROUNDED_NONE, glowMo ? itsMouseOverCols : 0L, top ? WIDGET_TAB_TOP : WIDGET_TAB_BOT, true,
borderProfile, false);
- if(glowMo)
+ if(drawOuterGlow)
{
glowTr.addCoords(-1, -1, 1, 1);
drawGlow(p, glowTr, cg, top ? WIDGET_TAB_TOP : WIDGET_TAB_BOT);
@@ -4756,16 +4810,22 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, const TQSty
p->setPen(itsBackgroundCols[STD_BORDER]);
p->drawPoint(r.x(), r.y()+r.height()-2);
p->drawPoint(r.x()+r.width()-1, r.y()+r.height()-2);
- p->setPen(itsBackgroundCols[0]);
- p->drawLine(r.x()+1, r.y()+r.height()-3, r.x()+1, r.y()+r.height()-1);
- //p->drawPoint(r.x()+r.width()-2, r.y()+r.height()-1);
- p->setPen(itsBackgroundCols[opts.borderTab ? 0 : FRAME_DARK_SHADOW]);
- p->drawPoint(r.x()+r.width()-2, r.y()+r.height()-2);
+ if(!thin)
+ {
+ p->setPen(itsBackgroundCols[0]);
+ p->drawLine(r.x()+1, r.y()+r.height()-3, r.x()+1, r.y()+r.height()-1);
+ //p->drawPoint(r.x()+r.width()-2, r.y()+r.height()-1);
+ p->setPen(itsBackgroundCols[opts.borderTab ? 0 : FRAME_DARK_SHADOW]);
+ p->drawPoint(r.x()+r.width()-2, r.y()+r.height()-2);
+ }
}
else
{
- p->setPen(itsBackgroundCols[0]);
- p->drawLine(r.x(), r.y()+r.height()-1, r.x()+r.width()-1, r.y()+r.height()-1);
+ if(!thin)
+ {
+ p->setPen(itsBackgroundCols[0]);
+ p->drawLine(r.x(), r.y()+r.height()-1, r.x()+r.width()-1, r.y()+r.height()-1);
+ }
p->setPen(itsBackgroundCols[STD_BORDER]);
p->drawLine(r.x(), r.y()+r.height()-2, r.x()+r.width()-1, r.y()+r.height()-2);
@@ -4784,7 +4844,7 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, const TQSty
p->setPen(itsBackgroundCols[!active && TAB_MO_GLOW==opts.tabMouseOver && opts.round>ROUND_SLIGHT && !(opts.square&SQUARE_TAB_FRAME)
? ORIGINAL_SHADE : STD_BORDER]);
p->drawLine(x, r.y()+r.height()-1, x, r.height()-2);
- if(active)
+ if(active && !thin)
{
p->setPen(itsBackgroundCols[reverse ? dark : 0]);
p->drawLine(x2, r.y()+r.height()-1, x2, r.y()+r.height()-2);
@@ -4823,16 +4883,22 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, const TQSty
p->setPen(itsBackgroundCols[STD_BORDER]);
p->drawPoint(r.x(), r.y()+1);
p->drawPoint(r.x()+r.width()-1, r.y()+1);
- p->setPen(itsBackgroundCols[0]);
- p->drawLine(r.x()+1, r.y()+2, r.x()+1, r.y());
- p->setPen(itsBackgroundCols[opts.borderTab ? 0 : FRAME_DARK_SHADOW]);
- p->drawLine(r.x()+r.width()-2, r.y()+1, r.x()+r.width()-2, r.y());
- p->drawPoint(r.x()+r.width()-1, r.y());
+ if(!thin)
+ {
+ p->setPen(itsBackgroundCols[0]);
+ p->drawLine(r.x()+1, r.y()+2, r.x()+1, r.y());
+ p->setPen(itsBackgroundCols[opts.borderTab ? 0 : FRAME_DARK_SHADOW]);
+ p->drawLine(r.x()+r.width()-2, r.y()+1, r.x()+r.width()-2, r.y());
+ p->drawPoint(r.x()+r.width()-1, r.y());
+ }
}
else
{
- p->setPen(itsBackgroundCols[opts.borderTab ? 0 : dark]);
- p->drawLine(r.x(), r.y(), r.x()+r.width()-1, r.y());
+ if(!thin)
+ {
+ p->setPen(itsBackgroundCols[opts.borderTab ? 0 : dark]);
+ p->drawLine(r.x(), r.y(), r.x()+r.width()-1, r.y());
+ }
p->setPen(itsBackgroundCols[STD_BORDER]);
p->drawLine(r.x(), r.y()+1, r.x()+r.width()-1, r.y()+1);
@@ -5055,6 +5121,7 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, const TQSty
if(data.isDefault())
break;
+ //const TQPopupMenu *popupmenu((const QPopupMenu *)widget);
TQMenuItem *mi(data.menuItem());
int tab(data.tabWidth()),
maxpmw(data.maxIconWidth()),
@@ -5069,20 +5136,17 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, const TQSty
else
{
if(IS_FLAT_BGND(opts.menuBgndAppearance))
- p->fillRect(r, USE_LIGHTER_POPUP_MENU ? itsLighterPopupMenuBgndCol
- : itsBackgroundCols[ORIGINAL_SHADE]);
+ p->fillRect(r, popupMenuCol(cg));
if(opts.menuStripe)
- drawBevelGradient(menuStripeCol(), p,
+ drawBevelGradient(menuStripeCol(cg), p,
TQRect(reverse ? r.right()-maxpmw : r.x(),
r.y(), maxpmw, r.height()), false,
false, opts.menuStripeAppearance, WIDGET_OTHER);
}
if((flags&Style_Active) && (flags&Style_Enabled))
- drawMenuItem(p, r, flags, cg, false, ROUNDED_ALL,
- USE_LIGHTER_POPUP_MENU ? itsLighterPopupMenuBgndCol
- : itsBackgroundCols[ORIGINAL_SHADE],
+ drawMenuItem(p, r, flags, cg, false, ROUNDED_ALL, popupMenuCol(cg),
opts.useHighlightForMenu ? itsHighlightCols : itsBackgroundCols);
if(!mi)
@@ -5091,7 +5155,7 @@ void QtCurveStyle::drawControl(ControlElement control, TQPainter *p, const TQSty
if(mi->isSeparator())
{
y=r.y()+(r.height()>>1);
- p->setPen(itsBackgroundCols[MENU_SEP_SHADE]);
+ p->setPen(popupMenuCols(cg)[MENU_SEP_SHADE]);
p->drawLine(r.x()+3+(!reverse && opts.menuStripe ? maxpmw : 0), y,
r.x()+r.width()-4-(reverse && opts.menuStripe ? maxpmw : 0), y);
// p->setPen(itsBackgroundCols[0]);
@@ -5667,11 +5731,29 @@ void QtCurveStyle::drawComplexControl(ComplexControl control, TQPainter *p, cons
break;
bflags|=DW_CLOSE_BUTTON;
}
-
+
if (!tb && !onExtender && (elementFlags & CEF_HasParentWidget) &&
!qstrcmp(ceData.parentWidgetData.name.ascii(), "qt_maxcontrols"))
onControlButtons = true;
+ int round(ROUNDED_ALL), leftAdjust(0), topAdjust(0), rightAdjust(0), bottomAdjust(0);
+ bool horizTBar(true),
+ raised(!onControlButtons && (TBTN_RAISED==opts.tbarBtns || TBTN_JOINED==opts.tbarBtns));
+
+ if(raised)
+ {
+ if(tb)
+ {
+ if(TBTN_JOINED==opts.tbarBtns)
+ {
+ horizTBar=Qt::Horizontal==tb->orientation();
+ adjustToolbarButtons(widget, tb, leftAdjust, topAdjust, rightAdjust, bottomAdjust, round);
+ }
+ }
+ else
+ raised=false;
+ }
+
if(active & SC_ToolButton)
bflags |=Style_Down;
if(active & SC_ToolButtonMenu)
@@ -5688,10 +5770,9 @@ void QtCurveStyle::drawComplexControl(ComplexControl control, TQPainter *p, cons
// If we're pressed, on, or raised...
#if defined TQTC_TQT_ONLY || !defined TDE_VERSION
- if(bflags &(Style_Down | Style_On | Style_Raised) || onControlButtons)
+ if(bflags &(Style_Down | Style_On | Style_Raised) || onControlButtons || raised)
#else
- if(bflags &(Style_Down | Style_On | Style_Raised | Style_MouseOver) ||
- onControlButtons)
+ if(bflags &(Style_Down | Style_On | Style_Raised | Style_MouseOver) || onControlButtons || raised)
#endif
{
//Make sure the standalone toolbuttons have a gradient in the right direction
@@ -5707,10 +5788,35 @@ void QtCurveStyle::drawComplexControl(ComplexControl control, TQPainter *p, cons
}
}
+ if(raised && TBTN_JOINED==opts.tbarBtns && !horizTBar)
+ bflags &= ~Style_Horizontal;
+
if(elementFlags & CEF_BiState)
bflags|=TOGGLE_BUTTON;
- drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, button, cg, bflags, data);
+ const TQColor *use(buttonColors(cg));
+
+ TQRect btnRect(r);
+
+ btnRect.addCoords(leftAdjust, topAdjust, rightAdjust, bottomAdjust);
+ drawLightBevel(cg.background(), p, btnRect, cg, bflags, round, getFill(bflags, use), use, true, true, WIDGET_STD_BUTTON);
+
+ if(raised && TBTN_JOINED==opts.tbarBtns)
+ {
+ const int constSpace=opts.fadeLines ? 7 : 4;
+
+ p->setPen(use[0]);
+ if(leftAdjust)
+ p->drawLine(r.x(), r.y()+constSpace, r.x(), r.height()-(constSpace+1));
+ if(topAdjust)
+ p->drawLine(r.x()+constSpace, r.y(), r.width()-(constSpace+1), r.y());
+ p->setPen(use[STD_BORDER]);
+ if(rightAdjust)
+ p->drawLine(r.x()+r.width()-1, r.y()+constSpace, r.x()+r.width()-1, r.height()-(constSpace+1));
+ if(bottomAdjust)
+ p->drawLine(r.x()+constSpace, r.y()+r.height()-1, r.width()-(constSpace+1), r.y()+r.height()-1);
+ }
+ //drawPrimitive(PE_ButtonTool, p, button, cg, bflags, data);
}
// Check whether to draw a background pixmap
@@ -5956,7 +6062,7 @@ void QtCurveStyle::drawComplexControl(ComplexControl control, TQPainter *p, cons
{
bool glowFocus(USE_GLOW_FOCUS(flags&Style_MouseOver) && flags&Style_HasFocus && flags&Style_Enabled);
- if(!sunken && !editable &&
+ if(!sunken && !editable && !(opts.thin&THIN_FRAMES) &&
((MO_GLOW==opts.coloredMouseOver && flags&Style_MouseOver)/* ||
(FOCUS_FULL==opts.focus && flags&Style_HasFocus)*/ || glowFocus))
drawGlow(p, widget ? TQT_TQRECT_OBJECT(ceData.rect) : r, cg, WIDGET_COMBO, glowFocus ? itsFocusCols : NULL);
@@ -5973,6 +6079,7 @@ void QtCurveStyle::drawComplexControl(ComplexControl control, TQPainter *p, cons
{
itsFormMode = isFormWidget(widget);
+ //const TQSpinWidget *spinwidget((const QSpinWidget *)widget);
TQRect frame(querySubControlMetrics(CC_SpinWidget, ceData, elementFlags, SC_SpinWidgetFrame,
data, widget)),
up(ceData.spinWidgetData.upRect),
@@ -6909,22 +7016,21 @@ TQSize QtCurveStyle::sizeFromContents(ContentsType contents, const TQStyleContro
w=constMinW;
}
- return TQSize(w, contentsSize.height() + margin+(DO_EFFECT && !isFormWidget(widget) && !opts.thinnerBtns
- ? 6 : 4));
+ return TQSize(w, contentsSize.height() + margin+(DO_EFFECT && !isFormWidget(widget) && !(opts.thin&THIN_BUTTONS) ? 6 : 4));
}
break;
}
case CT_ComboBox:
{
TQSize sz(BASE_STYLE::sizeFromContents(contents, ceData, elementFlags, contentsSize, data, widget));
- return TQSize(sz.width(), sz.height()+(DO_EFFECT && !isFormWidget(widget) && !opts.thinnerBtns ? 4 : 2));
+ return TQSize(sz.width(), sz.height()+(DO_EFFECT && !isFormWidget(widget) && !(opts.thin&THIN_BUTTONS) ? 4 : 2));
}
case CT_PopupMenuItem:
{
if (!widget || data.isDefault())
break;
- const int constMinH(opts.thinnerMenuItems ? 25 : 27);
+ const int constMinH((opts.thin&THIN_MENU_ITEMS) ? 25 : 27);
TQMenuItem *mi(data.menuItem());
int maxpmw(data.maxIconWidth()),
@@ -6956,7 +7062,7 @@ TQSize QtCurveStyle::sizeFromContents(ContentsType contents, const TQStyleContro
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);
+ h+=((opts.thin&THIN_MENU_ITEMS) ? 2 : 4);
}
// check | 4 pixels | item | 8 pixels | accel | 4 pixels | check
@@ -7181,12 +7287,11 @@ void QtCurveStyle::drawMenuItem(TQPainter *p, const TQRect &r, int flags, const
if(ROUNDED)
{
main.addCoords(-1, -1, 1, 1);
- drawBorder(USE_LIGHTER_POPUP_MENU ? itsLighterPopupMenuBgndCol : itsBackgroundCols[ORIGINAL_SHADE], p, main,
- cg, Style_Horizontal|Style_Raised, reverse ? ROUNDED_RIGHT : ROUNDED_LEFT,
+ drawBorder(popupMenuCol(cg), p, main, cg, Style_Horizontal|Style_Raised, reverse ? ROUNDED_RIGHT : ROUNDED_LEFT,
cols, WIDGET_MENU_ITEM, false, BORDER_FLAT, false, fill);
}
- TQColor bgnd(USE_LIGHTER_POPUP_MENU ? itsLighterPopupMenuBgndCol : itsBackgroundCols[ORIGINAL_SHADE]);
+ TQColor bgnd(popupMenuCol(cg));
drawGradient(reverse ? bgnd : cols[fill], reverse ? cols[fill] : bgnd, p, fade, false);
}
else if(mbi || opts.borderMenuitems)
@@ -7785,7 +7890,8 @@ void QtCurveStyle::drawSliderGroove(TQPainter *p, const TQRect &r, const TQColor
void QtCurveStyle::drawMenuOrToolBarBackground(TQPainter *p, const TQRect &r, const TQColorGroup &cg,
bool menu, bool horiz) const
{
- if(menu && APPEARANCE_STRIPED==opts.bgndAppearance && IS_FLAT(opts.menubarAppearance) && SHADE_NONE==opts.shadeMenubars)
+ if(menu && (APPEARANCE_STRIPED==opts.bgndAppearance || APPEARANCE_FILE==opts.bgndAppearance) &&
+ IS_FLAT(opts.menubarAppearance) && SHADE_NONE==opts.shadeMenubars)
return;
TQRect rx(r);
@@ -7889,6 +7995,20 @@ const TQColor * QtCurveStyle::buttonColors(const TQColorGroup &cg) const
return itsButtonCols;
}
+const TQColor * QtCurveStyle::popupMenuCols(const TQColorGroup &cg) const
+{
+ return opts.shadePopupMenu ? menuColors(cg, true) : backgroundColors(cg);
+}
+
+const TQColor & QtCurveStyle::popupMenuCol(const TQColorGroup &cg, int shade) const
+{
+ return opts.shadePopupMenu
+ ? menuColors(cg, true)[ORIGINAL_SHADE]
+ : USE_LIGHTER_POPUP_MENU
+ ? itsLighterPopupMenuBgndCol
+ : itsBackgroundCols[shade];
+}
+
const TQColor * QtCurveStyle::checkRadioColors(const TQColorGroup &cg, SFlags flags) const
{
return opts.crColor && flags&Style_Enabled && (flags&Style_On || !(flags&Style_Off))
@@ -7968,6 +8088,58 @@ void QtCurveStyle::setMenuColors(const TQColorGroup &cg)
}
}
+void QtCurveStyle::setMenuTextColors(TQWidget *widget, bool isMenuBar) const
+{
+ if(SHADE_WINDOW_BORDER==opts.shadeMenubars)
+ {
+ TQPalette pal(widget->palette());
+
+ getMdiColors(pal.active(), false);
+
+ pal.setBrush(TQPalette::Active, TQColorGroup::Foreground, itsActiveMdiTextColor);
+ pal.setBrush(TQPalette::Active, TQColorGroup::Text, pal.brush(TQPalette::Active, TQColorGroup::Foreground));
+ if(isMenuBar)
+ {
+ pal.setBrush(TQPalette::Inactive, TQColorGroup::Foreground,
+ opts.shadeMenubarOnlyWhenActive ? itsMdiTextColor : itsActiveMdiTextColor);
+ pal.setBrush(TQPalette::Inactive, TQColorGroup::Text, pal.brush(TQPalette::Inactive, TQColorGroup::Foreground));
+ }
+ else if(opts.shadePopupMenu)
+ {
+ pal.setBrush(TQPalette::Disabled, TQColorGroup::Foreground, midColor(itsActiveMdiTextColor, popupMenuCol(pal.active())));
+ pal.setBrush(TQPalette::Disabled, TQColorGroup::Text, pal.brush(TQPalette::Disabled, TQColorGroup::Foreground));
+ }
+
+ widget->setPalette(pal);
+ }
+ else if(opts.customMenuTextColor || SHADE_BLEND_SELECTED==opts.shadeMenubars ||
+ SHADE_SELECTED==opts.shadeMenubars ||
+ (SHADE_CUSTOM==opts.shadeMenubars && TOO_DARK(itsMenubarCols[ORIGINAL_SHADE])))
+ {
+ TQPalette pal(widget->palette());
+
+ pal.setBrush(TQPalette::Active, TQColorGroup::Foreground, opts.customMenuTextColor
+ ? opts.customMenuNormTextColor
+ : pal.active().highlightedText());
+ pal.setBrush(TQPalette::Active, TQColorGroup::Text, pal.brush(TQPalette::Active, TQColorGroup::Foreground));
+
+ if(isMenuBar && !opts.shadeMenubarOnlyWhenActive)
+ {
+ pal.setBrush(TQPalette::Inactive, TQColorGroup::Foreground, opts.customMenuTextColor
+ ? opts.customMenuNormTextColor
+ : pal.active().highlightedText());
+ pal.setBrush(TQPalette::Inactive, TQColorGroup::Text, pal.brush(TQPalette::Inactive, TQColorGroup::Foreground));
+ }
+ else if(!isMenuBar && opts.shadePopupMenu)
+ {
+ pal.setBrush(TQPalette::Disabled, TQColorGroup::Foreground,
+ midColor(pal.brush(TQPalette::Active, TQColorGroup::Foreground).color(), popupMenuCol(pal.active())));
+ pal.setBrush(TQPalette::Disabled, TQColorGroup::Text, pal.brush(TQPalette::Disabled, TQColorGroup::Foreground));
+ }
+ widget->setPalette(pal);
+ }
+}
+
const TQColor * QtCurveStyle::menuColors(const TQColorGroup &cg, bool active) const
{
return SHADE_WINDOW_BORDER==opts.shadeMenubars
@@ -8102,8 +8274,8 @@ const TQColor * QtCurveStyle::getMdiColors(const TQColorGroup &cg, bool active)
}
}
- if(itsMdiColors && opts.shadeMenubarOnlyWhenActive && SHADE_WINDOW_BORDER==opts.shadeMenubars &&
- itsActiveMdiColors[ORIGINAL_SHADE]==itsMdiColors[ORIGINAL_SHADE])
+ if(opts.shadeMenubarOnlyWhenActive && SHADE_WINDOW_BORDER==opts.shadeMenubars &&
+ itsActiveMdiColors && itsMdiColors && itsActiveMdiColors[ORIGINAL_SHADE]==itsMdiColors[ORIGINAL_SHADE])
opts.shadeMenubarOnlyWhenActive=false;
if(!itsActiveMdiColors) {
@@ -8427,7 +8599,7 @@ const TQColor & QtCurveStyle::getTabFill(bool current, bool highlight, const TQC
: use[2];
}
-const TQColor & QtCurveStyle::menuStripeCol() const
+const TQColor & QtCurveStyle::menuStripeCol(const TQColorGroup &cg) const
{
switch(opts.menuStripe)
{
@@ -8439,17 +8611,12 @@ const TQColor & QtCurveStyle::menuStripeCol() const
case SHADE_BLEND_SELECTED:
// Hack! Use opts.customMenuStripeColor to store this setting!
if(IS_BLACK(opts.customMenuStripeColor))
- opts.customMenuStripeColor=midColor(itsHighlightCols[ORIGINAL_SHADE],
- opts.lighterPopupMenuBgnd<0
- ? itsLighterPopupMenuBgndCol
- : itsBackgroundCols[ORIGINAL_SHADE]);
+ opts.customMenuStripeColor=midColor(itsHighlightCols[ORIGINAL_SHADE], popupMenuCol(cg));
return opts.customMenuStripeColor;
case SHADE_SELECTED:
return itsHighlightCols[MENU_STRIPE_SHADE];
case SHADE_DARKEN:
- return USE_LIGHTER_POPUP_MENU
- ? itsLighterPopupMenuBgndCol
- : itsBackgroundCols[MENU_STRIPE_SHADE];
+ return popupMenuCol(cg);
}
}
diff --git a/style/qtcurve.h b/style/qtcurve.h
index a060102..5bd78ca 100644
--- a/style/qtcurve.h
+++ b/style/qtcurve.h
@@ -217,6 +217,8 @@ class QtCurveStyle : public BASE_STYLE
void shadeColors(const TQColor &base, TQColor *vals) const;
const TQColor * buttonColors(const TQColorGroup &cg) const;
+ const TQColor * popupMenuCols(const TQColorGroup &cg) const;
+ const TQColor & popupMenuCol(const TQColorGroup &cg, int shade=ORIGINAL_SHADE) const;
const TQColor * checkRadioColors(const TQColorGroup &cg, SFlags flags) const;
const TQColor * sliderColors(/*const TQColorGroup &cg, */SFlags flags) const;
const TQColor * backgroundColors(const TQColor &c) const;
@@ -225,6 +227,7 @@ class QtCurveStyle : public BASE_STYLE
const TQColor * borderColors(SFlags flags, const TQColor *use) const;
const TQColor * getSidebarButtons() const;
void setMenuColors(const TQColorGroup &cg);
+ void setMenuTextColors(TQWidget *widget, bool isMenuBar) const;
const TQColor * menuColors(const TQColorGroup &cg, bool active) const;
void setDecorationColors(bool init=false);
const TQColor * getMdiColors(const TQColorGroup &cg, bool active) const;
@@ -235,7 +238,7 @@ class QtCurveStyle : public BASE_STYLE
const TQColor & getFill(SFlags flags, const TQColor *use, bool cr=false, bool darker=false) const;
const TQColor & getListViewFill(SFlags flags, const TQColor *use) const;
const TQColor & getTabFill(bool current, bool highlight, const TQColor *use) const;
- const TQColor & menuStripeCol() const;
+ const TQColor & menuStripeCol(const TQColorGroup &cg) const;
const TQColor & checkRadioCol(SFlags flags, const TQColorGroup &cg) const;
TQColor shade(const TQColor &a, float k) const;
void shade(const color &ca, color *cb, double k) const;