/* DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDS */ TW_UINT16 SANE_EnableDSUserInterface (pTW_IDENTITY pOrigin, TW_MEMREF pData) { TW_UINT16 twRC = TWRC_SUCCESS; pTW_USERINTERFACE pUserInterface = (pTW_USERINTERFACE) pData; TRACE ("DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDS\n"); if (activeDS.currentState != 4) { twRC = TWRC_FAILURE; activeDS.twCC = TWCC_SEQERROR; WARN("sequence error %d\n", activeDS.currentState); } else { activeDS.hwndOwner = pUserInterface->hParent; if (! activeDS.windowMessage) activeDS.windowMessage = RegisterWindowMessageA("SANE.DS ACTIVITY MESSAGE"); if (pUserInterface->ShowUI) { BOOL rc; activeDS.currentState = 5; /* Transitions to state 5 */ rc = DoScannerUI(); pUserInterface->ModalUI = TRUE; if (!rc) { if (activeDS.windowMessage) PostMessageA(activeDS.hwndOwner, activeDS.windowMessage, MSG_CLOSEDSREQ, 0); } #ifdef SONAME_LIBSANE else { psane_get_parameters (activeDS.deviceHandle, &activeDS.sane_param); activeDS.sane_param_valid = TRUE; } #endif } else { /* no UI will be displayed, so source is ready to transfer data */ activeDS.currentState = 6; /* Transitions to state 6 directly */ if (activeDS.windowMessage) PostMessageA(activeDS.hwndOwner, activeDS.windowMessage, MSG_XFERREADY, 0); } twRC = TWRC_SUCCESS; activeDS.twCC = TWCC_SUCCESS; } return twRC; }
/* DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDS */ TW_UINT16 SANE_EnableDSUserInterface (pTW_IDENTITY pOrigin, TW_MEMREF pData) { TW_UINT16 twRC = TWRC_SUCCESS; pTW_USERINTERFACE pUserInterface = (pTW_USERINTERFACE) pData; TRACE ("DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDS\n"); if (activeDS.currentState != 4) { twRC = TWRC_FAILURE; activeDS.twCC = TWCC_SEQERROR; FIXME("sequence error %d\n", activeDS.currentState); } else { activeDS.hwndOwner = pUserInterface->hParent; if (pUserInterface->ShowUI) { BOOL rc; activeDS.currentState = 5; /* Transitions to state 5 */ FIXME("showing UI\n"); rc = DoScannerUI(); if (!rc) { activeDS.pendingEvent.TWMessage = MSG_CLOSEDSREQ; } #ifdef HAVE_SANE else { sane_get_parameters (activeDS.deviceHandle, &activeDS.sane_param); activeDS.sane_param_valid = TRUE; } #endif } else { /* no UI will be displayed, so source is ready to transfer data */ activeDS.pendingEvent.TWMessage = MSG_XFERREADY; activeDS.currentState = 6; /* Transitions to state 6 directly */ } activeDS.hwndOwner = pUserInterface->hParent; twRC = TWRC_SUCCESS; activeDS.twCC = TWCC_SUCCESS; } return twRC; }