console/libgnt/gntutils.c

Mon, 14 Aug 2006 02:16:58 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Mon, 14 Aug 2006 02:16:58 +0000
changeset 14169
90d1d4697e23
parent 14122
daf2aaa61829
child 14373
609c902d20f5
permissions
-rw-r--r--

[gaim-migrate @ 16741]
Show little scroll-arrows for trees and textviews when appropriate.

14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1 #include "gntutils.h"
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
3 void gnt_util_get_text_bound(const char *text, int *width, int *height)
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
4 {
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
5 const char *s = text, *last;
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
6 int count = 1, max = 0;
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
7 int len;
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
8
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
9 /* XXX: ew ... everyone look away */
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
10 last = s;
14122
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
11 if (s)
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
12 {
14122
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
13 while (*s)
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
14 {
14122
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
15 if (*s == '\n' || *s == '\r')
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
16 {
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
17 count++;
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
18 len = g_utf8_pointer_to_offset(last, s);
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
19 if (max < len)
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
20 max = len;
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
21 last = s + 1;
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
22 }
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
23 s++;
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
24 }
14122
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
25
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
26 len = g_utf8_pointer_to_offset(last, s);
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
27 if (max < len)
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
28 max = len;
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
29 }
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
30
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
31 if (height)
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
32 *height = count;
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
33 if (width)
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
34 *width = max + (count > 1);
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
35 }
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
36

mercurial