Merge lp:~pafosdfkapos/eidete/translations into lp:eidete
- translations
- Merge into trunk
Proposed by
pafosdfkapos
Status: | Merged |
---|---|
Approved by: | Cody Garver |
Approved revision: | 151 |
Merged at revision: | 145 |
Proposed branch: | lp:~pafosdfkapos/eidete/translations |
Merge into: | lp:eidete |
Diff against target: |
1776 lines (+562/-417) 6 files modified
po/eidete.pot (+133/-87) po/et.po (+145/-98) src/Widgets/countdown.vala (+20/-18) src/Widgets/end_dialog.vala (+24/-27) src/Widgets/keyview.vala (+55/-55) src/eidete.vala (+185/-132) |
To merge this branch: | bzr merge lp:~pafosdfkapos/eidete/translations |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
elementary Apps team | Pending | ||
Review via email: mp+164573@code.launchpad.net |
Commit message
Translation fixes and UI improvements.
Description of the change
Fixes to translations, layout and buttons.
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'po/cs.po' (properties changed: -x to +x) | |||
2 | === modified file 'po/eidete.pot' | |||
3 | --- po/eidete.pot 2012-08-05 00:55:04 +0000 | |||
4 | +++ po/eidete.pot 2013-05-18 07:55:30 +0000 | |||
5 | @@ -8,7 +8,7 @@ | |||
6 | 8 | msgstr "" | 8 | msgstr "" |
7 | 9 | "Project-Id-Version: PACKAGE VERSION\n" | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
8 | 10 | "Report-Msgid-Bugs-To: \n" | 10 | "Report-Msgid-Bugs-To: \n" |
10 | 11 | "POT-Creation-Date: 2012-08-04 19:54-0500\n" | 11 | "POT-Creation-Date: 2013-05-17 23:02+0300\n" |
11 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
12 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
13 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
14 | @@ -17,137 +17,183 @@ | |||
15 | 17 | "Content-Type: text/plain; charset=CHARSET\n" | 17 | "Content-Type: text/plain; charset=CHARSET\n" |
16 | 18 | "Content-Transfer-Encoding: 8bit\n" | 18 | "Content-Transfer-Encoding: 8bit\n" |
17 | 19 | 19 | ||
21 | 20 | #: /home/codygarver/eidete/po/../src/savedialog.vala:8 | 20 | #: /home/kristjan/translations/po/../src/desktop_launcher.vala:5 |
22 | 21 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:66 | 21 | msgid "Record screencasts" |
23 | 22 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:103 | 22 | msgstr "" |
24 | 23 | |||
25 | 24 | #: /home/kristjan/translations/po/../src/desktop_launcher.vala:6 | ||
26 | 25 | msgid "Screencaster" | ||
27 | 26 | msgstr "" | ||
28 | 27 | |||
29 | 28 | #: /home/kristjan/translations/po/../src/videobin_uploader.vala:45 | ||
30 | 29 | msgid "Upload" | ||
31 | 30 | msgstr "" | ||
32 | 31 | |||
33 | 32 | #: /home/kristjan/translations/po/../src/savedialog.vala:8 | ||
34 | 33 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:28 | ||
35 | 34 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:64 | ||
36 | 35 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:100 | ||
37 | 23 | msgid "Save" | 36 | msgid "Save" |
38 | 24 | msgstr "" | 37 | msgstr "" |
39 | 25 | 38 | ||
69 | 26 | #: /home/codygarver/eidete/po/../src/Widgets/countdown.vala:27 | 39 | #: /home/kristjan/translations/po/../src/eidete.vala:138 |
41 | 27 | msgid "Recording starts in" | ||
42 | 28 | msgstr "" | ||
43 | 29 | |||
44 | 30 | #: /home/codygarver/eidete/po/../src/Widgets/countdown.vala:33 | ||
45 | 31 | msgid "Focus Eidete to stop recording" | ||
46 | 32 | msgstr "" | ||
47 | 33 | |||
48 | 34 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:24 | ||
49 | 35 | msgid "Recording done" | ||
50 | 36 | msgstr "" | ||
51 | 37 | |||
52 | 38 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:27 | ||
53 | 39 | msgid "And now?" | ||
54 | 40 | msgstr "" | ||
55 | 41 | |||
56 | 42 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:31 | ||
57 | 43 | msgid "Go" | ||
58 | 44 | msgstr "" | ||
59 | 45 | |||
60 | 46 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:64 | ||
61 | 47 | msgid "Could not contact Contractor. Click Save to save the file" | ||
62 | 48 | msgstr "" | ||
63 | 49 | |||
64 | 50 | #: /home/codygarver/eidete/po/../src/videobin_uploader.vala:45 | ||
65 | 51 | msgid "Upload" | ||
66 | 52 | msgstr "" | ||
67 | 53 | |||
68 | 54 | #: /home/codygarver/eidete/po/../src/eidete.vala:139 | ||
70 | 55 | msgid "Monitor" | 40 | msgid "Monitor" |
71 | 56 | msgstr "" | 41 | msgstr "" |
72 | 57 | 42 | ||
74 | 58 | #: /home/codygarver/eidete/po/../src/eidete.vala:154 | 43 | #: /home/kristjan/translations/po/../src/eidete.vala:158 |
75 | 59 | msgid "Fullscreen" | 44 | msgid "Fullscreen" |
76 | 60 | msgstr "" | 45 | msgstr "" |
77 | 61 | 46 | ||
79 | 62 | #: /home/codygarver/eidete/po/../src/eidete.vala:155 | 47 | #: /home/kristjan/translations/po/../src/eidete.vala:159 |
80 | 63 | msgid "Custom" | 48 | msgid "Custom" |
81 | 64 | msgstr "" | 49 | msgstr "" |
82 | 65 | 50 | ||
85 | 66 | #: /home/codygarver/eidete/po/../src/eidete.vala:175 | 51 | #: /home/kristjan/translations/po/../src/eidete.vala:170 |
86 | 67 | msgid "Record" | 52 | msgid "Default" |
87 | 68 | msgstr "" | 53 | msgstr "" |
88 | 69 | 54 | ||
90 | 70 | #: /home/codygarver/eidete/po/../src/eidete.vala:187 | 55 | #: /home/kristjan/translations/po/../src/eidete.vala:179 |
91 | 71 | msgid "Sound" | 56 | msgid "Sound" |
92 | 72 | msgstr "" | 57 | msgstr "" |
93 | 73 | 58 | ||
95 | 74 | #: /home/codygarver/eidete/po/../src/eidete.vala:188 | 59 | #: /home/kristjan/translations/po/../src/eidete.vala:182 |
96 | 60 | msgid "Video" | ||
97 | 61 | msgstr "" | ||
98 | 62 | |||
99 | 63 | #: /home/kristjan/translations/po/../src/eidete.vala:185 | ||
100 | 64 | msgid "Keyboard" | ||
101 | 65 | msgstr "" | ||
102 | 66 | |||
103 | 67 | #: /home/kristjan/translations/po/../src/eidete.vala:188 | ||
104 | 68 | msgid "Mouse" | ||
105 | 69 | msgstr "" | ||
106 | 70 | |||
107 | 71 | #: /home/kristjan/translations/po/../src/eidete.vala:191 | ||
108 | 72 | msgid "Start Recording" | ||
109 | 73 | msgstr "" | ||
110 | 74 | |||
111 | 75 | #: /home/kristjan/translations/po/../src/eidete.vala:197 | ||
112 | 76 | msgid "About" | ||
113 | 77 | msgstr "" | ||
114 | 78 | |||
115 | 79 | #: /home/kristjan/translations/po/../src/eidete.vala:210 | ||
116 | 75 | msgid "Record Computer Sounds" | 80 | msgid "Record Computer Sounds" |
117 | 76 | msgstr "" | 81 | msgstr "" |
118 | 77 | 82 | ||
120 | 78 | #: /home/codygarver/eidete/po/../src/eidete.vala:190 | 83 | #: /home/kristjan/translations/po/../src/eidete.vala:212 |
121 | 79 | msgid "Record from Microphone" | 84 | msgid "Record from Microphone" |
122 | 80 | msgstr "" | 85 | msgstr "" |
123 | 81 | 86 | ||
129 | 82 | #: /home/codygarver/eidete/po/../src/eidete.vala:192 | 87 | #: /home/kristjan/translations/po/../src/eidete.vala:215 |
125 | 83 | msgid "Video" | ||
126 | 84 | msgstr "" | ||
127 | 85 | |||
128 | 86 | #: /home/codygarver/eidete/po/../src/eidete.vala:193 | ||
130 | 87 | msgid "Record from Monitor" | 88 | msgid "Record from Monitor" |
131 | 88 | msgstr "" | 89 | msgstr "" |
132 | 89 | 90 | ||
134 | 90 | #: /home/codygarver/eidete/po/../src/eidete.vala:195 | 91 | #: /home/kristjan/translations/po/../src/eidete.vala:217 |
135 | 91 | msgid "Recording Area" | 92 | msgid "Recording Area" |
136 | 92 | msgstr "" | 93 | msgstr "" |
137 | 93 | 94 | ||
139 | 94 | #: /home/codygarver/eidete/po/../src/eidete.vala:197 | 95 | #: /home/kristjan/translations/po/../src/eidete.vala:219 |
140 | 95 | msgid "Width" | 96 | msgid "Width" |
141 | 96 | msgstr "" | 97 | msgstr "" |
142 | 97 | 98 | ||
144 | 98 | #: /home/codygarver/eidete/po/../src/eidete.vala:199 | 99 | #: /home/kristjan/translations/po/../src/eidete.vala:221 |
145 | 99 | msgid "Height" | 100 | msgid "Height" |
146 | 100 | msgstr "" | 101 | msgstr "" |
147 | 101 | 102 | ||
161 | 102 | #: /home/codygarver/eidete/po/../src/eidete.vala:218 | 103 | #: /home/kristjan/translations/po/../src/eidete.vala:245 |
162 | 103 | msgid "Show pressed keys on screen" | 104 | msgid "Pressed keys on screen" |
163 | 104 | msgstr "" | 105 | msgstr "" |
164 | 105 | 106 | ||
165 | 106 | #: /home/codygarver/eidete/po/../src/eidete.vala:220 | 107 | #: /home/kristjan/translations/po/../src/eidete.vala:248 |
166 | 107 | msgid "Show clicks on screen" | 108 | msgid "Mouse clicks on screen" |
167 | 108 | msgstr "" | 109 | msgstr "" |
168 | 109 | 110 | ||
169 | 110 | #: /home/codygarver/eidete/po/../src/eidete.vala:222 | 111 | #: /home/kristjan/translations/po/../src/eidete.vala:250 |
170 | 111 | msgid "Show circle behind mouse" | 112 | msgid "Circle around the cursor" |
171 | 112 | msgstr "" | 113 | msgstr "" |
172 | 113 | 114 | ||
173 | 114 | #: /home/codygarver/eidete/po/../src/eidete.vala:228 | 115 | #: /home/kristjan/translations/po/../src/eidete.vala:256 |
174 | 115 | msgid "Behavior" | 116 | msgid "Behavior" |
175 | 116 | msgstr "" | 117 | msgstr "" |
176 | 117 | 118 | ||
178 | 118 | #: /home/codygarver/eidete/po/../src/eidete.vala:229 | 119 | #: /home/kristjan/translations/po/../src/eidete.vala:257 |
179 | 119 | msgid "Appearance" | 120 | msgid "Appearance" |
180 | 120 | msgstr "" | 121 | msgstr "" |
181 | 121 | 122 | ||
183 | 122 | #: /home/codygarver/eidete/po/../src/eidete.vala:424 | 123 | #: /home/kristjan/translations/po/../src/eidete.vala:449 |
184 | 124 | #: /home/kristjan/translations/po/../src/eidete.vala:456 | ||
185 | 125 | #: /home/kristjan/translations/po/../src/eidete.vala:641 | ||
186 | 126 | msgid "Recording paused" | ||
187 | 127 | msgstr "" | ||
188 | 128 | |||
189 | 129 | #: /home/kristjan/translations/po/../src/eidete.vala:459 | ||
190 | 130 | msgid "You can continue or finish the recording now" | ||
191 | 131 | msgstr "" | ||
192 | 132 | |||
193 | 133 | #: /home/kristjan/translations/po/../src/eidete.vala:468 | ||
194 | 134 | msgid "Continue" | ||
195 | 135 | msgstr "" | ||
196 | 136 | |||
197 | 137 | #: /home/kristjan/translations/po/../src/eidete.vala:469 | ||
198 | 138 | msgid "Continue recording" | ||
199 | 139 | msgstr "" | ||
200 | 140 | |||
201 | 141 | #: /home/kristjan/translations/po/../src/eidete.vala:472 | ||
202 | 123 | msgid "Finish" | 142 | msgid "Finish" |
203 | 124 | msgstr "" | 143 | msgstr "" |
204 | 125 | 144 | ||
223 | 126 | #: /home/codygarver/eidete/po/../src/eidete.vala:425 | 145 | #: /home/kristjan/translations/po/../src/eidete.vala:473 |
224 | 127 | msgid "Finish recording" | 146 | msgid "Stop the recording and save the file" |
225 | 128 | msgstr "" | 147 | msgstr "" |
226 | 129 | 148 | ||
227 | 130 | #: /home/codygarver/eidete/po/../src/eidete.vala:427 | 149 | #: /home/kristjan/translations/po/../src/eidete.vala:476 |
228 | 131 | msgid "Record more" | 150 | msgid "Cancel" |
229 | 132 | msgstr "" | 151 | msgstr "" |
230 | 133 | 152 | ||
231 | 134 | #: /home/codygarver/eidete/po/../src/eidete.vala:441 | 153 | #: /home/kristjan/translations/po/../src/eidete.vala:477 |
232 | 135 | #: /home/codygarver/eidete/po/../src/eidete.vala:588 | 154 | msgid "Cancel the recording without saving the file" |
233 | 136 | msgid "Recording paused" | 155 | msgstr "" |
234 | 137 | msgstr "" | 156 | |
235 | 138 | 157 | #: /home/kristjan/translations/po/../src/eidete.vala:651 | |
218 | 139 | #: /home/codygarver/eidete/po/../src/eidete.vala:442 | ||
219 | 140 | msgid "You can continue or finish the recording now." | ||
220 | 141 | msgstr "" | ||
221 | 142 | |||
222 | 143 | #: /home/codygarver/eidete/po/../src/eidete.vala:598 | ||
236 | 144 | msgid "Pause recording" | 158 | msgid "Pause recording" |
237 | 145 | msgstr "" | 159 | msgstr "" |
238 | 146 | 160 | ||
245 | 147 | #: /home/codygarver/eidete/po/../src/desktop_launcher.vala:5 | 161 | #: /home/kristjan/translations/po/../src/eidete.vala:671 |
246 | 148 | msgid "Record screencasts" | 162 | msgid "Pause Recording" |
247 | 149 | msgstr "" | 163 | msgstr "" |
248 | 150 | 164 | ||
249 | 151 | #: /home/codygarver/eidete/po/../src/desktop_launcher.vala:6 | 165 | #: /home/kristjan/translations/po/../src/eidete.vala:672 |
250 | 152 | msgid "Screencaster" | 166 | msgid "Finish Recording" |
251 | 167 | msgstr "" | ||
252 | 168 | |||
253 | 169 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:24 | ||
254 | 170 | msgid "Recording complete" | ||
255 | 171 | msgstr "" | ||
256 | 172 | |||
257 | 173 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:33 | ||
258 | 174 | msgid "Don't save" | ||
259 | 175 | msgstr "" | ||
260 | 176 | |||
261 | 177 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:62 | ||
262 | 178 | msgid "Could not contact Contractor. Click the Save button to save the file." | ||
263 | 179 | msgstr "" | ||
264 | 180 | |||
265 | 181 | #: /home/kristjan/translations/po/../src/Widgets/keyview.vala:48 | ||
266 | 182 | msgid "Left" | ||
267 | 183 | msgstr "" | ||
268 | 184 | |||
269 | 185 | #: /home/kristjan/translations/po/../src/Widgets/keyview.vala:51 | ||
270 | 186 | msgid "Middle" | ||
271 | 187 | msgstr "" | ||
272 | 188 | |||
273 | 189 | #: /home/kristjan/translations/po/../src/Widgets/keyview.vala:54 | ||
274 | 190 | msgid "Right" | ||
275 | 191 | msgstr "" | ||
276 | 192 | |||
277 | 193 | #: /home/kristjan/translations/po/../src/Widgets/countdown.vala:27 | ||
278 | 194 | msgid "Recording starts in" | ||
279 | 195 | msgstr "" | ||
280 | 196 | |||
281 | 197 | #: /home/kristjan/translations/po/../src/Widgets/countdown.vala:34 | ||
282 | 198 | msgid "Focus Eidete to stop recording" | ||
283 | 153 | msgstr "" | 199 | msgstr "" |
284 | 154 | 200 | ||
285 | === modified file 'po/et.po' | |||
286 | --- po/et.po 2013-03-17 05:13:08 +0000 | |||
287 | +++ po/et.po 2013-05-18 07:55:30 +0000 | |||
288 | @@ -6,149 +6,196 @@ | |||
289 | 6 | msgid "" | 6 | msgid "" |
290 | 7 | msgstr "" | 7 | msgstr "" |
291 | 8 | "Project-Id-Version: eidete\n" | 8 | "Project-Id-Version: eidete\n" |
296 | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" | 9 | "Report-Msgid-Bugs-To: \n" |
297 | 10 | "POT-Creation-Date: 2012-08-04 19:54-0500\n" | 10 | "POT-Creation-Date: 2013-05-17 03:41+0300\n" |
298 | 11 | "PO-Revision-Date: 2012-09-21 23:01+0000\n" | 11 | "PO-Revision-Date: 2013-05-17 03:42+0300\n" |
299 | 12 | "Last-Translator: Kristjan Vool <Unknown>\n" | 12 | "Last-Translator: Kristjan Vool <vool.kristjan@gmail.com>\n" |
300 | 13 | "Language-Team: Estonian <et@li.org>\n" | 13 | "Language-Team: Estonian <et@li.org>\n" |
301 | 14 | "Language: et\n" | ||
302 | 14 | "MIME-Version: 1.0\n" | 15 | "MIME-Version: 1.0\n" |
303 | 15 | "Content-Type: text/plain; charset=UTF-8\n" | 16 | "Content-Type: text/plain; charset=UTF-8\n" |
304 | 16 | "Content-Transfer-Encoding: 8bit\n" | 17 | "Content-Transfer-Encoding: 8bit\n" |
305 | 17 | "X-Launchpad-Export-Date: 2013-03-17 05:13+0000\n" | 18 | "X-Launchpad-Export-Date: 2013-03-17 05:13+0000\n" |
306 | 18 | "X-Generator: Launchpad (build 16532)\n" | 19 | "X-Generator: Launchpad (build 16532)\n" |
307 | 19 | 20 | ||
311 | 20 | #: /home/codygarver/eidete/po/../src/savedialog.vala:8 | 21 | #: /home/kristjan/translations/po/../src/desktop_launcher.vala:5 |
312 | 21 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:66 | 22 | msgid "Record screencasts" |
313 | 22 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:103 | 23 | msgstr "Screencast'ide filmimine" |
314 | 24 | |||
315 | 25 | #: /home/kristjan/translations/po/../src/desktop_launcher.vala:6 | ||
316 | 26 | msgid "Screencaster" | ||
317 | 27 | msgstr "Screencaster" | ||
318 | 28 | |||
319 | 29 | #: /home/kristjan/translations/po/../src/videobin_uploader.vala:45 | ||
320 | 30 | msgid "Upload" | ||
321 | 31 | msgstr "Laadi üles" | ||
322 | 32 | |||
323 | 33 | #: /home/kristjan/translations/po/../src/savedialog.vala:8 | ||
324 | 34 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:28 | ||
325 | 35 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:64 | ||
326 | 36 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:100 | ||
327 | 23 | msgid "Save" | 37 | msgid "Save" |
328 | 24 | msgstr "Salvesta" | 38 | msgstr "Salvesta" |
329 | 25 | 39 | ||
360 | 26 | #: /home/codygarver/eidete/po/../src/Widgets/countdown.vala:27 | 40 | #: /home/kristjan/translations/po/../src/eidete.vala:138 |
331 | 27 | msgid "Recording starts in" | ||
332 | 28 | msgstr "Lindistamine algab" | ||
333 | 29 | |||
334 | 30 | #: /home/codygarver/eidete/po/../src/Widgets/countdown.vala:33 | ||
335 | 31 | msgid "Focus Eidete to stop recording" | ||
336 | 32 | msgstr "Lindistamise lõpetamiseks fokuseeri Eidete" | ||
337 | 33 | |||
338 | 34 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:24 | ||
339 | 35 | msgid "Recording done" | ||
340 | 36 | msgstr "Lindistamine valmis" | ||
341 | 37 | |||
342 | 38 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:27 | ||
343 | 39 | msgid "And now?" | ||
344 | 40 | msgstr "Ja nüüd?" | ||
345 | 41 | |||
346 | 42 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:31 | ||
347 | 43 | msgid "Go" | ||
348 | 44 | msgstr "Mine" | ||
349 | 45 | |||
350 | 46 | #: /home/codygarver/eidete/po/../src/Widgets/end_dialog.vala:64 | ||
351 | 47 | msgid "Could not contact Contractor. Click Save to save the file" | ||
352 | 48 | msgstr "" | ||
353 | 49 | "Ãœhenduse loomine Contractoriga nurjus. Faili salvestamiseks vali Salvesta." | ||
354 | 50 | |||
355 | 51 | #: /home/codygarver/eidete/po/../src/videobin_uploader.vala:45 | ||
356 | 52 | msgid "Upload" | ||
357 | 53 | msgstr "Laadi üles" | ||
358 | 54 | |||
359 | 55 | #: /home/codygarver/eidete/po/../src/eidete.vala:139 | ||
361 | 56 | msgid "Monitor" | 41 | msgid "Monitor" |
362 | 57 | msgstr "Kuvar" | 42 | msgstr "Kuvar" |
363 | 58 | 43 | ||
365 | 59 | #: /home/codygarver/eidete/po/../src/eidete.vala:154 | 44 | #: /home/kristjan/translations/po/../src/eidete.vala:158 |
366 | 60 | msgid "Fullscreen" | 45 | msgid "Fullscreen" |
367 | 61 | msgstr "Täisekraan" | 46 | msgstr "Täisekraan" |
368 | 62 | 47 | ||
370 | 63 | #: /home/codygarver/eidete/po/../src/eidete.vala:155 | 48 | #: /home/kristjan/translations/po/../src/eidete.vala:159 |
371 | 64 | msgid "Custom" | 49 | msgid "Custom" |
372 | 65 | msgstr "Kohandatud" | 50 | msgstr "Kohandatud" |
373 | 66 | 51 | ||
377 | 67 | #: /home/codygarver/eidete/po/../src/eidete.vala:175 | 52 | #: /home/kristjan/translations/po/../src/eidete.vala:171 |
378 | 68 | msgid "Record" | 53 | msgid "Default" |
379 | 69 | msgstr "Lindista" | 54 | msgstr "Vaikimisi" |
380 | 70 | 55 | ||
382 | 71 | #: /home/codygarver/eidete/po/../src/eidete.vala:187 | 56 | #: /home/kristjan/translations/po/../src/eidete.vala:180 |
383 | 72 | msgid "Sound" | 57 | msgid "Sound" |
384 | 73 | msgstr "Heli" | 58 | msgstr "Heli" |
385 | 74 | 59 | ||
387 | 75 | #: /home/codygarver/eidete/po/../src/eidete.vala:188 | 60 | #: /home/kristjan/translations/po/../src/eidete.vala:183 |
388 | 61 | msgid "Video" | ||
389 | 62 | msgstr "Video" | ||
390 | 63 | |||
391 | 64 | #: /home/kristjan/translations/po/../src/eidete.vala:186 | ||
392 | 65 | msgid "Keyboard" | ||
393 | 66 | msgstr "Klaviatuur" | ||
394 | 67 | |||
395 | 68 | #: /home/kristjan/translations/po/../src/eidete.vala:189 | ||
396 | 69 | msgid "Mouse" | ||
397 | 70 | msgstr "Hiir" | ||
398 | 71 | |||
399 | 72 | #: /home/kristjan/translations/po/../src/eidete.vala:192 | ||
400 | 73 | msgid "Start Recording" | ||
401 | 74 | msgstr "Alusta filmimist" | ||
402 | 75 | |||
403 | 76 | #: /home/kristjan/translations/po/../src/eidete.vala:198 | ||
404 | 77 | msgid "About" | ||
405 | 78 | msgstr "Programmist…" | ||
406 | 79 | |||
407 | 80 | #: /home/kristjan/translations/po/../src/eidete.vala:211 | ||
408 | 76 | msgid "Record Computer Sounds" | 81 | msgid "Record Computer Sounds" |
410 | 77 | msgstr "Arvuti helide lindistamine" | 82 | msgstr "Arvuti helide salvestamine" |
411 | 78 | 83 | ||
413 | 79 | #: /home/codygarver/eidete/po/../src/eidete.vala:190 | 84 | #: /home/kristjan/translations/po/../src/eidete.vala:213 |
414 | 80 | msgid "Record from Microphone" | 85 | msgid "Record from Microphone" |
422 | 81 | msgstr "Mikrofoni lindistamine" | 86 | msgstr "Mikrofoni salvestamine" |
423 | 82 | 87 | ||
424 | 83 | #: /home/codygarver/eidete/po/../src/eidete.vala:192 | 88 | #: /home/kristjan/translations/po/../src/eidete.vala:216 |
418 | 84 | msgid "Video" | ||
419 | 85 | msgstr "Video" | ||
420 | 86 | |||
421 | 87 | #: /home/codygarver/eidete/po/../src/eidete.vala:193 | ||
425 | 88 | msgid "Record from Monitor" | 89 | msgid "Record from Monitor" |
427 | 89 | msgstr "Kuvari lindistamine" | 90 | msgstr "Kuvari filmimine" |
428 | 90 | 91 | ||
430 | 91 | #: /home/codygarver/eidete/po/../src/eidete.vala:195 | 92 | #: /home/kristjan/translations/po/../src/eidete.vala:218 |
431 | 92 | msgid "Recording Area" | 93 | msgid "Recording Area" |
433 | 93 | msgstr "Lindistamise ala" | 94 | msgstr "Filmimise ala" |
434 | 94 | 95 | ||
436 | 95 | #: /home/codygarver/eidete/po/../src/eidete.vala:197 | 96 | #: /home/kristjan/translations/po/../src/eidete.vala:220 |
437 | 96 | msgid "Width" | 97 | msgid "Width" |
438 | 97 | msgstr "Laius" | 98 | msgstr "Laius" |
439 | 98 | 99 | ||
441 | 99 | #: /home/codygarver/eidete/po/../src/eidete.vala:199 | 100 | #: /home/kristjan/translations/po/../src/eidete.vala:222 |
442 | 100 | msgid "Height" | 101 | msgid "Height" |
443 | 101 | msgstr "Kõrgus" | 102 | msgstr "Kõrgus" |
444 | 102 | 103 | ||
458 | 103 | #: /home/codygarver/eidete/po/../src/eidete.vala:218 | 104 | #: /home/kristjan/translations/po/../src/eidete.vala:246 |
459 | 104 | msgid "Show pressed keys on screen" | 105 | msgid "Pressed keys on screen" |
460 | 105 | msgstr "Vajutatud klahvide näitamine eknraanil" | 106 | msgstr "Vajutatud klahvid ekraanil" |
461 | 106 | 107 | ||
462 | 107 | #: /home/codygarver/eidete/po/../src/eidete.vala:220 | 108 | #: /home/kristjan/translations/po/../src/eidete.vala:249 |
463 | 108 | msgid "Show clicks on screen" | 109 | msgid "Mouse clicks on screen" |
464 | 109 | msgstr "Klõpsude näitamine ekraanil" | 110 | msgstr "Hiire klõpsud ekraanil" |
465 | 110 | 111 | ||
466 | 111 | #: /home/codygarver/eidete/po/../src/eidete.vala:222 | 112 | #: /home/kristjan/translations/po/../src/eidete.vala:251 |
467 | 112 | msgid "Show circle behind mouse" | 113 | msgid "Circle around the cursor" |
468 | 113 | msgstr "Ringi näitamine kursori taga" | 114 | msgstr "Ring ümber kursori" |
469 | 114 | 115 | ||
470 | 115 | #: /home/codygarver/eidete/po/../src/eidete.vala:228 | 116 | #: /home/kristjan/translations/po/../src/eidete.vala:257 |
471 | 116 | msgid "Behavior" | 117 | msgid "Behavior" |
472 | 117 | msgstr "Käitumine" | 118 | msgstr "Käitumine" |
473 | 118 | 119 | ||
475 | 119 | #: /home/codygarver/eidete/po/../src/eidete.vala:229 | 120 | #: /home/kristjan/translations/po/../src/eidete.vala:258 |
476 | 120 | msgid "Appearance" | 121 | msgid "Appearance" |
477 | 121 | msgstr "Välimus" | 122 | msgstr "Välimus" |
478 | 122 | 123 | ||
480 | 123 | #: /home/codygarver/eidete/po/../src/eidete.vala:424 | 124 | #: /home/kristjan/translations/po/../src/eidete.vala:451 |
481 | 125 | msgid "Recording paused" | ||
482 | 126 | msgstr "Filmimine peatatud" | ||
483 | 127 | |||
484 | 128 | #: /home/kristjan/translations/po/../src/eidete.vala:459 | ||
485 | 129 | msgid "Continue" | ||
486 | 130 | msgstr "Jätka" | ||
487 | 131 | |||
488 | 132 | #: /home/kristjan/translations/po/../src/eidete.vala:460 | ||
489 | 133 | msgid "Continue recording" | ||
490 | 134 | msgstr "Jätka filmimist" | ||
491 | 135 | |||
492 | 136 | #: /home/kristjan/translations/po/../src/eidete.vala:463 | ||
493 | 124 | msgid "Finish" | 137 | msgid "Finish" |
494 | 125 | msgstr "Lõpeta" | 138 | msgstr "Lõpeta" |
495 | 126 | 139 | ||
510 | 127 | #: /home/codygarver/eidete/po/../src/eidete.vala:425 | 140 | #: /home/kristjan/translations/po/../src/eidete.vala:464 |
511 | 128 | msgid "Finish recording" | 141 | msgid "Stop the recording and save the file" |
512 | 129 | msgstr "Lõpeta lindistamine" | 142 | msgstr "Peata filmimine ning salvesta video" |
513 | 130 | 143 | ||
514 | 131 | #: /home/codygarver/eidete/po/../src/eidete.vala:427 | 144 | #: /home/kristjan/translations/po/../src/eidete.vala:467 |
515 | 132 | msgid "Record more" | 145 | msgid "Cancel" |
516 | 133 | msgstr "Lindista veel" | 146 | msgstr "Katkesta" |
517 | 134 | 147 | ||
518 | 135 | #: /home/codygarver/eidete/po/../src/eidete.vala:441 | 148 | #: /home/kristjan/translations/po/../src/eidete.vala:468 |
519 | 136 | #: /home/codygarver/eidete/po/../src/eidete.vala:588 | 149 | msgid "Cancel the recording without saving the file" |
520 | 137 | msgid "Recording paused" | 150 | msgstr "Katkesta filmimine ilma videot salvestamata" |
521 | 138 | msgstr "Videolindistamine pausil" | 151 | |
522 | 139 | 152 | #: /home/kristjan/translations/po/../src/eidete.vala:481 | |
509 | 140 | #: /home/codygarver/eidete/po/../src/eidete.vala:442 | ||
523 | 141 | msgid "You can continue or finish the recording now." | 153 | msgid "You can continue or finish the recording now." |
525 | 142 | msgstr "Sa saad jätkata või lõpetada lindistamise kohe." | 154 | msgstr "Sul on võimalus filmimine peatada ning salvestada või jätkata filmimise jätkamist." |
526 | 143 | 155 | ||
528 | 144 | #: /home/codygarver/eidete/po/../src/eidete.vala:598 | 156 | #: /home/kristjan/translations/po/../src/eidete.vala:636 |
529 | 145 | msgid "Pause recording" | 157 | msgid "Pause recording" |
539 | 146 | msgstr "Peata lindistamine" | 158 | msgstr "Peata filmimine" |
540 | 147 | 159 | ||
541 | 148 | #: /home/codygarver/eidete/po/../src/desktop_launcher.vala:5 | 160 | #: /home/kristjan/translations/po/../src/eidete.vala:656 |
542 | 149 | msgid "Record screencasts" | 161 | msgid "Pause Recording" |
543 | 150 | msgstr "Kaardrite lindistamine" | 162 | msgstr "Peata filmimine" |
544 | 151 | 163 | ||
545 | 152 | #: /home/codygarver/eidete/po/../src/desktop_launcher.vala:6 | 164 | #: /home/kristjan/translations/po/../src/eidete.vala:657 |
546 | 153 | msgid "Screencaster" | 165 | msgid "Finish Recording" |
547 | 154 | msgstr "Kaadristaja" | 166 | msgstr "Lõpeta filmimine" |
548 | 167 | |||
549 | 168 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:24 | ||
550 | 169 | msgid "Recording complete" | ||
551 | 170 | msgstr "Filmimine lõpetatud" | ||
552 | 171 | |||
553 | 172 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:33 | ||
554 | 173 | msgid "Don't save" | ||
555 | 174 | msgstr "Ära salvesta" | ||
556 | 175 | |||
557 | 176 | #: /home/kristjan/translations/po/../src/Widgets/end_dialog.vala:62 | ||
558 | 177 | msgid "Could not contact Contractor. Click the Save button to save the file." | ||
559 | 178 | msgstr "Contractor'iga polnud võimalik ühendust saada. Faili salvestamiseks vajuta salvestamise nupule." | ||
560 | 179 | |||
561 | 180 | #: /home/kristjan/translations/po/../src/Widgets/keyview.vala:48 | ||
562 | 181 | msgid "Left" | ||
563 | 182 | msgstr "Vasak" | ||
564 | 183 | |||
565 | 184 | #: /home/kristjan/translations/po/../src/Widgets/keyview.vala:51 | ||
566 | 185 | msgid "Middle" | ||
567 | 186 | msgstr "Keskmine" | ||
568 | 187 | |||
569 | 188 | #: /home/kristjan/translations/po/../src/Widgets/keyview.vala:54 | ||
570 | 189 | msgid "Right" | ||
571 | 190 | msgstr "Parem" | ||
572 | 191 | |||
573 | 192 | #: /home/kristjan/translations/po/../src/Widgets/countdown.vala:27 | ||
574 | 193 | msgid "Recording starts in" | ||
575 | 194 | msgstr "Filmimine algab" | ||
576 | 195 | |||
577 | 196 | #: /home/kristjan/translations/po/../src/Widgets/countdown.vala:33 | ||
578 | 197 | msgid "Focus Eidete to stop recording" | ||
579 | 198 | msgstr "Filmimise lõpetamiseks fokuseeri Eidete" | ||
580 | 199 | |||
581 | 200 | #~ msgid "Close without saving" | ||
582 | 201 | #~ msgstr "Sulge salvestamata" | ||
583 | 155 | 202 | ||
584 | === modified file 'src/Widgets/countdown.vala' | |||
585 | --- src/Widgets/countdown.vala 2012-05-22 17:19:03 +0000 | |||
586 | +++ src/Widgets/countdown.vala 2013-05-18 07:55:30 +0000 | |||
587 | @@ -3,15 +3,15 @@ | |||
588 | 3 | 3 | ||
589 | 4 | 4 | ||
590 | 5 | namespace Eidete.Widgets{ | 5 | namespace Eidete.Widgets{ |
592 | 6 | 6 | ||
593 | 7 | public class Countdown : Granite.Widgets.CompositedWindow { | 7 | public class Countdown : Granite.Widgets.CompositedWindow { |
595 | 8 | 8 | ||
596 | 9 | public Label count; | 9 | public Label count; |
597 | 10 | public int time; | 10 | public int time; |
599 | 11 | 11 | ||
600 | 12 | public Countdown (){ | 12 | public Countdown (){ |
601 | 13 | this.time = 5; | 13 | this.time = 5; |
603 | 14 | 14 | ||
604 | 15 | this.set_default_size (300, 200); | 15 | this.set_default_size (300, 200); |
605 | 16 | this.window_position = WindowPosition.CENTER; | 16 | this.window_position = WindowPosition.CENTER; |
606 | 17 | this.set_keep_above (true); | 17 | this.set_keep_above (true); |
607 | @@ -19,27 +19,29 @@ | |||
608 | 19 | this.type_hint = Gdk.WindowTypeHint.SPLASHSCREEN; | 19 | this.type_hint = Gdk.WindowTypeHint.SPLASHSCREEN; |
609 | 20 | this.skip_pager_hint = true; | 20 | this.skip_pager_hint = true; |
610 | 21 | this.skip_taskbar_hint = true; | 21 | this.skip_taskbar_hint = true; |
612 | 22 | 22 | ||
613 | 23 | var box = new Box (Orientation.VERTICAL, 0); | 23 | var box = new Box (Orientation.VERTICAL, 0); |
614 | 24 | box.margin = 40; | 24 | box.margin = 40; |
615 | 25 | box.margin_left = box.margin_right = 60; | 25 | box.margin_left = box.margin_right = 60; |
618 | 26 | 26 | ||
619 | 27 | var title = new Label ("<span size='20000' color='#fbfbfb'>"+_("Recording starts in")+"</span>"); | 27 | var title = new Label ("<span size='20000' color='#fbfbfb'>"+_("Recording starts in")+"…"+"</span>"); |
620 | 28 | title.use_markup = true; | 28 | title.use_markup = true; |
622 | 29 | 29 | title.margin_bottom = 20; | |
623 | 30 | |||
624 | 30 | this.count = new Label ("<span size='40000' color='#fbfbfb'>"+time.to_string ()+"</span>"); | 31 | this.count = new Label ("<span size='40000' color='#fbfbfb'>"+time.to_string ()+"</span>"); |
625 | 31 | this.count.use_markup = true; | 32 | this.count.use_markup = true; |
628 | 32 | 33 | ||
629 | 33 | var tipp = new Label("<span size='10000' color='#fbfbfb'>"+_("Focus Eidete to stop recording")+"</span>"); | 34 | var tipp = new Label("<span size='10000' color='#fbfbfb' font-style='italic'>"+_("Focus Eidete to stop recording")+"</span>"); |
630 | 34 | tipp.use_markup = true; | 35 | tipp.use_markup = true; |
632 | 35 | 36 | tipp.margin_top = 20; | |
633 | 37 | |||
634 | 36 | box.pack_start (title); | 38 | box.pack_start (title); |
635 | 37 | box.pack_start (count); | 39 | box.pack_start (count); |
636 | 38 | box.pack_start (tipp); | 40 | box.pack_start (tipp); |
638 | 39 | 41 | ||
639 | 40 | this.add (box); | 42 | this.add (box); |
640 | 41 | } | 43 | } |
642 | 42 | 44 | ||
643 | 43 | public override bool draw (Cairo.Context ctx){ | 45 | public override bool draw (Cairo.Context ctx){ |
644 | 44 | int w = this.get_allocated_width (); | 46 | int w = this.get_allocated_width (); |
645 | 45 | int h = this.get_allocated_height (); | 47 | int h = this.get_allocated_height (); |
646 | @@ -48,9 +50,9 @@ | |||
647 | 48 | ctx.fill (); | 50 | ctx.fill (); |
648 | 49 | return base.draw (ctx); | 51 | return base.draw (ctx); |
649 | 50 | } | 52 | } |
651 | 51 | 53 | ||
652 | 52 | public void start (EideteApp app){ | 54 | public void start (EideteApp app){ |
654 | 53 | 55 | ||
655 | 54 | this.show_all (); | 56 | this.show_all (); |
656 | 55 | Timeout.add (1000, () => { | 57 | Timeout.add (1000, () => { |
657 | 56 | this.time --; | 58 | this.time --; |
658 | @@ -68,10 +70,10 @@ | |||
659 | 68 | return true; | 70 | return true; |
660 | 69 | }); | 71 | }); |
661 | 70 | } | 72 | } |
663 | 71 | 73 | ||
664 | 72 | } | 74 | } |
667 | 73 | 75 | ||
668 | 74 | 76 | ||
669 | 75 | } | 77 | } |
670 | 76 | 78 | ||
671 | 77 | 79 | ||
672 | 78 | 80 | ||
673 | === modified file 'src/Widgets/end_dialog.vala' | |||
674 | --- src/Widgets/end_dialog.vala 2012-08-05 00:55:04 +0000 | |||
675 | +++ src/Widgets/end_dialog.vala 2013-05-18 07:55:30 +0000 | |||
676 | @@ -2,66 +2,64 @@ | |||
677 | 2 | 2 | ||
678 | 3 | 3 | ||
679 | 4 | namespace Eidete.Widgets { | 4 | namespace Eidete.Widgets { |
681 | 5 | 5 | ||
682 | 6 | private bool contractor; | 6 | private bool contractor; |
684 | 7 | 7 | ||
685 | 8 | public class EndDialog : Window { | 8 | public class EndDialog : Window { |
686 | 9 | public EndDialog (EideteApp app){ | 9 | public EndDialog (EideteApp app){ |
687 | 10 | this.set_default_size (400, 200); | 10 | this.set_default_size (400, 200); |
689 | 11 | 11 | ||
690 | 12 | this.set_application (app); | 12 | this.set_application (app); |
692 | 13 | 13 | ||
693 | 14 | if (app.selectionarea != null) | 14 | if (app.selectionarea != null) |
694 | 15 | app.selectionarea.destroy (); | 15 | app.selectionarea.destroy (); |
695 | 16 | if (app.keyview != null) | 16 | if (app.keyview != null) |
696 | 17 | app.keyview.destroy (); | 17 | app.keyview.destroy (); |
697 | 18 | this.window_position = WindowPosition.CENTER; | 18 | this.window_position = WindowPosition.CENTER; |
698 | 19 | this.icon_name = "eidete"; | 19 | this.icon_name = "eidete"; |
700 | 20 | 20 | ||
701 | 21 | var grid = new Grid (); | 21 | var grid = new Grid (); |
702 | 22 | grid.margin = 12; | 22 | grid.margin = 12; |
705 | 23 | 23 | ||
706 | 24 | var title = new Label ("<span size='30000'>"+_("Recording done")+"</span>"); | 24 | var title = new Label ("<span size='30000'>"+_("Recording complete")+"</span>"); |
707 | 25 | title.use_markup = true; | 25 | title.use_markup = true; |
708 | 26 | title.halign = Align.START; | 26 | title.halign = Align.START; |
715 | 27 | var sub_title = new Label ("<span size='15000'>"+_("And now?")+"</span>"); | 27 | |
716 | 28 | sub_title.use_markup = true; | 28 | var export = new Button.with_label (_("Save")); |
717 | 29 | sub_title.halign = Align.START; | 29 | export.image = new Image.from_stock (Stock.SAVE, IconSize.BUTTON); |
712 | 30 | |||
713 | 31 | var export = new Button.with_label (_("Go")); | ||
714 | 32 | export.image = new Image.from_stock (Stock.YES, IconSize.BUTTON); | ||
718 | 33 | export.can_default = true; | 30 | export.can_default = true; |
719 | 34 | this.set_default (export); | 31 | this.set_default (export); |
722 | 35 | 32 | ||
723 | 36 | var cancel = new Button.from_stock (Stock.CANCEL); | 33 | var cancel = new Button.with_label (_("Don't save")); |
724 | 34 | cancel.image = new Image.from_stock (Stock.DELETE, IconSize.BUTTON); | ||
725 | 37 | cancel.halign = Align.END; | 35 | cancel.halign = Align.END; |
727 | 38 | 36 | ||
728 | 39 | var bbox = new ButtonBox (Orientation.HORIZONTAL); | 37 | var bbox = new ButtonBox (Orientation.HORIZONTAL); |
729 | 40 | bbox.pack_end (cancel, false, true, 0); | 38 | bbox.pack_end (cancel, false, true, 0); |
730 | 41 | bbox.pack_end (export, false, true, 0); | 39 | bbox.pack_end (export, false, true, 0); |
731 | 42 | bbox.layout_style = ButtonBoxStyle.END; | 40 | bbox.layout_style = ButtonBoxStyle.END; |
733 | 43 | 41 | ||
734 | 44 | //contractor | 42 | //contractor |
735 | 45 | var list = new ListStore (2, typeof (Gdk.Pixbuf), typeof (string)); | 43 | var list = new ListStore (2, typeof (Gdk.Pixbuf), typeof (string)); |
736 | 46 | var t = new TreeView.with_model (list); | 44 | var t = new TreeView.with_model (list); |
737 | 47 | t.headers_visible = false; | 45 | t.headers_visible = false; |
738 | 48 | t.hexpand = true; | 46 | t.hexpand = true; |
740 | 49 | 47 | ||
741 | 50 | var cell1 = new CellRendererPixbuf (); | 48 | var cell1 = new CellRendererPixbuf (); |
742 | 51 | cell1.set_padding (5, 15); | 49 | cell1.set_padding (5, 15); |
743 | 52 | t.insert_column_with_attributes (-1, "", cell1, "pixbuf", 0); | 50 | t.insert_column_with_attributes (-1, "", cell1, "pixbuf", 0); |
744 | 53 | var cell2 = new CellRendererText (); | 51 | var cell2 = new CellRendererText (); |
745 | 54 | cell2.set_padding (2, 15); | 52 | cell2.set_padding (2, 15); |
746 | 55 | t.insert_column_with_attributes (-1, "", cell2, "markup", 1); | 53 | t.insert_column_with_attributes (-1, "", cell2, "markup", 1); |
749 | 56 | 54 | ||
750 | 57 | 55 | ||
751 | 58 | var c = Granite.Services.Contractor.get_contract (app.settings.destination, "video"); | 56 | var c = Granite.Services.Contractor.get_contract (app.settings.destination, "video"); |
752 | 59 | if (c == null || c.length <= 1){ | 57 | if (c == null || c.length <= 1){ |
753 | 60 | warning ("You should install and/or run contractor"); | 58 | warning ("You should install and/or run contractor"); |
754 | 61 | contractor = false; | 59 | contractor = false; |
755 | 62 | var info = new InfoBar (); | 60 | var info = new InfoBar (); |
756 | 63 | info.message_type = MessageType.WARNING; | 61 | info.message_type = MessageType.WARNING; |
758 | 64 | info.pack_start (new Label (_("Could not contact Contractor. Click Save to save the file"))); | 62 | info.pack_start (new Label (_("Could not contact Contractor. Click the Save button to save the file."))); |
759 | 65 | grid.attach (info, 0, 3, 2, 1); | 63 | grid.attach (info, 0, 3, 2, 1); |
760 | 66 | export.label = _("Save"); | 64 | export.label = _("Save"); |
761 | 67 | }else{ | 65 | }else{ |
762 | @@ -73,19 +71,18 @@ | |||
763 | 73 | try{ | 71 | try{ |
764 | 74 | icon = IconTheme.get_default ().load_icon (c[i].lookup ("IconName"), 32, 0); | 72 | icon = IconTheme.get_default ().load_icon (c[i].lookup ("IconName"), 32, 0); |
765 | 75 | }catch (Error e){warning (e.message);} | 73 | }catch (Error e){warning (e.message);} |
767 | 76 | list.set (it, 0, icon, 1, | 74 | list.set (it, 0, icon, 1, |
768 | 77 | "<b>"+c[i].lookup ("Name")+"</b>\n"+c[i].lookup ("Description")); | 75 | "<b>"+c[i].lookup ("Name")+"</b>\n"+c[i].lookup ("Description")); |
769 | 78 | } | 76 | } |
770 | 79 | t.set_cursor (new TreePath.from_string ("0"), null, false); | 77 | t.set_cursor (new TreePath.from_string ("0"), null, false); |
771 | 80 | } | 78 | } |
773 | 81 | 79 | ||
774 | 82 | grid.attach (title, 0, 0, 2, 1); | 80 | grid.attach (title, 0, 0, 2, 1); |
775 | 83 | grid.attach (sub_title, 0, 1, 2, 1); | ||
776 | 84 | grid.attach (new Label (""), 0, 2, 1, 1); | 81 | grid.attach (new Label (""), 0, 2, 1, 1); |
777 | 85 | grid.attach (t, 0, 4, 1, 1); | 82 | grid.attach (t, 0, 4, 1, 1); |
778 | 86 | grid.attach (new Label (""), 0, 5, 1, 1); | 83 | grid.attach (new Label (""), 0, 5, 1, 1); |
779 | 87 | grid.attach (bbox, 0, 6, 1, 1); | 84 | grid.attach (bbox, 0, 6, 1, 1); |
781 | 88 | 85 | ||
782 | 89 | if (contractor){ | 86 | if (contractor){ |
783 | 90 | export.clicked.connect ( () => { | 87 | export.clicked.connect ( () => { |
784 | 91 | TreePath path; | 88 | TreePath path; |
785 | @@ -109,7 +106,7 @@ | |||
786 | 109 | try{ | 106 | try{ |
787 | 110 | source.copy (destination, FileCopyFlags.OVERWRITE); | 107 | source.copy (destination, FileCopyFlags.OVERWRITE); |
788 | 111 | }catch (GLib.Error e){stderr.printf ("Error: %s\n", e.message);} | 108 | }catch (GLib.Error e){stderr.printf ("Error: %s\n", e.message);} |
790 | 112 | 109 | ||
791 | 113 | file.destroy (); | 110 | file.destroy (); |
792 | 114 | this.destroy (); | 111 | this.destroy (); |
793 | 115 | }else{ | 112 | }else{ |
794 | @@ -118,7 +115,7 @@ | |||
795 | 118 | }); | 115 | }); |
796 | 119 | } | 116 | } |
797 | 120 | cancel.clicked.connect ( () => {this.destroy ();}); | 117 | cancel.clicked.connect ( () => {this.destroy ();}); |
799 | 121 | 118 | ||
800 | 122 | this.add (grid); | 119 | this.add (grid); |
801 | 123 | } | 120 | } |
802 | 124 | } | 121 | } |
803 | 125 | 122 | ||
804 | === modified file 'src/Widgets/keyview.vala' | |||
805 | --- src/Widgets/keyview.vala 2012-04-18 15:35:01 +0000 | |||
806 | +++ src/Widgets/keyview.vala 2013-05-18 07:55:30 +0000 | |||
807 | @@ -3,9 +3,9 @@ | |||
808 | 3 | 3 | ||
809 | 4 | 4 | ||
810 | 5 | namespace Eidete.Widgets { | 5 | namespace Eidete.Widgets { |
812 | 6 | 6 | ||
813 | 7 | public class YellowCircle : Granite.Widgets.CompositedWindow { | 7 | public class YellowCircle : Granite.Widgets.CompositedWindow { |
815 | 8 | 8 | ||
816 | 9 | public YellowCircle (Gdk.RGBA color) { | 9 | public YellowCircle (Gdk.RGBA color) { |
817 | 10 | this.skip_pager_hint = true; | 10 | this.skip_pager_hint = true; |
818 | 11 | this.skip_taskbar_hint = true; | 11 | this.skip_taskbar_hint = true; |
819 | @@ -13,26 +13,26 @@ | |||
820 | 13 | this.stick (); | 13 | this.stick (); |
821 | 14 | this.type_hint = Gdk.WindowTypeHint.SPLASHSCREEN; | 14 | this.type_hint = Gdk.WindowTypeHint.SPLASHSCREEN; |
822 | 15 | this.accept_focus = false; | 15 | this.accept_focus = false; |
824 | 16 | 16 | ||
825 | 17 | this.draw.connect ( (ctx) => { | 17 | this.draw.connect ( (ctx) => { |
827 | 18 | ctx.arc (this.get_allocated_width () / 2, this.get_allocated_height () / 2, | 18 | ctx.arc (this.get_allocated_width () / 2, this.get_allocated_height () / 2, |
828 | 19 | this.get_allocated_width () / 2, 0, 6.28318); | 19 | this.get_allocated_width () / 2, 0, 6.28318); |
829 | 20 | ctx.set_source_rgba (color.red, color.green, color.blue, color.alpha); | 20 | ctx.set_source_rgba (color.red, color.green, color.blue, color.alpha); |
830 | 21 | ctx.fill (); | 21 | ctx.fill (); |
831 | 22 | return false; | 22 | return false; |
832 | 23 | }); | 23 | }); |
834 | 24 | 24 | ||
835 | 25 | this.set_size_request (70, 70); | 25 | this.set_size_request (70, 70); |
836 | 26 | this.realize (); | 26 | this.realize (); |
837 | 27 | this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle ({0, 0, 1, 1}), 0, 0); | 27 | this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle ({0, 0, 1, 1}), 0, 0); |
838 | 28 | this.show_all (); | 28 | this.show_all (); |
839 | 29 | } | 29 | } |
841 | 30 | 30 | ||
842 | 31 | public new void move (int x, int y) { | 31 | public new void move (int x, int y) { |
843 | 32 | base.move (x - (int)(this.get_allocated_width ()/2), y - (int)(this.get_allocated_height ()/2)); | 32 | base.move (x - (int)(this.get_allocated_width ()/2), y - (int)(this.get_allocated_height ()/2)); |
844 | 33 | } | 33 | } |
845 | 34 | } | 34 | } |
847 | 35 | 35 | ||
848 | 36 | public class ClickWindow : Granite.Widgets.CompositedWindow { | 36 | public class ClickWindow : Granite.Widgets.CompositedWindow { |
849 | 37 | public ClickWindow (int x, int y, int button) { | 37 | public ClickWindow (int x, int y, int button) { |
850 | 38 | this.skip_pager_hint = true; | 38 | this.skip_pager_hint = true; |
851 | @@ -41,17 +41,17 @@ | |||
852 | 41 | this.stick (); | 41 | this.stick (); |
853 | 42 | this.type_hint = Gdk.WindowTypeHint.SPLASHSCREEN; | 42 | this.type_hint = Gdk.WindowTypeHint.SPLASHSCREEN; |
854 | 43 | this.accept_focus = false; | 43 | this.accept_focus = false; |
856 | 44 | 44 | ||
857 | 45 | string label = ""; | 45 | string label = ""; |
858 | 46 | switch (button) { | 46 | switch (button) { |
859 | 47 | case 1: | 47 | case 1: |
861 | 48 | label = "Left"; | 48 | label = _("Left"); |
862 | 49 | break; | 49 | break; |
863 | 50 | case 2: | 50 | case 2: |
865 | 51 | label = "Middle"; | 51 | label = _("Middle"); |
866 | 52 | break; | 52 | break; |
867 | 53 | case 3: | 53 | case 3: |
869 | 54 | label = "Right"; | 54 | label = _("Right"); |
870 | 55 | break; | 55 | break; |
871 | 56 | default: | 56 | default: |
872 | 57 | break; | 57 | break; |
873 | @@ -65,12 +65,12 @@ | |||
874 | 65 | css.load_from_data ("*{color:#fff; text-shadow:1 1 #000;}", -1); | 65 | css.load_from_data ("*{color:#fff; text-shadow:1 1 #000;}", -1); |
875 | 66 | } catch (Error e) { warning (e.message); } | 66 | } catch (Error e) { warning (e.message); } |
876 | 67 | lbl.get_style_context ().add_provider (css, 20000); | 67 | lbl.get_style_context ().add_provider (css, 20000); |
878 | 68 | 68 | ||
879 | 69 | this.realize (); | 69 | this.realize (); |
880 | 70 | this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle ({0, 0, 1, 1}), 0, 0); | 70 | this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle ({0, 0, 1, 1}), 0, 0); |
881 | 71 | this.show_all (); | 71 | this.show_all (); |
882 | 72 | this.move (x + 5, y + 5); | 72 | this.move (x + 5, y + 5); |
884 | 73 | 73 | ||
885 | 74 | Timeout.add (10, () => { | 74 | Timeout.add (10, () => { |
886 | 75 | this.opacity -= 0.007; | 75 | this.opacity -= 0.007; |
887 | 76 | if (this.opacity < 0.1) //prevent flickering | 76 | if (this.opacity < 0.1) //prevent flickering |
888 | @@ -83,10 +83,10 @@ | |||
889 | 83 | }); | 83 | }); |
890 | 84 | } | 84 | } |
891 | 85 | } | 85 | } |
894 | 86 | 86 | ||
895 | 87 | 87 | ||
896 | 88 | public class Key : Label { | 88 | public class Key : Label { |
898 | 89 | 89 | ||
899 | 90 | public string key; | 90 | public string key; |
900 | 91 | public bool ctrl; | 91 | public bool ctrl; |
901 | 92 | public bool shift; | 92 | public bool shift; |
902 | @@ -94,7 +94,7 @@ | |||
903 | 94 | public bool super; | 94 | public bool super; |
904 | 95 | public bool iso_level3_shift; | 95 | public bool iso_level3_shift; |
905 | 96 | public int count; | 96 | public int count; |
907 | 97 | 97 | ||
908 | 98 | public Key (string key, bool ctrl, bool shift, bool alt, bool super, bool iso_level3_shift){ | 98 | public Key (string key, bool ctrl, bool shift, bool alt, bool super, bool iso_level3_shift){ |
909 | 99 | this.key = key; | 99 | this.key = key; |
910 | 100 | this.ctrl = ctrl; | 100 | this.ctrl = ctrl; |
911 | @@ -105,45 +105,45 @@ | |||
912 | 105 | this.count = 1; | 105 | this.count = 1; |
913 | 106 | } | 106 | } |
914 | 107 | } | 107 | } |
917 | 108 | 108 | ||
918 | 109 | 109 | ||
919 | 110 | public class KeyView : Granite.Widgets.CompositedWindow { | 110 | public class KeyView : Granite.Widgets.CompositedWindow { |
921 | 111 | 111 | ||
922 | 112 | public int key_size; | 112 | public int key_size; |
923 | 113 | public int fade_duration; | 113 | public int fade_duration; |
927 | 114 | 114 | ||
928 | 115 | 115 | ||
929 | 116 | 116 | ||
930 | 117 | private bool ctrl; | 117 | private bool ctrl; |
931 | 118 | private bool shift; | 118 | private bool shift; |
932 | 119 | private bool alt; | 119 | private bool alt; |
933 | 120 | private bool super; | 120 | private bool super; |
934 | 121 | private bool iso_level3_shift; | 121 | private bool iso_level3_shift; |
936 | 122 | 122 | ||
937 | 123 | private int screen_h; | 123 | private int screen_h; |
939 | 124 | 124 | ||
940 | 125 | public Queue<Key> keys; | 125 | public Queue<Key> keys; |
942 | 126 | 126 | ||
943 | 127 | public YellowCircle circle; | 127 | public YellowCircle circle; |
945 | 128 | 128 | ||
946 | 129 | public Cairo.ImageSurface key_bg; | 129 | public Cairo.ImageSurface key_bg; |
948 | 130 | 130 | ||
949 | 131 | [CCode (cname = "intercept_key_thread")] | 131 | [CCode (cname = "intercept_key_thread")] |
950 | 132 | public extern void *intercept_key_thread (); | 132 | public extern void *intercept_key_thread (); |
952 | 133 | 133 | ||
953 | 134 | public signal void captured (string keyvalue, bool released); | 134 | public signal void captured (string keyvalue, bool released); |
954 | 135 | public signal void captured_mouse (int x, int y, int button); | 135 | public signal void captured_mouse (int x, int y, int button); |
955 | 136 | public signal void captured_move (int x, int y); | 136 | public signal void captured_move (int x, int y); |
957 | 137 | 137 | ||
958 | 138 | public override bool draw (Cairo.Context ctx){ | 138 | public override bool draw (Cairo.Context ctx){ |
960 | 139 | 139 | ||
961 | 140 | //key | 140 | //key |
962 | 141 | for (var i=0;i<keys.length;i++){ | 141 | for (var i=0;i<keys.length;i++){ |
963 | 142 | ctx.set_source_surface (key_bg, 0, screen_h - (i+2)*key_size); | 142 | ctx.set_source_surface (key_bg, 0, screen_h - (i+2)*key_size); |
964 | 143 | ctx.paint (); | 143 | ctx.paint (); |
966 | 144 | 144 | ||
967 | 145 | ctx.set_source_rgba (1.0, 1.0, 1.0, 1.0); | 145 | ctx.set_source_rgba (1.0, 1.0, 1.0, 1.0); |
969 | 146 | 146 | ||
970 | 147 | int [] sizes = {0, 30, 45, 55, 60}; | 147 | int [] sizes = {0, 30, 45, 55, 60}; |
971 | 148 | print ("%i\n", keys.peek_nth (i).key.length); | 148 | print ("%i\n", keys.peek_nth (i).key.length); |
972 | 149 | 149 | ||
973 | @@ -155,7 +155,7 @@ | |||
974 | 155 | 155 | ||
975 | 156 | ctx.move_to (key_size - 40, screen_h - (i+1)*key_size-20); | 156 | ctx.move_to (key_size - 40, screen_h - (i+1)*key_size-20); |
976 | 157 | ctx.show_text (keys.peek_nth (i).key); | 157 | ctx.show_text (keys.peek_nth (i).key); |
978 | 158 | 158 | ||
979 | 159 | ctx.set_font_size (18); | 159 | ctx.set_font_size (18); |
980 | 160 | if (keys.peek_nth (i).count > 1){ | 160 | if (keys.peek_nth (i).count > 1){ |
981 | 161 | ctx.move_to (3, screen_h - (i+1)*key_size - (key_size-12)); | 161 | ctx.move_to (3, screen_h - (i+1)*key_size - (key_size-12)); |
982 | @@ -183,21 +183,21 @@ | |||
983 | 183 | ctx.show_text ("AltGr"); | 183 | ctx.show_text ("AltGr"); |
984 | 184 | } | 184 | } |
985 | 185 | } | 185 | } |
987 | 186 | 186 | ||
988 | 187 | return base.draw (ctx); | 187 | return base.draw (ctx); |
989 | 188 | } | 188 | } |
991 | 189 | 189 | ||
992 | 190 | public void place (int x, int y, int h){ | 190 | public void place (int x, int y, int h){ |
993 | 191 | this.set_size_request (key_size, h); | 191 | this.set_size_request (key_size, h); |
994 | 192 | this.resize (key_size, h); | 192 | this.resize (key_size, h); |
995 | 193 | this.move (x - key_size, y); | 193 | this.move (x - key_size, y); |
996 | 194 | this.screen_h = h; | 194 | this.screen_h = h; |
997 | 195 | } | 195 | } |
999 | 196 | 196 | ||
1000 | 197 | public KeyView (bool keyboard, bool mouse, bool mouse_circle, Gdk.RGBA mouse_circle_color){ | 197 | public KeyView (bool keyboard, bool mouse, bool mouse_circle, Gdk.RGBA mouse_circle_color){ |
1001 | 198 | this.key_size = 75; | 198 | this.key_size = 75; |
1002 | 199 | this.fade_duration = 2000; | 199 | this.fade_duration = 2000; |
1004 | 200 | 200 | ||
1005 | 201 | this.stick (); | 201 | this.stick (); |
1006 | 202 | this.set_keep_above (true); | 202 | this.set_keep_above (true); |
1007 | 203 | this.deletable = false; | 203 | this.deletable = false; |
1008 | @@ -206,32 +206,32 @@ | |||
1009 | 206 | this.skip_pager_hint = true; | 206 | this.skip_pager_hint = true; |
1010 | 207 | this.skip_taskbar_hint = true; | 207 | this.skip_taskbar_hint = true; |
1011 | 208 | this.accept_focus = false; | 208 | this.accept_focus = false; |
1013 | 209 | 209 | ||
1014 | 210 | this.type_hint = Gdk.WindowTypeHint.NOTIFICATION; | 210 | this.type_hint = Gdk.WindowTypeHint.NOTIFICATION; |
1016 | 211 | this.events = Gdk.EventMask.BUTTON_MOTION_MASK | Gdk.EventMask.BUTTON1_MOTION_MASK | | 211 | this.events = Gdk.EventMask.BUTTON_MOTION_MASK | Gdk.EventMask.BUTTON1_MOTION_MASK | |
1017 | 212 | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK ; | 212 | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK ; |
1019 | 213 | 213 | ||
1020 | 214 | this.realize (); | 214 | this.realize (); |
1022 | 215 | 215 | ||
1023 | 216 | Cairo.RectangleInt rect = {0, 0, 1, 1}; | 216 | Cairo.RectangleInt rect = {0, 0, 1, 1}; |
1024 | 217 | this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle (rect), 0, 0); | 217 | this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle (rect), 0, 0); |
1026 | 218 | 218 | ||
1027 | 219 | this.enter_notify_event.connect ( () => { | 219 | this.enter_notify_event.connect ( () => { |
1028 | 220 | this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle (rect), 0, 0); | 220 | this.get_window ().input_shape_combine_region (new Cairo.Region.rectangle (rect), 0, 0); |
1029 | 221 | return true; | 221 | return true; |
1030 | 222 | }); | 222 | }); |
1032 | 223 | 223 | ||
1033 | 224 | this.keys = new Queue<Key> (); | 224 | this.keys = new Queue<Key> (); |
1035 | 225 | 225 | ||
1036 | 226 | //setup the key background | 226 | //setup the key background |
1037 | 227 | key_bg = new Cairo.ImageSurface (Cairo.Format.ARGB32, key_size, key_size); | 227 | key_bg = new Cairo.ImageSurface (Cairo.Format.ARGB32, key_size, key_size); |
1038 | 228 | var ctx = new Cairo.Context (key_bg); | 228 | var ctx = new Cairo.Context (key_bg); |
1039 | 229 | Granite.Drawing.Utilities.cairo_rounded_rectangle (ctx, 5, 5, key_size-10, key_size-10, 5); | 229 | Granite.Drawing.Utilities.cairo_rounded_rectangle (ctx, 5, 5, key_size-10, key_size-10, 5); |
1040 | 230 | ctx.set_source_rgba (0.2, 0.2, 0.2, 0.7); | 230 | ctx.set_source_rgba (0.2, 0.2, 0.2, 0.7); |
1041 | 231 | ctx.fill_preserve (); | 231 | ctx.fill_preserve (); |
1043 | 232 | 232 | ||
1044 | 233 | capture (); | 233 | capture (); |
1046 | 234 | 234 | ||
1047 | 235 | Timeout.add (fade_duration, () => { | 235 | Timeout.add (fade_duration, () => { |
1048 | 236 | if (!keys.is_empty ()){ | 236 | if (!keys.is_empty ()){ |
1049 | 237 | keys.pop_tail (); | 237 | keys.pop_tail (); |
1050 | @@ -239,7 +239,7 @@ | |||
1051 | 239 | } | 239 | } |
1052 | 240 | return true; | 240 | return true; |
1053 | 241 | }); | 241 | }); |
1055 | 242 | 242 | ||
1056 | 243 | if (mouse_circle) { | 243 | if (mouse_circle) { |
1057 | 244 | this.circle = new YellowCircle (mouse_circle_color); | 244 | this.circle = new YellowCircle (mouse_circle_color); |
1058 | 245 | this.captured_move.connect ( (x, y) => { | 245 | this.captured_move.connect ( (x, y) => { |
1059 | @@ -247,14 +247,14 @@ | |||
1060 | 247 | //debug ("Moved to %i, %i\n", x, y); | 247 | //debug ("Moved to %i, %i\n", x, y); |
1061 | 248 | }); | 248 | }); |
1062 | 249 | } | 249 | } |
1064 | 250 | 250 | ||
1065 | 251 | if (mouse) | 251 | if (mouse) |
1066 | 252 | this.captured_mouse.connect ( (x, y, button) => { | 252 | this.captured_mouse.connect ( (x, y, button) => { |
1067 | 253 | debug ("Button %i pressed at %i, %i ", button, x, y); | 253 | debug ("Button %i pressed at %i, %i ", button, x, y); |
1068 | 254 | if (button <= 3) | 254 | if (button <= 3) |
1069 | 255 | Timeout.add (10, () => { new ClickWindow (x, y, button); return false; }); | 255 | Timeout.add (10, () => { new ClickWindow (x, y, button); return false; }); |
1070 | 256 | }); | 256 | }); |
1072 | 257 | 257 | ||
1073 | 258 | if (keyboard) | 258 | if (keyboard) |
1074 | 259 | this.captured.connect ( (keyvalue, released) => { | 259 | this.captured.connect ( (keyvalue, released) => { |
1075 | 260 | if (released){ | 260 | if (released){ |
1076 | @@ -289,7 +289,7 @@ | |||
1077 | 289 | switch (res){ | 289 | switch (res){ |
1078 | 290 | case "Control_L": | 290 | case "Control_L": |
1079 | 291 | case "Control_R": | 291 | case "Control_R": |
1081 | 292 | this.ctrl = true; | 292 | this.ctrl = true; |
1082 | 293 | this.queue_draw (); | 293 | this.queue_draw (); |
1083 | 294 | return; | 294 | return; |
1084 | 295 | case "Shift_L": | 295 | case "Shift_L": |
1085 | @@ -404,10 +404,10 @@ | |||
1086 | 404 | res = keyvalue.substring (0, 9); | 404 | res = keyvalue.substring (0, 9); |
1087 | 405 | break; | 405 | break; |
1088 | 406 | } | 406 | } |
1090 | 407 | 407 | ||
1091 | 408 | if ((!keys.is_empty ()) && | 408 | if ((!keys.is_empty ()) && |
1094 | 409 | (keys.peek_head ().key == res) && | 409 | (keys.peek_head ().key == res) && |
1095 | 410 | (keys.peek_head ().ctrl == ctrl) && | 410 | (keys.peek_head ().ctrl == ctrl) && |
1096 | 411 | (keys.peek_head ().shift == shift) && | 411 | (keys.peek_head ().shift == shift) && |
1097 | 412 | (keys.peek_head ().alt == alt) && | 412 | (keys.peek_head ().alt == alt) && |
1098 | 413 | (keys.peek_head ().iso_level3_shift == iso_level3_shift)){ | 413 | (keys.peek_head ().iso_level3_shift == iso_level3_shift)){ |
1099 | @@ -425,7 +425,7 @@ | |||
1100 | 425 | } | 425 | } |
1101 | 426 | }); | 426 | }); |
1102 | 427 | } | 427 | } |
1104 | 428 | 428 | ||
1105 | 429 | public void capture (){ | 429 | public void capture (){ |
1106 | 430 | try{ | 430 | try{ |
1107 | 431 | Thread.create<void*> (this.intercept_key_thread, true); | 431 | Thread.create<void*> (this.intercept_key_thread, true); |
1108 | 432 | 432 | ||
1109 | === modified file 'src/eidete.vala' | |||
1110 | --- src/eidete.vala 2012-08-05 00:39:41 +0000 | |||
1111 | +++ src/eidete.vala 2013-05-18 07:55:30 +0000 | |||
1112 | @@ -6,7 +6,7 @@ | |||
1113 | 6 | 6 | ||
1114 | 7 | 7 | ||
1115 | 8 | namespace Eidete{ | 8 | namespace Eidete{ |
1117 | 9 | 9 | ||
1118 | 10 | class LLabel : Label{ | 10 | class LLabel : Label{ |
1119 | 11 | public LLabel (string label){ | 11 | public LLabel (string label){ |
1120 | 12 | this.set_halign (Align.START); | 12 | this.set_halign (Align.START); |
1121 | @@ -30,8 +30,8 @@ | |||
1122 | 30 | this.label = label; | 30 | this.label = label; |
1123 | 31 | } | 31 | } |
1124 | 32 | } | 32 | } |
1127 | 33 | 33 | ||
1128 | 34 | 34 | ||
1129 | 35 | public struct Settings{ | 35 | public struct Settings{ |
1130 | 36 | public int sx; | 36 | public int sx; |
1131 | 37 | public int sy; | 37 | public int sy; |
1132 | @@ -45,39 +45,39 @@ | |||
1133 | 45 | public Gdk.RGBA mouse_circle_color; | 45 | public Gdk.RGBA mouse_circle_color; |
1134 | 46 | public string destination; | 46 | public string destination; |
1135 | 47 | } | 47 | } |
1137 | 48 | 48 | ||
1138 | 49 | public class EideteApp : Granite.Application{ | 49 | public class EideteApp : Granite.Application{ |
1140 | 50 | 50 | ||
1141 | 51 | construct{ | 51 | construct{ |
1142 | 52 | program_name = "Eidete"; | 52 | program_name = "Eidete"; |
1143 | 53 | exec_name = "eidete"; | 53 | exec_name = "eidete"; |
1145 | 54 | 54 | ||
1146 | 55 | build_data_dir = Constants.DATADIR; | 55 | build_data_dir = Constants.DATADIR; |
1147 | 56 | build_pkg_data_dir = Constants.PKGDATADIR; | 56 | build_pkg_data_dir = Constants.PKGDATADIR; |
1148 | 57 | build_release_name = Constants.RELEASE_NAME; | 57 | build_release_name = Constants.RELEASE_NAME; |
1149 | 58 | build_version = Constants.VERSION; | 58 | build_version = Constants.VERSION; |
1150 | 59 | build_version_info = Constants.VERSION_INFO; | 59 | build_version_info = Constants.VERSION_INFO; |
1152 | 60 | 60 | ||
1153 | 61 | app_years = "2011-2012"; | 61 | app_years = "2011-2012"; |
1154 | 62 | app_icon = "eidete"; | 62 | app_icon = "eidete"; |
1155 | 63 | app_launcher = "eidete.desktop"; | 63 | app_launcher = "eidete.desktop"; |
1156 | 64 | application_id = "net.launchpad.eidete"; | 64 | application_id = "net.launchpad.eidete"; |
1158 | 65 | 65 | ||
1159 | 66 | main_url = "https://code.launchpad.net/eidete"; | 66 | main_url = "https://code.launchpad.net/eidete"; |
1160 | 67 | bug_url = "https://bugs.launchpad.net/eidete"; | 67 | bug_url = "https://bugs.launchpad.net/eidete"; |
1161 | 68 | help_url = "https://code.launchpad.net/eidete"; | 68 | help_url = "https://code.launchpad.net/eidete"; |
1162 | 69 | translate_url = "https://translations.launchpad.net/eidete"; | 69 | translate_url = "https://translations.launchpad.net/eidete"; |
1164 | 70 | 70 | ||
1165 | 71 | about_authors = {"Tom Beckmann <tombeckmann@online.de>"}; | 71 | about_authors = {"Tom Beckmann <tombeckmann@online.de>"}; |
1166 | 72 | about_documenters = {"Tom Beckmann <tombeckmann@online.de>"}; | 72 | about_documenters = {"Tom Beckmann <tombeckmann@online.de>"}; |
1167 | 73 | about_artists = {"Harvey Cabaguio", "Sergey 'shnatsel' Davidoff"}; | 73 | about_artists = {"Harvey Cabaguio", "Sergey 'shnatsel' Davidoff"}; |
1169 | 74 | about_comments = "Development release, not all features implemented"; | 74 | about_comments = "Development release (all features not implemented)"; |
1170 | 75 | about_translators = ""; | 75 | about_translators = ""; |
1171 | 76 | about_license_type = License.GPL_3_0; | 76 | about_license_type = License.GPL_3_0; |
1172 | 77 | } | 77 | } |
1174 | 78 | 78 | ||
1175 | 79 | public dynamic Pipeline pipeline; | 79 | public dynamic Pipeline pipeline; |
1177 | 80 | 80 | ||
1178 | 81 | public Window main_window; | 81 | public Window main_window; |
1179 | 82 | public Eidete.Widgets.KeyView keyview; | 82 | public Eidete.Widgets.KeyView keyview; |
1180 | 83 | public Eidete.Widgets.SelectionArea selectionarea; | 83 | public Eidete.Widgets.SelectionArea selectionarea; |
1181 | @@ -87,9 +87,9 @@ | |||
1182 | 87 | public Wnck.Window win; | 87 | public Wnck.Window win; |
1183 | 88 | public Gdk.Screen screen; | 88 | public Gdk.Screen screen; |
1184 | 89 | public Gdk.Rectangle monitor_rec; | 89 | public Gdk.Rectangle monitor_rec; |
1186 | 90 | 90 | ||
1187 | 91 | public Settings settings; | 91 | public Settings settings; |
1189 | 92 | 92 | ||
1190 | 93 | public bool recording; | 93 | public bool recording; |
1191 | 94 | public bool typing_size; | 94 | public bool typing_size; |
1192 | 95 | 95 | ||
1193 | @@ -98,99 +98,121 @@ | |||
1194 | 98 | 98 | ||
1195 | 99 | public EideteApp (){ | 99 | public EideteApp (){ |
1196 | 100 | } | 100 | } |
1198 | 101 | 101 | ||
1199 | 102 | public void start_and_build () { | 102 | public void start_and_build () { |
1201 | 103 | 103 | ||
1202 | 104 | Gtk.Settings.get_default ().gtk_application_prefer_dark_theme = true; | 104 | Gtk.Settings.get_default ().gtk_application_prefer_dark_theme = true; |
1204 | 105 | 105 | ||
1205 | 106 | this.main_window = new Window (); | 106 | this.main_window = new Window (); |
1206 | 107 | this.main_window.title = program_name; | 107 | this.main_window.title = program_name; |
1207 | 108 | this.main_window.icon_name = exec_name; | 108 | this.main_window.icon_name = exec_name; |
1208 | 109 | this.main_window.set_application (this); | 109 | this.main_window.set_application (this); |
1209 | 110 | this.main_window.window_position = WindowPosition.CENTER; | 110 | this.main_window.window_position = WindowPosition.CENTER; |
1210 | 111 | this.main_window.set_resizable (false); | 111 | this.main_window.set_resizable (false); |
1213 | 112 | 112 | ||
1214 | 113 | 113 | ||
1215 | 114 | if (!this.main_window.is_composited ()){ | 114 | if (!this.main_window.is_composited ()){ |
1216 | 115 | warning ("Compositing is not supported. No transparency available."); | 115 | warning ("Compositing is not supported. No transparency available."); |
1217 | 116 | } | 116 | } |
1220 | 117 | 117 | ||
1221 | 118 | 118 | ||
1222 | 119 | /* | 119 | /* |
1223 | 120 | UI | 120 | UI |
1224 | 121 | */ | 121 | */ |
1226 | 122 | 122 | ||
1227 | 123 | tabs = new Granite.Widgets.StaticNotebook (false); | 123 | tabs = new Granite.Widgets.StaticNotebook (false); |
1228 | 124 | tabs.margin = 12; | 124 | tabs.margin = 12; |
1230 | 125 | 125 | ||
1231 | 126 | pause_icon = new Image.from_icon_name ("media-playback-pause", IconSize.DIALOG); | 126 | pause_icon = new Image.from_icon_name ("media-playback-pause", IconSize.DIALOG); |
1232 | 127 | pause_icon.pixel_size = 64; | 127 | pause_icon.pixel_size = 64; |
1235 | 128 | 128 | ||
1236 | 129 | 129 | ||
1237 | 130 | var grid = new Grid (); | 130 | var grid = new Grid (); |
1238 | 131 | grid.column_spacing = 12; | 131 | grid.column_spacing = 12; |
1239 | 132 | grid.row_spacing = 6; | 132 | grid.row_spacing = 6; |
1242 | 133 | grid.hexpand = true; | 133 | grid.hexpand = false; |
1243 | 134 | 134 | ||
1244 | 135 | var monitors_combo = new ComboBoxText (); | 135 | var monitors_combo = new ComboBoxText (); |
1245 | 136 | monitors_combo.hexpand = true; | 136 | monitors_combo.hexpand = true; |
1246 | 137 | monitors_combo.margin_left = 6; | ||
1247 | 138 | for (var i=0;i<Gdk.Screen.get_default ().get_n_monitors (); i++) | 137 | for (var i=0;i<Gdk.Screen.get_default ().get_n_monitors (); i++) |
1248 | 139 | monitors_combo.append (i.to_string (), _("Monitor")+" "+(i+1).to_string ()); | 138 | monitors_combo.append (i.to_string (), _("Monitor")+" "+(i+1).to_string ()); |
1249 | 140 | monitors_combo.active = 0; | 139 | monitors_combo.active = 0; |
1250 | 141 | if (Gdk.Screen.get_default ().get_n_monitors () == 1) | 140 | if (Gdk.Screen.get_default ().get_n_monitors () == 1) |
1251 | 142 | monitors_combo.set_sensitive (false); | 141 | monitors_combo.set_sensitive (false); |
1253 | 143 | 142 | ||
1254 | 144 | var width = new SpinButton.with_range (50, Gdk.Screen.get_default ().get_width (), 1); | 143 | var width = new SpinButton.with_range (50, Gdk.Screen.get_default ().get_width (), 1); |
1255 | 145 | width.max_length = 4; | 144 | width.max_length = 4; |
1256 | 145 | width.margin_left = 1; | ||
1257 | 146 | width.margin_right = -4; | ||
1258 | 147 | |||
1259 | 146 | var height = new SpinButton.with_range (50, Gdk.Screen.get_default ().get_height (), 1); | 148 | var height = new SpinButton.with_range (50, Gdk.Screen.get_default ().get_height (), 1); |
1260 | 147 | height.max_length = 4; | 149 | height.max_length = 4; |
1261 | 150 | height.margin_left = 1; | ||
1262 | 151 | height.margin_right = -4; | ||
1263 | 148 | width.set_sensitive (false); | 152 | width.set_sensitive (false); |
1264 | 149 | height.set_sensitive (false); | 153 | height.set_sensitive (false); |
1265 | 150 | width.halign = Align.START; | 154 | width.halign = Align.START; |
1266 | 151 | height.halign = Align.START; | 155 | height.halign = Align.START; |
1268 | 152 | 156 | ||
1269 | 153 | var recordingarea_combo = new ComboBoxText (); | 157 | var recordingarea_combo = new ComboBoxText (); |
1270 | 154 | recordingarea_combo.append ("full", _("Fullscreen")); | 158 | recordingarea_combo.append ("full", _("Fullscreen")); |
1271 | 155 | recordingarea_combo.append ("custom", _("Custom")); | 159 | recordingarea_combo.append ("custom", _("Custom")); |
1272 | 156 | recordingarea_combo.active = 0; | 160 | recordingarea_combo.active = 0; |
1274 | 157 | 161 | ||
1275 | 158 | var use_comp_sounds = new CheckButton (); | 162 | var use_comp_sounds = new CheckButton (); |
1276 | 159 | use_comp_sounds.halign = Align.START; | 163 | use_comp_sounds.halign = Align.START; |
1277 | 160 | use_comp_sounds.set_sensitive (false); | 164 | use_comp_sounds.set_sensitive (false); |
1278 | 165 | |||
1279 | 161 | var use_audio = new CheckButton (); | 166 | var use_audio = new CheckButton (); |
1282 | 162 | use_audio.halign = Align.END; | 167 | use_audio.halign = Align.START; |
1283 | 163 | 168 | ||
1284 | 164 | var audio_source = new ComboBoxText (); | 169 | var audio_source = new ComboBoxText (); |
1287 | 165 | audio_source.margin_left = 6; | 170 | audio_source.append ("0", _("Default")); |
1286 | 166 | audio_source.append ("0", "Default"); | ||
1288 | 167 | audio_source.active = 0; | 171 | audio_source.active = 0; |
1289 | 168 | audio_source.hexpand = true; | 172 | audio_source.hexpand = true; |
1290 | 169 | audio_source.set_sensitive (false); | 173 | audio_source.set_sensitive (false); |
1292 | 170 | 174 | ||
1293 | 171 | var audio_box = new Box (Orientation.HORIZONTAL, 0); | 175 | var audio_box = new Box (Orientation.HORIZONTAL, 0); |
1294 | 172 | audio_box.pack_start (use_audio, false, true, 0); | 176 | audio_box.pack_start (use_audio, false, true, 0); |
1295 | 173 | audio_box.pack_start (audio_source, true, true, 0); | 177 | audio_box.pack_start (audio_source, true, true, 0); |
1298 | 174 | 178 | ||
1299 | 175 | var start_bt = new Button.with_label (_("Record")); | 179 | var sound = new LLabel.markup ("<b>"+_("Sound")+":"+"</b>"); |
1300 | 180 | sound.margin_top = 18; | ||
1301 | 181 | |||
1302 | 182 | var video = new LLabel.markup ("<b>"+_("Video")+":"+"</b>"); | ||
1303 | 183 | video.margin_top = 12; | ||
1304 | 184 | |||
1305 | 185 | var keyboard = new LLabel.markup ("<b>"+_("Keyboard")+":"+"</b>"); | ||
1306 | 186 | keyboard.margin_top = 18; | ||
1307 | 187 | |||
1308 | 188 | var mouse = new LLabel.markup ("<b>"+_("Mouse")+":"+"</b>"); | ||
1309 | 189 | mouse.margin_top = 12; | ||
1310 | 190 | |||
1311 | 191 | var start_bt = new Button.with_label (_("Start Recording")); | ||
1312 | 192 | start_bt.can_default = true; | ||
1313 | 193 | start_bt.get_style_context ().add_class ("noundo"); | ||
1314 | 194 | |||
1315 | 176 | var cancel_bt = new Button.from_stock (Stock.CANCEL); | 195 | var cancel_bt = new Button.from_stock (Stock.CANCEL); |
1317 | 177 | var about_bt = new Button.from_stock (Stock.ABOUT); | 196 | |
1318 | 197 | var about_bt = new Button.with_label (_("About")); | ||
1319 | 198 | about_bt.image = new Image.from_stock (Stock.ABOUT, IconSize.BUTTON); | ||
1320 | 199 | |||
1321 | 178 | var buttons = new Box (Orientation.HORIZONTAL, 5); | 200 | var buttons = new Box (Orientation.HORIZONTAL, 5); |
1323 | 179 | buttons.homogeneous = false; | 201 | buttons.homogeneous = true; |
1324 | 202 | buttons.pack_start (about_bt, false, true, 0); | ||
1325 | 203 | buttons.pack_start (cancel_bt, false, true, 0); | ||
1326 | 180 | buttons.pack_end (start_bt, false, true, 0); | 204 | buttons.pack_end (start_bt, false, true, 0); |
1331 | 181 | buttons.pack_end (cancel_bt, false, true, 0); | 205 | buttons.margin_top = 24; |
1332 | 182 | buttons.pack_start (about_bt, false, true, 0); | 206 | |
1329 | 183 | start_bt.can_default = true; | ||
1330 | 184 | start_bt.get_style_context ().add_class ("noundo"); | ||
1333 | 185 | this.main_window.set_default (start_bt); | 207 | this.main_window.set_default (start_bt); |
1337 | 186 | 208 | ||
1338 | 187 | grid.attach (new LLabel.markup ("<b>"+_("Sound")+"</b>"), 0, 0, 2, 1); | 209 | grid.attach ((sound), 0, 0, 1, 1); |
1339 | 188 | grid.attach (new LLabel.right (" "+_("Record Computer Sounds")+":"), 0, 1, 1, 1); | 210 | grid.attach (new LLabel.right (_("Record Computer Sounds")), 0, 1, 1, 1); |
1340 | 189 | grid.attach (use_comp_sounds, 1, 1, 1, 1); | 211 | grid.attach (use_comp_sounds, 1, 1, 1, 1); |
1341 | 190 | grid.attach (new LLabel.right (_("Record from Microphone")+":"), 0, 2, 1, 1); | 212 | grid.attach (new LLabel.right (_("Record from Microphone")+":"), 0, 2, 1, 1); |
1342 | 191 | grid.attach (audio_box, 1, 2, 1, 1); | 213 | grid.attach (audio_box, 1, 2, 1, 1); |
1345 | 192 | grid.attach (new LLabel.markup ("<b>"+_("Video")+"</b>"), 0, 3, 2, 1); | 214 | grid.attach ((video), 0, 3, 2, 1); |
1346 | 193 | grid.attach (new LLabel.right (_("Record from Monitor")+":"), 0, 4, 1, 1); | 215 | grid.attach (new LLabel.right (" "+_("Record from Monitor")+":"), 0, 4, 1, 1); |
1347 | 194 | grid.attach (monitors_combo, 1, 4, 1, 1); | 216 | grid.attach (monitors_combo, 1, 4, 1, 1); |
1348 | 195 | grid.attach (new LLabel.right (_("Recording Area")+":"), 0, 5, 1, 1); | 217 | grid.attach (new LLabel.right (_("Recording Area")+":"), 0, 5, 1, 1); |
1349 | 196 | grid.attach (recordingarea_combo, 1, 5, 1, 1); | 218 | grid.attach (recordingarea_combo, 1, 5, 1, 1); |
1350 | @@ -199,56 +221,62 @@ | |||
1351 | 199 | grid.attach (new LLabel.right (_("Height")+":"), 0, 7, 1, 1); | 221 | grid.attach (new LLabel.right (_("Height")+":"), 0, 7, 1, 1); |
1352 | 200 | grid.attach (height, 1, 7, 1, 1); | 222 | grid.attach (height, 1, 7, 1, 1); |
1353 | 201 | grid.attach (buttons, 0, 8, 2, 1); | 223 | grid.attach (buttons, 0, 8, 2, 1); |
1355 | 202 | 224 | ||
1356 | 203 | //grid2 | 225 | //grid2 |
1357 | 204 | var grid2 = new Grid (); | 226 | var grid2 = new Grid (); |
1359 | 205 | 227 | ||
1360 | 206 | var use_keyview = new Gtk.CheckButton (); | 228 | var use_keyview = new Gtk.CheckButton (); |
1361 | 207 | use_keyview.halign = Gtk.Align.START; | 229 | use_keyview.halign = Gtk.Align.START; |
1362 | 230 | |||
1363 | 208 | var use_clickview = new Gtk.CheckButton (); | 231 | var use_clickview = new Gtk.CheckButton (); |
1364 | 209 | use_clickview.halign = Gtk.Align.START; | 232 | use_clickview.halign = Gtk.Align.START; |
1365 | 233 | |||
1366 | 210 | var use_circle = new Gtk.CheckButton (); | 234 | var use_circle = new Gtk.CheckButton (); |
1367 | 211 | use_circle.halign = Gtk.Align.START; | 235 | use_circle.halign = Gtk.Align.START; |
1368 | 236 | |||
1369 | 212 | var circle_color = new Gtk.ColorButton (); | 237 | var circle_color = new Gtk.ColorButton (); |
1370 | 238 | |||
1371 | 213 | var circle_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0); | 239 | var circle_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0); |
1372 | 214 | |||
1373 | 215 | circle_box.pack_start (use_circle, false); | 240 | circle_box.pack_start (use_circle, false); |
1374 | 216 | circle_box.pack_start (circle_color); | 241 | circle_box.pack_start (circle_color); |
1382 | 217 | 242 | ||
1383 | 218 | grid2.attach (new LLabel.right (_("Show pressed keys on screen")+":"), 0, 0, 1, 1); | 243 | //grid2.attach (new LLabel |
1384 | 219 | grid2.attach (use_keyview, 1, 0, 1, 1); | 244 | grid2.attach ((keyboard), 0, 0, 1, 1); |
1385 | 220 | grid2.attach (new LLabel.right (_("Show clicks on screen")+":"), 0, 1, 1, 1); | 245 | grid2.attach (new LLabel.right (_("Pressed keys on screen")+":"), 0, 1, 1, 1); |
1386 | 221 | grid2.attach (use_clickview, 1, 1, 1, 1); | 246 | grid2.attach (use_keyview, 1, 1, 1, 1); |
1387 | 222 | grid2.attach (new LLabel.right (_("Show circle behind mouse")+":"), 0, 2, 1, 1); | 247 | grid2.attach ((mouse), 0, 2, 1, 1); |
1388 | 223 | grid2.attach (circle_box, 1, 2, 1, 1); | 248 | grid2.attach (new LLabel.right (_("Mouse clicks on screen")+":"), 0, 3, 1, 1); |
1389 | 249 | grid2.attach (use_clickview, 1, 3, 1, 1); | ||
1390 | 250 | grid2.attach (new LLabel.right (_("Circle around the cursor")+":"), 0, 4, 1, 1); | ||
1391 | 251 | grid2.attach (circle_box, 1, 4, 1, 1); | ||
1392 | 224 | grid2.column_spacing = 12; | 252 | grid2.column_spacing = 12; |
1393 | 225 | grid2.row_spacing = 6; | 253 | grid2.row_spacing = 6; |
1394 | 226 | grid2.hexpand = true; | 254 | grid2.hexpand = true; |
1396 | 227 | 255 | ||
1397 | 228 | tabs.append_page (grid, new Label (_("Behavior"))); | 256 | tabs.append_page (grid, new Label (_("Behavior"))); |
1398 | 229 | tabs.append_page (grid2, new Label (_("Appearance"))); | 257 | tabs.append_page (grid2, new Label (_("Appearance"))); |
1400 | 230 | 258 | ||
1401 | 231 | this.main_window.add (tabs); | 259 | this.main_window.add (tabs); |
1402 | 232 | this.main_window.show_all (); | 260 | this.main_window.show_all (); |
1403 | 233 | this.main_window.present (); | 261 | this.main_window.present (); |
1405 | 234 | 262 | ||
1406 | 235 | /* | 263 | /* |
1407 | 236 | Events | 264 | Events |
1408 | 237 | */ | 265 | */ |
1410 | 238 | 266 | ||
1411 | 267 | about_bt.clicked.connect ( () => { | ||
1412 | 268 | this.show_about (this.main_window); | ||
1413 | 269 | }); | ||
1414 | 270 | |||
1415 | 239 | cancel_bt.clicked.connect ( () => { | 271 | cancel_bt.clicked.connect ( () => { |
1416 | 240 | this.main_window.destroy (); | 272 | this.main_window.destroy (); |
1417 | 241 | }); | 273 | }); |
1419 | 242 | 274 | ||
1420 | 243 | start_bt.clicked.connect ( () => { | 275 | start_bt.clicked.connect ( () => { |
1421 | 244 | var count = new Eidete.Widgets.Countdown (); | 276 | var count = new Eidete.Widgets.Countdown (); |
1422 | 245 | this.main_window.iconify (); | 277 | this.main_window.iconify (); |
1423 | 246 | count.start (this); | 278 | count.start (this); |
1424 | 247 | }); | 279 | }); |
1425 | 248 | |||
1426 | 249 | about_bt.clicked.connect ( () => { | ||
1427 | 250 | this.show_about (this.main_window); | ||
1428 | 251 | }); | ||
1429 | 252 | 280 | ||
1430 | 253 | this.screen = Gdk.Screen.get_default(); | 281 | this.screen = Gdk.Screen.get_default(); |
1431 | 254 | settings.monitor = 0; | 282 | settings.monitor = 0; |
1432 | @@ -260,14 +288,14 @@ | |||
1433 | 260 | settings.ex = settings.sx + this.monitor_rec.width - 1; | 288 | settings.ex = settings.sx + this.monitor_rec.width - 1; |
1434 | 261 | settings.ey = settings.sy + this.monitor_rec.height - 1; | 289 | settings.ey = settings.sy + this.monitor_rec.height - 1; |
1435 | 262 | }); | 290 | }); |
1437 | 263 | 291 | ||
1438 | 264 | settings.monitor = int.parse (monitors_combo.active_id); | 292 | settings.monitor = int.parse (monitors_combo.active_id); |
1439 | 265 | this.screen.get_monitor_geometry(settings.monitor, out this.monitor_rec); | 293 | this.screen.get_monitor_geometry(settings.monitor, out this.monitor_rec); |
1440 | 266 | settings.sx = this.monitor_rec.x; | 294 | settings.sx = this.monitor_rec.x; |
1441 | 267 | settings.sy = this.monitor_rec.y; | 295 | settings.sy = this.monitor_rec.y; |
1442 | 268 | settings.ex = settings.sx + this.monitor_rec.width - 1; | 296 | settings.ex = settings.sx + this.monitor_rec.width - 1; |
1443 | 269 | settings.ey = settings.sy + this.monitor_rec.height - 1; | 297 | settings.ey = settings.sy + this.monitor_rec.height - 1; |
1445 | 270 | 298 | ||
1446 | 271 | recordingarea_combo.changed.connect ( () => { | 299 | recordingarea_combo.changed.connect ( () => { |
1447 | 272 | if (recordingarea_combo.active_id != "full"){ | 300 | if (recordingarea_combo.active_id != "full"){ |
1448 | 273 | selectionarea = new Eidete.Widgets.SelectionArea (); | 301 | selectionarea = new Eidete.Widgets.SelectionArea (); |
1449 | @@ -303,7 +331,7 @@ | |||
1450 | 303 | height.set_sensitive (false); | 331 | height.set_sensitive (false); |
1451 | 304 | } | 332 | } |
1452 | 305 | }); | 333 | }); |
1454 | 306 | 334 | ||
1455 | 307 | width.key_release_event.connect ( (e) => { | 335 | width.key_release_event.connect ( (e) => { |
1456 | 308 | selectionarea.resize ((int)width.value, (int)height.value); | 336 | selectionarea.resize ((int)width.value, (int)height.value); |
1457 | 309 | typing_size = true; | 337 | typing_size = true; |
1458 | @@ -316,7 +344,7 @@ | |||
1459 | 316 | return false; | 344 | return false; |
1460 | 317 | }); | 345 | }); |
1461 | 318 | height.focus_out_event.connect ( (e) => {typing_size = false;return false;}); | 346 | height.focus_out_event.connect ( (e) => {typing_size = false;return false;}); |
1463 | 319 | 347 | ||
1464 | 320 | settings.audio = false; | 348 | settings.audio = false; |
1465 | 321 | use_audio.toggled.connect ( () => { | 349 | use_audio.toggled.connect ( () => { |
1466 | 322 | settings.audio = use_audio.active; | 350 | settings.audio = use_audio.active; |
1467 | @@ -326,40 +354,40 @@ | |||
1468 | 326 | audio_source.set_sensitive (false); | 354 | audio_source.set_sensitive (false); |
1469 | 327 | } | 355 | } |
1470 | 328 | }); | 356 | }); |
1473 | 329 | 357 | ||
1474 | 330 | 358 | ||
1475 | 331 | Gdk.Screen.get_default ().monitors_changed.connect ( () => { | 359 | Gdk.Screen.get_default ().monitors_changed.connect ( () => { |
1476 | 332 | if (Gdk.Screen.get_default ().get_n_monitors () > 1) | 360 | if (Gdk.Screen.get_default ().get_n_monitors () > 1) |
1477 | 333 | monitors_combo.set_sensitive (true); | 361 | monitors_combo.set_sensitive (true); |
1478 | 334 | else | 362 | else |
1479 | 335 | monitors_combo.set_sensitive (false); | 363 | monitors_combo.set_sensitive (false); |
1480 | 336 | }); | 364 | }); |
1482 | 337 | 365 | ||
1483 | 338 | settings.keyview = false; | 366 | settings.keyview = false; |
1484 | 339 | use_keyview.toggled.connect ( () => { | 367 | use_keyview.toggled.connect ( () => { |
1485 | 340 | settings.keyview = use_keyview.active; | 368 | settings.keyview = use_keyview.active; |
1486 | 341 | }); | 369 | }); |
1488 | 342 | 370 | ||
1489 | 343 | settings.clickview = false; | 371 | settings.clickview = false; |
1490 | 344 | use_clickview.toggled.connect ( () => { | 372 | use_clickview.toggled.connect ( () => { |
1491 | 345 | settings.clickview = use_clickview.active; | 373 | settings.clickview = use_clickview.active; |
1492 | 346 | }); | 374 | }); |
1494 | 347 | 375 | ||
1495 | 348 | settings.mouse_circle = false; | 376 | settings.mouse_circle = false; |
1496 | 349 | use_circle.toggled.connect ( () => { | 377 | use_circle.toggled.connect ( () => { |
1497 | 350 | settings.mouse_circle = use_circle.active; | 378 | settings.mouse_circle = use_circle.active; |
1498 | 351 | }); | 379 | }); |
1500 | 352 | 380 | ||
1501 | 353 | settings.mouse_circle_color = {1, 1, 0, 0.3}; | 381 | settings.mouse_circle_color = {1, 1, 0, 0.3}; |
1502 | 354 | circle_color.use_alpha = true; | 382 | circle_color.use_alpha = true; |
1503 | 355 | circle_color.rgba = settings.mouse_circle_color; | 383 | circle_color.rgba = settings.mouse_circle_color; |
1504 | 356 | circle_color.color_set.connect ( () => { | 384 | circle_color.color_set.connect ( () => { |
1505 | 357 | settings.mouse_circle_color = circle_color.rgba; | 385 | settings.mouse_circle_color = circle_color.rgba; |
1506 | 358 | }); | 386 | }); |
1508 | 359 | 387 | ||
1509 | 360 | settings.destination = GLib.Environment.get_tmp_dir ()+ | 388 | settings.destination = GLib.Environment.get_tmp_dir ()+ |
1510 | 361 | "/screencast"+new GLib.DateTime.now_local ().to_unix ().to_string ()+".webm"; | 389 | "/screencast"+new GLib.DateTime.now_local ().to_unix ().to_string ()+".webm"; |
1512 | 362 | 390 | ||
1513 | 363 | ulong handle = 0; | 391 | ulong handle = 0; |
1514 | 364 | handle = Wnck.Screen.get_default().active_window_changed.connect ( () => { | 392 | handle = Wnck.Screen.get_default().active_window_changed.connect ( () => { |
1515 | 365 | this.win = Wnck.Screen.get_default().get_active_window (); | 393 | this.win = Wnck.Screen.get_default().get_active_window (); |
1516 | @@ -372,7 +400,7 @@ | |||
1517 | 372 | }); | 400 | }); |
1518 | 373 | Wnck.Screen.get_default ().disconnect (handle); | 401 | Wnck.Screen.get_default ().disconnect (handle); |
1519 | 374 | }); | 402 | }); |
1521 | 375 | 403 | ||
1522 | 376 | this.main_window.focus_in_event.connect ( (ev) => { | 404 | this.main_window.focus_in_event.connect ( (ev) => { |
1523 | 377 | if (this.selectionarea != null && !this.selectionarea.not_visible){ | 405 | if (this.selectionarea != null && !this.selectionarea.not_visible){ |
1524 | 378 | this.selectionarea.present (); | 406 | this.selectionarea.present (); |
1525 | @@ -397,11 +425,11 @@ | |||
1526 | 397 | finish_recording (); | 425 | finish_recording (); |
1527 | 398 | } | 426 | } |
1528 | 399 | }); | 427 | }); |
1530 | 400 | 428 | ||
1531 | 401 | Granite.Services.Logger.initialize ("Eidete"); | 429 | Granite.Services.Logger.initialize ("Eidete"); |
1532 | 402 | Granite.Services.Logger.DisplayLevel = Granite.Services.LogLevel.DEBUG; | 430 | Granite.Services.Logger.DisplayLevel = Granite.Services.LogLevel.DEBUG; |
1533 | 403 | } | 431 | } |
1535 | 404 | 432 | ||
1536 | 405 | public override void activate (){ | 433 | public override void activate (){ |
1537 | 406 | if (this.get_windows ().length () == 0){ | 434 | if (this.get_windows ().length () == 0){ |
1538 | 407 | this.start_and_build (); | 435 | this.start_and_build (); |
1539 | @@ -413,50 +441,74 @@ | |||
1540 | 413 | } | 441 | } |
1541 | 414 | } | 442 | } |
1542 | 415 | } | 443 | } |
1544 | 416 | 444 | ||
1545 | 417 | private void build_pause_ui (){ | 445 | private void build_pause_ui (){ |
1546 | 446 | |||
1547 | 418 | pause_grid = new Grid (); | 447 | pause_grid = new Grid (); |
1548 | 419 | pause_grid.margin = 12; | 448 | pause_grid.margin = 12; |
1550 | 420 | 449 | this.main_window.title = _("Recording paused"); | |
1551 | 450 | |||
1552 | 451 | |||
1553 | 452 | var img_text_grid = new Grid (); | ||
1554 | 453 | |||
1555 | 454 | var text_grid = new Grid (); | ||
1556 | 455 | |||
1557 | 456 | var title = new LLabel.markup ("<span weight='bold' size='larger'>"+_("Recording paused")+"</span>"); | ||
1558 | 457 | title.valign = Align.START; | ||
1559 | 458 | |||
1560 | 459 | var info = new LLabel (_("You can continue or finish the recording now")); | ||
1561 | 460 | info.valign = Align.START; | ||
1562 | 461 | info.margin_top = 6; | ||
1563 | 462 | |||
1564 | 421 | var buttons = new Box (Orientation.HORIZONTAL, 0); | 463 | var buttons = new Box (Orientation.HORIZONTAL, 0); |
1571 | 422 | var stop_bt = new Button (); | 464 | buttons.homogeneous = true; |
1572 | 423 | stop_bt.image = new Image.from_stock (Stock.MEDIA_STOP, IconSize.BUTTON); | 465 | buttons.spacing = 6; |
1573 | 424 | stop_bt.label = _("Finish"); | 466 | buttons.margin_top = 24; |
1574 | 425 | stop_bt.set_tooltip_text (_("Finish recording")); | 467 | |
1575 | 426 | var cancel_bt = new Button.from_stock (Stock.CANCEL); | 468 | var continue_bt = new Button.with_label (_("Continue")); |
1576 | 427 | var continue_bt = new Button.with_label (_("Record more")); | 469 | continue_bt.set_tooltip_text (_("Continue recording")); |
1577 | 428 | continue_bt.image = new Image.from_stock (Stock.MEDIA_RECORD, IconSize.BUTTON); | 470 | continue_bt.image = new Image.from_stock (Stock.MEDIA_RECORD, IconSize.BUTTON); |
1578 | 471 | |||
1579 | 472 | var stop_bt = new Button.with_label (_("Finish")); | ||
1580 | 473 | stop_bt.set_tooltip_text (_("Stop the recording and save the file")); | ||
1581 | 474 | stop_bt.image = new Image.from_stock (Stock.APPLY, IconSize.BUTTON); | ||
1582 | 475 | |||
1583 | 476 | var cancel_bt = new Button.with_label (_("Cancel")); | ||
1584 | 477 | cancel_bt.set_tooltip_text (_("Cancel the recording without saving the file")); | ||
1585 | 478 | cancel_bt.image = new Image.from_stock (Stock.DELETE, IconSize.BUTTON); | ||
1586 | 479 | |||
1587 | 429 | buttons.pack_end (stop_bt, false, true, 0); | 480 | buttons.pack_end (stop_bt, false, true, 0); |
1588 | 430 | buttons.pack_end (cancel_bt, false, true, 0); | ||
1589 | 431 | buttons.pack_end (continue_bt, false, true, 0); | 481 | buttons.pack_end (continue_bt, false, true, 0); |
1591 | 432 | 482 | buttons.pack_end (cancel_bt, false, true, 0); | |
1592 | 483 | |||
1593 | 433 | var img = new Image.from_stock (Stock.MEDIA_PAUSE, IconSize.DIALOG); | 484 | var img = new Image.from_stock (Stock.MEDIA_PAUSE, IconSize.DIALOG); |
1594 | 434 | img.valign = Align.START; | 485 | img.valign = Align.START; |
1595 | 435 | img.margin_right = 12; | 486 | img.margin_right = 12; |
1606 | 436 | 487 | ||
1607 | 437 | var space = new Label (""); | 488 | text_grid.attach (title, 0, 0, 1, 1); |
1608 | 438 | space.height_request = 24; | 489 | text_grid.attach (info, 0, 1, 1, 1); |
1609 | 439 | 490 | ||
1610 | 440 | pause_grid.attach (img, 0, 0, 1, 1); | 491 | img_text_grid.attach (img, 0, 0, 1, 1); |
1611 | 441 | pause_grid.attach (new LLabel.markup ("<span weight='bold' size='20000'>"+_("Recording paused")+"</span>"), 1, 0, 1, 1); | 492 | img_text_grid.attach (text_grid, 1, 0, 1, 1); |
1612 | 442 | pause_grid.attach (new LLabel (_("You can continue or finish the recording now.")), 1, 1, 1, 1); | 493 | |
1613 | 443 | pause_grid.attach (space, 0, 2, 1, 1); | 494 | pause_grid.attach (img_text_grid, 0, 0, 1, 1); |
1614 | 444 | pause_grid.attach (buttons, 0, 3, 2, 1); | 495 | pause_grid.attach (buttons, 0, 2, 1, 1); |
1615 | 445 | 496 | ||
1616 | 497 | |||
1617 | 446 | stop_bt.can_default = true; | 498 | stop_bt.can_default = true; |
1618 | 447 | this.main_window.set_default (stop_bt); | 499 | this.main_window.set_default (stop_bt); |
1620 | 448 | 500 | ||
1621 | 449 | /* | 501 | /* |
1622 | 450 | Events | 502 | Events |
1623 | 451 | */ | 503 | */ |
1624 | 452 | cancel_bt.clicked.connect ( () => { | 504 | cancel_bt.clicked.connect ( () => { |
1625 | 453 | this.main_window.destroy (); | 505 | this.main_window.destroy (); |
1626 | 454 | }); | 506 | }); |
1628 | 455 | 507 | ||
1629 | 456 | stop_bt.clicked.connect ( () => { | 508 | stop_bt.clicked.connect ( () => { |
1630 | 457 | finish_recording (); | 509 | finish_recording (); |
1631 | 458 | }); | 510 | }); |
1633 | 459 | 511 | ||
1634 | 460 | continue_bt.clicked.connect ( () => { | 512 | continue_bt.clicked.connect ( () => { |
1635 | 461 | this.main_window.iconify (); | 513 | this.main_window.iconify (); |
1636 | 462 | this.pipeline.set_state (State.PLAYING); | 514 | this.pipeline.set_state (State.PLAYING); |
1637 | @@ -464,7 +516,7 @@ | |||
1638 | 464 | switch_to_paused (false); | 516 | switch_to_paused (false); |
1639 | 465 | }); | 517 | }); |
1640 | 466 | } | 518 | } |
1642 | 467 | 519 | ||
1643 | 468 | public void record () { | 520 | public void record () { |
1644 | 469 | if (settings.keyview || settings.clickview || settings.mouse_circle) { | 521 | if (settings.keyview || settings.clickview || settings.mouse_circle) { |
1645 | 470 | keyview = new Eidete.Widgets.KeyView (settings.keyview, settings.clickview, settings.mouse_circle, settings.mouse_circle_color); | 522 | keyview = new Eidete.Widgets.KeyView (settings.keyview, settings.clickview, settings.mouse_circle, settings.mouse_circle_color); |
1646 | @@ -476,36 +528,36 @@ | |||
1647 | 476 | return false; | 528 | return false; |
1648 | 477 | }); | 529 | }); |
1649 | 478 | keyview.place (settings.ex, | 530 | keyview.place (settings.ex, |
1651 | 479 | settings.sy, | 531 | settings.sy, |
1652 | 480 | settings.ey - settings.sy); | 532 | settings.ey - settings.sy); |
1653 | 481 | keyview.show_all (); | 533 | keyview.show_all (); |
1654 | 482 | } | 534 | } |
1656 | 483 | 535 | ||
1657 | 484 | pipeline = new Pipeline ("screencast-pipe"); | 536 | pipeline = new Pipeline ("screencast-pipe"); |
1658 | 485 | dynamic Element muxer = ElementFactory.make ("webmmux", "mux"); | 537 | dynamic Element muxer = ElementFactory.make ("webmmux", "mux"); |
1659 | 486 | dynamic Element sink = ElementFactory.make ("filesink", "sink"); | 538 | dynamic Element sink = ElementFactory.make ("filesink", "sink"); |
1661 | 487 | 539 | ||
1662 | 488 | //video bin | 540 | //video bin |
1663 | 489 | this.videobin = new Gst.Bin ("video"); | 541 | this.videobin = new Gst.Bin ("video"); |
1664 | 490 | try { | 542 | try { |
1665 | 491 | videobin = (Gst.Bin)parse_bin_from_description ( | 543 | videobin = (Gst.Bin)parse_bin_from_description ( |
1667 | 492 | "ximagesrc name=\"videosrc\" ! video/x-raw-rgb, framerate=15/1 ! | 544 | "ximagesrc name=\"videosrc\" ! video/x-raw-rgb, framerate=15/1 ! |
1668 | 493 | ffmpegcolorspace ! vp8enc name=\"encoder\" ! queue", true); | 545 | ffmpegcolorspace ! vp8enc name=\"encoder\" ! queue", true); |
1669 | 494 | }catch (Error e){ stderr.printf ("Error: %s\n", e.message);} | 546 | }catch (Error e){ stderr.printf ("Error: %s\n", e.message);} |
1671 | 495 | 547 | ||
1672 | 496 | //audio bin | 548 | //audio bin |
1673 | 497 | this.audiobin = new Gst.Bin ("audio"); | 549 | this.audiobin = new Gst.Bin ("audio"); |
1674 | 498 | try{ | 550 | try{ |
1676 | 499 | audiobin = (Gst.Bin)parse_bin_from_description ("pulsesrc name=\"audiosrc\" ! | 551 | audiobin = (Gst.Bin)parse_bin_from_description ("pulsesrc name=\"audiosrc\" ! |
1677 | 500 | audioconvert ! audioresample ! audiorate ! vorbisenc ! queue", true); | 552 | audioconvert ! audioresample ! audiorate ! vorbisenc ! queue", true); |
1678 | 501 | }catch (Error e){ stderr.printf ("Error: %s\n", e.message);} | 553 | }catch (Error e){ stderr.printf ("Error: %s\n", e.message);} |
1681 | 502 | 554 | ||
1682 | 503 | 555 | ||
1683 | 504 | string cores; | 556 | string cores; |
1684 | 505 | try{ | 557 | try{ |
1685 | 506 | Process.spawn_command_line_sync ("cat /sys/devices/system/cpu/online", out cores); | 558 | Process.spawn_command_line_sync ("cat /sys/devices/system/cpu/online", out cores); |
1686 | 507 | }catch (Error e){warning (e.message);} | 559 | }catch (Error e){warning (e.message);} |
1688 | 508 | 560 | ||
1689 | 509 | //configure | 561 | //configure |
1690 | 510 | sink.set ("location", settings.destination); | 562 | sink.set ("location", settings.destination); |
1691 | 511 | videobin.get_by_name ("videosrc").set ("startx", this.settings.sx); | 563 | videobin.get_by_name ("videosrc").set ("startx", this.settings.sx); |
1692 | @@ -514,37 +566,37 @@ | |||
1693 | 514 | videobin.get_by_name ("videosrc").set ("endy", this.settings.ey); | 566 | videobin.get_by_name ("videosrc").set ("endy", this.settings.ey); |
1694 | 515 | videobin.get_by_name ("videosrc").set ("use-damage", false); | 567 | videobin.get_by_name ("videosrc").set ("use-damage", false); |
1695 | 516 | videobin.get_by_name ("videosrc").set ("screen-num", this.settings.monitor); | 568 | videobin.get_by_name ("videosrc").set ("screen-num", this.settings.monitor); |
1697 | 517 | 569 | ||
1698 | 518 | //videobin.get_by_name ("encoder").set ("mode", 1); | 570 | //videobin.get_by_name ("encoder").set ("mode", 1); |
1699 | 519 | videobin.get_by_name ("encoder").set ("quality", 8.0); | 571 | videobin.get_by_name ("encoder").set ("quality", 8.0); |
1700 | 520 | videobin.get_by_name ("encoder").set ("speed", 6); | 572 | videobin.get_by_name ("encoder").set ("speed", 6); |
1701 | 521 | videobin.get_by_name ("encoder").set ("max-keyframe-distance", 150); | 573 | videobin.get_by_name ("encoder").set ("max-keyframe-distance", 150); |
1702 | 522 | videobin.get_by_name ("encoder").set ("threads", int.parse (cores.substring (2))); | 574 | videobin.get_by_name ("encoder").set ("threads", int.parse (cores.substring (2))); |
1705 | 523 | 575 | ||
1706 | 524 | 576 | ||
1707 | 525 | if (pipeline==null||muxer==null||sink==null||videobin==null||audiobin==null){ | 577 | if (pipeline==null||muxer==null||sink==null||videobin==null||audiobin==null){ |
1708 | 526 | stderr.printf ("Error: Elements weren't made correctly!\n"); | 578 | stderr.printf ("Error: Elements weren't made correctly!\n"); |
1709 | 527 | } | 579 | } |
1711 | 528 | 580 | ||
1712 | 529 | if (settings.audio) | 581 | if (settings.audio) |
1713 | 530 | pipeline.add_many (audiobin, videobin, muxer, sink); | 582 | pipeline.add_many (audiobin, videobin, muxer, sink); |
1714 | 531 | else | 583 | else |
1715 | 532 | pipeline.add_many (videobin, muxer, sink); | 584 | pipeline.add_many (videobin, muxer, sink); |
1718 | 533 | 585 | ||
1719 | 534 | 586 | ||
1720 | 535 | videobin.get_static_pad ("src").link(muxer.get_request_pad ("video_%d")); | 587 | videobin.get_static_pad ("src").link(muxer.get_request_pad ("video_%d")); |
1721 | 536 | if (settings.audio) | 588 | if (settings.audio) |
1722 | 537 | audiobin.get_static_pad ("src").link(muxer.get_request_pad ("audio_%d")); | 589 | audiobin.get_static_pad ("src").link(muxer.get_request_pad ("audio_%d")); |
1724 | 538 | 590 | ||
1725 | 539 | muxer.link (sink); | 591 | muxer.link (sink); |
1727 | 540 | 592 | ||
1728 | 541 | pipeline.get_bus ().add_watch (bus_message_cb); | 593 | pipeline.get_bus ().add_watch (bus_message_cb); |
1729 | 542 | 594 | ||
1730 | 543 | pipeline.set_state (State.READY); | 595 | pipeline.set_state (State.READY); |
1732 | 544 | 596 | ||
1733 | 545 | if (selectionarea != null) | 597 | if (selectionarea != null) |
1734 | 546 | selectionarea.to_discrete (); | 598 | selectionarea.to_discrete (); |
1736 | 547 | 599 | ||
1737 | 548 | pipeline.set_state (State.PLAYING); | 600 | pipeline.set_state (State.PLAYING); |
1738 | 549 | this.recording = true; | 601 | this.recording = true; |
1739 | 550 | } | 602 | } |
1740 | @@ -581,9 +633,10 @@ | |||
1741 | 581 | } | 633 | } |
1742 | 582 | return true; | 634 | return true; |
1743 | 583 | } | 635 | } |
1745 | 584 | 636 | ||
1746 | 585 | //only visuals | 637 | //only visuals |
1747 | 586 | public void switch_to_paused (bool to_normal){ | 638 | public void switch_to_paused (bool to_normal){ |
1748 | 639 | |||
1749 | 587 | if (to_normal){ | 640 | if (to_normal){ |
1750 | 588 | this.main_window.title = _("Recording paused"); | 641 | this.main_window.title = _("Recording paused"); |
1751 | 589 | this.main_window.remove (pause_icon); | 642 | this.main_window.remove (pause_icon); |
1752 | @@ -615,8 +668,8 @@ | |||
1753 | 615 | bool finish_rec; | 668 | bool finish_rec; |
1754 | 616 | 669 | ||
1755 | 617 | static const OptionEntry[] entries = { | 670 | static const OptionEntry[] entries = { |
1758 | 618 | {"pause", 'n', 0, OptionArg.NONE, ref pause_rec, "Pause Recording", ""}, | 671 | {"pause", 'n', 0, OptionArg.NONE, ref pause_rec, N_("Pause Recording"), ""}, |
1759 | 619 | {"finish", 'n', 0, OptionArg.NONE, ref finish_rec, "Finish Recording", ""}, | 672 | {"finish", 'n', 0, OptionArg.NONE, ref finish_rec, N_("Finish Recording"), ""}, |
1760 | 620 | { null } | 673 | { null } |
1761 | 621 | }; | 674 | }; |
1762 | 622 | 675 | ||
1763 | @@ -628,11 +681,11 @@ | |||
1764 | 628 | try{ | 681 | try{ |
1765 | 629 | context.parse (ref args); | 682 | context.parse (ref args); |
1766 | 630 | }catch (Error e){ error ("Error: "+e.message);} | 683 | }catch (Error e){ error ("Error: "+e.message);} |
1768 | 631 | 684 | ||
1769 | 632 | Gst.init (ref args); | 685 | Gst.init (ref args); |
1771 | 633 | 686 | ||
1772 | 634 | eidete = new Eidete.EideteApp (); | 687 | eidete = new Eidete.EideteApp (); |
1774 | 635 | 688 | ||
1775 | 636 | return eidete.run (args); | 689 | return eidete.run (args); |
1776 | 637 | } | 690 | } |
1777 | 638 | 691 |