/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ #ifndef _GSM_PRETTY_TABLE_H_ #define _GSM_PRETTY_TABLE_H_ #include #include #include #include #include #include #include #ifdef HAVE_WNCK extern "C" { #define WNCK_I_KNOW_THIS_IS_UNSTABLE #include } #endif class ProcInfo; using std::string; class PrettyTable { public: PrettyTable(); ~PrettyTable(); void set_icon(ProcInfo &); private: #ifdef HAVE_WNCK 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); #endif Glib::RefPtr get_icon_from_theme(const ProcInfo &); Glib::RefPtr get_icon_from_default(const ProcInfo &); Glib::RefPtr get_icon_from_gio(const ProcInfo &); #ifdef HAVE_WNCK Glib::RefPtr get_icon_from_wnck(const ProcInfo &); #endif 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); void file_monitor_event (Glib::RefPtr, Glib::RefPtr, Gio::FileMonitorEvent); void init_gio_app_cache (); typedef std::map > IconCache; typedef std::map > IconsForPID; typedef std::map > AppCache; typedef std::map > DesktopDirMonitors; IconsForPID apps; IconCache defaults; DesktopDirMonitors monitors; AppCache gio_apps; }; #endif /* _GSM_PRETTY_TABLE_H_ */