#include <List.h> #include <String.h> #include <View.h> #include "YabList.h" #include <stdio.h> YabList::YabList() { idList = new BList(1); viewList = new BList(1); typeList = new BList(1); } YabList::~YabList() { DelAll(); delete idList; delete viewList; delete typeList; } int YabList::ViewNum(const char* id) { int tmp=-1; if(id) { for(int i=0; i<idList->CountItems(); i++) if(!strcmp(id, ((BString*)(idList->ItemAt(i)))->String() )) { tmp = i; break; } } return tmp; } void YabList::AddView(const char* id, const BView* view, int type) { idList->AddItem((void*)new BString(id)); viewList->AddItem((void*)view); typeList->AddItem((void*)(addr_t)type); } void YabList::DelView(const char* id) { int i = ViewNum(id); if(i!=-1) { idList->RemoveItem(i); viewList->RemoveItem(i); typeList->RemoveItem(i); } } void YabList::DelAll() { idList->MakeEmpty(); viewList->MakeEmpty(); typeList->MakeEmpty(); } const void* YabList::GetView(const char* id) { int t = ViewNum(id); if(t>=0) return viewList->ItemAt(t); else return NULL; } const int YabList::GetType(const char* id) { return (int)(addr_t)typeList->ItemAt(ViewNum(id)); } const int YabList::CountItems() { return typeList->CountItems(); } const void* YabList::ItemAt(int i) { return viewList->ItemAt(i); } void YabList::PrintOut() { printf("\n"); for(int i=0; i<idList->CountItems(); i++) printf("\t View %s and the id %d %d \n", ((BString*)(idList->ItemAt(i)))->String() , idList->ItemAt(i), viewList->ItemAt(i)); printf("\n"); }