lib Library API Documentation

tkcoloractions.cpp

00001 /*
00002  * Kivio - Visual Modelling and Flowcharting
00003  * Copyright (C) 2000 theKompany.com
00004  *
00005  * This program is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU General Public License
00007  * as published by the Free Software Foundation; either version 2
00008  * of the License, or (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00018  */
00019 
00020 #include "tkcoloractions.h"
00021 #include "tktoolbarbutton.h"
00022 
00023 #include <qlayout.h>
00024 #include <kcolordialog.h>
00025 #include <ktoolbar.h>
00026 #include <qpainter.h>
00027 #include <qtooltip.h>
00028 #include <qwhatsthis.h>
00029 #include <klocale.h>
00030 #include <kdebug.h>
00031 
00032 TKColorPopupMenu::TKColorPopupMenu( QWidget* parent, const char* name )
00033 : KPopupMenu(parent,name)
00034 {
00035 }
00036 
00037 TKColorPopupMenu::~TKColorPopupMenu()
00038 {
00039 }
00040 
00041 void TKColorPopupMenu::updateItemSize()
00042 {
00043   styleChange(style());
00044 }
00045 /****************************************************************************************/
00046 class TKSelectColorActionPrivate
00047 {
00048 public:
00049     TKSelectColorActionPrivate()
00050     {
00051     }
00052     bool defaultColorMenu;
00053     QColor defaultColor;
00054 };
00055 
00056 
00057 TKSelectColorAction::TKSelectColorAction( const QString& text, Type type, QObject* parent, const char* name, bool menuDefaultColor )
00058 : TKAction(parent,name)
00059 {
00060     d=new TKSelectColorActionPrivate();
00061     d->defaultColorMenu=menuDefaultColor;
00062     d->defaultColor=QColor();
00063     setText(text);
00064     m_type = type;
00065     init();
00066 }
00067 
00068 TKSelectColorAction::TKSelectColorAction( const QString& text, Type type,
00069                                           QObject* receiver, const char* slot,
00070                                           QObject* parent, const char* name, bool menuDefaultColor)
00071 : TKAction(parent,name)
00072 {
00073     d=new TKSelectColorActionPrivate();
00074     d->defaultColorMenu=menuDefaultColor;
00075     d->defaultColor=QColor();
00076     setText(text);
00077     m_type = type;
00078     connect( this, SIGNAL( activated() ), receiver, slot );
00079     init();
00080 }
00081 
00082 void TKSelectColorAction::init()
00083 {
00084   m_pStandardColor = new TKColorPanel();
00085   m_pRecentColor = new TKColorPanel();
00086 
00087   connect(m_pStandardColor,SIGNAL(colorSelected(const QColor&)),SLOT(panelColorSelected(const QColor&)));
00088   connect(m_pStandardColor,SIGNAL(reject()),SLOT(panelReject()));
00089   connect(m_pRecentColor,SIGNAL(colorSelected(const QColor&)),SLOT(panelColorSelected(const QColor&)));
00090   connect(m_pRecentColor,SIGNAL(reject()),SLOT(panelReject()));
00091 
00092   m_pRecentColor->clear();
00093 
00094   m_pMenu = new TKColorPopupMenu();
00095   m_pMenu->insertItem(m_pStandardColor);
00096   m_pMenu->insertSeparator();
00097   m_pMenu->insertItem(m_pRecentColor);
00098   m_pMenu->insertSeparator();
00099 
00100   switch (m_type) {
00101     case TextColor:
00102       m_pMenu->insertItem(i18n("More Text Colors..."),this,SLOT(selectColorDialog()));
00103       setCurrentColor(black);
00104       setIcon("textcolor");
00105       break;
00106     case LineColor:
00107       m_pMenu->insertItem(i18n("More Line Colors..."),this,SLOT(selectColorDialog()));
00108       setCurrentColor(black);
00109       setIcon("color_line");
00110       break;
00111     case FillColor:
00112       m_pMenu->insertItem(i18n("More Fill Colors..."),this,SLOT(selectColorDialog()));
00113       setCurrentColor(white);
00114       setIcon("color_fill");
00115       break;
00116     case Color:
00117       break;
00118   }
00119   if(d->defaultColorMenu)
00120   {
00121       m_pMenu->insertSeparator();
00122       m_pMenu->insertItem(i18n("Default Color"),this,SLOT(defaultColor()));
00123   }
00124 
00125   connect(m_pStandardColor,SIGNAL(sizeChanged()),m_pMenu,SLOT(updateItemSize()));
00126   connect(m_pRecentColor,SIGNAL(sizeChanged()),m_pMenu,SLOT(updateItemSize()));
00127 }
00128 
00129 TKSelectColorAction::~TKSelectColorAction()
00130 {
00131   delete m_pMenu;
00132   delete d;
00133 }
00134 
00135 void TKSelectColorAction::initToolBarButton(TKToolBarButton* b)
00136 {
00137   QWhatsThis::add( b, whatsThis() );
00138   TKAction::initToolBarButton(b);
00139   b->setDelayedPopup( popupMenu() );
00140   updatePixmap(b);
00141   updatePixmap();
00142 }
00143 
00144 void TKSelectColorAction::defaultColor()
00145 {
00146    m_pCurrentColor = d->defaultColor;
00147    emit activated();
00148 }
00149 
00150 void TKSelectColorAction::setDefaultColor(const QColor &_col)
00151 {
00152     d->defaultColor=_col;
00153 }
00154 
00155 void TKSelectColorAction::updatePixmap()
00156 {
00157   for( int id = 0; id < containerCount(); ++id ) {
00158     QWidget* w = container(id);
00159     if ( w->inherits("KToolBar") ) {
00160       QWidget* r = static_cast<KToolBar*>(w)->getWidget(itemId(id));
00161       if ( r->inherits("TKToolBarButton") ) {
00162         updatePixmap(static_cast<TKToolBarButton*>(r));
00163       }
00164     }
00165     else if(w->inherits("QPopupMenu") ) {
00166         QPixmap pix =iconSet(KIcon::Small).pixmap(QIconSet::Automatic,QIconSet::Active);
00167   if ( pix.isNull() )
00168       return;
00169         QPainter p(&pix);
00170         switch (m_type) {
00171             case TextColor:
00172                 p.fillRect(QRect(0,12,16,5), m_pCurrentColor);
00173                 break;
00174             case LineColor:
00175                 p.fillRect(QRect(0,13,16,5), m_pCurrentColor);
00176                 p.fillRect(QRect(3,12,1,1), m_pCurrentColor);
00177                 break;
00178             case FillColor:
00179                 p.fillRect(QRect(0,13,16,5), m_pCurrentColor);
00180                 p.fillRect(QRect(1,10,5,3), m_pCurrentColor);
00181                 break;
00182             case Color:
00183                 break;
00184         }
00185         p.end();
00186         setIconSet( pix );
00187     }
00188   }
00189 }
00190 
00191 void TKSelectColorAction::updatePixmap(TKToolBarButton* b)
00192 {
00193   if (!b)
00194     return;
00195   // Not much point in painting with an invalid color
00196   if (!m_pCurrentColor.isValid())
00197     return;
00198   QPixmap pix =b->getActivePixmap();
00199   QPainter p(&pix);
00200   switch (m_type) {
00201     case TextColor:
00202       p.fillRect(QRect(0,12,16,5), m_pCurrentColor);
00203       break;
00204     case LineColor:
00205       p.fillRect(QRect(0,13,16,5), m_pCurrentColor);
00206       p.fillRect(QRect(3,12,1,1), m_pCurrentColor);
00207       break;
00208     case FillColor:
00209       p.fillRect(QRect(0,13,16,5), m_pCurrentColor);
00210       p.fillRect(QRect(1,10,5,3), m_pCurrentColor);
00211       break;
00212     case Color:
00213       break;
00214   }
00215   p.end();
00216   b->setPixmap(pix);
00217 }
00218 
00219 void TKSelectColorAction::setCurrentColor( const QColor& color )
00220 {
00221     if ( color == m_pCurrentColor )
00222         return;
00223     m_pCurrentColor = color;
00224     setActiveColor( color );
00225     m_pRecentColor->setActiveColor(color );
00226   updatePixmap();
00227 }
00228 
00229 void TKSelectColorAction::setActiveColor( const QColor& color )
00230 {
00231   m_pStandardColor->setActiveColor(color);
00232 }
00233 
00234 void TKSelectColorAction::selectColorDialog()
00235 {
00236     QColor color;
00237     if ( d->defaultColorMenu )
00238     {
00239         if ( KColorDialog::getColor(color,d->defaultColor) == QDialog::Accepted )
00240         {
00241             setCurrentColor(color);
00242             m_pRecentColor->insertColor(m_pCurrentColor);
00243             activate();
00244         }
00245 
00246     }
00247     else
00248     {
00249         if ( KColorDialog::getColor(color) == QDialog::Accepted )
00250         {
00251             setCurrentColor(color);
00252             m_pRecentColor->insertColor(m_pCurrentColor);
00253             activate();
00254         }
00255     }
00256 }
00257 
00258 // Called when activating the menu item
00259 void TKSelectColorAction::slotActivated()
00260 {
00261   //kdDebug() << "TKSelectColorAction::slotActivated" << endl;
00262   selectColorDialog();
00263 }
00264 
00265 void TKSelectColorAction::activate()
00266 {
00267   emit colorSelected(m_pCurrentColor);
00268   emit activated();
00269 }
00270 
00271 void TKSelectColorAction::panelColorSelected( const QColor& color )
00272 {
00273   m_pMenu->hide();
00274   setCurrentColor(color);
00275 
00276   activate();
00277 }
00278 
00279 void TKSelectColorAction::panelReject()
00280 {
00281   m_pMenu->hide();
00282 }
00283 
00284 class TKColorPanel::TKColorPanelPrivate
00285 {
00286 public:
00287   TKColorPanelPrivate()
00288   {
00289     panelCreated = false;
00290   }
00291 
00292   bool panelCreated;
00293 };
00294 
00295 /****************************************************************************************/
00296 TKColorPanel::TKColorPanel( QWidget* parent, const char* name )
00297 : QWidget(parent,name)
00298 {
00299   d = new TKColorPanel::TKColorPanelPrivate();
00300   m_activeColor = black;
00301 
00302   //m_iX = 0;  // happens in setNumCols() -> resetGrid()
00303   //m_iY = 0;  // anyway, so...
00304 
00305   m_pLayout = 0L;
00306   setNumCols(15);
00307 }
00308 
00309 void TKColorPanel::setNumCols( int col )
00310 {
00311   m_iWidth = col;
00312   resetGrid();
00313 
00314   QDictIterator<TKColorPanelButton> it(m_pColorDict);
00315   while ( it.current() ) {
00316     addToGrid(it.current());
00317     ++it;
00318   }
00319 }
00320 
00321 TKColorPanel::~TKColorPanel()
00322 {
00323   delete d;
00324 }
00325 
00326 void TKColorPanel::resetGrid()
00327 {
00328   m_iX = 0;
00329   m_iY = 0;
00330 
00331   delete m_pLayout;
00332   m_pLayout = new QGridLayout(this,0,m_iWidth+1,0,0);
00333 
00334   emit sizeChanged();
00335 }
00336 
00337 void TKColorPanel::clear()
00338 {
00339   m_pColorDict.setAutoDelete(true);
00340   m_pColorDict.clear();
00341   m_pColorDict.setAutoDelete(false);
00342   d->panelCreated = true;  // we don't want to create the default
00343                            // panel anymore now (b/c of recent colors)
00344   resetGrid();
00345 }
00346 
00347 void TKColorPanel::insertColor( const QColor& color, const QString& text )
00348 {
00349   if (m_pColorDict[color.name()])
00350     return;
00351 
00352   insertColor(color);
00353   QToolTip::add(m_pColorDict[color.name()],text);
00354 }
00355 
00356 void TKColorPanel::insertColor( const QColor& color )
00357 {
00358   if (m_pColorDict[color.name()])
00359     return;
00360 
00361   m_pLayout->setMargin(3);
00362   TKColorPanelButton* f = new TKColorPanelButton(color,this);
00363   m_pColorDict.insert(color.name(),f);
00364   if ( m_activeColor == color )
00365       f->setActive(true);
00366 
00367   connect(f,SIGNAL(selected(const QColor&)),SLOT(selected(const QColor&)));
00368 
00369   addToGrid(f);
00370 }
00371 
00372 void TKColorPanel::addToGrid( TKColorPanelButton* f )
00373 {
00374   m_pLayout->addWidget(f,m_iY,m_iX);
00375   f->show();  // yeehaaaw! ugly hack (Werner)
00376   m_iX++;
00377   if ( m_iX == m_iWidth ) {
00378     m_iX = 0;
00379     m_iY++;
00380   }
00381   emit sizeChanged();
00382 }
00383 
00384 void TKColorPanel::setActiveColor( const QColor& color )
00385 {
00386     TKColorPanelButton* b = m_pColorDict[m_activeColor.name()];
00387   if (b)
00388     b->setActive(false);
00389 
00390   m_activeColor = color;
00391 
00392   b = m_pColorDict[m_activeColor.name()];
00393   if (b)
00394     b->setActive(true);
00395 }
00396 
00397 void TKColorPanel::mouseReleaseEvent( QMouseEvent* )
00398 {
00399   reject();
00400 }
00401 
00402 void TKColorPanel::showEvent( QShowEvent *e )
00403 {
00404   if ( !d->panelCreated )
00405     fillPanel();
00406   QWidget::showEvent(e);
00407 }
00408 
00409 void TKColorPanel::selected( const QColor& color )
00410 {
00411   emit colorSelected(color);
00412 }
00413 
00414 void TKColorPanel::fillPanel()
00415 {
00416   d->panelCreated = true;
00417   blockSignals(true); // don't emit sizeChanged() all the time
00418 
00419   // ### TODO: names without space (e.g. red) are lower case in rgb.txt
00420   insertColor(QColor( 255,   0,   0 ), i18n( "color", "Red"));
00421   insertColor(QColor( 255, 165,   0 ), i18n( "color", "Orange"));
00422   insertColor(QColor( 255,   0, 255 ), i18n( "color", "Magenta"));
00423   insertColor(QColor(   0,   0, 255 ), i18n( "color", "Blue"));
00424   insertColor(QColor(   0, 255, 255 ), i18n( "color", "Cyan"));
00425   insertColor(QColor(   0, 255,   0 ), i18n( "color", "Green"));
00426   insertColor(QColor( 255, 255,   0 ), i18n( "color", "Yellow"));
00427   insertColor(QColor( 165,  42,  42 ), i18n( "color", "Brown"));
00428   insertColor(QColor( 139,   0,   0 ), i18n( "color", "DarkRed"));
00429   insertColor(QColor( 255, 140,   0 ), i18n( "color", "DarkOrange"));
00430   insertColor(QColor( 139,   0, 139 ), i18n( "color", "DarkMagenta"));
00431   insertColor(QColor(   0,   0, 139 ), i18n( "color", "DarkBlue"));
00432   insertColor(QColor(   0, 139, 139 ), i18n( "color", "DarkCyan"));
00433   insertColor(QColor(   0, 100,   0 ), i18n( "color", "DarkGreen"));
00434   insertColor(QColor( 130, 127,   0 ), i18n( "color", "DarkYellow")); // ### not in rgb.txt
00435 
00436   insertColor(QColor( 255, 255, 255 ), i18n( "color", "White"));
00437   insertColor(QColor( 229, 229, 229 ), i18n( "color", "Gray 90%")); // ### not in rgb.txt
00438   insertColor(QColor( 204, 204, 204 ), i18n( "color", "Gray 80%")); // ### not in rgb.txt
00439   insertColor(QColor( 178, 178, 178 ), i18n( "color", "Gray 70%")); // ### not in rgb.txt
00440   insertColor(QColor( 153, 153, 153 ), i18n( "color", "Gray 60%")); // ### not in rgb.txt
00441   insertColor(QColor( 127, 127, 127 ), i18n( "color", "Gray 50%")); // ### not in rgb.txt
00442   insertColor(QColor( 102, 102, 102 ), i18n( "color", "Gray 40%")); // ### not in rgb.txt
00443   insertColor(QColor(  76,  76,  76 ), i18n( "color", "Gray 30%")); // ### not in rgb.txt
00444   insertColor(QColor(  51,  51,  51 ), i18n( "color", "Gray 20%")); // ### not in rgb.txt
00445   insertColor(QColor(  25,  25,  25 ), i18n( "color", "Gray 10%")); // ### not in rgb.txt
00446   insertColor(QColor(   0,   0,   0 ), i18n( "color", "Black"));
00447 
00448   insertColor(QColor( 255, 255, 240 ), i18n( "color", "Ivory"));
00449   insertColor(QColor( 255, 250, 250 ), i18n( "color", "Snow"));
00450   insertColor(QColor( 245, 255, 250 ), i18n( "color", "MintCream"));
00451   insertColor(QColor( 255, 250, 240 ), i18n( "color", "FloralWhite"));
00452   insertColor(QColor( 255, 255, 224 ), i18n( "color", "LightYellow"));
00453   insertColor(QColor( 240, 255, 255 ), i18n( "color", "Azure"));
00454   insertColor(QColor( 248, 248, 255 ), i18n( "color", "GhostWhite"));
00455   insertColor(QColor( 240, 255, 240 ), i18n( "color", "Honeydew"));
00456   insertColor(QColor( 255, 245, 238 ), i18n( "color", "Seashell"));
00457   insertColor(QColor( 240, 248, 255 ), i18n( "color", "AliceBlue"));
00458   insertColor(QColor( 255, 248, 220 ), i18n( "color", "Cornsilk"));
00459   insertColor(QColor( 255, 240, 245 ), i18n( "color", "LavenderBlush"));
00460   insertColor(QColor( 253, 245, 230 ), i18n( "color", "OldLace"));
00461   insertColor(QColor( 245, 245, 245 ), i18n( "color", "WhiteSmoke"));
00462   insertColor(QColor( 255, 250, 205 ), i18n( "color", "LemonChiffon"));
00463   insertColor(QColor( 224, 255, 255 ), i18n( "color", "LightCyan"));
00464   insertColor(QColor( 250, 250, 210 ), i18n( "color", "LightGoldenrodYellow"));
00465   insertColor(QColor( 250, 240, 230 ), i18n( "color", "Linen"));
00466   insertColor(QColor( 245, 245, 220 ), i18n( "color", "Beige"));
00467   insertColor(QColor( 255, 239, 213 ), i18n( "color", "PapayaWhip"));
00468   insertColor(QColor( 255, 235, 205 ), i18n( "color", "BlanchedAlmond"));
00469   insertColor(QColor( 250, 235, 215 ), i18n( "color", "AntiqueWhite"));
00470   insertColor(QColor( 255, 228, 225 ), i18n( "color", "MistyRose"));
00471   insertColor(QColor( 230, 230, 250 ), i18n( "color", "Lavender"));
00472   insertColor(QColor( 255, 228, 196 ), i18n( "color", "Bisque"));
00473   insertColor(QColor( 255, 228, 181 ), i18n( "color", "Moccasin"));
00474   insertColor(QColor( 255, 222, 173 ), i18n( "color", "NavajoWhite"));
00475   insertColor(QColor( 255, 218, 185 ), i18n( "color", "PeachPuff"));
00476   insertColor(QColor( 238, 232, 170 ), i18n( "color", "PaleGoldenrod"));
00477   insertColor(QColor( 245, 222, 179 ), i18n( "color", "Wheat"));
00478   insertColor(QColor( 220, 220, 220 ), i18n( "color", "Gainsboro"));
00479   insertColor(QColor( 240, 230, 140 ), i18n( "color", "Khaki"));
00480   insertColor(QColor( 175, 238, 238 ), i18n( "color", "PaleTurquoise"));
00481   insertColor(QColor( 255, 192, 203 ), i18n( "color", "Pink"));
00482   insertColor(QColor( 238, 221, 130 ), i18n( "color", "LightGoldenrod"));
00483   insertColor(QColor( 211, 211, 211 ), i18n( "color", "LightGray"));
00484   insertColor(QColor( 255, 182, 193 ), i18n( "color", "LightPink"));
00485   insertColor(QColor( 176, 224, 230 ), i18n( "color", "PowderBlue"));
00486   insertColor(QColor( 127, 255, 212 ), i18n( "color", "Aquamarine"));
00487   insertColor(QColor( 216, 191, 216 ), i18n( "color", "Thistle"));
00488   insertColor(QColor( 173, 216, 230 ), i18n( "color", "LightBlue"));
00489   insertColor(QColor( 152, 251, 152 ), i18n( "color", "PaleGreen"));
00490   insertColor(QColor( 255, 215,   0 ), i18n( "color", "Gold"));
00491   insertColor(QColor( 173, 255,  47 ), i18n( "color", "GreenYellow"));
00492   insertColor(QColor( 176, 196, 222 ), i18n( "color", "LightSteelBlue"));
00493   insertColor(QColor( 144, 238, 144 ), i18n( "color", "LightGreen"));
00494   insertColor(QColor( 221, 160, 221 ), i18n( "color", "Plum"));
00495   insertColor(QColor( 190, 190, 190 ), i18n( "color", "Gray"));
00496   insertColor(QColor( 222, 184, 135 ), i18n( "color", "BurlyWood"));
00497   insertColor(QColor( 135, 206, 250 ), i18n( "color", "LightSkyblue"));
00498   insertColor(QColor( 255, 160, 122 ), i18n( "color", "LightSalmon"));
00499   insertColor(QColor( 135, 206, 235 ), i18n( "color", "SkyBlue"));
00500   insertColor(QColor( 210, 180, 140 ), i18n( "color", "Tan"));
00501   insertColor(QColor( 238, 130, 238 ), i18n( "color", "Violet"));
00502   insertColor(QColor( 244, 164,  96 ), i18n( "color", "SandyBrown"));
00503   insertColor(QColor( 233, 150, 122 ), i18n( "color", "DarkSalmon"));
00504   insertColor(QColor( 189, 183, 107 ), i18n( "color", "DarkKhaki"));
00505   insertColor(QColor( 127, 255,   0 ), i18n( "color", "Chartreuse"));
00506   insertColor(QColor( 169, 169, 169 ), i18n( "color", "DarkGray"));
00507   insertColor(QColor( 124, 252,   0 ), i18n( "color", "LawnGreen"));
00508   insertColor(QColor( 255, 105, 180 ), i18n( "color", "HotPink"));
00509   insertColor(QColor( 250, 128, 114 ), i18n( "color", "Salmon"));
00510   insertColor(QColor( 240, 128, 128 ), i18n( "color", "LightCoral"));
00511   insertColor(QColor(  64, 224, 208 ), i18n( "color", "Turquoise"));
00512   insertColor(QColor( 143, 188, 143 ), i18n( "color", "DarkSeagreen"));
00513   insertColor(QColor( 218, 112, 214 ), i18n( "color", "Orchid"));
00514   insertColor(QColor( 102, 205, 170 ), i18n( "color", "MediumAquamarine"));
00515   insertColor(QColor( 255, 127,  80 ), i18n( "color", "Coral"));
00516   insertColor(QColor( 154, 205,  50 ), i18n( "color", "YellowGreen"));
00517   insertColor(QColor( 218, 165,  32 ), i18n( "color", "Goldenrod"));
00518   insertColor(QColor(  72, 209, 204 ), i18n( "color", "MediumTurquoise"));
00519   insertColor(QColor( 188, 143, 143 ), i18n( "color", "RosyBrown"));
00520   insertColor(QColor( 219, 112, 147 ), i18n( "color", "PaleVioletRed"));
00521   insertColor(QColor(   0, 250, 154 ), i18n( "color", "MediumSpringGreen"));
00522   insertColor(QColor( 255,  99,  71 ), i18n( "color", "Tomato"));
00523   insertColor(QColor(   0, 255, 127 ), i18n( "color", "SpringGreen"));
00524   insertColor(QColor( 205, 133,  63 ), i18n( "color", "Peru"));
00525   insertColor(QColor( 100, 149, 237 ), i18n( "color", "CornflowerBlue"));
00526   insertColor(QColor( 132, 112, 255 ), i18n( "color", "LightSlateBlue"));
00527   insertColor(QColor( 147, 112, 219 ), i18n( "color", "MediumPurple"));
00528   insertColor(QColor( 186,  85, 211 ), i18n( "color", "MediumOrchid"));
00529   insertColor(QColor(  95, 158, 160 ), i18n( "color", "CadetBlue"));
00530   insertColor(QColor(   0, 206, 209 ), i18n( "color", "DarkTurquoise"));
00531   insertColor(QColor(   0, 191, 255 ), i18n( "color", "DeepSkyblue"));
00532   insertColor(QColor( 119, 136, 153 ), i18n( "color", "LightSlateGray"));
00533   insertColor(QColor( 184, 134,  11 ), i18n( "color", "DarkGoldenrod"));
00534   insertColor(QColor( 123, 104, 238 ), i18n( "color", "MediumSlateBlue"));
00535   insertColor(QColor( 205,  92,  92 ), i18n( "color", "IndianRed"));
00536   insertColor(QColor( 210, 105,  30 ), i18n( "color", "Chocolate"));
00537   insertColor(QColor(  60, 179, 113 ), i18n( "color", "MediumSeaGreen"));
00538   insertColor(QColor(  50, 205,  50 ), i18n( "color", "LimeGreen"));
00539   insertColor(QColor(  32, 178, 170 ), i18n( "color", "LightSeaGreen"));
00540   insertColor(QColor( 112, 128, 144 ), i18n( "color", "SlateGray"));
00541   insertColor(QColor(  30, 144, 255 ), i18n( "color", "DodgerBlue"));
00542   insertColor(QColor( 255,  69,   0 ), i18n( "color", "OrangeRed"));
00543   insertColor(QColor( 255,  20, 147 ), i18n( "color", "DeepPink"));
00544   insertColor(QColor(  70, 130, 180 ), i18n( "color", "SteelBlue"));
00545   insertColor(QColor( 106,  90, 205 ), i18n( "color", "SlateBlue"));
00546   insertColor(QColor( 107, 142,  35 ), i18n( "color", "OliveDrab"));
00547   insertColor(QColor(  65, 105, 225 ), i18n( "color", "RoyalBlue"));
00548   insertColor(QColor( 208,  32, 144 ), i18n( "color", "VioletRed"));
00549   insertColor(QColor( 153,  50, 204 ), i18n( "color", "DarkOrchid"));
00550   insertColor(QColor( 160,  32, 240 ), i18n( "color", "Purple"));
00551   insertColor(QColor( 105, 105, 105 ), i18n( "color", "DimGray"));
00552   insertColor(QColor( 138,  43, 226 ), i18n( "color", "BlueViolet"));
00553   insertColor(QColor( 160,  82,  45 ), i18n( "color", "Sienna"));
00554   insertColor(QColor( 199,  21, 133 ), i18n( "color", "MediumVioletRed"));
00555   insertColor(QColor( 176,  48,  96 ), i18n( "color", "Maroon"));
00556   insertColor(QColor(  46, 139,  87 ), i18n( "color", "SeaGreen"));
00557   insertColor(QColor(  85, 107,  47 ), i18n( "color", "DarkOliveGreen"));
00558   insertColor(QColor(  34, 139,  34 ), i18n( "color", "ForestGreen"));
00559   insertColor(QColor( 139,  69,  19 ), i18n( "color", "SaddleBrown"));
00560   insertColor(QColor( 148,   0, 211 ), i18n( "color", "DarkViolet"));
00561   insertColor(QColor( 178,  34,  34 ), i18n( "color", "FireBrick"));
00562   insertColor(QColor(  72,  61, 139 ), i18n( "color", "DarkSlateBlue"));
00563   insertColor(QColor(  47,  79,  79 ), i18n( "color", "DarkSlateGray"));
00564   insertColor(QColor(  25,  25, 112 ), i18n( "color", "MidnightBlue"));
00565   insertColor(QColor(   0,   0, 205 ), i18n( "color", "MediumBlue"));
00566   insertColor(QColor(   0,   0, 128 ), i18n( "color", "Navy"));
00567 
00568   blockSignals(false);  // Signals allowed again
00569   emit sizeChanged();   // one call should be enough ;)
00570 }
00571 
00572 /****************************************************************************************/
00573 TKColorPanelButton::TKColorPanelButton( const QColor& color, QWidget* parent, const char* name )
00574 : QFrame(parent,name), m_Color(color), m_bActive(false)
00575 {
00576   setFixedSize(16,16);
00577   setFrameStyle( NoFrame );
00578 }
00579 
00580 TKColorPanelButton::~TKColorPanelButton()
00581 {
00582 }
00583 
00584 void TKColorPanelButton::enterEvent( QEvent* )
00585 {
00586   if (!m_bActive)
00587     setFrameStyle( Panel | Sunken );
00588 }
00589 
00590 void TKColorPanelButton::leaveEvent( QEvent* )
00591 {
00592   if (!m_bActive)
00593     setFrameStyle( NoFrame );
00594 }
00595 
00596 void TKColorPanelButton::paintEvent( QPaintEvent* ev )
00597 {
00598   QFrame::paintEvent(ev);
00599 
00600   QPainter p(this,this);
00601   p.fillRect(2,2,12,12,m_Color);
00602   p.setPen(gray);
00603   p.drawRect(2,2,12,12);
00604   p.end();
00605 }
00606 
00607 void TKColorPanelButton::setActive( bool f )
00608 {
00609   m_bActive = f;
00610   setFrameStyle( m_bActive ? Panel | Sunken : NoFrame );
00611 }
00612 
00613 void TKColorPanelButton::mouseReleaseEvent( QMouseEvent* )
00614 {
00615   emit selected(m_Color);
00616 }
00617 #include "tkcoloractions.moc"
KDE Logo
This file is part of the documentation for lib Library Version 1.4.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Mon Feb 13 09:40:16 2006 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003