1 /* vim:set et ts=4 sts=4:
3 * ibus-libpinyin - Intelligent Pinyin engine based on libpinyin for IBus
5 * Copyright (c) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2, or (at your option)
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 #ifndef __PY_EDITOR_H_
22 #define __PY_EDITOR_H_
33 class PinyinProperties;
37 typedef std::shared_ptr<Editor> EditorPtr;
41 Editor (PinyinProperties & prop, Config & config);
42 virtual ~Editor (void);
44 virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers);
45 virtual void pageUp (void);
46 virtual void pageDown (void);
47 virtual void cursorUp (void);
48 virtual void cursorDown (void);
49 virtual void update (void);
50 virtual void reset (void);
51 virtual void candidateClicked (guint index, guint button, guint state);
53 const String & text (void) const
58 void setText (const String & text, guint cursor)
65 signal <void (Text &)> & signalCommitText (void) { return m_signal_commit_text; }
67 signal <void (Text &, guint, gboolean)> & signalUpdatePreeditText (void)
68 { return m_signal_update_preedit_text; }
69 signal <void ()> & signalShowPreeditText (void) { return m_signal_show_preedit_text; }
70 signal <void ()> & signalHidePreeditText (void) { return m_signal_hide_preedit_text; }
72 signal <void (Text &, gboolean)> & signalUpdateAuxiliaryText (void)
73 { return m_signal_update_auxiliary_text; }
74 signal <void ()> & signalShowAuxiliaryText (void) { return m_signal_show_auxiliary_text; }
75 signal <void ()> & signalHideAuxiliaryText (void) { return m_signal_hide_auxiliary_text; }
77 signal <void (LookupTable &, gboolean)> & signalUpdateLookupTable (void)
78 { return m_signal_update_lookup_table; }
79 signal <void (LookupTable &, gboolean)> & signalUpdateLookupTableFast (void)
80 { return m_signal_update_lookup_table_fast; }
81 signal <void ()> & signalShowLookupTable (void) { return m_signal_show_lookup_table; }
82 signal <void ()> & signalHideLookupTable (void) { return m_signal_hide_lookup_table; }
86 void commitText (Text & text) const
88 m_signal_commit_text (text);
91 void updatePreeditText (Text & text, guint cursor, gboolean visible) const
93 m_signal_update_preedit_text (text, cursor, visible);
96 void showPreeditText (void) const
98 m_signal_show_preedit_text ();
101 void hidePreeditText (void) const
103 m_signal_hide_preedit_text ();
106 void updateAuxiliaryText (Text & text, gboolean visible) const
108 m_signal_update_auxiliary_text (text, visible);
111 void showAuxiliaryText (void) const
113 m_signal_show_auxiliary_text ();
116 void hideAuxiliaryText (void) const
118 m_signal_hide_auxiliary_text ();
121 void updateLookupTable (LookupTable & table, gboolean visible) const
123 m_signal_update_lookup_table (table, visible);
126 void updateLookupTableFast (LookupTable & table, gboolean visible) const
128 m_signal_update_lookup_table_fast (table, visible);
131 void showLookupTable (void) const
133 m_signal_show_lookup_table ();
136 void hideLookupTable (void) const
138 m_signal_hide_lookup_table ();
143 signal <void (Text &)> m_signal_commit_text;
144 signal <void ( Text &, guint, gboolean)> m_signal_update_preedit_text;
145 signal <void ()> m_signal_show_preedit_text;
146 signal <void ()> m_signal_hide_preedit_text;
147 signal <void (Text &, gboolean)> m_signal_update_auxiliary_text;
148 signal <void ()> m_signal_show_auxiliary_text;
149 signal <void ()> m_signal_hide_auxiliary_text;
150 signal <void (LookupTable &, gboolean)> m_signal_update_lookup_table;
151 signal <void (LookupTable &, gboolean)> m_signal_update_lookup_table_fast;
152 signal <void ()> m_signal_show_lookup_table;
153 signal <void ()> m_signal_hide_lookup_table;
158 PinyinProperties & m_props;