Пример #1
0
void IliadDrawArea::refreshDeviceScreen(eDmQuality quality, bool bOff)
{
	XSync(display, true);
	dmDisplay (dmCmdPriorUrgent, quality);
}
Пример #2
0
/**
 * callback : called when GTK in idle mode
 *
 * @param data  - indicates where the update request came from (DEBUG reasons)
 *
 * @returns 0 (to remove the "idle mode" handler)
 */
gboolean display_update_during_idle_handling(gpointer data)
{
    int     level = (int) data;
    int     nQuality;
    eDmQuality quality;
    XImage *xi;

    // full screen update,
    gdk_threads_enter();
    xi = XGetImage(GDK_DISPLAY(), GDK_ROOT_WINDOW(), 0, 0, 1, 1, AllPlanes, XYPixmap);
    gdk_flush();
    XDestroyImage(xi);
    gdk_threads_leave();

    erbusy_off();

    // Extract 
    //   level from data
    //   waveform from data

    level = (int) data & 0x0000FFFF;
    nQuality = (int) data >> 16;
    
#if (ST_SCREEN_ON)
    static int counter = 0;
    ST_WARNPRINTF(" **** (%d.%d) ***** [%d]", level, nQuality, counter++);
#endif

    switch (nQuality)
    {
        case WAVEFORM_BW:
            ST_LOGPRINTF("Request for BW waveform");
            quality = dmQBW;
            break;
        case WAVEFORM_TYPING:
            ST_LOGPRINTF("Request for Typing waveform");
            quality = dmQTyping;
            break;
        default:
            quality = dmQFull;
    }

    if ((level == MAIN_WINDOW_EXPOSE_LEVEL) ||
        (level == SETUP_SCREEN_EXPOSE_LEVEL) ||
        (level == ONE_BUTTON_ITEM_CLICKED_LEVEL) || (level == SETUP_PAGE_LAYOUT_CHANGE) || (level == SETTING_ITEM_CHANGE))
    {
        // full screen update => should be done immediately
        dmDisplay(dmCmdPriorUrgent, quality);
    }
    else if ((level == BUTTON_FOCUS_IN_LEVEL) || (level == SELECTION_FOCUS_IN_LEVEL) || (level == TEXT_ENTRY_FOCUS_IN_LEVEL))
    {
        // with Hard key selecting items on the screen 
        dmDisplay(dmCmdPriorNormal, quality);

    }
    else if (level == TEXT_ENTRY_CHANGED_LEVEL)
    {
        //text entry
        dmDisplay(dmCmdPriorUrgent, quality);
    }
    else if (level == SELECTION_CLICKED_LEVEL)
    {
        // switch of a selection item 
        dmDisplay(dmCmdPriorUrgent, quality);
    }
    else
    {
        dmDisplay(dmCmdPriorUrgent, quality);
    }

    //reset the current level
    g_currentLevel = LOWEST_LEVEL;

    // return FALSE to remove handler
    return FALSE;
}