summaryrefslogtreecommitdiffstats
path: root/kiten/rad.h
diff options
context:
space:
mode:
Diffstat (limited to 'kiten/rad.h')
-rw-r--r--kiten/rad.h123
1 files changed, 123 insertions, 0 deletions
diff --git a/kiten/rad.h b/kiten/rad.h
new file mode 100644
index 00000000..bae2f8dc
--- /dev/null
+++ b/kiten/rad.h
@@ -0,0 +1,123 @@
+/**
+ This file is part of Kiten, a KDE Japanese Reference Tool...
+ Copyright (C) 2001 Jason Katz-Brown <jason@katzbrown.com>
+ (C) 2005 Paul Temple <paul.temple@gmx.net>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ USA
+**/
+
+#ifndef RAD_H
+#define RAD_H
+
+#include <qstringlist.h>
+
+class Config;
+class QCheckBox;
+class QLabel;
+class QListBoxItem;
+class QSpinBox;
+class KPushButton;
+class KListBox;
+class QButtonGroup;
+
+class KDE_EXPORT Radical
+{
+ public:
+ Radical(QString = QString::null, unsigned int = 0);
+
+ QString radical() { return _Radical; }
+ unsigned int strokes() { return Strokes; }
+ QString kanji() { return Kanji; }
+
+ void addKanji(const QString &);
+
+ private:
+ QString _Radical;
+ unsigned int Strokes;
+ QString Kanji;
+};
+
+class KDE_EXPORT Rad : public QObject
+{
+ Q_OBJECT
+
+ public:
+ Rad();
+ ~Rad();
+
+ QStringList radByStrokes(unsigned int);
+ QStringList kanjiByRad(const QString &);
+ QStringList kanjiByRad(const QStringList &);
+ Radical radByKanji(const QString &);
+ unsigned int strokesByRad(const QString &);
+
+ private:
+ void load();
+
+ QValueList<Radical> list;
+ bool loaded;
+};
+
+class KDE_EXPORT RadWidget : public QWidget
+{
+ Q_OBJECT
+
+ public:
+ RadWidget(Rad *, QWidget *parent = 0, const char *name = 0);
+ ~RadWidget();
+
+ signals:
+ // if totalStrokes == 0, then don't search by total strokes
+ void set(const QStringList &radical, unsigned int totalStrokes, unsigned int totalStrokesErr);
+
+ public slots:
+ void addRadical(const QString &);
+
+ private slots:
+ void updateList(int);
+ void apply();
+ void totalClicked(void);
+ void selectionChanged();
+ void hotlistClicked(int);
+ void addToSelected(const QString &);
+ void executed(QListBoxItem *);
+ void removeSelected();
+ void clearSelected();
+
+ private:
+ QSpinBox *strokesSpin;
+ QSpinBox *totalSpin;
+ QSpinBox *totalErrSpin;
+ QLabel *totalErrLabel;
+ KPushButton *ok;
+ KPushButton *cancel;
+ KPushButton *remove;
+ KPushButton *clear;
+ QButtonGroup *hotlistGroup;
+ QCheckBox *totalStrokes;
+ KListBox *List;
+ KListBox *selectedList;
+ QStringList selected;
+
+ Rad *rad;
+
+ unsigned int hotlistNum;
+ QStringList hotlist;
+
+ void numChanged();
+};
+
+#endif