Hildon banner truncations, * hildon-widgets/hildon-banner.c (force_to_wrap_truncated...
[hildon] / ut / tc_banner_truncate.c
1 /*
2
3  gcc `pkg-config --cflags gtk+-2.0 hildon-libs` `pkg-config --libs gtk+-2.0 hildon-libs`  -o tc_banner_truncate tc_banner_truncate.c && DISPLAY=:2 run-standalone.sh  ./tc_banner_truncate 1
4
5  Usage 1: tc_banner_truncate <case #>
6  Usage 2: tc_banner_truncate <1|2|3> the string you like to be displayed
7                               1 -> information banner
8                               2 -> progress banner
9                               3 -> animation banner
10 */
11
12 #include <stdio.h>
13 #include <gtk/gtk.h>
14 #include <hildon-widgets/hildon-banner.h>
15
16 #define WAIT g_timeout_add(3000, (GSourceFunc)(gtk_main_quit), NULL);
17
18 #define TC_INFO(string) hildon_banner_show_information(window,  NULL, string); WAIT;
19 #define TC_ANIM(string) banner = hildon_banner_show_animation(NULL, NULL, string);
20 #define TC_PROG(string) banner = hildon_banner_show_progress (NULL, NULL, string);
21
22 static void get_argv_string(int argc, char ** argv, char *text);
23
24 int main(int argc, char **argv)
25 {
26   GtkWidget *window;
27   GtkWidget *banner;
28   int n;
29   char text[10000];
30
31   if(argc <  2){ fprintf(stderr, "Add case # as parameter.\n");  return 1;}
32   if(argc >= 2){ if(sscanf(argv[1], "%d", &n) == 0) n = 1;}
33   if(argc >  2){ get_argv_string(argc, argv, text);}
34
35   gtk_init(&argc, &argv);
36   
37   window = gtk_dialog_new();
38   
39   if(argc > 2){
40     /* text is given in the command line */
41     switch (n){
42     case 1: TC_INFO(text); break;
43     case 2: TC_PROG(text); break;
44     case 3: TC_ANIM(text); break;
45     default:TC_INFO(text); break;
46     }
47     n = -99999;
48   }
49
50   switch (n) {
51   /* NOTE: comments (*) are given for 0.12.12, with default theme (orange)
52    *       (*) "truncated", WRAPPED", etc.
53    */
54
55   case 0: TC_INFO(""); break;
56   case 1: TC_INFO("loading..."); break;
57
58   case 11: TC_INFO("mmmmmmmmmmmmmmmmmm m.."       ); break; //1 line
59   case 12: TC_INFO("mmmmmmmmmmmmmmmmmm m..."      ); break; //truncated
60   case 13: TC_INFO("mmmmmmmmmmmmmmmmmm m...."     ); break; //truncated
61   case 14: TC_INFO("mmmmmmmmmmmmmmmmmm m....."    ); break; //truncated
62   case 15: TC_INFO("mmmmmmmmmmmmmmmmmm m......"   ); break; //truncated
63   case 16: TC_INFO("mmmmmmmmmmmmmmmmmm m......."  ); break; //truncated
64   case 17: TC_INFO("mmmmmmmmmmmmmmmmmm m........" ); break; //truncated
65   case 18: TC_INFO("mmmmmmmmmmmmmmmmmm m........."); break; //WRAPPED
66
67   case 21: TC_INFO("maximum number of characters xxxxxxxx");  break; //WRAPPED
68   case 22: TC_INFO("maximum number of characters xxxxxxxi");  break; //truncated
69
70   case 23: TC_INFO("Maximum number of characters reache"   ); break; //1 line
71   case 24: TC_INFO("Maximum number of characters reached"  ); break; //truncated
72   case 25: TC_INFO("Maximum number of characters reached." ); break; //truncated
73   case 26: TC_INFO("Maximum number of characters reached " ); break; //truncated
74   case 27: TC_INFO("Maximum number of characters reached a"); break; //WRAPPED
75
76   /* progress banners */
77   case 101: TC_PROG(""               ); break;
78   case 102: TC_PROG("hello"          ); break;
79   case 103: TC_PROG("hello progress" ); break;
80
81   /* Bugzilla related TC */
82   case -1: case 25305: TC_INFO("Maximum number of characters reached");      break;
83   case -2: case 23430: TC_INFO("Unable to manage folders during searching"); break; //PASSED
84   case -3: case 26624: TC_ANIM("Connection Manager - Loading");              break;
85   case -4: case 26161: TC_ANIM("Painel de Controle - carregando");           break;
86   case -5: case 26203: TC_ANIM("Caricamento di Pannello di controllo");      break;
87   case -6: case 27875: TC_ANIM("Instant messaging - loading");               break;
88
89
90   /* word longer than max width */
91   case 201: TC_INFO("mmmmmmmmmmmmmmmmmmmmmmmmmmmmm 1 2 3 4");  break;
92
93   /* misc */
94   case 202: TC_INFO("Maximum number of characters reached osaidfh galds hgdslf helius grkdsz vfliesdfrjaesfrszri os o ozx oyli l ilij ero worjw aeowaijf osijf a jfaowijef aoweijf s faoij flsaijf sajfd oaijfe aosi e 1 2 3 4"); break; /* TRUNCATED after last 'e' */
95
96
97   /* TC for plain GTK (no theme) */
98   case -1031: TC_INFO("iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiil i."); break; //1 line
99   case -1032: TC_INFO("iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiil i."); break; //WRAPPED
100
101   case -1033: TC_INFO("mmmmmmmmmmmmmmmmmm m................................................i" ); break; //1 line
102   case -1034: TC_INFO("mmmmmmmmmmmmmmmmmm m.................................................i"); break; //WRAPPED
103
104
105   default:
106     WAIT;
107   }
108
109   gtk_main();
110   return 0;
111 }
112
113
114
115
116
117
118
119
120 /* ############################################################################## */
121 /* ############################################################################## */
122 /* ############################################################################## */
123
124 static void get_argv_string(int argc, char ** argv, char *text){
125   int i,j;
126   char * s;
127   s = text;
128   for(i=2; i<argc; i++){
129     for(j=0; argv[i][j] != '\0'; j++){
130       *s = argv[i][j];
131       s++;
132     }
133     if(i<(argc-1)){
134       *s=' ';
135       s++;
136     }
137   }
138   /* hem */
139 }