📄 callbacks.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 + -