Example that shows how to use emWin. This example is based on NXP's POS demo available at lpcware.com

Dependencies:   EALib ewgui mbed

Revision:
0:2052561807c5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OrderEntryDLG.cpp	Mon Dec 16 10:58:05 2013 +0000
@@ -0,0 +1,665 @@
+/*********************************************************************
+*                                                                    *
+*                SEGGER Microcontroller GmbH & Co. KG                *
+*        Solutions for real time microcontroller applications        *
+*                                                                    *
+**********************************************************************
+*                                                                    *
+* C-file generated by:                                               *
+*                                                                    *
+*        GUI_Builder for emWin version 5.14                          *
+*        Compiled Jan 12 2012, 10:28:50                              *
+*        (c) 2011 Segger Microcontroller GmbH & Co. KG               *
+*                                                                    *
+**********************************************************************
+*                                                                    *
+*        Internet: www.segger.com  Support: support@segger.com       *
+*                                                                    *
+**********************************************************************
+*/
+
+// USER START (Optionally insert additional includes)
+#include <stdio.h>
+#include <string.h>
+#include "DIALOG.h"
+#include "BlueboardPOS.h"
+//AR #include "CLRC663.h"
+// USER END
+
+
+
+/*********************************************************************
+*
+*       Defines
+*
+**********************************************************************
+*/
+
+#define ID_WINDOW_0     (GUI_ID_USER + 0x01)
+#define ID_BUTTON_0     (GUI_ID_USER + 0x02)
+#define ID_BUTTON_1     (GUI_ID_USER + 0x03)
+#define ID_BUTTON_2     (GUI_ID_USER + 0x04)
+#define ID_BUTTON_3     (GUI_ID_USER + 0x05)
+#define ID_BUTTON_4     (GUI_ID_USER + 0x06)
+#define ID_BUTTON_5     (GUI_ID_USER + 0x07)
+#define ID_BUTTON_6     (GUI_ID_USER + 0x08)
+#define ID_BUTTON_7     (GUI_ID_USER + 0x09)
+#define ID_BUTTON_8     (GUI_ID_USER + 0x0A)
+#define ID_LISTVIEW_0   (GUI_ID_USER + 0x0E)
+#define ID_BUTTON_9   (GUI_ID_USER + 0x0B)
+#define ID_BUTTON_10   (GUI_ID_USER + 0x0C)
+#define ID_TEXT_0   (GUI_ID_USER + 0x0F)
+#define ID_BUTTON_11   (GUI_ID_USER + 0x0D)
+
+// USER START (Optionally insert additional defines)
+#define ID_IMAGE_0     (GUI_ID_USER + 0x20)
+#define ID_IMAGE_1     (GUI_ID_USER + 0x21)
+
+#define BUTTON_BitmapSkin DrawCustomSkin
+// USER END
+
+/*********************************************************************
+*
+*       Static data
+*
+**********************************************************************
+*/
+
+// USER START (Optionally insert additional static data)
+/*
+extern const uint8_t _acImage_0[385078];
+extern GUI_CONST_STORAGE GUI_BITMAP bmnxplogo_small;
+extern GUI_CONST_STORAGE GUI_BITMAP bmblack_coffee;
+extern GUI_CONST_STORAGE GUI_BITMAP bmchocolate_doughnut;
+extern GUI_CONST_STORAGE GUI_BITMAP bmmilk;
+extern GUI_CONST_STORAGE GUI_BITMAP bmlatte_coffee;
+extern GUI_CONST_STORAGE GUI_BITMAP bmglazed_doughnut;
+extern GUI_CONST_STORAGE GUI_BITMAP bmorangejuice;
+extern GUI_CONST_STORAGE GUI_BITMAP bmnewspaper;
+extern GUI_CONST_STORAGE GUI_BITMAP bmdanish;
+extern GUI_CONST_STORAGE GUI_BITMAP bmbottledwater;
+*/
+//#include "Background.cpp"
+#include "nxplogo_small.cpp"
+#include "black_coffee.cpp"
+#include "chocolate_doughnut.cpp"
+#include "milk.cpp"
+#include "latte_coffee.cpp"
+#include "glazed_doughnut.cpp"
+#include "orangejuice.cpp"
+#include "newspaper.cpp"
+#include "danish.cpp"
+#include "bottledwater.cpp"
+// USER END
+
+/*********************************************************************
+*
+*       _aDialogCreate
+*/
+static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
+  { WINDOW_CreateIndirect, "OrderEntry", ID_WINDOW_0, 0, 0, 800, 480, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Button3", ID_BUTTON_0, 30, 15, 110, 110, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Button4", ID_BUTTON_1, 150, 15, 110, 110, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Button5", ID_BUTTON_2, 270, 15, 110, 110, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Button6", ID_BUTTON_3, 30, 135, 110, 110, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Button7", ID_BUTTON_4, 150, 135, 110, 110, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Button8", ID_BUTTON_5, 270, 135, 110, 110, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Button9", ID_BUTTON_6, 30, 255, 110, 110, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Button10", ID_BUTTON_7, 150, 255, 110, 110, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Button11", ID_BUTTON_8, 270, 255, 110, 110, 0, 0, 0 },
+  { LISTVIEW_CreateIndirect, "Listview", ID_LISTVIEW_0, 422, 133, 363, 231, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Checkout", ID_BUTTON_9, 430, 400, 216, 65, 0, 0, 0 },
+  { BUTTON_CreateIndirect, "Clear", ID_BUTTON_10, 664, 400, 112, 65, 0, 0, 0 },
+  { TEXT_CreateIndirect, "Total", ID_TEXT_0, 597, 365, 182, 32, 0, 100, 0 },
+  { BUTTON_CreateIndirect, "QueryCard", ID_BUTTON_11, 78, 400, 250, 65, 0, 0, 0 },
+  // USER START (Optionally insert additional widgets)
+    { IMAGE_CreateIndirect, "Image", ID_IMAGE_0, 508, 7, 193, 112, WM_CF_BGND, IMAGE_CF_AUTOSIZE, 0 },
+  { IMAGE_CreateIndirect, "Image", ID_IMAGE_1, 0, 0, 800, 480, WM_CF_BGND, IMAGE_CF_AUTOSIZE, 0 },
+  // USER END
+};
+
+/*********************************************************************
+*
+*       Static code
+*
+**********************************************************************
+*/
+
+// USER START (Optionally insert additional static code)
+void displayTotal(WM_HWIN hWin)
+{
+    WM_HWIN hItem;
+    char Total[64], SubTotal[16];
+    int total = 0, row, subtotal100, subtotal;
+
+    hItem = WM_GetDialogItem(hWin, ID_LISTVIEW_0);
+
+    for(row = 0; row < (LISTVIEW_GetNumRows(hItem)); row++)
+    {
+        LISTVIEW_GetItemText(hItem, 3, row, SubTotal, sizeof(SubTotal));
+        sscanf(SubTotal, "%d.%02d", &subtotal100, &subtotal);
+        total = total + subtotal100 * 100 + subtotal;
+    }
+
+    sprintf(Total, "Total $%d.%02d", total / 100, total - total / 100 * 100);
+    hItem = WM_GetDialogItem(hWin, ID_TEXT_0);
+    TEXT_SetText(hItem, Total);
+}
+
+void clearItems(WM_HWIN hWin)
+{
+    WM_HWIN hItem;
+
+    // add the button text to a new line in the item list
+  hItem = WM_GetDialogItem(hWin, ID_LISTVIEW_0);
+    LISTVIEW_DeleteAllRows(hItem);
+    displayTotal(hWin);
+}
+
+void addItem(WM_HWIN hWin, int Id, int price)
+{
+    WM_HWIN hItem;
+    char ButtonText[64], Quantity[16], Price[16], SubTotal[16];
+    int row, qnty, subtotal;
+
+    // get the text on the button
+    hItem = WM_GetDialogItem(hWin, Id);
+    BUTTON_GetText(hItem, ButtonText, sizeof(ButtonText));
+
+    // add the button text to a new line in the item list
+    hItem = WM_GetDialogItem(hWin, ID_LISTVIEW_0);
+    LISTVIEW_AddRow(hItem, NULL);
+    row = LISTVIEW_GetNumRows(hItem) - 1;
+    qnty = 1;
+
+    subtotal = qnty * price;
+    sprintf(Quantity, "%d", qnty);
+    sprintf(Price, "%d.%02d", price / 100, price - price / 100 * 100);
+    sprintf(SubTotal, "%d.%02d", subtotal / 100, subtotal - subtotal / 100 * 100);
+    LISTVIEW_SetItemText(hItem, 0, row, Quantity);
+    LISTVIEW_SetItemText(hItem, 1, row, ButtonText);
+    LISTVIEW_SetItemText(hItem, 2, row, Price);
+    LISTVIEW_SetItemText(hItem, 3, row, SubTotal);
+
+    displayTotal(hWin);
+}
+
+// USER END
+
+/*********************************************************************
+*
+*       _cbDialog
+*/
+static void _cbDialog(WM_MESSAGE * pMsg) {
+  WM_HWIN hItem;
+  int Id, NCode;
+  // USER START (Optionally insert additional variables)
+    char SubTotal[16];
+    int total = 0, row, subtotal100, subtotal;
+    uint32_t status;
+  // USER END
+
+  switch (pMsg->MsgId) {
+  case WM_INIT_DIALOG:
+    //
+    // Initialization of 'Button3'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
+    BUTTON_SetText(hItem, "Black Coffee");
+    BUTTON_SetFont(hItem, GUI_FONT_16B_ASCII);
+    //
+    // Initialization of 'Button4'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
+    BUTTON_SetText(hItem, "Choc. Donut");
+    BUTTON_SetFont(hItem, GUI_FONT_16B_ASCII);
+    //
+    // Initialization of 'Button5'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_2);
+    BUTTON_SetText(hItem, "Milk");
+    BUTTON_SetFont(hItem, GUI_FONT_16B_ASCII);
+    //
+    // Initialization of 'Button6'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_3);
+    BUTTON_SetText(hItem, "Latte");
+    BUTTON_SetFont(hItem, GUI_FONT_16B_ASCII);
+    //
+    // Initialization of 'Button7'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_4);
+    BUTTON_SetText(hItem, "Glazed Donut");
+    BUTTON_SetFont(hItem, GUI_FONT_16B_1);
+    //
+    // Initialization of 'Button8'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_5);
+    BUTTON_SetText(hItem, "Orange Juice");
+    BUTTON_SetFont(hItem, GUI_FONT_16B_ASCII);
+    //
+    // Initialization of 'Button9'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_6);
+    BUTTON_SetText(hItem, "Newspaper");
+    BUTTON_SetFont(hItem, GUI_FONT_16B_ASCII);
+    //
+    // Initialization of 'Button10'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_7);
+    BUTTON_SetText(hItem, "Danish");
+    BUTTON_SetFont(hItem, GUI_FONT_16B_ASCII);
+    //
+    // Initialization of 'Button11'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_8);
+    BUTTON_SetText(hItem, "Bottled Water");
+    BUTTON_SetFont(hItem, GUI_FONT_16B_ASCII);
+    //
+    // Initialization of 'Listview'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
+    LISTVIEW_AddColumn(hItem, 35, "Qnty", GUI_TA_HCENTER | GUI_TA_VCENTER);
+    LISTVIEW_AddColumn(hItem, 210, "Description", GUI_TA_HCENTER | GUI_TA_VCENTER);
+    LISTVIEW_AddColumn(hItem, 40, "Cost", GUI_TA_HCENTER | GUI_TA_VCENTER);
+    LISTVIEW_AddColumn(hItem, 80, "Sub total", GUI_TA_HCENTER | GUI_TA_VCENTER);
+    LISTVIEW_SetAutoScrollV(hItem, 1);
+    LISTVIEW_SetGridVis(hItem, 1);
+    //
+    // Initialization of 'Checkout'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_9);
+    BUTTON_SetText(hItem, "Checkout");
+    BUTTON_SetFont(hItem, GUI_FONT_32B_ASCII);
+    //
+    // Initialization of 'Clear'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_10);
+    BUTTON_SetText(hItem, "Clear");
+    BUTTON_SetFont(hItem, GUI_FONT_32B_ASCII);
+    //
+    // Initialization of 'Total'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
+    TEXT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
+    TEXT_SetFont(hItem, GUI_FONT_20B_ASCII);
+    TEXT_SetText(hItem, "Total $0.00");
+    //
+    // Initialization of 'QueryCard'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_11);
+    BUTTON_SetText(hItem, "Query Card");
+    BUTTON_SetFont(hItem, GUI_FONT_32B_ASCII);
+    // USER START (Optionally insert additional code for further widget initialization)
+        //
+    // Additional initialization of 'Image'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
+      IMAGE_SetBitmap(hItem, &bmnxplogo_small);
+    //
+    // Additional initialization of 'Image'
+    //
+        hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_1);
+//AR    IMAGE_SetBMP(hItem, _acImage_0, sizeof(_acImage_0));
+        //
+        // Additional initialization of 'Button3'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
+        BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_BOTTOM);
+        BUTTON_SetSkin(hItem, BUTTON_BitmapSkin);
+    //
+    // Additional initialization of 'Button4'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
+    BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_BOTTOM);
+        BUTTON_SetSkin(hItem, BUTTON_BitmapSkin);
+    //
+    // Additional initialization of 'Button5'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_2);
+    BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_BOTTOM);
+        BUTTON_SetSkin(hItem, BUTTON_BitmapSkin);
+    //
+    // Additional initialization of 'Button6'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_3);
+    BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_BOTTOM);
+        BUTTON_SetSkin(hItem, BUTTON_BitmapSkin);
+    //
+    // Additional initialization of 'Button7'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_4);
+    BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_BOTTOM);
+        BUTTON_SetSkin(hItem, BUTTON_BitmapSkin);
+    //
+    // Additional initialization of 'Button8'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_5);
+    BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_BOTTOM);
+        BUTTON_SetSkin(hItem, BUTTON_BitmapSkin);
+    //
+    // Additional initialization of 'Button9'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_6);
+    BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_BOTTOM);
+        BUTTON_SetSkin(hItem, BUTTON_BitmapSkin);
+    //
+    // Additional initialization of 'Button10'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_7);
+    BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_BOTTOM);
+        BUTTON_SetSkin(hItem, BUTTON_BitmapSkin);
+    //
+    // Additional initialization of 'Button11'
+    //
+    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_8);
+    BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_BOTTOM);
+      BUTTON_SetSkin(hItem, BUTTON_BitmapSkin);
+    // USER END
+    break;
+  case WM_NOTIFY_PARENT:
+    Id    = WM_GetId(pMsg->hWinSrc);
+    NCode = pMsg->Data.v;
+    switch(Id) {
+    case ID_BUTTON_0: // Notifications sent by 'Button3'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+          addItem(pMsg->hWin, Id, 132);
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_1: // Notifications sent by 'Button4'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+          addItem(pMsg->hWin, Id, 55);
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_2: // Notifications sent by 'Button5'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+          addItem(pMsg->hWin, Id, 110);
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_3: // Notifications sent by 'Button6'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+          addItem(pMsg->hWin, Id, 175);
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_4: // Notifications sent by 'Button7'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+          addItem(pMsg->hWin, Id, 55);
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_5: // Notifications sent by 'Button8'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+          addItem(pMsg->hWin, Id, 180);
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_6: // Notifications sent by 'Button9'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+          addItem(pMsg->hWin, Id, 75);
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_7: // Notifications sent by 'Button10'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+          addItem(pMsg->hWin, Id, 119);
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_8: // Notifications sent by 'Button11'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+          addItem(pMsg->hWin, Id, 155);
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_LISTVIEW_0: // Notifications sent by 'Listview'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_SEL_CHANGED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_9: // Notifications sent by 'Checkout'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+                RFID_Cancelled = 0;
+            ShowWindow(hWinSwipeCard);
+#ifndef _WINDOWS
+                hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
+                for(row = 0; row < (LISTVIEW_GetNumRows(hItem)); row++)
+                {
+                    LISTVIEW_GetItemText(hItem, 3, row, SubTotal, sizeof(SubTotal));
+                    sscanf(SubTotal, "%d.%02d", &subtotal100, &subtotal);
+                    total = total + subtotal100 * 100 + subtotal;
+                }
+                do
+                {
+//AR                    status = MifareExecute(DecCredit_CMD, (uint32_t*)&total);
+                    GUI_Delay(250);
+                }
+                while((status == (2<<16)) && !RFID_Cancelled);
+                if(!status)
+                    WM_SendMessageNoPara(hWinCallBack, WM_USER_RFID_Store_OK);
+                else if(status & 0x00010000)
+                    WM_SendMessageNoPara(hWinCallBack, WM_USER_RFID_Credit_Low);
+                else if(!RFID_Cancelled)
+                    WM_SendMessageNoPara(hWinCallBack, WM_USER_RFID_Error);
+#endif
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_10: // Notifications sent by 'Clear'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+          clearItems(pMsg->hWin);
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    case ID_BUTTON_11: // Notifications sent by 'QueryCard'
+      switch(NCode) {
+      case WM_NOTIFICATION_CLICKED:
+        // USER START (Optionally insert code for reacting on notification message)
+        // USER END
+        break;
+      case WM_NOTIFICATION_RELEASED:
+        // USER START (Optionally insert code for reacting on notification message)
+                RFID_Cancelled = 0;
+                ShowWindow(hWinSwipeCard);
+#ifndef _WINDOWS
+            do
+            {
+//AR                status = MifareExecute(GetCredit_CMD, &Credit);
+                GUI_Delay(250);
+            }
+            while((status == (2<<16)) && !RFID_Cancelled);
+            if(!status)
+                WM_SendMessageNoPara(hWinCallBack, WM_USER_RFID_Load_OK);
+            else if(!RFID_Cancelled)
+                WM_SendMessageNoPara(hWinCallBack, WM_USER_RFID_Error);
+#endif
+        // USER END
+        break;
+      // USER START (Optionally insert additional code for further notification handling)
+      // USER END
+      }
+      break;
+    // USER START (Optionally insert additional code for further Ids)
+    // USER END
+    }
+    break;
+  // USER START (Optionally insert additional message handling)
+  // USER END
+  default:
+    WM_DefaultProc(pMsg);
+    break;
+  }
+}
+
+/*********************************************************************
+*
+*       Public code
+*
+**********************************************************************
+*/
+/*********************************************************************
+*
+*       CreateOrderEntry
+*/
+WM_HWIN CreateOrderEntry(void);
+WM_HWIN CreateOrderEntry(void) {
+  WM_HWIN hWin;
+
+  hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbDialog, WM_HBKWIN, 0, 0);
+  return hWin;
+}
+
+// USER START (Optionally insert additional public code)
+int DrawCustomSkin(const WIDGET_ITEM_DRAW_INFO * pDrawItemInfo) {
+  switch (pDrawItemInfo->Cmd) {
+  case WIDGET_ITEM_DRAW_BACKGROUND:
+    //
+    // Default look with bitmap
+    //
+    BUTTON_DrawSkinFlex(pDrawItemInfo);
+        if (pDrawItemInfo->hWin == WM_GetDialogItem(WM_GetActiveWindow(), ID_BUTTON_0))
+            GUI_DrawBitmap(&bmblack_coffee, 17, 20);
+        else if (pDrawItemInfo->hWin == WM_GetDialogItem(WM_GetActiveWindow(), ID_BUTTON_1))
+            GUI_DrawBitmap(&bmchocolate_doughnut, 9, 17);
+        else if (pDrawItemInfo->hWin == WM_GetDialogItem(WM_GetActiveWindow(), ID_BUTTON_2))
+            GUI_DrawBitmap(&bmmilk, 40, 20);
+        else if (pDrawItemInfo->hWin == WM_GetDialogItem(WM_GetActiveWindow(), ID_BUTTON_3))
+            GUI_DrawBitmap(&bmlatte_coffee, 15, 22);
+        else if (pDrawItemInfo->hWin == WM_GetDialogItem(WM_GetActiveWindow(), ID_BUTTON_4))
+            GUI_DrawBitmap(&bmglazed_doughnut, 25, 25);
+        else if (pDrawItemInfo->hWin == WM_GetDialogItem(WM_GetActiveWindow(), ID_BUTTON_5))
+            GUI_DrawBitmap(&bmorangejuice, 28, 25);
+        else if (pDrawItemInfo->hWin == WM_GetDialogItem(WM_GetActiveWindow(), ID_BUTTON_6))
+            GUI_DrawBitmap(&bmnewspaper, 15, 12);
+        else if (pDrawItemInfo->hWin == WM_GetDialogItem(WM_GetActiveWindow(), ID_BUTTON_7))
+            GUI_DrawBitmap(&bmdanish, 25, 20);
+        else if (pDrawItemInfo->hWin == WM_GetDialogItem(WM_GetActiveWindow(), ID_BUTTON_8))
+            GUI_DrawBitmap(&bmbottledwater, 42, 20);
+    break;
+  default:
+    //
+    // Use the default skinning routine for processing all other commands
+    //
+    return BUTTON_DrawSkinFlex(pDrawItemInfo);
+  }
+  return 0;
+}
+
+// USER END
+
+/*************************** End of file ****************************/