⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 remoteserv.h~

📁 LINUX 2.4下面使用GTK书写的一个系统控制面板
💻 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 + -