1
/***************************************
3
* frmConnect Create & Events *
5
***************************************/
12
#include <sys/types.h>
19
#include <gdk/gdkkeysyms.h>
24
#define _(x) gettext(x)
32
/***************************************
36
***************************************/
39
create_frmConnect (void)
42
gchar *langlist[]={ "", "be", "bg", "br", "cf", "ch",
43
"cz", "dk", "dv", "et", "fr", "gk",
44
"gr", "hu", "is", "it", "jp", "ko",
45
"la", "nl", "no", "pl", "po", "ro",
46
"ru", "sf", "sl", "sp", "su", "sv",
47
"tr", "uk", "us", "usl", "usr", "yu",
49
gchar *size_items[] = {
50
_("640 x 480 pixels"), _("800 x 600 pixels"),
51
_("1024 x 768 pixels"),
52
_("1152 x 864 pixels"),
53
_("1280 x 960 pixels"),
56
gchar *color_items[] = {
58
_("High Color (15 bit)"),
59
_("High Color (16 bit)"),
60
_("True Color (24 bit)"),
64
GtkWidget *frmConnect;
66
GtkWidget *vbxComplete;
67
GtkWidget *nbkComplete;
68
GtkWidget *vbxCompact;
73
const gchar *lang = (const gchar*)gtk_get_default_language();
75
gchar *banner_lang_tmp;
78
// Profile Launcher Widgets
79
GtkWidget *hbxProfileLauncher;
80
GtkWidget *optProfileLauncher;
82
GtkWidget *hbxFileOps;
86
// General Tab Widgets
87
GtkWidget *lblGeneralTab1;
88
GtkWidget *vbxGeneralTab1;
90
// Logon Frame Widgets
91
GtkWidget *frameLogon;
94
GtkWidget *lblLogonFrame;
95
GtkWidget *lblLogonNote;
96
GtkWidget *imgGeneralLogon;
97
GtkWidget *lblComputer;
98
GtkWidget *cboComputer;
99
GtkWidget *txtComputer;
100
GtkWidget *lblProtocol;
101
GtkWidget *optProtocol;
102
GtkWidget *mnuProtocol;
103
GtkWidget *lblUsername;
104
GtkWidget *txtUsername;
105
GtkWidget *lblPassword;
106
GtkWidget *txtPassword;
107
GtkWidget *lblDomain;
108
GtkWidget *txtDomain;
109
GtkWidget *lblClientHostname;
110
GtkWidget *txtClientHostname;
111
GtkWidget *lblProtoFile;
112
GtkWidget *hbxProtoFile;
113
GtkWidget *txtProtoFile;
114
GtkWidget *btnProtoFile;
116
// Display Tab Widgets
117
GtkWidget *lblDisplayTab1;
118
GtkWidget *vbxDisplayTab1;
120
// Size Frame Widgets
121
GtkWidget *frameSize;
122
GtkWidget *lblSizeFrame;
131
GtkWidget *alnAltFullSwitch;
132
GtkWidget *chkAltFullSwitch;
134
// Color Frame Widgets
135
GtkWidget *frameColor;
136
GtkWidget *lblColorFrame;
140
GtkWidget *optColor1;
141
GtkWidget *optColor2;
145
// Local Resources Tab Widgets
146
GtkWidget *lblLocalTab1;
147
GtkWidget *vbxLocalTab1;
149
// Sound Frame Widgets
150
GtkWidget *frameSound;
151
GtkWidget *lblSoundFrame;
155
GtkWidget *optSound1;
156
GtkWidget *optSound2;
157
GtkWidget *optSound3;
159
// Keyboard Frame Widgets
160
GtkWidget *frameKeyboard;
161
GtkWidget *lblKeyboardFrame;
162
GtkWidget *tblKeyboard;
163
GtkWidget *lblKeyboard;
164
GtkWidget *imgKeyboard;
165
GtkWidget *optKeyboard;
166
GtkWidget *mnuKeyboard;
167
GtkWidget *miKeyboard;
168
GtkWidget *lblKeyboardLang;
169
GtkWidget *cboKeyboardLang;
170
GtkWidget *txtKeyboardLang;
172
// Program Tab Widgets
173
GtkWidget *lblProgramsTab1;
175
// Program Frame Widgets
176
GtkWidget *frameProgram;
177
GtkWidget *lblProgramFrame;
178
GtkWidget *tblProgram;
179
GtkWidget *chkStartProgram;
180
GtkWidget *imgProgram;
181
GtkWidget *lblProgramPath;
182
GtkWidget *txtProgramPath;
183
GtkWidget *lblStartFolder;
184
GtkWidget *txtStartFolder;
186
// Performance Tab Widgets
187
GtkWidget *lblPerformanceTab1;
189
// Performance Frame Widgets
190
GtkWidget *framePerform;
191
GtkWidget *lblPerformFrame;
192
GtkWidget *tblPerform;
193
GtkWidget *imgPerform;
194
GtkWidget *lblPerformanceOptions;
195
GtkWidget *vbxExpChecks;
196
GtkWidget *chkDesktopBackground;
197
GtkWidget *chkWindowContent;
198
GtkWidget *chkAnimation;
199
GtkWidget *chkThemes;
200
GtkWidget *chkBitmapCache;
201
GtkWidget *chkNoMotionEvents;
202
GtkWidget *chkEnableWMKeys;
203
GtkWidget *chkHideWMDecorations;
205
// Complete Button Box Widgets
206
GtkWidget *hbbAppOps;
207
GtkWidget *btnConnect;
208
GtkWidget *alnConnect;
209
GtkWidget *hbxConnect;
210
GtkWidget *imgConnect;
211
GtkWidget *lblConnect;
215
// Protocol Menu Item Widget
216
GtkWidget *miProtocol;
218
GList *cboKeyboard_items = NULL;
219
GSList *optSize1_group = NULL;
220
GSList *optColor1_group = NULL;
221
GSList *optSound1_group = NULL;
223
GtkTooltips *tooltips;
224
tooltips = gtk_tooltips_new ();
226
#ifdef TSCLIENT_DEBUG
227
printf ("create_frmConnect\n");
231
This is the main form
234
frmConnect = gtk_window_new (GTK_WINDOW_TOPLEVEL);
235
gtk_widget_set_name (frmConnect, "frmConnect");
236
gtk_window_set_title (GTK_WINDOW (frmConnect), _("Terminal Server Client"));
237
gtk_window_set_default_size (GTK_WINDOW (frmConnect), 405, -1);
238
gtk_window_set_position (GTK_WINDOW (frmConnect), GTK_WIN_POS_CENTER);
239
gtk_window_set_resizable (GTK_WINDOW (frmConnect), FALSE);
240
gtk_window_set_destroy_with_parent (GTK_WINDOW (frmConnect), TRUE);
241
gtk_window_set_icon (GTK_WINDOW (frmConnect), create_pixbuf ("tsclient.png"));
244
This is the main container
246
vbxMain = gtk_vbox_new (FALSE, 0);
247
gtk_widget_set_name (vbxMain, "vbxMain");
248
gtk_container_add (GTK_CONTAINER (frmConnect), vbxMain);
251
This is the banner at the top
253
vbxBanner = gtk_vbox_new (FALSE, 0);
254
gtk_widget_set_name (vbxBanner, "vbxBanner");
255
gtk_box_pack_start (GTK_BOX (vbxMain), vbxBanner, TRUE, TRUE, 1);
257
// try to find a localized banner image, use -en on fail
258
banner_lang = g_strdup_printf ("banner-%s.png", g_strndup ((!lang)?"en":lang,2));
259
if (strcmp (banner_lang, "banner-c.png") == 0) {
260
banner_lang = g_strdup ("banner-en.png");
262
if (!find_pixmap_file (banner_lang)) {
263
banner_lang = g_strdup_printf ("banner-%s.png", g_strndup ((!lang)?"en_US":lang,5));
264
if (!find_pixmap_file (banner_lang)) {
265
banner_lang = g_strdup ("banner-en.png");
269
imgBanner = create_pixmap (frmConnect, banner_lang);
270
g_free (banner_lang);
271
gtk_widget_set_name (imgBanner, "imgBanner");
272
gtk_box_pack_start (GTK_BOX (vbxBanner), imgBanner, FALSE, TRUE, 0);
273
gtk_misc_set_alignment (GTK_MISC (imgBanner), 0.5, 0);
276
This is the complete container
278
vbxComplete = gtk_vbox_new (FALSE, 0);
279
gtk_widget_set_name (vbxComplete, "vbxComplete");
280
gtk_box_pack_start (GTK_BOX (vbxMain), vbxComplete, TRUE, TRUE, 0);
284
This is the label for the Connection Profile
285
lblConnectionProfile = gtk_label_new (_("Connection Profile"));
286
gtk_widget_set_name (lblConnectionProfile, "lblConnectionProfile");
287
gtk_label_set_markup (GTK_LABEL (lblConnectionProfile), g_strconcat ("<span weight=\"bold\">", _("Connection Profile"), "</span>", NULL));
288
gtk_label_set_justify (GTK_LABEL (lblConnectionProfile), GTK_JUSTIFY_LEFT);
289
gtk_misc_set_alignment (GTK_MISC (lblConnectionProfile), 0, 0.5);
290
gtk_box_pack_start (GTK_BOX (vbxComplete), lblConnectionProfile, TRUE, FALSE, 0);
291
gtk_misc_set_padding (GTK_MISC (lblConnectionProfile), 6, 3);
296
This is the notebook for the Complete mode
298
nbkComplete = gtk_notebook_new ();
299
gtk_widget_set_name (nbkComplete, "nbkComplete");
300
gtk_box_pack_start (GTK_BOX (vbxComplete), nbkComplete, TRUE, TRUE, 0);
301
gtk_container_set_border_width (GTK_CONTAINER (nbkComplete), 6);
302
gtk_notebook_set_show_border (GTK_NOTEBOOK (nbkComplete), FALSE);
304
vbxGeneralTab1 = gtk_vbox_new (FALSE, 0);
305
gtk_widget_set_name (vbxGeneralTab1, "vbxGeneralTab1");
306
gtk_container_add (GTK_CONTAINER (nbkComplete), vbxGeneralTab1);
307
gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (nbkComplete), vbxGeneralTab1,
308
TRUE, TRUE, GTK_PACK_START);
311
frameLogon = gtk_frame_new (NULL);
312
gtk_widget_set_name (frameLogon, "frameLogon");
313
gtk_box_pack_start (GTK_BOX (vbxGeneralTab1), frameLogon, TRUE, TRUE, 0);
314
gtk_container_set_border_width (GTK_CONTAINER (frameLogon), 3);
315
gtk_frame_set_shadow_type (GTK_FRAME (frameLogon), GTK_SHADOW_NONE);
317
lblLogonFrame = gtk_label_new (_("Logon Settings"));
318
gtk_widget_set_name (lblLogonFrame, "lblLogonFrame");
319
gtk_label_set_markup (GTK_LABEL (lblLogonFrame), g_strconcat ("<span weight=\"bold\">", _("Logon Settings"), "</span>", NULL));
320
gtk_frame_set_label_widget (GTK_FRAME (frameLogon), lblLogonFrame);
321
gtk_label_set_justify (GTK_LABEL (lblLogonFrame), GTK_JUSTIFY_LEFT);
323
tblLogon0 = gtk_table_new (2, 2, FALSE);
324
gtk_widget_set_name (tblLogon0, "tblLogon0");
325
gtk_container_add (GTK_CONTAINER (frameLogon), tblLogon0);
327
lblLogonNote = gtk_label_new (_("Type the name of the computer or choose a computer from the drop-down list."));
328
gtk_widget_set_name (lblLogonNote, "lblLogonNote");
329
gtk_table_attach (GTK_TABLE (tblLogon0), lblLogonNote, 1, 2, 0, 1,
330
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
331
(GtkAttachOptions) (GTK_FILL), 0, 0);
332
gtk_label_set_justify (GTK_LABEL (lblLogonNote), GTK_JUSTIFY_LEFT);
333
gtk_label_set_line_wrap (GTK_LABEL (lblLogonNote), TRUE);
334
gtk_misc_set_alignment (GTK_MISC (lblLogonNote), 0, 0.5);
336
imgGeneralLogon = create_pixmap (frmConnect, "computer.png");
337
gtk_widget_set_name (imgGeneralLogon, "imgGeneralLogon");
338
gtk_table_attach (GTK_TABLE (tblLogon0), imgGeneralLogon, 0, 1, 0, 1,
339
(GtkAttachOptions) (0),
340
(GtkAttachOptions) (0), 0, 0);
341
gtk_misc_set_padding (GTK_MISC (imgGeneralLogon), 3, 3);
343
tblLogon1 = gtk_table_new (6, 2, FALSE);
344
gtk_widget_set_name (tblLogon1, "tblLogon1");
345
gtk_table_attach (GTK_TABLE (tblLogon0), tblLogon1, 1, 2, 1, 2,
346
(GtkAttachOptions) (GTK_FILL),
347
(GtkAttachOptions) (GTK_FILL), 0, 0);
348
gtk_table_set_row_spacings (GTK_TABLE (tblLogon1), 4);
349
gtk_table_set_col_spacings (GTK_TABLE (tblLogon1), 4);
351
lblComputer = gtk_label_new_with_mnemonic (_("Compu_ter:"));
352
gtk_widget_set_name (lblComputer, "lblComputer");
353
gtk_table_attach (GTK_TABLE (tblLogon1), lblComputer, 0, 1, 0, 1,
354
(GtkAttachOptions) (GTK_FILL),
355
(GtkAttachOptions) (GTK_FILL), 6, 6);
356
gtk_label_set_justify (GTK_LABEL (lblComputer), GTK_JUSTIFY_LEFT);
357
gtk_misc_set_alignment (GTK_MISC (lblComputer), 0, 0.5);
359
lblProtocol = gtk_label_new_with_mnemonic (_("Pro_tocol:"));
360
gtk_widget_set_name (lblProtocol, "lblProtocol");
361
gtk_table_attach (GTK_TABLE (tblLogon1), lblProtocol, 0, 1, 1, 2,
362
(GtkAttachOptions) (GTK_FILL),
363
(GtkAttachOptions) (GTK_FILL), 6, 6);
364
gtk_label_set_justify (GTK_LABEL (lblProtocol), GTK_JUSTIFY_LEFT);
365
gtk_misc_set_alignment (GTK_MISC (lblProtocol), 0, 0.5);
367
lblUsername = gtk_label_new_with_mnemonic (_("_User Name:"));
368
gtk_widget_set_name (lblUsername, "lblUsername");
369
gtk_table_attach (GTK_TABLE (tblLogon1), lblUsername, 0, 1, 2, 3,
370
(GtkAttachOptions) (GTK_FILL),
371
(GtkAttachOptions) (0), 6, 6);
372
gtk_label_set_justify (GTK_LABEL (lblUsername), GTK_JUSTIFY_LEFT);
373
gtk_misc_set_alignment (GTK_MISC (lblUsername), 0, 0.5);
375
lblPassword = gtk_label_new_with_mnemonic (_("Pass_word:"));
376
gtk_widget_set_name (lblPassword, "lblPassword");
377
gtk_table_attach (GTK_TABLE (tblLogon1), lblPassword, 0, 1, 3, 4,
378
(GtkAttachOptions) (GTK_FILL),
379
(GtkAttachOptions) (0), 6, 6);
380
gtk_label_set_justify (GTK_LABEL (lblPassword), GTK_JUSTIFY_LEFT);
381
gtk_misc_set_alignment (GTK_MISC (lblPassword), 0, 0.5);
383
lblDomain = gtk_label_new_with_mnemonic (_("Do_main:"));
384
gtk_widget_set_name (lblDomain, "lblDomain");
385
gtk_table_attach (GTK_TABLE (tblLogon1), lblDomain, 0, 1, 4, 5,
386
(GtkAttachOptions) (GTK_FILL),
387
(GtkAttachOptions) (0), 6, 6);
388
gtk_label_set_justify (GTK_LABEL (lblDomain), GTK_JUSTIFY_LEFT);
389
gtk_misc_set_alignment (GTK_MISC (lblDomain), 0, 0.5);
391
lblClientHostname = gtk_label_new_with_mnemonic (_("C_lient Hostname:"));
392
gtk_widget_set_name (lblClientHostname, "lblClientHostname");
393
gtk_table_attach (GTK_TABLE (tblLogon1), lblClientHostname, 0, 1, 5, 6,
394
(GtkAttachOptions) (GTK_FILL),
395
(GtkAttachOptions) (0), 6, 6);
396
gtk_label_set_justify (GTK_LABEL (lblClientHostname), GTK_JUSTIFY_LEFT);
397
gtk_misc_set_alignment (GTK_MISC (lblClientHostname), 0, 0.5);
399
lblProtoFile = gtk_label_new_with_mnemonic (_("Prot_ocol File:"));
400
gtk_widget_set_name (lblProtoFile, "lblProtoFile");
401
gtk_table_attach (GTK_TABLE (tblLogon1), lblProtoFile, 0, 1, 6, 7,
402
(GtkAttachOptions) (GTK_FILL),
403
(GtkAttachOptions) (0), 6, 6);
404
gtk_label_set_justify (GTK_LABEL (lblProtoFile), GTK_JUSTIFY_LEFT);
405
gtk_misc_set_alignment (GTK_MISC (lblProtoFile), 0, 0.5);
407
cboComputer = gtk_combo_new ();
408
gtk_object_set_data (GTK_OBJECT (GTK_COMBO (cboComputer)->popwin),
409
"GladeParentKey", cboComputer);
410
gtk_widget_set_name (cboComputer, "cboComputer");
411
gtk_combo_set_value_in_list (GTK_COMBO (cboComputer), FALSE, FALSE);
412
gtk_table_attach (GTK_TABLE (tblLogon1), cboComputer, 1, 2, 0, 1,
413
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
414
(GtkAttachOptions) (0), 0, 0);
416
txtComputer = GTK_COMBO (cboComputer)->entry;
417
gtk_widget_set_name (txtComputer, "txtComputer");
418
gtk_entry_set_activates_default (GTK_ENTRY (txtComputer), TRUE);
419
gtk_tooltips_set_tip (tooltips, txtComputer, _("Enter the name or address of the remote system."), NULL);
421
optProtocol = gtk_option_menu_new ();
422
gtk_widget_set_name (optProtocol, "optProtocol");
423
gtk_table_attach (GTK_TABLE (tblLogon1), optProtocol, 1, 2, 1, 2,
424
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
425
(GtkAttachOptions) (0), 0, 0);
426
gtk_tooltips_set_tip (tooltips, optProtocol, _("Select the protocol to use for this connection."), NULL);
428
mnuProtocol = gtk_menu_new ();
429
gtk_widget_set_name (mnuProtocol, "mnuProtocol");
431
miProtocol = gtk_menu_item_new_with_mnemonic ("RDP");
432
gtk_container_add (GTK_CONTAINER (mnuProtocol), miProtocol);
433
gtk_tooltips_set_tip (tooltips, miProtocol, _("RDP protocol is used to connect to Microsoft Windows 2000 and older systems."), NULL);
434
g_signal_connect (G_OBJECT (miProtocol), "activate", G_CALLBACK (on_protocol_changed), (int*)0);
435
gtk_widget_ref (miProtocol);
436
if (!g_find_program_in_path ("rdesktop")) { gtk_widget_set_sensitive (miProtocol, FALSE); }
438
miProtocol = gtk_menu_item_new_with_mnemonic ("RDPv5");
439
gtk_container_add (GTK_CONTAINER (mnuProtocol), miProtocol);
440
gtk_tooltips_set_tip (tooltips, miProtocol, _("RDPv5 protocol is used to connect to Microsoft Windows XP and newer systems."), NULL);
441
g_signal_connect (G_OBJECT (miProtocol), "activate", G_CALLBACK (on_protocol_changed), (int*)4);
442
gtk_widget_ref (miProtocol);
443
if (!g_find_program_in_path ("rdesktop")) { gtk_widget_set_sensitive (miProtocol, FALSE); }
445
miProtocol = gtk_menu_item_new_with_mnemonic ("VNC");
446
gtk_container_add (GTK_CONTAINER (mnuProtocol), miProtocol);
447
gtk_tooltips_set_tip (tooltips, miProtocol, _("VNC protocol is used to connect to systems sharing the desktop by using VNC."), NULL);
448
g_signal_connect (G_OBJECT (miProtocol), "activate", G_CALLBACK (on_protocol_changed), (int*)1);
449
gtk_widget_ref (miProtocol);
450
if (!g_find_program_in_path ("vncviewer") &&
451
!g_find_program_in_path ("xvncviewer") &&
452
!g_find_program_in_path ("xtightvncviewer") &&
453
!g_find_program_in_path ("svncviewer") )
454
{ gtk_widget_set_sensitive (miProtocol, FALSE); }
456
miProtocol = gtk_menu_item_new_with_mnemonic ("XDMCP");
457
gtk_container_add (GTK_CONTAINER (mnuProtocol), miProtocol);
458
gtk_tooltips_set_tip (tooltips, miProtocol, _("XDMCP protocol uses Xnest to connect to servers running X."), NULL);
459
g_signal_connect (G_OBJECT (miProtocol), "activate", G_CALLBACK (on_protocol_changed), (int*)2);
460
gtk_widget_ref (miProtocol);
461
if (!g_find_program_in_path ("Xnest")) { gtk_widget_set_sensitive (miProtocol, FALSE); }
463
miProtocol = gtk_menu_item_new_with_mnemonic ("ICA");
464
gtk_container_add (GTK_CONTAINER (mnuProtocol), miProtocol);
465
gtk_tooltips_set_tip (tooltips, miProtocol, _("ICA protocol is used to connect to Citrix servers."), NULL);
466
g_signal_connect (G_OBJECT (miProtocol), "activate", G_CALLBACK (on_protocol_changed), (int*)3);
467
gtk_widget_ref (miProtocol);
468
if (!g_find_program_in_path ("wfica") &&
469
!g_file_test ("/usr/lib/ICAClient/wfica", G_FILE_TEST_EXISTS) )
470
{ gtk_widget_set_sensitive (miProtocol, FALSE); }
472
gtk_option_menu_set_menu (GTK_OPTION_MENU (optProtocol), mnuProtocol);
475
txtUsername = gtk_entry_new ();
476
gtk_widget_set_name (txtUsername, "txtUsername");
477
gtk_entry_set_activates_default (GTK_ENTRY (txtUsername), TRUE);
478
gtk_table_attach (GTK_TABLE (tblLogon1), txtUsername, 1, 2, 2, 3,
479
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
480
(GtkAttachOptions) (0), 0, 0);
481
gtk_tooltips_set_tip (tooltips, txtUsername, _("Enter the username for the remote system.\nFor VNC, enter the path to your saved vnc password file."), NULL);
483
txtPassword = gtk_entry_new ();
484
gtk_widget_set_name (txtPassword, "txtPassword");
485
gtk_entry_set_activates_default (GTK_ENTRY (txtPassword), TRUE);
486
gtk_table_attach (GTK_TABLE (tblLogon1), txtPassword, 1, 2, 3, 4,
487
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
488
(GtkAttachOptions) (0), 0, 0);
489
gtk_entry_set_visibility (GTK_ENTRY (txtPassword), FALSE);
490
gtk_tooltips_set_tip (tooltips, txtPassword, _("Enter the password for the remote system."), NULL);
492
txtDomain = gtk_entry_new ();
493
gtk_widget_set_name (txtDomain, "txtDomain");
494
gtk_entry_set_activates_default (GTK_ENTRY (txtDomain), TRUE);
495
gtk_table_attach (GTK_TABLE (tblLogon1), txtDomain, 1, 2, 4, 5,
496
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
497
(GtkAttachOptions) (0), 0, 0);
498
gtk_tooltips_set_tip (tooltips, txtDomain, _("Enter the domain for the remote system."), NULL);
500
txtClientHostname = gtk_entry_new ();
501
gtk_widget_set_name (txtClientHostname, "txtClientHostname");
502
gtk_entry_set_activates_default (GTK_ENTRY (txtClientHostname), TRUE);
503
gtk_table_attach (GTK_TABLE (tblLogon1), txtClientHostname, 1, 2, 5, 6,
504
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
505
(GtkAttachOptions) (0), 0, 0);
506
gtk_tooltips_set_tip (tooltips, txtClientHostname, _("Enter the local hostname for this system."), NULL);
508
hbxProtoFile = gtk_hbox_new (FALSE, 2);
509
gtk_widget_set_name (hbxProtoFile, "hbxProtoFile");
510
gtk_table_attach (GTK_TABLE (tblLogon1), hbxProtoFile, 1, 2, 6, 7,
511
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
512
(GtkAttachOptions) (0), 0, 0);
514
txtProtoFile = gtk_entry_new ();
515
gtk_widget_set_name (txtProtoFile, "txtProtoFile");
516
gtk_entry_set_activates_default (GTK_ENTRY (txtProtoFile), TRUE);
517
gtk_box_pack_start (GTK_BOX (hbxProtoFile), txtProtoFile, TRUE, TRUE, 0);
518
gtk_tooltips_set_tip (tooltips, txtProtoFile, _("Some protocols require a file containing settings. If required, enter the path to the file here."), NULL);
520
btnProtoFile = gtk_button_new_with_label ("...");
521
gtk_widget_set_name (btnProtoFile, "btnProtoFile");
522
gtk_container_add (GTK_CONTAINER (hbxProtoFile), btnProtoFile);
525
vbxDisplayTab1 = gtk_vbox_new (FALSE, 0);
526
gtk_widget_set_name (vbxDisplayTab1, "vbxDisplayTab1");
527
gtk_container_add (GTK_CONTAINER (nbkComplete), vbxDisplayTab1);
528
gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (nbkComplete), vbxDisplayTab1,
529
TRUE, TRUE, GTK_PACK_START);
531
frameSize = gtk_frame_new (NULL);
532
gtk_widget_set_name (frameSize, "frameSize");
533
gtk_box_pack_start (GTK_BOX (vbxDisplayTab1), frameSize, TRUE, TRUE, 0);
534
gtk_container_set_border_width (GTK_CONTAINER (frameSize), 3);
535
gtk_frame_set_shadow_type (GTK_FRAME (frameSize), GTK_SHADOW_NONE);
537
lblSizeFrame = gtk_label_new (_("Remote Desktop Size"));
538
gtk_widget_set_name (lblSizeFrame, "lblSizeFrame");
539
gtk_label_set_markup (GTK_LABEL (lblSizeFrame), g_strconcat ("<span weight=\"bold\">", _("Remote Desktop Size"), "</span>", NULL));
540
gtk_frame_set_label_widget (GTK_FRAME (frameSize), lblSizeFrame);
541
gtk_label_set_justify (GTK_LABEL (lblSizeFrame), GTK_JUSTIFY_LEFT);
543
hbxSize = gtk_hbox_new (FALSE, 0);
544
gtk_widget_set_name (hbxSize, "hbxSize");
545
gtk_container_add (GTK_CONTAINER (frameSize), hbxSize);
547
imgSize = create_pixmap (frmConnect, "size.png");
548
gtk_widget_set_name (imgSize, "imgSize");
549
gtk_box_pack_start (GTK_BOX (hbxSize), imgSize, FALSE, TRUE, 0);
550
gtk_misc_set_alignment (GTK_MISC (imgSize), 0, 0);
551
gtk_misc_set_padding (GTK_MISC (imgSize), 3, 3);
553
vbxSize = gtk_vbox_new (FALSE, 0);
554
gtk_widget_set_name (vbxSize, "vbxSize");
555
gtk_box_pack_start (GTK_BOX (hbxSize), vbxSize, TRUE, TRUE, 0);
557
optSize1 = gtk_radio_button_new_with_mnemonic (NULL, _("Use default screen size"));
558
gtk_widget_set_name (optSize1, "optSize1");
559
gtk_box_pack_start (GTK_BOX (vbxSize), optSize1, FALSE, FALSE, 0);
560
gtk_container_set_border_width (GTK_CONTAINER (optSize1), 3);
561
gtk_tooltips_set_tip (tooltips, optSize1, _("Use the default screen size."), NULL);
562
gtk_radio_button_set_group (GTK_RADIO_BUTTON (optSize1), optSize1_group);
563
optSize1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (optSize1));
564
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (optSize1), TRUE);
566
optSize2 = gtk_radio_button_new_with_mnemonic (NULL, _("Use specified screen size"));
567
gtk_widget_set_name (optSize2, "optSize2");
568
gtk_box_pack_start (GTK_BOX (vbxSize), optSize2, FALSE, FALSE, 0);
569
gtk_container_set_border_width (GTK_CONTAINER (optSize2), 3);
570
gtk_tooltips_set_tip (tooltips, optSize2, _("Use the list to choose the screen size to use."), NULL);
571
gtk_radio_button_set_group (GTK_RADIO_BUTTON (optSize2), optSize1_group);
572
optSize1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (optSize2));
574
alnSize = gtk_alignment_new (0.5, 0.5, 0.88, 1);
575
gtk_widget_set_name (alnSize, "alnSize");
576
gtk_box_pack_start (GTK_BOX (vbxSize), alnSize, FALSE, TRUE, 0);
578
optSize = tsc_option_menu_factory (size_items);
579
gtk_widget_set_name (optSize, "optSize");
580
gtk_container_add (GTK_CONTAINER (alnSize), optSize);
582
optSize3 = gtk_radio_button_new_with_mnemonic (NULL, _("Operate in full screen mode"));
583
gtk_widget_set_name (optSize3, "optSize3");
584
gtk_box_pack_start (GTK_BOX (vbxSize), optSize3, FALSE, FALSE, 0);
585
gtk_container_set_border_width (GTK_CONTAINER (optSize3), 3);
586
gtk_tooltips_set_tip (tooltips, optSize3, _("Work in full screen mode."), NULL);
587
gtk_radio_button_set_group (GTK_RADIO_BUTTON (optSize3), optSize1_group);
588
optSize1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (optSize3));
590
alnAltFullSwitch = gtk_alignment_new (0.5, 0.5, 0.88, 1);
591
gtk_widget_set_name (alnAltFullSwitch, "alnAltFullSwitch");
592
gtk_box_pack_start (GTK_BOX (vbxSize), alnAltFullSwitch, FALSE, FALSE, 0);
593
gtk_widget_set_sensitive (alnAltFullSwitch, FALSE);
595
chkAltFullSwitch = gtk_check_button_new_with_mnemonic (_("Use alternate full screen switch (-F)"));
596
gtk_widget_set_name (chkAltFullSwitch, "chkAltFullSwitch");
597
gtk_container_add (GTK_CONTAINER (alnAltFullSwitch), chkAltFullSwitch);
598
gtk_container_set_border_width (GTK_CONTAINER (chkAltFullSwitch), 3);
599
gtk_tooltips_set_tip (tooltips, chkAltFullSwitch, _("Check this if you use rdesktop with the unified patches."), NULL);
602
frameColor = gtk_frame_new (NULL);
603
gtk_widget_set_name (frameColor, "frameColor");
604
gtk_box_pack_start (GTK_BOX (vbxDisplayTab1), frameColor, TRUE, TRUE, 0);
605
gtk_container_set_border_width (GTK_CONTAINER (frameColor), 3);
606
gtk_frame_set_shadow_type (GTK_FRAME (frameColor), GTK_SHADOW_NONE);
608
lblColorFrame = gtk_label_new (_("Colors"));
609
gtk_widget_set_name (lblColorFrame, "lblColorFrame");
610
gtk_label_set_markup (GTK_LABEL (lblColorFrame), g_strconcat ("<span weight=\"bold\">", _("Colors"), "</span>", NULL));
611
gtk_frame_set_label_widget (GTK_FRAME (frameColor), lblColorFrame);
612
gtk_label_set_justify (GTK_LABEL (lblColorFrame), GTK_JUSTIFY_LEFT);
614
hbxColor = gtk_hbox_new (FALSE, 0);
615
gtk_widget_set_name (hbxColor, "hbxColor");
616
gtk_container_add (GTK_CONTAINER (frameColor), hbxColor);
618
imgColor = create_pixmap (frmConnect, "colors.png");
619
gtk_widget_set_name (imgColor, "imgColor");
620
gtk_box_pack_start (GTK_BOX (hbxColor), imgColor, FALSE, TRUE, 0);
621
gtk_misc_set_alignment (GTK_MISC (imgColor), 0, 0);
622
gtk_misc_set_padding (GTK_MISC (imgColor), 3, 3);
624
vbxColor = gtk_vbox_new (FALSE, 0);
625
gtk_widget_set_name (vbxColor, "vbxColor");
626
gtk_box_pack_start (GTK_BOX (hbxColor), vbxColor, TRUE, TRUE, 0);
628
optColor1 = gtk_radio_button_new_with_mnemonic (NULL, _("Use default color depth"));
629
gtk_widget_set_name (optColor1, "optColor1");
630
gtk_box_pack_start (GTK_BOX (vbxColor), optColor1, FALSE, FALSE, 0);
631
gtk_container_set_border_width (GTK_CONTAINER (optColor1), 3);
632
gtk_tooltips_set_tip (tooltips, optColor1, _("Use the default color depth."), NULL);
633
gtk_radio_button_set_group (GTK_RADIO_BUTTON (optColor1), optColor1_group);
634
optColor1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (optColor1));
635
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (optColor1), TRUE);
637
optColor2 = gtk_radio_button_new_with_mnemonic (NULL, _("Use specified color depth"));
638
gtk_widget_set_name (optColor2, "optColor2");
639
gtk_box_pack_start (GTK_BOX (vbxColor), optColor2, FALSE, FALSE, 0);
640
gtk_container_set_border_width (GTK_CONTAINER (optColor2), 3);
641
gtk_tooltips_set_tip (tooltips, optColor2, _("Use the list to choose the color depth to use."), NULL);
642
gtk_radio_button_set_group (GTK_RADIO_BUTTON (optColor2), optColor1_group);
643
optColor1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (optColor2));
645
alnColor = gtk_alignment_new (0.5, 0.5, 0.88, 1);
646
gtk_widget_set_name (alnColor, "alnColor");
647
gtk_box_pack_start (GTK_BOX (vbxColor), alnColor, FALSE, TRUE, 0);
649
optColor = tsc_option_menu_factory (color_items);
650
gtk_widget_set_name (optColor, "optColor");
651
gtk_container_add (GTK_CONTAINER (alnColor), optColor);
653
vbxLocalTab1 = gtk_vbox_new (FALSE, 0);
654
gtk_widget_set_name (vbxLocalTab1, "vbxLocalTab1");
655
gtk_container_add (GTK_CONTAINER (nbkComplete), vbxLocalTab1);
656
gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (nbkComplete), vbxLocalTab1,
657
TRUE, TRUE, GTK_PACK_START);
659
frameSound = gtk_frame_new (NULL);
660
gtk_widget_set_name (frameSound, "frameSound");
661
gtk_box_pack_start (GTK_BOX (vbxLocalTab1), frameSound, TRUE, TRUE, 0);
662
gtk_container_set_border_width (GTK_CONTAINER (frameSound), 3);
663
gtk_frame_set_shadow_type (GTK_FRAME (frameSound), GTK_SHADOW_NONE);
665
lblSoundFrame = gtk_label_new_with_mnemonic (_("Remote Computer _Sound"));
666
gtk_widget_set_name (lblSoundFrame, "lblSoundFrame");
667
gtk_label_set_markup (GTK_LABEL (lblSoundFrame), g_strconcat ("<span weight=\"bold\">", _("Remote Computer Sound"), "</span>", NULL));
668
gtk_frame_set_label_widget (GTK_FRAME (frameSound), lblSoundFrame);
669
gtk_label_set_justify (GTK_LABEL (lblSoundFrame), GTK_JUSTIFY_LEFT);
671
tblSound = gtk_table_new (1, 2, FALSE);
672
gtk_widget_set_name (tblSound, "tblSound");
673
gtk_container_add (GTK_CONTAINER (frameSound), tblSound);
674
gtk_table_set_col_spacings (GTK_TABLE (tblSound), 6);
676
imgSound = create_pixmap (frmConnect, "sound.png");
677
gtk_widget_set_name (imgSound, "imgSound");
678
gtk_misc_set_padding (GTK_MISC (imgSound), 3, 3);
679
gtk_table_attach (GTK_TABLE (tblSound), imgSound, 0, 1, 0, 1,
680
(GtkAttachOptions) (GTK_FILL),
681
(GtkAttachOptions) 0, 0, 0);
683
vbxSound = gtk_vbox_new (FALSE, 0);
684
gtk_widget_set_name (vbxSound, "vbxSound");
685
gtk_table_attach (GTK_TABLE (tblSound), vbxSound, 1, 2, 0, 2,
686
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
687
(GtkAttachOptions) (0), 0, 0);
689
optSound1 = gtk_radio_button_new_with_mnemonic (NULL, _("On the local computer"));
690
gtk_widget_set_name (optSound1, "optSound1");
691
gtk_box_pack_start (GTK_BOX (vbxSound), optSound1, FALSE, FALSE, 0);
692
gtk_container_set_border_width (GTK_CONTAINER (optSound1), 3);
693
gtk_tooltips_set_tip (tooltips, optSound1, _("On the local computer"), NULL);
694
gtk_radio_button_set_group (GTK_RADIO_BUTTON (optSound1), optSound1_group);
695
optSound1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (optSound1));
696
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (optSound1), TRUE);
698
optSound2 = gtk_radio_button_new_with_mnemonic (NULL, _("On the remote computer"));
699
gtk_widget_set_name (optSound2, "optSound2");
700
gtk_box_pack_start (GTK_BOX (vbxSound), optSound2, FALSE, FALSE, 0);
701
gtk_container_set_border_width (GTK_CONTAINER (optSound2), 3);
702
gtk_tooltips_set_tip (tooltips, optSound2, _("On the remote computer"), NULL);
703
gtk_radio_button_set_group (GTK_RADIO_BUTTON (optSound2), optSound1_group);
704
optSound1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (optSound2));
706
optSound3 = gtk_radio_button_new_with_mnemonic (NULL, _("Do not play"));
707
gtk_widget_set_name (optSound3, "optSound3");
708
gtk_box_pack_start (GTK_BOX (vbxSound), optSound3, FALSE, FALSE, 0);
709
gtk_container_set_border_width (GTK_CONTAINER (optSound3), 3);
710
gtk_tooltips_set_tip (tooltips, optSound3, _("Do not play"), NULL);
711
gtk_radio_button_set_group (GTK_RADIO_BUTTON (optSound3), optSound1_group);
712
optSound1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (optSound3));
715
frameKeyboard = gtk_frame_new (NULL);
716
gtk_widget_set_name (frameKeyboard, "frameKeyboard");
717
gtk_box_pack_start (GTK_BOX (vbxLocalTab1), frameKeyboard, TRUE, TRUE, 0);
718
gtk_container_set_border_width (GTK_CONTAINER (frameKeyboard), 3);
719
gtk_frame_set_shadow_type (GTK_FRAME (frameKeyboard), GTK_SHADOW_NONE);
721
lblKeyboardFrame = gtk_label_new_with_mnemonic (_("_Keyboard"));
722
gtk_widget_set_name (lblKeyboardFrame, "lblKeyboardFrame");
723
gtk_label_set_markup (GTK_LABEL (lblKeyboardFrame), g_strconcat ("<span weight=\"bold\">", _("Keyboard"), "</span>", NULL));
724
gtk_frame_set_label_widget (GTK_FRAME (frameKeyboard), lblKeyboardFrame);
725
gtk_label_set_justify (GTK_LABEL (lblKeyboardFrame), GTK_JUSTIFY_LEFT);
727
tblKeyboard = gtk_table_new (2, 2, FALSE);
728
gtk_widget_set_name (tblKeyboard, "tblKeyboard");
729
gtk_container_add (GTK_CONTAINER (frameKeyboard), tblKeyboard);
730
gtk_table_set_col_spacings (GTK_TABLE (tblKeyboard), 6);
732
optKeyboard = gtk_option_menu_new ();
733
gtk_widget_set_name (optKeyboard, "optKeyboard");
734
gtk_table_attach (GTK_TABLE (tblKeyboard), optKeyboard, 1, 2, 1, 2,
735
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
736
(GtkAttachOptions) (0), 0, 0);
738
mnuKeyboard = gtk_menu_new ();
740
miKeyboard = gtk_menu_item_new_with_mnemonic (_("On the local computer"));
741
gtk_container_add (GTK_CONTAINER (mnuKeyboard), miKeyboard);
743
miKeyboard = gtk_menu_item_new_with_mnemonic (_("On the remote computer"));
744
gtk_container_add (GTK_CONTAINER (mnuKeyboard), miKeyboard);
746
miKeyboard = gtk_menu_item_new_with_mnemonic (_("In full screen mode only"));
747
gtk_container_add (GTK_CONTAINER (mnuKeyboard), miKeyboard);
749
gtk_option_menu_set_menu (GTK_OPTION_MENU (optKeyboard), mnuKeyboard);
752
lblKeyboardLang = gtk_label_new (_("Use the following keyboard language\n(2 char keycode)"));
753
gtk_widget_set_name (lblKeyboardLang, "lblKeyboardLang");
754
gtk_table_attach (GTK_TABLE (tblKeyboard), lblKeyboardLang, 1, 2, 2, 3,
755
(GtkAttachOptions) (GTK_FILL),
756
(GtkAttachOptions) (0), 0, 0);
757
gtk_label_set_justify (GTK_LABEL (lblKeyboardLang), GTK_JUSTIFY_LEFT);
758
gtk_misc_set_alignment (GTK_MISC (lblKeyboardLang), 0, 0.5);
760
cboKeyboardLang = gtk_combo_new ();
761
gtk_object_set_data ( GTK_OBJECT ( GTK_COMBO ( cboKeyboardLang)->popwin ),
762
"GladeParentLangKey", cboKeyboardLang );
763
gtk_widget_set_name ( cboKeyboardLang, "cboKeyboardLang" );
764
gtk_table_attach (GTK_TABLE (tblKeyboard), cboKeyboardLang, 1, 2, 3, 4,
765
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
766
(GtkAttachOptions) (0), 0, 0);
768
cboKeyboard_items = NULL;
771
cboKeyboard_items = g_list_append (cboKeyboard_items, (gpointer) langlist[i]);
774
gtk_combo_set_popdown_strings (GTK_COMBO (cboKeyboardLang), cboKeyboard_items);
775
g_list_free (cboKeyboard_items);
777
txtKeyboardLang = GTK_COMBO (cboKeyboardLang)->entry;
778
gtk_widget_set_name (txtKeyboardLang, "txtKeyboardLang");
780
lblKeyboard = gtk_label_new (_("Apply Windows key combinations\n(for example ALT+TAB) (unsupported)"));
781
gtk_widget_set_name (lblKeyboard, "lblKeyboard");
782
gtk_table_attach (GTK_TABLE (tblKeyboard), lblKeyboard, 1, 2, 0, 1,
783
(GtkAttachOptions) (GTK_FILL),
784
(GtkAttachOptions) (0), 0, 0);
785
gtk_label_set_justify (GTK_LABEL (lblKeyboard), GTK_JUSTIFY_LEFT);
786
gtk_misc_set_alignment (GTK_MISC (lblKeyboard), 0, 0.5);
788
imgKeyboard = create_pixmap (frmConnect, "keyboard.png");
789
gtk_widget_set_name (imgKeyboard, "imgKeyboard");
790
gtk_table_attach (GTK_TABLE (tblKeyboard), imgKeyboard, 0, 1, 0, 1,
791
(GtkAttachOptions) (GTK_FILL),
792
(GtkAttachOptions) 0, 0, 0);
793
gtk_misc_set_padding (GTK_MISC (imgKeyboard), 3, 3);
795
frameProgram = gtk_frame_new (NULL);
796
gtk_widget_set_name (frameProgram, "frameProgram");
797
gtk_container_add (GTK_CONTAINER (nbkComplete), frameProgram);
798
gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (nbkComplete), frameProgram,
799
TRUE, TRUE, GTK_PACK_START);
800
gtk_container_set_border_width (GTK_CONTAINER (frameProgram), 3);
801
gtk_frame_set_shadow_type (GTK_FRAME (frameProgram), GTK_SHADOW_NONE);
803
lblProgramFrame = gtk_label_new (_("Start a Program"));
804
gtk_widget_set_name (lblProgramFrame, "lblProgramFrame");
805
gtk_label_set_markup (GTK_LABEL (lblProgramFrame), g_strconcat ("<span weight=\"bold\">", _("Start a Program"), "</span>", NULL));
806
gtk_frame_set_label_widget (GTK_FRAME (frameProgram), lblProgramFrame);
807
gtk_label_set_justify (GTK_LABEL (lblProgramFrame), GTK_JUSTIFY_LEFT);
809
tblProgram = gtk_table_new (2, 5, FALSE);
810
gtk_widget_set_name (tblProgram, "tblProgram");
811
gtk_container_add (GTK_CONTAINER (frameProgram), tblProgram);
813
imgProgram = create_pixmap (frmConnect, "program.png");
814
gtk_widget_set_name (imgProgram, "imgProgram");
815
gtk_table_attach (GTK_TABLE (tblProgram), imgProgram, 0, 1, 0, 1,
816
(GtkAttachOptions) (GTK_FILL),
817
(GtkAttachOptions) (GTK_FILL), 0, 0);
818
gtk_misc_set_padding (GTK_MISC (imgProgram), 3, 3);
820
chkStartProgram = gtk_check_button_new_with_mnemonic (_("Start the following program on connection"));
821
gtk_widget_set_name (chkStartProgram, "chkStartProgram");
822
gtk_table_attach (GTK_TABLE (tblProgram), chkStartProgram, 1, 2, 0, 1,
823
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
824
(GtkAttachOptions) (GTK_FILL), 0, 0);
825
gtk_container_set_border_width (GTK_CONTAINER (chkStartProgram), 3);
827
lblProgramPath = gtk_label_new (_("Program path and filename"));
828
gtk_widget_set_name (lblProgramPath, "lblProgramPath");
829
gtk_table_attach (GTK_TABLE (tblProgram), lblProgramPath, 1, 2, 1, 2,
830
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
831
(GtkAttachOptions) (GTK_FILL), 0, 0);
832
gtk_label_set_justify (GTK_LABEL (lblProgramPath), GTK_JUSTIFY_LEFT);
834
txtProgramPath = gtk_entry_new ();
835
gtk_widget_set_name (txtProgramPath, "txtProgramPath");
836
gtk_table_attach (GTK_TABLE (tblProgram), txtProgramPath, 1, 2, 2, 3,
837
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
838
(GtkAttachOptions) (GTK_FILL), 0, 0);
840
lblStartFolder = gtk_label_new (_("Start in the following folder"));
841
gtk_widget_set_name (lblStartFolder, "lblStartFolder");
842
gtk_table_attach (GTK_TABLE (tblProgram), lblStartFolder, 1, 2, 3, 4,
843
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
844
(GtkAttachOptions) (GTK_FILL), 0, 0);
845
gtk_label_set_justify (GTK_LABEL (lblStartFolder), GTK_JUSTIFY_LEFT);
847
txtStartFolder = gtk_entry_new ();
848
gtk_widget_set_name (txtStartFolder, "txtStartFolder");
849
gtk_table_attach (GTK_TABLE (tblProgram), txtStartFolder, 1, 2, 4, 5,
850
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
851
(GtkAttachOptions) (GTK_FILL), 0, 0);
854
framePerform = gtk_frame_new (NULL);
855
gtk_widget_set_name (framePerform, "framePerform");
856
gtk_container_add (GTK_CONTAINER (nbkComplete), framePerform);
857
gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (nbkComplete), framePerform,
858
TRUE, TRUE, GTK_PACK_START);
859
gtk_container_set_border_width (GTK_CONTAINER (framePerform), 3);
860
gtk_frame_set_shadow_type (GTK_FRAME (framePerform), GTK_SHADOW_NONE);
862
lblPerformFrame = gtk_label_new (_("Optimize Performance"));
863
gtk_widget_set_name (lblPerformFrame, "lblPerformFrame");
864
gtk_label_set_markup (GTK_LABEL (lblPerformFrame), g_strconcat ("<span weight=\"bold\">", _("Optimize Performance"), "</span>", NULL));
865
gtk_frame_set_label_widget (GTK_FRAME (framePerform), lblPerformFrame);
866
gtk_label_set_justify (GTK_LABEL (lblPerformFrame), GTK_JUSTIFY_LEFT);
868
tblPerform = gtk_table_new (2, 2, FALSE);
869
gtk_widget_set_name (tblPerform, "tblPerform");
870
gtk_container_add (GTK_CONTAINER (framePerform), tblPerform);
872
imgPerform = create_pixmap (frmConnect, "perform.png");
873
gtk_widget_set_name (imgPerform, "imgPerform");
874
gtk_table_attach (GTK_TABLE (tblPerform), imgPerform, 0, 1, 0, 1,
875
(GtkAttachOptions) (GTK_FILL),
876
(GtkAttachOptions) (GTK_FILL), 0, 0);
877
gtk_misc_set_padding (GTK_MISC (imgPerform), 3, 3);
879
vbxExpChecks = gtk_vbox_new (FALSE, 0);
880
gtk_widget_set_name (vbxExpChecks, "vbxExpChecks");
881
gtk_table_attach (GTK_TABLE (tblPerform), vbxExpChecks, 1, 2, 1, 2,
882
(GtkAttachOptions) (GTK_FILL),
883
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
885
chkDesktopBackground = gtk_check_button_new_with_mnemonic (_("Desktop background (u)"));
886
gtk_widget_set_name (chkDesktopBackground, "chkDesktopBackground");
887
gtk_box_pack_start (GTK_BOX (vbxExpChecks), chkDesktopBackground, FALSE, FALSE, 0);
889
chkWindowContent = gtk_check_button_new_with_mnemonic (_("Show content of window while dragging (u)"));
890
gtk_widget_set_name (chkWindowContent, "chkWindowContent");
891
gtk_box_pack_start (GTK_BOX (vbxExpChecks), chkWindowContent, FALSE, FALSE, 0);
893
chkAnimation = gtk_check_button_new_with_mnemonic (_("Menu and window animation (u)"));
894
gtk_widget_set_name (chkAnimation, "chkAnimation");
895
gtk_box_pack_start (GTK_BOX (vbxExpChecks), chkAnimation, FALSE, FALSE, 0);
897
chkThemes = gtk_check_button_new_with_mnemonic (_("Themes (u)"));
898
gtk_widget_set_name (chkThemes, "chkThemes");
899
gtk_box_pack_start (GTK_BOX (vbxExpChecks), chkThemes, FALSE, FALSE, 0);
901
chkBitmapCache = gtk_check_button_new_with_mnemonic (_("Enable bitmap caching"));
902
gtk_widget_set_name (chkBitmapCache, "chkBitmapCache");
903
gtk_box_pack_start (GTK_BOX (vbxExpChecks), chkBitmapCache, FALSE, FALSE, 0);
905
chkNoMotionEvents = gtk_check_button_new_with_mnemonic (_("Do not send motion events"));
906
gtk_widget_set_name (chkNoMotionEvents, "chkNoMotionEvents");
907
gtk_box_pack_start (GTK_BOX (vbxExpChecks), chkNoMotionEvents, FALSE, FALSE, 0);
909
chkEnableWMKeys = gtk_check_button_new_with_mnemonic (_("Enable window manager's key bindings"));
910
gtk_widget_set_name (chkEnableWMKeys, "chkEnableWMKeys");
911
gtk_box_pack_start (GTK_BOX (vbxExpChecks), chkEnableWMKeys, FALSE, FALSE, 0);
913
chkHideWMDecorations = gtk_check_button_new_with_mnemonic (_("Hide window manager's decorations"));
914
gtk_widget_set_name (chkHideWMDecorations, "chkHideWMDecorations");
915
gtk_box_pack_start (GTK_BOX (vbxExpChecks), chkHideWMDecorations, FALSE, FALSE, 0);
918
lblPerformanceOptions = gtk_label_new (_("Options available for optimizing performance"));
919
gtk_widget_set_name (lblPerformanceOptions, "lblPerformanceOptions");
920
gtk_table_attach (GTK_TABLE (tblPerform), lblPerformanceOptions, 1, 2, 0, 1,
921
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
922
(GtkAttachOptions) (GTK_FILL), 0, 0);
923
gtk_label_set_justify (GTK_LABEL (lblPerformanceOptions), GTK_JUSTIFY_LEFT);
924
gtk_label_set_line_wrap (GTK_LABEL (lblPerformanceOptions), TRUE);
925
gtk_misc_set_alignment (GTK_MISC (lblPerformanceOptions), 0, 0.5);
928
These are the labels for the notebook control
931
lblGeneralTab1 = gtk_label_new_with_mnemonic (_("_General"));
932
gtk_widget_set_name (lblGeneralTab1, "lblGeneralTab1");
933
gtk_notebook_set_tab_label (GTK_NOTEBOOK (nbkComplete), gtk_notebook_get_nth_page (GTK_NOTEBOOK (nbkComplete), 0), lblGeneralTab1);
934
gtk_label_set_justify (GTK_LABEL (lblGeneralTab1), GTK_JUSTIFY_LEFT);
936
lblDisplayTab1 = gtk_label_new_with_mnemonic (_("_Display"));
937
gtk_widget_set_name (lblDisplayTab1, "lblDisplayTab1");
938
gtk_notebook_set_tab_label (GTK_NOTEBOOK (nbkComplete), gtk_notebook_get_nth_page (GTK_NOTEBOOK (nbkComplete), 1), lblDisplayTab1);
939
gtk_label_set_justify (GTK_LABEL (lblDisplayTab1), GTK_JUSTIFY_LEFT);
941
lblLocalTab1 = gtk_label_new_with_mnemonic (_("Local _Resources"));
942
gtk_widget_set_name (lblLocalTab1, "lblLocalTab1");
943
gtk_notebook_set_tab_label (GTK_NOTEBOOK (nbkComplete), gtk_notebook_get_nth_page (GTK_NOTEBOOK (nbkComplete), 2), lblLocalTab1);
944
gtk_label_set_justify (GTK_LABEL (lblLocalTab1), GTK_JUSTIFY_LEFT);
946
lblProgramsTab1 = gtk_label_new_with_mnemonic (_("_Programs"));
947
gtk_widget_set_name (lblProgramsTab1, "lblProgramsTab1");
948
gtk_notebook_set_tab_label (GTK_NOTEBOOK (nbkComplete), gtk_notebook_get_nth_page (GTK_NOTEBOOK (nbkComplete), 3), lblProgramsTab1);
949
gtk_label_set_justify (GTK_LABEL (lblProgramsTab1), GTK_JUSTIFY_LEFT);
951
lblPerformanceTab1 = gtk_label_new_with_mnemonic (_("Perf_ormance"));
952
gtk_widget_set_name (lblPerformanceTab1, "lblPerformanceTab1");
953
gtk_notebook_set_tab_label (GTK_NOTEBOOK (nbkComplete), gtk_notebook_get_nth_page (GTK_NOTEBOOK (nbkComplete), 4), lblPerformanceTab1);
954
gtk_label_set_justify (GTK_LABEL (lblPerformanceTab1), GTK_JUSTIFY_LEFT);
956
gtk_label_set_mnemonic_widget (GTK_LABEL (lblComputer), txtComputer);
957
gtk_label_set_mnemonic_widget (GTK_LABEL (lblProtocol), optProtocol);
958
gtk_label_set_mnemonic_widget (GTK_LABEL (lblUsername), txtUsername);
959
gtk_label_set_mnemonic_widget (GTK_LABEL (lblPassword), txtPassword);
960
gtk_label_set_mnemonic_widget (GTK_LABEL (lblDomain), txtDomain);
961
gtk_label_set_mnemonic_widget (GTK_LABEL (lblClientHostname), txtClientHostname);
962
gtk_label_set_mnemonic_widget (GTK_LABEL (lblProtoFile), txtProtoFile);
966
This is the Profile Launcher
968
hbxProfileLauncher = gtk_hbox_new (FALSE, 3);
969
gtk_widget_set_name (hbxProfileLauncher, "hbxProfileLauncher");
970
gtk_box_pack_start (GTK_BOX (vbxComplete), hbxProfileLauncher, TRUE, TRUE, 0);
971
gtk_container_set_border_width (GTK_CONTAINER (hbxProfileLauncher), 6);
972
gtk_box_set_spacing (GTK_BOX (hbxProfileLauncher), 6);
974
optProfileLauncher = gtk_option_menu_new ();
975
gtk_widget_set_name (optProfileLauncher, "optProfileLauncher");
976
gtk_box_pack_start (GTK_BOX (hbxProfileLauncher), optProfileLauncher, TRUE, TRUE, 0);
977
gtk_tooltips_set_tip (tooltips, optProfileLauncher, _("Select a saved profile to launch it immediately."), NULL);
979
hbxFileOps = gtk_hbox_new (TRUE, 0);
980
gtk_widget_set_name (hbxFileOps, "hbxFileOps");
981
gtk_box_pack_start (GTK_BOX (hbxProfileLauncher), hbxFileOps, FALSE, TRUE, 0);
982
gtk_container_set_border_width (GTK_CONTAINER (hbxFileOps), 0);
983
gtk_box_set_spacing (GTK_BOX (hbxFileOps), 6);
985
btnOpen = gtk_button_new_from_stock ("gtk-open");
986
gtk_widget_set_name (btnOpen, "btnOpen");
987
gtk_box_pack_start (GTK_BOX (hbxFileOps), btnOpen, TRUE, TRUE, 0);
989
btnSaveAs = gtk_button_new_from_stock ("gtk-save-as");
990
gtk_widget_set_name (btnSaveAs, "btnSaveAs");
991
gtk_box_pack_start (GTK_BOX (hbxFileOps), btnSaveAs, TRUE, TRUE, 0);
995
This is the button box for the Complete mode
998
hbbAppOps = gtk_hbutton_box_new ();
999
gtk_widget_set_name (hbbAppOps, "hbbAppOps");
1000
gtk_box_pack_start (GTK_BOX (vbxComplete), hbbAppOps, FALSE, TRUE, 0);
1001
gtk_button_box_set_layout (GTK_BUTTON_BOX (hbbAppOps), GTK_BUTTONBOX_END);
1002
gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbbAppOps), 6);
1003
gtk_container_set_border_width (GTK_CONTAINER (hbbAppOps), 6);
1005
btnHelp = gtk_button_new_from_stock ("gtk-help");
1006
gtk_widget_set_name (btnHelp, "btnHelp");
1007
gtk_container_add (GTK_CONTAINER (hbbAppOps), btnHelp);
1009
btnQuit = gtk_button_new_from_stock ("gtk-cancel");
1010
gtk_widget_set_name (btnQuit, "btnQuit");
1011
gtk_container_add (GTK_CONTAINER (hbbAppOps), btnQuit);
1013
btnConnect = gtk_button_new ();
1014
gtk_widget_set_name (btnConnect, "btnConnect");
1015
gtk_container_add (GTK_CONTAINER (hbbAppOps), btnConnect);
1016
GTK_WIDGET_SET_FLAGS (btnConnect, GTK_CAN_DEFAULT);
1019
alnConnect = gtk_alignment_new (0.5, 0.5, 0, 0);
1020
gtk_widget_set_name (alnConnect, "alnConnect");
1021
gtk_container_add (GTK_CONTAINER (btnConnect), alnConnect);
1023
hbxConnect = gtk_hbox_new (FALSE, 2);
1024
gtk_widget_set_name (hbxConnect, "hbxConnect");
1025
gtk_container_add (GTK_CONTAINER (alnConnect), hbxConnect);
1027
imgConnect = gtk_image_new_from_stock ("gtk-ok", GTK_ICON_SIZE_BUTTON);
1028
gtk_widget_set_name (imgConnect, "imgConnect");
1029
gtk_box_pack_start (GTK_BOX (hbxConnect), imgConnect, FALSE, FALSE, 0);
1031
lblConnect = gtk_label_new_with_mnemonic (_("Co_nnect"));
1032
gtk_widget_set_name (lblConnect, "lblConnect");
1033
gtk_box_pack_start (GTK_BOX (hbxConnect), lblConnect, FALSE, FALSE, 0);
1034
gtk_label_set_justify (GTK_LABEL (lblConnect), GTK_JUSTIFY_LEFT);
1037
gtk_signal_connect (GTK_OBJECT (frmConnect), "destroy_event",
1038
GTK_SIGNAL_FUNC (gtk_main_quit),
1040
gtk_signal_connect (GTK_OBJECT (frmConnect), "delete_event",
1041
GTK_SIGNAL_FUNC (gtk_main_quit),
1043
gtk_signal_connect (GTK_OBJECT (btnConnect), "clicked",
1044
GTK_SIGNAL_FUNC (on_btnConnect_clicked),
1046
gtk_signal_connect (GTK_OBJECT (btnQuit), "clicked",
1047
GTK_SIGNAL_FUNC (on_btnQuit_clicked),
1049
gtk_signal_connect (GTK_OBJECT (btnHelp), "clicked",
1050
GTK_SIGNAL_FUNC (on_btnHelp_clicked),
1053
gtk_signal_connect (GTK_OBJECT (optSize1), "clicked",
1054
GTK_SIGNAL_FUNC (on_optSize1_clicked),
1056
gtk_signal_connect (GTK_OBJECT (optSize2), "clicked",
1057
GTK_SIGNAL_FUNC (on_optSize2_clicked),
1059
gtk_signal_connect (GTK_OBJECT (optSize3), "clicked",
1060
GTK_SIGNAL_FUNC (on_optSize3_clicked),
1063
gtk_signal_connect (GTK_OBJECT (optColor1), "clicked",
1064
GTK_SIGNAL_FUNC (on_optColor1_clicked),
1066
gtk_signal_connect (GTK_OBJECT (optColor2), "clicked",
1067
GTK_SIGNAL_FUNC (on_optColor2_clicked),
1070
gtk_signal_connect (GTK_OBJECT (btnSaveAs), "clicked",
1071
GTK_SIGNAL_FUNC (on_btnSaveAs_clicked),
1073
gtk_signal_connect (GTK_OBJECT (btnOpen), "clicked",
1074
GTK_SIGNAL_FUNC (on_btnOpen_clicked),
1076
gtk_signal_connect (GTK_OBJECT (btnProtoFile), "clicked",
1077
GTK_SIGNAL_FUNC (on_btnProtoFile_clicked),
1080
gtk_signal_connect ((gpointer) chkStartProgram, "toggled",
1081
G_CALLBACK (on_chkStartProgram_toggled),
1084
/* Store pointers to all widgets, for use by lookup_widget(). */
1085
gtk_object_set_data (GTK_OBJECT (frmConnect), "frmConnect", frmConnect);
1087
HOOKUP_OBJECT (frmConnect, vbxComplete, "vbxComplete");
1088
HOOKUP_OBJECT (frmConnect, nbkComplete, "nbkComplete");
1090
HOOKUP_OBJECT (frmConnect, vbxMain, "vbxMain");
1091
HOOKUP_OBJECT (frmConnect, vbxBanner, "vbxBanner");
1092
HOOKUP_OBJECT (frmConnect, imgBanner, "imgBanner");
1094
// General Tab Widgets
1095
HOOKUP_OBJECT (frmConnect, lblGeneralTab1, "lblGeneralTab1");
1096
HOOKUP_OBJECT (frmConnect, vbxGeneralTab1, "vbxGeneralTab1");
1098
// Logon Frame Widgets
1099
HOOKUP_OBJECT (frmConnect, frameLogon, "frameLogon");
1100
HOOKUP_OBJECT (frmConnect, lblLogonFrame, "lblLogonFrame");
1101
HOOKUP_OBJECT (frmConnect, tblLogon0, "tblLogon0");
1102
HOOKUP_OBJECT (frmConnect, tblLogon1, "tblLogon1");
1103
HOOKUP_OBJECT (frmConnect, lblLogonNote, "lblLogonNote");
1104
HOOKUP_OBJECT (frmConnect, imgGeneralLogon, "imgGeneralLogon");
1105
HOOKUP_OBJECT (frmConnect, lblComputer, "lblComputer");
1106
HOOKUP_OBJECT (frmConnect, cboComputer, "cboComputer");
1107
HOOKUP_OBJECT (frmConnect, txtComputer, "txtComputer");
1108
HOOKUP_OBJECT (frmConnect, lblProtocol, "lblProtocol");
1109
HOOKUP_OBJECT (frmConnect, optProtocol, "optProtocol");
1110
HOOKUP_OBJECT (frmConnect, mnuProtocol, "mnuProtocol");
1111
HOOKUP_OBJECT (frmConnect, lblUsername, "lblUsername");
1112
HOOKUP_OBJECT (frmConnect, txtUsername, "txtUsername");
1113
HOOKUP_OBJECT (frmConnect, lblPassword, "lblPassword");
1114
HOOKUP_OBJECT (frmConnect, txtPassword, "txtPassword");
1115
HOOKUP_OBJECT (frmConnect, lblDomain, "lblDomain");
1116
HOOKUP_OBJECT (frmConnect, txtDomain, "txtDomain");
1117
HOOKUP_OBJECT (frmConnect, lblClientHostname, "lblClientHostname");
1118
HOOKUP_OBJECT (frmConnect, txtClientHostname, "txtClientHostname");
1119
HOOKUP_OBJECT (frmConnect, lblProtoFile, "lblProtoFile");
1120
HOOKUP_OBJECT (frmConnect, hbxProtoFile, "hbxProtoFile");
1121
HOOKUP_OBJECT (frmConnect, txtProtoFile, "txtProtoFile");
1122
HOOKUP_OBJECT (frmConnect, btnProtoFile, "btnProtoFile");
1124
// Profile Launcher Widgets
1125
HOOKUP_OBJECT (frmConnect, hbxProfileLauncher, "hbxProfileLauncher");
1126
HOOKUP_OBJECT (frmConnect, optProfileLauncher, "optProfileLauncher");
1127
// Profile File Ops Widgets
1128
HOOKUP_OBJECT (frmConnect, hbxFileOps, "hbxFileOps");
1129
HOOKUP_OBJECT (frmConnect, btnSaveAs, "btnSaveAs");
1130
HOOKUP_OBJECT (frmConnect, btnOpen, "btnOpen");
1132
// Display Tab Widgets
1133
HOOKUP_OBJECT (frmConnect, lblDisplayTab1, "lblDisplayTab1");
1134
HOOKUP_OBJECT (frmConnect, vbxDisplayTab1, "vbxDisplayTab1");
1136
// Size Frame Widgets
1137
HOOKUP_OBJECT (frmConnect, frameSize, "frameSize");
1138
HOOKUP_OBJECT (frmConnect, lblSizeFrame, "lblSizeFrame");
1139
HOOKUP_OBJECT (frmConnect, hbxSize, "hbxSize");
1140
HOOKUP_OBJECT (frmConnect, imgSize, "imgSize");
1141
HOOKUP_OBJECT (frmConnect, vbxSize, "vbxSize");
1142
HOOKUP_OBJECT (frmConnect, optSize1, "optSize1");
1143
HOOKUP_OBJECT (frmConnect, optSize2, "optSize2");
1144
HOOKUP_OBJECT (frmConnect, alnSize, "alnSize");
1145
HOOKUP_OBJECT (frmConnect, optSize, "optSize");
1146
HOOKUP_OBJECT (frmConnect, optSize3, "optSize3");
1147
HOOKUP_OBJECT (frmConnect, alnAltFullSwitch, "alnAltFullSwitch");
1148
HOOKUP_OBJECT (frmConnect, chkAltFullSwitch, "chkAltFullSwitch");
1150
// Color Frame Widgets
1151
HOOKUP_OBJECT (frmConnect, frameColor, "frameColor");
1152
HOOKUP_OBJECT (frmConnect, lblColorFrame, "lblColorFrame");
1153
HOOKUP_OBJECT (frmConnect, hbxColor, "hbxColor");
1154
HOOKUP_OBJECT (frmConnect, imgColor, "imgColor");
1155
HOOKUP_OBJECT (frmConnect, vbxColor, "vbxColor");
1156
HOOKUP_OBJECT (frmConnect, optColor1, "optColor1");
1157
HOOKUP_OBJECT (frmConnect, optColor2, "optColor2");
1158
HOOKUP_OBJECT (frmConnect, alnColor, "alnColor");
1159
HOOKUP_OBJECT (frmConnect, optColor, "optColor");
1161
// Local Resources Tab Widgets
1162
HOOKUP_OBJECT (frmConnect, lblLocalTab1, "lblLocalTab1");
1163
HOOKUP_OBJECT (frmConnect, vbxLocalTab1, "vbxLocalTab1");
1165
// Sound Frame Widgets
1166
HOOKUP_OBJECT (frmConnect, frameSound, "frameSound");
1167
HOOKUP_OBJECT (frmConnect, lblSoundFrame, "lblSoundFrame");
1168
HOOKUP_OBJECT (frmConnect, tblSound, "tblSound");
1169
HOOKUP_OBJECT (frmConnect, imgSound, "imgSound");
1170
HOOKUP_OBJECT (frmConnect, vbxSound, "vbxSound");
1171
HOOKUP_OBJECT (frmConnect, optSound1, "optSound1");
1172
HOOKUP_OBJECT (frmConnect, optSound2, "optSound2");
1173
HOOKUP_OBJECT (frmConnect, optSound3, "optSound3");
1175
// Keyboard Frame Widgets
1176
HOOKUP_OBJECT (frmConnect, frameKeyboard, "frameKeyboard");
1177
HOOKUP_OBJECT (frmConnect, lblKeyboardFrame, "lblKeyboardFrame");
1178
HOOKUP_OBJECT (frmConnect, tblKeyboard, "tblKeyboard");
1179
HOOKUP_OBJECT (frmConnect, lblKeyboard, "lblKeyboard");
1180
HOOKUP_OBJECT (frmConnect, optKeyboard, "optKeyboard");
1181
HOOKUP_OBJECT (frmConnect, mnuKeyboard, "mnuKeyboard");
1182
HOOKUP_OBJECT (frmConnect, miKeyboard, "miKeyboard");
1183
HOOKUP_OBJECT (frmConnect, lblKeyboardLang, "lblKeyboardLang");
1184
HOOKUP_OBJECT (frmConnect, cboKeyboardLang, "cboKeyboardLang");
1185
HOOKUP_OBJECT (frmConnect, txtKeyboardLang, "txtKeyboardLang");
1186
HOOKUP_OBJECT (frmConnect, imgKeyboard, "imgKeyboard");
1189
// Program Tab Widgets
1190
HOOKUP_OBJECT (frmConnect, lblProgramsTab1, "lblProgramsTab1");
1192
// Program Frame Widgets
1193
HOOKUP_OBJECT (frmConnect, frameProgram, "frameProgram");
1194
HOOKUP_OBJECT (frmConnect, lblProgramFrame, "lblProgramFrame");
1195
HOOKUP_OBJECT (frmConnect, tblProgram, "tblProgram");
1196
HOOKUP_OBJECT (frmConnect, chkStartProgram, "chkStartProgram");
1197
HOOKUP_OBJECT (frmConnect, imgProgram, "imgProgram");
1198
HOOKUP_OBJECT (frmConnect, lblProgramPath, "lblProgramPath");
1199
HOOKUP_OBJECT (frmConnect, txtProgramPath, "txtProgramPath");
1200
HOOKUP_OBJECT (frmConnect, lblStartFolder, "lblStartFolder");
1201
HOOKUP_OBJECT (frmConnect, txtStartFolder, "txtStartFolder");
1203
// Performance Tab Widgets
1204
HOOKUP_OBJECT (frmConnect, lblPerformanceTab1, "lblPerformanceTab1");
1206
// Performance Frame Widgets
1207
HOOKUP_OBJECT (frmConnect, framePerform, "framePerform");
1208
HOOKUP_OBJECT (frmConnect, lblPerformFrame, "lblPerformFrame");
1209
HOOKUP_OBJECT (frmConnect, tblPerform, "tblPerform");
1210
HOOKUP_OBJECT (frmConnect, imgPerform, "imgPerform");
1211
HOOKUP_OBJECT (frmConnect, lblPerformanceOptions, "lblPerformanceOptions");
1212
HOOKUP_OBJECT (frmConnect, vbxExpChecks, "vbxExpChecks");
1213
HOOKUP_OBJECT (frmConnect, chkDesktopBackground, "chkDesktopBackground");
1214
HOOKUP_OBJECT (frmConnect, chkWindowContent, "chkWindowContent");
1215
HOOKUP_OBJECT (frmConnect, chkAnimation, "chkAnimation");
1216
HOOKUP_OBJECT (frmConnect, chkThemes, "chkThemes");
1217
HOOKUP_OBJECT (frmConnect, chkBitmapCache, "chkBitmapCache");
1218
HOOKUP_OBJECT (frmConnect, chkNoMotionEvents, "chkNoMotionEvents");
1219
HOOKUP_OBJECT (frmConnect, chkEnableWMKeys, "chkEnableWMKeys");
1220
HOOKUP_OBJECT (frmConnect, chkHideWMDecorations, "chkHideWMDecorations");
1222
// Complete Button Box Widgets
1223
HOOKUP_OBJECT (frmConnect, hbbAppOps, "hbbAppOps");
1224
HOOKUP_OBJECT (frmConnect, btnConnect, "btnConnect");
1225
HOOKUP_OBJECT (frmConnect, alnConnect, "alnConnect");
1226
HOOKUP_OBJECT (frmConnect, hbxConnect, "hbxConnect");
1227
HOOKUP_OBJECT (frmConnect, imgConnect, "imgConnect");
1228
HOOKUP_OBJECT (frmConnect, lblConnect, "lblConnect");
1229
HOOKUP_OBJECT (frmConnect, btnQuit, "btnQuit");
1230
HOOKUP_OBJECT (frmConnect, btnHelp, "btnHelp");
1232
// disable the keyboard opts until they are supported
1233
gtk_widget_set_sensitive (optKeyboard, FALSE);
1235
// toggle the start program thingy to false. will be set after this by loading.
1236
gtk_toggle_button_set_active ((GtkToggleButton*) chkStartProgram, FALSE);
1237
gtk_widget_set_sensitive (txtProgramPath, FALSE);
1238
gtk_widget_set_sensitive (txtStartFolder, FALSE);
1240
gtk_widget_set_sensitive (alnSize, FALSE);
1241
gtk_toggle_button_set_active ((GtkToggleButton*) chkAltFullSwitch, FALSE);
1242
gtk_widget_set_sensitive (alnAltFullSwitch, FALSE);
1243
gtk_widget_set_sensitive (alnColor, FALSE);
1245
gtk_widget_show_all (frmConnect);
1247
// load mru & profile launcher
1248
mru_to_screen (frmConnect);
1249
rdp_load_profile_launcher (frmConnect);
1251
gtk_widget_hide (chkDesktopBackground);
1252
gtk_widget_hide (chkWindowContent);
1253
gtk_widget_hide (chkAnimation);
1254
gtk_widget_hide (chkThemes);
1256
gConnect = frmConnect;
1258
//return frmConnect;
1263
/***************************************
1267
***************************************/
1272
on_btnConnect_clicked (GtkButton *button,
1275
GtkWidget *main_window;
1276
rdp_file *rdp = NULL;
1278
#ifdef TSCLIENT_DEBUG
1279
printf ("on_btnConnect_clicked\n");
1282
main_window = lookup_widget((GtkWidget*)button, "frmConnect");
1284
rdp = g_new0 (rdp_file, 1);
1285
rdp_file_init (rdp);
1286
rdp_file_get_screen (rdp, main_window);
1287
// save the damn thing as last
1288
rdp_file_save (rdp, g_build_path ("/", tsc_home_path(), "last.tsc", NULL));
1290
gtk_widget_hide (main_window);
1291
gtk_widget_destroy (main_window);
1293
if (tsc_launch_remote (rdp, 0) == 0) {
1294
mru_add_server (rdp->full_address);
1296
// recreate the main window
1297
create_frmConnect ();
1298
rdp_file_set_screen (rdp, gConnect);
1304
on_btnQuit_clicked (GtkButton *button,
1307
GtkWidget *main_window;
1308
rdp_file *rdp_last = NULL;
1310
#ifdef TSCLIENT_DEBUG
1311
printf ("on_btnQuit_clicked\n");
1314
main_window = gConnect;
1315
gtk_widget_hide (main_window);
1317
// save the damn thing
1318
rdp_last = g_new0 (rdp_file, 1);
1319
rdp_file_init (rdp_last);
1320
rdp_file_get_screen (rdp_last, main_window);
1321
rdp_file_save (rdp_last, g_build_path ("/", tsc_home_path(), "last.tsc", NULL));
1329
on_btnHelp_clicked (GtkButton *button,
1332
tsc_about_dialog ();
1337
on_optSize1_clicked (GtkButton *button,
1340
GtkWidget *aln_size, *aln_afss;
1342
aln_size = lookup_widget (gConnect, "alnSize");
1343
aln_afss = lookup_widget (gConnect, "alnAltFullSwitch");
1345
gtk_widget_set_sensitive (aln_size, FALSE);
1346
gtk_widget_set_sensitive (aln_afss, FALSE);
1351
on_optSize2_clicked (GtkButton *button,
1354
GtkWidget *aln_size, *aln_afss;
1356
aln_size = lookup_widget (gConnect, "alnSize");
1357
aln_afss = lookup_widget (gConnect, "alnAltFullSwitch");
1358
gtk_widget_set_sensitive (aln_size, TRUE);
1359
gtk_widget_set_sensitive (aln_afss, FALSE);
1364
on_optSize3_clicked (GtkButton *button,
1367
GtkWidget *aln_size, *aln_afss;
1369
aln_size = lookup_widget (gConnect, "alnSize");
1370
aln_afss = lookup_widget (gConnect, "alnAltFullSwitch");
1371
gtk_widget_set_sensitive (aln_size, FALSE);
1372
gtk_widget_set_sensitive (aln_afss, TRUE);
1377
on_optColor1_clicked (GtkButton *button,
1380
GtkWidget *aln_color;
1382
aln_color = lookup_widget (gConnect, "alnColor");
1383
gtk_widget_set_sensitive (aln_color, FALSE);
1388
on_optColor2_clicked (GtkButton *button,
1391
GtkWidget *aln_color;
1393
aln_color = lookup_widget (gConnect, "alnColor");
1394
gtk_widget_set_sensitive (aln_color, TRUE);
1398
on_btnSaveAs_clicked (GtkButton *button,
1401
GtkWidget *save_selector = NULL;
1402
GtkWidget *main_window;
1403
rdp_file *rdp = NULL;
1405
save_selector = gtk_file_selection_new ("Select File");
1406
gtk_widget_set_name (save_selector, "save_selector");
1407
gtk_container_set_border_width (GTK_CONTAINER (save_selector), 12);
1408
gtk_window_set_position (GTK_WINDOW (save_selector), GTK_WIN_POS_CENTER);
1409
gtk_window_set_modal (GTK_WINDOW (save_selector), TRUE);
1410
gtk_window_set_destroy_with_parent (GTK_WINDOW (save_selector), TRUE);
1411
gtk_window_set_title ((GtkWindow*) save_selector, _("Input a filename to save as..."));
1412
gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (save_selector));
1413
gtk_file_selection_set_select_multiple (GTK_FILE_SELECTION (save_selector), FALSE);
1414
gtk_window_set_icon (GTK_WINDOW (save_selector), create_pixbuf ("tsclient.png"));
1415
gtk_widget_grab_default (GTK_FILE_SELECTION (save_selector)->ok_button);
1416
gtk_file_selection_set_filename (GTK_FILE_SELECTION (save_selector), g_build_path ("/", tsc_home_path(), "/", NULL));
1418
if (gtk_dialog_run (GTK_DIALOG (save_selector)) == GTK_RESPONSE_OK) {
1419
gchar *filename = (gchar*)gtk_file_selection_get_filename (GTK_FILE_SELECTION (save_selector));
1421
#ifdef TSCLIENT_DEBUG
1422
printf ("filename: %s\n", filename);
1424
main_window = lookup_widget((GtkWidget*)button, "frmConnect");
1426
rdp = g_new0 (rdp_file, 1);
1427
rdp_file_init (rdp);
1428
rdp_file_get_screen (rdp, main_window);
1429
rdp_file_save (rdp, filename);
1433
gtk_widget_destroy (GTK_WIDGET (save_selector));
1439
on_btnOpen_clicked (GtkButton *button,
1442
GtkWidget *open_selector = NULL;
1443
GtkWidget *main_window;
1444
rdp_file *rdp = NULL;
1446
open_selector = gtk_file_selection_new ("Select File");
1447
gtk_widget_set_name (open_selector, "open_selector");
1448
gtk_container_set_border_width (GTK_CONTAINER (open_selector), 12);
1449
gtk_window_set_position (GTK_WINDOW (open_selector), GTK_WIN_POS_CENTER);
1450
gtk_window_set_modal (GTK_WINDOW (open_selector), TRUE);
1451
gtk_window_set_destroy_with_parent (GTK_WINDOW (open_selector), TRUE);
1452
gtk_window_set_title ((GtkWindow*) open_selector, _("Choose an RDP file to open..."));
1453
gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (open_selector));
1454
gtk_file_selection_set_select_multiple (GTK_FILE_SELECTION (open_selector), FALSE);
1455
gtk_window_set_icon (GTK_WINDOW (open_selector), create_pixbuf ("tsclient.png"));
1456
gtk_widget_grab_default (GTK_FILE_SELECTION (open_selector)->ok_button);
1457
gtk_file_selection_set_filename (GTK_FILE_SELECTION (open_selector), g_build_path ("/", tsc_home_path(), "/", NULL));
1459
if (gtk_dialog_run (GTK_DIALOG (open_selector)) == GTK_RESPONSE_OK) {
1460
gchar *filename = (gchar*)gtk_file_selection_get_filename (GTK_FILE_SELECTION (open_selector));
1462
#ifdef TSCLIENT_DEBUG
1463
printf ("filename: %s\n", filename);
1465
main_window = lookup_widget((GtkWidget*)button, "frmConnect");
1466
// check for file in ~/
1467
if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
1469
rdp = g_new0 (rdp_file, 1);
1470
rdp_file_init (rdp);
1471
rdp_file_load (rdp, filename);
1472
rdp_file_set_screen (rdp, main_window);
1477
gtk_widget_destroy (GTK_WIDGET (open_selector));
1483
on_btnProtoFile_clicked (GtkButton *button,
1486
GtkWidget *open_selector = NULL;
1487
GtkWidget *main_window, *proto_file;
1490
open_selector = gtk_file_selection_new ("Select File");
1491
gtk_widget_set_name (open_selector, "open_selector");
1492
gtk_container_set_border_width (GTK_CONTAINER (open_selector), 12);
1493
gtk_window_set_position (GTK_WINDOW (open_selector), GTK_WIN_POS_CENTER);
1494
gtk_window_set_modal (GTK_WINDOW (open_selector), TRUE);
1495
gtk_window_set_destroy_with_parent (GTK_WINDOW (open_selector), TRUE);
1496
gtk_window_set_title ((GtkWindow*) open_selector, _("Choose an RDP file to open..."));
1497
gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (open_selector));
1498
gtk_file_selection_set_select_multiple (GTK_FILE_SELECTION (open_selector), FALSE);
1499
gtk_window_set_icon (GTK_WINDOW (open_selector), create_pixbuf ("tsclient.png"));
1500
gtk_widget_grab_default (GTK_FILE_SELECTION (open_selector)->ok_button);
1501
gtk_file_selection_set_filename (GTK_FILE_SELECTION (open_selector), g_build_path ("/", tsc_home_path(), "/", NULL));
1503
if (gtk_dialog_run (GTK_DIALOG (open_selector)) == GTK_RESPONSE_OK) {
1504
gchar *filename = (gchar*)gtk_file_selection_get_filename (GTK_FILE_SELECTION (open_selector));
1506
#ifdef TSCLIENT_DEBUG
1507
printf ("filename: %s\n", filename);
1509
main_window = lookup_widget((GtkWidget*)button, "frmConnect");
1510
proto_file = lookup_widget((GtkWidget*)main_window, "txtProtoFile");
1511
gtk_editable_delete_text ((GtkEditable*) proto_file, 0, -1);
1512
gtk_editable_insert_text((GtkEditable*) proto_file, filename, strlen(filename), &pos);
1515
gtk_widget_destroy (GTK_WIDGET (open_selector));
1521
on_chkStartProgram_toggled (GtkToggleButton *togglebutton,
1524
GtkWidget *txtProgramPath, *txtStartFolder;
1525
txtProgramPath = lookup_widget (GTK_WIDGET (gConnect), "txtProgramPath");
1526
txtStartFolder = lookup_widget (GTK_WIDGET (gConnect), "txtStartFolder");
1528
if (gtk_toggle_button_get_active (togglebutton)) {
1529
gtk_widget_set_sensitive (txtProgramPath, TRUE);
1530
gtk_widget_set_sensitive (txtStartFolder, TRUE);
1532
gtk_widget_set_sensitive (txtProgramPath, FALSE);
1533
gtk_widget_set_sensitive (txtStartFolder, FALSE);
1539
on_protocol_changed (GtkMenuItem *menuitem, gpointer user_data)
1541
GtkWidget *main_win;
1542
main_win = lookup_widget (GTK_WIDGET (menuitem), "frmConnect");
1543
tsc_set_protocol_widgets (main_win, (gint)user_data);