diff options
| author | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-02-19 14:28:58 +0100 |
|---|---|---|
| committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-02-19 14:28:58 +0100 |
| commit | 67a0890956d2c9878e2fdaf078c90551548b765c (patch) | |
| tree | b087371b230e13dc7fae05f8fe6991d17435baf9 /src | |
| parent | 0979cbdd39166d6b5a42380e3ff6297e77d1236d (diff) | |
| download | abrt-67a0890956d2c9878e2fdaf078c90551548b765c.tar.gz abrt-67a0890956d2c9878e2fdaf078c90551548b765c.tar.xz abrt-67a0890956d2c9878e2fdaf078c90551548b765c.zip | |
Rewritten applet - got rid of gtkmm
Diffstat (limited to 'src')
| -rw-r--r-- | src/Applet/Applet.cpp | 9 | ||||
| -rw-r--r-- | src/Applet/CCApplet.cpp | 30 | ||||
| -rw-r--r-- | src/Applet/CCApplet.h | 13 | ||||
| -rw-r--r-- | src/Applet/Makefile.am | 6 |
4 files changed, 32 insertions, 26 deletions
diff --git a/src/Applet/Applet.cpp b/src/Applet/Applet.cpp index cc40642..b33cc9f 100644 --- a/src/Applet/Applet.cpp +++ b/src/Applet/Applet.cpp @@ -38,7 +38,11 @@ crash_notify_cb(const char* progname) int main(int argc, char **argv) { - Gtk::Main kit(argc, argv); + /* need to be thread safe */ + g_thread_init(NULL); + gdk_threads_init(); + gdk_threads_enter(); + gtk_init(&argc,&argv); applet = new CApplet(); /* move to the DBusClient::connect */ DBus::Glib::BusDispatcher dispatcher; @@ -49,6 +53,7 @@ int main(int argc, char **argv) DBus::Connection conn = DBus::Connection::SystemBus(); CDBusClient client(conn, CC_DBUS_PATH, CC_DBUS_NAME); client.ConnectCrashHandler(crash_notify_cb); - Gtk::Main::run(); + gtk_main(); + gdk_threads_leave(); return 0; } diff --git a/src/Applet/CCApplet.cpp b/src/Applet/CCApplet.cpp index 17ff6f9..45062dc 100644 --- a/src/Applet/CCApplet.cpp +++ b/src/Applet/CCApplet.cpp @@ -24,11 +24,12 @@ CApplet::CApplet() { - m_nStatusIcon = Gtk::StatusIcon::create(Gtk::Stock::DIALOG_WARNING); - m_nStatusIcon->set_visible(false); + m_pStatusIcon = gtk_status_icon_new_from_stock(GTK_STOCK_DIALOG_WARNING); + gtk_status_icon_set_visible(m_pStatusIcon,FALSE); // LMB click - m_nStatusIcon->signal_activate().connect(sigc::mem_fun(*this, &CApplet::OnAppletActivate_CB)); - m_nStatusIcon->signal_popup_menu().connect(sigc::mem_fun(*this, &CApplet::OnMenuPopup_cb)); + //TODO add some actions! + //gtk_signal_connect(m_pStatusIcon,"activate",CApplet::OnAppletActivate_CB, this); + //gtk_signal_connect(m_pStatusIcon,"popup_menu",CApplet::OnMenuPopup_cb, this); SetIconTooltip("Pending events: %i",m_mapEvents.size()); } @@ -41,7 +42,7 @@ void CApplet::SetIconTooltip(const char *format, ...) { va_list args; // change to smth sane like MAX_TOOLTIP length or rewrite this whole sh*t - size_t n,size = 10; + size_t n,size = 30; char *buf = new char[size]; va_start (args, format); while((n = vsnprintf (buf, size, format, args)) > size) @@ -55,38 +56,35 @@ void CApplet::SetIconTooltip(const char *format, ...) va_end (args); if (n != -1) { - m_nStatusIcon->set_tooltip(Glib::ustring((const char*)buf)); + gtk_status_icon_set_tooltip(m_pStatusIcon,buf); } else { - m_nStatusIcon->set_tooltip("Error while setting tooltip!"); + gtk_status_icon_set_tooltip(m_pStatusIcon,"Error while setting tooltip!"); } delete[] buf; + } void CApplet::OnAppletActivate_CB() { - m_nStatusIcon->set_visible(false); - //std::cout << "Activate" << std::endl; - //if(m_pMenuPopup) - //m_pMenuPopup->show(); - + gtk_status_icon_set_visible(m_pStatusIcon,false); } void CApplet::OnMenuPopup_cb(guint button, guint32 activate_time) { /* for now just hide the icon on RMB */ - m_nStatusIcon->set_blinking(false); + gtk_status_icon_set_blinking(m_pStatusIcon, false); } void CApplet::ShowIcon() { - m_nStatusIcon->set_visible(true); + gtk_status_icon_set_visible(m_pStatusIcon,true); } void CApplet::HideIcon() { - m_nStatusIcon->set_visible(false); + gtk_status_icon_set_visible(m_pStatusIcon,false); } int CApplet::AddEvent(int pUUID, const std::string& pProgname) @@ -101,5 +99,5 @@ int CApplet::RemoveEvent(int pUUID) } void CApplet::BlinkIcon(bool pBlink) { - m_nStatusIcon->set_blinking(pBlink); + gtk_status_icon_set_blinking(m_pStatusIcon,pBlink); } diff --git a/src/Applet/CCApplet.h b/src/Applet/CCApplet.h index 86c00ef..09aee38 100644 --- a/src/Applet/CCApplet.h +++ b/src/Applet/CCApplet.h @@ -20,12 +20,15 @@ #ifndef CC_APPLET_H_ #define CC_APPLET_H_ -#include <gtkmm.h> +#include <gtk/gtk.h> +#include <map> +#include <string> class CApplet { private: - Glib::RefPtr<Gtk::StatusIcon> m_nStatusIcon; + //Glib::RefPtr<Gtk::StatusIcon> m_nStatusIcon; + GtkStatusIcon* m_pStatusIcon; std::map<int, std::string > m_mapEvents; public: CApplet(); @@ -46,9 +49,9 @@ class CApplet void OnAppletActivate_CB(); void OnMenuPopup_cb(guint button, guint32 activate_time); //menu - Glib::RefPtr<Gtk::UIManager> m_refUIManager; - Glib::RefPtr<Gtk::ActionGroup> m_refActionGroup; - Gtk::Menu* m_pMenuPopup; + //Glib::RefPtr<Gtk::UIManager> m_refUIManager; + //Glib::RefPtr<Gtk::ActionGroup> m_refActionGroup; + //Gtk::Menu* m_pMenuPopup; }; #endif /*CC_APPLET_H_*/ diff --git a/src/Applet/Makefile.am b/src/Applet/Makefile.am index e329acc..36410ee 100644 --- a/src/Applet/Makefile.am +++ b/src/Applet/Makefile.am @@ -2,7 +2,7 @@ bin_PROGRAMS = applet applet_SOURCES = Applet.cpp CCApplet.cpp CCApplet.h applet_CPPFLAGS = -I../../lib/DBus \ -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \ - $(DBUS_GLIB_CFLAGS) $(GTKMM_CFLAGS) $(DBUSCPP_CFLAGS) \ - -I../../lib/MiddleWare + $(DBUS_GLIB_CFLAGS) $(GTK_CFLAGS) $(DBUSCPP_CFLAGS) \ + -I../../lib/MiddleWare -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -applet_LDADD = ../../lib/DBus/libDBus.la $(DL_LIBS) $(GTKMM_LIBS) +applet_LDADD = ../../lib/DBus/libDBus.la $(DL_LIBS) $(GTK_LIBS) -lglib-2.0 -lgthread-2.0 |
