#include <libchimara/chimara-glk.h>
#include <libchimara/chimara-if.h>
+/* Iliad includes */
+#include <liberdm/erdm.h>
+#include <liberipc/eripcviewer.h>
+#include <liberipc/eripctoolbar.h>
+#include <liberipc/eripcbusyd.h>
+/*#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;
+
static void
on_started(ChimaraGlk *glk)
{
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)
{
"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();
gtk_container_add( GTK_CONTAINER(window), vbox );
}
+static void
+iliad_init_toolbar()
+{
+ erIpcStartClient(ER_TOOLBAR_CHANNEL, &ertoolbarChannel);
+ tbSelectIconSet(ertoolbarChannel, ER_PDF_VIEWER_UA_ID);
+ tbClearIconSet(ertoolbarChannel, ER_PDF_VIEWER_UA_ID);
+
+ // Turn off trashcan
+ tbAppendPlatformIcon( ertoolbarChannel, ER_PDF_VIEWER_UA_ID, iconID_trashcan, -1);
+ tbSetStatePlatformIcon(ertoolbarChannel, ER_PDF_VIEWER_UA_ID, iconID_trashcan, iconState_grey );
+
+ // Enable then pop up keyboard
+ tbAppendPlatformIcon( ertoolbarChannel, ER_PDF_VIEWER_UA_ID, iconID_keyboard, -1);
+ 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[])
{
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();
return 1;
}
//chimara_glk_run( CHIMARA_GLK(glk), ".libs/multiwin.so", argc, argv, NULL);
-
+
+ iliad_init_toolbar();
gdk_threads_enter();
gtk_main();
chimara_glk_stop(CHIMARA_GLK(glk));
chimara_glk_wait(CHIMARA_GLK(glk));
+ iliad_clear_toolbar();
+
return 0;
}