tkcoloractions.h
00001 #ifndef TKCOLORACTION_H
00002 #define TKCOLORACTION_H
00003
00004 #include "tkaction.h"
00005
00006 #include <kpopupmenu.h>
00007 #include <qdict.h>
00008
00009 class QGridLayout;
00010 class TKColorPanel;
00011 class TKSelectColorActionPrivate;
00012
00013 class TKColorPopupMenu : public KPopupMenu
00014 { Q_OBJECT
00015 public:
00016 TKColorPopupMenu( QWidget* parent = 0, const char* name = 0 );
00017 ~TKColorPopupMenu();
00018
00019 public slots:
00020 void updateItemSize();
00021 };
00022
00023 class TKSelectColorAction : public TKAction
00024 { Q_OBJECT
00025 public:
00026 enum Type {
00027 TextColor,
00028 LineColor,
00029 FillColor,
00030 Color
00031 };
00032
00033 TKSelectColorAction( const QString& text, Type type, QObject* parent, const char* name, bool menuDefaultColor=false);
00034 TKSelectColorAction( const QString& text, Type type,
00035 QObject* receiver, const char* slot,
00036 QObject* parent, const char* name,bool menuDefaultColor=false );
00037
00038 virtual ~TKSelectColorAction();
00039
00040 QColor color() const { return m_pCurrentColor; }
00041
00042 KPopupMenu* popupMenu() const { return m_pMenu; }
00043 void setDefaultColor(const QColor &_col);
00044
00045
00046 public slots:
00047 void setCurrentColor( const QColor& );
00048 void setActiveColor( const QColor& );
00049 virtual void activate();
00050
00051 signals:
00052 void colorSelected( const QColor& );
00053
00054 protected slots:
00055 void selectColorDialog();
00056 void panelColorSelected( const QColor& );
00057 void panelReject();
00058 virtual void slotActivated();
00059 void defaultColor();
00060
00061 protected:
00062 void init();
00063 virtual void initToolBarButton(TKToolBarButton*);
00064 void updatePixmap();
00065 void updatePixmap(TKToolBarButton*);
00066
00067 protected:
00068 TKColorPopupMenu* m_pMenu;
00069 TKColorPanel* m_pStandardColor;
00070 TKColorPanel* m_pRecentColor;
00071 int m_type;
00072
00073 QColor m_pCurrentColor;
00074
00075 private:
00076 TKSelectColorActionPrivate *d;
00077 };
00078
00079 class TKColorPanelButton : public QFrame
00080 { Q_OBJECT
00081 public:
00082 TKColorPanelButton( const QColor&, QWidget* parent, const char* name = 0 );
00083 ~TKColorPanelButton();
00084
00085 void setActive( bool );
00086
00087 QColor panelColor() const { return m_Color; }
00088
00089 signals:
00090 void selected( const QColor& );
00091
00092 protected:
00093 virtual void paintEvent( QPaintEvent* );
00094 virtual void enterEvent( QEvent* );
00095 virtual void leaveEvent( QEvent* );
00096 virtual void mouseReleaseEvent( QMouseEvent* );
00097
00098 QColor m_Color;
00099 bool m_bActive;
00100
00101 private:
00102 class TKColorPanelButtonPrivate;
00103 TKColorPanelButtonPrivate *d;
00104 };
00105
00106 class TKColorPanel : public QWidget
00107 { Q_OBJECT
00108
00109 public:
00110 TKColorPanel( QWidget* parent = 0L, const char* name = 0 );
00111 ~TKColorPanel();
00112
00113 void setActiveColor( const QColor& );
00114 void setNumCols( int col );
00115 void clear();
00116
00117 public slots:
00118 void insertColor( const QColor& );
00119 void insertColor( const QColor&, const QString& );
00120 void selected( const QColor& );
00121
00122 signals:
00123 void colorSelected( const QColor& );
00124 void reject();
00125 void sizeChanged();
00126
00127 protected:
00128 void addToGrid( TKColorPanelButton* );
00129 void resetGrid();
00130
00131 virtual void mouseReleaseEvent( QMouseEvent* );
00132 virtual void showEvent( QShowEvent *e );
00133
00134 QGridLayout* m_pLayout;
00135 int m_iWidth;
00136 int m_iX;
00137 int m_iY;
00138
00139 QColor m_activeColor;
00140 QDict<TKColorPanelButton> m_pColorDict;
00141
00142 private:
00143 void fillPanel();
00144
00145 class TKColorPanelPrivate;
00146 TKColorPanelPrivate *d;
00147 };
00148
00149 #endif
This file is part of the documentation for lib Library Version 1.3.5.