| WideStudio Programming Guide | WideStudio Index Table of contents

> ## 트리 리스트

> ### 메서드에의한 리스트의 데이터 표시 제어

> 트리 리스트(WSCtreeList) 또는 WSClist 의 리스트종별을 트리 리스트에 설정한것에 항목 표시 데이터를 추가하기에는 리스트의 경우와 마찬가지로 addItem 메서드를 사용합니다. addItem 에의하여 추가할 문자열, 추가될 위치르 지정합니다. 추가 위치를 생략하면 리스트의 말미에 추가됩니다. 또한 리스트 항목에 내포계층은 setItemValue 메서드로 설정할수가 있습니다. 인수에는 설정할 항목의 위치, 값종별에 WS_INDENT_LEVEL, 그리고 계층을 지정합니다. 아무것도 설정안한 경우에는 제0계층으로되여 최상이의 상태가 됩니다.

>       setItemValue(pos,WS_INDENT_LEVEL,level);
>       pos = 0,1,2,...,-1(최후비)
>       level = 0(top),1,2,3...

> [ 트리 리스트]
> 그림과 같이 트리 리스트에 항목을 추가할 샘플입니다.

>     #include <WScom.h>
>     #include <WSCfunctionList.h>
>     #include <WSCbase.h>
>     //----------------------------------------------------------
>     //Function for the event procedure
>     //----------------------------------------------------------
>     #include <WSCtreeList.h>
>     extern WSCtreeList* newlist_001;
>     void btnep1(WSCbase* object){
>       // 리스트의 항목을 모두 삭제.
>       newlist_001->delAll();
>       // 리스트의 말미에 항목을 추가.
>       newlist_001->addItem("item1");
>       newlist_001->setItemValue(-1,WS_INDENT_LEVEL,0);
>       newlist_001->addItem("item2");
>       newlist_001->setItemValue(-1,WS_INDENT_LEVEL,1);
>       newlist_001->addItem("item3");
>       newlist_001->setItemValue(-1,WS_INDENT_LEVEL,2);
>       newlist_001->addItem("item4");
>       newlist_001->setItemValue(-1,WS_INDENT_LEVEL,3);
>       newlist_001->addItem("item5");
>       newlist_001->setItemValue(-1,WS_INDENT_LEVEL,0);
>       newlist_001->addItem("item6");
>       newlist_001->setItemValue(-1,WS_INDENT_LEVEL,1);

>       // 리스트를 변경한 경우 마지막에 한번 갱신.
>       newlist_001->updateList();
>     }
>     static WSCfunctionRegister  op("btnep1",(void*)btnep1);

> 트리 리스트의 이용에 있어서 주의할 점은 항목마다에는 부모과계처럼 특별한 관계가 아무 없이, 단 리스트 표시에 대해서 각 항목이 들여쓰기를 지정된 상태로 표시된다고 합니다. 따라서 최상이의 항목을 삭제했다고하여 이후의 계층의 항목이 없서지는기 아닙니다. 또 전 항목과의 들여쓰기의 차는 +1 까지 입니다. +1 이상 차가있는 경우는 자동적으로 +1 로 되도록 보정되기에 주의 하십시오.

> ### 속성에서의 트리 리스트 데이터의 설정

> 비교적 항목수가 적은 경우, 속성에서 한시에 항목을 설정할수가 있습니다. 이 경우, 우선 WSNdataSource 속성을 WS_DATA_SOURCE_NONE 에 지정합니다. 다음에 WSNdata 속성에 아래에 표시하는봐와 같은 서식으로 설정합니다.
> 데이터서식 : (속성 WSNuseIcon 가 True 가 경우)

>     icon_filename,indent_level,1=open/0=close, 가 목 문자열\n...

> 데이터서식 : (속성 WSNuseIcon 가 False 의 경우)

>     indent_level,1=open/0=close, 항목 문자열\n...

> 아이콘 지정에 있어스 아이콘을 생략한 경우, 속성 WSNiconPixmap 로 지정한 아이콘이 이용됩니다.

>     #include <WScom.h>
>     #include <WSCfunctionList.h>
>     #include <WSCbase.h>
>     //----------------------------------------------------------
>     //Function for the event procedure
>     //----------------------------------------------------------
>     #include <WSCtreeList.h>
>     extern WSCtreeList* newlist_001;
>     void btnep1(WSCbase* object){
>       // 리스트의 항목을 모두 삭제.
>       newlist_001->delAll();
>       // 리스트에 속성을 경유하여 데이터를 설정
>       newlist_001->setProperty(WSNdataSource,WS_DATA_SOURCE_NONE);
>       newlist_001->setProperty(WSNdata,",0,1,item1\n,1,1,item2\n,2,1,item3");

>     static WSCfunctionRegister  op("btnep1",(void*)btnep1);

> ### 파일에서의 트리 리스트 데이터의 설정

> 파일명을 지정해서 파일에서 한시에 항목을 설정 할수 있습니다. 이 경우 우선 WSNdataSource 속성을 WS_DATA_SOURCE_FILE 에 지정합니다. 다음에 WSNdataSourceName 속성에 파일명을 지정합니다. 빌더에서의 속성 설정,프로그램에서의 설정으로 동작합니다. 아래는 프로그램에서의 설정예입니다.

>     #include <WScom.h>
>     #include <WSCfunctionList.h>
>     #include <WSCbase.h>
>     //----------------------------------------------------------
>     //Function for the event procedure
>     //----------------------------------------------------------
>     #include <WSCtreeList.h>
>     extern WSCtreeList* newlist_001;
>     void btnep1(WSCbase* object){
>       // 리스트의 항목을 모두 삭제.
>       newlist_001->delAll();
>       // 리스트에 파일을 겨유해서 데이터를 설정
>       newlist_001->setProperty(WSNdataSource,WS_DATA_SOURCE_FILE);
>       newlist_001->setProperty(WSNdataSourceName,"data.txt");
>     }
>     static WSCfunctionRegister  op("btnep1",(void*)btnep1);

>     //data.txt 의 내용
>     $(WSDIR)/sys/pixmaps/bi16.xpm,0,1,item1
>     1,1,item2
>     2,1,item3
>     3,1,item4
>     $(WSDIR)/sys/pixmaps/bi16.xpm,0,1,item5
>     1,1,item6
>     2,1,item7
>     3,1,item8

> ### 인스턴스에서의 트리 리스트의 데이터 표시

> 인스턴스명을 지정해서 인스턴스에서 한시에 항목을 설정할수가 있습니다. 이 경우 우선 WSNdataSource 속성을 WS_DATA_SOURCE_INSTANCE 에 지정합나다. 다음에 WSNdataSourceName 속성에 인스턴스명을 지정합니다. 아래의 예서는 WSCtextField 의 인스턴스 newtext_000 를 지정하고있습니다. 데이터의 형식은 파일 지정의 경우와 같습니다. newtext_000 에 입력되여있는 문자열이 리스트에 표시됩니다. 빌더에서의 속성 설정,프로그램에서의 설정으로 동작합니다. 아래는 프로그램에서의 설정예입니다. 이 경우, 입력 필드의 인스턴스 newtext_000 에 입력되여있는 문자열이 트리 리스트의 항목으로 표시됩니다.

>     #include <WScom.h>
>     #include <WSCfunctionList.h>
>     #include <WSCbase.h>
>     //----------------------------------------------------------
>     //Function for the event procedure
>     //----------------------------------------------------------
>     #include <WSCtreeList.h>
>     extern WSCtreeList* newlist_001;
>     void btnep1(WSCbase* object){
>       // 리스트의 항목을 모두 삭제.
>       newlist_001->delAll();
>       // 리스트에 파일을 경유해서 데이터를 설정
>       newlist_001->setProperty(WSNdataSource,WS_DATA_SOURCE_INSTANCE);
>       newlist_001->setProperty(WSNdataSourceName,"newtext_000");
>     }
>     static WSCfunctionRegister  op("btnep1",(void*)btnep1);

Document Release 3.70 for WideStudio ver 3.70, May 2004

WideStudio documents index | Table of contents

Copyright(C) WideStudio Development Team, 1999-2004 | Last modified: May 25, 2004