X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=player%2Filiad.c;h=abb2ad121587fab5bdb2f12f8e49ee2c01af3b50;hb=6bf471dcb4c7d0c36b67bed84097a88b26629258;hp=6433e827e5a8c3ef9d77a723b1903ac659edffd3;hpb=40cf50b43f824311d7f14893ed1193bb5642741a;p=projects%2Fchimara%2Fchimara.git diff --git a/player/iliad.c b/player/iliad.c index 6433e82..abb2ad1 100644 --- a/player/iliad.c +++ b/player/iliad.c @@ -49,11 +49,16 @@ #include #include #include +/*#include "xepdmgrclient.h"*/ + /* Global pointers to widgets */ GtkWidget *window = NULL; GtkWidget *glk = NULL; +/* Display manager */ +/* sEpd *epd = NULL;*/ + static erClientChannel_t erbusyChannel; static erClientChannel_t ertoolbarChannel; @@ -81,6 +86,23 @@ on_save() chimara_glk_feed_line_input( CHIMARA_GLK(glk), "save" ); } +gboolean +update_screen(gpointer data) +{ + printf("Update screen from idle handler\n"); + dmDisplay(dmCmdPriorNormal, dmQFull); + + return FALSE; +} + +static void +on_iliad_screen_update(ChimaraGlk *glk, gboolean typing) +{ + printf("Update screen\n"); + g_idle_add_full(G_PRIORITY_DEFAULT_IDLE+100, update_screen, NULL, NULL); +} + + static void create_window(void) { @@ -93,11 +115,12 @@ create_window(void) "border-width", 6, "spacing", 6, "ignore-errors", TRUE, + "style-sheet", "style.css", NULL); - chimara_glk_set_default_font_string(CHIMARA_GLK(glk), "Serif 12"); - chimara_glk_set_monospace_font_string(CHIMARA_GLK(glk), "Monospace 12"); + g_signal_connect(glk, "started", G_CALLBACK(on_started), NULL); g_signal_connect(glk, "stopped", G_CALLBACK(on_stopped), NULL); + g_signal_connect(glk, "iliad-screen-update", G_CALLBACK(on_iliad_screen_update), NULL); GtkWidget *vbox = gtk_vbox_new(FALSE, 0); GtkWidget *toolbar = gtk_toolbar_new(); @@ -125,7 +148,7 @@ create_window(void) } static void -iliad_popup_keyboard() +iliad_init_toolbar() { erIpcStartClient(ER_TOOLBAR_CHANNEL, &ertoolbarChannel); tbSelectIconSet(ertoolbarChannel, ER_PDF_VIEWER_UA_ID); @@ -140,6 +163,16 @@ iliad_popup_keyboard() tbSetStatePlatformIcon(ertoolbarChannel, ER_PDF_VIEWER_UA_ID, iconID_keyboard, iconState_selected); } +static void +iliad_clear_toolbar() +{ + // Turn on trashcan + tbSetStatePlatformIcon(ertoolbarChannel, ER_PDF_VIEWER_UA_ID, iconID_trashcan, iconState_normal ); + + // Disable the keyboard + tbSetStatePlatformIcon(ertoolbarChannel, ER_PDF_VIEWER_UA_ID, iconID_keyboard, iconState_normal); +} + int main(int argc, char *argv[]) { @@ -151,6 +184,15 @@ main(int argc, char *argv[]) textdomain(GETTEXT_PACKAGE); #endif + /* Setup connection to display manager deamon */ + /* + if( (epd = EpdInit(NULL)) == NULL ) { + g_critical("Could not connect to xepdmgr server\n"); + return 1; + } + EpdRefreshAuto(epd, 0); + */ + if( !g_thread_supported() ) g_thread_init(NULL); gdk_threads_init(); @@ -170,7 +212,7 @@ main(int argc, char *argv[]) } //chimara_glk_run( CHIMARA_GLK(glk), ".libs/multiwin.so", argc, argv, NULL); - iliad_popup_keyboard(); + iliad_init_toolbar(); gdk_threads_enter(); gtk_main(); @@ -179,5 +221,7 @@ main(int argc, char *argv[]) chimara_glk_stop(CHIMARA_GLK(glk)); chimara_glk_wait(CHIMARA_GLK(glk)); + iliad_clear_toolbar(); + return 0; }