Commit | Line | Data |
---|---|---|
c988f1f4 | 1 | /* $Cambridge: exim/src/exim_monitor/em_text.c,v 1.2 2005/01/04 10:00:42 ph10 Exp $ */ |
059ec3d9 PH |
2 | |
3 | /************************************************* | |
4 | * Exim Monitor * | |
5 | *************************************************/ | |
6 | ||
c988f1f4 | 7 | /* Copyright (c) University of Cambridge 1995 - 2005 */ |
059ec3d9 PH |
8 | /* See the file NOTICE for conditions of use and distribution. */ |
9 | ||
10 | ||
11 | #include "em_hdr.h" | |
12 | ||
13 | ||
14 | /* This module contains functions for displaying text in a | |
15 | text widget. It is not used for the log widget, because that | |
16 | is dynamically updated and has special scrolling requirements. */ | |
17 | ||
18 | ||
19 | /* Count of characters displayed */ | |
20 | ||
21 | static int text_count = 0; | |
22 | ||
23 | ||
24 | /************************************************* | |
25 | * Empty the widget * | |
26 | *************************************************/ | |
27 | ||
28 | void text_empty(Widget w) | |
29 | { | |
30 | XawTextBlock b; | |
31 | b.firstPos = 0; | |
32 | b.ptr = CS &b; | |
33 | b.format = FMT8BIT; | |
34 | b.length = 0; | |
35 | XawTextReplace(w, 0, text_count, &b); | |
36 | text_count = 0; | |
37 | XawTextSetInsertionPoint(w, text_count); | |
38 | } | |
39 | ||
40 | ||
41 | ||
42 | /************************************************* | |
43 | * Display text * | |
44 | *************************************************/ | |
45 | ||
46 | void text_show(Widget w, uschar *s) | |
47 | { | |
48 | XawTextBlock b; | |
49 | b.firstPos = 0; | |
50 | b.ptr = CS s; | |
51 | b.format = FMT8BIT; | |
52 | b.length = Ustrlen(s); | |
53 | XawTextReplace(w, text_count, text_count, &b); | |
54 | text_count += b.length; | |
55 | XawTextSetInsertionPoint(w, text_count); | |
56 | } | |
57 | ||
58 | ||
59 | /************************************************* | |
60 | * Display text from format * | |
61 | *************************************************/ | |
62 | ||
63 | void text_showf(Widget w, char *s, ...) | |
64 | { | |
65 | va_list ap; | |
66 | uschar buffer[1024]; | |
67 | va_start(ap, s); | |
68 | vsprintf(CS buffer, s, ap); | |
69 | va_end(ap); | |
70 | text_show(w, buffer); | |
71 | } | |
72 | ||
73 | /* End of em_text.c */ |