summaryrefslogtreecommitdiffstats
path: root/kstyles/asteroid/asteroid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kstyles/asteroid/asteroid.cpp')
-rw-r--r--kstyles/asteroid/asteroid.cpp2639
1 files changed, 0 insertions, 2639 deletions
diff --git a/kstyles/asteroid/asteroid.cpp b/kstyles/asteroid/asteroid.cpp
deleted file mode 100644
index 7119af5a8..000000000
--- a/kstyles/asteroid/asteroid.cpp
+++ /dev/null
@@ -1,2639 +0,0 @@
-/*
- * KDE3 asteroid style (version 1.0)
- *
- * Copyright (C) 2003, Chris Lee <clee@kde.org>
- * Modified by David Chester in 2004 for Munjoy Linux
- *
- * See LICENSE for details about copying.
- */
-
-/* Required. Period. */
-#include <tqstyleplugin.h>
-#include <tqstylefactory.h>
-#include <tqpainter.h>
-#include <tqapplication.h>
-
-#include <tqpopupmenu.h>
-#include <tqmenubar.h>
-#include <tqheader.h>
-#include <tqcombobox.h>
-#include <tqlistbox.h>
-#include <tqslider.h>
-#include <tqpushbutton.h>
-#include <tqtextedit.h>
-#include <tqlineedit.h>
-#include <tqtoolbar.h>
-#include <tqcheckbox.h>
-#include <tqradiobutton.h>
-#include <tqprogressbar.h>
-#include <tqtabwidget.h>
-#include <tqtabbar.h>
-#include <tqgroupbox.h>
-#include <tqtoolbutton.h>
-#include <tqdockwindow.h>
-#include <tqtooltip.h>
-#include <tqdrawutil.h>
-#include <tqlistview.h>
-#include <tqcleanuphandler.h>
-
-#include <kpixmap.h>
-
-#include <tqbitmap.h>
-#define u_arrow -4,1, 2,1, -3,0, 1,0, -2,-1, 0,-1, -1,-2
-#define d_arrow -4,-2, 2,-2, -3,-1, 1,-1, -2,0, 0,0, -1,1
-#define l_arrow 0,-3, 0,3, -1,-2, -1,2, -2,-1, -2,1, -3,0
-#define r_arrow -2,-3, -2,3, -1,-2, -1,2, 0,-1, 0,1, 1,0
-
-#include "asteroid.h"
-
-// #define MINIMUM_PUSHBUTTON_WIDTH 75;
-// #define MINIMUM_PUSHBUTTON_HEIGHT 23;
-#define MINIMUM_PUSHBUTTON_WIDTH 73;
-#define MINIMUM_PUSHBUTTON_HEIGHT 21;
-
-#define ETCH_X_OFFSET 1
-#define ETCH_Y_OFFSET 1
-
-#define SPINBOX_BUTTON_WIDTH 12
-
-//#define POPUPMENUITEM_TEXT_ETCH_CONDITIONS ( etchtext && !enabled && !active )
-#define POPUPMENUITEM_TEXT_ETCH_CONDITIONS ( etchtext && !enabled )
-
-#define PUSHBUTTON_TEXT_ETCH_CONDITIONS ( etchtext && !enabled )
-#define HEADER_TEXT_ETCH_CONDITIONS ( etchtext && !enabled )
-#define TABBAR_TEXT_ETCH_CONDITIONS ( etchtext && !enabled )
-#define CHECKBOX_TEXT_ETCH_CONDITIONS ( etchtext && !enabled )
-#define RADIOBUTTON_TEXT_ETCH_CONDITIONS ( etchtext && !enabled )
-
-/* Hackery to make metasources work */
-#include "asteroid.moc"
-
-/* TQStyleFactory stuff. Required. */
-class AsteroidStylePlugin : public TQStylePlugin
-{
-public:
- AsteroidStylePlugin() {}
- ~AsteroidStylePlugin() {}
-
- TQStringList keys() const {
- return TQStringList() << "Asteroid";
- }
-
- TQStyle *create(const TQString &key) {
- if (key == "asteroid") {
- return new AsteroidStyle;
- }
- return 0;
- }
-};
-
-TQ_EXPORT_PLUGIN(AsteroidStylePlugin);
-
-/* Ok, now we get to the good stuff. */
-
-AsteroidStyle::AsteroidStyle() : TDEStyle(AllowMenuTransparency)
-{
- if (tqApp->inherits("TDEApplication")) {
- connect(tqApp, TQT_SIGNAL(tdedisplayPaletteChanged()), TQT_SLOT(paletteChanged()));
- }
-
- backwards = TQApplication::reverseLayout();
-}
-
-AsteroidStyle::~AsteroidStyle()
-{
-/* The destructor is empty for now, but any member pointers should
- * get deleted here. */
-}
-
-void AsteroidStyle::polish(const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void *ptr)
-{
- if (ceData.widgetObjectTypes.contains(TQWIDGET_OBJECT_NAME_STRING)) {
- TQWidget *w = reinterpret_cast<TQWidget*>(ptr);
-/* Screwing with the palette is fun! and required in order to make it feel
- authentic. -clee */
- TQPalette wp = w->palette();
- //wp.setColor(TQColorGroup::Dark, wp.active().color(TQColorGroup::Button).dark(350));
- wp.setColor(TQColorGroup::Dark, TQColor(128, 128, 128));
- wp.setColor(TQColorGroup::Mid, wp.active().color(TQColorGroup::Button).dark(150)); // Which GUI element(s) does this correspond to?
-
- bool isProtectedObject = false;
- TQObject *curparent = TQT_TQOBJECT(w);
- while (curparent) {
- if (curparent->inherits("KonqFileTip") || curparent->inherits("AppletItem")
- || curparent->inherits("KJanusWidget")
- ) {
- isProtectedObject = true;
- }
- curparent = curparent->parent();
- }
- if ((w->parent()) && (!w->ownPalette())) {
- isProtectedObject = true;
- }
- if (!isProtectedObject) {
- w->setPalette(wp);
- }
- }
-
- if (ceData.widgetObjectTypes.contains(TQPUSHBUTTON_OBJECT_NAME_STRING)) {
- installObjectEventHandler(ceData, elementFlags, ptr, this);
- }
- else {
- TDEStyle::polish(ceData, elementFlags, ptr);
- }
-}
-
-void AsteroidStyle::unPolish(const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void *ptr)
-{
- TDEStyle::unPolish(ceData, elementFlags, ptr);
-}
-
-/*!
- \reimp
-
- Changes some application-wide settings
-*/
-void
-AsteroidStyle::applicationPolish(const TQStyleControlElementData&, ControlElementFlags, void *)
-{
- TQPalette wp = TQApplication::palette();
- wp.setColor(TQColorGroup::Dark, TQColor(128, 128, 128));
- wp.setColor(TQColorGroup::Mid, wp.active().color(TQColorGroup::Button).dark(150)); // Which GUI element(s) does this correspond to?
- TQApplication::setPalette( wp, TRUE );
-}
-
-/*! \reimp
-*/
-void
-AsteroidStyle::applicationUnPolish(const TQStyleControlElementData&, ControlElementFlags, void *)
-{
-
-}
-
-void AsteroidStyle::renderMenuBlendPixmap(KPixmap &pix,
- const TQColorGroup &cg,
- const TQPopupMenu *) const
-{
- TQPainter p(&pix);
-
- p.fillRect(0, 0, pix.width(), pix.height(), cg.background());
-}
-
-void AsteroidStyle::drawTDEStylePrimitive(TDEStylePrimitive ksp,
- TQPainter *p,
- const TQStyleControlElementData &ceData,
- ControlElementFlags elementFlags,
- const TQRect &r,
- const TQColorGroup &cg,
- SFlags sf,
- const TQStyleOption &o,
- const TQWidget *w) const
-{
- switch (ksp) {
-
- case KPE_SliderGroove: {
- int x, y, v, h;
- r.rect(&x, &y, &v, &h);
- bool horizontal = ceData.orientation == TQt::Horizontal;
- int gcenter = (horizontal ? h : v) / 2;
- int pad = 3;
-
- /*p->setPen(cg.background());
- p->setBrush(cg.background());
- p->drawRect(r);*/
-
- if (horizontal) {
- gcenter += y;
- p->setPen (cg.background().dark());
- p->drawLine(x+pad, gcenter-1, x+v-pad, gcenter-1);
- p->drawPoint(x+pad, gcenter);
- p->setPen (cg.background().light());
- p->drawLine(x+pad, gcenter+1, x+v-pad, gcenter+1);
- p->drawLine(x+v-pad, gcenter, x+v-pad, gcenter-1);
- } else {
- gcenter += x;
- p->setPen (cg.background().dark());
- p->drawLine(gcenter-1, y+pad, gcenter-1, y+h-pad);
- p->drawPoint(gcenter, y+pad);
- p->setPen (cg.background().light());
- p->drawLine(gcenter+1, y+pad, gcenter+1, y+h-pad);
- p->drawLine(gcenter, y+h-pad, gcenter-1, y+h-pad);
- }
- break;
- }
-
- case KPE_SliderHandle: {
-
- int x, y, x2, y2, xmin, xmax, ymin, ymax, v, h;
- int pcenter;
- r.coords(&xmin, &ymin, &xmax, &ymax);
- r.rect(&x, &y, &v, &h);
- bool horizontal = ceData.orientation == TQt::Horizontal;
-
- if (horizontal) {
- x = v / 5 + xmin;
- x2 = v * 4 / 5 + xmin;
- if (((x2 - x) % 2)) x2--;
- y2 = ymax - (x2 - x - 1) / 2;
- y = ymax - y2 + ymin;
- pcenter = (x2 - x) / 2 + x;
-
- p->setPen(cg.background());
- p->setBrush(cg.background());
- TQRect hr(x-1, y, x2-x+2, y2-y);
- p->drawRect(hr);
-
- p->setPen(cg.light());
- p->drawLine(x, y, x2-1, y);
- p->drawLine(x, y, x, y2);
- p->drawLine(x, y2, pcenter-1, ymax);
-
- p->setPen(cg.mid());
- p->drawLine(x2-1, y+1, x2-1, y2);
- p->drawLine(x2-1, y2, pcenter, ymax);
-
- p->setPen(cg.dark());
- p->drawLine(x2, y, x2, y2);
- p->drawLine(x2, y2, pcenter+1, ymax);
-
- }
- else {
- y = h / 5 + ymin;
- y2 = h * 4 / 5 + ymin;
- if (((y2 - y) % 2)) y2--;
- x2 = xmax - (y2 - y - 1) / 2;
- x = (xmax-x2) + xmin;
- pcenter = (y2 - y)/2 + y;
-
- p->setPen(cg.background());
- p->setBrush(cg.background());
- TQRect hr(x, y-1, x2-x, y2-y+2);
- p->drawRect(hr);
-
- p->setPen(cg.light());
- p->drawLine(x, y, x2-1, y);
- p->drawLine(x, y, x, y2-1);
- p->drawLine(x2, y, xmax, pcenter-1);
-
- p->setPen(cg.mid());
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2, y2-1, xmax, pcenter);
-
- p->setPen(cg.dark());
- p->drawLine(x, y2, x2, y2);
- p->drawLine(x2, y2, xmax, pcenter+1);
-
- }
-
- break;
- }
-
- default: {
- TDEStyle::drawTDEStylePrimitive(ksp, p, ceData, elementFlags, r, cg, sf, o, w);
- }
- }
-}
-
-int AsteroidStyle::styleHint( TQ_StyleHint stylehint,
- const TQStyleControlElementData &ceData,
- ControlElementFlags elementFlags,
- const TQStyleOption &option,
- TQStyleHintReturn* returnData,
- const TQWidget *widget ) const
-{
- switch (stylehint) {
- case SH_EtchDisabledText:
-// case SH_Slider_SnapToValue:
-// case SH_PrintDialog_RightAlignButtons:
-// case SH_MainWindow_SpaceBelowMenuBar:
-// case SH_FontDialog_SelectAssociatedText:
-// case SH_PopupMenu_AllowActiveAndDisabled:
-// case SH_MenuBar_AltKeyNavigation:
-// case SH_MenuBar_MouseTracking:
-// case SH_PopupMenu_MouseTracking:
-// case SH_ComboBox_ListMouseTracking:
-// case SH_ScrollBar_StopMouseOverSlider:
- return 1;
-
- case SH_MenuIndicatorColumnWidth: {
- return TQMAX(option.maxIconWidth(), 12);
- }
-
- default:
- return TDEStyle::styleHint(stylehint, ceData, elementFlags, option, returnData, widget);
- }
-}
-
-void AsteroidStyle::drawPrimitive(TQ_PrimitiveElement pe,
- TQPainter *p,
- const TQStyleControlElementData &ceData,
- ControlElementFlags elementFlags,
- const TQRect &r,
- const TQColorGroup &cg,
- SFlags sf,
- const TQStyleOption &o) const
-{
- int x, y, x2, y2, w, h;
- r.coords(&x, &y, &x2, &y2);
- r.rect(&x, &y, &w, &h);
-
- switch (pe) {
- /* Primitives to draw are:
-
- PE_ButtonCommand
- PE_ButtonDropDown
-
- PE_DockWindowSeparator
- PE_DockWindowResizeHandle
-
- PE_Splitter
-
- PE_PanelGroupBox
- PE_PanelTabWidget
- PE_TabBarBase
-
- PE_ProgressBarChunk
- PE_GroupBoxFrame
- PE_WindowFrame
- PE_SizeGrip
-
- PE_CheckMark
- PE_CheckListController
- PE_CheckListIndicator
- PE_CheckListExclusiveIndicator
-
- PE_ScrollBarFirst
- PE_ScrollBarLast
- */
-
- case PE_Splitter:
- {
- TQPen oldPen = p->pen();
- p->setPen(cg.background());
- p->drawRect(r);
- p->setPen( cg.light() );
-// if ( sf & Style_Horizontal ) {
-// p->drawLine( r.x() + 1, r.y(), r.x() + 1, r.height() );
-// p->setPen( cg.dark() );
-// p->drawLine( r.x(), r.y(), r.x(), r.height() );
-// p->drawLine( r.right()-1, r.y(), r.right()-1, r.height() );
-// p->setPen( cg.shadow() );
-// p->drawLine( r.right(), r.y(), r.right(), r.height() );
-// } else {
-// p->drawLine( r.x(), r.y() + 1, r.width(), r.y() + 1 );
-// p->setPen( cg.dark() );
-// p->drawLine( r.x(), r.bottom() - 1, r.width(), r.bottom() - 1 );
-// p->setPen( cg.shadow() );
-// p->drawLine( r.x(), r.bottom(), r.width(), r.bottom() );
-// }
- p->setPen( oldPen );
- break;
- }
-
- case PE_FocusRect: {
- p->drawWinFocusRect(r, cg.background());
- break;
- }
-
- // FIXME
- // This appears to do double duty,
- // specifically it appears both in popup menu headers
- // *and* at the top of tree views!
- // The tree views need the stuff that is commented out
- // to look correct, but when that is done the popup menus
- // look absolutely HORRIBLE.
- // How can we tell the two apart? Create PE_HeaderSectionMenu perhaps?
- case PE_HeaderSection: {
- p->setPen(cg.shadow());
- p->setBrush(cg.background());
- p->drawRect(r);
-
- if (sf & Style_On) {
- p->setPen(cg.mid());
- p->setBrush(TQBrush(cg.light(),TQt::Dense4Pattern));
- p->drawRect(r);
- p->setPen(cg.buttonText());
- } else if (sf & Style_Down) {
- p->setPen(cg.mid());
- p->drawRect(r);
- p->setPen(cg.buttonText());
- } else {
- p->setPen(cg.light());
- p->drawLine(x, y, x2-1, y);
- p->drawLine(x, y, x, y2-1);
-
- p->setPen(cg.mid());
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2-1, y2-1, x2-1, y+1);
- }
-
- break;
- }
-
- case PE_HeaderSectionMenu: {
- p->setPen(cg.shadow());
- p->setBrush(cg.background());
- p->drawRect(r);
-
-// if (sf & Style_On) {
-// p->setPen(cg.mid());
-// p->setBrush(TQBrush(cg.light(),TQt::Dense4Pattern));
-// p->drawRect(r);
-// p->setPen(cg.buttonText());
-// } else if (sf & Style_Down) {
- p->setPen(cg.mid());
- p->drawRect(r);
- p->setPen(cg.buttonText());
-// } else {
-// p->setPen(cg.light());
-// p->drawLine(x, y, x2-1, y);
-// p->drawLine(x, y, x, y2-1);
-//
-// p->setPen(cg.mid());
-// p->drawLine(x2-1, y2-1, x+1, y2-1);
-// p->drawLine(x2-1, y2-1, x2-1, y+1);
-// }
-
- break;
- }
-
- case PE_ButtonBevel: {
- p->setPen(cg.shadow());
- p->setBrush(cg.background());
- p->drawRect(r);
-
- if (sf & Style_On) {
- p->setPen(cg.mid());
- p->setBrush(TQBrush(cg.light(),TQt::Dense4Pattern));
- p->drawRect(r);
-
- if (!(sf & Style_ButtonDefault)) {
- p->setPen(cg.shadow());
- p->drawLine(x, y, x2-1, y);
- p->drawLine(x, y, x, y2-1);
-
- p->setPen(cg.dark());
- p->drawLine(x+1, y+1, x2-2, y+1);
- p->drawLine(x+1, y+1, x+1, y2-2);
-
- p->setPen(cg.light());
- p->drawLine(x, y2, x2, y2);
- p->drawLine(x2, y, x2, y2);
-
- p->setPen(cg.background());
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2-1, y2-1, x2-1, y+1);
- }
-
- p->setPen(cg.buttonText());
- } else if (sf & Style_Down) {
- p->setPen(cg.mid());
- p->drawRect(r);
-
- if (!(sf & Style_ButtonDefault)) {
- p->setPen(cg.shadow());
- p->drawLine(x, y, x2-1, y);
- p->drawLine(x, y, x, y2-1);
-
- p->setPen(cg.dark());
- p->drawLine(x+1, y+1, x2-2, y+1);
- p->drawLine(x+1, y+1, x+1, y2-2);
-
- p->setPen(cg.light());
- p->drawLine(x, y2, x2, y2);
- p->drawLine(x2, y, x2, y2);
-
- p->setPen(cg.background());
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2-1, y2-1, x2-1, y+1);
- }
-
- p->setPen(cg.buttonText());
- } else {
- p->setPen(cg.light());
- p->drawLine(x, y, x2-1, y);
- p->drawLine(x, y, x, y2-1);
-
- p->setPen(cg.mid());
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2-1, y2-1, x2-1, y+1);
- }
-
- break;
- }
-
- case PE_ButtonDefault: {
- p->setPen(cg.shadow());
- p->drawRect(r);
- break;
- }
-
- case PE_ButtonTool: {
- p->setPen(sf & Style_On || sf & Style_Down ? cg.mid() : cg.light());
- p->drawRect(r);
- p->setPen(sf & Style_On || sf & Style_Down ? cg.light() : cg.mid());
- p->drawLine(r.bottomRight(), r.topRight());
- p->drawLine(r.bottomRight(), r.bottomLeft());
- p->setPen(cg.buttonText());
- break;
- }
-
- case PE_ScrollBarSlider: {
- if (sf & Style_Enabled) {
- p->fillRect(r, cg.background());
-
- p->setPen(cg.light());
- p->drawLine(x+1, y+1, x2-2, y+1);
- p->drawLine(x+1, y+1, x+1, y2-2);
-
- p->setPen(cg.mid());
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2-1, y2-1, x2-1, y+1);
-
- p->setPen(cg.dark());
- p->drawLine(x2, y2, x, y2);
- p->drawLine(x2, y2, x2, y);
- } else {
- p->fillRect(r, cg.background());
- p->fillRect(r, TQBrush(cg.light(), Dense4Pattern));
- }
-
- break;
- }
-
- case PE_StatusBarSection: {
- p->fillRect(r, cg.background());
- p->setPen(cg.mid());
- p->drawLine(x, y, x2-1, y);
- p->drawLine(x, y, x, y2-1);
-
- p->setPen(cg.light());
- p->drawLine(x2, y2, x, y2);
- p->drawLine(x2, y2, x2, y);
-
- break;
- }
-
- case PE_CheckMark: {
- int x = r.center().x() - 3, y = r.center().y() - 3;
- const TQCOORD check[] = { x, y + 2, x, y + 4, x + 2, y + 6, x + 6, y + 2, x + 6, y, x + 2, y + 4 };
- const TQPointArray a(6, check);
-
- p->setPen(cg.text());
- p->setBrush(cg.text());
- p->drawPolygon(a);
-
- break;
- }
-
- case PE_Indicator: {
- p->setPen(cg.mid());
- p->setBrush(sf & Style_Down ? cg.background() : cg.base());
- p->drawRect(r);
-
- p->setPen(cg.mid());
- p->drawLine(x, y, x2, y);
- p->drawLine(x, y, x, y2);
-
- p->setPen(cg.dark());
- p->drawLine(x+1, y+1, x2-1, y+1);
- p->drawLine(x+1, y+1, x+1, y2-1);
-
- p->setPen(cg.background());
- p->drawLine(x2-1, y2-1, x2-1, y+1);
- p->drawLine(x2-1, y2-1, x+1, y2-1);
-
- p->setPen(cg.light());
- p->drawLine(x2, y2, x, y2);
- p->drawLine(x2, y2, x2, y);
- break;
- }
-
- case PE_IndicatorMask: {
- p->fillRect (r, color1);
-
- break;
- }
-
-
- case PE_ExclusiveIndicator: {
- const TQCOORD outside[] = { 1, 9, 1, 8, 0, 7, 0, 4, 1, 3, 1, 2, 2, 1, 3, 1, 4, 0, 7, 0, 8, 1, 9, 1, 10, 2, 10, 3, 11, 4, 11, 7, 10, 8, 10, 9, 9, 10, 8, 10, 7, 11, 4, 11, 3, 10, 2, 10 };
- const TQCOORD inside[] = { 2, 8, 1, 7, 1, 4, 2, 3, 2, 2, 3, 2, 4, 1, 7, 1, 8, 2, 9, 2, 9, 3, 10, 4, 10, 7, 9, 8, 9, 9, 8, 9, 7, 10, 4, 10, 3, 9, 2, 9 };
- p->fillRect(r, cg.background());
- if (sf & Style_Enabled && !(sf & Style_Down)) {
- p->setPen(TQPen::NoPen);
- p->setBrush(cg.base());
- p->drawPolygon(TQPointArray(24, outside));
- }
- p->setPen(cg.mid());
- p->drawPolyline(TQPointArray(24, outside), 0, 12);
- p->setPen(cg.light());
- p->drawPolyline(TQPointArray(24, outside), 12, 12);
- p->setPen(cg.dark());
- p->drawPolyline(TQPointArray(20, inside), 0, 10);
- p->setPen(cg.background());
- p->drawPolyline(TQPointArray(20, inside), 10, 10);
- break;
- }
-
- case PE_ExclusiveIndicatorMask: {
- const TQCOORD outside[] = { 1, 9, 1, 8, 0, 7, 0, 4, 1, 3, 1, 2, 2, 1, 3, 1, 4, 0, 7, 0, 8, 1, 9, 1, 10, 2, 10, 3, 11, 4, 11, 7, 10, 8, 10, 9, 9, 10, 8, 10, 7, 11, 4, 11, 3, 10, 2, 10 };
- p->fillRect(r, color0);
- p->setPen(color1);
- p->setBrush(color1);
- p->drawPolygon(TQPointArray(24, outside));
- break;
- }
-
- case PE_WindowFrame:
- case PE_Panel: {
- bool sunken = sf & Style_Sunken;
-
- p->setPen(sunken ? cg.mid() : cg.light());
- p->drawLine(x, y, x2-1, y);
- p->drawLine(x, y, x, y2-1);
-
- p->setPen(sunken ? cg.dark() : cg.background());
- p->drawLine(x+1, y+1, x2-1, y+1);
- p->drawLine(x+1, y+1, x+1, y2-1);
-
- p->setPen(sunken ? cg.light() : cg.mid());
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2-1, y2-1, x2-1, y+1);
-
- p->setPen(sunken ? cg.background() : cg.dark());
- p->drawLine(x2, y2, x, y2);
- p->drawLine(x2, y2, x2, y);
-
- break;
- }
-
- case PE_PanelLineEdit: {
- p->fillRect(r, cg.base());
-
- p->setPen(cg.light());
- p->drawLine(x2, y2, x, y2);
- p->drawLine(x2, y2, x2, y);
-
- p->setPen(cg.background());
- p->drawLine(x2-1, y2-1, x, y2-1);
- p->drawLine(x2-1, y2-1, x2-1, y);
-
- p->setPen(cg.mid());
- p->drawLine(x, y, x2, y);
- p->drawLine(x, y, x, y2);
-
- p->setPen(cg.dark());
- p->drawLine(x+1, y+1, x2-1, y+1);
- p->drawLine(x+1, y+1, x+1, y2-1);
-
- break;
- }
-
- case PE_PanelDockWindow: {
- p->setPen(cg.mid());
- p->drawLine(r.bottomLeft(), r.bottomRight());
- p->setPen(cg.light());
- p->drawLine(r.topLeft(), r.topRight());
- break;
- }
-
- case PE_PanelMenuBar: {
- p->setPen(cg.mid());
- p->drawLine(r.bottomLeft(), r.bottomRight());
- break;
- }
-
- case PE_ScrollBarAddPage:
- case PE_ScrollBarSubPage: {
- if (sf & Style_On || sf & Style_Down) {
- p->fillRect(r, cg.mid().dark());
- } else {
- p->fillRect(r, cg.background());
- }
- p->fillRect(r, TQBrush(cg.light(), Dense4Pattern));
- break;
- }
-
- case PE_ScrollBarAddLine: {
- p->fillRect(r, cg.background());
-
- if (sf & Style_Down) {
- p->setPen(cg.mid());
- p->drawRect(r);
- } else {
- p->setPen(cg.light());
- p->drawLine(x+1, y+1, x2-2, y+1);
- p->drawLine(x+1, y+1, x+1, y2-2);
-
- p->setPen(cg.mid());
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2-1, y2-1, x2-1, y+1);
-
- p->setPen(cg.dark());
- p->drawLine(x2, y2, x, y2);
- p->drawLine(x2, y2, x2, y);
- }
-
- p->setPen(cg.foreground());
- if (sf & Style_Enabled) {
- drawPrimitive(sf & Style_Horizontal ? PE_ArrowRight : PE_ArrowDown, p, ceData, elementFlags, r, cg, sf);
- } else {
- TQPen oldPen = p->pen();
- p->setPen(cg.light());
- drawPrimitive(sf & Style_Horizontal ? PE_ArrowRight : PE_ArrowDown, p, ceData, elementFlags, TQRect(x+1, y+1, w, h), cg, sf);
- p->setPen(cg.dark());
- drawPrimitive(sf & Style_Horizontal ? PE_ArrowRight : PE_ArrowDown, p, ceData, elementFlags, r, cg, sf);
- p->setPen(oldPen);
- }
- break;
- }
-
- case PE_ScrollBarSubLine: {
- p->fillRect(r, cg.background());
-
- if (sf & Style_Down) {
- p->setPen(cg.mid());
- p->drawRect(r);
- } else {
- p->setPen(cg.light());
- p->drawLine(x+1, y+1, x2-2, y+1);
- p->drawLine(x+1, y+1, x+1, y2-2);
-
- p->setPen(cg.mid());
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2-1, y2-1, x2-1, y+1);
-
- p->setPen(cg.dark());
- p->drawLine(x2, y2, x, y2);
- p->drawLine(x2, y2, x2, y);
- }
-
- p->setPen(cg.foreground());
- if (sf & Style_Enabled) {
- drawPrimitive(sf & Style_Horizontal ? PE_ArrowLeft : PE_ArrowUp, p, ceData, elementFlags, r, cg, sf);
- } else {
- TQPen oldPen = p->pen();
- p->setPen(cg.light());
- drawPrimitive(sf & Style_Horizontal ? PE_ArrowLeft : PE_ArrowUp, p, ceData, elementFlags, TQRect(x+1, y+1, w, h), cg, sf);
- p->setPen(cg.dark());
- drawPrimitive(sf & Style_Horizontal ? PE_ArrowLeft : PE_ArrowUp, p, ceData, elementFlags, r, cg, sf);
- p->setPen(oldPen);
- }
- break;
- }
-
- case PE_DockWindowHandle: {
- p->setPen(cg.light());
-
- if (sf & Style_Horizontal) {
- TQRect hr(0, 0, 3, r.height()-6);
- hr.moveCenter(r.center());
-
- p->fillRect(r, cg.background());
- p->drawRect(hr);
- p->setPen(cg.mid());
- p->drawLine(hr.bottomRight(), hr.topRight());
- p->drawLine(hr.bottomRight(), hr.bottomLeft());
- } else {
- TQRect hr(0, 0, r.width()-6, 3);
- hr.moveCenter(r.center());
-
- p->fillRect(r, cg.background());
- p->drawRect(hr);
- p->setPen(cg.mid());
- p->drawLine(hr.bottomLeft(), hr.bottomRight());
- p->drawLine(hr.topRight(), hr.bottomRight());
- }
-
- break;
- }
-
- case PE_Separator:
- p->fillRect(r, cg.background());
-
- if (!(sf & Style_Horizontal)) {
- p->setPen(cg.background());
- p->drawLine(x + 2, y , x2 - 2, y);
- p->setPen(cg.light());
- p->drawLine(x + 2, y + 1, x2 - 2, y + 1);
- }
- else
- {
- p->setPen(cg.background());
- p->drawLine(x + 2, y + 2, x + 2, y2 - 2);
- p->setPen(cg.light());
- p->drawLine(x + 3, y + 2, x + 3, y2 - 2);
- }
- break;
-
- case PE_DockWindowSeparator: {
- p->fillRect(r, cg.background());
-
- if (!(sf & Style_Horizontal)) {
- p->setPen(cg.mid());
- p->drawLine(x + 2, y , x2 - 2, y);
- p->setPen(cg.light());
- p->drawLine(x + 2, y + 1, x2 - 2, y + 1);
- }
- else
- {
- p->setPen(cg.mid());
- p->drawLine(x + 2, y + 2, x + 2, y2 - 2);
- p->setPen(cg.light());
- p->drawLine(x + 3, y + 2, x + 3, y2 - 2);
- }
- break;
- }
-
- case PE_DockWindowResizeHandle: {
- p->fillRect(r, cg.mid());
- break;
- }
-
- case PE_PanelPopup: {
- p->setPen(cg.background());
- p->setBrush(cg.background());
-
- int menuborder = 3;
- p->drawRect(r.x(), r.y(), r.x()+menuborder, r.height()); // Left
- p->drawRect(r.x()+r.width()-menuborder, r.y(), r.width(), r.height()); // Right
- p->drawRect(r.x(), r.y(), r.width(), r.y()+menuborder); // Top
- p->drawRect(r.x(), r.y()+r.height()-menuborder, r.width(), r.height()); // Bottom
-
- p->setPen(cg.dark());
- p->drawLine(x2, y2, x, y2);
- p->drawLine(x2, y2, x2, y);
-
- p->setPen(cg.light());
- p->drawLine(x+1, y+1, x+1, y2-1);
- p->drawLine(x+1, y+1, x2-1, y+1);
-
- p->setPen(cg.mid());
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2-1, y2-1, x2-1, y+1);
-
- break;
- }
-
- case PE_SpinWidgetUp:
- case PE_SpinWidgetDown:
- case PE_HeaderArrow:
- case PE_ArrowUp:
- case PE_ArrowDown:
- case PE_ArrowLeft:
- case PE_ArrowRight: {
- TQPointArray a;
-
- switch (pe) {
-
- case PE_SpinWidgetUp:
- case PE_ArrowUp: {
- a.setPoints(7, u_arrow);
- break;
- }
-
- case PE_SpinWidgetDown:
- case PE_ArrowDown: {
- a.setPoints(7, d_arrow);
- break;
- }
-
- case PE_ArrowLeft: {
- a.setPoints(7, l_arrow);
- break;
- }
-
- case PE_ArrowRight: {
- a.setPoints(7, r_arrow);
- break;
- }
-
- default: {
- if (sf & Style_Up) {
- a.setPoints(7, u_arrow);
- } else {
- a.setPoints(7, d_arrow);
- }
- }
- }
-
- if (p->pen() == Qt::NoPen) {
- p->setPen(sf & Style_Enabled ? cg.foreground() : cg.light());
- }
-
- if (sf & Style_Down) {
- p->translate(pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags),
- pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags));
- }
-
- a.translate((x + w/2), (y + (h-1)/2));
- p->drawLineSegments(a, 0, 3);
- p->drawPoint(a[6]);
-
- if (sf & Style_Down) {
- p->translate(-pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags),
- -pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags));
- }
-
- break;
- }
-
- case PE_MenuItemIndicatorIconFrame:
- case PE_MenuItemIndicatorFrame: {
- // Draw nothing
- break;
- }
-
- case PE_MenuItemIndicatorCheck: {
- int x, y, w, h;
- r.rect( &x, &y, &w, &h );
- int checkcol = styleHint(SH_MenuIndicatorColumnWidth, ceData, elementFlags, o, NULL, NULL);
-
- bool active = sf & Style_Active;
- bool disabled = !(sf & Style_Enabled);
-
- int xp = x;
-
- SFlags cflags = Style_Default;
- if (disabled) {
- cflags |= Style_On;
- } else {
- cflags |= Style_Enabled;
- }
-
- p->setPen(active ? cg.highlightedText() : cg.buttonText());
-
- TQRect rr = TQRect(xp, y, checkcol, h);
- if (backwards) {
- rr = visualRect(rr, r);
- }
-
- drawPrimitive(PE_CheckMark, p, ceData, elementFlags, rr, cg, cflags);
-
- break;
- }
-
- default: {
- TDEStyle::drawPrimitive(pe, p, ceData, elementFlags, r, cg, sf, o);
- }
- }
-}
-
-void AsteroidStyle::drawControl(TQ_ControlElement ce,
- TQPainter *p,
- const TQStyleControlElementData &ceData,
- ControlElementFlags elementFlags,
- const TQRect &r,
- const TQColorGroup &cg,
- SFlags sf,
- const TQStyleOption &o,
- const TQWidget *w) const
-{
- int x, y, x2, y2, sw, sh;
- r.coords(&x, &y, &x2, &y2);
- r.rect(&x, &y, &sw, &sh);
-
- switch (ce) {
- /* TQ_ControlElements to draw are:
-
- CE_CheckBoxLabel
- CE_RadioButtonLabel
-
- CE_TabBarTab
- CE_TabBarLabel
-
- CE_ProgressBarGroove
- CE_ProgressBarContents
- CE_ProgressBarLabel
-
- CE_PopupMenuScroller
- CE_PopupMenuHorizontalExtra
- CE_PopupMenuVerticalExtra
- CE_MenuBarEmptyArea
- CE_DockWindowEmptyArea
-
- CE_ToolButtonLabel
- CE_ToolBoxTab
-
- */
-
-#ifndef TQT_NO_TABBAR
- case CE_TabBarTab:
- {
- if ( ceData.parentWidgetData.widgetObjectTypes.isEmpty() || !o.tab() )
- break;
-
- const TQTab * t = o.tab();
- bool selected = sf & Style_Selected;
- bool lastTab = (ceData.tabBarData.identIndexMap[t->identifier()] == ceData.tabBarData.tabCount-1) ?
- TRUE : FALSE;
- TQRect r2( r );
- if ( ceData.tabBarData.shape == TQTabBar::RoundedAbove ) {
- p->setPen( cg.light() );
- p->drawLine( r2.left(), r2.bottom()-1, r2.right(), r2.bottom()-1 );
- if ( r2.left() == 0 )
- p->drawPoint( ceData.rect.bottomLeft() );
-
- if ( selected ) {
- p->fillRect( TQRect( r2.left()+1, r2.bottom()-1, r2.width()-3, 2),
- cg.brush( TQColorGroup::Background ));
- p->setPen( cg.background() );
- p->drawLine( r2.left()+1, r2.bottom(), r2.left()+1, r2.top()+2 );
- p->setPen( cg.light() );
- } else {
- p->setPen( cg.light() );
- r2.setRect( r2.left() + 2, r2.top() + 2,
- r2.width() - 4, r2.height() - 2 );
- }
-
- int x1, x2;
- x1 = r2.left();
- x2 = r2.right() - 2;
- p->drawLine( x1, r2.bottom()-1, x1, r2.top() + 2 );
- x1++;
- p->drawPoint( x1, r2.top() + 1 );
- x1++;
- p->drawLine( x1, r2.top(), x2, r2.top() );
- x1 = r2.left();
-
- p->setPen( cg.dark() );
- x2 = r2.right() - 1;
- p->drawLine( x2, r2.top() + 2, x2, r2.bottom() - 1 +
- (selected ? 0:-1) );
- p->setPen( cg.shadow() );
- p->drawPoint( x2, r2.top() + 1 );
- p->drawPoint( x2, r2.top() + 1 );
- x2++;
- p->drawLine( x2, r2.top() + 2, x2, r2.bottom() -
- (selected ? (lastTab ? 0:1) :2));
- } else if ( ceData.tabBarData.shape == TQTabBar::RoundedBelow ) {
- bool rightAligned = styleHint( SH_TabBar_Alignment, ceData, elementFlags, TQStyleOption::Default, 0, w ) == TQt::AlignRight;
- bool firstTab = ceData.tabBarData.identIndexMap[t->identifier()] == 0;
- if ( selected ) {
- p->fillRect( TQRect( r2.left()+1, r2.top(), r2.width()-3, 1),
- cg.brush( TQColorGroup::Background ));
- p->setPen( cg.background() );
- p->drawLine( r2.left()+1, r2.top(), r2.left()+1, r2.bottom()-2 );
- p->setPen( cg.dark() );
- } else {
- p->setPen( cg.shadow() );
- p->drawLine( r2.left() +
- (rightAligned && firstTab ? 0 : 1),
- r2.top() + 1,
- r2.right() - (lastTab ? 0 : 2),
- r2.top() + 1 );
-
- if ( rightAligned && lastTab )
- p->drawPoint( r2.right(), r2.top() );
- p->setPen( cg.dark() );
- p->drawLine( r2.left(), r2.top(), r2.right() - 1,
- r2.top() );
- r2.setRect( r2.left() + 2, r2.top(),
- r2.width() - 4, r2.height() - 2 );
- }
-
- p->drawLine( r2.right() - 1, r2.top() + (selected ? 0: 2),
- r2.right() - 1, r2.bottom() - 2 );
- p->drawPoint( r2.right() - 2, r2.bottom() - 2 );
- p->drawLine( r2.right() - 2, r2.bottom() - 1,
- r2.left() + 1, r2.bottom() - 1 );
-
- p->setPen( cg.shadow() );
- p->drawLine( r2.right(),
- r2.top() + (lastTab && rightAligned &&
- selected) ? 0 : 1,
- r2.right(), r2.bottom() - 1 );
- p->drawPoint( r2.right() - 1, r2.bottom() - 1 );
- p->drawLine( r2.right() - 1, r2.bottom(),
- r2.left() + 2, r2.bottom() );
-
- p->setPen( cg.light() );
- p->drawLine( r2.left(), r2.top() + (selected ? 0 : 2),
- r2.left(), r2.bottom() - 2 );
- } else {
- TQCommonStyle::drawControl(ce, p, ceData, elementFlags, r, cg, sf, o, w);
- }
- break;
- }
-
- case CE_TabBarLabel:
- {
- if ( o.isDefault() )
- break;
-
- TQTab * t = o.tab();
-
- const bool enabled = sf & Style_Enabled;
- bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
-
- TQRect tr = r;
- if ( t->identifier() == ceData.tabBarData.currentTabIndex )
- tr.setBottom( tr.bottom() -
- pixelMetric( TQStyle::PM_DefaultFrameWidth, ceData, elementFlags, w ) );
-
- 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())))
- alignment |= TQt::NoAccel;
- tr.setWidth(tr.width()+4); // Compensate for text appearing too far to the left
-// TQRect tr_offset = TQRect(tr.x()+ETCH_X_OFFSET, tr.y()+ETCH_Y_OFFSET, tr.width(), tr.height());
- TQRect tr_offset = TQRect(tr.x()+0, tr.y()+0, tr.width(), tr.height());
- if TABBAR_TEXT_ETCH_CONDITIONS {
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- TQColorGroup etchedcg = cg;
- etchedcg.setColor( TQColorGroup::Text, cg.light() );
- etchedcg.setColor( TQColorGroup::Mid, cg.light() );
- etchedcg.setColor( TQColorGroup::Midlight, cg.light() );
- etchedcg.setColor( TQColorGroup::Foreground, cg.light() );
- etchedcg.setColor( TQColorGroup::HighlightedText, cg.light() );
- etchedcg.setColor( TQColorGroup::BrightText, cg.light() );
- etchedcg.setColor( TQColorGroup::ButtonText, cg.light() );
- drawItem( p, tr_offset, alignment, etchedcg, enabled, 0, t->text() );
- p->setPen( cg.dark() );
- etchedcg.setColor( TQColorGroup::Text, cg.dark() );
- etchedcg.setColor( TQColorGroup::Mid, cg.dark() );
- etchedcg.setColor( TQColorGroup::Midlight, cg.dark() );
- etchedcg.setColor( TQColorGroup::Foreground, cg.dark() );
- etchedcg.setColor( TQColorGroup::HighlightedText, cg.dark() );
- etchedcg.setColor( TQColorGroup::BrightText, cg.dark() );
- etchedcg.setColor( TQColorGroup::ButtonText, cg.dark() );
- drawItem( p, tr, alignment, etchedcg, enabled, 0, t->text() );
- p->setPen(savePen);
- }
- else {
- drawItem( p, tr, alignment, cg, enabled, 0, t->text() );
- }
-
- if ( (sf & Style_HasFocus) && !t->text().isEmpty() )
- drawPrimitive( TQStyle::PE_FocusRect, p, ceData, elementFlags, r, cg );
- break;
- }
-#endif // TQT_NO_TABBAR
-
- case CE_CheckBoxLabel:
- {
-#ifndef TQT_NO_CHECKBOX
- const TQCheckBox *checkbox = (const TQCheckBox *) w;
-
- const bool enabled = sf & Style_Enabled;
- bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
-
- int alignment = TQApplication::reverseLayout() ? TQt::AlignRight : TQt::AlignLeft;
- if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, w)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, w)) && (!acceleratorsShown())))
- alignment |= TQt::NoAccel;
-
- //TQRect r_offset = TQRect(r.x()+ETCH_X_OFFSET, r.y()+ETCH_Y_OFFSET, r.width(), r.height());
- TQRect r_offset = TQRect(r.x()+0, r.y()+0, r.width(), r.height());
- if CHECKBOX_TEXT_ETCH_CONDITIONS {
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- TQColorGroup etchedcg = cg;
- etchedcg.setColor( TQColorGroup::Text, cg.light() );
- etchedcg.setColor( TQColorGroup::Mid, cg.light() );
- etchedcg.setColor( TQColorGroup::Midlight, cg.light() );
- etchedcg.setColor( TQColorGroup::Foreground, cg.light() );
- etchedcg.setColor( TQColorGroup::HighlightedText, cg.light() );
- etchedcg.setColor( TQColorGroup::BrightText, cg.light() );
- etchedcg.setColor( TQColorGroup::ButtonText, cg.light() );
- drawItem(p, r_offset, alignment | TQt::AlignVCenter | TQt::ShowPrefix, etchedcg, sf & Style_Enabled, checkbox->pixmap(), checkbox->text());
- p->setPen( cg.dark() );
- etchedcg.setColor( TQColorGroup::Text, cg.dark() );
- etchedcg.setColor( TQColorGroup::Mid, cg.dark() );
- etchedcg.setColor( TQColorGroup::Midlight, cg.dark() );
- etchedcg.setColor( TQColorGroup::Foreground, cg.dark() );
- etchedcg.setColor( TQColorGroup::HighlightedText, cg.dark() );
- etchedcg.setColor( TQColorGroup::BrightText, cg.dark() );
- etchedcg.setColor( TQColorGroup::ButtonText, cg.dark() );
- drawItem(p, r, alignment | TQt::AlignVCenter | TQt::ShowPrefix, etchedcg, sf & Style_Enabled, checkbox->pixmap(), checkbox->text());
- p->setPen(savePen);
- }
- else {
- drawItem(p, r, alignment | TQt::AlignVCenter | TQt::ShowPrefix, cg, sf & Style_Enabled, checkbox->pixmap(), checkbox->text());
- }
-
- if (sf & Style_HasFocus) {
- TQRect fr = visualRect(subRect(SR_CheckBoxFocusRect, ceData, elementFlags, w), ceData, elementFlags);
- drawPrimitive(TQStyle::PE_FocusRect, p, ceData, elementFlags, fr, cg, sf);
- }
-#endif
- break;
- }
-
- case CE_RadioButtonLabel:
- {
-#ifndef TQT_NO_RADIOBUTTON
- const TQRadioButton *radiobutton = (const TQRadioButton *) w;
-
- const bool enabled = sf & Style_Enabled;
- bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
-
- int alignment = TQApplication::reverseLayout() ? TQt::AlignRight : TQt::AlignLeft;
- if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, w)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, w)) && (!acceleratorsShown())))
- alignment |= TQt::NoAccel;
-
-// TQRect r_offset = TQRect(r.x()+ETCH_X_OFFSET, r.y()+ETCH_Y_OFFSET, r.width(), r.height());
- TQRect r_offset = TQRect(r.x()+0, r.y()+0, r.width(), r.height());
- if RADIOBUTTON_TEXT_ETCH_CONDITIONS {
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- TQColorGroup etchedcg = cg;
- etchedcg.setColor( TQColorGroup::Text, cg.light() );
- etchedcg.setColor( TQColorGroup::Mid, cg.light() );
- etchedcg.setColor( TQColorGroup::Midlight, cg.light() );
- etchedcg.setColor( TQColorGroup::Foreground, cg.light() );
- etchedcg.setColor( TQColorGroup::HighlightedText, cg.light() );
- etchedcg.setColor( TQColorGroup::BrightText, cg.light() );
- etchedcg.setColor( TQColorGroup::ButtonText, cg.light() );
- drawItem(p, r_offset, alignment | TQt::AlignVCenter | TQt::ShowPrefix, etchedcg, enabled, radiobutton->pixmap(), radiobutton->text());
- p->setPen( cg.dark() );
- etchedcg.setColor( TQColorGroup::Text, cg.dark() );
- etchedcg.setColor( TQColorGroup::Mid, cg.dark() );
- etchedcg.setColor( TQColorGroup::Midlight, cg.dark() );
- etchedcg.setColor( TQColorGroup::Foreground, cg.dark() );
- etchedcg.setColor( TQColorGroup::HighlightedText, cg.dark() );
- etchedcg.setColor( TQColorGroup::BrightText, cg.dark() );
- etchedcg.setColor( TQColorGroup::ButtonText, cg.dark() );
- drawItem(p, r, alignment | TQt::AlignVCenter | TQt::ShowPrefix, etchedcg, enabled, radiobutton->pixmap(), radiobutton->text());
- p->setPen(savePen);
- }
- drawItem(p, r, alignment | TQt::AlignVCenter | TQt::ShowPrefix, cg, enabled, radiobutton->pixmap(), radiobutton->text());
-
- if (sf & Style_HasFocus) {
- TQRect fr = visualRect(subRect(SR_RadioButtonFocusRect, ceData, elementFlags, w), ceData, elementFlags);
- drawPrimitive(TQStyle::PE_FocusRect, p, ceData, elementFlags, fr, cg, sf);
- }
-#endif
- break;
- }
-
- case CE_ToolBoxTab:
- {
- qDrawShadePanel( p, r, cg, sf & (Style_Sunken | Style_Down | Style_On) , 1,
- &cg.brush(TQColorGroup::Button));
- break;
- }
-
- case CE_ProgressBarContents: {
-
-
- // ### Take into account totalSteps() for busy indicator
- TQRect cr = subRect(SR_ProgressBarContents, ceData, elementFlags, w);
- double progress = ceData.currentStep;
- bool reverse = TQApplication::reverseLayout();
- int steps = ceData.totalSteps;
-
- if (!cr.isValid())
- return;
-
-
- p->setPen(cg.light());
- p->setBrush(cg.light());
- p->drawRect(r);
-
- // Draw progress bar
- if (progress > 0 || steps == 0) {
- double pg = (steps == 0) ? 0.1 : progress / steps;
- int width = TQMIN(cr.width(), (int)(pg * cr.width()));
- if (steps == 0) { //Busy indicator
-
- if (width < 1) width = 1; //A busy indicator with width 0 is kind of useless
-
- int remWidth = cr.width() - width; //Never disappear completely
- if (remWidth <= 0) remWidth = 1; //Do something non-crashy when too small...
-
- int pstep = int(progress) % ( 2 * remWidth );
-
- if ( pstep > remWidth ) {
- //Bounce about.. We're remWidth + some delta, we want to be remWidth - delta...
- // - ( (remWidth + some delta) - 2* remWidth ) = - (some deleta - remWidth) = remWidth - some delta..
- pstep = - (pstep - 2 * remWidth );
- }
-
- if (reverse)
- p->fillRect(cr.x() + cr.width() - width - pstep, cr.y(), width, cr.height(),
- cg.brush(TQColorGroup::Highlight));
- else
- p->fillRect(cr.x() + pstep, cr.y(), width, cr.height(),
- cg.brush(TQColorGroup::Highlight));
-
- return;
- }
-
-
-
- if (reverse)
- p->fillRect(cr.x()+(cr.width()-width), cr.y(), width, cr.height(),
- cg.brush(TQColorGroup::Highlight));
- else
- p->fillRect(cr.x(), cr.y(), width, cr.height(),
- cg.brush(TQColorGroup::Highlight));
- }
- break;
- }
-
- case CE_CheckBox: {
- drawPrimitive(PE_Indicator, p, ceData, elementFlags, r, cg, sf);
- if (sf & Style_On) {
- drawPrimitive(PE_CheckMark, p, ceData, elementFlags, r, cg, sf);
- }
- break;
- }
-
- case CE_RadioButton: {
- drawPrimitive(PE_ExclusiveIndicator, p, ceData, elementFlags, r, cg, sf);
- if (sf & Style_On) {
- TQCOORD center[] = { 4, 5, 4, 6, 5, 7, 6, 7, 7, 6, 7, 5, 6, 4, 5, 4 };
- TQPointArray c(8, center);
- p->setPen(cg.text());
- p->setBrush(cg.text());
- p->drawPolygon(c);
- }
- break;
- }
-
- case CE_PushButton: {
- // Get rid of ugliness in Konqueror and KDevelop tab bar buttons, respectively
- if ( ceData.widgetObjectTypes.contains("KMultiTabBarButton") || ceData.widgetObjectTypes.contains("Ideal::Button")) {
- p->setPen(cg.mid());
- p->setBrush(cg.background());
- p->drawRect(r);
-
- if (sf & Style_On) {
- p->setPen(cg.mid());
- p->setBrush(TQBrush(cg.light(),TQt::Dense4Pattern));
- p->drawRect(r);
- p->setPen(cg.buttonText());
- } else if (sf & Style_Down) {
- p->setPen(cg.mid());
- p->drawRect(r);
- p->setPen(cg.buttonText());
- } else {
- p->setPen(cg.mid());
- p->drawLine(x, y, x2-1, y);
- p->drawLine(x, y, x, y2-1);
- }
- }
- else {
- if (elementFlags & CEF_IsDefault) {
- drawPrimitive(PE_ButtonDefault, p, ceData, elementFlags, r, cg, sf);
- drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, TQRect(x+1, y+1, sw-2, sh-2), cg, sf);
- } else {
- drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, r, cg, sf);
- }
- }
-
- break;
- }
-
- case CE_MenuBarItem: {
- bool active = sf & Style_Active;
- bool focused = sf & Style_HasFocus;
- bool down = sf & Style_Down;
- bool enabled = sf & Style_Enabled;
- bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
- const int text_flags = AlignVCenter | AlignHCenter | ShowPrefix | DontClip | SingleLine;
-
- if (active && focused) {
- p->setBrush(cg.background());
- p->setPen(cg.background());
- p->drawRect(r);
-
- if (down) {
- p->setPen(cg.mid());
- p->drawLine(x, y, x2, y);
- p->drawLine(x, y, x, y2);
- p->setPen(cg.light());
- p->drawLine(x2, y2, x, y2);
- p->drawLine(x2, y2, x2, y);
- /*p->translate(1, 1);*/
- } else {
- p->setPen(cg.light());
- p->drawLine(x, y, x2, y);
- p->drawLine(x, y, x, y2);
- p->setPen(cg.mid());
- p->drawLine(x2, y2, x, y2);
- p->drawLine(x2, y2, x2, y);
- }
- }
-
- p->setPen( POPUPMENUITEM_TEXT_ETCH_CONDITIONS?cg.dark():cg.foreground() );
- TQRect r_offset = TQRect(r.x()+ETCH_X_OFFSET, r.y()+ETCH_Y_OFFSET, r.width(), r.height());
- if POPUPMENUITEM_TEXT_ETCH_CONDITIONS {
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- p->drawText(r_offset, text_flags, o.menuItem()->text());
- p->setPen(savePen);
- }
- p->drawText(r, text_flags, o.menuItem()->text());
-
- /*if (active && focused && down) {
- p->translate(-1, -1);
- }*/
-
- break;
- }
-
-
- case CE_PushButtonLabel: {
- const TQPushButton *pb = dynamic_cast<const TQPushButton *>(w);
- const bool enabled = sf & Style_Enabled;
- bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
- const int text_flags = AlignVCenter | AlignHCenter | ShowPrefix | DontClip | SingleLine;
- int dx = 0;
-
- if (sf & Style_Down) {
- p->translate(pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags),
- pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags));
- }
-
- if (pb->iconSet() && !pb->iconSet()->isNull()) {
- TQIconSet::Mode mode = enabled ? TQIconSet::Normal : TQIconSet::Disabled;
- TQPixmap pixmap = pb->iconSet()->pixmap(TQIconSet::Small, mode);
- TQRect pr(0, 0, pixmap.width(), pixmap.height());
-
- if (pb->text().isNull())
- dx = r.center().x()-(pixmap.width()/2);
- else
- dx = (r.height() - pixmap.height())/2;
- if ( pb->inherits("KMultiTabBarButton") ) {
- pr.moveCenter(TQPoint(((pixmap.width()/2)+dx), r.center().y()));
- dx = (pixmap.width()+dx+(dx*0.5));
- }
- else {
- pr.moveCenter(TQPoint(((pixmap.width()/2)+dx), r.center().y()));
- dx = (pixmap.width()+dx+(dx*0.5));
- }
-
- p->drawPixmap(pr.topLeft(), pixmap);
- } else if (pb->pixmap() && !pb->text()) {
- TQRect pr(0, 0, pb->pixmap()->width(), pb->pixmap()->height());
- pr.moveCenter(r.center());
- p->drawPixmap(pr.topLeft(), *pb->pixmap());
- }
-
- if (!pb->text().isNull()) {
- p->setPen(POPUPMENUITEM_TEXT_ETCH_CONDITIONS?cg.dark():(enabled ? cg.buttonText() : pb->palette().disabled().buttonText()));
- if (pb->iconSet() && !pb->iconSet()->isNull()) {
- TQRect tpr(dx, r.y(), r.width()-dx, r.height());
- TQRect tr(p->boundingRect(tpr, text_flags, pb->text()));
-
- TQRect tr_offset = TQRect(tr.x()+ETCH_X_OFFSET, tr.y()+ETCH_Y_OFFSET, tr.width(), tr.height());
- if PUSHBUTTON_TEXT_ETCH_CONDITIONS {
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- p->drawText(tr_offset, text_flags, pb->text());
- p->setPen(savePen);
- }
- p->drawText(tr, text_flags, pb->text());
- } else {
- TQRect r_offset = TQRect(r.x()+ETCH_X_OFFSET, r.y()+ETCH_Y_OFFSET, r.width(), r.height());
- if PUSHBUTTON_TEXT_ETCH_CONDITIONS {
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- p->drawText(r_offset, text_flags, pb->text());
- p->setPen(savePen);
- }
- p->drawText(r, text_flags, pb->text());
- }
- }
-
- break;
- }
-
- /* Note: This is very poorly documented by TT. I'm disappointed. -clee */
- case CE_HeaderLabel: {
- const bool enabled = sf & Style_Enabled;
- bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
- const int text_flags = AlignVCenter | ShowPrefix | DontClip | SingleLine;
-
- if (!ceData.iconSet.isNull()) {
- TQPixmap pm = ceData.iconSet.pixmap(TQIconSet::Small, sf & Style_Enabled ? TQIconSet::Normal : TQIconSet::Disabled);
- TQRect pr(0, 0, pm.width(), pm.height());
- pr.moveCenter(r.center());
- pr.setLeft(r.center().y() - (pm.height() - 1) / 2);
- p->drawPixmap(pr.topLeft(), pm);
- pr = TQRect(pr.width(), r.top(), r.width() - pr.width(), r.height());
- TQRect pr_offset = TQRect(pr.x()+ETCH_X_OFFSET, pr.y()+ETCH_Y_OFFSET, pr.width(), pr.height());
- if HEADER_TEXT_ETCH_CONDITIONS {
- p->setPen( cg.dark()) ;
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- p->drawText(pr_offset, text_flags, ceData.textLabel);
- p->setPen(savePen);
- }
- p->drawText(pr, text_flags, ceData.textLabel);
- } else {
- p->setPen( POPUPMENUITEM_TEXT_ETCH_CONDITIONS?cg.dark():cg.buttonText() );
- TQRect r_offset = TQRect(r.x()+ETCH_X_OFFSET, r.y()+ETCH_Y_OFFSET, r.width(), r.height());
- if HEADER_TEXT_ETCH_CONDITIONS {
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- p->drawText(r_offset, text_flags, ceData.textLabel);
- p->setPen(savePen);
- }
- p->drawText(r, text_flags, ceData.textLabel);
- }
- break;
- }
-
- case CE_PopupMenuItem: {
- TQMenuItem *mi = o.menuItem();
-
- if (!mi) {
- return;
- }
-
- static const int itemFrame = 2;
- static const int itemHMargin = 3;
- static const int itemVMargin = 3;
- static const int arrowHMargin = 4;
- static const int rightBorder = 16;
- const int tab = o.tabWidth();
-
- int checkcol = TQMAX(o.maxIconWidth(), 12);
-
- bool active = sf & Style_Active;
- bool disabled = !mi->isEnabled();
- bool checkable = (elementFlags & CEF_IsCheckable);
- bool enabled = mi->isEnabled();
- bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags );
-
- int xpos = x;
- int xm = itemFrame + checkcol + itemHMargin;
-
- if (!ceData.bgPixmap.isNull()) {
- p->drawPixmap(x, y, ceData.bgPixmap, x, y, sw, sh);
- } else {
- p->fillRect(x, y, sw, sh, cg.background());
- }
-
- if (mi->widget()) {
- /* nOOOOOOOOOOOP */
- } else if (mi->isSeparator()) {
- p->setPen(cg.mid());
- p->drawLine(x + 1, y + 3, x2 - 1, y + 3);
- p->setPen(cg.light());
- p->drawLine(x + 1, y + 4, x2 - 1, y + 4);
- return;
- }
-
- if (active && !disabled && !mi->isSeparator()) {
- p->setBrush(cg.highlight());
- p->fillRect(r, cg.highlight());
- p->setPen(cg.highlightedText());
- }
-
- if (mi->iconSet()) {
- TQIconSet::Mode mode =
- disabled ? TQIconSet::Disabled : TQIconSet::Normal;
- TQPixmap pixmap = mi->iconSet()->pixmap(TQIconSet::Small, mode);
-
- int pixw = pixmap.width();
- int pixh = pixmap.height();
-
- TQRect cr(xpos, y, o.maxIconWidth(), sh);
- TQRect pmr(0, 0, pixw, pixh);
- pmr.moveCenter(cr.center());
-
- if (backwards)
- pmr = visualRect(pmr, r);
-
- p->setPen(cg.highlightedText());
- p->drawPixmap(pmr.topLeft(), pixmap);
- } else if (checkable) {
- if (mi->isChecked()) {
- drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, r, cg, sf, o);
- }
- }
-
- xpos += xm;
-
- if (mi->custom()) {
- int m = itemVMargin;
- p->setPen( POPUPMENUITEM_TEXT_ETCH_CONDITIONS?cg.dark():cg.foreground() );
- if POPUPMENUITEM_TEXT_ETCH_CONDITIONS {
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- TQColorGroup etchedcg = cg;
- etchedcg.setColor( TQColorGroup::Text, cg.light() );
- etchedcg.setColor( TQColorGroup::Mid, cg.light() );
- etchedcg.setColor( TQColorGroup::Midlight, cg.light() );
- etchedcg.setColor( TQColorGroup::Foreground, cg.light() );
- etchedcg.setColor( TQColorGroup::HighlightedText, cg.light() );
- etchedcg.setColor( TQColorGroup::BrightText, cg.light() );
- etchedcg.setColor( TQColorGroup::ButtonText, cg.light() );
- mi->custom()->paint(p, etchedcg, active, !disabled, x+xm+ETCH_X_OFFSET, y+m+ETCH_Y_OFFSET, sw-xm-tab+1, sh-2*m);
- p->setPen(savePen);
- }
- mi->custom()->paint(p, cg, active, !disabled, x+xm, y+m, sw-xm-tab+1, sh-2*m);
- return;
- } else {
- p->setPen(active ? cg.highlightedText() : cg.buttonText());
- TQString s = mi->text();
-
- if(!s.isNull()) {
- int t = s.find('\t');
- int m = itemVMargin;
-
- int text_flags = AlignVCenter | ShowPrefix | DontClip | SingleLine;
-
- if (active && !disabled) {
- p->setPen(cg.highlightedText());
- } else if (disabled) {
- p->setPen(cg.mid().light(110));
- } else {
- p->setPen(cg.text());
- }
-
- if (t >= 0) {
- int xp = x + sw - tab - rightBorder - itemHMargin - itemFrame + 1;
-
- TQRect rr = TQRect(xp, y+m, tab, sh-(2*m));
- TQRect rr_offset = TQRect(xp+ETCH_X_OFFSET, y+m+ETCH_Y_OFFSET, tab, sh-(2*m));
- if (backwards) {
- rr = visualRect(rr, r);
- rr_offset = visualRect(rr_offset, r);
- }
-
- if POPUPMENUITEM_TEXT_ETCH_CONDITIONS {
- p->setPen(cg.dark());
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- p->drawText(rr_offset, text_flags, s.mid(t+1));
- p->setPen(savePen);
- }
- p->drawText(rr, text_flags, s.mid(t+1));
- s = s.left(t);
- }
-
- TQRect rr = TQRect(xpos, y+m, sw-xm-tab+1, sh-(2*m));
- TQRect rr_offset = TQRect(xpos+ETCH_X_OFFSET, y+m+ETCH_Y_OFFSET, sw-xm-tab+1, sh-(2*m));
- if (backwards) {
- rr = visualRect(rr, r);
- rr_offset = visualRect(rr_offset, r);
- text_flags |= AlignRight;
- }
-
- if POPUPMENUITEM_TEXT_ETCH_CONDITIONS {
- p->setPen(cg.dark());
- TQPen savePen = p->pen();
- p->setPen( cg.light() );
- p->drawText(rr_offset, text_flags, s);
- p->setPen(savePen);
- }
- p->drawText(rr, text_flags, s);
- } else if (mi->pixmap()) {
- TQPixmap *pixmap = mi->pixmap();
- if (pixmap->depth() == 1) {
- p->setBackgroundMode(Qt::OpaqueMode);
- }
- p->drawPixmap(xpos, y, *pixmap);
- if (pixmap->depth() == 1) {
- p->setBackgroundMode(Qt::TransparentMode);
- }
- }
- }
-
- if (mi->popup()) {
- int dim = pixelMetric(PM_MenuButtonIndicator, ceData, elementFlags);
-
- xpos = x + sw - arrowHMargin - 2 * itemFrame - dim;
-
- if (active && !disabled) {
- p->setPen(cg.highlightedText());
- } else {
- p->setPen(cg.text());
- }
-
- TQRect rr = TQRect(xpos, y + sh/2 - dim/2, dim, dim);
- if (backwards)
- rr = visualRect(rr, r);
- drawPrimitive((backwards ? PE_ArrowLeft : PE_ArrowRight), p, ceData, elementFlags, rr, cg, Style_Enabled);
- }
-
- break;
- }
-
- default: {
- TDEStyle::drawControl(ce, p, ceData, elementFlags, r, cg, sf, o, w);
- }
- }
-}
-
-void AsteroidStyle::drawControlMask(TQ_ControlElement ce,
- TQPainter *p,
- const TQStyleControlElementData &ceData,
- ControlElementFlags elementFlags,
- const TQRect &r,
- const TQStyleOption &o,
- const TQWidget *w) const
-{
- switch (ce) {
- /*
- TQ_ControlElements to draw are:
-
- CE_PushButton
- CE_PushButtonLabel
-
- CE_CheckBox
- CE_CheckBoxLabel
-
- CE_RadioButton
- CE_RadioButtonLabel
-
- CE_TabBarTab
- CE_TabBarLabel
-
- CE_ProgressBarGroove
- CE_ProgressBarContents
- CE_ProgressBarLabel
-
- CE_PopupMenuScroller
- CE_PopupMenuHorizontalExtra
- CE_PopupMenuVerticalExtra
- CE_PopupMenuItem
- CE_MenuBarItem
- CE_MenuBarEmptyArea
- CE_DockWindowEmptyArea
-
- CE_ToolButtonLabel
- CE_ToolBoxTab
-
- CE_HeaderLabel
- */
- default: {
- TDEStyle::drawControlMask(ce, p, ceData, elementFlags, r, o, w);
- }
- }
-}
-
-void AsteroidStyle::drawComplexControl(TQ_ComplexControl cc,
- TQPainter *p,
- const TQStyleControlElementData &ceData,
- ControlElementFlags elementFlags,
- const TQRect &r,
- const TQColorGroup &cg,
- SFlags sf,
- SCFlags sc,
- SCFlags sa,
- const TQStyleOption &o,
- const TQWidget *w) const
-{
- switch (cc) {
- /* TQ_ComplexControls available are:
-
- CC_SpinWidget
- CC_ScrollBar
- CC_Slider
- CC_ToolButton
- CC_TitleBar
- CC_ListView
- */
-#ifndef TQT_NO_LISTVIEW
- case CC_ListView:
- {
- if ( sc & SC_ListView ) {
- TQCommonStyle::drawComplexControl( cc, p, ceData, elementFlags, r, cg, sf, sc, sa, o, w );
- }
- if ( sc & ( SC_ListViewBranch | SC_ListViewExpand ) ) {
- if (o.isDefault())
- break;
-
- TQListViewItem *item = o.listViewItem(),
- *child = item->firstChild();
-
- int y = r.y();
- int c;
- int dotoffset = 0;
- TQPointArray dotlines;
- if ( sa == (uint)SC_All && sc == SC_ListViewExpand ) {
- c = 2;
- dotlines.resize(2);
- dotlines[0] = TQPoint( r.right(), r.top() );
- dotlines[1] = TQPoint( r.right(), r.bottom() );
- } else {
- int linetop = 0, linebot = 0;
- // each branch needs at most two lines, ie. four end points
- dotoffset = (item->itemPos() + item->height() - y) %2;
- dotlines.resize( item->childCount() * 4 );
- c = 0;
-
- // skip the stuff above the exposed rectangle
- while ( child && y + child->height() <= 0 ) {
- y += child->totalHeight();
- child = child->nextSibling();
- }
-
- int bx = r.width() / 2;
-
- // paint stuff in the magical area
- TQListView* v = item->listView();
- while ( child && y < r.height() ) {
- if (child->isVisible()) {
- int lh;
- if ( !item->multiLinesEnabled() )
- lh = child->height();
- else
- lh = p->fontMetrics().height() + 2 * v->itemMargin();
- lh = TQMAX( lh, TQApplication::globalStrut().height() );
- if ( lh % 2 > 0 )
- lh++;
- linebot = y + lh/2;
- if ( (child->isExpandable() || child->childCount()) &&
- (child->height() > 0) ) {
- // needs a box
- p->setPen( cg.mid() );
- p->drawRect( bx-4, linebot-4, 9, 9 );
- // plus or minus
- p->setPen( cg.text() );
- p->drawLine( bx - 2, linebot, bx + 2, linebot );
- if ( !child->isOpen() )
- p->drawLine( bx, linebot - 2, bx, linebot + 2 );
- // dotlinery
- p->setPen( cg.mid() );
- dotlines[c++] = TQPoint( bx, linetop );
- dotlines[c++] = TQPoint( bx, linebot - 4 );
- dotlines[c++] = TQPoint( bx + 5, linebot );
- dotlines[c++] = TQPoint( r.width(), linebot );
- linetop = linebot + 5;
- } else {
- // just dotlinery
- dotlines[c++] = TQPoint( bx+1, linebot -1);
- dotlines[c++] = TQPoint( r.width(), linebot -1);
- }
- y += child->totalHeight();
- }
- child = child->nextSibling();
- }
-
- // Expand line height to edge of rectangle if there's any
- // visible child below
- while ( child && child->height() <= 0)
- child = child->nextSibling();
- if ( child )
- linebot = r.height();
-
- if ( linetop < linebot ) {
- dotlines[c++] = TQPoint( bx, linetop );
- dotlines[c++] = TQPoint( bx, linebot );
- }
- }
- p->setPen( cg.text() );
-
- static TQBitmap *verticalLine = 0, *horizontalLine = 0;
- static TQCleanupHandler<TQBitmap> qlv_cleanup_bitmap;
- if ( !verticalLine ) {
- // make 128*1 and 1*128 bitmaps that can be used for
- // drawing the right sort of lines.
- verticalLine = new TQBitmap( 1, 129, TRUE );
- horizontalLine = new TQBitmap( 128, 1, TRUE );
- TQPointArray a( 64 );
- TQPainter p;
- p.begin( verticalLine );
- int i;
- for( i=0; i<64; i++ )
- a.setPoint( i, 0, i*2+1 );
- p.setPen( Qt::color1 );
- p.drawPoints( a );
- p.end();
- TQApplication::flushX();
- verticalLine->setMask( *verticalLine );
- p.begin( horizontalLine );
- for( i=0; i<64; i++ )
- a.setPoint( i, i*2+1, 0 );
- p.setPen( Qt::color1 );
- p.drawPoints( a );
- p.end();
- TQApplication::flushX();
- horizontalLine->setMask( *horizontalLine );
- qlv_cleanup_bitmap.add( &verticalLine );
- qlv_cleanup_bitmap.add( &horizontalLine );
- }
-
- int line; // index into dotlines
- if ( sc & SC_ListViewBranch ) for( line = 0; line < c; line += 2 ) {
- // assumptions here: lines are horizontal or vertical.
- // lines always start with the numerically lowest
- // coordinate.
-
- // point ... relevant coordinate of current point
- // end ..... same coordinate of the end of the current line
- // other ... the other coordinate of the current point/line
- if ( dotlines[line].y() == dotlines[line+1].y() ) {
- int end = dotlines[line+1].x();
- int point = dotlines[line].x();
- int other = dotlines[line].y();
- while( point < end ) {
- int i = 128;
- if ( i+point > end )
- i = end-point;
- p->drawPixmap( point, other, *horizontalLine,
- 0, 0, i, 1 );
- point += i;
- }
- } else {
- int end = dotlines[line+1].y();
- int point = dotlines[line].y();
- int other = dotlines[line].x();
- int pixmapoffset = ((point & 1) != dotoffset ) ? 1 : 0;
- while( point < end ) {
- int i = 128;
- if ( i+point > end )
- i = end-point;
- p->drawPixmap( other, point, *verticalLine,
- 0, pixmapoffset, 1, i );
- point += i;
- }
- }
- }
- }
- }
- break;
-#endif //TQT_NO_LISTVIEW
-
- case CC_ComboBox: {
- int x, y, x2, y2, sw, sh;
- r.rect(&x, &y, &sw, &sh);
- r.coords(&x, &y, &x2, &y2);
-
- if (sa & Style_Sunken) {
- sf |= Style_Sunken;
- }
-
- static const unsigned char downarrow_bits[] = {
- 0x7f, 0xbe, 0x9c, 0x08, 0x00, 0x00, 0x00, 0x28,
- 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0xb8
- };
-
- static const unsigned int handle_width = 16;
- static const unsigned int handle_offset = handle_width + 1;
-
- TQBitmap downArrow = TQBitmap(7, 4, downarrow_bits, true);
- downArrow.setMask(downArrow);
-
- // Draw the frame around the text.
- p->setPen(cg.mid());
- p->setBrush(cg.dark());
- p->drawRect(r);
- p->setPen(cg.light());
- p->drawLine(x2, y2, x2, y);
- p->drawLine(x2, y2, x, y2);
- p->setPen(cg.background());
- p->drawLine(x2-1, y2-1, x2-1, y+1);
- p->drawLine(x2-1, y2-1, x+1, y2-1);
-
- // Fill in the area behind the text.
- p->fillRect(querySubControlMetrics(cc, ceData, elementFlags, SC_ComboBoxEditField, TQStyleOption::Default, w), cg.base());
- p->setBrush(cg.background());
-
- // Draw the box on the right.
- TQRect hr(sw - handle_offset-1, y+2, handle_width, sh-4);
- int hrx, hry, hrx2, hry2;
- hr.coords(&hrx, &hry, &hrx2, &hry2);
- if (backwards) { hr = visualRect(hr, r); }
-
- p->drawRect(hr);
-
- bool draw_skinny_frame = false;
-// if (!ceData.widgetObjectTypes.contains(TQCOMBOBOX_OBJECT_NAME_STRING)) draw_skinny_frame = true;
- if (ceData.comboBoxListBoxFlags & CEF_IsVisible) draw_skinny_frame = true;
- if (draw_skinny_frame) {
- p->setPen(cg.mid());
- p->drawRect(hr);
- } else {
- p->setPen(cg.light());
- p->drawLine(hrx+1, hry+1, hrx2-1, hry+1);
- p->drawLine(hrx+1, hry+1, hrx+1, hry2-1);
-
- p->setPen(cg.mid());
- p->drawLine(hrx2-1, hry2-1, hrx+1, hry2-1);
- p->drawLine(hrx2-1, hry2-1, hrx2-1, hry+1);
-
- p->setPen(cg.dark());
- p->drawLine(hrx2, hry2, hrx, hry2);
- p->drawLine(hrx2, hry2, hrx2, hry);
- }
-
- TQRect cr(sw - handle_offset-1, y+2, handle_width, sh - 4);
- TQRect pmr(0, 0, 7, 4);
- pmr.moveCenter(cr.center());
- if (ceData.comboBoxListBoxFlags & CEF_IsVisible) {
- pmr.moveBy(1, 1);
- }
-
- if (backwards) { pmr = visualRect(pmr, r); }
-
- p->setPen(cg.foreground());
- p->drawPixmap(pmr.topLeft(), downArrow);
-
- break;
- }
-
-#ifndef TQT_NO_TOOLBUTTON
- case CC_ToolButton:
- {
- TQColorGroup c = cg;
- if ( ceData.backgroundMode != TQt::PaletteButton )
- c.setBrush( TQColorGroup::Button, ceData.paletteBgColor );
- TQRect button, menuarea;
- button = visualRect( querySubControlMetrics(cc, ceData, elementFlags, SC_ToolButton, o, w), ceData, elementFlags );
- menuarea = visualRect( querySubControlMetrics(cc, ceData, elementFlags, SC_ToolButtonMenu, o, w), ceData, elementFlags );
-
- SFlags bflags = sf;
- SFlags mflags = sf;
-
- if (sa & SC_ToolButton)
- bflags |= Style_Down;
- if (sa & SC_ToolButtonMenu)
- mflags |= Style_Down;
-
- if (sc & SC_ToolButton) {
- if (bflags & (Style_Down | Style_On | Style_Raised)) {
- drawPrimitive(TQStyle::PE_ButtonTool, p, ceData, elementFlags, button, c, bflags, o);
- } else if ( ! ceData.parentWidgetData.bgPixmap.isNull() ) {
- TQPixmap pixmap = ceData.parentWidgetData.bgPixmap;
-
- p->drawTiledPixmap( r, pixmap, ceData.pos );
- }
- }
-
- if (sc & SC_ToolButtonMenu) {
- if (mflags & (Style_Down | Style_On | Style_Raised))
- drawPrimitive(TQStyle::PE_ButtonDropDown, p, ceData, elementFlags, menuarea, c, mflags, o);
- drawPrimitive(TQStyle::PE_ArrowDown, p, ceData, elementFlags, menuarea, c, mflags, o);
- }
-
- if ((elementFlags & CEF_HasFocus) && !(elementFlags & CEF_HasFocusProxy)) {
- TQRect fr = ceData.rect;
- fr.addCoords(3, 3, -3, -3);
- drawPrimitive(TQStyle::PE_FocusRect, p, ceData, elementFlags, fr, c);
- }
-
- break;
- }
-#endif // TQT_NO_TOOLBUTTON
-
- case CC_Slider: {
- TQRect groove = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderGroove, o, w);
- TQRect handle = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderHandle, o, w);
-
- // Double-buffer slider for no flicker
- TQPixmap pix(ceData.rect.size());
- TQPainter p2;
- p2.begin(&pix);
-
- if ( !ceData.parentWidgetData.bgPixmap.isNull() ) {
- TQPixmap pixmap = ceData.parentWidgetData.bgPixmap;
- p2.drawTiledPixmap(r, pixmap, ceData.pos);
- } else
- pix.fill(cg.background());
-
- // Draw slider groove
- if ((sc & SC_SliderGroove) && groove.isValid()) {
- drawTDEStylePrimitive( KPE_SliderGroove, &p2, ceData, elementFlags, groove, cg, sf, o, w );
-
- // Draw the focus rect around the groove
- if (elementFlags & CEF_HasFocus)
- drawPrimitive(PE_FocusRect, &p2, ceData, elementFlags, groove, cg);
- }
-
-
- /* Turn these off for now */
- // Draw the tickmarks
- /*if (controls & SC_SliderTickmarks)
- TQCommonStyle::drawComplexControl(control, &p2,
- r, cg, flags, SC_SliderTickmarks, sa, o);*/
-
- // Draw the slider handle
- if ((sc & SC_SliderHandle) && handle.isValid()) {
- if (sa == SC_SliderHandle)
- sf |= Style_Active;
- drawTDEStylePrimitive( KPE_SliderHandle, &p2, ceData, elementFlags, handle, cg, sf, o, w );
- }
-
- p2.end();
- if (w) {
- bitBlt((TQWidget*)w, r.x(), r.y(), &pix);
- }
- else {
- p->drawPixmap(r.topLeft(), pix);
- }
- break;
- }
-
- case CC_SpinWidget: {
- int x, y, x2, y2, w, h;
- int aw = SPINBOX_BUTTON_WIDTH; // arrow button width
- r.coords(&x, &y, &x2, &y2);
- r.rect(&x, &y, &w, &h);
-
- TQRect arrowup(x2-aw, y+2, aw, h/2-1);
- TQRect arrowdn(x2-aw, h/2+1, aw, h/2-2);
-
- // Draw the frame around the text
- p->setPen(cg.mid());
- p->setBrush(cg.dark());
- p->drawRect(r);
- p->setPen(cg.light());
- p->drawLine(x2, y2, x2, y);
- p->drawLine(x2, y2, x, y2);
- p->setPen(cg.background());
- p->drawLine(x2-1, y2-1, x2-1, y+2);
- p->drawLine(x2-1, y2-1, x+1, y2-1);
- p->drawLine(x2-aw-1, y+2, x2-aw-1, y2-1);
-
- // Draw the arrow buttons
- SFlags upflags = Style_Default;
- SFlags downflags = Style_Default;
- if (ceData.spinWidgetData.upEnabled) {
- upflags |= Style_Enabled;
- }
- if (ceData.spinWidgetData.downEnabled) {
- downflags |= Style_Enabled;
- }
- if (sa == SC_SpinWidgetUp) {
- upflags |= Style_On;
- upflags |= Style_Sunken;
- downflags |= Style_Raised;
- }
- if (sa == SC_SpinWidgetDown) {
- downflags |= Style_On;
- downflags |= Style_Sunken;
- upflags |= Style_Raised;
- }
-
- p->setPen(TQt::NoPen);
- drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, arrowup, cg, upflags, o);
- p->setPen(TQt::NoPen);
- drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, arrowdn, cg, downflags, o);
- p->setPen(TQt::NoPen);
- drawPrimitive(PE_SpinWidgetUp, p, ceData, elementFlags, arrowup, cg, upflags, o);
- p->setPen(TQt::NoPen);
- drawPrimitive(PE_SpinWidgetDown, p, ceData, elementFlags, arrowdn, cg, downflags, o);
-
- break;
-
- }
-
-
-
- default: {
- TDEStyle::drawComplexControl(cc, p, ceData, elementFlags, r, cg, sf, sc, sa, o, w);
- }
- }
-}
-
-void AsteroidStyle::drawComplexControlMask(TQ_ComplexControl cc,
- TQPainter *p,
- const TQStyleControlElementData &ceData,
- const ControlElementFlags elementFlags,
- const TQRect &r,
- const TQStyleOption &o,
- const TQWidget *w) const
-{
- switch (cc) {
- /* TQ_ComplexControls available are:
-
- CC_SpinWidget
- CC_ComboBox
- CC_ScrollBar
- CC_Slider
- CC_ToolButton
- CC_TitleBar
- CC_ListView
- */
- default: {
- TDEStyle::drawComplexControlMask(cc, p, ceData, elementFlags, r, o, w);
- }
- }
-}
-
-int AsteroidStyle::pixelMetric(PixelMetric pm, const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, const TQWidget *w) const
-{
- switch (pm) {
- /* PixelMetrics available are:
-
- PM_ButtonMargin
- PM_ButtonDefaultIndicator
-
- PM_SpinBoxFrameWidth
- PM_MDIFrameWidth
- PM_MDIMinimizedWidth
-
- PM_MaximumDragDistance
-
- PM_ScrollBarExtent
- PM_ScrollBarSliderMin
-
- PM_SliderThickness
- PM_SliderControlThickness
- PM_SliderLength
- PM_SliderTickmarkOffset
- PM_SliderSpaceAvailable
-
- PM_DockWindowSeparatorExtent
- PM_DockWindowHandleExtent
-
- PM_TabBarTabOverlap
- PM_TabBarTabHSpace
- PM_TabBarTabVSpace
- PM_TabBarBaseHeight
- PM_TabBarBaseOverlap
-
- PM_ProgressBarChunkWidth
-
- PM_SplitterWidth
-
- PM_TitleBarHeight
-
- PM_CheckListButtonSize
- PM_CheckListControllerSize
-
- PM_PopupMenuFrameHorizontalExtra
- PM_PopupMenuFrameVerticalExtra
- PM_PopupMenuScrollerHeight
-
- PM_HeaderMarkSize
-
- PM_TabBarTabShiftHorizontal
- PM_TabBarTabShiftVertical
- */
-
- case PM_ExclusiveIndicatorWidth:
- case PM_ExclusiveIndicatorHeight: {
- return 12;
- }
-
- case PM_IndicatorWidth:
- case PM_IndicatorHeight: {
- return 13;
- }
-
- case PM_MenuBarFrameWidth: {
- return 2;
- }
-
- case PM_ButtonShiftHorizontal:
- case PM_ButtonShiftVertical: {
- return 1;
- }
-
- case PM_HeaderGripMargin:
- case PM_HeaderMargin: {
- return 3;
- }
-
- case PM_DialogButtonsButtonWidth: {
- return MINIMUM_PUSHBUTTON_WIDTH;
- }
-
- case PM_DialogButtonsButtonHeight: {
- return MINIMUM_PUSHBUTTON_HEIGHT;
- }
-
- case PM_DockWindowSeparatorExtent:
- case PM_MenuButtonIndicator:
- case PM_DockWindowFrameWidth:
- case PM_DialogButtonsSeparator: {
- return 6;
- }
-
- case PM_DefaultFrameWidth: {
- if (ceData.widgetObjectTypes.contains(TQPOPUPMENU_OBJECT_NAME_STRING)) {
- return 3;
- } else {
- return TDEStyle::pixelMetric(pm, ceData, elementFlags, w);
- }
- }
-
- case PM_TabBarTabOverlap:
- return 4;
-
- case PM_TabBarBaseHeight:
- return 0;
-
- case PM_TabBarBaseOverlap:
- return 0;
-
- case PM_TabBarTabHSpace:
- return 24;
-
- case PM_TabBarTabShiftHorizontal:
- return 4;
-
- case PM_TabBarTabShiftVertical:
- return 2;
-
- case PM_SplitterWidth:
- return TQMAX( 4, TQApplication::globalStrut().width() );
-
- case PM_MenuIndicatorFrameHBorder:
- case PM_MenuIndicatorFrameVBorder:
- case PM_MenuIconIndicatorFrameHBorder:
- case PM_MenuIconIndicatorFrameVBorder:
- return 0;
-
- default: {
- return TDEStyle::pixelMetric(pm, ceData, elementFlags, w);
- }
- }
-}
-
-TQRect AsteroidStyle::subRect(SubRect sr, const TQStyleControlElementData &ceData, const ControlElementFlags elementFlags, const TQWidget *w) const
-{
- switch (sr) {
- /* SubRects to calculate are:
-
- SR_PushButtonContents
- SR_PushButtonFocusRect
-
- SR_CheckBoxIndicator
- SR_CheckBoxContents
- SR_CheckBoxFocusRect
-
- SR_RadioButtonIndicator
- SR_RadioButtonContents
- SR_RadioButtonFocusRect
-
- SR_ComboBoxFocusRect
- SR_SliderFocusRect
-
- SR_DockWindowHandleRect
-
- SR_ProgressBarGroove
- SR_ProgressBarContents
- SR_ProgressBarLabel
-
- SR_ToolButtonContents
- SR_ToolBoxTabContents
-
- SR_DialogButtonAccept
- SR_DialogButtonReject
- SR_DialogButtonApply
- SR_DialogButtonHelp
- SR_DialogButtonAll
- SR_DialogButtonAbort
- SR_DialogButtonIgnore
- SR_DialogButtonRetry
- SR_DialogButtonCustom
- */
- default: {
- return TDEStyle::subRect(sr, ceData, elementFlags, w);
- }
- }
-}
-
-TQRect AsteroidStyle::querySubControlMetrics(TQ_ComplexControl cc,
- const TQStyleControlElementData &ceData,
- ControlElementFlags elementFlags,
- SubControl sc,
- const TQStyleOption &o,
- const TQWidget *w) const
-{
- switch (cc) {
- /* Available SubControls are:
-
- SC_ScrollBarAddLine
- SC_ScrollBarSubLine
- SC_ScrollBarAddPage
- SC_ScrollBarSubPage
- SC_ScrollBarFirst
- SC_ScrollBarLast
- SC_ScrollBarSlider
- SC_ScrollBarGroove
-
- SC_SpinWidgetUp
- SC_SpinWidgetDown
- SC_SpinWidgetFrame
- SC_SpinWidgetEditField
- SC_SpinWidgetButtonField
-
- SC_ComboBoxFrame
- SC_ComboBoxArrow
- SC_ComboBoxListBoxPopup
-
- SC_SliderGroove
- SC_SliderHandle
- SC_SliderTickmarks
-
- SC_ToolButton
- SC_ToolButtonMenu
-
- SC_TitleBarLabel
- SC_TitleBarSysMenu
- SC_TitleBarMinButton
- SC_TitleBarMaxButton
- SC_TitleBarCloseButton
- SC_TitleBarNormalButton
- SC_TitleBarShadeButton
- SC_TitleBarUnshadeButton
-
- SC_ListView
- SC_ListViewBranch
- SC_ListViewExpand
- */
- case CC_ComboBox: {
- TQRect r(ceData.rect);
-
- switch (sc) {
- case SC_ComboBoxEditField: {
- return TQRect(r.x()+2, r.y()+2, r.width()-20, r.height()-4);
- }
- default: {
- return TDEStyle::querySubControlMetrics(cc, ceData, elementFlags, sc, o, w);
- }
- }
-
- break;
- }
-
- case CC_SpinWidget: {
- int fw = pixelMetric(PM_SpinBoxFrameWidth, ceData, elementFlags, w);
- TQSize bs;
- bs.setHeight(ceData.rect.height()/2 - fw);
- if (bs.height() < 8) {
- bs.setHeight(8);
- }
- bs.setWidth(SPINBOX_BUTTON_WIDTH);
- bs = bs.expandedTo(TQApplication::globalStrut());
- int y = fw;
- int x, lx, rx;
- x = ceData.rect.width() - y - bs.width();
- lx = fw;
- rx = x - fw;
- switch ( sc ) {
- case SC_SpinWidgetUp:
- return TQRect(x, y, bs.width(), bs.height());
- case SC_SpinWidgetDown:
- return TQRect(x, y + bs.height(), bs.width(), bs.height());
- case SC_SpinWidgetButtonField:
- return TQRect(x, y, bs.width(), ceData.rect.height() - (2*fw));
- case SC_SpinWidgetEditField:
- return TQRect(lx, fw, rx, ceData.rect.height() - (2*fw));
- case SC_SpinWidgetFrame:
- return ceData.rect;
- default:
- return TDEStyle::querySubControlMetrics(cc, ceData, elementFlags, sc, o, w);
- break;
- }
-
- break;
- }
-
- default: {
- return TDEStyle::querySubControlMetrics(cc, ceData, elementFlags, sc, o, w);
- }
- }
-}
-
-TQSize AsteroidStyle::sizeFromContents(ContentsType ct,
- const TQStyleControlElementData &ceData,
- ControlElementFlags elementFlags,
- const TQSize &s,
- const TQStyleOption &o,
- const TQWidget *w) const
-{
- switch (ct) {
- /* ContentsType values can be:
-
- CT_CheckBox
- CT_RadioButton
- CT_Splitter
- CT_DockWindow
- CT_ProgressBar
- CT_TabBarTab
- CT_Slider
- CT_LineEdit
- CT_SpinBox
- CT_SizeGrip
- CT_TabWidget
- CT_DialogButtons
- */
- case CT_ToolButton: {
- return TQSize(s.width() + 8, s.height() + 8);
- }
-
- case CT_PushButton: {
- const TQPushButton *pb = dynamic_cast<const TQPushButton *>(w);
- const TQSize ret = TDEStyle::sizeFromContents(ct, ceData, elementFlags, s, o, w);
- int rw = ret.width(), rh = ret.height();
- int mw;
- int mh;
- if (pb->text().length() > 0) {
- mw = MINIMUM_PUSHBUTTON_WIDTH;
- mh = MINIMUM_PUSHBUTTON_HEIGHT;
- }
- else {
- mw = 1;
- mh = 1;
- }
-
- if (pb->text().length() > 0) {
- if (pb->iconSet() && !pb->iconSet()->isNull()) {
- rw += ((pb->iconSet()->pixmap(TQIconSet::Small, TQIconSet::Normal).width())*2.0);
- } else if (pb->pixmap() && !pb->pixmap()->isNull()) {
- rw += ((pb->pixmap()->width())*2.0);
- }
- }
- else {
- if (pb->iconSet() && !pb->iconSet()->isNull()) {
- rw += ((pb->iconSet()->pixmap(TQIconSet::Small, TQIconSet::Normal).width())*0.0);
- } else if (pb->pixmap() && !pb->pixmap()->isNull()) {
- rw += ((pb->pixmap()->width())*0.0);
- }
- }
-
- return TQSize((rw < mw ? mw : rw), (rh < mh ? mh : rh));
- }
-
- case CT_ComboBox: {
- int padding = (pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, w) * 2) + 1;
- return TQSize(s.width() + 21, s.height() + padding);
- }
-
- case CT_PopupMenuItem: {
- if (o.isDefault()) {
- return TQSize(0, 0);
- }
-
- int sw = s.width(), sh = s.height();
- TQMenuItem *mi = o.menuItem();
-
- if (mi->custom()) {
- sw = mi->custom()->sizeHint().width();
- sh = mi->custom()->sizeHint().height();
- } else if (mi->widget()) {
- /* This is a do-nothing branch */
- } else if (mi->isSeparator()) {
- sw = 0, sh = 9;
- } else {
- if (mi->pixmap()) {
- sh = TQMAX(sh, mi->pixmap()->height() + 2);
- } else if (mi->iconSet()) {
- sh = TQMAX(sh, mi->iconSet()->pixmap(TQIconSet::Small, TQIconSet::Normal).height() + 2);
- }
-
- sh = TQMAX(sh, TQFontMetrics(ceData.font).height() + 4);
- }
-
- if (!mi->text().isNull()) {
- if ((mi->text().find('\t') >= 0)) {
- sw += 16;
- } else if (mi->popup()) {
- sw += 8;
- }
- }
-
- int miw = o.maxIconWidth();
- if (miw) {
- sw += miw;
- if (elementFlags & CEF_IsCheckable) {
- sw += 20 - miw;
- }
- }
-
- sw += 20;
-
- return TQSize(sw, sh);
- }
-
- case CT_MenuBar: {
- // Fall through is intentional
-// const TQMenuBar *mb = dynamic_cast<const TQMenuBar *>(w);
-// int sh = TQFontInfo(mb->font()).pixelSize() + 4;
-// int sw = 10;
-// return TQSize(sw, sh);
- }
-
- case CT_Header: {
- // Fall through is intentional
-// const TQHeader *hw = dynamic_cast<const TQHeader *>(w);
-// int sh = TQFontInfo(ceData.font).pixelSize() + 8;
-// int sw = 10;
-// return TQSize(sw, sh);
- }
-
- default: {
- return TDEStyle::sizeFromContents(ct, ceData, elementFlags, s, o, w);
- }
- }
-}
-
-void AsteroidStyle::paletteChanged()
-{
-}
-
-bool AsteroidStyle::objectEventHandler( const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void* source, TQEvent *e )
-{
- /* Win2K has this interesting behaviour where it sets the current
- default button to whatever pushbutton the user presses the mouse
- on. I _think_ this emulates that properly. -clee */
- if (ceData.widgetObjectTypes.contains(TQPUSHBUTTON_OBJECT_NAME_STRING)) {
- if (e->type() == TQEvent::MouseButtonPress) {
- widgetActionRequest(ceData, elementFlags, source, WAR_SetDefault);
- }
- }
-
- return false;
-}