-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathAPI.html
More file actions
64 lines (51 loc) · 4.39 KB
/
API.html
File metadata and controls
64 lines (51 loc) · 4.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<h1>Tài liệu phát triển IBus BoGoEngine</h1>
<h2>Giới thiệu chung:</h2>
<p>Phần quan trọng nhất của của IBus BoGoEngine (gọi tắt là engine) là class Engine tại file <strong>BoGoEngine.py</strong>.
Class engine là kế thừa của class IBus.Engine được thiết kế bởi nhà phát triển IBus.
Nhiệm vụ của người phát triển engine cho IBus là triển khai các phương thức (method)
của class IBus.Engine và đưa thêm các thành phần thuộc tính (property)
và phương thức mới nhằm tạo ra các chức năng cần thiết.
Dưới đây là các phương thức và thuộc tính của class Engine trong IBusBoGoEngine.</p>
<h2>Một số khái niệm:</h2>
<p><em>client</em>: cửa sổ tại đó IBus xử lý kí tự.</p>
<p><em>engine</em>: engine xử lý kí tự của IBus</p>
<p><em>BoGoEngine</em>: engine xử lý tiếng Việt được sử dụng. Engine này được viết bằng C++ và cung cấp các hàm để gọi từ Python.</p>
<h2>Class Engine(IBus.Engine)</h2>
<h3>Instance Variables:</h3>
<ul>
<li><p><code>__charset_list</code> : Danh sách các bảng mã. Tạm thời IBus BoGoEngine hỗ trợ 2 bảng mã: UTF8 và TCVN3</p></li>
<li><p><code>__prop_list</code> : Danh sách các thuộc tính. Danh sách này dùng để tạo giao diện người dùng. Tạm thời, người dùng có thể chọn giữa UTF8 và TCVN3</p></li>
<li><p><code>__charset_prop_menu</code> : Danh sách thuộc tính bảng mã</p></li>
<li><p><code>is_faking_backspace</code> : Biến boolean, giá trị True nếu đang thực hiện tạo backspace giả. False nếu ngược lại.</p></li>
<li><p><code>number_fake_backspace</code> : Số lượng backspace giả cần tạo. Giá trị này được tính bằng cách gọi hàm <code>get_nbackspace_and_string_to_commit(self)</code></p></li>
</ul>
<h3>Methods:</h3>
<ul>
<li><p><code>__init__(self)</code> : Khởi tạo engine</p></li>
<li><p><code>__init_charset_prop_menu(self)</code> : Khởi tạo danh sách thuộc tính bảng mã</p></li>
<li><p><code>__init_props(self)</code> : Khởi tạo danh sách thuộc tính</p></li>
<li><p><code>reset_engine(self)</code> : Khởi tạo lại các giá trị ban đầu của engine</p></li>
<li><p><code>do_process_key_event(self, keyval, keycode, state)</code>: Xử lý phím được nhập vào từ người dùng.</p>
<ul>
<li><p>Tham số: </p></li>
<li><p><em>keyval</em>: giá trị của phím. Được định nghĩa trong tài liệu của IBus</p></li>
<li><em>keycode</em>: mã của phím </li>
<li><p><em>state</em>: có giữ các phím control, shift,... hay không</p></li>
<li><p>Giá trị trả lại: <code>True</code> nếu muốn việc xử lý chỉ dừng lại ở engine. <code>False</code>
nếu muốn phím gõ vào được xử lý bởi hệ thống (x-server)</p></li>
</ul>
<p><p>Hàm này được gọi bởi IBus mỗi khi có sự kiện phím bấm từ người dùng.</p></li>
<li><p><code>commit_utf8(self, string)</code>: Gửi tới client xâu UTF8 <code>string</code></p></li>
<li><p><code>commit_tcvn3(self, string)</code>: Gửi tới client xâu TCVN3 <code>string</code></p></li>
<li><p><code>commit_result(self, string)</code>: Gửi tới client xâu <code>string</code>. Hàm này được gán là
một trong hai hàm <code>commit_utf8(self, string)</code> hoặc <code>commit_tcvn3(self, string)</code>
tuỳ thuộc vào thuộc tính bảng mã được chọn.</p></li>
<li><p><code>get_nbackspace_and_string_to_commit(self):</code> Trả về hai giá trị: Giá trị
đầu tiên là số backspace giả cần tạo. Giá trị thứ hai là xâu sau khi được xử lý tiếng Việt.</p></li>
<li><p><code>is_character(self, keyval)</code>: Kiểm tra xem phím gõ vào có phải là ký tự không.</p></li>
<li><p><code>do_focus_in(self)</code>: Các thao tác khi client được chọn</p></li>
<li><p><code>do_focus_out(self)</code>: Các thao tác khi chuyển từ client được chọn ra chỗ khác</p></li>
<li><p><code>do_property_activate(self, prop_name, state)</code>: Thay đổi thuộc tính của engine trong <code>__prop_list</code></p></li>
<li><p><code>forward_key_event(keysym, keycode, state)</code>: Hàm của IBus.Engine. Tạo 1 key
event giả với keycode, keysym, state như định nghĩa trong <code>do_process_key_event</code></p></li>
</ul></p>