30
31 class ViewContainer {
32 private:
33 GlassView * m_view;
34 BOOL m_bTrackingMouse;
35 HKL m_kbLayout;
36 UINT m_codePage;
37 LANGID m_idLang;
38 WPARAM m_deadKeyWParam;
39
40 std::auto_ptr<IDropTarget> m_spDropTarget;
41
42 IManipulationProcessor* m_manipProc;
43 IInertiaProcessor* m_inertiaProc;
44 _IManipulationEvents* m_manipEventSink;
45 jclass m_gestureSupportCls;
46
47 LPARAM m_lastMouseMovePosition; // or -1
48 unsigned int m_mouseButtonDownCounter;
49
50 void WmImeComposition(HWND hwnd, WPARAM wParam, LPARAM lParam);
51 void WmImeNotify(HWND hwnd, WPARAM wParam, LPARAM lParam);
52 void SendInputMethodEvent(jstring text,
53 int cClause, int* rgClauseBoundary,
54 int cAttrBlock, int* rgAttrBoundary, BYTE *rgAttrValue,
55 int commitedTextLength, int caretPos, int visiblePos);
56 void GetCandidatePos(LPPOINT curPos);
57
58 void SendViewTypedEvent(int repCount, jchar wChar);
59
60 protected:
61 void HandleViewMenuEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
62 void HandleViewInputLangChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
63 void HandleViewPaintEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
64 void HandleViewSizeEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
65 void HandleViewKeyEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
66 void HandleViewDeadKeyEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
67 void HandleViewTypedEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
68 BOOL HandleViewMouseEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
69 BOOL HandleViewInputMethodEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
70 void HandleViewTouchEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
71 LRESULT HandleViewGetAccessible(HWND hwnd, WPARAM wParam, LPARAM lParam);
72
73 virtual void HandleViewTimerEvent(HWND hwnd, UINT_PTR timerID);
74
75 void InitDropTarget(HWND hwnd);
76 void ReleaseDropTarget();
77
78 void InitManipProcessor(HWND hwnd);
79 void ReleaseManipProcessor();
80
81 void NotifyCaptureChanged(HWND hwnd, HWND to);
82
83 private:
84 ViewContainer(const ViewContainer&);
85 ViewContainer& operator = (const ViewContainer&);
86
87 public:
88 enum {
89 IDT_GLASS_ANIMATION_ENTER = 0x101,
90 IDT_GLASS_ANIMATION_EXIT,
91 IDT_GLASS_INERTIAPROCESSOR,
92 };
93
94 ViewContainer();
95
96 inline GlassView * GetGlassView() const { return m_view; }
97 inline void SetGlassView(GlassView * view) { m_view = view; }
98 inline LANGID GetInputLanguage() { return m_idLang; }
99
100 jobject GetView();
101
102 void ResetMouseTracking(HWND hwnd);
103
104 void NotifyViewSize(HWND hwnd);
105
106 void NotifyGesturePerformed(HWND hWnd,
107 bool isDirect, bool isInertia,
108 FLOAT x, FLOAT y,
109 FLOAT deltaX, FLOAT deltaY,
110 FLOAT scaleDelta, FLOAT expansionDelta, FLOAT rotationDelta,
111 FLOAT cumulativeDeltaX, FLOAT cumulativeDeltaY,
112 FLOAT cumulativeScale, FLOAT cumulativeExpansion, FLOAT cumulativeRotation);
113
114 void StartTouchInputInertia(HWND hwnd);
115 void StopTouchInputInertia(HWND hwnd);
116 };
117
118 #endif // VIEWCONTAINER_H
119
|
30
31 class ViewContainer {
32 private:
33 GlassView * m_view;
34 BOOL m_bTrackingMouse;
35 HKL m_kbLayout;
36 UINT m_codePage;
37 LANGID m_idLang;
38 WPARAM m_deadKeyWParam;
39
40 std::auto_ptr<IDropTarget> m_spDropTarget;
41
42 IManipulationProcessor* m_manipProc;
43 IInertiaProcessor* m_inertiaProc;
44 _IManipulationEvents* m_manipEventSink;
45 jclass m_gestureSupportCls;
46
47 LPARAM m_lastMouseMovePosition; // or -1
48 unsigned int m_mouseButtonDownCounter;
49
50 UINT m_lastTouchInputCount;
51 std::vector<TOUCHINPUT> m_lastTouchInputBuf;
52 std::vector<TOUCHINPUT> m_thisTouchInputBuf;
53
54 void WmImeComposition(HWND hwnd, WPARAM wParam, LPARAM lParam);
55 void WmImeNotify(HWND hwnd, WPARAM wParam, LPARAM lParam);
56 void SendInputMethodEvent(jstring text,
57 int cClause, int* rgClauseBoundary,
58 int cAttrBlock, int* rgAttrBoundary, BYTE *rgAttrValue,
59 int commitedTextLength, int caretPos, int visiblePos);
60 void GetCandidatePos(LPPOINT curPos);
61
62 void SendViewTypedEvent(int repCount, jchar wChar);
63
64 protected:
65 void HandleViewMenuEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
66 void HandleViewInputLangChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
67 void HandleViewPaintEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
68 void HandleViewSizeEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
69 void HandleViewKeyEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
70 void HandleViewDeadKeyEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
71 void HandleViewTypedEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
72 BOOL HandleViewMouseEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
73 BOOL HandleViewInputMethodEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
74 LRESULT HandleViewGetAccessible(HWND hwnd, WPARAM wParam, LPARAM lParam);
75
76 virtual void HandleViewTimerEvent(HWND hwnd, UINT_PTR timerID);
77
78 void InitDropTarget(HWND hwnd);
79 void ReleaseDropTarget();
80
81 void InitManipProcessor(HWND hwnd);
82 void ReleaseManipProcessor();
83
84 void NotifyCaptureChanged(HWND hwnd, HWND to);
85
86 private:
87 ViewContainer(const ViewContainer&);
88 ViewContainer& operator = (const ViewContainer&);
89
90 public:
91 enum {
92 IDT_GLASS_ANIMATION_ENTER = 0x101,
93 IDT_GLASS_ANIMATION_EXIT,
94 IDT_GLASS_INERTIAPROCESSOR,
95 };
96
97 ViewContainer();
98
99 inline GlassView * GetGlassView() const { return m_view; }
100 inline void SetGlassView(GlassView * view) { m_view = view; }
101 inline LANGID GetInputLanguage() { return m_idLang; }
102
103 jobject GetView();
104
105 void ResetMouseTracking(HWND hwnd);
106
107 unsigned int HandleViewTouchEvent(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
108
109 void NotifyViewSize(HWND hwnd);
110
111 void NotifyGesturePerformed(HWND hWnd,
112 bool isDirect, bool isInertia,
113 FLOAT x, FLOAT y,
114 FLOAT deltaX, FLOAT deltaY,
115 FLOAT scaleDelta, FLOAT expansionDelta, FLOAT rotationDelta,
116 FLOAT cumulativeDeltaX, FLOAT cumulativeDeltaY,
117 FLOAT cumulativeScale, FLOAT cumulativeExpansion, FLOAT cumulativeRotation);
118
119 void StartTouchInputInertia(HWND hwnd);
120 void StopTouchInputInertia(HWND hwnd);
121 };
122
123 #endif // VIEWCONTAINER_H
124
|