📄 view&model_rc.c~
字号:
/* define the content of model */enum{/* COL_ICON=0, */ COL_PROCESS_NAME=0, COL_STAT, COL_VM_SIZE, COL_CPU_USED, COL_ID, COL_ENVIRON, COL_PARAM, COL_TPS, COL_RSS, COL_SHARED_PAGES, COL_EXISTED, NUM_COLS};void stat_cell_data_func(GtkTreeViewColumn *col,GtkCellRenderer ,*renderer,GtkTreeModel *model,GtkTreeIter *iter,gpointer ,user_data){ gchar status; gchar buf[13]; gtk_tree_model_get(model,iter,COL_STAT,&status,-1); switch((char)status){ case 'R': g_object_set(renderer,"text","running",NULL); break; case 'S': g_object_set(renderer,"text","sleeping",NULL); break; case 'D': g_object_set(renderer,"text","disk sleep",NULL); break; case 'T': g_object_set(renderer,"text","stopped",NULL); break; case 'Z': g_object_set(renderer,"text","zombie",NULL); break; case 'X': g_object_set(renderer,"text","dead",NULL); break; default: ; }}void vmsz_cell_data_func(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data){ unsigned int vmsz; float temp; gchar buf[10]; gtk_tree_model_get(model,iter,COL_VM_SIZE,&vmsz,-1); temp=vmsz/100.0; if(temp<1){ g_snprintf(buf,sizeof(buf),"%d KB",vmsz); } else{ g_snprintf(buf,sizeof(buf),"%.1f MB",temp); } g_object_set(renderer,"text",buf,NULL);} GtkWidget *create_treeview(void){ GtkTreeViewColumn *col; GtkCellRenderer *renderer; GtkWidget *view; view=gtk_tree_view_new(); /* ---Column #0--- */ col=gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col,"Process Name");/* renderer=gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(col,renderer,FALSE); gtk_tree_view_column_set_attributes(col,renderer, "pixbuf",COL_ICON, NULL);*/ renderer=gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col,renderer,TRUE); gtk_tree_view_column_set_attributes(col,renderer, "text",COL_PROCESS_NAME, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view),col); /* ---Column #1--- */ col=gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col,"Status"); renderer=gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col,renderer,TRUE); gtk_tree_view_column_set_cell_data_func(col,renderer,stat_cell_data_func,NULL,NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view),col); /* ---Column #2--- */ col=gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col,"VMsize"); renderer=gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col,renderer,TRUE); gtk_tree_view_column_set_cell_data_func(col,renderer,vmsz_cell_data_func,NULL,NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view),col); /* ---Column #3--- */ col=gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col,"%CPU"); renderer=gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col,renderer,TRUE); gtk_tree_view_column_set_attributes(col,renderer, "text",COL_CPU_USED, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view),col); /* ---Column #4--- */ col=gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col,"ID"); renderer=gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col,renderer,TRUE); gtk_tree_view_column_set_attributes(col,renderer, "text",COL_ID, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view),col); /* ---Column #5--- */ col=gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col,"Environment"); renderer=gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col,renderer,TRUE); gtk_tree_view_column_set_attributes(col,renderer, "text",COL_ENVIRON, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view),col); /* ---Column #6--- */ col=gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col,"Parameter"); renderer=gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col,renderer,TRUE); gtk_tree_view_column_set_attributes(col,renderer, "text",COL_PARAM, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view),col);/* g_signal_connect(view,"row-activated",(GCallback)view_onRowActivated,NULL); g_signal_connect(view,"row-changed",(GCallback)view_onRowChanged,NULL); g_signal_connect(view,"row-deleted",(GCallback)view_onRowDeleted,NULL);*/ gtk_widget_show_all(view); return view;}GtkTreeModel *create_model(void){ GtkTreeStore *treestore; GtkTreeIter toplevel; treestore=gtk_tree_store_new(NUM_COLS,/*GDK_TYPE_PIXBUF,*/ G_TYPE_STRING, G_TYPE_CHAR, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_BOOLEAN); gtk_tree_store_append(treestore,&toplevel,NULL); gtk_tree_store_set(treestore,&toplevel, COL_PROCESS_NAME,"testName", COL_STAT,'R', COL_VM_SIZE,0, COL_CPU_USED,0, COL_ID,0, COL_ENVIRON,"test:environ", COL_PARAM,"-t", COL_TPS,0, COL_RSS,0, COL_SHARED_PAGES,0, COL_EXISTED,FALSE,/* funcs as before, indicating the addition proc existed, which should not be removed */ -1); return GTK_TREE_MODEL(treestore);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -