Updated to QtCurve version 1.7.1.

Based on the original GPL2 QtCurve code from Craig Drummond <craig.p.drummond@gmail.com> available at https://github.com/KDE/qtcurve

Signed-off-by: TCH <tch@protonmail.com>
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit 82fe64d550)
r14.0.x
TCH 5 years ago committed by Michele Calgaro
parent 87c411bee0
commit 579d92c0eb
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -19,8 +19,8 @@ set(DEBIAN_PACKAGE_DESCRIPTION "QtCurve for TQt/TDE")
set(DEBIAN_PACKAGE_SECTION "tde")
set(CPACK_SOURCE_GENERATOR "TBZ2")
set(CPACK_PACKAGE_VERSION_MAJOR "1")
set(CPACK_PACKAGE_VERSION_MINOR "6")
set(CPACK_PACKAGE_VERSION_PATCH "2")
set(CPACK_PACKAGE_VERSION_MINOR "7")
set(CPACK_PACKAGE_VERSION_PATCH "1")
set(CPACK_PACKAGE_CONTACT "Craig Drummond <craig.p.drummond@gmail.com>")
set(QTCURVE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
set(QTCURVE_VERSION_FULL "${QTCURVE_VERSION}.${CPACK_PACKAGE_VERSION_PATCH}")

@ -1,3 +1,21 @@
1.7.1
-----
1. Remove box around arrow in listview lines - to match Gtk better.
1.7.0
-----
1. Add option to use tiled pixmap as background for windows and menus.
2. Draw line focus for items that cannot use glow focus.
3. Use popup menu gradient's border setting to determine border type of menus.
4. Add option to draw standard, raised, or joined toolbar buttons.
5. Add option to use thinner frames, focus, etc.
6. If not rounding, enable all 'square' options.
7. Store background colour setting in XProperty - so that this can be used by
QtCurve twin decoration.
8. Implement shading popup menus as per memubar settings.
9. Fix segfault when obtaining MDI colours.
10. Dont overwrite user supplied CMAKE_INSTALL_PREFIX
1.6.2
-----
1. Disable the support for 'fix parent-less dialog' option - this causes too many

@ -296,6 +296,10 @@ enum
#define SIZE_GRIP_SIZE 12
#define USE_LIGHTER_POPUP_MENU (opts.lighterPopupMenuBgnd)
#define USE_BORDER(B) (GB_SHINE!=(B) && GB_NONE!=(B))
#define DRAW_MENU_BORDER (APPEARANCE_FLAT!=opts.menuBgndAppearance && opts.version>=MAKE_VERSION(1,7) && \
USE_BORDER(getGradient(opts.menuBgndAppearance, &opts)->border))
#define USE_GLOW_FOCUS(mouseOver) (FOCUS_GLOW==opts.focus && (MO_GLOW!=opts.coloredMouseOver || !(mouseOver)))
#define USE_SHADED_MENU_BAR_COLORS (SHADE_CUSTOM==opts.shadeMenubars || SHADE_BLEND_SELECTED==opts.shadeMenubars)
@ -550,6 +554,32 @@ typedef enum
IMG_FILE
} EImageType;
typedef struct
{
#if defined __cplusplus
TQString file;
TQPixmap img;
#else // __cplusplus
const char *file;
GdkPixbuf *img;
#endif // __cplusplus
} TQtCPixmap;
#define BGND_IMG_ON_BORDER (IMG_FILE==opts.bgndImage.type && opts.bgndImage.onBorder)
typedef enum
{
PP_TL,
PP_TM,
PP_TR,
PP_BL,
PP_BM,
PP_BR,
PP_LM,
PP_RM,
PP_CENTRED,
} EPixPos;
typedef struct
{
EImageType type;
@ -564,6 +594,13 @@ typedef struct
int width, height;
} TQtCImage;
typedef enum
{
THIN_BUTTONS = 0x0001,
THIN_MENU_ITEMS = 0x0002,
THIN_FRAMES = 0x0004
} EThinFlags;
typedef enum
{
SQUARE_NONE = 0x0000,
@ -713,6 +750,7 @@ typedef enum
APPEARANCE_FADE, /* Only for poupmenu items! */
APPEARANCE_STRIPED = APPEARANCE_FADE, /* Only for windows and menus */
APPEARANCE_NONE = APPEARANCE_FADE, /* Only for titlebars */
APPEARANCE_FILE, /* Only for windows and menus */
APPEARANCE_LV_BEVELLED, /* To be used only with getGradient */
APPEARANCE_AGUA_MOD,
APPEARANCE_LV_AGUA,
@ -775,6 +813,13 @@ typedef enum
TB_DARK_ALL
} ETBarBorder;
typedef enum
{
TBTN_STANDARD,
TBTN_RAISED,
TBTN_JOINED
} ETBarBtn;
typedef enum
{
BORDER_FLAT,
@ -1056,7 +1101,8 @@ typedef struct
splitterHighlight,
crSize,
gbFactor,
gbLabel;
gbLabel,
thin;
ERound round;
bool embolden,
highlightTab,
@ -1088,8 +1134,8 @@ typedef struct
mapKdeIcons,
#if defined CONFIG_DIALOG || ( defined QT4_OR_ABOVE) || !defined __cplusplus
gtkButtonOrder,
fadeLines,
#endif
fadeLines,
reorderGtkButtons,
borderMenuitems,
colorMenubarMouseOver,
@ -1154,6 +1200,7 @@ typedef struct
ESliderStyle sliderStyle;
EMouseOver coloredMouseOver;
ETBarBorder toolbarBorders;
ETBarBtn tbarBtns;
EDefBtnIndicator defBtnIndicator;
ELine sliderThumbs,
handles,
@ -1221,6 +1268,8 @@ typedef struct
#else
Gradient *customGradient[NUM_CUSTOM_GRAD];
#endif
TQtCPixmap bgndPixmap;
TQtCPixmap menuBgndPixmap;
TQtCImage bgndImage,
menuBgndImage;
#if !defined __cplusplus || ( defined QT4_OR_ABOVE)

File diff suppressed because it is too large Load Diff

@ -158,8 +158,11 @@ void setBgndProp(TQWidget *widget, unsigned short app)
if(w)
{
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);
}
}
@ -186,6 +189,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()
@ -1419,6 +1455,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)
@ -1479,8 +1544,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()))
{
@ -1547,8 +1615,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))
@ -1623,39 +1690,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))
{
@ -1663,7 +1698,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())))
@ -1837,7 +1875,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);
}
@ -2096,12 +2134,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,
@ -2324,7 +2367,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))
{
@ -2688,7 +2732,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)/* ||
@ -2797,6 +2841,7 @@ void QtCurveStyle::drawBorder(const TQColor &bgnd, TQPainter *p, const TQRect &r
if(WIDGET_TAB_BOT==w || WIDGET_TAB_TOP==w)
cols=itsBackgroundCols;
if(!(opts.thin&THIN_FRAMES))
switch(borderProfile)
{
case BORDER_FLAT:
@ -3940,27 +3985,34 @@ 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->setPen(use[0]);
if(GB_LIGHT==border)
p->drawRect(TQRect(r.x()+1, r.y()+1, r.width()-2, r.height()-2));
}
else
{
p->setPen(use[0]);
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 if(IS_FLAT_BGND(opts.menuBgndAppearance))
{
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;
}
case PE_TabBarBase:
@ -4253,7 +4305,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()
@ -4492,7 +4544,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);
@ -4584,7 +4636,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);
@ -4611,7 +4663,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
@ -4664,7 +4716,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
@ -4746,7 +4800,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);
@ -4760,16 +4814,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);
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
{
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);
@ -4788,7 +4848,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);
@ -4827,16 +4887,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);
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
{
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);
@ -5059,6 +5125,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()),
@ -5073,20 +5140,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)
@ -5095,7 +5159,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]);
@ -5676,6 +5740,24 @@ void QtCurveStyle::drawComplexControl(ComplexControl control, TQPainter *p, cons
!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)
@ -5692,10 +5774,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
@ -5711,10 +5792,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
@ -5960,7 +6066,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);
@ -5977,6 +6083,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),
@ -6913,22 +7020,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()),
@ -6960,7 +7066,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
@ -7185,12 +7291,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)
@ -7789,7 +7894,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);
@ -7893,6 +7999,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))
@ -7972,6 +8092,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
@ -8106,8 +8278,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) {
@ -8431,7 +8603,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)
{
@ -8443,17 +8615,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);
}
}

@ -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;

Loading…
Cancel
Save