diff options
author | Darrell Anderson <humanreadable@yahoo.com> | 2013-08-18 10:14:48 -0500 |
---|---|---|
committer | Darrell Anderson <humanreadable@yahoo.com> | 2013-08-18 10:14:48 -0500 |
commit | dad42352f4ad47d34caf50040367dc2a95772baa (patch) | |
tree | 6d2887d13f9b1403b8ce15be48a6ea7cec32fd96 /kstyles/keramik | |
parent | 365f03061337a81bcffb4a45c4ad637edad27019 (diff) | |
download | tdelibs-dad42352f4ad47d34caf50040367dc2a95772baa.tar.gz tdelibs-dad42352f4ad47d34caf50040367dc2a95772baa.zip |
Rename KStyle to TDEStyle to avoid conflicts with KDE4.
Diffstat (limited to 'kstyles/keramik')
213 files changed, 0 insertions, 5247 deletions
diff --git a/kstyles/keramik/CMakeLists.txt b/kstyles/keramik/CMakeLists.txt deleted file mode 100644 index 8ee7c9730..000000000 --- a/kstyles/keramik/CMakeLists.txt +++ /dev/null @@ -1,70 +0,0 @@ -################################################# -# -# (C) 2010 Serghei Amelian -# serghei (DOT) amelian (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -add_definitions( - -UQT_NO_ASCII_CAST - -DQT_PLUGIN -) - -include_directories( - ${TQT_INCLUDE_DIRS} - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_BINARY_DIR}/tdecore - ${CMAKE_SOURCE_DIR}/tdefx - ${CMAKE_SOURCE_DIR}/tdecore -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - - -##### genembed ################################## - -set( target genembed ) - -set( ${target}_SRCS - genembed.cpp -) - -tde_add_executable( ${target} - SOURCES ${${target}_SRCS} - LINK tdefx-shared -) - - -##### pixmaps.keramik ########################### - -file(GLOB _pics "${CMAKE_CURRENT_SOURCE_DIR}/pics/*.png" ) - -add_custom_command( - OUTPUT pixmaps.keramik keramikrc.h - COMMAND ./genembed ${_pics} 2>/dev/null > pixmaps.keramik - DEPENDS genembed ) - - -##### keramik ################################### - -set( target keramik ) - -set( ${target}_SRCS - keramik.cpp pixmaploader.cpp gradients.cpp colorutil.cpp -) - -set_source_files_properties( pixmaploader.cpp PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pixmaps.keramik ) - -tde_add_kpart( ${target} AUTOMOC - SOURCES ${${target}_SRCS} - LINK tdefx-shared Xext - DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/styles -) diff --git a/kstyles/keramik/Makefile.am b/kstyles/keramik/Makefile.am deleted file mode 100644 index 4f3dbebae..000000000 --- a/kstyles/keramik/Makefile.am +++ /dev/null @@ -1,90 +0,0 @@ -AM_CPPFLAGS = -DQT_PLUGIN - -INCLUDES = -I$(top_srcdir)/tdefx $(all_includes) -# qembed's output needs that... -KDE_CXXFLAGS = -UQT_NO_ASCII_CAST -noinst_HEADERS = keramik.h pixmaploader.h keramikimage.h bitmaps.h gradients.h colorutil.h -kde_style_LTLIBRARIES = keramik.la -keramik_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module -keramik_la_LIBADD = ../../tdefx/libtdefx.la $(LIB_QT) $(LIB_XEXT) -keramik_la_SOURCES = keramik.cpp pixmaploader.cpp gradients.cpp colorutil.cpp -keramik_la_COMPILE_FIRST = keramikrc.h -keramik_la_METASOURCES = AUTO - -noinst_PROGRAMS = genembed - -genembed_SOURCES = genembed.cpp -genembed_LDADD = ../../tdefx/libtdefx.la -genembed_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_KIO) -ltdetexteditor - -pixmaps.keramik: pics/checkbox-off.png pics/checkbox-on.png pics/combobox-list-bc.png\ - pics/combobox-list-bl.png pics/combobox-list-br.png pics/combobox-list-cl.png pics/combobox-list-cr.png\ - pics/combobox-list-tc.png pics/combobox-list-tl.png pics/combobox-list-tr.png pics/frame-shadow-cl.png\ - pics/frame-shadow-tc.png pics/frame-shadow-tl.png pics/listview-bc.png pics/listview-bl.png pics/listview-br.png\ - pics/listview-cc.png pics/listview-cl.png pics/listview-cr.png pics/listview-pressed-bc.png pics/listview-pressed-bl.png\ - pics/listview-pressed-br.png pics/listview-pressed-cc.png pics/listview-pressed-cl.png pics/listview-pressed-cr.png\ - pics/listview-pressed-tc.png pics/listview-pressed-tl.png pics/listview-pressed-tr.png pics/listview-tc.png pics/listview-tl.png\ - pics/listview-tr.png pics/pushbutton-bc.png pics/pushbutton-bl.png pics/pushbutton-br.png pics/pushbutton-cc.png\ - pics/pushbutton-cl.png pics/pushbutton-cr.png pics/pushbutton-default-bc.png pics/pushbutton-default-bl.png\ - pics/pushbutton-default-br.png pics/pushbutton-default-cc.png pics/pushbutton-default-cl.png pics/pushbutton-default-cr.png\ - pics/pushbutton-default-hov-tl.png pics/pushbutton-default-hov-tc.png pics/pushbutton-default-hov-tr.png\ - pics/pushbutton-default-hov-cl.png pics/pushbutton-default-hov-cc.png pics/pushbutton-default-hov-cr.png\ - pics/pushbutton-default-hov-bl.png pics/pushbutton-default-hov-bc.png pics/pushbutton-default-hov-br.png\ - pics/pushbutton-default-pressed-bc.png pics/pushbutton-default-pressed-bl.png pics/pushbutton-default-pressed-br.png\ - pics/pushbutton-default-pressed-cc.png pics/pushbutton-default-pressed-cl.png pics/pushbutton-default-pressed-cr.png\ - pics/pushbutton-default-pressed-tc.png pics/pushbutton-default-pressed-tl.png pics/pushbutton-default-pressed-tr.png\ - pics/pushbutton-default-tc.png pics/pushbutton-default-tl.png pics/pushbutton-default-tr.png \ - pics/pushbutton-pressed-bc.png pics/pushbutton-pressed-bl.png pics/pushbutton-pressed-br.png pics/pushbutton-pressed-cc.png\ - pics/pushbutton-pressed-cl.png pics/pushbutton-pressed-cr.png pics/pushbutton-pressed-tc.png pics/pushbutton-pressed-tl.png\ - pics/pushbutton-pressed-tr.png pics/pushbutton-small-bc.png pics/pushbutton-small-bl.png pics/pushbutton-small-br.png\ - pics/pushbutton-small-cc.png pics/pushbutton-small-cl.png pics/pushbutton-small-cr.png\ - pics/pushbutton-small-pressed-bc.png pics/pushbutton-small-pressed-bl.png pics/pushbutton-small-pressed-br.png\ - pics/pushbutton-small-pressed-cc.png pics/pushbutton-small-pressed-cl.png pics/pushbutton-small-pressed-cr.png\ - pics/pushbutton-small-pressed-tc.png pics/pushbutton-small-pressed-tl.png pics/pushbutton-small-pressed-tr.png\ - pics/pushbutton-small-tc.png pics/pushbutton-small-tl.png pics/pushbutton-small-tr.png pics/pushbutton-tc.png\ - pics/pushbutton-tl.png pics/pushbutton-tr.png pics/radiobutton-off.png pics/radiobutton-on.png pics/ripple.png\ - pics/scrollbar-hbar-arrow1.png \ - pics/scrollbar-hbar-arrow2.png pics/scrollbar-hbar-groove1.png pics/scrollbar-hbar-groove2.png\ - pics/scrollbar-hbar-slider1.png pics/scrollbar-hbar-slider2.png pics/scrollbar-hbar-slider3.png pics/scrollbar-hbar-slider4.png\ - pics/scrollbar-vbar-arrow1.png\ - pics/scrollbar-vbar-arrow2.png pics/scrollbar-vbar-groove1.png\ - pics/scrollbar-vbar-groove2.png pics/scrollbar-vbar-slider1.png pics/scrollbar-vbar-slider2.png\ - pics/menuitem-cl.png pics/menuitem-cc.png pics/menuitem-cr.png\ - pics/scrollbar-vbar-slider3.png pics/scrollbar-vbar-slider4.png pics/slider-hgroove-bc.png\ - pics/slider-hgroove-bl.png pics/slider-hgroove-br.png pics/slider-hgroove-cc.png pics/slider-hgroove-cl.png pics/slider-hgroove-cr.png\ - pics/slider-hgroove-tc.png pics/slider-hgroove-tl.png pics/slider-hgroove-tr.png pics/slider-vgroove-bc.png pics/slider-vgroove-bl.png\ - pics/slider-vgroove-br.png pics/slider-vgroove-cc.png pics/slider-vgroove-cl.png pics/slider-vgroove-cr.png pics/slider-vgroove-tc.png\ - pics/slider-vgroove-tl.png pics/slider-vgroove-tr.png pics/slider.png pics/spinbox-1.png pics/spinbox-2.png pics/spinbox-3.png\ - pics/spinbox-arrow-down.png pics/spinbox-arrow-up.png pics/spinbox-pressed-arrow-down.png pics/spinbox-pressed-arrow-up.png\ - pics/progressbar-cc.png pics/progressbar-cl.png pics/progressbar-cr.png\ - pics/toolbar-clk-bc.png pics/toolbar-clk-bl.png pics/toolbar-clk-br.png\ - pics/toolbar-clk-cc.png pics/toolbar-clk-cl.png pics/toolbar-clk-cr.png\ - pics/toolbar-clk-tc.png pics/toolbar-clk-tl.png pics/toolbar-clk-tr.png pics/checkbox-tri.png\ - pics/spinbox-pressed-down.png pics/spinbox-pressed-up.png \ - pics/tab-bottom-active-bc.png pics/tab-bottom-active-bl.png\ - pics/tab-bottom-active-br.png pics/tab-bottom-active-cc.png\ - pics/tab-bottom-active-cl.png pics/tab-bottom-active-cr.png\ - pics/tab-bottom-inactive-bc.png pics/tab-bottom-inactive-bl.png\ - pics/tab-bottom-inactive-br.png pics/tab-bottom-inactive-cc.png\ - pics/tab-bottom-inactive-cl.png pics/tab-bottom-inactive-cr.png\ - pics/tab-bottom-inactive-separator.png pics/tab-top-active-cc.png\ - pics/tab-top-active-cl.png pics/tab-top-active-cr.png\ - pics/tab-top-active-tc.png pics/tab-top-active-tl.png\ - pics/tab-top-active-tr.png pics/tab-top-inactive-cc.png\ - pics/tab-top-inactive-cl.png pics/tab-top-inactive-cr.png\ - pics/tab-top-inactive-separator.png pics/tab-top-inactive-tc.png\ - pics/tab-top-inactive-tl.png pics/tab-top-inactive-tr.png pics/vslider.png\ - pics/pushbutton-hov-tl.png pics/pushbutton-hov-tc.png pics/pushbutton-hov-tr.png\ - pics/pushbutton-hov-cl.png pics/pushbutton-hov-cc.png pics/pushbutton-hov-cr.png\ - pics/pushbutton-hov-bl.png pics/pushbutton-hov-bc.png pics/pushbutton-hov-br.png\ - pics/title-close-tiny.png pics/title-close.png pics/title-iconify.png\ - pics/title-maximize.png pics/title-restore.png pics/titlebutton-pressed.png\ - pics/titlebutton.png - - -pixmaps.keramik keramikrc.h: genembed - pics=`ls $(srcdir)/pics/*.png 2>/dev/null` ;\ - ./genembed $$pics > pixmaps.keramik - -pixmaploader.lo: pixmaps.keramik - diff --git a/kstyles/keramik/bitmaps.h b/kstyles/keramik/bitmaps.h deleted file mode 100644 index 54c30dd8d..000000000 --- a/kstyles/keramik/bitmaps.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef __BITMAPS_H -#define __BITMAPS_H - -/* Image bits processed by KPixmap2Bitmaps */ -// Arrow bitmaps -static const TQCOORD u_arrow[]={-1,-3, 0,-3, -2,-2, 1,-2, -3,-1, 2,-1, -4,0, 3,0, -4,1, 3,1}; -static const TQCOORD d_arrow[]={-4,-2, 3,-2, -4,-1, 3,-1, -3,0, 2,0, -2,1, 1,1, -1,2, 0,2}; -static const TQCOORD l_arrow[]={-3,-1, -3,0, -2,-2, -2,1, -1,-3, -1,2, 0,-4, 0,3, 1,-4, 1,3}; -static const TQCOORD r_arrow[]={-2,-4, -2,3, -1,-4, -1,3, 0,-3, 0,2, 1,-2, 1,1, 2,-1, 2,0}; - -static const TQCOORD keramik_combo_arrow[] = - {-4,-5, 4, -5, - -2 ,-2, 2, -2, - -2 ,-1, 2, -1, - -2 ,0, 2, 0, - -4, 1, 4, 1, - -3, 2, 3, 2, - -2 , 3, 2, 3, - -1 , 4, 1, 4, - 0 , 5, 0, 5 - }; - - -static const TQCOORD keramik_up_arrow[] = - { - 0, -4, 0, -4, - -1, -3, 1, -3, - -2, -2, 2, -2, - -3, -1, 3, -1, - -4, 0, 4, 0, - -2, 1, 2, 1, - -2, 2, 2, 2, - -2, 3, 2, 3, - -2, 4, 2, 4 - }; - -static const TQCOORD keramik_down_arrow[] = - { - 0, 4, 0, 4, - -1, 3, 1, 3, - -2, 2, 2, 2, - -3, 1, 3, 1, - -4, 0, 4, 0, - -2, -1, 2, -1, - -2, -2, 2, -2, - -2, -3, 2, -3, - -2, -4, 2, -4 - }; - - - static const TQCOORD keramik_right_arrow[] = - { - 4, 0, 4, 0, - 3, -1, 3, 1, - 2, -2, 2, 2, - 1, -3, 1, 3, - 0, -4, 0, 4, - -1, -2, -1, 2, - -2, -2, -2, 2, - -3, -2, -3, 2, - -4, -2, -4, 2 - }; - - static const TQCOORD keramik_left_arrow[] = - { - -4, 0, -4, 0, - -3, -1, -3, 1, - -2, -2, -2, 2, - -1, -3, -1, 3, - 0, -4, 0, 4, - 1, -2, 1, 2, - 2, -2, 2, 2, - 3, -2, 3, 2, - 4, -2, 4, 2 - }; - - - -#define TQCOORDARRLEN(x) sizeof(x)/(sizeof(TQCOORD)*2) - - - -#endif diff --git a/kstyles/keramik/colorutil.cpp b/kstyles/keramik/colorutil.cpp deleted file mode 100644 index 81d5eeb7a..000000000 --- a/kstyles/keramik/colorutil.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/* Keramik Style for KDE3, color utility routines.. - Copyright (c) 2002 Malte Starostik <malte@kde.org> - (c) 2002 Maksim Orlovich <mo002j@mail.rochester.edu> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -// $Id$ - -#include <tqcolor.h> - -#include "colorutil.h" - -namespace Keramik -{ - TQColor ColorUtil::lighten(TQColor in, int factor) - { - if (factor > 100) - { - int h, s, v; - in.hsv(&h, &s, &v); - - float mShare = v/230.0; - if (mShare > 1) mShare = 1; - - mShare *= mShare; - - int diff = factor - 100; - int hd = int(mShare*diff); - int delta = int((diff - hd)*7.55); - - TQColor wrk = in.light(100+hd); - - int r = wrk.red(); - int g = wrk.green(); - int b = wrk.blue(); - - r+=delta; - g+=delta; - b+=delta; - - if (r>255) r=255; - if (g>255) g=255; - if (b>255) b=255; - - return TQColor(r,g,b); - } - - return in; - } -} - -// vim: ts=4 sw=4 noet diff --git a/kstyles/keramik/colorutil.h b/kstyles/keramik/colorutil.h deleted file mode 100644 index 7bffe75f1..000000000 --- a/kstyles/keramik/colorutil.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Keramik Style for KDE3, color utility routines... - Copyright (c) 2002 Malte Starostik <malte@kde.org> - (c) 2002 Maksim Orlovich <mo002j@mail.rochester.edu> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -// $Id$ - -#ifndef KERAMIK_COLORUTIL_H -#define KERAMIK_COLORUTIL_H - -class TQPainter; - - -namespace Keramik -{ - class ColorUtil - { - public: - static TQColor lighten(TQColor in, int factor); - }; -} - -#endif diff --git a/kstyles/keramik/genembed.cpp b/kstyles/keramik/genembed.cpp deleted file mode 100644 index 18608205d..000000000 --- a/kstyles/keramik/genembed.cpp +++ /dev/null @@ -1,387 +0,0 @@ -/** -A small utility to generate embedded images for Keramik, especially structured for easy recoloring... - -Copyright (c) 2002 Maksim Orlovich <mo002j@mail.rochester.edu> - -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 <tqfileinfo.h> -#include <tqimage.h> -#include <tqmap.h> -#include <tqregexp.h> -#include <tqtextstream.h> -#include <tqvaluevector.h> - -#include <kimageeffect.h> - -#include <iostream> -using namespace std; - -#include <string.h> -#include <math.h> - -//NOTE: Use of old-style header is intentional for portability. See revisions 1.6 and 1.7 - -//Force-touch-embedded-revision: 2 - -#include "keramikimage.h" - -/** -Need to generate something like this: -TargetColorAlpha, GreyAdd, SrcAlpha; - -so that one can do (R*T+GreyAdd, G*T+GreyAdd, B*T+GreyAdd, SrcAlpha) as pixel values -*/ - - -int evalSuffix(TQString suffix) -{ - if (suffix == "-tl") - return 0; - - if (suffix == "-tc") - return 1; - - if (suffix == "-tr") - return 2; - - if (suffix == "-cl") - return 3; - - if (suffix == "-cc") - return 4; - - if (suffix == "-cr") - return 5; - - if (suffix == "-bl") - return 6; - - if (suffix == "-bc") - return 7; - - if (suffix == "-br") - return 8; - - if (suffix == "-separator") - return KeramikTileSeparator; - - if (suffix == "-slider1") - return KeramikSlider1; - - if (suffix == "-slider2") - return KeramikSlider2; - - if (suffix == "-slider3") - return KeramikSlider3; - - if (suffix == "-slider4") - return KeramikSlider4; - - if (suffix == "-groove1") - return KeramikGroove1; - - if (suffix == "-groove2") - return KeramikGroove2; - - if (suffix == "-1") - return 1; - - if (suffix == "-2") - return 2; - - if (suffix == "-3") - return 3; - - return -1; -} - - -int main(int argc, char** argv) -{ - if (argc < 2) - return 0; - - TQValueVector<KeramikEmbedImage> images; - - cout<<"#include <tqintdict.h>\n\n"; - cout<<"#include \"keramikimage.h\"\n\n"; - - TQMap<TQString, int> assignID; - int nextID = 0; - - for (int c = 1; c<argc; c++) - { - - TQImage input(argv[c]); - - - TQFileInfo fi(argv[c]); - TQString s = fi.baseName(); - - KeramikEmbedImage image; - - int pos; - - TQString id = s; - - int readJustID = 0; - - - if ((pos = s.findRev("-")) != -1) - { - int suffix = evalSuffix(s.mid(pos)); - if (suffix !=-1 ) - { - id = s.mid(0,pos); - readJustID = suffix; - } - } - - if (!assignID.contains(id)) - { - assignID[id] = nextID; - nextID += 256; - } - - s.replace("-","_"); - - - if (s.contains("button")) - KImageEffect::contrastHSV(input); - - int fullID = assignID[id] + readJustID;//Subwidget.. - - bool highlights = true; - bool shadows = true; - - float gamma = 1.0; - int brightAdj = 0; - - - - if (s.contains("toolbar") || s.contains("tab-top-active") || s.contains("menubar") ) - { -// highlights = false; - gamma = 1/1.25f; - //brightAdj = 10; - shadows = false; - } - - if (s.contains("scrollbar") && s.contains("groove")) - { - //highlights = false; - //gamma = 1.5; - shadows = false; - } - //brightAdj = -10; - - if (s.contains("scrollbar") && s.contains("slider")) - { - //highlights = false; - gamma =1/0.7f; - //shadows = false; - } - - - if (s.contains("menuitem")) - { - //highlights = false; - gamma =1/0.6f; - //shadows = false; - } - - image.width = input.width(); - image.height = input.height(); - image.id = fullID; - image.data = reinterpret_cast<unsigned char*>(strdup(s.latin1())); - - - bool reallySolid = true; - - int pixCount = 0; - int pixSolid = 0; - - cout<<"static const unsigned char "<<s.latin1()<<"[]={\n"; - - TQ_UINT32* read = reinterpret_cast< TQ_UINT32* >(input.bits() ); - int size = input.width()*input.height(); - - for (int pos=0; pos<size; pos++) - { - QRgb basePix = (QRgb)*read; - - if (tqAlpha(basePix) != 255) - reallySolid = false; - else - pixSolid++; - - pixCount++; - read++; - } - - image.haveAlpha = !reallySolid; - - images.push_back(image); - - read = reinterpret_cast< TQ_UINT32* >(input.bits() ); - for (int pos=0; pos<size; pos++) - { - QRgb basePix = (QRgb)*read; - //cout<<(r*destAlpha.alphas[pos])<<"\n"; - //cout<<(int)destAlpha.alphas[pos]<<"\n"; - TQColor clr(basePix); - int h,s,v; - clr.hsv(&h,&s,&v); - - v=tqGray(basePix); - - int targetColorAlpha = 0 , greyAdd = 0; - //int srcAlpha = tqAlpha(basePix); - - if (s>0 || v > 128) - { //Non-shadow - float fv = v/255.0; - fv = pow(fv, gamma); - v = int(255.5*fv); - - - if (s<17 && highlights) //A bit of a highligt.. - { - float effectPortion = (16 - s)/15.0; - - greyAdd = (int)(v/4.0 * effectPortion*1.2); - targetColorAlpha = v - greyAdd; - } - else - { - targetColorAlpha = v;//(int)(fv*255); - greyAdd = 0; - } - } - else - { - if (shadows) - { - targetColorAlpha = 0; - greyAdd = v; - } - else - { - targetColorAlpha = v;//(int)(fv*255); - greyAdd = 0; - } - } - - greyAdd+=brightAdj; - - if (reallySolid) - cout<<targetColorAlpha<<","<<greyAdd<<","; - else - cout<<targetColorAlpha<<","<<greyAdd<<","<<tqAlpha(basePix)<<","; - //cout<<tqRed(basePix)<<","<<tqGreen(basePix)<<","<<tqBlue(basePix)<<","<<tqAlpha(basePix)<<","; - - if (pos%8 == 7) - cout<<"\n"; - - read++; - } - - cerr<<s.latin1()<<":"<<pixSolid<<"/"<<pixCount<<"("<<reallySolid<<")\n"; - - cout<<!reallySolid<<"\n"; - - cout<<"};\n\n"; - } - - cout<<"static const KeramikEmbedImage image_db[] = {\n"; - - for (unsigned int c=0; c<images.size(); c++) - { - cout<<"\t{ "<<(images[c].haveAlpha?"true":"false")<<","<<images[c].width<<", "<<images[c].height<<", "<<images[c].id<<", "<<(char *)images[c].data<<"},"; - cout<<"\n"; - } - cout<<"\t{0, 0, 0, 0, 0}\n"; - cout<<"};\n\n"; - - cout<<"class KeramikImageDb\n"; - cout<<"{\n"; - cout<<"public:\n"; - cout<<"\tstatic KeramikImageDb* getInstance()\n"; - cout<<"\t{\n"; - cout<<"\t\tif (!instance) instance = new KeramikImageDb;\n"; - cout<<"\t\treturn instance;\n"; - cout<<"\t}\n\n"; - cout<<"\tstatic void release()\n"; - cout<<"\t{\n"; - cout<<"\t\tdelete instance;\n"; - cout<<"\t\tinstance=0;\n"; - cout<<"\t}\n\n"; - cout<<"\tKeramikEmbedImage* getImage(int id)\n"; - cout<<"\t{\n"; - cout<<"\t\treturn images[id];\n"; - cout<<"\t}\n\n"; - cout<<"private:\n"; - cout<<"\tKeramikImageDb():images(503)\n"; - cout<<"\t{\n"; - cout<<"\t\tfor (int c=0; image_db[c].width; c++)\n"; - cout<<"\t\t\timages.insert(image_db[c].id, &image_db[c]);\n"; - cout<<"\t}\n"; - cout<<"\tstatic KeramikImageDb* instance;\n"; - cout<<"\tTQIntDict<KeramikEmbedImage> images;\n"; - cout<<"};\n\n"; - cout<<"KeramikImageDb* KeramikImageDb::instance = 0;\n\n"; - - cout<<"KeramikEmbedImage* KeramikGetDbImage(int id)\n"; - cout<<"{\n"; - cout<<"\treturn KeramikImageDb::getInstance()->getImage(id);\n"; - cout<<"}\n\n"; - - cout<<"void KeramikDbCleanup()\n"; - cout<<"{\n"; - cout<<"\t\tKeramikImageDb::release();\n"; - cout<<"}\n"; - - - - - TQFile file("keramikrc.h"); - file.open(IO_WriteOnly); - TQTextStream ts( &file); - ts<<"#ifndef KERAMIK_RC_H\n"; - ts<<"#define KERAMIK_RC_H\n"; - - ts<<"enum KeramikWidget {\n"; - for (TQMap<TQString, int>::iterator i = assignID.begin(); i != assignID.end(); ++i) - { - TQString name = "keramik_"+i.key(); - name.replace("-","_"); - ts<<"\t"<<name<<" = "<<i.data()<<",\n"; - } - ts<<"\tkeramik_last\n"; - ts<<"};\n"; - - ts<<"#endif\n"; - - return 0; -} - -// vim: ts=4 sw=4 noet diff --git a/kstyles/keramik/gradients.cpp b/kstyles/keramik/gradients.cpp deleted file mode 100644 index ab804d117..000000000 --- a/kstyles/keramik/gradients.cpp +++ /dev/null @@ -1,179 +0,0 @@ -/* Keramik Style for KDE3, gradient routines.. - Copyright (c) 2002 Malte Starostik <malte@kde.org> - (c) 2002 Maksim Orlovich <mo002j@mail.rochester.edu> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -// $Id$ - -#include <tqpainter.h> -#include <tqrect.h> -#include <tqcolor.h> - -#include "gradients.h" -#include "colorutil.h" - -#include <tqimage.h> -#include <tqintcache.h> -#include <kimageeffect.h> - -namespace -{ - struct GradientCacheEntry - { - TQPixmap* m_pixmap; - QRgb m_color; - bool m_menu; - int m_width; - int m_height; - - GradientCacheEntry(int width, int height, const TQColor& color, bool menu): - m_pixmap(0), m_color(color.rgb()), m_menu(menu), m_width(width), m_height(height) - {} - - int key() - { - return (int)m_menu ^ m_width ^ (m_height << 16) ^ ((m_color)<<8); - } - - bool operator == (const GradientCacheEntry& other) - { - return ((m_width == other.m_width) && - (m_height == other.m_height) && - (m_menu == other.m_menu) && - (m_color == other.m_color)); - } - - ~GradientCacheEntry() - { - delete m_pixmap; - } - - }; - - - TQIntCache<GradientCacheEntry> cache(65636, 17); - -} - -using namespace Keramik; - -void GradientPainter::releaseCache() -{ - cache.clear(); -} - -void GradientPainter::renderGradient( TQPainter* p, const TQRect& r, TQColor c, - bool horizontal, bool menu, int px, int py, - int pwidth, int pheight) -{ - int width = r.width(), height = r.height(); - if (pwidth != -1) width = pwidth; - if (pheight != -1) height = pheight; - - if (horizontal) - width = 18; - else - height = 18; - - GradientCacheEntry entry (width, height, c, menu); - GradientCacheEntry* cacheEntry = 0; - - cache.setAutoDelete(true); - - int key = entry.key(); - - if ((cacheEntry = cache.find(key, false))) - { - if (entry == *cacheEntry) - { - p->drawTiledPixmap(r, *cacheEntry->m_pixmap, horizontal? TQPoint(0,py): TQPoint(px,0)); - return; - } - else - cache.remove(key); - //Remove old entry in case of conflicts.. otherwise we end up w/unreachable items in cache - } - - - if (horizontal) - { - TQPixmap* pix = new TQPixmap(18, height); - - if (menu) - { - TQImage gr = KImageEffect::gradient(TQSize(4,height), c.light(93), ColorUtil::lighten(c,109), KImageEffect::VerticalGradient ); - TQPixmap grT(gr); - TQPainter p2(pix); - p2.drawTiledPixmap(0,0, 18, height, grT); - p2.end(); - } - else - { - int h1 = 3 * height/4; - int h2 = height - h1; - - TQImage top = KImageEffect::gradient(TQSize(4,h1), ColorUtil::lighten(c,110), c.light(94), KImageEffect::VerticalGradient ); - TQImage bot = KImageEffect::gradient(TQSize(4,h2), c.light(94), ColorUtil::lighten(c,109), KImageEffect::VerticalGradient ); - - TQPixmap topT(top); - TQPixmap botT(bot); - - TQPainter p2(pix); - p2.drawTiledPixmap(0, 0, 18, h1, topT); - p2.drawTiledPixmap(0, h1, 18, h2, botT); - p2.end(); - } - - entry.m_pixmap = pix; - } - else - { - TQPixmap* pix = new TQPixmap(width, 18); - - int h1 = 3 * width/4; - int h2 = width - h1; - - TQImage top = KImageEffect::gradient(TQSize(h1,4), ColorUtil::lighten(c,110), c.light(94), KImageEffect::HorizontalGradient ); - TQImage bot = KImageEffect::gradient(TQSize(h2,4), c.light(94), ColorUtil::lighten(c,109), KImageEffect::HorizontalGradient ); - - TQPixmap topT(top); - TQPixmap botT(bot); - - TQPainter p2(pix); - p2.drawTiledPixmap(0, 0, h1, 18, topT); - p2.drawTiledPixmap(h1, 0, h2, 18, botT); - p2.end(); - - entry.m_pixmap = pix; - - } - - bool cacheOK = false; - GradientCacheEntry* imgToAdd = new GradientCacheEntry(entry); - cacheOK = cache.insert(imgToAdd->key(), imgToAdd, - imgToAdd->m_pixmap->width() * imgToAdd->m_pixmap->height()* - imgToAdd->m_pixmap->depth()/8); - - p->drawTiledPixmap(r, *imgToAdd->m_pixmap, horizontal? TQPoint(0,py): TQPoint(px,0)); - - if (!cacheOK) - delete imgToAdd; - - entry.m_pixmap = 0;//Don't free too early.. -} - -// vim: ts=4 sw=4 noet diff --git a/kstyles/keramik/gradients.h b/kstyles/keramik/gradients.h deleted file mode 100644 index 8a9a17425..000000000 --- a/kstyles/keramik/gradients.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Keramik Style for KDE3, gradient routines.. - Copyright (c) 2002 Malte Starostik <malte@kde.org> - (c) 2002 Maksim Orlovich <mo002j@mail.rochester.edu> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -// $Id$ - -#ifndef KERAMIK_GRADIENTS_H -#define KERAMIK_GRADIENTS_H - -class TQPainter; - - -namespace Keramik -{ - class GradientPainter - { - public: - static void renderGradient( TQPainter* p, const TQRect& r, TQColor cr, - bool horizontal, bool menu = false, - int px = 0, int py = 0, int pwidth = -1, int pheight = -1 ); - - static void releaseCache(); - }; -} - -#endif diff --git a/kstyles/keramik/keramik.cpp b/kstyles/keramik/keramik.cpp deleted file mode 100644 index fa1848203..000000000 --- a/kstyles/keramik/keramik.cpp +++ /dev/null @@ -1,3004 +0,0 @@ -/* Keramik Style for KDE3 - Copyright (c) 2002 Malte Starostik <malte@kde.org> - (c) 2002,2003 Maksim Orlovich <mo002j@mail.rochester.edu> - - based on the KDE3 HighColor Style - - Copyright (C) 2001-2002 Karol Szwed <gallium@kde.org> - (C) 2001-2002 Fredrik H�glund <fredrik@kde.org> - - Drawing routines adapted from the KDE2 HCStyle, - Copyright (C) 2000 Daniel M. Duley <mosfet@kde.org> - (C) 2000 Dirk Mueller <mueller@kde.org> - (C) 2001 Martijn Klingens <klingens@kde.org> - - Progressbar code based on TDEStyle, Copyright (C) 2001-2002 Karol Szwed <gallium@kde.org>, - Improvements to progressbar animation from Plastik, Copyright (C) 2003 Sandro Giessl <sandro@giessl.com> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -// $Id$ - -#include <tqapplication.h> -#include <tqbitmap.h> -#include <tqcheckbox.h> -#include <tqcombobox.h> -#include <tqdrawutil.h> -#include <tqframe.h> -#include <tqheader.h> -#include <tqintdict.h> -#include <tqlineedit.h> -#include <tqlistbox.h> -#include <tqmenubar.h> -#include <tqpainter.h> -#include <tqpointarray.h> -#include <tqprogressbar.h> -#include <tqpushbutton.h> -#include <tqsettings.h> -#include <tqslider.h> -#include <tqstyleplugin.h> -#include <tqtabbar.h> -#include <tqtimer.h> -#include <tqtoolbar.h> -#include <tqtoolbutton.h> - -#include <kpixmap.h> -#include <kpixmapeffect.h> - -#include "keramik.moc" - -#include "gradients.h" -#include "colorutil.h" -#include "keramikrc.h" -#include "keramikimage.h" - -#include "bitmaps.h" -#include "pixmaploader.h" - -#define loader Keramik::PixmapLoader::the() - -// -- Style Plugin Interface ------------------------- -class KeramikStylePlugin : public TQStylePlugin -{ -public: - KeramikStylePlugin() {} - ~KeramikStylePlugin() {} - - TQStringList keys() const - { - if (TQPixmap::defaultDepth() > 8) - return TQStringList() << "Keramik"; - else - return TQStringList(); - } - - TQStyle* create( const TQString& key ) - { - if ( key == "keramik" ) return new KeramikStyle(); - return 0; - } -}; - -KDE_Q_EXPORT_PLUGIN( KeramikStylePlugin ) -// --------------------------------------------------- - - -// ### Remove globals -/* -TQBitmap lightBmp; -TQBitmap grayBmp; -TQBitmap dgrayBmp; -TQBitmap centerBmp; -TQBitmap maskBmp; -TQBitmap xBmp; -*/ -namespace -{ - const int itemFrame = 2; - const int itemHMargin = 6; - const int itemVMargin = 0; - const int arrowHMargin = 6; - const int rightBorder = 12; - const char* kdeToolbarWidget = "kde toolbar widget"; - - const int smallButMaxW = 27; - const int smallButMaxH = 20; - const int titleBarH = 22; -} -// --------------------------------------------------------------------------- - -namespace -{ - void drawKeramikArrow(TQPainter* p, TQColorGroup cg, TQRect r, TQStyle::TQ_PrimitiveElement pe, bool down, bool enabled) - { - TQPointArray a; - - switch(pe) - { - case TQStyle::PE_ArrowUp: - a.setPoints(TQCOORDARRLEN(keramik_up_arrow), keramik_up_arrow); - break; - - case TQStyle::PE_ArrowDown: - a.setPoints(TQCOORDARRLEN(keramik_down_arrow), keramik_down_arrow); - break; - - case TQStyle::PE_ArrowLeft: - a.setPoints(TQCOORDARRLEN(keramik_left_arrow), keramik_left_arrow); - break; - - default: - a.setPoints(TQCOORDARRLEN(keramik_right_arrow), keramik_right_arrow); - } - - p->save(); - /*if ( down ) - p->translate( pixelMetric( PM_ButtonShiftHorizontal, ceData, elementFlags ), - pixelMetric( PM_ButtonShiftVertical, ceData, elementFlags ) ); - */ - - if ( enabled ) { - //CHECKME: Why is the -1 needed? - a.translate( r.x() + r.width() / 2 - 1, r.y() + r.height() / 2 ); - - if (!down) - p->setPen( cg.buttonText() ); - else - p->setPen ( cg.button() ); - p->drawLineSegments( a ); - } else { - a.translate( r.x() + r.width() / 2, r.y() + r.height() / 2 + 1 ); - p->setPen( cg.light() ); - p->drawLineSegments( a ); - a.translate( -1, -1 ); - p->setPen( cg.mid() ); - p->drawLineSegments( a ); - } - p->restore(); - } -} - -// XXX -/* reimp. */ -void KeramikStyle::renderMenuBlendPixmap( KPixmap& pix, const TQColorGroup &cg, - const TQPopupMenu* /* popup */ ) const -{ - TQColor col = cg.button(); - -#ifdef Q_WS_X11 // Only draw menu gradients on TrueColor, X11 visuals - if ( TQPaintDevice::x11AppDepth() >= 24 ) - KPixmapEffect::gradient( pix, col.light(120), col.dark(115), - KPixmapEffect::HorizontalGradient ); - else -#endif - pix.fill( col ); -} - -// XXX -TQRect KeramikStyle::subRect(SubRect r, const TQStyleControlElementData &ceData, const ControlElementFlags elementFlags, const TQWidget *widget) const -{ - // We want the focus rect for buttons to be adjusted from - // the Qt3 defaults to be similar to Qt 2's defaults. - // ------------------------------------------------------------------- - switch ( r ) - { - case SR_PushButtonFocusRect: - { - TQRect wrect(ceData.rect); - - if ((elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault)) - { - return TQRect(wrect.x() + 6, wrect.y() + 5, wrect.width() - 12, wrect.height() - 10); - } - else - { - return TQRect(wrect.x() + 3, wrect.y() + 5, wrect.width() - 8, wrect.height() - 10); - } - - break; - } - - case SR_ComboBoxFocusRect: - { - return querySubControlMetrics( CC_ComboBox, ceData, elementFlags, SC_ComboBoxEditField, TQStyleOption::Default, widget ); - } - - case SR_CheckBoxFocusRect: - { - //Only checkbox, no label - if (ceData.text.isEmpty() && (ceData.fgPixmap.isNull()) ) - { - TQRect bounding = ceData.rect; - TQSize checkDim = loader.size( keramik_checkbox_on); - int cw = checkDim.width(); - int ch = checkDim.height(); - - TQRect checkbox(bounding.x() + 1, bounding.y() + 1 + (bounding.height() - ch)/2, - cw - 3, ch - 4); - - return checkbox; - } - - //Fallthrough intentional - } - - default: - return TDEStyle::subRect( r, ceData, elementFlags, widget ); - } -} - - -TQPixmap KeramikStyle::stylePixmap(StylePixmap stylepixmap, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQStyleOption& opt, - const TQWidget* widget) const -{ - switch (stylepixmap) { - case SP_TitleBarMinButton: - return Keramik::PixmapLoader::the().pixmap(keramik_title_iconify, - Qt::black, Qt::black, false, false); - //return qpixmap_from_bits( iconify_bits, "title-iconify.png" ); - case SP_TitleBarMaxButton: - return Keramik::PixmapLoader::the().pixmap(keramik_title_maximize, - Qt::black, Qt::black, false, false); - case SP_TitleBarCloseButton: - if (widget && widget->inherits("KDockWidgetHeader")) - return Keramik::PixmapLoader::the().pixmap(keramik_title_close_tiny, - Qt::black, Qt::black, false, false); - else return Keramik::PixmapLoader::the().pixmap(keramik_title_close, - Qt::black, Qt::black, false, false); - case SP_TitleBarNormalButton: - return Keramik::PixmapLoader::the().pixmap(keramik_title_restore, - Qt::black, Qt::black, false, false); - default: - break; - } - - return TDEStyle::stylePixmap(stylepixmap, ceData, elementFlags, opt, widget); -} - - - - -KeramikStyle::KeramikStyle() - :TDEStyle( AllowMenuTransparency | FilledFrameWorkaround, ThreeButtonScrollBar ), - maskMode(false), formMode(false), - toolbarBlendWidget(0), titleBarMode(None), flatMode(false), customScrollMode(false), kickerMode(false) -{ - forceSmallMode = false; - - TQSettings settings; - - highlightScrollBar = settings.readBoolEntry("/keramik/Settings/highlightScrollBar", true); - animateProgressBar = settings.readBoolEntry("/keramik/Settings/animateProgressBar", false); - - if (animateProgressBar) - { - animationTimer = new TQTimer( this ); - connect( animationTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(updateProgressPos()) ); - } - - firstComboPopupRelease = false; -} - -void KeramikStyle::updateProgressPos() -{ - //Update the registered progressbars. - TQMap<TQProgressBar*, int>::iterator iter; - bool visible = false; - for (iter = progAnimWidgets.begin(); iter != progAnimWidgets.end(); ++iter) - { - TQProgressBar* pbar = iter.key(); - if (pbar->isVisible() && pbar->isEnabled() && - pbar->progress() != pbar->totalSteps()) - { - ++iter.data(); - if (iter.data() == 28) - iter.data() = 0; - iter.key()->update(); - } - if (iter.key()->isVisible()) - visible = true; - - } - if (!visible) - animationTimer->stop(); -} - -KeramikStyle::~KeramikStyle() -{ - Keramik::PixmapLoader::release(); - Keramik::GradientPainter::releaseCache(); - KeramikDbCleanup(); -} - -void KeramikStyle::applicationPolish(const TQStyleControlElementData &ceData, ControlElementFlags, void *ptr) -{ - if (ceData.widgetObjectTypes.contains(TQAPPLICATION_OBJECT_NAME_STRING)) { - TQApplication *app = reinterpret_cast<TQApplication*>(ptr); - if (!qstrcmp(app->argv()[0], "kicker")) { - kickerMode = true; - } - } -} - -void KeramikStyle::polish(const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void *ptr) -{ - if (ceData.widgetObjectTypes.contains(TQWIDGET_OBJECT_NAME_STRING)) { - TQWidget *widget = reinterpret_cast<TQWidget*>(ptr); - - // Put in order of highest occurrence to maximise hit rate - if ( widget->inherits( TQPUSHBUTTON_OBJECT_NAME_STRING ) || widget->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) || widget->inherits(TQTOOLBUTTON_OBJECT_NAME_STRING) ) - { - installObjectEventHandler(ceData, elementFlags, ptr, this); - if ( widget->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) - widget->setBackgroundMode( NoBackground ); - } - else if ( widget->inherits( TQMENUBAR_OBJECT_NAME_STRING ) || widget->inherits( TQPOPUPMENU_OBJECT_NAME_STRING ) ) - widget->setBackgroundMode( NoBackground ); - - else if ( widget->parentWidget() && - ( ( widget->inherits( TQLISTBOX_OBJECT_NAME_STRING ) && widget->parentWidget()->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) || - widget->inherits( "TDECompletionBox" ) ) ) { - TQListBox* listbox = (TQListBox*) widget; - listbox->setLineWidth( 4 ); - listbox->setBackgroundMode( NoBackground ); - installObjectEventHandler(ceData, elementFlags, ptr, this); - - } else if (widget->inherits("QToolBarExtensionWidget")) { - installObjectEventHandler(ceData, elementFlags, ptr, this); - //widget->setBackgroundMode( NoBackground ); - } - else if ( !qstrcmp( widget->name(), kdeToolbarWidget ) ) { - widget->setBackgroundMode( NoBackground ); - installObjectEventHandler(ceData, elementFlags, ptr, this); - } - - if (animateProgressBar && ::tqqt_cast<TQProgressBar*>(widget)) - { - installObjectEventHandler(ceData, elementFlags, ptr, this); - progAnimWidgets[static_cast<TQProgressBar*>(widget)] = 0; - connect(widget, TQT_SIGNAL(destroyed(TQObject*)), this, TQT_SLOT(progressBarDestroyed(TQObject*))); - if (!animationTimer->isActive()) - animationTimer->start( 50, false ); - } - } - - TDEStyle::polish(ceData, elementFlags, ptr); -} - -void KeramikStyle::unPolish(const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void *ptr) -{ - if (ceData.widgetObjectTypes.contains(TQWIDGET_OBJECT_NAME_STRING)) { - TQWidget *widget = reinterpret_cast<TQWidget*>(ptr); - - //### TODO: This needs major cleanup (and so does polish() ) - if ( widget->inherits( TQPUSHBUTTON_OBJECT_NAME_STRING ) || widget->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) - { - if ( widget->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) - widget->setBackgroundMode( PaletteButton ); - removeObjectEventHandler(ceData, elementFlags, ptr, this); - } - else if ( widget->inherits( TQMENUBAR_OBJECT_NAME_STRING ) || widget->inherits( TQPOPUPMENU_OBJECT_NAME_STRING ) ) - widget->setBackgroundMode( PaletteBackground ); - - else if ( widget->parentWidget() && - ( ( widget->inherits( TQLISTBOX_OBJECT_NAME_STRING ) && widget->parentWidget()->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) || - widget->inherits( "TDECompletionBox" ) ) ) { - TQListBox* listbox = (TQListBox*) widget; - listbox->setLineWidth( 1 ); - listbox->setBackgroundMode( PaletteBackground ); - removeObjectEventHandler(ceData, elementFlags, ptr, this); - widget->clearMask(); - } else if (widget->inherits("QToolBarExtensionWidget")) { - removeObjectEventHandler(ceData, elementFlags, ptr, this); - } - else if ( !qstrcmp( widget->name(), kdeToolbarWidget ) ) { - widget->setBackgroundMode( PaletteBackground ); - removeObjectEventHandler(ceData, elementFlags, ptr, this); - } - else if ( ::tqqt_cast<TQProgressBar*>(widget) ) - { - progAnimWidgets.remove(static_cast<TQProgressBar*>(widget)); - } - } - - TDEStyle::unPolish(ceData, elementFlags, ptr); -} - -void KeramikStyle::progressBarDestroyed(TQObject* obj) -{ - progAnimWidgets.remove(static_cast<TQProgressBar*>(TQT_TQWIDGET(obj))); -} - - -void KeramikStyle::polish( TQPalette& ) -{ - loader.clear(); -} - -/** - Draws gradient background for toolbar buttons, handles and spacers -*/ -static void renderToolbarEntryBackground(TQPainter* paint, - const TQToolBar* parent, TQRect r, const TQColorGroup& cg, bool horiz) -{ - int toolWidth, toolHeight; - - //Do we have a parent toolbar to use? - if (parent) - { - //Calculate the toolbar geometry. - //The initial guess is the size of the parent widget - toolWidth = parent->width(); - toolHeight = parent->height(); - - //If we're floating, however, wee need to fiddle - //with height to skip the titlebar - if (parent->place() == TQDockWindow::OutsideDock) - { - toolHeight = toolHeight - titleBarH - 2*parent->frameWidth() + 2; - //2 at the end = the 2 pixels of border of a "regular" - //toolbar we normally paint over. - } - } - else - { - //No info, make a guess. - //We take the advantage of the fact that the non-major - //sizing direction parameter is ignored - toolWidth = r.width () + 2; - toolHeight = r.height() + 2; - } - - //Calculate where inside the toolbar we're - int xoff = 0, yoff = 0; - if (horiz) - yoff = (toolHeight - r.height())/2; - else - xoff = (toolWidth - r.width())/2; - - Keramik::GradientPainter::renderGradient( paint, r, cg.button(), - horiz, false /*Not a menubar*/, - xoff, yoff, - toolWidth, toolHeight); -} - -static void renderToolbarWidgetBackground(TQPainter* painter, const TQStyleControlElementData &ceData, const TQStyle::ControlElementFlags elementFlags, const TQWidget* widget) -{ - // Draw a gradient background for custom widgets in the toolbar - // that have specified a "kde toolbar widget" name, or - // are caught as toolbar widgets otherwise - - // Find the top-level toolbar of this widget, since it may be nested in other - // widgets that are on the toolbar. - TQWidget *parent = (widget)?TQT_TQWIDGET(widget->parentWidget()):(TQWidget*)NULL; - int x_offset = ceData.rect.x(), y_offset = ceData.rect.y(); - while (parent && parent->parent() && !qstrcmp( parent->name(), kdeToolbarWidget ) ) - { - x_offset += parent->x(); - y_offset += parent->y(); - parent = TQT_TQWIDGET(parent->parent()); - } - - TQRect pr = ceData.parentWidgetData.rect; - bool horiz_grad = pr.width() > pr.height(); - - int toolHeight = ceData.parentWidgetData.rect.height(); - int toolWidth = ceData.parentWidgetData.rect.width (); - - // Check if the parent is a QToolbar, and use its orientation, else guess. - //Also, get the height to use in the gradient from it. - TQToolBar* tb = dynamic_cast<TQToolBar*>(parent); - if (tb) - { - horiz_grad = ceData.orientation == TQt::Horizontal; - - //If floating, we need to skip the titlebar. - if (tb->place() == TQDockWindow::OutsideDock) - { - toolHeight = tb->height() - titleBarH - 2*tb->frameWidth() + 2; - //Calculate offset here by looking at the bottom edge difference, and height. - //First, calculate by how much the widget needs to be extended to touch - //the bottom edge, minus the frame (except we use the current y_offset - // to map to parent coordinates) - int needToTouchBottom = tb->height() - tb->frameWidth() - - (ceData.rect.bottom() + y_offset); - - //Now, with that, we can see which portion to skip in the full-height - //gradient -- which is the stuff other than the extended - //widget - y_offset = toolHeight - (ceData.rect.height() + needToTouchBottom) - 1; - } - } - - if (painter) - { - Keramik::GradientPainter::renderGradient( painter, ceData.rect, - ceData.colorGroup.button(), horiz_grad, false, - x_offset, y_offset, toolWidth, toolHeight); - } - else - { - TQPainter p( widget ); - Keramik::GradientPainter::renderGradient( &p, ceData.rect, - ceData.colorGroup.button(), horiz_grad, false, - x_offset, y_offset, toolWidth, toolHeight); - } -} - -// This function draws primitive elements as well as their masks. -void KeramikStyle::drawPrimitive( TQ_PrimitiveElement pe, - TQPainter *p, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt ) const -{ - bool down = flags & Style_Down; - bool on = flags & Style_On; - bool active = flags & Style_Active; - bool disabled = ( flags & Style_Enabled ) == 0; - int x, y, w, h; - r.rect(&x, &y, &w, &h); - - int x2 = x+w-1; - int y2 = y+h-1; - - switch(pe) - { - // BUTTONS - // ------------------------------------------------------------------- - case PE_ButtonDefault: - { - bool sunken = on || down; - - int id; - if ( sunken ) id = keramik_pushbutton_default_pressed; - else id = keramik_pushbutton_default; - - if (flags & Style_MouseOver && id == keramik_pushbutton_default ) - id = keramik_pushbutton_default_hov; - - - //p->fillRect( r, cg.background() ); - Keramik::RectTilePainter( id, false ).draw(p, r, cg.button(), cg.background(), disabled, pmode() ); - break; - } - - case PE_ButtonDropDown: - case PE_ButtonTool: - { - if (titleBarMode) - { - TQRect nr; - if (titleBarMode == Maximized) - { - //### What should we draw at sides? - nr = TQRect(r.x(), r.y(), r.width()-1, r.height() ); - } - else - { - int offX = (r.width() - 15)/2; - int offY = (r.height() - 15)/2; - - if (flags & Style_Down) - offY += 1; - - nr = TQRect(r.x()+offX, r.y()+offY, 15, 15); - } - - Keramik::ScaledPainter(flags & Style_Down ? keramik_titlebutton_pressed : keramik_titlebutton, - Keramik::ScaledPainter::Both).draw( p, nr, cg.button(), cg.background()); - return; - } - - if (on) - { - Keramik::RectTilePainter(keramik_toolbar_clk).draw(p, r, cg.button(), cg.background()); - p->setPen(cg.dark()); - p->drawLine(x, y, x2, y); - p->drawLine(x, y, x, y2); - } - else if (down) - { - Keramik::RectTilePainter(keramik_toolbar_clk).draw(p, r, cg.button(), cg.background()); - } - else { - if (flags & Style_MouseOver) - { - Keramik::GradientPainter::renderGradient( p, - TQRect(r.x(), 0, r.width(), r.height()), - Keramik::ColorUtil::lighten(cg.button(), 115), flags & Style_Horizontal, false ); - } - else - Keramik::GradientPainter::renderGradient( p, - TQRect(r.x(), 0, r.width(), r.height()), - cg.button(), flags & Style_Horizontal, false ); - - p->setPen(cg.button().light(70)); - p->drawLine(x, y, x2-1, y); - p->drawLine(x, y, x, y2-1); - p->drawLine(x+2, y2-1, x2-1, y2-1); - p->drawLine(x2-1, y+2, x2-1, y2-2); - - p->setPen(Keramik::ColorUtil::lighten(cg.button(), 115) ); - p->drawLine(x+1, y+1, x2-1, y+1); - p->drawLine(x+1, y+1, x+1, y2); - p->drawLine(x, y2, x2, y2); - p->drawLine(x2, y, x2, y2); - } - - break; - } - - // PUSH BUTTON - // ------------------------------------------------------------------- - case PE_ButtonCommand: - { - bool sunken = on || down; - - int name; - - if ( w <= smallButMaxW || h <= smallButMaxH || forceSmallMode) - { - if (sunken) - name = keramik_pushbutton_small_pressed; - else - name = keramik_pushbutton_small; - forceSmallMode = false; - } - else - { - if (sunken) - name = keramik_pushbutton_pressed; - else - name = keramik_pushbutton; - } - - if (flags & Style_MouseOver && name == keramik_pushbutton ) - name = keramik_pushbutton_hov; - - if (toolbarBlendWidget && !flatMode ) - { - //Render the toolbar gradient. - renderToolbarWidgetBackground(p, ceData, elementFlags, toolbarBlendWidget); - - //Draw and blend the actual bevel.. - Keramik::RectTilePainter( name, false ).draw(p, r, cg.button(), cg.background(), - disabled, Keramik::TilePainter::PaintFullBlend ); - } - else if (!flatMode) - Keramik::RectTilePainter( name, false ).draw(p, r, cg.button(), cg.background(), disabled, pmode() ); - else { - Keramik::ScaledPainter( name + KeramikTileCC, Keramik::ScaledPainter::Vertical).draw( - p, r, cg.button(), cg.background(), disabled, pmode() ); - - p->setPen(cg.button().light(75)); - - p->drawLine(x, y, x2, y); - p->drawLine(x, y, x, y2); - p->drawLine(x, y2, x2, y2); - p->drawLine(x2, y, x2, y2); - flatMode = false; - } - - break; - - } - - // BEVELS - // ------------------------------------------------------------------- - case PE_ButtonBevel: - { - int x,y,w,h; - r.rect(&x, &y, &w, &h); - bool sunken = on || down; - int x2 = x+w-1; - int y2 = y+h-1; - - // Outer frame - p->setPen(cg.shadow()); - p->drawRect(r); - - // Bevel - p->setPen(sunken ? cg.mid() : cg.light()); - p->drawLine(x+1, y+1, x2-1, y+1); - p->drawLine(x+1, y+1, x+1, y2-1); - p->setPen(sunken ? cg.light() : cg.mid()); - p->drawLine(x+2, y2-1, x2-1, y2-1); - p->drawLine(x2-1, y+2, x2-1, y2-1); - - if (w > 4 && h > 4) - { - if (sunken) - p->fillRect(x+2, y+2, w-4, h-4, cg.button()); - else - Keramik::GradientPainter::renderGradient( p, TQRect(x+2, y+2, w-4, h-4), - cg.button(), flags & Style_Horizontal ); - } - break; - } - - - // FOCUS RECT - // ------------------------------------------------------------------- - case PE_FocusRect: - //Qt may pass the background color to use for the focus indicator - //here. This particularly happens within the iconview. - //If that happens, pass it on to drawWinFocusRect() so it can - //honor it - if ( opt.isDefault() ) - p->drawWinFocusRect( r ); - else - p->drawWinFocusRect( r, opt.color() ); - break; - - // HEADER SECTION - // ------------------------------------------------------------------- - case PE_HeaderSectionMenu: - case PE_HeaderSection: - if ( flags & Style_Down ) - Keramik::RectTilePainter( keramik_listview_pressed, false ).draw( p, r, cg.button(), cg.background() ); - else - Keramik::RectTilePainter( keramik_listview, false ).draw( p, r, cg.button(), cg.background() ); - break; - - case PE_HeaderArrow: - if ( flags & Style_Up ) - drawPrimitive( PE_ArrowUp, p, ceData, elementFlags, r, cg, Style_Enabled ); - else drawPrimitive( PE_ArrowDown, p, ceData, elementFlags, r, cg, Style_Enabled ); - break; - - - // // SCROLLBAR - // ------------------------------------------------------------------- - - case PE_ScrollBarSlider: - { - bool horizontal = flags & Style_Horizontal; - bool active = ( flags & Style_Active ) || ( flags & Style_Down ); - int name = KeramikSlider1; - unsigned int count = 3; - - - - if ( horizontal ) - { - if ( w > ( loader.size( keramik_scrollbar_hbar+KeramikSlider1 ).width() + - loader.size( keramik_scrollbar_hbar+KeramikSlider4 ).width() + - loader.size( keramik_scrollbar_hbar+KeramikSlider3 ).width() + 2 ) ) - count = 5; - } - else if ( h > ( loader.size( keramik_scrollbar_vbar+KeramikSlider1 ).height() + - loader.size( keramik_scrollbar_vbar+KeramikSlider4 ).height() + - loader.size( keramik_scrollbar_vbar+KeramikSlider3 ).height() + 2 ) ) - count = 5; - - TQColor col = cg.highlight(); - - if (customScrollMode || !highlightScrollBar) - col = cg.button(); - - if (!active) - Keramik::ScrollBarPainter( name, count, horizontal ).draw( p, r, col, cg.background(), false, pmode() ); - else - Keramik::ScrollBarPainter( name, count, horizontal ).draw( p, r, Keramik::ColorUtil::lighten(col ,110), - cg.background(), false, pmode() ); - break; - } - - case PE_ScrollBarAddLine: - { - bool down = flags & Style_Down; - - if ( flags & Style_Horizontal ) - { - Keramik::CenteredPainter painter( keramik_scrollbar_hbar_arrow2 ); - painter.draw( p, r, down? cg.buttonText() : cg.button(), cg.background(), disabled, pmode() ); - - p->setPen( cg.buttonText() ); - p->drawLine(r.x()+r.width()/2 - 1, r.y() + r.height()/2 - 3, - r.x()+r.width()/2 - 1, r.y() + r.height()/2 + 3); - - - drawKeramikArrow(p, cg, TQRect(r.x(), r.y(), r.width()/2, r.height()), PE_ArrowLeft, down, !disabled); - - drawKeramikArrow(p, cg, TQRect(r.x()+r.width()/2, r.y(), r.width() - r.width()/2, r.height()), - PE_ArrowRight, down, !disabled); - } - else - { - Keramik::CenteredPainter painter( keramik_scrollbar_vbar_arrow2 ); - painter.draw( p, r, down? cg.buttonText() : cg.button(), cg.background(), disabled, pmode() ); - - p->setPen( cg.buttonText() ); - p->drawLine(r.x()+r.width()/2 - 4, r.y()+r.height()/2, - r.x()+r.width()/2 + 2, r.y()+r.height()/2); - - - drawKeramikArrow(p, cg, TQRect(r.x(), r.y(), r.width(), r.height()/2), PE_ArrowUp, down, !disabled); - - drawKeramikArrow(p, cg, TQRect(r.x(), r.y()+r.height()/2, r.width(), r.height() - r.height()/2), - PE_ArrowDown, down, !disabled); - //drawKeramikArrow(p, cg, r, PE_ArrowUp, down, !disabled); - } - - - break; - } - - case PE_ScrollBarSubLine: - { - bool down = flags & Style_Down; - - if ( flags & Style_Horizontal ) - { - Keramik::CenteredPainter painter(keramik_scrollbar_hbar_arrow1 ); - painter.draw( p, r, down? cg.buttonText() : cg.button(), cg.background(), disabled, pmode() ); - drawKeramikArrow(p, cg, r, PE_ArrowLeft, down, !disabled); - - } - else - { - Keramik::CenteredPainter painter( keramik_scrollbar_vbar_arrow1 ); - painter.draw( p, r, down? cg.buttonText() : cg.button(), cg.background(), disabled, pmode() ); - drawKeramikArrow(p, cg, r, PE_ArrowUp, down, !disabled); - } - break; - } - - // CHECKBOX (indicator) - // ------------------------------------------------------------------- - case PE_Indicator: - case PE_IndicatorMask: - - if (flags & Style_On) - Keramik::ScaledPainter( keramik_checkbox_on ).draw( p, r, cg.button(), cg.background(), disabled, pmode() ); - else if (flags & Style_Off) - Keramik::ScaledPainter( keramik_checkbox_off ).draw( p, r, cg.button(), cg.background(), disabled, pmode() ); - else - Keramik::ScaledPainter( keramik_checkbox_tri ).draw( p, r, cg.button(), cg.background(), disabled, pmode() ); - - break; - - // RADIOBUTTON (exclusive indicator) - // ------------------------------------------------------------------- - case PE_ExclusiveIndicator: - case PE_ExclusiveIndicatorMask: - { - - Keramik::ScaledPainter( on ? keramik_radiobutton_on : keramik_radiobutton_off ).draw( p, r, cg.button(), cg.background(), disabled, pmode() ); - break; - } - - // line edit frame - case PE_PanelLineEdit: - { - if ( opt.isDefault() || opt.lineWidth() == 1 ) - { - //1-pixel frames can not be simply clipped wider frames, as that would produce too little contrast on the lower border - p->setPen( cg.dark() ); - p->drawLine( x, y, x + w - 1, y ); - p->drawLine( x, y, x, y + h - 1 ); - - p->setPen( cg.light().dark( 110 ) ); - p->drawLine( x + w - 1, y, x + w - 1, y + h - 1 ); - p->drawLine( x, y + h - 1, x + w - 1, y + h - 1); - } - else - { - p->setPen( cg.dark() ); - p->drawLine( x, y, x + w - 1, y ); - p->drawLine( x, y, x, y + h - 1 ); - p->setPen( cg.mid() ); - p->drawLine( x + 1, y + 1, x + w - 1, y + 1 ); - p->drawLine( x + 1, y + 1, x + 1, y + h - 1 ); - p->setPen( cg.light() ); - p->drawLine( x + w - 1, y, x + w - 1, y + h - 1 ); - p->drawLine( x, y + h - 1, x + w - 1, y + h - 1); - p->setPen( cg.light().dark( 110 ) ); - p->drawLine( x + w - 2, y + 1, x + w - 2, y + h - 2 ); - p->drawLine( x + 1, y + h - 2, x + w - 2, y + h - 2); - } - break; - } - - // SPLITTER/DOCKWINDOW HANDLES - // ------------------------------------------------------------------- - case PE_DockWindowResizeHandle: - case PE_Splitter: - { - int x,y,w,h; - r.rect(&x, &y, &w, &h); - int x2 = x+w-1; - int y2 = y+h-1; - - p->setPen(cg.dark()); - p->drawRect( r ); - p->setPen(cg.background()); - p->drawPoint(x, y); - p->drawPoint(x2, y); - p->drawPoint(x, y2); - p->drawPoint(x2, y2); - p->setPen(cg.light()); - p->drawLine(x+1, y+1, x+1, y2-1); - p->drawLine(x+1, y+1, x2-1, y+1); - p->setPen(cg.midlight()); - p->drawLine(x+2, y+2, x+2, y2-2); - p->drawLine(x+2, y+2, x2-2, y+2); - p->setPen(cg.mid()); - p->drawLine(x2-1, y+1, x2-1, y2-1); - p->drawLine(x+1, y2-1, x2-1, y2-1); - p->fillRect(x+3, y+3, w-5, h-5, cg.brush(TQColorGroup::Background)); - break; - } - - - //case PE_PanelPopup: - //p->setPen (cg.light() ); - //p->setBrush( cg.background().light( 110 ) ); - //p->drawRect( r ); - - //p->setPen( cg.shadow() ); - //p->drawRect( r.x()+1, r.y()+1, r.width()-2, r.height()-2); - //p->fillRect( visualRect( TQRect( x + 1, y + 1, 23, h - 2 ), r ), cg.background().dark( 105 ) ); - //break; - - // GENERAL PANELS - // ------------------------------------------------------------------- - case PE_Panel: - { - if (kickerMode) - { - if (p->device() && p->device()->devType() == TQInternal::Widget && - TQCString(TQT_TQWIDGET(static_cast<TQPaintDevice*>(p->device()))->className()) == "FittsLawFrame" ) - { - int x2 = x + r.width() - 1; - int y2 = y + r.height() - 1; - p->setPen(cg.dark()); - p->drawLine(x+1,y2,x2-1,y2); - p->drawLine(x2,y+1,x2,y2); - - p->setPen( cg.light() ); - p->drawLine(x, y, x2, y); - p->drawLine(x, y, x, y2); - - - return; - } - } - TDEStyle::drawPrimitive(pe, p, ceData, elementFlags, r, cg, flags, opt); - break; - } - case PE_WindowFrame: - { - bool sunken = flags & Style_Sunken; - int lw = opt.isDefault() ? pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags) - : opt.lineWidth(); - if (lw == 2) - { - TQPen oldPen = p->pen(); - int x,y,w,h; - r.rect(&x, &y, &w, &h); - int x2 = x+w-1; - int y2 = y+h-1; - p->setPen(sunken ? cg.light() : cg.dark()); - p->drawLine(x, y2, x2, y2); - p->drawLine(x2, y, x2, y2); - p->setPen(sunken ? cg.mid() : cg.light()); - p->drawLine(x, y, x2, y); - p->drawLine(x, y, x, y2); - p->setPen(sunken ? cg.midlight() : cg.mid()); - p->drawLine(x+1, y2-1, x2-1, y2-1); - p->drawLine(x2-1, y+1, x2-1, y2-1); - p->setPen(sunken ? cg.dark() : cg.midlight()); - p->drawLine(x+1, y+1, x2-1, y+1); - p->drawLine(x+1, y+1, x+1, y2-1); - p->setPen(oldPen); - } else - TDEStyle::drawPrimitive(pe, p, ceData, elementFlags, r, cg, flags, opt); - - break; - } - - - // MENU / TOOLBAR PANEL - // ------------------------------------------------------------------- - case PE_PanelMenuBar: // Menu - { - Keramik::GradientPainter::renderGradient( p, r, cg.button(), true, true); - //Keramik::ScaledPainter( keramik_menubar , Keramik::ScaledPainter::Vertical).draw( p, r, cg.button(), cg.background() ); - - int x2 = r.x()+r.width()-1; - int y2 = r.y()+r.height()-1; - int lw = opt.isDefault() ? pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags) - : opt.lineWidth(); - if (lw) - { - p->setPen(cg.mid()); - p->drawLine(x2, y, x2, y2); - } - - break; - } - - case PE_PanelDockWindow: // Toolbar - { - bool horiz = r.width() > r.height(); - - //Here, we just draw the border. - int x = r.x(); - int y = r.y(); - int x2 = r.x() + r.width() - 1; - int y2 = r.y() + r.height() - 1; - int lw = opt.isDefault() ? pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags) - : opt.lineWidth(); - - if (lw) - { - //Gradient border colors. - //(Same as in gradients.cpp) - TQColor gradTop = Keramik::ColorUtil::lighten(cg.button(),110); - TQColor gradBot = Keramik::ColorUtil::lighten(cg.button(),109); - if (horiz) - { - //Top line - p->setPen(gradTop); - p->drawLine(x, y, x2, y); - - //Bottom line - p->setPen(gradBot); - p->drawLine(x, y2, x2, y2); - - //Left line - Keramik::GradientPainter::renderGradient( - p, TQRect(r.x(), r.y(), 1, r.height()), - cg.button(), true); - - //Right end-line - p->setPen(cg.mid()); - p->drawLine(x2, y, x2, y2); - } - else - { - //Left line - p->setPen(gradTop); - p->drawLine(x, y, x, y2); - - //Right line - p->setPen(gradBot); - p->drawLine(x2, y, x2, y2); - - //Top line - Keramik::GradientPainter::renderGradient( - p, TQRect(r.x(), r.y(), r.width(), 1), - cg.button(), false); - - //Bottom end-line - p->setPen(cg.mid()); - p->drawLine(x, y2, x2, y2); - } - } - break; - } - - // TOOLBAR SEPARATOR - // ------------------------------------------------------------------- - case PE_DockWindowSeparator: - { - TQWidget* paintWidget = dynamic_cast<TQWidget*>(p->device()); - TQToolBar* parent = 0; - if (paintWidget) - parent = ::tqqt_cast<TQToolBar*>(paintWidget->parentWidget()); - - renderToolbarEntryBackground(p, parent, r, cg, (flags & Style_Horizontal) ); - if ( !(flags & Style_Horizontal) ) - { - p->setPen(cg.mid()); - p->drawLine(4, r.height()/2-1, r.width()-5, r.height()/2-1); - p->setPen(cg.light()); - p->drawLine(4, r.height()/2, r.width()-5, r.height()/2); - } - else - { - p->setPen(cg.mid()); - p->drawLine(r.width()/2-1, 4, r.width()/2-1, r.height()-5); - p->setPen(cg.light()); - p->drawLine(r.width()/2, 4, r.width()/2, r.height()-5); - } - break; - } - - case PE_PanelScrollBar: - { - Keramik::ScrollBarPainter( KeramikGroove1, 2, (ceData.orientation == TQt::Horizontal)?true:false ).draw( p, r, cg.button(), cg.background(), (( flags & Style_Enabled ) == 0)?true:false ); - break; - } - - case PE_MenuItemIndicatorFrame: - { - int x, y, w, h; - r.rect( &x, &y, &w, &h ); - int checkcol = styleHint(SH_MenuIndicatorColumnWidth, ceData, elementFlags, opt, NULL, NULL); - TQRect cr = visualRect( TQRect( x + 2, y + 2, checkcol - 1, h - 4 ), r ); - qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(), cg, true, 1, &cg.brush(TQColorGroup::Midlight) ); - } - break; - case PE_MenuItemIndicatorIconFrame: - { - int x, y, w, h; - r.rect( &x, &y, &w, &h ); - int checkcol = styleHint(SH_MenuIndicatorColumnWidth, ceData, elementFlags, opt, NULL, NULL); - TQRect cr = visualRect( TQRect( x + 2, y + 2, checkcol - 1, h - 4 ), r ); - qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(), cg, true, 1, &cg.brush(TQColorGroup::Midlight) ); - } - break; - case PE_MenuItemIndicatorCheck: - { - int x, y, w, h; - r.rect( &x, &y, &w, &h ); - int checkcol = styleHint(SH_MenuIndicatorColumnWidth, ceData, elementFlags, opt, NULL, NULL); - TQRect cr = visualRect( TQRect( x + 2, y + 2, checkcol - 1, h - 4 ), r ); - - SFlags cflags = Style_Default; - cflags |= active ? Style_Enabled : Style_On; - - drawPrimitive( PE_CheckMark, p, ceData, elementFlags, cr, cg, cflags ); - } - break; - - default: - { - // ARROWS - // ------------------------------------------------------------------- - if (pe >= PE_ArrowUp && pe <= PE_ArrowLeft) - { - TQPointArray a; - - switch(pe) - { - case PE_ArrowUp: - a.setPoints(TQCOORDARRLEN(u_arrow), u_arrow); - break; - - case PE_ArrowDown: - a.setPoints(TQCOORDARRLEN(d_arrow), d_arrow); - break; - - case PE_ArrowLeft: - a.setPoints(TQCOORDARRLEN(l_arrow), l_arrow); - break; - - default: - a.setPoints(TQCOORDARRLEN(r_arrow), r_arrow); - } - - p->save(); - if ( flags & Style_Down ) - p->translate( pixelMetric( PM_ButtonShiftHorizontal, ceData, elementFlags ), - pixelMetric( PM_ButtonShiftVertical, ceData, elementFlags ) ); - - if ( flags & Style_Enabled ) - { - a.translate( r.x() + r.width() / 2, r.y() + r.height() / 2 ); - p->setPen( cg.buttonText() ); - p->drawLineSegments( a ); - } - else - { - a.translate( r.x() + r.width() / 2 + 1, r.y() + r.height() / 2 + 1 ); - p->setPen( cg.light() ); - p->drawLineSegments( a ); - a.translate( -1, -1 ); - p->setPen( cg.mid() ); - p->drawLineSegments( a ); - } - p->restore(); - - } - else - TDEStyle::drawPrimitive( pe, p, ceData, elementFlags, r, cg, flags, opt ); - } - } -} - -void KeramikStyle::drawTDEStylePrimitive( TDEStylePrimitive kpe, - TQPainter* p, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption &opt, - const TQWidget* widget ) const -{ - bool disabled = ( flags & Style_Enabled ) == 0; - int x, y, w, h; - r.rect( &x, &y, &w, &h ); - - switch ( kpe ) - { - // SLIDER GROOVE - // ------------------------------------------------------------------- - case KPE_SliderGroove: - { - bool horizontal = ceData.orientation == TQt::Horizontal; - - Keramik::TilePainter::PaintMode pmod = Keramik::TilePainter::PaintNormal; - - if (!ceData.bgPixmap.isNull()) - pmod = Keramik::TilePainter::PaintFullBlend; - - if ( horizontal ) - Keramik::RectTilePainter( keramik_slider_hgroove, false ).draw(p, r, cg.button(), cg.background(), disabled, pmod); - else - Keramik::RectTilePainter( keramik_slider_vgroove, true, false ).draw( p, r, cg.button(), cg.background(), disabled, pmod); - - break; - } - - // SLIDER HANDLE - // ------------------------------------------------------------------- - case KPE_SliderHandle: - { - bool horizontal = ceData.orientation == TQt::Horizontal; - - TQColor hl = cg.highlight(); - if (!disabled && flags & Style_Active) - hl = Keramik::ColorUtil::lighten(cg.highlight(),110); - - if (horizontal) - Keramik::ScaledPainter( keramik_slider ).draw( p, r, disabled ? cg.button() : hl, - Qt::black, disabled, Keramik::TilePainter::PaintFullBlend ); - else - Keramik::ScaledPainter( keramik_vslider ).draw( p, r, disabled ? cg.button() : hl, - Qt::black, disabled, Keramik::TilePainter::PaintFullBlend ); - break; - } - - // TOOLBAR HANDLE - // ------------------------------------------------------------------- - case KPE_ToolBarHandle: { - int x = r.x(); int y = r.y(); - int x2 = r.x() + r.width()-1; - int y2 = r.y() + r.height()-1; - - TQToolBar* parent = 0; - - if (widget && widget->parent() && widget->parent()->inherits(TQTOOLBAR_OBJECT_NAME_STRING)) - parent = static_cast<TQToolBar*>(TQT_TQWIDGET(widget->parent())); - - renderToolbarEntryBackground(p, parent, r, cg, (flags & Style_Horizontal)); - if (flags & Style_Horizontal) { - p->setPen(cg.light()); - p->drawLine(x+1, y+4, x+1, y2-4); - p->drawLine(x+3, y+4, x+3, y2-4); - p->drawLine(x+5, y+4, x+5, y2-4); - - p->setPen(cg.mid()); - p->drawLine(x+2, y+4, x+2, y2-4); - p->drawLine(x+4, y+4, x+4, y2-4); - p->drawLine(x+6, y+4, x+6, y2-4); - } else { - p->setPen(cg.light()); - p->drawLine(x+4, y+1, x2-4, y+1); - p->drawLine(x+4, y+3, x2-4, y+3); - p->drawLine(x+4, y+5, x2-4, y+5); - - p->setPen(cg.mid()); - p->drawLine(x+4, y+2, x2-4, y+2); - p->drawLine(x+4, y+4, x2-4, y+4); - p->drawLine(x+4, y+6, x2-4, y+6); - - } - break; - } - - - // GENERAL/KICKER HANDLE - // ------------------------------------------------------------------- - case KPE_GeneralHandle: { - int x = r.x(); int y = r.y(); - int x2 = r.x() + r.width()-1; - int y2 = r.y() + r.height()-1; - - if (flags & Style_Horizontal) { - - p->setPen(cg.light()); - p->drawLine(x+1, y, x+1, y2); - p->drawLine(x+3, y, x+3, y2); - p->drawLine(x+5, y, x+5, y2); - - p->setPen(cg.mid()); - p->drawLine(x+2, y, x+2, y2); - p->drawLine(x+4, y, x+4, y2); - p->drawLine(x+6, y, x+6, y2); - - } else { - - p->setPen(cg.light()); - p->drawLine(x, y+1, x2, y+1); - p->drawLine(x, y+3, x2, y+3); - p->drawLine(x, y+5, x2, y+5); - - p->setPen(cg.mid()); - p->drawLine(x, y+2, x2, y+2); - p->drawLine(x, y+4, x2, y+4); - p->drawLine(x, y+6, x2, y+6); - - } - break; - } - - - default: - TDEStyle::drawTDEStylePrimitive( kpe, p, ceData, elementFlags, r, cg, flags, opt, widget); - } -} - -bool KeramikStyle::isFormWidget(const TQStyleControlElementData &ceData, const ControlElementFlags elementFlags, const TQWidget* widget) const -{ - if (widget) { - //Form widgets are in the TDEHTMLView, but that has 2 further inner levels - //of widgets - QClipperWidget, and outside of that, QViewportWidget - TQWidget* potentialClipPort = widget->parentWidget(); - if ((ceData.parentWidgetData.widgetObjectTypes.isEmpty()) && (ceData.parentWidgetFlags & CEF_IsTopLevel)) { - return false; - } - - TQWidget* potentialViewPort = potentialClipPort->parentWidget(); - if (!potentialViewPort || potentialViewPort->isTopLevel() || - qstrcmp(potentialViewPort->name(), "qt_viewport") ) - return false; - - TQWidget* potentialTDEHTML = potentialViewPort->parentWidget(); - if (!potentialTDEHTML || potentialTDEHTML->isTopLevel() || - qstrcmp(potentialTDEHTML->className(), "TDEHTMLView") ) - return false; - - - return true; - } -} - -void KeramikStyle::drawControl( TQ_ControlElement element, - TQPainter *p, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - const TQStyleOption& opt, - const TQWidget *widget ) const -{ - bool disabled = ( flags & Style_Enabled ) == 0; - int x, y, w, h; - r.rect( &x, &y, &w, &h ); - - switch (element) - { - // PUSHBUTTON - // ------------------------------------------------------------------- - case CE_PushButton: - { - const TQPushButton* btn = dynamic_cast< const TQPushButton* >( widget ); - - if (isFormWidget(ceData, elementFlags, btn)) - formMode = true; - - if ( elementFlags & CEF_IsFlat ) - flatMode = true; - - if ( (elementFlags & CEF_IsDefault) && !flatMode ) - { - drawPrimitive( PE_ButtonDefault, p, ceData, elementFlags, r, cg, flags ); - } - else - { - if (ceData.parentWidgetData.widgetObjectTypes.contains(TQTOOLBAR_OBJECT_NAME_STRING)) - toolbarBlendWidget = widget; - - drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags, r, cg, flags ); - toolbarBlendWidget = 0; - } - - formMode = false; - break; - } - - - // PUSHBUTTON LABEL - // ------------------------------------------------------------------- - case CE_PushButtonLabel: - { - const TQPushButton* button = dynamic_cast<const TQPushButton *>( widget ); - bool active = ((elementFlags & CEF_IsOn) || (elementFlags & CEF_IsDown)); - bool cornArrow = false; - - // Shift button contents if pushed. - if ( active ) - { - x += pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags, widget); - y += pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags, widget); - flags |= Style_Sunken; - } - - // Does the button have a popup menu? - if (elementFlags & CEF_IsMenuWidget) - { - int dx = pixelMetric( PM_MenuButtonIndicator, ceData, elementFlags, widget ); - if ( !ceData.iconSet.isNull() && - (dx + ceData.iconSet.pixmap (TQIconSet::Small, TQIconSet::Normal, TQIconSet::Off ).width()) >= w ) - { - cornArrow = true; //To little room. Draw the arrow in the corner, don't adjust the widget - } - else - { - drawPrimitive( PE_ArrowDown, p, ceData, elementFlags, visualRect( TQRect(x + w - dx - 8, y + 2, dx, h - 4), r ), - cg, flags, opt ); - w -= dx; - } - } - - // Draw the icon if there is one - if ( !ceData.iconSet.isNull() ) - { - TQIconSet::Mode mode = TQIconSet::Disabled; - TQIconSet::State state = TQIconSet::Off; - - if (elementFlags & CEF_IsEnabled) - mode = (elementFlags & CEF_HasFocus) ? TQIconSet::Active : TQIconSet::Normal; - if ((elementFlags & CEF_BiState) && (elementFlags & CEF_IsOn)) - state = TQIconSet::On; - - TQPixmap icon = ceData.iconSet.pixmap( TQIconSet::Small, mode, state ); - - if (!ceData.text.isEmpty()) - { - const int TextToIconMargin = 6; - //Center text + icon w/margin in between.. - - //Calculate length of both. - int length = icon.width() + TextToIconMargin - + p->fontMetrics().size(ShowPrefix, ceData.text).width(); - - //Calculate offset. - int offset = (w - length)/2; - - //draw icon - p->drawPixmap( x + offset, y + h / 2 - icon.height() / 2, icon ); - - //new bounding rect for the text - x += offset + icon.width() + TextToIconMargin; - w = length - icon.width() - TextToIconMargin; - } - else - { - //Icon only. Center it. - if (ceData.fgPixmap.isNull()) - p->drawPixmap( x + w/2 - icon.width()/2, y + h / 2 - icon.height() / 2, - icon ); - else //icon + pixmap. Ugh. - p->drawPixmap( x + (elementFlags & CEF_IsDefault) ? 8 : 4 , y + h / 2 - icon.height() / 2, icon ); - } - - if (cornArrow) //Draw over the icon - drawPrimitive( PE_ArrowDown, p, ceData, elementFlags, visualRect( TQRect(x + w - 6, x + h - 6, 7, 7), r ), - cg, flags, opt ); - } - - // Make the label indicate if the button is a default button or not - drawItem( p, TQRect(x, y, w, h), AlignCenter | ShowPrefix, ceData.colorGroup, - (elementFlags & CEF_IsEnabled), (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap, ceData.text, -1, - &ceData.colorGroup.buttonText() ); - - if ( flags & Style_HasFocus ) - drawPrimitive( PE_FocusRect, p, ceData, elementFlags, - visualRect( subRect( SR_PushButtonFocusRect, ceData, elementFlags, widget ), ceData, elementFlags ), - cg, flags ); - break; - } - - case CE_ToolButtonLabel: - { - bool onToolbar = ceData.parentWidgetData.widgetObjectTypes.contains( TQTOOLBAR_OBJECT_NAME_STRING ); - TQRect nr = r; - - if (!onToolbar) - { - if (!qstrcmp(ceData.parentWidgetData.name.ascii(),"qt_maxcontrols" ) ) - { - //Make sure we don't cut into the endline - if (!qstrcmp(ceData.name.ascii(), "close")) - { - nr.addCoords(0,0,-1,0); - p->setPen(cg.dark()); - p->drawLine(r.x() + r.width() - 1, r.y(), - r.x() + r.width() - 1, r.y() + r.height() - 1 ); - } - } - //else if ( w > smallButMaxW && h > smallButMaxH ) - // nr.setWidth(r.width()-2); //Account for shadow - } - - TDEStyle::drawControl(element, p, ceData, elementFlags, nr, cg, flags, opt, widget); - break; - } - - case CE_TabBarTab: - { - bool bottom = ceData.tabBarData.shape == TQTabBar::RoundedBelow || - ceData.tabBarData.shape == TQTabBar::TriangularBelow; - - if ( flags & Style_Selected ) - { - TQRect tabRect = r; - //If not the right-most tab, readjust the painting to be one pixel wider - //to avoid a doubled line - int rightMost = TQApplication::reverseLayout() ? 0 : ceData.tabBarData.tabCount - 1; - - if (ceData.tabBarData.identIndexMap[opt.tab()->identifier()] != rightMost) - tabRect.setWidth( tabRect.width() + 1); - Keramik::ActiveTabPainter( bottom ).draw( p, tabRect, cg.button().light(110), cg.background(), !(elementFlags & CEF_IsEnabled), pmode()); - } - else - { - Keramik::InactiveTabPainter::Mode mode; - int index = ceData.tabBarData.identIndexMap[opt.tab()->identifier()]; - if ( index == 0 ) mode = Keramik::InactiveTabPainter::First; - else if ( index == ceData.tabBarData.tabCount - 1 ) mode = Keramik::InactiveTabPainter::Last; - else mode = Keramik::InactiveTabPainter::Middle; - - if ( bottom ) - { - Keramik::InactiveTabPainter( mode, bottom ).draw( p, x, y, w, h - 3, cg.button(), cg.background(), disabled, pmode() ); - p->setPen( cg.dark() ); - p->drawLine( x, y, x + w, y ); - } - else - { - Keramik::InactiveTabPainter( mode, bottom ).draw( p, x, y + 3, w, h - 3, cg.button(), cg.background(), disabled, pmode() ); - p->setPen( cg.light() ); - p->drawLine( x, y + h - 1, x + w, y + h - 1 ); - } - } - - break; - } - - case CE_DockWindowEmptyArea: - { - TQRect pr = r; - if (ceData.widgetObjectTypes.contains(TQTOOLBAR_OBJECT_NAME_STRING)) - { - const TQToolBar* tb = static_cast<const TQToolBar*>(widget); - if (tb->place() == TQDockWindow::OutsideDock) - { - //Readjust the paint rectangle to skip the titlebar - pr = TQRect(r.x(), titleBarH + tb->frameWidth(), - r.width(), tb->height() - titleBarH - 2 * tb->frameWidth() + 2); - //2 at the end = the 2 pixels of border of a "regular" - //toolbar we normally paint over. - } - Keramik::GradientPainter::renderGradient( p, pr, cg.button(), - tb->orientation() == Qt::Horizontal); - } - else - TDEStyle::drawControl( (TQ_ControlElement)CE_DockWindowEmptyArea, p, ceData, elementFlags, - r, cg, flags, opt, widget ); - break; - } - case CE_MenuBarEmptyArea: - { - Keramik::GradientPainter::renderGradient( p, r, cg.button(), true, true); - break; - } - // MENUBAR ITEM (sunken panel on mouse over) - // ------------------------------------------------------------------- - case CE_MenuBarItem: - { - TQMenuBar *mb = (TQMenuBar*)widget; - TQMenuItem *mi = opt.menuItem(); - TQRect pr = mb->rect(); - - bool active = flags & Style_Active; - bool focused = flags & Style_HasFocus; - - if ( active && focused ) - qDrawShadePanel(p, r.x(), r.y(), r.width(), r.height(), - cg, true, 1, &cg.brush(TQColorGroup::Midlight)); - else - Keramik::GradientPainter::renderGradient( p, pr, cg.button(), true, true); - - drawItem( p, r, AlignCenter | AlignVCenter | ShowPrefix - | DontClip | SingleLine, cg, flags & Style_Enabled, - mi->pixmap(), mi->text() ); - - break; - } - - - // POPUPMENU ITEM - // ------------------------------------------------------------------- - case CE_PopupMenuItem: { - TQRect main = r; - - TQMenuItem *mi = opt.menuItem(); - - if ( !mi ) - { - // Don't leave blank holes if we set NoBackground for the TQPopupMenu. - // This only happens when the popupMenu spans more than one column. - if (! ( !ceData.bgPixmap.isNull() ) ) - p->fillRect( r, cg.background().light( 105 ) ); - - break; - } - int tab = opt.tabWidth(); - int checkcol = opt.maxIconWidth(); - bool enabled = mi->isEnabled(); - bool checkable = (elementFlags & CEF_IsCheckable); - bool active = flags & Style_Active; - bool etchtext = styleHint( SH_EtchDisabledText, ceData, elementFlags ); - bool reverse = TQApplication::reverseLayout(); - if ( checkable ) - checkcol = QMAX( checkcol, 20 ); - - // Draw the menu item background - if ( active ) - { - if ( enabled ) - Keramik::RowPainter( keramik_menuitem ).draw( p, main, cg.highlight(), cg.background() ); - else { - if ( !ceData.bgPixmap.isNull() ) - p->drawPixmap( main.topLeft(), ceData.bgPixmap, main ); - else p->fillRect( main, cg.background().light( 105 ) ); - p->drawWinFocusRect( r ); - } - } - // Draw the transparency pixmap - else if ( !ceData.bgPixmap.isNull() ) - p->drawPixmap( main.topLeft(), ceData.bgPixmap, main ); - // Draw a solid background - else - p->fillRect( main, cg.background().light( 105 ) ); - // Are we a menu item separator? - - if ( mi->isSeparator() ) - { - p->setPen( cg.mid() ); - p->drawLine( main.x()+5, main.y() + 1, main.right()-5, main.y() + 1 ); - p->setPen( cg.light() ); - p->drawLine( main.x()+5, main.y() + 2, main.right()-5, main.y() + 2 ); - break; - } - - TQRect cr = visualRect( TQRect( x + 2, y + 2, checkcol - 1, h - 4 ), r ); - // Do we have an icon? - if ( mi->iconSet() ) - { - TQIconSet::Mode mode; - - - - // Select the correct icon from the iconset - if ( active ) - mode = enabled ? TQIconSet::Active : TQIconSet::Disabled; - else - mode = enabled ? TQIconSet::Normal : TQIconSet::Disabled; - - // Do we have an icon and are checked at the same time? - // Then draw a "pressed" background behind the icon - if ( checkable && /*!active &&*/ mi->isChecked() ) - drawPrimitive(PE_MenuItemIndicatorIconFrame, p, ceData, elementFlags, r, cg, flags, opt); - // Draw the icon - TQPixmap pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode ); - TQRect pmr( 0, 0, pixmap.width(), pixmap.height() ); - pmr.moveCenter( cr.center() ); - p->drawPixmap( pmr.topLeft(), pixmap ); - } - - // Are we checked? (This time without an icon) - else if ( checkable && mi->isChecked() ) - { - // We only have to draw the background if the menu item is inactive - - // if it's active the "pressed" background is already drawn - // if ( ! active ) - drawPrimitive(PE_MenuItemIndicatorFrame, p, ceData, elementFlags, r, cg, flags, opt); - // Draw the checkmark - drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, r, cg, flags, opt); - } - - // Time to draw the menu item label... - int xm = itemFrame + checkcol + itemHMargin; // X position margin - - int xp = reverse ? // X position - x + tab + rightBorder + itemHMargin + itemFrame - 1 : - x + xm; - - int offset = reverse ? -1 : 1; // Shadow offset for etched text - - // Label width (minus the width of the accelerator portion) - int tw = w - xm - tab - arrowHMargin - itemHMargin * 3 - itemFrame + 1; - - // Set the color for enabled and disabled text - // (used for both active and inactive menu items) - p->setPen( enabled ? cg.buttonText() : cg.mid() ); - - // This color will be used instead of the above if the menu item - // is active and disabled at the same time. (etched text) - TQColor discol = cg.mid(); - - // Does the menu item draw it's own label? - if ( mi->custom() ) { - int m = itemVMargin; - // Save the painter state in case the custom - // paint method changes it in some way - p->save(); - - // Draw etched text if we're inactive and the menu item is disabled - if ( etchtext && !enabled && !active ) { - p->setPen( cg.light() ); - mi->custom()->paint( p, cg, active, enabled, xp+offset, y+m+1, tw, h-2*m ); - p->setPen( discol ); - } - mi->custom()->paint( p, cg, active, enabled, xp, y+m, tw, h-2*m ); - p->restore(); - } - else { - // The menu item doesn't draw it's own label - TQString s = mi->text(); - // Does the menu item have a text label? - if ( !s.isNull() ) { - int t = s.find( '\t' ); - int m = itemVMargin; - int text_flags = AlignVCenter | ShowPrefix | DontClip | SingleLine; - text_flags |= reverse ? AlignRight : AlignLeft; - - //TQColor draw = cg.text(); - TQColor draw = (active && enabled) ? cg.highlightedText () : cg.text(); - p->setPen(draw); - - - // Does the menu item have a tabstop? (for the accelerator text) - if ( t >= 0 ) { - int tabx = reverse ? x + rightBorder + itemHMargin + itemFrame : - x + w - tab - rightBorder - itemHMargin - itemFrame; - - // Draw the right part of the label (accelerator text) - if ( etchtext && !enabled ) { - // Draw etched text if we're inactive and the menu item is disabled - p->setPen( cg.light() ); - p->drawText( tabx+offset, y+m+1, tab, h-2*m, text_flags, s.mid( t+1 ) ); - p->setPen( discol ); - } - p->drawText( tabx, y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); - s = s.left( t ); - } - - // Draw the left part of the label (or the whole label - // if there's no accelerator) - if ( etchtext && !enabled ) { - // Etched text again for inactive disabled menu items... - p->setPen( cg.light() ); - p->drawText( xp+offset, y+m+1, tw, h-2*m, text_flags, s, t ); - p->setPen( discol ); - } - - - p->drawText( xp, y+m, tw, h-2*m, text_flags, s, t ); - - p->setPen(cg.text()); - - } - - // The menu item doesn't have a text label - // Check if it has a pixmap instead - else if ( mi->pixmap() ) { - TQPixmap *pixmap = mi->pixmap(); - - // Draw the pixmap - if ( pixmap->depth() == 1 ) - p->setBackgroundMode( Qt::OpaqueMode ); - - int diffw = ( ( w - pixmap->width() ) / 2 ) - + ( ( w - pixmap->width() ) % 2 ); - p->drawPixmap( x+diffw, y+itemFrame, *pixmap ); - - if ( pixmap->depth() == 1 ) - p->setBackgroundMode( Qt::TransparentMode ); - } - } - - // Does the menu item have a submenu? - if ( mi->popup() ) { - TQ_PrimitiveElement arrow = reverse ? PE_ArrowLeft : PE_ArrowRight; - int dim = pixelMetric(PM_MenuButtonIndicator, ceData, elementFlags) - itemFrame; - TQRect vr = visualRect( TQRect( x + w - arrowHMargin - itemFrame - dim, - y + h / 2 - dim / 2, dim, dim), r ); - - // Draw an arrow at the far end of the menu item - if ( active ) { - if ( enabled ) - discol = cg.buttonText(); - - TQColorGroup g2( discol, cg.highlight(), white, white, - enabled ? white : discol, discol, white ); - - drawPrimitive( arrow, p, ceData, elementFlags, vr, g2, Style_Enabled ); - } else - drawPrimitive( arrow, p, ceData, elementFlags, vr, cg, - enabled ? Style_Enabled : Style_Default ); - } - break; - } - case CE_ProgressBarContents: { - TQRect cr = subRect(SR_ProgressBarContents, ceData, elementFlags, widget); - double progress = ceData.currentStep; - bool reverse = TQApplication::reverseLayout(); - int steps = ceData.totalSteps; - - if (!cr.isValid()) - return; - - // Draw progress bar - if (progress > 0 || steps == 0) { - double pg = (steps == 0) ? 0.1 : progress / steps; - int width = QMIN(cr.width(), (int)(pg * cr.width())); - if (steps == 0) - width = QMIN(width,20); //Don't cross squares - - if (steps == 0) { //Busy indicator - - if (width < 1) width = 1; //A busy indicator with width 0 is kind of useless - - int remWidth = cr.width() - width; //Never disappear completely - if (remWidth <= 0) remWidth = 1; //Do something non-crashy when too small... - - int pstep = int(progress) % ( 2 * remWidth ); - - if ( pstep > remWidth ) { - //Bounce about.. We're remWidth + some delta, we want to be remWidth - delta... - // - ( (remWidth + some delta) - 2* remWidth ) = - (some deleta - remWidth) = remWidth - some delta.. - pstep = - (pstep - 2 * remWidth ); - } - - //Store the progress rect. - TQRect progressRect; - if (reverse) - progressRect = TQRect(cr.x() + cr.width() - width - pstep, cr.y(), - width, cr.height()); - else - progressRect = TQRect(cr.x() + pstep, cr.y(), width, cr.height()); - - Keramik::RowPainter(keramik_progressbar).draw(p, progressRect, - cg.highlight(), cg.background() ); - return; - } - - TQRect progressRect; - - if (reverse) - progressRect = TQRect(cr.x()+(cr.width()-width), cr.y(), width, cr.height()); - else - progressRect = TQRect(cr.x(), cr.y(), width, cr.height()); - - //Apply the animation rectangle. - ////////////////////////////////////// - if (animateProgressBar) - { - const TQProgressBar* pb = (const TQProgressBar*)widget; - int progAnimShift = progAnimWidgets[const_cast<TQProgressBar*>(pb)]; - if (reverse) - { - //Here, we can't simply shift, as the painter code calculates everything based - //on the left corner, so we need to draw the 2 portions ourselves. - - //Start off by checking the geometry of the end pixmap - it introduces a bit of an offset - TQSize endDim = loader.size(keramik_progressbar + 3); //3 = 3*1 + 0 = (1,0) = cl - - //We might not have anything to animate at all, though, if the ender is the only thing to paint - if (endDim.width() < progressRect.width()) - { - //OK, so we do have some stripes. - // Render the endline now - the clip region below will protect it from getting overwriten - TQPixmap endline = loader.scale(keramik_progressbar + 3, endDim.width(), progressRect.height(), - cg.highlight(), cg.background()); - p->drawPixmap(progressRect.x(), progressRect.y(), endline); - - //Now, calculate where the stripes should be, and set a clip region to that - progressRect.setLeft(progressRect.x() + endline.width()); - p->setClipRect(progressRect, TQPainter::CoordPainter); - - //Expand the paint region slightly to get the animation offset. - progressRect.setLeft(progressRect.x() - progAnimShift); - - //Paint the stripes. - TQPixmap stripe = loader.scale(keramik_progressbar + 4, 28, progressRect.height(), - cg.highlight(), cg.background()); - //4 = 3*1 + 1 = (1,1) = cc - - p->drawTiledPixmap(progressRect, stripe); - //Exit out here to skip the regular paint path - return; - } - } - else - { - //Clip to the old rectangle - p->setClipRect(progressRect, TQPainter::CoordPainter); - //Expand the paint region - progressRect.setLeft(progressRect.x() - 28 + progAnimShift); - } - } - - Keramik::ProgressBarPainter(keramik_progressbar, reverse).draw( p, - progressRect , cg.highlight(), cg.background()); - } - break; - } - - - default: - TDEStyle::drawControl(element, p, ceData, elementFlags, r, cg, flags, opt, widget); - } -} - -void KeramikStyle::drawControlMask( TQ_ControlElement element, - TQPainter *p, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQRect &r, - const TQStyleOption& opt, - const TQWidget *widget ) const -{ - p->fillRect(r, color1); - maskMode = true; - drawControl( element, p, ceData, elementFlags, r, TQApplication::palette().active(), TQStyle::Style_Default, opt, widget); - maskMode = false; -} - -bool KeramikStyle::isSizeConstrainedCombo(const TQStyleControlElementData &ceData, const ControlElementFlags elementFlags, const TQComboBox* combo) const -{ - if (ceData.rect.width() >= 80) - return false; - - if (combo) { - int suggestedWidth = combo->sizeHint().width(); - - if (ceData.rect.width() - suggestedWidth < -5) - return true; - - return false; - } - else { - return true; - } -} - -void KeramikStyle::drawComplexControl( TQ_ComplexControl control, - TQPainter *p, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQRect &r, - const TQColorGroup &cg, - SFlags flags, - SCFlags controls, - SCFlags active, - const TQStyleOption& opt, - const TQWidget *widget ) const -{ - bool disabled = ( flags & Style_Enabled ) == 0; - switch(control) - { - // COMBOBOX - // ------------------------------------------------------------------- - case CC_ComboBox: - { - bool toolbarMode = false; - const TQComboBox* cb = dynamic_cast< const TQComboBox* >( widget ); - bool compact = isSizeConstrainedCombo(ceData, elementFlags, cb); - - if (isFormWidget(ceData, elementFlags, cb)) - formMode = true; - - TQPixmap * buf = 0; - TQPainter* p2 = p; - - TQRect br = r; - - if (controls == SC_All) - { - //Double-buffer only when we are in the slower full-blend mode - if ( ceData.parentWidgetData.widgetObjectTypes.contains(TQTOOLBAR_OBJECT_NAME_STRING) || !qstrcmp(ceData.parentWidgetData.name.ascii(), kdeToolbarWidget) ) - { - buf = new TQPixmap( r.width(), r.height() ); - br.setX(0); - br.setY(0); - p2 = new TQPainter(buf); - - //Ensure that we have clipping on, and have a sane base. - //If need be, Qt will shrink us to the paint region. - p->setClipRect(r); - toolbarMode = true; - } - } - - - if ( br.width() >= 28 && br.height() > 20 && !compact ) - br.addCoords( 0, -2, 0, 0 ); - - //When in compact mode, we force the shadow-less bevel mode, - //but that also alters height and not just width. - //readjust height to fake the other metrics (plus clear - //the other areas, as appropriate). The automasker - //will take care of the overall shape. - if ( compact ) - { - forceSmallMode = true; - br.setHeight( br.height() - 2); - p->fillRect ( r.x(), r.y() + br.height(), r.width(), 2, cg.background()); - } - - - if ( controls & SC_ComboBoxFrame ) - { - if (toolbarMode) - toolbarBlendWidget = widget; - - drawPrimitive( PE_ButtonCommand, p2, ceData, elementFlags, br, cg, flags ); - - toolbarBlendWidget = 0; - } - - // don't draw the focus rect etc. on the mask - if ( cg.button() == color1 && cg.background() == color0 ) - break; - - if ( controls & SC_ComboBoxArrow ) - { - if ( active ) - flags |= Style_On; - - TQRect ar = querySubControlMetrics( CC_ComboBox, ceData, elementFlags, - SC_ComboBoxArrow, TQStyleOption::Default, widget ); - if (!compact) - { - ar.setWidth(ar.width()-13); - TQRect rr = visualRect( TQRect( ar.x(), ar.y() + 4, - loader.size(keramik_ripple ).width(), ar.height() - 8 ), - ceData, elementFlags ); - - ar = visualRect( TQRect( ar.x() + loader.size( keramik_ripple ).width() + 4, ar.y(), - 11, ar.height() ), - ceData, elementFlags ); - - TQPointArray a; - - a.setPoints(TQCOORDARRLEN(keramik_combo_arrow), keramik_combo_arrow); - - a.translate( ar.x() + ar.width() / 2, ar.y() + ar.height() / 2 ); - p2->setPen( cg.buttonText() ); - p2->drawLineSegments( a ); - - Keramik::ScaledPainter( keramik_ripple ).draw( p2, rr, cg.button(), Qt::black, disabled, Keramik::TilePainter::PaintFullBlend ); - } - else //Size-constrained combo -- loose the ripple. - { - ar.setWidth(ar.width() - 7); - ar = visualRect( TQRect( ar.x(), ar.y(), 11, ar.height() ), ceData, elementFlags); - TQPointArray a; - - a.setPoints(TQCOORDARRLEN(keramik_combo_arrow), keramik_combo_arrow); - - a.translate( ar.x() + ar.width() / 2, ar.y() + ar.height() / 2 ); - p2->setPen( cg.buttonText() ); - p2->drawLineSegments( a ); - } - } - - if ( controls & SC_ComboBoxEditField ) - { - if ( elementFlags & CEF_IsEditable ) - { - TQRect er = visualRect( querySubControlMetrics( CC_ComboBox, ceData, elementFlags, SC_ComboBoxEditField, TQStyleOption::Default, widget ), ceData, elementFlags ); - er.addCoords( -2, -2, 2, 2 ); - p2->fillRect( er, cg.base() ); - drawPrimitive( PE_PanelLineEdit, p2, ceData, elementFlags, er, cg ); - Keramik::RectTilePainter( keramik_frame_shadow, false, false, 2, 2 ).draw( p2, er, cg.button(), - Qt::black, false, pmodeFullBlend() ); - } - else if ( elementFlags & CEF_HasFocus ) - { - TQRect re = TQStyle::visualRect(subRect(SR_ComboBoxFocusRect, ceData, elementFlags, cb), ceData, elementFlags); - if ( compact ) - re.addCoords( 3, 3, 0, -3 ); - p2->fillRect( re, cg.brush( TQColorGroup::Highlight ) ); - drawPrimitive( PE_FocusRect, p2, ceData, elementFlags, re, cg, - Style_FocusAtBorder, TQStyleOption( cg.highlight() ) ); - } - // TQComboBox draws the text on its own and uses the painter's current colors - if ( elementFlags & CEF_HasFocus ) - { - p->setPen( cg.highlightedText() ); - p->setBackgroundColor( cg.highlight() ); - } - else - { - p->setPen( cg.text() ); - p->setBackgroundColor( cg.button() ); - } - } - - if (p2 != p) - { - p2->end(); - delete p2; - p->drawPixmap(r.x(), r.y(), *buf); - delete buf; - } - - formMode = false; - break; - } - - case CC_SpinWidget: - { - const TQSpinWidget* sw = static_cast< const TQSpinWidget* >( widget ); - TQRect br = visualRect( querySubControlMetrics( (TQ_ComplexControl)CC_SpinWidget, ceData, elementFlags, SC_SpinWidgetButtonField, TQStyleOption::Default, widget ), ceData, elementFlags ); - if ( controls & SC_SpinWidgetButtonField ) - { - Keramik::SpinBoxPainter().draw( p, br, cg.button(), cg.background(), !sw->isEnabled() ); - if ( active & SC_SpinWidgetUp ) - Keramik::CenteredPainter( keramik_spinbox_pressed_arrow_up ).draw( p, br.x(), br.y() + 3, br.width(), br.height() / 2, cg.button(), cg.background() ); - else - Keramik::CenteredPainter( keramik_spinbox_arrow_up ).draw( p, br.x(), br.y() + 3, br.width(), br.height() / 2, cg.button(), cg.background(), !sw->isUpEnabled() ); - if ( active & SC_SpinWidgetDown ) - Keramik::CenteredPainter( keramik_spinbox_pressed_arrow_down ).draw( p, br.x(), br.y() + br.height() / 2 , br.width(), br.height() / 2 - 8, cg.button(), cg.background() ); - else - Keramik::CenteredPainter( keramik_spinbox_arrow_down ).draw( p, br.x(), br.y() + br.height() / 2, br.width(), br.height() / 2 - 8, cg.background(), cg.button(), !sw->isDownEnabled() ); - } - - if ( controls & SC_SpinWidgetFrame ) - drawPrimitive( PE_PanelLineEdit, p, ceData, elementFlags, r, cg ); - - break; - } - case CC_ScrollBar: - { - if (highlightScrollBar && (elementFlags & CEF_HasParentWidget)) //Don't do the check if not highlighting anyway - { - if (ceData.parentWidgetData.colorGroup.button() != ceData.colorGroup.button()) - customScrollMode = true; - } - bool horizontal = ceData.orientation == TQt::Horizontal; - TQRect slider, subpage, addpage, subline, addline; - if ( ceData.minSteps == ceData.maxSteps ) flags &= ~Style_Enabled; - - slider = querySubControlMetrics( control, ceData, elementFlags, SC_ScrollBarSlider, opt, widget ); - subpage = querySubControlMetrics( control, ceData, elementFlags, SC_ScrollBarSubPage, opt, widget ); - addpage = querySubControlMetrics( control, ceData, elementFlags, SC_ScrollBarAddPage, opt, widget ); - subline = querySubControlMetrics( control, ceData, elementFlags, SC_ScrollBarSubLine, opt, widget ); - addline = querySubControlMetrics( control, ceData, elementFlags, SC_ScrollBarAddLine, opt, widget ); - - if ( controls & SC_ScrollBarSubLine ) - drawPrimitive( PE_ScrollBarSubLine, p, ceData, elementFlags, subline, cg, - flags | ( ( active & SC_ScrollBarSubLine ) ? Style_Down : 0 ) ); - - TQRegion clip; - if ( controls & SC_ScrollBarSubPage ) clip |= subpage; - if ( controls & SC_ScrollBarAddPage ) clip |= addpage; - if ( horizontal ) - clip |= TQRect( slider.x(), 0, slider.width(), ceData.rect.height() ); - else - clip |= TQRect( 0, slider.y(), ceData.rect.width(), slider.height() ); - clip ^= slider; - - p->setClipRegion( clip ); - Keramik::ScrollBarPainter( KeramikGroove1, 2, horizontal ).draw( p, slider | subpage | addpage, cg.button(), cg.background(), disabled ); - - if ( controls & SC_ScrollBarSlider ) - { - if ( horizontal ) - p->setClipRect( slider.x(), slider.y(), addpage.right() - slider.x() + 1, slider.height() ); - else - p->setClipRect( slider.x(), slider.y(), slider.width(), addpage.bottom() - slider.y() + 1 ); - drawPrimitive( PE_ScrollBarSlider, p, ceData, elementFlags, slider, cg, - flags | ( ( active == SC_ScrollBarSlider ) ? Style_Down : 0 ) ); - } - p->setClipping( false ); - - if ( controls & ( SC_ScrollBarSubLine | SC_ScrollBarAddLine ) ) - { - drawPrimitive( PE_ScrollBarAddLine, p, ceData, elementFlags, addline, cg, flags ); - if ( active & SC_ScrollBarSubLine ) - { - if ( horizontal ) - p->setClipRect( TQRect( addline.x(), addline.y(), addline.width() / 2, addline.height() ) ); - else - p->setClipRect( TQRect( addline.x(), addline.y(), addline.width(), addline.height() / 2 ) ); - drawPrimitive( PE_ScrollBarAddLine, p, ceData, elementFlags, addline, cg, flags | Style_Down ); - } - else if ( active & SC_ScrollBarAddLine ) - { - if ( horizontal ) - p->setClipRect( TQRect( addline.x() + addline.width() / 2, addline.y(), addline.width() / 2, addline.height() ) ); - else - p->setClipRect( TQRect( addline.x(), addline.y() + addline.height() / 2, addline.width(), addline.height() / 2 ) ); - drawPrimitive( PE_ScrollBarAddLine, p, ceData, elementFlags, addline, cg, flags | Style_Down ); - } - } - - customScrollMode = false; - - - break; - } - - // TOOLBUTTON - // ------------------------------------------------------------------- - case CC_ToolButton: { - bool onToolbar = ceData.parentWidgetData.widgetObjectTypes.contains(TQTOOLBAR_OBJECT_NAME_STRING); - bool onExtender = !onToolbar && - ceData.parentWidgetData.widgetObjectTypes.contains( "QToolBarExtensionWidget") && - widget && widget->parentWidget()->parentWidget()->inherits( TQTOOLBAR_OBJECT_NAME_STRING ); - - bool onControlButtons = false; - if (!onToolbar && !onExtender && !ceData.parentWidgetData.widgetObjectTypes.isEmpty() && - !qstrcmp(ceData.parentWidgetData.name.ascii(),"qt_maxcontrols" ) ) - { - onControlButtons = true; - titleBarMode = Maximized; - } - - TQRect button, menuarea; - button = querySubControlMetrics(control, ceData, elementFlags, SC_ToolButton, opt, widget); - menuarea = querySubControlMetrics(control, ceData, elementFlags, SC_ToolButtonMenu, opt, widget); - - SFlags bflags = flags, - mflags = flags; - - if (active & SC_ToolButton) - bflags |= Style_Down; - if (active & SC_ToolButtonMenu) - mflags |= Style_Down; - - if (onToolbar && ceData.toolBarData.orientation == TQt::Horizontal) - bflags |= Style_Horizontal; - - if (controls & SC_ToolButton) - { - // If we're pressed, on, or raised... - if (bflags & (Style_Down | Style_On | Style_Raised) || onControlButtons) - { - //Make sure the standalone toolbuttons have a gradient in the right direction - if (!onToolbar && !onControlButtons) - bflags |= Style_Horizontal; - - drawPrimitive( PE_ButtonTool, p, ceData, elementFlags, button, cg, - bflags, opt); - } - - // Check whether to draw a background pixmap - else if ( !ceData.parentWidgetData.bgPixmap.isNull() ) - { - TQPixmap pixmap = ceData.parentWidgetData.bgPixmap; - p->drawTiledPixmap( r, pixmap, ceData.pos ); - } - else if (onToolbar) - { - renderToolbarWidgetBackground(p, ceData, elementFlags, widget); - } - else if (onExtender) - { - // This assumes floating toolbars can't have extenders, - //(so if we're on an extender, we're not floating) - TQWidget* parent = static_cast<TQWidget*> (TQT_TQWIDGET(widget->parent())); - TQToolBar* toolbar = static_cast<TQToolBar*>(TQT_TQWIDGET(parent->parent())); - TQRect tr = ceData.parentWidgetData.rect; - bool horiz = ceData.toolBarData.orientation == TQt::Horizontal; - - //Calculate offset. We do this by translating our coordinates, - //which are relative to the parent, to be relative to the toolbar. - int xoff = 0, yoff = 0; - if (horiz) - yoff = parent->mapToParent(ceData.pos).y(); - else - xoff = parent->mapToParent(ceData.pos).x(); - - Keramik::GradientPainter::renderGradient( p, r, cg.button(), - horiz, false, /*Not a menubar*/ - xoff, yoff, - tr.width(), tr.height()); - } - } - - // Draw a toolbutton menu indicator if required - if (controls & SC_ToolButtonMenu) - { - if (mflags & (Style_Down | Style_On | Style_Raised)) - drawPrimitive(PE_ButtonDropDown, p, ceData, elementFlags, menuarea, cg, mflags, opt); - drawPrimitive(PE_ArrowDown, p, ceData, elementFlags, menuarea, cg, mflags, opt); - } - - if ((elementFlags & CEF_HasFocus) && !(elementFlags & CEF_HasFocusProxy)) { - TQRect fr = ceData.rect; - fr.addCoords(3, 3, -3, -3); - drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg); - } - - titleBarMode = None; - - break; - } - - case CC_TitleBar: - titleBarMode = Regular; //Handle buttons on titlebar different from toolbuttons - default: - TDEStyle::drawComplexControl( control, p, ceData, elementFlags, - r, cg, flags, controls, active, opt, widget ); - - titleBarMode = None; - } -} - -void KeramikStyle::drawComplexControlMask( TQ_ComplexControl control, - TQPainter *p, - const TQStyleControlElementData &ceData, - const ControlElementFlags elementFlags, - const TQRect &r, - const TQStyleOption& opt, - const TQWidget *widget ) const -{ - if (control == CC_ComboBox) - { - maskMode = true; - drawComplexControl(CC_ComboBox, p, ceData, elementFlags, r, - TQApplication::palette().active(), Style_Default, - SC_ComboBoxFrame,SC_None, opt, widget); - maskMode = false; - - } - else - p->fillRect(r, color1); - -} - -int KeramikStyle::pixelMetric(PixelMetric m, const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, const TQWidget *widget) const -{ - switch(m) - { - // BUTTONS - // ------------------------------------------------------------------- - case PM_ButtonMargin: // Space btw. frame and label - return 4; - - case PM_SliderLength: - return 12; - case PM_SliderControlThickness: - return loader.size( keramik_slider ).height() - 4; - case PM_SliderThickness: - return loader.size( keramik_slider ).height(); - - case PM_ButtonShiftHorizontal: - return 0; - case PM_ButtonShiftVertical: // Offset by 1 - return 1; - - - // CHECKBOXES / RADIO BUTTONS - // ------------------------------------------------------------------- - case PM_ExclusiveIndicatorWidth: // Radiobutton size - return loader.size( keramik_radiobutton_on ).width(); - case PM_ExclusiveIndicatorHeight: - return loader.size( keramik_radiobutton_on ).height(); - case PM_IndicatorWidth: // Checkbox size - return loader.size( keramik_checkbox_on ).width(); - case PM_IndicatorHeight: - return loader.size( keramik_checkbox_on) .height(); - - case PM_ScrollBarExtent: - return loader.size( keramik_scrollbar_vbar + KeramikGroove1).width(); - case PM_ScrollBarSliderMin: - return loader.size( keramik_scrollbar_vbar + KeramikSlider1 ).height() + - loader.size( keramik_scrollbar_vbar + KeramikSlider3 ).height(); - - case PM_SpinBoxFrameWidth: - case PM_DefaultFrameWidth: - return 1; - - case PM_MenuButtonIndicator: - return 13; - - case PM_TabBarTabVSpace: - return 12; - - case PM_TabBarTabOverlap: - return 0; - - case PM_TabBarTabShiftVertical: - { - if (ceData.widgetObjectTypes.contains(TQTABBAR_OBJECT_NAME_STRING)) - { - if (ceData.tabBarData.shape == TQTabBar::RoundedBelow || - ceData.tabBarData.shape == TQTabBar::TriangularBelow) - return 0; - } - - return 2; //For top, or if not sure - } - - - case PM_TitleBarHeight: - return titleBarH; - - case PM_MenuIndicatorFrameHBorder: - case PM_MenuIndicatorFrameVBorder: - case PM_MenuIconIndicatorFrameHBorder: - case PM_MenuIconIndicatorFrameVBorder: - return 2; - - default: - return TDEStyle::pixelMetric(m, ceData, elementFlags, widget); - } -} - - -TQSize KeramikStyle::sizeFromContents( ContentsType contents, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQSize &contentSize, - const TQStyleOption& opt, - const TQWidget* widget ) const -{ - switch (contents) - { - // PUSHBUTTON SIZE - // ------------------------------------------------------------------ - case CT_PushButton: - { - const TQPushButton* btn = dynamic_cast< const TQPushButton* >( widget ); - - int w = contentSize.width() + 2 * pixelMetric( PM_ButtonMargin, ceData, elementFlags, widget ); - int h = contentSize.height() + 2 * pixelMetric( PM_ButtonMargin, ceData, elementFlags, widget ); - if ( ceData.text.isEmpty() && contentSize.width() < 32 ) return TQSize( w, h ); - - - //For some reason kcontrol no longer does this... - //if ( (elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault) ) - // w = QMAX( w, 40 ); - - return TQSize( w + 30, h + 5 ); //MX: No longer blank space -- can make a bit smaller - } - - case CT_ToolButton: - { - bool onToolbar = widget->parentWidget() && widget->parentWidget()->inherits( TQTOOLBAR_OBJECT_NAME_STRING ); - if (!onToolbar) //Behaves like a button, so scale appropriately to the border - { - int w = contentSize.width(); - int h = contentSize.height(); - return TQSize( w + 12, h + 10 ); - } - else - { - return TDEStyle::sizeFromContents( contents, ceData, elementFlags, contentSize, opt, widget ); - } - } - - case CT_ComboBox: { - int arrow = 11 + loader.size( keramik_ripple ).width(); - return TQSize( contentSize.width() + arrow + ((elementFlags & CEF_IsEditable) ? 26 : 22), - contentSize.height() + 10 ); - } - - // POPUPMENU ITEM SIZE - // ----------------------------------------------------------------- - case CT_PopupMenuItem: { - if ( ! widget || opt.isDefault() ) - return contentSize; - - const TQPopupMenu *popup = (const TQPopupMenu *) widget; - bool checkable = popup->isCheckable(); - TQMenuItem *mi = opt.menuItem(); - int maxpmw = opt.maxIconWidth(); - int w = contentSize.width(), h = contentSize.height(); - - if ( mi->custom() ) { - w = mi->custom()->sizeHint().width(); - h = mi->custom()->sizeHint().height(); - if ( ! mi->custom()->fullSpan() ) - h += 2*itemVMargin + 2*itemFrame; - } - else if ( mi->widget() ) { - } else if ( mi->isSeparator() ) { - w = 30; // Arbitrary - h = 3; - } - else { - if ( mi->pixmap() ) - h = QMAX( h, mi->pixmap()->height() + 2*itemFrame ); - else { - // Ensure that the minimum height for text-only menu items - // is the same as the icon size used by KDE. - h = QMAX( h, 16 + 2*itemFrame ); - h = QMAX( h, popup->fontMetrics().height() - + 2*itemVMargin + 2*itemFrame ); - } - - if ( mi->iconSet() ) - h = QMAX( h, mi->iconSet()->pixmap( - TQIconSet::Small, TQIconSet::Normal).height() + - 2 * itemFrame ); - } - - if ( ! mi->text().isNull() && mi->text().find('\t') >= 0 ) - w += itemHMargin + itemFrame*2 + 7; - else if ( mi->popup() ) - w += 2 * arrowHMargin; - - if ( maxpmw ) - w += maxpmw + 6; - if ( checkable && maxpmw < 20 ) - w += 20 - maxpmw; - if ( checkable || maxpmw > 0 ) - w += 12; - - w += rightBorder; - - return TQSize( w, h ); - } - - default: - return TDEStyle::sizeFromContents( contents, ceData, elementFlags, contentSize, opt, widget ); - } -} - - -TQStyle::SubControl KeramikStyle::querySubControl( TQ_ComplexControl control, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQPoint& point, - const TQStyleOption& opt, - const TQWidget* widget ) const -{ - SubControl result = TDEStyle::querySubControl( control, ceData, elementFlags, point, opt, widget ); - if ( control == CC_ScrollBar && result == SC_ScrollBarAddLine ) - { - TQRect addline = querySubControlMetrics( control, ceData, elementFlags, result, opt, widget ); - if ( static_cast< const TQScrollBar* >( widget )->orientation() == Qt::Horizontal ) - { - if ( point.x() < addline.center().x() ) result = SC_ScrollBarSubLine; - } - else if ( point.y() < addline.center().y() ) result = SC_ScrollBarSubLine; - } - return result; -} - -TQRect KeramikStyle::querySubControlMetrics( TQ_ComplexControl control, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - SubControl subcontrol, - const TQStyleOption& opt, - const TQWidget* widget ) const -{ - switch ( control ) - { - case CC_ComboBox: - { - int arrow; - bool compact = false; - if ( isSizeConstrainedCombo(ceData, elementFlags, dynamic_cast<const TQComboBox*>(widget)) ) //### constant - compact = true; - - if ( compact ) - arrow = 11; - else - arrow = 11 + loader.size( keramik_ripple ).width(); - - switch ( subcontrol ) - { - case SC_ComboBoxArrow: - if ( compact ) - return TQRect( ceData.rect.width() - arrow - 7, 0, arrow + 6, ceData.rect.height() ); - else - return TQRect( ceData.rect.width() - arrow - 14, 0, arrow + 13, ceData.rect.height() ); - - case SC_ComboBoxEditField: - { - if ( compact ) - return TQRect( 2, 4, ceData.rect.width() - arrow - 2 - 7, ceData.rect.height() - 8 ); - else if ( ceData.rect.width() < 36 || ceData.rect.height() < 22 ) - return TQRect( 4, 3, ceData.rect.width() - arrow - 20, ceData.rect.height() - 6 ); - else if ( elementFlags & CEF_IsEditable ) - return TQRect( 8, 4, ceData.rect.width() - arrow - 26, ceData.rect.height() - 11 ); - else - return TQRect( 6, 4, ceData.rect.width() - arrow - 22, ceData.rect.height() - 9 ); - } - - case SC_ComboBoxListBoxPopup: - { - //Note that the widget here == the combo, not the completion - //box, so we don't get any recursion - int suggestedWidth = widget->sizeHint().width(); - TQRect def = opt.rect(); - def.addCoords( 4, -4, -6, 4 ); - - if ((def.width() - suggestedWidth < -12) && (def.width() < 80)) - def.setWidth(QMIN(80, suggestedWidth - 10)); - - return def; - } - - default: break; - } - break; - } - - case CC_ScrollBar: - { - bool horizontal = ceData.orientation == TQt::Horizontal; - int addline, subline, sliderpos, sliderlen, maxlen, slidermin; - if ( horizontal ) - { - subline = loader.size( keramik_scrollbar_hbar_arrow1 ).width(); - addline = loader.size( keramik_scrollbar_hbar_arrow2 ).width(); - maxlen = ceData.rect.width() - subline - addline + 2; - } - else - { - subline = loader.size( keramik_scrollbar_vbar_arrow1 ).height(); - addline = loader.size( keramik_scrollbar_vbar_arrow2 ).height(); - maxlen = ceData.rect.height() - subline - addline + 2; - } - sliderpos = ceData.startStep; - if ( ceData.minSteps != ceData.maxSteps ) - { - int range = ceData.maxSteps - ceData.minSteps; - sliderlen = ( ceData.pageStep * maxlen ) / ( range + ceData.pageStep ); - slidermin = pixelMetric( PM_ScrollBarSliderMin, ceData, elementFlags, widget ); - if ( sliderlen < slidermin ) sliderlen = slidermin; - if ( sliderlen > maxlen ) sliderlen = maxlen; - } - else sliderlen = maxlen; - - switch ( subcontrol ) - { - case SC_ScrollBarGroove: - if ( horizontal ) return TQRect( subline, 0, maxlen, ceData.rect.height() ); - else return TQRect( 0, subline, ceData.rect.width(), maxlen ); - - case SC_ScrollBarSlider: - if (horizontal) return TQRect( sliderpos, 0, sliderlen, ceData.rect.height() ); - else return TQRect( 0, sliderpos, ceData.rect.width(), sliderlen ); - - case SC_ScrollBarSubLine: - if ( horizontal ) return TQRect( 0, 0, subline, ceData.rect.height() ); - else return TQRect( 0, 0, ceData.rect.width(), subline ); - - case SC_ScrollBarAddLine: - if ( horizontal ) return TQRect( ceData.rect.width() - addline, 0, addline, ceData.rect.height() ); - else return TQRect( 0, ceData.rect.height() - addline, ceData.rect.width(), addline ); - - case SC_ScrollBarSubPage: - if ( horizontal ) return TQRect( subline, 0, sliderpos - subline, ceData.rect.height() ); - else return TQRect( 0, subline, ceData.rect.width(), sliderpos - subline ); - - case SC_ScrollBarAddPage: - if ( horizontal ) return TQRect( sliderpos + sliderlen, 0, ceData.rect.width() - addline - (sliderpos + sliderlen) , ceData.rect.height() ); - else return TQRect( 0, sliderpos + sliderlen, ceData.rect.width(), ceData.rect.height() - addline - (sliderpos + sliderlen) - /*maxlen - sliderpos - sliderlen + subline - 5*/ ); - - default: break; - }; - break; - } - case CC_Slider: - { - bool horizontal = ceData.orientation == TQt::Horizontal; - TQSlider::TickSetting ticks = (TQSlider::TickSetting)ceData.tickMarkSetting; - int pos = ceData.startStep; - int size = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget ); - int handleSize = pixelMetric( PM_SliderThickness, ceData, elementFlags, widget ); - int len = pixelMetric( PM_SliderLength, ceData, elementFlags, widget ); - - //Shrink the metrics if the widget is too small - //to fit our normal values for them. - if (horizontal) - handleSize = QMIN(handleSize, ceData.rect.height()); - else - handleSize = QMIN(handleSize, ceData.rect.width()); - - size = QMIN(size, handleSize); - - switch ( subcontrol ) - { - case SC_SliderGroove: - if ( horizontal ) - { - if ( ticks == TQSlider::Both ) - return TQRect( 0, ( ceData.rect.height() - size ) / 2, ceData.rect.width(), size ); - else if ( ticks == TQSlider::Above ) - return TQRect( 0, ceData.rect.height() - size - ( handleSize - size ) / 2, ceData.rect.width(), size ); - return TQRect( 0, ( handleSize - size ) / 2, ceData.rect.width(), size ); - } - else - { - if ( ticks == TQSlider::Both ) - return TQRect( ( ceData.rect.width() - size ) / 2, 0, size, ceData.rect.height() ); - else if ( ticks == TQSlider::Above ) - return TQRect( ceData.rect.width() - size - ( handleSize - size ) / 2, 0, size, ceData.rect.height() ); - return TQRect( ( handleSize - size ) / 2, 0, size, ceData.rect.height() ); - } - case SC_SliderHandle: - if ( horizontal ) - { - if ( ticks == TQSlider::Both ) - return TQRect( pos, ( ceData.rect.height() - handleSize ) / 2, len, handleSize ); - else if ( ticks == TQSlider::Above ) - return TQRect( pos, ceData.rect.height() - handleSize, len, handleSize ); - return TQRect( pos, 0, len, handleSize ); - } - else - { - if ( ticks == TQSlider::Both ) - return TQRect( ( ceData.rect.width() - handleSize ) / 2, pos, handleSize, len ); - else if ( ticks == TQSlider::Above ) - return TQRect( ceData.rect.width() - handleSize, pos, handleSize, len ); - return TQRect( 0, pos, handleSize, len ); - } - default: break; - } - break; - } - default: break; - } - return TDEStyle::querySubControlMetrics( control, ceData, elementFlags, subcontrol, opt, widget ); -} - - -#include <config.h> - -#if !defined Q_WS_X11 || defined K_WS_QTONLY -#undef HAVE_X11_EXTENSIONS_SHAPE_H -#endif - -#ifdef HAVE_X11_EXTENSIONS_SHAPE_H -//Xlib headers are a mess -> include them down here (any way to ensure that we go second in enable-final order?) -#include <X11/Xlib.h> -#include <X11/extensions/shape.h> -#undef KeyPress -#undef KeyRelease -#endif - -bool KeramikStyle::objectEventHandler( const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void* source, TQEvent *event ) -{ - if (TDEStyle::objectEventHandler( ceData, elementFlags, source, event )) - return true; - - if (ceData.widgetObjectTypes.contains(TQOBJECT_OBJECT_NAME_STRING)) { - TQObject* object = reinterpret_cast<TQObject*>(source); - - if ( !object->isWidgetType() ) return false; - - //Combo line edits get special frames - if ( event->type() == TQEvent::Paint && ::tqqt_cast<TQLineEdit*>(object) ) - { - static bool recursion = false; - if (recursion ) - return false; - - recursion = true; - object->event( TQT_TQPAINTEVENT( event ) ); - TQWidget* widget = TQT_TQWIDGET( object ); - TQPainter p( widget ); - Keramik::RectTilePainter( keramik_frame_shadow, false, false, 2, 2 ).draw( &p, ceData.rect, - widget->palette().color( TQPalette::Normal, TQColorGroup::Button ), - Qt::black, false, Keramik::TilePainter::PaintFullBlend); - recursion = false; - return true; - } - else if ( ::tqqt_cast<TQListBox*>(object) ) - { - //Handle combobox drop downs - switch (event->type()) - { -#ifdef HAVE_X11_EXTENSIONS_SHAPE_H - //Combo dropdowns are shaped - case TQEvent::Resize: - { - TQListBox* listbox = static_cast<TQListBox*>(TQT_TQWIDGET(object)); - TQResizeEvent* resize = TQT_TQRESIZEEVENT(event); - if (resize->size().height() < 6) - return false; - - //CHECKME: Not sure the rects are perfect.. - XRectangle rects[5] = { - {0, 0, resize->size().width()-2, resize->size().height()-6}, - {0, resize->size().height()-6, resize->size().width()-2, 1}, - {1, resize->size().height()-5, resize->size().width()-3, 1}, - {2, resize->size().height()-4, resize->size().width()-5, 1}, - {3, resize->size().height()-3, resize->size().width()-7, 1} - }; - - XShapeCombineRectangles(tqt_xdisplay(), listbox->handle(), ShapeBounding, 0, 0, - rects, 5, ShapeSet, YXSorted); - } - break; -#endif - //Combo dropdowns get fancy borders - case TQEvent::Paint: - { - static bool recursion = false; - if (recursion ) - return false; - TQListBox* listbox = (TQListBox*) object; - TQPaintEvent* paint = (TQPaintEvent*) event; - - - if ( !listbox->contentsRect().contains( paint->rect() ) ) - { - TQPainter p( listbox ); - Keramik::RectTilePainter( keramik_combobox_list, false, false ).draw( &p, 0, 0, listbox->width(), listbox->height(), - listbox->palette().color( TQPalette::Normal, TQColorGroup::Button ), - listbox->palette().color( TQPalette::Normal, TQColorGroup::Background ) ); - - TQPaintEvent newpaint( paint->region().intersect( listbox->contentsRect() ), paint->erased() ); - recursion = true; - object->event( &newpaint ); - recursion = false; - return true; - } - } - break; - - /** - Since our popup is shown a bit overlapping the combo body, a mouse click at the bottom of the - widget will result in the release going to the popup, which will cause it to close (#56435). - We solve it by filtering out the first release, if it's in the right area. To do this, we notices shows, - move ourselves to front of event filter list, and then capture the first release event, and if it's - in the overlap area, filter it out. - */ - case TQEvent::Show: - //Prioritize ourselves to see the mouse events first - removeObjectEventHandler(ceData, elementFlags, source, this); - installObjectEventHandler(ceData, elementFlags, source, this); - firstComboPopupRelease = true; - break; - - //We need to filter some clicks out. - case TQEvent::MouseButtonRelease: - if (firstComboPopupRelease) - { - firstComboPopupRelease = false; - - TQMouseEvent* mev = TQT_TQMOUSEEVENT(event); - TQListBox* box = static_cast<TQListBox*>(TQT_TQWIDGET(object)); - - TQWidget* parent = box->parentWidget(); - if (!parent) - return false; - - TQPoint inParCoords = parent->mapFromGlobal(mev->globalPos()); - if (parent->rect().contains(inParCoords)) - return true; - } - break; - case TQEvent::MouseButtonPress: - case TQEvent::MouseButtonDblClick: - case TQEvent::Wheel: - case TQEvent::KeyPress: - case TQEvent::KeyRelease: - firstComboPopupRelease = false; - default: - return false; - } - } - //Toolbar background gradient handling - else if (event->type() == TQEvent::Paint && - object->parent() && !qstrcmp(object->name(), kdeToolbarWidget) ) - { - // Draw a gradient background for custom widgets in the toolbar - // that have specified a "kde toolbar widget" name. - renderToolbarWidgetBackground(0, ceData, elementFlags, TQT_TQWIDGET(object)); - - return false; // Now draw the contents - } -#if 0 // FIXME - // This does not work on modern systems - // Rather than resorting to hacks like this, which can stop working at any time, the required functionality should simply be added to TQt3! - else if (event->type() == TQEvent::Paint && object->parent() && ::tqqt_cast<TQToolBar*>(object->parent()) - && !::tqqt_cast<TQPopupMenu*>(object) ) - { - // We need to override the paint event to draw a - // gradient on a QToolBarExtensionWidget. - TQToolBar* toolbar = static_cast<TQToolBar*>(TQT_TQWIDGET(object->parent())); - TQWidget* widget = TQT_TQWIDGET(object); - TQRect wr = widget->rect (), tr = toolbar->rect(); - TQPainter p( widget ); - - if ( toolbar->orientation() == Qt::Horizontal ) - { - Keramik::GradientPainter::renderGradient( &p, wr, widget->colorGroup().button(), - true /*horizontal*/, false /*not a menu*/, - 0, widget->y(), wr.width(), tr.height()); - } - else - { - Keramik::GradientPainter::renderGradient( &p, wr, widget->colorGroup().button(), - false /*vertical*/, false /*not a menu*/, - widget->x(), 0, tr.width(), wr.height()); - } - - - //Draw terminator line, too - p.setPen( toolbar->colorGroup().mid() ); - if ( toolbar->orientation() == Qt::Horizontal ) - p.drawLine( wr.width()-1, 0, wr.width()-1, wr.height()-1 ); - else - p.drawLine( 0, wr.height()-1, wr.width()-1, wr.height()-1 ); - return true; - - } -#endif - // Track show events for progress bars - if ( animateProgressBar && ::tqqt_cast<TQProgressBar*>(object) ) - { - if ((event->type() == TQEvent::Show) && !animationTimer->isActive()) - { - animationTimer->start( 50, false ); - } - } - } - - return false; -} - -/*! \reimp */ -int KeramikStyle::styleHint(StyleHint sh, const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, const TQStyleOption &opt, TQStyleHintReturn *returnData, const TQWidget *w) const -{ - int ret; - - switch (sh) { - case SH_MenuIndicatorColumnWidth: - { - int checkcol = opt.maxIconWidth(); - bool checkable = (elementFlags & CEF_IsCheckable); - - if ( checkable ) - checkcol = QMAX( checkcol, 20 ); - - ret = checkcol; - } - break; - case SH_ScrollBar_CombineAddLineRegionDrawingAreas: - ret = 1; - break; - default: - ret = TDEStyle::styleHint(sh, ceData, elementFlags, opt, returnData, w); - break; - } - - return ret; -} - -// vim: ts=4 sw=4 noet -// kate: indent-width 4; replace-tabs off; tab-width 4; space-indent off; diff --git a/kstyles/keramik/keramik.h b/kstyles/keramik/keramik.h deleted file mode 100644 index 7bf8cd3d4..000000000 --- a/kstyles/keramik/keramik.h +++ /dev/null @@ -1,226 +0,0 @@ -/* Keramik Style for KDE3 - Copyright (c) 2002 Malte Starostik <malte@kde.org> - - based on the KDE3 HighColor Style - - Copyright (C) 2001-2002 Karol Szwed <gallium@kde.org> - (C) 2001-2002 Fredrik H�glund <fredrik@kde.org> - - Drawing routines adapted from the KDE2 HCStyle, - Copyright (C) 2000 Daniel M. Duley <mosfet@kde.org> - (C) 2000 Dirk Mueller <mueller@kde.org> - (C) 2001 Martijn Klingens <klingens@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -// $Id$ - -#ifndef __keramik_h__ -#define __keramik_h__ - -#include <tqframe.h> -#include <tdestyle.h> - -#include "pixmaploader.h" - -class TQProgressBar; - -class KeramikStyle : public TDEStyle -{ - Q_OBJECT - -public: - KeramikStyle(); - virtual ~KeramikStyle(); - - void renderMenuBlendPixmap( KPixmap& pix, const TQColorGroup &cg, const TQPopupMenu* ) const; - TQPixmap stylePixmap(StylePixmap stylepixmap, const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, const TQStyleOption& opt, const TQWidget* widget = 0) const; - - void polish( const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void * ); - void unPolish( const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void * ); - void polish( TQPalette& ); - void applicationPolish( const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void * ); - - void drawTDEStylePrimitive( TDEStylePrimitive kpe, - TQPainter* p, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQRect& r, - const TQColorGroup& cg, - SFlags flags = Style_Default, - const TQStyleOption& = TQStyleOption::Default, - const TQWidget* widget = 0 ) const; - - void drawPrimitive( TQ_PrimitiveElement pe, - TQPainter* p, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQRect& r, - const TQColorGroup& cg, - SFlags flags = Style_Default, - const TQStyleOption& = TQStyleOption::Default ) const; - - void drawControl( TQ_ControlElement element, - TQPainter* p, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQRect& r, - const TQColorGroup& cg, - SFlags flags = Style_Default, - const TQStyleOption& opt = TQStyleOption::Default, - const TQWidget* widget = 0 ) const; - - void drawControlMask( TQ_ControlElement element, - TQPainter* p, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQRect& r, - const TQStyleOption& opt = TQStyleOption::Default, - const TQWidget* widget = 0 ) const; - - void drawComplexControl( TQ_ComplexControl control, - TQPainter* p, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQRect& r, - const TQColorGroup& cg, - SFlags flags = Style_Default, - SCFlags controls = SC_All, - SCFlags active = SC_None, - const TQStyleOption& = TQStyleOption::Default, - const TQWidget* widget = 0 ) const; - - void drawComplexControlMask( TQ_ComplexControl control, - TQPainter* p, - const TQStyleControlElementData &ceData, - const ControlElementFlags elementFlags, - const TQRect& r, - const TQStyleOption& = TQStyleOption::Default, - const TQWidget* widget = 0 ) const; - - int pixelMetric( PixelMetric m, const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, const TQWidget* widget = 0 ) const; - - TQSize sizeFromContents( ContentsType contents, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQSize& contentSize, - const TQStyleOption& opt, - const TQWidget* widget = 0 ) const; - - SubControl querySubControl( TQ_ComplexControl control, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - const TQPoint& point, - const TQStyleOption& opt = TQStyleOption::Default, - const TQWidget* widget = 0 ) const; - - TQRect querySubControlMetrics( TQ_ComplexControl control, - const TQStyleControlElementData &ceData, - ControlElementFlags elementFlags, - SubControl subcontrol, - const TQStyleOption& opt = TQStyleOption::Default, - const TQWidget* widget = 0 ) const; - - int styleHint(TQ_StyleHint, const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, - const TQStyleOption & = TQStyleOption::Default, - TQStyleHintReturn * = 0, const TQWidget * = 0 ) const; - -private slots: - //Animation slots. - void updateProgressPos(); - void progressBarDestroyed(TQObject* bar); - -private: - - bool isSizeConstrainedCombo(const TQStyleControlElementData &ceData, const ControlElementFlags elementFlags, const TQComboBox* widget) const; - bool isFormWidget (const TQStyleControlElementData &ceData, const ControlElementFlags elementFlags, const TQWidget* widget) const; - - ///Configuration settings - bool animateProgressBar; - bool highlightScrollBar; - - //Rendering flags - mutable bool forceSmallMode; - mutable bool maskMode; //Ugly round trip flag to permit masking with little code; - mutable bool formMode; //Set when rendering form widgets - - mutable const TQWidget* toolbarBlendWidget; //Ditto for blending with toolbars - - enum TitleBarMode - { - None = 0, - Regular, - Maximized - }; - - mutable TitleBarMode titleBarMode; //Set when passing back CC_TilteBar modes to handle - //PE_ButtonTool properly for them, as well as when handling CC_ToolButton from - //The maximized window controls. - - mutable bool flatMode; //Set when calling PE_PushButton or PE_ButtonDefault - // on a flat button. - - mutable bool customScrollMode; //Set when drawing scrollbars with custom colors. - - bool firstComboPopupRelease; - - //Animation support. - TQMap<TQProgressBar*, int> progAnimWidgets; - - virtual bool objectEventHandler( const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void* source, TQEvent *e ); - - Keramik::TilePainter::PaintMode pmode() const - { - if (formMode) - { - //If we're a form widget, we blend on painting, and consider ourselves - //not to have a mask (so we don't get clipped to it) - if (maskMode) - return Keramik::TilePainter::PaintTrivialMask; - else - return Keramik::TilePainter::PaintFullBlend; - } - else - { - if (maskMode) - return Keramik::TilePainter::PaintMask; - else - return Keramik::TilePainter::PaintNormal; - } - } - - Keramik::TilePainter::PaintMode pmodeFullBlend() const - { - return maskMode?Keramik::TilePainter::PaintMask : Keramik::TilePainter::PaintFullBlend; - } - - bool kickerMode; - - // For progress bar animation - TQTimer *animationTimer; - - TQRect subRect(SubRect r, const TQStyleControlElementData &ceData, const ControlElementFlags elementFlags, const TQWidget *widget) const; - - // Disable copy constructor and = operator - KeramikStyle( const KeramikStyle& ); - KeramikStyle& operator=( const KeramikStyle& ); -}; - -#endif - -// vim: ts=4 sw=4 noet -// kate: indent-width 4; replace-tabs off; tab-width 4; diff --git a/kstyles/keramik/keramikimage.h b/kstyles/keramik/keramikimage.h deleted file mode 100644 index 05bc75900..000000000 --- a/kstyles/keramik/keramikimage.h +++ /dev/null @@ -1,69 +0,0 @@ -/* Keramik Style for KDE3 - Copyright (c) 2002 Malte Starostik <malte@kde.org> - (c) 2002 Maksim Orlovich <mo002j@mail.rochester.edu> - - based on the KDE3 HighColor Style - - Copyright (C) 2001-2002 Karol Szwed <gallium@kde.org> - (C) 2001-2002 Fredrik Höglund <fredrik@kde.org> - - Drawing routines adapted from the KDE2 HCStyle, - Copyright (C) 2000 Daniel M. Duley <mosfet@kde.org> - (C) 2000 Dirk Mueller <mueller@kde.org> - (C) 2001 Martijn Klingens <klingens@kde.org> - - Progressbar code based on TDEStyle, Copyright (C) 2001-2002 Karol Szwed <gallium@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - - -#ifndef KERAMIK_IMAGE_H -#define KERAMIK_IMAGE_H - -struct KeramikEmbedImage -{ - bool haveAlpha; - int width; - int height; - int id; - const unsigned char* data; -}; - -extern KeramikEmbedImage* KeramikGetDbImage(int id); -extern void KeramikDbCleanup(); - -enum KeramikTileType -{ - KeramikTileTL = 0, - KeramikTileTC = 1, - KeramikTileTR = 2, - KeramikTileCL = 3, - KeramikTileCC = 4, - KeramikTileCR = 5, - KeramikTileRL = 6, - KeramikTileRC = 7, - KeramikTileRR = 8, - KeramikTileSeparator = 16, - KeramikSlider1 = 32, - KeramikSlider2 = 48, - KeramikSlider3 = 64, - KeramikSlider4 = 80, - KeramikGroove1 = 96, - KeramikGroove2 = 112 -}; - -#endif diff --git a/kstyles/keramik/pics/checkbox-off.png b/kstyles/keramik/pics/checkbox-off.png Binary files differdeleted file mode 100644 index 0cade1079..000000000 --- a/kstyles/keramik/pics/checkbox-off.png +++ /dev/null diff --git a/kstyles/keramik/pics/checkbox-on.png b/kstyles/keramik/pics/checkbox-on.png Binary files differdeleted file mode 100644 index 69c1a7d83..000000000 --- a/kstyles/keramik/pics/checkbox-on.png +++ /dev/null diff --git a/kstyles/keramik/pics/checkbox-tri.png b/kstyles/keramik/pics/checkbox-tri.png Binary files differdeleted file mode 100644 index c73ca8124..000000000 --- a/kstyles/keramik/pics/checkbox-tri.png +++ /dev/null diff --git a/kstyles/keramik/pics/combobox-list-bc.png b/kstyles/keramik/pics/combobox-list-bc.png Binary files differdeleted file mode 100644 index 609a72627..000000000 --- a/kstyles/keramik/pics/combobox-list-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/combobox-list-bl.png b/kstyles/keramik/pics/combobox-list-bl.png Binary files differdeleted file mode 100644 index 512bbeafe..000000000 --- a/kstyles/keramik/pics/combobox-list-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/combobox-list-br.png b/kstyles/keramik/pics/combobox-list-br.png Binary files differdeleted file mode 100644 index 93151ffa6..000000000 --- a/kstyles/keramik/pics/combobox-list-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/combobox-list-cl.png b/kstyles/keramik/pics/combobox-list-cl.png Binary files differdeleted file mode 100644 index e0b29c26d..000000000 --- a/kstyles/keramik/pics/combobox-list-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/combobox-list-cr.png b/kstyles/keramik/pics/combobox-list-cr.png Binary files differdeleted file mode 100644 index 33b9b7224..000000000 --- a/kstyles/keramik/pics/combobox-list-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/combobox-list-tc.png b/kstyles/keramik/pics/combobox-list-tc.png Binary files differdeleted file mode 100644 index a3f5d7225..000000000 --- a/kstyles/keramik/pics/combobox-list-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/combobox-list-tl.png b/kstyles/keramik/pics/combobox-list-tl.png Binary files differdeleted file mode 100644 index 89d4b48d2..000000000 --- a/kstyles/keramik/pics/combobox-list-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/combobox-list-tr.png b/kstyles/keramik/pics/combobox-list-tr.png Binary files differdeleted file mode 100644 index 54e5d6032..000000000 --- a/kstyles/keramik/pics/combobox-list-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/frame-shadow-cl.png b/kstyles/keramik/pics/frame-shadow-cl.png Binary files differdeleted file mode 100644 index d9b5edb1f..000000000 --- a/kstyles/keramik/pics/frame-shadow-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/frame-shadow-tc.png b/kstyles/keramik/pics/frame-shadow-tc.png Binary files differdeleted file mode 100644 index 408e07314..000000000 --- a/kstyles/keramik/pics/frame-shadow-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/frame-shadow-tl.png b/kstyles/keramik/pics/frame-shadow-tl.png Binary files differdeleted file mode 100644 index 8e6e3a147..000000000 --- a/kstyles/keramik/pics/frame-shadow-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-bc.png b/kstyles/keramik/pics/listview-bc.png Binary files differdeleted file mode 100644 index fc615ea8a..000000000 --- a/kstyles/keramik/pics/listview-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-bl.png b/kstyles/keramik/pics/listview-bl.png Binary files differdeleted file mode 100644 index efd68101a..000000000 --- a/kstyles/keramik/pics/listview-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-br.png b/kstyles/keramik/pics/listview-br.png Binary files differdeleted file mode 100644 index 7e35a14c8..000000000 --- a/kstyles/keramik/pics/listview-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-cc.png b/kstyles/keramik/pics/listview-cc.png Binary files differdeleted file mode 100644 index 9fa204bf4..000000000 --- a/kstyles/keramik/pics/listview-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-cl.png b/kstyles/keramik/pics/listview-cl.png Binary files differdeleted file mode 100644 index 41850b2e6..000000000 --- a/kstyles/keramik/pics/listview-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-cr.png b/kstyles/keramik/pics/listview-cr.png Binary files differdeleted file mode 100644 index 69b1cf8c6..000000000 --- a/kstyles/keramik/pics/listview-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-pressed-bc.png b/kstyles/keramik/pics/listview-pressed-bc.png Binary files differdeleted file mode 100644 index 283fe7329..000000000 --- a/kstyles/keramik/pics/listview-pressed-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-pressed-bl.png b/kstyles/keramik/pics/listview-pressed-bl.png Binary files differdeleted file mode 100644 index a457f83a6..000000000 --- a/kstyles/keramik/pics/listview-pressed-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-pressed-br.png b/kstyles/keramik/pics/listview-pressed-br.png Binary files differdeleted file mode 100644 index a49203f89..000000000 --- a/kstyles/keramik/pics/listview-pressed-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-pressed-cc.png b/kstyles/keramik/pics/listview-pressed-cc.png Binary files differdeleted file mode 100644 index 63265116e..000000000 --- a/kstyles/keramik/pics/listview-pressed-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-pressed-cl.png b/kstyles/keramik/pics/listview-pressed-cl.png Binary files differdeleted file mode 100644 index 7dcc0540c..000000000 --- a/kstyles/keramik/pics/listview-pressed-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-pressed-cr.png b/kstyles/keramik/pics/listview-pressed-cr.png Binary files differdeleted file mode 100644 index 3a0b74f9a..000000000 --- a/kstyles/keramik/pics/listview-pressed-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-pressed-tc.png b/kstyles/keramik/pics/listview-pressed-tc.png Binary files differdeleted file mode 100644 index 1fa2e6905..000000000 --- a/kstyles/keramik/pics/listview-pressed-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-pressed-tl.png b/kstyles/keramik/pics/listview-pressed-tl.png Binary files differdeleted file mode 100644 index e58e62306..000000000 --- a/kstyles/keramik/pics/listview-pressed-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-pressed-tr.png b/kstyles/keramik/pics/listview-pressed-tr.png Binary files differdeleted file mode 100644 index bc33f3823..000000000 --- a/kstyles/keramik/pics/listview-pressed-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-tc.png b/kstyles/keramik/pics/listview-tc.png Binary files differdeleted file mode 100644 index 09434cebb..000000000 --- a/kstyles/keramik/pics/listview-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-tl.png b/kstyles/keramik/pics/listview-tl.png Binary files differdeleted file mode 100644 index d2ca26d7a..000000000 --- a/kstyles/keramik/pics/listview-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/listview-tr.png b/kstyles/keramik/pics/listview-tr.png Binary files differdeleted file mode 100644 index 42c49a597..000000000 --- a/kstyles/keramik/pics/listview-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/menuitem-cc.png b/kstyles/keramik/pics/menuitem-cc.png Binary files differdeleted file mode 100644 index 29362ccc8..000000000 --- a/kstyles/keramik/pics/menuitem-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/menuitem-cl.png b/kstyles/keramik/pics/menuitem-cl.png Binary files differdeleted file mode 100644 index c742516f4..000000000 --- a/kstyles/keramik/pics/menuitem-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/menuitem-cr.png b/kstyles/keramik/pics/menuitem-cr.png Binary files differdeleted file mode 100644 index c742516f4..000000000 --- a/kstyles/keramik/pics/menuitem-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/progressbar-cc.png b/kstyles/keramik/pics/progressbar-cc.png Binary files differdeleted file mode 100644 index e7881df47..000000000 --- a/kstyles/keramik/pics/progressbar-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/progressbar-cl.png b/kstyles/keramik/pics/progressbar-cl.png Binary files differdeleted file mode 100644 index 66824c873..000000000 --- a/kstyles/keramik/pics/progressbar-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/progressbar-cr.png b/kstyles/keramik/pics/progressbar-cr.png Binary files differdeleted file mode 100644 index c6d61e75d..000000000 --- a/kstyles/keramik/pics/progressbar-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-bc.png b/kstyles/keramik/pics/pushbutton-bc.png Binary files differdeleted file mode 100644 index 62f169aa2..000000000 --- a/kstyles/keramik/pics/pushbutton-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-bl.png b/kstyles/keramik/pics/pushbutton-bl.png Binary files differdeleted file mode 100644 index ea17ef991..000000000 --- a/kstyles/keramik/pics/pushbutton-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-br.png b/kstyles/keramik/pics/pushbutton-br.png Binary files differdeleted file mode 100644 index 91703e742..000000000 --- a/kstyles/keramik/pics/pushbutton-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-cc.png b/kstyles/keramik/pics/pushbutton-cc.png Binary files differdeleted file mode 100644 index ac5a2fdc0..000000000 --- a/kstyles/keramik/pics/pushbutton-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-cl.png b/kstyles/keramik/pics/pushbutton-cl.png Binary files differdeleted file mode 100644 index 0a9c56630..000000000 --- a/kstyles/keramik/pics/pushbutton-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-cr.png b/kstyles/keramik/pics/pushbutton-cr.png Binary files differdeleted file mode 100644 index 68449467f..000000000 --- a/kstyles/keramik/pics/pushbutton-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-bc.png b/kstyles/keramik/pics/pushbutton-default-bc.png Binary files differdeleted file mode 100644 index 308020237..000000000 --- a/kstyles/keramik/pics/pushbutton-default-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-bl.png b/kstyles/keramik/pics/pushbutton-default-bl.png Binary files differdeleted file mode 100644 index 97c69cd1c..000000000 --- a/kstyles/keramik/pics/pushbutton-default-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-br.png b/kstyles/keramik/pics/pushbutton-default-br.png Binary files differdeleted file mode 100644 index e084dca00..000000000 --- a/kstyles/keramik/pics/pushbutton-default-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-cc.png b/kstyles/keramik/pics/pushbutton-default-cc.png Binary files differdeleted file mode 100644 index 51e655302..000000000 --- a/kstyles/keramik/pics/pushbutton-default-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-cl.png b/kstyles/keramik/pics/pushbutton-default-cl.png Binary files differdeleted file mode 100644 index 5c4c001b1..000000000 --- a/kstyles/keramik/pics/pushbutton-default-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-cr.png b/kstyles/keramik/pics/pushbutton-default-cr.png Binary files differdeleted file mode 100644 index 0b1ea243b..000000000 --- a/kstyles/keramik/pics/pushbutton-default-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-hov-bc.png b/kstyles/keramik/pics/pushbutton-default-hov-bc.png Binary files differdeleted file mode 100644 index 1c3f23766..000000000 --- a/kstyles/keramik/pics/pushbutton-default-hov-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-hov-bl.png b/kstyles/keramik/pics/pushbutton-default-hov-bl.png Binary files differdeleted file mode 100644 index 5072df3a7..000000000 --- a/kstyles/keramik/pics/pushbutton-default-hov-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-hov-br.png b/kstyles/keramik/pics/pushbutton-default-hov-br.png Binary files differdeleted file mode 100644 index 827df317d..000000000 --- a/kstyles/keramik/pics/pushbutton-default-hov-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-hov-cc.png b/kstyles/keramik/pics/pushbutton-default-hov-cc.png Binary files differdeleted file mode 100644 index ec57f7ed7..000000000 --- a/kstyles/keramik/pics/pushbutton-default-hov-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-hov-cl.png b/kstyles/keramik/pics/pushbutton-default-hov-cl.png Binary files differdeleted file mode 100644 index 09fdf4dfa..000000000 --- a/kstyles/keramik/pics/pushbutton-default-hov-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-hov-cr.png b/kstyles/keramik/pics/pushbutton-default-hov-cr.png Binary files differdeleted file mode 100644 index 131c96f55..000000000 --- a/kstyles/keramik/pics/pushbutton-default-hov-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-hov-tc.png b/kstyles/keramik/pics/pushbutton-default-hov-tc.png Binary files differdeleted file mode 100644 index 45f4e86c3..000000000 --- a/kstyles/keramik/pics/pushbutton-default-hov-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-hov-tl.png b/kstyles/keramik/pics/pushbutton-default-hov-tl.png Binary files differdeleted file mode 100644 index 13e2cdfa2..000000000 --- a/kstyles/keramik/pics/pushbutton-default-hov-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-hov-tr.png b/kstyles/keramik/pics/pushbutton-default-hov-tr.png Binary files differdeleted file mode 100644 index 0eb2d5f2d..000000000 --- a/kstyles/keramik/pics/pushbutton-default-hov-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-pressed-bc.png b/kstyles/keramik/pics/pushbutton-default-pressed-bc.png Binary files differdeleted file mode 100644 index 7d1f31b4b..000000000 --- a/kstyles/keramik/pics/pushbutton-default-pressed-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-pressed-bl.png b/kstyles/keramik/pics/pushbutton-default-pressed-bl.png Binary files differdeleted file mode 100644 index 05d432d3a..000000000 --- a/kstyles/keramik/pics/pushbutton-default-pressed-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-pressed-br.png b/kstyles/keramik/pics/pushbutton-default-pressed-br.png Binary files differdeleted file mode 100644 index 5ac4eb761..000000000 --- a/kstyles/keramik/pics/pushbutton-default-pressed-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-pressed-cc.png b/kstyles/keramik/pics/pushbutton-default-pressed-cc.png Binary files differdeleted file mode 100644 index a29eb9b26..000000000 --- a/kstyles/keramik/pics/pushbutton-default-pressed-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-pressed-cl.png b/kstyles/keramik/pics/pushbutton-default-pressed-cl.png Binary files differdeleted file mode 100644 index 1732ab586..000000000 --- a/kstyles/keramik/pics/pushbutton-default-pressed-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-pressed-cr.png b/kstyles/keramik/pics/pushbutton-default-pressed-cr.png Binary files differdeleted file mode 100644 index 3e52fd79f..000000000 --- a/kstyles/keramik/pics/pushbutton-default-pressed-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-pressed-tc.png b/kstyles/keramik/pics/pushbutton-default-pressed-tc.png Binary files differdeleted file mode 100644 index a2774ed4d..000000000 --- a/kstyles/keramik/pics/pushbutton-default-pressed-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-pressed-tl.png b/kstyles/keramik/pics/pushbutton-default-pressed-tl.png Binary files differdeleted file mode 100644 index 209673d91..000000000 --- a/kstyles/keramik/pics/pushbutton-default-pressed-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-pressed-tr.png b/kstyles/keramik/pics/pushbutton-default-pressed-tr.png Binary files differdeleted file mode 100644 index 4b4d8bed1..000000000 --- a/kstyles/keramik/pics/pushbutton-default-pressed-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-tc.png b/kstyles/keramik/pics/pushbutton-default-tc.png Binary files differdeleted file mode 100644 index e71531f73..000000000 --- a/kstyles/keramik/pics/pushbutton-default-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-tl.png b/kstyles/keramik/pics/pushbutton-default-tl.png Binary files differdeleted file mode 100644 index 02c8adb38..000000000 --- a/kstyles/keramik/pics/pushbutton-default-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-default-tr.png b/kstyles/keramik/pics/pushbutton-default-tr.png Binary files differdeleted file mode 100644 index 741dd67cb..000000000 --- a/kstyles/keramik/pics/pushbutton-default-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-hov-bc.png b/kstyles/keramik/pics/pushbutton-hov-bc.png Binary files differdeleted file mode 100644 index 1b7731085..000000000 --- a/kstyles/keramik/pics/pushbutton-hov-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-hov-bl.png b/kstyles/keramik/pics/pushbutton-hov-bl.png Binary files differdeleted file mode 100644 index 29f066774..000000000 --- a/kstyles/keramik/pics/pushbutton-hov-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-hov-br.png b/kstyles/keramik/pics/pushbutton-hov-br.png Binary files differdeleted file mode 100644 index c7b045337..000000000 --- a/kstyles/keramik/pics/pushbutton-hov-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-hov-cc.png b/kstyles/keramik/pics/pushbutton-hov-cc.png Binary files differdeleted file mode 100644 index f57781d87..000000000 --- a/kstyles/keramik/pics/pushbutton-hov-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-hov-cl.png b/kstyles/keramik/pics/pushbutton-hov-cl.png Binary files differdeleted file mode 100644 index 1540ef437..000000000 --- a/kstyles/keramik/pics/pushbutton-hov-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-hov-cr.png b/kstyles/keramik/pics/pushbutton-hov-cr.png Binary files differdeleted file mode 100644 index e105ae6f8..000000000 --- a/kstyles/keramik/pics/pushbutton-hov-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-hov-tc.png b/kstyles/keramik/pics/pushbutton-hov-tc.png Binary files differdeleted file mode 100644 index fa2a00270..000000000 --- a/kstyles/keramik/pics/pushbutton-hov-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-hov-tl.png b/kstyles/keramik/pics/pushbutton-hov-tl.png Binary files differdeleted file mode 100644 index 9eddbf5f9..000000000 --- a/kstyles/keramik/pics/pushbutton-hov-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-hov-tr.png b/kstyles/keramik/pics/pushbutton-hov-tr.png Binary files differdeleted file mode 100644 index c4ea2e1ae..000000000 --- a/kstyles/keramik/pics/pushbutton-hov-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-pressed-bc.png b/kstyles/keramik/pics/pushbutton-pressed-bc.png Binary files differdeleted file mode 100644 index 1e9097faa..000000000 --- a/kstyles/keramik/pics/pushbutton-pressed-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-pressed-bl.png b/kstyles/keramik/pics/pushbutton-pressed-bl.png Binary files differdeleted file mode 100644 index ae8ad9ba3..000000000 --- a/kstyles/keramik/pics/pushbutton-pressed-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-pressed-br.png b/kstyles/keramik/pics/pushbutton-pressed-br.png Binary files differdeleted file mode 100644 index 8d1a62e7e..000000000 --- a/kstyles/keramik/pics/pushbutton-pressed-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-pressed-cc.png b/kstyles/keramik/pics/pushbutton-pressed-cc.png Binary files differdeleted file mode 100644 index 09cb446ba..000000000 --- a/kstyles/keramik/pics/pushbutton-pressed-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-pressed-cl.png b/kstyles/keramik/pics/pushbutton-pressed-cl.png Binary files differdeleted file mode 100644 index 1291cf33f..000000000 --- a/kstyles/keramik/pics/pushbutton-pressed-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-pressed-cr.png b/kstyles/keramik/pics/pushbutton-pressed-cr.png Binary files differdeleted file mode 100644 index 6e35bd28b..000000000 --- a/kstyles/keramik/pics/pushbutton-pressed-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-pressed-tc.png b/kstyles/keramik/pics/pushbutton-pressed-tc.png Binary files differdeleted file mode 100644 index ab1ccf476..000000000 --- a/kstyles/keramik/pics/pushbutton-pressed-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-pressed-tl.png b/kstyles/keramik/pics/pushbutton-pressed-tl.png Binary files differdeleted file mode 100644 index 41df0033f..000000000 --- a/kstyles/keramik/pics/pushbutton-pressed-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-pressed-tr.png b/kstyles/keramik/pics/pushbutton-pressed-tr.png Binary files differdeleted file mode 100644 index fc83cfdef..000000000 --- a/kstyles/keramik/pics/pushbutton-pressed-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-bc.png b/kstyles/keramik/pics/pushbutton-small-bc.png Binary files differdeleted file mode 100644 index b55ed441c..000000000 --- a/kstyles/keramik/pics/pushbutton-small-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-bl.png b/kstyles/keramik/pics/pushbutton-small-bl.png Binary files differdeleted file mode 100644 index fc14a94c1..000000000 --- a/kstyles/keramik/pics/pushbutton-small-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-br.png b/kstyles/keramik/pics/pushbutton-small-br.png Binary files differdeleted file mode 100644 index f24b47af1..000000000 --- a/kstyles/keramik/pics/pushbutton-small-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-cc.png b/kstyles/keramik/pics/pushbutton-small-cc.png Binary files differdeleted file mode 100644 index 8f8d49964..000000000 --- a/kstyles/keramik/pics/pushbutton-small-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-cl.png b/kstyles/keramik/pics/pushbutton-small-cl.png Binary files differdeleted file mode 100644 index 9ce9e492f..000000000 --- a/kstyles/keramik/pics/pushbutton-small-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-cr.png b/kstyles/keramik/pics/pushbutton-small-cr.png Binary files differdeleted file mode 100644 index db05257b2..000000000 --- a/kstyles/keramik/pics/pushbutton-small-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-pressed-bc.png b/kstyles/keramik/pics/pushbutton-small-pressed-bc.png Binary files differdeleted file mode 100644 index 560f17c5d..000000000 --- a/kstyles/keramik/pics/pushbutton-small-pressed-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-pressed-bl.png b/kstyles/keramik/pics/pushbutton-small-pressed-bl.png Binary files differdeleted file mode 100644 index 36e39f88d..000000000 --- a/kstyles/keramik/pics/pushbutton-small-pressed-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-pressed-br.png b/kstyles/keramik/pics/pushbutton-small-pressed-br.png Binary files differdeleted file mode 100644 index d269e61bf..000000000 --- a/kstyles/keramik/pics/pushbutton-small-pressed-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-pressed-cc.png b/kstyles/keramik/pics/pushbutton-small-pressed-cc.png Binary files differdeleted file mode 100644 index abab3832c..000000000 --- a/kstyles/keramik/pics/pushbutton-small-pressed-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-pressed-cl.png b/kstyles/keramik/pics/pushbutton-small-pressed-cl.png Binary files differdeleted file mode 100644 index 8049bee04..000000000 --- a/kstyles/keramik/pics/pushbutton-small-pressed-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-pressed-cr.png b/kstyles/keramik/pics/pushbutton-small-pressed-cr.png Binary files differdeleted file mode 100644 index ef13139c2..000000000 --- a/kstyles/keramik/pics/pushbutton-small-pressed-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-pressed-tc.png b/kstyles/keramik/pics/pushbutton-small-pressed-tc.png Binary files differdeleted file mode 100644 index d10fc26a8..000000000 --- a/kstyles/keramik/pics/pushbutton-small-pressed-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-pressed-tl.png b/kstyles/keramik/pics/pushbutton-small-pressed-tl.png Binary files differdeleted file mode 100644 index 7f189e50d..000000000 --- a/kstyles/keramik/pics/pushbutton-small-pressed-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-pressed-tr.png b/kstyles/keramik/pics/pushbutton-small-pressed-tr.png Binary files differdeleted file mode 100644 index 5262f63a2..000000000 --- a/kstyles/keramik/pics/pushbutton-small-pressed-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-tc.png b/kstyles/keramik/pics/pushbutton-small-tc.png Binary files differdeleted file mode 100644 index 216126077..000000000 --- a/kstyles/keramik/pics/pushbutton-small-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-tl.png b/kstyles/keramik/pics/pushbutton-small-tl.png Binary files differdeleted file mode 100644 index 75d8052b1..000000000 --- a/kstyles/keramik/pics/pushbutton-small-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-small-tr.png b/kstyles/keramik/pics/pushbutton-small-tr.png Binary files differdeleted file mode 100644 index 18ac1208d..000000000 --- a/kstyles/keramik/pics/pushbutton-small-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-tc.png b/kstyles/keramik/pics/pushbutton-tc.png Binary files differdeleted file mode 100644 index 0d0e396d2..000000000 --- a/kstyles/keramik/pics/pushbutton-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-tl.png b/kstyles/keramik/pics/pushbutton-tl.png Binary files differdeleted file mode 100644 index 6904db252..000000000 --- a/kstyles/keramik/pics/pushbutton-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/pushbutton-tr.png b/kstyles/keramik/pics/pushbutton-tr.png Binary files differdeleted file mode 100644 index b3e34dec2..000000000 --- a/kstyles/keramik/pics/pushbutton-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/radiobutton-off.png b/kstyles/keramik/pics/radiobutton-off.png Binary files differdeleted file mode 100644 index 6eefc781c..000000000 --- a/kstyles/keramik/pics/radiobutton-off.png +++ /dev/null diff --git a/kstyles/keramik/pics/radiobutton-on.png b/kstyles/keramik/pics/radiobutton-on.png Binary files differdeleted file mode 100644 index ab4dc6798..000000000 --- a/kstyles/keramik/pics/radiobutton-on.png +++ /dev/null diff --git a/kstyles/keramik/pics/ripple.png b/kstyles/keramik/pics/ripple.png Binary files differdeleted file mode 100644 index 6b7d04ef3..000000000 --- a/kstyles/keramik/pics/ripple.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-hbar-arrow1.png b/kstyles/keramik/pics/scrollbar-hbar-arrow1.png Binary files differdeleted file mode 100644 index af21cb269..000000000 --- a/kstyles/keramik/pics/scrollbar-hbar-arrow1.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-hbar-arrow2.png b/kstyles/keramik/pics/scrollbar-hbar-arrow2.png Binary files differdeleted file mode 100644 index 231520d12..000000000 --- a/kstyles/keramik/pics/scrollbar-hbar-arrow2.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-hbar-groove1.png b/kstyles/keramik/pics/scrollbar-hbar-groove1.png Binary files differdeleted file mode 100644 index 0219f2e28..000000000 --- a/kstyles/keramik/pics/scrollbar-hbar-groove1.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-hbar-groove2.png b/kstyles/keramik/pics/scrollbar-hbar-groove2.png Binary files differdeleted file mode 100644 index 990b5b06d..000000000 --- a/kstyles/keramik/pics/scrollbar-hbar-groove2.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-hbar-slider1.png b/kstyles/keramik/pics/scrollbar-hbar-slider1.png Binary files differdeleted file mode 100644 index 6f0896ed9..000000000 --- a/kstyles/keramik/pics/scrollbar-hbar-slider1.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-hbar-slider2.png b/kstyles/keramik/pics/scrollbar-hbar-slider2.png Binary files differdeleted file mode 100644 index c13ecc00c..000000000 --- a/kstyles/keramik/pics/scrollbar-hbar-slider2.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-hbar-slider3.png b/kstyles/keramik/pics/scrollbar-hbar-slider3.png Binary files differdeleted file mode 100644 index 105718ba7..000000000 --- a/kstyles/keramik/pics/scrollbar-hbar-slider3.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-hbar-slider4.png b/kstyles/keramik/pics/scrollbar-hbar-slider4.png Binary files differdeleted file mode 100644 index 9d56a784c..000000000 --- a/kstyles/keramik/pics/scrollbar-hbar-slider4.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-vbar-arrow1.png b/kstyles/keramik/pics/scrollbar-vbar-arrow1.png Binary files differdeleted file mode 100644 index cb2f70aeb..000000000 --- a/kstyles/keramik/pics/scrollbar-vbar-arrow1.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-vbar-arrow2.png b/kstyles/keramik/pics/scrollbar-vbar-arrow2.png Binary files differdeleted file mode 100644 index 4d36f077e..000000000 --- a/kstyles/keramik/pics/scrollbar-vbar-arrow2.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-vbar-groove1.png b/kstyles/keramik/pics/scrollbar-vbar-groove1.png Binary files differdeleted file mode 100644 index 62ed6491d..000000000 --- a/kstyles/keramik/pics/scrollbar-vbar-groove1.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-vbar-groove2.png b/kstyles/keramik/pics/scrollbar-vbar-groove2.png Binary files differdeleted file mode 100644 index 219781e23..000000000 --- a/kstyles/keramik/pics/scrollbar-vbar-groove2.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-vbar-slider1.png b/kstyles/keramik/pics/scrollbar-vbar-slider1.png Binary files differdeleted file mode 100644 index 29b85856c..000000000 --- a/kstyles/keramik/pics/scrollbar-vbar-slider1.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-vbar-slider2.png b/kstyles/keramik/pics/scrollbar-vbar-slider2.png Binary files differdeleted file mode 100644 index ebacc8e67..000000000 --- a/kstyles/keramik/pics/scrollbar-vbar-slider2.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-vbar-slider3.png b/kstyles/keramik/pics/scrollbar-vbar-slider3.png Binary files differdeleted file mode 100644 index 197be82c5..000000000 --- a/kstyles/keramik/pics/scrollbar-vbar-slider3.png +++ /dev/null diff --git a/kstyles/keramik/pics/scrollbar-vbar-slider4.png b/kstyles/keramik/pics/scrollbar-vbar-slider4.png Binary files differdeleted file mode 100644 index fdb931f4f..000000000 --- a/kstyles/keramik/pics/scrollbar-vbar-slider4.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-hgroove-bc.png b/kstyles/keramik/pics/slider-hgroove-bc.png Binary files differdeleted file mode 100644 index d509e8357..000000000 --- a/kstyles/keramik/pics/slider-hgroove-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-hgroove-bl.png b/kstyles/keramik/pics/slider-hgroove-bl.png Binary files differdeleted file mode 100644 index 12cb99a5b..000000000 --- a/kstyles/keramik/pics/slider-hgroove-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-hgroove-br.png b/kstyles/keramik/pics/slider-hgroove-br.png Binary files differdeleted file mode 100644 index c540bd09b..000000000 --- a/kstyles/keramik/pics/slider-hgroove-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-hgroove-cc.png b/kstyles/keramik/pics/slider-hgroove-cc.png Binary files differdeleted file mode 100644 index cad18f802..000000000 --- a/kstyles/keramik/pics/slider-hgroove-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-hgroove-cl.png b/kstyles/keramik/pics/slider-hgroove-cl.png Binary files differdeleted file mode 100644 index a261a086f..000000000 --- a/kstyles/keramik/pics/slider-hgroove-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-hgroove-cr.png b/kstyles/keramik/pics/slider-hgroove-cr.png Binary files differdeleted file mode 100644 index 601ff7d20..000000000 --- a/kstyles/keramik/pics/slider-hgroove-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-hgroove-tc.png b/kstyles/keramik/pics/slider-hgroove-tc.png Binary files differdeleted file mode 100644 index f8ee8d90b..000000000 --- a/kstyles/keramik/pics/slider-hgroove-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-hgroove-tl.png b/kstyles/keramik/pics/slider-hgroove-tl.png Binary files differdeleted file mode 100644 index 525242cf5..000000000 --- a/kstyles/keramik/pics/slider-hgroove-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-hgroove-tr.png b/kstyles/keramik/pics/slider-hgroove-tr.png Binary files differdeleted file mode 100644 index 7fcd449ad..000000000 --- a/kstyles/keramik/pics/slider-hgroove-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-vgroove-bc.png b/kstyles/keramik/pics/slider-vgroove-bc.png Binary files differdeleted file mode 100644 index d81815cbf..000000000 --- a/kstyles/keramik/pics/slider-vgroove-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-vgroove-bl.png b/kstyles/keramik/pics/slider-vgroove-bl.png Binary files differdeleted file mode 100644 index 5f7063525..000000000 --- a/kstyles/keramik/pics/slider-vgroove-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-vgroove-br.png b/kstyles/keramik/pics/slider-vgroove-br.png Binary files differdeleted file mode 100644 index 80fbb0c38..000000000 --- a/kstyles/keramik/pics/slider-vgroove-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-vgroove-cc.png b/kstyles/keramik/pics/slider-vgroove-cc.png Binary files differdeleted file mode 100644 index 56c3e1665..000000000 --- a/kstyles/keramik/pics/slider-vgroove-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-vgroove-cl.png b/kstyles/keramik/pics/slider-vgroove-cl.png Binary files differdeleted file mode 100644 index cca74d7e3..000000000 --- a/kstyles/keramik/pics/slider-vgroove-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-vgroove-cr.png b/kstyles/keramik/pics/slider-vgroove-cr.png Binary files differdeleted file mode 100644 index 5e0bba54f..000000000 --- a/kstyles/keramik/pics/slider-vgroove-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-vgroove-tc.png b/kstyles/keramik/pics/slider-vgroove-tc.png Binary files differdeleted file mode 100644 index d381a1672..000000000 --- a/kstyles/keramik/pics/slider-vgroove-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-vgroove-tl.png b/kstyles/keramik/pics/slider-vgroove-tl.png Binary files differdeleted file mode 100644 index e2bb6ca4e..000000000 --- a/kstyles/keramik/pics/slider-vgroove-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider-vgroove-tr.png b/kstyles/keramik/pics/slider-vgroove-tr.png Binary files differdeleted file mode 100644 index 03fe46405..000000000 --- a/kstyles/keramik/pics/slider-vgroove-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/slider.png b/kstyles/keramik/pics/slider.png Binary files differdeleted file mode 100644 index 6949eec33..000000000 --- a/kstyles/keramik/pics/slider.png +++ /dev/null diff --git a/kstyles/keramik/pics/spinbox-1.png b/kstyles/keramik/pics/spinbox-1.png Binary files differdeleted file mode 100644 index 728959423..000000000 --- a/kstyles/keramik/pics/spinbox-1.png +++ /dev/null diff --git a/kstyles/keramik/pics/spinbox-2.png b/kstyles/keramik/pics/spinbox-2.png Binary files differdeleted file mode 100644 index 8dcebdc47..000000000 --- a/kstyles/keramik/pics/spinbox-2.png +++ /dev/null diff --git a/kstyles/keramik/pics/spinbox-3.png b/kstyles/keramik/pics/spinbox-3.png Binary files differdeleted file mode 100644 index 43cdaf21d..000000000 --- a/kstyles/keramik/pics/spinbox-3.png +++ /dev/null diff --git a/kstyles/keramik/pics/spinbox-arrow-down.png b/kstyles/keramik/pics/spinbox-arrow-down.png Binary files differdeleted file mode 100644 index 58d326e01..000000000 --- a/kstyles/keramik/pics/spinbox-arrow-down.png +++ /dev/null diff --git a/kstyles/keramik/pics/spinbox-arrow-up.png b/kstyles/keramik/pics/spinbox-arrow-up.png Binary files differdeleted file mode 100644 index 1e1f7a72b..000000000 --- a/kstyles/keramik/pics/spinbox-arrow-up.png +++ /dev/null diff --git a/kstyles/keramik/pics/spinbox-pressed-arrow-down.png b/kstyles/keramik/pics/spinbox-pressed-arrow-down.png Binary files differdeleted file mode 100644 index 71ce2ff98..000000000 --- a/kstyles/keramik/pics/spinbox-pressed-arrow-down.png +++ /dev/null diff --git a/kstyles/keramik/pics/spinbox-pressed-arrow-up.png b/kstyles/keramik/pics/spinbox-pressed-arrow-up.png Binary files differdeleted file mode 100644 index 7fd277c26..000000000 --- a/kstyles/keramik/pics/spinbox-pressed-arrow-up.png +++ /dev/null diff --git a/kstyles/keramik/pics/spinbox-pressed-down.png b/kstyles/keramik/pics/spinbox-pressed-down.png Binary files differdeleted file mode 100644 index 47ac06d41..000000000 --- a/kstyles/keramik/pics/spinbox-pressed-down.png +++ /dev/null diff --git a/kstyles/keramik/pics/spinbox-pressed-up.png b/kstyles/keramik/pics/spinbox-pressed-up.png Binary files differdeleted file mode 100644 index ed499f6ef..000000000 --- a/kstyles/keramik/pics/spinbox-pressed-up.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-active-bc.png b/kstyles/keramik/pics/tab-bottom-active-bc.png Binary files differdeleted file mode 100644 index 2cc3e597a..000000000 --- a/kstyles/keramik/pics/tab-bottom-active-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-active-bl.png b/kstyles/keramik/pics/tab-bottom-active-bl.png Binary files differdeleted file mode 100644 index 2f28a1cfa..000000000 --- a/kstyles/keramik/pics/tab-bottom-active-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-active-br.png b/kstyles/keramik/pics/tab-bottom-active-br.png Binary files differdeleted file mode 100644 index 8d086710a..000000000 --- a/kstyles/keramik/pics/tab-bottom-active-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-active-cc.png b/kstyles/keramik/pics/tab-bottom-active-cc.png Binary files differdeleted file mode 100644 index 29fa285ef..000000000 --- a/kstyles/keramik/pics/tab-bottom-active-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-active-cl.png b/kstyles/keramik/pics/tab-bottom-active-cl.png Binary files differdeleted file mode 100644 index 54c629b55..000000000 --- a/kstyles/keramik/pics/tab-bottom-active-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-active-cr.png b/kstyles/keramik/pics/tab-bottom-active-cr.png Binary files differdeleted file mode 100644 index f36039005..000000000 --- a/kstyles/keramik/pics/tab-bottom-active-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-inactive-bc.png b/kstyles/keramik/pics/tab-bottom-inactive-bc.png Binary files differdeleted file mode 100644 index 538b0e20e..000000000 --- a/kstyles/keramik/pics/tab-bottom-inactive-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-inactive-bl.png b/kstyles/keramik/pics/tab-bottom-inactive-bl.png Binary files differdeleted file mode 100644 index 14e04519d..000000000 --- a/kstyles/keramik/pics/tab-bottom-inactive-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-inactive-br.png b/kstyles/keramik/pics/tab-bottom-inactive-br.png Binary files differdeleted file mode 100644 index 79298a562..000000000 --- a/kstyles/keramik/pics/tab-bottom-inactive-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-inactive-cc.png b/kstyles/keramik/pics/tab-bottom-inactive-cc.png Binary files differdeleted file mode 100644 index e7fbaf864..000000000 --- a/kstyles/keramik/pics/tab-bottom-inactive-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-inactive-cl.png b/kstyles/keramik/pics/tab-bottom-inactive-cl.png Binary files differdeleted file mode 100644 index 9d3aaed8f..000000000 --- a/kstyles/keramik/pics/tab-bottom-inactive-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-inactive-cr.png b/kstyles/keramik/pics/tab-bottom-inactive-cr.png Binary files differdeleted file mode 100644 index e873688c8..000000000 --- a/kstyles/keramik/pics/tab-bottom-inactive-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-bottom-inactive-separator.png b/kstyles/keramik/pics/tab-bottom-inactive-separator.png Binary files differdeleted file mode 100644 index 525341543..000000000 --- a/kstyles/keramik/pics/tab-bottom-inactive-separator.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-active-cc.png b/kstyles/keramik/pics/tab-top-active-cc.png Binary files differdeleted file mode 100644 index 494659c77..000000000 --- a/kstyles/keramik/pics/tab-top-active-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-active-cl.png b/kstyles/keramik/pics/tab-top-active-cl.png Binary files differdeleted file mode 100644 index b369f9570..000000000 --- a/kstyles/keramik/pics/tab-top-active-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-active-cr.png b/kstyles/keramik/pics/tab-top-active-cr.png Binary files differdeleted file mode 100644 index 6cbf4238e..000000000 --- a/kstyles/keramik/pics/tab-top-active-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-active-tc.png b/kstyles/keramik/pics/tab-top-active-tc.png Binary files differdeleted file mode 100644 index 44cf7d16d..000000000 --- a/kstyles/keramik/pics/tab-top-active-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-active-tl.png b/kstyles/keramik/pics/tab-top-active-tl.png Binary files differdeleted file mode 100644 index 437f95bc2..000000000 --- a/kstyles/keramik/pics/tab-top-active-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-active-tr.png b/kstyles/keramik/pics/tab-top-active-tr.png Binary files differdeleted file mode 100644 index 74cbc48e3..000000000 --- a/kstyles/keramik/pics/tab-top-active-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-inactive-cc.png b/kstyles/keramik/pics/tab-top-inactive-cc.png Binary files differdeleted file mode 100644 index 1c2f0d47f..000000000 --- a/kstyles/keramik/pics/tab-top-inactive-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-inactive-cl.png b/kstyles/keramik/pics/tab-top-inactive-cl.png Binary files differdeleted file mode 100644 index 3f4a23136..000000000 --- a/kstyles/keramik/pics/tab-top-inactive-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-inactive-cr.png b/kstyles/keramik/pics/tab-top-inactive-cr.png Binary files differdeleted file mode 100644 index 477af0bc7..000000000 --- a/kstyles/keramik/pics/tab-top-inactive-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-inactive-separator.png b/kstyles/keramik/pics/tab-top-inactive-separator.png Binary files differdeleted file mode 100644 index fc03d5dbb..000000000 --- a/kstyles/keramik/pics/tab-top-inactive-separator.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-inactive-tc.png b/kstyles/keramik/pics/tab-top-inactive-tc.png Binary files differdeleted file mode 100644 index 41eda7245..000000000 --- a/kstyles/keramik/pics/tab-top-inactive-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-inactive-tl.png b/kstyles/keramik/pics/tab-top-inactive-tl.png Binary files differdeleted file mode 100644 index 114d9e99a..000000000 --- a/kstyles/keramik/pics/tab-top-inactive-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/tab-top-inactive-tr.png b/kstyles/keramik/pics/tab-top-inactive-tr.png Binary files differdeleted file mode 100644 index 04a9019f8..000000000 --- a/kstyles/keramik/pics/tab-top-inactive-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/title-close-tiny.png b/kstyles/keramik/pics/title-close-tiny.png Binary files differdeleted file mode 100644 index 1e497547b..000000000 --- a/kstyles/keramik/pics/title-close-tiny.png +++ /dev/null diff --git a/kstyles/keramik/pics/title-close.png b/kstyles/keramik/pics/title-close.png Binary files differdeleted file mode 100644 index b9a7a8f45..000000000 --- a/kstyles/keramik/pics/title-close.png +++ /dev/null diff --git a/kstyles/keramik/pics/title-iconify.png b/kstyles/keramik/pics/title-iconify.png Binary files differdeleted file mode 100644 index 6c87e05f3..000000000 --- a/kstyles/keramik/pics/title-iconify.png +++ /dev/null diff --git a/kstyles/keramik/pics/title-maximize.png b/kstyles/keramik/pics/title-maximize.png Binary files differdeleted file mode 100644 index 6a47ce12d..000000000 --- a/kstyles/keramik/pics/title-maximize.png +++ /dev/null diff --git a/kstyles/keramik/pics/title-restore.png b/kstyles/keramik/pics/title-restore.png Binary files differdeleted file mode 100644 index 12d48df42..000000000 --- a/kstyles/keramik/pics/title-restore.png +++ /dev/null diff --git a/kstyles/keramik/pics/titlebutton-pressed.png b/kstyles/keramik/pics/titlebutton-pressed.png Binary files differdeleted file mode 100644 index 23587dd2f..000000000 --- a/kstyles/keramik/pics/titlebutton-pressed.png +++ /dev/null diff --git a/kstyles/keramik/pics/titlebutton.png b/kstyles/keramik/pics/titlebutton.png Binary files differdeleted file mode 100644 index bb99c9b30..000000000 --- a/kstyles/keramik/pics/titlebutton.png +++ /dev/null diff --git a/kstyles/keramik/pics/toolbar-clk-bc.png b/kstyles/keramik/pics/toolbar-clk-bc.png Binary files differdeleted file mode 100644 index 4d8acdcde..000000000 --- a/kstyles/keramik/pics/toolbar-clk-bc.png +++ /dev/null diff --git a/kstyles/keramik/pics/toolbar-clk-bl.png b/kstyles/keramik/pics/toolbar-clk-bl.png Binary files differdeleted file mode 100644 index 891f380ed..000000000 --- a/kstyles/keramik/pics/toolbar-clk-bl.png +++ /dev/null diff --git a/kstyles/keramik/pics/toolbar-clk-br.png b/kstyles/keramik/pics/toolbar-clk-br.png Binary files differdeleted file mode 100644 index d2493b18e..000000000 --- a/kstyles/keramik/pics/toolbar-clk-br.png +++ /dev/null diff --git a/kstyles/keramik/pics/toolbar-clk-cc.png b/kstyles/keramik/pics/toolbar-clk-cc.png Binary files differdeleted file mode 100644 index 0ae970f6b..000000000 --- a/kstyles/keramik/pics/toolbar-clk-cc.png +++ /dev/null diff --git a/kstyles/keramik/pics/toolbar-clk-cl.png b/kstyles/keramik/pics/toolbar-clk-cl.png Binary files differdeleted file mode 100644 index 12467b4e7..000000000 --- a/kstyles/keramik/pics/toolbar-clk-cl.png +++ /dev/null diff --git a/kstyles/keramik/pics/toolbar-clk-cr.png b/kstyles/keramik/pics/toolbar-clk-cr.png Binary files differdeleted file mode 100644 index 75bea2f4c..000000000 --- a/kstyles/keramik/pics/toolbar-clk-cr.png +++ /dev/null diff --git a/kstyles/keramik/pics/toolbar-clk-tc.png b/kstyles/keramik/pics/toolbar-clk-tc.png Binary files differdeleted file mode 100644 index fcd0e8cd2..000000000 --- a/kstyles/keramik/pics/toolbar-clk-tc.png +++ /dev/null diff --git a/kstyles/keramik/pics/toolbar-clk-tl.png b/kstyles/keramik/pics/toolbar-clk-tl.png Binary files differdeleted file mode 100644 index 13625cf8e..000000000 --- a/kstyles/keramik/pics/toolbar-clk-tl.png +++ /dev/null diff --git a/kstyles/keramik/pics/toolbar-clk-tr.png b/kstyles/keramik/pics/toolbar-clk-tr.png Binary files differdeleted file mode 100644 index 1b8c8f33d..000000000 --- a/kstyles/keramik/pics/toolbar-clk-tr.png +++ /dev/null diff --git a/kstyles/keramik/pics/vslider.png b/kstyles/keramik/pics/vslider.png Binary files differdeleted file mode 100644 index e43857388..000000000 --- a/kstyles/keramik/pics/vslider.png +++ /dev/null diff --git a/kstyles/keramik/pixmaploader.cpp b/kstyles/keramik/pixmaploader.cpp deleted file mode 100644 index 00b4626fd..000000000 --- a/kstyles/keramik/pixmaploader.cpp +++ /dev/null @@ -1,629 +0,0 @@ -/* - Copyright (c) 2002 Malte Starostik <malte@kde.org> - (c) 2002,2003 Maksim Orlovich <maksim@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -// $Id$ - -#include <tqapplication.h> -#include <tqbitmap.h> -#include <tqglobal.h> -#include <tqimage.h> -#include <tqpainter.h> -#include <tqpixmap.h> -#include <tqpixmapcache.h> - -#include "pixmaploader.h" - - -#include "pixmaps.keramik" - -using namespace Keramik; - -PixmapLoader* PixmapLoader::s_instance = 0; - -PixmapLoader::PixmapLoader(): m_pixmapCache(327680, 2017) - -{ - m_pixmapCache.setAutoDelete(true); - - for (int c=0; c<256; c++) - clamp[c]=static_cast<unsigned char>(c); - - for (int c=256; c<540; c++) - clamp[c] = 255; - -} - -void PixmapLoader::clear() -{ - //m_cache.clear(); -} - -TQImage* PixmapLoader::getDisabled(int name, const TQColor& color, const TQColor& back, bool blend) -{ - KeramikEmbedImage* edata = KeramikGetDbImage(name); - if (!edata) - return 0; - - //Like getColored, but desaturate a bit, and lower gamma.. - - //Create a real image... - TQImage* img = new TQImage(edata->width, edata->height, 32); - - - - //OK, now, fill it in, using the color.. - TQ_UINT32 r, g,b; - TQ_UINT32 i = tqGray(color.rgb()); - r = (3*color.red()+i)>>2; - g = (3*color.green()+i)>>2; - b = (3*color.blue()+i)>>2; - - TQ_UINT32 br = back.red(), bg = back.green(), bb = back.blue(); - - - if (edata->haveAlpha) - { - if (blend) - { - img->setAlphaBuffer(false); - TQ_UINT32* write = reinterpret_cast< TQ_UINT32* >(img->bits() ); - int size = img->width()*img->height() * 3; - - for (int pos = 0; pos < size; pos+=3) - { - TQ_UINT32 scale = edata->data[pos]; - TQ_UINT32 add = (edata->data[pos+1]*i+127)>>8; - TQ_UINT32 alpha = edata->data[pos+2]; - TQ_UINT32 destAlpha = 256 - alpha; - - TQ_UINT32 rr = clamp[((r*scale+127)>>8) + add]; - TQ_UINT32 rg = clamp[((g*scale+127)>>8) + add]; - TQ_UINT32 rb = clamp[((b*scale+127)>>8) + add]; - - *write =tqRgb(((rr*alpha+127)>>8) + ((br*destAlpha+127)>>8), - ((rg*alpha+127)>>8) + ((bg*destAlpha+127)>>8), - ((rb*alpha+127)>>8) + ((bb*destAlpha+127)>>8)); - - write++; - } - } - else - { - img->setAlphaBuffer(true); - TQ_UINT32* write = reinterpret_cast< TQ_UINT32* >(img->bits() ); - int size = img->width()*img->height() * 3; - - for (int pos = 0; pos < size; pos+=3) - { - TQ_UINT32 scale = edata->data[pos]; - TQ_UINT32 add = (edata->data[pos+1]*i+127)>>8; - TQ_UINT32 alpha = edata->data[pos+2]; - - TQ_UINT32 rr = clamp[((r*scale+127)>>8) + add]; - TQ_UINT32 rg = clamp[((g*scale+127)>>8) + add]; - TQ_UINT32 rb = clamp[((b*scale+127)>>8) + add]; - - *write =tqRgba(rr, rg, rb, alpha); - - write++; - } - - } - } - else - { - img->setAlphaBuffer(false); - TQ_UINT32* write = reinterpret_cast< TQ_UINT32* >(img->bits() ); - int size = img->width()*img->height() * 2; - - for (int pos = 0; pos < size; pos+=2) - { - TQ_UINT32 scale = edata->data[pos]; - TQ_UINT32 add = (edata->data[pos+1]*i+127)>>8; - TQ_UINT32 rr = clamp[((r*scale+127)>>8) + add]; - TQ_UINT32 rg = clamp[((g*scale+127)>>8) + add]; - TQ_UINT32 rb = clamp[((b*scale+127)>>8) + add]; - *write =tqRgb(rr, rg, rb); - write++; - } - } - - return img; -} - -TQImage* PixmapLoader::getColored(int name, const TQColor& color, const TQColor& back, bool blend) -{ - KeramikEmbedImage* edata = KeramikGetDbImage(name); - if (!edata) - return 0; - - //Create a real image... - TQImage* img = new TQImage(edata->width, edata->height, 32); - - //OK, now, fill it in, using the color.. - TQ_UINT32 r, g,b; - r = color.red() + 2; - g = color.green() + 2; - b = color.blue() + 2; - -// int i = tqGray(color.rgb()); - - TQ_UINT32 br = back.red(), bg = back.green(), bb = back.blue(); - - if (edata->haveAlpha) - { - if (blend) - { - img->setAlphaBuffer(false); - - TQ_UINT32* write = reinterpret_cast< TQ_UINT32* >(img->bits() ); - int size = img->width()*img->height() * 3; - for (int pos = 0; pos < size; pos+=3) - { - TQ_UINT32 scale = edata->data[pos]; - TQ_UINT32 add = edata->data[pos+1]; - TQ_UINT32 alpha = edata->data[pos+2]; - TQ_UINT32 destAlpha = 256 - alpha; - - if (scale != 0) - add = add*5/4; - - TQ_UINT32 rr = clamp[((r*scale+127)>>8) + add]; - TQ_UINT32 rg = clamp[((g*scale+127)>>8) + add]; - TQ_UINT32 rb = clamp[((b*scale+127)>>8) + add]; - - *write =tqRgb(((rr*alpha+127)>>8) + ((br*destAlpha+127)>>8), - ((rg*alpha+127)>>8) + ((bg*destAlpha+127)>>8), - ((rb*alpha+127)>>8) + ((bb*destAlpha+127)>>8)); - - write++; - } - } - else - { - img->setAlphaBuffer(true); - - TQ_UINT32* write = reinterpret_cast< TQ_UINT32* >(img->bits() ); - int size = img->width()*img->height() * 3; - - for (int pos = 0; pos < size; pos+=3) - { - TQ_UINT32 scale = edata->data[pos]; - TQ_UINT32 add = edata->data[pos+1]; - TQ_UINT32 alpha = edata->data[pos+2]; - if (scale != 0) - add = add*5/4; - - TQ_UINT32 rr = clamp[((r*scale+127)>>8) + add]; - TQ_UINT32 rg = clamp[((g*scale+127)>>8) + add]; - TQ_UINT32 rb = clamp[((b*scale+127)>>8) + add]; - - *write =tqRgba(rr, rg, rb, alpha); - write++; - } - } - } - else - { - img->setAlphaBuffer(false); - - TQ_UINT32* write = reinterpret_cast< TQ_UINT32* >(img->bits() ); - int size = img->width()*img->height() * 2; - - for (int pos = 0; pos < size; pos+=2) - { - TQ_UINT32 scale = edata->data[pos]; - TQ_UINT32 add = edata->data[pos+1]; - if (scale != 0) - add = add*5/4; - - TQ_UINT32 rr = clamp[((r*scale+127)>>8) + add]; - TQ_UINT32 rg = clamp[((g*scale+127)>>8) + add]; - TQ_UINT32 rb = clamp[((b*scale+127)>>8) + add]; - - - *write =tqRgb(rr, rg, rb); - write++; - } - } - - return img; -} - -TQPixmap PixmapLoader::pixmap( int name, const TQColor& color, const TQColor& bg, bool disabled, bool blend ) -{ - return scale(name, 0, 0, color, bg, disabled, blend); -} - - -TQPixmap PixmapLoader::scale( int name, int width, int height, const TQColor& color, const TQColor& bg, bool disabled, bool blend ) -{ - KeramikCacheEntry entry(name, color, bg, disabled, blend, width, height); - KeramikCacheEntry* cacheEntry; - - int key = entry.key(); - - if ((cacheEntry = m_pixmapCache.find(key, true))) - { - if (entry == *cacheEntry) //True match! - return *cacheEntry->m_pixmap; - else //Remove old entry in case of a conflict! - m_pixmapCache.remove(key); - } - - - TQImage* img = 0; - TQPixmap* result = 0; - - if (disabled) - img = getDisabled(name, color, bg, blend); - else - img = getColored(name, color, bg, blend); - - if (!img) - { - KeramikCacheEntry* toAdd = new KeramikCacheEntry(entry); - toAdd->m_pixmap = new TQPixmap(); - m_pixmapCache.insert(key, toAdd, 16); - return TQPixmap(); - } - - if (width == 0 && height == 0) - result = new TQPixmap(*img); - else - result = new TQPixmap(img->smoothScale( width ? width : img->width(), - height ? height: img->height())); - delete img; - - KeramikCacheEntry* toAdd = new KeramikCacheEntry(entry); - toAdd->m_pixmap = result; - - if (!m_pixmapCache.insert(key, toAdd, result->width()*result->height()*result->depth()/8)) { - TQPixmap toRet = *result; - delete toAdd; - return toRet; - } - - return *result; -} - -TQSize PixmapLoader::size( int id ) -{ - KeramikEmbedImage* edata = KeramikGetDbImage(id); - if (!edata) - return TQSize(0,0); - return TQSize(edata->width, edata->height); -} - -void TilePainter::draw( TQPainter *p, int x, int y, int width, int height, const TQColor& color, const TQColor& bg, bool disabled, PaintMode mode ) -{ - if (mode == PaintTrivialMask) - { - p->fillRect(x, y, width, height, Qt::color1); - return; - } - - bool swBlend = (mode != PaintFullBlend); - unsigned int scaledColumns = 0, scaledRows = 0, lastScaledColumn = 0, lastScaledRow = 0; - int scaleWidth = width, scaleHeight = height; - - //scaleWidth, scaleHeight are calculated to contain the area available - //for all tiled and stretched columns/rows respectively. - //This is need to redistribute the area remaining after painting - //the "fixed" elements. We also keep track of the last col and row - //being scaled so rounding errors don't cause us to be short a pixel or so. - for ( unsigned int col = 0; col < columns(); ++col ) - if ( columnMode( col ) != Fixed ) - { - scaledColumns++; - lastScaledColumn = col; - } - else scaleWidth -= PixmapLoader::the().size (absTileName( col, 0 ) ).width(); - - for ( unsigned int row = 0; row < rows(); ++row ) - if ( rowMode( row ) != Fixed ) - { - scaledRows++; - lastScaledRow = row; - } - else scaleHeight -= PixmapLoader::the().size (absTileName( 0, row ) ).height(); - - - if ( scaleWidth < 0 ) scaleWidth = 0; - if ( scaleHeight < 0 ) scaleHeight = 0; - - - int ypos = y; - - //Center vertically if everything is fixed but there is extra room remaining - if ( scaleHeight && !scaledRows ) - ypos += scaleHeight / 2; - - for ( unsigned int row = 0; row < rows(); ++row ) - { - int xpos = x; - - //Center horizontally if extra space and no where to redistribute it to... - if ( scaleWidth && !scaledColumns ) - xpos += scaleWidth / 2; - - //If not fixed vertically, calculate our share of space available - //for scalable rows. - int h = rowMode( row ) == Fixed ? 0 : scaleHeight / scaledRows; - - //Redistribute any "extra" pixels to the last scaleable row. - if ( scaledRows && row == lastScaledRow ) - { - int allocatedEvenly = scaleHeight / scaledRows * scaledRows; - h += scaleHeight - allocatedEvenly; - } - - - //If we're fixed, get the height from the pixmap itself. - int realH = h ? h : PixmapLoader::the().size (absTileName( 0, row ) ).height(); - - //Skip non-fitting stretched/tiled rows, too. - if (rowMode( row ) != Fixed && h == 0) - continue; - - - //Set h to 0 to denote that we aren't scaling - if ( rowMode( row ) == Tiled ) - h = 0; - - for ( unsigned int col = 0; col < columns(); ++col ) - { - //Calculate width for rows that aren't fixed. - int w = columnMode( col ) == Fixed ? 0 : scaleWidth / scaledColumns; - - //Get the width of the pixmap.. - int tileW = PixmapLoader::the().size (absTileName( col, row ) ).width(); - - //Redistribute any extra pixels.. - if ( scaledColumns && col == lastScaledColumn ) w += scaleWidth - scaleWidth / scaledColumns * scaledColumns; - - //The width to use... - int realW = w ? w : tileW; - - //Skip any non-fitting stretched/tiled columns - if (columnMode( col ) != Fixed && w == 0) - continue; - - //Set w to 0 to denote that we aren't scaling - if ( columnMode( col ) == Tiled ) - w = 0; - - //If we do indeed have a pixmap.. - if ( tileW ) - { - //If scaling in either direction. - if ( w || h ) - { - if (mode != PaintMask) - { - p->drawTiledPixmap( xpos, ypos, realW, realH, scale( col, row, w, h, color, bg, disabled, swBlend ) ); - } - else - { - const TQBitmap* mask = scale( col, row, w, h, color, bg, disabled, false ).mask(); - if (mask) - { - p->setBackgroundColor(Qt::color0); - p->setPen(Qt::color1); - p->drawTiledPixmap( xpos, ypos, realW, realH, *mask); - } - else - p->fillRect ( xpos, ypos, realW, realH, Qt::color1); - } - } - else - { - //Tiling (or fixed, the same really) - if (mode != PaintMask) - { - p->drawTiledPixmap( xpos, ypos, realW, realH, tile( col, row, color, bg, disabled, swBlend ) ); - } - else - { - const TQBitmap* mask = tile( col, row, color, bg, disabled, false ).mask(); - if (mask) - { - p->setBackgroundColor(Qt::color0); - p->setPen(Qt::color1); - p->drawTiledPixmap( xpos, ypos, realW, realH, *mask); - } - else - p->fillRect ( xpos, ypos, realW, realH, Qt::color1); - - } - } - } - - //Advance horizontal position - xpos += realW; - } - - //Advance vertical position - ypos += realH; - } -} - -RectTilePainter::RectTilePainter( int name, - bool scaleH, bool scaleV, - unsigned int columns, unsigned int rows ) - : TilePainter( name ), - m_scaleH( scaleH ), - m_scaleV( scaleV ) -{ - m_columns = columns; - m_rows = rows; - - TileMode mh = m_scaleH ? Scaled : Tiled; - TileMode mv = m_scaleV ? Scaled : Tiled; - for (int c=0; c<4; c++) - { - if (c != 1) - colMde[c] = Fixed; - else - colMde[c] = mh; - } - - for (int c=0; c<4; c++) - { - if (c != 1) - rowMde[c] = Fixed; - else - rowMde[c] = mv; - } - -} - -int RectTilePainter::tileName( unsigned int column, unsigned int row ) const -{ - return row *3 + column; -} - -ActiveTabPainter::ActiveTabPainter( bool bottom ) - : RectTilePainter( bottom? keramik_tab_bottom_active: keramik_tab_top_active, false), - m_bottom( bottom ) -{ - m_rows = 2; - if (m_bottom) - { - rowMde[0] = rowMde[2] = rowMde[3] = Scaled; - rowMde[1] = Fixed; - } - else - { - rowMde[0] = rowMde[2] = rowMde[3] = Fixed; - rowMde[1] = Scaled; - } -} - -int ActiveTabPainter::tileName( unsigned int column, unsigned int row ) const -{ - if ( m_bottom ) - return RectTilePainter::tileName( column, row + 1 ); - return RectTilePainter::tileName( column, row ); -} - -InactiveTabPainter::InactiveTabPainter( Mode mode, bool bottom ) - : RectTilePainter( bottom? keramik_tab_bottom_inactive: keramik_tab_top_inactive, false), - m_mode( mode ), m_bottom( bottom ) -{ - m_rows = 2; - if (m_bottom) - { - rowMde[0] = Scaled; - rowMde[1] = Fixed; - } - else - { - rowMde[0] = Fixed; - rowMde[1] = Scaled; - } - - /** - Most fully, inactive tabs look like this: - L C R - / --- \ - | === | - - Where L,C, and R denote the tile positions. Of course, we don't want to draw all of the rounding for all the tabs. - - We want the left-most tab to look like this: - - L C - / -- - | == - - "Middle" tabs look like this: - - L C - | -- - | == - - And the right most tab looks like this: - - L C R - | -- \ - | == | - - So we have to vary the number of columns, and for everything but left-most tab, the L tab gets the special separator - tile. - */ - - Mode rightMost = TQApplication::reverseLayout() ? First : Last; - m_columns = (m_mode == rightMost ? 3 : 2); -} - -int InactiveTabPainter::tileName( unsigned int column, unsigned int row ) const -{ - Mode leftMost = TQApplication::reverseLayout() ? Last : First; - if ( column == 0 && m_mode != leftMost ) - return KeramikTileSeparator; - if ( m_bottom ) - return RectTilePainter::tileName( column, row + 1 ); - return RectTilePainter::tileName( column, row ); -} - -ScrollBarPainter::ScrollBarPainter( int type, int count, bool horizontal ) - : TilePainter( name( horizontal ) ), - m_type( type ), - m_count( count ), - m_horizontal( horizontal ) -{ - for (int c=0; c<5; c++) - { - if ( !m_horizontal || !( c % 2 ) ) colMde[c] = Fixed; - else colMde[c] = Tiled; - - if ( m_horizontal || !( c % 2 ) ) rowMde[c] = Fixed; - else rowMde[c] = Tiled; - } - - m_columns = m_horizontal ? m_count : 1; - m_rows = m_horizontal ? 1 : m_count; - -} - -int ScrollBarPainter::name( bool horizontal ) -{ - return horizontal? keramik_scrollbar_hbar: keramik_scrollbar_vbar; -} - -int ScrollBarPainter::tileName( unsigned int column, unsigned int row ) const -{ - unsigned int num = ( column ? column : row ) + 1; - if ( m_count == 5 ) - if ( num == 3 ) num = 4; - else if ( num == 4 ) num = 2; - else if ( num == 5 ) num = 3; - - return m_type + (num-1)*16; -} - -int SpinBoxPainter::tileName( unsigned int column, unsigned int ) const -{ - return column + 1; -} - -// vim: ts=4 sw=4 noet -// kate: indent-width 4; replace-tabs off; tab-width 4; space-indent off; diff --git a/kstyles/keramik/pixmaploader.h b/kstyles/keramik/pixmaploader.h deleted file mode 100644 index ab0bb4223..000000000 --- a/kstyles/keramik/pixmaploader.h +++ /dev/null @@ -1,367 +0,0 @@ -/* - Copyright (c) 2002 Malte Starostik <malte@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -// $Id$ - -#ifndef __pixmaploader_h__ -#define __pixmaploader_h__ - -#include <tqintcache.h> -#include <tqdict.h> -#include <tqimage.h> - -class TQPixmap; -class TQImage; - -#include "keramikrc.h" - -namespace Keramik -{ - class PixmapLoader - { - public: - PixmapLoader(); - - TQPixmap pixmap( int name, const TQColor& color, const TQColor& bg, - bool disabled = false, bool blend = true ); - - TQPixmap scale( int name, int width, int height, const TQColor& color, const TQColor& bg, - bool disabled = false, bool blend = true ); - TQSize size( int id ); - - void clear(); - - static PixmapLoader& the() - { - if (!s_instance) - s_instance = new PixmapLoader; - return *s_instance; - } - - static void release() - { - delete s_instance; - s_instance = 0; - } - - private: - - struct KeramikCacheEntry - { - int m_id; - int m_width; - int m_height; - QRgb m_colorCode; - QRgb m_bgCode; - bool m_disabled; - bool m_blended; - - TQPixmap* m_pixmap; - - KeramikCacheEntry(int id, const TQColor& color, const TQColor& bg, bool disabled, - bool blended, int width, int height, TQPixmap* pixmap = 0 ): - m_id(id), m_width(width), m_height(height), m_colorCode(color.rgb()),m_bgCode(bg.rgb()), - m_disabled(disabled), m_blended(blended), m_pixmap(pixmap) - {} - - int key() - { - return (int)m_disabled ^ (m_blended << 1) ^ (m_id<<2) ^ (m_width<<14) ^ (m_height<<24) ^ m_colorCode ^ (m_bgCode<<8); - } - - bool operator == (const KeramikCacheEntry& other) - { - return (m_id == other.m_id) && - (m_width == other.m_width) && - (m_height == other.m_height) && - (m_blended == other.m_blended) && - (m_bgCode == other.m_bgCode) && - (m_colorCode == other.m_colorCode) && - (m_disabled == other.m_disabled); - } - - ~KeramikCacheEntry() - { - delete m_pixmap; - } - }; - - - - TQImage* getColored(int id, const TQColor& color, const TQColor& bg, bool blended); - TQImage* getDisabled(int id, const TQColor& color, const TQColor& bg, bool blended); - TQIntCache <KeramikCacheEntry> m_pixmapCache; - - - unsigned char clamp[540]; - - static PixmapLoader* s_instance; - }; - - class TilePainter - { - public: - TilePainter( int name ) : m_columns(1),m_rows(1),m_name( name ) {}; - virtual ~TilePainter() {}; - - enum PaintMode - { - PaintNormal, - PaintMask, - PaintFullBlend, - PaintTrivialMask - }; - - void draw( TQPainter *p, int x, int y, int width, int height, const TQColor& color, const TQColor& bg, - bool disabled = false, PaintMode mode = PaintNormal ); - void draw( TQPainter *p, const TQRect& rect, const TQColor& color, const TQColor& bg, bool disabled = false, PaintMode mode = PaintNormal ) - { - draw( p, rect.x(), rect.y(), rect.width(), rect.height(), color, bg, disabled, mode ); - } - - protected: - enum TileMode { Fixed, Scaled, Tiled }; - - unsigned int columns() const { return m_columns; } - unsigned int rows() const { return m_rows; } - - /** - The idea behind all this stuff is that for performance reasons, we want to - use only integers to refer to widgets. So we give each widget a base ID - that's divisible by 256, and have all the various tiles be referred to as that ID + - some small number. - - genembed generates and assigns the base widget IDs, and maps various pixmaps suffixes - into the adjustment numbers; using that info it writes out the tables mapping - the IDs to pixmaps, and keramikrc.h, which provides nice symbolic constants for base IDs. - - When painting, however, we essentially represent the widget as a table, providing - fixed/tiled/stretched modes for each column and row. So to draw the widget knowing its - base ID, we need to know how many rows and columns there, what the scaling modes - are, and how to get to each of the tiles -- i.e. the tiles' offset from the base ID. - - The various painter subclasses simply fill in most of that info into the members - here during their construction, and implement the virtual tileName to get the offsets. - - Note that the IDs and offsets are separated since we can reuse the same code in many - cases by splitting the widget identify from tile identity (as there are many - different widgets that have the same or similar tile layout) - */ - virtual int tileName( unsigned int, unsigned int ) const { return 0; } - - TileMode columnMode( unsigned int col) const - { - return colMde[col]; - } - - TileMode rowMode( unsigned int row) const - { - return rowMde[row]; - } - - protected: - TileMode colMde[5], rowMde[5]; - unsigned int m_columns; - unsigned int m_rows; - private: - - int absTileName( unsigned int column, unsigned int row ) const - { - int name = tileName( column, row ); - return m_name + name; - } - - - TQPixmap tile( unsigned int column, unsigned int row, const TQColor& color, const TQColor& bg, bool disabled, bool blend) - { return PixmapLoader::the().pixmap( absTileName( column, row ), color, bg, disabled, blend ); } - TQPixmap scale( unsigned int column, unsigned int row, int width, int height, const TQColor& color, const TQColor& bg, - bool disabled, bool blend ) - { return PixmapLoader::the().scale( absTileName( column, row ), width, height, color, - bg, disabled, blend ); } - - int m_name; - - }; - - class ScaledPainter : public TilePainter - { - public: - enum Direction { Horizontal = 1, Vertical = 2, Both = Horizontal | Vertical }; - ScaledPainter( int name, Direction direction = Both ) - : TilePainter( name ), m_direction( direction ) - { - colMde[0] = ( m_direction & Horizontal ) ? Scaled : Tiled; - rowMde[0] = ( m_direction & Vertical ) ? Scaled : Tiled; - } - - virtual ~ScaledPainter() {}; - - private: - Direction m_direction; - }; - - class CenteredPainter : public TilePainter - { - public: - CenteredPainter( int name ) : TilePainter( name ) { - colMde[0] = colMde[1] = colMde[2] = colMde[3] = Fixed; - rowMde[0] = rowMde[1] = rowMde[2] = rowMde[3] = Fixed; - }; - virtual ~CenteredPainter() {}; - - protected: - }; - - class RectTilePainter : public TilePainter - { - public: - RectTilePainter( int name, - bool scaleH = true, bool scaleV = true, - unsigned int columns = 3, unsigned int rows = 3 ); - - virtual ~RectTilePainter() {}; - - protected: - virtual int tileName( unsigned int column, unsigned int row ) const; - private: - bool m_scaleH; - bool m_scaleV; - }; - - class RowPainter: public TilePainter - { - public: - RowPainter(int name): TilePainter(name) - { - colMde[0] = colMde[2] = Fixed; - colMde[1] = Tiled; - rowMde[0] = Scaled; - m_columns = 3; - } - - virtual ~RowPainter() {}; - protected: - virtual int tileName( unsigned int column, unsigned int /*row*/) const - { - return column + 3; //So can use cl, cc, cr - } - }; - - class ProgressBarPainter: public TilePainter - { - public: - ProgressBarPainter(int name, bool reverse): TilePainter(name), m_reverse(reverse) - { - //We use only of the tip bitmaps.. - if (reverse) - { - colMde[0] = Fixed; - colMde[1] = Tiled; - } - else - { - colMde[0] = Tiled; - colMde[1] = Fixed; - } - rowMde[0] = Scaled; - - m_columns = 2; - } - - virtual ~ProgressBarPainter() {}; - protected: - virtual int tileName( unsigned int column, unsigned int /*row*/ ) const - { - if (m_reverse) - { - return column + 3; //So can use cl, cc, cr - } - else - return column + 4; //So can use cl, cc, cr + we start from cc. - - } - - bool m_reverse; - }; - - - class ActiveTabPainter : public RectTilePainter - { - public: - ActiveTabPainter( bool bottom ); - virtual ~ActiveTabPainter() {}; - - protected: - virtual int tileName( unsigned int column, unsigned int row ) const; - - private: - bool m_bottom; - }; - - class InactiveTabPainter : public RectTilePainter - { - public: - enum Mode { First, Middle, Last }; - InactiveTabPainter( Mode mode, bool bottom ); - virtual ~InactiveTabPainter() {}; - - protected: - virtual int tileName( unsigned int column, unsigned int row ) const; - - private: - Mode m_mode; - bool m_bottom; - }; - - class ScrollBarPainter : public TilePainter - { - public: - ScrollBarPainter( int type, int count, bool horizontal ); - virtual ~ScrollBarPainter() {}; - - static int name( bool horizontal ); - - protected: - virtual int tileName( unsigned int column, unsigned int row ) const; - private: - int m_type; - int m_count; - bool m_horizontal; - }; - - class SpinBoxPainter : public TilePainter - { - public: - SpinBoxPainter() : TilePainter( keramik_spinbox ) { - colMde[0] = colMde[2] = Fixed; - colMde[1] = Scaled; - rowMde[0]=rowMde[1]=rowMde[2] = Scaled; - m_columns = 3; - }; - virtual ~SpinBoxPainter() {}; - - protected: - virtual int tileName( unsigned int column, unsigned int row ) const; - }; -} - -#endif - -// vim: ts=4 sw=4 noet -// kate: indent-width 4; replace-tabs off; tab-width 4; |