Skip to content

Commit 241e7aa

Browse files
committed
Added more features
1 parent d497e34 commit 241e7aa

File tree

4 files changed

+313
-90
lines changed

4 files changed

+313
-90
lines changed

src/functions.c

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,6 @@ void preparePort() {
3030
}
3131
}
3232

33-
char windowGeo[32];
34-
void prepareWindowGeo() {
35-
sprintf(width, "%s", gtk_entry_get_text(GTK_ENTRY(widthEntry)));
36-
sprintf(height, "%s", gtk_entry_get_text(GTK_ENTRY(heightEntry)));
37-
trimSpaces(width);
38-
trimSpaces(height);
39-
if(strcmp(width, "") != 0 && strcmp(height, "") != 0) {
40-
sprintf(windowGeo, "-g %sx%s ", width, height);
41-
}
42-
}
43-
4433
char user[255];
4534
void prepareUsername() {
4635
sprintf(username, "%s", gtk_entry_get_text(GTK_ENTRY(usernameEntry)));
@@ -63,39 +52,68 @@ void prepareDomain() {
6352
}
6453
}
6554

66-
char pass[255];
67-
void preparePassword() {
68-
sprintf(password, "%s", gtk_entry_get_text(GTK_ENTRY(passwordEntry)));
69-
trimSpaces(password);
70-
if(strcmp(password, "") != 0) {
71-
sprintf(pass, "-p %s ", password);
72-
} else {
73-
sprintf(pass, "%s", "");
55+
char windowGeo[32];
56+
void prepareWindowGeo() {
57+
sprintf(width, "%s", gtk_entry_get_text(GTK_ENTRY(widthEntry)));
58+
sprintf(height, "%s", gtk_entry_get_text(GTK_ENTRY(heightEntry)));
59+
trimSpaces(width);
60+
trimSpaces(height);
61+
if(strcmp(width, "") != 0 && strcmp(height, "") != 0) {
62+
sprintf(windowGeo, "-g %sx%s ", width, height);
7463
}
7564
}
7665

77-
void setKeymap() {
78-
sprintf(keymap, "-k %s ", gtk_combo_box_text_get_active_text(keymapInput));
66+
void getExtraRDA() {
67+
68+
sprintf(extraRDA, "%s", ""); // Reset extraRDA.
69+
70+
sprintf(extraRDA, "%s-k %s ", extraRDA, gtk_combo_box_text_get_active_text(keymapInput));
71+
72+
sprintf(extraRDA, "%s-x %s ", extraRDA, gtk_combo_box_text_get_active_text(experienceInput));
73+
74+
sprintf(extraRDA, "%s-a %s ", extraRDA, gtk_combo_box_text_get_active_text(bppInput));
75+
76+
if(gtk_switch_get_state(GTK_SWITCH(fullscreenSwitch))) {
77+
sprintf(extraRDA, "%s%s", extraRDA, "-f ");
78+
}
79+
80+
if(gtk_switch_get_state(GTK_SWITCH(encryptionSwitch))) {
81+
sprintf(extraRDA, "%s%s", extraRDA, "-E ");
82+
}
83+
84+
if(gtk_switch_get_state(GTK_SWITCH(compressionSwitch))) {
85+
sprintf(extraRDA, "%s%s", extraRDA, "-z ");
86+
}
87+
88+
if(gtk_switch_get_state(GTK_SWITCH(bitmapSwitch))) {
89+
sprintf(extraRDA, "%s%s", extraRDA, "-P ");
90+
}
91+
92+
if(gtk_switch_get_state(GTK_SWITCH(numlockSync))) {
93+
sprintf(extraRDA, "%s%s", extraRDA, "-N ");
94+
}
95+
96+
sprintf(extraRDA, "%s%s", extraRDA, gtk_entry_get_text(GTK_ENTRY(extraArgsEntry)));
97+
7998
}
8099

81100
void prepareConnectString() {
82-
sprintf(extraArgs, "%s", gtk_entry_get_text(GTK_ENTRY(extraArgsEntry)));
83-
sprintf(connectString, "rdesktop %s%s%s%s%s%s %s:%s &", user, dom, pass, windowGeo, keymap, extraArgs, ip, port);
84-
101+
sprintf(connectString, "rdesktop %s%s%s%s %s:%s &", user, dom, windowGeo, extraRDA, ip, port);
85102
}
86103

87104
void connectRDP() {
88105
prepareIP();
89106
preparePort();
90107
if(allowConnect) {
91-
prepareWindowGeo();
92108
prepareUsername();
93109
prepareDomain();
94-
preparePassword();
95-
setKeymap();
110+
prepareWindowGeo();
111+
getExtraRDA();
96112
prepareConnectString();
97113
printf("%s\n", connectString);
98-
system(connectString);
114+
if(!DEV) {
115+
system(connectString);
116+
}
99117
allowConnect = 0;
100118
}
101119
}

src/main.c

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,40 @@ int main(int argc, char *argv[])
1616
gtk_builder_add_from_resource(builder, "/net/olback/rdg/src/rdg.glade", NULL);
1717

1818
window = GTK_WIDGET(gtk_builder_get_object(builder, "main"));
19-
dialog = GTK_WIDGET(gtk_builder_get_object(builder, "dialog"));
20-
2119
ipEntryA = GTK_ENTRY(gtk_builder_get_object(builder, "ip"));
2220
portEntry = GTK_ENTRY(gtk_builder_get_object(builder, "port"));
2321
widthEntry = GTK_ENTRY(gtk_builder_get_object(builder, "width"));
2422
heightEntry = GTK_ENTRY(gtk_builder_get_object(builder, "height"));
2523
usernameEntry = GTK_ENTRY(gtk_builder_get_object(builder, "username"));
2624
domainEntry = GTK_ENTRY(gtk_builder_get_object(builder, "domain"));
27-
passwordEntry = GTK_ENTRY(gtk_builder_get_object(builder, "password"));
28-
extraArgsEntry = GTK_ENTRY(gtk_builder_get_object(builder, "extraArgs"));
2925
keymapInput = GTK_COMBO_BOX_TEXT(gtk_builder_get_object(builder, "keymap"));
26+
devMode = GTK_LABEL(gtk_builder_get_object(builder, "dev"));
3027

31-
gtk_window_set_title(GTK_WINDOW(window), "rDesktop GUI");
28+
dialog = GTK_WIDGET(gtk_builder_get_object(builder, "dialog"));
29+
experienceInput = GTK_COMBO_BOX_TEXT(gtk_builder_get_object(builder, "experience"));
30+
bppInput = GTK_COMBO_BOX_TEXT(gtk_builder_get_object(builder, "bpp"));
31+
fullscreenSwitch = GTK_SWITCH(gtk_builder_get_object(builder, "fullscreen"));
32+
encryptionSwitch = GTK_SWITCH(gtk_builder_get_object(builder, "encryption"));
33+
compressionSwitch = GTK_SWITCH(gtk_builder_get_object(builder, "compression"));
34+
bitmapSwitch = GTK_SWITCH(gtk_builder_get_object(builder, "cacheBitmaps"));
35+
numlockSync = GTK_SWITCH(gtk_builder_get_object(builder, "numlockSync"));
36+
extraArgsEntry = GTK_ENTRY(gtk_builder_get_object(builder, "extraArgs"));
3237

3338
gtk_builder_connect_signals(builder, NULL);
3439
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
3540

3641
g_object_unref(builder);
3742

43+
if(DEV) {
44+
char devModeText[] = "DEV MODE";
45+
sprintf(title, "%s %s", title, devModeText);
46+
gtk_label_set_text(GTK_LABEL(devMode), devModeText);
47+
gtk_window_set_title(GTK_WINDOW(window), title);
48+
printf("%s\n", devModeText);
49+
} else {
50+
gtk_window_set_title(GTK_WINDOW(window), title);
51+
}
52+
3853
gtk_widget_show(window);
3954

4055
gtk_main();

0 commit comments

Comments
 (0)