1 #include "../../config.h"
3 #include "GtkDasherControl.h"
5 #include "dasher_lock_dialogue.h"
8 #include <hildon-widgets/hildon-banner.h>
12 // TODO: Make this a real class
14 GtkWidget
*m_pLockWindow
;
15 GtkWidget
*m_pLockProgress
;
16 GtkWidget
*m_pLockMessage
;
18 void dasher_lock_dialogue_new(GladeXML
*pGladeXML
, GtkWindow
*pMainWindow
) {
20 m_pLockWindow
= glade_xml_get_widget(pGladeXML
, "lock_window");
21 m_pLockProgress
= glade_xml_get_widget(pGladeXML
, "lock_progress");
22 m_pLockMessage
= glade_xml_get_widget(pGladeXML
, "lock_message");
24 gtk_widget_hide(m_pLockWindow
);
26 dasher_lock_dialogue_set_transient(pMainWindow
);
32 void dasher_lock_dialogue_set_transient(GtkWindow
*pMainWindow
) {
33 gtk_window_set_transient_for(GTK_WINDOW(m_pLockWindow
), pMainWindow
);
36 extern "C" void on_lock_info(GtkDasherControl
*pDasherControl
, gpointer pLockInfo
, gpointer pUserData
) {
37 // TODO: signals are connected after the Dasher control is created,
38 // which is too late to receive notification about intial training
41 DasherLockInfo
*pInfo
= (DasherLockInfo
*)pLockInfo
;
44 gtk_label_set_text(GTK_LABEL(m_pLockMessage
), pInfo
->szMessage
);
45 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(m_pLockProgress
), pInfo
->iPercent
/ 100.0);
48 gtk_widget_show(m_pLockWindow
);
50 gtk_widget_hide(m_pLockWindow
);
54 m_pLockWindow
= hildon_banner_show_progress(NULL
, NULL
, pInfo
->szMessage
);
56 hildon_banner_set_fraction(HILDON_BANNER(m_pLockWindow
), pInfo
->iPercent
/ 100.0);
60 gtk_widget_destroy(m_pLockWindow
);
65 // Keep the GTK interface responsive
66 while(gtk_events_pending())