2 # Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
3 # Released under the GPL license
5 diff -urN tsclient-0.132/Makefile.am tsclient-0.132.diff/Makefile.am
6 --- tsclient-0.132/Makefile.am 2003-11-08 16:21:32.000000000 -0700
7 +++ tsclient-0.132.diff/Makefile.am 2004-08-24 16:53:40.000000000 -0600
9 ## Process this file with automake to produce Makefile.in
11 -SUBDIRS = src applet po
14 appicondir = $(datadir)/pixmaps
15 appicon_DATA = tsclient.png
16 diff -urN tsclient-0.132/configure.in tsclient-0.132.diff/configure.in
17 --- tsclient-0.132/configure.in 2003-11-09 00:09:31.000000000 -0700
18 +++ tsclient-0.132.diff/configure.in 2004-08-24 16:57:35.000000000 -0600
23 -pkg_modules="libgnomeui-2.0"
24 -pkg_modules="libpanelapplet-2.0"
27 +dnl Once libgnomeui disappears, this is all we need
28 +pkg_modules="gtk+-2.0 gdk-pixbuf-2.0"
30 +AC_ARG_WITH(applet, [ --without-applet Don't build the panel applet ],
31 +withapplet=no, withapplet=yes)
33 +echo "With applet: $withapplet"
35 +if test "$withapplet" != "no"; then
36 + pkg_modules="$pkg_modules libpanelapplet-2.0"
37 + SDIRS="$SDIRS applet"
40 +AC_ARG_WITH(ica, [ --without-ica Don't build in support for the ICA client ],
41 +withica=no, withica=yes)
43 +if test "$withica" != "no"; then
44 + CFLAGS="$CFLAGS -DENABLE_ICA"
49 PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
50 AC_SUBST(PACKAGE_CFLAGS)
51 AC_SUBST(PACKAGE_LIBS)
58 dnl ==========================================================================
61 diff -urN tsclient-0.132/src/connect.c tsclient-0.132.diff/src/connect.c
62 --- tsclient-0.132/src/connect.c 2003-11-08 19:45:43.000000000 -0700
63 +++ tsclient-0.132.diff/src/connect.c 2004-08-24 16:57:53.000000000 -0600
65 gtk_widget_ref (miProtocol);
66 if (!g_find_program_in_path ("Xnest")) { gtk_widget_set_sensitive (miProtocol, FALSE); }
69 miProtocol = gtk_menu_item_new_with_mnemonic ("ICA");
70 gtk_container_add (GTK_CONTAINER (mnuProtocol), miProtocol);
71 gtk_tooltips_set_tip (tooltips, miProtocol, _("ICA protocol is used to connect to Citrix servers."), NULL);
73 if (!g_find_program_in_path ("wfica") &&
74 !g_file_test ("/usr/lib/ICAClient/wfica", G_FILE_TEST_EXISTS) )
75 { gtk_widget_set_sensitive (miProtocol, FALSE); }
78 gtk_option_menu_set_menu (GTK_OPTION_MENU (optProtocol), mnuProtocol);
80 diff -urN tsclient-0.132/src/rdpfile.c tsclient-0.132.diff/src/rdpfile.c
81 --- tsclient-0.132/src/rdpfile.c 2003-11-08 19:41:58.000000000 -0700
82 +++ tsclient-0.132.diff/src/rdpfile.c 2004-08-24 16:53:40.000000000 -0600
84 widget = lookup_widget (main_window, "optSize2");
85 if (gtk_toggle_button_get_active ((GtkToggleButton *) widget)) {
86 widget = lookup_widget (main_window, "optSize");
87 - if ((int) gtk_option_menu_get_history (GTK_OPTION_MENU (widget)) > 0) {
88 + if ((int) gtk_option_menu_get_history (GTK_OPTION_MENU (widget)) >= 0) {
89 switch ((int) gtk_option_menu_get_history (GTK_OPTION_MENU (widget))) {
91 rdp->desktopwidth = 640;
92 diff -urN tsclient-0.132/src/support.c tsclient-0.132.diff/src/support.c
93 --- tsclient-0.132/src/support.c 2003-11-09 00:12:17.000000000 -0700
94 +++ tsclient-0.132.diff/src/support.c 2004-08-24 16:57:46.000000000 -0600
99 -#include <libgnomeui/gnome-about.h>
100 +#include <gtk/gtkdialog.h>
103 #define _(x) gettext(x)
105 //buffer[strlen(buffer)-2] = '\0';
106 c_argv[c_argc++] = strdup(buffer);
108 - } else if (rdp->protocol == 3) {
111 + else if (rdp->protocol == 3) {
112 // ICA/Citrix Connection
113 if (g_find_program_in_path ("wfica")) {
115 @@ -542,21 +544,25 @@
116 c_argv[c_argc++] = g_strdup (buffer);
118 if ( rdp->username && strlen (rdp->username) ) {
119 - sprintf(buffer, "-username %s", (char*)g_strescape(rdp->username, NULL));
120 - c_argv[c_argc++] = g_strdup (buffer);
121 + sprintf(buffer, "-username");
122 + c_argv[c_argc++] = g_strdup (buffer);
123 + c_argv[c_argc++] = g_strdup ((char *)g_strescape(rdp->username, NULL));
125 if ( rdp->password && strlen (rdp->password) ) {
126 - sprintf(buffer, "-password %s", (char*)g_strescape(rdp->password, NULL));
127 - c_argv[c_argc++] = g_strdup (buffer);
128 + sprintf(buffer, "-password");
129 + c_argv[c_argc++] = g_strdup (buffer);
130 + c_argv[c_argc++] = g_strdup ((char *)g_strescape(rdp->password, NULL));
132 if ( rdp->domain && strlen (rdp->domain) ) {
133 - sprintf(buffer, "-domain %s", (char*)g_strescape(rdp->domain, NULL));
134 - c_argv[c_argc++] = g_strdup (buffer);
135 + sprintf(buffer, "-domain");
136 + c_argv[c_argc++] = g_strdup (buffer);
137 + c_argv[c_argc++] = g_strdup ((char *)g_strescape(rdp->domain, NULL));
140 if ( rdp->client_hostname && strlen (rdp->client_hostname) ) {
141 - sprintf(buffer, "-clientname %s", (char*)g_strescape(rdp->client_hostname, NULL));
142 - c_argv[c_argc++] = g_strdup (buffer);
143 + sprintf(buffer, "-clientname");
144 + c_argv[c_argc++] = g_strdup (buffer);
145 + c_argv[c_argc++] = g_strdup ((char *)g_strescape(rdp->client_hostname, NULL));
148 switch (rdp->desktopwidth) {
149 @@ -624,30 +630,24 @@
152 if (rdp->enable_alternate_shell == 1) {
153 - if ( rdp->alternate_shell && strlen (rdp->alternate_shell) ) {
154 - sprintf(buffer, "-program %s", (char*)g_strescape(rdp->alternate_shell, NULL));
155 - c_argv[c_argc++] = g_strdup (buffer);
158 - if ( rdp->shell_working_directory && strlen (rdp->shell_working_directory) ) {
159 - sprintf(buffer, "-directory %s", (char*)g_strescape(rdp->shell_working_directory, NULL));
160 - c_argv[c_argc++] = g_strdup (buffer);
162 + sprintf(buffer, "-program");
163 + c_argv[c_argc++] = g_strdup (buffer);
164 + c_argv[c_argc++] = g_strdup ((char *)g_strescape(rdp->alternate_shell, NULL));
167 - if (strlen(rdp->proto_file) && g_file_test (rdp->proto_file, G_FILE_TEST_EXISTS)) {
168 - sprintf(buffer, "-passwd");
169 - c_argv[c_argc++] = g_strdup (buffer);
170 - sprintf(buffer, "%s", (char*)g_strescape(rdp->proto_file, NULL));
171 - c_argv[c_argc++] = g_strdup (buffer);
173 + if ( rdp->shell_working_directory && strlen (rdp->shell_working_directory) ) {
174 + sprintf(buffer, "-directory");
175 + c_argv[c_argc++] = g_strdup (buffer);
176 + c_argv[c_argc++] = g_strdup ((char *)g_strescape(rdp->shell_working_directory, NULL));
179 if ( rdp->full_address && strlen (rdp->full_address) ) {
180 - sprintf(buffer, "-description %s", (char*)g_strescape(rdp->full_address, NULL));
181 - c_argv[c_argc++] = g_strdup (buffer);
182 + sprintf(buffer, "-desc");
183 + c_argv[c_argc++] = g_strdup (buffer);
184 + c_argv[c_argc++] = g_strdup ((char *)g_strescape(rdp->full_address, NULL));
191 c_argv[c_argc++] = NULL;
195 if (std_err && strlen(std_err)) {
196 g_warning ("\n%s\n", std_err);
197 - tsc_error_message ((gchar*)std_err);
198 + /* Note - this is a stupid and irresponsible thing to do -
199 + Really, this needs to be handled more intellegently
201 + /* tsc_error_message ((gchar*)std_err); */
204 if (!g_spawn_async (NULL, (gchar**)c_argv, NULL, G_SPAWN_SEARCH_PATH,
205 @@ -733,47 +736,82 @@
206 gtk_widget_show_all (dialog);
210 +update_label(GtkWidget *label, const gchar *str) {
213 + gchar *tmp = g_markup_escape_text (str, -1);
215 + string = g_string_new (NULL);
216 + g_string_append(string, tmp);
217 + gtk_label_set_markup (GTK_LABEL (label), string->str);
218 + g_string_free (string, TRUE);
221 +void tsc_about_dialog() {
222 + GtkWidget *about = NULL;
223 + GtkWidget *name_label, *comments_label, *copyright_label;
224 + GtkWidget *logo_image;
227 -void tsc_about_dialog ()
229 - static GtkWidget *about = NULL;
230 - const gchar *name = _("Terminal Server Client");
231 - const gchar *version = VERSION;
232 - const gchar *copyright = "(C) 2003 Erick Woods\n<http://www.gnomepro.com/tsclient/>";
233 - const gchar *authors[] = { "Erick Woods <erick@gnomepro.com>", NULL };
234 - const gchar *documenters[] = { NULL };
235 - const gchar *translator_credits = NULL;
236 GdkPixbuf *pixbuf = create_pixbuf ("tsclient.png");
238 - const gchar *comments = \
239 - "Terminal Server Client is a frontend for \nrdesktop <http://www.rdesktop.org/> \nand vncviewer.\n" \
241 - "Terminal Server Client is licensed under the \n" \
242 - "GNU General Public License (GPL)\n<http://www.gnu.org/licenses/gpl.html>\n" \
244 - "Images by: Jakub \"jimmac\" Steiner and others.";
245 + about = gtk_dialog_new_with_buttons (_("About"),
247 + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
248 + GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
252 - gtk_window_present (GTK_WINDOW (about));
255 + vbox = gtk_vbox_new (FALSE, 8);
256 + gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
258 - about = gnome_about_new (
265 - translator_credits,
267 + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (about)->vbox), vbox, TRUE, TRUE, 0);
269 - //gtk_window_set_wmclass (GTK_WINDOW (about), "terminal server client", "Terminal Server Client");
270 - g_signal_connect (G_OBJECT (about), "destroy", G_CALLBACK (gtk_widget_destroyed), &about);
271 - gtk_widget_show_all (about);
274 + logo_image = gtk_image_new ();
275 + gtk_box_pack_start (GTK_BOX (vbox), logo_image, FALSE, FALSE, 0);
278 + gtk_image_set_from_pixbuf (GTK_IMAGE (logo_image), pixbuf);
280 + name_label = gtk_label_new (NULL);
281 + gtk_label_set_selectable (GTK_LABEL (name_label), TRUE);
282 + gtk_label_set_justify (GTK_LABEL (name_label), GTK_JUSTIFY_CENTER);
283 + gtk_box_pack_start (GTK_BOX (vbox), name_label, FALSE, FALSE, 0);
285 + gtk_label_set_markup (GTK_LABEL (name_label), _("Terminal Server Client"));
287 + comments_label = gtk_label_new (NULL);
288 + gtk_label_set_selectable (GTK_LABEL (comments_label), TRUE);
289 + gtk_label_set_justify (GTK_LABEL (comments_label), GTK_JUSTIFY_CENTER);
290 + gtk_label_set_line_wrap (GTK_LABEL (comments_label), TRUE);
291 + gtk_box_pack_start (GTK_BOX (vbox), comments_label, FALSE, FALSE, 0);
293 + update_label(comments_label, "Terminal Server Client is a frontend for \nrdesktop " \
294 + "<http://www.rdesktop.org/> \nand vncviewer.\n" \
296 + "Terminal Server Client is licensed under the \n" \
297 + "GNU General Public License (GPL)\n<http://www.gnu.org/licenses/gpl.html>\n" \
299 + "Images by: Jakub \"jimmac\" Steiner and others.");
301 + copyright_label = gtk_label_new (NULL);
302 + gtk_label_set_selectable (GTK_LABEL (copyright_label), TRUE);
303 + gtk_label_set_justify (GTK_LABEL (copyright_label), GTK_JUSTIFY_CENTER);
304 + gtk_box_pack_start (GTK_BOX (vbox), copyright_label, FALSE, FALSE, 0);
306 + update_label(copyright_label, "(C) 2003 Erick Woods\n<http://www.gnomepro.com/tsclient/>");
308 + gtk_widget_show_all (vbox);
310 + gtk_window_set_resizable (GTK_WINDOW (about), FALSE);
312 + g_signal_connect_swapped (GTK_OBJECT (about),
314 + G_CALLBACK (gtk_widget_destroy),
315 + GTK_OBJECT (about));
317 + gtk_widget_show_all (about);
320 void tsc_quick_pick_activate (GtkMenuItem *menuitem, gpointer user_data)
323 gtk_widget_set_sensitive ((GtkWidget*) g_object_get_data (G_OBJECT (main_win), "txtProgramPath"), FALSE);
324 gtk_widget_set_sensitive ((GtkWidget*) g_object_get_data (G_OBJECT (main_win), "txtStartFolder"), FALSE);