/********************************************************************* * * _DemoVScreen */ static void _DemoVScreen(void) { int xSize, ySize, j, n; int _aDelay[] = { 20, 5}; GUI_RECT Rect; xSize = LCD_GetXSize(); ySize = LCD_GetYSize(); GUI_SetFont(&GUI_FontComic24B_ASCII); GUI_SetTextMode(GUI_TM_TRANS); Rect.x0 = 0; Rect.y0 = 0; Rect.x1 = xSize - 1; Rect.y1 = ySize - 1; GUI_SetColor(GUI_WHITE); GUI_DispStringInRect("Default screen", &Rect, GUI_TA_HCENTER | GUI_TA_VCENTER); GUI_Delay(250); Rect.y0 += ySize; Rect.y1 += ySize; GUI_DrawGradientV(Rect.x0, Rect.y0, Rect.x1, Rect.y1, 0xFFFFFF, 0x000000); Rect.y1 -= ySize / 3; GUI_SetColor(GUI_DARKGREEN); GUI_DispStringInRect("Here is the virtual screen", &Rect, GUI_TA_HCENTER | GUI_TA_VCENTER); n = ySize / 5; for (j = 0; j < GUI_COUNTOF(_aDelay); j++) { if (_Loop(0, 5, n, _aDelay[j]) == 1) { return; } GUI_SetOrg(0, ySize); GUI_Delay(250); if (_Loop(ySize, -5, n, _aDelay[j]) == 1) { return; } GUI_SetOrg(0, 0); GUI_Delay(250); if (GUIDEMO_CheckCancel()) { return; } } for (j = 0; j < 5; j++) { GUI_SetOrg(0, ySize); GUI_Delay(200); GUI_SetOrg(0, 0); GUI_Delay(200); if (GUIDEMO_CheckCancel()) { return; } } GUIDEMO_Delay(1000); }
/******************************************************************* * * _cbDemoCallback2 */ static void _cbDemoCallback2(WM_MESSAGE* pMsg) { int x, y; switch (pMsg->MsgId) { case WM_PAINT: GUI_SetBkColor(GUI_MAGENTA); GUI_Clear(); GUI_SetColor(GUI_YELLOW); GUI_SetFont(&GUI_FontComic18B_1); x = WM_GetWindowSizeX(pMsg->hWin); y = WM_GetWindowSizeY(pMsg->hWin); GUI_DispStringHCenterAt("Window 2\nanother Callback", x / 2, (y / 4) - 18); break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * _cbBk * * Purpose: * Callback routine of desktop window */ static void _cbBk(WM_MESSAGE * pMsg) { WM_HWIN hWin; int xSize; hWin = pMsg->hWin; switch (pMsg->MsgId) { case WM_PAINT: xSize = LCD_GetXSize(); GUI_SetBkColor(GUI_DARKBLUE); GUI_Clear(); GUI_SetFont(GUI_FONT_20_ASCII); GUI_DispStringHCenterAt("Sample shows usage of", xSize / 2, 5); GUI_DispStringHCenterAt("GUI_MEMDEV_GetDataPtr()", xSize / 2, 25); break; } }
void MainTask(void) { /*GUI_Init();*/ WIDGET_SetDefaultEffect(&WIDGET_Effect_Simple); GUI_SetBkColor(0xF9F9F9); GUI_Clear(); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_FontComic24B_ASCII); GUI_DispStringHCenterAt("Smart Wardrobe", 120, 6); while (1) { GUI_Exec(); GUI_Delay(100); } /*GUI_BMP_Draw(&bmpfile, 0, 0);*/ }
////////////////////////////////////////////////////////////////////////////// // Product: DPP example with emWin/uC/GUI, WITH Window Manager // Last updated for version 6.2.0 // Last updated on 2018-03-16 // // Q u a n t u m L e a P s // --------------------------- // innovating embedded systems // // Copyright (C) Quantum Leaps, LLC. All rights reserved. // // This program is open source software: you can redistribute it and/or // modify it under the terms of the GNU General Public License as published // by the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Alternatively, this program may be distributed and modified under the // terms of Quantum Leaps commercial licenses, which expressly supersede // the GNU General Public License and are specifically designed for // licensees interested in retaining the proprietary status of their code. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // // Contact information: // https://www.state-machine.com // mailto:[email protected] ////////////////////////////////////////////////////////////////////////////// #include "qpcpp.h" #include "dpp.h" #include "bsp.h" extern "C" { #include "GUI.h" #include "WM.h" // emWin Windows Manager #include "DIALOG.h" #include "SIM.h" } Q_DEFINE_THIS_FILE // Active object class ------------------------------------------------------- class Table : public QActive { private: uint8_t m_fork[N_PHILO]; uint8_t m_isHungry[N_PHILO]; public: Table(); private: static QState initial(Table *me, QEvt const *e); static QState ready (Table *me, QEvt const *e); static QState serving(Table *me, QEvt const *e); static QState paused (Table *me, QEvt const *e); }; #define RIGHT(n_) ((uint8_t)(((n_) + (N_PHILO - 1)) % N_PHILO)) #define LEFT(n_) ((uint8_t)(((n_) + 1) % N_PHILO)) enum m_forkState { FREE, USED }; // Local objects ------------------------------------------------------------- static Table l_table; // local Table object #ifdef Q_SPY enum QSUserRecords { PHILO_STAT = QS_USER, TABLE_STAT }; static uint8_t const l_onDialogGUI = 0U; #endif // Public-scope objects ------------------------------------------------------ QActive * const AO_Table = &l_table; // "opaque" AO pointer // GUI definition ============================================================ static WM_HWIN l_hDlg; static WM_CALLBACK *l_cb_WM_HBKWIN; static const GUI_WIDGET_CREATE_INFO l_dialog[] = { { &FRAMEWIN_CreateIndirect, "Dining Philosopher Problem", 0, 30, 30, 260, 180, FRAMEWIN_CF_MOVEABLE }, { &TEXT_CreateIndirect, "Philosopher 0", GUI_ID_TEXT9, 50, 10, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "Philosopher 1", GUI_ID_TEXT9, 50, 30, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "Philosopher 2", GUI_ID_TEXT9, 50, 50, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "Philosopher 3", GUI_ID_TEXT9, 50, 70, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "Philosopher 4", GUI_ID_TEXT9, 50, 90, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "Table", GUI_ID_TEXT9, 50, 110, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "thinking", GUI_ID_TEXT0, 130, 10, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "thinking", GUI_ID_TEXT1, 130, 30, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "thinking", GUI_ID_TEXT2, 130, 50, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "thinking", GUI_ID_TEXT3, 130, 70, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "thinking", GUI_ID_TEXT4, 130, 90, 0, 0, TEXT_CF_LEFT }, { &TEXT_CreateIndirect, "serving", GUI_ID_TEXT5, 130, 110, 0, 0, TEXT_CF_LEFT }, { &BUTTON_CreateIndirect,"PAUSE", GUI_ID_BUTTON0, 160, 130, 80, 30 } }; //..........................................................................*/ static void onMainWndGUI(WM_MESSAGE* pMsg) { switch (pMsg->MsgId) { case WM_PAINT: { GUI_SetBkColor(GUI_GRAY); GUI_Clear(); GUI_SetColor(GUI_BLACK); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringHCenterAt("Dining Philosophers - Demo", 160, 5); break; } default: { WM_DefaultProc(pMsg); break; } } }
/******************************************************************* * * _cbChild */ static void _cbChild(WM_MESSAGE* pMsg) { int x, y; switch (pMsg->MsgId) { case WM_PAINT: GUI_SetBkColor(_ChildColor); GUI_Clear(); GUI_SetColor(GUI_RED); GUI_SetFont(&GUI_Font24_ASCII); x = WM_GetWindowSizeX(pMsg->hWin); y = WM_GetWindowSizeY(pMsg->hWin); GUI_DispStringHCenterAt("Child window", x / 2, (y / 2) - 12); break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * _cbBkWindow */ static void _cbBkWindow(WM_MESSAGE * pMsg) { int xPos, yPos; xPos = LCD_GetXSize() / 2 - bmSeggerLogoBlue.XSize/2; yPos = LCD_GetYSize() / 2 - bmSeggerLogoBlue.YSize/2 ; switch (pMsg->MsgId) { case WM_PAINT: GUI_SetBkColor(GUI_BLUE); GUI_Clear(); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringHCenterAt("DIALOG_SliderColor - Sample", 160, 5); GUI_DrawBitmap(&bmSeggerLogoBlue, xPos, yPos ); default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * _cbBkWindow */ static void _cbBkWindow(WM_MESSAGE * pMsg) { switch (pMsg->MsgId) { case WM_PAINT: GUI_SetBkColor(GUI_WHITE); GUI_Clear(); GUI_SetColor(GUI_BLACK); GUI_SetFont(&GUI_Font24_ASCII); default: WM_DefaultProc(pMsg); } }
void GUIDEMO_Touch(void) { #define ID_KEYBOARD 1 #define ID_TESTCAL 2 #define ID_CALIBRATE 3 int i, r; int XSize = LCD_GetXSize(); int YSize = LCD_GetYSize(); int XMid = XSize / 2; int YMid = YSize / 2; GUIDEMO_NotifyStartNext(); GUIDEMO_HideInfoWin(); do { GUI_RECT rText;/*= {0, 80, XSize, 120};*/ BUTTON_Handle ahButton[3]; rText.x0=0; rText.y0=80; rText.x1=XSize; rText.y1=120; GUI_SetBkColor(GUI_BLUE); GUI_Clear(); GUI_DrawBitmap(&bmSeggerLogoBlue, (XSize - 1 - bmSeggerLogoBlue.XSize) / 2, 15); GUI_SetFont(&GUI_FontComic18B_ASCII); GUI_DispStringInRect("emWin Touch screen demo", &rText, GUI_TA_HCENTER | GUI_TA_VCENTER); ahButton[0] = BUTTON_Create( XMid - 50, YMid - 20, 100, 50, ID_CALIBRATE,BUTTON_CF_SHOW ); ahButton[1] = BUTTON_Create( XMid - 90, YMid + 40, 80, 30, ID_KEYBOARD, BUTTON_CF_SHOW ); ahButton[2] = BUTTON_Create( XMid + 10, YMid + 40, 80, 30, ID_TESTCAL,BUTTON_CF_SHOW ); BUTTON_SetText (ahButton[0], "Calibrate"); BUTTON_SetBkColor(ahButton[0], 0, GUI_RED); BUTTON_SetText (ahButton[1], "Keyboard"); BUTTON_SetText (ahButton[2], "Test calibration"); BUTTON_SetFont(ahButton[0], &GUI_FontComic18B_ASCII); r = GUIDEMO_WaitKey(); if (r==0) { r = ID_KEYBOARD; BUTTON_SetState(ahButton[1], BUTTON_STATE_PRESSED); GUIDEMO_Delay(500); } for (i=0; i< countof(ahButton); i++) { BUTTON_Delete(ahButton[i]); } switch (r) { case ID_KEYBOARD: r= _ExecKeyboard(); break; case ID_CALIBRATE: _ExecCalibration(); break; case ID_TESTCAL: _TestCalibration(); break; } } while (r && (r!='n') && (r!='N')); }
/******************************************************************* * * _cbWindow */ static void _cbWindow(WM_MESSAGE* pMsg) { GUI_RECT Rect; switch (pMsg->MsgId) { case WM_PAINT: WM_GetInsideRect(&Rect); GUI_SetBkColor(GUI_RED); GUI_SetColor(GUI_YELLOW); GUI_ClearRectEx(&Rect); GUI_DrawRectEx(&Rect); GUI_SetColor(GUI_BLACK); GUI_SetFont(&GUI_Font8x16); GUI_DispStringHCenterAt("Foreground window", 75, 40); break; default: WM_DefaultProc(pMsg); } }
static void _UserDraw(WM_HWIN hWin, int Stage) { if (Stage == GRAPH_DRAW_LAST) { char acText[] = "Flow Rate L/s"; GUI_RECT Rect; GUI_RECT RectInvalid; int FontSizeY; GUI_SetFont(&GUI_Font13_ASCII); FontSizeY = GUI_GetFontSizeY(); WM_GetInsideRect(&Rect); WM_GetInvalidRect(hWin, &RectInvalid); Rect.x1 = Rect.x0 + FontSizeY; GUI_SetColor(GUI_RED); GUI_DispStringInRectEx(acText, &Rect, GUI_TA_HCENTER, strlen(acText), GUI_ROTATE_CCW); } }
/******************************************************************************* * Function Name : testgui * Description : GUI测试函数,初化后,显示数据 * Input : None * Output : None * Return : None *******************************************************************************/ void test_gui(void) { int i; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE); GUI_Init(); GUI_Initialized = 1; GUI_DispChars('/', 53); for( i= 0; i < 240; i += 8) { GUI_DispCharAt('/', 312, i); GUI_DispCharAt('/', 1, i); } GUI_DispChars('/', 52); GUI_SetFont(&GUI_Font24B_ASCII); GUI_SetColor(GUI_RED); GUI_DispStringAt("This is a test program!",10,110); }
/********************************************************************* * * _cbBk */ static void _cbBk(WM_MESSAGE * pMsg) { int xSize, ySize; switch (pMsg->MsgId) { case WM_PAINT: xSize = LCD_GetXSize(); ySize = LCD_GetYSize(); GUI_DrawGradientV(0, 0, xSize, ySize, GUI_BLUE, GUI_BLACK); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font24_ASCII); GUI_SetTextMode(GUI_TM_TRANS); GUI_DispStringHCenterAt("WIDGET_Spinbox - Sample", 160, 5); break; default: WM_DefaultProc(pMsg); } }
int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DMA_Init(); MX_CRC_Init(); MX_USART1_UART_Init(); // MX_RTC_Init(); /**< 重新用cube生成工程时 注释掉此函数 再下载 */ /* USER CODE BEGIN 2 */ rtc_init(); /**< 使用改造后的初始化函数实现备份掉电时的数据 */ GUI_Init(); GUI_UC_SetEncodeUTF8(); GUI_SetFont(&GUI_Font24B_1); GUI_SetBkColor(GUI_BLACK); GUI_SetColor(GUI_GREEN); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ RTC_display_current_time(20, 170); RTC_display_current_date(120, 170); } /* USER CODE END 3 */ }
int main(void) { GUI_MEMDEV_Handle hMem0,hMem1; SysTick_Config(180000); SDRAM_Init(); LCD_Config(); GUI_Init(); GUI_SetFont(&GUI_Font32B_ASCII); GUI_SetBkColor(GUI_BLUE); GUI_SetColor(GUI_YELLOW); GUI_Clear(); // GUI_DispStringAt("blacklight",0,100); // GUIDEMO_Main(); hMem0 = GUI_MEMDEV_CreateFixed(0,0,100,50,GUI_MEMDEV_NOTRANS,GUI_MEMDEV_APILIST_32,GUI_COLOR_CONV_888); hMem1 = GUI_MEMDEV_CreateFixed(0,0,100,50,GUI_MEMDEV_NOTRANS,GUI_MEMDEV_APILIST_32,GUI_COLOR_CONV_888); GUI_MEMDEV_Select(hMem0); GUI_Clear(); GUI_DispString("Text"); GUI_MEMDEV_CopyToLCDAt(hMem0,0,0); while(1) { GUI_MEMDEV_Select(hMem1); GUI_MEMDEV_DrawPerspectiveX(hMem0,0,0,50,50-50*i/100,100-100*i/100,25*i/100); GUI_MEMDEV_CopyToLCDAt(hMem1,i,50+i); GUI_Delay(10); GUI_MEMDEV_Select(hMem1); GUI_Clear(); GUI_MEMDEV_CopyToLCDAt(hMem1,i,50+i); i+=1; if(i>100) { i=0; } } while(1); }
void ShowKeyPadString(char* STR) { GUI_SetFont(Upper_Font); GUI_SetColor(GW_BLACKV); GUI_SetBkColor(GW_WHITE); /*Clear 27 chars*/ GUI_SetTextAlign(GUI_TA_LEFT); GUI_GotoXY(73,97); //GUI_DispChars(' ',41);//For Clear String GUI_DispChars(' ',50);//For Clear String /*Clear channel mark area.*/ GUI_SetBkColor(GW_WHITE); GUI_SetTextAlign(GUI_TA_CENTER); GUI_GotoXY(161,97); GUI_DispChar(' ');//For Clear String GUI_DispStringAt(STR,162,97); }
static void _cbWindow1(WM_MESSAGE* pMsg) { int x, y,d; switch (pMsg->MsgId) { case WM_PAINT: // GUI_SetBkColor(_WindowColor1); // GUI_SetColor(GUI_WHITE); // GUI_SetFont(&GUI_Font24_ASCII); if(curbuttonid != -1) { GUI_SetColor(GUI_WHITE); GUI_SetBkColor(GUI_BLUE); GUI_SetFont(&GUI_FontHZ12); GUI_Clear(); x = WM_GetWindowSizeX(pMsg->hWin); y = WM_GetWindowSizeY(pMsg->hWin); GUI_DispStringHCenterAt(pButton[curbuttonid].desc, x / 2, (y / 2) + 30); } break; case WM_NOTIFY_PARENT: //#define WM_NOTIFICATION_CLICKED 1 //#define WM_NOTIFICATION_RELEASED 2 if(pMsg->Data.v == WM_NOTIFICATION_RELEASED) { x = WM_GetWindowSizeX(pMsg->hWin); y = WM_GetWindowSizeY(pMsg->hWin); d = GetButtonID(pMsg->hWinSrc); GUI_Clear(); GUI_DispStringHCenterAt(pButton[d].desc, x / 2, (y / 2) + 30); curbuttonid = d; if(pButton[d].ExeProg) { //OSTaskCreate (pButton[d].ExeProg,pMsg->hWin, &TaskStk[TASK_STK_SIZE-1],20); printf("new 1 task\n"); pButton[d].ExeProg(pMsg->hWin,0,0); // CREATE_TASK(&aTCB[0],pButton[d].title,pButton[d].ExeProg,80,Stack_0); } } break; default: WM_DefaultProc(pMsg); } }
/******************************************************************* * * _cbWindow2 */ static void _cbWindow2(WM_MESSAGE* pMsg) { int x, y; switch (pMsg->MsgId) { case WM_PAINT: GUI_SetBkColor(_WindowColor2); GUI_Clear(); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font24_ASCII); x = WM_GetWindowSizeX(pMsg->hWin); y = WM_GetWindowSizeY(pMsg->hWin); GUI_DispStringHCenterAt("Window 2", x / 2, (y / 4) - 12); break; case WM_SIZE: WM_InvalidateWindow(_hChild); break; default: WM_DefaultProc(pMsg); } }
/******************************************************************* * * _DemoOrData */ static void _DemoOrData(void) { int i; PARAM Param; GUI_RECT Rect = {19, (LCD_YSIZE - 20) - YSIZE, (LCD_XSIZE - 2), (LCD_YSIZE - 21)}; GUI_HMEM hMem = GUI_ALLOC_AllocZero(405 * sizeof(I16)); GUI_SetColor(GUI_WHITE); GUI_SetBkColor(GUI_RED); GUI_ClearRect(0, 55, LCD_XSIZE, 75); GUI_SetFont(&GUI_FontComic18B_1); GUI_DispStringAt("Several waves...", 20 ,55); Param.aY = GUI_ALLOC_h2p(hMem); _GetSineData(Param.aY, 405); GUI_MEMDEV_Draw(&Rect, _Draw, &Param, 0, 0); for (i = 0; (i < 90); i++) { _DrawOrData(GUI_GREEN, ++Param.aY); GUI_Delay(10); } GUI_ALLOC_Free(hMem); }
void showTime( /*char *cardType, uint8_t *bUidPresent, uint8_t *nCardDetected, uint8_t *nCardPrevious*/) { char msg[100]; Chip_RTC_GetFullTime(&FullTime); sprintf( msg, "%.2d:%.2d:%.2d %.2d/%.2d/%.4d\r\n", FullTime.time[2], FullTime.time[1], FullTime.time[0], FullTime.time[3], FullTime.time[6], FullTime.time[7]); GUI_SetColor(GUI_WHITE); GUI_FillRect( 0, 214, 317, 214 ); GUI_SetFont(&GUI_Font24B_ASCII); GUI_DispStringAt( msg, 60, 215); GUI_SetColor(GUI_GREEN); }
/** * @brief Displays a maximum of 60 char on the USER_LCD. * @param X: pointer to x position (in pixel) * @param Y: pointer to y position (in pixel) * @param pText: pointer to string to display on USER_LCD * @param mode: The display mode * This parameter can be one of the following values: * @arg CENTER_MODE * @arg RIGHT_MODE * @arg LEFT_MODE * @retval None */ void USER_LCD_LOG_DisplayStringAt(uint16_t X, uint16_t Y, char *pText, USER_Text_AlignModeTypdef mode, GUI_COLOR color) { /* Clear first */ GUI_SetFont(&USER_LCD_LOG_TEXT_FONT); #ifdef __USER_USE_SOLID_BK_ GUI_SetColor(USER_LCD_LOG_BACKGROUND_COLOR); GUI_FillRect(X,Y,X0+XSIZE,Y+GUI_GetFontSizeY()); #endif GUI_SetColor(color); GUI_SetTextMode(GUI_TEXTMODE_TRANS); switch (mode) { case USER_CENTER_MODE: { GUI_SetTextAlign(GUI_TA_HCENTER); //GUI_DispStringAtCEOL(pText,X,Y); GUI_DispStringAt(pText,X,Y); break; } case USER_LEFT_MODE: { GUI_SetTextAlign(GUI_TA_LEFT); //GUI_DispStringAtCEOL(pText,X,Y); GUI_DispStringAt(pText,X,Y); break; } case USER_RIGHT_MODE: { GUI_SetTextAlign(GUI_TA_RIGHT); //GUI_DispStringAtCEOL(pText,X,Y); GUI_DispStringAt(pText,X,Y); break; } default: { GUI_SetTextAlign(GUI_TA_LEFT); //GUI_DispStringAtCEOL(pText,X,Y); GUI_DispStringAt(pText,X,Y); break; } } }
int main(void) { BUTTON_Handle hButton; SystemInit(); UB_STemWIN_init(); GUI_SetFont(GUI_FONT_20F_ASCII); while(1) { } }
/******************************************************************* * * _DemoProgBar */ static void _DemoProgBar(void) { PROGBAR_Handle ahProgBar; int i; GUI_SetFont(&GUI_Font8x16); GUI_DispStringAt("Progress bar", 100,80); /* Create progress bar */ ahProgBar = PROGBAR_Create(100, 100, 100, 20, WM_CF_SHOW); GUI_Delay (500); /* Modify progress bar */ for (i = 0; i <= 100; i++) { PROGBAR_SetValue(ahProgBar, i); GUI_Delay(10); } GUI_Delay (400); /* Delete progress bar */ PROGBAR_Delete(ahProgBar); GUI_ClearRect(0, 50, 319, 239); GUI_Delay(750); }
/***************************************************************************** * Function * DESCRIPTION: * Redraws or clears the colon. *****************************************************************************/ bool DataPointTime::RedrawColon() { if (mVisible) { int x = 0; int minutes = mTime.GetTime(MINUTES); char sz_time[10]; if (mFormat == DATETIME_FORMAT_MDY_AMPM)// timeformat using am/pm { bool isAm; int hoursOffset; GetAs12HourClock(&isAm, &hoursOffset); sprintf(sz_time, ":%02d %s", minutes, isAm ? "am" : "pm"); } else { sprintf(sz_time, ":%02d", minutes); } SelectWindow(); GUI_SetColor(mColour); GUI_SetBkColor(mBackgroundColour); GUI_SetFont(GetFont()); x = GetWidth() - GUI_GetStringDistX(sz_time); if (mShowColon) { GUI_DispStringAt(":", x, 2); mLastColonPosition = x; } else if (mLastColonPosition == x) { GUI_ClearRect(x, 0, x + 1, GetHeight() - 1); } Validate(); } return true; }
void vCardUID( char *cardType, uint8_t *bUidPresent, uint8_t *nCardDetected, uint8_t *nCardPrevious ){ char msg[20]; /* if( empty == 1 || empty == 2 ) { // to trovato almeno una vCard return; }*/ if (nCardDetected==nCardPrevious){ return; } WM_SetDesktopColor(GUI_BLACK); GUI_SetBkColor(GUI_BLACK); GUI_SetColor(GUI_GREEN); GUI_Clear(); // GUI_SetFont(&GUI_Font32B_ASCII); // GUI_DispStringAt( cardType, 120-strlen(cardType)*10/2, 20); if( bUidPresent != NULL ) { int i=0; for (i=0;i<nCardDetected;i++){ sprintf( msg, "UID %02X : %02X%02X%02X%02X", i+1, bUidPresent[4*i+0], bUidPresent[4*i+1], bUidPresent[4*i+2], bUidPresent[4*i+3] ); GUI_DispStringAt( msg, 0, 20*i+20); } /* sprintf( msg, "UID 01 : %02X%02X%02X%02X", bUidPresent[0], bUidPresent[1], bUidPresent[2], bUidPresent[3] ); GUI_DispStringAt( msg, 0, 80); sprintf( msg, "UID 02 : %02X%02X%02X%02X", bUidPresent[4], bUidPresent[5], bUidPresent[6], bUidPresent[7] ); GUI_DispStringAt( msg, 0, 120); */ } GUI_SetColor( (GUI_COLOR)0x003f3f3f ); GUI_FillRect( 0, 214, 319, 239 ); GUI_SetBkColor((GUI_COLOR)0x003f3f3f); GUI_SetColor(GUI_RED); GUI_SetFont(&GUI_Font24B_ASCII); GUI_DispStringAt( "Reading Card", 80, 215); empty = 1; }
/******************************************************************* * * _cbWindow2 */ static void _cbWindow2(WM_MESSAGE* pMsg) { GUI_RECT Rect; int x, y; switch (pMsg->MsgId) { case WM_PAINT: WM_GetInsideRect(&Rect); GUI_SetBkColor(_WindowColor2); GUI_SetColor(_FrameColor2); GUI_ClearRectEx(&Rect); GUI_DrawRectEx(&Rect); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font24_ASCII); x = WM_GetWindowSizeX(pMsg->hWin); y = WM_GetWindowSizeY(pMsg->hWin); GUI_DispStringHCenterAt("Window 2", x / 2, (y / 4) - 12); break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * _DispCursor */ static void _DispCursor(void) { int xSize; int ySize; xSize = LCD_GetXSize(); ySize = LCD_GetYSize(); _ScreenX0 = (xSize - XSIZE_MIN) / 2; _ScreenY0 = (ySize - YSIZE_MIN) / 2; GUIDEMO_DrawBk(); GUI_SetTextMode(GUI_TM_TRANS); GUI_SetFont(&GUI_FontRounded22); GUI_DispStringHCenterAt("Available cursors", xSize / 2, 12); // // Display the cursors // _ShowCursorType(&_CursorArrow, _ScreenX0 + 20, _ScreenY0 + 50); _ShowCursorType(&_CursorCross, _ScreenX0 + 20, _ScreenY0 + 120); _ShowCursorType(&_CursorArrowI, _ScreenX0 + 140, _ScreenY0 + 50); _ShowCursorType(&_CursorCrossI, _ScreenX0 + 140, _ScreenY0 + 120); }
/******************************************************************* * * _DrawIt */ static void _DrawIt(void * pData) { tDrawItContext * pDrawItContext = (tDrawItContext *)pData; GUI_Clear(); GUI_SetFont(&GUI_Font8x8); GUI_SetTextMode(GUI_TM_TRANS); /* draw background */ GUI_SetColor(GUI_GREEN); GUI_FillRect(pDrawItContext->XPos_Text, pDrawItContext->YPos_Text - 25, pDrawItContext->XPos_Text + 100, pDrawItContext->YPos_Text - 5); /* draw polygon */ GUI_SetColor(GUI_BLUE); GUI_FillPolygon(pDrawItContext->aPointsDest, SIZE_OF_ARRAY(aPoints), 160, 120); /* draw foreground */ GUI_SetColor(GUI_RED); GUI_FillRect(220 - pDrawItContext->XPos_Text, pDrawItContext->YPos_Text + 5, 220 - pDrawItContext->XPos_Text + 100, pDrawItContext->YPos_Text + 25); }
void GUIDEMO_DemoPolygon(void) { int XMid = LCD_GetXSize() / 2; int YMid = LCD_GetYSize() / 2; GUIDEMO_ShowIntro("Arbitrary Polygons", "\nStandard and antialiased"); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_FontComic18B_ASCII); #if GUIDEMO_LARGE GUI_DispStringAt("Arbitrary\nPolygons", 0, 0); #endif GUI_FillPolygon(&_aArrow[0], 7, XMid - 50, YMid + 40); GUI_FillPolygon(&_aArrow[0], 7, XMid + 50, YMid + 40); GUI_SetColor(GUI_GREEN); GUI_FillPolygon(&_aTriangle[0], 3, XMid, YMid + 60); GUI_SetColor(GUI_WHITE); #if GUI_SUPPORT_AA GUI_AA_EnableHiRes(); GUI_AA_FillPolygon(&_aiCursor[0], 4, XMid * 3, (YMid - 40) * 3); #endif GUIDEMO_Wait(); }
/********************************************************************* * * GUIDEMO_ShowIntro * * Function description * Shows the GUIDEMO introduction screen which display the title of * the sample and a short description. */ void GUIDEMO_ShowIntro(const char * acTitle, const char * acDescription) { int FontDistY; int TimeWait; int xCenter; int yCenter; int xSize; int ySize; int i; xSize = LCD_GetXSize(); ySize = LCD_GetYSize(); xCenter = xSize >> 1; yCenter = ySize >> 1; GUIDEMO_HideInfoWin(); GUIDEMO_ShowControlWin(); GUI_Exec(); GUIDEMO_DrawBk(1); GUI_SetColor(GUI_WHITE); // // Title // GUI_SetTextMode(GUI_TM_TRANS); //GUI_SetFont(&GUI_FontRounded22); GUI_DispStringHCenterAt(acTitle, xCenter, 60); // // Description // GUI_SetFont(&GUI_Font16_ASCII); FontDistY = GUI_GetFontDistY(); GUI_DispStringHCenterAt(acDescription, xCenter, yCenter - FontDistY + 10); // // Determine time to wait // i = 0; while (acDescription[i]) { i++; } TimeWait = i * CHAR_READING_TIME; GUIDEMO_Wait(TimeWait); }