diff options
author | Peng Wu <alexepico@gmail.com> | 2014-03-24 14:25:32 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2014-03-24 14:25:32 +0800 |
commit | 7f3aac459f4744d2bf96b1de440216023f5a0051 (patch) | |
tree | 729bce272bf3fa73ca78c701645c00d7b434f413 /src/ZYZPhoneticEditor.h | |
parent | 725486e710dfa6866fb82253bac83cf8fc5e26a9 (diff) | |
download | ibus-libzhuyin-7f3aac459f4744d2bf96b1de440216023f5a0051.tar.gz ibus-libzhuyin-7f3aac459f4744d2bf96b1de440216023f5a0051.tar.xz ibus-libzhuyin-7f3aac459f4744d2bf96b1de440216023f5a0051.zip |
declare phonetic editor
Diffstat (limited to 'src/ZYZPhoneticEditor.h')
-rw-r--r-- | src/ZYZPhoneticEditor.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/ZYZPhoneticEditor.h b/src/ZYZPhoneticEditor.h new file mode 100644 index 0000000..07524b9 --- /dev/null +++ b/src/ZYZPhoneticEditor.h @@ -0,0 +1,79 @@ +/* vim:set et ts=4 sts=4: + * + * ibus-libzhuyin - New Zhuyin engine based on libzhuyin for IBus + * + * Copyright (c) 2014 Peng Wu <alexepico@gmail.com> + * + * 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, 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 __ZY_LIB_ZHUYIN_BASE_EDITOR_H_ +#define __ZY_LIB_ZHUYIN_BASE_EDITOR_H_ + +#include <zhuyin.h> +#include "ZYLookupTable.h" +#include "ZYZEnhancedEditor.h" + +namespace ZY { + +class PhoneticEditor : public EnhancedEditor { +public: + PhoneticEditor (ZhuyinProperties & props, Config & config); + virtual ~PhoneticEditor (); + +public: + /* virtual functions */ + virtual void pageUp (void); + virtual void pageDown (void); + virtual void cursorUp (void); + virtual void cursorDown (void); + virtual void update (void); + virtual void reset (void); + virtual void candidateClicked (guint index, guint button, guint state); + virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers); + virtual gboolean processEnter (guint keyval, guint keycode, guint modifiers); + virtual gboolean processFunctionKey (guint keyval, guint keycode, guint modifiers); + virtual void updateLookupTable (); + virtual void updateLookupTableFast (); + virtual gboolean fillLookupTableByPage (); + +protected: + gboolean selectCandidate (guint i); + gboolean selectCandidateInPage (guint i); + + /* pure virtual functions */ + virtual gboolean insert (gint ch) = 0; + virtual gboolean removeCharBefore (void); + virtual gboolean removeCharAfter (void); + virtual gboolean moveCursorLeft (void); + virtual gboolean moveCursorRight (void); + virtual gboolean moveCursorToBegin (void); + virtual gboolean moveCursorToEnd (void); + virtual void commit (void) = 0; + virtual void updateAuxiliaryText (void) = 0; + virtual void updatePreeditText (void) = 0; + virtual void updateZhuyin (void) = 0; + + /* varibles */ + LookupTable m_lookup_table; + String m_buffer; + + /* use libzhuyin here. */ + zhuyin_instance_t *m_instance; +}; + +}; + +#endif |