// -*- c++ -*- #ifndef _PROCMAN_PRETTYTABLE_H_ #define _PROCMAN_PRETTYTABLE_H_ #include #include #include #include #include #include extern "C" { #define WNCK_I_KNOW_THIS_IS_UNSTABLE #include } #include "iconthemewrapper.h" class ProcInfo; using std::string; class PrettyTable { public: PrettyTable(); ~PrettyTable(); void set_icon(ProcInfo &); private: static void on_application_opened(WnckScreen* screen, WnckApplication* app, gpointer data); static void on_application_closed(WnckScreen* screen, WnckApplication* app, gpointer data); void register_application(pid_t pid, Glib::RefPtr icon); void unregister_application(pid_t pid); Glib::RefPtr get_icon_from_theme(const ProcInfo &); Glib::RefPtr get_icon_from_default(const ProcInfo &); Glib::RefPtr get_icon_from_wnck(const ProcInfo &); Glib::RefPtr get_icon_from_name(const ProcInfo &); Glib::RefPtr get_icon_for_kernel(const ProcInfo &); Glib::RefPtr get_icon_dummy(const ProcInfo &); bool get_default_icon_name(const string &cmd, string &name); typedef std::map > IconCache; typedef std::map > IconsForPID; IconsForPID apps; IconCache defaults; procman::IconThemeWrapper theme; }; #endif /* _PROCMAN_PRETTYTABLE_H_ */