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

📄 callbacks.c~

📁 一个在LINUX下写的用gcc编译的进程管理程序
💻 C~
字号:
#ifdef HAVE_CONFIG_H#  include <config.h>#endif#define GTK_ENABLE_BROKEN//在文本构件中使用#include "dirent.h"#include "fcntl.h"#include "time.h"#include  "math.h"#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <string.h>#include <stdio.h>#include "sys/file.h"#include <stdlib.h>#include <gdk/gdkkeysyms.h>#include <gtk/gtk.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <string.h>#include <stdio.h>#include<time.h>#include <gdk/gdkkeysyms.h>#include <gtk/gtk.h>#define GLADE_HOOKUP_OBJECT(component,widget,name) \  g_object_set_data_full (G_OBJECT (component), name, \    gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \  g_object_set_data (G_OBJECT (component), name, widget)#include <gdk/gdkkeysyms.h>#include <gtk/gtk.h>#include "callbacks.h"#include "interface.h"#include "support.h"GtkWidget *entry;GtkWidget *entry1; GtkWidget *entry2; int timer;voidon_ID_activate                         (GtkEntry        *entry,                                        gpointer         user_data){       }void show1(GtkWidget *textview1){    int fd;    char buf[1000],buf1[1000]="";    char *p;    char buffer[80];     const gchar *entry_text;    entry_text = gtk_entry_get_text (GTK_ENTRY (entry));    	    strcpy(buffer,"/proc/");     strcat (buffer,entry_text);                 strcat (buffer,"/status");        fd=open(buffer,O_RDONLY);     read(fd,buf,1000);    strcat(buf1,strtok(buf,"\n"));    while(p=strtok(NULL,"\n")){        strcat(buf1,"\n");	         strcat(buf1,p);	 			    }    gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview1)), buf1, -1);}on_search_activate                     (GtkButton       *button,                                        gpointer         user_data){  GtkWidget *dialog1;  GtkWidget *dialog_vbox1;  GtkWidget *scrolledwindow1;  GtkWidget *textview1;  GtkWidget *dialog_action_area1;   dialog1 = gtk_dialog_new ();  gtk_widget_set_size_request (dialog1, 350, 400);  gtk_window_set_title (GTK_WINDOW (dialog1), _("\350\257\245\350\277\233\347\250\213\347\232\204\345\234\250\350\257\246\347\273\206\344\277\241\346\201\257"));  gtk_window_set_position (GTK_WINDOW (dialog1), GTK_WIN_POS_CENTER_ALWAYS);  gtk_window_set_resizable (GTK_WINDOW (dialog1), FALSE);  gtk_window_set_type_hint (GTK_WINDOW (dialog1), GDK_WINDOW_TYPE_HINT_DIALOG);   g_signal_connect (G_OBJECT (dialog1), "destroy",	              G_CALLBACK (gtk_main_quit), NULL);    g_signal_connect (G_OBJECT (dialog1), "delete_event",	 	      G_CALLBACK (gtk_main_quit), NULL);  dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;  gtk_widget_show (dialog_vbox1);  scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);  gtk_widget_show (scrolledwindow1);  gtk_box_pack_start (GTK_BOX (dialog_vbox1), scrolledwindow1, TRUE, TRUE, 0);  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_IN);  textview1 = gtk_text_view_new ();  gtk_widget_show (textview1);  gtk_container_add (GTK_CONTAINER (scrolledwindow1), textview1);  show1(textview1);    dialog_action_area1 = GTK_DIALOG (dialog1)->action_area;   gtk_widget_show (dialog_action_area1);  gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);  /* Store pointers to all widgets, for use by lookup_widget(). */  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog1, "dialog1");  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_vbox1, "dialog_vbox1");  GLADE_HOOKUP_OBJECT (dialog1, scrolledwindow1, "scrolledwindow1");  GLADE_HOOKUP_OBJECT (dialog1, textview1, "textview1");  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_action_area1, "dialog_action_area1");  gtk_widget_show (dialog1);  gtk_main ();}voidon_killID_activate                         (GtkEntry        *entry,                                        gpointer         user_data){}voidon_delete_activate                     (GtkButton       *button,                                        gpointer         user_data){    char buffer[80];     const gchar *entry_text;    entry_text = gtk_entry_get_text (GTK_ENTRY (entry1));    strcpy(buffer,"kill -9 ");     strcat (buffer,entry_text);       system(buffer);}voidon_restart_activate                    (GtkMenuItem     *menuitem,                                        gpointer         user_data){	system("reboot");}voidon_poweroff_activate                   (GtkMenuItem     *menuitem,                                        gpointer         user_data){	system("halt");}voidon_quit1_activate                      (GtkMenuItem     *menuitem,                                        gpointer         user_data){	gtk_main_quit();}void delete_event(GtkWidget *window1,gpointer data){//回调函数,退出窗口管理程序    gtk_main_quit();}voidon_serchpro_activate                   (GtkMenuItem     *menuitem,                                        gpointer         user_data){            GtkWidget *dialog1;  GtkWidget *dialog_vbox1;    GtkWidget *dialog_action_area1;  GtkWidget *button1;  dialog1 = gtk_dialog_new ();  gtk_widget_set_size_request (dialog1, 300, 70);  gtk_window_set_title (GTK_WINDOW (dialog1), _("\350\257\267\350\276\223\345\205\245\350\246\201\346\237\245\346\211\276\347\232\204\350\277\233\347\250\213ID"));    g_signal_connect (G_OBJECT (dialog1), "destroy",	              G_CALLBACK (gtk_main_quit), NULL);    g_signal_connect (G_OBJECT (dialog1), "delete_event",	 	      G_CALLBACK (gtk_main_quit), NULL);  gtk_window_set_position (GTK_WINDOW (dialog1), GTK_WIN_POS_CENTER_ALWAYS);  gtk_window_set_resizable (GTK_WINDOW (dialog1), FALSE);  gtk_window_set_type_hint (GTK_WINDOW (dialog1), GDK_WINDOW_TYPE_HINT_DIALOG);  dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;  gtk_widget_show (dialog_vbox1);  entry = gtk_entry_new ();  gtk_widget_show (entry);  gtk_box_pack_start (GTK_BOX (dialog_vbox1), entry, FALSE, FALSE, 0);  gtk_entry_set_invisible_char (GTK_ENTRY (entry), 9679);  dialog_action_area1 = GTK_DIALOG (dialog1)->action_area;  gtk_widget_show (dialog_action_area1);  gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);  button1 = gtk_button_new_with_mnemonic (_("\346\237\245\346\211\276"));  gtk_widget_show (button1);  gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), button1, 0);  GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT);  g_signal_connect ((gpointer) entry, "activate",                    G_CALLBACK (on_ID_activate),                    NULL);  g_signal_connect (G_OBJECT (button1), "clicked",		      G_CALLBACK (on_search_activate), NULL);  /* Store pointers to all widgets, for use by lookup_widget(). */  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog1, "dialog1");  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_vbox1, "dialog_vbox1");  GLADE_HOOKUP_OBJECT (dialog1, entry, "entry");  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_action_area1, "dialog_action_area1");  GLADE_HOOKUP_OBJECT (dialog1, button1, "button1");  gtk_widget_show (dialog1);  gtk_main ();}voidon_killpro_activate                    (GtkMenuItem     *menuitem,                                        gpointer         user_data){    GtkWidget *dialog1;  GtkWidget *dialog_vbox1;  GtkWidget *dialog_action_area1;  GtkWidget *button1;  dialog1 = gtk_dialog_new ();  gtk_widget_set_size_request (dialog1, 400, 70);  gtk_window_set_title (GTK_WINDOW (dialog1), _("Please input the process'ID you want to kill"));    g_signal_connect (G_OBJECT (dialog1), "destroy",	              G_CALLBACK (gtk_main_quit), NULL);    g_signal_connect (G_OBJECT (dialog1), "delete_event",	 	      G_CALLBACK (gtk_main_quit), NULL);  gtk_window_set_position (GTK_WINDOW (dialog1), GTK_WIN_POS_CENTER_ALWAYS);  gtk_window_set_resizable (GTK_WINDOW (dialog1), FALSE);  gtk_window_set_type_hint (GTK_WINDOW (dialog1), GDK_WINDOW_TYPE_HINT_DIALOG);  dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;  gtk_widget_show (dialog_vbox1);  entry1 = gtk_entry_new ();  gtk_widget_show (entry1);  gtk_box_pack_start (GTK_BOX (dialog_vbox1), entry1, FALSE, FALSE, 0);  gtk_entry_set_invisible_char (GTK_ENTRY (entry1), 9679);  dialog_action_area1 = GTK_DIALOG (dialog1)->action_area;  gtk_widget_show (dialog_action_area1);  gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);  button1 = gtk_button_new_with_mnemonic (_("Delete"));  gtk_widget_show (button1);  gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), button1, 0);  GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT);  g_signal_connect ((gpointer) entry1, "activate",                    G_CALLBACK (on_killID_activate),                    NULL);  g_signal_connect ( G_OBJECT (button1), "clicked",		      G_CALLBACK (on_delete_activate), NULL);  /* Store pointers to all widgets, for use by lookup_widget(). */  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog1, "dialog1");  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_vbox1, "dialog_vbox1");  GLADE_HOOKUP_OBJECT (dialog1, entry1, "entry1");  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_action_area1, "dialog_action_area1");  GLADE_HOOKUP_OBJECT (dialog1, button1, "button1");  gtk_widget_show (dialog1);  gtk_main ();}gint show_time(gpointer data){	time_t now;	struct tm *l_time;	gchar buf[100];     	now=time((time_t *)NULL);	l_time=localtime(&now);	sprintf(buf,"\t  %d:%d:%d",l_time->tm_hour,l_time->tm_min,l_time->tm_sec);	gtk_entry_set_text (GTK_ENTRY (entry2), buf);	        return TRUE;}/* 清除分配的内存,删除定时器(timer) */void destroy_progress( GtkWidget *widget,                     GtkWidget *entry){    gtk_timeout_remove (timer);    timer = 0;     entry2= NULL;    gtk_main_quit ();}voidon_comuterinfro_activate               (GtkMenuItem     *menuitem,                                        gpointer         user_data){  GtkWidget *dialog1;  GtkWidget *dialog_vbox1;  GtkWidget *fixed1;   GtkWidget *dialog_action_area1;   dialog1 = gtk_dialog_new ();  gtk_widget_set_size_request (dialog1, 150, 50);  gtk_window_set_title (GTK_WINDOW (dialog1), _("\346\227\266\351\227\264"));  gtk_window_set_position (GTK_WINDOW (dialog1), GTK_WIN_POS_CENTER_ALWAYS);  gtk_window_set_resizable (GTK_WINDOW (dialog1), FALSE);  gtk_window_set_type_hint (GTK_WINDOW (dialog1), GDK_WINDOW_TYPE_HINT_DIALOG);   g_signal_connect (G_OBJECT (dialog1), "destroy",	              G_CALLBACK (gtk_main_quit), NULL);    g_signal_connect (G_OBJECT (dialog1), "delete_event",	 	      G_CALLBACK (gtk_main_quit), NULL);    g_signal_connect (G_OBJECT (dialog1), "destroy",	              G_CALLBACK (destroy_progress),                      NULL);  dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;  gtk_widget_show (dialog_vbox1);  fixed1 = gtk_fixed_new ();  gtk_widget_show (fixed1);  gtk_box_pack_start (GTK_BOX (dialog_vbox1), fixed1, TRUE, TRUE, 0);  entry2 = gtk_entry_new ();  gtk_widget_show (entry2);  gtk_fixed_put (GTK_FIXED (fixed1), entry2, 0, 0);  gtk_widget_set_size_request (entry2, 150, 50);  gtk_entry_set_invisible_char (GTK_ENTRY (entry2), 9679);  gtk_editable_set_editable(GTK_EDITABLE (entry2),FALSE);   dialog_action_area1 = GTK_DIALOG (dialog1)->action_area;  gtk_widget_show (dialog_action_area1);  gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);  /* Store pointers to all widgets, for use by lookup_widget(). */  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog1, "dialog1");  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_vbox1, "dialog_vbox1");  GLADE_HOOKUP_OBJECT (dialog1, fixed1, "fixed1");  GLADE_HOOKUP_OBJECT (dialog1, entry2, "entry2");  GLADE_HOOKUP_OBJECT_NO_REF (dialog1, dialog_action_area1, "dialog_action_area1");    gtk_widget_show (dialog1);   timer = gtk_timeout_add (1000, show_time, NULL);  gtk_main ();}voidon_about1_activate                     (GtkMenuItem     *menuitem,                                        gpointer         user_data){}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -