Ensure HildonAppMenu size is correct after rotation
[hildon] / tests / tc_banner_truncate.c
1 /*
2  * This file is a part of hildon tests
3  *
4  * Copyright (C) 2006, 2007 Nokia Corporation, all rights reserved.
5  *
6  * Author:  Luc Pionchon <luc.pionchon@nokia.com>
7  * Contact: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public License
11  * as published by the Free Software Foundation; version 2.1 of
12  * the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
22  * 02110-1301 USA
23  *
24  */
25
26 /*
27
28  gcc `pkg-config --cflags gtk+-2.0 hildon-libs` `pkg-config --libs gtk+-2.0 hildon-libs`  \
29      -o tc_banner_truncate tc_banner_truncate.c && DISPLAY=:2 run-standalone.sh  ./tc_banner_truncate 1
30
31  Usage 1: tc_banner_truncate <case #>
32  Usage 2: tc_banner_truncate <1|2|3> the string you like to be displayed
33                               1 -> information banner
34                               2 -> progress banner
35                               3 -> animation banner
36 */
37
38 #include <stdio.h>
39 #include <gtk/gtk.h>
40 #include <hildon-widgets/hildon-banner.h>
41
42 #define WAIT g_timeout_add(3000, (GSourceFunc)(gtk_main_quit), NULL);
43
44 #define TC_INFO(string) hildon_banner_show_information(window,  NULL, string); WAIT;
45 #define TC_ANIM(string) banner = hildon_banner_show_animation(NULL, NULL, string);
46 #define TC_PROG(string) banner = hildon_banner_show_progress (NULL, NULL, string);
47
48 static void get_argv_string(int argc, char ** argv, char *text);
49
50 int main(int argc, char **argv)
51 {
52   GtkWidget *window;
53   GtkWidget *banner;
54   int n;
55   char text[10000];
56
57   if(argc <  2){ fprintf(stderr, "Add case # as parameter.\n");  return 1;}
58   if(argc >= 2){ if(sscanf(argv[1], "%d", &n) == 0) n = 1;}
59   if(argc >  2){ get_argv_string(argc, argv, text);}
60
61   gtk_init(&argc, &argv);
62   
63   window = gtk_dialog_new();
64   
65   if(argc > 2){
66     /* text is given in the command line */
67     switch (n){
68     case 1: TC_INFO(text); break;
69     case 2: TC_PROG(text); break;
70     case 3: TC_ANIM(text); break;
71     default:TC_INFO(text); break;
72     }
73     n = -99999;
74   }
75
76   switch (n) {
77   /* NOTE: comments (*) are given for 0.12.12, with default theme (orange)
78    *       (*) "truncated", WRAPPED", etc.
79    */
80
81   case 0: TC_INFO(""); break;
82   case 1: TC_INFO("loading..."); break;
83
84   case 11: TC_INFO("mmmmmmmmmmmmmmmmmm m.."       ); break; //1 line
85   case 12: TC_INFO("mmmmmmmmmmmmmmmmmm m..."      ); break; //truncated
86   case 13: TC_INFO("mmmmmmmmmmmmmmmmmm m...."     ); break; //truncated
87   case 14: TC_INFO("mmmmmmmmmmmmmmmmmm m....."    ); break; //truncated
88   case 15: TC_INFO("mmmmmmmmmmmmmmmmmm m......"   ); break; //truncated
89   case 16: TC_INFO("mmmmmmmmmmmmmmmmmm m......."  ); break; //truncated
90   case 17: TC_INFO("mmmmmmmmmmmmmmmmmm m........" ); break; //truncated
91   case 18: TC_INFO("mmmmmmmmmmmmmmmmmm m........."); break; //WRAPPED
92
93   case 21: TC_INFO("maximum number of characters xxxxxxxx");  break; //WRAPPED
94   case 22: TC_INFO("maximum number of characters xxxxxxxi");  break; //truncated
95
96   case 23: TC_INFO("Maximum number of characters reache"   ); break; //1 line
97   case 24: TC_INFO("Maximum number of characters reached"  ); break; //truncated
98   case 25: TC_INFO("Maximum number of characters reached." ); break; //truncated
99   case 26: TC_INFO("Maximum number of characters reached " ); break; //truncated
100   case 27: TC_INFO("Maximum number of characters reached a"); break; //WRAPPED
101
102   /* progress banners */
103   case 101: TC_PROG(""               ); break;
104   case 102: TC_PROG("hello"          ); break;
105   case 103: TC_PROG("hello progress" ); break;
106
107   /* Bugzilla related TC */
108   case -1: case 25305: TC_INFO("Maximum number of characters reached");      break;
109   case -2: case 23430: TC_INFO("Unable to manage folders during searching"); break; //PASSED
110   case -3: case 26624: TC_ANIM("Connection Manager - Loading");              break;
111   case -4: case 26161: TC_ANIM("Painel de Controle - carregando");           break;
112   case -5: case 26203: TC_ANIM("Caricamento di Pannello di controllo");      break;
113   case -6: case 27875: TC_ANIM("Instant messaging - loading");               break;
114   case -7: case 28760: TC_ANIM("Teach Handwriting- Loading");                break;
115
116   /* word longer than max width */
117   case 201: TC_INFO("mmmmmmmmmmmmmmmmmmmmmmmmmmmmm 1 2 3 4");  break;
118
119   /* misc */
120   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' */
121
122
123   /* TC for plain GTK (no theme) */
124   case -1031: TC_INFO("iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiil i."); break; //1 line
125   case -1032: TC_INFO("iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiil i."); break; //WRAPPED
126
127   case -1033: TC_INFO("mmmmmmmmmmmmmmmmmm m................................................i" ); break; //1 line
128   case -1034: TC_INFO("mmmmmmmmmmmmmmmmmm m.................................................i"); break; //WRAPPED
129
130
131   default:
132     WAIT;
133   }
134
135   gtk_main();
136   return 0;
137 }
138
139
140
141
142
143
144
145
146 /* ############################################################################## */
147 /* ############################################################################## */
148 /* ############################################################################## */
149
150 static void get_argv_string(int argc, char ** argv, char *text){
151   int i,j;
152   char * s;
153   s = text;
154   for(i=2; i<argc; i++){
155     for(j=0; argv[i][j] != '\0'; j++){
156       *s = argv[i][j];
157       s++;
158     }
159     if(i<(argc-1)){
160       *s=' ';
161       s++;
162     }
163   }
164   /* hem */
165 }