kcharselect.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef kcharselect_h
00022 #define kcharselect_h
00023
00024 #include <qgridview.h>
00025 #include <qvbox.h>
00026 #include <qcombobox.h>
00027 #include <qspinbox.h>
00028 #include <qstring.h>
00029 #include <qpoint.h>
00030 #include <qstringlist.h>
00031
00032 class QFont;
00033 class QFontDatabase;
00034 class QMouseEvent;
00035 class QSpinBox;
00036 class KCharSelectTablePrivate;
00037 class KCharSelectPrivate;
00038
00048 class KCharSelectTable : public QGridView
00049 {
00050 Q_OBJECT
00051
00052 public:
00053 KCharSelectTable( QWidget *parent, const char *name, const QString &_font,
00054 const QChar &_chr, int _tableNum );
00055
00056 virtual QSize sizeHint() const;
00057 virtual void resizeEvent( QResizeEvent * );
00058
00059 virtual void setFont( const QString &_font );
00060 virtual void setChar( const QChar &_chr );
00061 virtual void setTableNum( int _tableNum );
00062
00063 virtual QChar chr() { return vChr; }
00064
00065 protected:
00066 virtual void paintCell( class QPainter *p, int row, int col );
00067
00068 virtual void mousePressEvent( QMouseEvent *e ) { mouseMoveEvent( e ); }
00069 virtual void mouseDoubleClickEvent ( QMouseEvent *e ){ mouseMoveEvent( e ); emit doubleClicked();}
00070 virtual void mouseReleaseEvent( QMouseEvent *e ) { mouseMoveEvent( e ); emit activated( chr() ); emit activated(); }
00071 virtual void mouseMoveEvent( QMouseEvent *e );
00072
00073 virtual void keyPressEvent( QKeyEvent *e );
00074
00075 void gotoLeft();
00076 void gotoRight();
00077 void gotoUp();
00078 void gotoDown();
00079
00080 QString vFont;
00081 QChar vChr;
00082 int vTableNum;
00083 QPoint vPos;
00084 QChar focusItem;
00085 QPoint focusPos;
00086 int temp;
00087
00088 signals:
00089 void highlighted( const QChar &c );
00090 void highlighted();
00091 void activated( const QChar &c );
00092 void activated();
00093 void focusItemChanged();
00094 void focusItemChanged( const QChar &c );
00095 void tableUp();
00096 void tableDown();
00097 void doubleClicked();
00098
00099 private:
00100 virtual void setFont(const QFont &f) { QGridView::setFont(f); }
00101 void setToolTips();
00102 protected:
00103 virtual void virtual_hook( int id, void* data );
00104 private:
00105 KCharSelectTablePrivate *d;
00106 };
00107
00135 class KCharSelect : public QVBox
00136 {
00137 Q_OBJECT
00138 Q_PROPERTY( QString fontFamily READ font WRITE setFont )
00139 Q_PROPERTY( int tableNum READ tableNum WRITE setTableNum )
00140 Q_PROPERTY( bool fontComboEnabled READ isFontComboEnabled WRITE enableFontCombo )
00141 Q_PROPERTY( bool tableSpinBoxEnabled READ isTableSpinBoxEnabled WRITE enableTableSpinBox )
00142
00143 public:
00149 KCharSelect( QWidget *parent, const char *name,
00150 const QString &font = QString::null, const QChar &chr = ' ', int tableNum = 0 );
00154 virtual QSize sizeHint() const;
00155
00159 virtual void setFont( const QString &font );
00160
00164 virtual void setChar( const QChar &chr );
00165
00169 virtual void setTableNum( int tableNum );
00170
00174 virtual QChar chr() const { return charTable->chr(); }
00175
00179 virtual QString font() const { return fontCombo->currentText(); }
00180
00184 virtual int tableNum() const { return tableSpinBox->value(); }
00185
00191 virtual void enableFontCombo( bool e ) { fontCombo->setEnabled( e ); }
00192
00199 virtual void enableTableSpinBox( bool e ) { tableSpinBox->setEnabled( e ); }
00200
00207 virtual bool isFontComboEnabled() const { return fontCombo->isEnabled(); }
00208
00215 virtual bool isTableSpinBoxEnabled() const { return tableSpinBox->isEnabled(); }
00216
00217 protected:
00218 virtual void fillFontCombo();
00219 static void cleanupFontDatabase();
00220
00221 QComboBox *fontCombo;
00222 QSpinBox *tableSpinBox;
00223 KCharSelectTable *charTable;
00224 QStringList fontList;
00225 static QFontDatabase * fontDataBase;
00226
00227 protected slots:
00228 void fontSelected( const QString &_font );
00229 void tableChanged( int _value );
00230 void charHighlighted( const QChar &c ) { emit highlighted( c ); }
00231 void charHighlighted() { emit highlighted(); }
00232 void charActivated( const QChar &c ) { emit activated( c ); }
00233 void charActivated() { emit activated(); }
00234 void charFocusItemChanged() { emit focusItemChanged(); }
00235 void charFocusItemChanged( const QChar &c ) { emit focusItemChanged( c ); }
00236 void charTableUp() { if ( tableNum() < 255 ) setTableNum( tableNum() + 1 ); }
00237 void charTableDown() { if ( tableNum() > 0 ) setTableNum( tableNum() - 1 ); }
00238 void slotDoubleClicked() { emit doubleClicked(); }
00239 void slotUnicodeEntered();
00240 void slotUpdateUnicode( const QChar &c );
00241 signals:
00242 void highlighted( const QChar &c );
00243 void highlighted();
00244 void activated( const QChar &c );
00245 void activated();
00246 void fontChanged( const QString &_font );
00247 void focusItemChanged();
00248 void focusItemChanged( const QChar &c );
00249 void doubleClicked();
00250
00251 private:
00252 virtual void setFont(const QFont &f) { QVBox::setFont(f); }
00253 protected:
00254 virtual void virtual_hook( int id, void* data );
00255 private:
00256 class KCharSelectPrivate;
00257 KCharSelectPrivate *d;
00258 };
00259
00260 #endif
This file is part of the documentation for kdeui Library Version 3.3.0.