📄 remoteserv.h~
字号:
#ifndef RSCONFIG_H
#define RSCONFIG_H#include <ctype.h>#include <gtk/gtk.h>GtkWidget *window_remoteserv;//TWO ENTRYS FOR ENTERING THE IP ADDR OF REMOTE TERMINAL GtkWidget *entry_rs_linux_ip,*entry_rs_windows_ip;GtkWidget *radiobutton_rs_800by600,*radiobutton_rs_1024by768;GtkWidget *radiobutton_rs_cldep_8,*radiobutton_rs_cldep_16;GtkWidget *checkbutton_rs_autologin,*checkbutton_rs_fullscreen;GSList *group;static char rs_cfgfile_data[6][80];static void rsconfig_button_ok( GtkWidget *widget, gpointer callback_data);static gint text_change_1();static gint rsconfig_read_cfgfile (const char *file, char cfgdata[][80]);static gint rsconfig_write_cfgfile (const char *file);//void rsconfig_button_cancel()//{// isShow = FALSE;// gtk_widget_destroy(window_remoteserv);//}static gint rsconfig_read_cfgfile (const char *file, char cfgdata[][80]){ int fd; int offset = 0; char *p = NULL; char *q = NULL; int len, ret = 0; ssize_t n; gchar buffer[400]; if((fd = open (file, O_RDONLY)) == -1){ ret = -1; }else{ while ((n = read(fd, buffer + offset, 400)) > 0){ offset += n; } close(fd); if (n == -1){ ret = -1; }else{ n = 0; p = q = buffer; offset = 0; while ((p = strpbrk(p, "=")) && n < 6){ p = strpbrk(p, " \n"); len = p - q; p = strpbrk(p, "\n"); p++; memcpy (cfgdata[n], q, len); cfgdata[n++][len] = '\0'; q = p; } } } return ret;} static void rsconfig_button_ok( GtkWidget *widget, gpointer callback_data){ if(rsconfig_write_cfgfile("/.admin/remote.conf") == -1 ) { /*error dialog window*/ msg_dialog(GTK_MESSAGE_ERROR, _("IP address error!")); } else { msg_dialog(GTK_MESSAGE_INFO, _("Modify successed!")); mm_widget_destroy((gpointer) "CLOSE",window_remoteserv); }
}static gint text_change_1(){ int ret,ret1; const char *ip_linux,*ip_windows; ip_linux = gtk_entry_get_text(GTK_ENTRY(entry_rs_linux_ip)); ip_windows = gtk_entry_get_text(GTK_ENTRY(entry_rs_windows_ip)); ret = ipadr_check(ip_linux); ret1 = ipadr_check(ip_windows); if((ret == 0) && (ret1 == 0)){ strcpy(strpbrk(rs_cfgfile_data[0], "=")+1 , gtk_entry_get_text(GTK_ENTRY(entry_rs_windows_ip))); strcpy(strpbrk(rs_cfgfile_data[1], "=")+1 , gtk_entry_get_text(GTK_ENTRY(entry_rs_linux_ip))); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radiobutton_rs_800by600))) strcpy(strpbrk(rs_cfgfile_data[2], "=")+1 , "800*600"); else strcpy(strpbrk(rs_cfgfile_data[2], "=")+1 , "1024*768"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radiobutton_rs_cldep_8))) strcpy(strpbrk(rs_cfgfile_data[3], "=")+1 , "8"); else strcpy(strpbrk(rs_cfgfile_data[3], "=")+1 , "16"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_rs_autologin))) strcpy(strpbrk(rs_cfgfile_data[5], "=")+1 , "TRUE"); else strcpy(strpbrk(rs_cfgfile_data[5], "=")+1 , "FALSE"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_rs_fullscreen))) strcpy(strpbrk(rs_cfgfile_data[4], "=")+1 , "TRUE"); else strcpy(strpbrk(rs_cfgfile_data[4], "=")+1 , "FALSE"); } return (ret + ret1);}static gint rsconfig_write_cfgfile (const char *file){ int fd; int i, ret = 0; if (text_change_1() < 0) return -1; if((fd = open (file, O_WRONLY|O_TRUNC)) == -1) { ret = -1; msg_dialog(GTK_MESSAGE_ERROR, "Error when to OPEN \"remote.conf\" file"); } else { for (i = 0; i < 6; i++) { write(fd, rs_cfgfile_data[i], strlen(rs_cfgfile_data[i])); write(fd, "\n", 1); } close(fd); } return ret;} //-------------------THE EVENT TO BE TRIGGERED WHEN YOU TYPE IN SOMETHING-------------------//void insert_text_handler (GtkEntry *entry, const gchar *text, gint length, gint *position, gpointer data){ GtkEditable *editable = GTK_EDITABLE(entry); int i, count=0; gchar *result = g_new (gchar, length); for (i=0; i < length; i++) { if ((text[i] != '1') & (text[i] != '2') & (text[i] != '3') & (text[i] != '4') & (text[i] != '5') & (text[i] != '6') & (text[i] != '7') & (text[i] != '8') & (text[i] != '9') & (text[i] != '0') & (text[i] != '.')) continue; result[count++] = text[i]; } if (count > 0) { g_signal_handlers_block_by_func (G_OBJECT (editable), G_CALLBACK (insert_text_handler), data); gtk_editable_insert_text (editable, result, count, position); g_signal_handlers_unblock_by_func (G_OBJECT (editable), G_CALLBACK (insert_text_handler), data); } g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text"); g_free (result);}GtkWidget *new_window_remoteserv(){ //gtk_init (&argc, &argv); //------------------------WINDOW INITIAL-----------------------------// GtkWidget *tmpEntry; tmpEntry = gtk_entry_new(); rsconfig_read_cfgfile("/.admin/remote.conf", rs_cfgfile_data); GtkWidget *frame1,*frame2,*frame3,*frame4; frame1 = gtk_frame_new("LINUX"); frame2 = gtk_frame_new("WINDOWS"); frame3 = gtk_frame_new("RESOLUTION"); frame4 = gtk_frame_new("DEPTHS"); GtkWidget *vbox1,*hbox1,*hbox2,*hbox3,*vbox_outer,*vbox_inner1,*vbox_inner2; vbox_outer = gtk_vbox_new(FALSE, 0); gtk_box_set_spacing(GTK_BOX(vbox_outer),10); vbox1 = gtk_vbox_new(FALSE, 0); gtk_box_set_spacing(GTK_BOX(vbox1),10); hbox1 = gtk_hbox_new(FALSE, 0); gtk_box_set_spacing(GTK_BOX(hbox1),10); hbox2 = gtk_hbox_new(FALSE, 0); gtk_box_set_spacing(GTK_BOX(hbox2),10); hbox3 = gtk_hbox_new(FALSE, 0); gtk_box_set_spacing(GTK_BOX(hbox3),10); vbox_inner1 = gtk_vbox_new(FALSE, 0); gtk_box_set_spacing(GTK_BOX(vbox_inner1),10); vbox_inner2 = gtk_vbox_new(FALSE, 0); gtk_box_set_spacing(GTK_BOX(vbox_inner2),10); GtkWidget *button_ok,*button_cancel; button_ok = gtk_button_new_from_stock(GTK_STOCK_OK); button_cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL); /* create a new window */ window_remoteserv = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); gtk_window_set_position(GTK_WINDOW(window_remoteserv),GTK_WIN_POS_CENTER); gtk_window_set_title(GTK_WINDOW(window_remoteserv),"REMOTE SERVICE"); gtk_container_set_border_width (GTK_CONTAINER (window_remoteserv), 10); entry_rs_linux_ip = gtk_entry_new(); entry_rs_windows_ip = gtk_entry_new(); radiobutton_rs_800by600 = gtk_radio_button_new_with_label (NULL, "800*600"); group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_rs_800by600)); radiobutton_rs_1024by768 = gtk_radio_button_new_with_label (group, "1024*768"); radiobutton_rs_cldep_8 = gtk_radio_button_new_with_label (NULL, "8"); group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_rs_cldep_8)); radiobutton_rs_cldep_16 = gtk_radio_button_new_with_label (group, "16"); checkbutton_rs_autologin = gtk_check_button_new_with_label ("AUTO LOGIN"); checkbutton_rs_fullscreen = gtk_check_button_new_with_label ("FULL SCREEN"); //vbox1 gtk_widget_show(vbox1); gtk_widget_show(frame1); gtk_widget_show(entry_rs_linux_ip); gtk_entry_set_text(GTK_ENTRY (entry_rs_linux_ip), strpbrk(rs_cfgfile_data[1], "=")+1); gtk_container_add(GTK_CONTAINER(frame1),entry_rs_linux_ip); gtk_container_add(GTK_CONTAINER(vbox1),frame1); gtk_widget_show(frame2); gtk_widget_show(entry_rs_windows_ip); gtk_entry_set_text(GTK_ENTRY (entry_rs_windows_ip), strpbrk(rs_cfgfile_data[0], "=")+1); gtk_container_add(GTK_CONTAINER(frame2),entry_rs_windows_ip); gtk_container_add(GTK_CONTAINER(vbox1),frame2); //hbox1 gtk_widget_show(hbox1); gtk_widget_show(vbox_inner1); gtk_container_add(GTK_CONTAINER(frame3),vbox_inner1); gtk_widget_show(radiobutton_rs_800by600); gtk_container_add(GTK_CONTAINER(vbox_inner1),radiobutton_rs_800by600); gtk_entry_set_text(GTK_ENTRY (tmpEntry), strpbrk(rs_cfgfile_data[2], "=")+1); if (strcmp(gtk_entry_get_text(GTK_ENTRY (tmpEntry)),"800*600") == 0) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radiobutton_rs_800by600),TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radiobutton_rs_1024by768),TRUE); } gtk_widget_show(radiobutton_rs_1024by768); gtk_container_add(GTK_CONTAINER(vbox_inner1),radiobutton_rs_1024by768); gtk_widget_show(frame3); gtk_container_add(GTK_CONTAINER(hbox1),frame3); gtk_widget_show(vbox_inner2); gtk_container_add(GTK_CONTAINER(frame4),vbox_inner2); gtk_widget_show(radiobutton_rs_cldep_8); gtk_entry_set_text(GTK_ENTRY (tmpEntry), strpbrk(rs_cfgfile_data[3], "=")+1); if (strcmp(gtk_entry_get_text(GTK_ENTRY (tmpEntry)),"8") == 0) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radiobutton_rs_cldep_8),TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radiobutton_rs_cldep_16),TRUE); } gtk_container_add(GTK_CONTAINER(vbox_inner2),radiobutton_rs_cldep_8); gtk_widget_show(radiobutton_rs_cldep_16); gtk_container_add(GTK_CONTAINER(vbox_inner2),radiobutton_rs_cldep_16); gtk_widget_show(frame4); gtk_container_add(GTK_CONTAINER(hbox1),frame4); //hbox2 gtk_widget_show(hbox2); gtk_entry_set_text(GTK_ENTRY (tmpEntry), strpbrk(rs_cfgfile_data[5], "=")+1); if (strcmp(gtk_entry_get_text(GTK_ENTRY (tmpEntry)),"TRUE") == 0) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton_rs_autologin),TRUE); } gtk_widget_show(checkbutton_rs_autologin); gtk_container_add(GTK_CONTAINER(hbox2),checkbutton_rs_autologin); gtk_entry_set_text(GTK_ENTRY (tmpEntry), strpbrk(rs_cfgfile_data[4], "=")+1); if (strcmp(gtk_entry_get_text(GTK_ENTRY (tmpEntry)),"TRUE") == 0) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton_rs_fullscreen),TRUE); } gtk_widget_show(checkbutton_rs_fullscreen); gtk_container_add(GTK_CONTAINER(hbox2),checkbutton_rs_fullscreen); //hbox3 gtk_widget_show(hbox3); gtk_widget_show(button_ok); gtk_container_add(GTK_CONTAINER(hbox3),button_ok); gtk_widget_show(button_cancel); gtk_container_add(GTK_CONTAINER(hbox3),button_cancel); // gtk_widget_show(vbox_outer); gtk_container_add(GTK_CONTAINER(vbox_outer),vbox1); gtk_container_add(GTK_CONTAINER(vbox_outer),hbox1); gtk_container_add(GTK_CONTAINER(vbox_outer),hbox2); gtk_container_add(GTK_CONTAINER(vbox_outer),hbox3); gtk_container_add(GTK_CONTAINER(window_remoteserv),vbox_outer); g_signal_connect (G_OBJECT (button_ok), "clicked", G_CALLBACK (rsconfig_button_ok), NULL); g_signal_connect (G_OBJECT (button_cancel), "clicked", G_CALLBACK (mm_widget_destroy), window_remoteserv); //g_signal_connect (G_OBJECT (), "destroy",G_CALLBACK (gtk_main_quit),NULL); g_signal_connect(G_OBJECT(entry_rs_linux_ip), "insert_text",G_CALLBACK(insert_text_handler),NULL); g_signal_connect(G_OBJECT(entry_rs_windows_ip), "insert_text", G_CALLBACK(insert_text_handler), NULL); // g_signal_connect (G_OBJECT(window_remoteserv),"delete_event",G_CALLBACK(mm_widget_destroy),window_remoteserv); g_signal_connect (G_OBJECT (window_remoteserv), "destroy",G_CALLBACK(mm_widget_destroy), window_remoteserv); return window_remoteserv;}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -