diff --git a/scim-wnn/src/wnnconversion.cpp b/scim-wnn/src/wnnconversion.cpp index 2a83fcb..f925831 100644 --- a/scim-wnn/src/wnnconversion.cpp +++ b/scim-wnn/src/wnnconversion.cpp @@ -227,13 +227,14 @@ void WnnConversion::createText() { WideString w; - int len = 0; + caretPos = 0; for(unsigned int i = 0;i < bunsetu;i ++) { if (pos == i) { attr.clear(); Attribute a(w.length(),bunList[i].length(),SCIM_ATTR_DECORATE,SCIM_ATTR_DECORATE_REVERSE); attr.push_back(a); } + if (pos < i) caretPos += bunList[i].length(); w = w + bunList[i]; } text = w; @@ -341,3 +342,12 @@ jl_optimize_fi(wnn,0,-1); } + + +/*! + \fn WnnConversion::getCaretPos() + */ +int WnnConversion::getCaretPos() +{ + return(caretPos); +} diff --git a/scim-wnn/src/wnnconversion.h b/scim-wnn/src/wnnconversion.h index 5167a62..30eab17 100644 --- a/scim-wnn/src/wnnconversion.h +++ b/scim-wnn/src/wnnconversion.h @@ -63,6 +63,7 @@ bool resizeRegion(int w); void updateFrequency(); bool wnnConnect(String name,String host,String rc,int timeout); + int getCaretPos(); protected: void wstostr(unsigned char *e,w_char *u); @@ -80,6 +81,7 @@ WideString yomiText; int pos; int bunsetu; + int caretPos; WideString text; vector bunList; vector yomiList;