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