• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kdefx

kstyle.h

Go to the documentation of this file.
00001 /*
00002  * $Id: kstyle.h 465272 2005-09-29 09:47:40Z mueller $
00003  * 
00004  * KStyle
00005  * Copyright (C) 2001-2002 Karol Szwed <gallium@kde.org>
00006  * 
00007  * QWindowsStyle CC_ListView and style images were kindly donated by TrollTech,
00008  * Copyright (C) 1998-2000 TrollTech AS.
00009  * 
00010  * Many thanks to Bradley T. Hughes for the 3 button scrollbar code.
00011  *
00012  * This library is free software; you can redistribute it and/or
00013  * modify it under the terms of the GNU Library General Public
00014  * License version 2 as published by the Free Software Foundation.
00015  *
00016  * This library is distributed in the hope that it will be useful,
00017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00019  * Library General Public License for more details.
00020  *
00021  * You should have received a copy of the GNU Library General Public License
00022  * along with this library; see the file COPYING.LIB.  If not, write to
00023  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00024  * Boston, MA 02110-1301, USA.
00025  */
00026 
00027 #ifndef __KSTYLE_H
00028 #define __KSTYLE_H
00029 
00030 // W A R N I N G
00031 // -------------
00032 // This API is still subject to change.
00033 // I will remove this warning when I feel the API is sufficiently flexible.
00034 
00035 #include <qcommonstyle.h>
00036 
00037 #include <kdelibs_export.h>
00038 
00039 class KPixmap;
00040 
00041 struct KStylePrivate;
00057 class KDEFX_EXPORT KStyle: public QCommonStyle
00058 {
00059     Q_OBJECT
00060 
00061     public:
00062 
00079         typedef uint KStyleFlags;
00080         enum KStyleOption {
00081             Default           =     0x00000000, 
00082             AllowMenuTransparency =     0x00000001, 
00083             FilledFrameWorkaround =     0x00000002  
00084         };
00085 
00109         enum KStyleScrollBarType {
00110             WindowsStyleScrollBar  =    0x00000000, 
00111             PlatinumStyleScrollBar =    0x00000001, 
00112             ThreeButtonScrollBar   =    0x00000002, 
00113             NextStyleScrollBar     =    0x00000004  
00114         };
00115 
00135         KStyle( KStyleFlags flags = KStyle::Default, 
00136             KStyleScrollBarType sbtype = KStyle::WindowsStyleScrollBar );
00137 
00141         ~KStyle();
00142 
00146         static QString defaultStyle();
00147 
00159         void setScrollBarType(KStyleScrollBarType sbtype);
00160 
00166         KStyleFlags styleFlags() const;
00167 
00168         // ---------------------------------------------------------------------------
00169 
00181         virtual void renderMenuBlendPixmap( KPixmap& pix, const QColorGroup& cg, 
00182                             const QPopupMenu* popup ) const;
00183 
00227         enum KStylePrimitive {
00228             KPE_DockWindowHandle,
00229             KPE_ToolBarHandle,
00230             KPE_GeneralHandle,
00231 
00232             KPE_SliderGroove,
00233             KPE_SliderHandle,
00234 
00235             KPE_ListViewExpander,
00236             KPE_ListViewBranch
00237         };
00238 
00248         virtual void drawKStylePrimitive( KStylePrimitive kpe,
00249                     QPainter* p,
00250                     const QWidget* widget,
00251                     const QRect &r,
00252                     const QColorGroup &cg,
00253                     SFlags flags = Style_Default,
00254                     const QStyleOption& = QStyleOption::Default ) const;
00255 
00256 
00257         enum KStylePixelMetric {
00258             KPM_MenuItemSeparatorHeight     = 0x00000001,
00259             KPM_MenuItemHMargin         = 0x00000002,
00260             KPM_MenuItemVMargin         = 0x00000004,
00261             KPM_MenuItemHFrame          = 0x00000008,
00262             KPM_MenuItemVFrame          = 0x00000010,
00263             KPM_MenuItemCheckMarkHMargin            = 0x00000020,
00264             KPM_MenuItemArrowHMargin        = 0x00000040,
00265             KPM_MenuItemTabSpacing          = 0x00000080,
00266             KPM_ListViewBranchThickness     = 0x00000100
00267         };
00268 
00269         int kPixelMetric( KStylePixelMetric kpm, const QWidget* widget = 0 ) const;
00270 
00271         // ---------------------------------------------------------------------------
00272 
00273         void polish( QWidget* widget );
00274         void unPolish( QWidget* widget );
00275         void polishPopupMenu( QPopupMenu* );
00276 
00277         void drawPrimitive( PrimitiveElement pe,
00278                     QPainter* p,
00279                     const QRect &r,
00280                     const QColorGroup &cg,
00281                     SFlags flags = Style_Default,
00282                     const QStyleOption& = QStyleOption::Default ) const;
00283 
00284         void drawControl( ControlElement element,
00285                     QPainter* p,
00286                     const QWidget* widget,
00287                     const QRect &r,
00288                     const QColorGroup &cg,
00289                     SFlags flags = Style_Default,
00290                     const QStyleOption& = QStyleOption::Default ) const;
00291 
00292         void drawComplexControl( ComplexControl control,
00293                     QPainter *p,
00294                     const QWidget* widget,
00295                     const QRect &r,
00296                     const QColorGroup &cg,
00297                     SFlags flags = Style_Default,
00298                     SCFlags controls = SC_All,
00299                     SCFlags active = SC_None,
00300                     const QStyleOption& = QStyleOption::Default ) const;
00301 
00302         SubControl querySubControl( ComplexControl control,
00303                     const QWidget* widget,
00304                     const QPoint &pos,
00305                     const QStyleOption& = QStyleOption::Default ) const;
00306 
00307         QRect querySubControlMetrics( ComplexControl control,
00308                     const QWidget* widget,
00309                     SubControl sc,
00310                     const QStyleOption& = QStyleOption::Default ) const;
00311 
00312         int pixelMetric( PixelMetric m, 
00313                     const QWidget* widget = 0 ) const;
00314 
00315         QRect subRect( SubRect r, 
00316                     const QWidget* widget ) const;
00317 
00318         QPixmap stylePixmap( StylePixmap stylepixmap,
00319                     const QWidget* widget = 0,
00320                     const QStyleOption& = QStyleOption::Default ) const;
00321 
00322         int styleHint( StyleHint sh, 
00323                     const QWidget* w = 0,
00324                     const QStyleOption &opt = QStyleOption::Default,
00325                     QStyleHintReturn* shr = 0 ) const;
00326 
00327     protected:
00328         bool eventFilter( QObject* object, QEvent* event );
00329 
00330     private:
00331         // Disable copy constructor and = operator
00332         KStyle( const KStyle & );
00333         KStyle& operator=( const KStyle & );
00334 
00335     protected:
00336         virtual void virtual_hook( int id, void* data );
00337     private:
00338         KStylePrivate *d;
00339 };
00340 
00341 
00342 // vim: set noet ts=4 sw=4:
00343 #endif
00344 

kdefx

Skip menu "kdefx"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal