TREEVIEW - Custom (Sample)
TREEVIEW_Custom.c | |
---|---|
File(s) required |
|
Runs in simulation | Yes |
Runs on target | Yes |
Download | TREEVIEW_Custom.c |
This sample demonstrates custom drawing of a TREEVIEW widget.
Code
/*********************************************************************
* SEGGER Microcontroller GmbH *
* Solutions for real time microcontroller applications *
**********************************************************************
* *
* (c) 1996 - 2020 SEGGER Microcontroller GmbH *
* *
* Internet: www.segger.com Support: support@segger.com *
* *
**********************************************************************
** emWin V6.10 - 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 : TREEVIEW_Custom.c
Purpose : Sample that demonstrates how to draw a TREEVIEW widget
yourself using an OwnerDraw function in emWin.
Requirements: WindowManager - (x)
MemoryDevices - ( )
AntiAliasing - ( )
VNC-Server - ( )
PNG-Library - ( )
TrueTypeFonts - ( )
---------------------------END-OF-HEADER------------------------------
*/
#include "DIALOG.h"
#include <stdio.h>
/*********************************************************************
*
* Defines
*
**********************************************************************
*/
#define PADDING 20
/*********************************************************************
*
* Static data
*
**********************************************************************
*/
static GUI_CONST_STORAGE U32 _acFile[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x43969694, 0x13C0C0BE, 0x25B2B2B1, 0x4F969695, 0x20ADACAB, 0x24ADACAB, 0x47A09F9E, 0x3A989796, 0x0EFFFFFF, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xA4102D2C, 0xF34A6B6A, 0xFB4D7473, 0xF62F6766, 0xF740605F, 0xFE456564, 0xFF3F7878, 0xFF2D5352, 0xFF405D5D, 0xFF2B6665, 0xB50A0606, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x67000000, 0xFF5ED2D1, 0xFF5BCCCC, 0xFF5FD7D6, 0xFF60D7D6, 0xFF5DD2D1, 0xFF5FD6D5, 0xFF62DEDD, 0xFF5CCFCE, 0xFF5ED5D4, 0xFF367E7D, 0xFFDBDADA, 0x3D000000,
0x00000000, 0x00000000, 0x00000000, 0xF5306B6B, 0xFF62DEDD, 0xFF3A7272, 0xFF366869, 0xFF366969, 0xFF366868, 0xFF366969, 0xFF336161, 0xFF5BC9C9, 0xFF61DAD9, 0xFF818686, 0xFFF4F4F4, 0x4B000000,
0x00000000, 0x00000000, 0x70000000, 0xFF60D7D6, 0xFF3E7F7F, 0xFF376A6B, 0xFF376B6B, 0xFF376B6B, 0xFF376B6A, 0xFF366868, 0xFF57BFBE, 0xFF5FD6D5, 0xFF377A7A, 0xFFE9E7E7, 0xFFF0F0F0, 0x49000000,
0x00000000, 0x00000000, 0xF9337170, 0xFF5FD6D5, 0xFF62DCDB, 0xFF63DEDD, 0xFF63DEDD, 0xFF62DEDD, 0xFF62DEDD, 0xFF62DEDD, 0xFF60D7D6, 0xFF60DAD8, 0xFF585B5B, 0xFFEAEAEA, 0xFFEFEFEF, 0x48000000,
0x00000000, 0x78020606, 0xFF60D7D6, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD6D5, 0xFF357575, 0xFFE2E1E1, 0xFFFFFFFF, 0xFFEEEEEE, 0x46000000,
0x00000000, 0xFE357675, 0xFF5FD6D5, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD7D6, 0xFF5E605F, 0xFFCDCDCD, 0xFFEFEFEF, 0xFFEEEEEE, 0x45000000,
0x7C060D0C, 0xFF61DAD9, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD5D4, 0xFF5FD6D5, 0xFF377473, 0xFF9C9B9B, 0xFFC6C6C6, 0xFFE6E6E6, 0xFFECECEC, 0x43000000,
0xCB2B6161, 0xFF64E0DF, 0xFF62DCDA, 0xFF62DBDA, 0xFF62DBDA, 0xFF62DBDA, 0xFF62DBDA, 0xFF62DBDA, 0xFF62DBDA, 0xFF5FD8D7, 0xFF4F5151, 0xFFA1A1A1, 0xFFC9C9C9, 0xFFE0E0E0, 0xFFEBEBEB, 0x42000000,
0x30000000, 0xA81D4141, 0xAB204747, 0xA9224A4A, 0xF1304D4D, 0xFF557170, 0xFF557070, 0xFF557170, 0xFF547171, 0xFF656969, 0xFFC3C3C3, 0xFFDADADA, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFE9E9E9, 0x41000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xD45A5A5A, 0xFFB9B9B9, 0xFFA3A3A3, 0xFFA4A4A4, 0xFFA5A5A5, 0xFFA2A2A2, 0xFFA1A1A1, 0xFFC3C3C3, 0xFFD2D2D2, 0xFFE4E4E4, 0xFFE9E9E9, 0x41000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xD8595959, 0xFFB0B0B0, 0xFF999999, 0xFF9A9A9A, 0xFF9A9A9A, 0xFF9A9A9A, 0xFF9D9D9D, 0xFFC4C4C4, 0xFFC6C6C6, 0xFFDEDEDE, 0xFFE7E7E7, 0x40000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xD6717171, 0xFFE7E7E7, 0xFFBBBBBB, 0xFFBBBBBB, 0xFFBBBBBB, 0xFFBCBCBC, 0xFFC7C7C7, 0xFFC8C8C8, 0xFFC8C8C8, 0xFFDCDCDC, 0xFFE5E5E5, 0x3E000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x77121212, 0xFFF0F0F0, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF999999, 0x0B000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x56000000, 0x97444444, 0x9A494949, 0x9A484848, 0x98474747, 0x98454545, 0x97444444, 0x96434343, 0x8C2D2D2D, 0x2A000000, 0x00000000
};
GUI_CONST_STORAGE GUI_BITMAP bmFile = {
16, // xSize
16, // ySize
64, // BytesPerLine
32, // BitsPerPixel
(unsigned char *)_acFile, // Pointer to picture data
NULL, // Pointer to palette
GUI_DRAW_BMPM8888I
};
static GUI_CONST_STORAGE U32 _acFolderOpen[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x1E6FAACC, 0x4471A9CE, 0x4471A9CE, 0x4471A9CE, 0x4471A9CE, 0x0A66B3CC, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x7072A6CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0x5772A7D0, 0x3373A5CD, 0x3373A5CD, 0x3373A5CD, 0x3373A5CD, 0x3373A5CD, 0x3373A5CD, 0x3373A5CD, 0x056699CC, 0x00000000, 0x00000000,
0x7072A6CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0x1A76A7CE, 0x00000000, 0x00000000,
0x7072A6CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xE572A7CF, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0x156DAACE, 0x00000000, 0x00000000,
0x7072A6CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xCE72A7CF, 0x9672A7CE, 0xD671A7CF, 0xD671A7CF, 0xD671A7CF, 0xD671A7CF, 0xD671A7CF, 0x9F72A7CF, 0x9971A7CF, 0x2575A5CF,
0x7072A6CF, 0xFF72A7CF, 0x8571A7CF, 0x7772A7D0, 0x7772A7D0, 0x7772A7D0, 0x9872A6D0, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xF672A7CF, 0x0A66B3CC,
0x7072A6CF, 0xC972A7CF, 0xD871A8CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xB273A8CE, 0x00000000,
0x7072A6CF, 0x7A73A7CF, 0xFE72A8CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0x6673A8D0, 0x00000000,
0x6C71A8D0, 0x9C72A7CE, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFE72A7CF, 0x1C76A4D1, 0x00000000,
0x2873A6CC, 0xE671A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xD171A7CF, 0x00000000, 0x00000000,
0x2174A2D1, 0xFF72A6CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0x8C73A8D0, 0x00000000, 0x00000000,
0x25679FC8, 0x7670A9CD, 0x7670A9CD, 0x7670A9CD, 0x7670A9CD, 0x7670A9CD, 0x7670A9CD, 0x7670A9CD, 0x7670A9CD, 0x7670A9CD, 0x7670A9CD, 0x7670A9CD, 0x7670A9CD, 0x1B71B3D9, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
};
GUI_CONST_STORAGE GUI_BITMAP bmFolderOpen = {
16, // xSize
16, // ySize
64, // BytesPerLine
32, // BitsPerPixel
(unsigned char *)_acFolderOpen, // Pointer to picture data
NULL, // Pointer to palette
GUI_DRAW_BMPM8888I
};
static GUI_CONST_STORAGE U32 _acFolder[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0xC871A7CF, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xB372A7CF, 0x056699CC, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xCC72A8D0, 0xBB73A6CF, 0xBB73A6CF, 0xBB73A6CF, 0xBB73A6CF, 0xBB73A6CF, 0xBB73A6CF, 0xBB73A6CF, 0xBB73A6CF, 0xB671A7CF,
0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF,
0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF,
0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF,
0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF,
0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF,
0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF,
0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF,
0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF,
0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF, 0xFF72A7CF,
0xC871A7CF, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xCC72A8D0, 0xC871A7CF,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
};
GUI_CONST_STORAGE GUI_BITMAP bmFolder = {
16, // xSize
16, // ySize
64, // BytesPerLine
32, // BitsPerPixel
(unsigned char *)_acFolder, // Pointer to picture data
NULL, // Pointer to palette
GUI_DRAW_BMPM8888I
};
/*********************************************************************
*
* Static code
*
**********************************************************************
*/
/*********************************************************************
*
* _OwnerDrawTreeview
*/
static int _OwnerDrawTreeview(const WIDGET_ITEM_DRAW_INFO * pDrawItemInfo) {
TREEVIEW_ITEM_DRAW_INFO * pDrawInfo;
TREEVIEW_ITEM_INFO Info;
TREEVIEW_ITEM_Handle hTreeItem;
char acBuffer[32];
switch (pDrawItemInfo->Cmd) {
case WIDGET_ITEM_GET_XSIZE:
//
// Return x-size of item
//
return TREEVIEW_OwnerDraw(pDrawItemInfo);
case WIDGET_ITEM_GET_YSIZE:
//
// Return y-size of item
//
return TREEVIEW_OwnerDraw(pDrawItemInfo);
case WIDGET_ITEM_DRAW_BACKGROUND:
//
// Draw background
//
GUI_SetColor(GUI_WHITE);
GUI_FillRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1);
return 0;
case WIDGET_ITEM_DRAW_BITMAP:
//
// Get item handle
//
pDrawInfo = pDrawItemInfo->p;
hTreeItem = pDrawInfo->hItem;
TREEVIEW_ITEM_GetInfo(hTreeItem, &Info);
//
// Draw bitmap
//
if (!Info.IsNode) {
GUI_DrawBitmap(&bmFile, pDrawItemInfo->x0 + ((Info.Level) * PADDING), pDrawItemInfo->y0);
} else if (Info.IsExpanded) {
GUI_DrawBitmap(&bmFolderOpen, pDrawItemInfo->x0 + ((Info.Level) * PADDING), pDrawItemInfo->y0);
} else {
GUI_DrawBitmap(&bmFolder, pDrawItemInfo->x0 + ((Info.Level) * PADDING), pDrawItemInfo->y0);
}
return 0;
case WIDGET_ITEM_DRAW_TEXT:
//
// Get item handle
//
pDrawInfo = pDrawItemInfo->p;
hTreeItem = pDrawInfo->hItem;
TREEVIEW_ITEM_GetText(hTreeItem, acBuffer, sizeof(acBuffer));
TREEVIEW_ITEM_GetInfo(hTreeItem, &Info);
//
// Draw selection
//
if (Info.HasRowSelect) {
if (TREEVIEW_GetSel(pDrawItemInfo->hWin) == hTreeItem) {
GUI_SetColor(GUI_BLUE);
GUI_FillRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1);
GUI_SetColor(GUI_WHITE);
} else {
GUI_SetColor(GUI_BLACK);
}
} else {
GUI_SetColor(GUI_BLACK);
}
//
// Display text
//
GUI_SetTextMode(GUI_TM_TRANS);
GUI_DispStringAt(acBuffer, pDrawItemInfo->x0 + ((Info.Level + 1) * PADDING), pDrawItemInfo->y0);
return 0;
case WIDGET_ITEM_DRAW_TICKS:
//
// Draw lines
//
return TREEVIEW_OwnerDraw(pDrawItemInfo);
default:
return TREEVIEW_OwnerDraw(pDrawItemInfo);
}
}
/*********************************************************************
*
* Public code
*
**********************************************************************
*/
/*********************************************************************
*
* MainTask
*/
void MainTask(void) {
TREEVIEW_Handle hTree;
TREEVIEW_ITEM_Handle hItem;
TREEVIEW_ITEM_Handle hLastNode;
TREEVIEW_ITEM_Handle hLastChild;
int i;
char acBuffer[32];
//
// Init GUI
//
GUI_Init();
WM_SetDesktopColor(GUI_WHITE);
//
// Create TREEVIEW handle
//
hTree = TREEVIEW_CreateEx(10, 10, 200, 150, WM_HBKWIN, WM_CF_SHOW, TREEVIEW_CF_ROWSELECT | TREEVIEW_CF_AUTOSCROLLBAR_V, GUI_ID_TREEVIEW0);
//
// Add some nodes and leafs
//
sprintf(acBuffer, "Node 1");
hItem = TREEVIEW_ITEM_Create(TREEVIEW_ITEM_TYPE_NODE, acBuffer, 0);
TREEVIEW_AttachItem(hTree, hItem, 0, 0);
hLastNode = hItem;
sprintf(acBuffer, "Leaf 1");
hItem = TREEVIEW_ITEM_Create(TREEVIEW_ITEM_TYPE_LEAF, acBuffer, 0);
TREEVIEW_AttachItem(hTree, hItem, hLastNode, TREEVIEW_INSERT_FIRST_CHILD);
for (i = 2; i <= 5; i++) {
sprintf(acBuffer, "Node %d", i);
hItem = TREEVIEW_ITEM_Create(TREEVIEW_ITEM_TYPE_NODE, acBuffer, 0);
TREEVIEW_AttachItem(hTree, hItem, hLastNode, TREEVIEW_INSERT_BELOW);
hLastNode = hItem;
//
sprintf(acBuffer, "Child node");
hItem = TREEVIEW_ITEM_Create(TREEVIEW_ITEM_TYPE_NODE, acBuffer, 0);
TREEVIEW_AttachItem(hTree, hItem, hLastNode, TREEVIEW_INSERT_FIRST_CHILD);
hLastChild = hItem;
//
sprintf(acBuffer, "Leaf %d", i);
hItem = TREEVIEW_ITEM_Create(TREEVIEW_ITEM_TYPE_LEAF, acBuffer, 0);
TREEVIEW_AttachItem(hTree, hItem, hLastChild, TREEVIEW_INSERT_FIRST_CHILD);
}
//
// Set OwnerDraw function
//
TREEVIEW_SetOwnerDraw(hTree, _OwnerDrawTreeview);
while (1) {
GUI_Delay(100);
}
}
/*************************** End of file ****************************/