Dear,
i have a listbox. so i want to save listbox datas to save file and restore again.
When this code runs ,
it prints 0. i cant find get all data from listview. and restore it again. can you suggest any solition?
my orginal source code is:
Display All
i have a listbox. so i want to save listbox datas to save file and restore again.
When this code runs ,
it prints 0. i cant find get all data from listview. and restore it again. can you suggest any solition?
my orginal source code is:
C Source Code
- /*********************************************************************
- * SEGGER Microcontroller GmbH *
- * Solutions for real time microcontroller applications *
- **********************************************************************
- * *
- * (c) 1996 - 2022 SEGGER Microcontroller GmbH *
- * *
- * Internet: www.segger.com Support: support@segger.com *
- * *
- **********************************************************************
- ** emWin V6.24 - Graphical user interface for embedded applications **
- emWin is protected by international copyright laws. Knowledge of the
- source code may not be used to write a similar product. This file may
- only be used in accordance with a license and should not be re-
- distributed in any way. We appreciate your understanding and fairness.
- ----------------------------------------------------------------------
- File : LISTVIEW_Usage.c
- Purpose : Sample that demonstrates the usage of LISTVIEW widgets
- in emWin.
- Requirements: WindowManager - (x)
- MemoryDevices - ( )
- AntiAliasing - ( )
- VNC-Server - ( )
- PNG-Library - ( )
- TrueTypeFonts - ( )
- Wiki link : https://wiki.segger.com/LISTVIEW_-_Usage_(Sample)
- ---------------------------END-OF-HEADER------------------------------
- */
- #include "DIALOG.h"
- #include <stdio.h>
- #include <stdlib.h>
- /*********************************************************************
- *
- * Defines
- *
- **********************************************************************
- */
- #define ID_COLUMN_EMP_NO 0
- #define ID_COLUMN_LAST_NAME 1
- #define ID_COLUMN_FIRST_NAME 2
- #define ID_COLUMN_EXT 3
- #define ID_COLUMN_TITLE 4
- #define ID_COLUMN_EMAIL 5
- /*********************************************************************
- *
- * Static data
- *
- **********************************************************************
- */
- static const char * _acContent[][6] = {
- { "1002", "Murphy", "Diane", "x5800", "President", "dmurphy@classicmodelcars.com" },
- { "1056", "Patterson", "Mary", "x4611", "VP Sales", "mpatterso@classicmodelcars.com" },
- { "1076", "Firrelli", "Jeff", "x9273", "VP Marketing", "jfirrelli@classicmodelcars.com" },
- { "1088", "Patterson", "William", "x4871", "Sales Manager (APAC)", "wpatterson@classicmodelcars.com" },
- { "1102", "Bondur", "Gerard", "x5408", "Sale Manager (EMEA)", "gbondur@classicmodelcars.com" },
- { "1143", "Bow", "Anthony", "x5428", "Sales Manager (NA)", "abow@classicmodelcars.com" },
- { "1165", "Jennings", "Leslie", "x3291", "Sales Rep", "ljennings@classicmodelcars.com" },
- { "1166", "Thompson", "Leslie", "x4065", "Sales Rep", "lthompson@classicmodelcars.com" },
- { "1188", "Firrelli", "Julie", "x2173", "Sales Rep", "jfirrelli@classicmodelcars.com" },
- { "1216", "Patterson", "Steve", "x4334", "Sales Rep", "spatterson@classicmodelcars.com" },
- { "1286", "Tseng", "Foon Yue", "x2248", "Sales Rep", "ftseng@classicmodelcars.com" },
- };
- /*********************************************************************
- *
- * Static code
- *
- **********************************************************************
- */
- /*********************************************************************
- *
- * _cbBk
- */
- static void _cbBk(WM_MESSAGE * pMsg) {
- int Id, NCode;
- WM_HWIN hListview;
- int Sel;
- char acBuffer [128];
- char acFirstName[32];
- char acLastName [32];
- switch (pMsg->MsgId) {
- case WM_PAINT:
- GUI_SetBkColor(GUI_WHITE);
- GUI_Clear();
- GUI_SetColor(GUI_BLACK);
- //
- // Display selected item
- //
- hListview = WM_GetDialogItem(WM_HBKWIN, GUI_ID_LISTVIEW0);
- Sel = LISTVIEW_GetSel(hListview);
- if (Sel != -1) {
- sprintf(acBuffer, "Selected row: %d", Sel);
- GUI_DispStringAt(acBuffer, 10, 380);
- LISTVIEW_GetItemTextSorted(hListview, ID_COLUMN_FIRST_NAME, Sel, acFirstName, sizeof(acFirstName));
- LISTVIEW_GetItemTextSorted(hListview, ID_COLUMN_LAST_NAME, Sel, acLastName, sizeof(acLastName));
- sprintf(acBuffer, "Selected employee name: %s %s", acFirstName, acLastName);
- GUI_DispStringAt(acBuffer, 10, 400);
- // LISTVIEW_DeleteRow(hListview,Sel);
- LISTVIEW_SetTextAlign(hListview,LISTVIEW_GetSelCol(hListview),GUI_TA_HCENTER | GUI_TA_VCENTER);
- }
- //
- // No selection
- //
- else {
- sprintf(acBuffer, "Selected row: none.");
- GUI_DispStringAt(acBuffer, 10, 380);
- }
- break;
- case WM_NOTIFY_PARENT:
- Id = WM_GetId(pMsg->hWinSrc);
- NCode = pMsg->Data.v;
- switch (Id) {
- case GUI_ID_LISTVIEW0:
- switch (NCode) {
- case WM_NOTIFICATION_SEL_CHANGED:
- //
- // Display new selection in this window when LISTVIEW selection has changed.
- //
- WM_InvalidateWindow(pMsg->hWin);
- break;
- }
- break;
- }
- break;
- default:
- WM_DefaultProc(pMsg);
- }
- }
- /*********************************************************************
- *
- * _CompareExtension
- */
- static int _CompareExtension(const void * p0, const void * p1) {
- const char * ps[2];
- int v[2];
- int i;
- ps[0] = (const char *)p0 + 1; // Move pointer by 1 to ignore the 'x'
- ps[1] = (const char *)p1 + 1;
- //
- // Parse to int
- //
- for (i = 0; i < 2; i++) {
- v[i] = atoi(ps[i]);
- if (v[i] == 0) {
- return 0;
- }
- }
- //
- // Return comparison result
- //
- if (v[0] > v[1]) {
- return -1;
- } else if (v[0] < v[1]) {
- return 1;
- } else {
- return 0;
- }
- }
- /*********************************************************************
- *
- * Public code
- *
- **********************************************************************
- */
- /*********************************************************************
- *
- * MainTask
- */
- //omer^aygor^1231244
- //omer serfa^dogruer^123123123
- void MainTask(void) {
- LISTVIEW_Handle hListview;
- int i;
- //
- // Init GUI
- //
- GUI_Init();
- //
- // Enable multi-buffering
- //
- WM_MULTIBUF_Enable(1);
- //
- // Set callback to background window to receive LISTVIEW notifications
- //
- WM_SetCallback(WM_HBKWIN, _cbBk);
- //
- // Create listview widget
- //
- hListview = LISTVIEW_CreateEx(10, 10, 400, 300, WM_HBKWIN, WM_CF_SHOW, 0, GUI_ID_LISTVIEW0);
- //
- // Add columns to listview
- //
- LISTVIEW_SetFont(hListview,&GUI_Font16B_1);
- LISTVIEW_SetHeaderHeight(hListview,40);
- LISTVIEW_AddColumn(hListview, 45, "Emp. Nr.", GUI_TA_LEFT);
- LISTVIEW_AddColumn(hListview, 60, "Last Name", GUI_TA_LEFT);
- LISTVIEW_AddColumn(hListview, 60, "First Name", GUI_TA_LEFT);
- LISTVIEW_AddColumn(hListview, 40, "Ext.", GUI_TA_LEFT);
- LISTVIEW_AddColumn(hListview, 110, "Title", GUI_TA_LEFT);
- LISTVIEW_AddColumn(hListview, 180, "Email", GUI_TA_LEFT);
- //
- // Add rows to listview
- //
- for (i = 0; i < GUI_COUNTOF(_acContent); i++) {
- LISTVIEW_AddRow(hListview, _acContent[i]);
- }
- //
- // Set compare functions
- //
- // LISTVIEW_SetCompareFunc(hListview, 0, LISTVIEW_CompareDec);
- // LISTVIEW_SetCompareFunc(hListview, 1, LISTVIEW_CompareText);
- // LISTVIEW_SetCompareFunc(hListview, 2, LISTVIEW_CompareText);
- // LISTVIEW_SetCompareFunc(hListview, 3, _CompareExtension);
- // LISTVIEW_SetCompareFunc(hListview, 4, LISTVIEW_CompareText);
- // LISTVIEW_SetCompareFunc(hListview, 5, LISTVIEW_CompareText);
- //
- // Enable sorting
- //
- LISTVIEW_EnableSort(hListview);
- LISTVIEW_SetGridVis(hListview,1);
- //
- // Enable motion scrolling
- //
- LISTVIEW_EnableMotion(hListview, LISTVIEW_CF_AUTOSCROLLBAR_H | LISTVIEW_CF_AUTOSCROLLBAR_V);
- HEADER_Handle hHeader = LISTVIEW_GetHeader(hListview);
- HEADER_SetTextColor(hHeader, GUI_RED);
- HEADER_SetFont(hHeader,&GUI_Font16B_1);
- int memsize = 1024 * 1024;
- char *fContect = malloc(memsize * (sizeof(char)));
- if( fContect == NULL )
- {
- PRINTF("Malloc Error!\n");
- }
- while (1){
- GUI_Delay(100);
- sysDelay(1000);
- int numOfRead = LISTVIEW_GetUserData(hListview,fContect,memsize);
- PRINTF("numOfRead:%d.\n",numOfRead);
- }
- }
- /*************************** End of file ****************************/