⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cashterminal.c

📁 ucgu最新版本 4.14
💻 C
📖 第 1 页 / 共 3 页
字号:
static void _cbSelectMoney(WM_MESSAGE* pMsg);
static void _cbEnterAmount(WM_MESSAGE* pMsg) {
  char acBuffer[5] = {0};
  char * pBuffer;
  WM_HWIN hItem, hWin = pMsg->hWin;
  switch (pMsg->MsgId) {
  case WM_CREATE:
    WM_SetFocus(hWin);
    _CreateNumPad(hWin, FRAME_WIDTH >> 1, 305);
    hItem = EDIT_CreateEx((FRAME_WIDTH >> 1) - 50, 110, 100, 37, hWin, WM_CF_SHOW, 0, GUI_ID_EDIT0, 4);
    EDIT_SetFont(hItem, &GUI_FontAA2_32);
    EDIT_SetTextAlign(hItem, GUI_TA_CENTER);
    WIDGET_SetEffect(hItem, DEFAULT_WIDGET_EFFECT);
    WM_DisableWindow(hItem);
    break;
  case WM_PAINT:
    _PaintFrame();
    GUI_DispStringHCenterAt(_GetLang(TEXT_ID_BETRAG_EINGEBEN), FRAME_WIDTH >> 1, 15);/**/
    break;
  case MSG_PIN_ERROR:
    if (!_PIN_Digits) {
      break;
    }
  case MSG_PIN_OK:
    _DeleteNumPad();
    _DeleteFrame();
    _CreateFrame(&_cbWait);
    break;
  case MSG_PIN_CANCEL:
    _DeleteNumPad();
    _DeleteFrame();
    _CreateFrame(&_cbSelectMoney);
    break;
  case MSG_PIN_CHANGED:
    pBuffer = acBuffer;
    GUI_AddDec(_PIN_Value, _PIN_Digits, &pBuffer);
    EDIT_SetText(WM_GetDialogItem(hWin, GUI_ID_EDIT0), acBuffer);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       _cbSelectMoney
*/
static void _cbSelectMoney(WM_MESSAGE* pMsg) {
  WM_HWIN hWin = pMsg->hWin;
  switch (pMsg->MsgId) {
  case WM_CREATE:
    WM_SetFocus(hWin);
    _CreateButton(hWin,  "50,00 EUR",     GUI_ID_BUTTON0,  25,  84, 270,  60, 0);
    _CreateButton(hWin, "100,00 EUR",     GUI_ID_BUTTON1,  25, 162, 270,  60, 0);
    _CreateButton(hWin, "150,00 EUR",     GUI_ID_BUTTON2,  25, 240, 270,  60, 0);
    _CreateButton(hWin, "200,00 EUR",     GUI_ID_BUTTON3,  25, 318, 270,  60, 0);
    _CreateButton(hWin, "250,00 EUR",     GUI_ID_BUTTON4, 320,  84, 270,  60, 0);
    _CreateButton(hWin, "300,00 EUR",     GUI_ID_BUTTON5, 320, 162, 270,  60, 0);
    _CreateButton(hWin, "350,00 EUR",     GUI_ID_BUTTON6, 320, 240, 270,  60, 0);
    _CreateButton(hWin, "",               GUI_ID_BUTTON7, 320, 318, 270,  60, TEXT_ID_ANDERER_BETRAG);
    break;
  case WM_PAINT:
    _PaintFrame();
    GUI_DispStringHCenterAt(_GetLang(TEXT_ID_AUSWAHL_BETRAG), FRAME_WIDTH >> 1, 15);
    break;
  case WM_NOTIFY_PARENT:
    if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) {
      int Id = WM_GetId(pMsg->hWinSrc);
      switch (Id) {
      case GUI_ID_BUTTON7:
        _DeleteFrame();
        _CreateFrame(&_cbEnterAmount);
        break;
      default:
        _DeleteFrame();
        _CreateFrame(&_cbWait);
        break;
      }
    }
    break;
    /*
  case WM_NOTIFY_PARENT:
    if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) {
      _DeleteFrame();
      _CreateFrame(&_cbWait);
    }
    break;
    */
  default:
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       _cbShowBalance
*/
static void _cbShowBalance(WM_MESSAGE* pMsg) {
  WM_HWIN hWin = pMsg->hWin;
  switch (pMsg->MsgId) {
  case WM_CREATE:
    WM_SetFocus(hWin);
    break;
  case WM_PAINT:
    _PaintFrame();
    GUI_DispStringHCenterAt(_GetLang(TEXT_ID_KONTOSTAND), FRAME_WIDTH >> 1, 125);
    break;
  case WM_TOUCH:
    if (((GUI_PID_STATE *)pMsg->Data.p)->Pressed == 1) {
      _DeleteFrame();
      _CreateFrame(&_cbThanks);
    }
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       _cbMainMenu
*/
static void _cbMainMenu(WM_MESSAGE* pMsg) {
  WM_HWIN hWin = pMsg->hWin;
  switch (pMsg->MsgId) {
  case WM_CREATE:
    WM_SetFocus(hWin);
    _CreateButton(hWin, "", GUI_ID_BUTTON0, (FRAME_WIDTH >> 1) - 175, 162, 350,  60, TEXT_ID_GELD_ABHEBEN);
    _CreateButton(hWin, "", GUI_ID_BUTTON1, (FRAME_WIDTH >> 1) - 175, 240, 350,  60, TEXT_ID_KONTOSTAND_ANSEHEN);
    break;
  case WM_PAINT:
    _PaintFrame();
    GUI_DispStringHCenterAt(_GetLang(TEXT_ID_AUSWAHL_TREFFEN), FRAME_WIDTH >> 1, 15);
    break;
  case WM_NOTIFY_PARENT:
    if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) {
      int Id = WM_GetId(pMsg->hWinSrc);
      switch (Id) {
      case GUI_ID_BUTTON0:
        _DeleteFrame();
        _CreateFrame(&_cbSelectMoney);
        break;
      case GUI_ID_BUTTON1:
        _DeleteFrame();
        _CreateFrame(&_cbShowBalance);
        break;
      }
    }
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       _cbEnterPIN
*/
static void _cbInsertCard(WM_MESSAGE* pMsg);
static void _cbEnterPIN(WM_MESSAGE* pMsg) {
  WM_HWIN hItem, hWin = pMsg->hWin;
  static int PinError;
  switch (pMsg->MsgId) {
  case WM_CREATE:
    PinError = 0;
    WM_SetFocus(hWin);
    _CreateNumPad(hWin, FRAME_WIDTH >> 1, 305);
    hItem = EDIT_CreateEx((FRAME_WIDTH >> 1) - 50, 110, 100, 37, hWin, WM_CF_SHOW, 0, GUI_ID_EDIT0, 4);
    EDIT_SetFont(hItem, &GUI_FontAA2_32);
    EDIT_SetTextAlign(hItem, GUI_TA_CENTER);
    WIDGET_SetEffect(hItem, DEFAULT_WIDGET_EFFECT);
    WM_DisableWindow(hItem);
    break;
  case WM_PAINT:
    _PaintFrame();
    GUI_DispStringHCenterAt(_GetLang(TEXT_ID_PIN_EINGEBEN), FRAME_WIDTH >> 1, 15);
    if (PinError) {
      _PIN_Digits = 0;
      GUI_SetColor(GUI_RED);
      GUI_DispStringHCenterAt(_GetLang(TEXT_ID_FALSCHE_PIN), FRAME_WIDTH >> 1, 165);
      WM_CreateTimer(hWin, 0, 1000, 0);
    }
    break;
  case WM_TIMER:
    PinError = 0;
    EDIT_SetText(WM_GetDialogItem(hWin, GUI_ID_EDIT0), "");
    WM_InvalidateWindow(hWin);
    break;
  case MSG_PIN_ERROR:
    PinError++;
    WM_InvalidateWindow(hWin);
    break;
  case MSG_PIN_OK:
    _DeleteNumPad();
    _DeleteFrame();
    _CreateFrame(&_cbMainMenu);
    break;
  case MSG_PIN_CANCEL:
    _DeleteNumPad();
    _DeleteFrame();
    _CreateFrame(&_cbInsertCard);
    break;
  case MSG_PIN_CHANGED:
    if (_PIN_Digits == 0) {
      EDIT_SetText(WM_GetDialogItem(hWin, GUI_ID_EDIT0), "");
    } else if (_PIN_Digits == 1) {
      EDIT_SetText(WM_GetDialogItem(hWin, GUI_ID_EDIT0), "x");
    } else if (_PIN_Digits == 2) {
      EDIT_SetText(WM_GetDialogItem(hWin, GUI_ID_EDIT0), "xx");
    } else if (_PIN_Digits == 3) {
      EDIT_SetText(WM_GetDialogItem(hWin, GUI_ID_EDIT0), "xxx");
    } else if (_PIN_Digits == 4) {
      EDIT_SetText(WM_GetDialogItem(hWin, GUI_ID_EDIT0), "xxxx");
    }
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       _cbInsertCard
*/
static void _cbInsertCard(WM_MESSAGE* pMsg) {
  WM_HWIN hWin = pMsg->hWin;
  switch (pMsg->MsgId) {
  case WM_CREATE:
    WM_SetFocus(hWin);
    break;
  case WM_PAINT:
    _PaintFrame();
    _DrawLogoBox(0, &bmLogo_ECCard);
    _DrawLogoBox(1, &bmLogo_Maestro);
    _DrawLogoBox(2, &bmLogo_MasterCard);
    _DrawLogoBox(3, &bmLogo_VisaCard);
    _DrawLogoBox(4, &bmLogo_AmericanExpress);
    GUI_DispStringHCenterAt(_GetLang(TEXT_ID_KARTE_EINFUEHREN), FRAME_WIDTH >> 1, 15);
    break;
  case WM_TOUCH:
    if (((GUI_PID_STATE *)pMsg->Data.p)->Pressed == 1) {
      _DeleteFrame();
      _CreateFrame(&_cbEnterPIN);
    }
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       _cbLanguage
*/
static void _cbLanguage(WM_MESSAGE* pMsg) {
  WM_HWIN hWin = pMsg->hWin;
  switch (pMsg->MsgId) {
  case WM_CREATE:
    WM_SetFocus(hWin);
    _CreateButton(hWin, "Deutsch", GUI_ID_BUTTON0, (FRAME_WIDTH >> 1) - 175, 162, 350,  60, 0);
    _CreateButton(hWin, "English", GUI_ID_BUTTON1, (FRAME_WIDTH >> 1) - 175, 240, 350,  60, 0);
    break;
  case WM_PAINT:
    _PaintFrame();
    GUI_DispStringHCenterAt("Please select your language", FRAME_WIDTH >> 1, 15);
    break;
  case WM_NOTIFY_PARENT:
    if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) {
      int Id = WM_GetId(pMsg->hWinSrc);
      switch (Id) {
      case GUI_ID_BUTTON0:
        _Language = 0;
        break;
      case GUI_ID_BUTTON1:
        _Language = 1;
        break;
      }
      _hTitle = TEXT_CreateEx(160, 17, 300, 32, WM_HBKWIN, WM_CF_SHOW, 0, GUI_ID_TEXT0, _GetLang(TEXT_ID_GELDAUTOMAT));
      TEXT_SetTextAlign(_hTitle, GUI_TA_HCENTER);
      TEXT_SetFont(_hTitle, MAIN_FONT);
      _DeleteFrame();
      _CreateFrame(&_cbInsertCard);
    }
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       _ClearState
*/
static void _ClearState(void) {
  GUI_PID_STATE State = {0};
  GUI_PID_StoreState(&State);
}

/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       MainTask
*/
int AppCashTerminal(void);
int AppCashTerminal(void) {
  int tNow;
  int tEnd;
  int tNextTouchEvent;
  int iTouchEvent;
  int Automode;
  _Break = 0;
  WM_SetCreateFlags(WM_CF_MEMDEV);
  WM_SetCallback(WM_HBKWIN, &_cbBkWindow);
  _CreateFrame(&_cbLanguage);
  WM_Exec();
  iTouchEvent = 0;
  Automode = 1;
  tNextTouchEvent = GUI_GetTime() + 2000;
  _ClearState();
  do {
    GUI_PID_STATE CurrentState;
    GUI_PID_GetState(&CurrentState);
    tNow = GUI_GetTime();
    if (Automode) {
      tEnd = tNow + 10000;
      if ((CurrentState.Pressed) && ((CurrentState.x != _aPID_Events[iTouchEvent].x) || (CurrentState.y != _aPID_Events[iTouchEvent].y))) {
        Automode = 0;
      } else {
        if (tNow >= tNextTouchEvent) {
          GUI_PID_STATE State = {0};
          State.x = _aPID_Events[iTouchEvent].x;
          State.y = _aPID_Events[iTouchEvent].y;
          State.Pressed = _aPID_Events[iTouchEvent].Pressed;
          tNextTouchEvent = tNow + _aPID_Events[iTouchEvent].Duration;
          GUI_PID_StoreState(&State);
          iTouchEvent++;
          if (iTouchEvent >= GUI_COUNTOF(_aPID_Events)) {
            _Break = 1;
          }
        }
      }
    } else {
      GUI_PID_STATE OldState;
      if (memcmp(&OldState, &CurrentState, sizeof(GUI_PID_STATE)) != 0) {
        tEnd = tNow + 10000;
      }
      OldState = CurrentState;
    }
    GUI_Delay(10);
  } while (!_Break && (tNow < tEnd));
  _DeleteFrame();
  WM_SetCallback(WM_HBKWIN, NULL);
  WM_DeleteWindow(_hTitle);

  return _Break;
}

/*************************** End of file ****************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -