diff options
Diffstat (limited to 'kstyles/klegacy/klegacystyle.cpp')
-rw-r--r-- | kstyles/klegacy/klegacystyle.cpp | 3366 |
1 files changed, 0 insertions, 3366 deletions
diff --git a/kstyles/klegacy/klegacystyle.cpp b/kstyles/klegacy/klegacystyle.cpp deleted file mode 100644 index a169de874..000000000 --- a/kstyles/klegacy/klegacystyle.cpp +++ /dev/null @@ -1,3366 +0,0 @@ -/* - - Copyright (c) 2000 KDE Project - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - */ - -#include "klegacystyle.h" -#include "klegacystyle.moc" -#include <tdelocale.h> -#include <kiconloader.h> - -#define INCLUDE_MENUITEM_DEF -#include <tqapplication.h> -#include <tqbitmap.h> -#include <tqbuttongroup.h> -#include <tqcanvas.h> -#include <tqcheckbox.h> -#include <tqcolor.h> -#include <tqcolordialog.h> -#include <tqcombobox.h> -#include <tqdial.h> -#include <tqdialog.h> -#include <tqdict.h> -#include <tqfile.h> -#include <tqfiledialog.h> -#include <tqfileinfo.h> -#include <tqfont.h> -#include <tqfontdialog.h> -#include <tqframe.h> -#include <tqguardedptr.h> -#include <tqgrid.h> -#include <tqgroupbox.h> -#include <tqhbox.h> -#include <tqhbuttongroup.h> -#include <tqheader.h> -#include <tqhgroupbox.h> -#include <tqiconview.h> -#include <tqimage.h> -#include <tqinputdialog.h> -#include <tqintdict.h> -#include <tqlabel.h> -#include <tqlayout.h> -#include <tqlcdnumber.h> -#include <tqlineedit.h> -#include <tqptrlist.h> -#include <tqlistbox.h> -#include <tqlistview.h> -#include <tqmainwindow.h> -#include <tqmenubar.h> -#include <tqmenudata.h> -#include <tqmessagebox.h> -#include <tqmultilineedit.h> -#include <tqobjectlist.h> -#include <tqpainter.h> -#include <tqpixmap.h> -#include <tqpixmapcache.h> -#include <tqpopupmenu.h> -#include <tqprintdialog.h> -#include <tqprogressbar.h> -#include <tqprogressdialog.h> -#include <tqpushbutton.h> -#include <tqradiobutton.h> -#include <tqregexp.h> -#include <tqscrollbar.h> -#include <tqscrollview.h> -#include <tqsemimodal.h> -#include <tqsizegrip.h> -#include <tqslider.h> -#include <tqspinbox.h> -#include <tqsplitter.h> -#include <tqstatusbar.h> -#include <tqstring.h> -#include <tqtabbar.h> -#include <tqtabdialog.h> -#include <qtableview.h> -#include <tqtabwidget.h> -#include <tqtextbrowser.h> -#include <tqtextstream.h> -#include <tqtextview.h> -#include <tqtoolbar.h> -#include <tqtoolbutton.h> -#include <tqtooltip.h> -#include <tqvbox.h> -#include <tqvbuttongroup.h> -#include <tqvgroupbox.h> -#include <tqwidget.h> -#include <tqwidgetstack.h> -#include <tqwizard.h> -#include <tqworkspace.h> - -#include <stdlib.h> -#include <unistd.h> -#include <limits.h> -#include <sys/types.h> - -// forward declaration of classes -class KLegacyBorder; -class KLegacyStyleData; -class KLegacyImageData; -class GtkObject; - -// declaration of hidden functions -typedef void (TQStyle::*QDrawMenuBarItemImpl) (TQPainter *, int, int, int, int, - TQMenuItem *, TQColorGroup &, bool, bool); -extern QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl impl); - -// the addresses of the integers are used to place things in the -// style data dict -static int listviewitem_ptr = 0; -static int listboxitem_ptr = 1; -static int menuitem_ptr = 2; -static int separator_ptr = 3; -static int arrow_ptr = 4; -static int whatsthis_ptr = 5; -static int checkmenuitem_ptr = 6; -static int radiomenuitem_ptr = 7; -static int eventbox_ptr = 8; - -// a TQImage cache, since we need to resize some images to different sizes, we -// will cache them, to save the overhead of loading the image from disk each -// time it's needed -static const int imageCacheSize = 61; -static TQDict<TQImage> *imageCache = 0; - - -class KLegacy { -public: - enum Function { Box = 1, FlatBox, Extension, Check, Option, - HLine, VLine, BoxGap, Slider, Tab, Arrow, Handle, FShadow, Focus }; - enum State { Normal = 1, Prelight, Active, Insensitive, Selected }; - enum Shadow { NoShadow = 0, In, Out, EtchedIn, EtchedOut }; - enum GapSide { Left = 1, Right, Top, Bottom }; -}; - - -class KLegacyBorder : public KLegacy { -private: - int l, r, t, b; - - -public: - KLegacyBorder(int ll = 0, int rr = 0, int tt = 0, int bb = 0) - : l(ll), r(rr), t(tt), b(bb) - { } - - KLegacyBorder(const KLegacyBorder &br) - : l(br.l), r(br.r), t(br.t), b(br.b) - { } - - inline int left(void) const - { return l; } - inline int right(void) const - { return r; } - inline int top(void) const - { return t; } - inline int bottom(void) const - { return b; } - - inline void setLeft(int ll) - { l = ll; } - inline void setRight(int rr) - { r = rr; } - inline void setTop(int tt) - { t = tt; } - inline void setBottom(int bb) - { b = bb; } -}; - - -struct KLegacyImageDataKeyField { - TQ_INT8 function : 8; - TQ_INT8 state : 8; - TQ_INT8 shadow : 4; - TQ_INT8 orientation : 4; - TQ_INT8 arrowDirection : 4; - TQ_INT8 gapSide : 4; -}; - - -union KLegacyImageDataKey { - KLegacyImageDataKeyField data; - long cachekey; -}; - - -class KLegacyImageData : public KLegacy { -public: - KLegacyImageDataKey key; - - TQString file; - TQString detail; - TQString overlayFile; - TQString gapFile; - TQString gapStartFile; - TQString gapEndFile; - - KLegacyBorder border; - KLegacyBorder overlayBorder; - KLegacyBorder gapBorder; - KLegacyBorder gapStartBorder; - KLegacyBorder gapEndBorder; - - bool recolorable; - bool stretch; - bool overlayStretch; - - KLegacyImageData() - : recolorable(false), - stretch(false), - overlayStretch(false) - { key.cachekey = 0; } -}; - - -class KLegacyStyleData : public KLegacy { -public: - // name of this style - TQString name; - - // font to use - TQFont *fn; - - // list of image datas (which tell us how to draw things) - QList<KLegacyImageData> imageList; - - // background, foreground and base colors for the 5 widget - //states that Gtk defines - TQColor back[5], fore[5], base[5]; - - // reference count - int ref; - - KLegacyStyleData() - : fn(0), ref(0) - { - // have the imageList delete the items it holds when it's deleted - imageList.setAutoDelete(true); - } -}; - - -class GtkObject : public TQObject { -private: - KLegacyStyleData *d; - - friend class KLegacyStylePrivate; - - -public: - GtkObject(GtkObject *parent, const char *name) - : TQObject(parent, name) - { d = 0; } - - GtkObject *find(TQRegExp &) const; - - TQColor backColor(KLegacy::State); - TQColor baseColor(KLegacy::State); - TQColor foreColor(KLegacy::State); - - TQFont *font(); - - inline TQString styleName() - { return styleData()->name; } - - KLegacyStyleData *styleData(); - KLegacyImageData *getImageData(KLegacyImageDataKey, - const TQString & = TQString::null); - - TQPixmap *draw(KLegacyImageDataKey, int, int, const TQString & = TQString::null); - TQPixmap *draw(KLegacyImageData *, int, int); -}; - - -static TQPixmap *drawImage(TQImage *image, int width, int height, - KLegacyBorder border, bool scale) -{ - if ((! image) || (image->isNull()) || (width < 1) || (height < 1)) { - return (TQPixmap *) 0; - } - - TQPixmap *pixmap = new TQPixmap(width, height); - - if (scale) { - if (width < 2) width = 2; - if (height < 2) height = 2; - - int x[3], y[3], w[3], h[3], x2[3], y2[3], w2[3], h2[3]; - - // left - x[0] = x2[0] = 0; - w[0] = (border.left() < 1) ? 1 : border.left(); - - // middle - x[1] = border.left(); - w[1] = image->width() - border.left() - border.right(); - if (w[1] < 1) w[1] = 1; - - // right - x[2] = image->width() - border.right(); - w[2] = (border.right() < 1) ? 1 : border.right(); - if (x[2] < 0) x[2] = 0; - - if ((border.left() + border.right()) > width) { - // left - x2[0] = 0; - w2[0] = (width / 2) + 1; - - // middle - x2[1] = w2[0] - 1; - w2[1] = 1; - - // right - x2[2] = x2[1]; - w2[2] = w2[0]; - } else { - // left - x2[0] = 0; - w2[0] = border.left(); - - // middle - x2[1] = w2[0]; - w2[1] = width - border.left() - border.right() + 1; - - // right - x2[2] = width - border.right(); - w2[2] = border.right(); - } - - // top - y[0] = 0; - h[0] = (border.top() < 1) ? 1 : border.top(); - - // middle - y[1] = border.top(); - h[1] = image->height() - border.top() - border.bottom(); - if (h[1] < 1) h[1] = 1; - - // bottom - y[2] = image->height() - border.bottom(); - h[2] = (border.bottom() < 1) ? 1 : border.bottom(); - if (y[2] < 0) y[2] = 0; - - if ((border.top() + border.bottom()) > height) { - // left - y2[0] = 0; - h2[0] = height / 2; - - // middle - y2[1] = h2[0]; - h2[1] = 1; - - // right - y2[2] = y2[1]; - h2[2] = h2[0]; - } else { - // left - y2[0] = 0; - h2[0] = border.top(); - - // middle - y2[1] = h2[0]; - h2[1] = height - border.top() - border.bottom() + 1; - - // bottom - y2[2] = height - border.bottom(); - h2[2] = border.bottom(); - } - - // draw the image - bool mask = image->hasAlphaBuffer(); - TQBitmap bm(width, height); - bm.fill(Qt::color1); - - TQImage nimage[3][3]; - int xx = -1, yy = -1; - while (++yy < 3) { - xx = -1; - while (++xx < 3) { - nimage[yy][xx] = image->copy(x[xx], y[yy], w[xx], h[yy]); - - if (nimage[yy][xx].isNull()) continue; - - if ((w[xx] != w2[xx]) || (h[yy] != h2[yy])) - nimage[yy][xx] = nimage[yy][xx].smoothScale(w2[xx], h2[yy]); - - if (nimage[yy][xx].isNull()) continue; - - bitBlt(pixmap, x2[xx], y2[yy], &nimage[yy][xx], - 0, 0, w2[xx], h2[yy], Qt::CopyROP); - - if (mask) { - TQImage am = nimage[yy][xx].createAlphaMask(); - bitBlt(&bm, x2[xx], y2[yy], &am, - 0, 0, w2[xx], h2[yy], Qt::CopyROP); - } - } - } - - if (mask) - pixmap->setMask(bm); - } else { - for (int y = 0; y < height; y += image->height()) - for (int x = 0; x < width; x += image->width()) - bitBlt(pixmap, x, y, image, 0, 0, -1, -1, Qt::CopyROP); - - if (image->hasAlphaBuffer()) { - TQImage mask = image->createAlphaMask(); - - if (! mask.isNull() && mask.depth() == 1) { - TQBitmap bm(width, height); - bm.fill(Qt::color1); - bm = mask; - pixmap->setMask(bm); - } - } - } - - return pixmap; -} - - -// Generate an object tree for all the known Gtk widgets... -// returns a pointer to the bottom of the tree -static GtkObject *initialize(TQPtrDict<GtkObject> &dict) { - // - // auto generated stuff from : - // -- - // #!/usr/bin/perl -w - // - // foreach $line ( <STDIN> ) { - // chomp $line; - // $line =~ s/[^\sa-zA-Z0-9]/ /g; - // $line =~ /^(\s*)(\S*)/; - // $prefixlength = length $1; - // $classname = $2; - // $class{$prefixlength} = $classname; - // $prefixlength--; - // while( $prefixlength >= 0 && !defined($class{$prefixlength}) ) { - // $prefixlength--; - // } - // $parent = $class{$prefixlength}; - // $parent = "0" if ( $parent eq $classname ); - // - // # for GtkBin: - // # myGtkBin = new GtkObject( myGtkWidget, "GtkBin" ); - // - // print "GtkObject * my$classname = - // new GtkObject( my$parent, \"$classname\" );\n"; - // } - // -- - - GtkObject * myGtkObject = - new GtkObject( 0, "GtkObject" ); - GtkObject * myGtkWidget = - new GtkObject( myGtkObject, "GtkWidget" ); - GtkObject * myGtkMisc = - new GtkObject( myGtkWidget, "GtkMisc" ); - GtkObject * myGtkLabel = - new GtkObject( myGtkMisc, "GtkLabel" ); - // GtkObject * myGtkAccelLabel = - // new GtkObject( myGtkLabel, "GtkAccelLabel" ); - GtkObject * myGtkTipsQuery = - new GtkObject( myGtkLabel, "GtkTipsQuery" ); - GtkObject * myGtkArrow = - new GtkObject( myGtkMisc, "GtkArrow" ); - // GtkObject * myGtkImage = - // new GtkObject( myGtkMisc, "GtkImage" ); - // GtkObject * myGtkPixmap = - // new GtkObject( myGtkMisc, "GtkPixmap" ); - GtkObject * myGtkContainer = - new GtkObject( myGtkWidget, "GtkContainer" ); - GtkObject * myGtkBin = - new GtkObject( myGtkContainer, "GtkBin" ); - // GtkObject * myGtkAlignment = - // new GtkObject( myGtkBin, "GtkAlignment" ); - GtkObject * myGtkFrame = - new GtkObject( myGtkBin, "GtkFrame" ); - // GtkObject * myGtkAspectFrame = - // new GtkObject( myGtkFrame, "GtkAspectFrame" ); - GtkObject * myGtkButton = - new GtkObject( myGtkBin, "GtkButton" ); - GtkObject * myGtkToggleButton = - new GtkObject( myGtkButton, "GtkToggleButton" ); - GtkObject * myGtkCheckButton = - new GtkObject( myGtkToggleButton, "GtkCheckButton" ); - GtkObject * myGtkRadioButton = - new GtkObject( myGtkCheckButton, "GtkRadioButton" ); - GtkObject * myGtkOptionMenu = - new GtkObject( myGtkButton, "GtkOptionMenu" ); - GtkObject * myGtkItem = - new GtkObject( myGtkBin, "GtkItem" ); - GtkObject * myGtkMenuItem = - new GtkObject( myGtkItem, "GtkMenuItem" ); - GtkObject * myGtkCheckMenuItem = - new GtkObject( myGtkMenuItem, "GtkCheckMenuItem" ); - GtkObject * myGtkRadioMenuItem = - new GtkObject( myGtkCheckMenuItem, "GtkRadioMenuItem" ); - // GtkObject * myGtkTearoffMenuItem = - // new GtkObject( myGtkMenuItem, "GtkTearoffMenuItem" ); - GtkObject * myGtkListItem = - new GtkObject( myGtkItem, "GtkListItem" ); - GtkObject * myGtkTreeItem = - new GtkObject( myGtkItem, "GtkTreeItem" ); - GtkObject * myGtkWindow = - new GtkObject( myGtkBin, "GtkWindow" ); - GtkObject * myGtkColorSelectionDialog = - new GtkObject( myGtkWindow, "GtkColorSelectionDialog" ); - GtkObject * myGtkDialog = - new GtkObject( myGtkWindow, "GtkDialog" ); - GtkObject * myGtkInputDialog = - new GtkObject( myGtkDialog, "GtkInputDialog" ); - // GtkObject * myGtkDrawWindow = - // new GtkObject( myGtkWindow, "GtkDrawWindow" ); - GtkObject * myGtkFileSelection = - new GtkObject( myGtkWindow, "GtkFileSelection" ); - GtkObject * myGtkFontSelectionDialog = - new GtkObject( myGtkWindow, "GtkFontSelectionDialog" ); - // GtkObject * myGtkPlug = - // new GtkObject( myGtkWindow, "GtkPlug" ); - GtkObject * myGtkEventBox = - new GtkObject( myGtkBin, "GtkEventBox" ); - // GtkObject * myGtkHandleBox = - // new GtkObject( myGtkBin, "GtkHandleBox" ); - // GtkObject * myGtkScrolledWindow = - // new GtkObject( myGtkBin, "GtkScrolledWindow" ); - GtkObject * myGtkViewport = - new GtkObject( myGtkBin, "GtkViewport" ); - GtkObject * myGtkBox = - new GtkObject( myGtkContainer, "GtkBox" ); - GtkObject * myGtkButtonBox = - new GtkObject( myGtkBox, "GtkButtonBox" ); - GtkObject * myGtkHButtonBox = - new GtkObject( myGtkButtonBox, "GtkHButtonBox" ); - GtkObject * myGtkVButtonBox = - new GtkObject( myGtkButtonBox, "GtkVButtonBox" ); - GtkObject * myGtkVBox = - new GtkObject( myGtkBox, "GtkVBox" ); - // GtkObject * myGtkColorSelection = - // new GtkObject( myGtkVBox, "GtkColorSelection" ); - // GtkObject * myGtkGammaCurve = - // new GtkObject( myGtkVBox, "GtkGammaCurve" ); - GtkObject * myGtkHBox = - new GtkObject( myGtkBox, "GtkHBox" ); - - - // CHANGED! It seems that the gtk optionmenu and gtk combobox aren't related, - // but in Qt they are the same class... so we have changed gth GtkCombo to inherit - // from GtkOptionMenu (so that Qt comboboxes look like the optionmenus by default) - GtkObject * myGtkCombo = - new GtkObject( myGtkOptionMenu, "GtkCombo" ); - - - GtkObject * myGtkStatusbar = - new GtkObject( myGtkHBox, "GtkStatusbar" ); - GtkObject * myGtkCList = - new GtkObject( myGtkContainer, "GtkCList" ); - GtkObject * myGtkCTree = - new GtkObject( myGtkCList, "GtkCTree" ); - // GtkObject * myGtkFixed = - // new GtkObject( myGtkContainer, "GtkFixed" ); - GtkObject * myGtkNotebook = - new GtkObject( myGtkContainer, "GtkNotebook" ); - // GtkObject * myGtkFontSelection = - // new GtkObject( myGtkNotebook, "GtkFontSelection" ); - GtkObject * myGtkPaned = - new GtkObject( myGtkContainer, "GtkPaned" ); - // GtkObject * myGtkHPaned = - // new GtkObject( myGtkPaned, "GtkHPaned" ); - // GtkObject * myGtkVPaned = - // new GtkObject( myGtkPaned, "GtkVPaned" ); - // GtkObject * myGtkLayout = - // new GtkObject( myGtkContainer, "GtkLayout" ); - // GtkObject * myGtkList = - // new GtkObject( myGtkContainer, "GtkList" ); - GtkObject * myGtkMenuShell = - new GtkObject( myGtkContainer, "GtkMenuShell" ); - GtkObject * myGtkMenuBar = - new GtkObject( myGtkMenuShell, "GtkMenuBar" ); - GtkObject * myGtkMenu = - new GtkObject( myGtkMenuShell, "GtkMenu" ); - // GtkObject * myGtkPacker = - // new GtkObject( myGtkContainer, "GtkPacker" ); - // GtkObject * myGtkSocket = - // new GtkObject( myGtkContainer, "GtkSocket" ); - GtkObject * myGtkTable = - new GtkObject( myGtkContainer, "GtkTable" ); - GtkObject * myGtkToolbar = - new GtkObject( myGtkContainer, "GtkToolbar" ); - // GtkObject * myGtkTree = - // new GtkObject( myGtkContainer, "GtkTree" ); - // GtkObject * myGtkCalendar = - // new GtkObject( myGtkWidget, "GtkCalendar" ); - GtkObject * myGtkDrawingArea = - new GtkObject( myGtkWidget, "GtkDrawingArea"); - // GtkObject * myGtkCurve = - // new GtkObject( myGtkDrawingArea, "GtkCurve" ); - GtkObject * myGtkEditable = - new GtkObject( myGtkWidget, "GtkEditable" ); - GtkObject * myGtkEntry = - new GtkObject( myGtkEditable, "GtkEntry" ); - GtkObject * myGtkSpinButton = - new GtkObject( myGtkEntry, "GtkSpinButton" ); - GtkObject * myGtkText = - new GtkObject( myGtkEditable, "GtkText" ); - GtkObject * myGtkRuler = - new GtkObject( myGtkWidget, "GtkRuler" ); - // GtkObject * myGtkHRuler = - // new GtkObject( myGtkRuler, "GtkHRuler" ); - // GtkObject * myGtkVRuler = - // new GtkObject( myGtkRuler, "GtkVRuler" ); - GtkObject * myGtkRange = - new GtkObject( myGtkWidget, "GtkRange" ); - GtkObject * myGtkScale = - new GtkObject( myGtkRange, "GtkScale" ); - // GtkObject * myGtkHScale = - // new GtkObject( myGtkScale, "GtkHScale" ); - // GtkObject * myGtkVScale = - // new GtkObject( myGtkScale, "GtkVScale" ); - GtkObject * myGtkScrollbar = - new GtkObject( myGtkRange, "GtkScrollbar" ); - // GtkObject * myGtkHScrollbar = - // new GtkObject( myGtkScrollbar, "GtkHScrollbar" ); - // GtkObject * myGtkVScrollbar = - // new GtkObject( myGtkScrollbar, "GtkVScrollbar" ); - GtkObject * myGtkSeparator = - new GtkObject( myGtkWidget, "GtkSeparator" ); - // GtkObject * myGtkHSeparator = - // new GtkObject( myGtkSeparator, "GtkHSeparator" ); - // GtkObject * myGtkVSeparator = - // new GtkObject( myGtkSeparator, "GtkVSeparator" ); - // GtkObject * myGtkPreview = - // new GtkObject( myGtkWidget, "GtkPreview" ); - GtkObject * myGtkProgress = - new GtkObject( myGtkWidget, "GtkProgress" ); - GtkObject * myGtkProgressBar = - new GtkObject( myGtkProgress, "GtkProgressBar" ); - //GtkObject * myGtkData = - // new GtkObject( myGtkObject, "GtkData" ); - // GtkObject * myGtkAdjustment = - // new GtkObject( myGtkData, "GtkAdjustment" ); - // GtkObject * myGtkTooltips = - // new GtkObject( myGtkData, "GtkTooltips" ); - // GtkObject * myGtkItemFactory = - // new GtkObject( myGtkObject, "GtkItemFactory" ); - - // Insert the above Gtk widgets into a dict, using meta data pointers for - // the different widgets in Qt - // - // verify with: - // -- - // egrep "::staticMetaObject\(\)$" **/*.cpp | fmt -1 | grep :: | - // sort | uniq > meta - //-- - - dict.insert(TQButton::staticMetaObject(), myGtkButton); - dict.insert(TQButtonGroup::staticMetaObject(), myGtkButtonBox); - dict.insert(TQCanvas::staticMetaObject(), myGtkDrawingArea); - dict.insert(TQCanvasView::staticMetaObject(), myGtkDrawingArea); - dict.insert(TQCheckBox::staticMetaObject(), myGtkCheckButton); - dict.insert(QColorDialog::staticMetaObject(), myGtkColorSelectionDialog); - dict.insert(TQComboBox::staticMetaObject(), myGtkCombo); - dict.insert(TQDial::staticMetaObject(), myGtkWidget); - dict.insert(TQDialog::staticMetaObject(), myGtkDialog); - dict.insert(TQFileDialog::staticMetaObject(), myGtkFileSelection); - dict.insert(QFontDialog::staticMetaObject(), myGtkFontSelectionDialog); - dict.insert(TQFrame::staticMetaObject(), myGtkFrame); - dict.insert(TQGrid::staticMetaObject(), myGtkFrame); - dict.insert(TQGroupBox::staticMetaObject(), myGtkBox); - dict.insert(TQHBox::staticMetaObject(), myGtkHBox); - dict.insert(TQHButtonGroup::staticMetaObject(), myGtkHButtonBox); - dict.insert(TQHGroupBox::staticMetaObject(), myGtkHBox); - dict.insert(TQHeader::staticMetaObject(), myGtkRuler); - dict.insert(TQIconView::staticMetaObject(), myGtkCTree); - dict.insert(QInputDialog::staticMetaObject(), myGtkInputDialog); - dict.insert(TQLCDNumber::staticMetaObject(), myGtkFrame); - dict.insert(TQLabel::staticMetaObject(), myGtkLabel); - dict.insert(TQLineEdit::staticMetaObject(), myGtkEntry); - dict.insert(TQListBox::staticMetaObject(), myGtkCList); - dict.insert(TQListView::staticMetaObject(), myGtkCTree); - dict.insert(TQMainWindow::staticMetaObject(), myGtkWindow); - dict.insert(TQMenuBar::staticMetaObject(), myGtkMenuBar); - dict.insert(TQMessageBox::staticMetaObject(), myGtkDialog); - dict.insert(TQMultiLineEdit::staticMetaObject(), myGtkText); - dict.insert(TQPopupMenu::staticMetaObject(), myGtkMenu); - dict.insert(TQPrintDialog::staticMetaObject(), myGtkDialog); - dict.insert(TQProgressBar::staticMetaObject(), myGtkProgressBar); - dict.insert(TQProgressDialog::staticMetaObject(), myGtkDialog); - dict.insert(TQPushButton::staticMetaObject(), myGtkButton); - dict.insert(TQRadioButton::staticMetaObject(), myGtkRadioButton); - dict.insert(TQScrollBar::staticMetaObject(), myGtkScrollbar); - dict.insert(TQScrollView::staticMetaObject(), myGtkViewport); - dict.insert(TQSemiModal::staticMetaObject(), myGtkDialog); - dict.insert(TQSizeGrip::staticMetaObject(), myGtkWidget); - dict.insert(TQSlider::staticMetaObject(), myGtkScale); - dict.insert(TQSpinBox::staticMetaObject(), myGtkSpinButton); - dict.insert(TQSplitter::staticMetaObject(), myGtkPaned); - dict.insert(TQStatusBar::staticMetaObject(), myGtkStatusbar); - dict.insert(TQTabBar::staticMetaObject(), myGtkNotebook); - dict.insert(TQTabDialog::staticMetaObject(), myGtkNotebook); - dict.insert(TQTabWidget::staticMetaObject(), myGtkNotebook); - dict.insert(QTableView::staticMetaObject(), myGtkTable); - dict.insert(TQTextBrowser::staticMetaObject(), myGtkText); - dict.insert(TQTextView::staticMetaObject(), myGtkText); - dict.insert(TQToolBar::staticMetaObject(), myGtkToolbar); - dict.insert(TQToolButton::staticMetaObject(), myGtkButton); - dict.insert(TQVBox::staticMetaObject(), myGtkVBox); - dict.insert(TQVButtonGroup::staticMetaObject(), myGtkVButtonBox); - dict.insert(TQVGroupBox::staticMetaObject(), myGtkVBox); - dict.insert(TQWidget::staticMetaObject(), myGtkWidget); - dict.insert(TQWidgetStack::staticMetaObject(), myGtkWidget); - dict.insert(TQWizard::staticMetaObject(), myGtkWindow); - dict.insert(TQWorkspace::staticMetaObject(), myGtkWindow); - - // stuff that we don't have meta data for, but want to know about - dict.insert(&listboxitem_ptr, myGtkListItem); - dict.insert(&listviewitem_ptr, myGtkTreeItem); - dict.insert(&menuitem_ptr, myGtkMenuItem); - dict.insert(&separator_ptr, myGtkSeparator); - dict.insert(&arrow_ptr, myGtkArrow); - dict.insert(&whatsthis_ptr, myGtkTipsQuery); - dict.insert(&checkmenuitem_ptr, myGtkCheckMenuItem); - dict.insert(&radiomenuitem_ptr, myGtkRadioMenuItem); - dict.insert(&eventbox_ptr, myGtkEventBox); - - return myGtkObject; -} - - -KLegacyImageData *GtkObject::getImageData(KLegacyImageDataKey key, const TQString &detail) { - KLegacyImageData *imagedata = 0; - - if (styleData()) { - QListIterator<KLegacyImageData> it(styleData()->imageList); - - while ((imagedata = it.current()) != 0) { - ++it; - - if ((((imagedata->key.data.function != 0) && - (imagedata->key.data.function == key.data.function)) || - (imagedata->key.data.function == 0)) && - - (((imagedata->key.data.state != 0) && - (imagedata->key.data.state == key.data.state)) || - (imagedata->key.data.state == 0)) && - - (((imagedata->key.data.shadow != 0) && - (imagedata->key.data.shadow == key.data.shadow)) || - (imagedata->key.data.shadow == 0)) && - - (((imagedata->key.data.orientation != 0) && - (imagedata->key.data.orientation == key.data.orientation)) || - (imagedata->key.data.orientation == 0)) && - - (((imagedata->key.data.arrowDirection != 0) && - (imagedata->key.data.arrowDirection == key.data.arrowDirection)) || - (imagedata->key.data.arrowDirection == 0)) && - - (((imagedata->key.data.gapSide != 0) && - (imagedata->key.data.gapSide == key.data.gapSide)) || - (imagedata->key.data.gapSide == 0)) && - - (((!imagedata->detail.isNull()) && - (detail == imagedata->detail)) || - (imagedata->detail.isNull()))) { - // we have a winner - break; - } - } - } - - if ((! imagedata) && (parent())) { - imagedata = ((GtkObject *) parent())->getImageData(key, detail); - } - - return imagedata; -} - - -KLegacyStyleData *GtkObject::styleData() { - if ((! d) && parent()) { - d = ((GtkObject *) parent())->styleData(); - } - - return d; -} - - -TQColor GtkObject::backColor(KLegacy::State s) { - if ((! styleData()->back[s].isValid()) && parent()) { - return ((GtkObject *) parent())->backColor(s); - } - - if (styleData()->back[s].isValid()) - return styleData()->back[s]; - - return white; -} - - -TQColor GtkObject::baseColor(KLegacy::State s) { - if ((! styleData()->base[s].isValid()) && parent()) { - return ((GtkObject *) parent())->baseColor(s); - } - - if (styleData()->base[s].isValid()) - return styleData()->base[s]; - - return white; -} - - -TQColor GtkObject::foreColor(KLegacy::State s) { - if ((! styleData()->fore[s].isValid()) && parent()) { - return ((GtkObject *) parent())->foreColor(s); - } - - if (styleData()->fore[s].isValid()) - return styleData()->fore[s]; - - return black; -} - - -TQFont *GtkObject::font() { - if ((! styleData()->fn) && parent()) { - return ((GtkObject *) parent())->font(); - } - - return styleData()->fn; -} - - -GtkObject *GtkObject::find(TQRegExp &r) const { - // if the regular expression matches the name of this widget, return - if (r.match(name()) != -1) { - return (GtkObject *) this; - } - - // regex doesn't match us, and we have no children, return 0 - if (! children()) return 0; - - TQObject *o; - GtkObject *obj, *gobj; - - TQObjectListIt ot(*children()); - - // search our children to see if any match the regex - while ((o = ot.current()) != 0) { - ++ot; - - // this would be nice if moc could parse this file :/ - // - // if (o->className() != "GtkObject") { - // tqDebug("object is not a GtkObject (className = '%s')", - // o->className()); - // continue; - // } - - obj = (GtkObject *) o; - - // use obj->find(r) instead of r.match(obj->name()) so that this child's - // children will be searched as well... this allows us to search the entire - // object tree - if ((gobj = obj->find(r)) != 0) { - // found something! - return (GtkObject *) gobj; - } - } - - // found nothing - return 0; -} - - -TQPixmap *GtkObject::draw(KLegacyImageDataKey key, int width, int height, - const TQString &detail) -{ - KLegacyImageData *imagedata = getImageData(key, detail); - if (! imagedata) { - return 0; - } - - return draw(imagedata, width, height); -} - - -TQPixmap *GtkObject::draw(KLegacyImageData *imagedata, int width, int height) { - TQString pixmapKey; - TQTextOStream(&pixmapKey) << "$KLegacy_Image_" << styleData()->name << "_" << - className() << "_" << width << "x" << height << "_" << - imagedata->key.cachekey << "_" << (uint) imagedata->recolorable << - (uint) imagedata->stretch << (uint) imagedata->overlayStretch; - - TQPixmap *pixmap = TQPixmapCache::find(pixmapKey); - if (pixmap) { - return pixmap; - } - - TQPixmap *main = 0, *overlay = 0; - - if (! imagedata->file.isNull()) { - TQImage *image = imageCache->find(imagedata->file); - bool found = true; - - if (! image) { - image = new TQImage(imagedata->file); - - if (! image || image->isNull()) { - found = false; - } else { - imageCache->insert(imagedata->file, image); - } - } - - if (found) { - int w = ((imagedata->stretch) ? width : image->width()), - h = ((imagedata->stretch) ? height : image->height()); - main = drawImage(image, w, h, imagedata->border, imagedata->stretch); - } - } - - if (! imagedata->overlayFile.isNull()) { - TQImage *image = imageCache->find(imagedata->overlayFile); - bool found = true; - - if (! image) { - image = new TQImage(imagedata->overlayFile); - - if (! image || image->isNull()) { - found = false; - } else { - imageCache->insert(imagedata->overlayFile, image); - } - } - - if (found) { - int w = ((imagedata->overlayStretch) ? width : image->width()), - h = ((imagedata->overlayStretch) ? height : image->height()); - overlay = drawImage(image, w, h, imagedata->overlayBorder, - imagedata->overlayStretch); - } - } - - TQSize sz; - if (main) { - sz = sz.expandedTo(main->size()); - } - - if (overlay) { - sz = sz.expandedTo(overlay->size()); - } - - if (sz.isEmpty()) { - return (TQPixmap *) 0; - } - - pixmap = new TQPixmap(sz); - pixmap->fill(TQColor(192,192,176)); - TQPainter p(pixmap); - - if (main && (! main->isNull())) { - p.drawTiledPixmap(0, 0, sz.width(), sz.height(), *main); - } - - if (overlay && (! overlay->isNull())) { - TQPoint pt((sz.width() - overlay->width()) / 2, - (sz.height() - overlay->height()) / 2); - p.drawPixmap(pt, *overlay); - } - - p.end(); - - if (main) { - if (main->mask() && (! main->mask()->isNull())) { - TQBitmap bm(sz); - TQPainter m(&bm); - TQRect r(0, 0, width, height); - - m.drawTiledPixmap(r, *(main->mask())); - m.end(); - - pixmap->setMask(bm); - } - } else if (overlay) { - if (overlay->mask() && (! overlay->mask()->isNull())) { - TQBitmap bm(sz); - TQPainter m(&bm); - TQRect r((sz.width() - overlay->width()) / 2, - (sz.height() - overlay->height()) / 2, - sz.width(), sz.height()); - m.drawTiledPixmap(r, *(overlay->mask())); - m.end(); - - pixmap->setMask(bm); - } - } - - if (! TQPixmapCache::insert(pixmapKey, pixmap)) { - delete pixmap; - pixmap = (TQPixmap *) 0; - } - - return pixmap; -} - - -class KLegacyStylePrivate : public KLegacy { -private: - TQDict<KLegacyStyleData> styleDict; - TQStringList pixmapPath; - TQTextStream filestream; - - TQFont oldfont; - TQPalette oldpalette; - - // pointer to the widget under the pointer - TQGuardedPtr<TQWidget> lastWidget; - - // current position of the mouse - TQPoint mousePos; - bool hovering; - - TQPtrDict<GtkObject> gtkDict; - GtkObject *gtktree; - - friend class KLegacyStyle; - - -public: - KLegacyStylePrivate(); - ~KLegacyStylePrivate(); - - // parse the filename passed - bool parse(const TQString &filename); - - bool parseClass(); - bool parseEngine(KLegacyStyleData *); - bool parseImage(KLegacyStyleData *); - bool parsePixmapPath(); - bool parseStyle(); -}; - - -KLegacyStylePrivate::KLegacyStylePrivate() - : lastWidget(0), mousePos(-1, -1), hovering(false), gtktree(0) -{ - TQPixmapCache::setCacheLimit(8192); - - if (! imageCache) { - imageCache = new TQDict<TQImage>(imageCacheSize); - CHECK_PTR(imageCache); - - imageCache->setAutoDelete(true); - } - - styleDict.setAutoDelete(true); - - gtktree = initialize(gtkDict); - CHECK_PTR(gtktree); - - if (! gtktree->d) { - gtktree->d = new KLegacyStyleData; - gtktree->d->name = "Default"; - } - - // get the path to this users .gtkrc - TQString gtkrcFilename = getenv("HOME"); - gtkrcFilename += "/.gtkrc"; - - TQFile gtkrc(gtkrcFilename); - - if (gtkrc.open(IO_ReadOnly)) { - filestream.setDevice(>krc); - - while (! filestream.atEnd()) { - TQString next; - filestream >> next; - - if (next.isNull()) continue; - - // skip comments - if (next[0] == '#') { filestream.readLine(); continue; } - - if (next == "class" || next == "widget" || next == "widget_class") { - if (! parseClass()) - tqWarning("\"class\" parse error"); - } else if (next == "pixmap_path") { - if (! parsePixmapPath()) - tqWarning("\"pixmap_path\" parse error"); - } else if (next == "style") { - if (! parseStyle()) - tqWarning("\"style\" parse error"); - } - } - - gtkrc.close(); - } else - tqWarning("%s: failed to open", gtkrcFilename.latin1()); -} - - -KLegacyStylePrivate::~KLegacyStylePrivate() { - if (imageCache) { - delete imageCache; - imageCache = 0; - } - - if (gtktree) { - delete gtktree; - gtktree = 0; - } -} - - -bool KLegacyStylePrivate::parseClass() { - if (filestream.atEnd()) return false; - - TQString classname, keyword, stylename; - filestream >> classname; - filestream >> keyword; - filestream >> stylename; - - if (classname.isNull() || keyword.isNull() || stylename.isNull() || - keyword != "style" || - classname[0] != '\"' || classname[classname.length() - 1] != '\"' || - stylename[0] != '\"' || stylename[stylename.length() - 1] != '\"') - return false; - - classname = classname.mid(1, classname.length() - 2); - stylename = stylename.mid(1, stylename.length() - 2); - - TQRegExp r(classname); - r.setWildcard(true); - GtkObject *obj = gtktree->find(r); - - if (! obj) { - tqWarning("unknown object '%s'", classname.latin1()); - return false; - } - - KLegacyStyleData *styledata = styleDict.find(stylename); - - if (! styledata) { - tqWarning("no such style '%s' for class '%s' (%p)", stylename.latin1(), - classname.latin1(), styledata); - return false; - } - - obj->d = styledata; - styledata->ref++; - - return true; -} - - -bool KLegacyStylePrivate::parseImage(KLegacyStyleData *styledata) { - if (filestream.atEnd()) { - tqWarning("parseImage: premature end of stream"); - return false; - } - - TQString next, equals, parameter; - filestream >> next; - - // skip comments - while (next[0] == '#') { - filestream.readLine(); - filestream >> next; - } - - if (next.isNull() || next != "{") { - tqWarning("parseImage: expected '{' after 'image'\n" - " in style '%s', after processing %d previous images\n", - styledata->name.latin1(), styledata->imageList.count()); - return false; - } - - KLegacyImageData *imagedata = new KLegacyImageData; - - int paren_count = 1; - while (paren_count) { - filestream >> next; - if (next.isNull()) continue; - - // skip comments - if (next[0] == '#') {filestream.readLine(); continue; } - - if (next == "arrow_direction") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=") continue; - - if (parameter == "UP") - imagedata->key.data.arrowDirection = Qt::UpArrow + 1; - else if (parameter == "DOWN") - imagedata->key.data.arrowDirection = Qt::DownArrow + 1; - else if (parameter == "LEFT") - imagedata->key.data.arrowDirection = Qt::LeftArrow + 1; - else if (parameter == "RIGHT") - imagedata->key.data.arrowDirection = Qt::RightArrow + 1; - } else if (next == "border") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=" || - parameter != "{") - continue; - TQString border =filestream.readLine(); - - int lp, rp, tp, bp, l, r, t, b; - lp = border.find(','); - rp = border.find(',', lp + 1); - tp = border.find(',', rp + 1); - bp = border.find('}', tp + 1); - - l = border.left(lp).toUInt(); - r = border.mid(lp + 1, rp - lp - 1).toUInt(); - t = border.mid(rp + 1, tp - rp - 1).toUInt(); - b = border.mid(tp + 1, bp - tp - 1).toUInt(); - - imagedata->border.setLeft(l); - imagedata->border.setRight(r); - imagedata->border.setTop(t); - imagedata->border.setBottom(b); - } else if (next == "detail") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=" || - parameter[0] != '\"' || parameter[parameter.length() - 1] != '\"') - continue; - - parameter = parameter.mid(1, parameter.length() - 2); - imagedata->detail = parameter; - } else if (next == "file") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=" || - parameter[0] != '\"' || parameter[parameter.length() - 1] != '\"') { - tqWarning("image: file parameter malformed"); - continue; - } - - parameter = parameter.mid(1, parameter.length() - 2); - - TQStringList::Iterator it; - for (it = pixmapPath.begin(); it != pixmapPath.end(); ++it) { - TQFileInfo fileinfo((*it) + parameter); - - if (fileinfo.exists()) { - imagedata->file = fileinfo.filePath(); - break; - } - } - } else if (next == "function") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=") continue; - - if (parameter == "BOX") - imagedata->key.data.function = Box; - else if (parameter == "FLAT_BOX") - imagedata->key.data.function = FlatBox; - else if (parameter == "EXTENSION") - imagedata->key.data.function = Extension; - else if (parameter == "CHECK") - imagedata->key.data.function = Check; - else if (parameter == "OPTION") - imagedata->key.data.function = Option; - else if (parameter == "HLINE") - imagedata->key.data.function = HLine; - else if (parameter == "VLINE") - imagedata->key.data.function = VLine; - else if (parameter == "BOX_GAP") - imagedata->key.data.function = BoxGap; - else if (parameter == "SLIDER") - imagedata->key.data.function = Slider; - else if (parameter == "TAB") - imagedata->key.data.function = Tab; - else if (parameter == "ARROW") - imagedata->key.data.function = Arrow; - else if (parameter == "HANDLE") - imagedata->key.data.function = Handle; - else if (parameter == "SHADOW") - imagedata->key.data.function = FShadow; - else if (parameter == "FOCUS") - imagedata->key.data.function = Focus; - } else if (next == "gap_side" ) { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=") continue; - - if (parameter == "TOP") - imagedata->key.data.gapSide = KLegacy::Top; - else if (parameter == "BOTTOM") - imagedata->key.data.gapSide = KLegacy::Bottom; - } else if (next == "orientation") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=") continue; - - if (parameter == "VERTICAL") - imagedata->key.data.orientation = Qt::Vertical + 1; - else if (parameter == "HORIZONTAL") - imagedata->key.data.orientation = Qt::Horizontal + 1; - } else if (next == "overlay_border") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=" || - parameter != "{") - continue; - TQString border = filestream.readLine(); - - int lp, rp, tp, bp, l, r, t, b; - lp = border.find(','); - rp = border.find(',', lp + 1); - tp = border.find(',', rp + 1); - bp = border.find('}', tp + 1); - - l = border.left(lp).toUInt(); - r = border.mid(lp + 1, rp - lp - 1).toUInt(); - t = border.mid(rp + 1, tp - rp - 1).toUInt(); - b = border.mid(tp + 1, bp - tp - 1).toUInt(); - - imagedata->overlayBorder.setLeft(l); - imagedata->overlayBorder.setRight(r); - imagedata->overlayBorder.setTop(t); - imagedata->overlayBorder.setBottom(b); - } else if (next == "overlay_file") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=" || - parameter[0] != '\"' || parameter[parameter.length() - 1] != '\"') { - tqWarning("image: overlay_file parameter malformed"); - continue; - } - - parameter = parameter.mid(1, parameter.length() - 2); - - TQStringList::Iterator it; - for (it = pixmapPath.begin(); it != pixmapPath.end(); ++it) { - TQFileInfo fileinfo((*it) + parameter); - - if (fileinfo.exists()) { - imagedata->overlayFile = fileinfo.filePath(); - break; - } - } - } else if (next == "overlay_stretch") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=") continue; - - if (parameter == "TRUE") - imagedata->overlayStretch = true; - else - imagedata->overlayStretch = false; - } else if (next == "stretch") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=") continue; - - if (parameter == "TRUE") - imagedata->stretch = true; - else - imagedata->stretch = false; - } else if (next == "shadow") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=") continue; - - if (parameter == "NONE") - imagedata->key.data.shadow = NoShadow; - else if (parameter == "IN") - imagedata->key.data.shadow = In; - else if (parameter == "OUT") - imagedata->key.data.shadow = Out; - else if (parameter == "ETCHED_IN") - imagedata->key.data.shadow = EtchedIn; - else if (parameter == "ETCHED_OUT") - imagedata->key.data.shadow = EtchedOut; - } else if (next == "state") { - filestream >> equals; - filestream >> parameter; - - if (equals.isNull() || parameter.isNull() || equals != "=") continue; - - if (parameter == "NORMAL") - imagedata->key.data.state = Normal; - else if (parameter == "PRELIGHT") - imagedata->key.data.state = Prelight; - else if (parameter == "ACTIVE") - imagedata->key.data.state = Active; - else if (parameter == "INSENSITIVE") - imagedata->key.data.state = Insensitive; - else if (parameter == "SELECTED") - imagedata->key.data.state = Selected; - } else if (next == "{") paren_count++; - else if (next == "}") paren_count--; - } - - styledata->imageList.append(imagedata); - - return true; -} - - -bool KLegacyStylePrivate::parseEngine(KLegacyStyleData *styledata) { - if (filestream.atEnd()) return false; - - TQString enginename, paren; - filestream >> enginename; - filestream >> paren; - - if (enginename.isNull() || paren.isNull() || - enginename[0] != '\"' || enginename[enginename.length() - 1] != '\"' || - paren != "{") { - return false; - } - - TQString next; - int paren_count = 1; - while (paren_count) { - filestream >> next; - - // skip comments - if (next[0] == '#') { - filestream.readLine(); - continue; - } - - if (next == "image") { - if (! parseImage(styledata)) { - tqWarning("image parse error"); - } - } else if (next == "{") { - paren_count++; - } else if (next == "}") { - paren_count--; - } - } - - return true; -} - - -bool KLegacyStylePrivate::parsePixmapPath() { - if (filestream.atEnd()) { - return false; - } - - TQString next; - filestream >> next; - - if (next.isNull() || next[0] != '\"' || next[next.length() - 1] != '\"') { - return false; - } - - next = next.mid(1, next.length() - 2); - - int start = 0, end = next.find(":"); - while (end != -1) { - TQString path(next.mid(start, end - start)); - - if (path[path.length() - 1] != '/') { - path += '/'; - } - - TQFileInfo fileinfo(path); - if (fileinfo.exists() && fileinfo.isDir()) { - pixmapPath.append(path); - } - - start = end + 1; - end = next.find(":", start); - } - - // get the straggler - end = next.length(); - TQString path(next.mid(start, end - start)); - - if (path[path.length() - 1] != '/') { - path += '/'; - } - - TQFileInfo fileinfo(path); - if (fileinfo.exists() && fileinfo.isDir()) { - pixmapPath.append(path); - } - - return true; -} - - -bool KLegacyStylePrivate::parseStyle() { - if (filestream.atEnd()) return false; - - TQString stylename, paren; - filestream >> stylename; - filestream >> paren; - - if (stylename.isNull() || paren.isNull() || - stylename[0] != '\"' || stylename[stylename.length() - 1] != '\"') - return false; - - stylename = stylename.mid(1, stylename.length() - 2); - - if (paren == "=") { - TQString newstylename; - filestream >> newstylename; - - if (newstylename.isNull() || - newstylename[0] != '\"' || newstylename[newstylename.length() - 1] != '\"') - return false; - - newstylename = newstylename.mid(1, newstylename.length() - 2); - - KLegacyStyleData *styledata = styleDict.find(stylename); - - if (! styledata) return false; - - KLegacyStyleData *newstyledata = new KLegacyStyleData(*styledata); - newstyledata->name = newstylename; - styleDict.insert(newstylename, newstyledata); - - return true; - } else if (paren != "{") { - tqWarning("parseStyle: expected '{' while parsing style %s", - stylename.latin1()); - return false; - } - - KLegacyStyleData *styledata = new KLegacyStyleData; - styledata->name = stylename; - - TQString next, parameter; - int paren_count = 1; - while (paren_count) { - filestream >> next; - - // skip comments - if (next[0] == '#') { - filestream.readLine(); - continue; - } - - if (next.left(5) == "base[") { - int l = next.find('['), r = next.find(']'), state; - - if (l < 1 || r < 1 || r < l) continue; - - TQString mode = next.mid(l + 1, r - l - 1); - if (mode == "ACTIVE") - state = Active; - else if (mode == "NORMAL") - state = Normal; - else if (mode == "INSENSITIVE") - state = Insensitive; - else if (mode == "PRELIGHT") - state = Prelight; - else if (mode == "SELECTED") - state = Selected; - - filestream >> next; - filestream >> parameter; - - if (next.isNull() || parameter.isNull() || next != "=") continue; - - if (parameter[0] == '\"') { // assume color of the form "#rrggbb" - TQString colorname = parameter.mid(1, parameter.length() - 2); - if (colorname.isNull()) continue; - - styledata->base[state].setNamedColor(colorname); - } else if (parameter == "{") { // assume color of the form { ri, gi, bi } - TQString color =filestream.readLine(); - - int rp, gp, bp; - float ri, gi, bi; - - rp = color.find(','); - gp = color.find(',', rp + 1); - bp = color.find('}', gp + 1); - - ri = color.left(rp).toFloat(); - gi = color.mid(rp + 1, gp - rp - 1).toFloat(); - bi = color.mid(gp + 1, bp - gp - 1).toFloat(); - - int red = (int) (255 * ri); - int green = (int) (255 * gi); - int blue = (int) (255 * bi); - styledata->base[state].setRgb(red, green, blue); - } - } else if (next.left(3) == "bg[") { - int l = next.find('['), r = next.find(']'), state; - - if (l < 1 || r < 1 || r < l) continue; - - TQString mode = next.mid(l + 1, r - l - 1); - if (mode == "ACTIVE") - state = Active; - else if (mode == "NORMAL") - state = Normal; - else if (mode == "INSENSITIVE") - state = Insensitive; - else if (mode == "PRELIGHT") - state = Prelight; - else if (mode == "SELECTED") - state = Selected; - - filestream >> next; - filestream >> parameter; - - if (next.isNull() || parameter.isNull() || next != "=") continue; - - if (parameter[0] == '\"') { // assume color of the form "#rrggbb" - TQString colorname = parameter.mid(1, parameter.length() - 2); - if (colorname.isNull()) continue; - - styledata->back[state].setNamedColor(colorname); - } else if (parameter == "{") { // assume color of the form { ri, gi, bi } - TQString color =filestream.readLine(); - - int rp, gp, bp; - float ri, gi, bi; - - rp = color.find(','); - gp = color.find(',', rp + 1); - bp = color.find('}', gp + 1); - - ri = color.left(rp).toFloat(); - gi = color.mid(rp + 1, gp - rp - 1).toFloat(); - bi = color.mid(gp + 1, bp - gp - 1).toFloat(); - - int red = (int) (255 * ri); - int green = (int) (255 * gi); - int blue = (int) (255 * bi); - styledata->back[state].setRgb(red, green, blue); - } - } else if (next == "engine") { - if (! parseEngine(styledata)) - fprintf(stderr, "engine parse error\n"); - } else if (next.left(3) == "fg[") { - int l = next.find('['), r = next.find(']'), state; - - if (l < 1 || r < 1 || r < l) continue; - - TQString mode = next.mid(l + 1, r - l - 1); - if (mode == "ACTIVE") - state = Active; - else if (mode == "NORMAL") - state = Normal; - else if (mode == "INSENSITIVE") - state = Insensitive; - else if (mode == "PRELIGHT") - state = Prelight; - else if (mode == "SELECTED") - state = Selected; - - filestream >> next; - filestream >> parameter; - - if (next.isNull() || parameter.isNull() || next != "=") continue; - - if (parameter[0] == '\"') { // assume color of the form "#rrggbb" - TQString colorname = parameter.mid(1, parameter.length() - 2); - if (colorname.isNull()) continue; - - styledata->fore[state].setNamedColor(colorname); - } else if (parameter == "{") { // assume color of the form { ri, gi, bi } - TQString color = filestream.readLine(); - - int rp, gp, bp; - float ri, gi, bi; - - rp = color.find(','); - gp = color.find(',', rp + 1); - bp = color.find('}', gp + 1); - - ri = color.left(rp).toFloat(); - gi = color.mid(rp + 1, gp - rp - 1).toFloat(); - bi = color.mid(gp + 1, bp - gp - 1).toFloat(); - - int red = (int) (255 * ri); - int green = (int) (255 * gi); - int blue = (int) (255 * bi); - styledata->fore[state].setRgb(red, green, blue); - } - } else if (next == "font") { - filestream >> next; - filestream >> parameter; - - if (next.isNull() || parameter.isNull() || next != "=" || - parameter[0] != '\"' || parameter[parameter.length() - 1] != '\"') { - tqWarning("font parameter malformed '%s'", parameter.latin1()); - continue; - } - - parameter = parameter.mid(1, parameter.length() - 2); - - if (! styledata->fn) { - styledata->fn = new TQFont; - } - - styledata->fn->setRawName(parameter); - } else if (next == "{") { - paren_count++; - } else if (next == "}") { - paren_count--; - } - } - - styleDict.insert(styledata->name, styledata); - - return true; -} - - -KLegacyStyle::KLegacyStyle(void) : TDEStyle() { - setButtonDefaultIndicatorWidth(6); - setScrollBarExtent(15, 15); - setButtonMargin(3); - setSliderThickness(15); - - priv = new KLegacyStylePrivate; -} - - -KLegacyStyle::~KLegacyStyle(void) { - delete priv; -} - - -int KLegacyStyle::defaultFrameWidth() const { - return 2; -} - - -void KLegacyStyle::polish(TQApplication *app) { - priv->oldfont = app->font(); - priv->oldpalette = app->palette(); - - GtkObject *gobj = priv->gtkDict.find(TQMainWindow::staticMetaObject()); - - if (gobj) { - if (gobj->font()) { - app->setFont(*gobj->font(), true); - } - - TQPalette pal = app->palette(); - TQBrush brush; - - // background - brush = pal.brush(TQPalette::Active, TQColorGroup::Background); - brush.setColor(gobj->backColor(KLegacy::Active)); - pal.setBrush(TQPalette::Active, TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Inactive, TQColorGroup::Background); - brush.setColor(gobj->backColor(KLegacy::Normal)); - pal.setBrush(TQPalette::Inactive, TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Disabled, TQColorGroup::Background); - brush.setColor(gobj->backColor(KLegacy::Insensitive)); - pal.setBrush(TQPalette::Disabled, TQColorGroup::Background, brush); - - // foreground - brush = pal.brush(TQPalette::Active, TQColorGroup::Foreground); - brush.setColor(gobj->foreColor(KLegacy::Active)); - pal.setBrush(TQPalette::Active, TQColorGroup::Foreground, brush); - - brush = pal.brush(TQPalette::Inactive, TQColorGroup::Foreground); - brush.setColor(gobj->foreColor(KLegacy::Normal)); - pal.setBrush(TQPalette::Inactive, TQColorGroup::Foreground, brush); - - brush = pal.brush(TQPalette::Disabled, TQColorGroup::Foreground); - brush.setColor(gobj->foreColor(KLegacy::Insensitive)); - pal.setBrush(TQPalette::Disabled, TQColorGroup::Foreground, brush); - - // base - brush = pal.brush(TQPalette::Active, TQColorGroup::Base); - brush.setColor(gobj->baseColor(KLegacy::Normal)); - pal.setBrush(TQPalette::Active, TQColorGroup::Base, brush); - - brush = pal.brush(TQPalette::Inactive, TQColorGroup::Base); - brush.setColor(gobj->baseColor(KLegacy::Normal)); - pal.setBrush(TQPalette::Inactive, TQColorGroup::Base, brush); - - brush = pal.brush(TQPalette::Disabled, TQColorGroup::Base); - brush.setColor(gobj->baseColor(KLegacy::Normal)); - pal.setBrush(TQPalette::Disabled, TQColorGroup::Base, brush); - - // button - brush = pal.brush(TQPalette::Active, TQColorGroup::Button); - brush.setColor(gobj->backColor(KLegacy::Active)); - pal.setBrush(TQPalette::Active, TQColorGroup::Button, brush); - - brush = pal.brush(TQPalette::Normal, TQColorGroup::Button); - brush.setColor(gobj->backColor(KLegacy::Normal)); - pal.setBrush(TQPalette::Normal, TQColorGroup::Button, brush); - - brush = pal.brush(TQPalette::Disabled, TQColorGroup::Button); - brush.setColor(gobj->backColor(KLegacy::Insensitive)); - pal.setBrush(TQPalette::Disabled, TQColorGroup::Button, brush); - - // text - brush = pal.brush(TQPalette::Active, TQColorGroup::Text); - brush.setColor(gobj->foreColor(KLegacy::Active)); - pal.setBrush(TQPalette::Active, TQColorGroup::Text, brush); - - brush = pal.brush(TQPalette::Inactive, TQColorGroup::Text); - brush.setColor(gobj->foreColor(KLegacy::Normal)); - pal.setBrush(TQPalette::Inactive, TQColorGroup::Text, brush); - - brush = pal.brush(TQPalette::Disabled, TQColorGroup::Text); - brush.setColor(gobj->foreColor(KLegacy::Insensitive)); - pal.setBrush(TQPalette::Disabled, TQColorGroup::Text, brush); - - // highlight - brush = pal.brush(TQPalette::Active, TQColorGroup::Highlight); - brush.setColor(gobj->backColor(KLegacy::Selected)); - pal.setBrush(TQPalette::Active, TQColorGroup::Highlight, brush); - - brush = pal.brush(TQPalette::Active, TQColorGroup::Highlight); - brush.setColor(gobj->backColor(KLegacy::Selected)); - pal.setBrush(TQPalette::Active, TQColorGroup::Highlight, brush); - - brush = pal.brush(TQPalette::Active, TQColorGroup::Highlight); - brush.setColor(gobj->backColor(KLegacy::Selected)); - pal.setBrush(TQPalette::Active, TQColorGroup::Highlight, brush); - - // highlight text - brush = pal.brush(TQPalette::Active, TQColorGroup::HighlightedText); - brush.setColor(gobj->foreColor(KLegacy::Selected)); - pal.setBrush(TQPalette::Active, TQColorGroup::HighlightedText, brush); - - brush = pal.brush(TQPalette::Active, TQColorGroup::HighlightedText); - brush.setColor(gobj->foreColor(KLegacy::Active)); - pal.setBrush(TQPalette::Active, TQColorGroup::HighlightedText, brush); - - brush = pal.brush(TQPalette::Active, TQColorGroup::HighlightedText); - brush.setColor(gobj->foreColor(KLegacy::Active)); - pal.setBrush(TQPalette::Active, TQColorGroup::HighlightedText, brush); - - app->setPalette(pal, true); - } - - qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl) &KLegacyStyle::drawMenuBarItem); - - TDEStyle::polish(app); -} - - -void KLegacyStyle::polish(TQWidget *widget) { - if (qstrcmp(widget->name(), "qt_viewport") == 0 || - widget->testWFlags(WType_Popup) || - widget->inherits("KDesktop")) - return; - - if (widget->backgroundMode() == TQWidget::PaletteBackground || - widget->backgroundMode() == TQWidget::PaletteButton && - (! widget->ownPalette())) - widget->setBackgroundMode(TQWidget::X11ParentRelative); - - TQMetaObject *metaobject = 0; - TQString detail; - KLegacyImageDataKey key; - key.cachekey = 0; - - bool eventFilter = false; - bool mouseTrack = false; - bool immediateRender = false; - bool bgPixmap = false; - - if (widget->inherits(TQBUTTON_OBJECT_NAME_STRING)) { - metaobject = TQButton::staticMetaObject(); - eventFilter = true; - } - - if (widget->inherits(TQCOMBOBOX_OBJECT_NAME_STRING)) { - metaobject = TQComboBox::staticMetaObject(); - eventFilter = true; - } - - if (widget->inherits(TQSCROLLBAR_OBJECT_NAME_STRING)) { - metaobject = TQScrollBar::staticMetaObject(); - eventFilter = true; - mouseTrack = true; - } - - if (widget->inherits(TQMENUBAR_OBJECT_NAME_STRING)) { - eventFilter = true; - immediateRender = true; - - metaobject = TQMenuBar::staticMetaObject(); - - detail = "menubar"; - key.data.function = KLegacy::Box; - key.data.shadow = KLegacy::Out; - key.data.state = KLegacy::Normal; - - ((TQMenuBar *) widget)->setFrameShape(TQFrame::StyledPanel); - ((TQMenuBar *) widget)->setLineWidth(0); - widget->setBackgroundMode(TQWidget::PaletteBackground); - } - - if (widget->inherits(TQTOOLBAR_OBJECT_NAME_STRING)) { - metaobject = TQToolBar::staticMetaObject(); - - eventFilter = true; - immediateRender = true; - - detail = "menubar"; - key.data.function = KLegacy::Box; - key.data.shadow = KLegacy::Out; - key.data.state = KLegacy::Normal; - - widget->setBackgroundMode(TQWidget::PaletteBackground); - } - - if (widget->inherits(TQLINEEDIT_OBJECT_NAME_STRING)) { - metaobject = TQLineEdit::staticMetaObject(); - - eventFilter = true; - immediateRender = true; - - detail = "entry_bg"; - key.data.function = KLegacy::FlatBox; - key.data.shadow = KLegacy::NoShadow; - key.data.state = (widget->isEnabled()) ? KLegacy::Normal : KLegacy::Insensitive; - - widget->setBackgroundMode(TQWidget::PaletteBase); - } - - if (widget->isTopLevel() || widget->inherits("QWorkspaceChild")) { - immediateRender = true; - - bgPixmap = true; - metaobject = TQMainWindow::staticMetaObject(); - key.cachekey = 0; - key.data.function = KLegacy::FlatBox; - detail = "base"; - } - - if (widget->inherits(TQPOPUPMENU_OBJECT_NAME_STRING)) { - tqDebug("polishing popup '%s'", widget->className()); - metaobject = TQPopupMenu::staticMetaObject(); - widget->setBackgroundMode(TQWidget::PaletteBackground); - } - - GtkObject *gobj = gobj = priv->gtkDict.find(((metaobject) ? metaobject : - widget->metaObject())); - - if (gobj) { - if (gobj->font() && (*gobj->font() != TQApplication::font())) - widget->setFont(*gobj->font()); - - if (immediateRender) { - TQPixmap *pix = gobj->draw(key, widget->width(), widget->height(), detail); - - if (pix && ! pix->isNull()) { - if (! bgPixmap) { - TQPalette pal = widget->palette(); - TQBrush brush; - - // base - // active - brush = pal.brush(TQPalette::Active, - TQColorGroup::Base); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Active, - TQColorGroup::Base, brush); - - // inactive - brush = pal.brush(TQPalette::Inactive, - TQColorGroup::Base); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Inactive, - TQColorGroup::Base, brush); - - // disabled - brush = pal.brush(TQPalette::Disabled, - TQColorGroup::Base); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Disabled, - TQColorGroup::Base, brush); - - // background - button - // active - brush = pal.brush(TQPalette::Active, - TQColorGroup::Background); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Active, - TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Active, - TQColorGroup::Button); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Active, - TQColorGroup::Button, brush); - - // inactive - brush = pal.brush(TQPalette::Inactive, - TQColorGroup::Background); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Inactive, - TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Inactive, - TQColorGroup::Button); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Inactive, - TQColorGroup::Button, brush); - - // disabled - brush = pal.brush(TQPalette::Disabled, - TQColorGroup::Background); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Disabled, - TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Disabled, - TQColorGroup::Button); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Disabled, - TQColorGroup::Button, brush); - - widget->setPalette(pal); - } else - widget->setBackgroundPixmap(*pix); - } - } - } - - if (eventFilter) { - widget->installEventFilter(this); - } - - if (mouseTrack) { - widget->setMouseTracking(mouseTrack); - } - - TDEStyle::polish(widget); -} - - -void KLegacyStyle::polishPopupMenu(TQPopupMenu *popup) { - TDEStyle::polishPopupMenu(popup); - - popup->setMouseTracking(true); - popup->setCheckable(true); - - popup->installEventFilter(this); -} - - -void KLegacyStyle::unPolish(TQWidget *widget) { - if (widget->inherits("KDesktop")) - return; - - widget->setBackgroundOrigin(TQWidget::WidgetOrigin); - widget->setBackgroundPixmap(TQPixmap()); - widget->removeEventFilter(this); - widget->unsetPalette(); - widget->setAutoMask(false); - TDEStyle::unPolish(widget); -} - - -void KLegacyStyle::unPolish(TQApplication *app) { - app->setFont(priv->oldfont, true); - app->setPalette(priv->oldpalette, true); - - qt_set_draw_menu_bar_impl(0); - - TDEStyle::unPolish(app); -} - - -void KLegacyStyle::drawKMenuItem(TQPainter *p, int x, int y, int w, int h, const TQColorGroup &g, - bool active, TQMenuItem *mi, TQBrush *) -{ - drawMenuBarItem(p, x, y, w, h, mi, (TQColorGroup &) g, - (mi) ? mi->isEnabled() : false, active); -} - - -void KLegacyStyle::drawMenuBarItem(TQPainter *p, int x, int y, int w, int h, TQMenuItem *mi, - TQColorGroup &g, bool enabled, bool active) -{ - if (enabled && active) { - GtkObject *gobj = priv->gtkDict.find(&menuitem_ptr); - - if (gobj) { - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Box; - key.data.state = KLegacy::Prelight; - key.data.shadow = KLegacy::Out; - - TQPixmap *pix = gobj->draw(key, w, h, "menuitem"); - - if (pix && ! pix->isNull()) - p->drawPixmap(x, y, *pix); - } - } - - drawItem(p, x, y, w, h, AlignCenter|ShowPrefix|DontClip|SingleLine, - g, enabled, mi->pixmap(), mi->text(), -1, &g.buttonText()); -} - - -void KLegacyStyle::drawButton(TQPainter *p, int x, int y , int w, int h, - const TQColorGroup &g, bool sunken, const TQBrush *fill) -{ - drawBevelButton(p, x, y, w, h, g, sunken, fill); -} - - -void KLegacyStyle::drawBevelButton(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup & g, bool sunken, - const TQBrush *fill) -{ - GtkObject *gobj = priv->gtkDict.find(TQButton::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawBevelButton(p, x, y, w, h, g, sunken, fill); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Box; - key.data.shadow = (sunken) ? KLegacy::In : KLegacy::Out; - key.data.state = (sunken) ? KLegacy::Active : KLegacy::Normal; - - TQPixmap *pix = gobj->draw(key, w, h, "button"); - - if (pix && (! pix->isNull())) - p->drawPixmap(x, y, *pix); - else - TDEStyle::drawBevelButton(p, x, y, w, h, g, sunken, fill); -} - - -void KLegacyStyle::drawPushButton(TQPushButton *btn, TQPainter *p) { - GtkObject *gobj = priv->gtkDict.find(TQPushButton::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawPushButton(btn, p); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Box; - - TQColorGroup g = btn->colorGroup(); - TQBrush fill = g.brush(TQColorGroup::Button); - int x1, y1, x2, y2; - btn->rect().coords(&x1, &y1, &x2, &y2); - - if (btn->isDefault()) { - // draw default button - key.data.state = (btn->isEnabled()) ? KLegacy::Normal : KLegacy::Insensitive; - key.data.shadow = KLegacy::In; - - TQPixmap *pix = gobj->draw(key, x2 -x1 + 1, y2 - y1 + 1, "buttondefault"); - - if (! pix) - pix = gobj->draw(key, x2 - x1 + 1, y2 - y1 + 1, "button"); - - if (pix) - p->drawPixmap(x1, y1, *pix); - else - TDEStyle::drawBevelButton(p, x1, y1, x2 - x1 + 1, y2 - y1 + 1, - g, true, &fill); - } - - int diw = buttonDefaultIndicatorWidth(); - if (btn->isDefault() || btn->autoDefault()) { - x1 += diw; - y1 += diw; - x2 -= diw; - y2 -= diw; - } - - if (btn->isOn() || btn->isDown()) { - key.data.state = KLegacy::Active; - key.data.shadow = KLegacy::In; - } else { - key.data.state = ((btn->isEnabled()) ? - ((static_cast<TQWidget *>( btn ) == priv->lastWidget) ? KLegacy::Prelight : KLegacy::Normal) : - KLegacy::Insensitive); - key.data.shadow = ((btn->isOn() || btn->isDown()) ? - KLegacy::In : KLegacy::Out); - } - - TQPixmap *pix = gobj->draw(key, x2 - x1 + 1, y2 - y1 + 1, "button"); - - if (pix && ! pix->isNull()) - p->drawPixmap(x1, y1, *pix); - else { - TDEStyle::drawBevelButton(p, x1, y1, x2 - x1 + 1, y2 - y1 + 1, - g, btn->isOn() || btn->isDown(), &fill); - } -} - - -void KLegacyStyle::drawIndicator(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, int state, - bool down, bool enabled) -{ - GtkObject *gobj = priv->gtkDict.find(TQCheckBox::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawIndicator(p, x, y, w, h, g, state, down, enabled); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Check; - key.data.state = KLegacy::Normal; - key.data.shadow = ((state != TQButton::Off) || down) ? KLegacy::In : KLegacy::Out; - - TQPixmap *pix = gobj->draw(key, w, h, "checkbutton"); - - if (pix && (! pix->isNull())) - p->drawPixmap(x, y, *pix); - else - TDEStyle::drawIndicator(p, x, y, w, h, g, state, down, enabled); -} - - -void KLegacyStyle::drawIndicatorMask(TQPainter *p, int x, int y, int w, int h, int state) { - GtkObject *gobj = priv->gtkDict.find(TQCheckBox::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawIndicatorMask(p, x, y, w, h, state); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Check; - key.data.state = KLegacy::Normal; - key.data.shadow = (state != TQButton::Off) ? KLegacy::In : KLegacy::Out; - - TQPixmap *pix = gobj->draw(key, w, h, "checkbutton"); - - if (pix && pix->mask() && ! pix->mask()->isNull()) - p->drawPixmap(x, y, *(pix->mask())); - else - TDEStyle::drawIndicatorMask(p, x, y, w, h, state); -} - - -TQSize KLegacyStyle::indicatorSize(void) const { - GtkObject *gobj = priv->gtkDict.find(TQCheckBox::staticMetaObject()); - - if (! gobj) return TDEStyle::indicatorSize(); - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Check; - key.data.shadow = KLegacy::Out; - KLegacyImageData *id = gobj->getImageData(key, "checkbutton"); - - if (! id) return TDEStyle::indicatorSize(); - - TQString filename; - if (! id->file.isNull()) - filename = id->file; - else if (! id->overlayFile.isNull()) - filename = id->overlayFile; - else - return TDEStyle::indicatorSize(); - - TQImage *image = imageCache->find(filename); - if (! image) { - image = new TQImage(filename); - - if (! image) return TDEStyle::indicatorSize(); - - imageCache->insert(filename, image); - } - - return TQSize(image->width(), image->height()); -} - - -void KLegacyStyle::drawExclusiveIndicator(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, bool on, - bool down, bool enabled) -{ - GtkObject *gobj = priv->gtkDict.find(TQRadioButton::staticMetaObject()); - - if (! gobj) { - drawExclusiveIndicator(p, x, y, w, h, g, on, down, enabled); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Option; - key.data.state = KLegacy::Normal; - key.data.shadow = (on || down) ? KLegacy::In : KLegacy::Out; - - TQPixmap *pix = gobj->draw(key, w, h, "radiobutton"); - - if (pix && (! pix->isNull())) - p->drawPixmap(x, y, *pix); - else - TDEStyle::drawExclusiveIndicator(p, x, y, w, h, g, down, enabled); -} - - -void KLegacyStyle::drawExclusiveIndicatorMask(TQPainter *p, int x, int y, int w, int h, - bool on) -{ - GtkObject *gobj = priv->gtkDict.find(TQRadioButton::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawExclusiveIndicatorMask(p, x, y, w, h, on); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Option; - key.data.state = KLegacy::Normal; - key.data.shadow = (on) ? KLegacy::In : KLegacy::Out; - - TQPixmap *pix = gobj->draw(key, w, h, "radiobutton"); - - if (pix && pix->mask() && ! pix->mask()->isNull()) - p->drawPixmap(x, y, *(pix->mask())); - else - TDEStyle::drawExclusiveIndicatorMask(p, x, y, w, h, on); -} - - -TQSize KLegacyStyle::exclusiveIndicatorSize(void) const { - GtkObject *gobj = priv->gtkDict.find(TQRadioButton::staticMetaObject()); - - if (! gobj) { - return TDEStyle::indicatorSize(); - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Option; - key.data.shadow = KLegacy::Out; - KLegacyImageData *id = gobj->getImageData(key, "radiobutton"); - - if (! id) return TDEStyle::indicatorSize(); - - TQString filename; - if (! id->file.isNull()) { - filename = id->file; - } else if (! id->overlayFile.isNull()) { - filename = id->overlayFile; - } else { - return TDEStyle::indicatorSize(); - } - - TQImage *image = imageCache->find(filename); - if (! image) { - image = new TQImage(filename); - - if (! image) { - return TDEStyle::indicatorSize(); - } - - imageCache->insert(filename, image); - } - - return TQSize(image->width(), image->height()); -} - - -void KLegacyStyle::drawPopupMenuItem(TQPainter *p, bool checkable, int maxpmw, int tab, - TQMenuItem *mi, const TQPalette &pal, bool act, - bool enabled, int x, int y, int w, int h) -{ - const TQColorGroup & g = pal.active(); - TQColorGroup itemg = (! enabled) ? pal.disabled() : pal.active(); - - if (checkable) - maxpmw = QMAX(maxpmw, 15); - - int checkcol = maxpmw; - - if (mi && mi->isSeparator()) { - p->setPen( g.dark() ); - p->drawLine( x, y, x+w, y ); - p->setPen( g.light() ); - p->drawLine( x, y+1, x+w, y+1 ); - return; - } - - if ( act && enabled ) { - GtkObject *gobj = priv->gtkDict.find(&menuitem_ptr); - - if (gobj) { - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Box; - key.data.state = KLegacy::Prelight; - key.data.shadow = KLegacy::Out; - - TQPixmap *pix = gobj->draw(key, w, h, "menuitem"); - - if (pix && ! pix->isNull()) - p->drawPixmap(x, y, *pix); - } - } else - p->fillRect(x, y, w, h, g.brush( TQColorGroup::Button )); - - if ( !mi ) - return; - - if ( mi->isChecked() ) { - if ( mi->iconSet() ) { - qDrawShadePanel( p, x+2, y+2, checkcol, h-2*2, - g, true, 1, &g.brush( TQColorGroup::Midlight ) ); - } - } else if ( !act ) { - p->fillRect(x+2, y+2, checkcol, h-2*2, - g.brush( TQColorGroup::Button )); - } - - if ( mi->iconSet() ) { // draw iconset - TQIconSet::Mode mode = (enabled) ? TQIconSet::Normal : TQIconSet::Disabled; - - if (act && enabled) - mode = TQIconSet::Active; - - TQPixmap pixmap = mi->iconSet()->pixmap(TQIconSet::Small, mode); - - int pixw = pixmap.width(); - int pixh = pixmap.height(); - - TQRect cr( x + 2, y+2, checkcol, h-2*2 ); - TQRect pmr( 0, 0, pixw, pixh ); - - pmr.moveCenter(cr.center()); - - p->setPen( itemg.text() ); - p->drawPixmap( pmr.topLeft(), pixmap ); - - } else if (checkable) { - int mw = checkcol; - int mh = h - 4; - - if (mi->isChecked()) - drawCheckMark(p, x+2, y+2, mw, mh, itemg, act, ! enabled); - } - - p->setPen( g.buttonText() ); - - TQColor discol; - if (! enabled) { - discol = itemg.text(); - p->setPen( discol ); - } - - if (mi->custom()) { - p->save(); - mi->custom()->paint(p, itemg, act, enabled, x + checkcol + 4, y + 2, - w - checkcol - tab - 3, h - 4); - p->restore(); - } - - TQString s = mi->text(); - if ( !s.isNull() ) { // draw text - int t = s.find( '\t' ); - int m = 2; - const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; - if ( t >= 0 ) { // draw tab text - p->drawText( x+w-tab-2-2, - y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); - } - p->drawText(x + checkcol + 4, y + 2, w - checkcol -tab - 3, h - 4, - text_flags, s, t); - } else if (mi->pixmap()) { - TQPixmap *pixmap = mi->pixmap(); - - if (pixmap->depth() == 1) p->setBackgroundMode(OpaqueMode); - p->drawPixmap(x + checkcol + 2, y + 2, *pixmap); - if (pixmap->depth() == 1) p->setBackgroundMode(TransparentMode); - } - - if (mi->popup()) { - int hh = h / 2; - - drawMenuArrow(p, RightArrow, (act) ? mi->isEnabled() : false, - x + w - hh - 6, y + (hh / 2), hh, hh, g, mi->isEnabled()); - } -} - - -void KLegacyStyle::drawComboButton(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, bool sunken, bool editable, - bool enabled, const TQBrush *b) -{ - GtkObject *gobj = priv->gtkDict.find(TQComboBox::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawComboButton(p, x, y, w, h, g, sunken, editable, enabled, b); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Box; - key.data.state = KLegacy::Normal; - key.data.shadow = KLegacy::Out; - - if (priv->lastWidget && priv->lastWidget->inherits(TQCOMBOBOX_OBJECT_NAME_STRING)) - key.data.state = KLegacy::Prelight; - - TQPixmap *pix = gobj->draw(key, w, h, "optionmenu"); - - if (pix && ! pix->isNull()) { - p->drawPixmap(x, y, *pix); - } else { - TDEStyle::drawComboButton(p, x, y, w, h, g, sunken, editable, enabled, b); - return; - } - - TQRect rect = comboButtonRect(x, y, w, h); - int tw = w - rect.width() - rect.right() - rect.left(); - int th = rect.height(); - - key.data.function = KLegacy::Tab; - key.data.state = KLegacy::Normal; - pix = gobj->draw(key, tw, th, "optionmenutab"); - - if (pix && ! pix->isNull()) - p->drawPixmap(x + rect.width() + rect.left() + ((18 - pix->width()) / 2), - y + rect.y() + ((rect.height() - pix->height()) / 2), *pix); -} - - -TQRect KLegacyStyle::comboButtonRect(int x, int y, int w, int h) { - GtkObject *gobj = priv->gtkDict.find(TQComboBox::staticMetaObject()); - - if (! gobj) { - return TDEStyle::comboButtonRect(x, y, w, h); - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Box; - KLegacyImageData *id = gobj->getImageData(key, "optionmenu"); - - if (! id) { - return TDEStyle::comboButtonRect(x, y, w, h); - } - - return TQRect(x + id->border.left() + 1, y + id->border.top() + 1, - w - id->border.left() - id->border.right() - 18, - h - id->border.top() - id->border.bottom() - 2); -} - - -TQRect KLegacyStyle::comboButtonFocusRect(int x, int y, int w, int h) { - return comboButtonRect(x, y, w, h); -} - - -TQStyle::ScrollControl KLegacyStyle::scrollBarPointOver(const TQScrollBar *scrollbar, - int sliderStart, const TQPoint &p) -{ - return TQCommonStyle::scrollBarPointOver(scrollbar, sliderStart, p); -} - - -void KLegacyStyle::scrollBarMetrics(const TQScrollBar *scrollbar, int &sliderMin, - int &sliderMax, int &sliderLength, int &buttonDim) -{ - int maxLength; - int b = defaultFrameWidth(); - int length = ((scrollbar->orientation() == TQScrollBar::Horizontal) ? - scrollbar->width() : scrollbar->height()); - int extent = ((scrollbar->orientation() == TQScrollBar::Horizontal) ? - scrollbar->height() : scrollbar->width()); - - if (length > ((extent - (b * 2) - 1) * 2) + (b * 2)) - buttonDim = extent - (b * 2); - else - buttonDim = ((length - (b * 2)) / 2) - 1; - - sliderMin = b + buttonDim; - maxLength = length - (b * 2) - (buttonDim * 2); - - if (scrollbar->maxValue() == scrollbar->minValue()) { - sliderLength = maxLength - 2; - } else { - uint range = scrollbar->maxValue() - scrollbar->minValue(); - - sliderLength = (scrollbar->pageStep() * maxLength) / - (range + scrollbar->pageStep()); - - if (sliderLength < buttonDim || range > (INT_MAX / 2)) - sliderLength = buttonDim; - if (sliderLength >= maxLength) - sliderLength = maxLength - 2; - } - - sliderMax = sliderMin + maxLength - sliderLength; - - sliderMin += 1; - sliderMax -= 1; -} - - -void KLegacyStyle::drawScrollBarControls(TQPainter *p, const TQScrollBar *scrollbar, - int start, uint controls, uint active) -{ - if (! scrollbar->isVisible()) return; - - GtkObject *gobj = priv->gtkDict.find(TQScrollBar::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawScrollBarControls(p, scrollbar, start, controls, active); - return; - } - - KLegacyImageDataKey gkey; - gkey.cachekey = 0; - gkey.data.function = KLegacy::Box; - gkey.data.orientation = scrollbar->orientation() + 1; - - KLegacyImageData *groove_id = gobj->getImageData(gkey, "trough"); - - if (! groove_id) { - TDEStyle::drawScrollBarControls(p, scrollbar, start, controls, active); - return; - } - - int sliderMin; - int sliderMax; - int sliderLen; - int buttonDim; - scrollBarMetrics(scrollbar, sliderMin, sliderMax, sliderLen, buttonDim); - - // the rectangle for the slider - TQRect slider( - // x - ((scrollbar->orientation() == Vertical) ? - defaultFrameWidth() : start), - - // y - ((scrollbar->orientation() == Vertical) ? - start : defaultFrameWidth()), - - // w - ((scrollbar->orientation() == Vertical) ? - buttonDim : sliderLen), - - // h - ((scrollbar->orientation() == Vertical) ? - sliderLen : buttonDim)); - - KLegacyImageDataKey skey; - skey.cachekey = 0; - skey.data.function = KLegacy::Box; - skey.data.orientation = scrollbar->orientation() + 1; - - if ((active & Slider) || (priv->hovering && slider.contains(priv->mousePos))) - skey.data.state = KLegacy::Prelight; - else - skey.data.state = KLegacy::Normal; - - KLegacyImageData *slider_id = gobj->getImageData(skey, "slider"); - - if (! slider_id) { - TDEStyle::drawScrollBarControls(p, scrollbar, start, controls, active); - return; - } - - TQPixmap *groove_pm = gobj->draw(groove_id, scrollbar->width(), scrollbar->height()); - - if ((! groove_pm) || (groove_pm->isNull())) { - groove_pm = 0; - } - - TQPixmap *slider_pm = gobj->draw(slider_id, slider.width(), slider.height()); - - if ((! slider_pm) || (slider_pm->isNull())) { - slider_pm = 0; - } - - TQPixmap buf(scrollbar->size()); - { - TQPainter p2(&buf); - - if (groove_pm) { - p2.drawTiledPixmap(scrollbar->rect(), *groove_pm); - } - - if (slider_pm) { - p2.drawTiledPixmap(slider, *slider_pm); - } - - // arrows - int x, y; - x = y = defaultFrameWidth(); - - drawArrow(&p2, ((scrollbar->orientation() == Vertical) ? - UpArrow : LeftArrow), - (active & SubLine), x, y, - buttonDim, - buttonDim, - scrollbar->colorGroup(), true); - - if (scrollbar->orientation() == Vertical) - y = scrollbar->height() - buttonDim - defaultFrameWidth(); - else - x = scrollbar->width() - buttonDim - defaultFrameWidth(); - - drawArrow(&p2, ((scrollbar->orientation() == Vertical) ? - DownArrow : RightArrow), - (active & AddLine), x, y, - buttonDim, - buttonDim, - scrollbar->colorGroup(), true); - } - p->drawPixmap(0, 0, buf); -} - - -void KLegacyStyle::drawSlider(TQPainter *p, int x, int y, int w, int h, const TQColorGroup &g, - Orientation orientation, bool tickAbove, bool tickBelow) -{ - GtkObject *gobj = priv->gtkDict.find(TQSlider::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawSlider(p, x, y, w, h, g, orientation, tickAbove, tickBelow); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Box; - key.data.shadow = KLegacy::Out; - key.data.state = KLegacy::Normal; - key.data.orientation = orientation + 1; - - TQPixmap *pix = gobj->draw(key, w, h, "slider"); - - if (pix && ! pix->isNull()) - p->drawPixmap(x, y, *pix); - else - TDEStyle::drawSlider(p, x, y, w, h, g, orientation, tickAbove, tickBelow); -} - - - -void KLegacyStyle::drawSliderGroove(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, QCOORD c, Orientation o) -{ - GtkObject *gobj = priv->gtkDict.find(TQSlider::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawSliderGroove(p, x, y, w, h, g, c, o); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Box; - key.data.shadow = KLegacy::In; - key.data.state = KLegacy::Active; - key.data.orientation = o + 1; - - TQPixmap *pix = gobj->draw(key, w, h, "trough"); - - if (pix && ! pix->isNull()) - p->drawPixmap(x, y, *pix); - else - TDEStyle::drawSliderGroove(p, x, y, w, h, g, c, o); -} - - -void KLegacyStyle::drawArrow(TQPainter *p, ArrowType type, bool down, - int x, int y, int w, int h, - const TQColorGroup &g, bool enabled, const TQBrush *b) -{ - GtkObject *gobj = priv->gtkDict.find(&arrow_ptr); - - if (! gobj) { - TDEStyle::drawArrow(p, type, down, x, y, w, h, g, enabled, b); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Arrow; - key.data.state = (down) ? KLegacy::Active : KLegacy::Normal; - key.data.shadow = (down) ? KLegacy::In : KLegacy::NoShadow; - key.data.arrowDirection = type + 1; - - if ((! down) && priv->hovering && - TQRect(x, y, w, h).contains(priv->mousePos)) { - key.data.state = KLegacy::Prelight; - } - - TQPixmap *pix = gobj->draw(key, w, h, "arrow"); - - if (pix && ! pix->isNull()) - p->drawPixmap(x, y, *pix); - else - TDEStyle::drawArrow(p, type, down, x, y, w, h, g, enabled, b); -} - - -void KLegacyStyle::drawMenuArrow(TQPainter *p, ArrowType type, bool down, - int x, int y, int w, int h, - const TQColorGroup &g, bool enabled, const TQBrush *b) -{ - GtkObject *gobj = priv->gtkDict.find(&menuitem_ptr); - - if (! gobj) { - TDEStyle::drawArrow(p, type, down, x, y, w, h, g, enabled, b); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Arrow; - key.data.state = (down) ? KLegacy::Active : KLegacy::Normal; - key.data.shadow = (down) ? KLegacy::In : KLegacy::NoShadow; - key.data.arrowDirection = type + 1; - - TQPixmap *pix = gobj->draw(key, w, h, "arrow"); - - if (pix && ! pix->isNull()) - p->drawPixmap(x + ((w - pix->width()) / 2), - y + ((h - pix->height()) / 2), *pix); - else - TDEStyle::drawArrow(p, type, down, x, y, w, h, g, enabled, b); -} - - -void KLegacyStyle::drawPanel(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, bool sunken, int, const TQBrush *brush) -{ - TDEStyle::drawPanel(p, x, y, w, h, g, sunken, 1, brush); -} - - -void KLegacyStyle::drawPopupPanel(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, int, const TQBrush *fill) -{ - TQBrush brush = (fill) ? *fill : g.brush(TQColorGroup::Background); - - p->fillRect(x, y, w, h, brush); -} - - -void KLegacyStyle::drawCheckMark(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, bool activated, bool disabled) -{ - GtkObject *gobj = priv->gtkDict.find(&checkmenuitem_ptr); - - if (! gobj) { - TDEStyle::drawCheckMark(p, x, y, w, h, g, activated, disabled); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Check; - key.data.shadow = (disabled) ? KLegacy::Out : KLegacy::In; - - TQPixmap *pix = gobj->draw(key, w, h); - - if (pix && (! pix->isNull())) { - x += (w - pix->width()) / 2; - y += (h - pix->height()) / 2; - p->drawPixmap(x, y, *pix); - } else { - TDEStyle::drawCheckMark(p, x, y, w, h, g, activated, disabled); - } -} - - -void KLegacyStyle::drawSplitter(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, Orientation orientation) -{ - if (orientation == Horizontal) { - int xpos = x + (w / 2); - int kpos = 10; - int ksize = splitterWidth() - 2; - - qDrawShadeLine(p, xpos, kpos + ksize - 1, xpos, h, g); - drawBevelButton(p, xpos - (splitterWidth() / 2) + 1, kpos, ksize, ksize, - g, false, &g.brush(TQColorGroup::Button)); - qDrawShadeLine(p, xpos, 0, xpos, kpos, g); - } else { - int ypos = y + (h / 2); - int kpos = w - 10 - splitterWidth(); - int ksize = splitterWidth() - 2; - - qDrawShadeLine(p, 0, ypos, kpos, ypos, g); - drawBevelButton(p, kpos, ypos - (splitterWidth() / 2) + 1, ksize, ksize, - g, false, &g.brush(TQColorGroup::Button)); - qDrawShadeLine(p, kpos + ksize - 1, ypos, w, ypos, g); - } -} - - -void KLegacyStyle::drawTab(TQPainter *p, const TQTabBar *tabbar, TQTab *tab, bool selected) -{ - GtkObject *gobj = priv->gtkDict.find(TQTabBar::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawTab(p, tabbar, tab, selected); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Extension; - key.data.state = (! selected) ? KLegacy::Active : KLegacy::Normal; - key.data.shadow = KLegacy::Out; - key.data.gapSide = (tabbar->shape() == TQTabBar::RoundedAbove || - tabbar->shape() == TQTabBar::TriangularAbove) ? - KLegacy::Bottom : KLegacy::Top; - - int ry = tab->r.top(), rh = tab->r.height(); - - if (! selected) { - rh -= 2; - - if (tabbar->shape() == TQTabBar::RoundedAbove || - tabbar->shape() == TQTabBar::TriangularAbove) - ry += 2; - } - - TQPixmap *pix = gobj->draw(key, tab->r.width(), rh, "tab"); - - - if (pix && ! pix->isNull()) - p->drawPixmap(tab->r.left(), ry, *pix); - else - TDEStyle::drawTab(p, tabbar, tab, selected); -} - - -void KLegacyStyle::drawKBarHandle(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, TDEToolBarPos type, TQBrush *fill) -{ - GtkObject *gobj = priv->gtkDict.find(TQToolBar::staticMetaObject()); - - if (! gobj) { - TDEStyle::drawKBarHandle(p, x, y, w, h, g, type, fill); - return; - } - - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Handle; - key.data.state = KLegacy::Normal; - key.data.shadow = KLegacy::Out; - key.data.orientation = (type == Left || type == Right) ? - Vertical + 1: Horizontal + 1; - - TQPixmap *pix = gobj->draw(key, w, h, "handle"); - - if (pix && ! pix->isNull()) - p->drawPixmap(x, y, *pix); -} - - -void KLegacyStyle::drawKickerHandle(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, TQBrush *fill) -{ - drawKBarHandle(p, x, y, w, h, g, Left, fill); -} - - -void KLegacyStyle::drawKickerAppletHandle(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, TQBrush *fill) -{ - drawKBarHandle(p, x, y, w, h, g, Left, fill); -} - - -void KLegacyStyle::drawKickerTaskButton(TQPainter *p, int x, int y, int w, int h, - const TQColorGroup &g, const TQString &title, - bool active, TQPixmap *icon, TQBrush *fill) -{ - drawBevelButton(p, x, y, w, h, g, active, fill); - - const int pxWidth = 20; - int textPos = pxWidth; - - TQRect br(buttonRect(x, y, w, h)); - - if (active) - p->translate(1,1); - - if (icon && ! icon->isNull()) { - int dx = (pxWidth - icon->width()) / 2; - int dy = (h - icon->height()) / 2; - - p->drawPixmap(br.x() + dx, dy, *icon); - } - - TQString s(title); - - static const TQString &modStr = TDEGlobal::staticQString( - TQString::fromUtf8("[") + i18n("modified") + TQString::fromUtf8("]")); - - int modStrPos = s.find(modStr); - - if (modStrPos != -1) { - s.remove(modStrPos, modStr.length()+1); - - TQPixmap modPixmap = SmallIcon("modified"); - - int dx = (pxWidth - modPixmap.width()) / 2; - int dy = (h - modPixmap.height()) / 2; - - p->drawPixmap(br.x() + textPos + dx, dy, modPixmap); - - textPos += pxWidth; - } - - if (! s.isEmpty()) { - if (p->fontMetrics().width(s) > br.width() - textPos) { - int maxLen = br.width() - textPos - p->fontMetrics().width("..."); - - while ( (! s.isEmpty()) && (p->fontMetrics().width(s) > maxLen)) - s.truncate(s.length() - 1); - - s.append("..."); - } - - p->setPen((active) ? g.foreground() : g.buttonText()); - - p->drawText(br.x() + textPos, -1, w - textPos, h, AlignVCenter | AlignLeft, s); - } -} - - -bool KLegacyStyle::eventFilter(TQObject *obj, TQEvent *e) { - switch (e->type()) { - case TQEvent::Resize: - { - TQWidget *w = (TQWidget *) obj; - - if (w->inherits(TQPOPUPMENU_OBJECT_NAME_STRING) && w->width() < 700) { - GtkObject *gobj = priv->gtkDict.find(TQPopupMenu::staticMetaObject()); - - if (gobj) { - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Box; - key.data.state = KLegacy::Normal; - key.data.shadow = KLegacy::Out; - - TQPixmap *pix = gobj->draw(key, w->width(), w->height(), "menu"); - - if (pix && ! pix->isNull()) { - TQPalette pal = w->palette(); - - // active - TQBrush brush = pal.brush(TQPalette::Active, - TQColorGroup::Background); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Active, - TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Active, - TQColorGroup::Button); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Active, - TQColorGroup::Button, brush); - - // inactive - brush = pal.brush(TQPalette::Inactive, - TQColorGroup::Background); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Inactive, - TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Inactive, - TQColorGroup::Button); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Inactive, - TQColorGroup::Button, brush); - - // disabled - brush = pal.brush(TQPalette::Disabled, - TQColorGroup::Background); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Disabled, - TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Disabled, - TQColorGroup::Button); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Disabled, - TQColorGroup::Button, brush); - - w->setPalette(pal); - } - } - } else if (w->isTopLevel() || w->inherits("QWorkspaceChild")) { - GtkObject *gobj = priv->gtkDict.find(TQMainWindow::staticMetaObject()); - - if (gobj) { - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::FlatBox; - - TQPixmap *p = gobj->draw(key, w->width(), w->height(), "base"); - - if (p && (! p->isNull())) - w->setBackgroundPixmap(*p); - } - } else if (w->inherits(TQLINEEDIT_OBJECT_NAME_STRING)) { - GtkObject *gobj = priv->gtkDict.find(TQLineEdit::staticMetaObject()); - - if (gobj) { - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::FlatBox; - key.data.shadow = KLegacy::NoShadow; - key.data.state = (w->isEnabled()) ? KLegacy::Normal : KLegacy::Insensitive; - - TQPixmap *pix = gobj->draw(key, w->width(), w->height(), - "entry_bg"); - - if (pix && (! pix->isNull())) { - TQPalette pal = w->palette(); - - // active - TQBrush brush = pal.brush(TQPalette::Active, - TQColorGroup::Base); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Active, - TQColorGroup::Base, brush); - - // inactive - brush = pal.brush(TQPalette::Inactive, - TQColorGroup::Base); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Inactive, - TQColorGroup::Base, brush); - - // disabled - brush = pal.brush(TQPalette::Disabled, - TQColorGroup::Base); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Disabled, - TQColorGroup::Base, brush); - - w->setPalette(pal); - } - } - } else if (w->inherits(TQMENUBAR_OBJECT_NAME_STRING) || - w->inherits(TQTOOLBAR_OBJECT_NAME_STRING)) { - GtkObject *gobj = priv->gtkDict.find(TQMenuBar::staticMetaObject()); - - if (gobj) { - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::Box; - key.data.state = KLegacy::Normal; - key.data.shadow = KLegacy::Out; - - TQPixmap *pix = gobj->draw(key, w->width(), w->height(), - "menubar"); - if (pix && (! pix->isNull())) { - TQPalette pal = w->palette(); - - // active - TQBrush brush = pal.brush(TQPalette::Active, - TQColorGroup::Background); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Active, - TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Active, - TQColorGroup::Button); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Active, - TQColorGroup::Button, brush); - - // inactive - brush = pal.brush(TQPalette::Inactive, - TQColorGroup::Background); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Inactive, - TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Inactive, - TQColorGroup::Button); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Inactive, - TQColorGroup::Button, brush); - - // disabled - brush = pal.brush(TQPalette::Disabled, - TQColorGroup::Background); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Disabled, - TQColorGroup::Background, brush); - - brush = pal.brush(TQPalette::Disabled, - TQColorGroup::Button); - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Disabled, - TQColorGroup::Button, brush); - - w->setPalette(pal); - } - } - } - - break; - } - - case TQEvent::Enter: - { - if (obj->inherits(TQPUSHBUTTON_OBJECT_NAME_STRING) || - obj->inherits(TQCOMBOBOX_OBJECT_NAME_STRING) || - obj->inherits(TQSLIDER_OBJECT_NAME_STRING) || - obj->inherits(TQSCROLLBAR_OBJECT_NAME_STRING)) { - priv->lastWidget = (TQWidget *) obj; - priv->lastWidget->repaint(false); - } else if (obj->inherits(TQRADIOBUTTON_OBJECT_NAME_STRING)) { - TQWidget *w = (TQWidget *) obj; - - if (! w->isTopLevel() && w->isEnabled()) { - GtkObject *gobj = priv->gtkDict.find(TQRadioButton::staticMetaObject()); - - if (gobj) { - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::FlatBox; - - TQPixmap *pix = gobj->draw(key, w->width(), w->height()); - - if (pix && (! pix->isNull())) { - TQPalette pal = w->palette(); - TQBrush brush = pal.brush(TQPalette::Normal, - TQColorGroup::Background); - - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Normal, - TQColorGroup::Background, brush); - - w->setPalette(pal); - w->setBackgroundMode(TQWidget::PaletteBackground); - w->setBackgroundOrigin(TQWidget::WidgetOrigin); - } - } - } - } else if (obj->inherits(TQCHECKBOX_OBJECT_NAME_STRING)) { - TQWidget *w = (TQWidget *) obj; - - if (! w->isTopLevel() && w->isEnabled()) { - GtkObject *gobj = priv->gtkDict.find(TQCheckBox::staticMetaObject()); - - if (gobj) { - KLegacyImageDataKey key; - key.cachekey = 0; - key.data.function = KLegacy::FlatBox; - - TQPixmap *pix = gobj->draw(key, w->width(), w->height()); - - if (pix && (! pix->isNull())) { - TQPalette pal = w->palette(); - TQBrush brush = pal.brush(TQPalette::Normal, - TQColorGroup::Background); - - brush.setPixmap(*pix); - pal.setBrush(TQPalette::Normal, - TQColorGroup::Background, brush); - - w->setPalette(pal); - w->setBackgroundMode(TQWidget::PaletteBackground); - w->setBackgroundOrigin(TQWidget::WidgetOrigin); - } - } - } - } - - break; - } - - case TQEvent::Leave: - { - if (obj == priv->lastWidget) { - priv->lastWidget = 0; - ((TQWidget *) obj)->repaint(false); - } else if (obj->inherits(TQRADIOBUTTON_OBJECT_NAME_STRING) || - obj->inherits(TQCHECKBOX_OBJECT_NAME_STRING)) { - TQWidget *w = (TQWidget *) obj; - - if (! w->isTopLevel()) { - w->setBackgroundMode(TQWidget::X11ParentRelative); - w->setBackgroundOrigin(TQWidget::WidgetOrigin); - w->repaint(true); - } - } - - break; - } - - case TQEvent::MouseMove: - { - TQMouseEvent *me = (TQMouseEvent *) e; - priv->mousePos = me->pos(); - if (obj->inherits(TQSCROLLBAR_OBJECT_NAME_STRING) && - (! (me->state() & (LeftButton | MidButton | RightButton)))) { - priv->hovering = true; - ((TQWidget *) obj)->repaint(false); - priv->hovering = false; - } - - break; - } - - default: - { - break; - } - } - - return TDEStyle::eventFilter(obj, e); -} |