WideStudio Logo
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 =0VERB(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){
  //Delete all the items of the list.
  newlist_001->delAll();
  //Add an item to the last of the list.
  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);

  //Add an item to the specified position of the list.
  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 的情况)

如果省略图标,属性 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){
  //Delete all the items of the list.
  newlist_001->delAll();
  //Set the items of the list by the property
  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 属性中指定文件名。通过builder的属性设定,和程序的设定实现动作。下列是在程序中的设定的例子。

#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){
  //Delete all the items of the list
  newlist_001->delAll();
  //Set the items from file directly
  newlist_001->setProperty(WSNdataSource,WS_DATA_SOURCE_FILE);
  newlist_001->setProperty(WSNdataSourceName,"data.txt");
}
static WSCfunctionRegister  op("btnep1",(void*)btnep1);

//data.txt contains...
$(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



通过Instance显示一览的数据

通过指定Instance名,从该Instance的数据源对象属性对项目进行总括设定。这个情况时,首先,将WSNdataSource 属性设定为WS_DATA_SOURCE_INSTANCE。然后,在WSNdataSourceName 属性中指定Instance名。下列的例子中,指定了WSCtextField 的Instance(newtext_000)。数据的形式,与文件指定的情况一样。被输入到newtext_000中的字符串在一览里将被显示。通过builder的属性设定,程序的设定可以动作。下列是在程序设定的例子。这个情况,被输入区域的Instance newtext_000中所输入的字符串将作为详细一览的项目被显示。下列是在程序的设定的例子。这个情况,被输入Instance 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){
  //Delete all the items of the list
  newlist_001->delAll();
  //Set the items from the other instances
  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, Feb 2004


WideStudio documents index | Table of contents

Copyright(C) T. Hirabayashi, 2000-2004 Last modified: Feb 25, 2004