lib Library API Documentation

tkcoloractions.cpp

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