/******************************************************************* * * _DemoListBoxAsChild */ static void _DemoListBoxAsChild(void) { FRAMEWIN_Handle hFrame; LISTBOX_Handle hListBox; /* Display titel */ GUI_SetBkColor(0xB00000); GUI_SetColor(0xFFFFFF); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringHCenterAt("Listbox as child - Sample", 160, 5); GUI_Delay(SPEED / 2); /* Create framewin */ GUI_SetFont(&GUI_Font8x16); GUI_SetTextAlign(GUI_TA_LEFT); GUI_DispStringAtCEOL("using", 5, 40); GUI_DispStringAtCEOL("FRAMEWIN_Create", 5, 55); GUI_Delay(SPEED); hFrame = FRAMEWIN_Create("List box", NULL, WM_CF_SHOW, 100, 80, 120, 140); FRAMEWIN_SetFont(hFrame, &GUI_Font16B_ASCII); FRAMEWIN_SetActive(hFrame, 1); GUI_Delay(SPEED * 0.75); /* Create listbox */ GUI_DispStringAtCEOL("LISTBOX_CreateAsChild", 5, 55); GUI_Delay(SPEED); hListBox = LISTBOX_CreateAsChild(_ListBox, WM_GetClientWindow(hFrame), 0, 0, 0, 0, WM_CF_SHOW); GUI_Delay(SPEED * 0.75); /* Show serveral functions of listbox */ _ShowSeveralFunctions(hListBox); /* Delete framewin widget */ GUI_DispStringAtCEOL("FRAMEWIN_Delete", 5, 55); GUI_Delay(SPEED); FRAMEWIN_Delete(hFrame); GUI_Delay(SPEED * 0.75); /* Clear display */ GUI_Clear(); GUI_Delay(SPEED * 1.5); }
/******************************************************************* * * _DemoDropDownAsChild */ static void _DemoDropDownAsChild(void) { WM_HWIN hFrame; WM_HWIN hDropDown; /* Display titel */ GUI_SetBkColor(0xB00000); GUI_SetColor(0xFFFFFF); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringHCenterAt("Dropdown as child - Sample", 160, 5); GUI_Delay(SPEED / 2); /* Create framewin */ GUI_SetFont(&GUI_Font8x16); GUI_SetTextAlign(GUI_TA_LEFT); GUI_DispStringAtCEOL("using", 5, 40); GUI_DispStringAtCEOL("FRAMEWIN_Create", 5, 55); GUI_Delay(SPEED); hFrame = FRAMEWIN_Create("DropDown", NULL, WM_CF_SHOW, 80, 80, 160, 140); FRAMEWIN_SetFont(hFrame, &GUI_Font16B_ASCII); FRAMEWIN_SetActive(hFrame, 1); GUI_Delay(SPEED * 0.75); /* Create listbox */ GUI_DispStringAtCEOL("DROPDOWN_CreateEx", 5, 55); GUI_Delay(SPEED); hDropDown = DROPDOWN_CreateEx(20, 20, 120, 65, WM_GetClientWindow(hFrame), WM_CF_SHOW, 0, 0); GUI_Delay(SPEED * 0.75); /* Show serveral functions of listbox */ _ShowSeveralFunctions(hDropDown); /* Delete framewin widget */ GUI_DispStringAtCEOL("FRAMEWIN_Delete", 5, 55); GUI_Delay(SPEED); FRAMEWIN_Delete(hFrame); GUI_Delay(SPEED * 0.75); /* Clear display */ GUI_Clear(); GUI_Delay(SPEED * 1.5); }
/******************************************************************* * * _DrawWindowsDirectoryBitmaps * * Iterates over all *.jpg-files of the windows directory */ static void _DrawWindowsDirectoryBitmaps(void) { char acPath[_MAX_PATH]; char acMask[_MAX_PATH]; char acFile[_MAX_PATH]; char acBuffer[_MAX_PATH]; WIN32_FIND_DATA Context; HANDLE hFind; GUI_SetBkColor(GUI_BLACK); GUI_Clear(); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringHCenterAt("DrawJPG - Sample", 160, 5); GUI_SetFont(&GUI_Font8x16); GetWindowsDirectory(acBuffer, sizeof(acBuffer)); _GetFirstBitmapDirectory(acBuffer, acPath); sprintf(acMask, "%s\\*.jpg", acPath); hFind = FindFirstFile(acMask, &Context); if (hFind != INVALID_HANDLE_VALUE) { do { sprintf(acFile, "%s\\%s", acPath, Context.cFileName); GUI_DispStringAtCEOL(acFile, 5, 40); _ShowJPG(acFile); } while (FindNextFile(hFind, &Context)); } }
/******************************************************************* * * _DrawInfoText Drawes the info text directly on the display. This function is for the moments when no callback is set. */ static void _DrawInfoText(char* pStr) { GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringHCenterAt("WindowManager - Sample", 160, 5); GUI_SetFont(&GUI_Font8x16); GUI_DispStringAtCEOL(pStr, 5, 40); }
/******************************************************************* * * _DrawJPEGS * * Iterates over all JPEG files of a directory */ static void _DrawJPEGS(void) { static char acPath[_MAX_PATH]; char acMask[_MAX_PATH]; char acFile[_MAX_PATH]; char acBuffer[_MAX_PATH]; WIN32_FIND_DATA Context; HANDLE hFind; GUI_SetBkColor(GUI_BLACK); GUI_Clear(); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringHCenterAt("Drawing scaled JPEGs - Sample", 160, 5); GetWindowsDirectory(acBuffer, sizeof(acBuffer)); _GetFirstBitmapDirectory(acBuffer, acPath); GUI_SetFont(&GUI_Font8x16); sprintf(acMask, "%s*.jp*", acPath); hFind = FindFirstFile(acMask, &Context); if (hFind != INVALID_HANDLE_VALUE) { do { sprintf(acFile, "%s%s", acPath, Context.cFileName); GUI_DispStringAtCEOL(acFile, 5, 40); _DrawJPEG(acFile); } while (FindNextFile(hFind, &Context)); } else { GUI_DispStringHCenterAt("No JPEG files found!", 160, 60); GUI_Delay(2000); } }
/******************************************************************* * * _DemoAntialiasing Draws lines with different antialiasing factors */ static void _DemoAntialiasing(void) { int i, x1, x2, y1, y2; const GUI_FONT *font_old; y1 = 65; y2 = 5; /* Set drawing attributes */ GUI_SetColor(GUI_WHITE); GUI_SetBkColor(GUI_BLACK); GUI_SetPenShape(GUI_PS_FLAT); GUI_Clear(); /* draw headline */ font_old = GUI_SetFont(&GUI_Font24_ASCII); GUI_SetTextAlign(GUI_TA_HCENTER); GUI_DispStringAt("AA_Lines - Sample", 160, 5); /* Draw lines without antialiased */ GUI_Delay(1000); GUI_SetFont(&GUI_Font8x16); GUI_SetTextAlign(GUI_TA_LEFT); GUI_DispStringAtCEOL("draw normal lines using", 5, 40); GUI_DispStringAtCEOL("GUI_DrawLine", 5, 55); GUI_Delay(2500); x1 = 20; x2 = 100; GUI_SetFont(font_old); GUI_DispStringHCenterAt("Normal", (x1 + x2) / 2, 30 + y1); for (i = 1; i < 8; i++) { GUI_SetPenSize(i); GUI_DrawLine(x1, 40 + i * 15 + y1, x2, 40 + i * 15 + y1 + y2); } /* Draw lines with antialiasing quality factor 2 */ GUI_Delay(3000); GUI_SetFont(&GUI_Font8x16); GUI_DispStringAtCEOL("", 5, 40); GUI_DispStringAtCEOL("", 5, 55); GUI_Delay(200); GUI_DispStringAtCEOL("draw antialiased lines using", 5, 40); GUI_DispStringAtCEOL("GUI_AA_DrawLine", 5, 55); GUI_Delay(3500); x1 = 120; x2 = 200; GUI_AA_SetFactor(2); GUI_SetFont(font_old); GUI_DispStringHCenterAt("Antialiased\nusing factor 2", (x1 + x2) / 2, 30 + y1); for (i = 1; i < 8; i++) { GUI_SetPenSize(i); GUI_AA_DrawLine(x1, 40 + i * 15 + y1, x2, 40 + i * 15 + y1 + y2); } /* Draw lines with antialiasing quality factor 6 */ GUI_Delay(1500); x1 = 220; x2 = 300; GUI_AA_SetFactor(6); GUI_SetFont(font_old); GUI_DispStringHCenterAt("Antialiased\nusing factor 6", (x1 + x2) / 2, 30 + y1); for (i = 1; i < 8; i++) { GUI_SetPenSize(i); GUI_AA_DrawLine(x1, 40 + i * 15 + y1, x2, 40 + i * 15 + y1 + y2); } GUI_Delay(7500); }
/******************************************************************* * * _DemoListBox */ static void _DemoListBox(void) { LISTBOX_Handle hListBox; /* Display titel */ GUI_SetBkColor(0xB00000); GUI_SetColor(0xFFFFFF); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringHCenterAt("Listbox - Sample", 160, 5); GUI_Delay(SPEED / 2); /* Create listbox */ GUI_SetFont(&GUI_Font8x16); GUI_SetTextAlign(GUI_TA_LEFT); GUI_DispStringAtCEOL("using", 5, 40); GUI_DispStringAtCEOL("LISTBOX_Create", 5, 55); GUI_Delay(SPEED * 0.9); hListBox = LISTBOX_Create(_ListBox, 100, 80, 120, 115, WM_CF_SHOW); GUI_Delay(SPEED * 0.75); /* Show serveral functions of listbox */ _ShowSeveralFunctions(hListBox); /* Clear display */ GUI_Clear(); GUI_Delay(SPEED * 1.5); }
/******************************************************************* * * _DemoDropDown */ static void _DemoDropDown(void) { WM_HWIN hDropDown; /* Display titel */ GUI_SetBkColor(0xB00000); GUI_SetColor(0xFFFFFF); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringHCenterAt("Dropdown - Sample", 160, 5); GUI_Delay(SPEED / 2); /* Create listbox */ GUI_SetFont(&GUI_Font8x16); GUI_SetTextAlign(GUI_TA_LEFT); GUI_DispStringAtCEOL("using", 5, 40); GUI_DispStringAtCEOL("DROPDOWN_CreateEx", 5, 55); GUI_Delay(SPEED * 0.9); hDropDown = DROPDOWN_CreateEx(100, 80, 120, 115-50, WM_HBKWIN, WM_CF_SHOW, 0, 0); GUI_Delay(SPEED * 0.75); /* Show serveral functions of listbox */ _ShowSeveralFunctions(hDropDown); /* Clear display */ GUI_Clear(); GUI_Delay(SPEED * 1.5); }
/******************************************************************* * * _ShowSeveralFunctions */ static void _ShowSeveralFunctions(LISTBOX_Handle hListBox) { int NumEntries, i; /* Add scrollbar */ GUI_DispStringAtCEOL("SCROLLBAR_CreateAttached", 5, 55); GUI_Delay(SPEED); SCROLLBAR_CreateAttached(hListBox, SCROLLBAR_CF_VERTICAL); GUI_Delay(SPEED * 0.75); /* Add strings */ GUI_DispStringAtCEOL("LISTBOX_AddString", 5, 55); GUI_Delay(SPEED); LISTBOX_AddString(hListBox, "Français"); GUI_Delay(SPEED / 6); LISTBOX_AddString(hListBox, "Japanese"); GUI_Delay(SPEED / 6); LISTBOX_AddString(hListBox, "Italiano"); GUI_Delay(SPEED / 6); LISTBOX_AddString(hListBox, "Español"); GUI_Delay(SPEED / 6); LISTBOX_AddString(hListBox, "Other language ..."); GUI_Delay(SPEED * 0.6); /* Set focus */ GUI_DispStringAtCEOL("WM_SetFocus", 5, 55); GUI_Delay(SPEED * 0.9); WM_SetFocus(hListBox); GUI_Delay(SPEED * 0.7); /* Set font */ GUI_DispStringAtCEOL("LISTBOX_SetFont", 5, 55); GUI_Delay(SPEED * 0.9); LISTBOX_SetFont(hListBox, &GUI_Font13B_1); GUI_Delay(SPEED * 0.7); /* Increment selection */ GUI_DispStringAtCEOL("LISTBOX_IncSel", 5, 55); GUI_Delay(SPEED); NumEntries = LISTBOX_GetNumItems(hListBox); for (i = 0; i < NumEntries - 1; i++) { LISTBOX_IncSel(hListBox); GUI_Delay(SPEED / 6); } GUI_Delay(SPEED / 4); /* Show automatic scrollbar */ GUI_DispStringAtCEOL("Optional automatic scrollbar", 5, 55); GUI_Delay(SPEED); LISTBOX_SetAutoScrollH(hListBox, 1); LISTBOX_SetAutoScrollV(hListBox, 1); GUI_Delay(SPEED * 0.75); /* Set font */ GUI_DispStringAtCEOL("LISTBOX_SetFont", 5, 55); GUI_Delay(SPEED); LISTBOX_SetFont(hListBox, &GUI_Font16B_1); GUI_Delay(SPEED * 0.75); /* Decrement selection */ GUI_DispStringAtCEOL("LISTBOX_DecSel", 5, 55); GUI_Delay(SPEED); for (i = 0; i < NumEntries - 1; i++) { LISTBOX_DecSel(hListBox); GUI_Delay(SPEED / 6); } GUI_Delay(SPEED / 4); /* Change width of scrollbar */ GUI_DispStringAtCEOL("Change scrollbar width", 5, 55); GUI_Delay(SPEED * 0.7); { SCROLLBAR_Handle hScrollH = WM_GetDialogItem(hListBox, GUI_ID_HSCROLL); SCROLLBAR_Handle hScrollV = WM_GetDialogItem(hListBox, GUI_ID_VSCROLL); SCROLLBAR_SetWidth(hScrollV, 14); GUI_Delay(SPEED / 4); SCROLLBAR_SetWidth(hScrollH, 14); GUI_Delay(SPEED * 0.6); } /* Change size of listbox */ GUI_DispStringAtCEOL("Change size of listbox", 5, 55); GUI_Delay(SPEED * 0.75); WM_ResizeWindow(hListBox, -15, 0); GUI_Delay(SPEED / 4); WM_ResizeWindow(hListBox, 0, -15); GUI_Delay(SPEED / 4); WM_ResizeWindow(hListBox, 15, 0); GUI_Delay(SPEED / 4); WM_ResizeWindow(hListBox, 0, 15); GUI_Delay(SPEED / 2); /* Disable item */ GUI_DispStringAtCEOL("LISTBOX_SetItemDisabled", 5, 55); GUI_Delay(SPEED); LISTBOX_SetItemDisabled(hListBox, 4, 1); GUI_Delay(SPEED * 0.75); /* Set multi selection mode */ GUI_DispStringAtCEOL("LISTBOX_SetMulti", 5, 55); GUI_Delay(SPEED); LISTBOX_SetMulti(hListBox, 1); GUI_Delay(SPEED * 0.75); /* Select item */ GUI_DispStringAtCEOL("LISTBOX_SetItemSel", 5, 55); GUI_Delay(SPEED); LISTBOX_SetItemSel(hListBox, 0, 1); GUI_Delay(SPEED / 4); LISTBOX_SetItemSel(hListBox, 1, 1); GUI_Delay(SPEED / 4); LISTBOX_SetItemSel(hListBox, 2, 1); GUI_Delay(SPEED * 0.8); /* Delete listbox widget */ GUI_DispStringAtCEOL("LISTBOX_Delete", 5, 55); GUI_Delay(SPEED * 1.1); LISTBOX_Delete(hListBox); GUI_Delay(SPEED * 0.75); }
/******************************************************************* * * _ShowSeveralFunctions */ static void _ShowSeveralFunctions(DROPDOWN_Handle hDropDown) { int NumEntries, i, Key = 0, Cnt = 15; char ac[] = "-- sec to play with dropdown control"; /* Set focus */ GUI_DispStringAtCEOL("WM_SetFocus", 5, 55); GUI_Delay(SPEED * 0.9); WM_SetFocus(hDropDown); GUI_Delay(SPEED * 0.7); /* Add strings */ GUI_DispStringAtCEOL("DROPDOWN_AddString", 5, 55); GUI_Delay(SPEED * 0.8); DROPDOWN_AddString(hDropDown, "English"); DROPDOWN_AddString(hDropDown, "Deutsch"); DROPDOWN_AddString(hDropDown, "Fran鏰is"); DROPDOWN_AddString(hDropDown, "Japanese"); DROPDOWN_AddString(hDropDown, "Italiano"); DROPDOWN_AddString(hDropDown, "Espa駉l"); DROPDOWN_AddString(hDropDown, "Other language ..."); GUI_Delay(SPEED * 0.6); /* Increment selection */ GUI_DispStringAtCEOL("DROPDOWN_IncSel", 5, 55); GUI_Delay(SPEED); NumEntries = DROPDOWN_GetNumItems(hDropDown); for (i = 0; i < (NumEntries - 2); i++) { DROPDOWN_IncSel(hDropDown); GUI_Delay(SPEED / 6); } GUI_Delay(SPEED / 4); /* Expand dropdown */ GUI_DispStringAtCEOL("DROPDOWN_Expand", 5, 55); GUI_Delay(SPEED); DROPDOWN_Expand(hDropDown); GUI_Delay(SPEED * 0.75); /* Add scrollbar */ GUI_DispStringAtCEOL("DROPDOWN_SetAutoScroll", 5, 55); GUI_Delay(SPEED); DROPDOWN_SetAutoScroll(hDropDown, 1); GUI_Delay(SPEED * 0.75); /* Set font */ GUI_DispStringAtCEOL("DROPDOWN_SetFont", 5, 55); GUI_Delay(SPEED); DROPDOWN_SetFont(hDropDown, &GUI_Font16B_1); GUI_Delay(SPEED * 0.75); /* Set text color */ GUI_DispStringAtCEOL("DROPDOWN_SetTextColor", 5, 55); GUI_Delay(SPEED); DROPDOWN_SetTextColor(hDropDown, 0, 0x00BB00); DROPDOWN_SetTextColor(hDropDown, 2, GUI_BLACK); GUI_Delay(SPEED * 0.75); /* Set background color */ GUI_DispStringAtCEOL("DROPDOWN_SetBkColor", 5, 55); GUI_Delay(SPEED); DROPDOWN_SetBkColor(hDropDown, 0, GUI_YELLOW); DROPDOWN_SetBkColor(hDropDown, 2, GUI_RED); GUI_Delay(SPEED * 0.75); /* Delete item */ GUI_DispStringAtCEOL("DROPDOWN_DeleteItem", 5, 55); GUI_Delay(SPEED); DROPDOWN_DeleteItem(hDropDown, 5); GUI_Delay(SPEED * 0.75); /* Collapse dropdown */ GUI_DispStringAtCEOL("DROPDOWN_Collapse", 5, 55); GUI_Delay(SPEED); DROPDOWN_Collapse(hDropDown); GUI_Delay(SPEED * 0.75); /* Decrement selection */ GUI_DispStringAtCEOL("DROPDOWN_DecSel", 5, 55); GUI_Delay(SPEED); NumEntries = DROPDOWN_GetNumItems(hDropDown); for (i = 0; i < (NumEntries - 2); i++) { DROPDOWN_DecSel(hDropDown); GUI_Delay(SPEED / 6); } GUI_Delay(SPEED / 4); /* Let user play with dropdown control */ GUI_DispStringAtCEOL("", 5, 55); while (!Key && (Cnt > 0)) { ac[0] = '0' + (Cnt / 10); ac[1] = '0' + (Cnt-- % 10); GUI_DispStringAtCEOL(ac, 5, 40); GUI_Delay(1000); Key = GUI_GetKey(); } /* Delete dropdown widget */ GUI_DispStringAtCEOL("DROPDOWN_Delete", 5, 55); GUI_Delay(SPEED * 1.1); DROPDOWN_Delete(hDropDown); GUI_Delay(SPEED * 0.75); }
/******************************************************************* * * _DrawScale Drawing a scale using GUI-functions */ static void _DrawScale(void) { int XSize = LCD_GetXSize(); int YSize = LCD_GetYSize(); int XMid = XSize / 2; int i; int r1 = 110; int r2 = 140; int rt = 100; int y = 240; int step = 15; int r = (r1 + r2) / 2; GUI_SetBkColor(GUI_BLACK); GUI_Clear(); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font24_ASCII); GUI_SetTextAlign(GUI_TA_HCENTER); GUI_DispStringAt("DrawScale - Sample", 160, 5); while (1) { int c = 0; GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font8x16); GUI_SetTextAlign(GUI_TA_LEFT); GUI_Delay(SPEED / 2); GUI_DispStringAtCEOL("using", 5, 40); GUI_DispStringAtCEOL("GUI_AA_DrawArc", 5, 55); GUI_Delay(SPEED * 2); GUI_SetPenSize(r2 - r1); GUI_SetColor(0x0000AA); GUI_AA_DrawArc(XMid, y, r, r, 45, 60); GUI_Delay(SPEED); GUI_SetColor(0x00AA00); GUI_AA_DrawArc(XMid, y, r, r, 60, 90); GUI_Delay(SPEED); GUI_SetPenSize(2); GUI_SetColor(GUI_WHITE); GUI_AA_DrawArc(XMid, y, r1, r1, 45, 135); GUI_Delay(SPEED); GUI_AA_DrawArc(XMid, y, r2, r2, 45, 135); GUI_Delay(SPEED); GUI_DispStringAtCEOL("", 5, 55); GUI_Delay(200); GUI_DispStringAtCEOL("using", 5, 40); GUI_DispStringAtCEOL("GUI_AA_DrawLine & GUI_DispCharAt", 5, 55); GUI_Delay(SPEED * 3); for (i = 45; i <= 135; i += step) { float co = cos(i * 3.1415926 / 180); float si = sin(i * 3.1415926 / 180); int x1 = XMid - r1 * co; int y1 = y - r1 * si; int x2 = XMid - (r2 - 1) * co; int y2 = y - (r2 - 1) * si; int xt = XMid - rt * co; int yt = y - rt * si; GUI_SetColor(GUI_WHITE); GUI_SetPenSize(2); GUI_AA_DrawLine(x1, y1, x2, y2); GUI_SetColor(GUI_GREEN); GUI_SetFont(&GUI_Font8x8); GUI_DispCharAt('0' + c++, xt - 4, yt - 4); GUI_Delay(SPEED / 2); } GUI_Delay(SPEED * 3); GUI_ClearRect(0, 30, 320, 240); } }