diff options
Diffstat (limited to 'worldtime_protocol/timezone_list.cpp')
-rw-r--r-- | worldtime_protocol/timezone_list.cpp | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/worldtime_protocol/timezone_list.cpp b/worldtime_protocol/timezone_list.cpp index d70455e..2e28bc1 100644 --- a/worldtime_protocol/timezone_list.cpp +++ b/worldtime_protocol/timezone_list.cpp @@ -1,9 +1,7 @@ #include "common.h"
#include "timezone_list.h"
-#include <sstream>
-
-ITEMLIST listbox_items;
+ITEMLIST listbox_items(5);
void load_listbox_items() {
@@ -12,15 +10,15 @@ void load_listbox_items() { DBVARIANT dbv;
char *proto;
- listbox_items.clear();
+ listbox_items.destroy();
while ( hContact != NULL ) {
proto = ( char* )CallService( MS_PROTO_GETCONTACTBASEPROTO, ( WPARAM )hContact,0 );
if ( proto && !lstrcmp( PROTO, proto)) {
pa.hContact = hContact;
if(!DBGetContactSetting(pa.hContact, PROTO, "TZName", &dbv)) {
- for(TimeList::iterator j = timezone_list.begin(); j != timezone_list.end(); j++) {
- if(!strcmp(j->tcName, dbv.pszVal)) {
- pa.timezone_list_index = j->list_index;
+ for (int j = 0; j < timezone_list.getCount(); ++j) {
+ if(!strcmp(timezone_list[j].tcName, dbv.pszVal)) {
+ pa.timezone_list_index = timezone_list[j].list_index;
break;
}
}
@@ -32,7 +30,7 @@ void load_listbox_items() { DBFreeVariant(&dbv);
}
- listbox_items.push_back(pa);
+ listbox_items.insert(new LISTITEM(pa));
}
hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDNEXT,( WPARAM )hContact, 0 );
@@ -43,19 +41,19 @@ void save_listbox_items() { bool is_contact;
- for(ITEMLIST::iterator i = listbox_items.begin(); i != listbox_items.end(); i++) {
- is_contact = (int)CallService(MS_DB_CONTACT_IS, (WPARAM)i->hContact, 0) == 1;
+ for(int i = 0; i < listbox_items.getCount(); ++i) {
+ is_contact = (int)CallService(MS_DB_CONTACT_IS, (WPARAM)listbox_items[i].hContact, 0) == 1;
if(!is_contact) {
- i->hContact = (HANDLE)CallService(MS_DB_CONTACT_ADD, 0, 0);
- CallService( MS_PROTO_ADDTOCONTACT, ( WPARAM )i->hContact, ( LPARAM )PROTO );
- CallService(MS_IGNORE_IGNORE, (WPARAM)i->hContact, (WPARAM)IGNOREEVENT_USERONLINE);
+ listbox_items[i].hContact = (HANDLE)CallService(MS_DB_CONTACT_ADD, 0, 0);
+ CallService( MS_PROTO_ADDTOCONTACT, ( WPARAM )listbox_items[i].hContact, ( LPARAM )PROTO );
+ CallService(MS_IGNORE_IGNORE, (WPARAM)listbox_items[i].hContact, (WPARAM)IGNOREEVENT_USERONLINE);
}
- DBWriteContactSettingString(i->hContact, PROTO, "Nick", i->pszText);
- DBWriteContactSettingDword(i->hContact, PROTO, "TimezoneListIndex", i->timezone_list_index);
- DBWriteContactSettingWord(i->hContact, PROTO, "Status", ID_STATUS_ONLINE);
- DBWriteContactSettingString(i->hContact, PROTO, "TZName", timezone_list[i->timezone_list_index].tcName);
+ DBWriteContactSettingString(listbox_items[i].hContact, PROTO, "Nick", listbox_items[i].pszText);
+ DBWriteContactSettingDword(listbox_items[i].hContact, PROTO, "TimezoneListIndex", listbox_items[i].timezone_list_index);
+ DBWriteContactSettingWord(listbox_items[i].hContact, PROTO, "Status", ID_STATUS_ONLINE);
+ DBWriteContactSettingString(listbox_items[i].hContact, PROTO, "TZName", timezone_list[listbox_items[i].timezone_list_index].tcName);
}
DBWriteContactSettingWord(0, PROTO, "DataVersion", 1);
@@ -67,8 +65,8 @@ void save_listbox_items() { proto = ( char* )CallService( MS_PROTO_GETCONTACTBASEPROTO, ( WPARAM )hContact,0 );
if ( proto && !lstrcmp( PROTO, proto)) {
found = false;
- for(ITEMLIST::iterator i = listbox_items.begin(); i != listbox_items.end(); i++) {
- if(i->hContact == hContact) {
+ for(int i = 0; i < listbox_items.getCount(); i++) {
+ if(listbox_items[i].hContact == hContact) {
found = true;
}
}
@@ -87,6 +85,11 @@ void save_listbox_items() { }
}
-
+void copy_listbox_items(ITEMLIST &dest, ITEMLIST &src)
+{
+ dest.destroy();
+ for (int i=0; i < src.getCount(); ++i)
+ dest.insert(new LISTITEM(src[i]));
+}
|