diff --git a/po/Makefile.in b/po/Makefile.in index 6498a3a..96824f7 100644 --- a/po/Makefile.in +++ b/po/Makefile.in @@ -28,7 +28,7 @@ top_srcdir = .. top_builddir = .. -prefix = /usr/local +prefix = /opt/xfce4/ exec_prefix = ${prefix} datadir = ${datarootdir} datarootdir = ${prefix}/share @@ -53,7 +53,7 @@ INTLTOOL_EXTRACT = $(top_builddir)/intltool-extract MSGMERGE = XGETTEXT_ARGS="$(XGETTEXT_ARGS)" INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = XGETTEXT_ARGS="$(XGETTEXT_ARGS)" INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot -ALL_LINGUAS = de eu fi fr gl hu ja pl pt_BR ru vi zh_TW +ALL_LINGUAS = cs de eu fi fr gl hu ja pl pt_BR ru vi zh_TW PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) diff --git a/po/xfce4-taskmanager.pot b/po/xfce4-taskmanager.pot index 140b8ff..90fabdd 100644 --- a/po/xfce4-taskmanager.pot +++ b/po/xfce4-taskmanager.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-04-01 17:42+0900\n" +"POT-Creation-Date: 2006-08-25 07:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../src/interface.c:41 ../src/interface.c:246 +#: ../src/interface.c:41 ../src/interface.c:241 msgid "xfce4-taskmanager" msgstr "" @@ -24,58 +24,62 @@ msgstr "" msgid "more details" msgstr "" -#: ../src/interface.c:108 +#: ../src/interface.c:101 msgid "Command" msgstr "" -#: ../src/interface.c:114 +#: ../src/interface.c:107 msgid "PID" msgstr "" -#: ../src/interface.c:120 +#: ../src/interface.c:113 msgid "PPID" msgstr "" -#: ../src/interface.c:126 +#: ../src/interface.c:119 msgid "State" msgstr "" -#: ../src/interface.c:132 +#: ../src/interface.c:125 msgid "VM-Size" msgstr "" -#: ../src/interface.c:138 +#: ../src/interface.c:131 msgid "RSS" msgstr "" -#: ../src/interface.c:144 +#: ../src/interface.c:137 msgid "User" msgstr "" -#: ../src/interface.c:163 +#: ../src/interface.c:143 +msgid "CPU%" +msgstr "" + +#: ../src/interface.c:159 msgid "Stop" msgstr "" -#: ../src/interface.c:167 +#: ../src/interface.c:164 msgid "Continue" msgstr "" -#: ../src/interface.c:171 +#: ../src/interface.c:169 msgid "Term" msgstr "" -#: ../src/interface.c:175 +#: ../src/interface.c:174 msgid "Kill" msgstr "" -#: ../src/interface.c:210 +#: ../src/interface.c:205 msgid "Show user tasks" msgstr "" -#: ../src/interface.c:215 +#: ../src/interface.c:210 msgid "Show root tasks" msgstr "" -#: ../src/interface.c:220 +#: ../src/interface.c:215 msgid "Show other tasks" msgstr "" diff --git a/src/functions.c b/src/functions.c index 8d2734d..23243d5 100644 --- a/src/functions.c +++ b/src/functions.c @@ -102,9 +102,32 @@ gboolean refresh_task_list(void) g_array_free(new_task_list, TRUE); + system_status *sys_stat = g_new (system_status, 1); + get_system_status (sys_stat); + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (mem_usage_progress_bar), 1.0 - ( (gdouble) sys_stat->mem_free / sys_stat->mem_total )); + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (cpu_usage_progress_bar), get_cpu_usage(sys_stat)); + g_free (sys_stat); + return TRUE; } +gdouble get_cpu_usage(system_status *sys_stat) +{ + gdouble cpu_usage = 0.0; + gint i = 0; + + for(i = 0; i < task_array->len; i++) + { + struct task *tmp = &g_array_index(task_array, struct task, i); + cpu_usage += tmp->time_percentage; + } + + cpu_usage = cpu_usage / (sys_stat->cpu_count * 100.0); + + printf("%i\n", sys_stat->cpu_count); + + return cpu_usage; +} /* * configurationfile support diff --git a/src/functions.h b/src/functions.h index 9ef4404..728f0de 100644 --- a/src/functions.h +++ b/src/functions.h @@ -22,6 +22,7 @@ #define FUNCTIONS_H #include +#include #include #include #include @@ -45,6 +46,7 @@ #define PROC_DIR_3 "/proc" gboolean refresh_task_list(void); +gdouble get_cpu_usage(system_status *sys_stat); void send_signal_to_task(gchar *task_id, gchar *signal); /* Configurationfile support */ diff --git a/src/interface.c b/src/interface.c index f3a4a89..4ef6ad7 100644 --- a/src/interface.c +++ b/src/interface.c @@ -36,7 +36,9 @@ GtkWidget* create_main_window (void) GtkWidget *button1; GtkWidget *button2; GtkWidget *button3; - + + GtkWidget *system_info_box; + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), _("xfce4-taskmanager")); gtk_window_set_default_size (GTK_WINDOW (window), win_width, win_height); @@ -46,6 +48,20 @@ GtkWidget* create_main_window (void) gtk_container_add (GTK_CONTAINER (window), vbox1); gtk_container_set_border_width (GTK_CONTAINER (vbox1), 10); + system_info_box = gtk_hbox_new (FALSE, 10); + gtk_widget_show (system_info_box); + gtk_box_pack_start (GTK_BOX (vbox1), system_info_box, FALSE, TRUE, 0); + + cpu_usage_progress_bar = gtk_progress_bar_new (); + gtk_progress_bar_set_text (GTK_PROGRESS_BAR (cpu_usage_progress_bar), _("cpu usage")); + gtk_widget_show (cpu_usage_progress_bar); + gtk_box_pack_start (GTK_BOX (system_info_box), cpu_usage_progress_bar, TRUE, TRUE, 0); + + mem_usage_progress_bar = gtk_progress_bar_new (); + gtk_progress_bar_set_text (GTK_PROGRESS_BAR (mem_usage_progress_bar), _("memory usage")); + gtk_widget_show (mem_usage_progress_bar); + gtk_box_pack_start (GTK_BOX (system_info_box), mem_usage_progress_bar, TRUE, TRUE, 0); + scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow1); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); diff --git a/src/interface.h b/src/interface.h index 5a3c8fe..28fff04 100644 --- a/src/interface.h +++ b/src/interface.h @@ -46,6 +46,8 @@ GtkTreeSelection *selection; GtkWidget *treeview; GtkWidget *mainmenu; GtkWidget *taskpopup; +GtkWidget *cpu_usage_progress_bar; +GtkWidget *mem_usage_progress_bar; #define COLUMN_NAME 0 #define COLUMN_PID 1 diff --git a/src/types.h b/src/types.h index 0c8a01f..ac204e0 100644 --- a/src/types.h +++ b/src/types.h @@ -41,6 +41,13 @@ struct task gdouble time_percentage; }; +typedef struct +{ + gint mem_total; + gint mem_free; + gint cpu_count; +} system_status; + GtkWidget *main_window; GArray *task_array; diff --git a/src/xfce-taskmanager-linux.c b/src/xfce-taskmanager-linux.c index ede222c..39139d5 100755 --- a/src/xfce-taskmanager-linux.c +++ b/src/xfce-taskmanager-linux.c @@ -151,3 +151,63 @@ GArray *get_task_list() return task_list; } + +gboolean get_system_status (system_status *sys_stat) +{ + FILE *file; + gchar *file_name; + gchar *buffer; + + buffer = g_new (gchar, 100); + + file_name = g_strdup ("/proc/meminfo"); + + if (!g_file_test (file_name, G_FILE_TEST_EXISTS)) + { + g_free(file_name); + return FALSE; + } + + file = fopen (file_name, "r"); + + if (file) + { + while (fgets (buffer, 100, file) != NULL) + { + sscanf (buffer, "MemTotal:\t%i kB", &sys_stat->mem_total); + sscanf (buffer, "MemFree:\t%i kB", &sys_stat->mem_free); + } + fclose (file); + } + g_free (buffer); + g_free (file_name); + + buffer = g_new (gchar, 100); + + file_name = g_strdup ("/proc/cpuinfo"); + + if (!g_file_test (file_name, G_FILE_TEST_EXISTS)) + { + g_free(file_name); + return FALSE; + } + + file = fopen (file_name, "r"); + + sys_stat->cpu_count = -1; + + if (file) + { + + while (fgets (buffer, 100, file) != NULL) + { + sscanf (buffer, "processor : %i", &sys_stat->cpu_count); + } + fclose (file); + sys_stat->cpu_count++; + } + g_free (buffer); + g_free (file_name); + + return TRUE; +} diff --git a/src/xfce-taskmanager-linux.h b/src/xfce-taskmanager-linux.h index 9ea6234..df67236 100755 --- a/src/xfce-taskmanager-linux.h +++ b/src/xfce-taskmanager-linux.h @@ -13,5 +13,6 @@ struct task get_task_details(gint pid); GArray *get_task_list(); +gboolean get_system_status(system_status *sys_stat); #endif