summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2018-06-19 16:25:46 +0800
committerPeng Wu <alexepico@gmail.com>2018-06-19 16:25:46 +0800
commit6ead074c8939c9530c5f841e7b2a0987267766e5 (patch)
tree4372fba6e0164282779b4789da99a15b0f40ce87
parentd0d1622c759e73e0a8bb4763ca8f8fb6a98224a2 (diff)
downloadibus-libpinyin-6ead074c8939c9530c5f841e7b2a0987267766e5.tar.gz
ibus-libpinyin-6ead074c8939c9530c5f841e7b2a0987267766e5.tar.xz
ibus-libpinyin-6ead074c8939c9530c5f841e7b2a0987267766e5.zip
fixes compile
-rw-r--r--src/PYEditor.h14
-rw-r--r--src/PYPEnhancedCandidates.h7
-rw-r--r--src/PYPLibPinyinCandidates.h4
-rw-r--r--src/PYPLuaConverterCandidates.cc2
-rw-r--r--src/PYPLuaConverterCandidates.h7
-rw-r--r--src/PYPLuaTriggerCandidates.cc2
-rw-r--r--src/PYPLuaTriggerCandidates.h6
-rw-r--r--src/PYPPhoneticEditor.h8
-rw-r--r--src/PYPSuggestionCandidates.cc2
-rw-r--r--src/PYPSuggestionCandidates.h6
-rw-r--r--src/PYPTradCandidates.h6
11 files changed, 40 insertions, 24 deletions
diff --git a/src/PYEditor.h b/src/PYEditor.h
index a0ffb18..6e32275 100644
--- a/src/PYEditor.h
+++ b/src/PYEditor.h
@@ -25,6 +25,7 @@
#include "PYSignal.h"
#include "PYString.h"
#include "PYUtil.h"
+#include "PYPEnhancedCandidates.h"
namespace PY {
@@ -36,7 +37,18 @@ class Config;
class Editor;
typedef std::shared_ptr<Editor> EditorPtr;
+class TraditionalCandidates;
+class LuaTriggerCandidates;
+class LuaConverterCandidates;
+
class Editor {
+ friend class TraditionalCandidates;
+
+#ifdef IBUS_BUILD_LUA_EXTENSION
+ friend class LuaTriggerCandidates;
+ friend class LuaConverterCandidates;
+#endif
+
public:
Editor (PinyinProperties & prop, Config & config);
virtual ~Editor (void);
@@ -139,6 +151,8 @@ protected:
}
protected:
+ virtual SelectCandidateAction selectCandidateInternal (EnhancedCandidate & candidate) { return SELECT_CANDIDATE_ALREADY_HANDLED; }
+
/* signals */
signal <void (Text &)> m_signal_commit_text;
signal <void ( Text &, guint, gboolean)> m_signal_update_preedit_text;
diff --git a/src/PYPEnhancedCandidates.h b/src/PYPEnhancedCandidates.h
index b6db2b9..9a7781e 100644
--- a/src/PYPEnhancedCandidates.h
+++ b/src/PYPEnhancedCandidates.h
@@ -28,8 +28,6 @@
namespace PY {
-class PhoneticEditor;
-
enum CandidateType {
CANDIDATE_NBEST_MATCH = 1,
/* not included with user candidate */
@@ -61,6 +59,7 @@ struct EnhancedCandidate {
std::string m_display_string;
};
+template <class IEditor>
class EnhancedCandidates {
public:
@@ -70,8 +69,8 @@ public:
protected:
- /* will call selectCandidateInternal method of class PhoneticEditor. */
- PhoneticEditor *m_editor;
+ /* will call selectCandidateInternal method of class IEditor. */
+ IEditor *m_editor;
};
};
diff --git a/src/PYPLibPinyinCandidates.h b/src/PYPLibPinyinCandidates.h
index 8082784..3b20a7e 100644
--- a/src/PYPLibPinyinCandidates.h
+++ b/src/PYPLibPinyinCandidates.h
@@ -26,7 +26,9 @@
namespace PY {
-class LibPinyinCandidates : public EnhancedCandidates {
+class PhoneticEditor;
+
+class LibPinyinCandidates : public EnhancedCandidates<PhoneticEditor> {
public:
LibPinyinCandidates (PhoneticEditor *editor) {
m_editor = editor;
diff --git a/src/PYPLuaConverterCandidates.cc b/src/PYPLuaConverterCandidates.cc
index fd27f0c..2031306 100644
--- a/src/PYPLuaConverterCandidates.cc
+++ b/src/PYPLuaConverterCandidates.cc
@@ -27,7 +27,7 @@
using namespace PY;
-LuaConverterCandidates::LuaConverterCandidates (PhoneticEditor *editor)
+LuaConverterCandidates::LuaConverterCandidates (Editor *editor)
{
m_editor = editor;
diff --git a/src/PYPLuaConverterCandidates.h b/src/PYPLuaConverterCandidates.h
index 6659d77..4270670 100644
--- a/src/PYPLuaConverterCandidates.h
+++ b/src/PYPLuaConverterCandidates.h
@@ -32,9 +32,11 @@ extern "C" {
namespace PY {
-class LuaConverterCandidates : public EnhancedCandidates {
+class Editor;
+
+class LuaConverterCandidates : public EnhancedCandidates<Editor> {
public:
- LuaConverterCandidates (PhoneticEditor *editor);
+ LuaConverterCandidates (Editor *editor);
public:
gboolean setConverter (const char * lua_function_name);
@@ -49,7 +51,6 @@ protected:
int loadLuaScript (std::string filename);
Pointer<IBusEnginePlugin> m_lua_plugin;
-
};
};
diff --git a/src/PYPLuaTriggerCandidates.cc b/src/PYPLuaTriggerCandidates.cc
index e67b979..420d5a4 100644
--- a/src/PYPLuaTriggerCandidates.cc
+++ b/src/PYPLuaTriggerCandidates.cc
@@ -27,7 +27,7 @@
using namespace PY;
-LuaTriggerCandidates::LuaTriggerCandidates (PhoneticEditor *editor)
+LuaTriggerCandidates::LuaTriggerCandidates (Editor *editor)
{
m_editor = editor;
diff --git a/src/PYPLuaTriggerCandidates.h b/src/PYPLuaTriggerCandidates.h
index 3dd67c2..0e6b275 100644
--- a/src/PYPLuaTriggerCandidates.h
+++ b/src/PYPLuaTriggerCandidates.h
@@ -31,9 +31,11 @@ extern "C" {
namespace PY {
-class LuaTriggerCandidates : public EnhancedCandidates {
+class Editor;
+
+class LuaTriggerCandidates : public EnhancedCandidates<Editor> {
public:
- LuaTriggerCandidates (PhoneticEditor *editor);
+ LuaTriggerCandidates (Editor *editor);
public:
gboolean processCandidates (std::vector<EnhancedCandidate> & candidates);
diff --git a/src/PYPPhoneticEditor.h b/src/PYPPhoneticEditor.h
index ff7fe1f..a084ab6 100644
--- a/src/PYPPhoneticEditor.h
+++ b/src/PYPPhoneticEditor.h
@@ -38,12 +38,6 @@ namespace PY {
class PhoneticEditor : public Editor {
friend class LibPinyinCandidates;
- friend class TraditionalCandidates;
-
-#ifdef IBUS_BUILD_LUA_EXTENSION
- friend class LuaTriggerCandidates;
- friend class LuaConverterCandidates;
-#endif
public:
PhoneticEditor (PinyinProperties & props, Config & config);
@@ -68,7 +62,7 @@ public:
virtual void commit (const gchar *str) = 0;
protected:
- SelectCandidateAction selectCandidateInternal (EnhancedCandidate & candidate);
+ virtual SelectCandidateAction selectCandidateInternal (EnhancedCandidate & candidate);
gboolean selectCandidate (guint i);
gboolean selectCandidateInPage (guint i);
diff --git a/src/PYPSuggestionCandidates.cc b/src/PYPSuggestionCandidates.cc
index 47edcd3..0dfd3ec 100644
--- a/src/PYPSuggestionCandidates.cc
+++ b/src/PYPSuggestionCandidates.cc
@@ -22,7 +22,7 @@
#include "PYPSuggestionCandidates.h"
#include <assert.h>
#include <pinyin.h>
-#include "PYPPhoneticEditor.h"
+#include "PYPSuggestionEditor.h"
using namespace PY;
diff --git a/src/PYPSuggestionCandidates.h b/src/PYPSuggestionCandidates.h
index 26601ea..f4a12d5 100644
--- a/src/PYPSuggestionCandidates.h
+++ b/src/PYPSuggestionCandidates.h
@@ -26,9 +26,11 @@
namespace PY {
-class SuggestionCandidates : public EnhancedCandidates {
+class SuggestionEditor;
+
+class SuggestionCandidates : public EnhancedCandidates<SuggestionEditor> {
public:
- SuggestionCandidates (PhoneticEditor *editor) {
+ SuggestionCandidates (SuggestionEditor *editor) {
m_editor = editor;
}
diff --git a/src/PYPTradCandidates.h b/src/PYPTradCandidates.h
index d2a0380..7114bdc 100644
--- a/src/PYPTradCandidates.h
+++ b/src/PYPTradCandidates.h
@@ -27,9 +27,11 @@
namespace PY {
-class TraditionalCandidates : public EnhancedCandidates {
+class Editor;
+
+class TraditionalCandidates : public EnhancedCandidates<Editor> {
public:
- TraditionalCandidates (PhoneticEditor *editor) {
+ TraditionalCandidates (Editor *editor) {
m_editor = editor;
}