1 /*
2  * Copyright (c) 2010 Mike Massonnet, <mmassonnet@xfce.org>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  */
9 
10 #ifndef PROCESS_WINDOW_H
11 #define PROCESS_WINDOW_H
12 
13 #ifdef HAVE_CONFIG_H
14 #include <config.h>
15 #endif
16 
17 #include <X11/Xlib.h>
18 #include <glib-object.h>
19 #include <gtk/gtk.h>
20 
21 #define XTM_TYPE_PROCESS_WINDOW			(xtm_process_window_get_type ())
22 #define XTM_PROCESS_WINDOW(obj)			(G_TYPE_CHECK_INSTANCE_CAST ((obj), XTM_TYPE_PROCESS_WINDOW, XtmProcessWindow))
23 #define XTM_PROCESS_WINDOW_CLASS(klass)		(G_TYPE_CHECK_CLASS_CAST ((klass), XTM_TYPE_PROCESS_WINDOW, XtmProcessWindowClass))
24 #define XTM_IS_PROCESS_WINDOW(obj)		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), XTM_TYPE_PROCESS_WINDOW))
25 #define XTM_IS_PROCESS_WINDOW_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((klass), XTM_TYPE_PROCESS_WINDOW))
26 #define XTM_PROCESS_WINDOW_GET_CLASS(obj)	(G_TYPE_INSTANCE_GET_CLASS ((obj), XTM_TYPE_PROCESS_WINDOW, XtmProcessWindowClass))
27 #define XTM_SHOW_MESSAGE(type, title, message, ...) { \
28 	GtkWidget *dialog = gtk_message_dialog_new (NULL, 0, type, GTK_BUTTONS_OK, title); \
29 	gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), message , ## __VA_ARGS__ ); \
30 	gtk_window_set_title (GTK_WINDOW (dialog), _("Task Manager")); \
31 	gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); \
32 	gtk_window_set_icon_name (GTK_WINDOW (dialog), "org.xfce.taskmanager"); \
33 	gtk_dialog_run (GTK_DIALOG (dialog)); \
34 	gtk_widget_destroy (dialog); \
35 }
36 
37 typedef struct _XtmProcessWindow XtmProcessWindow;
38 
39 GType		xtm_process_window_get_type			(void);
40 GtkWidget *	xtm_process_window_new				(void);
41 void		xtm_process_window_show				(GtkWidget *widget);
42 GtkTreeModel *	xtm_process_window_get_model			(XtmProcessWindow *window);
43 void		xtm_process_window_set_system_info		(XtmProcessWindow *window, guint num_processes, gfloat cpu, gfloat memory, gchar* memory_str, gfloat swap, gchar* swap_str);
44 void		xtm_process_window_show_swap_usage		(XtmProcessWindow *window, gboolean show_swap_usage);
45 
46 #endif /* !PROCESS_WINDOW_H */
47