summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac2
-rw-r--r--src/Applet/Applet.cpp9
-rw-r--r--src/Applet/CCApplet.cpp30
-rw-r--r--src/Applet/CCApplet.h13
-rw-r--r--src/Applet/Makefile.am6
5 files changed, 33 insertions, 27 deletions
diff --git a/configure.ac b/configure.ac
index abc1c3cb..652ed8df 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ AC_PROG_CXX
PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1])
PKG_CHECK_MODULES([SQLITE3], [sqlite3])
-PKG_CHECK_MODULES([GTKMM], [gtkmm-2.4])
+PKG_CHECK_MODULES([GTK], [gtk+-2.0])
PKG_CHECK_MODULES([GLIBMM], [glibmm-2.4])
PKG_CHECK_MODULES([DBUSCPP], [dbus-c++-1])
PKG_CHECK_MODULES([PACKAGEKIT_GLIB], [packagekit-glib])
diff --git a/src/Applet/Applet.cpp b/src/Applet/Applet.cpp
index cc40642e..b33cc9f1 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 17ff6f92..45062dc7 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 86c00efb..09aee38f 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 e329accb..36410ee2 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