diff options
Diffstat (limited to 'src/ui/messages.c')
-rw-r--r-- | src/ui/messages.c | 47 |
1 files changed, 31 insertions, 16 deletions
diff --git a/src/ui/messages.c b/src/ui/messages.c index 9b0a692..26df838 100644 --- a/src/ui/messages.c +++ b/src/ui/messages.c | |||
@@ -158,7 +158,7 @@ messages_event(UI_MESSAGES_Handle *messages, | |||
158 | if (!(messages->window)) | 158 | if (!(messages->window)) |
159 | return; | 159 | return; |
160 | 160 | ||
161 | const int height = getmaxy(messages->window) - getbegy(messages->window); | 161 | const int height = getmaxy(messages->window); |
162 | const int y = messages->line_selected - messages->line_offset; | 162 | const int y = messages->line_selected - messages->line_offset; |
163 | 163 | ||
164 | const int line_height = height - 2; | 164 | const int line_height = height - 2; |
@@ -188,7 +188,7 @@ _messages_iterate_print(UI_MESSAGES_Handle *messages, | |||
188 | if (y < 0) | 188 | if (y < 0) |
189 | return; | 189 | return; |
190 | 190 | ||
191 | const int height = getmaxy(messages->window) - getbegy(messages->window); | 191 | const int height = getmaxy(messages->window); |
192 | const int line_height = height - 2; | 192 | const int line_height = height - 2; |
193 | 193 | ||
194 | if (y >= line_height) | 194 | if (y >= line_height) |
@@ -199,38 +199,49 @@ _messages_iterate_print(UI_MESSAGES_Handle *messages, | |||
199 | const char *name = sender? GNUNET_CHAT_contact_get_name(sender) : NULL; | 199 | const char *name = sender? GNUNET_CHAT_contact_get_name(sender) : NULL; |
200 | const char *text = GNUNET_CHAT_message_get_text(message); | 200 | const char *text = GNUNET_CHAT_message_get_text(message); |
201 | 201 | ||
202 | struct GNUNET_TIME_Absolute timestamp = GNUNET_CHAT_message_get_timestamp( | 202 | struct GNUNET_TIME_Absolute abs_time = GNUNET_CHAT_message_get_timestamp( |
203 | message | 203 | message |
204 | ); | 204 | ); |
205 | 205 | ||
206 | struct GNUNET_TIME_Timestamp timestamp = GNUNET_TIME_absolute_to_timestamp( | ||
207 | abs_time | ||
208 | ); | ||
209 | |||
210 | const time_t s_after_epoch = ( | ||
211 | GNUNET_TIME_timestamp_to_s(timestamp) | ||
212 | ); | ||
213 | |||
214 | struct tm* ts = localtime(&s_after_epoch); | ||
215 | char time_buf [255]; | ||
216 | |||
217 | strftime(time_buf, sizeof(time_buf), "%H:%M", ts); | ||
218 | |||
206 | const int attrs_select = A_BOLD; | 219 | const int attrs_select = A_BOLD; |
207 | 220 | ||
208 | if (selected) wattron(messages->window, attrs_select); | 221 | if (selected) wattron(messages->window, attrs_select); |
209 | 222 | ||
210 | wmove(messages->window, y, 0); | 223 | wmove(messages->window, y, 0); |
224 | wprintw(messages->window, "%s | ", time_buf); | ||
211 | 225 | ||
212 | switch (kind) { | 226 | switch (kind) { |
213 | case GNUNET_CHAT_KIND_JOIN: | 227 | case GNUNET_CHAT_KIND_JOIN: |
214 | wprintw( | 228 | wprintw( |
215 | messages->window, | 229 | messages->window, |
216 | "%s | %s joins the room.", | 230 | "%s joins the room.", |
217 | GNUNET_TIME_absolute2s(timestamp), | ||
218 | name | 231 | name |
219 | ); | 232 | ); |
220 | break; | 233 | break; |
221 | case GNUNET_CHAT_KIND_LEAVE: | 234 | case GNUNET_CHAT_KIND_LEAVE: |
222 | wprintw( | 235 | wprintw( |
223 | messages->window, | 236 | messages->window, |
224 | "%s | %s leaves the room.", | 237 | "%s leaves the room.", |
225 | GNUNET_TIME_absolute2s(timestamp), | ||
226 | name | 238 | name |
227 | ); | 239 | ); |
228 | break; | 240 | break; |
229 | case GNUNET_CHAT_KIND_INVITATION: | 241 | case GNUNET_CHAT_KIND_INVITATION: |
230 | wprintw( | 242 | wprintw( |
231 | messages->window, | 243 | messages->window, |
232 | "%s | %s invites you to a room.", | 244 | "%s invites you to a room.", |
233 | GNUNET_TIME_absolute2s(timestamp), | ||
234 | name | 245 | name |
235 | ); | 246 | ); |
236 | break; | 247 | break; |
@@ -238,8 +249,7 @@ _messages_iterate_print(UI_MESSAGES_Handle *messages, | |||
238 | case GNUNET_CHAT_KIND_FILE: | 249 | case GNUNET_CHAT_KIND_FILE: |
239 | wprintw( | 250 | wprintw( |
240 | messages->window, | 251 | messages->window, |
241 | "%s | %s: %s", | 252 | "%s: %s", |
242 | GNUNET_TIME_absolute2s(timestamp), | ||
243 | name, | 253 | name, |
244 | text | 254 | text |
245 | ); | 255 | ); |
@@ -247,8 +257,7 @@ _messages_iterate_print(UI_MESSAGES_Handle *messages, | |||
247 | default: | 257 | default: |
248 | wprintw( | 258 | wprintw( |
249 | messages->window, | 259 | messages->window, |
250 | "%s | [%d] %s: %s", | 260 | "[%d] %s: %s", |
251 | GNUNET_TIME_absolute2s(timestamp), | ||
252 | (int) kind, | 261 | (int) kind, |
253 | name, | 262 | name, |
254 | text | 263 | text |
@@ -282,8 +291,8 @@ messages_print(UI_MESSAGES_Handle *messages) | |||
282 | 291 | ||
283 | const bool selected = (count == messages->line_selected); | 292 | const bool selected = (count == messages->line_selected); |
284 | 293 | ||
285 | const int width = getmaxx(messages->window) - getbegx(messages->window); | 294 | const int width = getmaxx(messages->window); |
286 | const int height = getmaxy(messages->window) - getbegy(messages->window); | 295 | const int height = getmaxy(messages->window); |
287 | const int line_height = height - 2; | 296 | const int line_height = height - 2; |
288 | 297 | ||
289 | wmove(messages->window, line_height, 0); | 298 | wmove(messages->window, line_height, 0); |
@@ -299,6 +308,12 @@ messages_print(UI_MESSAGES_Handle *messages) | |||
299 | if (selected) wattroff(messages->window, attrs_select); | 308 | if (selected) wattroff(messages->window, attrs_select); |
300 | 309 | ||
301 | wmove(messages->window, height - 1, messages->text_pos); | 310 | wmove(messages->window, height - 1, messages->text_pos); |
311 | |||
312 | if (selected) | ||
313 | { | ||
314 | wcursyncup(messages->window); | ||
315 | curs_set(1); | ||
316 | } | ||
302 | } | 317 | } |
303 | 318 | ||
304 | void | 319 | void |
@@ -355,7 +370,7 @@ messages_add(UI_MESSAGES_Handle *messages, | |||
355 | break; | 370 | break; |
356 | } | 371 | } |
357 | 372 | ||
358 | const int height = getmaxy(messages->window) - getbegy(messages->window); | 373 | const int height = getmaxy(messages->window); |
359 | const int line_height = height - 2; | 374 | const int line_height = height - 2; |
360 | 375 | ||
361 | int count = 0; | 376 | int count = 0; |