From LSDevLinux
Jump to: navigation, search


VwTextInputManager controls taking text from an input method (eg. SCIM) and passing it into a document. This will replace much of VwTextStore. The GTK implementation of this class will have to listen for keyboard events. It is possible that VwTextStore is doing this 'behind the scenes' using Text Services

Files involved

The following files will be put on the branch "tim":

  • VwRootBox.cpp
  • VwTextBoxes.cpp
  • VwRootBox.h

The following new files will be created (on the trunk):

  • IVwTextInputManager.h
  • VwTextInputManagerGtk.h
  • VwTextInputManagerGtk.cpp

Methods to be implemented

These methods are called from other classes and must be implemented. They are currently controlled by the defines ENABLE_TSF and ENABLE_INPUT_METHODS Called from VwRootBox:

  • Init(); ("internal")
  • TerminateAllCompositions(); ("internal")
  • MouseEvent(xd, yd, rcSrc1, rcDst1, kmeDown);
  • MouseEvent(xd, yd, rcSrc1, rcDst1, kmeDblClick);
  • MouseEvent(xd, yd, rcSrc1, rcDst1, kmeMoveDrag);
  • MouseEvent(xd, yd, rcSrc1, rcDst1, kmeExtend);
  • MouseEvent(xd, yd, rcSrc1, rcDst1, kmeUp);
  • SetFocus();
  • OnLoseFocus(); ("internal")
  • OnLayoutChange();
  • Close();
  • OnSelChange(nHow);
  • OnLayoutChange();
  • AddToKeepList(&li);

Called from VwTextBoxes:

  • ClearPointersTo(this);
  • OnDocChange();
  • OnLayoutChange();

Interaction with other classes

Below is a rough initial diagram of how VwTextInputManager should interact with other parts of Fieldworks. This is highly subject to change.

FW IM.png