#define GTK_ENABLE_BROKEN
#include<gtk/gtk.h>
#include<stdio.h>
#include"dirent.h"
#include"unistd.h"
#include"sys/file.h"
#include"fcntl.h"
#include"string.h"
#include"time.h"
#include"math.h"
#include<stdlib.h>
#include<sys/time.h>
#include<gdk/gdk.h>
#define PMAX 100 //最大进程数目
enum//进程界面的枚举类型
{
NAME_COLUMN,//进程名列
NP_COLUMNS
};
int USER,NICE,SYSTEM,IDLE;
char *title=" 进程信息 ";
gint s_total = 0;
gint r_total = 0;
gdouble pfuser[PMAX];
gdouble rate = 0;//cpu 使用率
GtkWidget *window;//主窗口
GtkWidget *notebook;//notebook控件
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *label;
GtkWidget *mem_bar;
GtkWidget *cpu_bar;
GtkWidget *swap_bar;
GtkWidget *info_label;
GString *info;
GtkWidget *status_bar0;
GtkWidget *mem_label;
GtkWidget *swap_label;
GtkWidget *scrolled_window;
GtkListStore *process_store;
GtkWidget *ptree_view;
GtkCellRenderer *renderer;//用于显示tree view中的每个列标题
GtkCellRenderer *drenderer;
GtkCellRenderer *mrenderer;
GtkTreeViewColumn *column;//tree view控件列数
GtkTreeViewColumn *dcolumn;
GtkTreeViewColumn *mcolumn;
GtkWidget *pdelete_button; //刷新进程按钮和结束进程按钮
GtkWidget *main_vbox;
GtkWidget *bbvbox;
GtkWidget *table;
GtkWidget *table1;//定义表格
GtkWidget *frame;//定义框架
GtkWidget *frame0;
GtkWidget *button[6],*cpu_rate_label,*process_label,*mem_rate_label,*swap_rate_label,*time_label,*s_label,*r_label,*uptime_label;//定义标签
gint length;
GtkWidget *CreateMenuItem(GtkWidget *,char *);//创建菜单项函数
GtkWidget *CreateMenuFile(GtkWidget *);//创建菜单File函数
GtkWidget *CreateMenuShutDown(GtkWidget *);//创建菜单Shutdown函数
GtkWidget *CreateMenuHelp(GtkWidget *);//创建菜单Help函数
void show_dialog (gchar *, gchar *);
void get_cpu_info (GString *);
void draw_cpu_load_graph (void);
void draw_mem_load_graph (void);
gint uptime(void);//计算系统开机时间和运行时间
gint mem_timeout(void);//
gint pro_timeout(void);//
gint sys_time(void);//计算系统时间
void get_process_info (GtkListStore *);
void get_disk_info (GtkListStore *);
void prefresh_button_clicked2 (gpointer data);
void pdelete_button_clicked (gpointer data);
void notebook_pro_init(void);//进程页面初始化
int select_name(char name[]){
int i;
for(i=0;name[i]!=0;i++)
if(i
基于GTK3.0的任务管理器
最新推荐文章于 2024-08-14 16:59:39 发布